WindowMaker-0.95.5/0000755000175000017500000000000012214434641011043 500000000000000WindowMaker-0.95.5/README.definable-cursor0000644000175000017500000000654612214432632015077 00000000000000 Definable Mouse Cursors for Window Maker ---------------------------------------- The definable-cursor feature allows user-definable mouse cursors; the cursors can either be the built-in ones from the X11 cursor font, or they can be bitmap (XBM) files. User-definable cursors can be useful for theme-builders, lefthanders, and the visually impaired. Defining Your Own Cursors ------------------------- A cursor specification takes one of the following forms in the ~/GNUstep/Defaults/WindowMaker file: (none) (builtin, ) (bitmap, , ) They have the following meanings: none The cursor is inherited from the parent window (often, this means the root window). builtin Use the cursor named from X11's set of built-in cursors. The names are the same as you use with 'xsetroot -cursor_name'. See the xsetroot(1) man page for more information. bitmap Use the bitmap in as the foreground cursor bitmap, and the one in as the background (mask) bitmap. This is pretty much the same as 'xsetroot -cursor', except that Window Maker searches for the bitmaps along its PixmapPath. You can set the following cursor types (they're shown here with their defaults): NormalCursor = (builtin, left_ptr); ArrowCursor = (builtin, top_left_arrow); MoveCursor = (builtin, fleur); TopLeftResizeCursor = (builtin, top_left_corner); TopRightResizeCursor = (builtin, top_right_corner); BottomLeftResizeCursor = (builtin, bottom_left_corner); BottomRightResizeCursor = (builtin, bottom_right_corner); VerticalResizeCursor = (builtin, sb_v_double_arrow); HorizontalResizeCursor = (builtin, sb_h_double_arrow); WaitCursor = (builtin, watch); QuestionCursor = (builtin, question_arrow); TextCursor = (builtin, xterm); SelectCursor = (builtin, cross); The following cursor types are allowed, but they're deprecated (Window Maker used them in the past, but doesn't use them anymore): ResizeCursor = (builtin, sizing); Using Cursors with 'getstyle' and 'setstyle' -------------------------------------------- The 'getstyle' and 'setstyle' style/theme-management utilities can handle user-definable cursors. By default, 'getstyle' ignores cursor definitions; using 'getstyle -t' to get theme-related settings will also include any cursors you've defined in the resulting stylefile. However, by default, 'setstyle' does NOT ignore cursor settings. If you wish to set a style or theme without installing cursor settings, you can use 'setstyle --no-cursors' to ignore the cursor definitions. Random Notes ------------ Most X11 cursors are 16x16 bitmaps. Many X servers can actually handle larger cursors, though. To check, use: xdpyinfo and in the resulting output look for a line such as: largest cursor: 64x64 The example above indicates that my X server can handle cursors up to 64 pixels wide by 64 pixels high. You can create your own bitmap cursors using the 'bitmap' program that accompanies most X11 distributions. For example bitmap cursors and masks, see . WindowMaker-0.95.5/COPYING.WTFPL0000644000175000017500000000203712214432632012711 00000000000000 The following artwork were created by Banlu Kemiyatorn and are distributed through the license in this file: GNUstepGlow.tiff GNUstepGlow.xpm Magnify.tiff Magnify.xpm Terminal.tiff Terminal.xpm TerminalGNUstep.tiff TerminalGNUstep.xpm TerminalLinux.tiff TerminalLinux.xpm tiff/msty1.tiff tiff/msty2.tiff tiff/msty3.tiff xpm/msty1.xpm xpm/msty2.xpm xpm/msty3.xpm WPrefs.tiff WPrefs.xpm tiff/tdel.tiff tiff/tedit.tiff tiff/textr.tiff tiff/tnew.tiff xpm/tdel.xpm xpm/tedit.xpm xpm/textr.xpm xpm/tnew.xpm inside Resources/Images.tiff "the little house", "the trash can", "the folder", "the floppies" Ear.png Ftp.png ICQ.png Jabber.png Mozilla.png Pen.png Pencil.png Shell.png Speaker.png XChat.png do What The Fuck you want to Public License Version 1.0, March 2000 Copyright (C) 2000 Banlu Kemiyatorn (]d). 136 Nives 7 Jangwattana 14 Laksi Bangkok Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Ok, the purpose of this license is simple and you just DO WHAT THE FUCK YOU WANT TO. WindowMaker-0.95.5/README0000644000175000017500000002604712214432632011652 00000000000000 GNU Window Maker X11 Window Manager by Alfredo K. Kojima Dan Pascu Web/FTP Master Phillip Smith Congratulations! You have purchased an extremely fine device that would give you thousands of years of trouble-free service, except that you undoubtably will destroy it via some typical bonehead consumer maneuver. Which is why we ask you to PLEASE FOR GOD'S SAKE READ THIS OWNER'S MANUAL CAREFULLY BEFORE YOU UNPACK THE DEVICE. YOU ALREADY UNPACKED IT, DIDN'T YOU? YOU UNPACKED IT AND PLUGGED IT IN AND TURNED IT ON AND FIDDLED WITH THE KNOBS, AND NOW YOUR CHILD, THE SAME CHILD WHO ONCE SHOVED A POLISH SAUSAGE INTO YOUR VIDEOCASSETTE RECORDER AND SET IT ON "FAST FORWARD", THIS CHILD ALSO IS FIDDLING WITH THE KNOBS, RIGHT? AND YOU'RE JUST NOW STARTING TO READ THE INSTRUCTIONS, RIGHT??? WE MIGHT AS WELL JUST BREAK THESE DEVICES RIGHT AT THE FACTORY BEFORE WE SHIP THEM OUT, YOU KNOW THAT? -- Dave Barry, "Read This First!" Description =========== Window Maker is the GNU window manager for the X Window System. It was designed to emulate the look and feel of part of the NEXTSTEP(tm) GUI. It's supposed to be relatively fast and small, feature rich, easy to configure and easy to use, with a simple and elegant appearance borrowed from NEXTSTEP(tm). Window Maker was designed keeping integration with GNUstep in mind and is the "official" window manager for it. It is also part of the GNU project (www.gnu.org) Read more about GNUstep further on this file. Hints (information given by applications to integrate well with the window manager) for Motif(tm) and NETWM are also supported (NETWM is used by KDE and GNOME, so they are automatically supported as a result). So you can replace any of the window managers for these environments with Window Maker while keeping most, if not all, of the native window manager functionality. Window Maker was previously called WindowMaker. Window Maker has no connection with Windowmaker, the software for making windows and doors. Documentation ============= Read before asking. * README files all over the source tree have info related to the stuff in the directories. * INSTALL has installation instructions and some troubleshooting tips. You're meant to read it before installing. It was not written just to fill up space in the package. * FAQ: Frequently Asked Questions. READ IT!!! FAQ.I18N is for internationalization related questions. * NEWS: list user visible changes from the previous version. Read it if you are upgrading. * BUGFORM: use it to send bug reports. Please do use it. * ChangeLog: what changed from the previous version? * BUGS: list of known bugs *** User Guide The Window Maker User's Guide can be downloaded from the official ftp or web sites. The User Guide explains how to use Window Maker, the configuration files and options. *** man pages Type "man wmaker" in the shell prompt to get general help about Window Maker Directories & Files in the Source Tree ====================================== * Install is a script for configuring and compiling Window Maker in a easy way (not that the normal way is difficult, but...). * AUTHORS: the credits * TODO: plans for the future * util/ has various utility programs. * WPrefs.app/ is the configuration program. * src/wconfig.h has compile time options you can change to select some options/features and other stuff. * WINGs/ NEXTSTEP lookalike widget library * wrlib/ image processing library * po/ has message catalogs wich are the translated versions of the messages displayed by Window Maker. * docklib-x.x.tar.gz a library for writing dockapps HELP ME!!! ========== There is a mailing list for discussing Window Maker at wmaker-user@lists.windowmaker.org To subscribe to it, send a message to wmaker-user-subscribe@lists.windowmaker.info If you got a problem, ask there (after reading the docs, of course). The people there is more likely to be able to answer your questions than we are. For bug reports use the BUGFORM. If you have a problem with a precompiled version of Window Maker (rpm, deb etc), first ask the person who made the package. IMPORTANT NOTE: when asking for help (in the mailing list or to the developerts, directly) *always* send information about the system you are using. You can use the system information section at the end of BUGFORM as a guideline. Another thing: please don't send HTML mail. There is also a #windowmaker IRC channel at freenode. To join there, connect your irc client to irc.freenode.net. irc.windowmaker.org will direct you to the correct IRC network. GNUstep ======= GNUstep is a complete object-oriented development system, based on the OpenStep specification released by NeXT(tm) (now Apple(tm)) and Sun(tm). It will provide everything one needs to produce cross-platform, object-oriented, graphical (and non-graphical) applications; providing among other things, base system libraries, a high-level GUI application framework that uses a Display PostScript(tm)-like imaging model (DGS), objects for accessing relational databases, distributed objects and a graphical development environment, with tools like interface modeller, a project management system (project center) and other tools. The GNUstep development system will be used to create a user environment, with everything needed for a complete graphical user interface, such as a file viewer, text editors and other applications. Note that the user environment (or "desktop environment") is only a small part of the whole GNUstep project and therefore it does not "compete" with other projects like KDE or GNOME, simply because they are completely different things. For more information on the GNUstep project, visit: http://www.gnustep.org Running multiple instances of Window Maker ========================================== It is not a good idea to run more than one instance of Window Maker from the same user (so that wmaker will use the same configuration files) at the same time. You might get unexpected behaviour when Window Maker updates it's configuration files. If you really desire to do this, try running Window Maker with the command line option --static so that it will not update or change any of the configuration files. Performance Tuning ================== If you want to diminish Window Maker's memory usage and improve performance, while keeping a nice appearance and good functionality, follow the items bellow: - use solid textures for everything, mainly titlebars and menus. If you want a nice looking desktop, use the Traditional style. - turn NewStyle and Superfluous off - do not bind many shortcuts in the menu and keep only the essential items in the menu - turn on DisableClip - edit wconfig.h and disable the NUMLOCK_HACK and the features you don't use anyway (keep in mind that some of the #defines might not work, as they are not fully supported). Make sure to always keep NumLock and ScrollLock turned off. - turn on DisableAnimations. You can also #undefine ANIMATIONS in wconfig.h - strip down the default IconPath and PixmapPath entries to contain only the paths that you really have in your system. - do not use large images in the root background - remove support for image formats you don't use - to reduce memory usage, disable the icon cache, by setting the RIMAGE_CACHE environment variable to 0. If you want to increase performance at the cost of memory usage, set it's value to a value like the number of different icons you use. Also, disable anti-aliased text support in ~/GNUstep/Defaults/WMGLOBAL. Keyboard Mouse Control ====================== Many people ask about adding keyboard control of mouse, like in fvwm, but Window Maker will not have such feature. The XKB extension supports mouse simulation from the keyboard, in a much more powerfull fashion than any simulation done by a window manager. To enable it, hit the Control+Shift+NumLock or Shift+NumLock key combination. You should hear the speaker beeping. To disable it, do the same thing. To control the mouse the numeric keypad is used as follows: - 4 (left arrow), 7 (Home), 8 (up arrow), 9 (PgUp), 6 (right arrow), 3 (PgDn), 2 (down arrow) and 1 (End) move the mouse to the corresponding direction; - holding one of the above keys and then holding the 5 key will move the pointer faster; - / will select the first mouse button (left button); - * will select the second mouse button (middle button); - - will select the third mouse button (right button); - 5 will do a click with the currently selected mouse button; - + will do a double-click with the currently selected button; - 0 (Ins) will click and hold the currently selected button; - . (Del) will release the currently selected button that was previously clicked with the 0 (Ins) key. The above key values work in a XFree86 3.2 (X11R6.1) X server but your milleage may vary. How to make a gdb backtrace =========================== Backtraces can help us fix bugs that make Window Maker crash. If you find a bug that crashes Window Maker, please send a backtrace with your bug report. To make a usefull backtrace, you need a core file with debugging information produced by Window Maker when it crashes. It should have been installed without stripping too. To compile wmaker with debugging information: ./configure make CFLAGS=-g If you get the dialog window telling you that wmaker crashed and asks you what to do, tell it to "Abort and leave a core file". script cd src gdb .libs/wmaker path_to_the_core_file Then, in the gdb prompt type "bt". Quit from gdb by typing "quit" and then, in the shell prompt, type "exit". The file named typescript will contain the backtrace. Copyrights & Disclaimers ======================== Window Maker is copyrighted by Alfredo K. Kojima and is licensed through the GNU General Public License. Read the COPYING file for the complete license. The icons that are distributed with this program and were made by Marco van Hylckama Vlieg, are licensed through the GNU General Public License. Read the COPYING file for the complete license. The icons listed in COPYING.WTFPL and are distributed in this program and were made by Banlu Kemiyatorn (]d), are licensed through the "do What The Fuck you want to Public License". Read the COPYING.WTFPL file for the complete license. NeXT, OpenStep and NEXTSTEP are a trademarks of NeXT Computer, Inc. All other trademarks are property of their respective owners. The authors reserve the right to make changes in the software without prior notice. Authors ======= Alfredo K. Kojima Dan Pascu ]d Please don't ask us questions before reading the documentation (esp. the FAQ, this file and INSTALL files) and about "cool" things you see in people's desktop screenshots. The AUTHORS file contains a list of the people who have contributed to the project. The name of people who have helped with localization (translation) can be found in po/README and Window Maker/README If you have any comments, fixes and bug reports (filled BUGFORMs) send them to wmaker-dev@lists.windowmaker.org WindowMaker-0.95.5/depcomp0000755000175000017500000004426712214434562012357 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # 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, 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: WindowMaker-0.95.5/m4/0000755000175000017500000000000012214434641011363 500000000000000WindowMaker-0.95.5/m4/lt~obsolete.m40000644000175000017500000001311312214434555014122 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) WindowMaker-0.95.5/m4/wm_attributes.m40000644000175000017500000000635012214432632014440 00000000000000# wm_attributes.m4 - Macros to check compiler attributes and define macros # # Copyright (c) 2013 Christophe Curis # # 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., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # WM_C_NORETURN # ------------- # # Checks if the compiler supports ISO C11 noreturn attribute, if not # try to define the keyword to a known syntax that does the job, or # if nothing works sets it to empty to, at least, be able to # compile the sources AC_DEFUN_ONCE([WM_C_NORETURN], [AC_REQUIRE([_WM_SHELLFN_FUNCATTR]) AC_CACHE_CHECK([for noreturn], [wm_cv_c_noreturn], [wm_cv_c_noreturn=no AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [#include #include /* Attribute in the prototype of the function */ noreturn int test_function(void); /* Attribute on the function itself */ noreturn int test_function(void) { _exit(1); } ], [ test_function();])], [wm_cv_c_noreturn=stdnoreturn], [for wm_attr in dnl "__attribute__((noreturn))" dnl for modern GCC-like compilers "__attribute__((__noreturn__))" dnl for older GCC-like compilers "__declspec(noreturn)" dnl for some other compilers ; do AS_IF([wm_fn_c_try_compile_funcattr "$wm_attr"], [wm_cv_c_noreturn="$wm_attr" ; break]) done]) dnl ]) AS_CASE([$wm_cv_c_noreturn], [stdnoreturn], [AC_DEFINE([HAVE_STDNORETURN], 1, [Defined if header "stdnoreturn.h" exists, it defines ISO C11 attribute 'noreturn' and it works])], [no], [AC_DEFINE([noreturn], [], [Defines the attribute to tell the compiler that a function never returns, if the ISO C11 attribute does not work])], [AC_DEFINE_UNQUOTED([noreturn], [${wm_cv_c_noreturn}], [Defines the attribute to tell the compiler that a function never returns, if the ISO C11 attribute does not work])]) ]) # _WM_SHELLFN_FUNCATTRIBUTE # ---------------------- # (internal shell function only!) # # Create a shell function to check if we can compile with special # function attributes AC_DEFUN([_WM_SHELLFN_FUNCATTR], [@%:@ wm_fn_c_try_compile_funcattr ATTRIBUTE @%:@ --------------------------------------- @%:@ Try compiling a function with the attribute ATTRIBUTE wm_fn_c_try_compile_funcattr () { AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [ /* Attribute in the prototype of the function */ int test_function(int arg) $[]1; /* Attribute on the function itself */ $[]1 int test_function(int arg) { return arg - 1; }], [int val; val = test_function(1); return val;])], [wm_retval=0], [wm_retval=1]) AS_SET_STATUS([$wm_retval]) } ]) WindowMaker-0.95.5/m4/ltversion.m40000644000175000017500000000127712214434555013605 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3017 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6b]) m4_define([LT_PACKAGE_REVISION], [1.3017]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b' macro_revision='1.3017' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) WindowMaker-0.95.5/m4/windowmaker.m40000644000175000017500000000310412214432632014070 00000000000000dnl dnl WM_CHECK_LIB(NAME, FUNCTION, EXTRALIBS) dnl AC_DEFUN([WM_CHECK_LIB], [ LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $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_XFT_VERSION(MIN_VERSION, [ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]) dnl dnl # $XFTFLAGS should be defined before calling this macro, dnl # else it will not be able to find Xft.h dnl AC_DEFUN([WM_CHECK_XFT_VERSION], [ CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $XFTFLAGS $inc_search_path" xft_major_version=`echo $1 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` xft_minor_version=`echo $1 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` xft_micro_version=`echo $1 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` AC_MSG_CHECKING([whether libXft is at least version $1]) AC_CACHE_VAL(ac_cv_lib_xft_version_ok, [AC_TRY_LINK( [/* Test version of libXft we have */ #include #include #if !defined(XFT_VERSION) || XFT_VERSION < $xft_major_version*10000 + $xft_minor_version*100 + $xft_micro_version #error libXft on this system is too old. Consider upgrading to at least $1 #endif ], [], eval "ac_cv_lib_xft_version_ok=yes", eval "ac_cv_lib_xft_version_ok=no")]) if eval "test \"`echo '$ac_cv_lib_xft_version_ok'`\" = yes"; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) ifelse([$3], , , [$3]) fi CPPFLAGS="$CPPFLAGS_old" ]) WindowMaker-0.95.5/m4/ltsugar.m40000644000175000017500000001042412214434555013233 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) WindowMaker-0.95.5/m4/ld-version-script.m40000644000175000017500000000276612214432632015142 00000000000000# ld-version-script.m4 serial 2 dnl Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # FIXME: The test below returns a false positive for mingw # cross-compiles, 'local:' statements does not reduce number of # exported symbols in a DLL. Use --disable-ld-version-script to work # around the problem. # gl_LD_VERSION_SCRIPT # -------------------- # Check if LD supports linker scripts, and define automake conditional # HAVE_LD_VERSION_SCRIPT if so. AC_DEFUN([gl_LD_VERSION_SCRIPT], [ AC_ARG_ENABLE([ld-version-script], AS_HELP_STRING([--enable-ld-version-script], [enable linker version script (default is enabled when possible)]), [have_ld_version_script=$enableval], []) if test -z "$have_ld_version_script"; then AC_MSG_CHECKING([if LD -Wl,--version-script works]) save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" cat > conftest.map < # # 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, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 8 AC_DEFUN([AX_CFLAGS_GCC_OPTION_OLD], [dnl AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ax_cv_cflags_gcc_option_$2])dnl AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for gcc m4_ifval($2,$2,-option)], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_C ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-pedantic -Werror % m4_ifval($2,$2,-option)" dnl GCC "-pedantic % m4_ifval($2,$2,-option) %% no, obsolete" dnl new GCC # do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` AC_TRY_COMPILE([],[return 0;], [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) done FLAGS="$ac_save_[]FLAGS" AC_LANG_RESTORE ]) case ".$VAR" in .ok|.ok,*) m4_ifvaln($3,$3) ;; .|.no|.no,*) m4_ifvaln($4,$4) ;; *) m4_ifvaln($3,$3,[ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" fi ]) ;; esac AS_VAR_POPDEF([VAR])dnl AS_VAR_POPDEF([FLAGS])dnl ]) dnl the only difference - the LANG selection... and the default FLAGS AC_DEFUN([AX_CXXFLAGS_GCC_OPTION_OLD], [dnl AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ax_cv_cxxflags_gcc_option_$2])dnl AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for gcc m4_ifval($2,$2,-option)], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-pedantic -Werror % m4_ifval($2,$2,-option)" dnl GCC "-pedantic % m4_ifval($2,$2,-option) %% no, obsolete" dnl new GCC # do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` AC_TRY_COMPILE([],[return 0;], [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) done FLAGS="$ac_save_[]FLAGS" AC_LANG_RESTORE ]) case ".$VAR" in .ok|.ok,*) m4_ifvaln($3,$3) ;; .|.no|.no,*) m4_ifvaln($4,$4) ;; *) m4_ifvaln($3,$3,[ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" fi ]) ;; esac AS_VAR_POPDEF([VAR])dnl AS_VAR_POPDEF([FLAGS])dnl ]) dnl ------------------------------------------------------------------------- AC_DEFUN([AX_CFLAGS_GCC_OPTION_NEW], [dnl AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ax_cv_cflags_gcc_option_$1])dnl AC_CACHE_CHECK([m4_ifval($2,$2,FLAGS) for gcc m4_ifval($1,$1,-option)], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_C ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-pedantic -Werror % m4_ifval($1,$1,-option)" dnl GCC "-pedantic % m4_ifval($1,$1,-option) %% no, obsolete" dnl new GCC # do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` AC_TRY_COMPILE([],[return 0;], [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) done FLAGS="$ac_save_[]FLAGS" AC_LANG_RESTORE ]) case ".$VAR" in .ok|.ok,*) m4_ifvaln($3,$3) ;; .|.no|.no,*) m4_ifvaln($4,$4) ;; *) m4_ifvaln($3,$3,[ if echo " $[]m4_ifval($2,$2,FLAGS) " | grep " $VAR " 2>&1 >/dev/null then AC_RUN_LOG([: m4_ifval($2,$2,FLAGS) does contain $VAR]) else AC_RUN_LOG([: m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR"]) m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR" fi ]) ;; esac AS_VAR_POPDEF([VAR])dnl AS_VAR_POPDEF([FLAGS])dnl ]) dnl the only difference - the LANG selection... and the default FLAGS AC_DEFUN([AX_CXXFLAGS_GCC_OPTION_NEW], [dnl AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ax_cv_cxxflags_gcc_option_$1])dnl AC_CACHE_CHECK([m4_ifval($2,$2,FLAGS) for gcc m4_ifval($1,$1,-option)], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-pedantic -Werror % m4_ifval($1,$1,-option)" dnl GCC "-pedantic % m4_ifval($1,$1,-option) %% no, obsolete" dnl new GCC # do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` AC_TRY_COMPILE([],[return 0;], [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) done FLAGS="$ac_save_[]FLAGS" AC_LANG_RESTORE ]) case ".$VAR" in .ok|.ok,*) m4_ifvaln($3,$3) ;; .|.no|.no,*) m4_ifvaln($4,$4) ;; *) m4_ifvaln($3,$3,[ if echo " $[]m4_ifval($2,$2,FLAGS) " | grep " $VAR " 2>&1 >/dev/null then AC_RUN_LOG([: m4_ifval($2,$2,FLAGS) does contain $VAR]) else AC_RUN_LOG([: m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR"]) m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR" fi ]) ;; esac AS_VAR_POPDEF([VAR])dnl AS_VAR_POPDEF([FLAGS])dnl ]) AC_DEFUN([AX_CFLAGS_GCC_OPTION],[ifelse(m4_bregexp([$2],[-]),-1, [AX_CFLAGS_GCC_OPTION_NEW($@)],[AX_CFLAGS_GCC_OPTION_OLD($@)])]) AC_DEFUN([AX_CXXFLAGS_GCC_OPTION],[ifelse(m4_bregexp([$2],[-]),-1, [AX_CXXFLAGS_GCC_OPTION_NEW($@)],[AX_CXXFLAGS_GCC_OPTION_OLD($@)])]) WindowMaker-0.95.5/m4/wm_libmath.m40000644000175000017500000000242212214432632013666 00000000000000# wm_libmath.m4 - Macros to check proper libMath usage for WINGs # # Copyright (c) 2013 Christophe Curis # # 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., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # WM_CHECK_LIBM # ------------- # # Checks the needed library link flags needed to have math lib # Sets variable LIBM with the appropriates flags AC_DEFUN_ONCE([WM_CHECK_LIBM], [AC_CHECK_HEADER([math.h], [], [AC_MSG_ERROR([header for math library not found])]) AC_CHECK_FUNC(atan, [LIBM=], [AC_CHECK_LIB(m, [atan], [LIBM=-lm], [AC_MSG_WARN(Could not find Math library, you may experience problems) LIBM=] )] ) dnl AC_SUBST(LIBM) dnl ]) WindowMaker-0.95.5/m4/libtool.m40000644000175000017500000077464712214434555013246 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. if test "$no_create" != yes; then lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF [$]* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) WindowMaker-0.95.5/m4/ltoptions.m40000644000175000017500000002724212214434555013613 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) WindowMaker-0.95.5/configure0000755000175000017500000176006512214434557012717 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.65 for WindowMaker 0.95.5. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF $* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='WindowMaker' PACKAGE_TARNAME='WindowMaker' PACKAGE_VERSION='0.95.5' PACKAGE_STRING='WindowMaker 0.95.5' PACKAGE_BUGREPORT='' PACKAGE_URL='http://www.windowmaker.org/' ac_unique_file="src/WindowMaker.h" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='inc_search_path lib_search_path am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS HAVE_LD_VERSION_SCRIPT_FALSE HAVE_LD_VERSION_SCRIPT_TRUE wprefs_bindir wprefs_datadir pixmapdir ICON_EXT_TIFF_FALSE ICON_EXT_TIFF_TRUE ICON_EXT_XPM_FALSE ICON_EXT_XPM_TRUE ICONEXT GFXLIBS HEADER_SEARCH_PATH LIBRARY_SEARCH_PATH XLIBS XLFLAGS XCFLAGS LIBXINERAMA XFTLIBS XFTFLAGS XFTCONFIG FCLIBS LIBM LIBXRANDR X_LIBRARY_PATH LIBXMU X_EXTRA_LIBS X_LIBS X_PRE_LIBS X_CFLAGS XMKMF supported_locales WINGSMOFILES UTILMOFILES WPMOFILES MOFILES NLSDIR INTLIBS menutextdomain XGETTEXT PKGCONFIG LIBBSD LIBOBJS USE_LCOV_FALSE USE_LCOV_TRUE lcov_output_directory WM_OSDEP_GENERIC_FALSE WM_OSDEP_GENERIC_TRUE WM_OSDEP_DARWIN_FALSE WM_OSDEP_DARWIN_TRUE WM_OSDEP_BSD_FALSE WM_OSDEP_BSD_TRUE WM_OSDEP_LINUX_FALSE WM_OSDEP_LINUX_TRUE OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL EGREP GREP CPP LN_S am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC WUTIL_VERSION WINGS_VERSION WRASTER_VERSION AM_BACKSLASH AM_DEFAULT_VERBOSITY am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock enable_debug with_libs_from with_incs_from enable_boehm_gc enable_lcov with_libbsd with_nlsdir with_menu_textdomain with_x enable_locale enable_modelock enable_shape enable_xrandr enable_xinerama enable_shm enable_xpm enable_png enable_jpeg enable_gif enable_tiff with_pixmapdir with_gnustepdir enable_usermenu enable_ld_version_script ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP XMKMF' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error "unrecognized option: \`$ac_option' Try \`$0 --help' for more information." ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures WindowMaker 0.95.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/WindowMaker] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names X features: --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of WindowMaker 0.95.5:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0') --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-debug enable debugging options, [default=no] --enable-boehm-gc use Boehm GC instead of the default libc malloc() [default=no] --enable-lcov=output-directory enable coverage data generation using LCOV (GCC only) [default=no] --disable-locale disable use of X locale support --enable-modelock XKB keyboard language status support --disable-shape disable shaped window extension support --enable-xrandr enable XRandR window extension support (NOT recommended, buggy) --enable-xinerama enable Xinerama extension support --disable-shm disable usage of MIT-SHM extension --disable-xpm disable use of XPM pixmaps through libXpm --disable-png disable PNG support through libpng --disable-jpeg disable JPEG support through libjpeg --disable-gif disable GIF support through libgif or libungif --disable-tiff disable use of TIFF images through libtiff --enable-usermenu user defined menus for applications --enable-ld-version-script enable linker version script (default is enabled when possible) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libs-from pass compiler flags to look for libraries --with-incs-from pass compiler flags to look for header files --without-libbsd do not use libbsd for strlcat and strlcpy [default=check] --with-nlsdir=PATH specify where the locale stuff should go --with-menu-textdomain=DOMAIN specify gettext domain used for menu translations --with-x use the X Window System --with-pixmapdir=PATH specify where pixmaps are located [DATADIR/pixmaps] --with-gnustepdir=PATH specify the directory for GNUstep applications Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor XMKMF Path to xmkmf, Makefile generator for X Window System Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. WindowMaker home page: . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF WindowMaker configure 0.95.5 generated by GNU Autoconf 2.65 Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel # ac_fn_c_check_decl LINENO SYMBOL VAR # ------------------------------------ # Tests whether SYMBOL is declared, setting cache variable VAR accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5 $as_echo_n "checking whether $2 is declared... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $2 (void) $2; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_decl # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by WindowMaker $as_me 0.95.5, which was generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do for ac_t in install-sh install.sh shtool; do if test -f "$ac_dir/$ac_t"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/$ac_t -c" break 2 fi done done if test -z "$ac_aux_dir"; then as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='WindowMaker' VERSION='0.95.5' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' WRASTER_CURRENT=4 WRASTER_REVISION=1 WRASTER_AGE=1 WRASTER_VERSION=$WRASTER_CURRENT:$WRASTER_REVISION:$WRASTER_AGE WINGS_CURRENT=2 WINGS_REVISION=1 WINGS_AGE=0 WINGS_VERSION=$WINGS_CURRENT:$WINGS_REVISION:$WINGS_AGE WUTIL_CURRENT=3 WUTIL_REVISION=0 WUTIL_AGE=0 WUTIL_VERSION=$WUTIL_CURRENT:$WUTIL_REVISION:$WUTIL_AGE DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "no acceptable C compiler found in \$PATH See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { as_fn_set_status 77 as_fn_error "C compiler cannot create executables See \`config.log' for more details." "$LINENO" 5; }; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of object files: cannot compile See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } if test "${ac_cv_search_strerror+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strerror (); int main () { return strerror (); ; return 0; } _ACEOF for ac_lib in '' cposix; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_strerror=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_strerror+set}" = set; then : break fi done if test "${ac_cv_search_strerror+set}" = set; then : else ac_cv_search_strerror=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 $as_echo "$ac_cv_search_strerror" >&6; } ac_res=$ac_cv_search_strerror if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "no acceptable C compiler found in \$PATH See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" if test $ac_cv_c_compiler_gnu = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 $as_echo_n "checking whether $CC needs -traditional... " >&6; } if test "${ac_cv_prog_gcc_traditional+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_pattern="Autoconf.*'x'" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then : ac_cv_prog_gcc_traditional=yes else ac_cv_prog_gcc_traditional=no fi rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then : ac_cv_prog_gcc_traditional=yes fi rm -f conftest* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 $as_echo "$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6b' macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:5625: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:5628: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:5631: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 6825 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #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)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8217: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8221: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8556: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8560: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8661: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8665: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8716: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8720: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) link_all_deplibs=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11100 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11196 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; case "$enableval" in #( yes) : debug=yes ;; #( no) : debug=no ;; #( *) : as_fn_error "bad value $enableval for --enable-debug" "$LINENO" 5 ;; esac else debug=no fi if test "x$debug" = "xyes"; then : CFLAGS="-g -O0" ; CPPFLAGS="$CPPFLAGS -DDEBUG" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wall" >&5 $as_echo_n "checking CFLAGS for gcc -Wall... " >&6; } if test "${ax_cv_cflags_gcc_option__Wall+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_cv_cflags_gcc_option__Wall="no, unknown" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_save_CFLAGS="$CFLAGS" for ac_arg in "-pedantic -Werror % -Wall" "-pedantic % -Wall %% no, obsolete" # do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_cflags_gcc_option__Wall=`echo $ac_arg | sed -e 's,.*% *,,'` ; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CFLAGS="$ac_save_CFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cflags_gcc_option__Wall" >&5 $as_echo "$ax_cv_cflags_gcc_option__Wall" >&6; } case ".$ax_cv_cflags_gcc_option__Wall" in .ok|.ok,*) ;; .|.no|.no,*) ;; *) if echo " $CFLAGS " | grep " $ax_cv_cflags_gcc_option__Wall " 2>&1 >/dev/null then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ax_cv_cflags_gcc_option__Wall"; } >&5 (: CFLAGS does contain $ax_cv_cflags_gcc_option__Wall) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ax_cv_cflags_gcc_option__Wall\""; } >&5 (: CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wall") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wall" fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wextra -Wno-sign-compare -Wno-unused-parameter" >&5 $as_echo_n "checking CFLAGS for gcc -Wextra -Wno-sign-compare -Wno-unused-parameter... " >&6; } if test "${ax_cv_cflags_gcc_option__Wextra__Wno_sign_compare__Wno_unused_parameter+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_cv_cflags_gcc_option__Wextra__Wno_sign_compare__Wno_unused_parameter="no, unknown" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_save_CFLAGS="$CFLAGS" for ac_arg in "-pedantic -Werror % -Wextra -Wno-sign-compare -Wno-unused-parameter" "-pedantic % -Wextra -Wno-sign-compare -Wno-unused-parameter %% no, obsolete" # do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_cflags_gcc_option__Wextra__Wno_sign_compare__Wno_unused_parameter=`echo $ac_arg | sed -e 's,.*% *,,'` ; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CFLAGS="$ac_save_CFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cflags_gcc_option__Wextra__Wno_sign_compare__Wno_unused_parameter" >&5 $as_echo "$ax_cv_cflags_gcc_option__Wextra__Wno_sign_compare__Wno_unused_parameter" >&6; } case ".$ax_cv_cflags_gcc_option__Wextra__Wno_sign_compare__Wno_unused_parameter" in .ok|.ok,*) ;; .|.no|.no,*) ;; *) if echo " $CFLAGS " | grep " $ax_cv_cflags_gcc_option__Wextra__Wno_sign_compare__Wno_unused_parameter " 2>&1 >/dev/null then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ax_cv_cflags_gcc_option__Wextra__Wno_sign_compare__Wno_unused_parameter"; } >&5 (: CFLAGS does contain $ax_cv_cflags_gcc_option__Wextra__Wno_sign_compare__Wno_unused_parameter) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ax_cv_cflags_gcc_option__Wextra__Wno_sign_compare__Wno_unused_parameter\""; } >&5 (: CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wextra__Wno_sign_compare__Wno_unused_parameter") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wextra__Wno_sign_compare__Wno_unused_parameter" fi ;; esac if test "x$debug" = "xyes"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wfloat-equal" >&5 $as_echo_n "checking CFLAGS for gcc -Wfloat-equal... " >&6; } if test "${ax_cv_cflags_gcc_option__Wfloat_equal+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_cv_cflags_gcc_option__Wfloat_equal="no, unknown" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_save_CFLAGS="$CFLAGS" for ac_arg in "-pedantic -Werror % -Wfloat-equal" "-pedantic % -Wfloat-equal %% no, obsolete" # do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_cflags_gcc_option__Wfloat_equal=`echo $ac_arg | sed -e 's,.*% *,,'` ; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CFLAGS="$ac_save_CFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cflags_gcc_option__Wfloat_equal" >&5 $as_echo "$ax_cv_cflags_gcc_option__Wfloat_equal" >&6; } case ".$ax_cv_cflags_gcc_option__Wfloat_equal" in .ok|.ok,*) ;; .|.no|.no,*) ;; *) if echo " $CFLAGS " | grep " $ax_cv_cflags_gcc_option__Wfloat_equal " 2>&1 >/dev/null then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ax_cv_cflags_gcc_option__Wfloat_equal"; } >&5 (: CFLAGS does contain $ax_cv_cflags_gcc_option__Wfloat_equal) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ax_cv_cflags_gcc_option__Wfloat_equal\""; } >&5 (: CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wfloat_equal") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wfloat_equal" fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wlogical-op" >&5 $as_echo_n "checking CFLAGS for gcc -Wlogical-op... " >&6; } if test "${ax_cv_cflags_gcc_option__Wlogical_op+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_cv_cflags_gcc_option__Wlogical_op="no, unknown" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_save_CFLAGS="$CFLAGS" for ac_arg in "-pedantic -Werror % -Wlogical-op" "-pedantic % -Wlogical-op %% no, obsolete" # do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_cflags_gcc_option__Wlogical_op=`echo $ac_arg | sed -e 's,.*% *,,'` ; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CFLAGS="$ac_save_CFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cflags_gcc_option__Wlogical_op" >&5 $as_echo "$ax_cv_cflags_gcc_option__Wlogical_op" >&6; } case ".$ax_cv_cflags_gcc_option__Wlogical_op" in .ok|.ok,*) ;; .|.no|.no,*) ;; *) if echo " $CFLAGS " | grep " $ax_cv_cflags_gcc_option__Wlogical_op " 2>&1 >/dev/null then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ax_cv_cflags_gcc_option__Wlogical_op"; } >&5 (: CFLAGS does contain $ax_cv_cflags_gcc_option__Wlogical_op) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ax_cv_cflags_gcc_option__Wlogical_op\""; } >&5 (: CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wlogical_op") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wlogical_op" fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wpointer-arith" >&5 $as_echo_n "checking CFLAGS for gcc -Wpointer-arith... " >&6; } if test "${ax_cv_cflags_gcc_option__Wpointer_arith+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_cv_cflags_gcc_option__Wpointer_arith="no, unknown" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_save_CFLAGS="$CFLAGS" for ac_arg in "-pedantic -Werror % -Wpointer-arith" "-pedantic % -Wpointer-arith %% no, obsolete" # do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_cflags_gcc_option__Wpointer_arith=`echo $ac_arg | sed -e 's,.*% *,,'` ; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CFLAGS="$ac_save_CFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cflags_gcc_option__Wpointer_arith" >&5 $as_echo "$ax_cv_cflags_gcc_option__Wpointer_arith" >&6; } case ".$ax_cv_cflags_gcc_option__Wpointer_arith" in .ok|.ok,*) ;; .|.no|.no,*) ;; *) if echo " $CFLAGS " | grep " $ax_cv_cflags_gcc_option__Wpointer_arith " 2>&1 >/dev/null then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ax_cv_cflags_gcc_option__Wpointer_arith"; } >&5 (: CFLAGS does contain $ax_cv_cflags_gcc_option__Wpointer_arith) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ax_cv_cflags_gcc_option__Wpointer_arith\""; } >&5 (: CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wpointer_arith") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wpointer_arith" fi ;; esac else { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wno-deprecated" >&5 $as_echo_n "checking CFLAGS for gcc -Wno-deprecated... " >&6; } if test "${ax_cv_cflags_gcc_option__Wno_deprecated+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_cv_cflags_gcc_option__Wno_deprecated="no, unknown" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_save_CFLAGS="$CFLAGS" for ac_arg in "-pedantic -Werror % -Wno-deprecated" "-pedantic % -Wno-deprecated %% no, obsolete" # do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_cflags_gcc_option__Wno_deprecated=`echo $ac_arg | sed -e 's,.*% *,,'` ; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CFLAGS="$ac_save_CFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cflags_gcc_option__Wno_deprecated" >&5 $as_echo "$ax_cv_cflags_gcc_option__Wno_deprecated" >&6; } case ".$ax_cv_cflags_gcc_option__Wno_deprecated" in .ok|.ok,*) ;; .|.no|.no,*) ;; *) if echo " $CFLAGS " | grep " $ax_cv_cflags_gcc_option__Wno_deprecated " 2>&1 >/dev/null then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ax_cv_cflags_gcc_option__Wno_deprecated"; } >&5 (: CFLAGS does contain $ax_cv_cflags_gcc_option__Wno_deprecated) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ax_cv_cflags_gcc_option__Wno_deprecated\""; } >&5 (: CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wno_deprecated") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wno_deprecated" fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wno-deprecated-declarations" >&5 $as_echo_n "checking CFLAGS for gcc -Wno-deprecated-declarations... " >&6; } if test "${ax_cv_cflags_gcc_option__Wno_deprecated_declarations+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_cv_cflags_gcc_option__Wno_deprecated_declarations="no, unknown" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_save_CFLAGS="$CFLAGS" for ac_arg in "-pedantic -Werror % -Wno-deprecated-declarations" "-pedantic % -Wno-deprecated-declarations %% no, obsolete" # do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_cflags_gcc_option__Wno_deprecated_declarations=`echo $ac_arg | sed -e 's,.*% *,,'` ; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CFLAGS="$ac_save_CFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cflags_gcc_option__Wno_deprecated_declarations" >&5 $as_echo "$ax_cv_cflags_gcc_option__Wno_deprecated_declarations" >&6; } case ".$ax_cv_cflags_gcc_option__Wno_deprecated_declarations" in .ok|.ok,*) ;; .|.no|.no,*) ;; *) if echo " $CFLAGS " | grep " $ax_cv_cflags_gcc_option__Wno_deprecated_declarations " 2>&1 >/dev/null then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ax_cv_cflags_gcc_option__Wno_deprecated_declarations"; } >&5 (: CFLAGS does contain $ax_cv_cflags_gcc_option__Wno_deprecated_declarations) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ax_cv_cflags_gcc_option__Wno_deprecated_declarations\""; } >&5 (: CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wno_deprecated_declarations") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__Wno_deprecated_declarations" fi ;; esac fi case "$host" in #( *-*-linux*|*-*-cygwin*|*-gnu*) : WM_OSDEP="linux" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600" ;; #( *-*-freebsd*|*-k*bsd-gnu*) : WM_OSDEP="bsd" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -DFREEBSD" ;; #( *-*-netbsd*) : WM_OSDEP="bsd" ; CPPFLAGS="$CPPFLAGS -DNETBSD" ;; #( *-*-openbsd*) : WM_OSDEP="bsd" ; CPPFLAGS="$CPPFLAGS -DOPENBSD" ;; #( *-*-dragonfly*) : WM_OSDEP="bsd" ; CPPFLAGS="$CPPFLAGS -DDRAGONFLYBSD" ;; #( *-apple-darwin*) : WM_OSDEP="darwin" ;; #( *-*-solaris*) : WM_OSDEP="stub" ;; #( *) : WM_OSDEP="stub" ;; esac if test "x$WM_OSDEP" = "xlinux"; then WM_OSDEP_LINUX_TRUE= WM_OSDEP_LINUX_FALSE='#' else WM_OSDEP_LINUX_TRUE='#' WM_OSDEP_LINUX_FALSE= fi if test "x$WM_OSDEP" = "xbsd"; then WM_OSDEP_BSD_TRUE= WM_OSDEP_BSD_FALSE='#' else WM_OSDEP_BSD_TRUE='#' WM_OSDEP_BSD_FALSE= fi if test "x$WM_OSDEP" = "xdarwin"; then WM_OSDEP_DARWIN_TRUE= WM_OSDEP_DARWIN_FALSE='#' else WM_OSDEP_DARWIN_TRUE='#' WM_OSDEP_DARWIN_FALSE= fi if test "x$WM_OSDEP" = "xstub"; then WM_OSDEP_GENERIC_TRUE= WM_OSDEP_GENERIC_FALSE='#' else WM_OSDEP_GENERIC_TRUE='#' WM_OSDEP_GENERIC_FALSE= fi test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' _bindir=`eval echo $bindir` _bindir=`eval echo $_bindir` lib_search_path='-L${libdir}' inc_search_path='-I${includedir}' # Check whether --with-libs-from was given. if test "${with_libs_from+set}" = set; then : withval=$with_libs_from; lib_search_path="$withval $lib_search_path" fi # Check whether --with-incs-from was given. if test "${with_incs_from+set}" = set; then : withval=$with_incs_from; inc_search_path="$withval $inc_search_path" fi with_boehm_gc=no # Check whether --enable-boehm-gc was given. if test "${enable_boehm_gc+set}" = set; then : enableval=$enable_boehm_gc; with_boehm_gc=$enableval fi if test "x$with_boehm_gc" = "xyes"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GC_malloc" >&5 $as_echo_n "checking for library containing GC_malloc... " >&6; } if test "${ac_cv_search_GC_malloc+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char GC_malloc (); int main () { return GC_malloc (); ; return 0; } _ACEOF for ac_lib in '' gc; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_GC_malloc=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_GC_malloc+set}" = set; then : break fi done if test "${ac_cv_search_GC_malloc+set}" = set; then : else ac_cv_search_GC_malloc=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_GC_malloc" >&5 $as_echo "$ac_cv_search_GC_malloc" >&6; } ac_res=$ac_cv_search_GC_malloc if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" $as_echo "#define USE_BOEHM_GC 1" >>confdefs.h else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "--enable-boehm-gc specified but test for libgc failed See \`config.log' for more details." "$LINENO" 5; } fi fi # Check whether --enable-lcov was given. if test "${enable_lcov+set}" = set; then : enableval=$enable_lcov; else enable_lcov=no fi if test "x$enable_lcov" != "xno"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -fprofile-arcs -ftest-coverage" >&5 $as_echo_n "checking CFLAGS for gcc -fprofile-arcs -ftest-coverage... " >&6; } if test "${ax_cv_cflags_gcc_option__fprofile_arcs__ftest_coverage+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_cv_cflags_gcc_option__fprofile_arcs__ftest_coverage="no, unknown" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_save_CFLAGS="$CFLAGS" for ac_arg in "-pedantic -Werror % -fprofile-arcs -ftest-coverage" "-pedantic % -fprofile-arcs -ftest-coverage %% no, obsolete" # do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_cflags_gcc_option__fprofile_arcs__ftest_coverage=`echo $ac_arg | sed -e 's,.*% *,,'` ; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CFLAGS="$ac_save_CFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cflags_gcc_option__fprofile_arcs__ftest_coverage" >&5 $as_echo "$ax_cv_cflags_gcc_option__fprofile_arcs__ftest_coverage" >&6; } case ".$ax_cv_cflags_gcc_option__fprofile_arcs__ftest_coverage" in .ok|.ok,*) ;; .|.no|.no,*) ;; *) if echo " $CFLAGS " | grep " $ax_cv_cflags_gcc_option__fprofile_arcs__ftest_coverage " 2>&1 >/dev/null then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ax_cv_cflags_gcc_option__fprofile_arcs__ftest_coverage"; } >&5 (: CFLAGS does contain $ax_cv_cflags_gcc_option__fprofile_arcs__ftest_coverage) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ax_cv_cflags_gcc_option__fprofile_arcs__ftest_coverage\""; } >&5 (: CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__fprofile_arcs__ftest_coverage") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } CFLAGS="$CFLAGS $ax_cv_cflags_gcc_option__fprofile_arcs__ftest_coverage" fi ;; esac if test "x$enable_lcov" = "xyes"; then lcov_output_directory="coverage-report" else lcov_output_directory="${enable_lcov}/coverage-report" fi fi if test "x$enable_lcov" != "xno"; then USE_LCOV_TRUE= USE_LCOV_FALSE='#' else USE_LCOV_TRUE='#' USE_LCOV_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 $as_echo_n "checking for working memcmp... " >&6; } if test "${ac_cv_func_memcmp_working+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_memcmp_working=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Some versions of memcmp are not 8-bit clean. */ char c0 = '\100', c1 = '\200', c2 = '\201'; if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) return 1; /* The Next x86 OpenStep bug shows up only when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary. William Lewis provided this test program. */ { char foo[21]; char bar[21]; int i; for (i = 0; i < 4; i++) { char *a = foo + i; char *b = bar + i; strcpy (a, "--------01111111"); strcpy (b, "--------10000000"); if (memcmp (a, b, 16) >= 0) return 1; } return 0; } ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_memcmp_working=yes else ac_cv_func_memcmp_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 $as_echo "$ac_cv_func_memcmp_working" >&6; } test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in *" memcmp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" ;; esac for ac_func in vprintf do : ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" if test "x$ac_cv_func_vprintf" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VPRINTF 1 _ACEOF ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" if test "x$ac_cv_func__doprnt" = x""yes; then : $as_echo "#define HAVE_DOPRNT 1" >>confdefs.h fi fi done for ac_func in gethostname select poll strcasecmp strncasecmp \ setsid mallinfo mkstemp sysconf do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" eval as_val=\$$as_ac_var if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Check whether --with-libbsd was given. if test "${with_libbsd+set}" = set; then : withval=$with_libbsd; if test "x$with_libbsd" != "xno"; then : with_libbsd=bsd with_libbsd= fi else with_libbsd=bsd fi tmp_libs=$LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strlcat" >&5 $as_echo_n "checking for library containing strlcat... " >&6; } if test "${ac_cv_search_strlcat+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strlcat (); int main () { return strlcat (); ; return 0; } _ACEOF for ac_lib in '' $with_libbsd; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_strlcat=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_strlcat+set}" = set; then : break fi done if test "${ac_cv_search_strlcat+set}" = set; then : else ac_cv_search_strlcat=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strlcat" >&5 $as_echo "$ac_cv_search_strlcat" >&6; } ac_res=$ac_cv_search_strlcat if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" $as_echo "#define HAVE_STRLCAT 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strlcpy" >&5 $as_echo_n "checking for library containing strlcpy... " >&6; } if test "${ac_cv_search_strlcpy+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strlcpy (); int main () { return strlcpy (); ; return 0; } _ACEOF for ac_lib in '' $with_libbsd; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_strlcpy=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_strlcpy+set}" = set; then : break fi done if test "${ac_cv_search_strlcpy+set}" = set; then : else ac_cv_search_strlcpy=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strlcpy" >&5 $as_echo "$ac_cv_search_strlcpy" >&6; } ac_res=$ac_cv_search_strlcpy if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" $as_echo "#define HAVE_STRLCAT 1" >>confdefs.h fi LIBS=$tmp_libs LIBBSD= if test "x$ac_cv_search_strlcat" = "x-lbsd" -o "x$ac_cv_search_strlcpy" = "x-lbsd"; then : LIBBSD=-lbsd for ac_header in bsd/string.h do : ac_fn_c_check_header_mongrel "$LINENO" "bsd/string.h" "ac_cv_header_bsd_string_h" "$ac_includes_default" if test "x$ac_cv_header_bsd_string_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BSD_STRING_H 1 _ACEOF fi done fi if test "x$WM_OSDEP" = "xbsd"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing kvm_openfiles" >&5 $as_echo_n "checking for library containing kvm_openfiles... " >&6; } if test "${ac_cv_search_kvm_openfiles+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char kvm_openfiles (); int main () { return kvm_openfiles (); ; return 0; } _ACEOF for ac_lib in '' kvm; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_kvm_openfiles=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_kvm_openfiles+set}" = set; then : break fi done if test "${ac_cv_search_kvm_openfiles+set}" = set; then : else ac_cv_search_kvm_openfiles=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_kvm_openfiles" >&5 $as_echo "$ac_cv_search_kvm_openfiles" >&6; } ac_res=$ac_cv_search_kvm_openfiles if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi for ac_header in sys/inotify.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/inotify.h" "ac_cv_header_sys_inotify_h" "$ac_includes_default" if test "x$ac_cv_header_sys_inotify_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_INOTIFY_H 1 _ACEOF $as_echo "#define HAVE_INOTIFY 1" >>confdefs.h fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 $as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } if test "${ac_cv_header_sys_wait_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) #endif #ifndef WIFEXITED # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif int main () { int s; wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_sys_wait_h=yes else ac_cv_header_sys_wait_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5 $as_echo "$ac_cv_header_sys_wait_h" >&6; } if test $ac_cv_header_sys_wait_h = yes; then $as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if test "${ac_cv_header_time+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi for ac_header in fcntl.h limits.h sys/ioctl.h libintl.h poll.h malloc.h ctype.h \ string.h strings.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "#include /* NetBSD declares sys_siglist in unistd.h. */ #ifdef HAVE_UNISTD_H # include #endif " if test "x$ac_cv_have_decl_sys_siglist" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SYS_SIGLIST $ac_have_decl _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if test "${ac_cv_c_inline+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac # wm_fn_c_try_compile_funcattr ATTRIBUTE # --------------------------------------- # Try compiling a function with the attribute ATTRIBUTE wm_fn_c_try_compile_funcattr () { cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Attribute in the prototype of the function */ int test_function(int arg) $1; /* Attribute on the function itself */ $1 int test_function(int arg) { return arg - 1; } int main () { int val; val = test_function(1); return val; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : wm_retval=0 else wm_retval=1 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext as_fn_set_status $wm_retval } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for noreturn" >&5 $as_echo_n "checking for noreturn... " >&6; } if test "${wm_cv_c_noreturn+set}" = set; then : $as_echo_n "(cached) " >&6 else wm_cv_c_noreturn=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Attribute in the prototype of the function */ noreturn int test_function(void); /* Attribute on the function itself */ noreturn int test_function(void) { _exit(1); } int main () { test_function(); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : wm_cv_c_noreturn=stdnoreturn else for wm_attr in "__attribute__((noreturn))" "__attribute__((__noreturn__))" "__declspec(noreturn)" ; do if wm_fn_c_try_compile_funcattr "$wm_attr"; then : wm_cv_c_noreturn="$wm_attr" ; break fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $wm_cv_c_noreturn" >&5 $as_echo "$wm_cv_c_noreturn" >&6; } case $wm_cv_c_noreturn in #( stdnoreturn) : $as_echo "#define HAVE_STDNORETURN 1" >>confdefs.h ;; #( no) : $as_echo "#define noreturn /**/" >>confdefs.h ;; #( *) : cat >>confdefs.h <<_ACEOF #define noreturn ${wm_cv_c_noreturn} _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 $as_echo_n "checking return type of signal handlers... " >&6; } if test "${ac_cv_type_signal+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_signal=int else ac_cv_type_signal=void fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 $as_echo "$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal _ACEOF # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_PKGCONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$PKGCONFIG"; then ac_cv_prog_PKGCONFIG="$PKGCONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_PKGCONFIG="pkg-config" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi PKGCONFIG=$ac_cv_prog_PKGCONFIG if test -n "$PKGCONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 $as_echo "$PKGCONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi INTLIBS="" ac_fn_c_check_func "$LINENO" "gettext" "ac_cv_func_gettext" if test "x$ac_cv_func_gettext" = x""yes; then : HAVEGETTEXT="yes" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettext in -lintl" >&5 $as_echo_n "checking for gettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_gettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gettext (); int main () { return gettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_gettext=yes else ac_cv_lib_intl_gettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_gettext" >&5 $as_echo "$ac_cv_lib_intl_gettext" >&6; } if test "x$ac_cv_lib_intl_gettext" = x""yes; then : INTLIBS="-lintl" HAVEGETTEXT="yes" else INTLIBS="" fi fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$XGETTEXT"; then ac_cv_prog_XGETTEXT="$XGETTEXT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_XGETTEXT="xgettext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi XGETTEXT=$ac_cv_prog_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$XGETTEXT" != ""; then if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then echo "xgettext isn't GNU version" XGETTEXT="" fi fi if test "$LINGUAS" != ""; then if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then $as_echo "#define I18N 1" >>confdefs.h PO="" echo "xgettext and gettext() exist; will build i18n support for $LINGUAS" else LINGUAS="" PO="" echo "xgettext and libintl.a don't both exist; will not build i18n support" fi else INTLIBS="" MOFILES="" WPMOFILES="" UTILMOFILES="" PO="" fi supported_locales="be bg bs ca cs da de el es et fi fr gl hr hu hy it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW" supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW" supported_wings_locales="bg ca cs de fr sk" supported_util_locales="de es fr pt" for lang in $LINGUAS; do ok=0 for l in $supported_locales; do if test "$l" = "$lang"; then ok=1 break fi done if test "$ok" = 1; then MOFILES="$MOFILES $lang.mo" else echo "Locale $lang is not supported." fi ok=0 for l in $supported_wprefs_locales; do if test "$l" = "$lang"; then ok=1 break fi done if test "$ok" = 1; then WPMOFILES="$WPMOFILES $lang.mo" fi ok=0 for l in $supported_util_locales; do if test "$l" = "$lang"; then ok=1 break fi done if test "$ok" = 1; then UTILMOFILES="$UTILMOFILES $lang.mo" fi ok=0 for l in $supported_wings_locales; do if test "$l" = "$lang"; then ok=1 break fi done if test "$ok" = 1; then WINGSMOFILES="$WINGSMOFILES $lang.mo" fi done # Check whether --with-nlsdir was given. if test "${with_nlsdir+set}" = set; then : withval=$with_nlsdir; fi if test "x$NLSDIR" = "x"; then if test "x$with_nlsdir" != "x"; then NLSDIR=$with_nlsdir else NLSDIR='$(prefix)/lib/locale' fi fi menutextdomain= # Check whether --with-menu-textdomain was given. if test "${with_menu_textdomain+set}" = set; then : withval=$with_menu_textdomain; if test "x$withval" != "xno"; then menutextdomain=$withval fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 $as_echo_n "checking for X... " >&6; } # Check whether --with-x was given. if test "${with_x+set}" = set; then : withval=$with_x; fi # $have_x is `yes', `no', `disabled', or empty when we do not yet know. if test "x$with_x" = xno; then # The user explicitly disabled X. have_x=disabled else case $x_includes,$x_libraries in #( *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #( *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : $as_echo_n "(cached) " >&6 else # One or both of the vars are not set, and there is no cached value. ac_x_includes=no ac_x_libraries=no rm -f -r conftest.dir if mkdir conftest.dir; then cd conftest.dir cat >Imakefile <<'_ACEOF' incroot: @echo incroot='${INCROOT}' usrlibdir: @echo usrlibdir='${USRLIBDIR}' libdir: @echo libdir='${LIBDIR}' _ACEOF if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering...", which would confuse us. for ac_var in incroot usrlibdir libdir; do eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" done # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl dylib la dll; do if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && test -f "$ac_im_libdir/libX11.$ac_extension"; then ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are # bogus both because they are the default anyway, and because # using them would break gcc on systems where it needs fixed includes. case $ac_im_incroot in /usr/include) ac_x_includes= ;; *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; esac case $ac_im_usrlibdir in /usr/lib | /usr/lib64 | /lib | /lib64) ;; *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; esac fi cd .. rm -f -r conftest.dir fi # Standard set of common directories for X headers. # Check X11 before X11Rn because it is often a symlink to the current release. ac_x_header_dirs=' /usr/X11/include /usr/X11R7/include /usr/X11R6/include /usr/X11R5/include /usr/X11R4/include /usr/include/X11 /usr/include/X11R7 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include /usr/local/X11R7/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 /usr/local/include/X11R7 /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 /usr/X386/include /usr/x386/include /usr/XFree86/include/X11 /usr/include /usr/local/include /usr/unsupported/include /usr/athena/include /usr/local/x11r5/include /usr/lpp/Xamples/include /usr/openwin/include /usr/openwin/share/include' if test "$ac_x_includes" = no; then # Guess where to find include files, by looking for Xlib.h. # First, try using that file with no special directory specified. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # We can compile using X headers with no special include directory. ac_x_includes= else for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi done fi rm -f conftest.err conftest.$ac_ext fi # $ac_x_includes = no if test "$ac_x_libraries" = no; then # Check for the libraries. # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS LIBS="-lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { XrmInitialize () ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= else LIBS=$ac_save_LIBS for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do # Don't even attempt the hair of trying to link an X program! for ac_extension in a so sl dylib la dll; do if test -r "$ac_dir/libX11.$ac_extension"; then ac_x_libraries=$ac_dir break 2 fi done done fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no case $ac_x_includes,$ac_x_libraries in #( no,* | *,no | *\'*) # Didn't find X, or a directory has "'" in its name. ac_cv_have_x="have_x=no";; #( *) # Record where we found X for the cache. ac_cv_have_x="have_x=yes\ ac_x_includes='$ac_x_includes'\ ac_x_libraries='$ac_x_libraries'" esac fi ;; #( *) have_x=yes;; esac eval "$ac_cv_have_x" fi # $with_x != no if test "$have_x" != yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 $as_echo "$have_x" >&6; } no_x=yes else # If each of the values was on the command line, it overrides each guess. test "x$x_includes" = xNONE && x_includes=$ac_x_includes test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries # Update the cache value to reflect the command line values. ac_cv_have_x="have_x=yes\ ac_x_includes='$x_includes'\ ac_x_libraries='$x_libraries'" { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 $as_echo "libraries $x_libraries, headers $x_includes" >&6; } fi if test "$no_x" = yes; then # Not all programs may use this symbol, but it does not hurt to define it. $as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= else if test -n "$x_includes"; then X_CFLAGS="$X_CFLAGS -I$x_includes" fi # It would also be nice to do this for all -L options, not just this one. if test -n "$x_libraries"; then X_LIBS="$X_LIBS -L$x_libraries" # For Solaris; some versions of Sun CC require a space after -R and # others require no space. Words are not sufficient . . . . { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 $as_echo_n "checking whether -R must be followed by a space... " >&6; } ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" ac_xsave_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } X_LIBS="$X_LIBS -R$x_libraries" else LIBS="$ac_xsave_LIBS -R $x_libraries" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } X_LIBS="$X_LIBS -R $x_libraries" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 $as_echo "neither works" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_c_werror_flag=$ac_xsave_c_werror_flag LIBS=$ac_xsave_LIBS fi # Check for system-dependent libraries X programs must link with. # Do this before checking for the system-independent R6 libraries # (-lICE), since we may need -lsocket or whatever for X linking. if test "$ISC" = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" else # Martyn Johnson says this is needed for Ultrix, if the X # libraries were built with DECnet support. And Karl Berry says # the Alpha needs dnet_stub (dnet does not exist). ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XOpenDisplay (); int main () { return XOpenDisplay (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 $as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dnet_ntoa (); int main () { return dnet_ntoa (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dnet_dnet_ntoa=yes else ac_cv_lib_dnet_dnet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 $as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 $as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet_stub $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dnet_ntoa (); int main () { return dnet_ntoa (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dnet_stub_dnet_ntoa=yes else ac_cv_lib_dnet_stub_dnet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" fi fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$ac_xsave_LIBS" # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, # to get the SysV transport functions. # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) # needs -lnsl. # The nsl library prevents programs from opening the X display # on Irix 5.2, according to T.E. Dickey. # The functions gethostbyname, getservbyname, and inet_addr are # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" if test "x$ac_cv_func_gethostbyname" = x""yes; then : fi if test $ac_cv_func_gethostbyname = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nsl_gethostbyname=yes else ac_cv_lib_nsl_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" fi if test $ac_cv_lib_nsl_gethostbyname = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 $as_echo_n "checking for gethostbyname in -lbsd... " >&6; } if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_bsd_gethostbyname=yes else ac_cv_lib_bsd_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" fi fi fi # lieder@skyler.mavd.honeywell.com says without -lsocket, # socket/setsockopt and other routines are undefined under SCO ODT # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary # on later versions), says Simon Leinen: it contains gethostby* # variants that don't use the name server (or something). -lsocket # must be given before -lnsl if both are needed. We assume that # if connect needs -lnsl, so does gethostbyname. ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" if test "x$ac_cv_func_connect" = x""yes; then : fi if test $ac_cv_func_connect = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 $as_echo_n "checking for connect in -lsocket... " >&6; } if test "${ac_cv_lib_socket_connect+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); int main () { return connect (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_socket_connect=yes else ac_cv_lib_socket_connect=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 $as_echo "$ac_cv_lib_socket_connect" >&6; } if test "x$ac_cv_lib_socket_connect" = x""yes; then : X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" fi fi # Guillermo Gomez says -lposix is necessary on A/UX. ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" if test "x$ac_cv_func_remove" = x""yes; then : fi if test $ac_cv_func_remove = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 $as_echo_n "checking for remove in -lposix... " >&6; } if test "${ac_cv_lib_posix_remove+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lposix $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char remove (); int main () { return remove (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_posix_remove=yes else ac_cv_lib_posix_remove=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 $as_echo "$ac_cv_lib_posix_remove" >&6; } if test "x$ac_cv_lib_posix_remove" = x""yes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" fi fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" if test "x$ac_cv_func_shmat" = x""yes; then : fi if test $ac_cv_func_shmat = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 $as_echo_n "checking for shmat in -lipc... " >&6; } if test "${ac_cv_lib_ipc_shmat+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lipc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shmat (); int main () { return shmat (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ipc_shmat=yes else ac_cv_lib_ipc_shmat=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 $as_echo "$ac_cv_lib_ipc_shmat" >&6; } if test "x$ac_cv_lib_ipc_shmat" = x""yes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" fi fi fi # Check for libraries that X11R6 Xt/Xaw programs need. ac_save_LDFLAGS=$LDFLAGS test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to # check for ICE first), but we must link in the order -lSM -lICE or # we get undefined symbols. So assume we have SM if we have ICE. # These have to be linked with before -lX11, unlike the other # libraries we check for below, so use a different variable. # John Interrante, Karl Berry { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 $as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char IceConnectionNumber (); int main () { return IceConnectionNumber (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ICE_IceConnectionNumber=yes else ac_cv_lib_ICE_IceConnectionNumber=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then : X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" fi LDFLAGS=$ac_save_LDFLAGS fi if test $no_x; then as_fn_error "The path for the X11 files not found! Make sure you have X and it's headers and libraries (the -devel packages in Linux) installed." "$LINENO" 5 fi X_LIBRARY_PATH=$x_libraries XCFLAGS="$X_CFLAGS" XLFLAGS="$X_LIBS" XLIBS="-lX11 $X_EXTRA_LIBS" LIBXMU="-lXmu" lib_search_path="$lib_search_path $XLFLAGS" inc_search_path="$inc_search_path $XCFLAGS" use_locale=yes # Check whether --enable-locale was given. if test "${enable_locale+set}" = set; then : enableval=$enable_locale; use_locale=no fi if test "$use_locale" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _Xsetlocale in -lX11" >&5 $as_echo_n "checking for _Xsetlocale in -lX11... " >&6; } if test "${ac_cv_lib_X11__Xsetlocale+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lX11 $XLFLAGS $XLIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char _Xsetlocale (); int main () { return _Xsetlocale (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_X11__Xsetlocale=yes else ac_cv_lib_X11__Xsetlocale=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11__Xsetlocale" >&5 $as_echo "$ac_cv_lib_X11__Xsetlocale" >&6; } if test "x$ac_cv_lib_X11__Xsetlocale" = x""yes; then : $as_echo "#define X_LOCALE 1" >>confdefs.h fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XInternAtoms in -lX11" >&5 $as_echo_n "checking for XInternAtoms in -lX11... " >&6; } if test "${ac_cv_lib_X11_XInternAtoms+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lX11 $XLFLAGS $XLIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XInternAtoms (); int main () { return XInternAtoms (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_X11_XInternAtoms=yes else ac_cv_lib_X11_XInternAtoms=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_XInternAtoms" >&5 $as_echo "$ac_cv_lib_X11_XInternAtoms" >&6; } if test "x$ac_cv_lib_X11_XInternAtoms" = x""yes; then : $as_echo "#define HAVE_XINTERNATOMS 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XConvertCase in -lX11" >&5 $as_echo_n "checking for XConvertCase in -lX11... " >&6; } if test "${ac_cv_lib_X11_XConvertCase+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lX11 $XLFLAGS $XLIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XConvertCase (); int main () { return XConvertCase (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_X11_XConvertCase=yes else ac_cv_lib_X11_XConvertCase=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_XConvertCase" >&5 $as_echo "$ac_cv_lib_X11_XConvertCase" >&6; } if test "x$ac_cv_lib_X11_XConvertCase" = x""yes; then : $as_echo "#define HAVE_XCONVERTCASE 1" >>confdefs.h fi # Check whether --enable-modelock was given. if test "${enable_modelock+set}" = set; then : enableval=$enable_modelock; $as_echo "#define XKB_MODELOCK 1" >>confdefs.h fi shape=yes # Check whether --enable-shape was given. if test "${enable_shape+set}" = set; then : enableval=$enable_shape; shape=$enableval else shape=yes fi added_xext=no if test "$shape" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShapeSelectInput in -lXext" >&5 $as_echo_n "checking for XShapeSelectInput in -lXext... " >&6; } if test "${ac_cv_lib_Xext_XShapeSelectInput+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lXext $XLFLAGS $XLIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XShapeSelectInput (); int main () { return XShapeSelectInput (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_Xext_XShapeSelectInput=yes else ac_cv_lib_Xext_XShapeSelectInput=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XShapeSelectInput" >&5 $as_echo "$ac_cv_lib_Xext_XShapeSelectInput" >&6; } if test "x$ac_cv_lib_Xext_XShapeSelectInput" = x""yes; then : XLIBS="-lXext $XLIBS" added_xext=yes $as_echo "#define SHAPE 1" >>confdefs.h else shape=no fi fi xrandr=no # Check whether --enable-xrandr was given. if test "${enable_xrandr+set}" = set; then : enableval=$enable_xrandr; xrandr=$enableval else xrandr=no fi added_xext=no LIBXRANDR= if test "$xrandr" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XRRQueryExtension in -lXrandr" >&5 $as_echo_n "checking for XRRQueryExtension in -lXrandr... " >&6; } if test "${ac_cv_lib_Xrandr_XRRQueryExtension+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lXrandr $XLFLAGS $XLIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XRRQueryExtension (); int main () { return XRRQueryExtension (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_Xrandr_XRRQueryExtension=yes else ac_cv_lib_Xrandr_XRRQueryExtension=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xrandr_XRRQueryExtension" >&5 $as_echo "$ac_cv_lib_Xrandr_XRRQueryExtension" >&6; } if test "x$ac_cv_lib_Xrandr_XRRQueryExtension" = x""yes; then : LIBXRANDR=-lXrandr added_xext=yes $as_echo "#define HAVE_XRANDR 1" >>confdefs.h else xrandr=no fi fi ac_fn_c_check_header_mongrel "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default" if test "x$ac_cv_header_math_h" = x""yes; then : else as_fn_error "header for math library not found" "$LINENO" 5 fi ac_fn_c_check_func "$LINENO" "atan" "ac_cv_func_atan" if test "x$ac_cv_func_atan" = x""yes; then : LIBM= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atan in -lm" >&5 $as_echo_n "checking for atan in -lm... " >&6; } if test "${ac_cv_lib_m_atan+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char atan (); int main () { return atan (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_atan=yes else ac_cv_lib_m_atan=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_atan" >&5 $as_echo "$ac_cv_lib_m_atan" >&6; } if test "x$ac_cv_lib_m_atan" = x""yes; then : LIBM=-lm else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find Math library" >&5 $as_echo "$as_me: WARNING: Could not find Math library" >&2;} LIBM= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fontconfig library" >&5 $as_echo_n "checking for fontconfig library... " >&6; } FCLIBS=`$PKGCONFIG fontconfig --libs` if test "x$FCLIBS" = "x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } fi xft=yes XFTLIBS="" if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then XFTCONFIG="$PKGCONFIG xft" pkgconfig_xft=yes else # Extract the first word of "xft-config", so it can be a program name with args. set dummy xft-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_XFTCONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$XFTCONFIG"; then ac_cv_prog_XFTCONFIG="$XFTCONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_XFTCONFIG="xft-config" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi XFTCONFIG=$ac_cv_prog_XFTCONFIG if test -n "$XFTCONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XFTCONFIG" >&5 $as_echo "$XFTCONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the Xft2 library" >&5 $as_echo_n "checking for the Xft2 library... " >&6; } if test "x$XFTCONFIG" != x; then XFTLIBS=`$XFTCONFIG --libs` XFTFLAGS=`$XFTCONFIG --cflags` { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } echo echo "ERROR!!! libXft2 is not installed or could not be found." echo " Xft2 is a requirement for building Window Maker." echo " Please install it (along with fontconfig) before continuing." echo exit 1 fi minXFT="2.1.0" goodxft="no" CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $XFTFLAGS $inc_search_path" xft_major_version=`echo $minXFT | sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` xft_minor_version=`echo $minXFT | sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` xft_micro_version=`echo $minXFT | sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libXft is at least version $minXFT" >&5 $as_echo_n "checking whether libXft is at least version $minXFT... " >&6; } if test "${ac_cv_lib_xft_version_ok+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Test version of libXft we have */ #include #include #if !defined(XFT_VERSION) || XFT_VERSION < $xft_major_version*10000 + $xft_minor_version*100 + $xft_micro_version #error libXft on this system is too old. Consider upgrading to at least $minXFT #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "ac_cv_lib_xft_version_ok=yes" else eval "ac_cv_lib_xft_version_ok=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if eval "test \"`echo '$ac_cv_lib_xft_version_ok'`\" = yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } goodxft=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } goodxft=no fi CPPFLAGS="$CPPFLAGS_old" if test "$goodxft" = no; then echo echo "ERROR!!! libXft on this system is an old version." echo " Please consider upgrading to at least version ${minXFT}." echo exit 1 fi xinerama=no # Check whether --enable-xinerama was given. if test "${enable_xinerama+set}" = set; then : enableval=$enable_xinerama; xinerama=$enableval else xinerama=no fi LIBXINERAMA= if test "$xinerama" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XineramaQueryScreens in -lXinerama" >&5 $as_echo_n "checking for XineramaQueryScreens in -lXinerama... " >&6; } if test "${ac_cv_lib_Xinerama_XineramaQueryScreens+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lXinerama $XLFLAGS $XLIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XineramaQueryScreens (); int main () { return XineramaQueryScreens (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_Xinerama_XineramaQueryScreens=yes else ac_cv_lib_Xinerama_XineramaQueryScreens=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xinerama_XineramaQueryScreens" >&5 $as_echo "$ac_cv_lib_Xinerama_XineramaQueryScreens" >&6; } if test "x$ac_cv_lib_Xinerama_XineramaQueryScreens" = x""yes; then : LIBXINERAMA=-lXinerama xfxine=yes else xfxine=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XineramaGetInfo in -lXext" >&5 $as_echo_n "checking for XineramaGetInfo in -lXext... " >&6; } if test "${ac_cv_lib_Xext_XineramaGetInfo+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lXext $XLFLAGS $XLIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XineramaGetInfo (); int main () { return XineramaGetInfo (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_Xext_XineramaGetInfo=yes else ac_cv_lib_Xext_XineramaGetInfo=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XineramaGetInfo" >&5 $as_echo "$ac_cv_lib_Xext_XineramaGetInfo" >&6; } if test "x$ac_cv_lib_Xext_XineramaGetInfo" = x""yes; then : sunxine=yes else sunxine=no fi if test "$xfxine" = yes; then xine=1 fi if test "$sunxine" = yes; then xine=1 $as_echo "#define SOLARIS_XINERAMA 1" >>confdefs.h fi if test "$xine" = 1; then $as_echo "#define XINERAMA 1" >>confdefs.h fi fi shm=yes # Check whether --enable-shm was given. if test "${enable_shm+set}" = set; then : enableval=$enable_shm; shm=$enableval else shm=yes fi if test "$shm" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShmAttach in -lXext" >&5 $as_echo_n "checking for XShmAttach in -lXext... " >&6; } if test "${ac_cv_lib_Xext_XShmAttach+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lXext $XLFLAGS $XLIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XShmAttach (); int main () { return XShmAttach (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_Xext_XShmAttach=yes else ac_cv_lib_Xext_XShmAttach=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XShmAttach" >&5 $as_echo "$ac_cv_lib_Xext_XShmAttach" >&6; } if test "x$ac_cv_lib_Xext_XShmAttach" = x""yes; then : ok=yes else ok=no fi if test "$ok" = yes; then ac_fn_c_check_func "$LINENO" "shmget" "ac_cv_func_shmget" if test "x$ac_cv_func_shmget" = x""yes; then : ok=yes else ok=no fi fi if test "$ok" = yes; then if test "$added_xext" = no; then XLIBS="-lXext $XLIBS" fi $as_echo "#define XSHM 1" >>confdefs.h fi fi # # #AC_DEFINE(R6SM) #AC_SUBST(XSMPLIBS) # xpm=yes # Check whether --enable-xpm was given. if test "${enable_xpm+set}" = set; then : enableval=$enable_xpm; xpm=$enableval else xpm=yes fi if test "$xpm" = yes; then LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $lib_search_path" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmCreatePixmapFromData in -lXpm" >&5 $as_echo_n "checking for XpmCreatePixmapFromData in -lXpm... " >&6; } if test "${ac_cv_lib_Xpm_XpmCreatePixmapFromData+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lXpm $XLFLAGS $XLIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XpmCreatePixmapFromData (); int main () { return XpmCreatePixmapFromData (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_Xpm_XpmCreatePixmapFromData=yes else ac_cv_lib_Xpm_XpmCreatePixmapFromData=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xpm_XpmCreatePixmapFromData" >&5 $as_echo "$ac_cv_lib_Xpm_XpmCreatePixmapFromData" >&6; } if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = x""yes; then : yes=yes else no=no fi LDFLAGS="$LDFLAGS_old" if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $inc_search_path" ac_fn_c_check_header_mongrel "$LINENO" "X11/xpm.h" "ac_cv_header_X11_xpm_h" "$ac_includes_default" if test "x$ac_cv_header_X11_xpm_h" = x""yes; then : fi CPPFLAGS="$CPPFLAGS_old" if test "x$ac_cv_header_X11_xpm_h" = xyes; then GFXLIBS="$GFXLIBS -lXpm" supported_gfx="XPM" $as_echo "#define USE_XPM 1" >>confdefs.h else supported_gfx="builtin-XPM" fi fi fi # for wmlib # for test png=yes # Check whether --enable-png was given. if test "${enable_png+set}" = set; then : enableval=$enable_png; png=$enableval else png=yes fi if test "$png" = yes ; then my_libname="" LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $lib_search_path" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for png_get_valid in -lpng" >&5 $as_echo_n "checking for png_get_valid in -lpng... " >&6; } if test "${ac_cv_lib_png_png_get_valid+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpng -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char png_get_valid (); int main () { return png_get_valid (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_png_png_get_valid=yes else ac_cv_lib_png_png_get_valid=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_png_get_valid" >&5 $as_echo "$ac_cv_lib_png_png_get_valid" >&6; } if test "x$ac_cv_lib_png_png_get_valid" = x""yes; then : yes=yes else no=no fi LDFLAGS="$LDFLAGS_old" if test "x$ac_cv_lib_png_png_get_valid" = xyes; then my_libname="-lpng" fi if test "x$my_libname" = x; then unset ac_cv_lib_png_png_get_valid LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $lib_search_path" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for png_get_valid in -lpng" >&5 $as_echo_n "checking for png_get_valid in -lpng... " >&6; } if test "${ac_cv_lib_png_png_get_valid+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpng -lz -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char png_get_valid (); int main () { return png_get_valid (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_png_png_get_valid=yes else ac_cv_lib_png_png_get_valid=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_png_get_valid" >&5 $as_echo "$ac_cv_lib_png_png_get_valid" >&6; } if test "x$ac_cv_lib_png_png_get_valid" = x""yes; then : yes=yes else no=no fi LDFLAGS="$LDFLAGS_old" if test "x$ac_cv_lib_png_png_get_valid" = xyes; then my_libname="-lpng -lz" fi fi if test "x$ac_cv_lib_png_png_get_valid" = xyes; then CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $inc_search_path" ac_fn_c_check_header_mongrel "$LINENO" "png.h" "ac_cv_header_png_h" "$ac_includes_default" if test "x$ac_cv_header_png_h" = x""yes; then : fi CPPFLAGS="$CPPFLAGS_old" if test "x$ac_cv_header_png_h" = xyes; then GFXLIBS="$GFXLIBS $my_libname" supported_gfx="$supported_gfx PNG" $as_echo "#define USE_PNG 1" >>confdefs.h fi fi fi jpeg=yes ljpeg="" # Check whether --enable-jpeg was given. if test "${enable_jpeg+set}" = set; then : enableval=$enable_jpeg; jpeg=$enableval else jpeg=yes fi if test "$jpeg" = yes; then LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $lib_search_path" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_destroy_compress in -ljpeg" >&5 $as_echo_n "checking for jpeg_destroy_compress in -ljpeg... " >&6; } if test "${ac_cv_lib_jpeg_jpeg_destroy_compress+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ljpeg $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char jpeg_destroy_compress (); int main () { return jpeg_destroy_compress (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_jpeg_jpeg_destroy_compress=yes else ac_cv_lib_jpeg_jpeg_destroy_compress=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_destroy_compress" >&5 $as_echo "$ac_cv_lib_jpeg_jpeg_destroy_compress" >&6; } if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = x""yes; then : yes=yes else no=no fi LDFLAGS="$LDFLAGS_old" if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then ljpeg="-ljpeg" CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $inc_search_path" ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" if test "x$ac_cv_header_jpeglib_h" = x""yes; then : fi CPPFLAGS="$CPPFLAGS_old" if test "x$ac_cv_header_jpeglib_h" = xyes; then GFXLIBS="$GFXLIBS -ljpeg" supported_gfx="$supported_gfx JPEG" $as_echo "#define USE_JPEG 1" >>confdefs.h fi fi fi gif=yes # Check whether --enable-gif was given. if test "${enable_gif+set}" = set; then : enableval=$enable_gif; gif=$enableval else gif=yes fi if test "$gif" = yes; then my_libname="" LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $lib_search_path" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DGifOpenFileName in -lungif" >&5 $as_echo_n "checking for DGifOpenFileName in -lungif... " >&6; } if test "${ac_cv_lib_ungif_DGifOpenFileName+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lungif $XLFLAGS $XLIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char DGifOpenFileName (); int main () { return DGifOpenFileName (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ungif_DGifOpenFileName=yes else ac_cv_lib_ungif_DGifOpenFileName=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ungif_DGifOpenFileName" >&5 $as_echo "$ac_cv_lib_ungif_DGifOpenFileName" >&6; } if test "x$ac_cv_lib_ungif_DGifOpenFileName" = x""yes; then : yes=yes else no=no fi LDFLAGS="$LDFLAGS_old" if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then my_libname=-lungif fi if test "x$my_libname" = x; then LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $lib_search_path" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DGifOpenFileName in -lgif" >&5 $as_echo_n "checking for DGifOpenFileName in -lgif... " >&6; } if test "${ac_cv_lib_gif_DGifOpenFileName+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgif $XLFLAGS $XLIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char DGifOpenFileName (); int main () { return DGifOpenFileName (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gif_DGifOpenFileName=yes else ac_cv_lib_gif_DGifOpenFileName=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_DGifOpenFileName" >&5 $as_echo "$ac_cv_lib_gif_DGifOpenFileName" >&6; } if test "x$ac_cv_lib_gif_DGifOpenFileName" = x""yes; then : yes=yes else no=no fi LDFLAGS="$LDFLAGS_old" if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then my_libname=-lgif fi fi if test "$my_libname" != x; then CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $inc_search_path" ac_fn_c_check_header_mongrel "$LINENO" "gif_lib.h" "ac_cv_header_gif_lib_h" "$ac_includes_default" if test "x$ac_cv_header_gif_lib_h" = x""yes; then : fi CPPFLAGS="$CPPFLAGS_old" if test "x$ac_cv_header_gif_lib_h" = xyes; then GFXLIBS="$GFXLIBS $my_libname" supported_gfx="$supported_gfx GIF" $as_echo "#define USE_GIF 1" >>confdefs.h fi fi fi # Check whether --enable-tiff was given. if test "${enable_tiff+set}" = set; then : enableval=$enable_tiff; tif=$enableval else tif=yes fi # # TIFF can optionally have JPEG and/or zlib support. Must find out # when they are supported so that correct library flags are passed during # detection and linkage # # # By default use xpm icons if tiff is not found. ICONEXT="xpm" # if test "$tif" = yes; then my_libname="" LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $lib_search_path" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIFFGetVersion in -ltiff" >&5 $as_echo_n "checking for TIFFGetVersion in -ltiff... " >&6; } if test "${ac_cv_lib_tiff_TIFFGetVersion+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltiff -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char TIFFGetVersion (); int main () { return TIFFGetVersion (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_tiff_TIFFGetVersion=yes else ac_cv_lib_tiff_TIFFGetVersion=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff_TIFFGetVersion" >&5 $as_echo "$ac_cv_lib_tiff_TIFFGetVersion" >&6; } if test "x$ac_cv_lib_tiff_TIFFGetVersion" = x""yes; then : yes=yes else 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 "x$my_libname" = x; then LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $lib_search_path" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIFFGetVersion in -ltiff" >&5 $as_echo_n "checking for TIFFGetVersion in -ltiff... " >&6; } if test "${ac_cv_lib_tiff_TIFFGetVersion+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltiff $ljpeg -lz -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char TIFFGetVersion (); int main () { return TIFFGetVersion (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_tiff_TIFFGetVersion=yes else ac_cv_lib_tiff_TIFFGetVersion=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff_TIFFGetVersion" >&5 $as_echo "$ac_cv_lib_tiff_TIFFGetVersion" >&6; } if test "x$ac_cv_lib_tiff_TIFFGetVersion" = x""yes; then : yes=yes else no=no fi LDFLAGS="$LDFLAGS_old" if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then my_libname="-ltiff -lz" fi fi if test "x$my_libname" = x; then LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $lib_search_path" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIFFGetVersion in -ltiff34" >&5 $as_echo_n "checking for TIFFGetVersion in -ltiff34... " >&6; } if test "${ac_cv_lib_tiff34_TIFFGetVersion+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltiff34 $ljpeg -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char TIFFGetVersion (); int main () { return TIFFGetVersion (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_tiff34_TIFFGetVersion=yes else ac_cv_lib_tiff34_TIFFGetVersion=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff34_TIFFGetVersion" >&5 $as_echo "$ac_cv_lib_tiff34_TIFFGetVersion" >&6; } if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = x""yes; then : yes=yes else no=no fi LDFLAGS="$LDFLAGS_old" if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then my_libname="-ltiff34" fi fi if test "x$my_libname" != x; then CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $inc_search_path" ac_fn_c_check_header_mongrel "$LINENO" "tiffio.h" "ac_cv_header_tiffio_h" "$ac_includes_default" if test "x$ac_cv_header_tiffio_h" = x""yes; then : fi CPPFLAGS="$CPPFLAGS_old" if test "x$ac_cv_header_tiffio_h" = xyes; then GFXLIBS="$my_libname $GFXLIBS" ICONEXT="tiff" supported_gfx="$supported_gfx TIFF" $as_echo "#define USE_TIFF 1" >>confdefs.h fi fi fi LIBRARY_SEARCH_PATH="$lib_search_path" HEADER_SEARCH_PATH="$inc_search_path" if test "x$ICONEXT" = "xxpm"; then ICON_EXT_XPM_TRUE= ICON_EXT_XPM_FALSE='#' else ICON_EXT_XPM_TRUE='#' ICON_EXT_XPM_FALSE= fi if test "x$ICONEXT" = "xtiff"; then ICON_EXT_TIFF_TRUE= ICON_EXT_TIFF_FALSE='#' else ICON_EXT_TIFF_TRUE='#' ICON_EXT_TIFF_FALSE= fi for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done # AC_PREFIX_PROGRAM(wmaker) # Check whether --with-pixmapdir was given. if test "${with_pixmapdir+set}" = set; then : withval=$with_pixmapdir; fi if test "x$with_pixmapdir" != "x"; then pixmapdir=$with_pixmapdir else pixmapdir='${datadir}/pixmaps' fi # Check whether --with-gnustepdir was given. if test "${with_gnustepdir+set}" = set; then : withval=$with_gnustepdir; fi if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then appspath=$with_gnustepdir fi if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then wprefs_base_dir=${prefix} wprefs_datadir="${datadir}/WPrefs" wprefs_bindir="${bindir}" else gnustepdir=$appspath if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"` gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'` fi wprefs_base_dir=$gnustepdir/Applications wprefs_datadir=$wprefs_base_dir/WPrefs.app wprefs_bindir=$wprefs_base_dir/WPrefs.app fi # Check whether --enable-usermenu was given. if test "${enable_usermenu+set}" = set; then : enableval=$enable_usermenu; if test "$enableval" = yes; then $as_echo "#define USER_MENU 1" >>confdefs.h fi fi # Check whether --enable-ld-version-script was given. if test "${enable_ld_version_script+set}" = set; then : enableval=$enable_ld_version_script; have_ld_version_script=$enableval fi if test -z "$have_ld_version_script"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if LD -Wl,--version-script works" >&5 $as_echo_n "checking if LD -Wl,--version-script works... " >&6; } save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" cat > conftest.map <conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : have_ld_version_script=yes else have_ld_version_script=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext rm -f conftest.map LDFLAGS="$save_LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ld_version_script" >&5 $as_echo "$have_ld_version_script" >&6; } fi if test "$have_ld_version_script" = "yes"; then HAVE_LD_VERSION_SCRIPT_TRUE= HAVE_LD_VERSION_SCRIPT_FALSE='#' else HAVE_LD_VERSION_SCRIPT_TRUE='#' HAVE_LD_VERSION_SCRIPT_FALSE= fi ac_config_files="$ac_config_files Makefile po/Makefile util/Makefile util/po/Makefile test/Makefile WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile WINGs/Extras/Makefile WINGs/po/Makefile wmlib/Makefile wrlib/Makefile wrlib/tests/Makefile src/Makefile src/wconfig.h doc/Makefile doc/sk/Makefile doc/cs/Makefile doc/ru/Makefile WindowMaker/Makefile WindowMaker/Backgrounds/Makefile WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile WPrefs.app/po/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WM_OSDEP_LINUX_TRUE}" && test -z "${WM_OSDEP_LINUX_FALSE}"; then as_fn_error "conditional \"WM_OSDEP_LINUX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WM_OSDEP_BSD_TRUE}" && test -z "${WM_OSDEP_BSD_FALSE}"; then as_fn_error "conditional \"WM_OSDEP_BSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WM_OSDEP_DARWIN_TRUE}" && test -z "${WM_OSDEP_DARWIN_FALSE}"; then as_fn_error "conditional \"WM_OSDEP_DARWIN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WM_OSDEP_GENERIC_TRUE}" && test -z "${WM_OSDEP_GENERIC_FALSE}"; then as_fn_error "conditional \"WM_OSDEP_GENERIC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USE_LCOV_TRUE}" && test -z "${USE_LCOV_FALSE}"; then as_fn_error "conditional \"USE_LCOV\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ICON_EXT_XPM_TRUE}" && test -z "${ICON_EXT_XPM_FALSE}"; then as_fn_error "conditional \"ICON_EXT_XPM\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ICON_EXT_TIFF_TRUE}" && test -z "${ICON_EXT_TIFF_FALSE}"; then as_fn_error "conditional \"ICON_EXT_TIFF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LD_VERSION_SCRIPT_TRUE}" && test -z "${HAVE_LD_VERSION_SCRIPT_FALSE}"; then as_fn_error "conditional \"HAVE_LD_VERSION_SCRIPT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by WindowMaker $as_me 0.95.5, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider. WindowMaker home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ WindowMaker config.status 0.95.5 configured by $0, generated by GNU Autoconf 2.65, with options \\"\$ac_cs_config\\" Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "po/Makefile") CONFIG_FILES="$CONFIG_FILES po/Makefile" ;; "util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; "util/po/Makefile") CONFIG_FILES="$CONFIG_FILES util/po/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "WINGs/Makefile") CONFIG_FILES="$CONFIG_FILES WINGs/Makefile" ;; "WINGs/WINGs/Makefile") CONFIG_FILES="$CONFIG_FILES WINGs/WINGs/Makefile" ;; "WINGs/Documentation/Makefile") CONFIG_FILES="$CONFIG_FILES WINGs/Documentation/Makefile" ;; "WINGs/Examples/Makefile") CONFIG_FILES="$CONFIG_FILES WINGs/Examples/Makefile" ;; "WINGs/Resources/Makefile") CONFIG_FILES="$CONFIG_FILES WINGs/Resources/Makefile" ;; "WINGs/Tests/Makefile") CONFIG_FILES="$CONFIG_FILES WINGs/Tests/Makefile" ;; "WINGs/Extras/Makefile") CONFIG_FILES="$CONFIG_FILES WINGs/Extras/Makefile" ;; "WINGs/po/Makefile") CONFIG_FILES="$CONFIG_FILES WINGs/po/Makefile" ;; "wmlib/Makefile") CONFIG_FILES="$CONFIG_FILES wmlib/Makefile" ;; "wrlib/Makefile") CONFIG_FILES="$CONFIG_FILES wrlib/Makefile" ;; "wrlib/tests/Makefile") CONFIG_FILES="$CONFIG_FILES wrlib/tests/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/wconfig.h") CONFIG_FILES="$CONFIG_FILES src/wconfig.h" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/sk/Makefile") CONFIG_FILES="$CONFIG_FILES doc/sk/Makefile" ;; "doc/cs/Makefile") CONFIG_FILES="$CONFIG_FILES doc/cs/Makefile" ;; "doc/ru/Makefile") CONFIG_FILES="$CONFIG_FILES doc/ru/Makefile" ;; "WindowMaker/Makefile") CONFIG_FILES="$CONFIG_FILES WindowMaker/Makefile" ;; "WindowMaker/Backgrounds/Makefile") CONFIG_FILES="$CONFIG_FILES WindowMaker/Backgrounds/Makefile" ;; "WindowMaker/Defaults/Makefile") CONFIG_FILES="$CONFIG_FILES WindowMaker/Defaults/Makefile" ;; "WindowMaker/IconSets/Makefile") CONFIG_FILES="$CONFIG_FILES WindowMaker/IconSets/Makefile" ;; "WindowMaker/Icons/Makefile") CONFIG_FILES="$CONFIG_FILES WindowMaker/Icons/Makefile" ;; "WindowMaker/Pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES WindowMaker/Pixmaps/Makefile" ;; "WindowMaker/Styles/Makefile") CONFIG_FILES="$CONFIG_FILES WindowMaker/Styles/Makefile" ;; "WindowMaker/Themes/Makefile") CONFIG_FILES="$CONFIG_FILES WindowMaker/Themes/Makefile" ;; "WPrefs.app/Makefile") CONFIG_FILES="$CONFIG_FILES WPrefs.app/Makefile" ;; "WPrefs.app/tiff/Makefile") CONFIG_FILES="$CONFIG_FILES WPrefs.app/tiff/Makefile" ;; "WPrefs.app/xpm/Makefile") CONFIG_FILES="$CONFIG_FILES WPrefs.app/xpm/Makefile" ;; "WPrefs.app/po/Makefile") CONFIG_FILES="$CONFIG_FILES WPrefs.app/po/Makefile" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit $? fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi supported_gfx="$supported_gfx builtin-PPM" if test "x$MOFILES" = "x"; then mof=None else mof=`echo $MOFILES` fi if test "x$MOFILES" = "x"; then languages=None else languages=`echo $MOFILES | sed 's/.mo//g'` fi echo echo "Window Maker was configured as follows:" echo echo "Installation path prefix : $prefix" echo "Installation path for binaries : $_bindir" echo "Installation path for libraries : $libdir" echo "Installation path for WPrefs.app : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|" echo "Supported graphic format libraries : $supported_gfx" echo "Antialiased text support in WINGs : $xft" echo "Xinerama extension support : $xinerama" echo "XRandR extension support : $xrandr" echo "Translated message files to install : $mof" if test "x$MOFILES" != "x"; then echo "Installation path for translations : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|" fi if test "x$debug" = "xyes"; then : echo "Debug information enabled : $debug" fi echo 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" echo "not installed correctly or was not found. Background images" echo "from themes will not display as they usually are JPEG files." echo echo "To fix, download and install the jpeg library and/or make sure you" echo "installed all jpeg related packages, SPECIALLY the development packages" echo "like jpeg-devel (if you use some prepackaged version of libjpeg)." echo echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING" fi WindowMaker-0.95.5/INSTALL-WMAKER0000644000175000017500000002741012214432632013002 00000000000000 Installation Instructions for Window Maker The latest version of Window Maker (-crm) can be found in the git repository at http://repo.or.cz/w/wmaker-crm.git SUPPORTED PLATFORMS =================== - Intel GNU/Linux Systems in general Patches to make it work on other platforms are welcome. REQUIREMENTS: ============= The following software is required to use Window Maker: - X11R6.x Window Maker can be compiled in older versions of X, like X11R5 (Solaris) or X11R4 (OpenWindows) but it will not work 100% correctly. In such servers there will not be application icons and you'll have trouble using the dock. Upgrading the client libraries (Xlib, Xt etc) will help if you can't upgrade the server. The following is required to build Window Maker: - Basic obvious stuff gcc (or some other ANSI C compiler) glibc development files (usually glibc-devel in Linux distributions) X development files (XFree86-devel or something similar) - autoconf, automake and libtool autoconf 2.54 automake 1.4 libtool 1.4.2 - Xft2 and its dependencies (such as freetype2 and fontconfig) You will also need the development files for it (xft2-devel) OPTIONAL: ========= These libraries are not required to make Window Maker work, but they are supported in case you want to use them. Version numbers are those that I have (and therefore, guraranteed to work), but other versions might work too. - libXPM 4.7 or newer Older versions may not work!!! Available at ftp://sunsite.unc.edu/pub/Linux/libs/X/ There is builtin support for XPM files, but it will not load images in some uncommon encodings. - libpng 0.96 or newer and zlib For PNG image support. http://www.cdrom.com/pub/png/ - libtiff 3.4 or newer For TIFF image support. You can get it at ftp://ftp.sgi.com/graphics/tiff - libjpeg 6.0.1 or newer For JPEG image support http://www.ijg.org/ - libgif 2.2 or libungif For GIF image support ftp://prtr-13.ucsc.edu/pub/libungif/ - 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://ftp.gnu.org CONFIGURE OPTIONS: ================== If you downloaded the cvs or git versions, type ./autogen.sh to generate the config files. These options can be passed to the configure script to enable/disable some Window Maker features. Example: ./configure --enable-modelock --disable-gif will configure Window Maker with modelock supported and disable gif support. Normally, you won't need any of them. To get a list of other options, run ./configure --help --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" --disable-shm disable use of the MIT shared memory extension. This will slow down texture generation a little bit, but in some cases it seems to be necessary due to a bug that manifests as messed icons and textures. --disable-motif disable support for mwm window manager hints --enable-modelock XKB language status lock support. If you don't know what it is you probably don't need it. --disable-xpm disables use of the XPM library even if it is available on your system. --disable-png disables use of PNG library --disable-tiff disable use of TIFF library --disable-gif disable use of GIF library --disable-jpeg disable use of JPEG library --disable-shape disables shaped windows (for oclock, xeyes etc.) 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; * make sure you have /usr/local/lib in /etc/ld.so.conf before running ldconfig; - PowerPC MkLinux You will need to have the latest version of Xpmac. Older versions seem to have bugs that cause the system to hang. - Debian GNU/Linux If you want JPEG and TIFF support, make sure you have libtiff-dev and libjpeg-dev installed. - SuSE GNU/Linux If you installed the Window Maker package from SuSE, uninstall it before trying to compile wmaker or you might have problems. - MetroX (unknown version) MetroX has a bug that corrupts pixmaps that are set as window backgrounds. If you use MetroX and has weird problems with textures, do not use textures in titlebars. Or use a different X server. INSTALLATION: ============= Build Window Maker ------------------ For a quick start, type the following in your shell prompt: ./configure make then, login as root and type: make install ldconfig or if you want to strip the debugging symbols from the binaries and make them smaller, you can instead type: make install-strip ldconfig This will build and install Window Maker with default parameters. If you want to customize some compile-time options, you can do the following. 1. (optional) Look at the CONFIGURE OPTIONS section above for the options available. Also run: ./configure --help to get a complete listing of other options that are available. 2. Run configure with the options you want. For example, if you want to use the --enable-modelock option, type: ./configure --enable-modelock 3. (optional) Edit src/wconfig.h with your favorite text editor and browse through it for some options you might want to change. 4. Compile. Just type: make 5. Login as root (if you can't do that, read the "I don't have the root password :-(" section) and install Window Maker in your system: su root make install User specific configuration --------------------------- These instructions do not need to be followed when upgrading Window Maker from an older version, unless stated differently in the NEWS file. Every user on your system that wishes to run Window Maker must do the following: 1. Install Window Maker configuration files in your home directory. Type: wmaker.inst wmaker.inst will install Window Maker configuration files and will setup X to automatically launch Window Maker at startup. That's it! You can type "man wmaker" to get some general help for configuration and other stuff. Read the User Guide for a more in-depth explanation of Window Maker. You might want to take a look at the FAQ too. Installing the extras package ----------------------------- Unpack WindowMaker-extra-.tar.gz in /usr/local/share You can get the file at http://windowmaker.org/pub/source/release/. This file is optional and only have a few icons, and themes. Look for the latest available. Also there is a WindowMaker-extra.readme to instruct you where that package should go. I don't have the root password :( --------------------------------- If you can't get superuser privileges (can't be root) you can install wmaker in your own home directory. For that, supply the --prefix option when running configure in step 2 of building Window Maker. You will also need to supply the --with-gnustepdir option, to specify the path for WPrefs.app Example: ./configure --prefix=/home/jshmoe --with-gnustepdir=/home/jshmoe/GNUstep/Applications 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 ========= If you are upgrading from an older version of Window Maker: 1. Configure and build Window Maker as always 2. Install Window Maker (but do not run wmaker.inst) 3. Read the NEWS file and update your configuration files if necessary. TROUBLESHOOTING =============== When you have some trouble during configuration (while running configure), like not being able to use a graphic format library you think you have installed, look at the config.log file for clues of the problem. == Error with loading fonts, even if they exist. Try rebuilding without NLS support. == Error when configuring ltconfig: unrecognized option `--no-reexec' Try `ltconfig --help' for more information. configure: error: libtool configure failed remove the --no-reexec option from aclocal.m4 and reconfigure Also make sure the autoconf and automake versions you have installed are: autoconf 2.13 automake 1.4 libtool 1.3 Note that it must not be libtool 1.2b, it must be libtool 1.3, from the GNU sites. == configure doesn't detect libtiff, or other graphic libraries. Delete config.cache, then rerun configure adding the following options to configure (among the other options you use): --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-incs-from shows. Just put a space between them. == configure doesn't detect libXpm. * Check if you have a symbolic link from libXpm.so.4.9 to libXpm.so == Segmentation fault on startup * Check if the version of libXPM you have is at least 4.7 * Check if you have an updated version of ~/GNUstep/Defaults/WindowMaker If you're not sure, try renaming ~/GNUstep to ~/GNUtmp and then run wmaker.inst == "...: your machine is misconfigured. gethostname() returned (none)" * the hostname of your machine is set to something invalid, that starts with a parenthesis. Do a man hostname for info about how to set it. == The root menu contains only 2 entries. ("XTerm" and "Exit...") * Window Maker could not read your menu definition file you should check wmaker's output for an error, it may be visible in the console or in the .xsession-errors file. == checking lex output file root... configure: error: cannot find output from true; giving up * Read the REQUIREMENTS section of this file. LOCALES/INTERNATIONALIZATION ============================ Window Maker has national language support. To enable national language support, you must compile Window Maker with some additional parameters. 0 - You must have the GNU gettext package installed. It can be obtained at ftp://prep.ai.mit.edu/pub/gnu/gettext-nnn.tar.gz Steps 1 to 3 can be skipped if you use the Install script. 1 - You have to select the languages you want to support. Set the LINGUAS to the list of locales you want. English is always suported. Example: setenv LINGUAS "pt ja de" in csh or export LINGUAS;LINGUAS="pt ja de" in sh The list of supported locales can be found in po/README. English is the default language. Read po/README if you wish to translate and maintain locale files for other languages. 2 - Additionally, if your language uses multi-byte characters, such as Japanese or Korean, you must set the MultiByteText option to YES in ~/GNUstep/Defaults/WMGLOBAL 3 - Configure, build and install Window Maker normally. 4 - To select a particular locale at runtime you must set the LANG environment variable to the locale you want. For example, if you want to set the portuguese locale, you must run setenv LANG pt in csh or export LANG; LANG=pt in Bourne sh and similars Note: If you have the LC_CTYPE environment variable set, you must unset it before running wmaker. For menu definition files, Window Maker searches for them in the following order (for brazilian portuguese, in this case): menu.pt_BR menu.pt menu WindowMaker-0.95.5/Makefile.in0000644000175000017500000006203112214434562013034 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ TODO config.guess config.sub depcomp install-sh ltmain.sh \ missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ AUTOMAKE_OPTIONS = BUILT_SOURCES = config-paths.h DISTCLEANFILES = config-paths.h ACLOCAL_AMFLAGS = -I m4 SUBDIRS = wrlib WINGs src util po WindowMaker wmlib WPrefs.app doc test EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N INSTALL \ INSTALL-WMAKER README.definable-cursor \ The-perfect-Window-Maker-patch.txt \ README COPYING.WTFPL autogen.sh all: $(BUILT_SOURCES) config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ ctags-recursive install install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am config.h: config-paths.h config-paths.h: Makefile @echo "Generating $@" @echo '/* this is a generated file - do not edit */' > $@ @echo '' >> $@ @echo '/* gettext domain used for menu translations */' >> $@ @if test -z "$(menutextdomain)"; then \ echo '/* #undef MENU_TEXTDOMAIN "$(menutextdomain)" */' >> $@; \ else \ echo '#define MENU_TEXTDOMAIN "$(menutextdomain)"' >> $@; \ fi @echo '' >> $@ @echo '/* define an extra path for pixmaps */' >> $@ @echo '#define PIXMAPDIR "$(pixmapdir)"' >> $@ @echo '' >> $@ @echo '/* where shared data is stored */' >> $@ @echo '#define PKGDATADIR "$(datadir)/WindowMaker"' >> $@ @echo '' >> $@ @echo '/* where the configuration is stored */' >> $@ @echo '#define SYSCONFDIR "$(sysconfdir)"' >> $@ @USE_LCOV_TRUE@coverage-reset: @USE_LCOV_TRUE@ find . -type f -name '*.gcda' -exec rm -f '{}' ';' @USE_LCOV_TRUE@ lcov --directory . --zerocounters @USE_LCOV_TRUE@coverage: @USE_LCOV_TRUE@ rm -rf coverage @lcov_output_directory@ @USE_LCOV_TRUE@ -mkdir -p coverage @lcov_output_directory@ @USE_LCOV_TRUE@ lcov --compat-libtool --capture --directory . --output-file coverage/coverage.info @USE_LCOV_TRUE@ genhtml --output-directory @lcov_output_directory@ coverage/coverage.info @USE_LCOV_TRUE@.PHONY: coverage-reset coverage # 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. .NOEXPORT: WindowMaker-0.95.5/missing0000755000175000017500000002623312214434560012370 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # 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, 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: WindowMaker-0.95.5/COPYING0000644000175000017500000004310312214432632012015 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code 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 Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy 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 files to carry prominent notices stating that you changed the files 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 Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, 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 Program, 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. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "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 AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM 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 PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. WindowMaker-0.95.5/WINGs/0000755000175000017500000000000012214434641011772 500000000000000WindowMaker-0.95.5/WINGs/wfontpanel.c0000644000175000017500000004545312214432632014244 00000000000000 #include "WINGsP.h" #include "WUtil.h" #include "wconfig.h" #include #include #include #include #include #include /* XXX TODO */ char *WMFontPanelFontChangedNotification = "WMFontPanelFontChangedNotification"; typedef struct W_FontPanel { WMWindow *win; WMFrame *upperF; WMTextField *sampleT; WMSplitView *split; WMFrame *lowerF; WMLabel *famL; WMList *famLs; WMLabel *typL; WMList *typLs; WMLabel *sizL; WMTextField *sizT; WMList *sizLs; WMAction2 *action; void *data; WMButton *revertB; WMButton *setB; WMPropList *fdb; } FontPanel; #define MIN_UPPER_HEIGHT 20 #define MIN_LOWER_HEIGHT 140 #define MAX_FONTS_TO_RETRIEVE 2000 #define BUTTON_SPACE_HEIGHT 40 #define MIN_WIDTH 250 #define MIN_HEIGHT (MIN_UPPER_HEIGHT+MIN_LOWER_HEIGHT+BUTTON_SPACE_HEIGHT) #define DEF_UPPER_HEIGHT 60 #define DEF_LOWER_HEIGHT 310 #define DEF_WIDTH 320 #define DEF_HEIGHT (DEF_UPPER_HEIGHT+DEF_LOWER_HEIGHT) static const int scalableFontSizes[] = { 8, 10, 11, 12, 14, 16, 18, 20, 24, 36, 48, 64 }; static void setFontPanelFontName(FontPanel * panel, const char *family, const char *style, double size); static int isXLFD(const char *font, int *length_ret); static void arrangeLowerFrame(FontPanel * panel); static void familyClick(WMWidget *, void *); static void typefaceClick(WMWidget *, void *); static void sizeClick(WMWidget *, void *); static void listFamilies(WMScreen * scr, WMFontPanel * panel); static void splitViewConstrainCallback(WMSplitView * sPtr, int indView, int *min, int *max) { if (indView == 0) *min = MIN_UPPER_HEIGHT; else *min = MIN_LOWER_HEIGHT; } static void notificationObserver(void *self, WMNotification * notif) { WMFontPanel *panel = (WMFontPanel *) self; void *object = WMGetNotificationObject(notif); if (WMGetNotificationName(notif) == WMViewSizeDidChangeNotification) { if (object == WMWidgetView(panel->win)) { int h = WMWidgetHeight(panel->win); int w = WMWidgetWidth(panel->win); WMResizeWidget(panel->split, w, h - BUTTON_SPACE_HEIGHT); WMMoveWidget(panel->setB, w - 80, h - (BUTTON_SPACE_HEIGHT - 5)); WMMoveWidget(panel->revertB, w - 240, h - (BUTTON_SPACE_HEIGHT - 5)); } else if (object == WMWidgetView(panel->upperF)) { if (WMWidgetHeight(panel->upperF) < MIN_UPPER_HEIGHT) { WMResizeWidget(panel->upperF, WMWidgetWidth(panel->upperF), MIN_UPPER_HEIGHT); } else { WMResizeWidget(panel->sampleT, WMWidgetWidth(panel->upperF) - 20, WMWidgetHeight(panel->upperF) - 10); } } else if (object == WMWidgetView(panel->lowerF)) { if (WMWidgetHeight(panel->lowerF) < MIN_LOWER_HEIGHT) { WMResizeWidget(panel->upperF, WMWidgetWidth(panel->upperF), MIN_UPPER_HEIGHT); WMMoveWidget(panel->lowerF, 0, WMWidgetHeight(panel->upperF) + WMGetSplitViewDividerThickness(panel->split)); WMResizeWidget(panel->lowerF, WMWidgetWidth(panel->lowerF), WMWidgetWidth(panel->split) - MIN_UPPER_HEIGHT - WMGetSplitViewDividerThickness(panel->split)); } else { arrangeLowerFrame(panel); } } } } static void closeWindow(WMWidget * w, void *data) { FontPanel *panel = (FontPanel *) data; WMHideFontPanel(panel); } static void setClickedAction(WMWidget * w, void *data) { FontPanel *panel = (FontPanel *) data; if (panel->action) (*panel->action) (panel, panel->data); } static void revertClickedAction(WMWidget * w, void *data) { /*FontPanel *panel = (FontPanel*)data; */ /* XXX TODO */ } WMFontPanel *WMGetFontPanel(WMScreen * scr) { FontPanel *panel; WMColor *dark, *white; WMFont *font; int divThickness; if (scr->sharedFontPanel) return scr->sharedFontPanel; panel = wmalloc(sizeof(FontPanel)); panel->win = WMCreateWindow(scr, "fontPanel"); /* WMSetWidgetBackgroundColor(panel->win, WMWhiteColor(scr)); */ WMSetWindowTitle(panel->win, _("Font Panel")); WMResizeWidget(panel->win, DEF_WIDTH, DEF_HEIGHT); WMSetWindowMinSize(panel->win, MIN_WIDTH, MIN_HEIGHT); WMSetViewNotifySizeChanges(WMWidgetView(panel->win), True); WMSetWindowCloseAction(panel->win, closeWindow, panel); panel->split = WMCreateSplitView(panel->win); WMResizeWidget(panel->split, DEF_WIDTH, DEF_HEIGHT - BUTTON_SPACE_HEIGHT); WMSetSplitViewConstrainProc(panel->split, splitViewConstrainCallback); divThickness = WMGetSplitViewDividerThickness(panel->split); panel->upperF = WMCreateFrame(panel->win); WMSetFrameRelief(panel->upperF, WRFlat); WMSetViewNotifySizeChanges(WMWidgetView(panel->upperF), True); panel->lowerF = WMCreateFrame(panel->win); /* WMSetWidgetBackgroundColor(panel->lowerF, WMBlackColor(scr)); */ WMSetFrameRelief(panel->lowerF, WRFlat); WMSetViewNotifySizeChanges(WMWidgetView(panel->lowerF), True); WMAddSplitViewSubview(panel->split, W_VIEW(panel->upperF)); WMAddSplitViewSubview(panel->split, W_VIEW(panel->lowerF)); WMResizeWidget(panel->upperF, DEF_WIDTH, DEF_UPPER_HEIGHT); WMResizeWidget(panel->lowerF, DEF_WIDTH, DEF_LOWER_HEIGHT); WMMoveWidget(panel->lowerF, 0, 60 + divThickness); white = WMWhiteColor(scr); dark = WMDarkGrayColor(scr); panel->sampleT = WMCreateTextField(panel->upperF); WMResizeWidget(panel->sampleT, DEF_WIDTH - 20, 50); WMMoveWidget(panel->sampleT, 10, 10); WMSetTextFieldText(panel->sampleT, _("The quick brown fox jumps over the lazy dog")); font = WMBoldSystemFontOfSize(scr, 12); panel->famL = WMCreateLabel(panel->lowerF); WMSetWidgetBackgroundColor(panel->famL, dark); WMSetLabelText(panel->famL, _("Family")); WMSetLabelFont(panel->famL, font); WMSetLabelTextColor(panel->famL, white); WMSetLabelRelief(panel->famL, WRSunken); WMSetLabelTextAlignment(panel->famL, WACenter); panel->famLs = WMCreateList(panel->lowerF); WMSetListAction(panel->famLs, familyClick, panel); panel->typL = WMCreateLabel(panel->lowerF); WMSetWidgetBackgroundColor(panel->typL, dark); WMSetLabelText(panel->typL, _("Typeface")); WMSetLabelFont(panel->typL, font); WMSetLabelTextColor(panel->typL, white); WMSetLabelRelief(panel->typL, WRSunken); WMSetLabelTextAlignment(panel->typL, WACenter); panel->typLs = WMCreateList(panel->lowerF); WMSetListAction(panel->typLs, typefaceClick, panel); panel->sizL = WMCreateLabel(panel->lowerF); WMSetWidgetBackgroundColor(panel->sizL, dark); WMSetLabelText(panel->sizL, _("Size")); WMSetLabelFont(panel->sizL, font); WMSetLabelTextColor(panel->sizL, white); WMSetLabelRelief(panel->sizL, WRSunken); WMSetLabelTextAlignment(panel->sizL, WACenter); panel->sizT = WMCreateTextField(panel->lowerF); /* WMSetTextFieldAlignment(panel->sizT, WARight); */ panel->sizLs = WMCreateList(panel->lowerF); WMSetListAction(panel->sizLs, sizeClick, panel); WMReleaseFont(font); WMReleaseColor(white); WMReleaseColor(dark); panel->setB = WMCreateCommandButton(panel->win); WMResizeWidget(panel->setB, 70, 24); WMMoveWidget(panel->setB, 240, DEF_HEIGHT - (BUTTON_SPACE_HEIGHT - 5)); WMSetButtonText(panel->setB, _("Set")); WMSetButtonAction(panel->setB, setClickedAction, panel); panel->revertB = WMCreateCommandButton(panel->win); WMResizeWidget(panel->revertB, 70, 24); WMMoveWidget(panel->revertB, 80, DEF_HEIGHT - (BUTTON_SPACE_HEIGHT - 5)); WMSetButtonText(panel->revertB, _("Revert")); WMSetButtonAction(panel->revertB, revertClickedAction, panel); WMRealizeWidget(panel->win); WMMapSubwidgets(panel->upperF); WMMapSubwidgets(panel->lowerF); WMMapSubwidgets(panel->split); WMMapSubwidgets(panel->win); WMUnmapWidget(panel->revertB); arrangeLowerFrame(panel); scr->sharedFontPanel = panel; /* register notification observers */ WMAddNotificationObserver(notificationObserver, panel, WMViewSizeDidChangeNotification, WMWidgetView(panel->win)); WMAddNotificationObserver(notificationObserver, panel, WMViewSizeDidChangeNotification, WMWidgetView(panel->upperF)); WMAddNotificationObserver(notificationObserver, panel, WMViewSizeDidChangeNotification, WMWidgetView(panel->lowerF)); listFamilies(scr, panel); return panel; } void WMFreeFontPanel(WMFontPanel * panel) { if (panel == WMWidgetScreen(panel->win)->sharedFontPanel) { WMWidgetScreen(panel->win)->sharedFontPanel = NULL; } WMRemoveNotificationObserver(panel); WMUnmapWidget(panel->win); WMDestroyWidget(panel->win); wfree(panel); } void WMShowFontPanel(WMFontPanel * panel) { WMMapWidget(panel->win); } void WMHideFontPanel(WMFontPanel * panel) { WMUnmapWidget(panel->win); } WMFont *WMGetFontPanelFont(WMFontPanel * panel) { return WMGetTextFieldFont(panel->sampleT); } void WMSetFontPanelFont(WMFontPanel * panel, const char *fontName) { int fname_len; FcPattern *pattern; FcChar8 *family, *style; double size; if (!isXLFD(fontName, &fname_len)) { /* maybe its proper fontconfig and we can parse it */ pattern = FcNameParse((const FcChar8 *) fontName); } else { /* maybe its proper xlfd and we can convert it to an FcPattern */ pattern = XftXlfdParse(fontName, False, False); /*//FcPatternPrint(pattern); */ } if (!pattern) return; if (FcPatternGetString(pattern, FC_FAMILY, 0, &family) == FcResultMatch) if (FcPatternGetString(pattern, FC_STYLE, 0, &style) == FcResultMatch) if (FcPatternGetDouble(pattern, "pixelsize", 0, &size) == FcResultMatch) setFontPanelFontName(panel, (char *)family, (char *)style, size); FcPatternDestroy(pattern); } void WMSetFontPanelAction(WMFontPanel * panel, WMAction2 * action, void *data) { panel->action = action; panel->data = data; } static void arrangeLowerFrame(FontPanel * panel) { int width = WMWidgetWidth(panel->lowerF) - 55 - 30; int height = WMWidgetHeight(panel->split) - WMWidgetHeight(panel->upperF); int fw, tw, sw; #define LABEL_HEIGHT 20 height -= WMGetSplitViewDividerThickness(panel->split); height -= LABEL_HEIGHT + 8; fw = (125 * width) / 235; tw = (110 * width) / 235; sw = 55; WMMoveWidget(panel->famL, 10, 0); WMResizeWidget(panel->famL, fw, LABEL_HEIGHT); WMMoveWidget(panel->famLs, 10, 23); WMResizeWidget(panel->famLs, fw, height); WMMoveWidget(panel->typL, 10 + fw + 3, 0); WMResizeWidget(panel->typL, tw, LABEL_HEIGHT); WMMoveWidget(panel->typLs, 10 + fw + 3, 23); WMResizeWidget(panel->typLs, tw, height); WMMoveWidget(panel->sizL, 10 + fw + 3 + tw + 3, 0); WMResizeWidget(panel->sizL, sw + 4, LABEL_HEIGHT); WMMoveWidget(panel->sizT, 10 + fw + 3 + tw + 3, 23); WMResizeWidget(panel->sizT, sw + 4, 20); WMMoveWidget(panel->sizLs, 10 + fw + 3 + tw + 3, 46); WMResizeWidget(panel->sizLs, sw + 4, height - 23); } #define NUM_FIELDS 14 static int isXLFD(const char *font, int *length_ret) { int c = 0; *length_ret = 0; while (*font) { (*length_ret)++; if (*font++ == '-') c++; } return c == NUM_FIELDS; } typedef struct { char *typeface; WMArray *sizes; } Typeface; typedef struct { char *name; /* gotta love simplicity */ WMArray *typefaces; } Family; static int compare_int(const void *a, const void *b) { int i1 = *(int *)a; int i2 = *(int *)b; if (i1 < i2) return -1; else if (i1 > i2) return 1; else return 0; } static void addSizeToTypeface(Typeface * face, int size) { if (size == 0) { int j; for (j = 0; j < sizeof(scalableFontSizes) / sizeof(scalableFontSizes[0]); j++) { size = scalableFontSizes[j]; if (!WMCountInArray(face->sizes, (void *)(uintptr_t) size)) { WMAddToArray(face->sizes, (void *)(uintptr_t) size); } } WMSortArray(face->sizes, compare_int); } else { if (!WMCountInArray(face->sizes, (void *)(uintptr_t) size)) { WMAddToArray(face->sizes, (void *)(uintptr_t) size); WMSortArray(face->sizes, compare_int); } } } static void addTypefaceToXftFamily(Family * fam, const char *style) { Typeface *face; WMArrayIterator i; if (fam->typefaces) { WM_ITERATE_ARRAY(fam->typefaces, face, i) { if (strcmp(face->typeface, style) != 0) continue; /* go to next interation */ addSizeToTypeface(face, 0); return; } } else { fam->typefaces = WMCreateArray(4); } face = wmalloc(sizeof(Typeface)); face->typeface = wstrdup(style); face->sizes = WMCreateArray(4); addSizeToTypeface(face, 0); WMAddToArray(fam->typefaces, face); } /* * families (same family name) (Hashtable of family -> array) * registries (same family but different registries) * */ static void addFontToXftFamily(WMHashTable * families, const char *name, const char *style) { WMArrayIterator i; WMArray *array; Family *fam; array = WMHashGet(families, name); if (array) { WM_ITERATE_ARRAY(array, fam, i) { if (strcmp(fam->name, name) == 0) addTypefaceToXftFamily(fam, style); return; } } array = WMCreateArray(8); fam = wmalloc(sizeof(Family)); fam->name = wstrdup(name); addTypefaceToXftFamily(fam, style); WMAddToArray(array, fam); WMHashInsert(families, fam->name, array); } static void listFamilies(WMScreen * scr, WMFontPanel * panel) { FcObjectSet *os = 0; FcFontSet *fs; FcPattern *pat; WMHashTable *families; WMHashEnumerator enumer; WMArray *array; int i; pat = FcPatternCreate(); os = FcObjectSetBuild(FC_FAMILY, FC_STYLE, NULL); fs = FcFontList(0, pat, os); if (!fs) { WMRunAlertPanel(scr, panel->win, _("Error"), _("Could not init font config library\n"), _("OK"), NULL, NULL); return; } if (pat) FcPatternDestroy(pat); families = WMCreateHashTable(WMStringPointerHashCallbacks); if (fs) { for (i = 0; i < fs->nfont; i++) { FcChar8 *family; FcChar8 *style; if (FcPatternGetString(fs->fonts[i], FC_FAMILY, 0, &family) == FcResultMatch) if (FcPatternGetString(fs->fonts[i], FC_STYLE, 0, &style) == FcResultMatch) addFontToXftFamily(families, (char *)family, (char *)style); } FcFontSetDestroy(fs); } enumer = WMEnumerateHashTable(families); while ((array = WMNextHashEnumeratorItem(&enumer))) { WMArrayIterator i; Family *fam; char buffer[256]; WMListItem *item; WM_ITERATE_ARRAY(array, fam, i) { wstrlcpy(buffer, fam->name, sizeof(buffer)); item = WMAddListItem(panel->famLs, buffer); item->clientData = fam; } WMFreeArray(array); } WMSortListItems(panel->famLs); WMFreeHashTable(families); } static void getSelectedFont(FontPanel * panel, char buffer[], int bufsize) { WMListItem *item; Family *family; Typeface *face; char *size; item = WMGetListSelectedItem(panel->famLs); if (!item) return; family = (Family *) item->clientData; item = WMGetListSelectedItem(panel->typLs); if (!item) return; face = (Typeface *) item->clientData; size = WMGetTextFieldText(panel->sizT); snprintf(buffer, bufsize, "%s:style=%s:pixelsize=%s", family->name, face->typeface, size); wfree(size); } static void preview(FontPanel * panel) { char buffer[512]; WMFont *font; getSelectedFont(panel, buffer, sizeof(buffer)); font = WMCreateFont(WMWidgetScreen(panel->win), buffer); if (font) { WMSetTextFieldFont(panel->sampleT, font); WMReleaseFont(font); } } static void familyClick(WMWidget * w, void *data) { WMList *lPtr = (WMList *) w; WMListItem *item; Family *family; Typeface *face; FontPanel *panel = (FontPanel *) data; WMArrayIterator i; /* current typeface and size */ char *oface = NULL; char *osize = NULL; int facei = -1; int sizei = -1; /* must try to keep the same typeface and size for the new family */ item = WMGetListSelectedItem(panel->typLs); if (item) oface = wstrdup(item->text); osize = WMGetTextFieldText(panel->sizT); item = WMGetListSelectedItem(lPtr); family = (Family *) item->clientData; WMClearList(panel->typLs); WM_ITERATE_ARRAY(family->typefaces, face, i) { char buffer[256]; int top = 0; WMListItem *fitem; wstrlcpy(buffer, face->typeface, sizeof(buffer)); if (strcasecmp(face->typeface, "Roman") == 0) top = 1; if (strcasecmp(face->typeface, "Regular") == 0) top = 1; if (top) fitem = WMInsertListItem(panel->typLs, 0, buffer); else fitem = WMAddListItem(panel->typLs, buffer); fitem->clientData = face; } if (oface) { facei = WMFindRowOfListItemWithTitle(panel->typLs, oface); wfree(oface); } if (facei < 0) { facei = 0; } WMSelectListItem(panel->typLs, facei); typefaceClick(panel->typLs, panel); if (osize) { sizei = WMFindRowOfListItemWithTitle(panel->sizLs, osize); } if (sizei >= 0) { WMSelectListItem(panel->sizLs, sizei); sizeClick(panel->sizLs, panel); } if (osize) wfree(osize); preview(panel); } static void typefaceClick(WMWidget * w, void *data) { FontPanel *panel = (FontPanel *) data; WMListItem *item; Typeface *face; WMArrayIterator i; char buffer[32]; char *osize = NULL; int sizei = -1; void *size; osize = WMGetTextFieldText(panel->sizT); item = WMGetListSelectedItem(panel->typLs); face = (Typeface *) item->clientData; WMClearList(panel->sizLs); WM_ITERATE_ARRAY(face->sizes, size, i) { if ((uintptr_t)size != 0) { sprintf(buffer, "%li", (uintptr_t)size); WMAddListItem(panel->sizLs, buffer); } } if (osize) { sizei = WMFindRowOfListItemWithTitle(panel->sizLs, osize); } if (sizei < 0) { sizei = WMFindRowOfListItemWithTitle(panel->sizLs, "12"); } if (sizei < 0) { sizei = 0; } WMSelectListItem(panel->sizLs, sizei); WMSetListPosition(panel->sizLs, sizei); sizeClick(panel->sizLs, panel); if (osize) wfree(osize); preview(panel); } static void sizeClick(WMWidget * w, void *data) { FontPanel *panel = (FontPanel *) data; WMListItem *item; item = WMGetListSelectedItem(panel->sizLs); WMSetTextFieldText(panel->sizT, item->text); WMSelectTextFieldRange(panel->sizT, wmkrange(0, strlen(item->text))); preview(panel); } static void setFontPanelFontName(FontPanel * panel, const char *family, const char *style, double size) { int famrow; int stlrow; int sz; char asize[64]; void *vsize; WMListItem *item; Family *fam; Typeface *face; WMArrayIterator i; famrow = WMFindRowOfListItemWithTitle(panel->famLs, family); if (famrow < 0) { famrow = 0; return; } WMSelectListItem(panel->famLs, famrow); WMSetListPosition(panel->famLs, famrow); WMClearList(panel->typLs); item = WMGetListSelectedItem(panel->famLs); fam = (Family *) item->clientData; WM_ITERATE_ARRAY(fam->typefaces, face, i) { char buffer[256]; int top = 0; WMListItem *fitem; wstrlcpy(buffer, face->typeface, sizeof(buffer)); if (strcasecmp(face->typeface, "Roman") == 0) top = 1; if (top) fitem = WMInsertListItem(panel->typLs, 0, buffer); else fitem = WMAddListItem(panel->typLs, buffer); fitem->clientData = face; } stlrow = WMFindRowOfListItemWithTitle(panel->typLs, style); if (stlrow < 0) { stlrow = 0; return; } WMSelectListItem(panel->typLs, stlrow); item = WMGetListSelectedItem(panel->typLs); face = (Typeface *) item->clientData; WMClearList(panel->sizLs); WM_ITERATE_ARRAY(face->sizes, vsize, i) { char buffer[32]; if ((uintptr_t)vsize != 0) { sprintf(buffer, "%li", (uintptr_t)vsize); WMAddListItem(panel->sizLs, buffer); } } snprintf(asize, sizeof(asize) - 1, "%d", (int)(size + 0.5)); sz = WMFindRowOfListItemWithTitle(panel->sizLs, asize); if (sz < 0) { sz = 4; return; } WMSelectListItem(panel->sizLs, sz); sizeClick(panel->sizLs, panel); return; } WindowMaker-0.95.5/WINGs/README0000644000175000017500000000603212214432632012571 00000000000000 WINGs - WINGs Is Not GNUstep by Alfredo Kengi Kojima kojima@windowmaker.info WINGs is a small widget set with the N*XTSTEP look and feel. It's API is inspired in OpenStep and it's implementation borrows some ideas from Tk. It has a reasonable set of widgets, sufficient for building small applications (like a CDPlayer or hacking something like rxvt). It also has other functions that are usefull for applications, like a User Defaults alike configuration manager and a notification system. The library is limited and it's design is a little sloppy, so it's not intended to build large or complex applications, like anything more complex than a CDPlayer. GNUstep should be used for such applications. Since WINGs is written in C and is sort of low-level it is small and faster than say, Motif or even Athena. Knowing Xlib will help you to workaround some of it's limitations, although you'll probably be able to write something like a trivial tic-tac-toe game without knowing much Xlib. Some of it's functions are designed to support the Window Maker window manager (see http://windowmaker.info) In fact, it's primary role is to support Window Maker. All other uses of it are just an added bonus. It will help you to understand the API if you read the ApplicationKit reference manual, distributed as a PDF by Apple. The function names, structs and most of the intrinsics are very close to OpenStep classes. Internationalization: --------------------- Change ~/GNUstep/Defaults/WMGLOBAL to set the desired font set and set MultiByteText = YES; to enable support for multibyte text. Widgets provided by WINGs: -------------------------- - button (command button, radio, switch etc. - all buttons defined in OpenStep) - label - textfield - frame - window - popup menu button - scroller - selection list - browser - slider - scrollable view - color well - split view - tabbed view - progress indicator - selection (make pasteboard like?) - drag&drop - input box - file panel - color panel - alert panel - font panel If you think you can code the following, please do. They are needed by WPrefs.app, but the number of other things I have to do is huge. - input method support (XIM). I have no idea of how to code it. People who use different characters than ASCII will have trouble editing menus without it... Wish list: (I don't have the know-how or time to do them) --------------------------------------------------------- - text (with support for RTF) - matrix (like NSMatrix) - font manager (like NSFontManager) - finish other wigets - optimize list scrolling (XCopyArea() the area that's already drawn) - InterfaceMaker? - use XSetWMName and XSetWMIconName for the window/icon title setting. This requires transforming the received text to a text property with the proper encoding. Copyright --------- WINGs is copyright (c) Alfredo K. Kojima and is licensed through the GNU Library General Public License (LGPL). WindowMaker-0.95.5/WINGs/wpanel.c0000644000175000017500000003725512214432632013356 00000000000000 #include "WINGsP.h" #include #include static void alertPanelOnClick(WMWidget * self, void *clientData) { WMAlertPanel *panel = clientData; WMBreakModalLoop(WMWidgetScreen(self)); if (self == panel->defBtn) { panel->result = WAPRDefault; } else if (self == panel->othBtn) { panel->result = WAPROther; } else if (self == panel->altBtn) { panel->result = WAPRAlternate; } } static void handleKeyPress(XEvent * event, void *clientData) { WMAlertPanel *panel = (WMAlertPanel *) clientData; KeySym ksym; XLookupString(&event->xkey, NULL, 0, &ksym, NULL); if (ksym == XK_Return && panel->defBtn) { WMPerformButtonClick(panel->defBtn); } else if (ksym == XK_Escape) { if (panel->altBtn || panel->othBtn) { WMPerformButtonClick(panel->othBtn ? panel->othBtn : panel->altBtn); } else { panel->result = WAPRDefault; WMBreakModalLoop(WMWidgetScreen(panel->win)); } } } int WMRunAlertPanel(WMScreen * scrPtr, WMWindow * owner, const char *title, const char *msg, const char *defaultButton, const char *alternateButton, const char *otherButton) { WMAlertPanel *panel; int tmp; panel = WMCreateAlertPanel(scrPtr, owner, title, msg, defaultButton, alternateButton, otherButton); { int px, py; WMView *view = WMWidgetView(panel->win); if (owner) { WMView *oview = WMWidgetView(owner); WMPoint pt = WMGetViewScreenPosition(oview); px = (W_VIEW_WIDTH(oview) - W_VIEW_WIDTH(view)) / 2; py = (W_VIEW_HEIGHT(oview) - W_VIEW_HEIGHT(view)) / 2; px += pt.x; py += pt.y; } else { px = (W_VIEW_WIDTH(scrPtr->rootView) - W_VIEW_WIDTH(view)) / 2; py = (W_VIEW_HEIGHT(scrPtr->rootView) - W_VIEW_HEIGHT(view)) / 2; } WMSetWindowInitialPosition(panel->win, px, py); } WMMapWidget(panel->win); WMRunModalLoop(scrPtr, W_VIEW(panel->win)); tmp = panel->result; WMDestroyAlertPanel(panel); return tmp; } void WMDestroyAlertPanel(WMAlertPanel * panel) { WMUnmapWidget(panel->win); WMDestroyWidget(panel->win); wfree(panel); } WMAlertPanel *WMCreateAlertPanel(WMScreen * scrPtr, WMWindow * owner, const char *title, const char *msg, const char *defaultButton, const char *alternateButton, const char *otherButton) { WMAlertPanel *panel; int dw = 0, aw = 0, ow = 0, w; WMBox *hbox; WMPixmap *icon; panel = wmalloc(sizeof(WMAlertPanel)); if (owner) { panel->win = WMCreatePanelWithStyleForWindow(owner, "alertPanel", WMTitledWindowMask); } else { panel->win = WMCreateWindowWithStyle(scrPtr, "alertPanel", WMTitledWindowMask); } WMSetWindowInitialPosition(panel->win, (scrPtr->rootView->size.width - WMWidgetWidth(panel->win)) / 2, (scrPtr->rootView->size.height - WMWidgetHeight(panel->win)) / 2); WMSetWindowTitle(panel->win, ""); panel->vbox = WMCreateBox(panel->win); WMSetViewExpandsToParent(WMWidgetView(panel->vbox), 0, 0, 0, 0); WMSetBoxHorizontal(panel->vbox, False); WMMapWidget(panel->vbox); hbox = WMCreateBox(panel->vbox); WMSetBoxBorderWidth(hbox, 5); WMSetBoxHorizontal(hbox, True); WMMapWidget(hbox); WMAddBoxSubview(panel->vbox, WMWidgetView(hbox), False, True, 74, 0, 5); panel->iLbl = WMCreateLabel(hbox); WMSetLabelImagePosition(panel->iLbl, WIPImageOnly); WMMapWidget(panel->iLbl); WMAddBoxSubview(hbox, WMWidgetView(panel->iLbl), False, True, 64, 0, 10); icon = WMCreateApplicationIconBlendedPixmap(scrPtr, (RColor *) NULL); if (icon) { WMSetLabelImage(panel->iLbl, icon); WMReleasePixmap(icon); } else { WMSetLabelImage(panel->iLbl, scrPtr->applicationIconPixmap); } if (title) { WMFont *largeFont; largeFont = WMBoldSystemFontOfSize(scrPtr, 24); panel->tLbl = WMCreateLabel(hbox); WMMapWidget(panel->tLbl); WMAddBoxSubview(hbox, WMWidgetView(panel->tLbl), True, True, 64, 0, 0); WMSetLabelText(panel->tLbl, title); WMSetLabelTextAlignment(panel->tLbl, WALeft); WMSetLabelFont(panel->tLbl, largeFont); WMReleaseFont(largeFont); } /* create divider line */ panel->line = WMCreateFrame(panel->win); WMMapWidget(panel->line); WMAddBoxSubview(panel->vbox, WMWidgetView(panel->line), False, True, 2, 2, 5); WMSetFrameRelief(panel->line, WRGroove); if (msg) { panel->mLbl = WMCreateLabel(panel->vbox); WMSetLabelWraps(panel->mLbl, True); WMMapWidget(panel->mLbl); WMAddBoxSubview(panel->vbox, WMWidgetView(panel->mLbl), True, True, WMFontHeight(scrPtr->normalFont) * 4, 0, 5); WMSetLabelText(panel->mLbl, msg); WMSetLabelTextAlignment(panel->mLbl, WACenter); } panel->hbox = WMCreateBox(panel->vbox); WMSetBoxBorderWidth(panel->hbox, 10); WMSetBoxHorizontal(panel->hbox, True); WMMapWidget(panel->hbox); WMAddBoxSubview(panel->vbox, WMWidgetView(panel->hbox), False, True, 44, 0, 0); /* create buttons */ if (otherButton) ow = WMWidthOfString(scrPtr->normalFont, otherButton, strlen(otherButton)); if (alternateButton) aw = WMWidthOfString(scrPtr->normalFont, alternateButton, strlen(alternateButton)); if (defaultButton) dw = WMWidthOfString(scrPtr->normalFont, defaultButton, strlen(defaultButton)); dw = dw + (scrPtr->buttonArrow ? scrPtr->buttonArrow->width : 0); aw += 30; ow += 30; dw += 30; w = WMAX(dw, WMAX(aw, ow)); if ((w + 10) * 3 < 400) { aw = w; ow = w; dw = w; } else { int t; t = 400 - 40 - aw - ow - dw; aw += t / 3; ow += t / 3; dw += t / 3; } if (defaultButton) { panel->defBtn = WMCreateCommandButton(panel->hbox); WMSetButtonAction(panel->defBtn, alertPanelOnClick, panel); WMAddBoxSubviewAtEnd(panel->hbox, WMWidgetView(panel->defBtn), False, True, dw, 0, 0); WMSetButtonText(panel->defBtn, defaultButton); WMSetButtonImage(panel->defBtn, scrPtr->buttonArrow); WMSetButtonAltImage(panel->defBtn, scrPtr->pushedButtonArrow); WMSetButtonImagePosition(panel->defBtn, WIPRight); } if (alternateButton) { panel->altBtn = WMCreateCommandButton(panel->hbox); WMAddBoxSubviewAtEnd(panel->hbox, WMWidgetView(panel->altBtn), False, True, aw, 0, 5); WMSetButtonAction(panel->altBtn, alertPanelOnClick, panel); WMSetButtonText(panel->altBtn, alternateButton); } if (otherButton) { panel->othBtn = WMCreateCommandButton(panel->hbox); WMSetButtonAction(panel->othBtn, alertPanelOnClick, panel); WMAddBoxSubviewAtEnd(panel->hbox, WMWidgetView(panel->othBtn), False, True, ow, 0, 5); WMSetButtonText(panel->othBtn, otherButton); } WMMapSubwidgets(panel->hbox); WMCreateEventHandler(W_VIEW(panel->win), KeyPressMask, handleKeyPress, panel); WMRealizeWidget(panel->win); WMMapSubwidgets(panel->win); return panel; } static void inputBoxOnClick(WMWidget * self, void *clientData) { WMInputPanel *panel = clientData; WMBreakModalLoop(WMWidgetScreen(self)); if (self == panel->defBtn) { panel->result = WAPRDefault; } else if (self == panel->altBtn) { panel->result = WAPRAlternate; } } static void handleKeyPress2(XEvent * event, void *clientData) { WMInputPanel *panel = (WMInputPanel *) clientData; KeySym ksym; XLookupString(&event->xkey, NULL, 0, &ksym, NULL); if (ksym == XK_Return && panel->defBtn) { WMPerformButtonClick(panel->defBtn); } else if (ksym == XK_Escape) { if (panel->altBtn) { WMPerformButtonClick(panel->altBtn); } else { /* printf("got esc\n"); */ WMBreakModalLoop(WMWidgetScreen(panel->win)); panel->result = WAPRDefault; } } } char *WMRunInputPanel(WMScreen * scrPtr, WMWindow * owner, const char *title, const char *msg, const char *defaultText, const char *okButton, const char *cancelButton) { WMInputPanel *panel; char *tmp; panel = WMCreateInputPanel(scrPtr, owner, title, msg, defaultText, okButton, cancelButton); { int px, py; WMView *view = WMWidgetView(panel->win); if (owner) { WMView *oview = WMWidgetView(owner); WMPoint pt = WMGetViewScreenPosition(oview); px = (W_VIEW_WIDTH(oview) - W_VIEW_WIDTH(view)) / 2; py = (W_VIEW_HEIGHT(oview) - W_VIEW_HEIGHT(view)) / 2; px += pt.x; py += pt.y; } else { px = (W_VIEW_WIDTH(scrPtr->rootView) - W_VIEW_WIDTH(view)) / 2; py = (W_VIEW_HEIGHT(scrPtr->rootView) - W_VIEW_HEIGHT(view)) / 2; } WMSetWindowInitialPosition(panel->win, px, py); } WMMapWidget(panel->win); WMRunModalLoop(scrPtr, W_VIEW(panel->win)); if (panel->result == WAPRDefault) tmp = WMGetTextFieldText(panel->text); else tmp = NULL; WMDestroyInputPanel(panel); return tmp; } void WMDestroyInputPanel(WMInputPanel * panel) { WMRemoveNotificationObserver(panel); WMUnmapWidget(panel->win); WMDestroyWidget(panel->win); wfree(panel); } static void endedEditingObserver(void *observerData, WMNotification * notification) { WMInputPanel *panel = (WMInputPanel *) observerData; switch ((uintptr_t)WMGetNotificationClientData(notification)) { case WMReturnTextMovement: if (panel->defBtn) WMPerformButtonClick(panel->defBtn); break; case WMEscapeTextMovement: if (panel->altBtn) WMPerformButtonClick(panel->altBtn); else { WMBreakModalLoop(WMWidgetScreen(panel->win)); panel->result = WAPRDefault; } break; default: break; } } WMInputPanel *WMCreateInputPanel(WMScreen * scrPtr, WMWindow * owner, const char *title, const char *msg, const char *defaultText, const char *okButton, const char *cancelButton) { WMInputPanel *panel; int x, dw = 0, aw = 0, w; panel = wmalloc(sizeof(WMInputPanel)); if (owner) panel->win = WMCreatePanelWithStyleForWindow(owner, "inputPanel", WMTitledWindowMask); else panel->win = WMCreateWindowWithStyle(scrPtr, "inputPanel", WMTitledWindowMask); WMSetWindowTitle(panel->win, ""); WMResizeWidget(panel->win, 320, 160); if (title) { WMFont *largeFont; largeFont = WMBoldSystemFontOfSize(scrPtr, 24); panel->tLbl = WMCreateLabel(panel->win); WMMoveWidget(panel->tLbl, 20, 16); WMResizeWidget(panel->tLbl, 320 - 40, WMFontHeight(largeFont) + 4); WMSetLabelText(panel->tLbl, title); WMSetLabelTextAlignment(panel->tLbl, WALeft); WMSetLabelFont(panel->tLbl, largeFont); WMReleaseFont(largeFont); } if (msg) { panel->mLbl = WMCreateLabel(panel->win); WMMoveWidget(panel->mLbl, 20, 50); WMResizeWidget(panel->mLbl, 320 - 40, WMFontHeight(scrPtr->normalFont) * 2); WMSetLabelText(panel->mLbl, msg); WMSetLabelTextAlignment(panel->mLbl, WALeft); } panel->text = WMCreateTextField(panel->win); WMMoveWidget(panel->text, 20, 85); WMResizeWidget(panel->text, 320 - 40, WMWidgetHeight(panel->text)); WMSetTextFieldText(panel->text, defaultText); WMAddNotificationObserver(endedEditingObserver, panel, WMTextDidEndEditingNotification, panel->text); /* create buttons */ if (cancelButton) aw = WMWidthOfString(scrPtr->normalFont, cancelButton, strlen(cancelButton)); if (okButton) dw = WMWidthOfString(scrPtr->normalFont, okButton, strlen(okButton)); w = dw + (scrPtr->buttonArrow ? scrPtr->buttonArrow->width : 0); if (aw > w) w = aw; w += 30; x = 310; if (okButton) { x -= w + 10; panel->defBtn = WMCreateCustomButton(panel->win, WBBPushInMask | WBBPushChangeMask | WBBPushLightMask); WMSetButtonAction(panel->defBtn, inputBoxOnClick, panel); WMMoveWidget(panel->defBtn, x, 124); WMResizeWidget(panel->defBtn, w, 24); WMSetButtonText(panel->defBtn, okButton); WMSetButtonImage(panel->defBtn, scrPtr->buttonArrow); WMSetButtonAltImage(panel->defBtn, scrPtr->pushedButtonArrow); WMSetButtonImagePosition(panel->defBtn, WIPRight); } if (cancelButton) { x -= w + 10; panel->altBtn = WMCreateCommandButton(panel->win); WMSetButtonAction(panel->altBtn, inputBoxOnClick, panel); WMMoveWidget(panel->altBtn, x, 124); WMResizeWidget(panel->altBtn, w, 24); WMSetButtonText(panel->altBtn, cancelButton); } WMCreateEventHandler(W_VIEW(panel->win), KeyPressMask, handleKeyPress2, panel); WMRealizeWidget(panel->win); WMMapSubwidgets(panel->win); WMSetFocusToWidget(panel->text); return panel; } static void handleKeyPress3(XEvent * event, void *clientData) { WMGenericPanel *panel = (WMGenericPanel *) clientData; KeySym ksym; XLookupString(&event->xkey, NULL, 0, &ksym, NULL); if (ksym == XK_Return && panel->defBtn) { WMPerformButtonClick(panel->defBtn); } else if (ksym == XK_Escape) { if (panel->altBtn) { WMPerformButtonClick(panel->altBtn); } else { panel->result = WAPRDefault; WMBreakModalLoop(WMWidgetScreen(panel->win)); } } } void WMDestroyGenericPanel(WMGenericPanel * panel) { WMUnmapWidget(panel->win); WMDestroyWidget(panel->win); wfree(panel); } WMGenericPanel *WMCreateGenericPanel(WMScreen * scrPtr, WMWindow * owner, const char *title, const char *defaultButton, const char *alternateButton) { WMGenericPanel *panel; int dw = 0, aw = 0, w; WMBox *hbox; WMPixmap *icon; panel = wmalloc(sizeof(WMGenericPanel)); if (owner) { panel->win = WMCreatePanelWithStyleForWindow(owner, "genericPanel", WMTitledWindowMask); } else { panel->win = WMCreateWindowWithStyle(scrPtr, "genericPanel", WMTitledWindowMask); } WMSetWindowInitialPosition(panel->win, (scrPtr->rootView->size.width - WMWidgetWidth(panel->win)) / 2, (scrPtr->rootView->size.height - WMWidgetHeight(panel->win)) / 2); WMSetWindowTitle(panel->win, ""); panel->vbox = WMCreateBox(panel->win); WMSetViewExpandsToParent(WMWidgetView(panel->vbox), 0, 0, 0, 0); WMSetBoxHorizontal(panel->vbox, False); WMMapWidget(panel->vbox); hbox = WMCreateBox(panel->vbox); WMSetBoxBorderWidth(hbox, 5); WMSetBoxHorizontal(hbox, True); WMMapWidget(hbox); WMAddBoxSubview(panel->vbox, WMWidgetView(hbox), False, True, 74, 0, 5); panel->iLbl = WMCreateLabel(hbox); WMSetLabelImagePosition(panel->iLbl, WIPImageOnly); WMMapWidget(panel->iLbl); WMAddBoxSubview(hbox, WMWidgetView(panel->iLbl), False, True, 64, 0, 10); icon = WMCreateApplicationIconBlendedPixmap(scrPtr, (RColor *) NULL); if (icon) { WMSetLabelImage(panel->iLbl, icon); WMReleasePixmap(icon); } else { WMSetLabelImage(panel->iLbl, scrPtr->applicationIconPixmap); } if (title) { WMFont *largeFont; largeFont = WMBoldSystemFontOfSize(scrPtr, 24); panel->tLbl = WMCreateLabel(hbox); WMMapWidget(panel->tLbl); WMAddBoxSubview(hbox, WMWidgetView(panel->tLbl), True, True, 64, 0, 0); WMSetLabelText(panel->tLbl, title); WMSetLabelTextAlignment(panel->tLbl, WALeft); WMSetLabelFont(panel->tLbl, largeFont); WMReleaseFont(largeFont); } /* create divider line */ panel->line = WMCreateFrame(panel->vbox); WMMapWidget(panel->line); WMAddBoxSubview(panel->vbox, WMWidgetView(panel->line), False, True, 2, 2, 5); WMSetFrameRelief(panel->line, WRGroove); panel->content = WMCreateFrame(panel->vbox); WMMapWidget(panel->content); WMAddBoxSubview(panel->vbox, WMWidgetView(panel->content), True, True, 50, 0, 5); WMSetFrameRelief(panel->content, WRFlat); hbox = WMCreateBox(panel->vbox); WMSetBoxBorderWidth(hbox, 10); WMSetBoxHorizontal(hbox, True); WMMapWidget(hbox); WMAddBoxSubview(panel->vbox, WMWidgetView(hbox), False, True, 44, 0, 0); /* create buttons */ if (defaultButton) dw = WMWidthOfString(scrPtr->normalFont, defaultButton, strlen(defaultButton)); if (alternateButton) aw = WMWidthOfString(scrPtr->normalFont, alternateButton, strlen(alternateButton)); dw = dw + (scrPtr->buttonArrow ? scrPtr->buttonArrow->width : 0); aw += 30; dw += 30; w = WMAX(dw, aw); if ((w + 10) * 2 < 400) { aw = w; dw = w; } else { int t; t = 400 - 40 - aw - dw; aw += t / 2; dw += t / 2; } if (defaultButton) { panel->defBtn = WMCreateCommandButton(hbox); WMSetButtonAction(panel->defBtn, alertPanelOnClick, panel); WMAddBoxSubviewAtEnd(hbox, WMWidgetView(panel->defBtn), False, True, dw, 0, 0); WMSetButtonText(panel->defBtn, defaultButton); WMSetButtonImage(panel->defBtn, scrPtr->buttonArrow); WMSetButtonAltImage(panel->defBtn, scrPtr->pushedButtonArrow); WMSetButtonImagePosition(panel->defBtn, WIPRight); } WMMapSubwidgets(hbox); WMCreateEventHandler(W_VIEW(panel->win), KeyPressMask, handleKeyPress3, panel); WMRealizeWidget(panel->win); WMMapSubwidgets(panel->win); return panel; } WindowMaker-0.95.5/WINGs/wbutton.c0000644000175000017500000004116512214432632013565 00000000000000 #include "WINGsP.h" typedef struct W_Button { W_Class widgetClass; WMView *view; char *caption; char *altCaption; WMFont *font; WMColor *textColor; WMColor *altTextColor; WMColor *disTextColor; W_Pixmap *image; W_Pixmap *altImage; W_Pixmap *dimage; void *clientData; WMAction *action; int tag; int groupIndex; float periodicDelay; float periodicInterval; WMHandlerID *timer; /* for continuous mode */ struct { WMButtonType type:4; WMImagePosition imagePosition:4; WMAlignment alignment:2; unsigned int selected:1; unsigned int enabled:1; unsigned int dimsWhenDisabled:1; unsigned int bordered:1; unsigned int springLoaded:1; unsigned int pushIn:1; /* change relief while pushed */ unsigned int pushLight:1; /* highlight while pushed */ unsigned int pushChange:1; /* change caption while pushed */ unsigned int stateLight:1; /* state indicated by highlight */ unsigned int stateChange:1; /* state indicated by caption change */ unsigned int statePush:1; /* state indicated by relief */ unsigned int continuous:1; /* continually perform action */ unsigned int prevSelected:1; unsigned int pushed:1; unsigned int wasPushed:1; unsigned int redrawPending:1; unsigned int addedObserver:1; } flags; } Button; #define DEFAULT_BUTTON_WIDTH 60 #define DEFAULT_BUTTON_HEIGHT 24 #define DEFAULT_BUTTON_ALIGNMENT WACenter #define DEFAULT_BUTTON_IS_BORDERED True #define DEFAULT_RADIO_WIDTH 100 #define DEFAULT_RADIO_HEIGHT 20 #define DEFAULT_RADIO_ALIGNMENT WALeft #define DEFAULT_RADIO_IMAGE_POSITION WIPLeft #define DEFAULT_RADIO_TEXT "Radio" #define DEFAULT_SWITCH_WIDTH 100 #define DEFAULT_SWITCH_HEIGHT 20 #define DEFAULT_SWITCH_ALIGNMENT WALeft #define DEFAULT_SWITCH_IMAGE_POSITION WIPLeft #define DEFAULT_SWITCH_TEXT "Switch" static void destroyButton(Button * bPtr); static void paintButton(Button * bPtr); static void handleEvents(XEvent * event, void *data); static void handleActionEvents(XEvent * event, void *data); static char *WMPushedRadioNotification = "WMPushedRadioNotification"; #define NFONT(b) (b)->view->screen->normalFont WMButton *WMCreateCustomButton(WMWidget * parent, int behaviourMask) { Button *bPtr; bPtr = wmalloc(sizeof(Button)); bPtr->widgetClass = WC_Button; bPtr->view = W_CreateView(W_VIEW(parent)); if (!bPtr->view) { wfree(bPtr); return NULL; } bPtr->view->self = bPtr; bPtr->flags.type = 0; bPtr->flags.springLoaded = (behaviourMask & WBBSpringLoadedMask) != 0; bPtr->flags.pushIn = (behaviourMask & WBBPushInMask) != 0; bPtr->flags.pushChange = (behaviourMask & WBBPushChangeMask) != 0; bPtr->flags.pushLight = (behaviourMask & WBBPushLightMask) != 0; bPtr->flags.stateLight = (behaviourMask & WBBStateLightMask) != 0; bPtr->flags.stateChange = (behaviourMask & WBBStateChangeMask) != 0; bPtr->flags.statePush = (behaviourMask & WBBStatePushMask) != 0; W_ResizeView(bPtr->view, DEFAULT_BUTTON_WIDTH, DEFAULT_BUTTON_HEIGHT); bPtr->flags.alignment = DEFAULT_BUTTON_ALIGNMENT; bPtr->flags.bordered = DEFAULT_BUTTON_IS_BORDERED; bPtr->flags.enabled = 1; bPtr->flags.dimsWhenDisabled = 1; WMCreateEventHandler(bPtr->view, ExposureMask | StructureNotifyMask, handleEvents, bPtr); WMCreateEventHandler(bPtr->view, ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask, handleActionEvents, bPtr); W_ResizeView(bPtr->view, DEFAULT_BUTTON_WIDTH, DEFAULT_BUTTON_HEIGHT); bPtr->flags.alignment = DEFAULT_BUTTON_ALIGNMENT; bPtr->flags.bordered = DEFAULT_BUTTON_IS_BORDERED; return bPtr; } WMButton *WMCreateButton(WMWidget * parent, WMButtonType type) { W_Screen *scrPtr = W_VIEW(parent)->screen; Button *bPtr; switch (type) { case WBTMomentaryPush: bPtr = WMCreateCustomButton(parent, WBBSpringLoadedMask | WBBPushInMask | WBBPushLightMask); break; case WBTMomentaryChange: bPtr = WMCreateCustomButton(parent, WBBSpringLoadedMask | WBBPushChangeMask); break; case WBTPushOnPushOff: bPtr = WMCreateCustomButton(parent, WBBPushInMask | WBBStatePushMask | WBBStateLightMask); break; case WBTToggle: bPtr = WMCreateCustomButton(parent, WBBPushInMask | WBBStateChangeMask | WBBStatePushMask); break; case WBTOnOff: bPtr = WMCreateCustomButton(parent, WBBStateLightMask); break; case WBTSwitch: bPtr = WMCreateCustomButton(parent, WBBStateChangeMask); bPtr->flags.bordered = 0; bPtr->image = WMRetainPixmap(scrPtr->checkButtonImageOff); bPtr->altImage = WMRetainPixmap(scrPtr->checkButtonImageOn); break; case WBTRadio: bPtr = WMCreateCustomButton(parent, WBBStateChangeMask); bPtr->flags.bordered = 0; bPtr->image = WMRetainPixmap(scrPtr->radioButtonImageOff); bPtr->altImage = WMRetainPixmap(scrPtr->radioButtonImageOn); break; default: case WBTMomentaryLight: bPtr = WMCreateCustomButton(parent, WBBSpringLoadedMask | WBBPushLightMask); bPtr->flags.bordered = 1; break; } bPtr->flags.type = type; if (type == WBTRadio) { W_ResizeView(bPtr->view, DEFAULT_RADIO_WIDTH, DEFAULT_RADIO_HEIGHT); WMSetButtonText(bPtr, DEFAULT_RADIO_TEXT); bPtr->flags.alignment = DEFAULT_RADIO_ALIGNMENT; bPtr->flags.imagePosition = DEFAULT_RADIO_IMAGE_POSITION; } else if (type == WBTSwitch) { W_ResizeView(bPtr->view, DEFAULT_SWITCH_WIDTH, DEFAULT_SWITCH_HEIGHT); WMSetButtonText(bPtr, DEFAULT_SWITCH_TEXT); bPtr->flags.alignment = DEFAULT_SWITCH_ALIGNMENT; bPtr->flags.imagePosition = DEFAULT_SWITCH_IMAGE_POSITION; } return bPtr; } static void updateDisabledMask(WMButton * bPtr) { WMScreen *scr = WMWidgetScreen(bPtr); Display *dpy = scr->display; if (bPtr->image) { XGCValues gcv; if (bPtr->dimage->mask) { XFreePixmap(dpy, bPtr->dimage->mask); bPtr->dimage->mask = None; } if (bPtr->flags.dimsWhenDisabled) { bPtr->dimage->mask = XCreatePixmap(dpy, scr->stipple, bPtr->dimage->width, bPtr->dimage->height, 1); XSetForeground(dpy, scr->monoGC, 0); XFillRectangle(dpy, bPtr->dimage->mask, scr->monoGC, 0, 0, bPtr->dimage->width, bPtr->dimage->height); gcv.foreground = 1; gcv.background = 0; gcv.stipple = scr->stipple; gcv.fill_style = FillStippled; gcv.clip_mask = bPtr->image->mask; gcv.clip_x_origin = 0; gcv.clip_y_origin = 0; XChangeGC(dpy, scr->monoGC, GCForeground | GCBackground | GCStipple | GCFillStyle | GCClipMask | GCClipXOrigin | GCClipYOrigin, &gcv); XFillRectangle(dpy, bPtr->dimage->mask, scr->monoGC, 0, 0, bPtr->dimage->width, bPtr->dimage->height); gcv.fill_style = FillSolid; gcv.clip_mask = None; XChangeGC(dpy, scr->monoGC, GCFillStyle | GCClipMask, &gcv); } } } void WMSetButtonImageDefault(WMButton * bPtr) { WMSetButtonImage(bPtr, WMWidgetScreen(bPtr)->buttonArrow); WMSetButtonAltImage(bPtr, WMWidgetScreen(bPtr)->pushedButtonArrow); } void WMSetButtonImage(WMButton * bPtr, WMPixmap * image) { if (bPtr->image != NULL) WMReleasePixmap(bPtr->image); bPtr->image = WMRetainPixmap(image); if (bPtr->dimage) { bPtr->dimage->pixmap = None; WMReleasePixmap(bPtr->dimage); bPtr->dimage = NULL; } if (image) { bPtr->dimage = WMCreatePixmapFromXPixmaps(WMWidgetScreen(bPtr), image->pixmap, None, image->width, image->height, image->depth); updateDisabledMask(bPtr); } if (bPtr->view->flags.realized) { paintButton(bPtr); } } void WMSetButtonAltImage(WMButton * bPtr, WMPixmap * image) { if (bPtr->altImage != NULL) WMReleasePixmap(bPtr->altImage); bPtr->altImage = WMRetainPixmap(image); if (bPtr->view->flags.realized) { paintButton(bPtr); } } void WMSetButtonImagePosition(WMButton * bPtr, WMImagePosition position) { bPtr->flags.imagePosition = position; if (bPtr->view->flags.realized) { paintButton(bPtr); } } void WMSetButtonTextAlignment(WMButton * bPtr, WMAlignment alignment) { bPtr->flags.alignment = alignment; if (bPtr->view->flags.realized) { paintButton(bPtr); } } void WMSetButtonText(WMButton * bPtr, const char *text) { if (bPtr->caption) wfree(bPtr->caption); if (text != NULL) { bPtr->caption = wstrdup(text); } else { bPtr->caption = NULL; } if (bPtr->view->flags.realized) { paintButton(bPtr); } } void WMSetButtonAltText(WMButton * bPtr, const char *text) { if (bPtr->altCaption) wfree(bPtr->altCaption); if (text != NULL) { bPtr->altCaption = wstrdup(text); } else { bPtr->altCaption = NULL; } if (bPtr->view->flags.realized) { paintButton(bPtr); } } void WMSetButtonTextColor(WMButton * bPtr, WMColor * color) { if (bPtr->textColor) WMReleaseColor(bPtr->textColor); bPtr->textColor = WMRetainColor(color); } void WMSetButtonAltTextColor(WMButton * bPtr, WMColor * color) { if (bPtr->altTextColor) WMReleaseColor(bPtr->altTextColor); bPtr->altTextColor = WMRetainColor(color); } void WMSetButtonDisabledTextColor(WMButton * bPtr, WMColor * color) { if (bPtr->disTextColor) WMReleaseColor(bPtr->disTextColor); bPtr->disTextColor = WMRetainColor(color); } void WMSetButtonSelected(WMButton * bPtr, int isSelected) { bPtr->flags.selected = isSelected ? 1 : 0; if (bPtr->view->flags.realized) { paintButton(bPtr); } if (bPtr->groupIndex > 0) WMPostNotificationName(WMPushedRadioNotification, bPtr, NULL); } int WMGetButtonSelected(WMButton * bPtr) { CHECK_CLASS(bPtr, WC_Button); return bPtr->flags.selected; } void WMSetButtonBordered(WMButton * bPtr, int isBordered) { bPtr->flags.bordered = isBordered; if (bPtr->view->flags.realized) { paintButton(bPtr); } } void WMSetButtonFont(WMButton * bPtr, WMFont * font) { if (bPtr->font) WMReleaseFont(bPtr->font); bPtr->font = WMRetainFont(font); } void WMSetButtonEnabled(WMButton * bPtr, Bool flag) { bPtr->flags.enabled = ((flag == 0) ? 0 : 1); if (bPtr->view->flags.mapped) { paintButton(bPtr); } } int WMGetButtonEnabled(WMButton * bPtr) { CHECK_CLASS(bPtr, WC_Button); return bPtr->flags.enabled; } void WMSetButtonImageDimsWhenDisabled(WMButton * bPtr, Bool flag) { bPtr->flags.dimsWhenDisabled = ((flag == 0) ? 0 : 1); updateDisabledMask(bPtr); } void WMSetButtonTag(WMButton * bPtr, int tag) { bPtr->tag = tag; } void WMPerformButtonClick(WMButton * bPtr) { CHECK_CLASS(bPtr, WC_Button); if (!bPtr->flags.enabled) return; bPtr->flags.pushed = 1; bPtr->flags.selected = 1; if (bPtr->view->flags.mapped) { paintButton(bPtr); XFlush(WMScreenDisplay(WMWidgetScreen(bPtr))); wusleep(20000); } bPtr->flags.pushed = 0; if (bPtr->groupIndex > 0) { WMPostNotificationName(WMPushedRadioNotification, bPtr, NULL); } if (bPtr->action) (*bPtr->action) (bPtr, bPtr->clientData); if (bPtr->view->flags.mapped) paintButton(bPtr); } void WMSetButtonAction(WMButton * bPtr, WMAction * action, void *clientData) { CHECK_CLASS(bPtr, WC_Button); bPtr->action = action; bPtr->clientData = clientData; } static void radioPushObserver(void *observerData, WMNotification * notification) { WMButton *bPtr = (WMButton *) observerData; WMButton *pushedButton = (WMButton *) WMGetNotificationObject(notification); if (bPtr != pushedButton && pushedButton->groupIndex == bPtr->groupIndex && bPtr->groupIndex != 0) { if (bPtr->flags.selected) { bPtr->flags.selected = 0; paintButton(bPtr); } } } void WMGroupButtons(WMButton * bPtr, WMButton * newMember) { static int tagIndex = 0; CHECK_CLASS(bPtr, WC_Button); CHECK_CLASS(newMember, WC_Button); if (!bPtr->flags.addedObserver) { WMAddNotificationObserver(radioPushObserver, bPtr, WMPushedRadioNotification, NULL); bPtr->flags.addedObserver = 1; } if (!newMember->flags.addedObserver) { WMAddNotificationObserver(radioPushObserver, newMember, WMPushedRadioNotification, NULL); newMember->flags.addedObserver = 1; } if (bPtr->groupIndex == 0) { bPtr->groupIndex = ++tagIndex; } newMember->groupIndex = bPtr->groupIndex; } void WMSetButtonContinuous(WMButton * bPtr, Bool flag) { bPtr->flags.continuous = ((flag == 0) ? 0 : 1); if (bPtr->timer) { WMDeleteTimerHandler(bPtr->timer); bPtr->timer = NULL; } } void WMSetButtonPeriodicDelay(WMButton * bPtr, float delay, float interval) { bPtr->periodicInterval = interval; bPtr->periodicDelay = delay; } static void paintButton(Button * bPtr) { W_Screen *scrPtr = bPtr->view->screen; WMReliefType relief; int offset; char *caption; WMPixmap *image; WMColor *textColor; WMColor *backColor; backColor = NULL; caption = bPtr->caption; if (bPtr->flags.enabled) { textColor = (bPtr->textColor != NULL ? bPtr->textColor : scrPtr->black); } else { textColor = (bPtr->disTextColor != NULL ? bPtr->disTextColor : scrPtr->darkGray); } if (bPtr->flags.enabled || !bPtr->dimage) image = bPtr->image; else image = bPtr->dimage; offset = 0; if (bPtr->flags.bordered) relief = WRRaised; else relief = WRFlat; if (bPtr->flags.selected) { if (bPtr->flags.stateLight) { backColor = scrPtr->white; textColor = scrPtr->black; } if (bPtr->flags.stateChange) { if (bPtr->altCaption) caption = bPtr->altCaption; if (bPtr->altImage) image = bPtr->altImage; if (bPtr->altTextColor) textColor = bPtr->altTextColor; } if (bPtr->flags.statePush && bPtr->flags.bordered) { relief = WRSunken; offset = 1; } } if (bPtr->flags.pushed) { if (bPtr->flags.pushIn) { relief = WRPushed; offset = 1; } if (bPtr->flags.pushLight) { backColor = scrPtr->white; textColor = scrPtr->black; } if (bPtr->flags.pushChange) { if (bPtr->altCaption) caption = bPtr->altCaption; if (bPtr->altImage) image = bPtr->altImage; if (bPtr->altTextColor) textColor = bPtr->altTextColor; } } W_PaintTextAndImage(bPtr->view, True, textColor, (bPtr->font != NULL ? bPtr->font : scrPtr->normalFont), relief, caption, bPtr->flags.alignment, image, bPtr->flags.imagePosition, backColor, offset); } static void handleEvents(XEvent * event, void *data) { Button *bPtr = (Button *) data; CHECK_CLASS(data, WC_Button); switch (event->type) { case Expose: if (event->xexpose.count != 0) break; paintButton(bPtr); break; case DestroyNotify: destroyButton(bPtr); break; } } static void autoRepeat(void *data) { Button *bPtr = (Button *) data; if (bPtr->action && bPtr->flags.pushed) (*bPtr->action) (bPtr, bPtr->clientData); bPtr->timer = WMAddTimerHandler((int)(bPtr->periodicInterval * 1000), autoRepeat, bPtr); } static void handleActionEvents(XEvent * event, void *data) { Button *bPtr = (Button *) data; int doclick = 0, dopaint = 0; CHECK_CLASS(data, WC_Button); if (!bPtr->flags.enabled) return; switch (event->type) { case EnterNotify: if (bPtr->groupIndex == 0) { bPtr->flags.pushed = bPtr->flags.wasPushed; if (bPtr->flags.pushed) { bPtr->flags.selected = !bPtr->flags.prevSelected; dopaint = 1; } } break; case LeaveNotify: if (bPtr->groupIndex == 0) { bPtr->flags.wasPushed = bPtr->flags.pushed; if (bPtr->flags.pushed) { bPtr->flags.selected = bPtr->flags.prevSelected; dopaint = 1; } bPtr->flags.pushed = 0; } break; case ButtonPress: if (event->xbutton.button == Button1) { bPtr->flags.prevSelected = bPtr->flags.selected; bPtr->flags.wasPushed = 0; bPtr->flags.pushed = 1; if (bPtr->groupIndex > 0) { bPtr->flags.selected = 1; dopaint = 1; break; } bPtr->flags.selected = !bPtr->flags.selected; dopaint = 1; if (bPtr->flags.continuous && !bPtr->timer) { bPtr->timer = WMAddTimerHandler((int)(bPtr->periodicDelay * 1000), autoRepeat, bPtr); } } break; case ButtonRelease: if (event->xbutton.button == Button1) { if (bPtr->flags.pushed) { if (bPtr->groupIndex == 0 || (bPtr->flags.selected && bPtr->groupIndex > 0)) doclick = 1; dopaint = 1; if (bPtr->flags.springLoaded) { bPtr->flags.selected = bPtr->flags.prevSelected; } } bPtr->flags.pushed = 0; } if (bPtr->timer) { WMDeleteTimerHandler(bPtr->timer); bPtr->timer = NULL; } break; } if (dopaint) paintButton(bPtr); if (doclick) { if (bPtr->flags.selected && bPtr->groupIndex > 0) { WMPostNotificationName(WMPushedRadioNotification, bPtr, NULL); } if (bPtr->action) (*bPtr->action) (bPtr, bPtr->clientData); } } static void destroyButton(Button * bPtr) { if (bPtr->flags.addedObserver) { WMRemoveNotificationObserver(bPtr); } if (bPtr->timer) WMDeleteTimerHandler(bPtr->timer); if (bPtr->font) WMReleaseFont(bPtr->font); if (bPtr->caption) wfree(bPtr->caption); if (bPtr->altCaption) wfree(bPtr->altCaption); if (bPtr->textColor) WMReleaseColor(bPtr->textColor); if (bPtr->altTextColor) WMReleaseColor(bPtr->altTextColor); if (bPtr->disTextColor) WMReleaseColor(bPtr->disTextColor); if (bPtr->image) WMReleasePixmap(bPtr->image); if (bPtr->dimage) { /* yuck.. kluge */ bPtr->dimage->pixmap = None; WMReleasePixmap(bPtr->dimage); } if (bPtr->altImage) WMReleasePixmap(bPtr->altImage); wfree(bPtr); } WindowMaker-0.95.5/WINGs/handlers.c0000644000175000017500000003177212214432632013666 00000000000000 /* * WINGs internal handlers: timer, idle and input handlers */ #include "wconfig.h" #include "WINGsP.h" #include #include #include #ifdef HAVE_SYS_SELECT_H # include #endif #include #ifndef X_GETTIMEOFDAY #define X_GETTIMEOFDAY(t) gettimeofday(t, (struct timezone*)0) #endif typedef struct TimerHandler { WMCallback *callback; /* procedure to call */ struct timeval when; /* when to call the callback */ void *clientData; struct TimerHandler *next; int nextDelay; /* 0 if it's one-shot */ } TimerHandler; typedef struct IdleHandler { WMCallback *callback; void *clientData; } IdleHandler; typedef struct InputHandler { WMInputProc *callback; void *clientData; int fd; int mask; } InputHandler; /* queue of timer event handlers */ static TimerHandler *timerHandler = NULL; static WMArray *idleHandler = NULL; static WMArray *inputHandler = NULL; #define timerPending() (timerHandler) static void rightNow(struct timeval *tv) { X_GETTIMEOFDAY(tv); } /* is t1 after t2 ? */ #define IS_AFTER(t1, t2) (((t1).tv_sec > (t2).tv_sec) || \ (((t1).tv_sec == (t2).tv_sec) \ && ((t1).tv_usec > (t2).tv_usec))) #define IS_ZERO(tv) (tv.tv_sec == 0 && tv.tv_usec == 0) #define SET_ZERO(tv) tv.tv_sec = 0, tv.tv_usec = 0 static void addmillisecs(struct timeval *tv, int milliseconds) { tv->tv_usec += milliseconds * 1000; tv->tv_sec += tv->tv_usec / 1000000; tv->tv_usec = tv->tv_usec % 1000000; } static void enqueueTimerHandler(TimerHandler * handler) { TimerHandler *tmp; /* insert callback in queue, sorted by time left */ if (!timerHandler || !IS_AFTER(handler->when, timerHandler->when)) { /* first in the queue */ handler->next = timerHandler; timerHandler = handler; } else { tmp = timerHandler; while (tmp->next && IS_AFTER(handler->when, tmp->next->when)) { tmp = tmp->next; } handler->next = tmp->next; tmp->next = handler; } } static void delayUntilNextTimerEvent(struct timeval *delay) { struct timeval now; TimerHandler *handler; handler = timerHandler; while (handler && IS_ZERO(handler->when)) handler = handler->next; if (!handler) { /* The return value of this function is only valid if there _are_ timers active. */ delay->tv_sec = 0; delay->tv_usec = 0; return; } rightNow(&now); if (IS_AFTER(now, handler->when)) { delay->tv_sec = 0; delay->tv_usec = 0; } else { delay->tv_sec = handler->when.tv_sec - now.tv_sec; delay->tv_usec = handler->when.tv_usec - now.tv_usec; if (delay->tv_usec < 0) { delay->tv_usec += 1000000; delay->tv_sec--; } } } WMHandlerID WMAddTimerHandler(int milliseconds, WMCallback * callback, void *cdata) { TimerHandler *handler; handler = malloc(sizeof(TimerHandler)); if (!handler) return NULL; rightNow(&handler->when); addmillisecs(&handler->when, milliseconds); handler->callback = callback; handler->clientData = cdata; handler->nextDelay = 0; enqueueTimerHandler(handler); return handler; } WMHandlerID WMAddPersistentTimerHandler(int milliseconds, WMCallback * callback, void *cdata) { TimerHandler *handler = WMAddTimerHandler(milliseconds, callback, cdata); if (handler != NULL) handler->nextDelay = milliseconds; return handler; } void WMDeleteTimerWithClientData(void *cdata) { TimerHandler *handler, *tmp; if (!cdata || !timerHandler) return; tmp = timerHandler; if (tmp->clientData == cdata) { tmp->nextDelay = 0; if (!IS_ZERO(tmp->when)) { timerHandler = tmp->next; wfree(tmp); } } else { while (tmp->next) { if (tmp->next->clientData == cdata) { handler = tmp->next; handler->nextDelay = 0; if (IS_ZERO(handler->when)) break; tmp->next = handler->next; wfree(handler); break; } tmp = tmp->next; } } } void WMDeleteTimerHandler(WMHandlerID handlerID) { TimerHandler *tmp, *handler = (TimerHandler *) handlerID; if (!handler || !timerHandler) return; tmp = timerHandler; handler->nextDelay = 0; if (IS_ZERO(handler->when)) return; if (tmp == handler) { timerHandler = handler->next; wfree(handler); } else { while (tmp->next) { if (tmp->next == handler) { tmp->next = handler->next; wfree(handler); break; } tmp = tmp->next; } } } WMHandlerID WMAddIdleHandler(WMCallback * callback, void *cdata) { IdleHandler *handler; handler = malloc(sizeof(IdleHandler)); if (!handler) return NULL; handler->callback = callback; handler->clientData = cdata; /* add handler at end of queue */ if (!idleHandler) { idleHandler = WMCreateArrayWithDestructor(16, wfree); } WMAddToArray(idleHandler, handler); return handler; } void WMDeleteIdleHandler(WMHandlerID handlerID) { IdleHandler *handler = (IdleHandler *) handlerID; if (!handler || !idleHandler) return; WMRemoveFromArray(idleHandler, handler); } WMHandlerID WMAddInputHandler(int fd, int condition, WMInputProc * proc, void *clientData) { InputHandler *handler; handler = wmalloc(sizeof(InputHandler)); handler->fd = fd; handler->mask = condition; handler->callback = proc; handler->clientData = clientData; if (!inputHandler) inputHandler = WMCreateArrayWithDestructor(16, wfree); WMAddToArray(inputHandler, handler); return handler; } void WMDeleteInputHandler(WMHandlerID handlerID) { InputHandler *handler = (InputHandler *) handlerID; if (!handler || !inputHandler) return; WMRemoveFromArray(inputHandler, handler); } Bool W_CheckIdleHandlers(void) { IdleHandler *handler; WMArray *handlerCopy; WMArrayIterator iter; if (!idleHandler || WMGetArrayItemCount(idleHandler) == 0) { W_FlushIdleNotificationQueue(); /* make sure an observer in queue didn't added an idle handler */ return (idleHandler != NULL && WMGetArrayItemCount(idleHandler) > 0); } handlerCopy = WMDuplicateArray(idleHandler); WM_ITERATE_ARRAY(handlerCopy, handler, iter) { /* check if the handler still exist or was removed by a callback */ if (WMGetFirstInArray(idleHandler, handler) == WANotFound) continue; (*handler->callback) (handler->clientData); WMDeleteIdleHandler(handler); } WMFreeArray(handlerCopy); W_FlushIdleNotificationQueue(); /* this is not necesarrily False, because one handler can re-add itself */ return (WMGetArrayItemCount(idleHandler) > 0); } void W_CheckTimerHandlers(void) { TimerHandler *handler; struct timeval now; if (!timerHandler) { W_FlushASAPNotificationQueue(); return; } rightNow(&now); handler = timerHandler; while (handler && IS_AFTER(now, handler->when)) { if (!IS_ZERO(handler->when)) { SET_ZERO(handler->when); (*handler->callback) (handler->clientData); } handler = handler->next; } while (timerHandler && IS_ZERO(timerHandler->when)) { handler = timerHandler; timerHandler = timerHandler->next; if (handler->nextDelay > 0) { handler->when = now; addmillisecs(&handler->when, handler->nextDelay); enqueueTimerHandler(handler); } else { wfree(handler); } } W_FlushASAPNotificationQueue(); } /* * This functions will handle input events on all registered file descriptors. * Input: * - waitForInput - True if we want the function to wait until an event * appears on a file descriptor we watch, False if we * want the function to immediately return if there is * no data available on the file descriptors we watch. * - inputfd - Extra input file descriptor to watch for input. * This is only used when called from wevent.c to watch * on ConnectionNumber(dpy) to avoid blocking of X events * if we wait for input from other file handlers. * Output: * if waitForInput is False, the function will return False if there are no * input handlers registered, or if there is no data * available on the registered ones, and will return True * if there is at least one input handler that has data * available. * if waitForInput is True, the function will return False if there are no * input handlers registered, else it will block until an * event appears on one of the file descriptors it watches * and then it will return True. * * If the retured value is True, the input handlers for the corresponding file * descriptors are also called. * * Parametersshould be passed like this: * - from wevent.c: * waitForInput - apropriate value passed by the function who called us * inputfd = ConnectionNumber(dpy) * - from wutil.c: * waitForInput - apropriate value passed by the function who called us * inputfd = -1 * */ Bool W_HandleInputEvents(Bool waitForInput, int inputfd) { #if defined(HAVE_POLL) && defined(HAVE_POLL_H) && !defined(HAVE_SELECT) struct poll fd *fds; InputHandler *handler; int count, timeout, nfds, i, extrafd; extrafd = (inputfd < 0) ? 0 : 1; if (inputHandler) nfds = WMGetArrayItemCount(inputHandler); else nfds = 0; if (!extrafd && nfds == 0) { W_FlushASAPNotificationQueue(); return False; } fds = wmalloc((nfds + extrafd) * sizeof(struct pollfd)); if (extrafd) { /* put this to the end of array to avoid using ranges from 1 to nfds+1 */ fds[nfds].fd = inputfd; fds[nfds].events = POLLIN; } /* use WM_ITERATE_ARRAY() here */ for (i = 0; i < nfds; i++) { handler = WMGetFromArray(inputHandler, i); fds[i].fd = handler->fd; fds[i].events = 0; if (handler->mask & WIReadMask) fds[i].events |= POLLIN; if (handler->mask & WIWriteMask) fds[i].events |= POLLOUT; #if 0 /* FIXME */ if (handler->mask & WIExceptMask) FD_SET(handler->fd, &eset); #endif } /* * Setup the timeout to the estimated time until the * next timer expires. */ if (!waitForInput) { timeout = 0; } else if (timerPending()) { struct timeval tv; delayUntilNextTimerEvent(&tv); timeout = tv.tv_sec * 1000 + tv.tv_usec / 1000; } else { timeout = -1; } count = poll(fds, nfds + extrafd, timeout); if (count > 0 && nfds > 0) { WMArray *handlerCopy = WMDuplicateArray(inputHandler); int mask; /* use WM_ITERATE_ARRAY() here */ for (i = 0; i < nfds; i++) { handler = WMGetFromArray(handlerCopy, i); /* check if the handler still exist or was removed by a callback */ if (WMGetFirstInArray(inputHandler, handler) == WANotFound) continue; mask = 0; if ((handler->mask & WIReadMask) && (fds[i].revents & (POLLIN | POLLRDNORM | POLLRDBAND | POLLPRI))) mask |= WIReadMask; if ((handler->mask & WIWriteMask) && (fds[i].revents & (POLLOUT | POLLWRBAND))) mask |= WIWriteMask; if ((handler->mask & WIExceptMask) && (fds[i].revents & (POLLHUP | POLLNVAL | POLLERR))) mask |= WIExceptMask; if (mask != 0 && handler->callback) { (*handler->callback) (handler->fd, mask, handler->clientData); } } WMFreeArray(handlerCopy); } wfree(fds); W_FlushASAPNotificationQueue(); return (count > 0); #else #ifdef HAVE_SELECT struct timeval timeout; struct timeval *timeoutPtr; fd_set rset, wset, eset; int maxfd, nfds, i; int count; InputHandler *handler; if (inputHandler) nfds = WMGetArrayItemCount(inputHandler); else nfds = 0; if (inputfd < 0 && nfds == 0) { W_FlushASAPNotificationQueue(); return False; } FD_ZERO(&rset); FD_ZERO(&wset); FD_ZERO(&eset); if (inputfd < 0) { maxfd = 0; } else { FD_SET(inputfd, &rset); maxfd = inputfd; } /* use WM_ITERATE_ARRAY() here */ for (i = 0; i < nfds; i++) { handler = WMGetFromArray(inputHandler, i); if (handler->mask & WIReadMask) FD_SET(handler->fd, &rset); if (handler->mask & WIWriteMask) FD_SET(handler->fd, &wset); if (handler->mask & WIExceptMask) FD_SET(handler->fd, &eset); if (maxfd < handler->fd) maxfd = handler->fd; } /* * Setup the timeout to the estimated time until the * next timer expires. */ if (!waitForInput) { SET_ZERO(timeout); timeoutPtr = &timeout; } else if (timerPending()) { delayUntilNextTimerEvent(&timeout); timeoutPtr = &timeout; } else { timeoutPtr = (struct timeval *)0; } count = select(1 + maxfd, &rset, &wset, &eset, timeoutPtr); if (count > 0 && nfds > 0) { WMArray *handlerCopy = WMDuplicateArray(inputHandler); int mask; /* use WM_ITERATE_ARRAY() here */ for (i = 0; i < nfds; i++) { handler = WMGetFromArray(handlerCopy, i); /* check if the handler still exist or was removed by a callback */ if (WMGetFirstInArray(inputHandler, handler) == WANotFound) continue; mask = 0; if ((handler->mask & WIReadMask) && FD_ISSET(handler->fd, &rset)) mask |= WIReadMask; if ((handler->mask & WIWriteMask) && FD_ISSET(handler->fd, &wset)) mask |= WIWriteMask; if ((handler->mask & WIExceptMask) && FD_ISSET(handler->fd, &eset)) mask |= WIExceptMask; if (mask != 0 && handler->callback) { (*handler->callback) (handler->fd, mask, handler->clientData); } } WMFreeArray(handlerCopy); } W_FlushASAPNotificationQueue(); return (count > 0); #else /* not HAVE_SELECT, not HAVE_POLL */ # error Neither select nor poll. You lose. #endif /* HAVE_SELECT */ #endif /* HAVE_POLL */ } WindowMaker-0.95.5/WINGs/menuparser.h0000644000175000017500000000471312214432632014247 00000000000000/* menuparser.h * * Copyright (c) 2012 Christophe Curis * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _MENUPARSER_H_INCLUDED #define _MENUPARSER_H_INCLUDED /* * This file is not part of WINGs public API * * It defines internal things for the Menu Parser, the public API is * located in WINGs/WUtil.h as usual */ #define MAXLINE 1024 #define MAX_NESTED_INCLUDES 16 // To avoid infinite includes case #define MAX_NESTED_MACROS 24 // To avoid infinite loop inside macro expansions #define MAX_MACRO_ARG_COUNT 32 // Limited by design typedef struct w_parser_macro WParserMacro; typedef void WParserMacroFunction(WParserMacro *this, WMenuParser parser); struct w_menu_parser { WMenuParser include_file; WMenuParser parent_file; const char *include_default_paths; const char *file_name; FILE *file_handle; int line_number; WParserMacro *macros; struct { /* Conditional text parsing is implemented using a stack of the skip states for each nested #if */ int depth; struct { Bool skip; char name[8]; int line; } stack[32]; } cond; char *rd; char line_buffer[MAXLINE]; }; struct w_parser_macro { WParserMacro *next; char name[64]; WParserMacroFunction *function; int arg_count; #ifdef DEBUG int usage_count; #endif unsigned char value[MAXLINE * 4]; }; Bool menu_parser_skip_spaces_and_comments(WMenuParser parser); void menu_parser_register_preset_macros(WMenuParser parser); void menu_parser_define_macro(WMenuParser parser); void menu_parser_free_macros(WMenuParser parser); WParserMacro *menu_parser_find_macro(WMenuParser parser, const char *name); void menu_parser_expand_macro(WMenuParser parser, WParserMacro *macro); int isnamechr(char ch); // Check if char is valid character for a macro name #endif /* _MENUPARSER_H_INCLUDED */ WindowMaker-0.95.5/WINGs/wtabview.c0000644000175000017500000005165112214432632013714 00000000000000 #include "WINGsP.h" typedef struct W_TabView { W_Class widgetClass; W_View *view; struct W_TabViewItem **items; int itemCount; int maxItems; /* size of items array, can be increased */ int selectedItem; int firstVisible; int visibleTabs; WMFont *font; WMColor *lightGray; WMColor *tabColor; WMTabViewDelegate *delegate; short tabHeight; struct { WMReliefType relief:4; WMTitlePosition titlePosition:4; WMTabViewType type:2; unsigned enabled:1; unsigned tabbed:1; unsigned dontFitAll:1; unsigned bordered:1; unsigned uniformTabs:1; } flags; } TabView; typedef struct W_TabViewItem { WMTabView *tabView; W_View *view; char *label; short tabWidth; int identifier; struct { unsigned visible:1; unsigned enabled:1; } flags; } W_TabViewItem; #define DEFAULT_WIDTH 40 #define DEFAULT_HEIGHT 40 #define NORMAL_SIDE_OFFSET 8 #define BUTTONED_SIDE_OFFSET 15 static void destroyTabView(TabView * tPtr); static void paintTabView(TabView * tPtr); static void W_SetTabViewItemParent(WMTabViewItem * item, WMTabView * parent); static void W_DrawLabel(WMTabViewItem * item, Drawable d, WMRect rect, Bool enabled); static void W_UnmapTabViewItem(WMTabViewItem * item); static void W_MapTabViewItem(WMTabViewItem * item); static WMView *W_TabViewItemView(WMTabViewItem * item); static int W_TabViewItemTabWidth(WMTabViewItem * item); static void W_SetTabViewItemTabWidth(WMTabViewItem * item, int width); static void recalcTabWidth(TabView * tPtr); static void rearrange(TabView * tPtr); static void didResize(struct W_ViewDelegate *, WMView *); static W_ViewDelegate delegate = { NULL, NULL, didResize, NULL, NULL }; static int positionOfTab(WMTabView * tabView, int tab) { int i; int offs; if (tab < 0 || tab < tabView->firstVisible) return -1; if (tab > tabView->firstVisible + tabView->visibleTabs) return -1; if (tabView->flags.dontFitAll) offs = BUTTONED_SIDE_OFFSET; else offs = NORMAL_SIDE_OFFSET; for (i = tabView->firstVisible; i < tab; i++) offs += W_TabViewItemTabWidth(tabView->items[i]) - 10; return offs; } static int countVisibleTabs(TabView * tPtr, int first) { int i; int width; if (first < 0) { width = W_VIEW_WIDTH(tPtr->view) - 2 * NORMAL_SIDE_OFFSET; first = 0; } else { width = W_VIEW_WIDTH(tPtr->view) - 2 * BUTTONED_SIDE_OFFSET; } for (i = first; i < tPtr->itemCount; i++) { width -= W_TabViewItemTabWidth(tPtr->items[i]) - 10; if (width <= 0) { return i - first; } } return i - first; } static void handleEvents(XEvent * event, void *data) { TabView *tPtr = (TabView *) data; CHECK_CLASS(data, WC_TabView); switch (event->type) { case Expose: if (event->xexpose.count != 0) break; paintTabView(tPtr); break; case ButtonPress: if (tPtr->flags.enabled) { WMTabViewItem *item = WMTabViewItemAtPoint(tPtr, event->xbutton.x, event->xbutton.y); /*if (item && !item->flags.enabled) break; */ if (item && item->flags.enabled) { WMSelectTabViewItem(tPtr, item); } else if (tPtr->flags.dontFitAll) { int redraw = 0; int lastVisible = tPtr->firstVisible + tPtr->visibleTabs - 1; if (event->xbutton.x < BUTTONED_SIDE_OFFSET) { if (tPtr->firstVisible > 0) { redraw = 1; tPtr->firstVisible--; } } else if (event->xbutton.x > positionOfTab(tPtr, lastVisible)) { if (lastVisible < tPtr->itemCount - 1) { redraw = 1; tPtr->firstVisible++; } } tPtr->visibleTabs = countVisibleTabs(tPtr, tPtr->firstVisible); if (redraw) { paintTabView(tPtr); } } } break; case DestroyNotify: destroyTabView(tPtr); break; } } WMTabView *WMCreateTabView(WMWidget * parent) { TabView *tPtr; WMScreen *scr = WMWidgetScreen(parent); tPtr = wmalloc(sizeof(TabView)); tPtr->widgetClass = WC_TabView; tPtr->view = W_CreateView(W_VIEW(parent)); if (!tPtr->view) { wfree(tPtr); return NULL; } tPtr->view->self = tPtr; tPtr->view->delegate = &delegate; tPtr->lightGray = WMCreateRGBColor(scr, 0xd9d9, 0xd9d9, 0xd9d9, False); tPtr->tabColor = WMCreateRGBColor(scr, 0x8420, 0x8420, 0x8420, False); tPtr->font = WMRetainFont(scr->normalFont); tPtr->flags.type = WTTopTabsBevelBorder; tPtr->flags.bordered = 1; tPtr->flags.uniformTabs = 0; tPtr->flags.enabled = 1; WMCreateEventHandler(tPtr->view, ExposureMask | StructureNotifyMask | ButtonPressMask, handleEvents, tPtr); WMResizeWidget(tPtr, DEFAULT_WIDTH, DEFAULT_HEIGHT); tPtr->tabHeight = WMFontHeight(tPtr->font) + 3; return tPtr; } void WMSetTabViewDelegate(WMTabView * tPtr, WMTabViewDelegate * delegate) { tPtr->delegate = delegate; } WMTabViewItem *WMAddTabViewItemWithView(WMTabView * tPtr, WMView * view, int identifier, const char *label) { WMTabViewItem *item; item = WMCreateTabViewItemWithIdentifier(identifier); WMSetTabViewItemView(item, view); WMAddItemInTabView(tPtr, item); WMSetTabViewItemLabel(item, label); return item; } void WMAddItemInTabView(WMTabView * tPtr, WMTabViewItem * item) { WMInsertItemInTabView(tPtr, tPtr->itemCount, item); } void WMSetTabViewEnabled(WMTabView * tPtr, Bool flag) { tPtr->flags.enabled = ((flag == 0) ? 0 : 1); if (W_VIEW_REALIZED(tPtr->view)) paintTabView(tPtr); } void WMInsertItemInTabView(WMTabView * tPtr, int index, WMTabViewItem * item) { wassertr(W_TabViewItemView(item) != NULL); if (tPtr->maxItems == tPtr->itemCount) { WMTabViewItem **items; items = wrealloc(tPtr->items, sizeof(WMTabViewItem *) * (tPtr->maxItems + 10)); memset(&items[tPtr->maxItems], 0, sizeof(WMTabViewItem *) * 10); /* XXX */ tPtr->items = items; tPtr->maxItems += 10; } if (index > tPtr->itemCount) index = tPtr->itemCount; if (index == 0 && tPtr->items[0]) { W_UnmapTabViewItem(tPtr->items[0]); } if (index < tPtr->itemCount) { memmove(tPtr->items + index + 1, tPtr->items + index, (tPtr->itemCount - index) * sizeof(WMTabViewItem *)); } tPtr->items[index] = item; tPtr->itemCount++; recalcTabWidth(tPtr); W_SetTabViewItemParent(item, tPtr); W_UnmapTabViewItem(item); if (tPtr->flags.bordered) { W_ReparentView(W_TabViewItemView(item), tPtr->view, 1, tPtr->tabHeight + 1); W_ResizeView(W_TabViewItemView(item), tPtr->view->size.width - 3, tPtr->view->size.height - tPtr->tabHeight - 3); } else { W_ReparentView(W_TabViewItemView(item), tPtr->view, 0, tPtr->tabHeight); W_ResizeView(W_TabViewItemView(item), tPtr->view->size.width, tPtr->view->size.height - tPtr->tabHeight); } if (index == 0) { W_MapTabViewItem(item); } if (tPtr->delegate && tPtr->delegate->didChangeNumberOfItems) (*tPtr->delegate->didChangeNumberOfItems) (tPtr->delegate, tPtr); if (W_VIEW_REALIZED(tPtr->view)) paintTabView(tPtr); } void WMRemoveTabViewItem(WMTabView * tPtr, WMTabViewItem * item) { int i; for (i = 0; i < tPtr->itemCount; i++) { if (tPtr->items[i] == item) { if (i < tPtr->itemCount - 1) memmove(&tPtr->items[i], &tPtr->items[i + 1], tPtr->itemCount - i - 1); else tPtr->items[i] = NULL; W_SetTabViewItemParent(item, NULL); tPtr->itemCount--; break; } } if (tPtr->delegate && tPtr->delegate->didChangeNumberOfItems) (*tPtr->delegate->didChangeNumberOfItems) (tPtr->delegate, tPtr); } static Bool isInside(int x, int y, int width, int height, int px, int py) { if (py >= y + height - 3 && py <= y + height && px >= x + py - (y + height - 3) && px <= x + width - (py - (y + height - 3))) { return True; } if (py >= y + 3 && py < y + height - 3 && px >= x + 3 + ((y + 3) - py) * 3 / 7 && px <= x + width - 3 - ((y + 3) - py) * 3 / 7) { return True; } if (py >= y && py < y + 3 && px >= x + 7 + py - y && px <= x + width - 7 - (py - y)) { return True; } return False; } WMTabViewItem *WMTabViewItemAtPoint(WMTabView * tPtr, int x, int y) { int i; int count = tPtr->visibleTabs; int first = tPtr->firstVisible; if (tPtr->flags.dontFitAll) { i = tPtr->selectedItem - tPtr->firstVisible; if (i >= 0 && i < tPtr->visibleTabs && isInside(positionOfTab(tPtr, tPtr->selectedItem), 0, W_TabViewItemTabWidth(tPtr->items[tPtr->selectedItem]), tPtr->tabHeight, x, y)) { return tPtr->items[tPtr->selectedItem]; } } else { i = tPtr->selectedItem; if (isInside(positionOfTab(tPtr, i), 0, W_TabViewItemTabWidth(tPtr->items[i]), tPtr->tabHeight, x, y)) { return tPtr->items[i]; } } for (i = first; i < first + count; i++) { int pos; pos = positionOfTab(tPtr, i); if (isInside(pos, 0, W_TabViewItemTabWidth(tPtr->items[i]), tPtr->tabHeight, x, y)) { return tPtr->items[i]; } } return NULL; } void WMSetTabViewType(WMTabView * tPtr, WMTabViewType type) { tPtr->flags.type = type; if (type != WTTopTabsBevelBorder) tPtr->tabHeight = 0; else tPtr->tabHeight = WMFontHeight(tPtr->font) + 3; if (type == WTNoTabsNoBorder) tPtr->flags.bordered = 0; else tPtr->flags.bordered = 1; rearrange(tPtr); } void WMSelectFirstTabViewItem(WMTabView * tPtr) { WMSelectTabViewItemAtIndex(tPtr, 0); } void WMSelectLastTabViewItem(WMTabView * tPtr) { WMSelectTabViewItemAtIndex(tPtr, tPtr->itemCount); } void WMSelectNextTabViewItem(WMTabView * tPtr) { WMSelectTabViewItemAtIndex(tPtr, tPtr->selectedItem + 1); } void WMSelectPreviousTabViewItem(WMTabView * tPtr) { WMSelectTabViewItemAtIndex(tPtr, tPtr->selectedItem - 1); } WMTabViewItem *WMGetSelectedTabViewItem(WMTabView * tPtr) { return tPtr->items[tPtr->selectedItem]; } void WMSelectTabViewItem(WMTabView * tPtr, WMTabViewItem * item) { int i; for (i = 0; i < tPtr->itemCount; i++) { if (tPtr->items[i] == item) { WMSelectTabViewItemAtIndex(tPtr, i); break; } } } void WMSelectTabViewItemAtIndex(WMTabView * tPtr, int index) { WMTabViewItem *item; if (index == tPtr->selectedItem) { return; } if (index < 0) index = 0; else if (index >= tPtr->itemCount) index = tPtr->itemCount - 1; item = tPtr->items[tPtr->selectedItem]; if (tPtr->delegate && tPtr->delegate->shouldSelectItem) if (!(*tPtr->delegate->shouldSelectItem) (tPtr->delegate, tPtr, tPtr->items[index])) return; if (tPtr->delegate && tPtr->delegate->willSelectItem) (*tPtr->delegate->willSelectItem) (tPtr->delegate, tPtr, tPtr->items[index]); W_UnmapTabViewItem(item); item = tPtr->items[index]; W_MapTabViewItem(item); tPtr->selectedItem = index; if (tPtr->delegate && tPtr->delegate->didSelectItem) (*tPtr->delegate->didSelectItem) (tPtr->delegate, tPtr, tPtr->items[index]); paintTabView(tPtr); } static void recalcTabWidth(TabView * tPtr) { int i; /*int twidth = W_VIEW(tPtr)->size.width; */ int width; if (tPtr->flags.uniformTabs) { int tabWidth; tabWidth = 0; for (i = 0; i < tPtr->itemCount; i++) { char *str = WMGetTabViewItemLabel(tPtr->items[i]); if (str) { width = WMWidthOfString(tPtr->font, str, strlen(str)); if (width > tabWidth) tabWidth = width; } } tabWidth = tabWidth + 30; for (i = 0; i < tPtr->itemCount; i++) W_SetTabViewItemTabWidth(tPtr->items[i], tabWidth); tPtr->firstVisible = 0; tPtr->visibleTabs = countVisibleTabs(tPtr, -1); if (tPtr->visibleTabs < tPtr->itemCount) tPtr->flags.dontFitAll = 1; else tPtr->flags.dontFitAll = 0; } else { for (i = 0; i < tPtr->itemCount; i++) { char *str = WMGetTabViewItemLabel(tPtr->items[i]); if (!str) continue; width = WMWidthOfString(tPtr->font, str, strlen(str)) + 30; W_SetTabViewItemTabWidth(tPtr->items[i], width); } if (countVisibleTabs(tPtr, -1) < tPtr->itemCount) { tPtr->flags.dontFitAll = 1; tPtr->firstVisible = 0; tPtr->visibleTabs = countVisibleTabs(tPtr, tPtr->firstVisible); } else { tPtr->flags.dontFitAll = 0; tPtr->firstVisible = 0; tPtr->visibleTabs = tPtr->itemCount; } } } static void drawRelief(W_Screen * scr, Drawable d, int x, int y, unsigned int width, unsigned int height) { Display *dpy = scr->display; GC bgc = WMColorGC(scr->black); GC wgc = WMColorGC(scr->white); GC dgc = WMColorGC(scr->darkGray); XDrawLine(dpy, d, wgc, x, y, x, y + height - 1); XDrawLine(dpy, d, bgc, x, y + height - 1, x + width - 1, y + height - 1); XDrawLine(dpy, d, dgc, x + 1, y + height - 2, x + width - 2, y + height - 2); XDrawLine(dpy, d, bgc, x + width - 1, y, x + width - 1, y + height - 1); XDrawLine(dpy, d, dgc, x + width - 2, y + 1, x + width - 2, y + height - 2); } static void drawTab(TabView * tPtr, Drawable d, int x, int y, unsigned width, unsigned height, Bool selected) { WMScreen *scr = W_VIEW(tPtr)->screen; Display *dpy = scr->display; GC white = WMColorGC(selected ? scr->white : tPtr->lightGray); GC black = WMColorGC(scr->black); GC dark = WMColorGC(scr->darkGray); GC light = WMColorGC(scr->gray); XPoint trap[8]; trap[0].x = x + (selected ? 0 : 1); trap[0].y = y + height - (selected ? 0 : 1); trap[1].x = x + 3; trap[1].y = y + height - 3; trap[2].x = x + 10 - 3; trap[2].y = y + 3; trap[3].x = x + 10; trap[3].y = y; trap[4].x = x + width - 10; trap[4].y = y; trap[5].x = x + width - 10 + 3; trap[5].y = y + 3; trap[6].x = x + width - 3; trap[6].y = y + height - 3; trap[7].x = x + width - (selected ? 0 : 1); trap[7].y = y + height - (selected ? 0 : 1); XFillPolygon(dpy, d, selected ? light : WMColorGC(tPtr->tabColor), trap, 8, Convex, CoordModeOrigin); XDrawLine(dpy, d, white, trap[0].x, trap[0].y, trap[1].x, trap[1].y); XDrawLine(dpy, d, white, trap[1].x, trap[1].y, trap[2].x, trap[2].y); XDrawLine(dpy, d, white, trap[2].x, trap[2].y, trap[3].x, trap[3].y); XDrawLine(dpy, d, white, trap[3].x, trap[3].y, trap[4].x, trap[4].y); XDrawLine(dpy, d, dark, trap[4].x, trap[4].y, trap[5].x, trap[5].y); XDrawLine(dpy, d, black, trap[5].x, trap[5].y, trap[6].x, trap[6].y); XDrawLine(dpy, d, black, trap[6].x, trap[6].y, trap[7].x, trap[7].y); XDrawLine(dpy, d, selected ? light : WMColorGC(scr->white), trap[0].x, trap[0].y, trap[7].x, trap[7].y); } static void paintDot(TabView * tPtr, Drawable d, int x, int y) { WMScreen *scr = W_VIEW(tPtr)->screen; Display *dpy = scr->display; GC white = WMColorGC(scr->white); GC black = WMColorGC(scr->black); XFillRectangle(dpy, d, black, x, y, 2, 2); XDrawPoint(dpy, d, white, x, y); } static void paintTabView(TabView * tPtr) { Pixmap buffer; WMScreen *scr = W_VIEW(tPtr)->screen; Display *dpy = scr->display; GC white = WMColorGC(scr->white); int i; if (tPtr->flags.type == WTTopTabsBevelBorder) { int count = tPtr->visibleTabs; int first = tPtr->firstVisible; int moreAtLeft; int moreAtRight; int selectedIsVisible; int ty; int twidth, theight; ty = 2; theight = tPtr->tabHeight; buffer = XCreatePixmap(dpy, W_VIEW(tPtr)->window, W_VIEW(tPtr)->size.width, theight, W_VIEW(tPtr)->screen->depth); XFillRectangle(dpy, buffer, WMColorGC(W_VIEW(tPtr)->backColor), 0, 0, W_VIEW(tPtr)->size.width, tPtr->tabHeight); if (tPtr->flags.dontFitAll) { moreAtLeft = first > 0; moreAtRight = (first + count) < tPtr->itemCount; if (tPtr->selectedItem >= first && tPtr->selectedItem < first + count) selectedIsVisible = 1; else selectedIsVisible = 0; } else { moreAtLeft = 0; moreAtRight = 0; selectedIsVisible = 1; } if (moreAtRight) { drawTab(tPtr, buffer, positionOfTab(tPtr, first + count), 0, W_VIEW_WIDTH(tPtr->view), theight, False); } for (i = first + count - 1; i >= first; i--) { if (!selectedIsVisible || i != tPtr->selectedItem) { twidth = W_TabViewItemTabWidth(tPtr->items[i]); drawTab(tPtr, buffer, positionOfTab(tPtr, i), 0, twidth, theight, False); } } if (moreAtLeft) { drawTab(tPtr, buffer, positionOfTab(tPtr, 0) - 2 * BUTTONED_SIDE_OFFSET, 0, BUTTONED_SIDE_OFFSET * 4, theight, False); } if (selectedIsVisible) { int idx = tPtr->selectedItem; drawTab(tPtr, buffer, positionOfTab(tPtr, idx), 0, W_TabViewItemTabWidth(tPtr->items[idx]), theight, True); XDrawLine(dpy, buffer, white, 0, theight - 1, positionOfTab(tPtr, idx), theight - 1); XDrawLine(dpy, buffer, white, positionOfTab(tPtr, idx) + W_TabViewItemTabWidth(tPtr->items[idx]), tPtr->tabHeight - 1, W_VIEW_WIDTH(tPtr->view) - 1, tPtr->tabHeight - 1); } else { XDrawLine(dpy, buffer, white, 0, theight - 1, W_VIEW_WIDTH(tPtr->view), theight - 1); } for (i = 0; i < count; i++) { WMRect rect; rect.pos.x = 15 + positionOfTab(tPtr, first + i); rect.pos.y = ty; rect.size.width = W_TabViewItemTabWidth(tPtr->items[first + i]); rect.size.height = theight; W_DrawLabel(tPtr->items[first + i], buffer, rect, tPtr->flags.enabled && tPtr->items[first + i]->flags.enabled); } if (moreAtLeft) { paintDot(tPtr, buffer, 4, 10); paintDot(tPtr, buffer, 7, 10); paintDot(tPtr, buffer, 10, 10); } if (moreAtRight) { int x; x = positionOfTab(tPtr, tPtr->firstVisible + tPtr->visibleTabs); x = x + (W_VIEW_WIDTH(tPtr->view) - x) / 2; paintDot(tPtr, buffer, x + 5, 10); paintDot(tPtr, buffer, x + 8, 10); paintDot(tPtr, buffer, x + 11, 10); } XCopyArea(dpy, buffer, W_VIEW(tPtr)->window, scr->copyGC, 0, 0, W_VIEW_WIDTH(tPtr->view), theight, 0, 0); XFreePixmap(dpy, buffer); } switch (tPtr->flags.type) { case WTTopTabsBevelBorder: drawRelief(scr, W_VIEW(tPtr)->window, 0, tPtr->tabHeight - 1, W_VIEW(tPtr)->size.width, W_VIEW(tPtr)->size.height - tPtr->tabHeight + 1); break; case WTNoTabsBevelBorder: W_DrawRelief(scr, W_VIEW(tPtr)->window, 0, 0, W_VIEW(tPtr)->size.width, W_VIEW(tPtr)->size.height, WRRaised); break; case WTNoTabsLineBorder: W_DrawRelief(scr, W_VIEW(tPtr)->window, 0, 0, W_VIEW(tPtr)->size.width, W_VIEW(tPtr)->size.height, WRSimple); break; case WTNoTabsNoBorder: break; } } static void rearrange(TabView * tPtr) { int i; int width, height; int bordered = tPtr->flags.bordered; recalcTabWidth(tPtr); width = tPtr->view->size.width - (bordered ? 3 : 0); height = tPtr->view->size.height - tPtr->tabHeight - (bordered ? 3 : 0); for (i = 0; i < tPtr->itemCount; i++) { W_MoveView(W_TabViewItemView(tPtr->items[i]), 1 * bordered, tPtr->tabHeight + 1 * bordered); W_ResizeView(W_TabViewItemView(tPtr->items[i]), width, height); } if (W_VIEW_MAPPED(tPtr->view) && W_VIEW_REALIZED(tPtr->view)) paintTabView(tPtr); } static void didResize(struct W_ViewDelegate *deleg, WMView * view) { rearrange(view->self); } static void destroyTabView(TabView * tPtr) { int i; for (i = 0; i < tPtr->itemCount; i++) { WMSetTabViewItemView(tPtr->items[i], NULL); WMDestroyTabViewItem(tPtr->items[i]); } wfree(tPtr->items); WMReleaseColor(tPtr->lightGray); WMReleaseColor(tPtr->tabColor); WMReleaseFont(tPtr->font); wfree(tPtr); } /******************************************************************/ static void W_SetTabViewItemParent(WMTabViewItem * item, WMTabView * parent) { item->tabView = parent; } static void W_DrawLabel(WMTabViewItem * item, Drawable d, WMRect rect, Bool enabled) { WMScreen *scr = W_VIEW(item->tabView)->screen; if (!item->label) return; WMDrawString(scr, d, enabled ? scr->black : scr->darkGray, item->tabView->font, rect.pos.x, rect.pos.y, item->label, strlen(item->label)); } static void W_UnmapTabViewItem(WMTabViewItem * item) { wassertr(item->view); W_UnmapView(item->view); item->flags.visible = 0; } static void W_MapTabViewItem(WMTabViewItem * item) { wassertr(item->view); W_MapView(item->view); W_RaiseView(item->view); item->flags.visible = 1; } static WMView *W_TabViewItemView(WMTabViewItem * item) { return item->view; } static int W_TabViewItemTabWidth(WMTabViewItem * item) { return item->tabWidth; } static void W_SetTabViewItemTabWidth(WMTabViewItem * item, int width) { item->tabWidth = width; } WMTabViewItem *WMCreateTabViewItemWithIdentifier(int identifier) { WMTabViewItem *item; item = wmalloc(sizeof(WMTabViewItem)); item->identifier = identifier; item->flags.enabled = 1; return item; } WMTabViewItem *WMCreateTabViewItem(int identifier, const char *label) { WMTabViewItem *item; item = wmalloc(sizeof(WMTabViewItem)); item->identifier = identifier; item->flags.enabled = 1; WMSetTabViewItemLabel(item, label); return item; } void WMSetTabViewItemEnabled(WMTabViewItem * tPtr, Bool flag) { tPtr->flags.enabled = ((flag == 0) ? 0 : 1); if (tPtr->tabView && W_VIEW_REALIZED(tPtr->tabView->view)) paintTabView(tPtr->tabView); } int WMGetTabViewItemIdentifier(WMTabViewItem * item) { return item->identifier; } void WMSetTabViewFont(WMTabView * tPtr, WMFont * font) { if (tPtr->font) WMReleaseFont(tPtr->font); tPtr->font = WMRetainFont(font); tPtr->tabHeight = WMFontHeight(tPtr->font) + 3; recalcTabWidth(tPtr); } void WMSetTabViewItemLabel(WMTabViewItem * item, const char *label) { if (item->label) wfree(item->label); if (label) item->label = wstrdup(label); else item->label = NULL; if (item->tabView) recalcTabWidth(item->tabView); } char *WMGetTabViewItemLabel(WMTabViewItem * item) { return item->label; } void WMSetTabViewItemView(WMTabViewItem * item, WMView * view) { item->view = view; } WMView *WMGetTabViewItemView(WMTabViewItem * item) { return item->view; } void WMDestroyTabViewItem(WMTabViewItem * item) { if (item->label) wfree(item->label); if (item->view) W_DestroyView(item->view); wfree(item); } WindowMaker-0.95.5/WINGs/wconfig.h0000644000175000017500000000201312214432632013511 00000000000000/* wconfig.h * * Copyright (c) 2001 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WINGS_CONFIG_H_ #define WINGS_CONFIG_H_ #include "../config.h" #if defined(HAVE_LIBINTL_H) && defined(I18N) # include # define _(text) dgettext("WINGs", text) #else # define _(text) (text) #endif #endif /* WINGS_CONFIG_H_ */ WindowMaker-0.95.5/WINGs/wfont.c0000644000175000017500000001701112214432632013211 00000000000000 #include #include "wconfig.h" #include "WINGsP.h" #include #include #include #include #include #define DEFAULT_FONT "sans serif:pixelsize=12" #define DEFAULT_SIZE WINGsConfiguration.defaultFontSize static FcPattern *xlfdToFcPattern(const char *xlfd) { FcPattern *pattern; char *fname, *ptr; /* Just skip old font names that contain %d in them. * We don't support that anymore. */ if (strchr(xlfd, '%') != NULL) return FcNameParse((FcChar8 *) DEFAULT_FONT); fname = wstrdup(xlfd); if ((ptr = strchr(fname, ','))) { *ptr = 0; } pattern = XftXlfdParse(fname, False, False); wfree(fname); if (!pattern) { wwarning(_("invalid font: %s. Trying '%s'"), xlfd, DEFAULT_FONT); pattern = FcNameParse((FcChar8 *) DEFAULT_FONT); } return pattern; } static char *xlfdToFcName(const char *xlfd) { FcPattern *pattern; char *fname; pattern = xlfdToFcPattern(xlfd); fname = (char *)FcNameUnparse(pattern); FcPatternDestroy(pattern); return fname; } static Bool hasProperty(FcPattern * pattern, const char *property) { FcValue val; if (FcPatternGet(pattern, property, 0, &val) == FcResultMatch) { return True; } return False; } static Bool hasPropertyWithStringValue(FcPattern * pattern, const char *object, const char *value) { FcChar8 *str; int id; if (!value || value[0] == 0) return True; id = 0; while (FcPatternGetString(pattern, object, id, &str) == FcResultMatch) { if (strcasecmp(value, (char *)str) == 0) { return True; } id++; } return False; } static char *makeFontOfSize(const char *font, int size, const char *fallback) { FcPattern *pattern; char *result; if (font[0] == '-') { pattern = xlfdToFcPattern(font); } else { pattern = FcNameParse((const FcChar8 *) font); } /*FcPatternPrint(pattern); */ if (size > 0) { FcPatternDel(pattern, FC_PIXEL_SIZE); FcPatternAddDouble(pattern, FC_PIXEL_SIZE, (double)size); } else if (size == 0 && !hasProperty(pattern, "size") && !hasProperty(pattern, FC_PIXEL_SIZE)) { FcPatternAddDouble(pattern, FC_PIXEL_SIZE, (double)DEFAULT_SIZE); } if (fallback && !hasPropertyWithStringValue(pattern, FC_FAMILY, fallback)) { FcPatternAddString(pattern, FC_FAMILY, (const FcChar8 *) fallback); } /*FcPatternPrint(pattern); */ result = (char *)FcNameUnparse(pattern); FcPatternDestroy(pattern); return result; } WMFont *WMCreateFont(WMScreen * scrPtr, const char *fontName) { Display *display = scrPtr->display; WMFont *font; char *fname; if (fontName[0] == '-') { fname = xlfdToFcName(fontName); } else { fname = wstrdup(fontName); } if (!WINGsConfiguration.antialiasedText && !strstr(fname, ":antialias=")) { fname = wstrappend(fname, ":antialias=false"); } font = WMHashGet(scrPtr->fontCache, fname); if (font) { WMRetainFont(font); wfree(fname); return font; } font = wmalloc(sizeof(WMFont)); font->screen = scrPtr; font->font = XftFontOpenName(display, scrPtr->screen, fname); if (!font->font) { wfree(font); wfree(fname); return NULL; } font->height = font->font->ascent + font->font->descent; font->y = font->font->ascent; font->refCount = 1; font->name = fname; assert(WMHashInsert(scrPtr->fontCache, font->name, font) == NULL); return font; } WMFont *WMRetainFont(WMFont * font) { wassertrv(font != NULL, NULL); font->refCount++; return font; } void WMReleaseFont(WMFont * font) { wassertr(font != NULL); font->refCount--; if (font->refCount < 1) { XftFontClose(font->screen->display, font->font); if (font->name) { WMHashRemove(font->screen->fontCache, font->name); wfree(font->name); } wfree(font); } } Bool WMIsAntialiasingEnabled(WMScreen * scrPtr) { return scrPtr->antialiasedText; } unsigned int WMFontHeight(WMFont * font) { wassertrv(font != NULL, 0); return font->height; } char *WMGetFontName(WMFont * font) { wassertrv(font != NULL, NULL); return font->name; } WMFont *WMDefaultSystemFont(WMScreen * scrPtr) { return WMRetainFont(scrPtr->normalFont); } WMFont *WMDefaultBoldSystemFont(WMScreen * scrPtr) { return WMRetainFont(scrPtr->boldFont); } WMFont *WMSystemFontOfSize(WMScreen * scrPtr, int size) { WMFont *font; char *fontSpec; fontSpec = makeFontOfSize(WINGsConfiguration.systemFont, size, NULL); font = WMCreateFont(scrPtr, fontSpec); if (!font) { wwarning(_("could not load font: %s."), fontSpec); } wfree(fontSpec); return font; } WMFont *WMBoldSystemFontOfSize(WMScreen * scrPtr, int size) { WMFont *font; char *fontSpec; fontSpec = makeFontOfSize(WINGsConfiguration.boldSystemFont, size, NULL); font = WMCreateFont(scrPtr, fontSpec); if (!font) { wwarning(_("could not load font: %s."), fontSpec); } wfree(fontSpec); return font; } int WMWidthOfString(WMFont * font, const char *text, int length) { XGlyphInfo extents; wassertrv(font != NULL && text != NULL, 0); XftTextExtentsUtf8(font->screen->display, font->font, (XftChar8 *) text, length, &extents); return extents.xOff; /* don't ask :P */ } void WMDrawString(WMScreen * scr, Drawable d, WMColor * color, WMFont * font, int x, int y, const char *text, int length) { XftColor xftcolor; wassertr(font != NULL); xftcolor.color.red = color->color.red; xftcolor.color.green = color->color.green; xftcolor.color.blue = color->color.blue; xftcolor.color.alpha = color->alpha;; xftcolor.pixel = W_PIXEL(color); XftDrawChange(scr->xftdraw, d); XftDrawStringUtf8(scr->xftdraw, &xftcolor, font->font, x, y + font->y, (XftChar8 *) text, length); } void WMDrawImageString(WMScreen * scr, Drawable d, WMColor * color, WMColor * background, WMFont * font, int x, int y, const char *text, int length) { XftColor textColor; XftColor bgColor; wassertr(font != NULL); textColor.color.red = color->color.red; textColor.color.green = color->color.green; textColor.color.blue = color->color.blue; textColor.color.alpha = color->alpha;; textColor.pixel = W_PIXEL(color); bgColor.color.red = background->color.red; bgColor.color.green = background->color.green; bgColor.color.blue = background->color.blue; bgColor.color.alpha = background->alpha;; bgColor.pixel = W_PIXEL(background); XftDrawChange(scr->xftdraw, d); XftDrawRect(scr->xftdraw, &bgColor, x, y, WMWidthOfString(font, text, length), font->height); XftDrawStringUtf8(scr->xftdraw, &textColor, font->font, x, y + font->y, (XftChar8 *) text, length); } WMFont *WMCopyFontWithStyle(WMScreen * scrPtr, WMFont * font, WMFontStyle style) { FcPattern *pattern; WMFont *copy; char *name; if (!font) return NULL; /* It's enough to add italic to slant, even if the font has no italic * variant, but only oblique. This is because fontconfig will actually * return the closest match font to what we requested which is the * oblique font. Same goes for using bold for weight. */ pattern = FcNameParse((FcChar8 *) WMGetFontName(font)); switch (style) { case WFSNormal: FcPatternDel(pattern, FC_WEIGHT); FcPatternDel(pattern, FC_SLANT); break; case WFSBold: FcPatternDel(pattern, FC_WEIGHT); FcPatternAddString(pattern, FC_WEIGHT, (FcChar8 *) "bold"); break; case WFSItalic: FcPatternDel(pattern, FC_SLANT); FcPatternAddString(pattern, FC_SLANT, (FcChar8 *) "italic"); break; case WFSBoldItalic: FcPatternDel(pattern, FC_WEIGHT); FcPatternDel(pattern, FC_SLANT); FcPatternAddString(pattern, FC_WEIGHT, (FcChar8 *) "bold"); FcPatternAddString(pattern, FC_SLANT, (FcChar8 *) "italic"); break; } name = (char *)FcNameUnparse(pattern); copy = WMCreateFont(scrPtr, name); FcPatternDestroy(pattern); wfree(name); return copy; } WindowMaker-0.95.5/WINGs/Examples/0000755000175000017500000000000012214434624013551 500000000000000WindowMaker-0.95.5/WINGs/Examples/README0000644000175000017500000000107012214432632014344 00000000000000 Files: ----- server - server example of using WMConnection. It keeps a database of timeouts for a group of users, allowing one to add/remove users and update the timeouts associated with them. connect - client example of using WMConnection. Works with the server program above. Just start both without any parameter and type help in the client to find out how to operate them. Rest is self explanatory. puzzle - a nice zuPzel =) fontl - a map of all characters with their corresponding ascii, hex, decimal and octal representations. WindowMaker-0.95.5/WINGs/Examples/fontl.c0000644000175000017500000000443512214432632014762 00000000000000/* * WINGs demo: font lister * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include void wAbort() { exit(0); } void show(WMWidget * self, void *data) { char buf[60]; void *d; WMLabel *l = (WMLabel *) data; d = WMGetHangedData(self); sprintf(buf, "%i - 0x%x - 0%o", (int)d, (int)d, (int)d); WMSetLabelText(l, buf); } void quit(WMWidget * self, void *data) { exit(0); } int main(int argc, char **argv) { Display *dpy; WMWindow *win; WMScreen *scr; WMButton *lab, *l0 = NULL; WMLabel *pos; int x, y, c; char buf[20]; WMInitializeApplication("FontView", &argc, argv); dpy = XOpenDisplay(""); if (!dpy) { wfatal("cant open display"); exit(0); } scr = WMCreateSimpleApplicationScreen(dpy); win = WMCreateWindow(scr, "main"); WMResizeWidget(win, 20 * 33, 20 + 20 * 9); WMSetWindowTitle(win, "Font Chars"); WMSetWindowCloseAction(win, quit, NULL); pos = WMCreateLabel(win); WMResizeWidget(pos, 20 * 33, 20); WMMoveWidget(pos, 10, 5); c = 0; for (y = 0; y < 8; y++) { for (x = 0; x < 32; x++, c++) { lab = WMCreateCustomButton(win, WBBStateLightMask); WMResizeWidget(lab, 20, 20); WMMoveWidget(lab, 10 + x * 20, 30 + y * 20); sprintf(buf, "%c", c); WMSetButtonText(lab, buf); WMSetButtonAction(lab, show, pos); WMHangData(lab, (void *)(uintptr_t) c); if (c > 0) { WMGroupButtons(l0, lab); } else { l0 = lab; } } } WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); WMScreenMainLoop(scr); return 0; } WindowMaker-0.95.5/WINGs/Examples/colorpick.c0000644000175000017500000000126412214432632015622 00000000000000 #include #include #include void showSelectedColor(void *self, void *cdata) { WMColorPanel *panel = (WMColorPanel *) self; printf("Selected Color: %s\n", WMGetColorRGBDescription(WMGetColorPanelColor(panel))); } int main(int argc, char **argv) { Display *dpy; WMScreen *scr; WMInitializeApplication("wmcolorpick", &argc, argv); dpy = XOpenDisplay(""); if (!dpy) { printf("could not open display\n"); exit(1); } scr = WMCreateScreen(dpy, DefaultScreen(dpy)); { WMColorPanel *panel = WMGetColorPanel(scr); WMSetColorPanelAction(panel, showSelectedColor, NULL); WMShowColorPanel(panel); } WMScreenMainLoop(scr); return 0; } WindowMaker-0.95.5/WINGs/Examples/Makefile.in0000644000175000017500000004324112214434560015541 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = connect$(EXEEXT) server$(EXEEXT) fontl$(EXEEXT) \ puzzle$(EXEEXT) colorpick$(EXEEXT) subdir = WINGs/Examples DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) colorpick_SOURCES = colorpick.c colorpick_OBJECTS = colorpick.$(OBJEXT) colorpick_LDADD = $(LDADD) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent connect_SOURCES = connect.c connect_OBJECTS = connect.$(OBJEXT) fontl_SOURCES = fontl.c fontl_OBJECTS = fontl.$(OBJEXT) fontl_LDADD = $(LDADD) puzzle_SOURCES = puzzle.c puzzle_OBJECTS = puzzle.$(OBJEXT) puzzle_LDADD = $(LDADD) server_SOURCES = server.c server_OBJECTS = server.$(OBJEXT) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = colorpick.c connect.c fontl.c puzzle.c server.c DIST_SOURCES = colorpick.c connect.c fontl.c puzzle.c server.c ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ AUTOMAKE_OPTIONS = LDADD = $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la \ @XFTLIBS@ @INTLIBS@ colorpick_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la fontl_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la puzzle_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la connect_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la connect_LDADD = $(top_builddir)/WINGs/libWUtil.la @LIBRARY_SEARCH_PATH@ @INTLIBS@ server_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la server_LDADD = $(top_builddir)/WINGs/libWUtil.la @LIBRARY_SEARCH_PATH@ @INTLIBS@ AM_CPPFLAGS = -I$(top_srcdir)/WINGs -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \ -DRESOURCE_PATH=\"$(datadir)/WINGs\" @HEADER_SEARCH_PATH@ all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/Examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WINGs/Examples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list colorpick$(EXEEXT): $(colorpick_OBJECTS) $(colorpick_DEPENDENCIES) @rm -f colorpick$(EXEEXT) $(AM_V_CCLD)$(LINK) $(colorpick_OBJECTS) $(colorpick_LDADD) $(LIBS) connect$(EXEEXT): $(connect_OBJECTS) $(connect_DEPENDENCIES) @rm -f connect$(EXEEXT) $(AM_V_CCLD)$(LINK) $(connect_OBJECTS) $(connect_LDADD) $(LIBS) fontl$(EXEEXT): $(fontl_OBJECTS) $(fontl_DEPENDENCIES) @rm -f fontl$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fontl_OBJECTS) $(fontl_LDADD) $(LIBS) puzzle$(EXEEXT): $(puzzle_OBJECTS) $(puzzle_DEPENDENCIES) @rm -f puzzle$(EXEEXT) $(AM_V_CCLD)$(LINK) $(puzzle_OBJECTS) $(puzzle_LDADD) $(LIBS) server$(EXEEXT): $(server_OBJECTS) $(server_DEPENDENCIES) @rm -f server$(EXEEXT) $(AM_V_CCLD)$(LINK) $(server_OBJECTS) $(server_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/colorpick.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fontl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/puzzle.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/server.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # 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. .NOEXPORT: WindowMaker-0.95.5/WINGs/Examples/Makefile.am0000644000175000017500000000152712214432632015527 00000000000000## automake input file for WINGs - Examples AUTOMAKE_OPTIONS = noinst_PROGRAMS = connect server fontl puzzle colorpick LDADD= $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la \ @XFTLIBS@ @INTLIBS@ colorpick_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la fontl_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la puzzle_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la connect_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la connect_LDADD = $(top_builddir)/WINGs/libWUtil.la @LIBRARY_SEARCH_PATH@ @INTLIBS@ server_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la server_LDADD = $(top_builddir)/WINGs/libWUtil.la @LIBRARY_SEARCH_PATH@ @INTLIBS@ AM_CPPFLAGS = -I$(top_srcdir)/WINGs -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \ -DRESOURCE_PATH=\"$(datadir)/WINGs\" @HEADER_SEARCH_PATH@ WindowMaker-0.95.5/WINGs/Examples/.deps/0000755000175000017500000000000012214434624014562 500000000000000WindowMaker-0.95.5/WINGs/Examples/.deps/puzzle.Po0000644000175000017500000000001012214434624016322 00000000000000# dummy WindowMaker-0.95.5/WINGs/Examples/.deps/connect.Po0000644000175000017500000000001012214434624016422 00000000000000# dummy WindowMaker-0.95.5/WINGs/Examples/.deps/server.Po0000644000175000017500000000001012214434624016277 00000000000000# dummy WindowMaker-0.95.5/WINGs/Examples/.deps/colorpick.Po0000644000175000017500000000001012214434624016756 00000000000000# dummy WindowMaker-0.95.5/WINGs/Examples/.deps/fontl.Po0000644000175000017500000000001012214434624016113 00000000000000# dummy WindowMaker-0.95.5/WINGs/Examples/puzzle.c0000644000175000017500000001072612214432632015171 00000000000000 #include #include #include #include #define MAX_SIZE 10*10 WMWindow *win; WMButton *Button[MAX_SIZE]; signed char Map[MAX_SIZE]; int Size = 4; int MoveCount; #define MAP(x,y) Map[(x)+(y)*Size] int WinSize = 120; Bool CheckWin(void) { int i; for (i = 0; i < Size * Size - 1; i++) { if (Map[i] != i) return False; } return True; } void MoveButton(int button, int x, int y) { WMMoveWidget(Button[button], x * (WinSize / Size), y * (WinSize / Size)); } Bool SlideButton(int button) { int x = 0, y = 0, done = 0; /* locate the button */ for (y = 0; y < Size; y++) { for (x = 0; x < Size; x++) { if (MAP(x, y) == button) { done = 1; break; } } if (done) break; } if (x > 0 && MAP(x - 1, y) < 0) { MAP(x, y) = -1; MoveButton(button, x - 1, y); MAP(x - 1, y) = button; } else if (x < Size - 1 && MAP(x + 1, y) < 0) { MAP(x, y) = -1; MoveButton(button, x + 1, y); MAP(x + 1, y) = button; } else if (y > 0 && MAP(x, y - 1) < 0) { MAP(x, y) = -1; MoveButton(button, x, y - 1); MAP(x, y - 1) = button; } else if (y < Size - 1 && MAP(x, y + 1) < 0) { MAP(x, y) = -1; MoveButton(button, x, y + 1); MAP(x, y + 1) = button; } else { return False; } return True; } #define SWAP(a,b) {int tmp; tmp=a; a=b; b=tmp;} void ResetGame(void) { int i, x, y, ox, oy; MoveCount = 0; for (i = 0; i < Size * Size - 1; i++) { Map[i] = i; } Map[i] = -1; ox = x = Size - 1; oy = y = Size - 1; for (i = 0; i < 1000; i++) { int ok; ok = 1; switch (rand() % 4) { case 0: if (x > 0) x--; else ok = 0; break; case 2: if (x < Size - 1) x++; else ok = 0; break; case 1: if (y > 0) y--; else ok = 0; break; case 3: if (y < Size - 1) y++; else ok = 0; break; } if (ok) { MoveButton(MAP(x, y), ox, oy); SWAP(MAP(ox, oy), MAP(x, y)); while (XPending(WMScreenDisplay(WMWidgetScreen(win)))) { XEvent ev; WMNextEvent(WMScreenDisplay(WMWidgetScreen(win)), &ev); WMHandleEvent(&ev); } ox = x; oy = y; } } } void buttonClick(WMWidget * w, void *ptr) { char buffer[300]; if (SlideButton((uintptr_t)ptr)) { MoveCount++; if (CheckWin()) { sprintf(buffer, "You finished the game in %i moves.", MoveCount); if (WMRunAlertPanel(WMWidgetScreen(w), win, "You Won!", buffer, "Wee!", "Gah! Lemme retry!", NULL) == WAPRDefault) { exit(0); } ResetGame(); } } } static void resizeObserver(void *self, WMNotification * notif) { WMSize size = WMGetViewSize(WMWidgetView(win)); int x, y; WinSize = size.width; for (y = 0; y < Size; y++) { for (x = 0; x < Size; x++) { if (MAP(x, y) >= 0) { WMResizeWidget(Button[(int)MAP(x, y)], WinSize / Size, WinSize / Size); WMMoveWidget(Button[(int)MAP(x, y)], x * (WinSize / Size), y * (WinSize / Size)); } } } } int main(int argc, char **argv) { Display *dpy; WMScreen *scr; int x, y, i; WMInitializeApplication("Puzzle", &argc, argv); dpy = XOpenDisplay(""); if (!dpy) { printf("could not open display\n"); exit(1); } scr = WMCreateScreen(dpy, DefaultScreen(dpy)); win = WMCreateWindow(scr, "puzzle"); WMResizeWidget(win, WinSize, WinSize); WMSetWindowTitle(win, "zuPzel"); WMSetWindowMinSize(win, 80, 80); WMSetWindowAspectRatio(win, 2, 2, 2, 2); WMSetWindowResizeIncrements(win, Size, Size); WMSetViewNotifySizeChanges(WMWidgetView(win), True); WMAddNotificationObserver(resizeObserver, NULL, WMViewSizeDidChangeNotification, WMWidgetView(win)); for (i = y = 0; y < Size && i < Size * Size - 1; y++) { for (x = 0; x < Size && i < Size * Size - 1; x++) { char buf[32]; WMColor *color; RColor col; RHSVColor hsv; hsv.hue = i * 360 / (Size * Size - 1); hsv.saturation = 120; hsv.value = 200; RHSVtoRGB(&hsv, &col); color = WMCreateRGBColor(scr, col.red << 8, col.green << 8, col.blue << 8, False); MAP(x, y) = i; Button[i] = WMCreateButton(win, WBTMomentaryLight); WMSetWidgetBackgroundColor(Button[i], color); WMReleaseColor(color); WMSetButtonAction(Button[i], buttonClick, (void *)(uintptr_t) i); WMResizeWidget(Button[i], WinSize / Size, WinSize / Size); WMMoveWidget(Button[i], x * (WinSize / Size), y * (WinSize / Size)); sprintf(buf, "%i", i + 1); WMSetButtonText(Button[i], buf); WMSetButtonTextAlignment(Button[i], WACenter); i++; } } WMMapSubwidgets(win); WMMapWidget(win); WMRealizeWidget(win); ResetGame(); WMScreenMainLoop(scr); return 0; } WindowMaker-0.95.5/WINGs/Examples/Makefile0000644000175000017500000004200412214434623015130 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # WINGs/Examples/Makefile. Generated from Makefile.in by configure. # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. pkgdatadir = $(datadir)/WindowMaker pkgincludedir = $(includedir)/WindowMaker pkglibdir = $(libdir)/WindowMaker pkglibexecdir = $(libexecdir)/WindowMaker am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = i686-pc-linux-gnu host_triplet = i686-pc-linux-gnu noinst_PROGRAMS = connect$(EXEEXT) server$(EXEEXT) fontl$(EXEEXT) \ puzzle$(EXEEXT) colorpick$(EXEEXT) subdir = WINGs/Examples DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) colorpick_SOURCES = colorpick.c colorpick_OBJECTS = colorpick.$(OBJEXT) colorpick_LDADD = $(LDADD) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent connect_SOURCES = connect.c connect_OBJECTS = connect.$(OBJEXT) fontl_SOURCES = fontl.c fontl_OBJECTS = fontl.$(OBJEXT) fontl_LDADD = $(LDADD) puzzle_SOURCES = puzzle.c puzzle_OBJECTS = puzzle.$(OBJEXT) puzzle_LDADD = $(LDADD) server_SOURCES = server.c server_OBJECTS = server.$(OBJEXT) DEFAULT_INCLUDES = -I. -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = colorpick.c connect.c fontl.c puzzle.c server.c DIST_SOURCES = colorpick.c connect.c fontl.c puzzle.c server.c ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = ${SHELL} /home/jaqque/wmaker/missing --run aclocal-1.11 AMTAR = ${SHELL} /home/jaqque/wmaker/missing --run tar AM_DEFAULT_VERBOSITY = 1 AR = ar AUTOCONF = ${SHELL} /home/jaqque/wmaker/missing --run autoconf AUTOHEADER = ${SHELL} /home/jaqque/wmaker/missing --run autoheader AUTOMAKE = ${SHELL} /home/jaqque/wmaker/missing --run automake-1.11 AWK = mawk CC = gcc CCDEPMODE = depmode=gcc3 CFLAGS = -g -O2 -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-deprecated -Wno-deprecated-declarations CPP = gcc -E CPPFLAGS = -D_XOPEN_SOURCE=600 CYGPATH_W = echo DEFS = -DHAVE_CONFIG_H DEPDIR = .deps DSYMUTIL = DUMPBIN = ECHO_C = ECHO_N = -n ECHO_T = EGREP = /bin/grep -E EXEEXT = FCLIBS = -lfontconfig FGREP = /bin/grep -F GFXLIBS = GREP = /bin/grep HEADER_SEARCH_PATH = -I${includedir} ICONEXT = xpm INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} INSTALL_STRIP_PROGRAM = $(install_sh) -c -s INTLIBS = LD = /usr/bin/ld LDFLAGS = LIBBSD = LIBM = -lm LIBOBJS = LIBRARY_SEARCH_PATH = -L${libdir} LIBS = LIBTOOL = $(SHELL) $(top_builddir)/libtool LIBXINERAMA = LIBXMU = -lXmu LIBXRANDR = LIPO = LN_S = ln -s LTLIBOBJS = MAKEINFO = ${SHELL} /home/jaqque/wmaker/missing --run makeinfo MKDIR_P = /bin/mkdir -p MOFILES = NLSDIR = $(prefix)/lib/locale NM = /usr/bin/nm -B NMEDIT = OBJDUMP = objdump OBJEXT = o OTOOL = OTOOL64 = PACKAGE = WindowMaker PACKAGE_BUGREPORT = PACKAGE_NAME = WindowMaker PACKAGE_STRING = WindowMaker 0.95.5 PACKAGE_TARNAME = WindowMaker PACKAGE_URL = http://www.windowmaker.org/ PACKAGE_VERSION = 0.95.5 PATH_SEPARATOR = : PKGCONFIG = pkg-config RANLIB = ranlib SED = /bin/sed SET_MAKE = SHELL = /bin/bash STRIP = strip UTILMOFILES = VERSION = 0.95.5 WINGSMOFILES = WINGS_VERSION = 2:1:0 WPMOFILES = WRASTER_VERSION = 4:1:1 WUTIL_VERSION = 3:0:0 XCFLAGS = XFTCONFIG = pkg-config xft XFTFLAGS = -I/usr/include/freetype2 XFTLIBS = -lXft XGETTEXT = XLFLAGS = XLIBS = -lXext -lXext -lX11 XMKMF = X_CFLAGS = X_EXTRA_LIBS = X_LIBRARY_PATH = X_LIBS = X_PRE_LIBS = -lSM -lICE abs_builddir = /home/jaqque/wmaker/WINGs/Examples abs_srcdir = /home/jaqque/wmaker/WINGs/Examples abs_top_builddir = /home/jaqque/wmaker abs_top_srcdir = /home/jaqque/wmaker ac_ct_CC = gcc ac_ct_DUMPBIN = am__include = include am__leading_dot = . am__quote = am__tar = ${AMTAR} chof - "$$tardir" am__untar = ${AMTAR} xf - bindir = ${exec_prefix}/bin build = i686-pc-linux-gnu build_alias = build_cpu = i686 build_os = linux-gnu build_vendor = pc builddir = . datadir = ${datarootdir} datarootdir = ${prefix}/share docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} dvidir = ${docdir} exec_prefix = ${prefix} host = i686-pc-linux-gnu host_alias = host_cpu = i686 host_os = linux-gnu host_vendor = pc htmldir = ${docdir} inc_search_path = -I${includedir} includedir = ${prefix}/include infodir = ${datarootdir}/info install_sh = ${SHELL} /home/jaqque/wmaker/install-sh lcov_output_directory = lib_search_path = -L${libdir} libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale localstatedir = ${prefix}/var lt_ECHO = echo mandir = ${datarootdir}/man menutextdomain = mkdir_p = /bin/mkdir -p oldincludedir = /usr/include pdfdir = ${docdir} pixmapdir = ${datadir}/pixmaps prefix = /usr/local program_transform_name = s,x,x, psdir = ${docdir} sbindir = ${exec_prefix}/sbin sharedstatedir = ${prefix}/com srcdir = . supported_locales = be bg bs ca cs da de el es et fi fr gl hr hu hy it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW sysconfdir = ${prefix}/etc target_alias = top_build_prefix = ../../ top_builddir = ../.. top_srcdir = ../.. wprefs_bindir = ${exec_prefix}/bin wprefs_datadir = ${datarootdir}/WPrefs AUTOMAKE_OPTIONS = LDADD = $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la \ -lXft colorpick_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la fontl_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la puzzle_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la connect_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la connect_LDADD = $(top_builddir)/WINGs/libWUtil.la -L${libdir} server_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la server_LDADD = $(top_builddir)/WINGs/libWUtil.la -L${libdir} AM_CPPFLAGS = -I$(top_srcdir)/WINGs -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \ -DRESOURCE_PATH=\"$(datadir)/WINGs\" -I${includedir} all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/Examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WINGs/Examples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list colorpick$(EXEEXT): $(colorpick_OBJECTS) $(colorpick_DEPENDENCIES) @rm -f colorpick$(EXEEXT) $(AM_V_CCLD)$(LINK) $(colorpick_OBJECTS) $(colorpick_LDADD) $(LIBS) connect$(EXEEXT): $(connect_OBJECTS) $(connect_DEPENDENCIES) @rm -f connect$(EXEEXT) $(AM_V_CCLD)$(LINK) $(connect_OBJECTS) $(connect_LDADD) $(LIBS) fontl$(EXEEXT): $(fontl_OBJECTS) $(fontl_DEPENDENCIES) @rm -f fontl$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fontl_OBJECTS) $(fontl_LDADD) $(LIBS) puzzle$(EXEEXT): $(puzzle_OBJECTS) $(puzzle_DEPENDENCIES) @rm -f puzzle$(EXEEXT) $(AM_V_CCLD)$(LINK) $(puzzle_OBJECTS) $(puzzle_LDADD) $(LIBS) server$(EXEEXT): $(server_OBJECTS) $(server_DEPENDENCIES) @rm -f server$(EXEEXT) $(AM_V_CCLD)$(LINK) $(server_OBJECTS) $(server_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c include ./$(DEPDIR)/colorpick.Po include ./$(DEPDIR)/connect.Po include ./$(DEPDIR)/fontl.Po include ./$(DEPDIR)/puzzle.Po include ./$(DEPDIR)/server.Po .c.o: $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po # $(AM_V_CC) \ # source='$<' object='$@' libtool=no \ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ # $(COMPILE) -c $< .c.obj: $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po # $(AM_V_CC) \ # source='$<' object='$@' libtool=no \ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ # $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo # $(AM_V_CC) \ # source='$<' object='$@' libtool=yes \ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ # $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # 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. .NOEXPORT: WindowMaker-0.95.5/WINGs/userdefaults.c0000644000175000017500000003273212214432632014571 00000000000000 #include #include #include #include #include #include #include #include "wconfig.h" #include "WINGs.h" typedef struct W_UserDefaults { WMPropList *defaults; WMPropList *appDomain; WMPropList *searchListArray; WMPropList **searchList; /* cache for searchListArray */ char dirty; char dontSync; char *path; /* where is db located */ time_t timestamp; /* last modification time */ struct W_UserDefaults *next; } UserDefaults; static UserDefaults *sharedUserDefaults = NULL; char *WMUserDefaultsDidChangeNotification = "WMUserDefaultsDidChangeNotification"; static void synchronizeUserDefaults(void *foo); #define DEFAULTS_DIR "/Defaults" #ifndef HAVE_INOTIFY /* Check defaults database for changes every this many milliseconds */ /* XXX: this is shared with src/ stuff, put it in some common header */ #define UD_SYNC_INTERVAL 2000 #endif const char *wusergnusteppath() { static const char subdir[] = "/GNUstep"; static char *path = NULL; char *gspath, *h; int pathlen; if (path) /* Value have been already computed, re-use it */ return path; gspath = getenv("GNUSTEP_USER_ROOT"); if (gspath) { gspath = wexpandpath(gspath); if (gspath) { path = gspath; return path; } wwarning(_("variable GNUSTEP_USER_ROOT defined with invalid path, not used")); } h = wgethomedir(); if (!h) return NULL; pathlen = strlen(h); path = wmalloc(pathlen + sizeof(subdir)); strcpy(path, h); strcpy(path + pathlen, subdir); return path; } char *wdefaultspathfordomain(const char *domain) { char *path; const char *gspath; size_t slen; gspath = wusergnusteppath(); slen = strlen(gspath) + strlen(DEFAULTS_DIR) + strlen(domain) + 4; path = wmalloc(slen); if (wstrlcpy(path, gspath, slen) >= slen || wstrlcat(path, DEFAULTS_DIR, slen) >= slen || wstrlcat(path, "/", slen) >= slen || wstrlcat(path, domain, slen) >= slen) { wfree(path); return NULL; } return path; } /* XXX: doesn't quite belong to *user*defaults.c */ #ifndef GLOBAL_DEFAULTS_SUBDIR #define GLOBAL_DEFAULTS_SUBDIR "WindowMaker" #endif char *wglobaldefaultspathfordomain(const char *domain) { char *t = NULL; size_t len; len = strlen( SYSCONFDIR ) + strlen( GLOBAL_DEFAULTS_SUBDIR ) + strlen(domain) + 3; t = wmalloc(len); snprintf(t, len, "%s/%s/%s", SYSCONFDIR, GLOBAL_DEFAULTS_SUBDIR, domain); return t; } static void saveDefaultsChanges(void) { /* save the user defaults databases */ synchronizeUserDefaults(NULL); } /* set to save changes in defaults when program is exited */ static void registerSaveOnExit(void) { static Bool registeredSaveOnExit = False; if (!registeredSaveOnExit) { atexit(saveDefaultsChanges); registeredSaveOnExit = True; } } static void synchronizeUserDefaults(void *foo) { UserDefaults *database = sharedUserDefaults; while (database) { if (!database->dontSync) WMSynchronizeUserDefaults(database); database = database->next; } } #ifndef HAVE_INOTIFY static void addSynchronizeTimerHandler(void) { static Bool initialized = False; if (!initialized) { WMAddPersistentTimerHandler(UD_SYNC_INTERVAL, synchronizeUserDefaults, NULL); initialized = True; } } #endif void WMEnableUDPeriodicSynchronization(WMUserDefaults * database, Bool enable) { database->dontSync = !enable; } void WMSynchronizeUserDefaults(WMUserDefaults * database) { Bool fileIsNewer = False, release = False, notify = False; WMPropList *plF, *key; char *path; struct stat stbuf; if (!database->path) { path = wdefaultspathfordomain(WMGetApplicationName()); release = True; } else { path = database->path; } if (stat(path, &stbuf) >= 0 && stbuf.st_mtime > database->timestamp) fileIsNewer = True; if (database->appDomain && (database->dirty || fileIsNewer)) { if (database->dirty && fileIsNewer) { plF = WMReadPropListFromFile(path); if (plF) { plF = WMMergePLDictionaries(plF, database->appDomain, False); WMReleasePropList(database->appDomain); database->appDomain = plF; key = database->searchList[0]; WMPutInPLDictionary(database->defaults, key, plF); notify = True; } else { /* something happened with the file. just overwrite it */ wwarning(_("cannot read domain from file '%s' when syncing"), path); WMWritePropListToFile(database->appDomain, path); } } else if (database->dirty) { WMWritePropListToFile(database->appDomain, path); } else if (fileIsNewer) { plF = WMReadPropListFromFile(path); if (plF) { WMReleasePropList(database->appDomain); database->appDomain = plF; key = database->searchList[0]; WMPutInPLDictionary(database->defaults, key, plF); notify = True; } else { /* something happened with the file. just overwrite it */ wwarning(_("cannot read domain from file '%s' when syncing"), path); WMWritePropListToFile(database->appDomain, path); } } database->dirty = 0; if (stat(path, &stbuf) >= 0) database->timestamp = stbuf.st_mtime; if (notify) { WMPostNotificationName(WMUserDefaultsDidChangeNotification, database, NULL); } } if (release) wfree(path); } void WMSaveUserDefaults(WMUserDefaults * database) { if (database->appDomain) { struct stat stbuf; char *path; Bool release = False; if (!database->path) { path = wdefaultspathfordomain(WMGetApplicationName()); release = True; } else { path = database->path; } WMWritePropListToFile(database->appDomain, path); database->dirty = 0; if (stat(path, &stbuf) >= 0) database->timestamp = stbuf.st_mtime; if (release) wfree(path); } } WMUserDefaults *WMGetStandardUserDefaults(void) { WMUserDefaults *defaults; WMPropList *domain; WMPropList *key; struct stat stbuf; char *path; int i; if (sharedUserDefaults) { defaults = sharedUserDefaults; while (defaults) { /* path == NULL only for StandardUserDefaults db */ if (defaults->path == NULL) return defaults; defaults = defaults->next; } } /* we didn't found the database we are looking for. Go read it. XXX: wtf? */ defaults = wmalloc(sizeof(WMUserDefaults)); defaults->defaults = WMCreatePLDictionary(NULL, NULL); defaults->searchList = wmalloc(sizeof(WMPropList *) * 3); /* application domain */ key = WMCreatePLString(WMGetApplicationName()); defaults->searchList[0] = key; /* temporary kluge. wmaker handles synchronization itself */ if (strcmp(WMGetApplicationName(), "WindowMaker") == 0) { defaults->dontSync = 1; } path = wdefaultspathfordomain(WMGetFromPLString(key)); if (stat(path, &stbuf) >= 0) defaults->timestamp = stbuf.st_mtime; domain = WMReadPropListFromFile(path); if (!domain) domain = WMCreatePLDictionary(NULL, NULL); if (path) wfree(path); defaults->appDomain = domain; if (domain) WMPutInPLDictionary(defaults->defaults, key, domain); /* global domain */ key = WMCreatePLString("WMGLOBAL"); defaults->searchList[1] = key; path = wdefaultspathfordomain(WMGetFromPLString(key)); domain = WMReadPropListFromFile(path); wfree(path); if (!domain) domain = WMCreatePLDictionary(NULL, NULL); if (domain) WMPutInPLDictionary(defaults->defaults, key, domain); /* terminate list */ defaults->searchList[2] = NULL; defaults->searchListArray = WMCreatePLArray(NULL, NULL); i = 0; while (defaults->searchList[i]) { WMAddToPLArray(defaults->searchListArray, defaults->searchList[i]); i++; } if (sharedUserDefaults) defaults->next = sharedUserDefaults; sharedUserDefaults = defaults; #ifndef HAVE_INOTIFY addSynchronizeTimerHandler(); #endif registerSaveOnExit(); return defaults; } WMUserDefaults *WMGetDefaultsFromPath(const char *path) { WMUserDefaults *defaults; WMPropList *domain; WMPropList *key; struct stat stbuf; const char *name; int i; assert(path != NULL); if (sharedUserDefaults) { defaults = sharedUserDefaults; while (defaults) { if (defaults->path && strcmp(defaults->path, path) == 0) return defaults; defaults = defaults->next; } } /* we didn't found the database we are looking for. Go read it. XXX wtf? */ defaults = wmalloc(sizeof(WMUserDefaults)); defaults->defaults = WMCreatePLDictionary(NULL, NULL); defaults->searchList = wmalloc(sizeof(WMPropList *) * 2); /* the domain we want, go in the first position */ name = strrchr(path, '/'); if (!name) name = path; else name++; key = WMCreatePLString(name); defaults->searchList[0] = key; if (stat(path, &stbuf) >= 0) defaults->timestamp = stbuf.st_mtime; domain = WMReadPropListFromFile(path); if (!domain) domain = WMCreatePLDictionary(NULL, NULL); defaults->path = wstrdup(path); defaults->appDomain = domain; if (domain) WMPutInPLDictionary(defaults->defaults, key, domain); /* terminate list */ defaults->searchList[1] = NULL; defaults->searchListArray = WMCreatePLArray(NULL, NULL); i = 0; while (defaults->searchList[i]) { WMAddToPLArray(defaults->searchListArray, defaults->searchList[i]); i++; } if (sharedUserDefaults) defaults->next = sharedUserDefaults; sharedUserDefaults = defaults; #ifndef HAVE_INOTIFY addSynchronizeTimerHandler(); #endif registerSaveOnExit(); return defaults; } /* Returns a WMPropList array with all keys in the user defaults database. * Free the array with WMReleasePropList() when no longer needed, * but do not free the elements of the array! They're just references. */ WMPropList *WMGetUDKeys(WMUserDefaults * database) { return WMGetPLDictionaryKeys(database->appDomain); } WMPropList *WMGetUDObjectForKey(WMUserDefaults * database, const char *defaultName) { WMPropList *domainName, *domain; WMPropList *object = NULL; WMPropList *key = WMCreatePLString(defaultName); int i = 0; while (database->searchList[i] && !object) { domainName = database->searchList[i]; domain = WMGetFromPLDictionary(database->defaults, domainName); if (domain) { object = WMGetFromPLDictionary(domain, key); } i++; } WMReleasePropList(key); return object; } void WMSetUDObjectForKey(WMUserDefaults * database, WMPropList * object, const char *defaultName) { WMPropList *key = WMCreatePLString(defaultName); database->dirty = 1; WMPutInPLDictionary(database->appDomain, key, object); WMReleasePropList(key); } void WMRemoveUDObjectForKey(WMUserDefaults * database, const char *defaultName) { WMPropList *key = WMCreatePLString(defaultName); database->dirty = 1; WMRemoveFromPLDictionary(database->appDomain, key); WMReleasePropList(key); } char *WMGetUDStringForKey(WMUserDefaults * database, const char *defaultName) { WMPropList *val; val = WMGetUDObjectForKey(database, defaultName); if (!val) return NULL; if (!WMIsPLString(val)) return NULL; return WMGetFromPLString(val); } int WMGetUDIntegerForKey(WMUserDefaults * database, const char *defaultName) { WMPropList *val; char *str; int value; val = WMGetUDObjectForKey(database, defaultName); if (!val) return 0; if (!WMIsPLString(val)) return 0; str = WMGetFromPLString(val); if (!str) return 0; if (sscanf(str, "%i", &value) != 1) return 0; return value; } float WMGetUDFloatForKey(WMUserDefaults * database, const char *defaultName) { WMPropList *val; char *str; float value; val = WMGetUDObjectForKey(database, defaultName); if (!val || !WMIsPLString(val)) return 0.0; if (!(str = WMGetFromPLString(val))) return 0.0; if (sscanf(str, "%f", &value) != 1) return 0.0; return value; } Bool WMGetUDBoolForKey(WMUserDefaults * database, const char *defaultName) { WMPropList *val; int value; char *str; val = WMGetUDObjectForKey(database, defaultName); if (!val) return False; if (!WMIsPLString(val)) return False; str = WMGetFromPLString(val); if (!str) return False; if (sscanf(str, "%i", &value) == 1 && value != 0) return True; if (strcasecmp(str, "YES") == 0) return True; if (strcasecmp(str, "Y") == 0) return True; return False; } void WMSetUDIntegerForKey(WMUserDefaults * database, int value, const char *defaultName) { WMPropList *object; char buffer[128]; sprintf(buffer, "%i", value); object = WMCreatePLString(buffer); WMSetUDObjectForKey(database, object, defaultName); WMReleasePropList(object); } void WMSetUDStringForKey(WMUserDefaults * database, const char *value, const char *defaultName) { WMPropList *object; object = WMCreatePLString(value); WMSetUDObjectForKey(database, object, defaultName); WMReleasePropList(object); } void WMSetUDFloatForKey(WMUserDefaults * database, float value, const char *defaultName) { WMPropList *object; char buffer[128]; sprintf(buffer, "%f", value); object = WMCreatePLString(buffer); WMSetUDObjectForKey(database, object, defaultName); WMReleasePropList(object); } void WMSetUDBoolForKey(WMUserDefaults * database, Bool value, const char *defaultName) { static WMPropList *yes = NULL, *no = NULL; if (!yes) { yes = WMCreatePLString("YES"); no = WMCreatePLString("NO"); } WMSetUDObjectForKey(database, value ? yes : no, defaultName); } WMPropList *WMGetUDSearchList(WMUserDefaults * database) { return database->searchListArray; } void WMSetUDSearchList(WMUserDefaults * database, WMPropList * list) { int i, c; if (database->searchList) { i = 0; while (database->searchList[i]) { WMReleasePropList(database->searchList[i]); i++; } wfree(database->searchList); } if (database->searchListArray) { WMReleasePropList(database->searchListArray); } c = WMGetPropListItemCount(list); database->searchList = wmalloc(sizeof(WMPropList *) * (c + 1)); for (i = 0; i < c; i++) { database->searchList[i] = WMGetFromPLArray(list, i); } database->searchList[c] = NULL; database->searchListArray = WMDeepCopyPropList(list); } WindowMaker-0.95.5/WINGs/Makefile.in0000644000175000017500000010364112214434561013765 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WINGs DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ChangeLog NEWS TODO ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(pkgconfigdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libWINGs_la_DEPENDENCIES = libWUtil.la \ $(top_builddir)/wrlib/libwraster.la am_libWINGs_la_OBJECTS = configuration.lo dragcommon.lo \ dragdestination.lo dragsource.lo selection.lo wappresource.lo \ wballoon.lo wbox.lo wbrowser.lo wbutton.lo wcolor.lo \ wcolorpanel.lo wcolorwell.lo wevent.lo wfilepanel.lo wframe.lo \ wfont.lo wfontpanel.lo widgets.lo winputmethod.lo wlabel.lo \ wlist.lo wmenuitem.lo wmisc.lo wpanel.lo wpixmap.lo \ wpopupbutton.lo wprogressindicator.lo wruler.lo wscroller.lo \ wscrollview.lo wslider.lo wsplitview.lo wtabview.lo wtext.lo \ wtextfield.lo wview.lo wwindow.lo libWINGs_la_OBJECTS = $(am_libWINGs_la_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent libWINGs_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libWINGs_la_LDFLAGS) $(LDFLAGS) -o $@ libWUtil_la_DEPENDENCIES = am_libWUtil_la_OBJECTS = array.lo bagtree.lo data.lo error.lo \ findfile.lo handlers.lo hashtable.lo memory.lo menuparser.lo \ menuparser_macros.lo misc.lo notification.lo proplist.lo \ string.lo tree.lo userdefaults.lo usleep.lo wapplication.lo \ wutil.lo libWUtil_la_OBJECTS = $(am_libWUtil_la_OBJECTS) libWUtil_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libWUtil_la_LDFLAGS) $(LDFLAGS) -o $@ SCRIPTS = $(bin_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libWINGs_la_SOURCES) $(libWUtil_la_SOURCES) DIST_SOURCES = $(libWINGs_la_SOURCES) $(libWUtil_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ AUTOMAKE_OPTIONS = SUBDIRS = WINGs . po Documentation Resources libWINGs_la_LDFLAGS = -version-info @WINGS_VERSION@ libWUtil_la_LDFLAGS = -version-info @WUTIL_VERSION@ bin_SCRIPTS = get-wings-flags get-wutil-flags lib_LTLIBRARIES = libWUtil.la libWINGs.la LDADD = libWUtil.la libWINGs.la $(top_builddir)/wrlib/libwraster.la @INTLIBS@ libWINGs_la_LIBADD = libWUtil.la $(top_builddir)/wrlib/libwraster.la @XLIBS@ @XFTLIBS@ @FCLIBS@ @LIBM@ libWUtil_la_LIBADD = @LIBBSD@ EXTRA_DIST = BUGS make-rgb Examples Extras Tests get-wings-flags.in get-wutil-flags.in # wbutton.c libWINGs_la_SOURCES = \ configuration.c \ dragcommon.c \ dragdestination.c \ dragsource.c \ rgb.h \ selection.c \ wappresource.c \ wballoon.c \ wbox.c \ wbrowser.c \ wbutton.c \ wcolor.c \ wcolorpanel.c \ wcolorwell.c \ wconfig.h \ wevent.c \ wfilepanel.c \ wframe.c \ wfont.c \ wfontpanel.c \ widgets.c \ winputmethod.c \ wlabel.c \ wlist.c \ wmenuitem.c \ wmisc.c \ wpanel.c \ wpixmap.c \ wpopupbutton.c \ wprogressindicator.c \ wruler.c \ wscroller.c \ wscrollview.c \ wslider.c \ wsplitview.c \ wtabview.c \ wtext.c \ wtextfield.c \ wview.c \ wwindow.c libWUtil_la_SOURCES = \ array.c \ bagtree.c \ data.c \ error.c \ findfile.c \ handlers.c \ hashtable.c \ memory.c \ menuparser.c \ menuparser.h \ menuparser_macros.c \ misc.c \ notification.c \ proplist.c \ string.c \ tree.c \ userdefaults.c \ usleep.c \ wapplication.c \ wconfig.h \ wutil.c AM_CFLAGS = AM_CPPFLAGS = -DLOCALEDIR=\"$(NLSDIR)\" -DRESOURCE_PATH=\"$(datadir)/WINGs\" \ -I$(top_srcdir)/WINGs/WINGs -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \ @XFTFLAGS@ @HEADER_SEARCH_PATH@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = WINGs.pc DISTCLEANFILES = $(pkgconfig_DATA) get-wings-flags get-wutil-flags all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WINGs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libWINGs.la: $(libWINGs_la_OBJECTS) $(libWINGs_la_DEPENDENCIES) $(AM_V_CCLD)$(libWINGs_la_LINK) -rpath $(libdir) $(libWINGs_la_OBJECTS) $(libWINGs_la_LIBADD) $(LIBS) libWUtil.la: $(libWUtil_la_OBJECTS) $(libWUtil_la_DEPENDENCIES) $(AM_V_CCLD)$(libWUtil_la_LINK) -rpath $(libdir) $(libWUtil_la_OBJECTS) $(libWUtil_la_LIBADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bagtree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/configuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dragcommon.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dragdestination.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dragsource.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/findfile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/handlers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hashtable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menuparser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menuparser_macros.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/notification.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proplist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/selection.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/string.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/userdefaults.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usleep.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wapplication.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wappresource.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wballoon.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wbox.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wbrowser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wbutton.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcolor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcolorpanel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcolorwell.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wevent.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wfilepanel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wfont.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wfontpanel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wframe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/widgets.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/winputmethod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wlabel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wlist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmenuitem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmisc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wpanel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wpixmap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wpopupbutton.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wprogressindicator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wruler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wscroller.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wscrollview.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wslider.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wsplitview.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wtabview.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wtext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wtextfield.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wutil.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wview.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wwindow.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(SCRIPTS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binSCRIPTS install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binSCRIPTS uninstall-libLTLIBRARIES \ uninstall-pkgconfigDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binSCRIPTS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-pkgconfigDATA \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-binSCRIPTS uninstall-libLTLIBRARIES \ uninstall-pkgconfigDATA WINGs.pc: Makefile @echo "Generating $@" @echo 'Name: WINGs' > $@ @echo 'Description: Small widget set with the NeXTStep(TM) look and feel' >> $@ @echo 'Version: $(VERSION)' >> $@ @echo 'Requires: wrlib' >> $@ @echo 'Libs: $(lib_search_path) -lWINGs' >> $@ @echo 'Libs.private: $(XFTLIBS) $(XLIBS) -lm $(INTLIBS)' >> $@ @echo 'Cflags: $(inc_search_path)' >> $@ get-wings-flags: get-wings-flags.in Makefile @echo "Generating $@" @$(SED) -e 's#$${inc_search_path}#$(inc_search_path)#;' \ -e 's#$${lib_search_path}#$(lib_search_path)#;' \ -e 's#$${GFXLIBS}#$(GFXLIBS)#;' \ -e 's#$${XFTLIBS}#$(XFTLIBS)#;' \ -e 's#$${INTLIBS}#$(INTLIBS)#;' \ -e 's#$${XLIBS}#$(XLIBS)#;' < $(abs_srcdir)/get-wings-flags.in > $@ @chmod 755 $@ get-wutil-flags: get-wutil-flags.in Makefile @echo "Generating $@" @$(SED) -e 's#$${includedir}#$(includedir)#;' \ -e 's#$${libdir}#$(libdir)#;' \ -e 's#$${INTLIBS}#$(INTLIBS)#;' < $(abs_srcdir)/get-wutil-flags.in > $@ @chmod 755 $@ # 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. .NOEXPORT: WindowMaker-0.95.5/WINGs/wcolor.c0000644000175000017500000001667312214432632013376 00000000000000 #include "WINGsP.h" #include "wconfig.h" #include #define LIGHT_STIPPLE_WIDTH 4 #define LIGHT_STIPPLE_HEIGHT 4 static char LIGHT_STIPPLE_BITS[] = { 0x05, 0x0a, 0x05, 0x0a }; #define DARK_STIPPLE_WIDTH 4 #define DARK_STIPPLE_HEIGHT 4 static char DARK_STIPPLE_BITS[] = { 0x0a, 0x04, 0x0a, 0x01 }; static WMColor *createRGBAColor(WMScreen * scr, unsigned short red, unsigned short green, unsigned short blue, unsigned short alpha); /* * TODO: make the color creation code return the same WMColor for the * same colors. * make findCloseColor() find the closest color in the RContext pallette * or in the other colors allocated by WINGs. */ static WMColor *findCloseColor(WMScreen * scr, unsigned short red, unsigned short green, unsigned short blue, unsigned short alpha) { WMColor *color; XColor xcolor; RColor rcolor; rcolor.red = red >> 8; rcolor.green = green >> 8; rcolor.blue = blue >> 8; rcolor.alpha = alpha >> 8; if (!RGetClosestXColor(scr->rcontext, &rcolor, &xcolor)) return NULL; if (!XAllocColor(scr->display, scr->colormap, &xcolor)) return NULL; color = wmalloc(sizeof(WMColor)); color->screen = scr; color->refCount = 1; color->color = xcolor; color->alpha = alpha; color->flags.exact = 1; color->gc = NULL; return color; } static WMColor *createRGBAColor(WMScreen * scr, unsigned short red, unsigned short green, unsigned short blue, unsigned short alpha) { WMColor *color; XColor xcolor; xcolor.red = red; xcolor.green = green; xcolor.blue = blue; xcolor.flags = DoRed | DoGreen | DoBlue; if (!XAllocColor(scr->display, scr->colormap, &xcolor)) return NULL; color = wmalloc(sizeof(WMColor)); color->screen = scr; color->refCount = 1; color->color = xcolor; color->alpha = alpha; color->flags.exact = 1; color->gc = NULL; return color; } WMColor *WMCreateRGBColor(WMScreen * scr, unsigned short red, unsigned short green, unsigned short blue, Bool exact) { WMColor *color = NULL; if (!exact || !(color = createRGBAColor(scr, red, green, blue, 0xffff))) { color = findCloseColor(scr, red, green, blue, 0xffff); } if (!color) color = WMBlackColor(scr); return color; } RColor WMGetRColorFromColor(WMColor * color) { RColor rcolor; rcolor.red = color->color.red >> 8; rcolor.green = color->color.green >> 8; rcolor.blue = color->color.blue >> 8; rcolor.alpha = color->alpha >> 8; return rcolor; } WMColor *WMCreateRGBAColor(WMScreen * scr, unsigned short red, unsigned short green, unsigned short blue, unsigned short alpha, Bool exact) { WMColor *color = NULL; if (!exact || !(color = createRGBAColor(scr, red, green, blue, alpha))) { color = findCloseColor(scr, red, green, blue, alpha); } if (!color) color = WMBlackColor(scr); return color; } WMColor *WMCreateNamedColor(WMScreen * scr, const char *name, Bool exact) { WMColor *color; XColor xcolor; if (!XParseColor(scr->display, scr->colormap, name, &xcolor)) return NULL; if (scr->visual->class == TrueColor) exact = True; if (!exact || !(color = createRGBAColor(scr, xcolor.red, xcolor.green, xcolor.blue, 0xffff))) { color = findCloseColor(scr, xcolor.red, xcolor.green, xcolor.blue, 0xffff); } return color; } WMColor *WMRetainColor(WMColor * color) { assert(color != NULL); color->refCount++; return color; } void WMReleaseColor(WMColor * color) { color->refCount--; if (color->refCount < 1) { XFreeColors(color->screen->display, color->screen->colormap, &(color->color.pixel), 1, 0); if (color->gc) XFreeGC(color->screen->display, color->gc); wfree(color); } } void WMSetColorAlpha(WMColor * color, unsigned short alpha) { color->alpha = alpha; } void WMPaintColorSwatch(WMColor * color, Drawable d, int x, int y, unsigned int width, unsigned int height) { XFillRectangle(color->screen->display, d, WMColorGC(color), x, y, width, height); } WMPixel WMColorPixel(WMColor * color) { return color->color.pixel; } GC WMColorGC(WMColor * color) { if (!color->gc) { XGCValues gcv; WMScreen *scr = color->screen; gcv.foreground = color->color.pixel; gcv.graphics_exposures = False; color->gc = XCreateGC(scr->display, scr->rcontext->drawable, GCForeground | GCGraphicsExposures, &gcv); } return color->gc; } void WMSetColorInGC(WMColor * color, GC gc) { XSetForeground(color->screen->display, gc, color->color.pixel); } /* "system" colors */ WMColor *WMWhiteColor(WMScreen * scr) { if (!scr->white) { scr->white = WMCreateRGBColor(scr, 0xffff, 0xffff, 0xffff, True); if (!scr->white->flags.exact) wwarning(_("could not allocate %s color"), _("white")); } return WMRetainColor(scr->white); } WMColor *WMBlackColor(WMScreen * scr) { if (!scr->black) { scr->black = WMCreateRGBColor(scr, 0, 0, 0, True); if (!scr->black->flags.exact) wwarning(_("could not allocate %s color"), _("black")); } return WMRetainColor(scr->black); } WMColor *WMGrayColor(WMScreen * scr) { if (!scr->gray) { WMColor *color; if (scr->depth == 1) { Pixmap stipple; WMColor *white = WMWhiteColor(scr); WMColor *black = WMBlackColor(scr); XGCValues gcv; stipple = XCreateBitmapFromData(scr->display, W_DRAWABLE(scr), LIGHT_STIPPLE_BITS, LIGHT_STIPPLE_WIDTH, LIGHT_STIPPLE_HEIGHT); color = createRGBAColor(scr, 0xffff, 0xffff, 0xffff, 0xffff); gcv.foreground = white->color.pixel; gcv.background = black->color.pixel; gcv.fill_style = FillStippled; gcv.stipple = stipple; color->gc = XCreateGC(scr->display, W_DRAWABLE(scr), GCForeground | GCBackground | GCStipple | GCFillStyle | GCGraphicsExposures, &gcv); XFreePixmap(scr->display, stipple); WMReleaseColor(white); WMReleaseColor(black); } else { color = WMCreateRGBColor(scr, 0xaeba, 0xaaaa, 0xaeba, True); if (!color->flags.exact) wwarning(_("could not allocate %s color"), _("gray")); } scr->gray = color; } return WMRetainColor(scr->gray); } WMColor *WMDarkGrayColor(WMScreen * scr) { if (!scr->darkGray) { WMColor *color; if (scr->depth == 1) { Pixmap stipple; WMColor *white = WMWhiteColor(scr); WMColor *black = WMBlackColor(scr); XGCValues gcv; stipple = XCreateBitmapFromData(scr->display, W_DRAWABLE(scr), DARK_STIPPLE_BITS, DARK_STIPPLE_WIDTH, DARK_STIPPLE_HEIGHT); color = createRGBAColor(scr, 0, 0, 0, 0xffff); gcv.foreground = white->color.pixel; gcv.background = black->color.pixel; gcv.fill_style = FillStippled; gcv.stipple = stipple; color->gc = XCreateGC(scr->display, W_DRAWABLE(scr), GCForeground | GCBackground | GCStipple | GCFillStyle | GCGraphicsExposures, &gcv); XFreePixmap(scr->display, stipple); WMReleaseColor(white); WMReleaseColor(black); } else { color = WMCreateRGBColor(scr, 0x5144, 0x5555, 0x5144, True); if (!color->flags.exact) wwarning(_("could not allocate %s color"), _("dark gray")); } scr->darkGray = color; } return WMRetainColor(scr->darkGray); } unsigned short WMRedComponentOfColor(WMColor * color) { return color->color.red; } unsigned short WMGreenComponentOfColor(WMColor * color) { return color->color.green; } unsigned short WMBlueComponentOfColor(WMColor * color) { return color->color.blue; } unsigned short WMGetColorAlpha(WMColor * color) { return color->alpha; } char *WMGetColorRGBDescription(WMColor * color) { char *str = wmalloc(8); if (snprintf(str, 8, "#%02x%02x%02x", color->color.red >> 8, color->color.green >> 8, color->color.blue >> 8) >= 8) { wfree(str); return NULL; } return str; } WindowMaker-0.95.5/WINGs/menuparser_macros.c0000644000175000017500000005261112214432632015606 00000000000000/* * Window Maker window manager * * Copyright (c) 2012 Christophe Curis * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include "menuparser.h" /* This file contains the functions related to macros: - parse a macro being defined - handle single macro expansion - pre-defined parser's macros Some design notes for macro internal storage: arg_count is -1 when the macro does not take arguments but 0 when no args but still using parenthesis. The difference is explained in GNU cpp's documentation: http://gcc.gnu.org/onlinedocs/cpp/Function_002dlike-Macros.html the value is stored for fast expansion; here is an example of the storage format used: #define EXAMPLE(a, b) "text:" a and b! will be stored in macro->value[] as: 0x0000: 0x00 0x07 (strlen(part 1)) 0x0002: '"', 't', 'e', 'x', 't', ':', '"' (first part) 0x0009: 0x00 (part 2, id=0 for replacement by 1st parameter 'a') 0x000A: 0x00 0x03 (strlen(part 3)) 0x000C: 'a', 'n', 'd' (part 3) 0x000F: 0x01 (part 4, id=1 for replacement by 2nd parameter 'b') 0x0010: 0x00 0x01 (strlen(part 5)) 0x0012: '!' (part 5) 0x0013: 0xFF (end of macro) This structure allows to store any number and combination of text/parameter and still provide very fast generation at macro replacement time. Predefined macros are using a call-back function mechanism to generate the value on-demand. This value is generated in the 'value' buffer of the structure. Most of these call-backs will actually cache the value: they generate it on the first use (inside a parser, not globally) and reuse that value on next call(s). Because none of these macros take parameters, the call-back mechanism does not include passing of user arguments; the complex storage mechanism for argument replacement being not necessary the macro->value parameter is used as a plain C string to be copied, this fact being recognised by macro->function being non-null. It was chosen that the call-back function would not have the possibility to fail. */ static Bool menu_parser_read_macro_def(WMenuParser parser, WParserMacro *macro, char **argname); static Bool menu_parser_read_macro_args(WMenuParser parser, WParserMacro *macro, char *array[], char *buffer, ssize_t buffer_size); /* Free all used memory associated with parser's macros */ void menu_parser_free_macros(WMenuParser parser) { WParserMacro *macro, *mnext; #ifdef DEBUG unsigned char *rd; unsigned int size; unsigned int count; /* if we were compiled with debugging, we take the opportunity that we parse the list of macros, for memory release, to print all the definitions */ printf(__FILE__ ": Macros defined while parsing \"%s\"\n", parser->file_name); count = 0; #endif for (macro = parser->macros; macro != NULL; macro = mnext) { #ifdef DEBUG printf(" %s", macro->name); if (macro->arg_count >= 0) printf("(args=%d)", macro->arg_count); printf(" = "); if (macro->function != NULL) { macro->function(macro, parser); printf("function:\"%s\"", macro->value); } else { rd = macro->value; for (;;) { putchar('"'); size = (*rd++) << 8; size |= *rd++; while (size-- > 0) putchar(*rd++); putchar('"'); if (*rd == 0xFF) break; printf(" #%d ", (*rd++) + 1); } } printf(", used %d times\n", macro->usage_count); count++; #endif mnext = macro->next; wfree(macro); } #ifdef DEBUG printf(__FILE__ ": %d macros\n", count); #endif parser->macros = NULL; // Security } /* Check wether the specified character is valid for a name (macro, parameter) or not */ int isnamechr(char ch) { static const int table[256] = { [0] = 0, // In case we'd fall on buggy compiler, to avoid crash // C99: 6.7.8.21 -> non specified values are initialised to 0 ['0'] = 1, ['1'] = 1, ['2'] = 1, ['3'] = 1, ['4'] = 1, ['5'] = 1, ['6'] = 1, ['7'] = 1, ['8'] = 1, ['9'] = 1, ['A'] = 1, ['B'] = 1, ['C'] = 1, ['D'] = 1, ['E'] = 1, ['F'] = 1, ['G'] = 1, ['H'] = 1, ['I'] = 1, ['J'] = 1, ['K'] = 1, ['L'] = 1, ['M'] = 1, ['N'] = 1, ['O'] = 1, ['P'] = 1, ['Q'] = 1, ['R'] = 1, ['S'] = 1, ['T'] = 1, ['U'] = 1, ['V'] = 1, ['W'] = 1, ['X'] = 1, ['Y'] = 1, ['Z'] = 1, ['a'] = 1, ['b'] = 1, ['c'] = 1, ['d'] = 1, ['e'] = 1, ['f'] = 1, ['g'] = 1, ['h'] = 1, ['i'] = 1, ['j'] = 1, ['k'] = 1, ['l'] = 1, ['m'] = 1, ['n'] = 1, ['o'] = 1, ['p'] = 1, ['q'] = 1, ['r'] = 1, ['s'] = 1, ['t'] = 1, ['u'] = 1, ['v'] = 1, ['w'] = 1, ['x'] = 1, ['y'] = 1, ['z'] = 1, ['_'] = 1 // We refuse any UTF-8 coded character, or accents in ISO-xxx codepages }; return table[0x00FF & (unsigned)ch ]; } /* Parse the definition of the macro and add it to the top-most parser's list */ void menu_parser_define_macro(WMenuParser parser) { WParserMacro *macro; int idx; char arg_names_buf[MAXLINE]; char *arg_name[MAX_MACRO_ARG_COUNT]; if (!menu_parser_skip_spaces_and_comments(parser)) { WMenuParserError(parser, _("no macro name found for #define") ); return; } macro = wmalloc(sizeof(*macro)); /* Isolate name of macro */ idx = 0; while (isnamechr(*parser->rd)) { if (idx < sizeof(macro->name) - 1) macro->name[idx++] = *parser->rd; parser->rd++; } // macro->name[idx] = '\0'; -> Already present because wmalloc filled struct with 0s /* Build list of expected arguments */ if (*parser->rd == '(') { parser->rd++; idx = 0; for (;;) { if (!menu_parser_skip_spaces_and_comments(parser)) { arglist_error_premature_eol: WMenuParserError(parser, _("premature end of file while reading arg-list for macro \"%s\""), macro->name); wfree(macro); return; } if (*parser->rd == ')') break; if (macro->arg_count >= sizeof(arg_name) / sizeof(arg_name[0])) { WMenuParserError(parser, _("too many parameters for macro \"%s\" definition"), macro->name); wfree(macro); *parser->rd = '\0'; // fake end-of-line to avoid warnings from remaining line content return; } if (isnamechr(*parser->rd)) { arg_name[macro->arg_count++] = arg_names_buf + idx; do { if (idx < sizeof(arg_names_buf) - 1) arg_names_buf[idx++] = *parser->rd; parser->rd++; } while (isnamechr(*parser->rd)); arg_names_buf[idx] = '\0'; if (idx < sizeof(arg_names_buf) - 1) idx++; } else { WMenuParserError(parser, _("invalid characted '%c' in arg-list for macro \"%s\" while expecting parameter name"), *parser->rd, macro->name); wfree(macro); *parser->rd = '\0'; // fake end-of-line to avoid warnings from remaining line content return; } if (!menu_parser_skip_spaces_and_comments(parser)) goto arglist_error_premature_eol; if (*parser->rd == ')') break; if (*parser->rd != ',') { WMenuParserError(parser, _("invalid characted '%c' in arg-list for macro \"%s\" while expecting ',' or ')'"), *parser->rd, macro->name); wfree(macro); *parser->rd = '\0'; // fake end-of-line to avoid warnings from remaining line content return; } parser->rd++; } parser->rd++; // skip the closing ')' } else macro->arg_count = -1; // Means no parenthesis at all to expect /* If we're inside a #if sequence, we abort now, but not sooner in order to keep the syntax check */ if (parser->cond.stack[0].skip) { wfree(macro); *parser->rd = '\0'; // Ignore macro content return; } /* Get the macro's definition */ menu_parser_skip_spaces_and_comments(parser); if (!menu_parser_read_macro_def(parser, macro, arg_name)) { wfree(macro); return; } /* Create the macro in the Root parser */ while (parser->parent_file != NULL) parser = parser->parent_file; /* Check that the macro was not already defined */ if (menu_parser_find_macro(parser, macro->name) != NULL) { WMenuParserError(parser, _("macro \"%s\" already defined, ignoring redefinition"), macro->name); wfree(macro); return; } /* Append at beginning of list */ macro->next = parser->macros; parser->macros = macro; } /* Check if the current word in the parser matches a macro */ WParserMacro *menu_parser_find_macro(WMenuParser parser, const char *name) { const char *ref, *cmp; WParserMacro *macro; while (parser->parent_file != NULL) parser = parser->parent_file; for (macro = parser->macros; macro != NULL; macro = macro->next) { ref = macro->name; cmp = name; while (*ref != '\0') if (*ref++ != *cmp++) goto check_next_macro; if (isnamechr(*cmp)) continue; return macro; check_next_macro: ; } return NULL; } /* look to see if the next word matches the name of one of the parameter names for a macro definition This function is internal to the macro definition function as this is where the analysis is done */ static inline char *mp_is_parameter(char *parse, const char *param) { while (*param) if (*parse++ != *param++) return NULL; if (isnamechr(*parse)) return NULL; return parse; } /* Read the content definition part of a #define construct (the part after the optional argument list) and store it in the prepared format for quick expansion There is no need to keep track of the names of the parameters, so they are stored in a temporary storage for the time of the macro parsing. */ static Bool menu_parser_read_macro_def(WMenuParser parser, WParserMacro *macro, char **arg) { unsigned char *wr_size; unsigned char *wr; unsigned int size_data; unsigned int size_max; int i; wr_size = macro->value; size_data = 0; wr = wr_size + 2; size_max = sizeof(macro->value) - (wr - macro->value) - 3; while (menu_parser_skip_spaces_and_comments(parser)) { if (isnamechr(*parser->rd)) { char *next_rd; /* Is the current word a parameter to replace? */ for (i = 0; i < macro->arg_count; i++) { next_rd = mp_is_parameter(parser->rd, arg[i]); if (next_rd != NULL) { if (wr + 4 >= macro->value + sizeof(macro->value)) goto error_too_much_data; wr_size[0] = (size_data >> 8) & 0xFF; wr_size[1] = size_data & 0xFF; *wr++ = i; wr_size = wr; wr += 2; parser->rd = next_rd; *wr++ = ' '; size_data = 1; size_max = sizeof(macro->value) - (wr - macro->value) - 3; goto next_loop; // Because we can't 'break' this loop and 'continue' // the outer one in a clean and easy way } } /* Not parameter name -> copy as-is */ do { *wr++ = *parser->rd++; if (++size_data >= size_max) { error_too_much_data: WMenuParserError(parser, _("more content than supported for the macro \"%s\""), macro->name); return False; } } while (isnamechr(*parser->rd)); if (isspace(*parser->rd)) { *wr++ = ' '; if (++size_data >= size_max) goto error_too_much_data; } } else { /* Some uninterresting characters, copy as-is */ while (*parser->rd != '\0') { if (isnamechr(*parser->rd)) break; // handle in next loop if (parser->rd[0] == '/') if ((parser->rd[1] == '*') || (parser->rd[1] == '/')) break; // Comments are handled by std function if ((parser->rd[0] == '\\') && (parser->rd[1] == '\n') && (parser->rd[2] == '\0')) break; // Long-lines are handled by std function *wr++ = *parser->rd++; if (++size_data >= size_max) goto error_too_much_data; } } next_loop: ; } wr_size[0] = (size_data >> 8) & 0xFF; wr_size[1] = size_data & 0xFF; *wr = 0xFF; return True; } /* When a macro is being used in the file, this function will generate the expanded value for the macro in the parser's work line. It blindly supposes that the data generated in macro->value is valid */ void menu_parser_expand_macro(WMenuParser parser, WParserMacro *macro) { char save_buf[sizeof(parser->line_buffer)]; char arg_values_buf[MAXLINE]; char *arg_value[MAX_MACRO_ARG_COUNT]; char *src, *dst; unsigned char *rd; unsigned int size; int i, space_left; /* Skip the name of the macro, this was not done by caller */ for (i = 0; macro->name[i] != '\0'; i++) parser->rd++; if (macro->arg_count >= 0) { menu_parser_skip_spaces_and_comments(parser); if (!menu_parser_read_macro_args(parser, macro, arg_value, arg_values_buf, sizeof(arg_values_buf))) return; } #ifdef DEBUG macro->usage_count++; #endif /* Save the remaining data from current line as we will overwrite the current line's workspace with the expanded macro, so we can re-append it afterwards */ dst = save_buf; while ((*dst++ = *parser->rd++) != '\0') ; /* Generate expanded macro */ dst = parser->line_buffer; parser->rd = dst; space_left = sizeof(parser->line_buffer) - 1; if (macro->function != NULL) { /* Parser's pre-defined macros actually proposes a function call to generate dynamic value for the expansion of the macro. In this case it is generated as a C string in the macro->value and used directly */ macro->function(macro, parser); rd = macro->value; while (--space_left > 0) if ((*dst = *rd++) == '\0') break; else dst++; } else { rd = macro->value; for (;;) { size = (*rd++) << 8; size |= *rd++; while (size-- > 0) { *dst = *rd++; if (--space_left > 0) dst++; } if (*rd == 0xFF) break; src = arg_value[*rd++]; while (*src) { *dst = *src++; if (--space_left > 0) dst++; } } } /* Copy finished -> Re-append the text that was following the macro */ src = save_buf; while (--space_left > 0) if ((*dst++ = *src++) == '\0') break; *dst = '\0'; if (space_left <= 0) WMenuParserError(parser, _("expansion for macro \"%s\" too big, line truncated"), macro->name); } /* When reading a macro to be expanded (not being defined), that takes arguments, this function parses the arguments being provided */ static Bool menu_parser_read_macro_args(WMenuParser parser, WParserMacro *macro, char *array[], char *buffer, ssize_t buffer_size) { int arg; if (*parser->rd != '(') { WMenuParserError(parser, _("macro \"%s\" needs parenthesis for arguments"), macro->name); return False; } parser->rd++; buffer_size--; // Room for final '\0' menu_parser_skip_spaces_and_comments(parser); arg = 0; for (;;) { int paren_count; array[arg] = buffer; paren_count = 0; while (*parser->rd != '\0') { if (*parser->rd == '(') paren_count++; if (paren_count <= 0) if ((*parser->rd == ',') || (*parser->rd == ')') ) break; if ((*parser->rd == '"') || (*parser->rd == '\'')) { char eot = *parser->rd++; if (buffer_size-- > 0) *buffer++ = eot; while (*parser->rd) { if ((*buffer = *parser->rd++) == eot) goto found_end_of_string; if (buffer_size-- > 0) buffer++; } WMenuParserError(parser, _("missing closing quote or double-quote before end-of-line") ); return False; found_end_of_string: continue; } if (isspace(*parser->rd)) { if (buffer_size-- > 0) *buffer++ = ' '; menu_parser_skip_spaces_and_comments(parser); continue; } *buffer = *parser->rd++; if (buffer_size-- > 0) buffer++; } *buffer = '\0'; if (buffer_size-- > 0) buffer++; arg++; if (*parser->rd == ',') { parser->rd++; if (arg >= macro->arg_count) { WMenuParserError(parser, _("too many arguments for macro \"%s\", expected only %d"), macro->name, macro->arg_count); return False; } continue; } break; } if (*parser->rd != ')') { WMenuParserError(parser, _("premature end of line while searching for arguments to macro \"%s\""), macro->name); return False; } parser->rd++; if (arg < macro->arg_count) { WMenuParserError(parser, _("not enough arguments for macro \"%s\", expected %d but got only %d"), macro->name, macro->arg_count, arg); return False; } if (buffer_size < 0) WMenuParserError(parser, _("too much data in parameter list of macro \"%s\", truncated"), macro->name); return True; } /******************************************************************************/ /* Definition of pre-defined macros */ /******************************************************************************/ void WMenuParserRegisterSimpleMacro(WMenuParser parser, const char *name, const char *value) { WParserMacro *macro; size_t len; unsigned char *wr; macro = wmalloc(sizeof(*macro)); strncpy(macro->name, name, sizeof(macro->name)-1); macro->arg_count = -1; len = strlen(value); if (len > sizeof(macro->value) - 3) { wwarning(_("size of value for macro '%s' is too big, truncated"), name); len = sizeof(macro->value) - 3; } macro->value[0] = (len >> 8) & 0xFF; macro->value[1] = len & 0xFF; wr = ¯o->value[2]; while (len-- > 0) *wr++ = *value++; *wr = 0xFF; macro->next = parser->macros; parser->macros = macro; } /* Name of the originally loaded file (before #includes) */ static void mpm_base_file(WParserMacro *this, WMenuParser parser) { unsigned char *src, *dst; if (this->value[0] != '\0') return; // Value already evaluated, re-use previous while (parser->parent_file != NULL) parser = parser->parent_file; dst = this->value; src = (unsigned char *) parser->file_name; *dst++ = '\"'; while (*src != '\0') if (dst < this->value + sizeof(this->value) - 2) *dst++ = *src++; else break; *dst++ = '\"'; *dst = '\0'; } /* Number of #include currently nested */ static void mpm_include_level(WParserMacro *this, WMenuParser parser) { int level = 0; while (parser->parent_file != NULL) { parser = parser->parent_file; level++; } snprintf((char *) this->value, sizeof(this->value), "%d", level); } /* Name of current file */ static void mpm_current_file(WParserMacro *this, WMenuParser parser) { unsigned char *src, *dst; dst = this->value; src = (unsigned char *) parser->file_name; *dst++ = '\"'; while (*src != '\0') if (dst < this->value + sizeof(this->value) - 2) *dst++ = *src++; else break; *dst++ = '\"'; *dst = '\0'; } /* Number of current line */ static void mpm_current_line(WParserMacro *this, WMenuParser parser) { snprintf((char *) this->value, sizeof(this->value), "%d", parser->line_number); } /* Name of host on which we are running, not necessarily displaying */ static void mpm_get_hostname(WParserMacro *this, WMenuParser parser) { char *h; if (this->value[0] != '\0') return; // Value already evaluated, re-use previous h = getenv("HOSTNAME"); if (h == NULL) { h = getenv("HOST"); if (h == NULL) { if (gethostname((char *) this->value, sizeof(this->value) ) != 0) { WMenuParserError(parser, _("could not determine %s"), "HOSTNAME"); this->value[0] = '?'; this->value[1] = '?'; this->value[2] = '?'; this->value[3] = '\0'; } return; } } wstrlcpy((char *) this->value, h, sizeof(this->value) ); } /* Name of the current user */ static void mpm_get_user_name(WParserMacro *this, WMenuParser parser) { char *user; if (this->value[0] != '\0') return; // Value already evaluated, re-use previous user = getlogin(); if (user == NULL) { struct passwd *pw_user; pw_user = getpwuid(getuid()); if (pw_user == NULL) { error_no_username: WMenuParserError(parser, _("could not determine %s"), "USER" ); /* Fall back on numeric id - better than nothing */ snprintf((char *) this->value, sizeof(this->value), "%d", getuid() ); return; } user = pw_user->pw_name; if (user == NULL) goto error_no_username; } wstrlcpy((char *) this->value, user, sizeof(this->value) ); } /* Number id of the user under which we are running */ static void mpm_get_user_id(WParserMacro *this, WMenuParser parser) { if (this->value[0] != '\0') return; // Already evaluated, re-use previous snprintf((char *) this->value, sizeof(this->value), "%d", getuid() ); } /* Small helper to automate creation of one pre-defined macro in the parser */ static void w_create_macro(WMenuParser parser, const char *name, WParserMacroFunction *handler) { WParserMacro *macro; macro = wmalloc(sizeof(*macro)); strcpy(macro->name, name); macro->function = handler; macro->arg_count = -1; macro->next = parser->macros; parser->macros = macro; } /***** Register all the pre-defined macros in the parser *****/ void menu_parser_register_preset_macros(WMenuParser parser) { /* Defined by CPP: common predefined macros (GNU C extension) */ w_create_macro(parser, "__BASE_FILE__", mpm_base_file); w_create_macro(parser, "__INCLUDE_LEVEL__", mpm_include_level); /* Defined by CPP: standard predefined macros */ w_create_macro(parser, "__FILE__", mpm_current_file); w_create_macro(parser, "__LINE__", mpm_current_line); // w_create_macro(parser, "__DATE__", NULL); [will be implemented only per user request] // w_create_macro(parser, "__TIME__", NULL); [will be implemented only per user request] /* Historically defined by WindowMaker */ w_create_macro(parser, "HOST", mpm_get_hostname); w_create_macro(parser, "UID", mpm_get_user_id); w_create_macro(parser, "USER", mpm_get_user_name); } WindowMaker-0.95.5/WINGs/configuration.c0000644000175000017500000000625212214432632014730 00000000000000 #include "WINGsP.h" #include "wconfig.h" #include _WINGsConfiguration WINGsConfiguration; #define SYSTEM_FONT "Trebuchet MS,sans serif" #define BOLD_SYSTEM_FONT "Trebuchet MS,sans serif:bold" #define DEFAULT_FONT_SIZE 12 #define FLOPPY_PATH "/floppy" static unsigned getButtonWithName(const char *name, unsigned defaultButton) { if (strncmp(name, "Button", 6) == 0 && strlen(name) == 7) { switch (name[6]) { case '1': return Button1; case '2': return Button2; case '3': return Button3; case '4': return Button4; case '5': return Button5; default: break; } } return defaultButton; } void W_ReadConfigurations(void) { WMUserDefaults *defaults; Bool aaIsSet = False; memset(&WINGsConfiguration, 0, sizeof(_WINGsConfiguration)); defaults = WMGetStandardUserDefaults(); if (defaults) { char *buttonName; WMPropList *val; unsigned button; WINGsConfiguration.systemFont = WMGetUDStringForKey(defaults, "SystemFont"); WINGsConfiguration.boldSystemFont = WMGetUDStringForKey(defaults, "BoldSystemFont"); val = WMGetUDObjectForKey(defaults, "AntialiasedText"); if (val && WMIsPLString(val) && WMGetFromPLString(val)) { aaIsSet = True; WINGsConfiguration.antialiasedText = WMGetUDBoolForKey(defaults, "AntialiasedText"); } WINGsConfiguration.doubleClickDelay = WMGetUDIntegerForKey(defaults, "DoubleClickTime"); WINGsConfiguration.floppyPath = WMGetUDStringForKey(defaults, "FloppyPath"); buttonName = WMGetUDStringForKey(defaults, "MouseWheelUp"); if (buttonName) { button = getButtonWithName(buttonName, Button4); wfree(buttonName); } else { button = Button4; } WINGsConfiguration.mouseWheelUp = button; buttonName = WMGetUDStringForKey(defaults, "MouseWheelDown"); if (buttonName) { button = getButtonWithName(buttonName, Button5); wfree(buttonName); } else { button = Button5; } WINGsConfiguration.mouseWheelDown = button; if (WINGsConfiguration.mouseWheelDown == WINGsConfiguration.mouseWheelUp) { WINGsConfiguration.mouseWheelUp = Button4; WINGsConfiguration.mouseWheelDown = Button5; } WINGsConfiguration.defaultFontSize = WMGetUDIntegerForKey(defaults, "DefaultFontSize"); } if (!WINGsConfiguration.systemFont) { WINGsConfiguration.systemFont = SYSTEM_FONT; } if (!WINGsConfiguration.boldSystemFont) { WINGsConfiguration.boldSystemFont = BOLD_SYSTEM_FONT; } if (WINGsConfiguration.defaultFontSize == 0) { WINGsConfiguration.defaultFontSize = DEFAULT_FONT_SIZE; } if (!aaIsSet) { WINGsConfiguration.antialiasedText = True; } if (!WINGsConfiguration.floppyPath) { WINGsConfiguration.floppyPath = FLOPPY_PATH; } if (WINGsConfiguration.doubleClickDelay == 0) { WINGsConfiguration.doubleClickDelay = 250; } if (WINGsConfiguration.mouseWheelUp == 0) { WINGsConfiguration.mouseWheelUp = Button4; } if (WINGsConfiguration.mouseWheelDown == 0) { WINGsConfiguration.mouseWheelDown = Button5; } } unsigned W_getconf_mouseWheelUp(void) { return WINGsConfiguration.mouseWheelUp; } unsigned W_getconf_mouseWheelDown(void) { return WINGsConfiguration.mouseWheelDown; } void W_setconf_doubleClickDelay(int value) { WINGsConfiguration.doubleClickDelay = value; } WindowMaker-0.95.5/WINGs/data.c0000644000175000017500000001535712214432632013000 00000000000000/* * WINGs WMData function library * * Copyright (c) 1999-2003 Dan Pascu * * 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., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include "WUtil.h" typedef struct W_Data { unsigned length; /* How many bytes we have */ unsigned capacity; /* How many bytes it can hold */ unsigned growth; /* How much to grow */ void *bytes; /* Actual data */ unsigned retainCount; WMFreeDataProc *destructor; int format; /* 0, 8, 16 or 32 */ } W_Data; /* Creating and destroying data objects */ WMData *WMCreateDataWithCapacity(unsigned capacity) { WMData *aData; aData = (WMData *) wmalloc(sizeof(WMData)); if (capacity > 0) aData->bytes = wmalloc(capacity); else aData->bytes = NULL; aData->capacity = capacity; aData->growth = capacity / 2 > 0 ? capacity / 2 : 1; aData->length = 0; aData->retainCount = 1; aData->format = 0; aData->destructor = wfree; return aData; } WMData *WMCreateDataWithLength(unsigned length) { WMData *aData; aData = WMCreateDataWithCapacity(length); if (length > 0) { aData->length = length; } return aData; } WMData *WMCreateDataWithBytes(const void *bytes, unsigned length) { WMData *aData; aData = WMCreateDataWithCapacity(length); aData->length = length; memcpy(aData->bytes, bytes, length); return aData; } WMData *WMCreateDataWithBytesNoCopy(void *bytes, unsigned length, WMFreeDataProc * destructor) { WMData *aData; aData = (WMData *) wmalloc(sizeof(WMData)); aData->length = length; aData->capacity = length; aData->growth = length / 2 > 0 ? length / 2 : 1; aData->bytes = bytes; aData->retainCount = 1; aData->format = 0; aData->destructor = destructor; return aData; } WMData *WMCreateDataWithData(WMData * aData) { WMData *newData; if (aData->length > 0) { newData = WMCreateDataWithBytes(aData->bytes, aData->length); } else { newData = WMCreateDataWithCapacity(0); } newData->format = aData->format; return newData; } WMData *WMRetainData(WMData * aData) { aData->retainCount++; return aData; } void WMReleaseData(WMData * aData) { aData->retainCount--; if (aData->retainCount > 0) return; if (aData->bytes != NULL && aData->destructor != NULL) { aData->destructor(aData->bytes); } wfree(aData); } /* Adjusting capacity */ void WMSetDataCapacity(WMData * aData, unsigned capacity) { if (aData->capacity != capacity) { aData->bytes = wrealloc(aData->bytes, capacity); aData->capacity = capacity; aData->growth = capacity / 2 > 0 ? capacity / 2 : 1; } if (aData->length > capacity) { aData->length = capacity; } } void WMSetDataLength(WMData * aData, unsigned length) { if (length > aData->capacity) { WMSetDataCapacity(aData, length); } if (length > aData->length) { memset((unsigned char *)aData->bytes + aData->length, 0, length - aData->length); } aData->length = length; } void WMSetDataFormat(WMData * aData, unsigned format) { aData->format = format; } void WMIncreaseDataLengthBy(WMData * aData, unsigned extraLength) { WMSetDataLength(aData, aData->length + extraLength); } /* Accessing data */ const void *WMDataBytes(WMData * aData) { return aData->bytes; } void WMGetDataBytes(WMData * aData, void *buffer) { wassertr(aData->length > 0); memcpy(buffer, aData->bytes, aData->length); } unsigned WMGetDataFormat(WMData * aData) { return aData->format; } void WMGetDataBytesWithLength(WMData * aData, void *buffer, unsigned length) { wassertr(aData->length > 0); wassertr(length <= aData->length); memcpy(buffer, aData->bytes, length); } void WMGetDataBytesWithRange(WMData * aData, void *buffer, WMRange aRange) { wassertr(aRange.position < aData->length); wassertr(aRange.count <= aData->length - aRange.position); memcpy(buffer, (unsigned char *)aData->bytes + aRange.position, aRange.count); } WMData *WMGetSubdataWithRange(WMData * aData, WMRange aRange) { void *buffer; WMData *newData; if (aRange.count <= 0) return WMCreateDataWithCapacity(0); buffer = wmalloc(aRange.count); WMGetDataBytesWithRange(aData, buffer, aRange); newData = WMCreateDataWithBytesNoCopy(buffer, aRange.count, wfree); newData->format = aData->format; return newData; } /* Testing data */ Bool WMIsDataEqualToData(WMData * aData, WMData * anotherData) { if (aData->length != anotherData->length) return False; else if (!aData->bytes && !anotherData->bytes) /* both are empty */ return True; else if (!aData->bytes || !anotherData->bytes) /* one of them is empty */ return False; return (memcmp(aData->bytes, anotherData->bytes, aData->length) == 0); } unsigned WMGetDataLength(WMData * aData) { return aData->length; } /* Adding data */ void WMAppendDataBytes(WMData * aData, const void *bytes, unsigned length) { unsigned oldLength = aData->length; unsigned newLength = oldLength + length; if (newLength > aData->capacity) { unsigned nextCapacity = aData->capacity + aData->growth; unsigned nextGrowth = aData->capacity ? aData->capacity : 1; while (nextCapacity < newLength) { unsigned tmp = nextCapacity + nextGrowth; nextGrowth = nextCapacity; nextCapacity = tmp; } WMSetDataCapacity(aData, nextCapacity); aData->growth = nextGrowth; } memcpy((unsigned char *)aData->bytes + oldLength, bytes, length); aData->length = newLength; } void WMAppendData(WMData * aData, WMData * anotherData) { if (anotherData->length > 0) WMAppendDataBytes(aData, anotherData->bytes, anotherData->length); } /* Modifying data */ void WMReplaceDataBytesInRange(WMData * aData, WMRange aRange, const void *bytes) { wassertr(aRange.position < aData->length); wassertr(aRange.count <= aData->length - aRange.position); memcpy((unsigned char *)aData->bytes + aRange.position, bytes, aRange.count); } void WMResetDataBytesInRange(WMData * aData, WMRange aRange) { wassertr(aRange.position < aData->length); wassertr(aRange.count <= aData->length - aRange.position); memset((unsigned char *)aData->bytes + aRange.position, 0, aRange.count); } void WMSetData(WMData * aData, WMData * anotherData) { unsigned length = anotherData->length; WMSetDataCapacity(aData, length); if (length > 0) memcpy(aData->bytes, anotherData->bytes, length); aData->length = length; } /* Storing data */ WindowMaker-0.95.5/WINGs/wwindow.c0000644000175000017500000004276712214432632013572 00000000000000 #include #include "WINGsP.h" #include typedef struct W_Window { W_Class widgetClass; W_View *view; struct W_Window *nextPtr; /* next in the window list */ struct W_Window *owner; char *title; WMPixmap *miniImage; /* miniwindow */ char *miniTitle; char *wname; WMSize resizeIncrement; WMSize baseSize; WMSize minSize; WMSize maxSize; WMPoint minAspect; WMPoint maxAspect; WMPoint upos; WMPoint ppos; WMAction *closeAction; void *closeData; int level; struct { unsigned style:4; unsigned configured:1; unsigned documentEdited:1; unsigned setUPos:1; unsigned setPPos:1; unsigned setAspect:1; } flags; } _Window; typedef struct { CARD32 flags; CARD32 window_style; CARD32 window_level; CARD32 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 */ CARD32 extra_flags; } GNUstepWMAttributes; #define GSWindowStyleAttr (1<<0) #define GSWindowLevelAttr (1<<1) #define GSMiniaturizePixmapAttr (1<<3) #define GSClosePixmapAttr (1<<4) #define GSMiniaturizeMaskAttr (1<<5) #define GSCloseMaskAttr (1<<6) #define GSExtraFlagsAttr (1<<7) /* extra flags */ #define GSDocumentEditedFlag (1<<0) #define GSNoApplicationIconFlag (1<<5) #define WMFHideOtherApplications 10 #define WMFHideApplication 12 static void willResizeWindow(W_ViewDelegate *, WMView *, unsigned *, unsigned *); struct W_ViewDelegate _WindowViewDelegate = { NULL, NULL, NULL, NULL, willResizeWindow }; #define DEFAULT_WIDTH 400 #define DEFAULT_HEIGHT 180 #define DEFAULT_TITLE "" static void destroyWindow(_Window * win); static void handleEvents(XEvent * event, void *clientData); static void realizeWindow(WMWindow * win); static void realizeObserver(void *self, WMNotification * not) { realizeWindow(self); } WMWindow *WMCreatePanelWithStyleForWindow(WMWindow * owner, const char *name, int style) { WMWindow *win; win = WMCreateWindowWithStyle(owner->view->screen, name, style); win->owner = owner; return win; } WMWindow *WMCreatePanelForWindow(WMWindow * owner, const char *name) { return WMCreatePanelWithStyleForWindow(owner, name, WMTitledWindowMask | WMClosableWindowMask | WMResizableWindowMask); } void WMChangePanelOwner(WMWindow * win, WMWindow * newOwner) { win->owner = newOwner; if (win->view->flags.realized && newOwner) { XSetTransientForHint(win->view->screen->display, win->view->window, newOwner->view->window); } } WMWindow *WMCreateWindow(WMScreen * screen, const char *name) { return WMCreateWindowWithStyle(screen, name, WMTitledWindowMask | WMClosableWindowMask | WMMiniaturizableWindowMask | WMResizableWindowMask); } WMWindow *WMCreateWindowWithStyle(WMScreen * screen, const char *name, int style) { _Window *win; win = wmalloc(sizeof(_Window)); win->widgetClass = WC_Window; win->view = W_CreateTopView(screen); if (!win->view) { wfree(win); return NULL; } win->view->self = win; win->view->delegate = &_WindowViewDelegate; win->wname = wstrdup(name); /* add to the window list of the screen (application) */ win->nextPtr = screen->windowList; screen->windowList = win; WMCreateEventHandler(win->view, ExposureMask | StructureNotifyMask | ClientMessageMask | FocusChangeMask, handleEvents, win); W_ResizeView(win->view, DEFAULT_WIDTH, DEFAULT_HEIGHT); WMAddNotificationObserver(realizeObserver, win, WMViewRealizedNotification, win->view); win->flags.style = style; win->level = WMNormalWindowLevel; /* kluge. Find a better solution */ W_SetFocusOfTopLevel(win->view, win->view); return win; } static void setWindowTitle(WMWindow * win, const char *title) { WMScreen *scr = win->view->screen; XTextProperty property; int result; result = XmbTextListToTextProperty(scr->display, (char **)&title, 1, XStdICCTextStyle, &property); if (result == XNoMemory || result == XLocaleNotSupported) { wwarning("window title conversion error... using STRING encoding"); XStoreName(scr->display, win->view->window, title); } else { XSetWMName(scr->display, win->view->window, &property); if (property.value) XFree(property.value); } XChangeProperty(scr->display, win->view->window, scr->netwmName, scr->utf8String, 8, PropModeReplace, (unsigned char *)title, strlen(title)); } static void setMiniwindowTitle(WMWindow * win, const char *title) { WMScreen *scr = win->view->screen; XTextProperty property; int result; result = XmbTextListToTextProperty(scr->display, (char **)&title, 1, XStdICCTextStyle, &property); if (result == XNoMemory || result == XLocaleNotSupported) { wwarning("icon title conversion error..using STRING encoding"); XSetIconName(scr->display, win->view->window, title); } else { XSetWMIconName(scr->display, win->view->window, &property); if (property.value) XFree(property.value); } XChangeProperty(scr->display, win->view->window, scr->netwmIconName, scr->utf8String, 8, PropModeReplace, (unsigned char *)title, strlen(title)); } static void setMiniwindow(WMWindow *win, RImage *image) { WMScreen *scr = win->view->screen; long *data; int x, y; int o; if (!image) return; data = wmalloc((image->width * image->height + 2) * sizeof(long)); o = 0; data[o++] = image->width; data[o++] = image->height; for (y = 0; y < image->height; y++) { for (x = 0; x < image->width; x++) { long pixel; int offs = (x + y * image->width); if (image->format == RRGBFormat) pixel = image->data[offs * 3] << 16 | image->data[offs * 3 + 1] << 8 | image->data[offs * 3 + 2]; else pixel = image->data[offs * 4] << 16 | image->data[offs * 4 + 1] << 8 | image->data[offs * 4 + 2] | image->data[offs * 4 + 3] << 24; data[o++] = pixel; } } XChangeProperty(scr->display, win->view->window, scr->netwmIcon, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)data, (image->width * image->height + 2)); wfree(data); } void WMSetWindowTitle(WMWindow * win, const char *title) { if (win->title != NULL) wfree(win->title); if (title != NULL) win->title = wstrdup(title); else win->title = NULL; if (win->view->flags.realized) { setWindowTitle(win, title); } } void WMSetWindowCloseAction(WMWindow * win, WMAction * action, void *clientData) { Atom *atoms = NULL; Atom *newAtoms; int count; WMScreen *scr = win->view->screen; if (win->view->flags.realized) { if (action && !win->closeAction) { if (!XGetWMProtocols(scr->display, win->view->window, &atoms, &count)) { count = 0; } newAtoms = wmalloc((count + 1) * sizeof(Atom)); if (count > 0) memcpy(newAtoms, atoms, count * sizeof(Atom)); newAtoms[count++] = scr->deleteWindowAtom; XSetWMProtocols(scr->display, win->view->window, newAtoms, count); if (atoms) XFree(atoms); wfree(newAtoms); } else if (!action && win->closeAction) { int i, ncount; if (XGetWMProtocols(scr->display, win->view->window, &atoms, &count) && count > 0) { newAtoms = wmalloc((count - 1) * sizeof(Atom)); ncount = 0; for (i = 0; i < count; i++) { if (atoms[i] != scr->deleteWindowAtom) { newAtoms[i] = atoms[i]; ncount++; } } XSetWMProtocols(scr->display, win->view->window, newAtoms, ncount); if (atoms) XFree(atoms); wfree(newAtoms); } } } win->closeAction = action; win->closeData = clientData; } static void willResizeWindow(W_ViewDelegate * self, WMView * view, unsigned *width, unsigned *height) { WMWindow *win = (WMWindow *) view->self; if (win->minSize.width > 0 && win->minSize.height > 0) { if (*width < win->minSize.width) *width = win->minSize.width; if (*height < win->minSize.height) *height = win->minSize.height; } if (win->maxSize.width > 0 && win->maxSize.height > 0) { if (*width > win->maxSize.width) *width = win->maxSize.width; if (*height > win->maxSize.height) *height = win->maxSize.height; } } static void setSizeHints(WMWindow * win) { XSizeHints *hints; hints = XAllocSizeHints(); if (!hints) { wwarning("could not allocate memory for window size hints"); return; } hints->flags = 0; if (win->flags.setPPos) { hints->flags |= PPosition; hints->x = win->ppos.x; hints->y = win->ppos.y; } if (win->flags.setUPos) { hints->flags |= USPosition; hints->x = win->upos.x; hints->y = win->upos.y; } if (win->minSize.width > 0 && win->minSize.height > 0) { hints->flags |= PMinSize; hints->min_width = win->minSize.width; hints->min_height = win->minSize.height; } if (win->maxSize.width > 0 && win->maxSize.height > 0) { hints->flags |= PMaxSize; hints->max_width = win->maxSize.width; hints->max_height = win->maxSize.height; } if (win->baseSize.width > 0 && win->baseSize.height > 0) { hints->flags |= PBaseSize; hints->base_width = win->baseSize.width; hints->base_height = win->baseSize.height; } if (win->resizeIncrement.width > 0 && win->resizeIncrement.height > 0) { hints->flags |= PResizeInc; hints->width_inc = win->resizeIncrement.width; hints->height_inc = win->resizeIncrement.height; } if (win->flags.setAspect) { hints->flags |= PAspect; hints->min_aspect.x = win->minAspect.x; hints->min_aspect.y = win->minAspect.y; hints->max_aspect.x = win->maxAspect.x; hints->max_aspect.y = win->maxAspect.y; } if (hints->flags) { XSetWMNormalHints(win->view->screen->display, win->view->window, hints); } XFree(hints); } 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 setWindowMakerHints(WMWindow * win) { GNUstepWMAttributes attribs; WMScreen *scr = WMWidgetScreen(win); memset(&attribs, 0, sizeof(GNUstepWMAttributes)); attribs.flags = GSWindowStyleAttr | GSWindowLevelAttr | GSExtraFlagsAttr; attribs.window_style = win->flags.style; attribs.window_level = win->level; if (win->flags.documentEdited) attribs.extra_flags = GSDocumentEditedFlag; else attribs.extra_flags = 0; writeGNUstepWMAttr(scr, win->view->window, &attribs); } static void realizeWindow(WMWindow * win) { XWMHints *hints; XClassHint *classHint; WMScreen *scr = win->view->screen; Atom atoms[4]; int count; classHint = XAllocClassHint(); classHint->res_name = win->wname; classHint->res_class = WMGetApplicationName(); XSetClassHint(scr->display, win->view->window, classHint); XFree(classHint); hints = XAllocWMHints(); hints->flags = 0; if (!scr->aflags.simpleApplication) { hints->flags |= WindowGroupHint; hints->window_group = scr->groupLeader; } if (win->miniImage) { hints->flags |= IconPixmapHint; hints->icon_pixmap = WMGetPixmapXID(win->miniImage); hints->icon_mask = WMGetPixmapMaskXID(win->miniImage); if (hints->icon_mask != None) { hints->flags |= IconMaskHint; } } if (hints->flags != 0) XSetWMHints(scr->display, win->view->window, hints); XFree(hints); count = 0; if (win->closeAction) { atoms[count++] = scr->deleteWindowAtom; } if (count > 0) XSetWMProtocols(scr->display, win->view->window, atoms, count); if (win->title || win->miniTitle) XmbSetWMProperties(scr->display, win->view->window, win->title, win->miniTitle, NULL, 0, NULL, NULL, NULL); setWindowMakerHints(win); setSizeHints(win); if (win->owner) { XSetTransientForHint(scr->display, win->view->window, win->owner->view->window); } if (win->title) setWindowTitle(win, win->title); } void WMSetWindowAspectRatio(WMWindow * win, int minX, int minY, int maxX, int maxY) { win->flags.setAspect = 1; win->minAspect.x = minX; win->minAspect.y = minY; win->maxAspect.x = maxX; win->maxAspect.y = maxY; if (win->view->flags.realized) setSizeHints(win); } void WMSetWindowInitialPosition(WMWindow * win, int x, int y) { win->flags.setPPos = 1; win->ppos.x = x; win->ppos.y = y; if (win->view->flags.realized) setSizeHints(win); WMMoveWidget(win, x, y); } void WMSetWindowUserPosition(WMWindow * win, int x, int y) { win->flags.setUPos = 1; win->upos.x = x; win->upos.y = y; if (win->view->flags.realized) setSizeHints(win); WMMoveWidget(win, x, y); } void WMSetWindowMinSize(WMWindow * win, unsigned width, unsigned height) { win->minSize.width = width; win->minSize.height = height; if (win->view->flags.realized) setSizeHints(win); } void WMSetWindowMaxSize(WMWindow * win, unsigned width, unsigned height) { win->maxSize.width = width; win->maxSize.height = height; if (win->view->flags.realized) setSizeHints(win); } void WMSetWindowBaseSize(WMWindow * win, unsigned width, unsigned height) { /* TODO: validate sizes */ win->baseSize.width = width; win->baseSize.height = height; if (win->view->flags.realized) setSizeHints(win); } void WMSetWindowResizeIncrements(WMWindow * win, unsigned wIncr, unsigned hIncr) { win->resizeIncrement.width = wIncr; win->resizeIncrement.height = hIncr; if (win->view->flags.realized) setSizeHints(win); } void WMSetWindowLevel(WMWindow * win, int level) { win->level = level; if (win->view->flags.realized) setWindowMakerHints(win); } void WMSetWindowDocumentEdited(WMWindow * win, Bool flag) { flag = ((flag == 0) ? 0 : 1); if (win->flags.documentEdited != flag) { win->flags.documentEdited = flag; if (win->view->flags.realized) setWindowMakerHints(win); } } void WMSetWindowMiniwindowImage(WMWindow * win, RImage * image) { if (win->view->flags.realized) setMiniwindow(win, image); } void WMSetWindowMiniwindowPixmap(WMWindow * win, WMPixmap * pixmap) { if ((win->miniImage && !pixmap) || (!win->miniImage && pixmap)) { if (win->miniImage) WMReleasePixmap(win->miniImage); if (pixmap) win->miniImage = WMRetainPixmap(pixmap); else win->miniImage = NULL; if (win->view->flags.realized) { XWMHints *hints; hints = XGetWMHints(win->view->screen->display, win->view->window); if (!hints) { hints = XAllocWMHints(); if (!hints) { wwarning("could not allocate memory for WM hints"); return; } hints->flags = 0; } if (pixmap) { hints->flags |= IconPixmapHint; hints->icon_pixmap = WMGetPixmapXID(pixmap); hints->icon_mask = WMGetPixmapMaskXID(pixmap); if (hints->icon_mask != None) { hints->flags |= IconMaskHint; } } XSetWMHints(win->view->screen->display, win->view->window, hints); XFree(hints); } } } void WMSetWindowMiniwindowTitle(WMWindow * win, const char *title) { if ((win->miniTitle && !title) || (!win->miniTitle && title) || (title && win->miniTitle && strcoll(title, win->miniTitle) != 0)) { if (win->miniTitle) wfree(win->miniTitle); if (title) win->miniTitle = wstrdup(title); else win->miniTitle = NULL; if (win->view->flags.realized) { setMiniwindowTitle(win, title); } } } void WMCloseWindow(WMWindow * win) { WMUnmapWidget(win); /* withdraw the window */ if (win->view->flags.realized) XWithdrawWindow(win->view->screen->display, win->view->window, win->view->screen->screen); } static void handleEvents(XEvent * event, void *clientData) { _Window *win = (_Window *) clientData; W_View *view = win->view; switch (event->type) { case ClientMessage: if (event->xclient.message_type == win->view->screen->protocolsAtom && event->xclient.format == 32 && event->xclient.data.l[0] == win->view->screen->deleteWindowAtom) { if (win->closeAction) { (*win->closeAction) (win, win->closeData); } } break; /* * was causing windows to ignore commands like closeWindow * after the windows is iconized/restored or a workspace change * if this is really needed, put the MapNotify portion too and * fix the restack bug in wmaker case UnmapNotify: WMUnmapWidget(win); break; * case MapNotify: WMMapWidget(win); break; */ case DestroyNotify: destroyWindow(win); break; case 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) { 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 { Window foo; XTranslateCoordinates(view->screen->display, view->window, view->screen->rootWin, event->xconfigure.x, event->xconfigure.y, &view->pos.x, &view->pos.y, &foo); } } break; } } static void destroyWindow(_Window * win) { WMScreen *scr = win->view->screen; WMRemoveNotificationObserver(win); if (scr->windowList == win) { scr->windowList = scr->windowList->nextPtr; } else { WMWindow *ptr; ptr = scr->windowList; if (ptr) { while (ptr->nextPtr) { if (ptr->nextPtr == win) { ptr->nextPtr = ptr->nextPtr->nextPtr; break; } ptr = ptr->nextPtr; } } } if (win->title) { wfree(win->title); } if (win->miniTitle) { wfree(win->miniTitle); } if (win->miniImage) { WMReleasePixmap(win->miniImage); } if (win->wname) wfree(win->wname); wfree(win); } WindowMaker-0.95.5/WINGs/WINGs/0000755000175000017500000000000012214434642012722 500000000000000WindowMaker-0.95.5/WINGs/WINGs/Makefile.in0000644000175000017500000003511512214434561014714 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WINGs/WINGs DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(include_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ # is this a kluge? if so, how should i do it? includedir = @includedir@/WINGs infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ AUTOMAKE_OPTIONS = include_HEADERS = WINGs.h WUtil.h WINGsP.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/WINGs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WINGs/WINGs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(includedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-includeHEADERS # 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. .NOEXPORT: WindowMaker-0.95.5/WINGs/WINGs/WINGs.h0000644000175000017500000015026312214432632013746 00000000000000/* WINGs.h * * Copyright (c) 1998 scottc * Copyright (c) 1999-2004 Dan Pascu * Copyright (c) 1999-2001 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _WINGS_H_ #define _WINGS_H_ #include #include #include #define WINGS_H_VERSION 20041030 #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #if 0 } #endif typedef unsigned long WMPixel; typedef struct { unsigned int width; unsigned int height; } WMSize; typedef struct { int x; int y; } WMPoint; typedef struct { WMPoint pos; WMSize size; } WMRect; #define ClientMessageMask (1L<<30) #ifndef _DEFINED_GNUSTEP_WINDOW_INFO #define _DEFINED_GNUSTEP_WINDOW_INFO /* * Window levels are taken from GNUstep (gui/AppKit/NSWindow.h) * NSDesktopWindowLevel intended to be the level at which things * on the desktop sit ... so you should be able * to put a desktop background just below it. * * Applications are actually permitted to use any value in the * range INT_MIN+1 to INT_MAX */ enum { WMDesktopWindowLevel = -1000, /* GNUstep addition */ WMNormalWindowLevel = 0, WMFloatingWindowLevel = 3, WMSubmenuWindowLevel = 3, WMTornOffMenuWindowLevel = 3, WMMainMenuWindowLevel = 20, WMDockWindowLevel = 21, /* Deprecated - use NSStatusWindowLevel */ WMStatusWindowLevel = 21, WMModalPanelWindowLevel = 100, WMPopUpMenuWindowLevel = 101, WMScreenSaverWindowLevel = 1000 }; /* window attributes */ enum { WMBorderlessWindowMask = 0, WMTitledWindowMask = 1, WMClosableWindowMask = 2, WMMiniaturizableWindowMask = 4, WMResizableWindowMask = 8, WMIconWindowMask = 64, WMMiniWindowMask = 128 }; #endif /* button types */ typedef enum { /* 0 is reserved for internal use */ WBTMomentaryPush = 1, WBTPushOnPushOff = 2, WBTToggle = 3, WBTSwitch = 4, WBTRadio = 5, WBTMomentaryChange = 6, WBTOnOff = 7, WBTMomentaryLight = 8 } WMButtonType; /* button behaviour masks */ enum { WBBSpringLoadedMask = (1 << 0), WBBPushInMask = (1 << 1), WBBPushChangeMask = (1 << 2), WBBPushLightMask = (1 << 3), WBBStateLightMask = (1 << 5), WBBStateChangeMask = (1 << 6), WBBStatePushMask = (1 << 7) }; /* frame title positions */ typedef enum { WTPNoTitle, WTPAboveTop, WTPAtTop, WTPBelowTop, WTPAboveBottom, WTPAtBottom, WTPBelowBottom } WMTitlePosition; /* relief types */ typedef enum { WRFlat, WRSimple, WRRaised, WRSunken, WRGroove, WRRidge, WRPushed } WMReliefType; /* alignment types */ typedef enum { WALeft, WACenter, WARight, WAJustified /* not valid for textfields */ } WMAlignment; /* image position */ typedef enum { WIPNoImage, WIPImageOnly, WIPLeft, WIPRight, WIPBelow, WIPAbove, WIPOverlaps } WMImagePosition; /* scroller arrow position */ typedef enum { WSAMaxEnd, WSAMinEnd, WSANone } WMScrollArrowPosition; /* scroller parts */ typedef enum { WSNoPart, WSDecrementPage, WSIncrementPage, WSDecrementLine, WSIncrementLine, WSDecrementWheel, WSIncrementWheel, WSKnob, WSKnobSlot } WMScrollerPart; /* usable scroller parts */ typedef enum { WSUNoParts, WSUOnlyArrows, WSUAllParts } WMUsableScrollerParts; /* matrix types */ typedef enum { WMRadioMode, WMHighlightMode, WMListMode, WMTrackMode } WMMatrixTypes; typedef enum { WTTopTabsBevelBorder, WTNoTabsBevelBorder, WTNoTabsLineBorder, WTNoTabsNoBorder } WMTabViewType; /* text movement types */ enum { WMIllegalTextMovement, WMReturnTextMovement, WMEscapeTextMovement, WMTabTextMovement, WMBacktabTextMovement, WMLeftTextMovement, WMRightTextMovement, WMUpTextMovement, WMDownTextMovement }; /* text field special events */ enum { WMInsertTextEvent, WMDeleteTextEvent }; enum { WLNotFound = -1 /* element was not found in WMList */ }; /* drag operations */ typedef enum { WDOperationNone = 0, WDOperationCopy, WDOperationMove, WDOperationLink, WDOperationAsk, WDOperationPrivate } WMDragOperationType; typedef enum { WMGrayModeColorPanel = 1, WMRGBModeColorPanel = 2, WMCMYKModeColorPanel = 3, WMHSBModeColorPanel = 4, WMCustomPaletteModeColorPanel = 5, WMColorListModeColorPanel = 6, WMWheelModeColorPanel = 7 } WMColorPanelMode; /* system images */ #define WSIReturnArrow 1 #define WSIHighlightedReturnArrow 2 #define WSIScrollerDimple 3 #define WSIArrowLeft 4 #define WSIHighlightedArrowLeft 5 #define WSIArrowRight 6 #define WSIHighlightedArrowRight 7 #define WSIArrowUp 8 #define WSIHighlightedArrowUp 9 #define WSIArrowDown 10 #define WSIHighlightedArrowDown 11 #define WSICheckMark 12 enum { WLDSSelected = (1 << 16), WLDSDisabled = (1 << 17), WLDSFocused = (1 << 18), WLDSIsBranch = (1 << 19) }; /* alert panel return values */ enum { WAPRDefault = 0, WAPRAlternate = 1, WAPROther = -1, WAPRError = -2 }; /* types of input observers */ enum { WIReadMask = (1 << 0), WIWriteMask = (1 << 1), WIExceptMask = (1 << 2) }; typedef int W_Class; enum { WC_Window = 0, WC_Frame = 1, WC_Label = 2, WC_Button = 3, WC_TextField = 4, WC_Scroller = 5, WC_ScrollView = 6, WC_List = 7, WC_Browser = 8, WC_PopUpButton = 9, WC_ColorWell = 10, WC_Slider = 11, WC_Matrix = 12, /* not ready */ WC_SplitView = 13, WC_TabView = 14, WC_ProgressIndicator = 15, WC_MenuView = 16, WC_Ruler = 17, WC_Text = 18, WC_Box = 19 }; /* All widgets must start with the following structure * in that order. Used for typecasting to get some generic data */ typedef struct W_WidgetType { W_Class widgetClass; struct W_View *view; } W_WidgetType; #define WMWidgetClass(widget) (((W_WidgetType*)(widget))->widgetClass) #define WMWidgetView(widget) (((W_WidgetType*)(widget))->view) /* widgets */ typedef void WMWidget; typedef struct W_Pixmap WMPixmap; typedef struct W_Font WMFont; typedef struct W_Color WMColor; typedef struct W_Screen WMScreen; typedef struct W_View WMView; typedef struct W_Window WMWindow; typedef struct W_Frame WMFrame; typedef struct W_Button WMButton; typedef struct W_Label WMLabel; typedef struct W_TextField WMTextField; typedef struct W_Scroller WMScroller; typedef struct W_ScrollView WMScrollView; typedef struct W_List WMList; typedef struct W_Browser WMBrowser; typedef struct W_PopUpButton WMPopUpButton; typedef struct W_ProgressIndicator WMProgressIndicator; typedef struct W_ColorWell WMColorWell; typedef struct W_Slider WMSlider; typedef struct W_Matrix WMMatrix; /* not ready */ typedef struct W_SplitView WMSplitView; typedef struct W_TabView WMTabView; typedef struct W_Ruler WMRuler; typedef struct W_Text WMText; typedef struct W_Box WMBox; /* not widgets */ typedef struct W_TabViewItem WMTabViewItem; typedef struct W_MenuItem WMMenuItem; typedef struct W_FilePanel WMFilePanel; typedef WMFilePanel WMOpenPanel; typedef WMFilePanel WMSavePanel; typedef struct W_FontPanel WMFontPanel; typedef struct W_ColorPanel WMColorPanel; /* item for WMList */ typedef struct WMListItem { char *text; void *clientData; /* ptr for user clientdata. */ unsigned int uflags:16; /* flags for the user */ unsigned int selected:1; unsigned int disabled:1; unsigned int isBranch:1; unsigned int loaded:1; } WMListItem; /* struct for message panel */ typedef struct WMAlertPanel { WMWindow *win; /* window */ WMBox *vbox; WMBox *hbox; WMButton *defBtn; /* default button */ WMButton *altBtn; /* alternative button */ WMButton *othBtn; /* other button */ WMLabel *iLbl; /* icon label */ WMLabel *tLbl; /* title label */ WMLabel *mLbl; /* message label */ WMFrame *line; /* separator */ short result; /* button that was pushed */ } WMAlertPanel; typedef struct WMGenericPanel { WMWindow *win; WMBox *vbox; WMLabel *iLbl; WMLabel *tLbl; WMFrame *line; WMFrame *content; WMBox *buttonBox; WMButton *defBtn; WMButton *altBtn; short result; } WMGenericPanel; typedef struct WMInputPanel { WMWindow *win; /* window */ WMButton *defBtn; /* default button */ WMButton *altBtn; /* alternative button */ WMLabel *tLbl; /* title label */ WMLabel *mLbl; /* message label */ WMTextField *text; /* text field */ short result; /* button that was pushed */ } WMInputPanel; /* Basic font styles. Used to easily get one style from another */ typedef enum WMFontStyle { WFSNormal = 0, WFSBold = 1, WFSItalic = 2, WFSBoldItalic = 3 } WMFontStyle; /* WMRuler: */ typedef struct { WMArray *tabs; /* a growable array of tabstops */ unsigned short left; /* left margin marker */ unsigned short right; /* right margin marker */ unsigned short first; /* indentation marker for first line only */ unsigned short body; /* body indentation marker */ unsigned short retainCount; } WMRulerMargins; /* All indentation and tab markers are _relative_ to the left margin marker */ typedef void WMEventProc(XEvent *event, void *clientData); typedef void WMEventHook(XEvent *event); /* self is set to the widget from where the callback is being called and * clientData to the data set to with WMSetClientData() */ typedef void WMAction(WMWidget *self, void *clientData); /* same as WMAction, but for stuff that arent widgets */ typedef void WMAction2(void *self, void *clientData); /* delegate method like stuff */ typedef void WMListDrawProc(WMList *lPtr, int index, Drawable d, char *text, int state, WMRect *rect); /* typedef void WMSplitViewResizeSubviewsProc(WMSplitView *sPtr, unsigned int oldWidth, unsigned int oldHeight); */ typedef void WMSplitViewConstrainProc(WMSplitView *sPtr, int dividerIndex, int *minSize, int *maxSize); typedef WMWidget* WMMatrixCreateCellProc(WMMatrix *mPtr); typedef struct WMBrowserDelegate { void *data; void (*createRowsForColumn)(struct WMBrowserDelegate *self, WMBrowser *sender, int column, WMList *list); char* (*titleOfColumn)(struct WMBrowserDelegate *self, WMBrowser *sender, int column); void (*didScroll)(struct WMBrowserDelegate *self, WMBrowser *sender); void (*willScroll)(struct WMBrowserDelegate *self, WMBrowser *sender); } WMBrowserDelegate; typedef struct WMTextFieldDelegate { void *data; void (*didBeginEditing)(struct WMTextFieldDelegate *self, WMNotification *notif); void (*didChange)(struct WMTextFieldDelegate *self, WMNotification *notif); void (*didEndEditing)(struct WMTextFieldDelegate *self, WMNotification *notif); Bool (*shouldBeginEditing)(struct WMTextFieldDelegate *self, WMTextField *tPtr); Bool (*shouldEndEditing)(struct WMTextFieldDelegate *self, WMTextField *tPtr); } WMTextFieldDelegate; typedef struct WMTextDelegate { void *data; Bool (*didDoubleClickOnPicture)(struct WMTextDelegate *self, void *description); } WMTextDelegate; typedef struct WMTabViewDelegate { void *data; void (*didChangeNumberOfItems)(struct WMTabViewDelegate *self, WMTabView *tabView); void (*didSelectItem)(struct WMTabViewDelegate *self, WMTabView *tabView, WMTabViewItem *item); Bool (*shouldSelectItem)(struct WMTabViewDelegate *self, WMTabView *tabView, WMTabViewItem *item); void (*willSelectItem)(struct WMTabViewDelegate *self, WMTabView *tabView, WMTabViewItem *item); } WMTabViewDelegate; typedef void WMSelectionCallback(WMView *view, Atom selection, Atom target, Time timestamp, void *cdata, WMData *data); typedef struct WMSelectionProcs { WMData* (*convertSelection)(WMView *view, Atom selection, Atom target, void *cdata, Atom *type); void (*selectionLost)(WMView *view, Atom selection, void *cdata); void (*selectionDone)(WMView *view, Atom selection, Atom target, void *cdata); } WMSelectionProcs; typedef struct W_DraggingInfo WMDraggingInfo; /* links a label to a dnd operation. */ typedef struct W_DragOperationtItem WMDragOperationItem; typedef struct W_DragSourceProcs { WMArray* (*dropDataTypes)(WMView *self); WMDragOperationType (*wantedDropOperation)(WMView *self); WMArray* (*askedOperations)(WMView *self); Bool (*acceptDropOperation)(WMView *self, WMDragOperationType operation); void (*beganDrag)(WMView *self, WMPoint *point); void (*endedDrag)(WMView *self, WMPoint *point, Bool deposited); WMData* (*fetchDragData)(WMView *self, char *type); /*Bool (*ignoreModifierKeysWhileDragging)(WMView *view);*/ } WMDragSourceProcs; typedef struct W_DragDestinationProcs { void (*prepareForDragOperation)(WMView *self); WMArray* (*requiredDataTypes)(WMView *self, WMDragOperationType request, WMArray *sourceDataTypes); WMDragOperationType (*allowedOperation)(WMView *self, WMDragOperationType request, WMArray *sourceDataTypes); Bool (*inspectDropData)(WMView *self, WMArray *dropData); void (*performDragOperation)(WMView *self, WMArray *dropData, WMArray *operations, WMPoint *dropLocation); void (*concludeDragOperation)(WMView *self); } WMDragDestinationProcs; /* ---[ WINGs/wmisc.c ]--------------------------------------------------- */ WMPoint wmkpoint(int x, int y); WMSize wmksize(unsigned int width, unsigned int height); WMRect wmkrect(int x, int y, unsigned int width, unsigned int height); #ifdef ANSI_C_DOESNT_LIKE_IT_THIS_WAY #define wmksize(width, height) (WMSize){(width), (height)} #define wmkpoint(x, y) (WMPoint){(x), (y)} #endif /* ---[ WINGs/wapplication.c ]-------------------------------------------- */ void WMInitializeApplication(const char *applicationName, int *argc, char **argv); void WMSetResourcePath(const char *path); /* don't free the returned string */ char* WMGetApplicationName(void); /* Try to locate resource file. ext may be NULL */ char* WMPathForResourceOfType(const char *resource, const char *ext); /* ---[ WINGs/widgets.c ]------------------------------------------------- */ WMScreen* WMOpenScreen(const char *display); WMScreen* WMCreateScreenWithRContext(Display *display, int screen, RContext *context); WMScreen* WMCreateScreen(Display *display, int screen); WMScreen* WMCreateSimpleApplicationScreen(Display *display); void WMScreenMainLoop(WMScreen *scr); void WMBreakModalLoop(WMScreen *scr); void WMRunModalLoop(WMScreen *scr, WMView *view); RContext* WMScreenRContext(WMScreen *scr); Display* WMScreenDisplay(WMScreen *scr); int WMScreenDepth(WMScreen *scr); void WMSetFocusToWidget(WMWidget *widget); /* ---[ WINGs/wappresource.c ]-------------------------------------------- */ void WMSetApplicationIconImage(WMScreen *app, RImage *image); RImage* WMGetApplicationIconImage(WMScreen *app); void WMSetApplicationIconPixmap(WMScreen *app, WMPixmap *icon); WMPixmap* WMGetApplicationIconPixmap(WMScreen *app); /* If color==NULL it will use the default color for panels: ae/aa/ae */ WMPixmap* WMCreateApplicationIconBlendedPixmap(WMScreen *scr, const RColor *color); void WMSetApplicationIconWindow(WMScreen *scr, Window window); /* ---[ WINGs/wevent.c ]-------------------------------------------------- */ WMEventHook* WMHookEventHandler(WMEventHook *handler); int WMHandleEvent(XEvent *event); Bool WMScreenPending(WMScreen *scr); void WMCreateEventHandler(WMView *view, unsigned long mask, WMEventProc *eventProc, void *clientData); void WMDeleteEventHandler(WMView *view, unsigned long mask, WMEventProc *eventProc, void *clientData); int WMIsDoubleClick(XEvent *event); /*int WMIsTripleClick(XEvent *event);*/ void WMNextEvent(Display *dpy, XEvent *event); void WMMaskEvent(Display *dpy, long mask, XEvent *event); void WMSetViewNextResponder(WMView *view, WMView *responder); void WMRelayToNextResponder(WMView *view, XEvent *event); /* ---[ WINGs/selection.c ]----------------------------------------------- */ Bool WMCreateSelectionHandler(WMView *view, Atom selection, Time timestamp, WMSelectionProcs *procs, void *cdata); void WMDeleteSelectionHandler(WMView *view, Atom selection, Time timestamp); Bool WMRequestSelection(WMView *view, Atom selection, Atom target, Time timestamp, WMSelectionCallback *callback, void *cdata); extern char *WMSelectionOwnerDidChangeNotification; /* ---[ WINGs/dragcommon.c ]---------------------------------------------- */ WMArray* WMCreateDragOperationArray(int initialSize); WMDragOperationItem* WMCreateDragOperationItem(WMDragOperationType type, char* text); WMDragOperationType WMGetDragOperationItemType(WMDragOperationItem* item); char* WMGetDragOperationItemText(WMDragOperationItem* item); /* ---[ WINGs/dragsource.c ]---------------------------------------------- */ void WMSetViewDragImage(WMView* view, WMPixmap *dragImage); void WMReleaseViewDragImage(WMView* view); void WMSetViewDragSourceProcs(WMView *view, WMDragSourceProcs *procs); Bool WMIsDraggingFromView(WMView *view); void WMDragImageFromView(WMView *view, XEvent *event); /* Create a drag handler, associating drag event masks with dragEventProc */ void WMCreateDragHandler(WMView *view, WMEventProc *dragEventProc, void *clientData); void WMDeleteDragHandler(WMView *view, WMEventProc *dragEventProc, void *clientData); /* set default drag handler for view */ void WMSetViewDraggable(WMView *view, WMDragSourceProcs *procs, WMPixmap *dragImage); void WMUnsetViewDraggable(WMView *view); /* ---[ WINGs/dragdestination.c ]----------------------------------------- */ void WMRegisterViewForDraggedTypes(WMView *view, WMArray *acceptedTypes); void WMUnregisterViewDraggedTypes(WMView *view); void WMSetViewDragDestinationProcs(WMView *view, WMDragDestinationProcs *procs); /* ---[ WINGs/wfont.c ]--------------------------------------------------- */ Bool WMIsAntialiasingEnabled(WMScreen *scrPtr); WMFont* WMCreateFont(WMScreen *scrPtr, const char *fontName); WMFont* WMCopyFontWithStyle(WMScreen *scrPtr, WMFont *font, WMFontStyle style); WMFont* WMRetainFont(WMFont *font); void WMReleaseFont(WMFont *font); char* WMGetFontName(WMFont *font); unsigned int WMFontHeight(WMFont *font); void WMSetWidgetDefaultFont(WMScreen *scr, WMFont *font); void WMSetWidgetDefaultBoldFont(WMScreen *scr, WMFont *font); WMFont* WMDefaultSystemFont(WMScreen *scrPtr); WMFont* WMDefaultBoldSystemFont(WMScreen *scrPtr); WMFont* WMSystemFontOfSize(WMScreen *scrPtr, int size); WMFont* WMBoldSystemFontOfSize(WMScreen *scrPtr, int size); void WMDrawString(WMScreen *scr, Drawable d, WMColor *color, WMFont *font, int x, int y, const char *text, int length); void WMDrawImageString(WMScreen *scr, Drawable d, WMColor *color, WMColor *background, WMFont *font, int x, int y, const char *text, int length); int WMWidthOfString(WMFont *font, const char *text, int length); /* ---[ WINGs/wpixmap.c ]------------------------------------------------- */ WMPixmap* WMRetainPixmap(WMPixmap *pixmap); void WMReleasePixmap(WMPixmap *pixmap); WMPixmap* WMCreatePixmap(WMScreen *scrPtr, int width, int height, int depth, Bool masked); WMPixmap* WMCreatePixmapFromXPixmaps(WMScreen *scrPtr, Pixmap pixmap, Pixmap mask, int width, int height, int depth); WMPixmap* WMCreatePixmapFromRImage(WMScreen *scrPtr, RImage *image, int threshold); WMPixmap* WMCreatePixmapFromXPMData(WMScreen *scrPtr, char **data); WMSize WMGetPixmapSize(WMPixmap *pixmap); WMPixmap* WMCreatePixmapFromFile(WMScreen *scrPtr, const char *fileName); WMPixmap* WMCreateBlendedPixmapFromRImage(WMScreen *scrPtr, RImage *image, const RColor *color); WMPixmap* WMCreateBlendedPixmapFromFile(WMScreen *scrPtr, const char *fileName, const RColor *color); void WMDrawPixmap(WMPixmap *pixmap, Drawable d, int x, int y); Pixmap WMGetPixmapXID(WMPixmap *pixmap); Pixmap WMGetPixmapMaskXID(WMPixmap *pixmap); WMPixmap* WMGetSystemPixmap(WMScreen *scr, int image); /* ---[ WINGs/wcolor.c ]-------------------------------------------------- */ WMColor* WMDarkGrayColor(WMScreen *scr); WMColor* WMGrayColor(WMScreen *scr); WMColor* WMBlackColor(WMScreen *scr); WMColor* WMWhiteColor(WMScreen *scr); void WMSetColorInGC(WMColor *color, GC gc); GC WMColorGC(WMColor *color); WMPixel WMColorPixel(WMColor *color); void WMPaintColorSwatch(WMColor *color, Drawable d, int x, int y, unsigned int width, unsigned int height); void WMReleaseColor(WMColor *color); WMColor* WMRetainColor(WMColor *color); WMColor* WMCreateRGBColor(WMScreen *scr, unsigned short red, unsigned short green, unsigned short blue, Bool exact); WMColor* WMCreateRGBAColor(WMScreen *scr, unsigned short red, unsigned short green, unsigned short blue, unsigned short alpha, Bool exact); WMColor* WMCreateNamedColor(WMScreen *scr, const char *name, Bool exact); RColor WMGetRColorFromColor(WMColor *color); void WMSetColorAlpha(WMColor *color, unsigned short alpha); unsigned short WMRedComponentOfColor(WMColor *color); unsigned short WMGreenComponentOfColor(WMColor *color); unsigned short WMBlueComponentOfColor(WMColor *color); unsigned short WMGetColorAlpha(WMColor *color); char* WMGetColorRGBDescription(WMColor *color); /* ---[ WINGs/widgets.c ]------------------------------------------------- */ WMScreen* WMWidgetScreen(WMWidget *w); unsigned int WMScreenWidth(WMScreen *scr); unsigned int WMScreenHeight(WMScreen *scr); void WMUnmapWidget(WMWidget *w); void WMMapWidget(WMWidget *w); Bool WMWidgetIsMapped(WMWidget *w); void WMRaiseWidget(WMWidget *w); void WMLowerWidget(WMWidget *w); void WMMoveWidget(WMWidget *w, int x, int y); void WMResizeWidget(WMWidget *w, unsigned int width, unsigned int height); void WMSetWidgetBackgroundColor(WMWidget *w, WMColor *color); WMColor* WMGetWidgetBackgroundColor(WMWidget *w); void WMMapSubwidgets(WMWidget *w); void WMUnmapSubwidgets(WMWidget *w); void WMRealizeWidget(WMWidget *w); void WMReparentWidget(WMWidget *w, WMWidget *newParent, int x, int y); void WMDestroyWidget(WMWidget *widget); void WMHangData(WMWidget *widget, void *data); void* WMGetHangedData(WMWidget *widget); unsigned int WMWidgetWidth(WMWidget *w); unsigned int WMWidgetHeight(WMWidget *w); Window WMWidgetXID(WMWidget *w); void WMRedisplayWidget(WMWidget *w); /* ---[ WINGs/wview.c ]--------------------------------------------------- */ Window WMViewXID(WMView *view); void WMSetViewNotifySizeChanges(WMView *view, Bool flag); void WMSetViewExpandsToParent(WMView *view, int topOffs, int leftOffs, int rightOffs, int bottomOffs); WMSize WMGetViewSize(WMView *view); WMPoint WMGetViewPosition(WMView *view); WMPoint WMGetViewScreenPosition(WMView *view); WMWidget* WMWidgetOfView(WMView *view); /* notifications */ extern char *WMViewSizeDidChangeNotification; extern char *WMViewFocusDidChangeNotification; extern char *WMViewRealizedNotification; /* ---[ WINGs/wballoon.c ]------------------------------------------------ */ void WMSetBalloonTextForView(const char *text, WMView *view); void WMSetBalloonTextAlignment(WMScreen *scr, WMAlignment alignment); void WMSetBalloonFont(WMScreen *scr, WMFont *font); void WMSetBalloonTextColor(WMScreen *scr, WMColor *color); void WMSetBalloonDelay(WMScreen *scr, int delay); void WMSetBalloonEnabled(WMScreen *scr, Bool flag); /* ---[ WINGs/wwindow.c ]------------------------------------------------- */ WMWindow* WMCreateWindow(WMScreen *screen, const char *name); WMWindow* WMCreateWindowWithStyle(WMScreen *screen, const char *name, int style); WMWindow* WMCreatePanelWithStyleForWindow(WMWindow *owner, const char *name, int style); WMWindow* WMCreatePanelForWindow(WMWindow *owner, const char *name); void WMChangePanelOwner(WMWindow *win, WMWindow *newOwner); void WMSetWindowTitle(WMWindow *wPtr, const char *title); void WMSetWindowMiniwindowTitle(WMWindow *win, const char *title); void WMSetWindowMiniwindowImage(WMWindow *win, RImage *image); void WMSetWindowMiniwindowPixmap(WMWindow *win, WMPixmap *pixmap); void WMSetWindowCloseAction(WMWindow *win, WMAction *action, void *clientData); void WMSetWindowInitialPosition(WMWindow *win, int x, int y); void WMSetWindowUserPosition(WMWindow *win, int x, int y); void WMSetWindowAspectRatio(WMWindow *win, int minX, int minY, int maxX, int maxY); void WMSetWindowMaxSize(WMWindow *win, unsigned width, unsigned height); void WMSetWindowMinSize(WMWindow *win, unsigned width, unsigned height); void WMSetWindowBaseSize(WMWindow *win, unsigned width, unsigned height); void WMSetWindowResizeIncrements(WMWindow *win, unsigned wIncr, unsigned hIncr); void WMSetWindowLevel(WMWindow *win, int level); void WMSetWindowDocumentEdited(WMWindow *win, Bool flag); void WMCloseWindow(WMWindow *win); /* ---[ WINGs/wbutton.c ]------------------------------------------------- */ void WMSetButtonAction(WMButton *bPtr, WMAction *action, void *clientData); #define WMCreateCommandButton(parent) \ WMCreateCustomButton((parent), WBBSpringLoadedMask\ |WBBPushInMask\ |WBBPushLightMask\ |WBBPushChangeMask) #define WMCreateRadioButton(parent) \ WMCreateButton((parent), WBTRadio) #define WMCreateSwitchButton(parent) \ WMCreateButton((parent), WBTSwitch) WMButton* WMCreateButton(WMWidget *parent, WMButtonType type); WMButton* WMCreateCustomButton(WMWidget *parent, int behaviourMask); void WMSetButtonImageDefault(WMButton *bPtr); void WMSetButtonImage(WMButton *bPtr, WMPixmap *image); void WMSetButtonAltImage(WMButton *bPtr, WMPixmap *image); void WMSetButtonImagePosition(WMButton *bPtr, WMImagePosition position); void WMSetButtonFont(WMButton *bPtr, WMFont *font); void WMSetButtonTextAlignment(WMButton *bPtr, WMAlignment alignment); void WMSetButtonText(WMButton *bPtr, const char *text); void WMSetButtonAltText(WMButton *bPtr, const char *text); void WMSetButtonTextColor(WMButton *bPtr, WMColor *color); void WMSetButtonAltTextColor(WMButton *bPtr, WMColor *color); void WMSetButtonDisabledTextColor(WMButton *bPtr, WMColor *color); void WMSetButtonSelected(WMButton *bPtr, int isSelected); int WMGetButtonSelected(WMButton *bPtr); void WMSetButtonBordered(WMButton *bPtr, int isBordered); void WMSetButtonEnabled(WMButton *bPtr, Bool flag); int WMGetButtonEnabled(WMButton *bPtr); void WMSetButtonImageDimsWhenDisabled(WMButton *bPtr, Bool flag); void WMSetButtonTag(WMButton *bPtr, int tag); void WMGroupButtons(WMButton *bPtr, WMButton *newMember); void WMPerformButtonClick(WMButton *bPtr); void WMSetButtonContinuous(WMButton *bPtr, Bool flag); void WMSetButtonPeriodicDelay(WMButton *bPtr, float delay, float interval); /* ---[ WINGs/wlabel.c ]-------------------------------------------------- */ WMLabel* WMCreateLabel(WMWidget *parent); void WMSetLabelWraps(WMLabel *lPtr, Bool flag); void WMSetLabelImage(WMLabel *lPtr, WMPixmap *image); WMPixmap* WMGetLabelImage(WMLabel *lPtr); char* WMGetLabelText(WMLabel *lPtr); void WMSetLabelImagePosition(WMLabel *lPtr, WMImagePosition position); void WMSetLabelTextAlignment(WMLabel *lPtr, WMAlignment alignment); void WMSetLabelRelief(WMLabel *lPtr, WMReliefType relief); void WMSetLabelText(WMLabel *lPtr, const char *text); WMFont* WMGetLabelFont(WMLabel *lPtr); void WMSetLabelFont(WMLabel *lPtr, WMFont *font); void WMSetLabelTextColor(WMLabel *lPtr, WMColor *color); /* ---[ WINGs/wframe.c ]-------------------------------------------------- */ WMFrame* WMCreateFrame(WMWidget *parent); void WMSetFrameTitlePosition(WMFrame *fPtr, WMTitlePosition position); void WMSetFrameRelief(WMFrame *fPtr, WMReliefType relief); void WMSetFrameTitle(WMFrame *fPtr, const char *title); /* ---[ WINGs/wtextfield.c ]---------------------------------------------- */ WMTextField* WMCreateTextField(WMWidget *parent); void WMInsertTextFieldText(WMTextField *tPtr, const char *text, int position); void WMDeleteTextFieldRange(WMTextField *tPtr, WMRange range); /* you can free the returned string */ char* WMGetTextFieldText(WMTextField *tPtr); void WMSetTextFieldText(WMTextField *tPtr, const char *text); void WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment); void WMSetTextFieldFont(WMTextField *tPtr, WMFont *font); WMFont* WMGetTextFieldFont(WMTextField *tPtr); void WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered); void WMSetTextFieldBeveled(WMTextField *tPtr, Bool flag); Bool WMGetTextFieldEditable(WMTextField *tPtr); void WMSetTextFieldEditable(WMTextField *tPtr, Bool flag); void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag); void WMSelectTextFieldRange(WMTextField *tPtr, WMRange range); void WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position); unsigned WMGetTextFieldCursorPosition(WMTextField *tPtr); void WMSetTextFieldNextTextField(WMTextField *tPtr, WMTextField *next); void WMSetTextFieldPrevTextField(WMTextField *tPtr, WMTextField *prev); void WMSetTextFieldDelegate(WMTextField *tPtr, WMTextFieldDelegate *delegate); WMTextFieldDelegate* WMGetTextFieldDelegate(WMTextField *tPtr); extern char *WMTextDidChangeNotification; extern char *WMTextDidBeginEditingNotification; extern char *WMTextDidEndEditingNotification; /* ---[ WINGs/wscroller.c ]----------------------------------------------- */ WMScroller* WMCreateScroller(WMWidget *parent); void WMSetScrollerParameters(WMScroller *sPtr, float floatValue, float knobProportion); float WMGetScrollerKnobProportion(WMScroller *sPtr); float WMGetScrollerValue(WMScroller *sPtr); WMScrollerPart WMGetScrollerHitPart(WMScroller *sPtr); void WMSetScrollerAction(WMScroller *sPtr, WMAction *action, void *clientData); void WMSetScrollerArrowsPosition(WMScroller *sPtr, WMScrollArrowPosition position); extern char *WMScrollerDidScrollNotification; /* ---[ WINGs/wlist.c ]--------------------------------------------------- */ WMList* WMCreateList(WMWidget *parent); void WMSetListAllowMultipleSelection(WMList *lPtr, Bool flag); void WMSetListAllowEmptySelection(WMList *lPtr, Bool flag); #define WMAddListItem(lPtr, text) WMInsertListItem((lPtr), -1, (text)) WMListItem* WMInsertListItem(WMList *lPtr, int row, const char *text); void WMSortListItems(WMList *lPtr); void WMSortListItemsWithComparer(WMList *lPtr, WMCompareDataProc *func); int WMFindRowOfListItemWithTitle(WMList *lPtr, const char *title); WMListItem* WMGetListItem(WMList *lPtr, int row); WMArray* WMGetListItems(WMList *lPtr); void WMRemoveListItem(WMList *lPtr, int row); void WMSelectListItem(WMList *lPtr, int row); void WMUnselectListItem(WMList *lPtr, int row); /* This will select all items in range, and deselect all the others */ void WMSetListSelectionToRange(WMList *lPtr, WMRange range); /* This will select all items in range, leaving the others as they are */ void WMSelectListItemsInRange(WMList *lPtr, WMRange range); void WMSelectAllListItems(WMList *lPtr); void WMUnselectAllListItems(WMList *lPtr); void WMSetListUserDrawProc(WMList *lPtr, WMListDrawProc *proc); void WMSetListUserDrawItemHeight(WMList *lPtr, unsigned short height); int WMGetListItemHeight(WMList *lPtr); /* don't free the returned data */ WMArray* WMGetListSelectedItems(WMList *lPtr); /* * For the following 2 functions, in case WMList allows multiple selection, * the first item in the list of selected items, respective its row number, * will be returned. */ /* don't free the returned data */ WMListItem* WMGetListSelectedItem(WMList *lPtr); int WMGetListSelectedItemRow(WMList *lPtr); void WMSetListAction(WMList *lPtr, WMAction *action, void *clientData); void WMSetListDoubleAction(WMList *lPtr, WMAction *action, void *clientData); void WMClearList(WMList *lPtr); int WMGetListNumberOfRows(WMList *lPtr); void WMSetListPosition(WMList *lPtr, int row); void WMSetListBottomPosition(WMList *lPtr, int row); int WMGetListPosition(WMList *lPtr); Bool WMListAllowsMultipleSelection(WMList *lPtr); Bool WMListAllowsEmptySelection(WMList *lPtr); extern char *WMListDidScrollNotification; extern char *WMListSelectionDidChangeNotification; /* ---[ WINGs/wbrowser.c ]------------------------------------------------ */ WMBrowser* WMCreateBrowser(WMWidget *parent); void WMSetBrowserAllowMultipleSelection(WMBrowser *bPtr, Bool flag); void WMSetBrowserAllowEmptySelection(WMBrowser *bPtr, Bool flag); void WMSetBrowserPathSeparator(WMBrowser *bPtr, const char *separator); void WMSetBrowserTitled(WMBrowser *bPtr, Bool flag); void WMLoadBrowserColumnZero(WMBrowser *bPtr); int WMAddBrowserColumn(WMBrowser *bPtr); void WMRemoveBrowserItem(WMBrowser *bPtr, int column, int row); void WMSetBrowserMaxVisibleColumns(WMBrowser *bPtr, int columns); void WMSetBrowserColumnTitle(WMBrowser *bPtr, int column, const char *title); WMListItem* WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, const char *text, Bool isBranch); void WMSortBrowserColumn(WMBrowser *bPtr, int column); void WMSortBrowserColumnWithComparer(WMBrowser *bPtr, int column, WMCompareDataProc *func); /* Don't free the returned string. */ char* WMSetBrowserPath(WMBrowser *bPtr, char *path); /* free the returned string */ char* WMGetBrowserPath(WMBrowser *bPtr); /* free the returned string */ char* WMGetBrowserPathToColumn(WMBrowser *bPtr, int column); /* free the returned array */ WMArray* WMGetBrowserPaths(WMBrowser *bPtr); 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); int WMGetBrowserSelectedColumn(WMBrowser *bPtr); int WMGetBrowserSelectedRowInColumn(WMBrowser *bPtr, int column); int WMGetBrowserNumberOfColumns(WMBrowser *bPtr); int WMGetBrowserMaxVisibleColumns(WMBrowser *bPtr); WMList* WMGetBrowserListInColumn(WMBrowser *bPtr, int column); void WMSetBrowserDelegate(WMBrowser *bPtr, WMBrowserDelegate *delegate); Bool WMBrowserAllowsMultipleSelection(WMBrowser *bPtr); Bool WMBrowserAllowsEmptySelection(WMBrowser *bPtr); void WMSetBrowserHasScroller(WMBrowser *bPtr, int hasScroller); /* ---[ WINGs/wmenuitem.c ]----------------------------------------------- */ Bool WMMenuItemIsSeparator(WMMenuItem *item); WMMenuItem* WMCreateMenuItem(void); void WMDestroyMenuItem(WMMenuItem *item); Bool WMGetMenuItemEnabled(WMMenuItem *item); void WMSetMenuItemEnabled(WMMenuItem *item, Bool flag); char* WMGetMenuItemShortcut(WMMenuItem *item); unsigned WMGetMenuItemShortcutModifierMask(WMMenuItem *item); void WMSetMenuItemShortcut(WMMenuItem *item, const char *shortcut); void WMSetMenuItemShortcutModifierMask(WMMenuItem *item, unsigned mask); void* WMGetMenuItemRepresentedObject(WMMenuItem *item); void WMSetMenuItemRepresentedObject(WMMenuItem *item, void *object); void WMSetMenuItemAction(WMMenuItem *item, WMAction *action, void *data); WMAction* WMGetMenuItemAction(WMMenuItem *item); void* WMGetMenuItemData(WMMenuItem *item); void WMSetMenuItemTitle(WMMenuItem *item, const char *title); char* WMGetMenuItemTitle(WMMenuItem *item); void WMSetMenuItemState(WMMenuItem *item, int state); int WMGetMenuItemState(WMMenuItem *item); void WMSetMenuItemPixmap(WMMenuItem *item, WMPixmap *pixmap); WMPixmap* WMGetMenuItemPixmap(WMMenuItem *item); void WMSetMenuItemOnStatePixmap(WMMenuItem *item, WMPixmap *pixmap); WMPixmap* WMGetMenuItemOnStatePixmap(WMMenuItem *item); void WMSetMenuItemOffStatePixmap(WMMenuItem *item, WMPixmap *pixmap); WMPixmap* WMGetMenuItemOffStatePixmap(WMMenuItem *item); void WMSetMenuItemMixedStatePixmap(WMMenuItem *item, WMPixmap *pixmap); WMPixmap* WMGetMenuItemMixedStatePixmap(WMMenuItem *item); /*void WMSetMenuItemSubmenu(WMMenuItem *item, WMMenu *submenu); WMMenu* WMGetMenuItemSubmenu(WMMenuItem *item); Bool WMGetMenuItemHasSubmenu(WMMenuItem *item); */ /* ---[ WINGs/wpopupbutton.c ]-------------------------------------------- */ WMPopUpButton* WMCreatePopUpButton(WMWidget *parent); void WMSetPopUpButtonAction(WMPopUpButton *sPtr, WMAction *action, void *clientData); void WMSetPopUpButtonPullsDown(WMPopUpButton *bPtr, Bool flag); WMMenuItem* WMAddPopUpButtonItem(WMPopUpButton *bPtr, const char *title); WMMenuItem* WMInsertPopUpButtonItem(WMPopUpButton *bPtr, int index, const char *title); void WMRemovePopUpButtonItem(WMPopUpButton *bPtr, int index); void WMSetPopUpButtonItemEnabled(WMPopUpButton *bPtr, int index, Bool flag); Bool WMGetPopUpButtonItemEnabled(WMPopUpButton *bPtr, int index); void WMSetPopUpButtonSelectedItem(WMPopUpButton *bPtr, int index); int WMGetPopUpButtonSelectedItem(WMPopUpButton *bPtr); void WMSetPopUpButtonText(WMPopUpButton *bPtr, const char *text); /* don't free the returned data */ char* WMGetPopUpButtonItem(WMPopUpButton *bPtr, int index); WMMenuItem* WMGetPopUpButtonMenuItem(WMPopUpButton *bPtr, int index); int WMGetPopUpButtonNumberOfItems(WMPopUpButton *bPtr); void WMSetPopUpButtonEnabled(WMPopUpButton *bPtr, Bool flag); Bool WMGetPopUpButtonEnabled(WMPopUpButton *bPtr); /* ---[ WINGs/wcolorpanel.c ]--------------------------------------------- */ WMColorPanel* WMGetColorPanel(WMScreen *scrPtr); void WMFreeColorPanel(WMColorPanel *panel); void WMShowColorPanel(WMColorPanel *panel); void WMCloseColorPanel(WMColorPanel *panel); void WMSetColorPanelColor(WMColorPanel *panel, WMColor *color); WMColor* WMGetColorPanelColor(WMColorPanel *panel); void WMSetColorPanelPickerMode(WMColorPanel *panel, WMColorPanelMode mode); void WMSetColorPanelAction(WMColorPanel *panel, WMAction2 *action, void *data); extern char *WMColorPanelColorChangedNotification; /* ---[ WINGs/wcolorwell.c ]---------------------------------------------- */ WMColorWell* WMCreateColorWell(WMWidget *parent); void WMSetColorWellColor(WMColorWell *cPtr, WMColor *color); WMColor* WMGetColorWellColor(WMColorWell *cPtr); void WSetColorWellBordered(WMColorWell *cPtr, Bool flag); extern char *WMColorWellDidChangeNotification; /* ---[ WINGs/wscrollview.c ]--------------------------------------------- */ WMScrollView* WMCreateScrollView(WMWidget *parent); void WMResizeScrollViewContent(WMScrollView *sPtr, unsigned int width, unsigned int height); void WMSetScrollViewHasHorizontalScroller(WMScrollView *sPtr, Bool flag); void WMSetScrollViewHasVerticalScroller(WMScrollView *sPtr, Bool flag); void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view); void WMSetScrollViewRelief(WMScrollView *sPtr, WMReliefType type); WMRect WMGetScrollViewVisibleRect(WMScrollView *sPtr); WMScroller* WMGetScrollViewHorizontalScroller(WMScrollView *sPtr); WMScroller* WMGetScrollViewVerticalScroller(WMScrollView *sPtr); void WMSetScrollViewLineScroll(WMScrollView *sPtr, int amount); void WMSetScrollViewPageScroll(WMScrollView *sPtr, int amount); /* ---[ WINGs/wslider.c ]------------------------------------------------- */ WMSlider* WMCreateSlider(WMWidget *parent); int WMGetSliderMinValue(WMSlider *slider); int WMGetSliderMaxValue(WMSlider *slider); int WMGetSliderValue(WMSlider *slider); void WMSetSliderMinValue(WMSlider *slider, int value); void WMSetSliderMaxValue(WMSlider *slider, int value); void WMSetSliderValue(WMSlider *slider, int value); void WMSetSliderContinuous(WMSlider *slider, Bool flag); void WMSetSliderAction(WMSlider *slider, WMAction *action, void *data); void WMSetSliderKnobThickness(WMSlider *sPtr, int thickness); void WMSetSliderImage(WMSlider *sPtr, WMPixmap *pixmap); /* ---[ WINGs/wsplitview.c ]---------------------------------------------- */ WMSplitView* WMCreateSplitView(WMWidget *parent); Bool WMGetSplitViewVertical(WMSplitView *sPtr); void WMSetSplitViewVertical(WMSplitView *sPtr, Bool flag); int WMGetSplitViewSubviewsCount(WMSplitView *sPtr); /* ??? remove ??? */ WMView* WMGetSplitViewSubviewAt(WMSplitView *sPtr, int index); /* remove the first subview == view */ void WMRemoveSplitViewSubview(WMSplitView *sPtr, WMView *view); void WMRemoveSplitViewSubviewAt(WMSplitView *sPtr, int index); void WMAddSplitViewSubview(WMSplitView *sPtr, WMView *subview); void WMAdjustSplitViewSubviews(WMSplitView *sPtr); void WMSetSplitViewConstrainProc(WMSplitView *sPtr, WMSplitViewConstrainProc *proc); /* void WMSetSplitViewResizeSubviewsProc(WMSplitView *sPtr, WMSplitViewResizeSubviewsProc *proc); */ int WMGetSplitViewDividerThickness(WMSplitView *sPtr); /* ...................................................................... */ WMRuler* WMCreateRuler (WMWidget *parent); WMRulerMargins* WMGetRulerMargins(WMRuler *rPtr); void WMSetRulerMargins(WMRuler *rPtr, WMRulerMargins margins); Bool WMIsMarginEqualToMargin(WMRulerMargins *aMargin, WMRulerMargins *anotherMargin); int WMGetGrabbedRulerMargin(WMRuler *rPtr); int WMGetReleasedRulerMargin(WMRuler *rPtr); int WMGetRulerOffset(WMRuler *rPtr); void WMSetRulerOffset(WMRuler *rPtr, int pixels); void WMSetRulerMoveAction(WMRuler *rPtr, WMAction *action, void *clientData); void WMSetRulerReleaseAction(WMRuler *rPtr, WMAction *action, void *clientData); /* ....................................................................... */ #define WMCreateText(parent) WMCreateTextForDocumentType \ ((parent), (NULL), (NULL)) WMText* WMCreateTextForDocumentType(WMWidget *parent, WMAction *parser, WMAction *writer); void WMSetTextDelegate(WMText *tPtr, WMTextDelegate *delegate); void WMFreezeText(WMText *tPtr); #define WMRefreshText(tPtr) WMThawText((tPtr)) void WMThawText(WMText *tPtr); int WMScrollText(WMText *tPtr, int amount); int WMPageText(WMText *tPtr, Bool direction); void WMSetTextHasHorizontalScroller(WMText *tPtr, Bool shouldhave); void WMSetTextHasVerticalScroller(WMText *tPtr, Bool shouldhave); void WMSetTextHasRuler(WMText *tPtr, Bool shouldhave); void WMShowTextRuler(WMText *tPtr, Bool show); int WMGetTextRulerShown(WMText *tPtr); void WMSetTextEditable(WMText *tPtr, Bool editable); int WMGetTextEditable(WMText *tPtr); void WMSetTextUsesMonoFont(WMText *tPtr, Bool mono); int WMGetTextUsesMonoFont(WMText *tPtr); void WMSetTextIndentNewLines(WMText *tPtr, Bool indent); void WMSetTextIgnoresNewline(WMText *tPtr, Bool ignore); int WMGetTextIgnoresNewline(WMText *tPtr); void WMSetTextDefaultFont(WMText *tPtr, WMFont *font); WMFont* WMGetTextDefaultFont(WMText *tPtr); void WMSetTextDefaultColor(WMText *tPtr, WMColor *color); WMColor* WMGetTextDefaultColor(WMText *tPtr); void WMSetTextRelief(WMText *tPtr, WMReliefType relief); void WMSetTextForegroundColor(WMText *tPtr, WMColor *color); void WMSetTextBackgroundColor(WMText *tPtr, WMColor *color); void WMSetTextBackgroundPixmap(WMText *tPtr, WMPixmap *pixmap); void WMPrependTextStream(WMText *tPtr, const char *text); void WMAppendTextStream(WMText *tPtr, const char *text); #define WMClearText(tPtr) WMAppendTextStream \ ((tPtr), (NULL)) /* free the text */ char* WMGetTextStream(WMText *tPtr); /* free the text */ char* WMGetTextSelectedStream(WMText *tPtr); /* destroy the array */ WMArray* WMGetTextObjects(WMText *tPtr); /* destroy the array */ WMArray* WMGetTextSelectedObjects(WMText *tPtr); void WMSetTextSelectionColor(WMText *tPtr, WMColor *color); WMColor* WMGetTextSelectionColor(WMText *tPtr); void WMSetTextSelectionFont(WMText *tPtr, WMFont *font); WMFont* WMGetTextSelectionFont(WMText *tPtr); void WMSetTextSelectionUnderlined(WMText *tPtr, int underlined); int WMGetTextSelectionUnderlined(WMText *tPtr); void WMSetTextAlignment(WMText *tPtr, WMAlignment alignment); Bool WMFindInTextStream(WMText *tPtr, const char *needle, Bool direction, Bool caseSensitive); /* Warning: replacement can be modified by the function */ Bool WMReplaceTextSelection(WMText *tPtr, char *replacement); /* parser related stuff... use only if implementing a new parser */ void* WMCreateTextBlockWithObject(WMText *tPtr, WMWidget *w, const char *description, WMColor *color, unsigned short first, unsigned short extraInfo); void* WMCreateTextBlockWithPixmap(WMText *tPtr, WMPixmap *p, const char *description, WMColor *color, unsigned short first, unsigned short extraInfo); void* WMCreateTextBlockWithText(WMText *tPtr, const char *text, WMFont *font, WMColor *color, unsigned short first, unsigned short length); void WMSetTextBlockProperties(WMText *tPtr, void *vtb, unsigned int first, unsigned int kanji, unsigned int underlined, int script, WMRulerMargins *margins); /* do NOT free the margins */ void WMGetTextBlockProperties(WMText *tPtr, void *vtb, unsigned int *first, unsigned int *kanji, unsigned int *underlined, int *script, WMRulerMargins *margins); int WMGetTextInsertType(WMText *tPtr); /*int WMGetTextBlocks(WMText *tPtr); void WMSetCurrentTextBlock(WMText *tPtr, int current); int WMGetCurrentTextBlock(WMText *tPtr);*/ void WMPrependTextBlock(WMText *tPtr, void *vtb); void WMAppendTextBlock(WMText *tPtr, void *vtb); void* WMRemoveTextBlock(WMText *tPtr); void WMDestroyTextBlock(WMText *tPtr, void *vtb); /* ---[ WINGs/wtabview.c ]------------------------------------------------ */ WMTabView* WMCreateTabView(WMWidget *parent); void WMSetTabViewType(WMTabView *tPtr, WMTabViewType type); void WMSetTabViewEnabled(WMTabView *tPtr, Bool flag); void WMSetTabViewFont(WMTabView *tPtr, WMFont *font); void WMAddItemInTabView(WMTabView *tPtr, WMTabViewItem *item); void WMInsertItemInTabView(WMTabView *tPtr, int index, WMTabViewItem *item); void WMRemoveTabViewItem(WMTabView *tPtr, WMTabViewItem *item); WMTabViewItem* WMAddTabViewItemWithView(WMTabView *tPtr, WMView *view, int identifier, const char *label); WMTabViewItem* WMTabViewItemAtPoint(WMTabView *tPtr, int x, int y); void WMSelectFirstTabViewItem(WMTabView *tPtr); void WMSelectLastTabViewItem(WMTabView *tPtr); void WMSelectNextTabViewItem(WMTabView *tPtr); void WMSelectPreviousTabViewItem(WMTabView *tPtr); WMTabViewItem* WMGetSelectedTabViewItem(WMTabView *tPtr); void WMSelectTabViewItem(WMTabView *tPtr, WMTabViewItem *item); void WMSelectTabViewItemAtIndex(WMTabView *tPtr, int index); void WMSetTabViewDelegate(WMTabView *tPtr, WMTabViewDelegate *delegate); WMTabViewItem* WMCreateTabViewItemWithIdentifier(int identifier); void WMSetTabViewItemEnabled(WMTabViewItem *tPtr, Bool flag); int WMGetTabViewItemIdentifier(WMTabViewItem *item); void WMSetTabViewItemLabel(WMTabViewItem *item, const char *label); char* WMGetTabViewItemLabel(WMTabViewItem *item); void WMSetTabViewItemView(WMTabViewItem *item, WMView *view); WMView* WMGetTabViewItemView(WMTabViewItem *item); void WMDestroyTabViewItem(WMTabViewItem *item); /* ---[ WINGs/wbox.c ]---------------------------------------------------- */ WMBox* WMCreateBox(WMWidget *parent); void WMSetBoxBorderWidth(WMBox *box, unsigned width); void WMAddBoxSubview(WMBox *bPtr, WMView *view, Bool expand, Bool fill, int minSize, int maxSize, int space); void WMAddBoxSubviewAtEnd(WMBox *bPtr, WMView *view, Bool expand, Bool fill, int minSize, int maxSize, int space); void WMRemoveBoxSubview(WMBox *bPtr, WMView *view); void WMSetBoxHorizontal(WMBox *box, Bool flag); /* ---[ WINGs/wpanel.c ]-------------------------------------------------- */ int WMRunAlertPanel(WMScreen *app, WMWindow *owner, const char *title, const char *msg, const char *defaultButton, const char *alternateButton, const char *otherButton); /* you can free the returned string */ char* WMRunInputPanel(WMScreen *app, WMWindow *owner, const char *title, const char *msg, const char *defaultText, const char *okButton, const char *cancelButton); WMAlertPanel* WMCreateAlertPanel(WMScreen *app, WMWindow *owner, const char *title, const char *msg, const char *defaultButton, const char *alternateButton, const char *otherButton); WMInputPanel* WMCreateInputPanel(WMScreen *app, WMWindow *owner, const char *title, const char *msg, const char *defaultText, const char *okButton, const char *cancelButton); WMGenericPanel* WMCreateGenericPanel(WMScreen *scrPtr, WMWindow *owner, const char *title, const char *defaultButton, const char *alternateButton); void WMDestroyAlertPanel(WMAlertPanel *panel); void WMDestroyInputPanel(WMInputPanel *panel); void WMDestroyGenericPanel(WMGenericPanel *panel); /* ---[ WINGs/wfilepanel.c ]---------------------------------------------- */ /* only 1 instance per WMScreen */ WMOpenPanel* WMGetOpenPanel(WMScreen *scrPtr); WMSavePanel* WMGetSavePanel(WMScreen *scrPtr); void WMSetFilePanelCanChooseDirectories(WMFilePanel *panel, Bool flag); void WMSetFilePanelCanChooseFiles(WMFilePanel *panel, Bool flag); void WMSetFilePanelAutoCompletion(WMFilePanel *panel, Bool flag); void WMSetFilePanelDirectory(WMFilePanel *panel, char *path); /* you can free the returned string */ char* WMGetFilePanelFileName(WMFilePanel *panel); void WMFreeFilePanel(WMFilePanel *panel); int WMRunModalFilePanelForDirectory(WMFilePanel *panel, WMWindow *owner, char *path, const char *name, char **fileTypes); void WMSetFilePanelAccessoryView(WMFilePanel *panel, WMView *view); WMView* WMGetFilePanelAccessoryView(WMFilePanel *panel); /* ---[ WINGs/wfontpanel.c ]---------------------------------------------- */ /* only 1 instance per WMScreen */ WMFontPanel* WMGetFontPanel(WMScreen *scr); void WMShowFontPanel(WMFontPanel *panel); void WMHideFontPanel(WMFontPanel *panel); void WMFreeFontPanel(WMFontPanel *panel); void WMSetFontPanelAction(WMFontPanel *panel, WMAction2 *action, void *data); void WMSetFontPanelFont(WMFontPanel *panel, const char *fontName); WMFont* WMGetFontPanelFont(WMFontPanel *panel); /* ---[ WINGs/configuration.c ]------------------------------------------- */ unsigned W_getconf_mouseWheelUp(void); unsigned W_getconf_mouseWheelDown(void); void W_setconf_doubleClickDelay(int value); #ifdef __cplusplus } #endif /* __cplusplus */ #endif WindowMaker-0.95.5/WINGs/WINGs/Makefile.am0000644000175000017500000000030112214432632014665 00000000000000## automake input file for WINGs - Headers subdir AUTOMAKE_OPTIONS = # is this a kluge? if so, how should i do it? includedir = @includedir@/WINGs include_HEADERS = WINGs.h WUtil.h WINGsP.h WindowMaker-0.95.5/WINGs/WINGs/WUtil.h0000644000175000017500000007035512214432632014066 00000000000000/* WUtil.h * * Copyright (c) 1998 scottc * Copyright (c) 1999-2004 Dan Pascu * Copyright (c) 1999-2000 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _WUTIL_H_ #define _WUTIL_H_ #include #include #include /* SunOS 4.x Blargh.... */ #ifndef NULL #define NULL ((void*)0) #endif #ifndef WMAX # define WMAX(a,b) ((a)>(b) ? (a) : (b)) #endif #ifndef WMIN # define WMIN(a,b) ((a)<(b) ? (a) : (b)) #endif #ifndef __ASSERT_FUNCTION # if (!defined (__GNUC__) || (__GNUC__ < 2 && \ __GNUC_MINOR__ < (defined (__cplusplus) ? 6 : 4))) # define __ASSERT_FUNCTION ((char *) 0) # else # define __ASSERT_FUNCTION __PRETTY_FUNCTION__ # endif #endif #ifndef __GNUC__ #define __attribute__(x) /*NOTHING*/ #endif #ifdef NDEBUG #define wassertr(expr) {} #define wassertrv(expr, val) {} #else /* !NDEBUG */ #ifdef DEBUG #include #define wassertr(expr) assert(expr) #define wassertrv(expr, val) assert(expr) #else /* !DEBUG */ #define wassertr(expr) \ if (!(expr)) { \ wwarning("%s line %i (%s): assertion %s failed",\ __FILE__, __LINE__, __ASSERT_FUNCTION, #expr);\ return;\ } #define wassertrv(expr, val) \ if (!(expr)) { \ wwarning("%s line %i (%s): assertion %s failed",\ __FILE__, __LINE__, __ASSERT_FUNCTION, #expr);\ return (val);\ } #endif /* !DEBUG */ #endif /* !NDEBUG */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ typedef enum { WMPostWhenIdle = 1, WMPostASAP = 2, WMPostNow = 3 } WMPostingStyle; typedef enum { WNCNone = 0, WNCOnName = 1, WNCOnSender = 2 } WMNotificationCoalescing; enum { WBNotFound = INT_MIN, /* element was not found in WMBag */ WANotFound = -1 /* element was not found in WMArray */ }; typedef struct W_Array WMArray; typedef struct W_Bag WMBag; typedef struct W_Data WMData; typedef struct W_TreeNode WMTreeNode; typedef struct W_HashTable WMHashTable; typedef struct W_UserDefaults WMUserDefaults; typedef struct W_Notification WMNotification; typedef struct W_NotificationQueue WMNotificationQueue; typedef struct W_Host WMHost; typedef struct W_Connection WMConnection; typedef struct W_PropList WMPropList; /* Some typedefs for the handler stuff */ typedef void *WMHandlerID; typedef void WMCallback(void *data); typedef void WMInputProc(int fd, int mask, void *clientData); typedef int WMCompareDataProc(const void *item1, const void *item2); typedef void WMTreeWalkProc(WMTreeNode *aNode, void *data); typedef void WMFreeDataProc(void *data); /* Used by WMBag or WMArray for matching data */ typedef int WMMatchDataProc(const void *item, const void *cdata); typedef struct { int position; int count; } WMRange; /* DO NOT ACCESS THE CONTENTS OF THIS STRUCT */ typedef struct { void *table; void *nextItem; int index; } WMHashEnumerator; typedef struct { /* NULL is pointer hash */ unsigned (*hash)(const void *); /* NULL is pointer compare */ Bool (*keyIsEqual)(const void *, const void *); /* NULL does nothing */ void* (*retainKey)(const void *); /* NULL does nothing */ void (*releaseKey)(const void *); } WMHashTableCallbacks; typedef int WMArrayIterator; typedef void *WMBagIterator; typedef void WMNotificationObserverAction(void *observerData, WMNotification *notification); /* ---[ WINGs/memory.c ]-------------------------------------------------- */ void* wmalloc(size_t size); void* wrealloc(void *ptr, size_t newsize); void wfree(void *ptr); void wrelease(void *ptr); void* wretain(void *ptr); typedef void waborthandler(int); waborthandler* wsetabort(waborthandler* handler); /* ---[ WINGs/error.c ]--------------------------------------------------- */ enum { WMESSAGE_TYPE_MESSAGE, WMESSAGE_TYPE_WARNING, WMESSAGE_TYPE_ERROR, WMESSAGE_TYPE_FATAL }; #define wmessage(fmt, args...) __wmessage( __func__, __FILE__, __LINE__, WMESSAGE_TYPE_MESSAGE, fmt, ## args) #define wwarning(fmt, args...) __wmessage( __func__, __FILE__, __LINE__, WMESSAGE_TYPE_WARNING, fmt, ## args) #define werror(fmt, args...) __wmessage( __func__, __FILE__, __LINE__, WMESSAGE_TYPE_ERROR, fmt, ## args) #define wfatal(fmt, args...) __wmessage( __func__, __FILE__, __LINE__, WMESSAGE_TYPE_FATAL, fmt, ## args) void __wmessage(const char *func, const char *file, int line, int type, const char *msg, ...) __attribute__((__format__(printf,5,6))); /* ---[ WINGs/findfile.c ]------------------------------------------------ */ /* For the 4 function below, you have to free the returned string when you no longer need it */ char* wfindfile(const char *paths, const char *file); char* wfindfileinlist(char *const *path_list, const char *file); char* wfindfileinarray(WMPropList* array, const char *file); char* wexpandpath(const char *path); int wcopy_file(const char *toPath, const char *srcFile, const char *destFile); /* don't free the returned string */ char* wgethomedir(void); /* ---[ WINGs/proplist.c ]------------------------------------------------ */ int wmkdirhier(const char *path); int wrmdirhier(const char *path); /* ---[ WINGs/string.c ]-------------------------------------------------- */ char *wstrdup(const char *str); char* wstrndup(const char *str, size_t len); /* Concatenate str1 with str2 and return that in a newly malloc'ed string. * str1 and str2 can be any strings including static and constant strings. * str1 and str2 will not be modified. * Free the returned string when you're done with it. */ char* wstrconcat(const char *str1, const char *str2); /* This will append src to dst, and return dst. dst MUST be either NULL * or a string that was a result of a dynamic allocation (malloc, realloc * wmalloc, wrealloc, ...). dst CANNOT be a static or a constant string! * Modifies dst (no new string is created except if dst==NULL in which case * it is equivalent to calling wstrdup(src) ). * The returned address may be different from the original address of dst, * so always assign the returned address to avoid dangling pointers. */ char* wstrappend(char *dst, const char *src); size_t wstrlcpy(char *, const char *, size_t); size_t wstrlcat(char *, const char *, size_t); void wtokensplit(char *command, char ***argv, int *argc); char* wtokennext(char *word, char **next); char* wtokenjoin(char **list, int count); void wtokenfree(char **tokens, int count); char* wtrimspace(const char *s); /* transform `s' so that the result is safe to pass to the shell as an argument. * returns a newly allocated string. * with very heavy inspirations from NetBSD's shquote(3). */ char *wshellquote(const char *s); /* ---[ WINGs/wmisc.c ]--------------------------------------------------- */ WMRange wmkrange(int start, int count); /* ---[ WINGs/usleep.c ]-------------------------------------------------- */ void wusleep(unsigned int usec); /* ---[ WINGs/handlers.c ]------------------------------------------------ */ /* Event handlers: timer, idle, input */ WMHandlerID WMAddTimerHandler(int milliseconds, WMCallback *callback, void *cdata); WMHandlerID WMAddPersistentTimerHandler(int milliseconds, WMCallback *callback, void *cdata); void WMDeleteTimerWithClientData(void *cdata); void WMDeleteTimerHandler(WMHandlerID handlerID); WMHandlerID WMAddIdleHandler(WMCallback *callback, void *cdata); void WMDeleteIdleHandler(WMHandlerID handlerID); WMHandlerID WMAddInputHandler(int fd, int condition, WMInputProc *proc, void *clientData); void WMDeleteInputHandler(WMHandlerID handlerID); /* This function is used _only_ if you create a non-GUI program. * For GUI based programs use WMNextEvent()/WMHandleEvent() instead. * This function will handle all input/timer/idle events, then return. */ void WHandleEvents(void); /* ---[ WINGs/hashtable.c ]----------------------------------------------- */ WMHashTable* WMCreateHashTable(WMHashTableCallbacks callbacks); void WMFreeHashTable(WMHashTable *table); void WMResetHashTable(WMHashTable *table); unsigned WMCountHashTable(WMHashTable *table); void* WMHashGet(WMHashTable *table, const void *key); /* Returns True if there is a value associated with in the table, in * which case and will contain the item's internal key * address and the item's value respectively. * If there is no value associated with it will return False and in * this case and will be undefined. * Use this when you need to perform your own custom retain/release mechanism * which requires access to the keys too. */ Bool WMHashGetItemAndKey(WMHashTable *table, const void *key, void **retItem, void **retKey); /* put data in table, replacing already existing data and returning * the old value */ void* WMHashInsert(WMHashTable *table, const void *key, const void *data); void WMHashRemove(WMHashTable *table, const void *key); /* warning: do not manipulate the table while using the enumerator functions */ WMHashEnumerator WMEnumerateHashTable(WMHashTable *table); void* WMNextHashEnumeratorItem(WMHashEnumerator *enumerator); void* WMNextHashEnumeratorKey(WMHashEnumerator *enumerator); /* Returns True if there is a next element, in which case key and item * will contain the next element's key and value respectively. * If there is no next element available it will return False and in this * case key and item will be undefined. */ Bool WMNextHashEnumeratorItemAndKey(WMHashEnumerator *enumerator, void **item, void **key); /* some predefined callback sets */ extern const WMHashTableCallbacks WMIntHashCallbacks; /* sizeof(keys) are <= sizeof(void*) */ extern const WMHashTableCallbacks WMStringHashCallbacks; /* keys are strings. Strings will be copied with wstrdup() * and freed with wfree() */ extern const WMHashTableCallbacks WMStringPointerHashCallbacks; /* keys are strings, but they are not copied */ /* ---[ WINGs/array.c ]--------------------------------------------------- */ /* * WMArray use an array to store the elements. * Item indexes may be only positive integer numbers. * The array cannot contain holes in it. * * Pros: * Fast [O(1)] access to elements * Fast [O(1)] push/pop * * Cons: * A little slower [O(n)] for insertion/deletion of elements that * aren't in the end */ WMArray* WMCreateArray(int initialSize); WMArray* WMCreateArrayWithDestructor(int initialSize, WMFreeDataProc *destructor); WMArray* WMCreateArrayWithArray(WMArray *array); #define WMDuplicateArray(array) WMCreateArrayWithArray(array) void WMEmptyArray(WMArray *array); void WMFreeArray(WMArray *array); int WMGetArrayItemCount(WMArray *array); /* appends other to array. other remains unchanged */ void WMAppendArray(WMArray *array, WMArray *other); /* add will place the element at the end of the array */ void WMAddToArray(WMArray *array, void *item); /* insert will increment the index of elements after it by 1 */ void WMInsertInArray(WMArray *array, int index, void *item); /* replace and set will return the old item WITHOUT calling the * destructor on it even if its available. Free the returned item yourself. */ void* WMReplaceInArray(WMArray *array, int index, void *item); #define WMSetInArray(array, index, item) WMReplaceInArray(array, index, item) /* delete and remove will remove the elements and cause the elements * after them to decrement their indexes by 1. Also will call the * destructor on the deleted element if there's one available. */ int WMDeleteFromArray(WMArray *array, int index); #define WMRemoveFromArray(array, item) WMRemoveFromArrayMatching(array, NULL, item) int WMRemoveFromArrayMatching(WMArray *array, WMMatchDataProc *match, void *cdata); void* WMGetFromArray(WMArray *array, int index); #define WMGetFirstInArray(array, item) WMFindInArray(array, NULL, item) /* pop will return the last element from the array, also removing it * from the array. The destructor is NOT called, even if available. * Free the returned element if needed by yourself */ void* WMPopFromArray(WMArray *array); int WMFindInArray(WMArray *array, WMMatchDataProc *match, void *cdata); int WMCountInArray(WMArray *array, void *item); /* comparer must return: * < 0 if a < b * > 0 if a > b * = 0 if a = b */ void WMSortArray(WMArray *array, WMCompareDataProc *comparer); void WMMapArray(WMArray *array, void (*function)(void*, void*), void *data); WMArray* WMGetSubarrayWithRange(WMArray* array, WMRange aRange); void* WMArrayFirst(WMArray *array, WMArrayIterator *iter); void* WMArrayLast(WMArray *array, WMArrayIterator *iter); /* The following 2 functions assume that the array doesn't change between calls */ void* WMArrayNext(WMArray *array, WMArrayIterator *iter); void* WMArrayPrevious(WMArray *array, WMArrayIterator *iter); /* The following 2 macros assume that the array doesn't change in the for loop */ #define WM_ITERATE_ARRAY(array, var, i) \ for (var = WMArrayFirst(array, &(i)); (i) != WANotFound; \ var = WMArrayNext(array, &(i))) #define WM_ETARETI_ARRAY(array, var, i) \ for (var = WMArrayLast(array, &(i)); (i) != WANotFound; \ var = WMArrayPrevious(array, &(i))) /* ---[ WINGs/bagtree.c ]------------------------------------------------- */ /* * Tree bags use a red-black tree for storage. * Item indexes may be any integer number. * * Pros: * O(lg n) insertion/deletion/search * Good for large numbers of elements with sparse indexes * * Cons: * O(lg n) insertion/deletion/search * Slow for storing small numbers of elements */ #define WMCreateBag(size) WMCreateTreeBag() #define WMCreateBagWithDestructor(size, d) WMCreateTreeBagWithDestructor(d) WMBag* WMCreateTreeBag(void); WMBag* WMCreateTreeBagWithDestructor(WMFreeDataProc *destructor); int WMGetBagItemCount(WMBag *bag); void WMAppendBag(WMBag *bag, WMBag *other); void WMPutInBag(WMBag *bag, void *item); /* insert will increment the index of elements after it by 1 */ void WMInsertInBag(WMBag *bag, int index, void *item); /* erase will remove the element from the bag, * but will keep the index of the other elements unchanged */ int WMEraseFromBag(WMBag *bag, int index); /* delete and remove will remove the elements and cause the elements * after them to decrement their indexes by 1 */ int WMDeleteFromBag(WMBag *bag, int index); int WMRemoveFromBag(WMBag *bag, void *item); void* WMGetFromBag(WMBag *bag, int index); void* WMReplaceInBag(WMBag *bag, int index, void *item); #define WMSetInBag(bag, index, item) WMReplaceInBag(bag, index, item) /* comparer must return: * < 0 if a < b * > 0 if a > b * = 0 if a = b */ void WMSortBag(WMBag *bag, WMCompareDataProc *comparer); void WMEmptyBag(WMBag *bag); void WMFreeBag(WMBag *bag); void WMMapBag(WMBag *bag, void (*function)(void*, void*), void *data); int WMGetFirstInBag(WMBag *bag, void *item); int WMCountInBag(WMBag *bag, void *item); int WMFindInBag(WMBag *bag, WMMatchDataProc *match, void *cdata); void* WMBagFirst(WMBag *bag, WMBagIterator *ptr); void* WMBagLast(WMBag *bag, WMBagIterator *ptr); /* The following 4 functions assume that the bag doesn't change between calls */ void* WMBagNext(WMBag *bag, WMBagIterator *ptr); void* WMBagPrevious(WMBag *bag, WMBagIterator *ptr); void* WMBagIteratorAtIndex(WMBag *bag, int index, WMBagIterator *ptr); int WMBagIndexForIterator(WMBag *bag, WMBagIterator ptr); /* The following 2 macros assume that the bag doesn't change in the for loop */ #define WM_ITERATE_BAG(bag, var, i) \ for (var = WMBagFirst(bag, &(i)); (i) != NULL; \ var = WMBagNext(bag, &(i))) #define WM_ETARETI_BAG(bag, var, i) \ for (var = WMBagLast(bag, &(i)); (i) != NULL; \ var = WMBagPrevious(bag, &(i))) /* ---[ WINGs/data.c ]---------------------------------------------------- */ /* WMData handling */ /* Creating/destroying data */ WMData* WMCreateDataWithCapacity(unsigned capacity); WMData* WMCreateDataWithLength(unsigned length); WMData* WMCreateDataWithBytes(const void *bytes, unsigned length); /* destructor is a function called to free the data when releasing the data * object, or NULL if no freeing of data is necesary. */ WMData* WMCreateDataWithBytesNoCopy(void *bytes, unsigned length, WMFreeDataProc *destructor); WMData* WMCreateDataWithData(WMData *aData); WMData* WMRetainData(WMData *aData); void WMReleaseData(WMData *aData); /* Adjusting capacity */ void WMSetDataCapacity(WMData *aData, unsigned capacity); void WMSetDataLength(WMData *aData, unsigned length); void WMIncreaseDataLengthBy(WMData *aData, unsigned extraLength); /* Accessing data */ const void* WMDataBytes(WMData *aData); void WMGetDataBytes(WMData *aData, void *buffer); void WMGetDataBytesWithLength(WMData *aData, void *buffer, unsigned length); void WMGetDataBytesWithRange(WMData *aData, void *buffer, WMRange aRange); WMData* WMGetSubdataWithRange(WMData *aData, WMRange aRange); /* Testing data */ Bool WMIsDataEqualToData(WMData *aData, WMData *anotherData); unsigned WMGetDataLength(WMData *aData); /* Adding data */ void WMAppendDataBytes(WMData *aData, const void *bytes, unsigned length); void WMAppendData(WMData *aData, WMData *anotherData); /* Modifying data */ void WMReplaceDataBytesInRange(WMData *aData, WMRange aRange, const void *bytes); void WMResetDataBytesInRange(WMData *aData, WMRange aRange); void WMSetData(WMData *aData, WMData *anotherData); void WMSetDataFormat(WMData *aData, unsigned format); unsigned WMGetDataFormat(WMData *aData); /* Storing data */ /* ---[ WINGs/tree.c ]---------------------------------------------------- */ /* Generic Tree and TreeNode */ WMTreeNode* WMCreateTreeNode(void *data); WMTreeNode* WMCreateTreeNodeWithDestructor(void *data, WMFreeDataProc *destructor); WMTreeNode* WMInsertItemInTree(WMTreeNode *parent, int index, void *item); #define WMAddItemToTree(parent, item) WMInsertItemInTree(parent, -1, item) WMTreeNode* WMInsertNodeInTree(WMTreeNode *parent, int index, WMTreeNode *aNode); #define WMAddNodeToTree(parent, aNode) WMInsertNodeInTree(parent, -1, aNode) void WMDestroyTreeNode(WMTreeNode *aNode); void WMDeleteLeafForTreeNode(WMTreeNode *aNode, int index); void WMRemoveLeafForTreeNode(WMTreeNode *aNode, void *leaf); void* WMReplaceDataForTreeNode(WMTreeNode *aNode, void *newData); void* WMGetDataForTreeNode(WMTreeNode *aNode); int WMGetTreeNodeDepth(WMTreeNode *aNode); WMTreeNode* WMGetParentForTreeNode(WMTreeNode *aNode); /* Sort only the leaves of the passed node */ void WMSortLeavesForTreeNode(WMTreeNode *aNode, WMCompareDataProc *comparer); /* Sort all tree recursively starting from the passed node */ void WMSortTree(WMTreeNode *aNode, WMCompareDataProc *comparer); /* Returns the first node which matches node's data with cdata by 'match' */ WMTreeNode* WMFindInTree(WMTreeNode *aTree, WMMatchDataProc *match, void *cdata); /* Returns the first node where node's data matches cdata by 'match' and node is * at most `limit' depths down from `aTree'. */ WMTreeNode *WMFindInTreeWithDepthLimit(WMTreeNode * aTree, WMMatchDataProc * match, void *cdata, int limit); /* Returns first tree node that has data == cdata */ #define WMGetFirstInTree(aTree, cdata) WMFindInTree(aTree, NULL, cdata) /* Walk every node of aNode with `walk' */ void WMTreeWalk(WMTreeNode *aNode, WMTreeWalkProc * walk, void *data, Bool DepthFirst); /* ---[ WINGs/data.c ]---------------------------------------------------- */ WMNotification* WMCreateNotification(const char *name, void *object, void *clientData); void WMReleaseNotification(WMNotification *notification); WMNotification* WMRetainNotification(WMNotification *notification); void* WMGetNotificationClientData(WMNotification *notification); void* WMGetNotificationObject(WMNotification *notification); const char* WMGetNotificationName(WMNotification *notification); void WMAddNotificationObserver(WMNotificationObserverAction *observerAction, void *observer, const char *name, void *object); void WMPostNotification(WMNotification *notification); void WMRemoveNotificationObserver(void *observer); void WMRemoveNotificationObserverWithName(void *observer, const char *name, void *object); void WMPostNotificationName(const char *name, void *object, void *clientData); WMNotificationQueue* WMGetDefaultNotificationQueue(void); WMNotificationQueue* WMCreateNotificationQueue(void); void WMDequeueNotificationMatching(WMNotificationQueue *queue, WMNotification *notification, unsigned mask); void WMEnqueueNotification(WMNotificationQueue *queue, WMNotification *notification, WMPostingStyle postingStyle); void WMEnqueueCoalesceNotification(WMNotificationQueue *queue, WMNotification *notification, WMPostingStyle postingStyle, unsigned coalesceMask); /* ---[ WINGs/proplist.c ]------------------------------------------------ */ /* Property Lists handling */ void WMPLSetCaseSensitive(Bool caseSensitive); WMPropList* WMCreatePLString(const char *str); WMPropList* WMCreatePLData(WMData *data); WMPropList* WMCreatePLDataWithBytes(const unsigned char *bytes, unsigned int length); WMPropList* WMCreatePLDataWithBytesNoCopy(unsigned char *bytes, unsigned int length, WMFreeDataProc *destructor); WMPropList* WMCreatePLArray(WMPropList *elem, ...); WMPropList* WMCreatePLDictionary(WMPropList *key, WMPropList *value, ...); WMPropList* WMRetainPropList(WMPropList *plist); void WMReleasePropList(WMPropList *plist); /* Objects inserted in arrays and dictionaries will be retained, * so you can safely release them after insertion. * For dictionaries both the key and value are retained. * Objects removed from arrays or dictionaries are released */ void WMInsertInPLArray(WMPropList *plist, int index, WMPropList *item); void WMAddToPLArray(WMPropList *plist, WMPropList *item); void WMDeleteFromPLArray(WMPropList *plist, int index); void WMRemoveFromPLArray(WMPropList *plist, WMPropList *item); void WMPutInPLDictionary(WMPropList *plist, WMPropList *key, WMPropList *value); void WMRemoveFromPLDictionary(WMPropList *plist, WMPropList *key); /* It will insert all key/value pairs from source into dest, overwriting * the values with the same keys from dest, keeping all values with keys * only present in dest unchanged */ WMPropList* WMMergePLDictionaries(WMPropList *dest, WMPropList *source, Bool recursive); /* It will remove all key/value pairs from dest for which there is an * identical key/value present in source. Entires only present in dest, or * which have different values in dest than in source will be preserved. */ WMPropList* WMSubtractPLDictionaries(WMPropList *dest, WMPropList *source, Bool recursive); int WMGetPropListItemCount(WMPropList *plist); Bool WMIsPLString(WMPropList *plist); Bool WMIsPLData(WMPropList *plist); Bool WMIsPLArray(WMPropList *plist); Bool WMIsPLDictionary(WMPropList *plist); Bool WMIsPropListEqualTo(WMPropList *plist, WMPropList *other); /* Returns a reference. Do not free it! */ char* WMGetFromPLString(WMPropList *plist); /* Returns a reference. Do not free it! */ WMData* WMGetFromPLData(WMPropList *plist); /* Returns a reference. Do not free it! */ const unsigned char* WMGetPLDataBytes(WMPropList *plist); int WMGetPLDataLength(WMPropList *plist); /* Returns a reference. */ WMPropList* WMGetFromPLArray(WMPropList *plist, int index); /* Returns a reference. */ WMPropList* WMGetFromPLDictionary(WMPropList *plist, WMPropList *key); /* Returns a PropList array with all the dictionary keys. Release it when * you're done. Keys in array are retained from the original dictionary * not copied and need NOT to be released individually. */ WMPropList* WMGetPLDictionaryKeys(WMPropList *plist); /* Creates only the first level deep object. All the elements inside are * retained from the original */ WMPropList* WMShallowCopyPropList(WMPropList *plist); /* Makes a completely separate replica of the original proplist */ WMPropList* WMDeepCopyPropList(WMPropList *plist); WMPropList* WMCreatePropListFromDescription(const char *desc); /* Free the returned string when you no longer need it */ char* WMGetPropListDescription(WMPropList *plist, Bool indented); WMPropList* WMReadPropListFromFile(const char *file); WMPropList* WMReadPropListFromPipe(const char *command); Bool WMWritePropListToFile(WMPropList *plist, const char *path); /* ---[ WINGs/userdefaults.c ]-------------------------------------------- */ /* don't free the returned string */ const char* wusergnusteppath(void); /* Free the returned string when you no longer need it */ char* wdefaultspathfordomain(const char *domain); /* Free the returned string when you no longer need it */ char* wglobaldefaultspathfordomain(const char *domain); WMUserDefaults* WMGetStandardUserDefaults(void); WMUserDefaults* WMGetDefaultsFromPath(const char *path); void WMSynchronizeUserDefaults(WMUserDefaults *database); void WMSaveUserDefaults(WMUserDefaults *database); void WMEnableUDPeriodicSynchronization(WMUserDefaults *database, Bool enable); /* Returns a WMPropList array with all the keys in the user defaults database. * Free the array with WMReleasePropList() when no longer needed. * Keys in array are just retained references to the original keys */ WMPropList* WMGetUDKeys(WMUserDefaults *database); WMPropList* WMGetUDObjectForKey(WMUserDefaults *database, const char *defaultName); void WMSetUDObjectForKey(WMUserDefaults *database, WMPropList *object, const char *defaultName); void WMRemoveUDObjectForKey(WMUserDefaults *database, const char *defaultName); /* Returns a reference. Do not free it! */ char* WMGetUDStringForKey(WMUserDefaults *database, const char *defaultName); int WMGetUDIntegerForKey(WMUserDefaults *database, const char *defaultName); float WMGetUDFloatForKey(WMUserDefaults *database, const char *defaultName); Bool WMGetUDBoolForKey(WMUserDefaults *database, const char *defaultName); void WMSetUDStringForKey(WMUserDefaults *database, const char *value, const char *defaultName); void WMSetUDIntegerForKey(WMUserDefaults *database, int value, const char *defaultName); void WMSetUDFloatForKey(WMUserDefaults *database, float value, const char *defaultName); void WMSetUDBoolForKey(WMUserDefaults *database, Bool value, const char *defaultName); WMPropList* WMGetUDSearchList(WMUserDefaults *database); void WMSetUDSearchList(WMUserDefaults *database, WMPropList *list); extern char *WMUserDefaultsDidChangeNotification; /* ---[ WINGs/menuparser.c ]---------------------------------------------- */ typedef struct w_menu_parser *WMenuParser; WMenuParser WMenuParserCreate(const char *file_name, void *file, const char *include_default_paths); void WMenuParserRegisterSimpleMacro(WMenuParser parser, const char *name, const char *value); void WMenuParserError(WMenuParser parser, const char *msg, ...) __attribute__ ((format (printf, 2, 3))); const char *WMenuParserGetFilename(WMenuParser parser); Bool WMenuParserGetLine(WMenuParser parser, char **title, char **command, char **parameter, char **shortcut); void WMenuParserDelete(WMenuParser parser); /*-------------------------------------------------------------------------*/ /* Global variables */ extern int WCErrorCode; /*-------------------------------------------------------------------------*/ #ifdef __cplusplus } #endif /* __cplusplus */ #endif WindowMaker-0.95.5/WINGs/WINGs/WINGsP.h0000644000175000017500000004074712214432632014073 00000000000000#ifndef _WINGSP_H_ #define _WINGSP_H_ #include #include #include #if WINGS_H_VERSION < 20041030 #error There_is_an_old_WINGs.h_file_somewhere_in_your_system._Please_remove_it. #endif #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* ---[ global settigns ]------------------------------------------------- */ #define DOUBLE_BUFFER 1 #define SCROLLER_WIDTH 20 typedef struct _WINGsConfiguration { char *systemFont; char *boldSystemFont; int defaultFontSize; Bool antialiasedText; char *floppyPath; unsigned doubleClickDelay; unsigned mouseWheelUp; unsigned mouseWheelDown; } _WINGsConfiguration; extern char *_WINGS_progname; extern _WINGsConfiguration WINGsConfiguration; extern struct W_Application WMApplication; /* ---[ drag*.c ]--------------------------------------------------------- */ /* * We need to define these structure first because they are used in W_Screen * below. The rest of drag-related stuff if after because it needs W_Screen */ #define XDND_VERSION 3 typedef struct W_DraggingInfo { unsigned char protocolVersion; /* version supported on the other side */ Time timestamp; Atom sourceAction; Atom destinationAction; struct W_DragSourceInfo* sourceInfo; /* infos needed by source */ struct W_DragDestinationInfo* destInfo; /* infos needed by destination */ } W_DraggingInfo; /* ---[ Structures from WINGs.h ]----------------------------------------- */ /* Pre-definition of internal structs */ typedef struct W_Color W_Color; typedef struct W_Pixmap W_Pixmap; typedef struct W_View W_View; typedef struct W_FocusInfo { W_View *toplevel; W_View *focused; /* view that has the focus in this toplevel */ struct W_FocusInfo *next; } W_FocusInfo; typedef struct W_Screen { Display *display; int screen; int depth; Colormap colormap; Visual *visual; Time lastEventTime; Window rootWin; W_View *rootView; RContext *rcontext; struct W_IMContext *imctx; struct _XftDraw *xftdraw; /* shared XftDraw */ /* application related */ W_FocusInfo *focusInfo; RImage *applicationIconImage; /* image (can have alpha channel) */ W_Pixmap *applicationIconPixmap; /* pixmap - no alpha channel */ Window applicationIconWindow; struct W_Window *windowList; /* list of windows in the app */ Window groupLeader; /* the leader of the application */ /* also used for other things */ struct W_SelectionHandlers *selectionHandlerList; struct { unsigned int hasAppIcon:1; unsigned int simpleApplication:1; } aflags; WMOpenPanel *sharedOpenPanel; WMSavePanel *sharedSavePanel; struct W_FontPanel *sharedFontPanel; struct W_ColorPanel *sharedColorPanel; Pixmap stipple; W_View *dragSourceView; W_DraggingInfo dragInfo; /* colors */ W_Color *white; W_Color *black; W_Color *gray; W_Color *darkGray; GC stippleGC; GC copyGC; GC clipGC; GC monoGC; /* GC for 1bpp visuals */ GC xorGC; GC ixorGC; /* IncludeInferiors XOR */ GC drawStringGC; /* for WMDrawString() */ GC drawImStringGC; /* for WMDrawImageString() */ struct W_Font *normalFont; struct W_Font *boldFont; WMHashTable *fontCache; Bool antialiasedText; unsigned int ignoredModifierMask; /* modifiers to ignore when typing txt */ struct W_Balloon *balloon; W_Pixmap *checkButtonImageOn; W_Pixmap *checkButtonImageOff; W_Pixmap *radioButtonImageOn; W_Pixmap *radioButtonImageOff; W_Pixmap *buttonArrow; W_Pixmap *pushedButtonArrow; W_Pixmap *scrollerDimple; W_Pixmap *upArrow; W_Pixmap *downArrow; W_Pixmap *leftArrow; W_Pixmap *rightArrow; W_Pixmap *hiUpArrow; W_Pixmap *hiDownArrow; W_Pixmap *hiLeftArrow; W_Pixmap *hiRightArrow; W_Pixmap *pullDownIndicator; W_Pixmap *popUpIndicator; W_Pixmap *checkMark; W_Pixmap *homeIcon; W_Pixmap *altHomeIcon; W_Pixmap *trashcanIcon; W_Pixmap *altTrashcanIcon; W_Pixmap *createDirIcon; W_Pixmap *altCreateDirIcon; W_Pixmap *disketteIcon; W_Pixmap *altDisketteIcon; W_Pixmap *unmountIcon; W_Pixmap *altUnmountIcon; W_Pixmap *magnifyIcon; /*W_Pixmap *altMagnifyIcon;*/ W_Pixmap *wheelIcon; W_Pixmap *grayIcon; W_Pixmap *rgbIcon; W_Pixmap *cmykIcon; W_Pixmap *hsbIcon; W_Pixmap *customPaletteIcon; W_Pixmap *colorListIcon; W_Pixmap *defaultObjectIcon; Cursor defaultCursor; Cursor textCursor; Cursor invisibleCursor; Atom attribsAtom; /* GNUstepWindowAttributes */ Atom deleteWindowAtom; /* WM_DELETE_WINDOW */ Atom protocolsAtom; /* _XA_WM_PROTOCOLS */ Atom clipboardAtom; /* CLIPBOARD */ Atom xdndAwareAtom; /* XdndAware */ Atom xdndSelectionAtom; Atom xdndEnterAtom; Atom xdndLeaveAtom; Atom xdndPositionAtom; Atom xdndDropAtom; Atom xdndFinishedAtom; Atom xdndTypeListAtom; Atom xdndActionListAtom; Atom xdndActionDescriptionAtom; Atom xdndStatusAtom; Atom xdndActionCopy; Atom xdndActionMove; Atom xdndActionLink; Atom xdndActionAsk; Atom xdndActionPrivate; Atom wmIconDragOffsetAtom; Atom wmStateAtom; /* WM_STATE */ Atom utf8String; Atom netwmName; Atom netwmIconName; Atom netwmIcon; /* stuff for detecting double-clicks */ Time lastClickTime; /* time of last mousedown event */ Window lastClickWindow; /* window of the last mousedown */ struct W_View *modalView; unsigned modalLoop:1; unsigned ignoreNextDoubleClick:1; } W_Screen; #define W_DRAWABLE(scr) (scr)->rcontext->drawable /* ---[ configuration.c ]------------------------------------------------- */ void W_ReadConfigurations(void); /* ---[ drag*.c ]--------------------------------------------------------- */ typedef struct W_DragOperationItem { WMDragOperationType type; char* text; } W_DragOperationItem; typedef void* W_DndState(WMView *destView, XClientMessageEvent *event, WMDraggingInfo *info); typedef struct W_DragSourceInfo { WMView *sourceView; Window destinationWindow; W_DndState *state; WMSelectionProcs *selectionProcs; Window icon; WMPoint imageLocation; WMPoint mouseOffset; /* mouse pos in icon */ Cursor dragCursor; WMRect noPositionMessageZone; Atom firstThreeTypes[3]; } W_DragSourceInfo; typedef struct W_DragDestinationInfo { WMView *destView; WMView *xdndAwareView; Window sourceWindow; W_DndState *state; Bool sourceActionChanged; WMArray *sourceTypes; WMArray *requiredTypes; Bool typeListAvailable; WMArray *dropDatas; } W_DragDestinationInfo; /* -- Functions -- */ void W_HandleDNDClientMessage(WMView *toplevel, XClientMessageEvent *event); Atom W_OperationToAction(WMScreen *scr, WMDragOperationType operation); WMDragOperationType W_ActionToOperation(WMScreen *scr, Atom action); void W_FreeDragOperationItem(void* item); Bool W_SendDnDClientMessage(Display *dpy, Window win, Atom message, unsigned long data1, unsigned long data2, unsigned long data3, unsigned long data4, unsigned long data5); void W_DragSourceStartTimer(WMDraggingInfo *info); void W_DragSourceStopTimer(void); void W_DragSourceStateHandler(WMDraggingInfo *info, XClientMessageEvent *event); void W_DragDestinationStartTimer(WMDraggingInfo *info); void W_DragDestinationStopTimer(void); void W_DragDestinationStoreEnterMsgInfo(WMDraggingInfo *info, WMView *toplevel, XClientMessageEvent *event); void W_DragDestinationStorePositionMsgInfo(WMDraggingInfo *info, WMView *toplevel, XClientMessageEvent *event); void W_DragDestinationCancelDropOnEnter(WMView *toplevel, WMDraggingInfo *info); void W_DragDestinationStateHandler(WMDraggingInfo *info, XClientMessageEvent *event); void W_DragDestinationInfoClear(WMDraggingInfo *info); void W_FreeViewXdndPart(WMView *view); /* ---[ handlers.c ]------------------------------------------------------ */ Bool W_CheckIdleHandlers(void); void W_CheckTimerHandlers(void); Bool W_HandleInputEvents(Bool waitForInput, int inputfd); /* ---[ notification.c ]-------------------------------------------------- */ void W_InitNotificationCenter(void); void W_FlushASAPNotificationQueue(void); void W_FlushIdleNotificationQueue(void); /* ---[ selection.c ]----------------------------------------------------- */ void W_HandleSelectionEvent(XEvent *event); /* ---[ wapplication.c ]-------------------------------------------------- */ typedef struct W_Application { char *applicationName; int argc; char **argv; char *resourcePath; } W_Application; /* -- Functions -- */ void W_InitApplication(WMScreen *scr); Bool W_ApplicationInitialized(void); /* ---[ wballoon.c ]------------------------------------------------------ */ struct W_Balloon *W_CreateBalloon(WMScreen *scr); void W_BalloonHandleEnterView(WMView *view); void W_BalloonHandleLeaveView(WMView *view); /* ---[ wcolor.c ]-------------------------------------------------------- */ struct W_Color { struct W_Screen *screen; XColor color; unsigned short alpha; short refCount; GC gc; struct { unsigned int exact:1; } flags; }; #define W_PIXEL(c) (c)->color.pixel /* ---[ wevent.c ]-------------------------------------------------------- */ typedef struct W_EventHandler { unsigned long eventMask; WMEventProc *proc; void *clientData; } W_EventHandler; /* -- Functions -- */ void W_CallDestroyHandlers(W_View *view); /* ---[ wfont.c ]--------------------------------------------------------- */ typedef struct W_Font { struct W_Screen *screen; struct _XftFont *font; short height; short y; short refCount; char *name; } W_Font; #define W_FONTID(f) (f)->font->fid /* ---[ widgets.c ]------------------------------------------------------- */ #define WC_UserWidget 128 #define CHECK_CLASS(widget, class) assert(W_CLASS(widget)==(class)) #define W_CLASS(widget) (((W_WidgetType*)(widget))->widgetClass) #define W_VIEW(widget) (((W_WidgetType*)(widget))->view) /* -- Functions -- */ W_Class W_RegisterUserWidget(void); /* ---[ winputmethod.c ]-------------------------------------------------- */ void W_InitIM(WMScreen *scr); void W_CreateIC(WMView *view); void W_DestroyIC(WMView *view); void W_FocusIC(WMView *view); void W_UnFocusIC(WMView *view); void W_SetPreeditPositon(W_View *view, int x, int y); int W_LookupString(W_View *view, XKeyPressedEvent *event, char *buffer, int buflen, KeySym *keysym, Status *status); /* ---[ wmisc.c ]--------------------------------------------------------- */ void W_DrawRelief(W_Screen *scr, Drawable d, int x, int y, unsigned int width, unsigned int height, WMReliefType relief); void W_DrawReliefWithGC(W_Screen *scr, Drawable d, int x, int y, unsigned int width, unsigned int height, WMReliefType relief, GC black, GC dark, GC light, GC white); void W_PaintTextAndImage(W_View *view, int wrap, WMColor *textColor, W_Font *font, WMReliefType relief, const char *text, WMAlignment alignment, W_Pixmap *image, WMImagePosition position, WMColor *backColor, int ofs); void W_PaintText(W_View *view, Drawable d, WMFont *font, int x, int y, int width, WMAlignment alignment, WMColor *color, int wrap, const char *text, int length); int W_GetTextHeight(WMFont *font, const char *text, int width, int wrap); /* ---[ wpixmap.c ]------------------------------------------------------- */ struct W_Pixmap { struct W_Screen *screen; Pixmap pixmap; Pixmap mask; unsigned short width; unsigned short height; short depth; short refCount; }; /* ---[ wview.c ]--------------------------------------------------------- */ typedef struct W_ViewDelegate { void *data; void (*didMove)(struct W_ViewDelegate*, WMView*); void (*didResize)(struct W_ViewDelegate*, WMView*); void (*willMove)(struct W_ViewDelegate*, WMView*, int*, int*); void (*willResize)(struct W_ViewDelegate*, WMView*, unsigned int*, unsigned int*); } W_ViewDelegate; struct W_View { struct W_Screen *screen; WMWidget *self; /* must point to the widget the view belongs to */ W_ViewDelegate *delegate; Window window; WMSize size; short topOffs; short leftOffs; short bottomOffs; short rightOffs; WMPoint pos; struct W_View *nextFocusChain; /* next/prev in focus chain */ struct W_View *prevFocusChain; struct W_View *nextResponder; /* next to receive keyboard events */ struct W_View *parent; /* parent WMView */ struct W_View *childrenList; /* first in list of child windows */ struct W_View *nextSister; /* next on parent's children list */ WMArray *eventHandlers; /* event handlers for this window */ unsigned long attribFlags; XSetWindowAttributes attribs; void *hangedData; /* data holder for user program */ WMColor *backColor; Cursor cursor; Atom *droppableTypes; struct W_DragSourceProcs *dragSourceProcs; struct W_DragDestinationProcs *dragDestinationProcs; WMPixmap *dragImage; int helpContext; XIC xic; struct { unsigned int realized:1; unsigned int mapped:1; unsigned int parentDying:1; unsigned int dying:1; /* the view is being destroyed */ unsigned int topLevel:1; /* is a top level window */ unsigned int root:1; /* is the root window */ unsigned int mapWhenRealized:1; /* map the view when it's realized */ unsigned int alreadyDead:1; /* view was freed */ unsigned int dontCompressMotion:1; /* motion notify event compress */ unsigned int notifySizeChanged:1; unsigned int dontCompressExpose:1; /* expose event compress */ /* toplevel only */ unsigned int worksWhenModal:1; unsigned int pendingRelease1:1; unsigned int pendingRelease2:1; unsigned int pendingRelease3:1; unsigned int pendingRelease4:1; unsigned int pendingRelease5:1; unsigned int xdndHintSet:1; } flags; int refCount; }; #define W_VIEW_REALIZED(view) (view)->flags.realized #define W_VIEW_MAPPED(view) (view)->flags.mapped #define W_VIEW_DISPLAY(view) (view)->screen->display #define W_VIEW_SCREEN(view) (view)->screen #define W_VIEW_DRAWABLE(view) (view)->window #define W_VIEW_WIDTH(view) (view)->size.width #define W_VIEW_HEIGHT(view) (view)->size.height /* -- Functions -- */ W_View *W_GetViewForXWindow(Display *display, Window window); W_View *W_CreateView(W_View *parent); W_View *W_CreateTopView(W_Screen *screen); W_View *W_CreateUnmanagedTopView(W_Screen *screen); W_View *W_CreateRootView(W_Screen *screen); void W_DestroyView(W_View *view); void W_RealizeView(W_View *view); void W_RedisplayView(WMView *view); void W_ReparentView(W_View *view, W_View *newParent, int x, int y); void W_RaiseView(W_View *view); void W_LowerView(W_View *view); void W_MapView(W_View *view); void W_MapSubviews(W_View *view); void W_UnmapSubviews(W_View *view); W_View *W_TopLevelOfView(W_View *view); void W_UnmapView(W_View *view); WMView *W_RetainView(WMView *view); void W_ReleaseView(WMView *view); void W_MoveView(W_View *view, int x, int y); void W_ResizeView(W_View *view, unsigned int width, unsigned int height); void W_SetViewBackgroundColor(W_View *view, WMColor *color); void W_SetViewCursor(W_View *view, Cursor cursor); void W_SetFocusOfTopLevel(W_View *toplevel, W_View *view); W_View *W_FocusedViewOfToplevel(W_View *view); void W_BroadcastMessage(W_View *targetParent, XEvent *event); void W_DispatchMessage(W_View *target, XEvent *event); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* _WINGSP_H_ */ WindowMaker-0.95.5/WINGs/wview.c0000644000175000017500000003513712214432632013226 00000000000000 #include "WINGsP.h" #include /* the notifications about views */ char *WMViewSizeDidChangeNotification = "WMViewSizeDidChangeNotification"; char *WMViewFocusDidChangeNotification = "WMViewFocusDidChangeNotification"; char *WMViewRealizedNotification = "WMViewRealizedNotification"; #define EVENT_MASK \ KeyPressMask|KeyReleaseMask|ButtonPressMask|ButtonReleaseMask| \ EnterWindowMask|LeaveWindowMask|PointerMotionMask|ExposureMask| \ VisibilityChangeMask|FocusChangeMask|PropertyChangeMask|\ SubstructureNotifyMask|SubstructureRedirectMask static XSetWindowAttributes defAtts = { None, /* background_pixmap */ 0, /* background_pixel */ CopyFromParent, /* border_pixmap */ 0, /* border_pixel */ ForgetGravity, /* bit_gravity */ ForgetGravity, /* win_gravity */ NotUseful, /* backing_store */ (unsigned)~0, /* backing_planes */ 0, /* backing_pixel */ False, /* save_under */ EVENT_MASK, /* event_mask */ 0, /* do_not_propagate_mask */ False, /* override_redirect */ None, /* colormap */ None /* cursor */ }; static XContext ViewContext = 0; /* context for views */ W_View *W_GetViewForXWindow(Display * display, Window window) { W_View *view; if (XFindContext(display, window, ViewContext, (XPointer *) & view) == 0) { return view; } return NULL; } static void unparentView(W_View * view) { /* remove from parent's children list */ if (view->parent != NULL) { W_View *ptr; ptr = view->parent->childrenList; if (ptr == view) { view->parent->childrenList = view->nextSister; } else { while (ptr != NULL) { if (ptr->nextSister == view) { ptr->nextSister = view->nextSister; break; } ptr = ptr->nextSister; } } } view->parent = NULL; } static void adoptChildView(W_View * view, W_View * child) { child->nextSister = NULL; /* add to end of children list of parent */ if (view->childrenList == NULL) { view->childrenList = child; } else { W_View *ptr; ptr = view->childrenList; while (ptr->nextSister != NULL) ptr = ptr->nextSister; ptr->nextSister = child; } child->parent = view; } static W_View *createView(W_Screen * screen, W_View * parent) { W_View *view; if (ViewContext == 0) ViewContext = XUniqueContext(); view = wmalloc(sizeof(W_View)); view->screen = screen; if (parent != NULL) { /* attributes are not valid for root window */ view->attribFlags = CWEventMask | CWBitGravity; view->attribs = defAtts; view->attribFlags |= CWBackPixel | CWColormap | CWBorderPixel; view->attribs.background_pixel = W_PIXEL(screen->gray); view->attribs.border_pixel = W_PIXEL(screen->black); view->attribs.colormap = screen->colormap; view->backColor = WMRetainColor(screen->gray); adoptChildView(parent, view); } view->xic = 0; view->refCount = 1; view->eventHandlers = WMCreateArrayWithDestructor(4, wfree); return view; } W_View *W_CreateView(W_View * parent) { return createView(parent->screen, parent); } W_View *W_CreateRootView(W_Screen * screen) { W_View *view; view = createView(screen, NULL); view->window = screen->rootWin; view->flags.realized = 1; view->flags.mapped = 1; view->flags.root = 1; view->size.width = WidthOfScreen(ScreenOfDisplay(screen->display, screen->screen)); view->size.height = HeightOfScreen(ScreenOfDisplay(screen->display, screen->screen)); return view; } W_View *W_CreateTopView(W_Screen * screen) { W_View *view; view = createView(screen, screen->rootView); if (!view) return NULL; view->flags.topLevel = 1; view->attribs.event_mask |= StructureNotifyMask; return view; } W_View *W_CreateUnmanagedTopView(W_Screen * screen) { W_View *view; view = createView(screen, screen->rootView); if (!view) return NULL; view->flags.topLevel = 1; view->attribs.event_mask |= StructureNotifyMask; view->attribFlags |= CWOverrideRedirect; view->attribs.override_redirect = True; return view; } void W_RealizeView(W_View * view) { Window parentWID; Display *dpy = view->screen->display; W_View *ptr; assert(view->size.width > 0); assert(view->size.height > 0); if (view->parent && !view->parent->flags.realized) { wwarning("trying to realize widget of unrealized parent"); return; } if (!view->flags.realized) { parentWID = view->parent->window; view->window = XCreateWindow(dpy, parentWID, view->pos.x, view->pos.y, view->size.width, view->size.height, 0, view->screen->depth, InputOutput, view->screen->visual, view->attribFlags, &view->attribs); XSaveContext(dpy, view->window, ViewContext, (XPointer) view); view->flags.realized = 1; if (view->flags.mapWhenRealized) { W_MapView(view); view->flags.mapWhenRealized = 0; } WMPostNotificationName(WMViewRealizedNotification, view, NULL); } /* realize children */ ptr = view->childrenList; while (ptr != NULL) { W_RealizeView(ptr); ptr = ptr->nextSister; } } void W_ReparentView(W_View * view, W_View * newParent, int x, int y) { Display *dpy = view->screen->display; assert(!view->flags.topLevel); unparentView(view); adoptChildView(newParent, view); if (view->flags.realized) { if (newParent->flags.realized) { XReparentWindow(dpy, view->window, newParent->window, x, y); } else { wwarning("trying to reparent realized view to unrealized parent"); return; } } view->pos.x = x; view->pos.y = y; } void W_RaiseView(W_View * view) { if (W_VIEW_REALIZED(view)) XRaiseWindow(W_VIEW_DISPLAY(view), W_VIEW_DRAWABLE(view)); } void W_LowerView(W_View * view) { if (W_VIEW_REALIZED(view)) XLowerWindow(W_VIEW_DISPLAY(view), W_VIEW_DRAWABLE(view)); } void W_MapView(W_View * view) { if (!view->flags.mapped) { if (view->flags.realized) { XMapRaised(view->screen->display, view->window); XFlush(view->screen->display); view->flags.mapped = 1; } else { view->flags.mapWhenRealized = 1; } } } /* * W_MapSubviews- * maps all children of the current view that where already realized. */ void W_MapSubviews(W_View * view) { XMapSubwindows(view->screen->display, view->window); XFlush(view->screen->display); view = view->childrenList; while (view) { view->flags.mapped = 1; view->flags.mapWhenRealized = 0; view = view->nextSister; } } void W_UnmapSubviews(W_View * view) { XUnmapSubwindows(view->screen->display, view->window); XFlush(view->screen->display); view = view->childrenList; while (view) { view->flags.mapped = 0; view->flags.mapWhenRealized = 0; view = view->nextSister; } } void W_UnmapView(W_View * view) { view->flags.mapWhenRealized = 0; if (!view->flags.mapped) return; XUnmapWindow(view->screen->display, view->window); XFlush(view->screen->display); view->flags.mapped = 0; } W_View *W_TopLevelOfView(W_View * view) { W_View *toplevel; for (toplevel = view; toplevel && !toplevel->flags.topLevel; toplevel = toplevel->parent) ; return toplevel; } static void destroyView(W_View * view) { W_View *ptr; if (view->flags.alreadyDead) return; view->flags.alreadyDead = 1; /* delete the balloon text for the view, if there's any */ WMSetBalloonTextForView(NULL, view); 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); if (view->flags.topLevel) { W_FocusInfo *info = view->screen->focusInfo; /* remove focus information associated to this toplevel */ if (info) { if (info->toplevel == view) { view->screen->focusInfo = info->next; wfree(info); } else { while (info->next) { if (info->next->toplevel == view) break; info = info->next; } if (info->next) { W_FocusInfo *next = info->next->next; wfree(info->next); info->next = next; } /* else the toplevel did not have any focused subview */ } } } /* destroy children recursively */ while (view->childrenList != NULL) { ptr = view->childrenList; ptr->flags.parentDying = 1; W_DestroyView(ptr); if (ptr == view->childrenList) { view->childrenList = ptr->nextSister; ptr->parent = NULL; } } W_CallDestroyHandlers(view); if (view->flags.realized) { XDeleteContext(view->screen->display, view->window, ViewContext); /* if parent is being destroyed, it will die naturaly */ if (!view->flags.parentDying || view->flags.topLevel) XDestroyWindow(view->screen->display, view->window); } /* remove self from parent's children list */ unparentView(view); /* the array has a wfree() destructor that will be called automatically */ WMFreeArray(view->eventHandlers); view->eventHandlers = NULL; WMRemoveNotificationObserver(view); W_FreeViewXdndPart(view); if (view->backColor) WMReleaseColor(view->backColor); wfree(view); } void W_DestroyView(W_View * view) { view->refCount--; if (view->refCount < 1) { destroyView(view); } } void W_MoveView(W_View * view, int x, int y) { assert(view->flags.root == 0); if (view->delegate && view->delegate->willMove) { (*view->delegate->willMove) (view->delegate, view, &x, &y); } if (view->pos.x == x && view->pos.y == y) return; if (view->flags.realized) { XMoveWindow(view->screen->display, view->window, x, y); } view->pos.x = x; view->pos.y = y; if (view->delegate && view->delegate->didMove) { (*view->delegate->didMove) (view->delegate, view); } } void W_ResizeView(W_View * view, unsigned int width, unsigned int height) { /*int shrinked; */ if (view->delegate && view->delegate->willResize) { (*view->delegate->willResize) (view->delegate, view, &width, &height); } assert(width > 0); assert(height > 0); if (view->size.width == width && view->size.height == height) return; /*shrinked = width < view->size.width || height < view->size.height; */ if (view->flags.realized) { XResizeWindow(view->screen->display, view->window, width, height); } view->size.width = width; view->size.height = height; if (view->delegate && view->delegate->didResize) { (*view->delegate->didResize) (view->delegate, view); } /* // TODO. replace in WINGs code, with the didResize delegate */ if (view->flags.notifySizeChanged) WMPostNotificationName(WMViewSizeDidChangeNotification, view, NULL); } void W_RedisplayView(W_View * view) { XEvent ev; if (!view->flags.mapped) return; ev.xexpose.type = Expose; ev.xexpose.display = view->screen->display; ev.xexpose.window = view->window; ev.xexpose.count = 0; ev.xexpose.serial = 0; WMHandleEvent(&ev); } void W_SetViewBackgroundColor(W_View * view, WMColor * color) { if (view->backColor) WMReleaseColor(view->backColor); view->backColor = WMRetainColor(color); view->attribFlags |= CWBackPixel; view->attribs.background_pixel = W_PIXEL(color); if (view->flags.realized) { XSetWindowBackground(view->screen->display, view->window, W_PIXEL(color)); XClearWindow(view->screen->display, view->window); } } void W_SetViewCursor(W_View * view, Cursor cursor) { view->cursor = cursor; if (W_VIEW_REALIZED(view)) { XDefineCursor(W_VIEW_DISPLAY(view), W_VIEW_DRAWABLE(view), cursor); } else { view->attribFlags |= CWCursor; view->attribs.cursor = cursor; } } W_View *W_FocusedViewOfToplevel(W_View * view) { WMScreen *scr = view->screen; W_FocusInfo *info; for (info = scr->focusInfo; info != NULL; info = info->next) if (view == info->toplevel) break; if (!info) return NULL; return info->focused; } void W_SetFocusOfTopLevel(W_View * toplevel, W_View * view) { WMScreen *scr = toplevel->screen; XEvent event; W_FocusInfo *info; for (info = scr->focusInfo; info != NULL; info = info->next) if (toplevel == info->toplevel) break; if (!info) { info = wmalloc(sizeof(W_FocusInfo)); info->toplevel = toplevel; info->focused = view; info->next = scr->focusInfo; scr->focusInfo = info; } else { event.xfocus.mode = NotifyNormal; event.xfocus.detail = NotifyDetailNone; if (info->focused) { /* simulate FocusOut event */ event.xfocus.type = FocusOut; W_DispatchMessage(info->focused, &event); } info->focused = view; } if (view) { /* simulate FocusIn event */ event.xfocus.type = FocusIn; W_DispatchMessage(view, &event); } } void W_BroadcastMessage(W_View * targetParent, XEvent * event) { W_View *target; target = targetParent->childrenList; while (target != NULL) { W_DispatchMessage(target, event); target = target->nextSister; } } void W_DispatchMessage(W_View * target, XEvent * event) { if (target->window == None) return; event->xclient.window = target->window; event->xclient.display = target->screen->display; WMHandleEvent(event); /* XSendEvent(target->screen->display, target->window, False, SubstructureNotifyMask, event); */ } WMView *W_RetainView(WMView * view) { view->refCount++; return view; } void W_ReleaseView(WMView * view) { view->refCount--; if (view->refCount < 1) { destroyView(view); } } WMWidget *WMWidgetOfView(WMView * view) { return view->self; } WMSize WMGetViewSize(WMView * view) { return view->size; } WMPoint WMGetViewPosition(WMView * view) { return view->pos; } void WMSetViewNotifySizeChanges(WMView * view, Bool flag) { view->flags.notifySizeChanged = ((flag == 0) ? 0 : 1); } Window WMViewXID(WMView * view) { return view->window; } WMPoint WMGetViewScreenPosition(WMView * view) { WMScreen *scr = W_VIEW_SCREEN(view); Window foo; int x, y, topX, topY; unsigned int bar; WMView *topView; topView = view; while (topView->parent && topView->parent != scr->rootView) topView = topView->parent; if (!XGetGeometry(scr->display, W_VIEW_DRAWABLE(topView), &foo, &topX, &topY, &bar, &bar, &bar, &bar)) { topX = topY = 0; } XTranslateCoordinates(scr->display, W_VIEW_DRAWABLE(view), scr->rootWin, 0, 0, &x, &y, &foo); return wmkpoint(x - topX, y - topY); } static void resizedParent(void *self, WMNotification * notif) { WMSize size = WMGetViewSize((WMView *) WMGetNotificationObject(notif)); WMView *view = (WMView *) self; W_MoveView(view, view->leftOffs, view->topOffs); W_ResizeView(view, size.width - (view->leftOffs + view->rightOffs), size.height - (view->topOffs + view->bottomOffs)); } void WMSetViewExpandsToParent(WMView * view, int leftOffs, int topOffs, int rightOffs, int bottomOffs) { WMSize size = view->parent->size; view->topOffs = topOffs; view->bottomOffs = bottomOffs; view->leftOffs = leftOffs; view->rightOffs = rightOffs; WMAddNotificationObserver(resizedParent, view, WMViewSizeDidChangeNotification, view->parent); WMSetViewNotifySizeChanges(view->parent, True); W_MoveView(view, leftOffs, topOffs); W_ResizeView(view, size.width - (leftOffs + rightOffs), size.height - (topOffs + bottomOffs)); } WindowMaker-0.95.5/WINGs/TODO0000644000175000017500000000120312214432632012374 00000000000000- move paint to idle handlers - check if its useful to add some WMBrowserSelectionDidChangeNotification (actually a pass-through for WMListSelectionDidChangeNotification). Or a delegate to be called when the list selection change. - add some way to modify speed when scrolling WMList, depending on how far the mouse is moved outside of the list. - clean up header files of declared but not implemented anywhere functions - implement a generic WMChangeFontAttribute(WMFont *font, enum attributes) function - optimize color allocation for repeated colors - make it work in 8bpp - optimize SystemFont allocation for repeated font sizes WindowMaker-0.95.5/WINGs/get-wings-flags.in0000644000175000017500000000077112214432632015243 00000000000000#!/bin/sh WCFLAGS="${inc_search_path}" WLFLAGS="${lib_search_path}" WLIBS="-lWINGs -lWUtil -lwraster ${GFXLIBS} ${XFTLIBS} ${XLIBS} -lm ${INTLIBS}" usage="Usage: get-wings-flags [--cflags] [--ldflags] [--libs]" if test $# -eq 0; then echo "${usage}" 1>&2 exit 1 fi while test $# -gt 0; do case $1 in --cflags) echo $WCFLAGS ;; --ldflags|--lflags) echo $WLFLAGS ;; --libs) echo $WLIBS ;; *) echo "${usage}" 1>&2 exit 1 ;; esac shift done WindowMaker-0.95.5/WINGs/wcolorwell.c0000644000175000017500000002345612214432632014257 00000000000000 #include "WINGsP.h" #define XDND_COLOR_DATA_TYPE "application/X-color" char *WMColorWellDidChangeNotification = "WMColorWellDidChangeNotification"; typedef struct W_ColorWell { W_Class widgetClass; WMView *view; WMView *colorView; WMColor *color; WMAction *action; void *clientData; WMPoint ipoint; struct { unsigned int active:1; unsigned int bordered:1; } flags; WMArray *xdndTypes; } ColorWell; static char *_ColorWellActivatedNotification = "_ColorWellActivatedNotification"; static void destroyColorWell(ColorWell * cPtr); static void paintColorWell(ColorWell * cPtr); static void handleEvents(XEvent * event, void *data); static void handleDragEvents(XEvent * event, void *data); static void handleActionEvents(XEvent * event, void *data); static void willResizeColorWell(W_ViewDelegate * self, WMView * view, unsigned int *width, unsigned int *height); W_ViewDelegate _ColorWellViewDelegate = { NULL, NULL, NULL, NULL, willResizeColorWell }; static WMArray *dropDataTypes(WMView * self); static WMDragOperationType wantedDropOperation(WMView * self); static Bool acceptDropOperation(WMView * self, WMDragOperationType operation); static WMData *fetchDragData(WMView * self, char *type); static WMDragSourceProcs _DragSourceProcs = { dropDataTypes, wantedDropOperation, NULL, acceptDropOperation, NULL, NULL, fetchDragData }; static WMArray *requiredDataTypes(WMView * self, WMDragOperationType requestedOperation, WMArray * sourceDataTypes); static WMDragOperationType allowedOperation(WMView * self, WMDragOperationType requestedOperation, WMArray * sourceDataTypes); static void performDragOperation(WMView * self, WMArray * dropDatas, WMArray * operationsList, WMPoint * dropLocation); static WMDragDestinationProcs _DragDestinationProcs = { NULL, requiredDataTypes, allowedOperation, NULL, performDragOperation, NULL }; #define DEFAULT_WIDTH 60 #define DEFAULT_HEIGHT 30 #define DEFAULT_BORDER_WIDTH 6 #define MIN_WIDTH 16 #define MIN_HEIGHT 8 static void colorChangedObserver(void *data, WMNotification * notification) { WMColorPanel *panel = (WMColorPanel *) WMGetNotificationObject(notification); WMColorWell *cPtr = (WMColorWell *) data; WMColor *color; if (!cPtr->flags.active) return; color = WMGetColorPanelColor(panel); WMSetColorWellColor(cPtr, color); WMPostNotificationName(WMColorWellDidChangeNotification, cPtr, NULL); } static void updateColorCallback(void *self, void *data) { WMColorPanel *panel = (WMColorPanel *) self; WMColorWell *cPtr = (ColorWell *) data; WMColor *color; color = WMGetColorPanelColor(panel); WMSetColorWellColor(cPtr, color); WMPostNotificationName(WMColorWellDidChangeNotification, cPtr, NULL); } static void activatedObserver(void *data, WMNotification * notification) { /* WMColorWell *cPtr = (WMColorWell*)data; if (!cPtr->flags.active || WMGetNotificationObject(notification) == cPtr) return; W_SetViewBackgroundColor(cPtr->view, WMWidgetScreen(cPtr)->gray); paintColorWell(cPtr); cPtr->flags.active = 0; */ } static WMArray *getXdndTypeArray(void) { WMArray *types = WMCreateArray(1); WMAddToArray(types, XDND_COLOR_DATA_TYPE); return types; } WMColorWell *WMCreateColorWell(WMWidget * parent) { ColorWell *cPtr; cPtr = wmalloc(sizeof(ColorWell)); cPtr->widgetClass = WC_ColorWell; cPtr->view = W_CreateView(W_VIEW(parent)); if (!cPtr->view) { wfree(cPtr); return NULL; } cPtr->view->self = cPtr; cPtr->view->delegate = &_ColorWellViewDelegate; cPtr->colorView = W_CreateView(cPtr->view); if (!cPtr->colorView) { W_DestroyView(cPtr->view); wfree(cPtr); return NULL; } cPtr->colorView->self = cPtr; WMCreateEventHandler(cPtr->view, ExposureMask | StructureNotifyMask | ClientMessageMask, handleEvents, cPtr); WMCreateEventHandler(cPtr->colorView, ExposureMask, handleEvents, cPtr); WMCreateDragHandler(cPtr->colorView, handleDragEvents, cPtr); WMCreateEventHandler(cPtr->view, ButtonPressMask, handleActionEvents, cPtr); cPtr->colorView->flags.mapWhenRealized = 1; cPtr->flags.bordered = 1; W_ResizeView(cPtr->view, DEFAULT_WIDTH, DEFAULT_HEIGHT); WMAddNotificationObserver(activatedObserver, cPtr, _ColorWellActivatedNotification, NULL); cPtr->color = WMBlackColor(WMWidgetScreen(cPtr)); WMAddNotificationObserver(colorChangedObserver, cPtr, WMColorPanelColorChangedNotification, NULL); WMSetViewDragSourceProcs(cPtr->colorView, &_DragSourceProcs); WMSetViewDragDestinationProcs(cPtr->colorView, &_DragDestinationProcs); cPtr->xdndTypes = getXdndTypeArray(); WMRegisterViewForDraggedTypes(cPtr->colorView, cPtr->xdndTypes); return cPtr; } void WMSetColorWellColor(WMColorWell * cPtr, WMColor * color) { if (cPtr->color) WMReleaseColor(cPtr->color); cPtr->color = WMRetainColor(color); if (cPtr->colorView->flags.realized && cPtr->colorView->flags.mapped) paintColorWell(cPtr); } WMColor *WMGetColorWellColor(WMColorWell * cPtr) { return cPtr->color; } void WSetColorWellBordered(WMColorWell * cPtr, Bool flag) { flag = ((flag == 0) ? 0 : 1); if (cPtr->flags.bordered != flag) { cPtr->flags.bordered = flag; W_ResizeView(cPtr->view, cPtr->view->size.width, cPtr->view->size.height); } } static void willResizeColorWell(W_ViewDelegate * self, WMView * view, unsigned int *width, unsigned int *height) { WMColorWell *cPtr = (WMColorWell *) view->self; int bw; if (cPtr->flags.bordered) { if (*width < MIN_WIDTH) *width = MIN_WIDTH; if (*height < MIN_HEIGHT) *height = MIN_HEIGHT; bw = (int)((float)WMIN(*width, *height) * 0.24); W_ResizeView(cPtr->colorView, *width - 2 * bw, *height - 2 * bw); if (cPtr->colorView->pos.x != bw || cPtr->colorView->pos.y != bw) W_MoveView(cPtr->colorView, bw, bw); } else { W_ResizeView(cPtr->colorView, *width, *height); W_MoveView(cPtr->colorView, 0, 0); } } static void paintColorWell(ColorWell * cPtr) { W_Screen *scr = cPtr->view->screen; W_DrawRelief(scr, cPtr->view->window, 0, 0, cPtr->view->size.width, cPtr->view->size.height, WRRaised); W_DrawRelief(scr, cPtr->colorView->window, 0, 0, cPtr->colorView->size.width, cPtr->colorView->size.height, WRSunken); if (cPtr->color) WMPaintColorSwatch(cPtr->color, cPtr->colorView->window, 2, 2, cPtr->colorView->size.width - 4, cPtr->colorView->size.height - 4); } static void handleEvents(XEvent * event, void *data) { ColorWell *cPtr = (ColorWell *) data; CHECK_CLASS(data, WC_ColorWell); switch (event->type) { case Expose: if (event->xexpose.count != 0) break; paintColorWell(cPtr); break; case DestroyNotify: destroyColorWell(cPtr); break; } } static WMArray *dropDataTypes(WMView * self) { return ((ColorWell *) self->self)->xdndTypes; } static WMDragOperationType wantedDropOperation(WMView * self) { return WDOperationCopy; } static Bool acceptDropOperation(WMView * self, WMDragOperationType operation) { return (operation == WDOperationCopy); } static WMData *fetchDragData(WMView * self, char *type) { char *color = WMGetColorRGBDescription(((WMColorWell *) self->self)->color); WMData *data; data = WMCreateDataWithBytes(color, strlen(color) + 1); wfree(color); return data; } static WMPixmap *makeDragPixmap(WMColorWell * cPtr) { WMScreen *scr = cPtr->view->screen; Pixmap pix; pix = XCreatePixmap(scr->display, W_DRAWABLE(scr), 16, 16, scr->depth); XFillRectangle(scr->display, pix, WMColorGC(cPtr->color), 0, 0, 15, 15); XDrawRectangle(scr->display, pix, WMColorGC(scr->black), 0, 0, 15, 15); return WMCreatePixmapFromXPixmaps(scr, pix, None, 16, 16, scr->depth); } static void handleDragEvents(XEvent * event, void *data) { WMColorWell *cPtr = (ColorWell *) data; if (event->type == ButtonPress && event->xbutton.button == Button1) { /* initialise drag icon */ WMSetViewDragImage(cPtr->colorView, makeDragPixmap(cPtr)); } WMDragImageFromView(cPtr->colorView, event); } static void handleActionEvents(XEvent * event, void *data) { WMColorWell *cPtr = (ColorWell *) data; WMScreen *scr = WMWidgetScreen(cPtr); WMColorPanel *cpanel; if (cPtr->flags.active) W_SetViewBackgroundColor(cPtr->view, scr->gray); else W_SetViewBackgroundColor(cPtr->view, scr->white); paintColorWell(cPtr); cPtr->flags.active ^= 1; if (cPtr->flags.active) { WMPostNotificationName(_ColorWellActivatedNotification, cPtr, NULL); } cpanel = WMGetColorPanel(scr); WMSetColorPanelAction(cpanel, updateColorCallback, cPtr); if (cPtr->color) WMSetColorPanelColor(cpanel, cPtr->color); WMShowColorPanel(cpanel); } static void destroyColorWell(ColorWell * cPtr) { WMRemoveNotificationObserver(cPtr); if (cPtr->color) WMReleaseColor(cPtr->color); WMFreeArray(cPtr->xdndTypes); wfree(cPtr); } static Bool dropIsOk(WMDragOperationType request, WMArray * sourceDataTypes) { WMArrayIterator iter; char *type; if (request == WDOperationCopy) { WM_ITERATE_ARRAY(sourceDataTypes, type, iter) { if (type != NULL && strcmp(type, XDND_COLOR_DATA_TYPE) == 0) { return True; } } } return False; } static WMArray *requiredDataTypes(WMView * self, WMDragOperationType request, WMArray * sourceDataTypes) { if (dropIsOk(request, sourceDataTypes)) return ((ColorWell *) self->self)->xdndTypes; else return NULL; } static WMDragOperationType allowedOperation(WMView * self, WMDragOperationType request, WMArray * sourceDataTypes) { if (dropIsOk(request, sourceDataTypes)) return WDOperationCopy; else return WDOperationNone; } static void performDragOperation(WMView * self, WMArray * dropData, WMArray * operations, WMPoint * dropLocation) { char *colorName; WMColor *color; WMData *data; /* only one operation requested (WDOperationCopy) implies only one data */ data = (WMData *) WMGetFromArray(dropData, 0); if (data != NULL) { colorName = (char *)WMDataBytes(data); color = WMCreateNamedColor(W_VIEW_SCREEN(self), colorName, True); WMSetColorWellColor(self->self, color); WMReleaseColor(color); } } WindowMaker-0.95.5/WINGs/wprogressindicator.c0000644000175000017500000001422112214432632016004 00000000000000/* * Original idea and implementation by Frederik Schueler * Rewritten by Pascal Hofstee * - Added options to set min/max values * - centralized drawing into one pain function */ #include "WINGsP.h" typedef struct W_ProgressIndicator { W_Class widgetClass; W_View *view; int value; int minValue; int maxValue; void *clientData; } ProgressIndicator; #define DEFAULT_PROGRESS_INDICATOR_WIDTH 276 #define DEFAULT_PROGRESS_INDICATOR_HEIGHT 16 /* define if only the ticks within the progress region should be displayed */ #undef SHOW_PROGRESS_TICKS_ONLY static void didResizeProgressIndicator(W_ViewDelegate * self, WMView * view); W_ViewDelegate _ProgressIndicatorDelegate = { NULL, NULL, didResizeProgressIndicator, NULL, NULL }; static void destroyProgressIndicator(ProgressIndicator * pPtr); static void paintProgressIndicator(ProgressIndicator * pPtr); static void handleEvents(XEvent * event, void *data); WMProgressIndicator *WMCreateProgressIndicator(WMWidget * parent) { ProgressIndicator *pPtr; pPtr = wmalloc(sizeof(ProgressIndicator)); pPtr->widgetClass = WC_ProgressIndicator; pPtr->view = W_CreateView(W_VIEW(parent)); if (!pPtr->view) { wfree(pPtr); return NULL; } pPtr->view->self = pPtr; pPtr->view->delegate = &_ProgressIndicatorDelegate; WMCreateEventHandler(pPtr->view, ExposureMask | StructureNotifyMask, handleEvents, pPtr); W_ResizeView(pPtr->view, DEFAULT_PROGRESS_INDICATOR_WIDTH, DEFAULT_PROGRESS_INDICATOR_HEIGHT); /* Initialize ProgressIndicator Values */ pPtr->value = 0; pPtr->minValue = 0; pPtr->maxValue = 100; return pPtr; } void WMSetProgressIndicatorMinValue(WMProgressIndicator * progressindicator, int value) { CHECK_CLASS(progressindicator, WC_ProgressIndicator); progressindicator->minValue = value; if (progressindicator->value < value) { progressindicator->value = value; if (progressindicator->view->flags.mapped) { paintProgressIndicator(progressindicator); } } } void WMSetProgressIndicatorMaxValue(WMProgressIndicator * progressindicator, int value) { CHECK_CLASS(progressindicator, WC_ProgressIndicator); progressindicator->maxValue = value; if (progressindicator->value > value) { progressindicator->value = value; if (progressindicator->view->flags.mapped) { paintProgressIndicator(progressindicator); } } } void WMSetProgressIndicatorValue(WMProgressIndicator * progressindicator, int value) { CHECK_CLASS(progressindicator, WC_ProgressIndicator); progressindicator->value = value; /* Check if value is within min/max-range */ if (progressindicator->minValue > value) progressindicator->value = progressindicator->minValue; if (progressindicator->maxValue < value) progressindicator->value = progressindicator->maxValue; if (progressindicator->view->flags.mapped) { paintProgressIndicator(progressindicator); } } int WMGetProgressIndicatorMinValue(WMProgressIndicator * progressindicator) { CHECK_CLASS(progressindicator, WC_ProgressIndicator); return progressindicator->minValue; } int WMGetProgressIndicatorMaxValue(WMProgressIndicator * progressindicator) { CHECK_CLASS(progressindicator, WC_ProgressIndicator); return progressindicator->maxValue; } int WMGetProgressIndicatorValue(WMProgressIndicator * progressindicator) { CHECK_CLASS(progressindicator, WC_ProgressIndicator); return progressindicator->value; } static void didResizeProgressIndicator(W_ViewDelegate * self, WMView * view) { WMProgressIndicator *pPtr = (WMProgressIndicator *) view->self; int width = pPtr->view->size.width; int height = pPtr->view->size.height; assert(width > 0); assert(height > 0); } static void paintProgressIndicator(ProgressIndicator * pPtr) { W_Screen *scr = pPtr->view->screen; GC bgc; GC wgc; GC lgc; GC dgc; WMSize size = pPtr->view->size; int perc, w, h; double unit, i; Pixmap buffer; bgc = WMColorGC(scr->black); wgc = WMColorGC(scr->white); lgc = WMColorGC(scr->gray); dgc = WMColorGC(scr->darkGray); unit = (double)(size.width - 3.0) / 100; buffer = XCreatePixmap(scr->display, pPtr->view->window, size.width, size.height, scr->depth); XFillRectangle(scr->display, buffer, lgc, 0, 0, size.width, size.height); /* Calculate size of Progress to draw and paint ticks */ perc = (pPtr->value - pPtr->minValue) * 100 / (pPtr->maxValue - pPtr->minValue); w = (int)((double)(perc * unit)); h = size.height - 2; if (w > (size.width - 3)) w = size.width - 3; if (w > 0) { XFillRectangle(scr->display, buffer, lgc, 2, 1, w, h); XFillRectangle(scr->display, buffer, scr->stippleGC, 2, 1, w, h); W_DrawRelief(scr, buffer, 2, 1, w, h, WRFlat); /* Draw Progress Marks */ i = (5.0 * unit); #ifdef SHOW_PROGRESS_TICKS_ONLY while ((int)i < w + 5) { #else while ((int)i < (size.width - 3)) { #endif XDrawLine(scr->display, buffer, dgc, (int)i + 2, h - 1, i + 2, h - 3); i += (5.0 * unit); #ifdef SHOW_PROGRESS_TICKS_ONLY if ((int)i >= w) break; #endif XDrawLine(scr->display, buffer, dgc, (int)i + 2, h - 1, i + 2, h - 6); i += (5.0 * unit); } } XDrawLine(scr->display, buffer, bgc, w + 2, 1, w + 2, h + 1); XDrawLine(scr->display, buffer, lgc, 2, h, w + 2, h); XDrawLine(scr->display, buffer, dgc, 0, 0, 0, size.height - 1); XDrawLine(scr->display, buffer, dgc, 0, 0, size.width, 0); XDrawLine(scr->display, buffer, bgc, 1, 1, 1, size.height - 1); XDrawLine(scr->display, buffer, bgc, 1, 1, size.width - 1, 1); XDrawLine(scr->display, buffer, wgc, size.width - 1, 0, size.width - 1, size.height - 1); XDrawLine(scr->display, buffer, wgc, 0, size.height - 1, size.width - 1, size.height - 1); XCopyArea(scr->display, buffer, pPtr->view->window, scr->copyGC, 0, 0, size.width, size.height, 0, 0); XFreePixmap(scr->display, buffer); } static void handleEvents(XEvent * event, void *data) { ProgressIndicator *pPtr = (ProgressIndicator *) data; CHECK_CLASS(data, WC_ProgressIndicator); switch (event->type) { case Expose: if (event->xexpose.count != 0) break; paintProgressIndicator(pPtr); break; case DestroyNotify: destroyProgressIndicator(pPtr); break; } } static void destroyProgressIndicator(ProgressIndicator * pPtr) { WMRemoveNotificationObserver(pPtr); wfree(pPtr); } WindowMaker-0.95.5/WINGs/dragsource.c0000644000175000017500000007272512214432632014227 00000000000000 #include "wconfig.h" #include "WINGsP.h" #include #include #ifdef SHAPE #include #endif #define XDND_DESTINATION_RESPONSE_MAX_DELAY 10000 #define MIN_X_MOVE_OFFSET 5 #define MIN_Y_MOVE_OFFSET 5 #define MAX_SLIDEBACK_ITER 15 #define XDND_PROPERTY_FORMAT 32 #define XDND_ACTION_DESCRIPTION_FORMAT 8 #define XDND_DEST_VERSION(dragInfo) dragInfo->protocolVersion #define XDND_SOURCE_INFO(dragInfo) dragInfo->sourceInfo #define XDND_DEST_WIN(dragInfo) dragInfo->sourceInfo->destinationWindow #define XDND_SOURCE_ACTION(dragInfo) dragInfo->sourceAction #define XDND_DEST_ACTION(dragInfo) dragInfo->destinationAction #define XDND_SOURCE_VIEW(dragInfo) dragInfo->sourceInfo->sourceView #define XDND_SOURCE_STATE(dragInfo) dragInfo->sourceInfo->state #define XDND_SELECTION_PROCS(dragInfo) dragInfo->sourceInfo->selectionProcs #define XDND_DRAG_ICON(dragInfo) dragInfo->sourceInfo->icon #define XDND_MOUSE_OFFSET(dragInfo) dragInfo->sourceInfo->mouseOffset #define XDND_DRAG_CURSOR(dragInfo) dragInfo->sourceInfo->dragCursor #define XDND_DRAG_ICON_POS(dragInfo) dragInfo->sourceInfo->imageLocation #define XDND_NO_POS_ZONE(dragInfo) dragInfo->sourceInfo->noPositionMessageZone #define XDND_TIMESTAMP(dragInfo) dragInfo->timestamp #define XDND_3_TYPES(dragInfo) dragInfo->sourceInfo->firstThreeTypes #define XDND_SOURCE_VIEW_STORED(dragInfo) dragInfo->sourceInfo != NULL \ && dragInfo->sourceInfo->sourceView != NULL static WMHandlerID dndSourceTimer = NULL; static void *idleState(WMView * srcView, XClientMessageEvent * event, WMDraggingInfo * info); static void *dropAllowedState(WMView * srcView, XClientMessageEvent * event, WMDraggingInfo * info); static void *finishDropState(WMView * srcView, XClientMessageEvent * event, WMDraggingInfo * info); #ifdef XDND_DEBUG static const char *stateName(W_DndState * state) { if (state == NULL) return "no state defined"; if (state == idleState) return "idleState"; if (state == dropAllowedState) return "dropAllowedState"; if (state == finishDropState) return "finishDropState"; return "unknown state"; } #endif static WMScreen *sourceScreen(WMDraggingInfo * info) { return W_VIEW_SCREEN(XDND_SOURCE_VIEW(info)); } static void endDragProcess(WMDraggingInfo * info, Bool deposited) { WMView *view = XDND_SOURCE_VIEW(info); WMScreen *scr = W_VIEW_SCREEN(XDND_SOURCE_VIEW(info)); /* free selection handler while view exists */ WMDeleteSelectionHandler(view, scr->xdndSelectionAtom, CurrentTime); wfree(XDND_SELECTION_PROCS(info)); if (XDND_DRAG_CURSOR(info) != None) { XFreeCursor(scr->display, XDND_DRAG_CURSOR(info)); XDND_DRAG_CURSOR(info) = None; } if (view->dragSourceProcs->endedDrag != NULL) { /* this can destroy source view (with a "move" action for example) */ view->dragSourceProcs->endedDrag(view, &XDND_DRAG_ICON_POS(info), deposited); } /* clear remaining draggging infos */ wfree(XDND_SOURCE_INFO(info)); XDND_SOURCE_INFO(info) = NULL; } /* ----- drag cursor ----- */ static void initDragCursor(WMDraggingInfo * info) { WMScreen *scr = sourceScreen(info); XColor cursorFgColor, cursorBgColor; /* green */ cursorFgColor.red = 0x4500; cursorFgColor.green = 0xb000; cursorFgColor.blue = 0x4500; /* white */ cursorBgColor.red = 0xffff; cursorBgColor.green = 0xffff; cursorBgColor.blue = 0xffff; XDND_DRAG_CURSOR(info) = XCreateFontCursor(scr->display, XC_left_ptr); XRecolorCursor(scr->display, XDND_DRAG_CURSOR(info), &cursorFgColor, &cursorBgColor); XFlush(scr->display); } static void recolorCursor(WMDraggingInfo * info, Bool dropIsAllowed) { WMScreen *scr = sourceScreen(info); if (dropIsAllowed) { XDefineCursor(scr->display, scr->rootWin, XDND_DRAG_CURSOR(info)); } else { XDefineCursor(scr->display, scr->rootWin, scr->defaultCursor); } XFlush(scr->display); } /* ----- end of drag cursor ----- */ /* ----- selection procs ----- */ static WMData *convertSelection(WMView * view, Atom selection, Atom target, void *cdata, Atom * type) { WMScreen *scr; WMData *data; char *typeName; scr = W_VIEW_SCREEN(view); typeName = XGetAtomName(scr->display, target); *type = target; if (view->dragSourceProcs->fetchDragData != NULL) { data = view->dragSourceProcs->fetchDragData(view, typeName); } else { data = NULL; } if (typeName != NULL) XFree(typeName); return data; } static void selectionLost(WMView * view, Atom selection, void *cdata) { wwarning("DND selection lost during drag operation..."); } static void selectionDone(WMView * view, Atom selection, Atom target, void *cdata) { #ifdef XDND_DEBUG printf("selection done\n"); #endif } /* ----- end of selection procs ----- */ /* ----- visual part ----- */ static Window makeDragIcon(WMScreen * scr, WMPixmap * pixmap) { Window window; WMSize size; unsigned long flags; XSetWindowAttributes attribs; Pixmap pix, mask; if (!pixmap) { pixmap = scr->defaultObjectIcon; } size = WMGetPixmapSize(pixmap); pix = pixmap->pixmap; mask = pixmap->mask; flags = CWSaveUnder | CWBackPixmap | CWOverrideRedirect | CWColormap; attribs.save_under = True; attribs.background_pixmap = pix; attribs.override_redirect = True; attribs.colormap = scr->colormap; window = XCreateWindow(scr->display, scr->rootWin, 0, 0, size.width, size.height, 0, scr->depth, InputOutput, scr->visual, flags, &attribs); #ifdef SHAPE if (mask) { XShapeCombineMask(scr->display, window, ShapeBounding, 0, 0, mask, ShapeSet); } #endif return window; } static void slideWindow(Display * dpy, Window win, int srcX, int srcY, int dstX, int dstY) { double x, y, dx, dy; int i; int iterations; iterations = WMIN(MAX_SLIDEBACK_ITER, WMAX(abs(dstX - srcX), abs(dstY - srcY))); x = srcX; y = srcY; dx = (double)(dstX - srcX) / iterations; dy = (double)(dstY - srcY) / iterations; for (i = 0; i <= iterations; i++) { XMoveWindow(dpy, win, x, y); XFlush(dpy); wusleep(800); x += dx; y += dy; } } static int getInitialDragImageCoord(int viewCoord, int mouseCoord, int viewSize, int iconSize) { if (iconSize >= viewSize) { /* center icon coord on view */ return viewCoord - iconSize / 2; } else { /* try to center icon on mouse pos */ if (mouseCoord - iconSize / 2 <= viewCoord) /* if icon was centered on mouse, it would be off view thus, put icon left (resp. top) side at view (resp. top) side */ return viewCoord; else if (mouseCoord + iconSize / 2 >= viewCoord + viewSize) /* if icon was centered on mouse, it would be off view thus, put icon right (resp. bottom) side at view right (resp. bottom) side */ return viewCoord + viewSize - iconSize; else return mouseCoord - iconSize / 2; } } static void initDragImagePos(WMView * view, WMDraggingInfo * info, XEvent * event) { WMSize iconSize = WMGetPixmapSize(view->dragImage); WMSize viewSize = WMGetViewSize(view); WMPoint viewPos; Window foo; XTranslateCoordinates(W_VIEW_SCREEN(view)->display, WMViewXID(view), W_VIEW_SCREEN(view)->rootWin, 0, 0, &(viewPos.x), &(viewPos.y), &foo); /* set icon pos */ XDND_DRAG_ICON_POS(info).x = getInitialDragImageCoord(viewPos.x, event->xmotion.x_root, viewSize.width, iconSize.width); XDND_DRAG_ICON_POS(info).y = getInitialDragImageCoord(viewPos.y, event->xmotion.y_root, viewSize.height, iconSize.height); /* set mouse offset relative to icon */ XDND_MOUSE_OFFSET(info).x = event->xmotion.x_root - XDND_DRAG_ICON_POS(info).x; XDND_MOUSE_OFFSET(info).y = event->xmotion.y_root - XDND_DRAG_ICON_POS(info).y; } static void refreshDragImage(WMView * view, WMDraggingInfo * info) { WMScreen *scr = W_VIEW_SCREEN(view); XMoveWindow(scr->display, XDND_DRAG_ICON(info), XDND_DRAG_ICON_POS(info).x, XDND_DRAG_ICON_POS(info).y); } static void startDragImage(WMView * view, WMDraggingInfo * info, XEvent * event) { WMScreen *scr = W_VIEW_SCREEN(view); XDND_DRAG_ICON(info) = makeDragIcon(scr, view->dragImage); initDragImagePos(view, info, event); refreshDragImage(view, info); XMapRaised(scr->display, XDND_DRAG_ICON(info)); initDragCursor(info); } static void endDragImage(WMDraggingInfo * info, Bool slideBack) { WMView *view = XDND_SOURCE_VIEW(info); Display *dpy = W_VIEW_SCREEN(view)->display; if (slideBack) { WMPoint toLocation; Window foo; XTranslateCoordinates(W_VIEW_SCREEN(view)->display, WMViewXID(view), W_VIEW_SCREEN(view)->rootWin, 0, 0, &(toLocation.x), &(toLocation.y), &foo); slideWindow(dpy, XDND_DRAG_ICON(info), XDND_DRAG_ICON_POS(info).x, XDND_DRAG_ICON_POS(info).y, toLocation.x, toLocation.y); } XDestroyWindow(dpy, XDND_DRAG_ICON(info)); } /* ----- end of visual part ----- */ /* ----- messages ----- */ /* send a DnD message to the destination window */ static Bool sendDnDClientMessage(WMDraggingInfo * info, Atom message, unsigned long data1, unsigned long data2, unsigned long data3, unsigned long data4) { Display *dpy = sourceScreen(info)->display; Window srcWin = WMViewXID(XDND_SOURCE_VIEW(info)); Window destWin = XDND_DEST_WIN(info); if (!W_SendDnDClientMessage(dpy, destWin, message, srcWin, data1, data2, data3, data4)) { /* drop failed */ recolorCursor(info, False); endDragImage(info, True); endDragProcess(info, False); return False; } return True; } static Bool sendEnterMessage(WMDraggingInfo * info) { WMScreen *scr = sourceScreen(info); unsigned long version; if (XDND_DEST_VERSION(info) > 2) { if (XDND_DEST_VERSION(info) < XDND_VERSION) version = XDND_DEST_VERSION(info); else version = XDND_VERSION; } else { version = 3; } return sendDnDClientMessage(info, scr->xdndEnterAtom, (version << 24) | 1, /* 1: support of type list */ XDND_3_TYPES(info)[0], XDND_3_TYPES(info)[1], XDND_3_TYPES(info)[2]); } static Bool sendPositionMessage(WMDraggingInfo * info, WMPoint * mousePos) { WMScreen *scr = sourceScreen(info); WMRect *noPosZone = &(XDND_NO_POS_ZONE(info)); if (noPosZone->size.width != 0 || noPosZone->size.height != 0) { if (mousePos->x < noPosZone->pos.x || mousePos->x > (noPosZone->pos.x + noPosZone->size.width) || mousePos->y < noPosZone->pos.y || mousePos->y > (noPosZone->pos.y + noPosZone->size.height)) { /* send position if out of zone defined by destination */ return sendDnDClientMessage(info, scr->xdndPositionAtom, 0, mousePos->x << 16 | mousePos->y, XDND_TIMESTAMP(info), XDND_SOURCE_ACTION(info)); } /* Nothing to send, always succeed */ return True; } /* send position on each move */ return sendDnDClientMessage(info, scr->xdndPositionAtom, 0, mousePos->x << 16 | mousePos->y, XDND_TIMESTAMP(info), XDND_SOURCE_ACTION(info)); } static Bool sendLeaveMessage(WMDraggingInfo * info) { WMScreen *scr = sourceScreen(info); return sendDnDClientMessage(info, scr->xdndLeaveAtom, 0, 0, 0, 0); } static Bool sendDropMessage(WMDraggingInfo * info) { WMScreen *scr = sourceScreen(info); return sendDnDClientMessage(info, scr->xdndDropAtom, 0, XDND_TIMESTAMP(info), 0, 0); } /* ----- end of messages ----- */ static Atom *getTypeAtomList(WMScreen * scr, WMView * view, int *count) { WMArray *types; Atom *typeAtoms; int i; types = view->dragSourceProcs->dropDataTypes(view); if (types != NULL) { *count = WMGetArrayItemCount(types); if (*count > 0) { typeAtoms = wmalloc((*count) * sizeof(Atom)); for (i = 0; i < *count; i++) { typeAtoms[i] = XInternAtom(scr->display, WMGetFromArray(types, i), False); } /* WMFreeArray(types); */ return typeAtoms; } /* WMFreeArray(types); */ } *count = 1; typeAtoms = wmalloc(sizeof(Atom)); *typeAtoms = None; return typeAtoms; } static void registerDropTypes(WMScreen * scr, WMView * view, WMDraggingInfo * info) { Atom *typeList; int i, count; typeList = getTypeAtomList(scr, view, &count); /* store the first 3 types */ for (i = 0; i < 3 && i < count; i++) XDND_3_TYPES(info)[i] = typeList[i]; for (; i < 3; i++) XDND_3_TYPES(info)[i] = None; /* store the entire type list */ XChangeProperty(scr->display, WMViewXID(view), scr->xdndTypeListAtom, XA_ATOM, XDND_PROPERTY_FORMAT, PropModeReplace, (unsigned char *)typeList, count); } static void registerOperationList(WMScreen * scr, WMView * view, WMArray * operationArray) { Atom *actionList; WMDragOperationType operation; int count = WMGetArrayItemCount(operationArray); int i; actionList = wmalloc(sizeof(Atom) * count); for (i = 0; i < count; i++) { operation = WMGetDragOperationItemType(WMGetFromArray(operationArray, i)); actionList[i] = W_OperationToAction(scr, operation); } XChangeProperty(scr->display, WMViewXID(view), scr->xdndActionListAtom, XA_ATOM, XDND_PROPERTY_FORMAT, PropModeReplace, (unsigned char *)actionList, count); } static void registerDescriptionList(WMScreen * scr, WMView * view, WMArray * operationArray) { char *text, *textListItem, *textList; int count = WMGetArrayItemCount(operationArray); int i; int size = 0; /* size of XA_STRING info */ for (i = 0; i < count; i++) { size += strlen(WMGetDragOperationItemText(WMGetFromArray(operationArray, i))) + 1 /* NULL */; } /* create text list */ textList = wmalloc(size); textListItem = textList; for (i = 0; i < count; i++) { text = WMGetDragOperationItemText(WMGetFromArray(operationArray, i)); wstrlcpy(textListItem, text, size); /* to next text offset */ textListItem = &(textListItem[strlen(textListItem) + 1]); } XChangeProperty(scr->display, WMViewXID(view), scr->xdndActionDescriptionAtom, XA_STRING, XDND_ACTION_DESCRIPTION_FORMAT, PropModeReplace, (unsigned char *)textList, size); } /* called if wanted operation is WDOperationAsk */ static void registerSupportedOperations(WMView * view) { WMScreen *scr = W_VIEW_SCREEN(view); WMArray *operationArray; operationArray = view->dragSourceProcs->askedOperations(view); registerOperationList(scr, view, operationArray); registerDescriptionList(scr, view, operationArray); /* WMFreeArray(operationArray); */ } static void initSourceDragInfo(WMView * sourceView, WMDraggingInfo * info) { WMRect emptyZone; XDND_SOURCE_INFO(info) = (W_DragSourceInfo *) wmalloc(sizeof(W_DragSourceInfo)); XDND_SOURCE_VIEW(info) = sourceView; XDND_DEST_WIN(info) = None; XDND_DRAG_ICON(info) = None; XDND_SOURCE_ACTION(info) = W_OperationToAction(W_VIEW_SCREEN(sourceView), sourceView->dragSourceProcs-> wantedDropOperation(sourceView)); XDND_DEST_ACTION(info) = None; XDND_SOURCE_STATE(info) = idleState; emptyZone.pos = wmkpoint(0, 0); emptyZone.size = wmksize(0, 0); XDND_NO_POS_ZONE(info) = emptyZone; } /* Returned array is destroyed after dropDataTypes call */ static WMArray *defDropDataTypes(WMView * self) { return NULL; } static WMDragOperationType defWantedDropOperation(WMView * self) { return WDOperationNone; } /* Must be defined if wantedDropOperation return WDOperationAsk (useless otherwise). Return a WMDragOperationItem array (destroyed after call). A WMDragOperationItem links a label to an operation. static WMArray* defAskedOperations(WMView *self); */ static Bool defAcceptDropOperation(WMView * self, WMDragOperationType allowedOperation) { return False; } static void defBeganDrag(WMView * self, WMPoint * point) { } static void defEndedDrag(WMView * self, WMPoint * point, Bool deposited) { } /* Returned data is not destroyed */ static WMData *defFetchDragData(WMView * self, char *type) { return NULL; } void WMSetViewDragSourceProcs(WMView * view, WMDragSourceProcs * procs) { if (view->dragSourceProcs) wfree(view->dragSourceProcs); view->dragSourceProcs = wmalloc(sizeof(WMDragSourceProcs)); *view->dragSourceProcs = *procs; if (procs->dropDataTypes == NULL) view->dragSourceProcs->dropDataTypes = defDropDataTypes; if (procs->wantedDropOperation == NULL) view->dragSourceProcs->wantedDropOperation = defWantedDropOperation; /* Note: askedOperations can be NULL, if wantedDropOperation never returns WDOperationAsk. */ if (procs->acceptDropOperation == NULL) view->dragSourceProcs->acceptDropOperation = defAcceptDropOperation; if (procs->beganDrag == NULL) view->dragSourceProcs->beganDrag = defBeganDrag; if (procs->endedDrag == NULL) view->dragSourceProcs->endedDrag = defEndedDrag; if (procs->fetchDragData == NULL) view->dragSourceProcs->fetchDragData = defFetchDragData; } static Bool isXdndAware(WMScreen * scr, Window win) { Atom type; int format; unsigned long count, remain; unsigned char *winXdndVersion; if (win == None) return False; XGetWindowProperty(scr->display, win, scr->xdndAwareAtom, 0, 1, False, XA_ATOM, &type, &format, &count, &remain, &winXdndVersion); if (type != XA_ATOM || format != XDND_PROPERTY_FORMAT || count == 0 || !winXdndVersion) { if (winXdndVersion) XFree(winXdndVersion); return False; } XFree(winXdndVersion); return (count == 1); /* xdnd version is set */ } static Window *windowChildren(Display * dpy, Window win, unsigned *nchildren) { Window *children; Window foo, bar; if (!XQueryTree(dpy, win, &foo, &bar, &children, nchildren)) { *nchildren = 0; return NULL; } else return children; } static Window lookForAwareWindow(WMScreen * scr, WMPoint * mousePos, Window win) { int tmpx, tmpy; Window child; /* Since xdnd v3, only the toplevel window should be aware */ if (isXdndAware(scr, win)) return win; /* inspect child under pointer */ if (XTranslateCoordinates(scr->display, scr->rootWin, win, mousePos->x, mousePos->y, &tmpx, &tmpy, &child)) { if (child == None) return None; else return lookForAwareWindow(scr, mousePos, child); } return None; } static Window findDestination(WMDraggingInfo * info, WMPoint * mousePos) { WMScreen *scr = sourceScreen(info); unsigned nchildren; Window *children = windowChildren(scr->display, scr->rootWin, &nchildren); int i; XWindowAttributes attr; if (isXdndAware(scr, scr->rootWin)) return scr->rootWin; /* exclude drag icon (and upper) from search */ for (i = nchildren - 1; i >= 0; i--) { if (children[i] == XDND_DRAG_ICON(info)) { i--; break; } } if (i < 0) { /* root window has no child under drag icon, and is not xdnd aware. */ return None; } /* inspecting children, from upper to lower */ for (; i >= 0; i--) { if (XGetWindowAttributes(scr->display, children[i], &attr) && attr.map_state == IsViewable && mousePos->x >= attr.x && mousePos->y >= attr.y && mousePos->x < attr.x + attr.width && mousePos->y < attr.y + attr.height) { return lookForAwareWindow(scr, mousePos, children[i]); } } /* No child window under drag pointer */ return None; } static void storeDestinationProtocolVersion(WMDraggingInfo * info) { Atom type; int format; unsigned long count, remain; unsigned char *winXdndVersion; WMScreen *scr = W_VIEW_SCREEN(XDND_SOURCE_VIEW(info)); wassertr(XDND_DEST_WIN(info) != None); if (XGetWindowProperty(scr->display, XDND_DEST_WIN(info), scr->xdndAwareAtom, 0, 1, False, XA_ATOM, &type, &format, &count, &remain, &winXdndVersion) == Success) { XDND_DEST_VERSION(info) = *winXdndVersion; XFree(winXdndVersion); } else { XDND_DEST_VERSION(info) = 0; wwarning("failed to read XDND version of drop target"); } } static void initMotionProcess(WMView * view, WMDraggingInfo * info, XEvent * event, WMPoint * startLocation) { WMScreen *scr = W_VIEW_SCREEN(view); /* take ownership of XdndSelection */ XDND_SELECTION_PROCS(info) = (WMSelectionProcs *) wmalloc(sizeof(WMSelectionProcs)); XDND_SELECTION_PROCS(info)->convertSelection = convertSelection; XDND_SELECTION_PROCS(info)->selectionLost = selectionLost; XDND_SELECTION_PROCS(info)->selectionDone = selectionDone; XDND_TIMESTAMP(info) = event->xmotion.time; if (!WMCreateSelectionHandler(view, scr->xdndSelectionAtom, CurrentTime, XDND_SELECTION_PROCS(info), NULL)) { wwarning("could not get ownership or DND selection"); return; } registerDropTypes(scr, view, info); if (XDND_SOURCE_ACTION(info) == W_VIEW_SCREEN(view)->xdndActionAsk) registerSupportedOperations(view); if (view->dragSourceProcs->beganDrag != NULL) { view->dragSourceProcs->beganDrag(view, startLocation); } } static void processMotion(WMDraggingInfo * info, WMPoint * mousePos) { Window newDestination = findDestination(info, mousePos); W_DragSourceStopTimer(); if (newDestination != XDND_DEST_WIN(info)) { recolorCursor(info, False); if (XDND_DEST_WIN(info) != None) { /* leaving a xdnd window */ sendLeaveMessage(info); } XDND_DEST_WIN(info) = newDestination; XDND_DEST_ACTION(info) = None; XDND_NO_POS_ZONE(info).size.width = 0; XDND_NO_POS_ZONE(info).size.height = 0; if (newDestination != None) { /* entering a xdnd window */ XDND_SOURCE_STATE(info) = idleState; storeDestinationProtocolVersion(info); if (!sendEnterMessage(info)) { XDND_DEST_WIN(info) = None; return; } W_DragSourceStartTimer(info); } else { XDND_SOURCE_STATE(info) = NULL; } } else { if (XDND_DEST_WIN(info) != None) { if (!sendPositionMessage(info, mousePos)) { XDND_DEST_WIN(info) = None; return; } W_DragSourceStartTimer(info); } } } static Bool processButtonRelease(WMDraggingInfo * info) { if (XDND_SOURCE_STATE(info) == dropAllowedState) { /* begin drop */ W_DragSourceStopTimer(); if (!sendDropMessage(info)) return False; W_DragSourceStartTimer(info); return True; } else { if (XDND_DEST_WIN(info) != None) sendLeaveMessage(info); W_DragSourceStopTimer(); return False; } } Bool WMIsDraggingFromView(WMView * view) { WMDraggingInfo *info = &W_VIEW_SCREEN(view)->dragInfo; return (XDND_SOURCE_INFO(info) != NULL && XDND_SOURCE_STATE(info) != finishDropState); /* return W_VIEW_SCREEN(view)->dragInfo.sourceInfo != NULL; */ } void WMDragImageFromView(WMView * view, XEvent * event) { WMDraggingInfo *info = &W_VIEW_SCREEN(view)->dragInfo; WMPoint mouseLocation; switch (event->type) { case ButtonPress: if (event->xbutton.button == Button1) { XEvent nextEvent; XPeekEvent(event->xbutton.display, &nextEvent); /* Initialize only if a drag really begins (avoid clicks) */ if (nextEvent.type == MotionNotify) { initSourceDragInfo(view, info); } } break; case ButtonRelease: if (WMIsDraggingFromView(view)) { Bool dropBegan = processButtonRelease(info); recolorCursor(info, False); if (dropBegan) { endDragImage(info, False); XDND_SOURCE_STATE(info) = finishDropState; } else { /* drop failed */ endDragImage(info, True); endDragProcess(info, False); } } break; case MotionNotify: if (WMIsDraggingFromView(view)) { mouseLocation = wmkpoint(event->xmotion.x_root, event->xmotion.y_root); if (abs(XDND_DRAG_ICON_POS(info).x - mouseLocation.x) >= MIN_X_MOVE_OFFSET || abs(XDND_DRAG_ICON_POS(info).y - mouseLocation.y) >= MIN_Y_MOVE_OFFSET) { if (XDND_DRAG_ICON(info) == None) { initMotionProcess(view, info, event, &mouseLocation); startDragImage(view, info, event); } else { XDND_DRAG_ICON_POS(info).x = mouseLocation.x - XDND_MOUSE_OFFSET(info).x; XDND_DRAG_ICON_POS(info).y = mouseLocation.y - XDND_MOUSE_OFFSET(info).y; refreshDragImage(view, info); processMotion(info, &mouseLocation); } } } break; } } /* Minimal mouse events handler: no right or double-click detection, only drag is supported */ static void dragImageHandler(XEvent * event, void *cdata) { WMView *view = (WMView *) cdata; WMDragImageFromView(view, event); } /* ----- source states ----- */ #ifdef XDND_DEBUG static void traceStatusMsg(Display * dpy, XClientMessageEvent * statusEvent) { printf("Xdnd status message:\n"); if (statusEvent->data.l[1] & 0x2UL) printf("\tsend position on every move\n"); else { int x, y, w, h; x = statusEvent->data.l[2] >> 16; y = statusEvent->data.l[2] & 0xFFFFL; w = statusEvent->data.l[3] >> 16; h = statusEvent->data.l[3] & 0xFFFFL; printf("\tsend position out of ((%d,%d) , (%d,%d))\n", x, y, x + w, y + h); } if (statusEvent->data.l[1] & 0x1L) printf("\tallowed action: %s\n", XGetAtomName(dpy, statusEvent->data.l[4])); else printf("\tno action allowed\n"); } #endif static void storeDropAction(WMDraggingInfo * info, Atom destAction) { WMView *sourceView = XDND_SOURCE_VIEW(info); WMScreen *scr = W_VIEW_SCREEN(sourceView); if (sourceView->dragSourceProcs->acceptDropOperation != NULL) { if (sourceView->dragSourceProcs->acceptDropOperation(sourceView, W_ActionToOperation(scr, destAction))) XDND_DEST_ACTION(info) = destAction; else XDND_DEST_ACTION(info) = None; } else { XDND_DEST_ACTION(info) = destAction; } } static void storeStatusMessageInfos(WMDraggingInfo * info, XClientMessageEvent * statusEvent) { WMRect *noPosZone = &(XDND_NO_POS_ZONE(info)); #ifdef XDND_DEBUG traceStatusMsg(sourceScreen(info)->display, statusEvent); #endif if (statusEvent->data.l[1] & 0x2UL) { /* bit 1 set: destination wants position messages on every move */ noPosZone->size.width = 0; noPosZone->size.height = 0; } else { /* don't send another position message while in given rectangle */ noPosZone->pos.x = statusEvent->data.l[2] >> 16; noPosZone->pos.y = statusEvent->data.l[2] & 0xFFFFL; noPosZone->size.width = statusEvent->data.l[3] >> 16; noPosZone->size.height = statusEvent->data.l[3] & 0xFFFFL; } if ((statusEvent->data.l[1] & 0x1L) || statusEvent->data.l[4] != None) { /* destination accept drop */ storeDropAction(info, statusEvent->data.l[4]); } else { XDND_DEST_ACTION(info) = None; } } static void *idleState(WMView * view, XClientMessageEvent * event, WMDraggingInfo * info) { WMScreen *scr; Atom destMsg = event->message_type; scr = W_VIEW_SCREEN(view); if (destMsg == scr->xdndStatusAtom) { storeStatusMessageInfos(info, event); if (XDND_DEST_ACTION(info) != None) { recolorCursor(info, True); W_DragSourceStartTimer(info); return dropAllowedState; } else { /* drop denied */ recolorCursor(info, False); return idleState; } } if (destMsg == scr->xdndFinishedAtom) { wwarning("received xdndFinishedAtom before drop began"); } W_DragSourceStartTimer(info); return idleState; } static void *dropAllowedState(WMView * view, XClientMessageEvent * event, WMDraggingInfo * info) { WMScreen *scr = W_VIEW_SCREEN(view); Atom destMsg = event->message_type; if (destMsg == scr->xdndStatusAtom) { storeStatusMessageInfos(info, event); if (XDND_DEST_ACTION(info) == None) { /* drop denied */ recolorCursor(info, False); return idleState; } } W_DragSourceStartTimer(info); return dropAllowedState; } static void *finishDropState(WMView * view, XClientMessageEvent * event, WMDraggingInfo * info) { WMScreen *scr = W_VIEW_SCREEN(view); Atom destMsg = event->message_type; if (destMsg == scr->xdndFinishedAtom) { endDragProcess(info, True); return NULL; } W_DragSourceStartTimer(info); return finishDropState; } /* ----- end of source states ----- */ /* ----- source timer ----- */ static void dragSourceResponseTimeOut(void *source) { WMView *view = (WMView *) source; WMDraggingInfo *info = &(W_VIEW_SCREEN(view)->dragInfo); wwarning("delay for drag destination response expired"); sendLeaveMessage(info); recolorCursor(info, False); if (XDND_SOURCE_STATE(info) == finishDropState) { /* drop failed */ endDragImage(info, True); endDragProcess(info, False); } else { XDND_SOURCE_STATE(info) = idleState; } } void W_DragSourceStopTimer() { if (dndSourceTimer != NULL) { WMDeleteTimerHandler(dndSourceTimer); dndSourceTimer = NULL; } } void W_DragSourceStartTimer(WMDraggingInfo * info) { W_DragSourceStopTimer(); dndSourceTimer = WMAddTimerHandler(XDND_DESTINATION_RESPONSE_MAX_DELAY, dragSourceResponseTimeOut, XDND_SOURCE_VIEW(info)); } /* ----- End of Destination timer ----- */ void W_DragSourceStateHandler(WMDraggingInfo * info, XClientMessageEvent * event) { WMView *view; W_DndState *newState; if (XDND_SOURCE_VIEW_STORED(info)) { if (XDND_SOURCE_STATE(info) != NULL) { view = XDND_SOURCE_VIEW(info); #ifdef XDND_DEBUG printf("current source state: %s\n", stateName(XDND_SOURCE_STATE(info))); #endif newState = (W_DndState *) XDND_SOURCE_STATE(info) (view, event, info); #ifdef XDND_DEBUG printf("new source state: %s\n", stateName(newState)); #endif if (newState != NULL) XDND_SOURCE_STATE(info) = newState; /* else drop finished, and info has been flushed */ } } else { wwarning("received DnD message without having a target"); } } void WMSetViewDragImage(WMView * view, WMPixmap * dragImage) { if (view->dragImage != NULL) WMReleasePixmap(view->dragImage); view->dragImage = WMRetainPixmap(dragImage); } void WMReleaseViewDragImage(WMView * view) { if (view->dragImage != NULL) WMReleasePixmap(view->dragImage); } /* Create a drag handler, associating drag event masks with dragEventProc */ void WMCreateDragHandler(WMView * view, WMEventProc * dragEventProc, void *clientData) { WMCreateEventHandler(view, ButtonPressMask | ButtonReleaseMask | Button1MotionMask, dragEventProc, clientData); } void WMDeleteDragHandler(WMView * view, WMEventProc * dragEventProc, void *clientData) { WMDeleteEventHandler(view, ButtonPressMask | ButtonReleaseMask | Button1MotionMask, dragEventProc, clientData); } /* set default drag handler for view */ void WMSetViewDraggable(WMView * view, WMDragSourceProcs * dragSourceProcs, WMPixmap * dragImage) { wassertr(dragImage != NULL); view->dragImage = WMRetainPixmap(dragImage); WMSetViewDragSourceProcs(view, dragSourceProcs); WMCreateDragHandler(view, dragImageHandler, view); } void WMUnsetViewDraggable(WMView * view) { if (view->dragSourceProcs) { wfree(view->dragSourceProcs); view->dragSourceProcs = NULL; } WMReleaseViewDragImage(view); WMDeleteDragHandler(view, dragImageHandler, view); } WindowMaker-0.95.5/WINGs/get-wutil-flags.in0000644000175000017500000000067212214432632015260 00000000000000#!/bin/sh WCFLAGS="-I${includedir}" WLFLAGS="-L${libdir}" WLIBS="-lWUtil ${INTLIBS}" usage="Usage: get-wutil-flags [--cflags] [--ldflags] [--libs]" if test $# -eq 0; then echo "${usage}" 1>&2 exit 1 fi while test $# -gt 0; do case $1 in --cflags) echo $WCFLAGS ;; --ldflags|--lflags) echo $WLFLAGS ;; --libs) echo $WLIBS ;; *) echo "${usage}" 1>&2 exit 1 ;; esac shift done WindowMaker-0.95.5/WINGs/wutil.c0000644000175000017500000000100412214432632013213 00000000000000 /* * Handle events for non-GUI based applications */ #include "WINGsP.h" void WHandleEvents() { /* Check any expired timers */ W_CheckTimerHandlers(); /* Do idle and timer stuff while there are no input events */ /* Do not wait for input here. just peek to see if input is available */ while (!W_HandleInputEvents(False, -1) && W_CheckIdleHandlers()) { /* dispatch timer events */ W_CheckTimerHandlers(); } W_HandleInputEvents(True, -1); /* Check any expired timers */ W_CheckTimerHandlers(); } WindowMaker-0.95.5/WINGs/Makefile.am0000644000175000017500000000550712214432632013753 00000000000000## automake input file for WINGs AUTOMAKE_OPTIONS = SUBDIRS = WINGs . po Documentation Resources libWINGs_la_LDFLAGS = -version-info @WINGS_VERSION@ libWUtil_la_LDFLAGS = -version-info @WUTIL_VERSION@ bin_SCRIPTS = get-wings-flags get-wutil-flags lib_LTLIBRARIES = libWUtil.la libWINGs.la LDADD= libWUtil.la libWINGs.la $(top_builddir)/wrlib/libwraster.la @INTLIBS@ libWINGs_la_LIBADD = libWUtil.la $(top_builddir)/wrlib/libwraster.la @XLIBS@ @XFTLIBS@ @FCLIBS@ @LIBM@ libWUtil_la_LIBADD = @LIBBSD@ EXTRA_DIST = BUGS make-rgb Examples Extras Tests get-wings-flags.in get-wutil-flags.in # wbutton.c libWINGs_la_SOURCES = \ configuration.c \ dragcommon.c \ dragdestination.c \ dragsource.c \ rgb.h \ selection.c \ wappresource.c \ wballoon.c \ wbox.c \ wbrowser.c \ wbutton.c \ wcolor.c \ wcolorpanel.c \ wcolorwell.c \ wconfig.h \ wevent.c \ wfilepanel.c \ wframe.c \ wfont.c \ wfontpanel.c \ widgets.c \ winputmethod.c \ wlabel.c \ wlist.c \ wmenuitem.c \ wmisc.c \ wpanel.c \ wpixmap.c \ wpopupbutton.c \ wprogressindicator.c \ wruler.c \ wscroller.c \ wscrollview.c \ wslider.c \ wsplitview.c \ wtabview.c \ wtext.c \ wtextfield.c \ wview.c \ wwindow.c libWUtil_la_SOURCES = \ array.c \ bagtree.c \ data.c \ error.c \ findfile.c \ handlers.c \ hashtable.c \ memory.c \ menuparser.c \ menuparser.h \ menuparser_macros.c \ misc.c \ notification.c \ proplist.c \ string.c \ tree.c \ userdefaults.c \ usleep.c \ wapplication.c \ wconfig.h \ wutil.c AM_CFLAGS = AM_CPPFLAGS = -DLOCALEDIR=\"$(NLSDIR)\" -DRESOURCE_PATH=\"$(datadir)/WINGs\" \ -I$(top_srcdir)/WINGs/WINGs -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \ @XFTFLAGS@ @HEADER_SEARCH_PATH@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = WINGs.pc DISTCLEANFILES = $(pkgconfig_DATA) get-wings-flags get-wutil-flags WINGs.pc: Makefile @echo "Generating $@" @echo 'Name: WINGs' > $@ @echo 'Description: Small widget set with the NeXTStep(TM) look and feel' >> $@ @echo 'Version: $(VERSION)' >> $@ @echo 'Requires: wrlib' >> $@ @echo 'Libs: $(lib_search_path) -lWINGs' >> $@ @echo 'Libs.private: $(XFTLIBS) $(XLIBS) -lm $(INTLIBS)' >> $@ @echo 'Cflags: $(inc_search_path)' >> $@ get-wings-flags: get-wings-flags.in Makefile @echo "Generating $@" @$(SED) -e 's#$${inc_search_path}#$(inc_search_path)#;' \ -e 's#$${lib_search_path}#$(lib_search_path)#;' \ -e 's#$${GFXLIBS}#$(GFXLIBS)#;' \ -e 's#$${XFTLIBS}#$(XFTLIBS)#;' \ -e 's#$${INTLIBS}#$(INTLIBS)#;' \ -e 's#$${XLIBS}#$(XLIBS)#;' < $(abs_srcdir)/get-wings-flags.in > $@ @chmod 755 $@ get-wutil-flags: get-wutil-flags.in Makefile @echo "Generating $@" @$(SED) -e 's#$${includedir}#$(includedir)#;' \ -e 's#$${libdir}#$(libdir)#;' \ -e 's#$${INTLIBS}#$(INTLIBS)#;' < $(abs_srcdir)/get-wutil-flags.in > $@ @chmod 755 $@ WindowMaker-0.95.5/WINGs/po/0000755000175000017500000000000012214434642012411 500000000000000WindowMaker-0.95.5/WINGs/po/ca.po0000644000175000017500000005020112214432632013247 00000000000000# Catalan messages for WINGs. # Copyright (C) 2003 Ernest Adrogué . # This file is distributed under the terms of the GNU General Public License. # # Version history: # WM-ver author email date # 0.80.2 Ernest Adrogué eadrogue@gmx.net 23 Feb 2003 # CVS-20030914 Ernest Adrogué eadrogue@gmx.net 15 Set 2003 # msgid "" msgstr "" "Project-Id-Version: WINGs 0.80.2\n" "POT-Creation-Date: 2003-09-16 22:59+0200\n" "PO-Revision-Date: 2003-09-16 23:16+0200\n" "Last-Translator: Ernest Adrogué \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../WINGs/connection.c:467 ../../WINGs/connection.c:532 #: ../../WINGs/connection.c:575 msgid "Bad address-service-protocol combination" msgstr "Combinació adreça-servei-protocol incorrecta" #: ../../WINGs/error.c:54 #, c-format msgid "Unknown error %d" msgstr "Error no identificat %d" #: ../../WINGs/error.c:59 #, c-format msgid "Error %d" msgstr "Error %d" #: ../../WINGs/error.c:110 msgid " warning: " msgstr ": atenció: " #: ../../WINGs/error.c:137 msgid " fatal error: " msgstr ": error fatal: " #: ../../WINGs/error.c:163 ../../WINGs/error.c:192 msgid " error: " msgstr ": error: " #: ../../WINGs/findfile.c:48 #, c-format msgid "could not get password entry for UID %i" msgstr "no s'ha pogut obtenir l'informació de compte de l'UID %i" #: ../../WINGs/findfile.c:66 #, c-format msgid "could not get password entry for user %s" msgstr "no s'ha pogut obtenir l'informació de compte de l'usuari %s" #: ../../WINGs/host.c:114 msgid "Cannot get current host name" msgstr "No s'ha pogut obtenir el nom de host actual" # falten coses per traduïr en el codi font. eac #: ../../WINGs/proplist.c:91 #, c-format msgid "syntax error in %s %s, line %i: %s" msgstr "error de sintaxi a %s %s, línia %i: %s" #: ../../WINGs/proplist.c:150 msgid "Only string or data is supported for a proplist dictionary key" msgstr "" "Una entrada PropList de diccionari només pot contenir dades o una cadena" #: ../../WINGs/proplist.c:184 ../../WINGs/proplist.c:236 #: ../../WINGs/proplist.c:394 ../../WINGs/proplist.c:474 #: ../../WINGs/proplist.c:1075 ../../WINGs/proplist.c:1127 #: ../../WINGs/proplist.c:1293 ../../WINGs/proplist.c:1372 #: ../../WINGs/proplist.c:1493 ../../WINGs/proplist.c:1540 msgid "Used proplist functions on non-WMPropLists objects" msgstr "S'han usat funcions PropList en objectes no-WMPropLists" #: ../../WINGs/proplist.c:630 msgid "unterminated PropList string" msgstr "cadena PropList incompleta" #: ../../WINGs/proplist.c:670 msgid "unterminated PropList data" msgstr "dades PropList incompletes" #: ../../WINGs/proplist.c:678 msgid "unterminated PropList data (missing hexdigit)" msgstr "Dades PropList incompletes (falta un digit hexadecimal)" #: ../../WINGs/proplist.c:690 ../../WINGs/proplist.c:695 msgid "non hexdigit character in PropList data" msgstr "cap digit hexadecimal a les dades PropList" #: ../../WINGs/proplist.c:729 msgid "unterminated PropList array" msgstr "matriu PropList incompleta" #: ../../WINGs/proplist.c:737 msgid "missing or unterminated PropList array" msgstr "matriu PropList incompleta o inexistent" #: ../../WINGs/proplist.c:747 msgid "could not get PropList array element" msgstr "no s'ha pogut obtenir un element de la matriu PropList" #: ../../WINGs/proplist.c:776 msgid "unterminated PropList dictionary" msgstr "diccionari PropList incomplet" #: ../../WINGs/proplist.c:793 msgid "missing PropList dictionary key" msgstr "falta una entrada PropList de diccionari" #: ../../WINGs/proplist.c:795 msgid "missing PropList dictionary entry key or unterminated dictionary" msgstr "falta una entrada PropList de diccionari o bé està incompleta" #: ../../WINGs/proplist.c:803 msgid "error parsing PropList dictionary key" msgstr "error mentre s'analitzava l'entrada PropList de diccionari" #: ../../WINGs/proplist.c:811 msgid "missing = in PropList dictionary entry" msgstr "falta un \"=\" a l'entrada PropList de diccionari" #: ../../WINGs/proplist.c:819 msgid "error parsing PropList dictionary entry value" msgstr "error mentre s'analitzava el valor de l'entrada PropList de diccionari" #: ../../WINGs/proplist.c:827 msgid "missing ; in PropList dictionary entry" msgstr "falta un \";\" a l'entrada PropList de diccionari" #: ../../WINGs/proplist.c:888 msgid "" "was expecting a string, data, array or dictionary. If it's a string, try " "enclosing it with \"." msgstr "" "s'esperava una cadena, dada, matriu o diccionari. Si es tractava d'una\n" "cadena proveu d'escriure-la \"entre cometes\"." #: ../../WINGs/proplist.c:892 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "No es permeten comentaris en els fitxers de domini de WindowMaker." #: ../../WINGs/proplist.c:1563 ../../WINGs/proplist.c:1630 msgid "extra data after end of property list" msgstr "sobren dades després de la llista de propietats" #: ../../WINGs/proplist.c:1606 #, c-format msgid "could not get size for file '%s'" msgstr "no s'ha pogut obtenir la mida de \"%s\"" #: ../../WINGs/proplist.c:1619 #, c-format msgid "error reading from file '%s'" msgstr "error mentre es llegia el fitxer \"%s\"" #: ../../WINGs/proplist.c:1671 #, c-format msgid "mkstemp (%s) failed" msgstr "la rutina mkstemp (%s) ha fallat" #: ../../WINGs/proplist.c:1682 #, c-format msgid "mktemp (%s) failed" msgstr "la rutina mktemp (%s) ha fallat" #: ../../WINGs/proplist.c:1693 #, c-format msgid "open (%s) failed" msgstr "la rutina open (%s) ha fallat" #: ../../WINGs/proplist.c:1700 #, c-format msgid "writing to file: %s failed" msgstr "l'escriptura del fitxer \"%s\" ha fallat" #: ../../WINGs/proplist.c:1708 #, c-format msgid "fclose (%s) failed" msgstr "la rutina fclose (%s) ha fallat" #: ../../WINGs/proplist.c:1717 #, c-format msgid "rename ('%s' to '%s') failed" msgstr "el canvi de nom (\"%s\" a \"%s\") ha fallat" #. something happened with the file. just overwrite it #: ../../WINGs/userdefaults.c:188 ../../WINGs/userdefaults.c:204 #, c-format msgid "cannot read domain from file '%s' when syncing" msgstr "no s'ha pogut llegir un domini del fitxer \"%s\" quan es sincronitzava" #: ../../WINGs/wcolor.c:224 ../../WINGs/wcolor.c:236 ../../WINGs/wcolor.c:275 #: ../../WINGs/wcolor.c:316 #, c-format msgid "could not allocate %s color" msgstr "no s'ha pogut assignar espai pel color \"%s\"" #: ../../WINGs/wcolor.c:224 msgid "white" msgstr "blanc" #: ../../WINGs/wcolor.c:236 msgid "black" msgstr "negre" #: ../../WINGs/wcolor.c:275 msgid "gray" msgstr "gris" #: ../../WINGs/wcolor.c:316 msgid "dark gray" msgstr "gris fosc" #: ../../WINGs/wcolorpanel.c:420 msgid "Colors" msgstr "Colors" #: ../../WINGs/wcolorpanel.c:610 ../../WINGs/wcolorpanel.c:2829 msgid "Brightness" msgstr "Claror" #: ../../WINGs/wcolorpanel.c:612 ../../WINGs/wcolorpanel.c:688 #: ../../WINGs/wcolorpanel.c:721 ../../WINGs/wcolorpanel.c:755 #: ../../WINGs/wcolorpanel.c:815 ../../WINGs/wcolorpanel.c:849 #: ../../WINGs/wcolorpanel.c:883 ../../WINGs/wcolorpanel.c:918 #: ../../WINGs/wcolorpanel.c:2169 ../../WINGs/wcolorpanel.c:2831 #: ../../WINGs/wcolorpanel.c:2867 ../../WINGs/wcolorpanel.c:2903 #: ../../WINGs/wcolorpanel.c:3745 msgid "Color Panel: Could not allocate memory" msgstr "Panell de color: No s'ha pogut assignar memòria" #: ../../WINGs/wcolorpanel.c:685 ../../WINGs/wcolorpanel.c:686 msgid "Red" msgstr "Roig" #: ../../WINGs/wcolorpanel.c:718 ../../WINGs/wcolorpanel.c:719 msgid "Green" msgstr "Verd" #: ../../WINGs/wcolorpanel.c:752 ../../WINGs/wcolorpanel.c:753 msgid "Blue" msgstr "Blau" #: ../../WINGs/wcolorpanel.c:812 ../../WINGs/wcolorpanel.c:813 msgid "Cyan" msgstr "Cian" #: ../../WINGs/wcolorpanel.c:846 ../../WINGs/wcolorpanel.c:847 msgid "Magenta" msgstr "Magenta" #: ../../WINGs/wcolorpanel.c:880 ../../WINGs/wcolorpanel.c:881 msgid "Yellow" msgstr "Groc" #: ../../WINGs/wcolorpanel.c:915 ../../WINGs/wcolorpanel.c:916 msgid "Black" msgstr "Negre" #: ../../WINGs/wcolorpanel.c:996 msgid "Spectrum" msgstr "Espectre" #: ../../WINGs/wcolorpanel.c:1026 msgid "Palette" msgstr "Paleta" #: ../../WINGs/wcolorpanel.c:1032 msgid "New from File..." msgstr "Obtenir d'un fitxer..." #: ../../WINGs/wcolorpanel.c:1033 ../../WINGs/wcolorpanel.c:1081 #: ../../WINGs/wcolorpanel.c:1098 msgid "Rename..." msgstr "Reanomenar..." #: ../../WINGs/wcolorpanel.c:1034 ../../WINGs/wcolorpanel.c:1082 #: ../../WINGs/wcolorpanel.c:1099 ../../WINGs/wcolorpanel.c:3326 msgid "Remove" msgstr "Eliminar" #: ../../WINGs/wcolorpanel.c:1035 msgid "Copy" msgstr "Copiar" #: ../../WINGs/wcolorpanel.c:1036 msgid "New from Clipboard" msgstr "Obtenir del porta-retalls..." #: ../../WINGs/wcolorpanel.c:1057 msgid "X11-Colors" msgstr "Colors-X11" #: ../../WINGs/wcolorpanel.c:1074 msgid "Color" msgstr "Color" #: ../../WINGs/wcolorpanel.c:1080 msgid "Add..." msgstr "Afegeix..." #: ../../WINGs/wcolorpanel.c:1090 msgid "List" msgstr "Llista" #: ../../WINGs/wcolorpanel.c:1097 msgid "New..." msgstr "Nou..." #: ../../WINGs/wcolorpanel.c:1236 #, c-format msgid "" "Color Panel: Could not create directory %s needed to store configurations" msgstr "" "Panell de color: No s'ha pogut crear el directori \"%s\" necessari per desar " "la configuració" #. Delete the file, it doesn't belong here #: ../../WINGs/wcolorpanel.c:1242 ../../WINGs/wcolorpanel.c:3212 #: ../../WINGs/wcolorpanel.c:3216 msgid "File Error" msgstr "Error de fitxer" #: ../../WINGs/wcolorpanel.c:1243 msgid "Could not create ColorPanel configuration directory" msgstr "No s'ha pogut crear el directori de configuració del Panell de color" #: ../../WINGs/wcolorpanel.c:1244 ../../WINGs/wcolorpanel.c:3213 #: ../../WINGs/wcolorpanel.c:3218 ../../WINGs/wcolorpanel.c:3245 #: ../../WINGs/wfilepanel.c:250 ../../WINGs/wfilepanel.c:650 #: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763 #: ../../WINGs/wfilepanel.c:974 ../../WINGs/wfontpanel.c:751 msgid "OK" msgstr "D'acord" #: ../../WINGs/wcolorpanel.c:1250 ../../WINGs/wcolorpanel.c:1286 #: ../../WINGs/wcolorpanel.c:1304 msgid "Color Panel: Could not find file" msgstr "Panell de color: No s'ha trobat el fitxer" #: ../../WINGs/wcolorpanel.c:1491 ../../WINGs/wcolorpanel.c:1556 #: ../../WINGs/wcolorpanel.c:1620 msgid "Color Panel: X failed request" msgstr "Panell de color: petició X fallida" #: ../../WINGs/wcolorpanel.c:2865 msgid "Saturation" msgstr "Saturació" #: ../../WINGs/wcolorpanel.c:2901 msgid "Hue" msgstr "Matís" # és el títol d'un quadre de diàleg. eac #: ../../WINGs/wcolorpanel.c:3151 msgid "Open Palette" msgstr "Obrir paleta" #: ../../WINGs/wcolorpanel.c:3213 msgid "Invalid file format !" msgstr "El format del fitxer no és vàlid !" #: ../../WINGs/wcolorpanel.c:3215 #, c-format msgid "can't remove file %s" msgstr "no s'ha pogut eliminar el fitxer \"%s\"" #: ../../WINGs/wcolorpanel.c:3217 msgid "Couldn't remove file from Configuration Directory !" msgstr "No s'ha pogut eliminar el fitxer del directori de configuració !" #: ../../WINGs/wcolorpanel.c:3244 msgid "Rename" msgstr "Reanomena" #: ../../WINGs/wcolorpanel.c:3244 msgid "Rename palette to:" msgstr "Reanomena la paleta com a:" #: ../../WINGs/wcolorpanel.c:3245 ../../WINGs/wfilepanel.c:259 #: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763 msgid "Cancel" msgstr "Cancel·la" #. Careful, this palette exists already #: ../../WINGs/wcolorpanel.c:3261 ../../WINGs/wfilepanel.c:763 msgid "Warning" msgstr "Atenció" #: ../../WINGs/wcolorpanel.c:3262 msgid "" "Palette already exists !\n" "\n" "Overwrite ?" msgstr "" "Ja existia una paleta amb aquest nom!\n" "\n" "La voleu sobreescriure?" #: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326 msgid "No" msgstr "No" #: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326 msgid "Yes" msgstr "Sí" #: ../../WINGs/wcolorpanel.c:3294 #, c-format msgid "Couldn't rename palette %s to %s\n" msgstr "No s'ha pogut reanomenar la paleta %s com a %s\n" #: ../../WINGs/wcolorpanel.c:3320 msgid "This will permanently remove the palette " msgstr "Això eliminarà la paleta per sempre " #: ../../WINGs/wcolorpanel.c:3323 msgid "" ".\n" "\n" "Are you sure you want to remove this palette ?" msgstr "" ".\n" "\n" "Esteu segurs que voleu eliminar aquesta paleta?" #: ../../WINGs/wcolorpanel.c:3348 #, c-format msgid "Couldn't remove palette %s\n" msgstr "No s'ha pogut eliminar la paleta %s\n" #: ../../WINGs/wcolorpanel.c:3647 #, c-format msgid "Could not open %s" msgstr "No s'ha pogut obrir %s" #: ../../WINGs/wcolorpanel.c:3654 #, c-format msgid "Could not create %s" msgstr "No s'ha pogut crear %s" #: ../../WINGs/wcolorpanel.c:3665 #, c-format msgid "Write error on file %s" msgstr "Error d'escriptura en el fitxer %s" #: ../../WINGs/wcolorpanel.c:3710 msgid "Color Panel: Color unspecified" msgstr "Panell de color: Color no especificat" #: ../../WINGs/wfilepanel.c:235 msgid "Name:" msgstr "Nom:" #: ../../WINGs/wfilepanel.c:332 ../../WINGs/wfilepanel.c:396 msgid "Open" msgstr "Obre" #: ../../WINGs/wfilepanel.c:350 ../../WINGs/wfilepanel.c:402 msgid "Save" msgstr "Desa" #: ../../WINGs/wfilepanel.c:565 #, c-format msgid "WINGs: could not open directory %s\n" msgstr "WINGs: no s'ha pogut obrir el directori %s\n" #: ../../WINGs/wfilepanel.c:583 #, c-format msgid "WINGs: could not stat %s\n" msgstr "WINGs: no s'ha pogut determinar l'estat de %s\n" #: ../../WINGs/wfilepanel.c:650 ../../WINGs/wfilepanel.c:973 #: ../../WINGs/wfontpanel.c:750 msgid "Error" msgstr "Error" # és el nom d'un quadre de diàleg. eac #: ../../WINGs/wfilepanel.c:661 msgid "Create Directory" msgstr "Crear directori" #: ../../WINGs/wfilepanel.c:662 msgid "Enter directory name" msgstr "Entreu el nom del directori" #: ../../WINGs/wfilepanel.c:698 ../../WINGs/wfilepanel.c:737 #: ../../WINGs/wfilepanel.c:768 ../../WINGs/wfilepanel.c:796 msgid "Permission denied." msgstr "Permís denegat." #: ../../WINGs/wfilepanel.c:701 #, c-format msgid "'%s' already exists." msgstr "\"%s\" existia prèviament." #: ../../WINGs/wfilepanel.c:704 msgid "Path does not exist." msgstr "L'ubicació no existeix." #: ../../WINGs/wfilepanel.c:734 ../../WINGs/wfilepanel.c:793 #, c-format msgid "'%s' does not exist." msgstr "\"%s\" no existeix." #: ../../WINGs/wfilepanel.c:741 ../../WINGs/wfilepanel.c:800 msgid "Insufficient memory available." msgstr "No hi ha prou memòria disponible." #: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:804 #, c-format msgid "'%s' is on a read-only filesystem." msgstr "\"%s\" es troba en un sistema de fitxers de només lectura." #: ../../WINGs/wfilepanel.c:748 ../../WINGs/wfilepanel.c:780 #: ../../WINGs/wfilepanel.c:807 #, c-format msgid "Can not delete '%s'." msgstr "No s'ha pogut eliminar \"%s\"." #: ../../WINGs/wfilepanel.c:755 #, c-format msgid "Delete directory %s ?" msgstr "Voleu eliminar el directori %s ?" #: ../../WINGs/wfilepanel.c:759 #, c-format msgid "Delete file %s ?" msgstr "Voleu eliminar el fitxer %s ?" #: ../../WINGs/wfilepanel.c:771 #, c-format msgid "Directory '%s' does not exist." msgstr "El directori \"%s\" no existeix." #: ../../WINGs/wfilepanel.c:774 #, c-format msgid "Directory '%s' is not empty." msgstr "El directori \"%s\" no està buit." #: ../../WINGs/wfilepanel.c:777 #, c-format msgid "Directory '%s' is busy." msgstr "El directori \"%s\" es troba ocupat." #: ../../WINGs/wfilepanel.c:790 #, c-format msgid "'%s' is a directory." msgstr "\"%s\" és un directori." #: ../../WINGs/wfilepanel.c:832 #, c-format msgid "An error occured browsing '%s'." msgstr "S'ha produït un error mentre s'explorava \"%s\"." #: ../../WINGs/wfilepanel.c:836 #, c-format msgid "'%s' is not a directory." msgstr "\"%s\" no és un directori." #: ../../WINGs/wfilepanel.c:973 msgid "File does not exist." msgstr "El fitxer no existeix." #: ../../WINGs/wfont.c:324 ../../WINGs/wfont.c:344 #, c-format msgid "could not load font %s." msgstr "no s'ha pogut carregar el tipus de lletra %s." #: ../../WINGs/wfont.c:375 ../../WINGs/wfont.c:420 ../../WINGs/wfont.c:475 #: ../../WINGs/wfont.c:1337 ../../WINGs/wfont.c:1398 ../../WINGs/wfont.c:1469 #, c-format msgid "" "Conversion to widechar failed (possible invalid multibyte sequence): '%s':" "(pos %d)\n" msgstr "" "Ha fallat la conversió a caràcter estès (possible seqüència no vàlida): '%" "s': (pos %d)\n" #. // remove warning later. or maybe not #: ../../WINGs/wfont.c:591 ../../WINGs/wfont.c:1568 #, c-format msgid "Invalid font specification: '%s'\n" msgstr "Especificació de font no vàlida: \"%s\"\n" #: ../../WINGs/wfont.c:770 ../../WINGs/wfont.c:780 #, c-format msgid "Invalid size specification '%s' in %s. Using default %d\n" msgstr "" "La mida \"%s\" especificada a %s no és vàlida. S'usa el valor per omissió %" "d\n" #: ../../WINGs/wfont.c:824 #, c-format msgid "the following character sets are missing in %s:" msgstr "els següents conjunts de caràcters falten a %s:" #: ../../WINGs/wfont.c:830 #, c-format msgid "" "the string \"%s\" will be used in place of any characters from those sets." msgstr "" "la cadena \"%s\" s'usarà en lloc dels caràcters d'aquests conjunts de " "caràcters." #. is arial a good fallback for multibyte? #: ../../WINGs/wfont.c:1232 ../../WINGs/wfont.c:1247 #, c-format msgid "could not load font %s. Trying arial." msgstr "no s'ha pogut carregar el tipus de lletra %s. Provant amb \"arial\"." #: ../../WINGs/wfont.c:1239 msgid "could not load antialiased font set. Reverting to standard font sets." msgstr "" "no s'ha pogut carregar el conjunt de fonts amb allisat. S'usarà l'estàndard." #: ../../WINGs/wfont.c:1242 #, c-format msgid "could not load FontSet %s. Trying fixed." msgstr "no s'ha pogut carregar el tipus de lletra %s. Provant amb \"fixed\"." #: ../../WINGs/wfont.c:1254 msgid "could not load antialiased fonts. Reverting to normal fonts." msgstr "no s'han pogut carregar fonts allisades. S'usaran fonts normals." #: ../../WINGs/wfont.c:1257 ../../WINGs/wfont.c:1268 #, c-format msgid "could not load font %s. Trying fixed." msgstr "no s'ha pogut carregar la font %s. Provant amb \"fixed\"." #: ../../WINGs/wfont.c:1262 #, c-format msgid "could not load font set %s. Trying fixed." msgstr "no s'ha pogut carregar el conjunt de fonts %s. Provant amb \"fixed\"." #: ../../WINGs/wfont.c:1272 msgid "could not load fixed font!" msgstr "no s'ha pogut carregar el tipus de lletra \"fixed\" !" #: ../../WINGs/wfont.c:1520 #, c-format msgid "font description %s is too large." msgstr "la descripció de tipus de lletra %s és massa gran." #: ../../WINGs/wfontpanel.c:235 msgid "Test!!!" msgstr "Prova!!!" #: ../../WINGs/wfontpanel.c:241 msgid "Family" msgstr "Familia" #: ../../WINGs/wfontpanel.c:252 msgid "Typeface" msgstr "Fosa" #: ../../WINGs/wfontpanel.c:263 msgid "Size" msgstr "Mida" #: ../../WINGs/wfontpanel.c:282 msgid "Set" msgstr "Conjunt" #: ../../WINGs/wfontpanel.c:288 msgid "Revert" msgstr "Torna" #: ../../WINGs/wfontpanel.c:751 msgid "Could not retrieve font list" msgstr "No s'ha pogut obtenir la llista de tipus de lletra" #: ../../WINGs/wfontpanel.c:765 #, c-format msgid "font name %s is longer than 256, which is invalid." msgstr "" "el nom de tipus de lletra %s ocupa més de 256 caràcters, per tant no és " "vàlid." #: ../../WINGs/wfontpanel.c:913 msgid "Roman" msgstr "Romana" #: ../../WINGs/wfontpanel.c:916 msgid "Italic" msgstr "Itàlica" #: ../../WINGs/wfontpanel.c:918 msgid "Oblique" msgstr "Obliqua" #: ../../WINGs/wfontpanel.c:920 msgid "Rev Italic" msgstr "Itàlica inv" #: ../../WINGs/wfontpanel.c:922 msgid "Rev Oblique" msgstr "Obliqua inv" #: ../../WINGs/wfontpanel.c:928 msgid "Normal" msgstr "Normal" #: ../../WINGs/widgets.c:419 #, c-format msgid "WINGs: could not load widget images file: %s" msgstr "WINGs: no s'ha pogut carregar el fitxer d'imatges: %s" #: ../../WINGs/widgets.c:772 msgid "" "could not load any fonts. Make sure your font installation and locale " "settings are correct." msgstr "" "no s'ha pogut carregar cap font. Assegureu-vos que heu instal·lat i " "configurat correctament les fonts i el local." #: ../../WINGs/wruler.c:192 msgid "0 inches" msgstr "0 polzades" #~ msgid "" #~ "Text antialiasing is enabled in the configuration but the X server " #~ "doesn't have the required capabilities (missing RENDER extension). " #~ "Disabling text antialiasing." #~ msgstr "" #~ "L'allisat de text està habilitat a la configuració però el servidor X no\n" #~ "té la capacitat necessària (falta l'extensió RENDER) de manera que " #~ "l'allisat\n" #~ "de text es deshabilitarà." WindowMaker-0.95.5/WINGs/po/README0000644000175000017500000000117312214432632013210 00000000000000 Instructions for translating po files can be found in the po/README directory in the top of the WindowMaker source tree. All files are in UTF-8 File Language Note Current Maintainer ------------------------------------------------------------------------------ ca.po Catalan Ernest Adrogué cs.po Czech Jiri Hnidek fr.po French Emmanuel Benoit Antoine Hulin sk.po Slovak Jan 'judas' Tomka bg.po Bulgarian Anton Zinoviev Notes ----- WindowMaker-0.95.5/WINGs/po/Makefile.in0000644000175000017500000003012112214434561014373 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WINGs/po DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ nlsdir = $(NLSDIR) CATALOGS = @WINGSMOFILES@ CLEANFILES = $(CATALOGS) WINGs.pot EXTRA_DIST = bg.po ca.po cs.po de.po fr.po sk.po POTFILES = \ $(top_builddir)/WINGs/error.c \ $(top_builddir)/WINGs/findfile.c \ $(top_builddir)/WINGs/proplist.c \ $(top_builddir)/WINGs/userdefaults.c \ $(top_builddir)/WINGs/wcolor.c \ $(top_builddir)/WINGs/wcolorpanel.c \ $(top_builddir)/WINGs/wfilepanel.c \ $(top_builddir)/WINGs/wfont.c \ $(top_builddir)/WINGs/wfontpanel.c \ $(top_builddir)/WINGs/widgets.c \ $(top_builddir)/WINGs/wruler.c SUFFIXES = .po .mo all: all-am .SUFFIXES: .SUFFIXES: .po .mo $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/po/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WINGs/po/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-data-local \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am .po.mo: msgfmt -c -o $@ $< all-local: $(CATALOGS) WINGs.pot: $(POTFILES) xgettext --default-domain=WINGs \ --add-comments --keyword=_ --keyword=N_ $(POTFILES) if cmp -s WINGs.po WINGs.pot; then \ rm -f WINGs.po; \ else \ mv -f WINGs.po WINGs.pot; \ fi install-data-local: $(CATALOGS) $(mkinstalldirs) $(DESTDIR)$(nlsdir) chmod 755 $(DESTDIR)$(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_DATA) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/WINGs.mo; \ fi; \ done # 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. .NOEXPORT: WindowMaker-0.95.5/WINGs/po/Makefile.am0000644000175000017500000000242112214432632014361 00000000000000nlsdir = $(NLSDIR) CATALOGS = @WINGSMOFILES@ CLEANFILES = $(CATALOGS) WINGs.pot EXTRA_DIST = bg.po ca.po cs.po de.po fr.po sk.po POTFILES = \ $(top_builddir)/WINGs/error.c \ $(top_builddir)/WINGs/findfile.c \ $(top_builddir)/WINGs/proplist.c \ $(top_builddir)/WINGs/userdefaults.c \ $(top_builddir)/WINGs/wcolor.c \ $(top_builddir)/WINGs/wcolorpanel.c \ $(top_builddir)/WINGs/wfilepanel.c \ $(top_builddir)/WINGs/wfont.c \ $(top_builddir)/WINGs/wfontpanel.c \ $(top_builddir)/WINGs/widgets.c \ $(top_builddir)/WINGs/wruler.c SUFFIXES = .po .mo .po.mo: msgfmt -c -o $@ $< all-local: $(CATALOGS) WINGs.pot: $(POTFILES) xgettext --default-domain=WINGs \ --add-comments --keyword=_ --keyword=N_ $(POTFILES) if cmp -s WINGs.po WINGs.pot; then \ rm -f WINGs.po; \ else \ mv -f WINGs.po WINGs.pot; \ fi install-data-local: $(CATALOGS) $(mkinstalldirs) $(DESTDIR)$(nlsdir) chmod 755 $(DESTDIR)$(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_DATA) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/WINGs.mo; \ fi; \ done WindowMaker-0.95.5/WINGs/po/sk.po0000644000175000017500000004631312214432632013312 00000000000000# Slovak messages for WINGs # (C) 2001 Jan "judas" Tomka # # Original translation by Jan "judas" Tomka on Feb 25 2001 # Currently maintained by Jan "judas" Tomka # # Version history: # WM-ver author email date # 0.65.1 Jan "judas" Tomka Aug 08 2001 # 0.70.0 Jan "judas" Tomka Oct 15 2001 # 0.70.1 Jan "judas" Tomka Nov 02 2001 # 0.80.0 Jan "judas" Tomka Dec 20 2001 # 0.80.2 Jan "judas" Tomka Jan 31 2004 # msgid "" msgstr "" "Project-Id-Version: WINGs 0.80.0\n" "POT-Creation-Date: 2004-01-31 18:36+0100\n" "PO-Revision-Date: 2001-12-20 04:00+0100\n" "Last-Translator: Jan \"judas\" Tomka \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../WINGs/connection.c:467 ../../WINGs/connection.c:532 #: ../../WINGs/connection.c:575 msgid "Bad address-service-protocol combination" msgstr "Nesprávna kombinácia adresa-služba-protokol" #: ../../WINGs/error.c:54 #, c-format msgid "Unknown error %d" msgstr "Nezmána chyba %d" #: ../../WINGs/error.c:59 #, c-format msgid "Error %d" msgstr "Chyba %d" #: ../../WINGs/error.c:110 msgid " warning: " msgstr " varovanie: " #: ../../WINGs/error.c:137 msgid " fatal error: " msgstr " fatálna chyba: " #: ../../WINGs/error.c:163 ../../WINGs/error.c:192 msgid " error: " msgstr " chyba: " #: ../../WINGs/findfile.c:48 #, c-format msgid "could not get password entry for UID %i" msgstr "nemožno zistiÅ¥ informácie o UID %i" #: ../../WINGs/findfile.c:66 #, c-format msgid "could not get password entry for user %s" msgstr "nemožno zistiÅ¥ informácie o užívateľovi %s" #: ../../WINGs/host.c:114 msgid "Cannot get current host name" msgstr "Nemožno zistiÅ¥ aktuálne meno poÄítaÄa" #: ../../WINGs/proplist.c:91 #, c-format msgid "syntax error in %s %s, line %i: %s" msgstr "chyba syntaxe v %s %s, riadok %i: %s" #: ../../WINGs/proplist.c:150 msgid "Only string or data is supported for a proplist dictionary key" msgstr "Pre kÄ¾ÃºÄ slovníka proplist je podporovaný len reÅ¥azec alebo dáta" #: ../../WINGs/proplist.c:184 ../../WINGs/proplist.c:236 #: ../../WINGs/proplist.c:394 ../../WINGs/proplist.c:474 #: ../../WINGs/proplist.c:1075 ../../WINGs/proplist.c:1127 #: ../../WINGs/proplist.c:1293 ../../WINGs/proplist.c:1372 #: ../../WINGs/proplist.c:1493 ../../WINGs/proplist.c:1540 msgid "Used proplist functions on non-WMPropLists objects" msgstr "Použitá proplist funkcia na iných ako WMPropLists objektoch" #: ../../WINGs/proplist.c:630 msgid "unterminated PropList string" msgstr "neukonÄený PropList reÅ¥azec" #: ../../WINGs/proplist.c:670 msgid "unterminated PropList data" msgstr "neukonÄené PropList dáta" #: ../../WINGs/proplist.c:678 msgid "unterminated PropList data (missing hexdigit)" msgstr "neukonÄené PropList dáta (chýbajúca hex Äíslica)" #: ../../WINGs/proplist.c:690 ../../WINGs/proplist.c:695 msgid "non hexdigit character in PropList data" msgstr "v PropList dátach je znak, ktorý nie je hex Äíslicou" #: ../../WINGs/proplist.c:729 msgid "unterminated PropList array" msgstr "neukonÄené PropList pole" #: ../../WINGs/proplist.c:737 msgid "missing or unterminated PropList array" msgstr "chýbajúce alebo neukonÄené PropList pole" #: ../../WINGs/proplist.c:747 msgid "could not get PropList array element" msgstr "nemožno zistiÅ¥ prvok PropList poľa" #: ../../WINGs/proplist.c:776 msgid "unterminated PropList dictionary" msgstr "neukonÄený PropList slovník" #: ../../WINGs/proplist.c:793 msgid "missing PropList dictionary key" msgstr "chýbajúci kÄ¾ÃºÄ PropList slovníka" #: ../../WINGs/proplist.c:795 msgid "missing PropList dictionary entry key or unterminated dictionary" msgstr "chýbajúci kÄ¾ÃºÄ položky PropList slovníka alebo neukonÄený slovník" #: ../../WINGs/proplist.c:803 msgid "error parsing PropList dictionary key" msgstr "chyba pri parsovaní kľúÄa PropList slovníka" #: ../../WINGs/proplist.c:811 msgid "missing = in PropList dictionary entry" msgstr "chýbajúce = v položke PropList slovníka" #: ../../WINGs/proplist.c:819 msgid "error parsing PropList dictionary entry value" msgstr "chyba pri parsovaní hodnoty položky PropList slovníka" #: ../../WINGs/proplist.c:827 msgid "missing ; in PropList dictionary entry" msgstr "chýbajúca ; v položke PropList slovníka" #: ../../WINGs/proplist.c:888 msgid "" "was expecting a string, data, array or dictionary. If it's a string, try " "enclosing it with \"." msgstr "" "oÄakávaný bol reÅ¥azec, dáta, pole alebo slovník. Ak je to reÅ¥azec, skúste ho " "uzavrieÅ¥ medzi \"." #: ../../WINGs/proplist.c:892 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "Komentáre v doménových súboroch Window Makera nie sú povolené." #: ../../WINGs/proplist.c:1563 ../../WINGs/proplist.c:1630 msgid "extra data after end of property list" msgstr "prebytoÄné dáta na konci property listu" #: ../../WINGs/proplist.c:1606 #, c-format msgid "could not get size for file '%s'" msgstr "nemožno zistiÅ¥ veľkosÅ¥ súboru '%s'" #: ../../WINGs/proplist.c:1619 #, c-format msgid "error reading from file '%s'" msgstr "chyba pri Äítaní zo súboru '%s'" #: ../../WINGs/proplist.c:1671 #, c-format msgid "mkstemp (%s) failed" msgstr "chyba mkstemp (%s)" #: ../../WINGs/proplist.c:1682 #, c-format msgid "mktemp (%s) failed" msgstr "chyba mktemp(%s)" #: ../../WINGs/proplist.c:1693 #, c-format msgid "open (%s) failed" msgstr "chyba pri otváraní (%s)" #: ../../WINGs/proplist.c:1700 #, c-format msgid "writing to file: %s failed" msgstr "chyba pri zápise do súboru: %s" #: ../../WINGs/proplist.c:1708 #, c-format msgid "fclose (%s) failed" msgstr "chyba fclose (%s)" #: ../../WINGs/proplist.c:1717 #, c-format msgid "rename ('%s' to '%s') failed" msgstr "chyba rename ('%s' na '%s')" #. something happened with the file. just overwrite it #: ../../WINGs/userdefaults.c:188 ../../WINGs/userdefaults.c:204 #, c-format msgid "cannot read domain from file '%s' when syncing" msgstr "nemožno ÄítaÅ¥ doménu zo súboru '%s' pri synchronizácii" #: ../../WINGs/wcolor.c:224 ../../WINGs/wcolor.c:236 ../../WINGs/wcolor.c:275 #: ../../WINGs/wcolor.c:316 #, c-format msgid "could not allocate %s color" msgstr "nemožno alokovaÅ¥ %s farbu" #: ../../WINGs/wcolor.c:224 msgid "white" msgstr "bielu" #: ../../WINGs/wcolor.c:236 msgid "black" msgstr "Äiernu" #: ../../WINGs/wcolor.c:275 msgid "gray" msgstr "Å¡edú" #: ../../WINGs/wcolor.c:316 msgid "dark gray" msgstr "tmavoÅ¡edú" #: ../../WINGs/wcolorpanel.c:420 msgid "Colors" msgstr "Farby" #: ../../WINGs/wcolorpanel.c:610 ../../WINGs/wcolorpanel.c:2829 msgid "Brightness" msgstr "SvetlosÅ¥" #: ../../WINGs/wcolorpanel.c:612 ../../WINGs/wcolorpanel.c:688 #: ../../WINGs/wcolorpanel.c:721 ../../WINGs/wcolorpanel.c:755 #: ../../WINGs/wcolorpanel.c:815 ../../WINGs/wcolorpanel.c:849 #: ../../WINGs/wcolorpanel.c:883 ../../WINGs/wcolorpanel.c:918 #: ../../WINGs/wcolorpanel.c:2169 ../../WINGs/wcolorpanel.c:2831 #: ../../WINGs/wcolorpanel.c:2867 ../../WINGs/wcolorpanel.c:2903 #: ../../WINGs/wcolorpanel.c:3745 msgid "Color Panel: Could not allocate memory" msgstr "Panel farieb: Nemožno alokovaÅ¥ pamäť" #: ../../WINGs/wcolorpanel.c:685 ../../WINGs/wcolorpanel.c:686 msgid "Red" msgstr "ÄŒervená" #: ../../WINGs/wcolorpanel.c:718 ../../WINGs/wcolorpanel.c:719 msgid "Green" msgstr "Zelená" #: ../../WINGs/wcolorpanel.c:752 ../../WINGs/wcolorpanel.c:753 msgid "Blue" msgstr "Modrá" #: ../../WINGs/wcolorpanel.c:812 ../../WINGs/wcolorpanel.c:813 msgid "Cyan" msgstr "Azúrová" #: ../../WINGs/wcolorpanel.c:846 ../../WINGs/wcolorpanel.c:847 msgid "Magenta" msgstr "Purpurová" #: ../../WINGs/wcolorpanel.c:880 ../../WINGs/wcolorpanel.c:881 msgid "Yellow" msgstr "Žltá" #: ../../WINGs/wcolorpanel.c:915 ../../WINGs/wcolorpanel.c:916 msgid "Black" msgstr "ÄŒierna" #: ../../WINGs/wcolorpanel.c:996 msgid "Spectrum" msgstr "Spektrum" #: ../../WINGs/wcolorpanel.c:1026 msgid "Palette" msgstr "Paleta" #: ../../WINGs/wcolorpanel.c:1032 msgid "New from File..." msgstr "Nová zo súboru..." #: ../../WINGs/wcolorpanel.c:1033 ../../WINGs/wcolorpanel.c:1081 #: ../../WINGs/wcolorpanel.c:1098 msgid "Rename..." msgstr "PremenovaÅ¥..." #: ../../WINGs/wcolorpanel.c:1034 ../../WINGs/wcolorpanel.c:1082 #: ../../WINGs/wcolorpanel.c:1099 ../../WINGs/wcolorpanel.c:3326 msgid "Remove" msgstr "OdstrániÅ¥" #: ../../WINGs/wcolorpanel.c:1035 msgid "Copy" msgstr "KopírovaÅ¥" #: ../../WINGs/wcolorpanel.c:1036 msgid "New from Clipboard" msgstr "Nová z nástenky" #: ../../WINGs/wcolorpanel.c:1057 msgid "X11-Colors" msgstr "Farby X11" #: ../../WINGs/wcolorpanel.c:1074 msgid "Color" msgstr "Farba" #: ../../WINGs/wcolorpanel.c:1080 msgid "Add..." msgstr "PridaÅ¥..." #: ../../WINGs/wcolorpanel.c:1090 msgid "List" msgstr "Zoznam" #: ../../WINGs/wcolorpanel.c:1097 msgid "New..." msgstr "Nový..." #: ../../WINGs/wcolorpanel.c:1236 #, c-format msgid "" "Color Panel: Could not create directory %s needed to store configurations" msgstr "" "Panel farieb: Nemožno vytvoriÅ¥ adresár %s potrebný na uloženie nastavení" #. Delete the file, it doesn't belong here #: ../../WINGs/wcolorpanel.c:1242 ../../WINGs/wcolorpanel.c:3212 #: ../../WINGs/wcolorpanel.c:3216 msgid "File Error" msgstr "Chyba súboru" #: ../../WINGs/wcolorpanel.c:1243 msgid "Could not create ColorPanel configuration directory" msgstr "Nemožno vytvoriÅ¥ konfiguraÄný adresár panelu farieb" #: ../../WINGs/wcolorpanel.c:1244 ../../WINGs/wcolorpanel.c:3213 #: ../../WINGs/wcolorpanel.c:3218 ../../WINGs/wcolorpanel.c:3245 #: ../../WINGs/wfilepanel.c:250 ../../WINGs/wfilepanel.c:650 #: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763 #: ../../WINGs/wfilepanel.c:974 ../../WINGs/wfontpanel.c:751 msgid "OK" msgstr "OK" #: ../../WINGs/wcolorpanel.c:1250 ../../WINGs/wcolorpanel.c:1286 #: ../../WINGs/wcolorpanel.c:1304 msgid "Color Panel: Could not find file" msgstr "Panel farieb: Nemožno nájsÅ¥ súbor" #: ../../WINGs/wcolorpanel.c:1491 ../../WINGs/wcolorpanel.c:1556 #: ../../WINGs/wcolorpanel.c:1620 msgid "Color Panel: X failed request" msgstr "Panel farieb: chyba požiadavky X" #: ../../WINGs/wcolorpanel.c:2865 msgid "Saturation" msgstr "Saturácia" #: ../../WINGs/wcolorpanel.c:2901 msgid "Hue" msgstr "Odtieň" #: ../../WINGs/wcolorpanel.c:3151 msgid "Open Palette" msgstr "OtvoriÅ¥ paletu" #: ../../WINGs/wcolorpanel.c:3213 msgid "Invalid file format !" msgstr "Nesprávny súborový formát!" #: ../../WINGs/wcolorpanel.c:3215 #, c-format msgid "can't remove file %s" msgstr "namožno odstrániÅ¥ súbor %s" #: ../../WINGs/wcolorpanel.c:3217 msgid "Couldn't remove file from Configuration Directory !" msgstr "Nemožno odstrániÅ¥ súbor z konfiguraÄného adresára!" #: ../../WINGs/wcolorpanel.c:3244 msgid "Rename" msgstr "PremenovaÅ¥" #: ../../WINGs/wcolorpanel.c:3244 msgid "Rename palette to:" msgstr "PremenovaÅ¥ paletu:" #: ../../WINGs/wcolorpanel.c:3245 ../../WINGs/wfilepanel.c:259 #: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763 msgid "Cancel" msgstr "ZruÅ¡iÅ¥" #. Careful, this palette exists already #: ../../WINGs/wcolorpanel.c:3261 ../../WINGs/wfilepanel.c:763 msgid "Warning" msgstr "Varovanie" #: ../../WINGs/wcolorpanel.c:3262 msgid "" "Palette already exists !\n" "\n" "Overwrite ?" msgstr "" "Paleta už existuje!\n" "\n" "PrepísaÅ¥?" #: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326 msgid "No" msgstr "Nie" #: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326 msgid "Yes" msgstr "Ãno" #: ../../WINGs/wcolorpanel.c:3294 #, c-format msgid "Couldn't rename palette %s to %s\n" msgstr "Nemožno premenovaÅ¥ paletu %s na %s\n" #: ../../WINGs/wcolorpanel.c:3320 msgid "This will permanently remove the palette " msgstr "Paleta bude natrvalo zmazaná" #: ../../WINGs/wcolorpanel.c:3323 msgid "" ".\n" "\n" "Are you sure you want to remove this palette ?" msgstr "" ".\n" "\n" "Ste si istý, že chcete odstrániÅ¥ túto paletu?" #: ../../WINGs/wcolorpanel.c:3348 #, c-format msgid "Couldn't remove palette %s\n" msgstr "Nemožno odstrániÅ¥ paletu %s\n" #: ../../WINGs/wcolorpanel.c:3647 #, c-format msgid "Could not open %s" msgstr "Nemožno otvoriÅ¥ %s" #: ../../WINGs/wcolorpanel.c:3654 #, c-format msgid "Could not create %s" msgstr "Nemožno vytvoriÅ¥ %s" #: ../../WINGs/wcolorpanel.c:3665 #, c-format msgid "Write error on file %s" msgstr "Chyba zápisu do súboru %s" #: ../../WINGs/wcolorpanel.c:3710 msgid "Color Panel: Color unspecified" msgstr "Panel farieb: NeÅ¡pecifikovaná farba" #: ../../WINGs/wfilepanel.c:235 msgid "Name:" msgstr "Meno:" #: ../../WINGs/wfilepanel.c:332 ../../WINGs/wfilepanel.c:396 msgid "Open" msgstr "OtvoriÅ¥" #: ../../WINGs/wfilepanel.c:350 ../../WINGs/wfilepanel.c:402 msgid "Save" msgstr "UložiÅ¥" #: ../../WINGs/wfilepanel.c:565 #, c-format msgid "WINGs: could not open directory %s\n" msgstr "WINGs: nemožno otvoriÅ¥ adresár %s\n" #: ../../WINGs/wfilepanel.c:583 #, c-format msgid "WINGs: could not stat %s\n" msgstr "WINGs: nemožno zistiÅ¥ informácie o %s\n" #: ../../WINGs/wfilepanel.c:650 ../../WINGs/wfilepanel.c:973 #: ../../WINGs/wfontpanel.c:750 msgid "Error" msgstr "Chyba" #: ../../WINGs/wfilepanel.c:661 msgid "Create Directory" msgstr "VytvoriÅ¥ adresár" #: ../../WINGs/wfilepanel.c:662 msgid "Enter directory name" msgstr "Meno adresára" #: ../../WINGs/wfilepanel.c:698 ../../WINGs/wfilepanel.c:737 #: ../../WINGs/wfilepanel.c:768 ../../WINGs/wfilepanel.c:796 msgid "Permission denied." msgstr "Prístup zamietnutý." #: ../../WINGs/wfilepanel.c:701 #, c-format msgid "'%s' already exists." msgstr "'%s' už existuje" #: ../../WINGs/wfilepanel.c:704 msgid "Path does not exist." msgstr "Cesta neexistuje." #: ../../WINGs/wfilepanel.c:734 ../../WINGs/wfilepanel.c:793 #, c-format msgid "'%s' does not exist." msgstr "'%s' neexistuje." #: ../../WINGs/wfilepanel.c:741 ../../WINGs/wfilepanel.c:800 msgid "Insufficient memory available." msgstr "Nedostatok pamäti." #: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:804 #, c-format msgid "'%s' is on a read-only filesystem." msgstr "'%s' je na súborovom systéme len pre Äítanie." #: ../../WINGs/wfilepanel.c:748 ../../WINGs/wfilepanel.c:780 #: ../../WINGs/wfilepanel.c:807 #, c-format msgid "Can not delete '%s'." msgstr "Nemožno odstrániÅ¥ '%s'." #: ../../WINGs/wfilepanel.c:755 #, c-format msgid "Delete directory %s ?" msgstr "OdstrániÅ¥ adresár %s?" #: ../../WINGs/wfilepanel.c:759 #, c-format msgid "Delete file %s ?" msgstr "OdstrániÅ¥ súbor %s?" #: ../../WINGs/wfilepanel.c:771 #, c-format msgid "Directory '%s' does not exist." msgstr "Adresár '%s' neexistuje." #: ../../WINGs/wfilepanel.c:774 #, c-format msgid "Directory '%s' is not empty." msgstr "Adresár '%s' nie je prázdny." #: ../../WINGs/wfilepanel.c:777 #, c-format msgid "Directory '%s' is busy." msgstr "Adresár '%s' je používaný." #: ../../WINGs/wfilepanel.c:790 #, c-format msgid "'%s' is a directory." msgstr "'%s' je adresár." #: ../../WINGs/wfilepanel.c:832 #, c-format msgid "An error occured browsing '%s'." msgstr "Pri prehliadaní '%s' nastala chyba." #: ../../WINGs/wfilepanel.c:836 #, c-format msgid "'%s' is not a directory." msgstr "'%s' nie je adresár." #: ../../WINGs/wfilepanel.c:973 msgid "File does not exist." msgstr "Súbor neexistuje." #: ../../WINGs/wfont.c:324 ../../WINGs/wfont.c:344 #, c-format msgid "could not load font %s." msgstr "nemožno naÄítaÅ¥ font %s." #: ../../WINGs/wfont.c:375 ../../WINGs/wfont.c:420 ../../WINGs/wfont.c:475 #: ../../WINGs/wfont.c:1337 ../../WINGs/wfont.c:1398 ../../WINGs/wfont.c:1469 #, c-format msgid "" "Conversion to widechar failed (possible invalid multibyte sequence): '%s':" "(pos %d)\n" msgstr "" "Konverzia do widechar zlyhala (možno nesprávna multibyte sekvencia): '%s':" "(pos %d)\n" #. // remove warning later. or maybe not #: ../../WINGs/wfont.c:591 ../../WINGs/wfont.c:1568 #, c-format msgid "Invalid font specification: '%s'\n" msgstr "Chybná Å¡pecifikácia fontu: '%s'\n" #: ../../WINGs/wfont.c:770 ../../WINGs/wfont.c:780 #, c-format msgid "Invalid size specification '%s' in %s. Using default %d\n" msgstr "Chybná Å¡pecifikácia veľkosti '%s' v %s. Použije sa implicitná %d\n" #: ../../WINGs/wfont.c:824 #, c-format msgid "the following character sets are missing in %s:" msgstr "nasledujúce sady znakov chýbajú v %s:" #: ../../WINGs/wfont.c:830 #, c-format msgid "" "the string \"%s\" will be used in place of any characters from those sets." msgstr "reÅ¥azec \"%s\" bude použitý namiesto znakov z týchto sád." #. is arial a good fallback for multibyte? #: ../../WINGs/wfont.c:1232 ../../WINGs/wfont.c:1247 #, c-format msgid "could not load font %s. Trying arial." msgstr "nemožno naÄítaÅ¥ font %s. Skúša sa naÄítaÅ¥ arial." #: ../../WINGs/wfont.c:1239 msgid "could not load antialiased font set. Reverting to standard font sets." msgstr "nemožno naÄítaÅ¥ antialiasovanú sadu fontov. Späť k Å¡tandardnej sade fontov." #: ../../WINGs/wfont.c:1242 #, c-format msgid "could not load FontSet %s. Trying fixed." msgstr "nemožno naÄítaÅ¥ sadu fontov %s. Skúša sa naÄítaÅ¥ fixed." #: ../../WINGs/wfont.c:1254 msgid "could not load antialiased fonts. Reverting to normal fonts." msgstr "nemožno zaviesÅ¥ antialiasovaný font. Návrat k normálnemu fontu." #: ../../WINGs/wfont.c:1257 ../../WINGs/wfont.c:1268 #, c-format msgid "could not load font %s. Trying fixed." msgstr "nemožno naÄítaÅ¥ font %s. Skúša sa naÄítaÅ¥ fixed." #: ../../WINGs/wfont.c:1262 #, c-format msgid "could not load font set %s. Trying fixed." msgstr "nemožno naÄítaÅ¥ font %s. Skúša sa naÄítaÅ¥ fixed." #: ../../WINGs/wfont.c:1272 msgid "could not load fixed font!" msgstr "nemožno naÄítaÅ¥ font fixed!" #: ../../WINGs/wfont.c:1520 #, c-format msgid "font description %s is too large." msgstr "popis fontu %s je príliÅ¡ veľký." #: ../../WINGs/wfontpanel.c:235 msgid "Test!!!" msgstr "Skúška!!!" #: ../../WINGs/wfontpanel.c:241 msgid "Family" msgstr "Rodina" #: ../../WINGs/wfontpanel.c:252 msgid "Typeface" msgstr "Vzhľad" #: ../../WINGs/wfontpanel.c:263 msgid "Size" msgstr "VeľkosÅ¥" #: ../../WINGs/wfontpanel.c:282 msgid "Set" msgstr "Sada" #: ../../WINGs/wfontpanel.c:288 msgid "Revert" msgstr "ObrátiÅ¥" #: ../../WINGs/wfontpanel.c:751 msgid "Could not retrieve font list" msgstr "Nemožno obdržaÅ¥ zoznam fontov" #: ../../WINGs/wfontpanel.c:765 #, c-format msgid "font name %s is longer than 256, which is invalid." msgstr "meno fontu %s je dlhÅ¡ie ako 256, Äo je nesprávne." #: ../../WINGs/wfontpanel.c:913 msgid "Roman" msgstr "roman" #: ../../WINGs/wfontpanel.c:916 msgid "Italic" msgstr "kurzíva" #: ../../WINGs/wfontpanel.c:918 msgid "Oblique" msgstr "Å¡ikmé" #: ../../WINGs/wfontpanel.c:920 msgid "Rev Italic" msgstr "obr. kurzíva" #: ../../WINGs/wfontpanel.c:922 msgid "Rev Oblique" msgstr "obr. Å¡ikmé" #: ../../WINGs/wfontpanel.c:928 msgid "Normal" msgstr "normálne" #: ../../WINGs/widgets.c:419 #, c-format msgid "WINGs: could not load widget images file: %s" msgstr "WINGs: nemožno naÄítaÅ¥ súbor s obrázkami pre widgety: %s" #: ../../WINGs/widgets.c:772 msgid "" "could not load any fonts. Make sure your font installation and locale " "settings are correct." msgstr "" "nemožno naÄítaÅ¥ žiadny font. UbezpeÄte sa, že inÅ¡talácia fontov a miestne " "nastavenia sú v poriadku." #: ../../WINGs/wruler.c:192 msgid "0 inches" msgstr "0 palcov" WindowMaker-0.95.5/WINGs/po/bg.po0000644000175000017500000005022312214432632013260 00000000000000# Message catalog for WINGs # Copyright (C) 2003 Free Software Foundation, Inc. # Anton Zinoviev , 2003 # msgid "" msgstr "" "Project-Id-Version: WINGs 0.80.0\n" "POT-Creation-Date: 2003-02-08 21:42+0200\n" "PO-Revision-Date: 2003-02-09 12:10+0200\n" "Last-Translator: Anton Zinoviev \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../WINGs/connection.c:461 ../../WINGs/connection.c:526 #: ../../WINGs/connection.c:569 msgid "Bad address-service-protocol combination" msgstr "Ðеправилна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð°Ð´Ñ€ÐµÑ-уÑлуга-протокол" #: ../../WINGs/error.c:54 #, c-format msgid "Unknown error %d" msgstr "Ðепозната грешка %d" #: ../../WINGs/error.c:59 #, c-format msgid "Error %d" msgstr "Грешка %d" #: ../../WINGs/error.c:110 msgid " warning: " msgstr "внимание: " #: ../../WINGs/error.c:137 msgid " fatal error: " msgstr " критична грешка: " #: ../../WINGs/error.c:163 ../../WINGs/error.c:192 msgid " error: " msgstr " грешка: " #: ../../WINGs/findfile.c:48 #, c-format msgid "could not get password entry for UID %i" msgstr "не може да Ñе получи запиÑÑŠÑ‚ за парола на потребител Ñ Ð½Ð¾Ð¼ÐµÑ€ %i" #: ../../WINGs/findfile.c:66 #, c-format msgid "could not get password entry for user %s" msgstr "не може да Ñе получи запиÑÑŠÑ‚ за парола на потребител %s<" #: ../../WINGs/host.c:114 msgid "Cannot get current host name" msgstr "Ðе може да Ñе получи името на хоÑта" #: ../../WINGs/proplist.c:91 #, c-format msgid "syntax error in %s %s, line %i: %s" msgstr "Ñинтактична грешка в %s %s, ред %i: %s" #: ../../WINGs/proplist.c:150 msgid "Only string or data is supported for a proplist dictionary key" msgstr "Като ключ за доÑтъп до proplist Ñе поддържат Ñамо низове или данни" #: ../../WINGs/proplist.c:184 ../../WINGs/proplist.c:236 #: ../../WINGs/proplist.c:394 ../../WINGs/proplist.c:474 #: ../../WINGs/proplist.c:1075 ../../WINGs/proplist.c:1127 #: ../../WINGs/proplist.c:1293 ../../WINGs/proplist.c:1372 #: ../../WINGs/proplist.c:1493 ../../WINGs/proplist.c:1540 msgid "Used proplist functions on non-WMPropLists objects" msgstr "Ползват Ñе proplist-функции за обекти, които не Ñа от тип WMPropLists" #: ../../WINGs/proplist.c:630 msgid "unterminated PropList string" msgstr "незавършен низ PropList" #: ../../WINGs/proplist.c:670 msgid "unterminated PropList data" msgstr "незавършени данни PropList" #: ../../WINGs/proplist.c:678 msgid "unterminated PropList data (missing hexdigit)" msgstr "незавършени данни PropList (липÑва шеÑтнадеÑетично чиÑло)" #: ../../WINGs/proplist.c:690 ../../WINGs/proplist.c:695 msgid "non hexdigit character in PropList data" msgstr "знак, който не е шеÑтнадеÑетично чиÑло, в данни PropList" #: ../../WINGs/proplist.c:729 msgid "unterminated PropList array" msgstr "незавършен маÑив PropList" #: ../../WINGs/proplist.c:737 msgid "missing or unterminated PropList array" msgstr "липÑващ или незавършен маÑив Proplist" #: ../../WINGs/proplist.c:747 msgid "could not get PropList array element" msgstr "не може да Ñе получи елемент от маÑив PropList" #: ../../WINGs/proplist.c:776 msgid "unterminated PropList dictionary" msgstr "незавършен речник PropList" #: ../../WINGs/proplist.c:793 msgid "missing PropList dictionary key" msgstr "липÑващ ключ за доÑтъп до PropList" #: ../../WINGs/proplist.c:795 msgid "missing PropList dictionary entry key or unterminated dictionary" msgstr "липÑващ ключ за доÑтъп до PropList или незавършен речник" #: ../../WINGs/proplist.c:803 msgid "error parsing PropList dictionary key" msgstr "грешка при разбор на ключ в PropList" #: ../../WINGs/proplist.c:811 msgid "missing = in PropList dictionary entry" msgstr "липÑва знак за равенÑтво в елемент на PropList" #: ../../WINGs/proplist.c:819 msgid "error parsing PropList dictionary entry value" msgstr "грешка при разбор на ÑтойноÑÑ‚ на елемент в PropList" #: ../../WINGs/proplist.c:827 msgid "missing ; in PropList dictionary entry" msgstr "липÑва знак точка и Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ Ð² елемент на PropList" #: ../../WINGs/proplist.c:888 msgid "" "was expecting a string, data, array or dictionary. If it's a string, try " "enclosing it with \"." msgstr "очакваха Ñе низ, данни, маÑив или речник. Ðко е речник, пробвайте да го оградите Ñ \"." #: ../../WINGs/proplist.c:892 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "Ðе Ñе позволÑват коментари във файлове Ñ Ð¾Ð±Ð»Ð°Ñти, ÑобÑтвеноÑÑ‚ на Уиндоу Мейкър" #: ../../WINGs/proplist.c:1563 ../../WINGs/proplist.c:1628 msgid "extra data after end of property list" msgstr "данни в повече Ñлед ÐºÑ€Ð°Ñ Ð½Ð° ÑпиÑък ÑвойÑтва" #: ../../WINGs/proplist.c:1606 #, c-format msgid "could not get size for file '%s'" msgstr "не може да Ñе получи размерът за файл \"%s\"" #: ../../WINGs/proplist.c:1618 #, c-format msgid "error reading from file '%s'" msgstr "грешка при четене от файл \"%s\"" #: ../../WINGs/proplist.c:1669 #, c-format msgid "mkstemp (%s) failed" msgstr "mkstemp (%s) не уÑпÑ" #: ../../WINGs/proplist.c:1680 #, c-format msgid "mktemp (%s) failed" msgstr "mktemp (%s) не уÑпÑ" #: ../../WINGs/proplist.c:1691 #, c-format msgid "open (%s) failed" msgstr "open (%s) не уÑпÑ" #: ../../WINGs/proplist.c:1698 #, c-format msgid "writing to file: %s failed" msgstr "запиÑÑŠÑ‚ във файл %s не уÑпÑ" #: ../../WINGs/proplist.c:1706 #, c-format msgid "fclose (%s) failed" msgstr "fclose (%s) не уÑпÑ" #: ../../WINGs/proplist.c:1715 #, c-format msgid "rename ('%s' to '%s') failed" msgstr "преименуването (от \"%s\" на \"%s\") не уÑпÑ" #. something happened with the file. just overwrite it #: ../../WINGs/userdefaults.c:192 ../../WINGs/userdefaults.c:208 #, c-format msgid "cannot read domain from file '%s' when syncing" msgstr "не може да Ñе прочете облаÑтта от файл \"%s\" при Ñинхронизиране" #: ../../WINGs/wcolor.c:198 ../../WINGs/wcolor.c:211 ../../WINGs/wcolor.c:250 #: ../../WINGs/wcolor.c:291 #, c-format msgid "could not allocate %s color" msgstr "не може да Ñе задели цвÑÑ‚ %s" #: ../../WINGs/wcolor.c:198 msgid "white" msgstr "бÑл" #: ../../WINGs/wcolor.c:211 msgid "black" msgstr "черен" #: ../../WINGs/wcolor.c:250 msgid "gray" msgstr "Ñив" #: ../../WINGs/wcolor.c:291 msgid "dark gray" msgstr "тъмноÑив" #: ../../WINGs/wcolorpanel.c:415 msgid "Colors" msgstr "Цветове" #: ../../WINGs/wcolorpanel.c:605 ../../WINGs/wcolorpanel.c:2824 msgid "Brightness" msgstr "ЯркоÑÑ‚" #: ../../WINGs/wcolorpanel.c:607 ../../WINGs/wcolorpanel.c:683 #: ../../WINGs/wcolorpanel.c:716 ../../WINGs/wcolorpanel.c:750 #: ../../WINGs/wcolorpanel.c:810 ../../WINGs/wcolorpanel.c:844 #: ../../WINGs/wcolorpanel.c:878 ../../WINGs/wcolorpanel.c:913 #: ../../WINGs/wcolorpanel.c:2164 ../../WINGs/wcolorpanel.c:2826 #: ../../WINGs/wcolorpanel.c:2862 ../../WINGs/wcolorpanel.c:2898 #: ../../WINGs/wcolorpanel.c:3746 msgid "Color Panel: Could not allocate memory" msgstr "Color Panel: не може да Ñе задели памет" #: ../../WINGs/wcolorpanel.c:680 ../../WINGs/wcolorpanel.c:681 msgid "Red" msgstr "Червен" #: ../../WINGs/wcolorpanel.c:713 ../../WINGs/wcolorpanel.c:714 msgid "Green" msgstr "Зелен" #: ../../WINGs/wcolorpanel.c:747 ../../WINGs/wcolorpanel.c:748 msgid "Blue" msgstr "Син" #: ../../WINGs/wcolorpanel.c:807 ../../WINGs/wcolorpanel.c:808 msgid "Cyan" msgstr "Синьозелен" #: ../../WINGs/wcolorpanel.c:841 ../../WINGs/wcolorpanel.c:842 msgid "Magenta" msgstr "Пурпурен" #: ../../WINGs/wcolorpanel.c:875 ../../WINGs/wcolorpanel.c:876 msgid "Yellow" msgstr "Жълт" #: ../../WINGs/wcolorpanel.c:910 ../../WINGs/wcolorpanel.c:911 msgid "Black" msgstr "Черен" #: ../../WINGs/wcolorpanel.c:991 msgid "Spectrum" msgstr "Спектър" #: ../../WINGs/wcolorpanel.c:1021 msgid "Palette" msgstr "Палитра" #: ../../WINGs/wcolorpanel.c:1027 msgid "New from File..." msgstr "Ðова от файл..." #: ../../WINGs/wcolorpanel.c:1028 ../../WINGs/wcolorpanel.c:1076 #: ../../WINGs/wcolorpanel.c:1093 msgid "Rename..." msgstr "Преименувай..." #: ../../WINGs/wcolorpanel.c:1029 ../../WINGs/wcolorpanel.c:1077 #: ../../WINGs/wcolorpanel.c:1094 ../../WINGs/wcolorpanel.c:3321 msgid "Remove" msgstr "Премахни" #: ../../WINGs/wcolorpanel.c:1030 msgid "Copy" msgstr "Копирай" #: ../../WINGs/wcolorpanel.c:1031 #, fuzzy msgid "New from Clipboard" msgstr "Ðова от Clipboard" #: ../../WINGs/wcolorpanel.c:1052 msgid "X11-Colors" msgstr "Цветове от X11" #: ../../WINGs/wcolorpanel.c:1069 msgid "Color" msgstr "ЦвÑÑ‚" #: ../../WINGs/wcolorpanel.c:1075 msgid "Add..." msgstr "Добави..." #: ../../WINGs/wcolorpanel.c:1085 msgid "List" msgstr "СпиÑък" #: ../../WINGs/wcolorpanel.c:1092 msgid "New..." msgstr "Ðов..." #: ../../WINGs/wcolorpanel.c:1231 #, c-format msgid "" "Color Panel: Could not create directory %s needed to store configurations" msgstr "Color Panel: Ðе може да Ñе Ñъздаде Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s, необходима за да Ñе запазÑÑ‚ наÑтройките" #. Delete the file, it doesn't belong here #: ../../WINGs/wcolorpanel.c:1237 ../../WINGs/wcolorpanel.c:3207 #: ../../WINGs/wcolorpanel.c:3211 msgid "File Error" msgstr "Файлова грешка" #: ../../WINGs/wcolorpanel.c:1238 msgid "Could not create ColorPanel configuration directory" msgstr "Ðе може да Ñе Ñъздаде конфигурационна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° ColorPanel" #: ../../WINGs/wcolorpanel.c:1239 ../../WINGs/wcolorpanel.c:3208 #: ../../WINGs/wcolorpanel.c:3213 ../../WINGs/wcolorpanel.c:3240 #: ../../WINGs/wfilepanel.c:250 ../../WINGs/wfilepanel.c:647 #: ../../WINGs/wfilepanel.c:659 ../../WINGs/wfilepanel.c:760 #: ../../WINGs/wfilepanel.c:971 ../../WINGs/wfontpanel.c:709 msgid "OK" msgstr "Приемам" #: ../../WINGs/wcolorpanel.c:1245 ../../WINGs/wcolorpanel.c:1281 #: ../../WINGs/wcolorpanel.c:1299 msgid "Color Panel: Could not find file" msgstr "Color Panel: Ðе може да Ñе открие файла" #: ../../WINGs/wcolorpanel.c:1486 ../../WINGs/wcolorpanel.c:1551 #: ../../WINGs/wcolorpanel.c:1615 msgid "Color Panel: X failed request" msgstr "Color Panel: не уÑÐ¿Ñ Ð·Ð°Ñвка към X" #: ../../WINGs/wcolorpanel.c:2860 msgid "Saturation" msgstr "ÐаÑитеноÑÑ‚" #: ../../WINGs/wcolorpanel.c:2896 msgid "Hue" msgstr "ÐюанÑ" #: ../../WINGs/wcolorpanel.c:3146 msgid "Open Palette" msgstr "ОтварÑне на палитра" #: ../../WINGs/wcolorpanel.c:3208 msgid "Invalid file format !" msgstr "Ðеправилен файлов формат!" #: ../../WINGs/wcolorpanel.c:3210 #, c-format msgid "can't remove file %s" msgstr "не може да Ñе изтрие файлът %s" #: ../../WINGs/wcolorpanel.c:3212 msgid "Couldn't remove file from Configuration Directory !" msgstr "Ðе може да Ñе изтрие файл от директориÑта за наÑтройки!" #: ../../WINGs/wcolorpanel.c:3239 msgid "Rename" msgstr "Преименуване" #: ../../WINGs/wcolorpanel.c:3239 msgid "Rename palette to:" msgstr "Преименувай палитрата на " #: ../../WINGs/wcolorpanel.c:3240 ../../WINGs/wfilepanel.c:259 #: ../../WINGs/wfilepanel.c:659 ../../WINGs/wfilepanel.c:760 msgid "Cancel" msgstr "ОтменÑм" #. Careful, this palette exists already #: ../../WINGs/wcolorpanel.c:3256 ../../WINGs/wfilepanel.c:760 msgid "Warning" msgstr "Внимание" #: ../../WINGs/wcolorpanel.c:3257 msgid "" "Palette already exists !\n" "\n" "Overwrite ?" msgstr "" "Такава палитра вече ÑъщеÑтвува!\n" "\n" "Да бъде ли заменена Ñ Ð½Ð¾Ð²Ð°Ñ‚Ð°?" #: ../../WINGs/wcolorpanel.c:3257 ../../WINGs/wcolorpanel.c:3321 msgid "No" msgstr "Ðе" #: ../../WINGs/wcolorpanel.c:3257 ../../WINGs/wcolorpanel.c:3321 msgid "Yes" msgstr "Да" #: ../../WINGs/wcolorpanel.c:3289 #, c-format msgid "Couldn't rename palette %s to %s\n" msgstr "Палитрата %s не може да Ñе преименува на %s\n" #: ../../WINGs/wcolorpanel.c:3315 msgid "This will permanently remove the palette " msgstr "Това ще отÑтрани палитрата необратимо " #: ../../WINGs/wcolorpanel.c:3318 msgid "" ".\n" "\n" "Are you sure you want to remove this palette ?" msgstr "" ".\n" "\n" "Убедени ли Ñте, че иÑкате да отÑтраните тази палитра?" #: ../../WINGs/wcolorpanel.c:3343 #, c-format msgid "Couldn't remove palette %s\n" msgstr "Палитрата %s не може да бъде отÑтранена\n" #: ../../WINGs/wcolorpanel.c:3648 #, c-format msgid "Could not open %s" msgstr "Ðе може да бъде отворен %s" #: ../../WINGs/wcolorpanel.c:3655 #, c-format msgid "Could not create %s" msgstr "Ðе може да бъде Ñъздаден %s" #: ../../WINGs/wcolorpanel.c:3666 #, c-format msgid "Write error on file %s" msgstr "Грешка при Ð·Ð°Ð¿Ð¸Ñ Ð²ÑŠÐ² файл %s" #: ../../WINGs/wcolorpanel.c:3711 msgid "Color Panel: Color unspecified" msgstr "Color Panel: Ðе е поÑочен цвÑÑ‚" #: ../../WINGs/wfilepanel.c:235 msgid "Name:" msgstr "Име:" #: ../../WINGs/wfilepanel.c:332 ../../WINGs/wfilepanel.c:396 msgid "Open" msgstr "Отвори" #: ../../WINGs/wfilepanel.c:350 ../../WINGs/wfilepanel.c:402 msgid "Save" msgstr "Запази" #: ../../WINGs/wfilepanel.c:562 #, c-format msgid "WINGs: could not open directory %s\n" msgstr "WINGs: директориÑта %s не може да Ñе отвори\n" #: ../../WINGs/wfilepanel.c:580 #, c-format msgid "WINGs: could not stat %s\n" msgstr "WINGs: не могат да Ñе получат атрибутите (stat) за %s\n" #: ../../WINGs/wfilepanel.c:647 ../../WINGs/wfilepanel.c:970 #: ../../WINGs/wfontpanel.c:708 msgid "Error" msgstr "Грешка" #: ../../WINGs/wfilepanel.c:658 msgid "Create Directory" msgstr "Създаване на директориÑ" #: ../../WINGs/wfilepanel.c:659 msgid "Enter directory name" msgstr "Въведете името на директориÑта" #: ../../WINGs/wfilepanel.c:695 ../../WINGs/wfilepanel.c:734 #: ../../WINGs/wfilepanel.c:765 ../../WINGs/wfilepanel.c:793 msgid "Permission denied." msgstr "Отказан доÑтъп" #: ../../WINGs/wfilepanel.c:698 #, c-format msgid "'%s' already exists." msgstr "вече ÑъщеÑтвува \"%s\"." #: ../../WINGs/wfilepanel.c:701 msgid "Path does not exist." msgstr "ПътÑÑ‚ не ÑъщеÑтвува." #: ../../WINGs/wfilepanel.c:731 ../../WINGs/wfilepanel.c:790 #, c-format msgid "'%s' does not exist." msgstr "Ðе ÑъщеÑтвува \"%s\"." #: ../../WINGs/wfilepanel.c:738 ../../WINGs/wfilepanel.c:797 msgid "Insufficient memory available." msgstr "Ðе е доÑтъпна доÑтатъчно памет." #: ../../WINGs/wfilepanel.c:742 ../../WINGs/wfilepanel.c:801 #, c-format msgid "'%s' is on a read-only filesystem." msgstr "\"%s\" Ñе намира във файлова ÑиÑтема Ñ Ð´Ð¾Ñтъп Ñамо за четене." #: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:777 #: ../../WINGs/wfilepanel.c:804 #, c-format msgid "Can not delete '%s'." msgstr "\"%s\" не може да бъде изтрит." #: ../../WINGs/wfilepanel.c:752 #, c-format msgid "Delete directory %s ?" msgstr "Да Ñе изтрие ли директориÑта %s?" #: ../../WINGs/wfilepanel.c:756 #, c-format msgid "Delete file %s ?" msgstr "Да Ñе изтрие ли файлът %s?" #: ../../WINGs/wfilepanel.c:768 #, c-format msgid "Directory '%s' does not exist." msgstr "ДиректориÑта \"%s\" не ÑъщеÑтвува." #: ../../WINGs/wfilepanel.c:771 #, c-format msgid "Directory '%s' is not empty." msgstr "ДиректориÑта \"%s\" не е празна." #: ../../WINGs/wfilepanel.c:774 #, c-format msgid "Directory '%s' is busy." msgstr "ДиректориÑта \"%s е заета." #: ../../WINGs/wfilepanel.c:787 #, c-format msgid "'%s' is a directory." msgstr "\"%s\" е директориÑ." #: ../../WINGs/wfilepanel.c:829 #, c-format msgid "An error occured browsing '%s'." msgstr "ÐаÑтъпи грешка при показване на \"%s\"." #: ../../WINGs/wfilepanel.c:833 #, c-format msgid "'%s' is not a directory." msgstr "\"%s\" не е директориÑ." #: ../../WINGs/wfilepanel.c:970 msgid "File does not exist." msgstr "Файлът не ÑъщеÑтвува." #: ../../WINGs/wfont.c:129 #, c-format msgid "the following character sets are missing in %s:" msgstr "в %s липÑват Ñледните кодираниÑ:" #: ../../WINGs/wfont.c:136 #, c-format msgid "" "the string \"%s\" will be used in place of any characters from those sets." msgstr "ВмеÑто кой да е Ñимвол от тези ÐºÐ¾Ð´Ð¸Ñ€Ð°Ð½Ð¸Ñ Ñ‰Ðµ Ñе използва низът \"%s\"." #: ../../WINGs/wfont.c:300 ../../WINGs/wfont.c:336 #, c-format msgid "could not load font set %s. Trying fixed." msgstr "не може да Ñе зареди шрифтова ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ %s. Опит за шрифт fixed." #: ../../WINGs/wfont.c:306 ../../WINGs/wfont.c:342 #, c-format msgid "could not load font %s. Trying fixed." msgstr "не може да Ñе зареди шрифт %s. Опит за шрифт fixed." #: ../../WINGs/wfont.c:310 ../../WINGs/wfont.c:346 msgid "could not load fixed font!" msgstr "не може да Ñе зареди шрифтът fixed!" #: ../../WINGs/wfont.c:441 #, c-format msgid "font description %s is too large." msgstr "шрифтовото опиÑание %s е твърде дълго." #: ../../WINGs/wfontpanel.c:205 msgid "Test!!!" msgstr "Проба!!! Test!!!" #: ../../WINGs/wfontpanel.c:211 msgid "Family" msgstr "Гарнитура" #: ../../WINGs/wfontpanel.c:222 msgid "Typeface" msgstr "Стил" #: ../../WINGs/wfontpanel.c:233 msgid "Size" msgstr "Размер" #: ../../WINGs/wfontpanel.c:252 msgid "Set" msgstr "УÑтанови" #: ../../WINGs/wfontpanel.c:257 msgid "Revert" msgstr "Предишното" #: ../../WINGs/wfontpanel.c:709 msgid "Could not retrieve font list" msgstr "Ðе може да Ñе получи ÑпиÑъка от шрифтове" #: ../../WINGs/wfontpanel.c:721 #, c-format msgid "font name %s is longer than 256, which is invalid." msgstr "името на шрифта %s е по-дълго от 256 Ñимвола, което е недопуÑтимо." #: ../../WINGs/wfontpanel.c:868 msgid "Roman" msgstr "Изправен" #: ../../WINGs/wfontpanel.c:871 msgid "Italic" msgstr "КурÑив" #: ../../WINGs/wfontpanel.c:873 msgid "Oblique" msgstr "Ðаклонен" #: ../../WINGs/wfontpanel.c:875 msgid "Rev Italic" msgstr "Обратен курÑив" #: ../../WINGs/wfontpanel.c:877 msgid "Rev Oblique" msgstr "Обратно наклонен" #: ../../WINGs/wfontpanel.c:883 msgid "Normal" msgstr "Ðормален" #: ../../WINGs/widgets.c:415 #, c-format msgid "WINGs: could not load widget images file: %s" msgstr "WINGs: не може да Ñе зареди изображението %s на библиотеката." #: ../../WINGs/widgets.c:763 msgid "" "could not load any fonts. Make sure your font installation and locale " "settings are correct." msgstr "не може да Ñе зареди никакъв шрифт. Убедете Ñе, че имате правилно инÑталирани шрифтове и поÑочен езиков локал." #: ../../WINGs/wruler.c:189 msgid "0 inches" msgstr "0 цола" WindowMaker-0.95.5/WINGs/po/fr.po0000644000175000017500000005016012214432632013277 00000000000000# KTranslator Generated File # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: WINGs 0.80.0\n" "POT-Creation-Date: 2003-05-02 15:39+0200\n" "PO-Revision-Date: 2002-01-09 21:20+0100\n" "Last-Translator: Emmanuel Benoit \n" "Language-Team: Français \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: unknown\n" #: ../../WINGs/connection.c:467 ../../WINGs/connection.c:532 #: ../../WINGs/connection.c:575 msgid "Bad address-service-protocol combination" msgstr "Mauvaise combinaison adresse-service-protocole" #: ../../WINGs/error.c:54 #, c-format msgid "Unknown error %d" msgstr "Erreur inconnue %d" #: ../../WINGs/error.c:59 #, c-format msgid "Error %d" msgstr "Erreur %d" #: ../../WINGs/error.c:110 msgid " warning: " msgstr " Avertissement : " #: ../../WINGs/error.c:137 msgid " fatal error: " msgstr " erreur fatale : " #: ../../WINGs/error.c:163 ../../WINGs/error.c:192 msgid " error: " msgstr " erreur : " #: ../../WINGs/findfile.c:48 #, c-format msgid "could not get password entry for UID %i" msgstr "Impossible de lire le mot de passe de l'UID %i" #: ../../WINGs/findfile.c:66 #, c-format msgid "could not get password entry for user %s" msgstr "Impossible de lire le mot de passe de l'utilisateur %s" #: ../../WINGs/host.c:114 msgid "Cannot get current host name" msgstr "Impossible de déterminer le nom de la machine" # TODO pas de traduction correcte possible, cf source. #: ../../WINGs/proplist.c:91 #, c-format msgid "syntax error in %s %s, line %i: %s" msgstr "Faute de syntaxe dans %s %s, ligne %i : %s" #: ../../WINGs/proplist.c:150 msgid "Only string or data is supported for a proplist dictionary key" msgstr "" "Seuls les types string ou data sont supportés pour une clé de dictionnaire " "Proplist" #: ../../WINGs/proplist.c:184 ../../WINGs/proplist.c:236 #: ../../WINGs/proplist.c:394 ../../WINGs/proplist.c:474 #: ../../WINGs/proplist.c:1075 ../../WINGs/proplist.c:1127 #: ../../WINGs/proplist.c:1293 ../../WINGs/proplist.c:1372 #: ../../WINGs/proplist.c:1493 ../../WINGs/proplist.c:1540 msgid "Used proplist functions on non-WMPropLists objects" msgstr "Une fonction Proplist a été utilisée sur des objets non-WMPropList" #: ../../WINGs/proplist.c:630 msgid "unterminated PropList string" msgstr "chaîne PropList sans fin" #: ../../WINGs/proplist.c:670 msgid "unterminated PropList data" msgstr "données PropList sans fin" #: ../../WINGs/proplist.c:678 msgid "unterminated PropList data (missing hexdigit)" msgstr "données PropList sans fin (il manque un chiffre hexadécimal)" #: ../../WINGs/proplist.c:690 ../../WINGs/proplist.c:695 msgid "non hexdigit character in PropList data" msgstr "caractère non-hexadécimal dans les données PropList" #: ../../WINGs/proplist.c:729 msgid "unterminated PropList array" msgstr "tableau PropList sans fin" #: ../../WINGs/proplist.c:737 msgid "missing or unterminated PropList array" msgstr "tableau PropList manquant ou sans fin" #: ../../WINGs/proplist.c:747 msgid "could not get PropList array element" msgstr "impossible de lire l'élément du tableau PropList" #: ../../WINGs/proplist.c:776 msgid "unterminated PropList dictionary" msgstr "dictionnaire PropList sans fin" #: ../../WINGs/proplist.c:793 msgid "missing PropList dictionary key" msgstr "clef du dictionnaire PropList manquante" #: ../../WINGs/proplist.c:795 msgid "missing PropList dictionary entry key or unterminated dictionary" msgstr "clef du dictionnaire PropList manquante ou dictionnaire sans fin" #: ../../WINGs/proplist.c:803 msgid "error parsing PropList dictionary key" msgstr "erreur lors de l'analyse de la clef de dictionnaire PropList" #: ../../WINGs/proplist.c:811 msgid "missing = in PropList dictionary entry" msgstr "signe '=' manquant dans l'entrée du dictionnaire PropList" #: ../../WINGs/proplist.c:819 msgid "error parsing PropList dictionary entry value" msgstr "" "erreur lors de l'analyse de la valeur de l'entrée du dictionnaire PropList" #: ../../WINGs/proplist.c:827 msgid "missing ; in PropList dictionary entry" msgstr "signe ';' manquant dans l'entrée du dictionnaire PropList" #: ../../WINGs/proplist.c:888 msgid "" "was expecting a string, data, array or dictionary. If it's a string, try " "enclosing it with \"." msgstr "" "une chaine, des données, un tableau ou un dictionnaire étaient attendus. " "S'il s'agit d'une chaîne, essayez de la délimiter grâce à '\"'." #: ../../WINGs/proplist.c:892 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "" "Les commentaires ne sont pas autorisés dans les fichiers appartenant au " "domaine de Window Maker." #: ../../WINGs/proplist.c:1563 ../../WINGs/proplist.c:1628 msgid "extra data after end of property list" msgstr "données excédentaires après la fin de la liste de propriétés" #: ../../WINGs/proplist.c:1606 #, c-format msgid "could not get size for file '%s'" msgstr "impossible de déterminer la taille du fichier '%s'" #: ../../WINGs/proplist.c:1618 #, c-format msgid "error reading from file '%s'" msgstr "erreur pendant la lecture du fichier '%s'" #: ../../WINGs/proplist.c:1669 #, c-format msgid "mkstemp (%s) failed" msgstr "mkstemp (%s) a échoué" #: ../../WINGs/proplist.c:1680 #, c-format msgid "mktemp (%s) failed" msgstr "mktemp (%s) a échoué" #: ../../WINGs/proplist.c:1691 #, c-format msgid "open (%s) failed" msgstr "open (%s) a échoué" #: ../../WINGs/proplist.c:1698 #, c-format msgid "writing to file: %s failed" msgstr "erreur pendant l'écriture dans le fichier '%s'" #: ../../WINGs/proplist.c:1706 #, c-format msgid "fclose (%s) failed" msgstr "erreur lors de la fermeture du fichier '%s'" #: ../../WINGs/proplist.c:1715 #, c-format msgid "rename ('%s' to '%s') failed" msgstr "impossible de renommer '%s' en '%s'" #. something happened with the file. just overwrite it #: ../../WINGs/userdefaults.c:188 ../../WINGs/userdefaults.c:204 #, c-format msgid "cannot read domain from file '%s' when syncing" msgstr "" "impossible de lire le domaine depuis le fichier '%s' pendant la " "synchronisation" #: ../../WINGs/wcolor.c:224 ../../WINGs/wcolor.c:236 ../../WINGs/wcolor.c:275 #: ../../WINGs/wcolor.c:316 #, c-format msgid "could not allocate %s color" msgstr "impossible d'allouer la couleur %s" #: ../../WINGs/wcolor.c:224 msgid "white" msgstr "blanc" #: ../../WINGs/wcolor.c:236 msgid "black" msgstr "noir" #: ../../WINGs/wcolor.c:275 msgid "gray" msgstr "gris" #: ../../WINGs/wcolor.c:316 msgid "dark gray" msgstr "gris sombre" #: ../../WINGs/wcolorpanel.c:420 msgid "Colors" msgstr "Couleurs" #: ../../WINGs/wcolorpanel.c:610 ../../WINGs/wcolorpanel.c:2829 msgid "Brightness" msgstr "Luminosité" #: ../../WINGs/wcolorpanel.c:612 ../../WINGs/wcolorpanel.c:688 #: ../../WINGs/wcolorpanel.c:721 ../../WINGs/wcolorpanel.c:755 #: ../../WINGs/wcolorpanel.c:815 ../../WINGs/wcolorpanel.c:849 #: ../../WINGs/wcolorpanel.c:883 ../../WINGs/wcolorpanel.c:918 #: ../../WINGs/wcolorpanel.c:2169 ../../WINGs/wcolorpanel.c:2831 #: ../../WINGs/wcolorpanel.c:2867 ../../WINGs/wcolorpanel.c:2903 #: ../../WINGs/wcolorpanel.c:3745 msgid "Color Panel: Could not allocate memory" msgstr "Panneau de Sélection des Couleur: impossible d'allouer la mémoire" #: ../../WINGs/wcolorpanel.c:685 ../../WINGs/wcolorpanel.c:686 msgid "Red" msgstr "Rouge" #: ../../WINGs/wcolorpanel.c:718 ../../WINGs/wcolorpanel.c:719 msgid "Green" msgstr "Vert" #: ../../WINGs/wcolorpanel.c:752 ../../WINGs/wcolorpanel.c:753 msgid "Blue" msgstr "Bleu" #: ../../WINGs/wcolorpanel.c:812 ../../WINGs/wcolorpanel.c:813 msgid "Cyan" msgstr "Cyan" #: ../../WINGs/wcolorpanel.c:846 ../../WINGs/wcolorpanel.c:847 msgid "Magenta" msgstr "Magenta" #: ../../WINGs/wcolorpanel.c:880 ../../WINGs/wcolorpanel.c:881 msgid "Yellow" msgstr "Jaune" #: ../../WINGs/wcolorpanel.c:915 ../../WINGs/wcolorpanel.c:916 msgid "Black" msgstr "Noir" #: ../../WINGs/wcolorpanel.c:996 msgid "Spectrum" msgstr "Spectre" #: ../../WINGs/wcolorpanel.c:1026 msgid "Palette" msgstr "Palette" #: ../../WINGs/wcolorpanel.c:1032 msgid "New from File..." msgstr "Nouveau d'après le fichier..." #: ../../WINGs/wcolorpanel.c:1033 ../../WINGs/wcolorpanel.c:1081 #: ../../WINGs/wcolorpanel.c:1098 msgid "Rename..." msgstr "Renommer..." #: ../../WINGs/wcolorpanel.c:1034 ../../WINGs/wcolorpanel.c:1082 #: ../../WINGs/wcolorpanel.c:1099 ../../WINGs/wcolorpanel.c:3326 msgid "Remove" msgstr "Supprimer" #: ../../WINGs/wcolorpanel.c:1035 msgid "Copy" msgstr "Copier" #: ../../WINGs/wcolorpanel.c:1036 msgid "New from Clipboard" msgstr "Nouveau d'après le presse-papier" #: ../../WINGs/wcolorpanel.c:1057 msgid "X11-Colors" msgstr "Couleurs X11" #: ../../WINGs/wcolorpanel.c:1074 msgid "Color" msgstr "Couleur" #: ../../WINGs/wcolorpanel.c:1080 msgid "Add..." msgstr "Ajouter..." #: ../../WINGs/wcolorpanel.c:1090 msgid "List" msgstr "Liste" #: ../../WINGs/wcolorpanel.c:1097 msgid "New..." msgstr "Nouveau..." #: ../../WINGs/wcolorpanel.c:1236 #, c-format msgid "" "Color Panel: Could not create directory %s needed to store configurations" msgstr "" "Panneau de sélection des couleurs : impossible de créer le répertoire %s " "requis pour enregistrer les configurations." #. Delete the file, it doesn't belong here #: ../../WINGs/wcolorpanel.c:1242 ../../WINGs/wcolorpanel.c:3212 #: ../../WINGs/wcolorpanel.c:3216 msgid "File Error" msgstr "Erreur de fichier" #: ../../WINGs/wcolorpanel.c:1243 msgid "Could not create ColorPanel configuration directory" msgstr "" "Impossible de créer le répertoire pour la configuration du panneau de " "sélection des couleurs." #: ../../WINGs/wcolorpanel.c:1244 ../../WINGs/wcolorpanel.c:3213 #: ../../WINGs/wcolorpanel.c:3218 ../../WINGs/wcolorpanel.c:3245 #: ../../WINGs/wfilepanel.c:250 ../../WINGs/wfilepanel.c:650 #: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763 #: ../../WINGs/wfilepanel.c:974 ../../WINGs/wfontpanel.c:751 msgid "OK" msgstr "OK" #: ../../WINGs/wcolorpanel.c:1250 ../../WINGs/wcolorpanel.c:1286 #: ../../WINGs/wcolorpanel.c:1304 msgid "Color Panel: Could not find file" msgstr "Panneau de sélection des couleurs : Impossible de trouver le fichier." #: ../../WINGs/wcolorpanel.c:1491 ../../WINGs/wcolorpanel.c:1556 #: ../../WINGs/wcolorpanel.c:1620 msgid "Color Panel: X failed request" msgstr "Panneau de sélection des couleurs : échec d'une requête X" #: ../../WINGs/wcolorpanel.c:2865 msgid "Saturation" msgstr "Saturation" #: ../../WINGs/wcolorpanel.c:2901 msgid "Hue" msgstr "Teinte" #: ../../WINGs/wcolorpanel.c:3151 msgid "Open Palette" msgstr "Ouvrir une palette" #: ../../WINGs/wcolorpanel.c:3213 msgid "Invalid file format !" msgstr "Format de fichier invalide !" #: ../../WINGs/wcolorpanel.c:3215 #, c-format msgid "can't remove file %s" msgstr "Impossible de supprimer le fichier %s." #: ../../WINGs/wcolorpanel.c:3217 msgid "Couldn't remove file from Configuration Directory !" msgstr "Impossible de supprimer le fichier du répertoire de configuration !" #: ../../WINGs/wcolorpanel.c:3244 msgid "Rename" msgstr "Renommer" #: ../../WINGs/wcolorpanel.c:3244 msgid "Rename palette to:" msgstr "Renommer la palette en :" #: ../../WINGs/wcolorpanel.c:3245 ../../WINGs/wfilepanel.c:259 #: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763 msgid "Cancel" msgstr "Annuler" #. Careful, this palette exists already #: ../../WINGs/wcolorpanel.c:3261 ../../WINGs/wfilepanel.c:763 msgid "Warning" msgstr "Avertissement" #: ../../WINGs/wcolorpanel.c:3262 msgid "" "Palette already exists !\n" "\n" "Overwrite ?" msgstr "" "La palette existe déjà !\n" "\n" "Écraser ?" #: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326 msgid "No" msgstr "Non" #: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326 msgid "Yes" msgstr "Oui" #: ../../WINGs/wcolorpanel.c:3294 #, c-format msgid "Couldn't rename palette %s to %s\n" msgstr "Impossible de renommer la palette %s en %s.\n" #: ../../WINGs/wcolorpanel.c:3320 msgid "This will permanently remove the palette " msgstr "Ceci détruira définitivement la palette " #: ../../WINGs/wcolorpanel.c:3323 msgid "" ".\n" "\n" "Are you sure you want to remove this palette ?" msgstr "" ".\n" "\n" "Êtes-vous sûr de vouloir supprimer cette palette ?" #: ../../WINGs/wcolorpanel.c:3348 #, c-format msgid "Couldn't remove palette %s\n" msgstr "Impossible de détruire la palette %s.\n" #: ../../WINGs/wcolorpanel.c:3647 #, c-format msgid "Could not open %s" msgstr "Impossible d'ouvrir %s." #: ../../WINGs/wcolorpanel.c:3654 #, c-format msgid "Could not create %s" msgstr "Impossible de créer %s." #: ../../WINGs/wcolorpanel.c:3665 #, c-format msgid "Write error on file %s" msgstr "Erreur d'écriture dans le fichier %s." #: ../../WINGs/wcolorpanel.c:3710 msgid "Color Panel: Color unspecified" msgstr "Panneau de sélection des couleurs: couleur non spécifiée." #: ../../WINGs/wfilepanel.c:235 msgid "Name:" msgstr "Nom :" #: ../../WINGs/wfilepanel.c:332 ../../WINGs/wfilepanel.c:396 msgid "Open" msgstr "Ouvrir" #: ../../WINGs/wfilepanel.c:350 ../../WINGs/wfilepanel.c:402 msgid "Save" msgstr "Enregistrer" #: ../../WINGs/wfilepanel.c:565 #, c-format msgid "WINGs: could not open directory %s\n" msgstr "WINGs : Impossible d'ouvrir le répertoire %s.\n" #: ../../WINGs/wfilepanel.c:583 #, c-format msgid "WINGs: could not stat %s\n" msgstr "WINGs : impossible de lire l'état du fichier %s.\n" #: ../../WINGs/wfilepanel.c:650 ../../WINGs/wfilepanel.c:973 #: ../../WINGs/wfontpanel.c:750 msgid "Error" msgstr "Erreur" #: ../../WINGs/wfilepanel.c:661 msgid "Create Directory" msgstr "Créer un répertoire" #: ../../WINGs/wfilepanel.c:662 msgid "Enter directory name" msgstr "Saisissez le nom du répertoire" #: ../../WINGs/wfilepanel.c:698 ../../WINGs/wfilepanel.c:737 #: ../../WINGs/wfilepanel.c:768 ../../WINGs/wfilepanel.c:796 msgid "Permission denied." msgstr "Permission refusée." #: ../../WINGs/wfilepanel.c:701 #, c-format msgid "'%s' already exists." msgstr "'%s' existe déjà." #: ../../WINGs/wfilepanel.c:704 msgid "Path does not exist." msgstr "Le chemin n'existe pas." #: ../../WINGs/wfilepanel.c:734 ../../WINGs/wfilepanel.c:793 #, c-format msgid "'%s' does not exist." msgstr "'%s' n'existe pas." #: ../../WINGs/wfilepanel.c:741 ../../WINGs/wfilepanel.c:800 msgid "Insufficient memory available." msgstr "Mémoire disponible insuffisante." #: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:804 #, c-format msgid "'%s' is on a read-only filesystem." msgstr "'%s' est sur un système de fichiers en lecture seule." #: ../../WINGs/wfilepanel.c:748 ../../WINGs/wfilepanel.c:780 #: ../../WINGs/wfilepanel.c:807 #, c-format msgid "Can not delete '%s'." msgstr "Impossible de supprimer '%s'." #: ../../WINGs/wfilepanel.c:755 #, c-format msgid "Delete directory %s ?" msgstr "Supprimer le répertoire %s ?" #: ../../WINGs/wfilepanel.c:759 #, c-format msgid "Delete file %s ?" msgstr "Supprimer le fichier %s ?" #: ../../WINGs/wfilepanel.c:771 #, c-format msgid "Directory '%s' does not exist." msgstr "Le répertoire '%s' n'existe pas." #: ../../WINGs/wfilepanel.c:774 #, c-format msgid "Directory '%s' is not empty." msgstr "Le répertoire '%s' n'est pas vide." #: ../../WINGs/wfilepanel.c:777 #, c-format msgid "Directory '%s' is busy." msgstr "Le répertoire '%s' est occupé." #: ../../WINGs/wfilepanel.c:790 #, c-format msgid "'%s' is a directory." msgstr "'%s' est un répertoire." #: ../../WINGs/wfilepanel.c:832 #, c-format msgid "An error occured browsing '%s'." msgstr "Une erreur s'est produite pendant le parcours de '%s'." #: ../../WINGs/wfilepanel.c:836 #, c-format msgid "'%s' is not a directory." msgstr "'%s' n'est pas un répertoire." #: ../../WINGs/wfilepanel.c:973 msgid "File does not exist." msgstr "Le fichier n'existe pas." #: ../../WINGs/wfont.c:133 ../../WINGs/wfont.c:143 #, c-format msgid "Invalid size specification '%s' in %s. Using default %d\n" msgstr "" "Taille invalide dans %2$s : '%1$s'. Utilisation de la valeur par défaut %3" "$d\n" #: ../../WINGs/wfont.c:187 #, c-format msgid "the following character sets are missing in %s:" msgstr "Les jeux de caractères suivants manquent dans %s :" #: ../../WINGs/wfont.c:193 #, c-format msgid "" "the string \"%s\" will be used in place of any characters from those sets." msgstr "" "La chaîne « %s » sera utilisée à la place de tous les caractères de ces jeux." #. is arial a good fallback for multibyte? #: ../../WINGs/wfont.c:599 ../../WINGs/wfont.c:614 #, c-format msgid "could not load font %s. Trying arial." msgstr "" "Impossible de charger la police de caractères %s, essai de la police " "« arial »." #: ../../WINGs/wfont.c:606 msgid "could not load antialiased font set. Reverting to standard font sets." msgstr "" "Impossible de charger les polices lissées, utilisation des polices normales." #: ../../WINGs/wfont.c:609 #, c-format msgid "could not load FontSet %s. Trying fixed." msgstr "" "Impossible de charger la famille de polices %s, essai de la famille " "« fixed »." #: ../../WINGs/wfont.c:621 msgid "could not load antialiased fonts. Reverting to normal fonts." msgstr "" "Impossible de charger les polices lissées, utilisation des polices normales." #: ../../WINGs/wfont.c:624 ../../WINGs/wfont.c:635 #, c-format msgid "could not load font %s. Trying fixed." msgstr "" "Impossible de charger la police de caractères %s, essai de la police " "« fixed »." #: ../../WINGs/wfont.c:629 #, c-format msgid "could not load font set %s. Trying fixed." msgstr "" "Impossible de charger la famille de polices %s, essai de la famille " "« fixed »." #: ../../WINGs/wfont.c:639 msgid "could not load fixed font!" msgstr "Impossible de charger la police de caractères « fixed » !" #: ../../WINGs/wfont.c:704 ../../WINGs/wfont.c:765 ../../WINGs/wfont.c:836 #, c-format msgid "" "Conversion to widechar failed (possible invalid multibyte sequence): '%s':" "(pos %d)\n" msgstr "" "Échec de la conversion en widechar (probablement une séquence d'octets " "erronée) : « %s » (pos %d)\n" #: ../../WINGs/wfont.c:887 #, c-format msgid "font description %s is too large." msgstr "La description de la police de caractères %s est trop volumineuse." #. // remove warning later. or maybe not #: ../../WINGs/wfont.c:935 #, c-format msgid "Invalid font specification: '%s'\n" msgstr "Déclaration de police invalide : « %s »\n" #: ../../WINGs/wfontpanel.c:235 msgid "Test!!!" msgstr "Test !" #: ../../WINGs/wfontpanel.c:241 msgid "Family" msgstr "Famille" #: ../../WINGs/wfontpanel.c:252 msgid "Typeface" msgstr "Caractère" #: ../../WINGs/wfontpanel.c:263 msgid "Size" msgstr "Taille" #: ../../WINGs/wfontpanel.c:282 msgid "Set" msgstr "Famille" #: ../../WINGs/wfontpanel.c:288 msgid "Revert" msgstr "Revenir" #: ../../WINGs/wfontpanel.c:751 msgid "Could not retrieve font list" msgstr "Impossible de lire la liste des polices de caractères." #: ../../WINGs/wfontpanel.c:765 #, c-format msgid "font name %s is longer than 256, which is invalid." msgstr "" "Le nom de police %s a plus de 256 caractères et est par conséquent invalide." #: ../../WINGs/wfontpanel.c:913 msgid "Roman" msgstr "Roman" #: ../../WINGs/wfontpanel.c:916 msgid "Italic" msgstr "Italique" #: ../../WINGs/wfontpanel.c:918 msgid "Oblique" msgstr "Penché" #: ../../WINGs/wfontpanel.c:920 msgid "Rev Italic" msgstr "Italique inverse" #: ../../WINGs/wfontpanel.c:922 msgid "Rev Oblique" msgstr "Penché inverse" #: ../../WINGs/wfontpanel.c:928 msgid "Normal" msgstr "Normal" #: ../../WINGs/widgets.c:419 #, c-format msgid "WINGs: could not load widget images file: %s" msgstr "WINGs : impossible de charger le fichier d'images de widget '%s'." #: ../../WINGs/widgets.c:770 msgid "" "Text antialiasing is enabled in the configuration but the X server doesn't " "have the required capabilities (missing RENDER extension). Disabling text " "antialiasing." msgstr "" "Le lissage du texte est activé dans la configuration mais le serveur X ne " "dispose pas de l'extension adéquate (extension RENDER). Desactivation du " "lissage." #: ../../WINGs/widgets.c:787 msgid "" "could not load any fonts. Make sure your font installation and locale " "settings are correct." msgstr "" "Aucune police n'a pu être chargée. Veuillez vérifier que vos polices sont " "correctement installées et que votre langue est bien configurée." #: ../../WINGs/wruler.c:192 msgid "0 inches" msgstr "0 pouces" WindowMaker-0.95.5/WINGs/po/cs.po0000644000175000017500000004163512214432632013304 00000000000000# Czech messages for WINGs # (C) 2001 Jiří Hnídek # Special thanks to Jan "judas" Tomka # # Original translation by Jiří Hnídek on Oct 11 2001 # Currently maintained by Jiří Hnídek # msgid "" msgstr "" "Project-Id-Version: WINGs 0.70.0\n" "POT-Creation-Date: 2001-10-11 19:10+0100\n" "PO-Revision-Date: 2001-10-11 22:00+0100\n" "Last-Translator: Jiří Hnídek \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: unknown\n" #: ../../WINGs/connection.c:451 ../../WINGs/connection.c:516 #: ../../WINGs/connection.c:559 msgid "Bad address-service-protocol combination" msgstr "Nesprávná kombinace adresa-služba-protokol" #: ../../WINGs/dragsource.c:541 msgid "DND selection lost during drag operation..." msgstr "DND výbÄ›r se ztratil bÄ›hem opere táhnutí..." #: ../../WINGs/dragsource.c:610 #, c-format msgid "drag & drop timed out while waiting for response from 0x%x\n" msgstr "Äas pro drag & drop vyprÅ¡el bÄ›hem Äekání na odpoveÄ z 0x%x\n" #: ../../WINGs/dragsource.c:728 msgid "could not get ownership or DND selection" msgstr "nemožné získat vlastnictví nebo DND výbÄ›r" #: ../../WINGs/dragsource.c:898 #, c-format msgid "drag source received unexpected XdndFinished message from %x" msgstr "zdroj tahání pÅ™ijal neoÄekávanou zprávu XdndFinished z %x" #: ../../WINGs/dragsource.c:1040 #, c-format msgid "unknown XDND action %s from 0x%x" msgstr "neznámá XDND akce %s z 0x%x" #: ../../WINGs/dragsource.c:1073 msgid "received invalid drag & drop type list" msgstr "pÅ™ijatý nesprávný seznam typů drag & drop" #: ../../WINGs/dragsource.c:1161 msgid "received Enter event in bad order" msgstr "pÅ™ijatá událost Enter v nesprávném poÅ™adí" #: ../../WINGs/dragsource.c:1168 #, c-format msgid "received drag & drop request with unsupported version %i" msgstr "pÅ™ijatý požadavek drag & drop s nepodporovanou verzí %i" #: ../../WINGs/error.c:56 #, c-format msgid "Unknown error %d" msgstr "Neznámá chyba %d" #: ../../WINGs/error.c:61 #, c-format msgid "Error %d" msgstr "Chyba %d" #: ../../WINGs/error.c:112 msgid " warning: " msgstr " varovíní: " #: ../../WINGs/error.c:139 msgid " fatal error: " msgstr " fatální chyba: " #: ../../WINGs/error.c:165 ../../WINGs/error.c:194 msgid " error: " msgstr " chyba: " #: ../../WINGs/findfile.c:50 #, c-format msgid "could not get password entry for UID %i" msgstr "nemožné zjistit informaci o UID %i" #: ../../WINGs/findfile.c:68 #, c-format msgid "could not get password entry for user %s" msgstr "nemožné zjistit informaci o uživatelovi %s" #: ../../WINGs/hashtable.c:275 msgid "rebuilding hash table...\n" msgstr "pÅ™epis tabulky hashovských funkcí...\n" #: ../../WINGs/hashtable.c:279 msgid "finished rebuild.\n" msgstr "konec pÅ™episu.\n" #: ../../WINGs/host.c:116 msgid "Cannot get current host name" msgstr "Nemožné zjistit aktuální jméno poÄítaÄe" #: ../../WINGs/memory.c:94 msgid "malloc() failed. Retrying after 2s." msgstr "chyba malloc(). Nový pokus o 2s." #: ../../WINGs/memory.c:103 msgid "Really Bad Error: recursive malloc() failure." msgstr "SkuteÄnÄ› oÅ¡klivá chyba: rekurzivní chyba malloc()." #: ../../WINGs/memory.c:106 ../../WINGs/memory.c:146 msgid "virtual memory exhausted" msgstr "virtuální paměť vyÄerpaná" #: ../../WINGs/memory.c:133 msgid "realloc() failed. Retrying after 2s." msgstr "chyba realloc(). Nový pokus o 2s." #: ../../WINGs/memory.c:142 msgid "Really Bad Error: recursive realloc() failure." msgstr "SkuteÄnÄ› oÅ¡klivá chyba: rekurzivní chyba realloc()." #: ../../WINGs/memory.c:205 #, c-format msgid "trying to release unexisting data %p" msgstr "pokus uvolnit neexistujícá data %p" #: ../../WINGs/memory.c:210 #, c-format msgid "RELEASING %p\n" msgstr "UVOLNÄšNà %p\n" #: ../../WINGs/wcolor.c:198 ../../WINGs/wcolor.c:211 ../../WINGs/wcolor.c:250 #: ../../WINGs/wcolor.c:291 #, c-format msgid "could not allocate %s color" msgstr "nemožné alokovat %s barvu" #: ../../WINGs/wcolor.c:198 msgid "white" msgstr "bílou" #: ../../WINGs/wcolor.c:211 msgid "black" msgstr "Äernou" #: ../../WINGs/wcolor.c:250 msgid "gray" msgstr "Å¡edou" #: ../../WINGs/wcolor.c:291 msgid "dark gray" msgstr "tmavÄ› Å¡edou" #: ../../WINGs/wcolorpanel.c:410 msgid "Colors" msgstr "Barvy" #: ../../WINGs/wcolorpanel.c:600 ../../WINGs/wcolorpanel.c:2819 msgid "Brightness" msgstr "SvÄ›tlost" #: ../../WINGs/wcolorpanel.c:602 ../../WINGs/wcolorpanel.c:678 #: ../../WINGs/wcolorpanel.c:711 ../../WINGs/wcolorpanel.c:745 #: ../../WINGs/wcolorpanel.c:805 ../../WINGs/wcolorpanel.c:839 #: ../../WINGs/wcolorpanel.c:873 ../../WINGs/wcolorpanel.c:908 #: ../../WINGs/wcolorpanel.c:2159 ../../WINGs/wcolorpanel.c:2821 #: ../../WINGs/wcolorpanel.c:2857 ../../WINGs/wcolorpanel.c:2893 #: ../../WINGs/wcolorpanel.c:3741 msgid "Color Panel: Could not allocate memory" msgstr "Panel barev: Nemožné alokovat paměť" #: ../../WINGs/wcolorpanel.c:675 ../../WINGs/wcolorpanel.c:676 msgid "Red" msgstr "ÄŒervená" #: ../../WINGs/wcolorpanel.c:708 ../../WINGs/wcolorpanel.c:709 msgid "Green" msgstr "Zelená" #: ../../WINGs/wcolorpanel.c:742 ../../WINGs/wcolorpanel.c:743 msgid "Blue" msgstr "Modrá" #: ../../WINGs/wcolorpanel.c:802 ../../WINGs/wcolorpanel.c:803 msgid "Cyan" msgstr "" #: ../../WINGs/wcolorpanel.c:836 ../../WINGs/wcolorpanel.c:837 msgid "Magenta" msgstr "" #: ../../WINGs/wcolorpanel.c:870 ../../WINGs/wcolorpanel.c:871 msgid "Yellow" msgstr "Žlutá" #: ../../WINGs/wcolorpanel.c:905 ../../WINGs/wcolorpanel.c:906 msgid "Black" msgstr "ÄŒerná" #: ../../WINGs/wcolorpanel.c:986 msgid "Spectrum" msgstr "Spektrum" #: ../../WINGs/wcolorpanel.c:1016 msgid "Palette" msgstr "Paleta" #: ../../WINGs/wcolorpanel.c:1022 msgid "New from File..." msgstr "Nová ze souboru..." #: ../../WINGs/wcolorpanel.c:1023 ../../WINGs/wcolorpanel.c:1071 #: ../../WINGs/wcolorpanel.c:1088 msgid "Rename..." msgstr "PÅ™ejmenovat..." #: ../../WINGs/wcolorpanel.c:1024 ../../WINGs/wcolorpanel.c:1072 #: ../../WINGs/wcolorpanel.c:1089 ../../WINGs/wcolorpanel.c:3316 msgid "Remove" msgstr "Odstranit" #: ../../WINGs/wcolorpanel.c:1025 msgid "Copy" msgstr "Kopírovat" #: ../../WINGs/wcolorpanel.c:1026 msgid "New from Clipboard" msgstr "Nová ze schránky" #: ../../WINGs/wcolorpanel.c:1047 msgid "X11-Colors" msgstr "Barvy X11" #: ../../WINGs/wcolorpanel.c:1064 msgid "Color" msgstr "Barva" #: ../../WINGs/wcolorpanel.c:1070 msgid "Add..." msgstr "PÅ™idat..." #: ../../WINGs/wcolorpanel.c:1080 msgid "List" msgstr "Seznam" #: ../../WINGs/wcolorpanel.c:1087 msgid "New..." msgstr "Nový..." #: ../../WINGs/wcolorpanel.c:1226 #, c-format msgid "" "Color Panel: Could not create directory %s needed to store configurations" msgstr "" "Panel barev: Nemožné vytvoÅ™it adresář %s potÅ™ebný k uložení nastavení" #. Delete the file, it doesn't belong here #: ../../WINGs/wcolorpanel.c:1232 ../../WINGs/wcolorpanel.c:3202 #: ../../WINGs/wcolorpanel.c:3206 msgid "File Error" msgstr "Chyba souboru" #: ../../WINGs/wcolorpanel.c:1233 msgid "Could not create ColorPanel configuration directory" msgstr "Nemožné vytvoÅ™it konfiguraÄní adresář panelu barev" #: ../../WINGs/wcolorpanel.c:1234 ../../WINGs/wcolorpanel.c:3203 #: ../../WINGs/wcolorpanel.c:3208 ../../WINGs/wcolorpanel.c:3235 #: ../../WINGs/wfilepanel.c:243 ../../WINGs/wfilepanel.c:641 #: ../../WINGs/wfilepanel.c:653 ../../WINGs/wfilepanel.c:752 #: ../../WINGs/wfilepanel.c:963 ../../WINGs/wfontpanel.c:717 msgid "OK" msgstr "OK" #: ../../WINGs/wcolorpanel.c:1240 ../../WINGs/wcolorpanel.c:1276 #: ../../WINGs/wcolorpanel.c:1294 msgid "Color Panel: Could not find file" msgstr "Panel barev: Nemožné nalézt soubor" #: ../../WINGs/wcolorpanel.c:1481 ../../WINGs/wcolorpanel.c:1546 #: ../../WINGs/wcolorpanel.c:1610 msgid "Color Panel: X failed request" msgstr "Panel barev: chyba požadavku X" #: ../../WINGs/wcolorpanel.c:2855 msgid "Saturation" msgstr "Saturace" #: ../../WINGs/wcolorpanel.c:2891 msgid "Hue" msgstr "OdteÄ" #: ../../WINGs/wcolorpanel.c:3141 msgid "Open Palette" msgstr "Otevřít paletu" #: ../../WINGs/wcolorpanel.c:3203 msgid "Invalid file format !" msgstr "Nesprávný souborový formát!" #: ../../WINGs/wcolorpanel.c:3205 #, c-format msgid "can't remove file %s" msgstr "nemožné odstranit soubor %s" #: ../../WINGs/wcolorpanel.c:3207 msgid "Couldn't remove file from Configuration Directory !" msgstr "Nemožné odstranit soubor z konfiguraÄního adresáře!" #: ../../WINGs/wcolorpanel.c:3234 msgid "Rename" msgstr "PÅ™ejmenovat" #: ../../WINGs/wcolorpanel.c:3234 msgid "Rename palette to:" msgstr "PÅ™ejmenovat paletu:" #: ../../WINGs/wcolorpanel.c:3235 ../../WINGs/wfilepanel.c:252 #: ../../WINGs/wfilepanel.c:653 ../../WINGs/wfilepanel.c:752 msgid "Cancel" msgstr "ZruÅ¡it" #. Careful, this palette exists already #: ../../WINGs/wcolorpanel.c:3251 ../../WINGs/wfilepanel.c:752 msgid "Warning" msgstr "Varování" #: ../../WINGs/wcolorpanel.c:3252 msgid "" "Palette already exists !\n" "\n" "Overwrite ?" msgstr "" "Paleta už existuje!\n" "\n" "PÅ™epsat?" #: ../../WINGs/wcolorpanel.c:3252 ../../WINGs/wcolorpanel.c:3316 msgid "No" msgstr "Ne" #: ../../WINGs/wcolorpanel.c:3252 ../../WINGs/wcolorpanel.c:3316 msgid "Yes" msgstr "Ano" #: ../../WINGs/wcolorpanel.c:3284 #, c-format msgid "Couldn't rename palette %s to %s\n" msgstr "Nemožné pÅ™ejmenovat paletu %s na %s\n" #: ../../WINGs/wcolorpanel.c:3310 msgid "This will permanently remove the palette " msgstr "Paleta bude natrvalo smazaná" #: ../../WINGs/wcolorpanel.c:3313 msgid "" ".\n" "\n" "Are you sure you want to remove this palette ?" msgstr "" ".\n" "\n" "Jste si jisti, že chcete odstranit tuto paletu?" #: ../../WINGs/wcolorpanel.c:3338 #, c-format msgid "Couldn't remove palette %s\n" msgstr "Nemožné odstranit paletu %s\n" #: ../../WINGs/wcolorpanel.c:3643 #, c-format msgid "Could not open %s" msgstr "Nemožné otevřít %s" #: ../../WINGs/wcolorpanel.c:3650 #, c-format msgid "Could not create %s" msgstr "Nemožné vytvoÅ™it %s" #: ../../WINGs/wcolorpanel.c:3661 #, c-format msgid "Write error on file %s" msgstr "Chyba pÅ™i zápisu do souboru %s" #: ../../WINGs/wcolorpanel.c:3706 msgid "Color Panel: Color unspecified" msgstr "Panel barev: Nespecifikovaná barva" #: ../../WINGs/wfilepanel.c:228 msgid "Name:" msgstr "Jméno:" #: ../../WINGs/wfilepanel.c:325 ../../WINGs/wfilepanel.c:390 msgid "Open" msgstr "Otevřít" #: ../../WINGs/wfilepanel.c:343 ../../WINGs/wfilepanel.c:396 msgid "Save" msgstr "Uložit" #: ../../WINGs/wfilepanel.c:556 #, c-format msgid "WINGs: could not open directory %s\n" msgstr "WINGs: nemožné otevřít adresář %s\n" #: ../../WINGs/wfilepanel.c:574 #, c-format msgid "WINGs: could not stat %s\n" msgstr "WINGs: nemožné zjistit informace o %s\n" #: ../../WINGs/wfilepanel.c:641 ../../WINGs/wfilepanel.c:962 #: ../../WINGs/wfontpanel.c:716 msgid "Error" msgstr "Chyba" #: ../../WINGs/wfilepanel.c:652 msgid "Create Directory" msgstr "VytvoÅ™it adresář" #: ../../WINGs/wfilepanel.c:653 msgid "Enter directory name" msgstr "Jméno adresáře" #: ../../WINGs/wfilepanel.c:689 ../../WINGs/wfilepanel.c:728 #: ../../WINGs/wfilepanel.c:757 ../../WINGs/wfilepanel.c:785 msgid "Permission denied." msgstr "Přístup odmítnut." #: ../../WINGs/wfilepanel.c:692 #, c-format msgid "'%s' already exists." msgstr "'%s' už existuje" #: ../../WINGs/wfilepanel.c:695 msgid "Path does not exist." msgstr "Cesta neexistuje." #: ../../WINGs/wfilepanel.c:725 ../../WINGs/wfilepanel.c:782 #, c-format msgid "'%s' does not exist." msgstr "'%s' neexistuje." #: ../../WINGs/wfilepanel.c:732 ../../WINGs/wfilepanel.c:789 msgid "Insufficient memory available." msgstr "Nedostatek pamÄ›ti." #: ../../WINGs/wfilepanel.c:736 ../../WINGs/wfilepanel.c:793 #, c-format msgid "'%s' is on a read-only filesystem." msgstr "'%s' je na souborovém systému jen pro Ätení." #: ../../WINGs/wfilepanel.c:739 ../../WINGs/wfilepanel.c:769 #: ../../WINGs/wfilepanel.c:796 #, c-format msgid "Can not delete '%s'." msgstr "Nemožné odstranit '%s'." #: ../../WINGs/wfilepanel.c:745 #, c-format msgid "Delete directory %s ?" msgstr "Odstranit adresář %s?" #: ../../WINGs/wfilepanel.c:748 #, c-format msgid "Delete file %s ?" msgstr "Odstranit soubor %s?" #: ../../WINGs/wfilepanel.c:760 #, c-format msgid "Directory '%s' does not exist." msgstr "Adresář '%s' neexistuje." #: ../../WINGs/wfilepanel.c:763 #, c-format msgid "Directory '%s' is not empty." msgstr "Adresář '%s' není prázdný." #: ../../WINGs/wfilepanel.c:766 #, c-format msgid "Directory '%s' is busy." msgstr "Adresář '%s' je používaný." #: ../../WINGs/wfilepanel.c:779 #, c-format msgid "'%s' is a directory." msgstr "'%s' je adresář." #: ../../WINGs/wfilepanel.c:821 #, c-format msgid "An error occured browsing '%s'." msgstr "PÅ™i prohlížení '%s' nastala chyba." #: ../../WINGs/wfilepanel.c:825 #, c-format msgid "'%s' is not a directory." msgstr "'%s' není adresář." #: ../../WINGs/wfilepanel.c:962 msgid "File does not exist." msgstr "Soubor neexistuje." #: ../../WINGs/wfont.c:129 #, c-format msgid "the following character sets are missing in %s:" msgstr "nasledující sady znaků chybí v %s:" #: ../../WINGs/wfont.c:136 #, c-format msgid "" "the string \"%s\" will be used in place of any characters from those sets." msgstr "" "Å™etÄ›zec \"%s\" bude použitý namísto znaků z tÄ›chto sad." #: ../../WINGs/wfont.c:282 ../../WINGs/wfont.c:318 #, c-format msgid "could not load font set %s. Trying fixed." msgstr "nemožné naÄíst font %s. Zkouší se naÄíst fixed." #: ../../WINGs/wfont.c:288 ../../WINGs/wfont.c:324 #, c-format msgid "could not load font %s. Trying fixed." msgstr "nemožno naÄíst font %s. Zkoší se naÄíst fixed." #: ../../WINGs/wfont.c:292 ../../WINGs/wfont.c:328 msgid "could not load fixed font!" msgstr "nemožné naÄíst font fixed!" #: ../../WINGs/wfont.c:423 #, c-format msgid "font description %s is too large." msgstr "popis fontu %s je příliÅ¡ velký." #: ../../WINGs/wfontpanel.c:205 msgid "Test!!!" msgstr "ZkouÅ¡ka!!!" #: ../../WINGs/wfontpanel.c:211 msgid "Family" msgstr "" #: ../../WINGs/wfontpanel.c:222 msgid "Typeface" msgstr "" #: ../../WINGs/wfontpanel.c:233 msgid "Size" msgstr "Velikost" #: ../../WINGs/wfontpanel.c:252 msgid "Set" msgstr "Sada" #: ../../WINGs/wfontpanel.c:257 msgid "Revert" msgstr "ZpÄ›t" #: ../../WINGs/wfontpanel.c:717 msgid "Could not retrieve font list" msgstr "Nemožné obdržet seznam fontů" #: ../../WINGs/wfontpanel.c:729 #, c-format msgid "font name %s is longer than 256, which is invalid." msgstr "jméno fontu %s je delší než 256, což je Å¡patnÄ›." #: ../../WINGs/wfontpanel.c:880 msgid "Roman" msgstr "" #: ../../WINGs/wfontpanel.c:883 msgid "Italic" msgstr "" #: ../../WINGs/wfontpanel.c:885 msgid "Oblique" msgstr "" #: ../../WINGs/wfontpanel.c:887 msgid "Rev Italic" msgstr "" #: ../../WINGs/wfontpanel.c:889 msgid "Rev Oblique" msgstr "" #: ../../WINGs/wfontpanel.c:895 msgid "Normal" msgstr "Normílní" #: ../../WINGs/widgets.c:414 #, c-format msgid "WINGs: could not load widget images file: %s" msgstr "WINGs: nemožné naÄíst soubor s obrázky pro widgety: %s" #: ../../WINGs/widgets.c:525 #, c-format msgid "WINGs: could not open display %s" msgstr "WINGs: nemožné otevřít display %s" #: ../../WINGs/widgets.c:717 msgid "" "could not load any fonts. Make sure your font installationand locale " "settings are correct." msgstr "" "nemožné naÄíst žádný font. UbezpeÄte se, že instalace fontů a místního " "nastavení jsou v pořádku." #: ../../WINGs/wruler.c:189 msgid "0 inches" msgstr "0 palců" #: ../../WINGs/wtext.c:1212 msgid "...for this app will surely crash :-)\n" msgstr "...pro tuto aplikaci to urÄitÄ› spadne :-)\n" #: ../../WINGs/wtext.c:2084 msgid "didn't get it\n" msgstr "nedosaženo\n" #: ../../WINGs/wtext.c:2726 #, c-format msgid "type is [%s]\n" msgstr "typ je [%s]\n" #: ../../WINGs/wtext.c:2797 msgid "could not request data for dropped data" msgstr "nemohou být vyžádána data pro položená data" #: ../../WINGs/wtext.c:2995 msgid "could not create text's view\n" msgstr "nemožné zobrazit text\n" #: ../../WINGs/wview.c:219 msgid "trying to realize widget of unrealized parent" msgstr "snaha vytvoÅ™it widget neexistujícího rodiÄe objektu" #: ../../WINGs/wview.c:267 msgid "trying to reparent realized view to unrealized parent" msgstr "" #: ../../WINGs/wtextfield.c:490 msgid "only left alignment is supported in textfields" msgstr "pro textové pole je povolené jen levé zarovnání" #pozor, co je STRING? #: ../../WINGs/wwindow.c:222 msgid "window title conversion error... using STRING encoding" msgstr "chyba konverze titulku okna... použije se kódovaní STRING" #: ../../WINGs/wwindow.c:313 msgid "could not allocate memory for window size hints" msgstr "nemožné alokovat paměť pro pokyny velikosti okna" #: ../../WINGs/wwindow.c:586 msgid "could not allocate memory for WM hints" msgstr "nemožné alokovat paměť pro pokyny WM" #: ../../WINGs/wwindow.c:627 msgid "icon title conversion error..using STRING encoding" msgstr "chyba konverze titulku ikony... použije se kódovaní STRING" WindowMaker-0.95.5/WINGs/po/de.po0000644000175000017500000004112612214432632013262 00000000000000# # German Message Catalog for WINGs # # Initial translation # Gudio Scholz # # Adapted to versions 0.80 ff. # Torsten Marek # msgid "" msgstr "" "Project-Id-Version: WINGs\n" "POT-Creation-Date: 2004-11-01 16:24+0100\n" "PO-Revision-Date: 2004-11-05 23:48+0100\n" "Last-Translator: shlomme@gmx.net\n" "Language-Team: German\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../WINGs/connection.c:471 ../../WINGs/connection.c:536 #: ../../WINGs/connection.c:579 msgid "Bad address-service-protocol combination" msgstr "Ungültige Kombination von Adresse und Dienstprotokoll" #: ../../WINGs/error.c:54 #, c-format msgid "Unknown error %d" msgstr "Unbekannter Fehler %d" #: ../../WINGs/error.c:59 #, c-format msgid "Error %d" msgstr "Fehler %d" #: ../../WINGs/error.c:110 msgid " warning: " msgstr " Warnung: " #: ../../WINGs/error.c:137 msgid " fatal error: " msgstr " fataler Fehler: " #: ../../WINGs/error.c:163 ../../WINGs/error.c:192 msgid " error: " msgstr " Fehler: " #: ../../WINGs/findfile.c:48 #, c-format msgid "could not get password entry for UID %i" msgstr "Passworteintrag für UID %i konnte nicht ermittelt werden" #: ../../WINGs/findfile.c:66 #, c-format msgid "could not get password entry for user %s" msgstr "Passworteintrag für Benutzer %s konnte nicht ermittelt werden" #: ../../WINGs/host.c:114 msgid "Cannot get current host name" msgstr "Aktueller Hostname kann nicht ermittelt werden" #: ../../WINGs/proplist.c:91 #, c-format msgid "syntax error in %s %s, line %i: %s" msgstr "Syntaxfehler in %s %s, Zeile %i: %s" #: ../../WINGs/proplist.c:150 msgid "Only string or data is supported for a proplist dictionary key" msgstr "" "Nur Zeichenketten oder Binärdaten werden als Schlüssel für ein PropList-Dictionary " "unterstützt" #: ../../WINGs/proplist.c:184 ../../WINGs/proplist.c:236 #: ../../WINGs/proplist.c:394 ../../WINGs/proplist.c:474 #: ../../WINGs/proplist.c:1075 ../../WINGs/proplist.c:1127 #: ../../WINGs/proplist.c:1293 ../../WINGs/proplist.c:1372 #: ../../WINGs/proplist.c:1493 ../../WINGs/proplist.c:1540 msgid "Used proplist functions on non-WMPropLists objects" msgstr "PropList-Funktionen werden auf nicht-WMPropList-Objekte angewendet" #: ../../WINGs/proplist.c:630 msgid "unterminated PropList string" msgstr "nicht terminierte PropList-Zeichenkette" #: ../../WINGs/proplist.c:670 msgid "unterminated PropList data" msgstr "nicht terminierte PropList-Binärdaten" #: ../../WINGs/proplist.c:678 msgid "unterminated PropList data (missing hexdigit)" msgstr "nicht terminierte PropList-Binärdaten (fehlendes Hex-Zeichen)" #: ../../WINGs/proplist.c:690 ../../WINGs/proplist.c:695 msgid "non hexdigit character in PropList data" msgstr "falsches Hex-Zeichen in PropList-Binärdaten" #: ../../WINGs/proplist.c:729 msgid "unterminated PropList array" msgstr "nicht terminiertes PropList-Array" #: ../../WINGs/proplist.c:737 msgid "missing or unterminated PropList array" msgstr "fehlendes oder nicht terminiertes PropList-Array" #: ../../WINGs/proplist.c:747 msgid "could not get PropList array element" msgstr "PropList-Array-Element konnte nicht gelesen werden" #: ../../WINGs/proplist.c:776 msgid "unterminated PropList dictionary" msgstr "nicht terminiertes PropList-Dictionary" #: ../../WINGs/proplist.c:793 msgid "missing PropList dictionary key" msgstr "fehlender Schlüssel in PropList-Dictionary" #: ../../WINGs/proplist.c:795 msgid "missing PropList dictionary entry key or unterminated dictionary" msgstr "fehlender Schlüssel in PropList-Dictionary oder fehlende Terminierung" #: ../../WINGs/proplist.c:803 msgid "error parsing PropList dictionary key" msgstr "Fehler beim Parsen eines PropList-Dictionary-Schlüssels" #: ../../WINGs/proplist.c:811 msgid "missing = in PropList dictionary entry" msgstr "fehlendes \"=\" in PropList-Dictionary-Schlüssel" #: ../../WINGs/proplist.c:819 msgid "error parsing PropList dictionary entry value" msgstr "Fehler beim Parsen eines PropList-Dictionary-Wertes" #: ../../WINGs/proplist.c:827 msgid "missing ; in PropList dictionary entry" msgstr "fehlendes \";\" in PropList-Dictionary-Eintrag" #: ../../WINGs/proplist.c:888 msgid "" "was expecting a string, data, array or dictionary. If it's a string, try " "enclosing it with \"." msgstr "" "Zeichenkette, Binärdaten, Array oder Dictionary erwartet. Zeichenketten ggf. mit \" " "einklammern." #: ../../WINGs/proplist.c:892 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "Kommentare sind in Domänendaten von WindowMaker nicht erlaubt." #: ../../WINGs/proplist.c:1563 ../../WINGs/proplist.c:1630 msgid "extra data after end of property list" msgstr "zusätzliche Daten hinter dem Ende der Propertyliste" #: ../../WINGs/proplist.c:1606 #, c-format msgid "could not get size for file '%s'" msgstr "Dateigröße von '%s' konnte nicht ermittelt werden" #: ../../WINGs/proplist.c:1619 #, c-format msgid "error reading from file '%s'" msgstr "Fehler beim Lesen der Datei '%s'" #: ../../WINGs/proplist.c:1671 #, c-format msgid "mkstemp (%s) failed" msgstr "mkstemp (%s) fehlgeschlagen" #: ../../WINGs/proplist.c:1682 #, c-format msgid "mktemp (%s) failed" msgstr "mktemp (%s) fehlgeschlagen" #: ../../WINGs/proplist.c:1693 #, c-format msgid "open (%s) failed" msgstr "open (%s) fehlgeschlagen" #: ../../WINGs/proplist.c:1700 #, c-format msgid "writing to file: %s failed" msgstr "Schreiben in Datei: %s fehlgeschlagen" #: ../../WINGs/proplist.c:1708 #, c-format msgid "fclose (%s) failed" msgstr "fclose (%s) fehlgeschlagen" #: ../../WINGs/proplist.c:1717 #, c-format msgid "rename ('%s' to '%s') failed" msgstr "rename ('%s' nach '%s') fehlgeschlagen" #. something happened with the file. just overwrite it #: ../../WINGs/userdefaults.c:188 ../../WINGs/userdefaults.c:204 #, c-format msgid "cannot read domain from file '%s' when syncing" msgstr "Bei der Synchronisation konnte nicht aus der Datei '%s' gelesen werden" #: ../../WINGs/wcolor.c:237 ../../WINGs/wcolor.c:249 ../../WINGs/wcolor.c:288 #: ../../WINGs/wcolor.c:329 #, c-format msgid "could not allocate %s color" msgstr "Farbe %s konnte nicht erzeugt werden" #: ../../WINGs/wcolor.c:237 msgid "white" msgstr "Weiß" #: ../../WINGs/wcolor.c:249 msgid "black" msgstr "Schwarz" #: ../../WINGs/wcolor.c:288 msgid "gray" msgstr "Grau" #: ../../WINGs/wcolor.c:329 msgid "dark gray" msgstr "Dunkelgrau" #: ../../WINGs/wcolorpanel.c:420 msgid "Colors" msgstr "Farben" #: ../../WINGs/wcolorpanel.c:610 ../../WINGs/wcolorpanel.c:2829 msgid "Brightness" msgstr "Helligkeit" #: ../../WINGs/wcolorpanel.c:612 ../../WINGs/wcolorpanel.c:688 #: ../../WINGs/wcolorpanel.c:721 ../../WINGs/wcolorpanel.c:755 #: ../../WINGs/wcolorpanel.c:815 ../../WINGs/wcolorpanel.c:849 #: ../../WINGs/wcolorpanel.c:883 ../../WINGs/wcolorpanel.c:918 #: ../../WINGs/wcolorpanel.c:2169 ../../WINGs/wcolorpanel.c:2831 #: ../../WINGs/wcolorpanel.c:2867 ../../WINGs/wcolorpanel.c:2903 #: ../../WINGs/wcolorpanel.c:3745 msgid "Color Panel: Could not allocate memory" msgstr "Farb-Panel: Speicher konnte nicht reserviert werden" #: ../../WINGs/wcolorpanel.c:685 ../../WINGs/wcolorpanel.c:686 msgid "Red" msgstr "Rot" #: ../../WINGs/wcolorpanel.c:718 ../../WINGs/wcolorpanel.c:719 msgid "Green" msgstr "Grün" #: ../../WINGs/wcolorpanel.c:752 ../../WINGs/wcolorpanel.c:753 msgid "Blue" msgstr "Blau" #: ../../WINGs/wcolorpanel.c:812 ../../WINGs/wcolorpanel.c:813 msgid "Cyan" msgstr "" #: ../../WINGs/wcolorpanel.c:846 ../../WINGs/wcolorpanel.c:847 msgid "Magenta" msgstr "" #: ../../WINGs/wcolorpanel.c:880 ../../WINGs/wcolorpanel.c:881 msgid "Yellow" msgstr "Gelb" #: ../../WINGs/wcolorpanel.c:915 ../../WINGs/wcolorpanel.c:916 msgid "Black" msgstr "Schwarz" #: ../../WINGs/wcolorpanel.c:996 msgid "Spectrum" msgstr "Spektrum" #: ../../WINGs/wcolorpanel.c:1026 msgid "Palette" msgstr "" #: ../../WINGs/wcolorpanel.c:1032 msgid "New from File..." msgstr "Neu aus Datei..." #: ../../WINGs/wcolorpanel.c:1033 ../../WINGs/wcolorpanel.c:1081 #: ../../WINGs/wcolorpanel.c:1098 msgid "Rename..." msgstr "Umbenennen..." #: ../../WINGs/wcolorpanel.c:1034 ../../WINGs/wcolorpanel.c:1082 #: ../../WINGs/wcolorpanel.c:1099 ../../WINGs/wcolorpanel.c:3326 msgid "Remove" msgstr "Entfernen" #: ../../WINGs/wcolorpanel.c:1035 msgid "Copy" msgstr "Kopieren" #: ../../WINGs/wcolorpanel.c:1036 msgid "New from Clipboard" msgstr "Neu aus Zwischenablage" #: ../../WINGs/wcolorpanel.c:1057 msgid "X11-Colors" msgstr "X11-Farben" #: ../../WINGs/wcolorpanel.c:1074 msgid "Color" msgstr "Farbe" #: ../../WINGs/wcolorpanel.c:1080 msgid "Add..." msgstr "Hinzufügen..." #: ../../WINGs/wcolorpanel.c:1090 msgid "List" msgstr "Liste" #: ../../WINGs/wcolorpanel.c:1097 msgid "New..." msgstr "Neu..." #: ../../WINGs/wcolorpanel.c:1236 #, c-format msgid "Color Panel: Could not create directory %s needed to store configurations" msgstr "Farb-Panel: Verzeichnis %s konnte zum Speichern der Konfiguration nicht erzeugt werden" #. Delete the file, it doesn't belong here #: ../../WINGs/wcolorpanel.c:1242 ../../WINGs/wcolorpanel.c:3212 #: ../../WINGs/wcolorpanel.c:3216 msgid "File Error" msgstr "Dateifehler" #: ../../WINGs/wcolorpanel.c:1243 msgid "Could not create ColorPanel configuration directory" msgstr "Konfigurationsverzeichnis für Farb-Panel konnte nicht erzeugt werden" #: ../../WINGs/wcolorpanel.c:1244 ../../WINGs/wcolorpanel.c:3213 #: ../../WINGs/wcolorpanel.c:3218 ../../WINGs/wcolorpanel.c:3245 #: ../../WINGs/wfilepanel.c:250 ../../WINGs/wfilepanel.c:650 #: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763 #: ../../WINGs/wfilepanel.c:974 ../../WINGs/wfontpanel.c:591 msgid "OK" msgstr "" #: ../../WINGs/wcolorpanel.c:1250 ../../WINGs/wcolorpanel.c:1286 #: ../../WINGs/wcolorpanel.c:1304 msgid "Color Panel: Could not find file" msgstr "Farb-Panel: Datei konnte nicht gefunden werden" #: ../../WINGs/wcolorpanel.c:1491 ../../WINGs/wcolorpanel.c:1556 #: ../../WINGs/wcolorpanel.c:1620 msgid "Color Panel: X failed request" msgstr "Farb-Panel: X-Anfrage fehlgeschlagen" #: ../../WINGs/wcolorpanel.c:2865 msgid "Saturation" msgstr "Sättigung" #: ../../WINGs/wcolorpanel.c:2901 msgid "Hue" msgstr "Farbton" #: ../../WINGs/wcolorpanel.c:3151 msgid "Open Palette" msgstr "Palette öffnen" #: ../../WINGs/wcolorpanel.c:3213 msgid "Invalid file format !" msgstr "Ungültiges Dateiformat!" #: ../../WINGs/wcolorpanel.c:3215 #, c-format msgid "can't remove file %s" msgstr "Datei %s konnte nicht entfert werden" #: ../../WINGs/wcolorpanel.c:3217 msgid "Couldn't remove file from Configuration Directory !" msgstr "Datei konnte nicht aus Konfigurationsverzeichnis entfernt werden!" #: ../../WINGs/wcolorpanel.c:3244 msgid "Rename" msgstr "Umbenennen" #: ../../WINGs/wcolorpanel.c:3244 msgid "Rename palette to:" msgstr "Palette umbenennen in:" #: ../../WINGs/wcolorpanel.c:3245 ../../WINGs/wfilepanel.c:259 #: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763 msgid "Cancel" msgstr "Abbrechen" #. Careful, this palette exists already #: ../../WINGs/wcolorpanel.c:3261 ../../WINGs/wfilepanel.c:763 msgid "Warning" msgstr "Warnung" #: ../../WINGs/wcolorpanel.c:3262 msgid "" "Palette already exists !\n" "\n" "Overwrite ?" msgstr "" "Palette existiert bereits!\n" "\n" "Überschreiben?" #: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326 msgid "No" msgstr "Nein" #: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326 msgid "Yes" msgstr "Ja" #: ../../WINGs/wcolorpanel.c:3294 #, c-format msgid "Couldn't rename palette %s to %s\n" msgstr "Palette %s konnte nicht nach %s umbenannt werden\n" #: ../../WINGs/wcolorpanel.c:3320 msgid "This will permanently remove the palette " msgstr "Hiermit wird die Palette unwiderruflich gelöscht " #: ../../WINGs/wcolorpanel.c:3323 msgid "" ".\n" "\n" "Are you sure you want to remove this palette ?" msgstr "" ".\n" "\n" "Sind Sie sicher, dass Sie die Palette löschen wollen?" #: ../../WINGs/wcolorpanel.c:3348 #, c-format msgid "Couldn't remove palette %s\n" msgstr "Palette %s konnte nicht gelöscht werden\n" #: ../../WINGs/wcolorpanel.c:3647 #, c-format msgid "Could not open %s" msgstr "%s konnte nicht geöffnet werden" #: ../../WINGs/wcolorpanel.c:3654 #, c-format msgid "Could not create %s" msgstr "%s konnte nicht erzeugt werden" #: ../../WINGs/wcolorpanel.c:3665 #, c-format msgid "Write error on file %s" msgstr "Schreibfehler bei Datei %s" #: ../../WINGs/wcolorpanel.c:3710 msgid "Color Panel: Color unspecified" msgstr "Farb-Panel: Farbe nicht spezifiziert" #: ../../WINGs/wfilepanel.c:235 msgid "Name:" msgstr "Name:" #: ../../WINGs/wfilepanel.c:332 ../../WINGs/wfilepanel.c:396 msgid "Open" msgstr "Öffnen" #: ../../WINGs/wfilepanel.c:350 ../../WINGs/wfilepanel.c:402 msgid "Save" msgstr "Speichern" #: ../../WINGs/wfilepanel.c:565 #, c-format msgid "WINGs: could not open directory %s\n" msgstr "WINGs: Verzeichnis %s konnte nicht geöffnet werden\n" #: ../../WINGs/wfilepanel.c:583 #, c-format msgid "WINGs: could not stat %s\n" msgstr "WINGs: Dateistatus von %s unbestimmbar\n" #: ../../WINGs/wfilepanel.c:650 ../../WINGs/wfilepanel.c:973 #: ../../WINGs/wfontpanel.c:590 msgid "Error" msgstr "Fehler" #: ../../WINGs/wfilepanel.c:661 msgid "Create Directory" msgstr "Verzeichnis anlegen" #: ../../WINGs/wfilepanel.c:662 msgid "Enter directory name" msgstr "Verzeichnisname eingeben" #: ../../WINGs/wfilepanel.c:698 ../../WINGs/wfilepanel.c:737 #: ../../WINGs/wfilepanel.c:768 ../../WINGs/wfilepanel.c:796 msgid "Permission denied." msgstr "Zugriff verweigert." #: ../../WINGs/wfilepanel.c:701 #, c-format msgid "'%s' already exists." msgstr "'%s' existiert bereits." #: ../../WINGs/wfilepanel.c:704 msgid "Path does not exist." msgstr "Pfad existiert nicht." #: ../../WINGs/wfilepanel.c:734 ../../WINGs/wfilepanel.c:793 #, c-format msgid "'%s' does not exist." msgstr "'%s' existiert nicht." #: ../../WINGs/wfilepanel.c:741 ../../WINGs/wfilepanel.c:800 msgid "Insufficient memory available." msgstr "Nicht genügend Speicher verfügbar." #: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:804 #, c-format msgid "'%s' is on a read-only filesystem." msgstr "'%s' liegt auf einem nur lesbaren Dateisystem." #: ../../WINGs/wfilepanel.c:748 ../../WINGs/wfilepanel.c:780 #: ../../WINGs/wfilepanel.c:807 #, c-format msgid "Can not delete '%s'." msgstr "Kann %s nicht löschen." #: ../../WINGs/wfilepanel.c:755 #, c-format msgid "Delete directory %s ?" msgstr "Verzeichnis %s löschen?" #: ../../WINGs/wfilepanel.c:759 #, c-format msgid "Delete file %s ?" msgstr "Datei %s löschen?" #: ../../WINGs/wfilepanel.c:771 #, c-format msgid "Directory '%s' does not exist." msgstr "Verzeichnis '%s' existiert nicht." #: ../../WINGs/wfilepanel.c:774 #, c-format msgid "Directory '%s' is not empty." msgstr "Verzeichnis '%s' ist nicht leer." #: ../../WINGs/wfilepanel.c:777 #, c-format msgid "Directory '%s' is busy." msgstr "Verzeichnis '%s' wird benutz." #: ../../WINGs/wfilepanel.c:790 #, c-format msgid "'%s' is a directory." msgstr "'%s' ist ein Verzeichnis." #: ../../WINGs/wfilepanel.c:832 #, c-format msgid "An error occured browsing '%s'." msgstr "Fehler beim Lesen von '%s'." #: ../../WINGs/wfilepanel.c:836 #, c-format msgid "'%s' is not a directory." msgstr "'%s' ist kein Verzeichnis." #: ../../WINGs/wfilepanel.c:973 msgid "File does not exist." msgstr "Datei existiert nicht." #: ../../WINGs/wfont.c:40 #, c-format msgid "invalid font: %s. Trying '%s'" msgstr "Ungültige Schriftart: %s. Wird ersetzt durch %s." #: ../../WINGs/wfont.c:257 ../../WINGs/wfont.c:277 #, c-format msgid "could not load font: %s." msgstr "Schriftart konnte nicht geladen werden: %s" #. WMSetWidgetBackgroundColor(panel->win, WMWhiteColor(scr)); #: ../../WINGs/wfontpanel.c:203 msgid "Font Panel" msgstr "Schrift-Panel" #: ../../WINGs/wfontpanel.c:239 msgid "The quick brown fox jumps over the lazy dog" msgstr "" #: ../../WINGs/wfontpanel.c:245 msgid "Family" msgstr "Familie" #: ../../WINGs/wfontpanel.c:256 msgid "Typeface" msgstr "Schriftart" #: ../../WINGs/wfontpanel.c:267 msgid "Size" msgstr "Größe" #: ../../WINGs/wfontpanel.c:286 msgid "Set" msgstr "Setzen" #: ../../WINGs/wfontpanel.c:292 msgid "Revert" msgstr "Zurücksetzen" #: ../../WINGs/wfontpanel.c:591 msgid "Could not init font config library\n" msgstr "\"font-config\"-Bibliothek konnte nicht initialisiert werden\n" #: ../../WINGs/widgets.c:419 #, c-format msgid "WINGs: could not load widget images file: %s" msgstr "WINGs: Widget-Bilderdatei konnte nicht geladen werden: %s" #: ../../WINGs/widgets.c:767 msgid "" "could not load any fonts. Make sure your font installation and locale " "settings are correct." msgstr "" "Keine Schrifen konnten geladen werden. Überprüfen Sie, ob Ihre Schrifteninstallation und -" "Lokalisierungseinstellungen korrekt sind." #: ../../WINGs/wruler.c:192 msgid "0 inches" msgstr "0 Inch" WindowMaker-0.95.5/WINGs/Tests/0000755000175000017500000000000012214434624013075 500000000000000WindowMaker-0.95.5/WINGs/Tests/wm.png0000644000175000017500000001117412214432632014147 00000000000000GIF89aÈ>ç–ƒHˆ ×Ås‰D-IC1É„OÌF8Ȥ[Hùã‰c;ÉgcTèÅzè¤d%$%F%èÔ~iE-è„M©c=g,)é´qÆ"$Èd=04B©E4·¤[cT2É”Uýõ«‡$!G4*úÔ‚úÄvãoG¨ƒIȵf) ˆtCø´iˆS6æ”VZR26%èäää¨tFX4(ÆtETD5ø¤^ç&#úìŸ÷Ô¤§“OׄNwT6©xD,8þÿ H° Áƒ*\Ȱ¡Ã‡#JœH±¢Å‹3jÜȱ£Ç CŠI²¤É“(Sª\ɲ¥Ë—0cÊtØÃ€›8œ³Sg¦ÏŸëÉI4ç9=*]ê°Î¹¢P‰ÚaJµ*Á7ÏiÝÊU+ÔsI­Š©A§Ö hƒØYËvmÚ§DÃŽ»BV´k!èÝ+e/¶^sö K¥]xíè•"Eƒc)d3Ök'\œƒ kYG'^Œ“=ºéÇŠ…µiã­uë¾}õÊÝL[b9ÏŠAk¤@å€ûîaBG—ö½XÎ|_ÜÚÐ%žU̘ qßå ”Ëî{8›µ”þ¿ Gù :9ËE_ßPŠNê»oçÎ¥N:óMm œ¼ÿ6Ý4{ähÖõà[ rÁEr1_9d eËx䥡aå]‚Ó€h×N¢ a}u8x_ŠÛù¶_†jè_-†h£@ïA`v)ž˜¢ƒõ­ˆÝSæÐ£¡,H¦!‹ŒÎâµApŽZu$X¦øãv7¹!’Irø‚]OB¹ÙY É!?bé ƒ·॒`nH^>NšI bv4Ö~n:èH @Ð¥‘t†É!=Ε©'aS"Xƒ j)›[j$˜a’÷BžF·Gè©YjcŒå5ª¨þ}’1–ƒÖêÈ Y>x“-å!j§§®¾J›P±&A)µ¾‰ë­ÎäMüaøßxûT €z®T‡R8ºS}ç,¸&Qڤƞyž.·Ï%b›mJ=|`Cf+…‚–œª©Æš7ùäC‡5eÜsOrâ™÷Bµ—Üê¼y[D°AEA@f*²¸V@À«±ö‡Á'¬0¼ Cñ=eLÌ…ûÚ6UŽ„Äƒ%ˆ½¹YO c´j­ýq²ÁÖ ¬ðÊ,?]FÌ ÔÃ!Od-¯CLP•RLTN·ßnÇsD ðE·´rQÖÈG—ìÒŒðÔOK]†þ5èÍÖƒ^ÔÃY¤3T=j„@•.Dl-Ü\qćoCu8QAœˆåÛq¯–4ÝtØÝôÔ¬OÝ´72—ÇTXÞÃzd‘G)Œ 9×}TÀT&xÄÙ •óü~~åÔÂGÍ‘1…_ô«Û_!ŒFÏЂé§ÌtÓè§þÇ6…UÀ<1BAü3íy4±Í 4ŒR˜; B¾ „kPŠ[éd‚¨a7`„ „$hÀ _è‚ ¶‡b uˆº@ŒßiàŒÔ€âªg‚;@8ŽèÁ’>ðE„TÃËèXx¦-ØakäÀX1, Cd€P¡ '| °Œæ‡$8¦cM pƒ/´¡`¨,Xà0…(ïupE,ú ‚(¨A>Àåð á>ÐÃ.rЊ7ÜbØÅ6ºË ä Ä0BÐ`€U0Åè–%Ü,?¸ ça„ u¼#qÒð{Uî õ’ 4œž4À fþ€#l h`RÞê2š†sH¡\`D€€HI“g0Z |ŒÐb5Õ0D ‚3(í£ùøÃ ‹V€åIxÂ-T0 ”Ã0ÔÀ ;h@#È În¬‚°XE@*0[dÂ:Tð€>(É&¦ÊM^|±@˜J.Ð €!l‘‚.î`Ó À6ÐÂYmÀäù!„f¸ã?ñc° [IÁ‚ ø BL:ªdÐÂ0 „3ŒÆ ZpÀ MÊÂ``CÕpHȬ„ñѹ­r·xŵ®ö„ ´48¸Ä%T àÂT(þN ŽMxⶸõÄ"– ‡¶¶`+`ã6p<ž‘¡ ëÀÃ(ÈQdàx-ÈÀ(^ÑüÀ`PÅæ$âJIðà„xÇ+ÞÜz“*€½æÙÚ¹@ Ÿà‰ÙþÑÎú¢õæì.~ ŠPø×¿â‡$$±…-øÃ˜À‚¢ñ…jHAÉ ø:€Y( ³ðùŒáƒ D Ð7žðÐG€i vÁ\¤CTÐÃ*‚°¸à¶.`:´ NàXšÇîºÀŒÈQ>åÁ:€p‚±õa£ƒ °M 8 ü˜#B)ƒ¼ã 6"1ŽI˜÷¶þh§þÌ`Ó Ö®çÈæê«äb x'¥zÿ†b‹øo€%ñ{LÂ.à‡…£±/b¨F@»ˆàÂ>PEÉÚp°áA”Âì 0¹º—…°nG@ð E0ľz áz0Ü5œQMÄaÄØF pbààbìàq¾1†wp"Ç›XÂF!†lb ÐD©¶œJQ“…l -èã0a¹åÅžh€½tÁ‚spKŽ…¤ JEûÌ€£…Ò 'BH"À¡Hºµ´@¨pEì0š/X8ðqn70F'ãH¸ðþ¾ /øà 0h)¤0ÖŽa„³Ë{[V纑OÐ…k\c )àÅ7ˆÓ b4aí‚<Â1f@:ƒ–„]°ƒA<Ð8C¾PŠtÜØÆšc—)•w.Ï ,x¹c4ð…ðÁê]^3¾‰N4¡¸ ((´ê 3èX2iƒ Œãï PÀ´N¡8!¢ÑïùÁdP† 0ƒjœ@gŽGaor¨ æp€Ž ƒ8ܤ#8ÂŒ¹„D,‚Ð4¿-F°#ß}[ÊèÂ6~ *lã ÜÊpÑ CHƒéÇŸý HB ?àic þ1 h¨“ßă'³¦È¥ìídÚ)è˜àÄ=ý¹¨w&j|cjà í´ŽÛïøÐHá‹à œðÏ€gÀZ`D7NÀyŽp4(€"°_àg @¡€[.d›À ¦X  ¸Ô ð'p Àc‹ ‰ ·7s·U µ6]ÐŽÿ`k9Ð ¸pGT  v F_€ 9€|¥Rgz b@½ðr0ÇbÀ„ÄPcWdÐN øwoUíf/Ð_po¡ ¯ €mšð Ë£w'`ýðuž % |À &g¾Àþ8ñ" õ=3@: Ñ0ü` ð@6™¥YŸ¦ éÑ÷g‰ 2 „ • 2?¤2Wÿ4 «@M }Иó F@lIÑ)°ì€ üðOìW*@íPñ6nû²v“ÂA TW®vÜROpqæ! !Ä' ó¥bq8BË“Ÿàh…Oad ^@!€ … ‹eÂPÆzgP —g –`«€1ð‰"rà‘uþµ‰ƒÚ°0;8)ß@¯Ð~=)»@A!Ð@À‹°° °€þ9= PåWU°…¤T0M¨Î‹Üf=B^à~Â@Á± z§vÛVòtW|Wi…±ÈRRÀ<c/Z 6àN€ CÑ bi%(¨À -õ=fpa0€>—wyC™5*ð 0p …½Ð~b6{¶mÿðþórÙøJ@9ÐhÀjÐ ½Pk@ИS3T- ¹FYl@Œàk7G1Vi×M( IÐ^QI¹`ÝÒoV©(•2DNp…V (Ð S€Ch ¸ä¨` À$þw4¸ ®Ð`Gó=X1 Y r8,•˜¶©˜ÑІ‘ÙE¥·P B©   ¯pÒY°€ gSb RX˜½ ? Ž@ßÀw°ùvÀ}ò‘‚9Œñ‘i3àŸýÖ˜½Ùfõ4@¡Fh ^€• 0‘D¸ ܰ®`—v€F“±ð A—\p91À @g€-@A‘‰FÈS<À‡g°»¸ °ËØ‹‡´•u‘ X¸U@m``Åõ gÅù˜£¡O‚Ø5!“gw0·¤1ŽÄÁm6ehÀø˜9ãþ7Q¤„ºÀ—! ù7¢e“˜9ü0©Ý¡µ Ku@ŒDAg°òQOiʃ Ѧ²ØmÿYøñ¡A›kJì§9÷ö—šªkW«[ K!ªÁ ´¶”D§UsbŒ K¯ª¦sõ™I=É*¬¥²v[)œ¡¦C)»zª‘J’ÕÚo0÷‘ØJ¬Ûj¡ñªeB«¥Ê«xª©ªª°”Îz†È3Ëú­µ™ª]Vг5ëê¨Lj6jê¯]È”ÿ*‘°è*­LY”ϯh¤¦ýÖÔ©óõ«Ë3pR¯! a a èZ¶P!;®‘: »«u ±(ë({þ²l²!û- â²"á±±a³ QQŽ ¡²Q ÞÀ±!´ ‘a´ ! u´b´+´÷PÞ°±8›³t²á´[;_+©³´J;ûP:k—À³!´l{û¶´ÿÀ´qµK›¶ÿ ·á´H µ¡·´EKt€·´Kf;e` L+  lk ²w¶Ae€´Y+²¹rû¸ q i ³Lû;û[¶ˆk4q “Ke¶¶°µtKùÀ³Bû·ÿ º›K»rAº¸a ²@¡Û¸›k ù0k›¶Hâ¸S¸tVл ™³ok Hb´¹[«²Hk·Ae ¹`븶ð¶tp Òû¹Â`0 á±S+[¶¬‹´t€¿ÿ LKè+äK1<¸|ÀœÀ ¼À ÜÀµ;WindowMaker-0.95.5/WINGs/Tests/Makefile.in0000644000175000017500000004324012214434561015065 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = wtest$(EXEEXT) wmquery$(EXEEXT) wmfile$(EXEEXT) \ testmywidget$(EXEEXT) subdir = WINGs/Tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_testmywidget_OBJECTS = testmywidget.$(OBJEXT) mywidget.$(OBJEXT) testmywidget_OBJECTS = $(am_testmywidget_OBJECTS) testmywidget_LDADD = $(LDADD) testmywidget_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent wmfile_SOURCES = wmfile.c wmfile_OBJECTS = wmfile.$(OBJEXT) wmfile_LDADD = $(LDADD) wmfile_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la wmquery_SOURCES = wmquery.c wmquery_OBJECTS = wmquery.$(OBJEXT) wmquery_LDADD = $(LDADD) wmquery_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la wtest_SOURCES = wtest.c wtest_OBJECTS = wtest.$(OBJEXT) wtest_LDADD = $(LDADD) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(testmywidget_SOURCES) wmfile.c wmquery.c wtest.c DIST_SOURCES = $(testmywidget_SOURCES) wmfile.c wmquery.c wtest.c ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ AUTOMAKE_OPTIONS = LDADD = $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la \ @XFTLIBS@ @INTLIBS@ testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h wtest_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la EXTRA_DIST = logo.xpm upbtn.xpm wm.html wm.png AM_CPPFLAGS = -I$(top_srcdir)/WINGs -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \ -DRESOURCE_PATH=\"$(datadir)/WINGs\" @XFTFLAGS@ @HEADER_SEARCH_PATH@ all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/Tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WINGs/Tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list testmywidget$(EXEEXT): $(testmywidget_OBJECTS) $(testmywidget_DEPENDENCIES) @rm -f testmywidget$(EXEEXT) $(AM_V_CCLD)$(LINK) $(testmywidget_OBJECTS) $(testmywidget_LDADD) $(LIBS) wmfile$(EXEEXT): $(wmfile_OBJECTS) $(wmfile_DEPENDENCIES) @rm -f wmfile$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wmfile_OBJECTS) $(wmfile_LDADD) $(LIBS) wmquery$(EXEEXT): $(wmquery_OBJECTS) $(wmquery_DEPENDENCIES) @rm -f wmquery$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wmquery_OBJECTS) $(wmquery_LDADD) $(LIBS) wtest$(EXEEXT): $(wtest_OBJECTS) $(wtest_DEPENDENCIES) @rm -f wtest$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wtest_OBJECTS) $(wtest_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mywidget.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testmywidget.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmfile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmquery.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wtest.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # 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. .NOEXPORT: WindowMaker-0.95.5/WINGs/Tests/mywidget.c0000644000175000017500000000740512214432632015015 00000000000000/* * Demo user widget for WINGs * * Author: Alfredo K. Kojima * * This file is in the public domain. * */ /* * * Include the WINGs private data header. * * */ #include /* * Our public header. */ #include "mywidget.h" /* * Define the widget "class" */ typedef struct W_MyWidget { /* these two fields must be present in all your widgets in this * exact position */ W_Class widgetClass; WMView *view; /* put your stuff here */ char *text; } _MyWidget; /* some forward declarations */ static void destroyMyWidget(_MyWidget * mPtr); static void paintMyWidget(_MyWidget * mPtr); static void handleEvents(XEvent * event, void *data); static void handleActionEvents(XEvent * event, void *data); /* * Delegates * See the source for the other widgets to see how to use. * You won't need to use this most of the time. */ static W_ViewDelegate _MyWidgetDelegate = { NULL, NULL, NULL, NULL, NULL }; /* our widget class ID */ static W_Class myWidgetClass = 0; /* * Initializer for our widget. Must be called before creating any * instances of the widget. */ W_Class InitMyWidget(WMScreen * scr) { /* register our widget with WINGs and get our widget class ID */ if (!myWidgetClass) { myWidgetClass = W_RegisterUserWidget(); } return myWidgetClass; } /* * Our widget fabrication plant. */ MyWidget *CreateMyWidget(WMWidget * parent) { MyWidget *mPtr; /* allocate some storage for our new widget instance */ mPtr = wmalloc(sizeof(MyWidget)); /* initialize it */ memset(mPtr, 0, sizeof(MyWidget)); /* set the class ID */ mPtr->widgetClass = myWidgetClass; /* * Create the view for our widget. * Note: the Window for the view is only created after the view is * realized with W_RealizeView() * * Consider the returned view as read-only. */ mPtr->view = W_CreateView(W_VIEW(parent)); if (!mPtr->view) { wfree(mPtr); return NULL; } /* always do this */ mPtr->view->self = mPtr; /* setup the delegates for the view */ mPtr->view->delegate = &_MyWidgetDelegate; /* * Intercept some events for our widget, so that we can handle them. */ WMCreateEventHandler(mPtr->view, ExposureMask /* this allows us to know when we should paint */ | StructureNotifyMask, /* this allows us to know things like when we are destroyed */ handleEvents, mPtr); /* * Intercept some other events. This could be merged with the above * call, but we separate for more organization. */ WMCreateEventHandler(mPtr->view, ButtonPressMask, handleActionEvents, mPtr); return mPtr; } /* * Paint our widget contents. */ static void paintMyWidget(_MyWidget * mPtr) { W_Screen *scr = mPtr->view->screen; WMColor *color; if (mPtr->text) { color = WMWhiteColor(scr); W_PaintText(mPtr->view, mPtr->view->window, scr->normalFont, 0, 0, mPtr->view->size.width, WACenter, color, False, mPtr->text, strlen(mPtr->text)); WMReleaseColor(color); } } static void handleEvents(XEvent * event, void *data) { _MyWidget *mPtr = (_MyWidget *) data; switch (event->type) { case Expose: if (event->xexpose.count != 0) break; paintMyWidget(mPtr); break; case DestroyNotify: destroyMyWidget(mPtr); break; } } static void handleActionEvents(XEvent * event, void *data) { _MyWidget *mPtr = (_MyWidget *) data; switch (event->type) { case ButtonPress: XBell(mPtr->view->screen->display, 100); XBell(mPtr->view->screen->display, 100); break; } } void SetMyWidgetText(MyWidget * mPtr, char *text) { CHECK_CLASS(mPtr, myWidgetClass); if (mPtr->text) wfree(mPtr->text); mPtr->text = wstrdup(text); if (W_VIEW_MAPPED(mPtr->view)) { paintMyWidget(mPtr); } } static void destroyMyWidget(_MyWidget * mPtr) { /* * Free all data we allocated for our widget. */ if (mPtr->text) wfree(mPtr->text); wfree(mPtr); } WindowMaker-0.95.5/WINGs/Tests/testmywidget.c0000644000175000017500000000132312214432632015706 00000000000000 #include #include #include "mywidget.h" void wAbort() { exit(1); } int main(int argc, char **argv) { Display *dpy = XOpenDisplay(""); WMScreen *scr; WMWindow *win; MyWidget *thing; WMInitializeApplication("Test", &argc, argv); if (!dpy) { wfatal("could not open display"); exit(1); } scr = WMCreateSimpleApplicationScreen(dpy); /* init our widget */ InitMyWidget(scr); win = WMCreateWindow(scr, "test"); WMResizeWidget(win, 150, 50); thing = CreateMyWidget(win); SetMyWidgetText(thing, "The Test"); WMResizeWidget(thing, 100, 20); WMMoveWidget(thing, 10, 10); WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); WMScreenMainLoop(scr); return 0; } WindowMaker-0.95.5/WINGs/Tests/mywidget.h0000644000175000017500000000032312214432632015012 00000000000000 /* * Header for demo widget. * */ typedef struct W_MyWidget MyWidget; MyWidget *CreateMyWidget(WMWidget *parent); void SetMyWidgetText(MyWidget *mPtr, char *text); W_Class InitMyWidget(WMScreen *scr); WindowMaker-0.95.5/WINGs/Tests/Makefile.am0000644000175000017500000000107412214432632015050 00000000000000## automake input file for WINGs - Tests AUTOMAKE_OPTIONS = noinst_PROGRAMS = wtest wmquery wmfile testmywidget LDADD= $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la \ @XFTLIBS@ @INTLIBS@ testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h wtest_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la EXTRA_DIST = logo.xpm upbtn.xpm wm.html wm.png AM_CPPFLAGS = -I$(top_srcdir)/WINGs -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \ -DRESOURCE_PATH=\"$(datadir)/WINGs\" @XFTFLAGS@ @HEADER_SEARCH_PATH@ WindowMaker-0.95.5/WINGs/Tests/.deps/0000755000175000017500000000000012214434624014106 500000000000000WindowMaker-0.95.5/WINGs/Tests/.deps/wtest.Po0000644000175000017500000000001012214434624015463 00000000000000# dummy WindowMaker-0.95.5/WINGs/Tests/.deps/mywidget.Po0000644000175000017500000000001012214434624016146 00000000000000# dummy WindowMaker-0.95.5/WINGs/Tests/.deps/testmywidget.Po0000644000175000017500000000001012214434624017046 00000000000000# dummy WindowMaker-0.95.5/WINGs/Tests/.deps/wmfile.Po0000644000175000017500000000001012214434624015600 00000000000000# dummy WindowMaker-0.95.5/WINGs/Tests/.deps/wmquery.Po0000644000175000017500000000001012214434624016026 00000000000000# dummy WindowMaker-0.95.5/WINGs/Tests/wmfile.c0000644000175000017500000000437512214432632014452 00000000000000/* * Author: Len Trigg */ /* Update: Franck Wolff ----------------------------------------------------------------------- List of updated functions : - main : add -s option for a save panel... ----------------------------------------------------------------------- */ #include #include #include #include #include "logo.xpm" void wAbort() { exit(1); } char *ProgName; void usage(void) { fprintf(stderr, "usage:\n" "\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" "information:\n" "\t%s pops up a WindowMaker style file selection panel.\n" "\n" "version:\n" "\t%s\n", ProgName, ProgName, __DATE__); 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 *oPanel; WMSavePanel *sPanel; /* RImage *image; */ char *title = NULL; char *initial = "/"; int ch; int panelType = OPEN_PANEL_TYPE; extern char *optarg; extern int optind; if (!dpy) { puts("could not open display"); exit(1); } WMInitializeApplication("WMFile", &argc, argv); ProgName = argv[0]; while ((ch = getopt(argc, argv, "si:ht:")) != -1) switch (ch) { case 's': panelType = SAVE_PANEL_TYPE; break; case 'i': initial = optarg; break; case 't': title = optarg; break; default: usage(); } for (; optind < argc; optind++) usage(); scr = WMCreateSimpleApplicationScreen(dpy); pixmap = WMCreatePixmapFromXPMData(scr, GNUSTEP_XPM); WMSetApplicationIconPixmap(scr, pixmap); WMReleasePixmap(pixmap); if (panelType == SAVE_PANEL_TYPE) { sPanel = WMGetSavePanel(scr); if (WMRunModalFilePanelForDirectory(sPanel, NULL, initial, /*title */ NULL, NULL) == True) printf("%s\n", WMGetFilePanelFileName(sPanel)); else printf("\n"); } else { oPanel = WMGetOpenPanel(scr); if (WMRunModalFilePanelForDirectory(oPanel, NULL, initial, /*title */ NULL, NULL) == True) printf("%s\n", WMGetFilePanelFileName(oPanel)); else printf("\n"); } return 0; } WindowMaker-0.95.5/WINGs/Tests/logo.xpm0000644000175000017500000000456412214432632014511 00000000000000/* XPM */ static char * GNUSTEP_XPM[] = { "45 45 8 1", " c None", ". c #666666666666", "X c #777777777777", "o c #596559656185", "O c #000000000000", "+ c #3CF33CF33CF3", "@ c #CF3CCF3CCF3C", "# c #FFFFFFFFFFFF", " ", " .Xooooooooo. ", " ..ooOOOOOOOOOOOOOo. ", " .XoOOOOOOOOOOOOOOOOOO+ ", " .oOOOOOOOOOOOOOOOOOOOOOO+ ", " XOOOOOOOOOOOOOOOOOOOOOOOOOOo ", " oOOOOOOOOOOOOOOOOOOOOOOOOOOOO+ ", " oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+ooooooo", " +OOOOOOOOOOOOOOOOOOOOOOOOoXXXXX.XOOOOOOO", " XOOOOOOOOOOOOOOOOOOOOOOOOOX#######.OOOOOO", " XOOOOOOOOOOOOOOOOOOOOOOOOOOX########oOOOOO", " OOOOOOOOOOOOOOOOOOOOOOOOOOOX#########oOOOO", " oOOOOOOOOOOOOOOOOOOOOOOOOOOOX#########@OOOO", " OOOOOOOOOOOOOOOOOOOOOOOOOOOOX##########oOOO", " oOOOOOOOOOOOOOOOOOOOOOOOOOOOOX##########@OOO", " OOOOOOOOOOOOOOOOOOOOOOOOOOOOOX###########+OO", " OOOOOOOOOOOOOOOOOOOOOOOOOOOOOX###########oOO", "oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX###########@OO", "+OOOOOOOOOOOOOOOOOOOOOOOOOOOOOX###########@OO", "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX############XO", "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX############XO", "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX############XO", "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX############XO", "OOOOOOOOOOOOOOOoX.X.X.X.XX.XXX@############XO", "OOOOOOOOOOOOOOOX###########################XO", "OOOOOOOOOOOOOOOX###########################XO", "OOOOOOOOOOOOOOOX###########################XO", "+OOOOOOOOOOOOOOX###########################OO", "oOOOOOOOOOOOOOOX###########################OO", " OOOOOOOOOOOOOOX##########################XOO", " OOOOOOOOOOOOOOX##########################oOO", " oOOOOOOOOOOOOOX#########################@OOO", " OOOOOOOOOOOOOX#########################+OOO", " oOOOOOOOOOOOOX########################@OOOO", " OOOOOOOOOOOOX########################oOOOO", " OOOOOOOOOOOX#######################oOOOOO", " OOOOOOOOOOX######################XOOOOOO", "OOOOOOOXXXXXXXX@#####################@OOOOOOO", "OOOOOOOo############################@OOOOOOOO", "OOOOOOOOO@#########################oOOOOOOOOO", "OOOOOOOOOOX######################@oOOOOOOOOOO", "OOOOOOOOOOOOX###################XOOOOOOOOOOOO", "OOOOOOOOOOOOOOX@#############@XOOOOOOOOOOOOOO", "OOOOOOOOOOOOOOOOOXXX#####XXXOOOOOOOOOOOOOOOOO", "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"}; WindowMaker-0.95.5/WINGs/Tests/wmquery.c0000644000175000017500000000305212214432632014667 00000000000000 /* * Author: Len Trigg */ #include #include #include #include #include "logo.xpm" void wAbort() { exit(1); } char *ProgName; void usage(void) { fprintf(stderr, "usage:\n" "\t%s [-options]\n" "\n" "options:\n" " -i \tInitial entry contents (default none)\n" " -p \tPrompt message (default none)\n" " -t \tQuery window title (default none)\n" "\n" "information:\n" "\t%s pops up a WindowMaker style input panel.\n" "\n" "version:\n" "\t%s\n", ProgName, ProgName, __DATE__); exit(0); } int main(int argc, char **argv) { Display *dpy = XOpenDisplay(""); WMScreen *scr; WMPixmap *pixmap; char *title = NULL; char *prompt = NULL; char *initial = NULL; char *result = NULL; int ch; extern char *optarg; extern int optind; WMInitializeApplication("WMQuery", &argc, argv); ProgName = argv[0]; if (!dpy) { puts("could not open display"); exit(1); } while ((ch = getopt(argc, argv, "i:hp:t:")) != -1) switch (ch) { case 'i': initial = optarg; break; case 'p': prompt = optarg; break; case 't': title = optarg; break; default: usage(); } for (; optind < argc; optind++) usage(); scr = WMCreateSimpleApplicationScreen(dpy); pixmap = WMCreatePixmapFromXPMData(scr, GNUSTEP_XPM); WMSetApplicationIconPixmap(scr, pixmap); WMReleasePixmap(pixmap); if ((result = WMRunInputPanel(scr, NULL, title, prompt, initial, "OK", "Cancel")) != NULL) printf("%s\n", result); else printf("\n"); return 0; } WindowMaker-0.95.5/WINGs/Tests/wm.html0000644000175000017500000000364212214432632014330 00000000000000

GNU Window Maker
X11 Window Manager

http://windowmaker.info
ftp.windowmaker.info

Window Maker is the GNU window manager for the X Window System. It was designed to emulate the look and feel of part of the NEXTSTEP(tm) GUI. Its supposed to be relatively fast and small, feature rich, easy to configure and easy to use, with a simple and elegant appearance borrowed from NEXTSTEP(tm).

Window Maker was designed keeping integration with GNUstep in mind and is the "official" window manager for it. It is also part of the GNU project (www.gnu.org)

What is GNUstep?

GNUstep is a complete object-oriented development system, based on the OpenStep specification released by NeXT(tm) (now Apple(tm)) and Sun(tm). It will provide everything one needs to produce cross-platform, object-oriented, graphical (and non-graphical) applications; providing among other things, base system libraries, a high-level GUI application framework that uses a Display PostScript(tm)-like imaging model (DGS), objects for accessing relational databases, distributed objects and a graphical development environment, with tools like interface modeller, a project management system (project center) and other tools.

The GNUstep development system will be used to create a user environment, with everything needed for a complete graphical user interface, such as a file viewer, text editors and other applications. Note that the user environment (or "desktop environment") is only a small part of the whole GNUstep project and therefore it does not "compete" with other projects like KDE or GNOME, simply because they are completely different things.

For more information on the GNUstep project, visit: http://www.gnustep.org and http://gnustep.current.nu WindowMaker-0.95.5/WINGs/Tests/Makefile0000644000175000017500000004205612214434623014463 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # WINGs/Tests/Makefile. Generated from Makefile.in by configure. # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. pkgdatadir = $(datadir)/WindowMaker pkgincludedir = $(includedir)/WindowMaker pkglibdir = $(libdir)/WindowMaker pkglibexecdir = $(libexecdir)/WindowMaker am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = i686-pc-linux-gnu host_triplet = i686-pc-linux-gnu noinst_PROGRAMS = wtest$(EXEEXT) wmquery$(EXEEXT) wmfile$(EXEEXT) \ testmywidget$(EXEEXT) subdir = WINGs/Tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_testmywidget_OBJECTS = testmywidget.$(OBJEXT) mywidget.$(OBJEXT) testmywidget_OBJECTS = $(am_testmywidget_OBJECTS) testmywidget_LDADD = $(LDADD) testmywidget_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent wmfile_SOURCES = wmfile.c wmfile_OBJECTS = wmfile.$(OBJEXT) wmfile_LDADD = $(LDADD) wmfile_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la wmquery_SOURCES = wmquery.c wmquery_OBJECTS = wmquery.$(OBJEXT) wmquery_LDADD = $(LDADD) wmquery_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la wtest_SOURCES = wtest.c wtest_OBJECTS = wtest.$(OBJEXT) wtest_LDADD = $(LDADD) DEFAULT_INCLUDES = -I. -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(testmywidget_SOURCES) wmfile.c wmquery.c wtest.c DIST_SOURCES = $(testmywidget_SOURCES) wmfile.c wmquery.c wtest.c ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = ${SHELL} /home/jaqque/wmaker/missing --run aclocal-1.11 AMTAR = ${SHELL} /home/jaqque/wmaker/missing --run tar AM_DEFAULT_VERBOSITY = 1 AR = ar AUTOCONF = ${SHELL} /home/jaqque/wmaker/missing --run autoconf AUTOHEADER = ${SHELL} /home/jaqque/wmaker/missing --run autoheader AUTOMAKE = ${SHELL} /home/jaqque/wmaker/missing --run automake-1.11 AWK = mawk CC = gcc CCDEPMODE = depmode=gcc3 CFLAGS = -g -O2 -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-deprecated -Wno-deprecated-declarations CPP = gcc -E CPPFLAGS = -D_XOPEN_SOURCE=600 CYGPATH_W = echo DEFS = -DHAVE_CONFIG_H DEPDIR = .deps DSYMUTIL = DUMPBIN = ECHO_C = ECHO_N = -n ECHO_T = EGREP = /bin/grep -E EXEEXT = FCLIBS = -lfontconfig FGREP = /bin/grep -F GFXLIBS = GREP = /bin/grep HEADER_SEARCH_PATH = -I${includedir} ICONEXT = xpm INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} INSTALL_STRIP_PROGRAM = $(install_sh) -c -s INTLIBS = LD = /usr/bin/ld LDFLAGS = LIBBSD = LIBM = -lm LIBOBJS = LIBRARY_SEARCH_PATH = -L${libdir} LIBS = LIBTOOL = $(SHELL) $(top_builddir)/libtool LIBXINERAMA = LIBXMU = -lXmu LIBXRANDR = LIPO = LN_S = ln -s LTLIBOBJS = MAKEINFO = ${SHELL} /home/jaqque/wmaker/missing --run makeinfo MKDIR_P = /bin/mkdir -p MOFILES = NLSDIR = $(prefix)/lib/locale NM = /usr/bin/nm -B NMEDIT = OBJDUMP = objdump OBJEXT = o OTOOL = OTOOL64 = PACKAGE = WindowMaker PACKAGE_BUGREPORT = PACKAGE_NAME = WindowMaker PACKAGE_STRING = WindowMaker 0.95.5 PACKAGE_TARNAME = WindowMaker PACKAGE_URL = http://www.windowmaker.org/ PACKAGE_VERSION = 0.95.5 PATH_SEPARATOR = : PKGCONFIG = pkg-config RANLIB = ranlib SED = /bin/sed SET_MAKE = SHELL = /bin/bash STRIP = strip UTILMOFILES = VERSION = 0.95.5 WINGSMOFILES = WINGS_VERSION = 2:1:0 WPMOFILES = WRASTER_VERSION = 4:1:1 WUTIL_VERSION = 3:0:0 XCFLAGS = XFTCONFIG = pkg-config xft XFTFLAGS = -I/usr/include/freetype2 XFTLIBS = -lXft XGETTEXT = XLFLAGS = XLIBS = -lXext -lXext -lX11 XMKMF = X_CFLAGS = X_EXTRA_LIBS = X_LIBRARY_PATH = X_LIBS = X_PRE_LIBS = -lSM -lICE abs_builddir = /home/jaqque/wmaker/WINGs/Tests abs_srcdir = /home/jaqque/wmaker/WINGs/Tests abs_top_builddir = /home/jaqque/wmaker abs_top_srcdir = /home/jaqque/wmaker ac_ct_CC = gcc ac_ct_DUMPBIN = am__include = include am__leading_dot = . am__quote = am__tar = ${AMTAR} chof - "$$tardir" am__untar = ${AMTAR} xf - bindir = ${exec_prefix}/bin build = i686-pc-linux-gnu build_alias = build_cpu = i686 build_os = linux-gnu build_vendor = pc builddir = . datadir = ${datarootdir} datarootdir = ${prefix}/share docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} dvidir = ${docdir} exec_prefix = ${prefix} host = i686-pc-linux-gnu host_alias = host_cpu = i686 host_os = linux-gnu host_vendor = pc htmldir = ${docdir} inc_search_path = -I${includedir} includedir = ${prefix}/include infodir = ${datarootdir}/info install_sh = ${SHELL} /home/jaqque/wmaker/install-sh lcov_output_directory = lib_search_path = -L${libdir} libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale localstatedir = ${prefix}/var lt_ECHO = echo mandir = ${datarootdir}/man menutextdomain = mkdir_p = /bin/mkdir -p oldincludedir = /usr/include pdfdir = ${docdir} pixmapdir = ${datadir}/pixmaps prefix = /usr/local program_transform_name = s,x,x, psdir = ${docdir} sbindir = ${exec_prefix}/sbin sharedstatedir = ${prefix}/com srcdir = . supported_locales = be bg bs ca cs da de el es et fi fr gl hr hu hy it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW sysconfdir = ${prefix}/etc target_alias = top_build_prefix = ../../ top_builddir = ../.. top_srcdir = ../.. wprefs_bindir = ${exec_prefix}/bin wprefs_datadir = ${datarootdir}/WPrefs AUTOMAKE_OPTIONS = LDADD = $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la \ -lXft testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h wtest_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la EXTRA_DIST = logo.xpm upbtn.xpm wm.html wm.png AM_CPPFLAGS = -I$(top_srcdir)/WINGs -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \ -DRESOURCE_PATH=\"$(datadir)/WINGs\" -I/usr/include/freetype2 -I${includedir} all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/Tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WINGs/Tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list testmywidget$(EXEEXT): $(testmywidget_OBJECTS) $(testmywidget_DEPENDENCIES) @rm -f testmywidget$(EXEEXT) $(AM_V_CCLD)$(LINK) $(testmywidget_OBJECTS) $(testmywidget_LDADD) $(LIBS) wmfile$(EXEEXT): $(wmfile_OBJECTS) $(wmfile_DEPENDENCIES) @rm -f wmfile$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wmfile_OBJECTS) $(wmfile_LDADD) $(LIBS) wmquery$(EXEEXT): $(wmquery_OBJECTS) $(wmquery_DEPENDENCIES) @rm -f wmquery$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wmquery_OBJECTS) $(wmquery_LDADD) $(LIBS) wtest$(EXEEXT): $(wtest_OBJECTS) $(wtest_DEPENDENCIES) @rm -f wtest$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wtest_OBJECTS) $(wtest_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c include ./$(DEPDIR)/mywidget.Po include ./$(DEPDIR)/testmywidget.Po include ./$(DEPDIR)/wmfile.Po include ./$(DEPDIR)/wmquery.Po include ./$(DEPDIR)/wtest.Po .c.o: $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po # $(AM_V_CC) \ # source='$<' object='$@' libtool=no \ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ # $(COMPILE) -c $< .c.obj: $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po # $(AM_V_CC) \ # source='$<' object='$@' libtool=no \ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ # $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo # $(AM_V_CC) \ # source='$<' object='$@' libtool=yes \ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ # $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # 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. .NOEXPORT: WindowMaker-0.95.5/WINGs/Tests/upbtn.xpm0000644000175000017500000000204412214432632014670 00000000000000/* XPM */ static char * upbtn_xpm[] = { "20 22 32 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #4A485A", "# c #524052", "$ c #4A595A", "% c #5A596A", "& c #4A486A", "* c #5A595A", "= c #52556A", "- c #52406A", "; c #6A556A", "> c #5A6D6A", ", c #5A597B", "' c #5A6D7B", ") c #6A557B", "! c #6A6D7B", "~ c #6A697B", "{ c #6A698B", "] c #7B797B", "^ c #C5C2C5", "/ c #6A818B", "( c #6A7D7B", "_ c #7B698B", ": c #6A798B", "< c #7B799C", "[ c #7B798B", "} c #7B8D94", "| c #7B81A4", "1 c #8B85A4", "2 c #73899C", "3 c #7B89A4", " ", " .+ ", " .@#+ ", " .$%$&+ ", " .*=*-*-+ ", " .%%%%%%$%+ ", " .%=%;%=*=*-+ ", " .>%>,''>,>%=%+ ", " .%)>)!~>)>)>=*#+ ", " .>~'~'{'{'~',>%$@+ ", " ]+++^{!{!~!)>+++++ ", " ./{/{({'~+ ", " ._:_:_!~>+ ", " ./+ ", " .2 #include #include #include /* * You need to define this function to link any program to WINGs. * (this is no longer required as there is a default abort handler in WINGs) * This will be called when the application will be terminated because * of a fatal error (only for memory allocation failures ATM). */ void wAbort() { exit(1); } Display *dpy; int windowCount = 0; void closeAction(WMWidget * self, void *data) { WMDestroyWidget(self); windowCount--; printf("window closed, window count = %d\n", windowCount); if (windowCount < 1) exit(0); } void testOpenFilePanel(WMScreen * scr) { WMOpenPanel *panel; /* windowCount++; */ /* get the shared Open File panel */ panel = WMGetOpenPanel(scr); WMRunModalFilePanelForDirectory(panel, NULL, "/usr/local", NULL, NULL); /* free the panel to save some memory. Not needed otherwise. */ WMFreeFilePanel(WMGetOpenPanel(scr)); } void testFontPanel(WMScreen * scr) { WMFontPanel *panel; /*windowCount++; */ panel = WMGetFontPanel(scr); WMShowFontPanel(panel); /*WMFreeFontPanel(panel); */ } void testFrame(WMScreen * scr) { WMWindow *win; WMFrame *frame; int i; static char *titles[] = { "AboveTop", "AtTop", "BelowTop", "AboveBottom", "AtBottom", "BelowBottom" }; static WMTitlePosition pos[] = { WTPAboveTop, WTPAtTop, WTPBelowTop, WTPAboveBottom, WTPAtBottom, WTPBelowBottom }; windowCount++; win = WMCreateWindow(scr, "testFrame"); WMSetWindowTitle(win, "Frame"); WMSetWindowCloseAction(win, closeAction, NULL); WMResizeWidget(win, 400, 300); for (i = 0; i < 6; i++) { frame = WMCreateFrame(win); WMMoveWidget(frame, 8 + (i % 3) * 130, 8 + (i / 3) * 130); WMResizeWidget(frame, 120, 120); WMSetFrameTitle(frame, titles[i]); WMSetFrameTitlePosition(frame, pos[i]); } WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } /*static void resizedWindow(void *self, WMNotification *notif) { WMView *view = (WMView*)WMGetNotificationObject(notif); WMSize size = WMGetViewSize(view); WMResizeWidget((WMWidget*)self, size.width, size.height); }*/ void testBox(WMScreen * scr) { WMWindow *win; WMBox *box, *hbox; WMButton *btn; WMPopUpButton *pop; int i; windowCount++; win = WMCreateWindow(scr, "testBox"); WMSetWindowTitle(win, "Box"); WMSetWindowCloseAction(win, closeAction, NULL); WMResizeWidget(win, 400, 300); box = WMCreateBox(win); WMSetBoxBorderWidth(box, 5); WMSetViewExpandsToParent(WMWidgetView(box), 0, 0, 0, 0); /*WMSetBoxHorizontal(box, True); */ for (i = 0; i < 4; i++) { btn = WMCreateCommandButton(box); WMSetButtonText(btn, "bla"); WMMapWidget(btn); WMAddBoxSubview(box, WMWidgetView(btn), i & 1, True, 20, 0, 5); } pop = WMCreatePopUpButton(box); WMAddPopUpButtonItem(pop, "ewqeq"); WMAddPopUpButtonItem(pop, "ewqeqrewrw"); WMAddBoxSubview(box, WMWidgetView(pop), False, True, 20, 0, 5); WMMapWidget(pop); hbox = WMCreateBox(box); WMSetBoxHorizontal(hbox, True); WMAddBoxSubview(box, WMWidgetView(hbox), False, True, 24, 0, 0); WMMapWidget(hbox); for (i = 0; i < 4; i++) { btn = WMCreateCommandButton(hbox); WMSetButtonText(btn, "bla"); WMMapWidget(btn); WMAddBoxSubview(hbox, WMWidgetView(btn), 1, True, 60, 0, i < 3 ? 5 : 0); } WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } static void singleClick(WMWidget * self, void *data) { } static void doubleClick(WMWidget * self, void *data) { WMSelectAllListItems((WMList *) self); } static void listSelectionObserver(void *observer, WMNotification * notification) { WMLabel *label = (WMLabel *) observer; WMList *lPtr = (WMList *) WMGetNotificationObject(notification); char buf[255]; sprintf(buf, "Selected items: %d", WMGetArrayItemCount(WMGetListSelectedItems(lPtr))); WMSetLabelText(label, buf); } void testList(WMScreen * scr) { WMWindow *win; WMList *list; WMList *mlist; WMLabel *label; WMLabel *mlabel; WMLabel *title; WMLabel *mtitle; char text[100]; int i; windowCount++; win = WMCreateWindow(scr, "testList"); WMResizeWidget(win, 370, 250); WMSetWindowTitle(win, "List"); WMSetWindowCloseAction(win, closeAction, NULL); title = WMCreateLabel(win); WMResizeWidget(title, 150, 20); WMMoveWidget(title, 10, 10); WMSetLabelRelief(title, WRRidge); WMSetLabelText(title, "Single selection list"); mtitle = WMCreateLabel(win); WMResizeWidget(mtitle, 150, 20); WMMoveWidget(mtitle, 210, 10); WMSetLabelRelief(mtitle, WRRidge); WMSetLabelText(mtitle, "Multiple selection list"); list = WMCreateList(win); /*WMSetListAllowEmptySelection(list, True); */ WMMoveWidget(list, 10, 40); for (i = 0; i < 105; i++) { sprintf(text, "Item %i", i); WMAddListItem(list, text); } mlist = WMCreateList(win); WMSetListAllowMultipleSelection(mlist, True); /*WMSetListAllowEmptySelection(mlist, True); */ WMMoveWidget(mlist, 210, 40); for (i = 0; i < 135; i++) { sprintf(text, "Item %i", i); WMAddListItem(mlist, text); } label = WMCreateLabel(win); WMResizeWidget(label, 150, 40); WMMoveWidget(label, 10, 200); WMSetLabelRelief(label, WRRidge); WMSetLabelText(label, "Selected items: 0"); mlabel = WMCreateLabel(win); WMResizeWidget(mlabel, 150, 40); WMMoveWidget(mlabel, 210, 200); WMSetLabelRelief(mlabel, WRRidge); WMSetLabelText(mlabel, "Selected items: 0"); WMSetListAction(list, singleClick, label); WMSetListDoubleAction(list, doubleClick, label); WMSetListAction(mlist, singleClick, mlabel); WMSetListDoubleAction(mlist, doubleClick, mlabel); WMAddNotificationObserver(listSelectionObserver, label, WMListSelectionDidChangeNotification, list); WMAddNotificationObserver(listSelectionObserver, mlabel, WMListSelectionDidChangeNotification, mlist); WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } void testButton(WMScreen * scr) { WMWindow *win; int i; char *types[] = { "MomentaryPush", "PushOnPushOff", "Toggle", "Switch", "Radio", "MomentaryChange", "OnOff", "MomentaryLigh" }; windowCount++; win = WMCreateWindow(scr, "testButton"); WMResizeWidget(win, 300, 300); WMSetWindowTitle(win, "Buttons"); WMSetWindowCloseAction(win, closeAction, NULL); for (i = 1; i < 9; i++) { WMButton *b; b = WMCreateButton(win, i); WMResizeWidget(b, 150, 24); WMMoveWidget(b, 20, i * 30); WMSetButtonText(b, types[i - 1]); } WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } void testGradientButtons(WMScreen * scr) { WMWindow *win; WMButton *btn; WMPixmap *pix1, *pix2; RImage *back; RColor light, dark; WMColor *color, *altColor; windowCount++; /* creates the top-level window */ win = WMCreateWindow(scr, "testGradientButtons"); WMSetWindowTitle(win, "Gradiented Button Demo"); WMResizeWidget(win, 300, 200); WMSetWindowCloseAction(win, closeAction, NULL); light.red = 0x90; light.green = 0x85; light.blue = 0x90; dark.red = 0x35; dark.green = 0x30; dark.blue = 0x35; color = WMCreateRGBColor(scr, 0x5900, 0x5100, 0x5900, True); WMSetWidgetBackgroundColor(win, color); WMReleaseColor(color); back = RRenderGradient(60, 24, &dark, &light, RGRD_DIAGONAL); RBevelImage(back, RBEV_RAISED2); pix1 = WMCreatePixmapFromRImage(scr, back, 0); RReleaseImage(back); back = RRenderGradient(60, 24, &dark, &light, RGRD_DIAGONAL); RBevelImage(back, RBEV_SUNKEN); pix2 = WMCreatePixmapFromRImage(scr, back, 0); RReleaseImage(back); color = WMWhiteColor(scr); altColor = WMCreateNamedColor(scr, "red", True); btn = WMCreateButton(win, WBTMomentaryChange); WMResizeWidget(btn, 60, 24); WMMoveWidget(btn, 20, 100); WMSetButtonBordered(btn, False); WMSetButtonImagePosition(btn, WIPOverlaps); WMSetButtonImage(btn, pix1); WMSetButtonAltImage(btn, pix2); WMSetButtonText(btn, "Cool"); WMSetButtonTextColor(btn, color); WMSetButtonAltTextColor(btn, altColor); WMSetBalloonTextForView("This is a cool button", WMWidgetView(btn)); btn = WMCreateButton(win, WBTMomentaryChange); WMResizeWidget(btn, 60, 24); WMMoveWidget(btn, 90, 100); WMSetButtonBordered(btn, False); WMSetButtonImagePosition(btn, WIPOverlaps); WMSetButtonImage(btn, pix1); WMSetButtonAltImage(btn, pix2); WMSetButtonText(btn, "Button"); WMSetButtonTextColor(btn, color); WMSetBalloonTextForView("Este é outro balão.", WMWidgetView(btn)); WMReleaseColor(color); color = WMCreateNamedColor(scr, "orange", True); btn = WMCreateButton(win, WBTMomentaryChange); WMResizeWidget(btn, 60, 24); WMMoveWidget(btn, 160, 100); WMSetButtonBordered(btn, False); WMSetButtonImagePosition(btn, WIPOverlaps); WMSetButtonImage(btn, pix1); WMSetButtonAltImage(btn, pix2); WMSetButtonText(btn, "Test"); WMSetButtonTextColor(btn, color); WMSetBalloonTextForView("This is yet another button.\nBut the balloon has 3 lines.\nYay!", WMWidgetView(btn)); WMReleaseColor(color); WMReleaseColor(altColor); WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } void testScrollView(WMScreen * scr) { WMWindow *win; WMScrollView *sview; WMFrame *f; WMLabel *l; char buffer[128]; int i; windowCount++; /* creates the top-level window */ win = WMCreateWindow(scr, "testScroll"); WMSetWindowTitle(win, "Scrollable View"); WMSetWindowCloseAction(win, closeAction, NULL); /* set the window size */ WMResizeWidget(win, 300, 300); /* creates a scrollable view inside the top-level window */ sview = WMCreateScrollView(win); WMResizeWidget(sview, 200, 200); WMMoveWidget(sview, 30, 30); WMSetScrollViewRelief(sview, WRSunken); WMSetScrollViewHasVerticalScroller(sview, True); WMSetScrollViewHasHorizontalScroller(sview, True); /* create a frame with a bunch of labels */ f = WMCreateFrame(win); WMResizeWidget(f, 400, 400); WMSetFrameRelief(f, WRFlat); for (i = 0; i < 20; i++) { l = WMCreateLabel(f); WMResizeWidget(l, 50, 18); WMMoveWidget(l, 10, 20 * i); sprintf(buffer, "Label %i", i); WMSetLabelText(l, buffer); WMSetLabelRelief(l, WRSimple); } WMMapSubwidgets(f); WMMapWidget(f); WMSetScrollViewContentView(sview, WMWidgetView(f)); /* make the windows of the widgets be actually created */ WMRealizeWidget(win); /* Map all child widgets of the top-level be mapped. * You must call this for each container widget (like frames), * even if they are childs of the top-level window. */ WMMapSubwidgets(win); /* map the top-level window */ WMMapWidget(win); } void testColorWell(WMScreen * scr) { WMWindow *win; WMColorWell *well1, *well2; windowCount++; win = WMCreateWindow(scr, "testColor"); WMResizeWidget(win, 300, 300); WMSetWindowCloseAction(win, closeAction, NULL); well1 = WMCreateColorWell(win); WMResizeWidget(well1, 60, 40); WMMoveWidget(well1, 100, 100); WMSetColorWellColor(well1, WMCreateRGBColor(scr, 0x8888, 0, 0x1111, True)); well2 = WMCreateColorWell(win); WMResizeWidget(well2, 60, 40); WMMoveWidget(well2, 200, 100); WMSetColorWellColor(well2, WMCreateRGBColor(scr, 0, 0, 0x8888, True)); WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } void testColorPanel(WMScreen * scr) { WMColorPanel *panel = WMGetColorPanel(scr); /*if (colorname) { startcolor = WMCreateNamedColor(scr, colorname, False); WMSetColorPanelColor(panel, startcolor); WMReleaseColor(startcolor); } */ WMShowColorPanel(panel); } void sliderCallback(WMWidget * w, void *data) { printf("SLIDER == %i\n", WMGetSliderValue(w)); } void testSlider(WMScreen * scr) { WMWindow *win; WMSlider *s; windowCount++; win = WMCreateWindow(scr, "testSlider"); WMResizeWidget(win, 300, 300); WMSetWindowTitle(win, "Sliders"); WMSetWindowCloseAction(win, closeAction, NULL); s = WMCreateSlider(win); WMResizeWidget(s, 16, 100); WMMoveWidget(s, 100, 100); WMSetSliderKnobThickness(s, 8); WMSetSliderContinuous(s, False); WMSetSliderAction(s, sliderCallback, s); s = WMCreateSlider(win); WMResizeWidget(s, 100, 16); WMMoveWidget(s, 100, 10); WMSetSliderKnobThickness(s, 8); WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } void testTextField(WMScreen * scr) { WMWindow *win; WMTextField *field, *field2; windowCount++; win = WMCreateWindow(scr, "testTextField"); WMResizeWidget(win, 400, 300); WMSetWindowCloseAction(win, closeAction, NULL); field = WMCreateTextField(win); WMResizeWidget(field, 200, 20); WMMoveWidget(field, 20, 20); WMSetTextFieldText(field, "the little \xc2\xa9 sign"); field2 = WMCreateTextField(win); WMResizeWidget(field2, 200, 20); WMMoveWidget(field2, 20, 50); WMSetTextFieldAlignment(field2, WARight); WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } void testText(WMScreen * scr) { WMWindow *win; WMText *text; WMFont *font; void *tb; FILE *file = fopen("wm.html", "rb"); windowCount++; win = WMCreateWindow(scr, "testText"); WMResizeWidget(win, 500, 300); WMSetWindowCloseAction(win, closeAction, NULL); text = WMCreateText(win); WMResizeWidget(text, 480, 280); WMMoveWidget(text, 10, 10); WMSetTextHasVerticalScroller(text, True); WMSetTextEditable(text, False); WMSetTextIgnoresNewline(text, False); #define FNAME "Verdana,sans serif:pixelsize=12" #define MSG \ "Window Maker is the GNU window manager for the " \ "X Window System. It was designed to emulate the " \ "look and feel of part of the NEXTSTEP(tm) GUI. It's " \ "supposed to be relatively fast and small, feature " \ "rich, easy to configure and easy to use, with a simple " \ "and elegant appearance borrowed from NEXTSTEP(tm)." font = WMCreateFont(scr, FNAME ":autohint=false"); WMSetTextDefaultFont(text, font); WMReleaseFont(font); if (0 && file) { char buf[1024]; WMFreezeText(text); while (fgets(buf, 1023, file)) WMAppendTextStream(text, buf); fclose(file); WMThawText(text); } else { WMAppendTextStream(text, "First paragraph has autohinting turned off, " "while the second has it turned on:"); WMAppendTextStream(text, "\n\n\n"); WMAppendTextStream(text, MSG); WMAppendTextStream(text, "\n\n\n"); font = WMCreateFont(scr, FNAME ":autohint=true"); tb = WMCreateTextBlockWithText(text, MSG, font, WMBlackColor(scr), 0, strlen(MSG)); WMAppendTextBlock(text, tb); WMReleaseFont(font); } WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } void testProgressIndicator(WMScreen * scr) { WMWindow *win; WMProgressIndicator *pPtr; windowCount++; win = WMCreateWindow(scr, "testProgressIndicator"); WMResizeWidget(win, 292, 32); WMSetWindowCloseAction(win, closeAction, NULL); pPtr = WMCreateProgressIndicator(win); WMMoveWidget(pPtr, 8, 8); WMSetProgressIndicatorValue(pPtr, 75); WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } void testPullDown(WMScreen * scr) { WMWindow *win; WMPopUpButton *pop, *pop2; windowCount++; win = WMCreateWindow(scr, "pullDown"); WMResizeWidget(win, 400, 300); WMSetWindowCloseAction(win, closeAction, NULL); pop = WMCreatePopUpButton(win); WMResizeWidget(pop, 100, 20); WMMoveWidget(pop, 50, 60); WMSetPopUpButtonPullsDown(pop, True); WMSetPopUpButtonText(pop, "Commands"); WMAddPopUpButtonItem(pop, "Add"); WMAddPopUpButtonItem(pop, "Remove"); WMAddPopUpButtonItem(pop, "Check"); WMAddPopUpButtonItem(pop, "Eat"); pop2 = WMCreatePopUpButton(win); WMResizeWidget(pop2, 100, 20); WMMoveWidget(pop2, 200, 60); WMSetPopUpButtonText(pop2, "Select"); WMAddPopUpButtonItem(pop2, "Apples"); WMAddPopUpButtonItem(pop2, "Bananas"); WMAddPopUpButtonItem(pop2, "Strawberries"); WMAddPopUpButtonItem(pop2, "Blueberries"); WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } void testTabView(WMScreen * scr) { WMWindow *win; WMTabView *tabv; WMTabViewItem *tab; WMFrame *frame; WMLabel *label; windowCount++; win = WMCreateWindow(scr, "testTabs"); WMResizeWidget(win, 400, 300); WMSetWindowCloseAction(win, closeAction, NULL); tabv = WMCreateTabView(win); WMMoveWidget(tabv, 50, 50); WMResizeWidget(tabv, 300, 200); frame = WMCreateFrame(win); WMSetFrameRelief(frame, WRFlat); label = WMCreateLabel(frame); WMResizeWidget(label, 100, 100); WMSetLabelText(label, "Label 1"); WMMapWidget(label); tab = WMCreateTabViewItemWithIdentifier(0); WMSetTabViewItemView(tab, WMWidgetView(frame)); WMAddItemInTabView(tabv, tab); WMSetTabViewItemLabel(tab, "Instances"); frame = WMCreateFrame(win); WMSetFrameRelief(frame, WRFlat); label = WMCreateLabel(frame); WMResizeWidget(label, 40, 50); WMSetLabelText(label, "Label 2"); WMMapWidget(label); tab = WMCreateTabViewItemWithIdentifier(0); WMSetTabViewItemView(tab, WMWidgetView(frame)); WMAddItemInTabView(tabv, tab); WMSetTabViewItemLabel(tab, "Classes"); frame = WMCreateFrame(win); WMSetFrameRelief(frame, WRFlat); label = WMCreateLabel(frame); WMResizeWidget(label, 100, 100); WMMoveWidget(label, 60, 40); WMSetLabelText(label, "Label 3"); WMMapWidget(label); tab = WMCreateTabViewItemWithIdentifier(0); WMSetTabViewItemView(tab, WMWidgetView(frame)); WMAddItemInTabView(tabv, tab); WMSetTabViewItemLabel(tab, "Something"); frame = WMCreateFrame(win); WMSetFrameRelief(frame, WRFlat); label = WMCreateLabel(frame); WMResizeWidget(label, 100, 100); WMMoveWidget(label, 160, 40); WMSetLabelText(label, "Label 4"); WMMapWidget(label); tab = WMCreateTabViewItemWithIdentifier(0); WMSetTabViewItemView(tab, WMWidgetView(frame)); WMAddItemInTabView(tabv, tab); WMSetTabViewItemLabel(tab, "Bla!"); frame = WMCreateFrame(win); WMSetFrameRelief(frame, WRFlat); label = WMCreateLabel(frame); WMResizeWidget(label, 100, 100); WMMoveWidget(label, 160, 40); WMSetLabelText(label, "Label fjweqklrj qwl"); WMMapWidget(label); tab = WMCreateTabViewItemWithIdentifier(0); WMSetTabViewItemView(tab, WMWidgetView(frame)); WMAddItemInTabView(tabv, tab); WMSetTabViewItemLabel(tab, "Weee!"); WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } void splitViewConstrainProc(WMSplitView * sPtr, int indView, int *minSize, int *maxSize) { switch (indView) { case 0: *minSize = 20; break; case 1: *minSize = 40; *maxSize = 80; break; case 2: *maxSize = 60; break; default: break; } } static void resizeSplitView(XEvent * event, void *data) { WMSplitView *sPtr = (WMSplitView *) data; if (event->type == ConfigureNotify) { int width = event->xconfigure.width - 10; if (width < WMGetSplitViewDividerThickness(sPtr)) width = WMGetSplitViewDividerThickness(sPtr); if (width != WMWidgetWidth(sPtr) || event->xconfigure.height != WMWidgetHeight(sPtr)) WMResizeWidget(sPtr, width, event->xconfigure.height - 55); } } void appendSubviewButtonAction(WMWidget * self, void *data) { WMSplitView *sPtr = (WMSplitView *) data; char buf[64]; WMLabel *label = WMCreateLabel(sPtr); sprintf(buf, "Subview %d", WMGetSplitViewSubviewsCount(sPtr) + 1); WMSetLabelText(label, buf); WMSetLabelRelief(label, WRSunken); WMAddSplitViewSubview(sPtr, WMWidgetView(label)); WMRealizeWidget(label); WMMapWidget(label); } void removeSubviewButtonAction(WMWidget * self, void *data) { WMSplitView *sPtr = (WMSplitView *) data; int count = WMGetSplitViewSubviewsCount(sPtr); if (count > 2) { WMView *view = WMGetSplitViewSubviewAt(sPtr, count - 1); WMDestroyWidget(WMWidgetOfView(view)); WMRemoveSplitViewSubviewAt(sPtr, count - 1); } } void orientationButtonAction(WMWidget * self, void *data) { WMSplitView *sPtr = (WMSplitView *) data; WMSetSplitViewVertical(sPtr, !WMGetSplitViewVertical(sPtr)); } void adjustSubviewsButtonAction(WMWidget * self, void *data) { WMAdjustSplitViewSubviews((WMSplitView *) data); } void testSplitView(WMScreen * scr) { WMWindow *win; WMSplitView *splitv1, *splitv2; WMFrame *frame; WMLabel *label; WMButton *button; windowCount++; win = WMCreateWindow(scr, "testTabs"); WMResizeWidget(win, 300, 400); WMSetWindowCloseAction(win, closeAction, NULL); frame = WMCreateFrame(win); WMSetFrameRelief(frame, WRSunken); WMMoveWidget(frame, 5, 5); WMResizeWidget(frame, 290, 40); splitv1 = WMCreateSplitView(win); WMMoveWidget(splitv1, 5, 50); WMResizeWidget(splitv1, 290, 345); WMSetSplitViewConstrainProc(splitv1, splitViewConstrainProc); WMCreateEventHandler(WMWidgetView(win), StructureNotifyMask, resizeSplitView, splitv1); button = WMCreateCommandButton(frame); WMSetButtonText(button, "+"); WMSetButtonAction(button, appendSubviewButtonAction, splitv1); WMMoveWidget(button, 10, 8); WMMapWidget(button); button = WMCreateCommandButton(frame); WMSetButtonText(button, "-"); WMSetButtonAction(button, removeSubviewButtonAction, splitv1); WMMoveWidget(button, 80, 8); WMMapWidget(button); button = WMCreateCommandButton(frame); WMSetButtonText(button, "="); WMMoveWidget(button, 150, 8); WMSetButtonAction(button, adjustSubviewsButtonAction, splitv1); WMMapWidget(button); button = WMCreateCommandButton(frame); WMSetButtonText(button, "#"); WMMoveWidget(button, 220, 8); WMSetButtonAction(button, orientationButtonAction, splitv1); WMMapWidget(button); label = WMCreateLabel(splitv1); WMSetLabelText(label, "Subview 1"); WMSetLabelRelief(label, WRSunken); WMMapWidget(label); WMAddSplitViewSubview(splitv1, WMWidgetView(label)); splitv2 = WMCreateSplitView(splitv1); WMResizeWidget(splitv2, 150, 150); WMSetSplitViewVertical(splitv2, True); label = WMCreateLabel(splitv2); WMSetLabelText(label, "Subview 2.1"); WMSetLabelRelief(label, WRSunken); WMMapWidget(label); WMAddSplitViewSubview(splitv2, WMWidgetView(label)); label = WMCreateLabel(splitv2); WMSetLabelText(label, "Subview 2.2"); WMSetLabelRelief(label, WRSunken); WMMapWidget(label); WMAddSplitViewSubview(splitv2, WMWidgetView(label)); label = WMCreateLabel(splitv2); WMSetLabelText(label, "Subview 2.3"); WMSetLabelRelief(label, WRSunken); WMMapWidget(label); WMAddSplitViewSubview(splitv2, WMWidgetView(label)); WMMapWidget(splitv2); WMAddSplitViewSubview(splitv1, WMWidgetView(splitv2)); WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); } void testUD() { WMUserDefaults *defs; char str[32]; defs = WMGetStandardUserDefaults(); sprintf(str, "TEST DATA"); puts(str); WMSetUDStringForKey(defs, str, "testKey"); puts(str); } int main(int argc, char **argv) { WMScreen *scr; WMPixmap *pixmap; /* Initialize the application */ WMInitializeApplication("Test@eqweq_ewq$eqw", &argc, argv); testUD(); /* * Open connection to the X display. */ dpy = XOpenDisplay(""); if (!dpy) { puts("could not open display"); exit(1); } /* This is used to disable buffering of X protocol requests. * Do NOT use it unless when debugging. It will cause a major * slowdown in your application */ #if 0 XSynchronize(dpy, True); #endif /* * Create screen descriptor. */ scr = WMCreateScreen(dpy, DefaultScreen(dpy)); /* * Loads the logo of the application. */ pixmap = WMCreatePixmapFromFile(scr, "logo.xpm"); /* * Makes the logo be used in standard dialog panels. */ if (pixmap) { WMSetApplicationIconPixmap(scr, pixmap); WMReleasePixmap(pixmap); } /* * Do some test stuff. * * Put the testSomething() function you want to test here. */ testText(scr); testFontPanel(scr); testColorPanel(scr); testTextField(scr); #if 0 testBox(scr); testButton(scr); testColorPanel(scr); testColorWell(scr); testDragAndDrop(scr); testFrame(scr); testGradientButtons(scr); testList(scr); testOpenFilePanel(scr); testProgressIndicator(scr); testPullDown(scr); testScrollView(scr); testSlider(scr); testSplitView(scr); testTabView(scr); testTextField(scr); #endif /* * The main event loop. * */ WMScreenMainLoop(scr); return 0; } WindowMaker-0.95.5/WINGs/winputmethod.c0000644000175000017500000001246412214432632014612 00000000000000 #include #include "WINGsP.h" typedef struct W_IMContext { XIM xim; XIMStyle ximstyle; } WMIMContext; static void instantiateIM_cb(Display * display, XPointer client_data, XPointer call_data) { W_InitIM((W_Screen *) client_data); } static void destroyIM_cb(XIM xim, XPointer client_data, XPointer call_data) { W_Screen *scr = (W_Screen *) client_data; W_View *target; if (scr->imctx->xim != xim) return; target = scr->rootView->childrenList; while (target != NULL) { W_DestroyIC(target); target = target->nextSister; } wfree(scr->imctx); scr->imctx = NULL; XRegisterIMInstantiateCallback(scr->display, NULL, NULL, NULL, instantiateIM_cb, (XPointer) scr); } void W_InitIM(W_Screen * scr) { XIM xim; if (scr->imctx) return; xim = XOpenIM(scr->display, NULL, NULL, NULL); if (xim) { XIMStyles *im_styles; XIMCallback cb; int i; scr->imctx = wmalloc(sizeof(WMIMContext)); scr->imctx->xim = xim; cb.callback = destroyIM_cb; cb.client_data = (XPointer) scr; if (XSetIMValues(scr->imctx->xim, XNDestroyCallback, &cb, NULL)) wwarning("could not add destroy callback for input method"); XUnregisterIMInstantiateCallback(scr->display, NULL, NULL, NULL, instantiateIM_cb, (XPointer) scr); /* Get available input style */ XGetIMValues(scr->imctx->xim, XNQueryInputStyle, &im_styles, NULL); scr->imctx->ximstyle = 0; for (i = 0; i < im_styles->count_styles && scr->imctx->ximstyle == 0; i++) { if ((im_styles->supported_styles[i] & XIMPreeditPosition) && (im_styles->supported_styles[i] & XIMStatusNothing)) { scr->imctx->ximstyle = XIMPreeditPosition | XIMStatusNothing; } else if ((im_styles->supported_styles[i] & XIMPreeditNothing) && (im_styles->supported_styles[i] & XIMStatusNothing)) { scr->imctx->ximstyle = XIMPreeditNothing | XIMStatusNothing; } } XFree(im_styles); } else { XRegisterIMInstantiateCallback(scr->display, NULL, NULL, NULL, instantiateIM_cb, (XPointer) scr); } } void W_CreateIC(WMView * view) { WMScreen *scr = W_VIEW_SCREEN(view); XVaNestedList preedit_attr = NULL; if (view->xic || !view->flags.realized || !scr->imctx) return; if (scr->imctx->ximstyle & XIMPreeditPosition) { XPoint spot; XRectangle rect; int ofs; ofs = (view->size.height - WMFontHeight(scr->normalFont)) / 2; rect.x = ofs; rect.y = ofs; rect.height = WMFontHeight(scr->normalFont); rect.width = view->size.width - ofs * 2; spot.x = rect.x; spot.y = rect.y + rect.height; // this really needs to be changed, but I don't know how yet -Dan // it used to be like this with fontsets, but no longer applies to xft preedit_attr = XVaCreateNestedList(0, XNSpotLocation, &spot, XNArea, &rect, XNFontInfo, scr->normalFont->font, NULL); } view->xic = XCreateIC(scr->imctx->xim, XNInputStyle, scr->imctx->ximstyle, XNClientWindow, view->window, preedit_attr ? XNPreeditAttributes : NULL, preedit_attr, NULL); if (preedit_attr) XFree(preedit_attr); if (view->xic) { unsigned long fevent = 0; XGetICValues(view->xic, XNFilterEvents, &fevent, NULL); XSelectInput(scr->display, view->window, ButtonPressMask | ButtonReleaseMask | ExposureMask | KeyPressMask | FocusChangeMask | ButtonMotionMask | fevent); } } void W_DestroyIC(WMView * view) { if (view->xic) { XDestroyIC(view->xic); view->xic = 0; } } static void setPreeditArea(W_View * view) { WMScreen *scr = W_VIEW_SCREEN(view); XVaNestedList preedit_attr = NULL; if (view->xic && (scr->imctx->ximstyle & XIMPreeditPosition)) { XRectangle rect; int ofs; ofs = (view->size.height - WMFontHeight(scr->normalFont)) / 2; rect.x = ofs; rect.y = ofs; rect.height = WMFontHeight(scr->normalFont); rect.width = view->size.width - ofs * 2; preedit_attr = XVaCreateNestedList(0, XNArea, &rect, NULL); XSetICValues(view->xic, XNPreeditAttributes, preedit_attr, NULL); if (preedit_attr) { XFree(preedit_attr); } } } void W_FocusIC(WMView * view) { WMScreen *scr = W_VIEW_SCREEN(view); if (view->xic) { XSetICFocus(view->xic); XSetICValues(view->xic, XNFocusWindow, view->window, NULL); if (scr->imctx->ximstyle & XIMPreeditPosition) { setPreeditArea(view); } } } void W_UnFocusIC(WMView * view) { if (view->xic) { XUnsetICFocus(view->xic); } } void W_SetPreeditPositon(W_View * view, int x, int y) { WMScreen *scr = W_VIEW_SCREEN(view); XVaNestedList preedit_attr = NULL; if (view->xic && (scr->imctx->ximstyle & XIMPreeditPosition)) { XPoint spot; int ofs; ofs = (view->size.height - WMFontHeight(scr->normalFont)) / 2; spot.x = x; spot.y = y + view->size.height - ofs - 3; preedit_attr = XVaCreateNestedList(0, XNSpotLocation, &spot, NULL); XSetICValues(view->xic, XNPreeditAttributes, preedit_attr, NULL); if (preedit_attr) { XFree(preedit_attr); } } } int W_LookupString(W_View * view, XKeyPressedEvent * event, char *buffer, int buflen, KeySym * keysym, Status * status) { WMScreen *scr = W_VIEW_SCREEN(view); XSetInputFocus(scr->display, view->window, RevertToParent, CurrentTime); if (view->xic) { #ifdef X_HAVE_UTF8_STRING return Xutf8LookupString(view->xic, event, buffer, buflen, keysym, status); #else return XLookupString(event, buffer, buflen, keysym, (XComposeStatus *) status); #endif } else { return XLookupString(event, buffer, buflen, keysym, (XComposeStatus *) status); } } WindowMaker-0.95.5/WINGs/wfilepanel.c0000644000175000017500000005564612214432632014222 00000000000000 #include #include #include #include #include #include #include #include "WINGsP.h" #include "wconfig.h" #ifndef PATH_MAX #define PATH_MAX 1024 #endif typedef struct W_FilePanel { WMWindow *win; WMLabel *iconLabel; WMLabel *titleLabel; WMFrame *line; WMLabel *nameLabel; WMBrowser *browser; WMButton *okButton; WMButton *cancelButton; WMButton *homeButton; WMButton *trashcanButton; WMButton *createDirButton; WMButton *disketteButton; WMButton *unmountButton; WMView *accessoryView; WMTextField *fileField; char **fileTypes; struct { unsigned int canExit:1; unsigned int canceled:1; /* clicked on cancel */ unsigned int filtered:1; unsigned int canChooseFiles:1; unsigned int canChooseDirectories:1; unsigned int autoCompletion:1; unsigned int showAllFiles:1; unsigned int canFreeFileTypes:1; unsigned int fileMustExist:1; unsigned int panelType:1; } flags; } W_FilePanel; /* Type of panel */ #define WP_OPEN 0 #define WP_SAVE 1 #define PWIDTH 330 #define PHEIGHT 360 static void listDirectoryOnColumn(WMFilePanel * panel, int column, const char *path); static void browserClick(WMWidget *widget, void *p_panel); static void browserDClick(WMWidget *widget, void *p_panel); static void fillColumn(WMBrowserDelegate * self, WMBrowser * bPtr, int column, WMList * list); static void normalizePath(char *s); static void deleteFile(WMWidget *widget, void *p_panel); static void createDir(WMWidget *widget, void *p_panel); static void goHome(WMWidget *widget, void *p_panel); static void goFloppy(WMWidget *widget, void *p_panel); static void goUnmount(WMWidget *widget, void *p_panel); static void buttonClick(WMWidget *widget, void *p_panel); static char *getCurrentFileName(WMFilePanel * panel); static void handleEvents(XEvent * event, void *data); static WMBrowserDelegate browserDelegate = { NULL, /* data */ fillColumn, /* createRowsForColumn */ NULL, /* titleOfColumn */ NULL, /* didScroll */ NULL /* willScroll */ }; static int closestListItem(WMList * list, const char *text, Bool exact) { WMListItem *item; WMArray *items = WMGetListItems(list); int i, len = strlen(text); if (len == 0) return -1; for (i = 0; i < WMGetArrayItemCount(items); i++) { item = WMGetFromArray(items, i); if (strlen(item->text) >= len && ((exact && strcmp(item->text, text) == 0) || (!exact && strncmp(item->text, text, len) == 0))) { return i; } } return -1; } static void textChangedObserver(void *observerData, WMNotification * notification) { W_FilePanel *panel = (W_FilePanel *) observerData; char *text; WMList *list; int col = WMGetBrowserNumberOfColumns(panel->browser) - 1; int i; uintptr_t textEvent; if (!(list = WMGetBrowserListInColumn(panel->browser, col))) return; text = WMGetTextFieldText(panel->fileField); textEvent = (uintptr_t)WMGetNotificationClientData(notification); if (panel->flags.autoCompletion && textEvent != WMDeleteTextEvent) i = closestListItem(list, text, False); else i = closestListItem(list, text, True); WMSelectListItem(list, i); if (i >= 0 && panel->flags.autoCompletion) { WMListItem *item = WMGetListItem(list, i); int textLen = strlen(text), itemTextLen = strlen(item->text); int visibleItems = WMWidgetHeight(list) / WMGetListItemHeight(list); WMSetListPosition(list, i - visibleItems / 2); if (textEvent != WMDeleteTextEvent) { WMRange range; WMInsertTextFieldText(panel->fileField, &item->text[textLen], textLen); range.position = textLen; range.count = itemTextLen - textLen; WMSelectTextFieldRange(panel->fileField, range); /*WMSetTextFieldCursorPosition(panel->fileField, itemTextLen); */ } } wfree(text); } static void textEditedObserver(void *observerData, WMNotification * notification) { W_FilePanel *panel = (W_FilePanel *) observerData; if ((uintptr_t)WMGetNotificationClientData(notification) == WMReturnTextMovement) { WMPerformButtonClick(panel->okButton); } } static WMFilePanel *makeFilePanel(WMScreen * scrPtr, const char *name, const char *title) { WMFilePanel *fPtr; WMFont *largeFont; WMPixmap *icon; fPtr = wmalloc(sizeof(WMFilePanel)); fPtr->win = WMCreateWindowWithStyle(scrPtr, name, WMTitledWindowMask | WMResizableWindowMask); 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); WMSetLabelImagePosition(fPtr->iconLabel, WIPImageOnly); icon = WMCreateApplicationIconBlendedPixmap(scrPtr, (RColor *) NULL); if (icon) { WMSetLabelImage(fPtr->iconLabel, icon); WMReleasePixmap(icon); } else { WMSetLabelImage(fPtr->iconLabel, scrPtr->applicationIconPixmap); } fPtr->titleLabel = WMCreateLabel(fPtr->win); WMResizeWidget(fPtr->titleLabel, PWIDTH - 64, 64); WMMoveWidget(fPtr->titleLabel, 64, 0); largeFont = WMBoldSystemFontOfSize(scrPtr, 24); WMSetLabelFont(fPtr->titleLabel, largeFont); WMReleaseFont(largeFont); WMSetLabelText(fPtr->titleLabel, title); fPtr->line = WMCreateFrame(fPtr->win); WMMoveWidget(fPtr->line, 0, 64); WMResizeWidget(fPtr->line, PWIDTH, 2); WMSetFrameRelief(fPtr->line, WRGroove); fPtr->browser = WMCreateBrowser(fPtr->win); WMSetBrowserAllowEmptySelection(fPtr->browser, True); WMSetBrowserDelegate(fPtr->browser, &browserDelegate); WMSetBrowserAction(fPtr->browser, browserClick, fPtr); WMSetBrowserDoubleAction(fPtr->browser, browserDClick, fPtr); WMMoveWidget(fPtr->browser, 7, 72); WMResizeWidget(fPtr->browser, PWIDTH - 14, 200); WMHangData(fPtr->browser, fPtr); fPtr->nameLabel = WMCreateLabel(fPtr->win); WMMoveWidget(fPtr->nameLabel, 7, 282); WMResizeWidget(fPtr->nameLabel, 55, 14); WMSetLabelText(fPtr->nameLabel, _("Name:")); fPtr->fileField = WMCreateTextField(fPtr->win); WMMoveWidget(fPtr->fileField, 60, 278); WMResizeWidget(fPtr->fileField, PWIDTH - 60 - 10, 24); WMAddNotificationObserver(textEditedObserver, fPtr, WMTextDidEndEditingNotification, fPtr->fileField); WMAddNotificationObserver(textChangedObserver, fPtr, WMTextDidChangeNotification, fPtr->fileField); fPtr->okButton = WMCreateCommandButton(fPtr->win); WMMoveWidget(fPtr->okButton, 245, 325); WMResizeWidget(fPtr->okButton, 75, 28); WMSetButtonText(fPtr->okButton, _("OK")); WMSetButtonImage(fPtr->okButton, scrPtr->buttonArrow); WMSetButtonAltImage(fPtr->okButton, scrPtr->pushedButtonArrow); WMSetButtonImagePosition(fPtr->okButton, WIPRight); WMSetButtonAction(fPtr->okButton, buttonClick, fPtr); fPtr->cancelButton = WMCreateCommandButton(fPtr->win); WMMoveWidget(fPtr->cancelButton, 165, 325); WMResizeWidget(fPtr->cancelButton, 75, 28); WMSetButtonText(fPtr->cancelButton, _("Cancel")); WMSetButtonAction(fPtr->cancelButton, buttonClick, fPtr); fPtr->trashcanButton = WMCreateCommandButton(fPtr->win); WMMoveWidget(fPtr->trashcanButton, 7, 325); WMResizeWidget(fPtr->trashcanButton, 28, 28); WMSetButtonImagePosition(fPtr->trashcanButton, WIPImageOnly); WMSetButtonImage(fPtr->trashcanButton, scrPtr->trashcanIcon); WMSetButtonAltImage(fPtr->trashcanButton, scrPtr->altTrashcanIcon); WMSetButtonAction(fPtr->trashcanButton, deleteFile, fPtr); fPtr->createDirButton = WMCreateCommandButton(fPtr->win); WMMoveWidget(fPtr->createDirButton, 37, 325); WMResizeWidget(fPtr->createDirButton, 28, 28); WMSetButtonImagePosition(fPtr->createDirButton, WIPImageOnly); WMSetButtonImage(fPtr->createDirButton, scrPtr->createDirIcon); WMSetButtonAltImage(fPtr->createDirButton, scrPtr->altCreateDirIcon); WMSetButtonAction(fPtr->createDirButton, createDir, fPtr); fPtr->homeButton = WMCreateCommandButton(fPtr->win); WMMoveWidget(fPtr->homeButton, 67, 325); WMResizeWidget(fPtr->homeButton, 28, 28); WMSetButtonImagePosition(fPtr->homeButton, WIPImageOnly); WMSetButtonImage(fPtr->homeButton, scrPtr->homeIcon); WMSetButtonAltImage(fPtr->homeButton, scrPtr->altHomeIcon); WMSetButtonAction(fPtr->homeButton, goHome, fPtr); fPtr->disketteButton = WMCreateCommandButton(fPtr->win); WMMoveWidget(fPtr->disketteButton, 97, 325); WMResizeWidget(fPtr->disketteButton, 28, 28); WMSetButtonImagePosition(fPtr->disketteButton, WIPImageOnly); WMSetButtonImage(fPtr->disketteButton, scrPtr->disketteIcon); WMSetButtonAltImage(fPtr->disketteButton, scrPtr->altDisketteIcon); WMSetButtonAction(fPtr->disketteButton, goFloppy, fPtr); fPtr->unmountButton = WMCreateCommandButton(fPtr->win); WMMoveWidget(fPtr->unmountButton, 127, 325); WMResizeWidget(fPtr->unmountButton, 28, 28); WMSetButtonImagePosition(fPtr->unmountButton, WIPImageOnly); WMSetButtonImage(fPtr->unmountButton, scrPtr->unmountIcon); WMSetButtonAltImage(fPtr->unmountButton, scrPtr->altUnmountIcon); WMSetButtonAction(fPtr->unmountButton, goUnmount, fPtr); WMSetButtonEnabled(fPtr->unmountButton, False); WMRealizeWidget(fPtr->win); WMMapSubwidgets(fPtr->win); WMSetFocusToWidget(fPtr->fileField); WMSetTextFieldCursorPosition(fPtr->fileField, 0); WMLoadBrowserColumnZero(fPtr->browser); WMSetWindowInitialPosition(fPtr->win, (scrPtr->rootView->size.width - WMWidgetWidth(fPtr->win)) / 2, (scrPtr->rootView->size.height - WMWidgetHeight(fPtr->win)) / 2); fPtr->flags.canChooseFiles = 1; fPtr->flags.canChooseDirectories = 1; fPtr->flags.autoCompletion = 1; return fPtr; } WMOpenPanel *WMGetOpenPanel(WMScreen * scrPtr) { WMFilePanel *panel; if (scrPtr->sharedOpenPanel) return scrPtr->sharedOpenPanel; panel = makeFilePanel(scrPtr, "openFilePanel", _("Open")); panel->flags.fileMustExist = 1; panel->flags.panelType = WP_OPEN; scrPtr->sharedOpenPanel = panel; return panel; } WMSavePanel *WMGetSavePanel(WMScreen * scrPtr) { WMFilePanel *panel; if (scrPtr->sharedSavePanel) return scrPtr->sharedSavePanel; panel = makeFilePanel(scrPtr, "saveFilePanel", _("Save")); panel->flags.fileMustExist = 0; panel->flags.panelType = WP_SAVE; scrPtr->sharedSavePanel = panel; return panel; } void WMFreeFilePanel(WMFilePanel * panel) { if (panel == WMWidgetScreen(panel->win)->sharedSavePanel) { WMWidgetScreen(panel->win)->sharedSavePanel = NULL; } if (panel == WMWidgetScreen(panel->win)->sharedOpenPanel) { WMWidgetScreen(panel->win)->sharedOpenPanel = NULL; } WMRemoveNotificationObserver(panel); WMUnmapWidget(panel->win); WMDestroyWidget(panel->win); wfree(panel); } int WMRunModalFilePanelForDirectory(WMFilePanel * panel, WMWindow * owner, char *path, const char *name, char **fileTypes) { WMScreen *scr = WMWidgetScreen(panel->win); if (name && !owner) { WMSetWindowTitle(panel->win, name); } WMChangePanelOwner(panel->win, owner); WMSetFilePanelDirectory(panel, path); 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; } WMSetLabelText(panel->titleLabel, name); WMMapWidget(panel->win); WMRunModalLoop(scr, W_VIEW(panel->win)); /* Must withdraw window because the next time we map * it, it might have a different transient owner. */ WMCloseWindow(panel->win); return (panel->flags.canceled ? False : True); } void WMSetFilePanelDirectory(WMFilePanel * panel, char *path) { WMList *list; WMListItem *item; int col; 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, rest); } else { WMSetTextFieldText(panel->fileField, item->text); } } else { WMSetTextFieldText(panel->fileField, rest); } } void WMSetFilePanelCanChooseDirectories(WMFilePanel * panel, Bool flag) { panel->flags.canChooseDirectories = ((flag == 0) ? 0 : 1); } void WMSetFilePanelCanChooseFiles(WMFilePanel * panel, Bool flag) { panel->flags.canChooseFiles = ((flag == 0) ? 0 : 1); } void WMSetFilePanelAutoCompletion(WMFilePanel * panel, Bool flag) { panel->flags.autoCompletion = ((flag == 0) ? 0 : 1); } char *WMGetFilePanelFileName(WMFilePanel * panel) { return getCurrentFileName(panel); } void WMSetFilePanelAccessoryView(WMFilePanel * panel, WMView * view) { WMView *v; panel->accessoryView = view; v = WMWidgetView(panel->win); W_ReparentView(view, v, 0, 0); W_MoveView(view, (v->size.width - v->size.width) / 2, 300); } WMView *WMGetFilePanelAccessoryView(WMFilePanel * panel) { return panel->accessoryView; } static char *get_name_from_path(const char *path) { int size; assert(path != NULL); size = strlen(path); /* remove trailing / */ while (size > 0 && path[size - 1] == '/') size--; /* directory was root */ if (size == 0) return wstrdup("/"); while (size > 0 && path[size - 1] != '/') size--; return wstrdup(&(path[size])); } static Bool filterFileName(WMFilePanel * panel, const char *file, Bool isDirectory) { return True; } #define CAST(item) (*((WMListItem**)item)) static int comparer(const void *a, const void *b) { if (CAST(a)->isBranch == CAST(b)->isBranch) return (strcmp(CAST(a)->text, CAST(b)->text)); if (CAST(a)->isBranch) return (-1); return (1); } #undef CAST static void listDirectoryOnColumn(WMFilePanel * panel, int column, const char *path) { WMBrowser *bPtr = panel->browser; struct dirent *dentry; DIR *dir; struct stat stat_buf; char pbuf[PATH_MAX + 16]; char *name; assert(column >= 0); assert(path != NULL); /* put directory name in the title */ name = get_name_from_path(path); WMSetBrowserColumnTitle(bPtr, column, name); wfree(name); dir = opendir(path); if (!dir) { #ifdef VERBOSE printf(_("WINGs: could not open directory %s\n"), path); #endif return; } /* list contents in the column */ while ((dentry = readdir(dir))) { if (strcmp(dentry->d_name, ".") == 0 || strcmp(dentry->d_name, "..") == 0) continue; if (wstrlcpy(pbuf, path, sizeof(pbuf)) >= sizeof(pbuf)) goto out; if (strcmp(path, "/") != 0 && wstrlcat(pbuf, "/", sizeof(pbuf)) >= sizeof(pbuf)) goto out; if (wstrlcat(pbuf, dentry->d_name, sizeof(pbuf)) >= sizeof(pbuf)) goto out; if (stat(pbuf, &stat_buf) != 0) { #ifdef VERBOSE printf(_("WINGs: could not stat %s\n"), pbuf); #endif continue; } else { int isDirectory; isDirectory = S_ISDIR(stat_buf.st_mode); if (filterFileName(panel, dentry->d_name, isDirectory)) WMInsertBrowserItem(bPtr, column, -1, dentry->d_name, isDirectory); } } WMSortBrowserColumnWithComparer(bPtr, column, comparer); out: closedir(dir); } static void fillColumn(WMBrowserDelegate * self, WMBrowser * bPtr, int column, WMList * list) { char *path; WMFilePanel *panel; if (column > 0) { path = WMGetBrowserPathToColumn(bPtr, column - 1); } else { path = wstrdup("/"); } panel = WMGetHangedData(bPtr); listDirectoryOnColumn(panel, column, path); wfree(path); } static void browserDClick(WMWidget *widget, void *p_panel) { WMFilePanel *panel = p_panel; WMPerformButtonClick(panel->okButton); } static void browserClick(WMWidget *widget, void *p_panel) { WMBrowser *bPtr = (WMBrowser *) widget; WMFilePanel *panel = p_panel; int col = WMGetBrowserSelectedColumn(bPtr); WMListItem *item = WMGetBrowserSelectedItemInColumn(bPtr, col); if (!item || item->isBranch) WMSetTextFieldText(panel->fileField, NULL); else { WMSetTextFieldText(panel->fileField, item->text); } } static void showError(WMScreen * scr, WMWindow * owner, const char *s, const char *file) { char *errStr; if (file) { errStr = wmalloc(strlen(file) + strlen(s) + 1); sprintf(errStr, s, file); } else { errStr = wstrdup(s); } WMRunAlertPanel(scr, owner, _("Error"), errStr, _("OK"), NULL, NULL); wfree(errStr); } static void createDir(WMWidget *widget, void *p_panel) { WMFilePanel *panel = p_panel; char *dirName, *directory, *file; size_t slen; WMScreen *scr = WMWidgetScreen(panel->win); dirName = WMRunInputPanel(scr, panel->win, _("Create Directory"), _("Enter directory name"), "", _("OK"), _("Cancel")); if (!dirName) return; /* if `dirName' is an absolute path, don't mind `directory'. * normalize as needed (possibly not needed at all?) */ normalizePath(dirName); if (*dirName != '/') { directory = getCurrentFileName(panel); normalizePath(directory); } else { directory = NULL; } slen = strlen(dirName) + (directory ? strlen(directory) + 1 /* "/" */ : 0) + 1 /* NULL */; file = wmalloc(slen); if (directory && (wstrlcat(file, directory, slen) >= slen || wstrlcat(file, "/", slen) >= slen)) goto out; if (wstrlcat(file, dirName, slen) >= slen) goto out; if (mkdir(file, 00777) != 0) { #define __msgbufsize__ 512 char *buffer = wmalloc(__msgbufsize__); snprintf(buffer, __msgbufsize__, _("Can not create %s: %s"), file, strerror(errno)); showError(scr, panel->win, buffer, NULL); wfree(buffer); #undef __msgbufsize__ } else { WMSetFilePanelDirectory(panel, file); } out: if (dirName) wfree(dirName); if (directory) wfree(directory); if (file) wfree(file); } /* *---------------------------------------------------------------------- * normalizePath-- * Remove multiple consecutive and any trailing slashes from * a path. *---------------------------------------------------------------------- */ static void normalizePath(char *s) { int i, j, found; found = 0; for (i = 0; s[i]; (void)(!found && i++)) { found = 0; if (s[i] == '/' && s[i+1] == '/') { int nslash = 1; found = 1; i++; while (s[i+nslash] == '/') nslash++; for (j = 0; s[i+j+nslash]; j++) s[i+j] = s[i+j+nslash]; s[i+j] = '\0'; } } if (i > 1 && s[--i] == '/') s[i] = '\0'; } static void deleteFile(WMWidget *widget, void *p_panel) { WMFilePanel *panel = p_panel; char *file, *buffer; struct stat filestat; WMScreen *scr = WMWidgetScreen(panel->win); #define __msgbufsize__ 512 buffer = wmalloc(__msgbufsize__); file = getCurrentFileName(panel); normalizePath(file); if (stat(file, &filestat) == -1) { snprintf(buffer, __msgbufsize__, _("Can not find %s: %s"), file, strerror(errno)); showError(scr, panel->win, buffer, NULL); goto out; } snprintf(buffer, __msgbufsize__, _("Delete %s %s?"), S_ISDIR(filestat.st_mode) ? _("directory") : _("file"), file); if (!WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win, _("Warning"), buffer, _("OK"), _("Cancel"), NULL)) { if (remove(file) == -1) { snprintf(buffer, __msgbufsize__, _("Removing %s failed: %s"), file, strerror(errno)); showError(scr, panel->win, buffer, NULL); } else { char *s = strrchr(file, '/'); if (s) s[0] = 0; WMSetFilePanelDirectory(panel, file); } } out: if (buffer) wfree(buffer); if (file) wfree(file); #undef __msgbufsize__ } static void goUnmount(WMWidget *widget, void *p_panel) { } static void goFloppy(WMWidget *widget, void *p_panel) { WMFilePanel *panel = p_panel; struct stat filestat; WMScreen *scr = WMWidgetScreen(panel->win); if (stat(WINGsConfiguration.floppyPath, &filestat)) { showError(scr, panel->win, _("An error occured browsing '%s'."), WINGsConfiguration.floppyPath); return; } else if (!S_ISDIR(filestat.st_mode)) { showError(scr, panel->win, _("'%s' is not a directory."), WINGsConfiguration.floppyPath); return; } WMSetFilePanelDirectory(panel, WINGsConfiguration.floppyPath); } static void goHome(WMWidget *widget, void *p_panel) { WMFilePanel *panel = p_panel; char *home; /* home is statically allocated. Don't free it! */ home = wgethomedir(); if (!home) return; WMSetFilePanelDirectory(panel, home); } 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 - 245), newHeight - (PHEIGHT - 325)); WMMoveWidget(pPtr->cancelButton, newWidth - (PWIDTH - 165), newHeight - (PHEIGHT - 325)); WMMoveWidget(pPtr->trashcanButton, 7, newHeight - (PHEIGHT - 325)); WMMoveWidget(pPtr->createDirButton, 37, newHeight - (PHEIGHT - 325)); WMMoveWidget(pPtr->homeButton, 67, newHeight - (PHEIGHT - 325)); WMMoveWidget(pPtr->disketteButton, 97, newHeight - (PHEIGHT - 325)); WMMoveWidget(pPtr->unmountButton, 127, newHeight - (PHEIGHT - 325)); newColumnCount = (newWidth - 14) / 140; WMSetBrowserMaxVisibleColumns(pPtr->browser, newColumnCount); } } } static char *getCurrentFileName(WMFilePanel * panel) { char *path; char *file; char *ret; size_t slen; path = WMGetBrowserPath(panel->browser); if (!path) return NULL; if (path[strlen(path) -1] != '/') return path; file = WMGetTextFieldText(panel->fileField); slen = strlen(path) + strlen(file) + 1; ret = wmalloc(slen); if (*file != '/' && wstrlcat(ret, path, slen) >= slen) goto error; if (wstrlcat(ret, file, slen) >= slen) goto error; wfree(file); wfree(path); return ret; error: wfree(file); wfree(path); wfree(ret); return NULL; } static Bool validOpenFile(WMFilePanel * panel) { WMListItem *item; int col, haveFile = 0; char *file = WMGetTextFieldText(panel->fileField); if (file[0] != '\0') haveFile = 1; wfree(file); col = WMGetBrowserSelectedColumn(panel->browser); item = WMGetBrowserSelectedItemInColumn(panel->browser, col); if (item) { 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; } return True; } static void buttonClick(WMWidget *widget, void *p_panel) { WMButton *bPtr = (WMButton *) widget; WMFilePanel *panel = p_panel; WMRange range; if (bPtr == panel->okButton) { if (!validOpenFile(panel)) return; if (panel->flags.fileMustExist) { char *file; file = getCurrentFileName(panel); if (access(file, F_OK) != 0) { WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win, _("Error"), _("File does not exist."), _("OK"), NULL, NULL); wfree(file); return; } wfree(file); } panel->flags.canceled = 0; } else panel->flags.canceled = 1; range.count = range.position = 0; WMSelectTextFieldRange(panel->fileField, range); WMBreakModalLoop(WMWidgetScreen(bPtr)); } WindowMaker-0.95.5/WINGs/error.c0000644000175000017500000000516612214432632013215 00000000000000/* * Window Maker miscelaneous function library * * Copyright (c) 1997-2003 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., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include "wconfig.h" #include #include #include #include #include #include #include void __wmessage(const char *func, const char *file, int line, int type, const char *msg, ...) { va_list args; char *buf; static int linemax = 0; int truncated = 0; if (linemax == 0) { #ifdef HAVE_SYSCONF linemax = sysconf(_SC_LINE_MAX); if (linemax == -1) { /* I'd like to know of this ever fires */ fprintf(stderr, "%s %d: sysconf(_SC_LINE_MAX) returned error\n", __FILE__, __LINE__); linemax = 512; } #else /* !HAVE_SYSCONF */ fprintf(stderr, "%s %d: Your system does not have sysconf(3); " "let wmaker-dev@windowmaker.org know.\n", __FILE__, __LINE__); linemax = 512; #endif /* HAVE_SYSCONF */ } buf = wmalloc(linemax); fflush(stdout); /* message format: (function(file:line): : "\n" */ strncat(buf, _WINGS_progname ? _WINGS_progname : "WINGs", linemax - 1); snprintf(buf + strlen(buf), linemax - strlen(buf), "(%s(%s:%d))", func, file, line); strncat(buf, ": ", linemax - 1 - strlen(buf)); switch (type) { case WMESSAGE_TYPE_FATAL: strncat(buf, _("fatal error: "), linemax - 1 - strlen(buf)); break; case WMESSAGE_TYPE_ERROR: strncat(buf, _("error: "), linemax - 1 - strlen(buf)); break; case WMESSAGE_TYPE_WARNING: strncat(buf, _("warning: "), linemax - 1 - strlen(buf)); break; case WMESSAGE_TYPE_MESSAGE: /* FALLTHROUGH */ default: /* should not happen, but doesn't hurt either */ break; } va_start(args, msg); if (vsnprintf(buf + strlen(buf), linemax - strlen(buf), msg, args) >= linemax - strlen(buf)) truncated = 1; va_end(args); fputs(buf, stderr); if (truncated) fputs("*** message truncated ***", stderr); fputs("\n", stderr); wfree(buf); } WindowMaker-0.95.5/WINGs/string.c0000644000175000017500000002311112214432632013360 00000000000000/* * Until FreeBSD gets their act together; * http://www.mail-archive.com/freebsd-hackers@freebsd.org/msg69469.html */ #if defined( FREEBSD ) # undef _XOPEN_SOURCE #endif #include "wconfig.h" #include #include #include #include #ifdef HAVE_BSD_STRING_H #include #endif #include "WUtil.h" #define PRC_ALPHA 0 #define PRC_BLANK 1 #define PRC_ESCAPE 2 #define PRC_DQUOTE 3 #define PRC_EOS 4 #define PRC_SQUOTE 5 typedef struct { short nstate; short output; } DFA; static DFA mtable[9][6] = { {{3, 1}, {0, 0}, {4, 0}, {1, 0}, {8, 0}, {6, 0}}, {{1, 1}, {1, 1}, {2, 0}, {3, 0}, {5, 0}, {1, 1}}, {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {5, 0}, {1, 1}}, {{3, 1}, {5, 0}, {4, 0}, {1, 0}, {5, 0}, {6, 0}}, {{3, 1}, {3, 1}, {3, 1}, {3, 1}, {5, 0}, {3, 1}}, {{-1, -1}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, /* final state */ {{6, 1}, {6, 1}, {7, 0}, {6, 1}, {5, 0}, {3, 0}}, {{6, 1}, {6, 1}, {6, 1}, {6, 1}, {5, 0}, {6, 1}}, {{-1, -1}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, /* final state */ }; char *wtokennext(char *word, char **next) { char *ptr; char *ret, *t; int state, ctype; t = ret = wmalloc(strlen(word) + 1); ptr = word; state = 0; while (1) { if (*ptr == 0) ctype = PRC_EOS; else if (*ptr == '\\') ctype = PRC_ESCAPE; else if (*ptr == '"') ctype = PRC_DQUOTE; else if (*ptr == '\'') ctype = PRC_SQUOTE; else if (*ptr == ' ' || *ptr == '\t') ctype = PRC_BLANK; else ctype = PRC_ALPHA; if (mtable[state][ctype].output) { *t = *ptr; t++; *t = 0; } state = mtable[state][ctype].nstate; ptr++; if (mtable[state][0].output < 0) { break; } } if (*ret == 0) { wfree(ret); ret = NULL; } if (ctype == PRC_EOS) *next = NULL; else *next = ptr; return ret; } /* separate a string in tokens, taking " and ' into account */ void wtokensplit(char *command, char ***argv, int *argc) { char *token, *line; int count; count = 0; line = command; do { token = wtokennext(line, &line); if (token) { if (count == 0) *argv = wmalloc(sizeof(char **)); else *argv = wrealloc(*argv, (count + 1) * sizeof(char **)); (*argv)[count++] = token; } } while (token != NULL && line != NULL); *argc = count; } char *wtokenjoin(char **list, int count) { int i, j; char *flat_string, *wspace; j = 0; for (i = 0; i < count; i++) { if (list[i] != NULL && list[i][0] != 0) { j += strlen(list[i]); if (strpbrk(list[i], " \t")) j += 2; } } flat_string = wmalloc(j + count + 1); for (i = 0; i < count; i++) { if (list[i] != NULL && list[i][0] != 0) { if (i > 0 && wstrlcat(flat_string, " ", j + count + 1) >= j + count + 1) goto error; wspace = strpbrk(list[i], " \t"); if (wspace && wstrlcat(flat_string, "\"", j + count + 1) >= j + count + 1) goto error; if (wstrlcat(flat_string, list[i], j + count + 1) >= j + count + 1) goto error; if (wspace && wstrlcat(flat_string, "\"", j + count + 1) >= j + count + 1) goto error; } } return flat_string; error: wfree(flat_string); return NULL; } void wtokenfree(char **tokens, int count) { while (count--) wfree(tokens[count]); wfree(tokens); } char *wtrimspace(const char *s) { const char *t; if (s == NULL) return NULL; while (isspace(*s) && *s) s++; t = s + strlen(s) - 1; while (t > s && isspace(*t)) t--; return wstrndup(s, t - s + 1); } char *wstrdup(const char *str) { assert(str != NULL); return strcpy(wmalloc(strlen(str) + 1), str); } char *wstrndup(const char *str, size_t len) { char *copy; assert(str != NULL); len = WMIN(len, strlen(str)); copy = strncpy(wmalloc(len + 1), str, len); copy[len] = 0; return copy; } char *wstrconcat(const char *str1, const char *str2) { char *str; size_t slen; if (!str1 && str2) return wstrdup(str2); else if (str1 && !str2) return wstrdup(str1); else if (!str1 && !str2) return NULL; slen = strlen(str1) + strlen(str2) + 1; str = wmalloc(slen); if (wstrlcpy(str, str1, slen) >= slen || wstrlcat(str, str2, slen) >= slen) { wfree(str); return NULL; } return str; } char *wstrappend(char *dst, const char *src) { size_t slen; if (!src || *src == 0) return dst; else if (!dst) return wstrdup(src); slen = strlen(dst) + strlen(src) + 1; dst = wrealloc(dst, slen); if (wstrlcat(dst, src, slen) >= slen) return NULL; return dst; } #if HAVE_STRLCAT size_t wstrlcat(char *dst, const char *src, size_t siz) { return strlcat(dst, src, siz); } #else /* $OpenBSD: strlcat.c,v 1.13 2005/08/08 08:05:37 espie Exp $ */ /* * Copyright (c) 1998 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* * Appends src to string dst of size siz (unlike strncat, siz is the * full size of dst, not space left). At most siz-1 characters * will be copied. Always NUL terminates (unless siz <= strlen(dst)). * Returns strlen(src) + MIN(siz, strlen(initial dst)). * If retval >= siz, truncation occurred. */ size_t wstrlcat(char *dst, const char *src, size_t siz) { char *d = dst; const char *s = src; size_t n = siz; size_t dlen; /* Find the end of dst and adjust bytes left but don't go past end */ while (n-- != 0 && *d != '\0') d++; dlen = d - dst; n = siz - dlen; if (n == 0) return(dlen + strlen(s)); while (*s != '\0') { if (n != 1) { *d++ = *s; n--; } s++; } *d = '\0'; return(dlen + (s - src)); /* count does not include NUL */ } #endif /* HAVE_STRLCAT */ #if HAVE_STRLCPY size_t wstrlcpy(char *dst, const char *src, size_t siz) { return strlcpy(dst, src, siz); } #else /* $OpenBSD: strlcpy.c,v 1.11 2006/05/05 15:27:38 millert Exp $ */ /* * Copyright (c) 1998 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* * Copy src to string dst of size siz. At most siz-1 characters * will be copied. Always NUL terminates (unless siz == 0). * Returns strlen(src); if retval >= siz, truncation occurred. */ size_t wstrlcpy(char *dst, const char *src, size_t siz) { char *d = dst; const char *s = src; size_t n = siz; /* Copy as many bytes as will fit */ if (n != 0) { while (--n != 0) { if ((*d++ = *s++) == '\0') break; } } /* Not enough room in dst, add NUL and traverse rest of src */ if (n == 0) { if (siz != 0) *d = '\0'; /* NUL-terminate dst */ while (*s++) ; } return(s - src - 1); /* count does not include NUL */ } #endif /* HAVE_STRLCPY */ /* transform `s' so that the result is safe to pass to the shell as an argument. * returns a newly allocated string. * with very heavy inspirations from NetBSD's shquote(3). */ char *wshellquote(const char *s) { char *p, *r, *last, *ret; size_t slen; int needs_quoting; if (!s) return NULL; needs_quoting = !*s; /* the empty string does need quoting */ /* do not quote if consists only of the following characters */ for (p = (char *)s; *p && !needs_quoting; p++) { needs_quoting = !(isalnum(*p) || (*p == '+') || (*p == '/') || (*p == '.') || (*p == ',') || (*p == '-')); } if (!needs_quoting) return wstrdup(s); for (slen = 0, p = (char *)s; *p; p++) /* count space needed (worst case) */ slen += *p == '\'' ? 4 : 1; /* every single ' becomes ''\' */ slen += 2 /* leading + trailing "'" */ + 1 /* NULL */; ret = r = wmalloc(slen); p = (char *)s; last = p; if (*p != '\'') /* if string doesn't already begin with "'" */ *r++ ='\''; /* start putting it in quotes */ while (*p) { last = p; if (*p == '\'') { /* turn each ' into ''\' */ if (p != s) /* except if it's the first ', in which case */ *r++ = '\''; /* only escape it */ *r++ = '\\'; *r++ = '\''; while (*++p && *p == '\'') { /* keep turning each consecutive 's into \' */ *r++ = '\\'; *r++ = '\''; } if (*p) /* if more input follows, terminate */ *r++ = '\''; /* what we have so far */ } else { *r++ = *p++; } } if (*last != '\'') /* if the last one isn't already a ' */ *r++ = '\''; /* terminate the whole shebang */ *r = '\0'; return ret; /* technically, we lose (but not leak) a couple of */ /* bytes (twice the number of consecutive 's in the */ /* input or so), but since these are relatively rare */ /* and short-lived strings, not sure if a trip to */ /* wstrdup+wfree worths the gain. */ } WindowMaker-0.95.5/WINGs/wruler.c0000644000175000017500000003216512214432632013403 00000000000000/* * WINGs WMRuler: nifty ruler widget for WINGs :-) * * Copyright (c) 1999-2000 Nwanua Elumeze * * 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., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include "WINGsP.h" #include "wconfig.h" #define MIN_DOC_WIDTH 10 typedef struct W_Ruler { W_Class widgetClass; W_View *view; W_View *pview; /* the parent's view (for drawing the line) */ WMAction *moveAction; /* what to when while moving */ WMAction *releaseAction; /* what to do when released */ void *clientData; WMColor *fg; GC fgGC, bgGC; WMFont *font; WMRulerMargins margins; int offset; int motion; /* the position of the _moving_ marker(s) */ int end; /* the last tick on the baseline (restrict markers to it) */ Pixmap drawBuffer; struct { unsigned int whichMarker:3; /* 0, 1, 2, 3, 4, 5, 6 */ /* none, left, right, first, body, tabstop, first & body */ unsigned int buttonPressed:1; unsigned int redraw:1; unsigned int RESERVED:27; } flags; } Ruler; /* Marker for left margin |\ | \ |__\ | | */ static void drawLeftMarker(Ruler * rPtr) { XPoint points[4]; int xpos = (rPtr->flags.whichMarker == 1 ? rPtr->motion : rPtr->margins.left); XDrawLine(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->fgGC, xpos, 8, xpos, 22); points[0].x = xpos; points[0].y = 1; points[1].x = points[0].x + 6; points[1].y = 8; points[2].x = points[0].x + 6; points[2].y = 9; points[3].x = points[0].x; points[3].y = 9; XFillPolygon(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->fgGC, points, 4, Convex, CoordModeOrigin); } /* Marker for right margin /| / | /__| | | */ static void drawRightMarker(Ruler * rPtr) { XPoint points[4]; int xpos = (rPtr->flags.whichMarker == 2 ? rPtr->motion : rPtr->margins.right); XDrawLine(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->fgGC, xpos, 8, xpos, 22); points[0].x = xpos + 1; points[0].y = 0; points[1].x = points[0].x - 6; points[1].y = 7; points[2].x = points[0].x - 6; points[2].y = 9; points[3].x = points[0].x; points[3].y = 9; XFillPolygon(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->fgGC, points, 4, Convex, CoordModeOrigin); } /* Marker for first line only _____ |___| | */ static void drawFirstMarker(Ruler * rPtr) { int xpos = ((rPtr->flags.whichMarker == 3 || rPtr->flags.whichMarker == 6) ? rPtr->motion : rPtr->margins.first); XFillRectangle(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->fgGC, xpos - 5, 10, 11, 5); XDrawLine(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->fgGC, xpos, 12, xpos, 22); } /* Marker for rest of body _____ \ / \./ */ static void drawBodyMarker(Ruler * rPtr) { XPoint points[4]; int xpos = ((rPtr->flags.whichMarker == 4 || rPtr->flags.whichMarker == 6) ? rPtr->motion : rPtr->margins.body); points[0].x = xpos - 5; points[0].y = 16; points[1].x = points[0].x + 11; points[1].y = 16; points[2].x = points[0].x + 5; points[2].y = 22; XFillPolygon(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->fgGC, points, 3, Convex, CoordModeOrigin); } static void createDrawBuffer(Ruler * rPtr) { if (!rPtr->view->flags.realized) return; if (rPtr->drawBuffer) XFreePixmap(rPtr->view->screen->display, rPtr->drawBuffer); rPtr->drawBuffer = XCreatePixmap(rPtr->view->screen->display, rPtr->view->window, rPtr->view->size.width, 40, rPtr->view->screen->depth); XFillRectangle(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->bgGC, 0, 0, rPtr->view->size.width, 40); } static void drawRulerOnPixmap(Ruler * rPtr) { int i, j, w, m; char c[3]; int marks[9] = { 11, 3, 5, 3, 7, 3, 5, 3 }; if (!rPtr->drawBuffer || !rPtr->view->flags.realized) return; XFillRectangle(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->bgGC, 0, 0, rPtr->view->size.width, 40); WMDrawString(rPtr->view->screen, rPtr->drawBuffer, rPtr->fg, rPtr->font, rPtr->margins.left + 2, 26, _("0 inches"), 10); /* marker ticks */ i = j = m = 0; w = rPtr->view->size.width - rPtr->margins.left; while (m < w) { XDrawLine(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->fgGC, rPtr->margins.left + m, 23, rPtr->margins.left + m, marks[i % 8] + 23); if (i != 0 && i % 8 == 0) { if (j < 10) snprintf(c, 3, "%d", ++j); else snprintf(c, 3, "%2d", ++j); WMDrawString(rPtr->view->screen, rPtr->drawBuffer, rPtr->fg, rPtr->font, rPtr->margins.left + 2 + m, 26, c, 2); } m = (++i) * 10; } rPtr->end = rPtr->margins.left + m - 10; if (rPtr->margins.right > rPtr->end) rPtr->margins.right = rPtr->end; /* base line */ XDrawLine(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->fgGC, rPtr->margins.left, 22, rPtr->margins.left + m - 10, 22); drawLeftMarker(rPtr); drawRightMarker(rPtr); drawFirstMarker(rPtr); drawBodyMarker(rPtr); rPtr->flags.redraw = False; } static void paintRuler(Ruler * rPtr) { if (!rPtr->drawBuffer || !rPtr->view->flags.realized) return; if (rPtr->flags.redraw) drawRulerOnPixmap(rPtr); XCopyArea(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->view->window, rPtr->bgGC, 0, 0, rPtr->view->size.width, 40, 0, 0); } static Bool verifyMarkerMove(Ruler * rPtr, int x) { if (rPtr->flags.whichMarker < 1 || rPtr->flags.whichMarker > 6) return False; switch (rPtr->flags.whichMarker) { case 1: if (x > rPtr->margins.right - 10 || x < rPtr->offset || rPtr->margins.body + x > rPtr->margins.right - MIN_DOC_WIDTH || rPtr->margins.first + x > rPtr->margins.right - MIN_DOC_WIDTH) return False; break; case 2: if (x < rPtr->margins.first + MIN_DOC_WIDTH || x < rPtr->margins.body + MIN_DOC_WIDTH || x < rPtr->margins.left + MIN_DOC_WIDTH || x > rPtr->end) /*rPtr->view->size.width) */ return False; break; case 3: if (x >= rPtr->margins.right - MIN_DOC_WIDTH || x < rPtr->margins.left) return False; break; case 4: if (x >= rPtr->margins.right - MIN_DOC_WIDTH || x < rPtr->margins.left) return False; break; case 6: if (x >= rPtr->margins.right - MIN_DOC_WIDTH || x < rPtr->margins.left) return False; break; default: return False; } rPtr->motion = x; return True; } static int whichMarker(Ruler * rPtr, int x, int y) { if (x < rPtr->offset || y > 22) return 0; if (rPtr->margins.left - x >= -6 && y <= 9 && (rPtr->margins.left - x <= 0) && y >= 4) { rPtr->motion = rPtr->margins.left; return 1; } if (rPtr->margins.right - x >= -1 && y <= 11 && rPtr->margins.right - x <= 5 && y >= 4) { rPtr->motion = rPtr->margins.right; return 2; } #if 0 /* both first and body? */ if (rPtr->margins.first - x <= 4 && rPtr->margins.first - x >= -5 && rPtr->margins.body - x <= 4 && rPtr->margins.body - x >= -5 && y >= 15 && y <= 17) { rPtr->motion = rPtr->margins.first; return 6; } #endif if (rPtr->margins.first - x <= 4 && y <= 15 && rPtr->margins.first - x >= -5 && y >= 10) { rPtr->motion = rPtr->margins.first; return 3; } if (rPtr->margins.body - x <= 4 && y <= 21 && rPtr->margins.body - x >= -5 && y >= 17) { rPtr->motion = rPtr->margins.body; return 4; } /* do tabs (5) */ return 0; } static void rulerDidResize(W_ViewDelegate * self, WMView * view) { Ruler *rPtr = (Ruler *) view->self; createDrawBuffer(rPtr); rPtr->flags.redraw = True; paintRuler(rPtr); } static void handleEvents(XEvent * event, void *data) { Ruler *rPtr = (Ruler *) data; switch (event->type) { case Expose: rulerDidResize(rPtr->view->delegate, rPtr->view); break; case MotionNotify: if (rPtr->flags.buttonPressed && (event->xmotion.state & Button1Mask)) { if (verifyMarkerMove(rPtr, event->xmotion.x)) { GC gc = WMColorGC(WMDarkGrayColor(rPtr->view->screen)); if (rPtr->moveAction) (rPtr->moveAction) (rPtr, rPtr->clientData); rPtr->flags.redraw = True; paintRuler(rPtr); XSetLineAttributes(rPtr->view->screen->display, gc, 1, LineSolid, CapNotLast, JoinMiter); XDrawLine(rPtr->pview->screen->display, rPtr->pview->window, gc, rPtr->motion + 1, 40, rPtr->motion + 1, rPtr->pview->size.height - 5); } } break; case ButtonPress: if (event->xbutton.button != Button1) return; rPtr->flags.buttonPressed = True; rPtr->flags.whichMarker = whichMarker(rPtr, event->xmotion.x, event->xmotion.y); break; case ButtonRelease: if (event->xbutton.button != Button1) return; rPtr->flags.buttonPressed = False; switch (rPtr->flags.whichMarker) { case 1:{ int change = rPtr->margins.left - rPtr->motion; rPtr->margins.first -= change; rPtr->margins.body -= change; rPtr->margins.left = rPtr->motion; rPtr->flags.redraw = True; paintRuler(rPtr); break; } case 2: rPtr->margins.right = rPtr->motion; break; case 3: rPtr->margins.first = rPtr->motion; break; case 4: rPtr->margins.body = rPtr->motion; break; case 6: rPtr->margins.first = rPtr->margins.body = rPtr->motion; break; } if (rPtr->releaseAction) (rPtr->releaseAction) (rPtr, rPtr->clientData); break; } } W_ViewDelegate _RulerViewDelegate = { NULL, NULL, rulerDidResize, NULL, NULL }; WMRuler *WMCreateRuler(WMWidget * parent) { Ruler *rPtr = wmalloc(sizeof(Ruler)); unsigned int w = WMWidgetWidth(parent); rPtr->widgetClass = WC_Ruler; rPtr->view = W_CreateView(W_VIEW(parent)); if (!rPtr->view) { wfree(rPtr); return NULL; } rPtr->view->self = rPtr; rPtr->drawBuffer = (Pixmap) NULL; W_ResizeView(rPtr->view, w, 40); WMCreateEventHandler(rPtr->view, ExposureMask | StructureNotifyMask | EnterWindowMask | LeaveWindowMask | FocusChangeMask | ButtonReleaseMask | ButtonPressMask | KeyReleaseMask | KeyPressMask | Button1MotionMask, handleEvents, rPtr); rPtr->view->delegate = &_RulerViewDelegate; rPtr->fg = WMBlackColor(rPtr->view->screen); rPtr->fgGC = WMColorGC(rPtr->fg); rPtr->bgGC = WMColorGC(WMGrayColor(rPtr->view->screen)); rPtr->font = WMSystemFontOfSize(rPtr->view->screen, 8); rPtr->offset = 22; rPtr->margins.left = 22; rPtr->margins.body = 22; rPtr->margins.first = 42; rPtr->margins.right = (w < 502 ? w : 502); rPtr->margins.tabs = NULL; rPtr->flags.whichMarker = 0; /* none */ rPtr->flags.buttonPressed = False; rPtr->flags.redraw = True; rPtr->moveAction = NULL; rPtr->releaseAction = NULL; rPtr->pview = W_VIEW(parent); return rPtr; } void WMSetRulerMargins(WMRuler * rPtr, WMRulerMargins margins) { if (!rPtr) return; rPtr->margins.left = margins.left + rPtr->offset; rPtr->margins.right = margins.right + rPtr->offset; rPtr->margins.first = margins.first + rPtr->offset; rPtr->margins.body = margins.body + rPtr->offset; rPtr->margins.tabs = margins.tabs; /*for loop */ rPtr->flags.redraw = True; paintRuler(rPtr); } WMRulerMargins *WMGetRulerMargins(WMRuler * rPtr) { WMRulerMargins *margins = wmalloc(sizeof(WMRulerMargins)); if (!rPtr) { margins->first = margins->body = margins->left = 0; margins->right = 100; return margins; } margins->left = rPtr->margins.left - rPtr->offset; margins->right = rPtr->margins.right - rPtr->offset; margins->first = rPtr->margins.first - rPtr->offset; margins->body = rPtr->margins.body - rPtr->offset; /*for */ margins->tabs = rPtr->margins.tabs; return margins; } Bool WMIsMarginEqualToMargin(WMRulerMargins * aMargin, WMRulerMargins * anotherMargin) { if (aMargin == anotherMargin) return True; else if (!aMargin || !anotherMargin) return False; if (aMargin->left != anotherMargin->left) return False; if (aMargin->first != anotherMargin->first) return False; if (aMargin->body != anotherMargin->body) return False; if (aMargin->right != anotherMargin->right) return False; return True; } void WMSetRulerOffset(WMRuler * rPtr, int pixels) { if (!rPtr || pixels < 0 || pixels + MIN_DOC_WIDTH >= rPtr->view->size.width) return; rPtr->offset = pixels; /*rulerDidResize(rPtr, rPtr->view); */ } int WMGetRulerOffset(WMRuler * rPtr) { if (!rPtr) return 0; /* what value should return if no ruler? -1 or 0? */ return rPtr->offset; } void WMSetRulerReleaseAction(WMRuler * rPtr, WMAction * action, void *clientData) { if (!rPtr) return; rPtr->releaseAction = action; rPtr->clientData = clientData; } void WMSetRulerMoveAction(WMRuler * rPtr, WMAction * action, void *clientData) { if (!rPtr) return; rPtr->moveAction = action; rPtr->clientData = clientData; } /* _which_ one was released */ int WMGetReleasedRulerMargin(WMRuler * rPtr) { if (!rPtr) return 0; return rPtr->flags.whichMarker; } /* _which_ one is being grabbed */ int WMGetGrabbedRulerMargin(WMRuler * rPtr) { if (!rPtr) return 0; return rPtr->flags.whichMarker; } WindowMaker-0.95.5/WINGs/wsplitview.c0000644000175000017500000004123412214432632014275 00000000000000 #include "WINGsP.h" /* char *WMSplitViewDidResizeSubviewsNotification = "WMSplitViewDidResizeSubviewsNotification"; char *WMSplitViewWillResizeSubviewsNotification = "WMSplitViewWillResizeSubviewsNotification"; */ typedef struct W_SplitViewSubview { WMView *view; int minSize; int maxSize; int size; int pos; } W_SplitViewSubview; typedef struct W_SplitView { W_Class widgetClass; W_View *view; WMArray *subviews; WMSplitViewConstrainProc *constrainProc; struct { unsigned int vertical:1; unsigned int adjustOnPaint:1; unsigned int subviewsWereManuallyMoved:1; } flags; /* WMSplitViewResizeSubviewsProc *resizeSubviewsProc; */ } W_SplitView; #define DIVIDER_THICKNESS 8 #define MIN_SUBVIEW_SIZE 4 #define MAX_SUBVIEW_SIZE -1 /* TODO: rewrite --Dan */ #define _GetSubviewsCount() WMGetArrayItemCount(sPtr->subviews) #define _AddPSubviewStruct(P) \ (WMAddToArray(sPtr->subviews,((void*)P))) #define _GetPSubviewStructAt(i) \ ((W_SplitViewSubview*)WMGetFromArray(sPtr->subviews,(i))) #define _GetSubviewAt(i) \ (((W_SplitViewSubview*)WMGetFromArray(sPtr->subviews,(i)))->view) #define _GetMinSizeAt(i) \ (((W_SplitViewSubview*)WMGetFromArray(sPtr->subviews,(i)))->minSize) #define _GetMaxSizeAt(i) \ (((W_SplitViewSubview*)WMGetFromArray(sPtr->subviews,(i)))->maxSize) #define _GetSizeAt(i) \ (((W_SplitViewSubview*)WMGetFromArray(sPtr->subviews,(i)))->size) #define _GetPosAt(i) \ (((W_SplitViewSubview*)WMGetFromArray(sPtr->subviews,(i)))->pos) #define _GetSplitViewSize() \ ((sPtr->flags.vertical) ? sPtr->view->size.width : sPtr->view->size.height) static void destroySplitView(WMSplitView * sPtr); static void paintSplitView(WMSplitView * sPtr); static void handleEvents(XEvent * event, void *data); static void handleActionEvents(XEvent * event, void *data); static void getConstraints(WMSplitView * sPtr, int index, int *minSize, int *maxSize) { *minSize = MIN_SUBVIEW_SIZE; *maxSize = MAX_SUBVIEW_SIZE; if (sPtr->constrainProc) (*sPtr->constrainProc) (sPtr, index, minSize, maxSize); if (*minSize < MIN_SUBVIEW_SIZE) *minSize = MIN_SUBVIEW_SIZE; if (*maxSize < MIN_SUBVIEW_SIZE) *maxSize = MAX_SUBVIEW_SIZE; else if (*maxSize < *minSize) *maxSize = *minSize; } static void updateConstraints(WMSplitView * sPtr) { W_SplitViewSubview *p; int i, count; count = _GetSubviewsCount(); for (i = 0; i < count; i++) { p = _GetPSubviewStructAt(i); getConstraints(sPtr, i, &(p->minSize), &(p->maxSize)); } } static void resizeView(WMSplitView * sPtr, WMView * view, int size) { int width, height; if (sPtr->flags.vertical) { width = size; height = sPtr->view->size.height; } else { width = sPtr->view->size.width; height = size; } if (view->self) WMResizeWidget(view->self, width, height); else W_ResizeView(view, width, height); } static void reparentView(WMSplitView * sPtr, WMView * view, int pos) { int x, y; if (sPtr->flags.vertical) { x = pos; y = 0; } else { x = 0; y = pos; } W_ReparentView(view, sPtr->view, x, y); } static void moveView(WMSplitView * sPtr, WMView * view, int pos) { int x, y; if (sPtr->flags.vertical) { x = pos; y = 0; } else { x = 0; y = pos; } if (view->self) WMMoveWidget(view->self, x, y); else W_MoveView(view, x, y); } static int checkSizes(WMSplitView * sPtr) { int i, count, offset; W_SplitViewSubview *p; count = _GetSubviewsCount(); offset = 0; for (i = 0; i < count; i++) { p = _GetPSubviewStructAt(i); if (p->size < p->minSize) { offset += p->minSize - p->size; p->size = p->minSize; } else if (p->maxSize != MAX_SUBVIEW_SIZE && p->size > p->maxSize) { offset += p->maxSize - p->size; p->size = p->maxSize; } } return (offset); } static void checkPositions(WMSplitView * sPtr) { int i, count, pos; W_SplitViewSubview *p; count = _GetSubviewsCount(); pos = 0; for (i = 0; i < count; i++) { p = _GetPSubviewStructAt(i); p->pos = pos; pos += p->size + DIVIDER_THICKNESS; } } static void updateSubviewsGeom(WMSplitView * sPtr) { int i, count; W_SplitViewSubview *p; count = _GetSubviewsCount(); for (i = 0; i < count; i++) { p = _GetPSubviewStructAt(i); resizeView(sPtr, p->view, p->size); moveView(sPtr, p->view, p->pos); } } static int getTotalSize(WMSplitView * sPtr) { int i, count, totSize; count = _GetSubviewsCount(); if (!count) return (0); totSize = 0; for (i = 0; i < count; i++) totSize += _GetSizeAt(i) + DIVIDER_THICKNESS; return (totSize - DIVIDER_THICKNESS); } static Bool distributeOffsetEqually(WMSplitView * sPtr, int offset) { W_SplitViewSubview *p; int i, count, sizeChanged, forced; if ((count = _GetSubviewsCount()) < 1) return (True); forced = False; while (offset != 0) { sizeChanged = 0; for (i = 0; i < count && offset != 0; i++) { p = _GetPSubviewStructAt(i); if (offset < 0) { if (p->size > p->minSize) { offset++; p->size--; sizeChanged = 1; } } else if (p->maxSize == MAX_SUBVIEW_SIZE || p->size < p->maxSize) { offset--; p->size++; sizeChanged = 1; } } if (offset != 0 && !sizeChanged) { p = _GetPSubviewStructAt(count - 1); if (offset > 0) { p->size += offset; p->maxSize = MAX_SUBVIEW_SIZE; } offset = 0; forced = True; } } return (forced); } static Bool distributeOffsetFormEnd(WMSplitView * sPtr, int offset) { W_SplitViewSubview *p; int i, count, sizeTmp; if ((count = _GetSubviewsCount()) < 1) return (True); for (i = count - 1; i >= 0 && offset != 0; i--) { p = _GetPSubviewStructAt(i); sizeTmp = p->size; if (offset > 0) { if (p->maxSize == MAX_SUBVIEW_SIZE || p->size + offset < p->maxSize) p->size += offset; else p->size = p->maxSize; } else { if (p->size + offset >= p->minSize) p->size += offset; else p->size = p->minSize; } offset -= p->size - sizeTmp; } return (offset == 0); } static void adjustSplitViewSubviews(WMSplitView * sPtr) { W_SplitViewSubview *p; int i, count, adjSize, adjPad; CHECK_CLASS(sPtr, WC_SplitView); #if 0 printf("---- (adjustSplitViewSubviews - 1) ----\n"); dumpSubviews(sPtr); #endif if ((count = _GetSubviewsCount()) < 1) return; adjSize = (_GetSplitViewSize() - ((count - 1) * DIVIDER_THICKNESS)) / count; adjPad = (_GetSplitViewSize() - ((count - 1) * DIVIDER_THICKNESS)) % count; for (i = 0; i < count; i++) { p = _GetPSubviewStructAt(i); p->size = adjSize; } distributeOffsetEqually(sPtr, adjPad - checkSizes(sPtr)); checkPositions(sPtr); updateSubviewsGeom(sPtr); sPtr->flags.subviewsWereManuallyMoved = 0; #if 0 printf("---- (adjustSplitViewSubviews - 2) ----\n"); dumpSubviews(sPtr); #endif } #if 0 static void handleSubviewResized(void *self, WMNotification * notif) { WMSplitView *sPtr = (WMSplitView *) self; CHECK_CLASS(sPtr, WC_SplitView); if (WMGetNotificationName(notif) == WMViewSizeDidChangeNotification) { W_SplitViewSubview *p; int i, count, done; WMView *view = WMGetNotificationObject(notif); count = _GetSubviewsCount(); done = 0; for (i = 0; i < count; i++) { p = _GetPSubviewStructAt(i); if (p->view == view) { done = 1; break; } } if (done) { /* TODO !!! */ resizeView(sPtr, p->view, p->size); moveView(sPtr, p->view, p->pos); } } } #endif static void handleViewResized(void *self, WMNotification * notification) { WMSplitView *sPtr = (WMSplitView *) self; #if 0 printf("---- (handleViewResized - 1) ----\n"); dumpSubviews(sPtr); #endif updateConstraints(sPtr); checkSizes(sPtr); if (sPtr->constrainProc || sPtr->flags.subviewsWereManuallyMoved) { distributeOffsetFormEnd(sPtr, _GetSplitViewSize() - getTotalSize(sPtr)); checkPositions(sPtr); updateSubviewsGeom(sPtr); } else adjustSplitViewSubviews(sPtr); assert(checkSizes(sPtr) == 0); #if 0 printf("---- (handleViewResized - 2) ----\n"); dumpSubviews(sPtr); #endif } static void paintSplitView(WMSplitView * sPtr) { W_SplitViewSubview *p; W_Screen *scr = sPtr->view->screen; int x, y, i, count; WMPixmap *dimple = scr->scrollerDimple; #if 0 printf("---- (paintSplitView - 1) ----\n"); dumpSubviews(sPtr); #endif if (!sPtr->view->flags.mapped || !sPtr->view->flags.realized) return; XClearWindow(scr->display, sPtr->view->window); count = _GetSubviewsCount(); if (count == 0) return; if (sPtr->flags.adjustOnPaint) { handleViewResized(sPtr, NULL); sPtr->flags.adjustOnPaint = 0; } XSetClipMask(scr->display, scr->clipGC, dimple->mask); if (sPtr->flags.vertical) { x = ((DIVIDER_THICKNESS - dimple->width) / 2); y = (sPtr->view->size.height - dimple->height) / 2; } else { x = (sPtr->view->size.width - dimple->width) / 2; y = ((DIVIDER_THICKNESS - dimple->height) / 2); } for (i = 0; i < count - 1; i++) { p = _GetPSubviewStructAt(i); if (sPtr->flags.vertical) x += p->size; else y += p->size; XSetClipOrigin(scr->display, scr->clipGC, x, y); XCopyArea(scr->display, dimple->pixmap, sPtr->view->window, scr->clipGC, 0, 0, dimple->width, dimple->height, x, y); if (sPtr->flags.vertical) x += DIVIDER_THICKNESS; else y += DIVIDER_THICKNESS; } #if 0 printf("---- (paintSplitView - 2) ----\n"); dumpSubviews(sPtr); #endif } static void drawDragingRectangle(WMSplitView * sPtr, int pos) { int x, y, w, h; if (sPtr->flags.vertical) { x = pos; y = 0; w = DIVIDER_THICKNESS; h = sPtr->view->size.height; } else { x = 0; y = pos; w = sPtr->view->size.width; h = DIVIDER_THICKNESS; } XFillRectangle(sPtr->view->screen->display, sPtr->view->window, sPtr->view->screen->ixorGC, x, y, w, h); } static void getMinMaxDividerCoord(WMSplitView * sPtr, int divider, int *minC, int *maxC) { int relMinC, relMaxC; int totSize = _GetSizeAt(divider) + _GetSizeAt(divider + 1); relMinC = _GetMinSizeAt(divider); if (_GetMaxSizeAt(divider + 1) != MAX_SUBVIEW_SIZE && relMinC < totSize - _GetMaxSizeAt(divider + 1)) relMinC = totSize - _GetMaxSizeAt(divider + 1); relMaxC = totSize - _GetMinSizeAt(divider + 1); if (_GetMaxSizeAt(divider) != MAX_SUBVIEW_SIZE && relMaxC > _GetMaxSizeAt(divider)) relMaxC = _GetMaxSizeAt(divider); *minC = _GetPosAt(divider) + relMinC; *maxC = _GetPosAt(divider) + relMaxC; } static void dragDivider(WMSplitView * sPtr, int clickX, int clickY) { int divider, pos, ofs, done, dragging; int i, count; XEvent ev; WMScreen *scr; int minCoord, maxCoord, coord; if (sPtr->constrainProc) { updateConstraints(sPtr); checkSizes(sPtr); distributeOffsetFormEnd(sPtr, _GetSplitViewSize() - getTotalSize(sPtr)); checkPositions(sPtr); updateSubviewsGeom(sPtr); } scr = sPtr->view->screen; divider = ofs = pos = done = 0; coord = (sPtr->flags.vertical) ? clickX : clickY; count = _GetSubviewsCount(); if (count < 2) return; for (i = 0; i < count - 1; i++) { pos += _GetSizeAt(i) + DIVIDER_THICKNESS; if (coord < pos) { ofs = coord - pos + DIVIDER_THICKNESS; done = 1; break; } divider++; } if (!done) return; getMinMaxDividerCoord(sPtr, divider, &minCoord, &maxCoord); done = 0; dragging = 0; while (!done) { WMMaskEvent(scr->display, ButtonMotionMask | ButtonReleaseMask | ExposureMask, &ev); coord = (sPtr->flags.vertical) ? ev.xmotion.x : ev.xmotion.y; switch (ev.type) { case ButtonRelease: done = 1; if (dragging) drawDragingRectangle(sPtr, pos); break; case MotionNotify: if (dragging) drawDragingRectangle(sPtr, pos); if (coord - ofs < minCoord) pos = minCoord; else if (coord - ofs > maxCoord) pos = maxCoord; else pos = coord - ofs; drawDragingRectangle(sPtr, pos); dragging = 1; break; default: WMHandleEvent(&ev); break; } } if (dragging) { W_SplitViewSubview *p1, *p2; int totSize; p1 = _GetPSubviewStructAt(divider); p2 = _GetPSubviewStructAt(divider + 1); totSize = p1->size + DIVIDER_THICKNESS + p2->size; p1->size = pos - p1->pos; p2->size = totSize - p1->size - DIVIDER_THICKNESS; p2->pos = p1->pos + p1->size + DIVIDER_THICKNESS; resizeView(sPtr, p1->view, p1->size); moveView(sPtr, p2->view, p2->pos); resizeView(sPtr, p2->view, p2->size); sPtr->flags.subviewsWereManuallyMoved = 1; } } static void handleEvents(XEvent * event, void *data) { WMSplitView *sPtr = (WMSplitView *) data; CHECK_CLASS(data, WC_SplitView); switch (event->type) { case Expose: if (event->xexpose.count != 0) break; paintSplitView(sPtr); break; case DestroyNotify: destroySplitView(sPtr); break; } } static void handleActionEvents(XEvent * event, void *data) { CHECK_CLASS(data, WC_SplitView); switch (event->type) { case ButtonPress: if (event->xbutton.button == Button1) dragDivider(data, event->xbutton.x, event->xbutton.y); break; } } static void destroySplitView(WMSplitView * sPtr) { WMFreeArray(sPtr->subviews); WMRemoveNotificationObserver(sPtr); wfree(sPtr); } WMSplitView *WMCreateSplitView(WMWidget * parent) { WMSplitView *sPtr; sPtr = wmalloc(sizeof(WMSplitView)); sPtr->widgetClass = WC_SplitView; sPtr->view = W_CreateView(W_VIEW(parent)); if (!sPtr->view) { wfree(sPtr); return NULL; } sPtr->view->self = sPtr; WMSetViewNotifySizeChanges(sPtr->view, True); WMCreateEventHandler(sPtr->view, ExposureMask | StructureNotifyMask | ClientMessageMask, handleEvents, sPtr); WMCreateEventHandler(sPtr->view, ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask, handleActionEvents, sPtr); WMAddNotificationObserver(handleViewResized, sPtr, WMViewSizeDidChangeNotification, sPtr->view); sPtr->subviews = WMCreateArrayWithDestructor(8, wfree); return sPtr; } void WMAdjustSplitViewSubviews(WMSplitView * sPtr) { CHECK_CLASS(sPtr, WC_SplitView); checkSizes(sPtr); adjustSplitViewSubviews(sPtr); assert(checkSizes(sPtr) == 0); } void WMAddSplitViewSubview(WMSplitView * sPtr, WMView * subview) { int wasMapped, count; W_SplitViewSubview *p; CHECK_CLASS(sPtr, WC_SplitView); p = (W_SplitViewSubview *) wmalloc(sizeof(W_SplitViewSubview)); if (!p) return; wasMapped = subview->flags.mapped; if (wasMapped) W_UnmapView(subview); count = _GetSubviewsCount(); p->view = subview; getConstraints(sPtr, count, &(p->minSize), &(p->maxSize)); if (sPtr->flags.vertical) p->size = subview->size.width; else p->size = subview->size.height; WMAddToArray(sPtr->subviews, p); reparentView(sPtr, subview, 0); /* We should have something like that... WMSetViewNotifySizeChanges(subview, True); WMAddNotificationObserver(handleSubviewResized, sPtr, WMViewSizeDidChangeNotification, subview); WMSetViewNotifyMoveChanges(subview, True); WMAddNotificationObserver(handleSubviewResized, sPtr, WMViewMoveDidChangeNotification, subview); */ if (wasMapped) { W_MapView(subview); sPtr->flags.adjustOnPaint = 1; paintSplitView(sPtr); } else { handleViewResized(sPtr, NULL); } } WMView *WMGetSplitViewSubviewAt(WMSplitView * sPtr, int index) { CHECK_CLASS(sPtr, WC_SplitView); if (index >= 0 && index < _GetSubviewsCount()) return (_GetSubviewAt(index)); else return (NULL); } void WMRemoveSplitViewSubview(WMSplitView * sPtr, WMView * view) { W_SplitViewSubview *p; int i, count; CHECK_CLASS(sPtr, WC_SplitView); /* TODO: rewrite this. This code with macros is getting more complex than it worths */ count = _GetSubviewsCount(); for (i = 0; i < count; i++) { p = _GetPSubviewStructAt(i); if (p->view == view) { WMDeleteFromArray(sPtr->subviews, i); sPtr->flags.adjustOnPaint = 1; paintSplitView(sPtr); break; } } } void WMRemoveSplitViewSubviewAt(WMSplitView * sPtr, int index) { CHECK_CLASS(sPtr, WC_SplitView); /* TODO: same about rewrite */ if (index >= 0 && index < _GetSubviewsCount()) { WMDeleteFromArray(sPtr->subviews, index); sPtr->flags.adjustOnPaint = 1; paintSplitView(sPtr); } } void WMSetSplitViewConstrainProc(WMSplitView * sPtr, WMSplitViewConstrainProc * proc) { CHECK_CLASS(sPtr, WC_SplitView); sPtr->constrainProc = proc; } int WMGetSplitViewSubviewsCount(WMSplitView * sPtr) { CHECK_CLASS(sPtr, WC_SplitView); return (_GetSubviewsCount()); } Bool WMGetSplitViewVertical(WMSplitView * sPtr) { CHECK_CLASS(sPtr, WC_SplitView); return (sPtr->flags.vertical == 1); } void WMSetSplitViewVertical(WMSplitView * sPtr, Bool flag) { int vertical; CHECK_CLASS(sPtr, WC_SplitView); vertical = ((flag == 0) ? 0 : 1); if (sPtr->flags.vertical == vertical) return; sPtr->flags.vertical = vertical; /* if (sPtr->view->flags.mapped && sPtr->view->flags.realized) */ handleViewResized(sPtr, NULL); /* else sPtr->flags.adjustOnPaint = 1; */ } int WMGetSplitViewDividerThickness(WMSplitView * sPtr) { CHECK_CLASS(sPtr, WC_SplitView); return (DIVIDER_THICKNESS); } #if 0 void WMSetSplitViewResizeSubviewsProc(WMSplitView * sPtr, WMSplitViewResizeSubviewsProc * proc) { CHECK_CLASS(sPtr, WC_SplitView); sPtr->resizeSubviewsProc = proc; } #endif WindowMaker-0.95.5/WINGs/misc.c0000644000175000017500000000026612214432632013013 00000000000000 /* Miscelaneous helper functions */ #include "WINGsP.h" WMRange wmkrange(int start, int count) { WMRange range; range.position = start; range.count = count; return range; } WindowMaker-0.95.5/WINGs/hashtable.c0000644000175000017500000002040112214432632014004 00000000000000#include #include #include #include #include #include "WUtil.h" #define INITIAL_CAPACITY 23 typedef struct HashItem { const void *key; const void *data; struct HashItem *next; /* collided item list */ } HashItem; typedef struct W_HashTable { WMHashTableCallbacks callbacks; unsigned itemCount; unsigned size; /* table size */ HashItem **table; } HashTable; #define HASH(table, key) (((table)->callbacks.hash ? \ (*(table)->callbacks.hash)(key) : hashPtr(key)) % (table)->size) #define DUPKEY(table, key) ((table)->callbacks.retainKey ? \ (*(table)->callbacks.retainKey)(key) : (key)) #define RELKEY(table, key) if ((table)->callbacks.releaseKey) \ (*(table)->callbacks.releaseKey)(key) static inline unsigned hashString(const void *param) { const char *key = param; unsigned ret = 0; unsigned ctr = 0; while (*key) { ret ^= *(char *)key++ << ctr; ctr = (ctr + 1) % sizeof(char *); } return ret; } static inline unsigned hashPtr(const void *key) { return ((size_t) key / sizeof(char *)); } static void rellocateItem(WMHashTable * table, HashItem * item) { unsigned h; h = HASH(table, item->key); item->next = table->table[h]; table->table[h] = item; } static void rebuildTable(WMHashTable * table) { HashItem *next; HashItem **oldArray; int i; int oldSize; int newSize; oldArray = table->table; oldSize = table->size; newSize = table->size * 2; table->table = wmalloc(sizeof(char *) * newSize); table->size = newSize; for (i = 0; i < oldSize; i++) { while (oldArray[i] != NULL) { next = oldArray[i]->next; rellocateItem(table, oldArray[i]); oldArray[i] = next; } } wfree(oldArray); } WMHashTable *WMCreateHashTable(WMHashTableCallbacks callbacks) { HashTable *table; table = wmalloc(sizeof(HashTable)); table->callbacks = callbacks; table->size = INITIAL_CAPACITY; table->table = wmalloc(sizeof(HashItem *) * table->size); return table; } void WMResetHashTable(WMHashTable * table) { HashItem *item, *tmp; int i; for (i = 0; i < table->size; i++) { item = table->table[i]; while (item) { tmp = item->next; RELKEY(table, item->key); wfree(item); item = tmp; } } table->itemCount = 0; if (table->size > INITIAL_CAPACITY) { wfree(table->table); table->size = INITIAL_CAPACITY; table->table = wmalloc(sizeof(HashItem *) * table->size); } else { memset(table->table, 0, sizeof(HashItem *) * table->size); } } void WMFreeHashTable(WMHashTable * table) { HashItem *item, *tmp; int i; for (i = 0; i < table->size; i++) { item = table->table[i]; while (item) { tmp = item->next; RELKEY(table, item->key); wfree(item); item = tmp; } } wfree(table->table); wfree(table); } unsigned WMCountHashTable(WMHashTable * table) { return table->itemCount; } void *WMHashGet(WMHashTable * table, const void *key) { unsigned h; HashItem *item; h = HASH(table, key); item = table->table[h]; if (table->callbacks.keyIsEqual) { while (item) { if ((*table->callbacks.keyIsEqual) (key, item->key)) { break; } item = item->next; } } else { while (item) { if (key == item->key) { break; } item = item->next; } } if (item) return (void *)item->data; else return NULL; } Bool WMHashGetItemAndKey(WMHashTable * table, const void *key, void **retItem, void **retKey) { unsigned h; HashItem *item; h = HASH(table, key); item = table->table[h]; if (table->callbacks.keyIsEqual) { while (item) { if ((*table->callbacks.keyIsEqual) (key, item->key)) { break; } item = item->next; } } else { while (item) { if (key == item->key) { break; } item = item->next; } } if (item) { if (retKey) *retKey = (void *)item->key; if (retItem) *retItem = (void *)item->data; return True; } else { return False; } } void *WMHashInsert(WMHashTable * table, const void *key, const void *data) { unsigned h; HashItem *item; int replacing = 0; h = HASH(table, key); /* look for the entry */ item = table->table[h]; if (table->callbacks.keyIsEqual) { while (item) { if ((*table->callbacks.keyIsEqual) (key, item->key)) { replacing = 1; break; } item = item->next; } } else { while (item) { if (key == item->key) { replacing = 1; break; } item = item->next; } } if (replacing) { const void *old; old = item->data; item->data = data; RELKEY(table, item->key); item->key = DUPKEY(table, key); return (void *)old; } else { HashItem *nitem; nitem = wmalloc(sizeof(HashItem)); nitem->key = DUPKEY(table, key); nitem->data = data; nitem->next = table->table[h]; table->table[h] = nitem; table->itemCount++; } /* OPTIMIZE: put this in an idle handler. */ if (table->itemCount > table->size) { #ifdef DEBUG0 printf("rebuilding hash table...\n"); #endif rebuildTable(table); #ifdef DEBUG0 printf("finished rebuild.\n"); #endif } return NULL; } static HashItem *deleteFromList(HashTable * table, HashItem * item, const void *key) { HashItem *next; if (item == NULL) return NULL; if ((table->callbacks.keyIsEqual && (*table->callbacks.keyIsEqual) (key, item->key)) || (!table->callbacks.keyIsEqual && key == item->key)) { next = item->next; RELKEY(table, item->key); wfree(item); table->itemCount--; return next; } item->next = deleteFromList(table, item->next, key); return item; } void WMHashRemove(WMHashTable * table, const void *key) { unsigned h; h = HASH(table, key); table->table[h] = deleteFromList(table, table->table[h], key); } WMHashEnumerator WMEnumerateHashTable(WMHashTable * table) { WMHashEnumerator enumerator; enumerator.table = table; enumerator.index = 0; enumerator.nextItem = table->table[0]; return enumerator; } void *WMNextHashEnumeratorItem(WMHashEnumerator * enumerator) { const void *data = NULL; /* this assumes the table doesn't change between * WMEnumerateHashTable() and WMNextHashEnumeratorItem() calls */ if (enumerator->nextItem == NULL) { HashTable *table = enumerator->table; while (++enumerator->index < table->size) { if (table->table[enumerator->index] != NULL) { enumerator->nextItem = table->table[enumerator->index]; break; } } } if (enumerator->nextItem) { data = ((HashItem *) enumerator->nextItem)->data; enumerator->nextItem = ((HashItem *) enumerator->nextItem)->next; } return (void *)data; } void *WMNextHashEnumeratorKey(WMHashEnumerator * enumerator) { const void *key = NULL; /* this assumes the table doesn't change between * WMEnumerateHashTable() and WMNextHashEnumeratorKey() calls */ if (enumerator->nextItem == NULL) { HashTable *table = enumerator->table; while (++enumerator->index < table->size) { if (table->table[enumerator->index] != NULL) { enumerator->nextItem = table->table[enumerator->index]; break; } } } if (enumerator->nextItem) { key = ((HashItem *) enumerator->nextItem)->key; enumerator->nextItem = ((HashItem *) enumerator->nextItem)->next; } return (void *)key; } Bool WMNextHashEnumeratorItemAndKey(WMHashEnumerator * enumerator, void **item, void **key) { /* this assumes the table doesn't change between * WMEnumerateHashTable() and WMNextHashEnumeratorItemAndKey() calls */ if (enumerator->nextItem == NULL) { HashTable *table = enumerator->table; while (++enumerator->index < table->size) { if (table->table[enumerator->index] != NULL) { enumerator->nextItem = table->table[enumerator->index]; break; } } } if (enumerator->nextItem) { if (item) *item = (void *)((HashItem *) enumerator->nextItem)->data; if (key) *key = (void *)((HashItem *) enumerator->nextItem)->key; enumerator->nextItem = ((HashItem *) enumerator->nextItem)->next; return True; } return False; } static Bool compareStrings(const void *param1, const void *param2) { const char *key1 = param1; const char *key2 = param2; return strcmp(key1, key2) == 0; } typedef void *(*retainFunc) (const void *); typedef void (*releaseFunc) (const void *); const WMHashTableCallbacks WMIntHashCallbacks = { NULL, NULL, NULL, NULL }; const WMHashTableCallbacks WMStringHashCallbacks = { hashString, compareStrings, (retainFunc) wstrdup, (releaseFunc) wfree }; const WMHashTableCallbacks WMStringPointerHashCallbacks = { hashString, compareStrings, NULL, NULL }; WindowMaker-0.95.5/WINGs/wmisc.c0000644000175000017500000001651112214432632013202 00000000000000 #include "WINGsP.h" #include #include void W_DrawRelief(W_Screen * scr, Drawable d, int x, int y, unsigned int width, unsigned int height, WMReliefType relief) { W_DrawReliefWithGC(scr, d, x, y, width, height, relief, WMColorGC(scr->black), WMColorGC(scr->darkGray), WMColorGC(scr->gray), WMColorGC(scr->white)); } void W_DrawReliefWithGC(W_Screen * scr, Drawable d, int x, int y, unsigned int width, unsigned int height, WMReliefType relief, GC black, GC dark, GC light, GC white) { Display *dpy = scr->display; GC bgc; GC wgc; GC lgc; GC dgc; switch (relief) { case WRSimple: XDrawRectangle(dpy, d, black, x, y, width - 1, height - 1); return; case WRRaised: bgc = black; dgc = dark; wgc = white; lgc = light; break; case WRSunken: wgc = dark; lgc = black; bgc = white; dgc = light; break; case WRPushed: lgc = wgc = black; dgc = bgc = white; break; case WRRidge: lgc = bgc = dark; dgc = wgc = white; break; case WRGroove: wgc = dgc = dark; lgc = bgc = white; break; default: return; } /* top left */ XDrawLine(dpy, d, wgc, x, y, x + width - 1, y); if (width > 2 && relief != WRRaised && relief != WRPushed) { XDrawLine(dpy, d, lgc, x + 1, y + 1, x + width - 3, y + 1); } XDrawLine(dpy, d, wgc, x, y, x, y + height - 1); if (height > 2 && relief != WRRaised && relief != WRPushed) { XDrawLine(dpy, d, lgc, x + 1, y + 1, x + 1, y + height - 3); } /* bottom right */ XDrawLine(dpy, d, bgc, x, y + height - 1, x + width - 1, y + height - 1); if (width > 2 && relief != WRPushed) { XDrawLine(dpy, d, dgc, x + 1, y + height - 2, x + width - 2, y + height - 2); } XDrawLine(dpy, d, bgc, x + width - 1, y, x + width - 1, y + height - 1); if (height > 2 && relief != WRPushed) { XDrawLine(dpy, d, dgc, x + width - 2, y + 1, x + width - 2, y + height - 2); } } static int findNextWord(const char *text, int limit) { int pos, len; len = strcspn(text, " \t\n\r"); pos = len + strspn(text + len, " \t\n\r"); if (pos > limit) pos = limit; return pos; } static int fitText(const char *text, WMFont * font, int width, int wrap) { int i, w, beforecrlf, word1, word2; /* text length before first cr/lf */ beforecrlf = strcspn(text, "\n"); if (!wrap || beforecrlf == 0) return beforecrlf; w = WMWidthOfString(font, text, beforecrlf); if (w <= width) { /* text up to first crlf fits */ return beforecrlf; } word1 = 0; while (1) { word2 = word1 + findNextWord(text + word1, beforecrlf - word1); if (word2 >= beforecrlf) break; w = WMWidthOfString(font, text, word2); if (w > width) break; word1 = word2; } for (i = word1; i < word2; i++) { w = WMWidthOfString(font, text, i); if (w > width) { break; } } /* keep words complete if possible */ if (!isspace(text[i]) && word1 > 0) { i = word1; } else if (isspace(text[i]) && i < beforecrlf) { /* keep space on current row, so new row has next word in column 1 */ i++; } return i; } int W_GetTextHeight(WMFont * font, const char *text, int width, int wrap) { const char *ptr = text; int count; int length = strlen(text); int h; int fheight = WMFontHeight(font); h = 0; while (length > 0) { count = fitText(ptr, font, width, wrap); h += fheight; if (isspace(ptr[count])) count++; ptr += count; length -= count; } return h; } void W_PaintText(W_View * view, Drawable d, WMFont * font, int x, int y, int width, WMAlignment alignment, WMColor * color, int wrap, const char *text, int length) { const char *ptr = text; int line_width; int line_x; int count; int fheight = WMFontHeight(font); while (length > 0) { count = fitText(ptr, font, width, wrap); line_width = WMWidthOfString(font, ptr, count); if (alignment == WALeft) line_x = x; else if (alignment == WARight) line_x = x + width - line_width; else line_x = x + (width - line_width) / 2; WMDrawString(view->screen, d, color, font, line_x, y, ptr, count); if (wrap && ptr[count] != '\n') y += fheight; while (ptr[count] && ptr[count] == '\n') { y += fheight; count++; } ptr += count; length -= count; } } void W_PaintTextAndImage(W_View * view, int wrap, WMColor * textColor, W_Font * font, WMReliefType relief, const char *text, WMAlignment alignment, W_Pixmap * image, WMImagePosition position, WMColor * backColor, int ofs) { W_Screen *screen = view->screen; int ix, iy; int x, y, w, h; Drawable d = view->window; #ifdef DOUBLE_BUFFER d = XCreatePixmap(screen->display, view->window, view->size.width, view->size.height, screen->depth); #endif /* background */ if (backColor) { XFillRectangle(screen->display, d, WMColorGC(backColor), 0, 0, view->size.width, view->size.height); } else { #ifndef DOUBLE_BUFFER XClearWindow(screen->display, d); #else XSetForeground(screen->display, screen->copyGC, view->attribs.background_pixel); XFillRectangle(screen->display, d, screen->copyGC, 0, 0, view->size.width, view->size.height); #endif } if (relief == WRFlat) { x = 0; y = 0; w = view->size.width; h = view->size.height; } else { x = 1; y = 1; w = view->size.width - 3; h = view->size.height - 3; } /* calc. image alignment */ if (position != WIPNoImage && image != NULL) { switch (position) { case WIPOverlaps: case WIPImageOnly: ix = (view->size.width - image->width) / 2; iy = (view->size.height - image->height) / 2; /* x = 2; y = 0; */ break; case WIPLeft: ix = x; iy = y + (h - image->height) / 2; x = x + image->width + 5; y = 0; w -= image->width + 5; break; case WIPRight: ix = view->size.width - image->width - x; iy = y + (h - image->height) / 2; w -= image->width + 5; break; case WIPBelow: ix = (view->size.width - image->width) / 2; iy = h - image->height; y = 0; h -= image->height; break; default: case WIPAbove: ix = (view->size.width - image->width) / 2; iy = y; y = image->height; h -= image->height; break; } ix += ofs; iy += ofs; XSetClipOrigin(screen->display, screen->clipGC, ix, iy); XSetClipMask(screen->display, screen->clipGC, image->mask); if (image->depth == 1) XCopyPlane(screen->display, image->pixmap, d, screen->clipGC, 0, 0, image->width, image->height, ix, iy, 1); else XCopyArea(screen->display, image->pixmap, d, screen->clipGC, 0, 0, image->width, image->height, ix, iy); } /* draw text */ if (position != WIPImageOnly && text != NULL) { int textHeight; textHeight = W_GetTextHeight(font, text, w - 8, wrap); W_PaintText(view, d, font, x + ofs + 4, y + ofs + (h - textHeight) / 2, w - 8, alignment, textColor, wrap, text, strlen(text)); } /* draw relief */ W_DrawRelief(screen, d, 0, 0, view->size.width, view->size.height, relief); #ifdef DOUBLE_BUFFER XCopyArea(screen->display, d, view->window, screen->copyGC, 0, 0, view->size.width, view->size.height, 0, 0); XFreePixmap(screen->display, d); #endif } WMPoint wmkpoint(int x, int y) { WMPoint point; point.x = x; point.y = y; return point; } WMSize wmksize(unsigned int width, unsigned int height) { WMSize size; size.width = width; size.height = height; return size; } WMRect wmkrect(int x, int y, unsigned int width, unsigned int height) { WMRect rect; rect.pos.x = x; rect.pos.y = y; rect.size.width = width; rect.size.height = height; return rect; } WindowMaker-0.95.5/WINGs/wslider.c0000644000175000017500000002744312214432632013537 00000000000000 #include "WINGsP.h" #undef STRICT_NEXT_BEHAVIOUR typedef struct W_Slider { W_Class widgetClass; WMView *view; int minValue; int maxValue; int value; Pixmap knobPixmap; WMPixmap *backPixmap; WMAction *action; void *clientData; int knobThickness; struct { unsigned int continuous:1; unsigned int vertical:1; unsigned int dragging:1; } flags; } Slider; static void didResizeSlider(W_ViewDelegate * self, WMView * view); W_ViewDelegate _SliderViewDelegate = { NULL, NULL, didResizeSlider, NULL, NULL }; static void destroySlider(Slider * sPtr); static void paintSlider(Slider * sPtr); static void handleEvents(XEvent * event, void *data); static void handleActionEvents(XEvent * event, void *data); static void makeKnobPixmap(Slider * sPtr); static void realizeObserver(void *self, WMNotification * not) { makeKnobPixmap(self); } WMSlider *WMCreateSlider(WMWidget * parent) { Slider *sPtr; sPtr = wmalloc(sizeof(Slider)); sPtr->widgetClass = WC_Slider; sPtr->view = W_CreateView(W_VIEW(parent)); if (!sPtr->view) { wfree(sPtr); return NULL; } sPtr->view->self = sPtr; sPtr->view->delegate = &_SliderViewDelegate; WMCreateEventHandler(sPtr->view, ExposureMask | StructureNotifyMask, handleEvents, sPtr); WMCreateEventHandler(sPtr->view, ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask | ButtonMotionMask, handleActionEvents, sPtr); W_ResizeView(sPtr->view, 100, 16); sPtr->flags.vertical = 0; sPtr->minValue = 0; sPtr->maxValue = 100; sPtr->value = 50; sPtr->knobThickness = 20; sPtr->flags.continuous = 1; WMAddNotificationObserver(realizeObserver, sPtr, WMViewRealizedNotification, sPtr->view); return sPtr; } void WMSetSliderImage(WMSlider * sPtr, WMPixmap * pixmap) { if (sPtr->backPixmap) WMReleasePixmap(sPtr->backPixmap); sPtr->backPixmap = WMRetainPixmap(pixmap); if (sPtr->view->flags.mapped) { paintSlider(sPtr); } } void WMSetSliderKnobThickness(WMSlider * sPtr, int thickness) { assert(thickness > 0); sPtr->knobThickness = thickness; if (sPtr->knobPixmap) { makeKnobPixmap(sPtr); } if (sPtr->view->flags.mapped) { paintSlider(sPtr); } } int WMGetSliderMinValue(WMSlider * slider) { CHECK_CLASS(slider, WC_Slider); return slider->minValue; } int WMGetSliderMaxValue(WMSlider * slider) { CHECK_CLASS(slider, WC_Slider); return slider->maxValue; } int WMGetSliderValue(WMSlider * slider) { CHECK_CLASS(slider, WC_Slider); return slider->value; } void WMSetSliderMinValue(WMSlider * slider, int value) { CHECK_CLASS(slider, WC_Slider); slider->minValue = value; if (slider->value < value) { slider->value = value; if (slider->view->flags.mapped) paintSlider(slider); } } void WMSetSliderMaxValue(WMSlider * slider, int value) { CHECK_CLASS(slider, WC_Slider); slider->maxValue = value; if (slider->value > value) { slider->value = value; if (slider->view->flags.mapped) paintSlider(slider); } } void WMSetSliderValue(WMSlider * slider, int value) { CHECK_CLASS(slider, WC_Slider); if (value < slider->minValue) slider->value = slider->minValue; else if (value > slider->maxValue) slider->value = slider->maxValue; else slider->value = value; if (slider->view->flags.mapped) paintSlider(slider); } void WMSetSliderContinuous(WMSlider * slider, Bool flag) { CHECK_CLASS(slider, WC_Slider); slider->flags.continuous = ((flag == 0) ? 0 : 1); } void WMSetSliderAction(WMSlider * slider, WMAction * action, void *data) { CHECK_CLASS(slider, WC_Slider); slider->action = action; slider->clientData = data; } static void makeKnobPixmap(Slider * sPtr) { Pixmap pix; WMScreen *scr = sPtr->view->screen; int w, h; if (sPtr->flags.vertical) { w = sPtr->view->size.width - 2; h = sPtr->knobThickness; } else { w = sPtr->knobThickness; h = sPtr->view->size.height - 2; } pix = XCreatePixmap(scr->display, sPtr->view->window, w, h, scr->depth); XFillRectangle(scr->display, pix, WMColorGC(scr->gray), 0, 0, w, h); if (sPtr->knobThickness < 10) { W_DrawRelief(scr, pix, 0, 0, w, h, WRRaised); } else if (sPtr->flags.vertical) { XDrawLine(scr->display, pix, WMColorGC(scr->white), 0, 0, 0, h - 3); XDrawLine(scr->display, pix, WMColorGC(scr->white), 1, 0, 1, h - 3); XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), w - 2, 1, w - 2, h / 2 - 2); XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), w - 2, h / 2, w - 2, h - 2); XDrawLine(scr->display, pix, WMColorGC(scr->white), 0, 0, w - 2, 0); XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), 1, h / 2 - 2, w - 3, h / 2 - 2); XDrawLine(scr->display, pix, WMColorGC(scr->white), 0, h / 2 - 1, w - 3, h / 2 - 1); XDrawLine(scr->display, pix, WMColorGC(scr->black), w - 1, 0, w - 1, h - 2); XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), 0, h - 3, w - 2, h - 3); XDrawLine(scr->display, pix, WMColorGC(scr->black), 0, h - 2, w - 1, h - 2); XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), 0, h - 1, w - 1, h - 1); } else { XDrawLine(scr->display, pix, WMColorGC(scr->white), 0, 0, w - 3, 0); XDrawLine(scr->display, pix, WMColorGC(scr->white), 0, 0, 0, h - 2); XDrawLine(scr->display, pix, WMColorGC(scr->white), 1, 0, 1, h - 3); XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), w / 2 - 2, 1, w / 2 - 2, h - 3); XDrawLine(scr->display, pix, WMColorGC(scr->white), w / 2 - 1, 0, w / 2 - 1, h - 3); XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), w - 3, 0, w - 3, h - 2); XDrawLine(scr->display, pix, WMColorGC(scr->black), w - 2, 0, w - 2, h - 2); XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), w - 1, 0, w - 1, h - 1); XDrawLine(scr->display, pix, WMColorGC(scr->black), 1, h - 1, w / 2 + 1, h - 1); XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), 1, h - 2, w / 2 - 2, h - 2); XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), w / 2, h - 2, w - 3, h - 2); XDrawLine(scr->display, pix, WMColorGC(scr->black), 0, h - 1, w - 2, h - 1); } if (sPtr->knobPixmap) XFreePixmap(scr->display, sPtr->knobPixmap); sPtr->knobPixmap = pix; } static void didResizeSlider(W_ViewDelegate * self, WMView * view) { Slider *sPtr = (Slider *) view->self; int width = sPtr->view->size.width; int height = sPtr->view->size.height; assert(width > 0); assert(height > 0); if (width > height) { if (sPtr->flags.vertical) { sPtr->flags.vertical = 0; if (sPtr->view->flags.realized) makeKnobPixmap(sPtr); } } else { if (!sPtr->flags.vertical) { sPtr->flags.vertical = 1; if (sPtr->view->flags.realized) makeKnobPixmap(sPtr); } } } static void paintSlider(Slider * sPtr) { W_Screen *scr = sPtr->view->screen; GC bgc; GC wgc; GC lgc; WMSize size = sPtr->view->size; int pos; Pixmap buffer; #define MINV sPtr->minValue #define MAXV sPtr->maxValue #define POSV sPtr->value bgc = WMColorGC(scr->black); wgc = WMColorGC(scr->white); lgc = WMColorGC(scr->gray); buffer = XCreatePixmap(scr->display, sPtr->view->window, size.width, size.height, scr->depth); if (sPtr->backPixmap) { WMSize size = WMGetPixmapSize(sPtr->backPixmap); XCopyArea(scr->display, WMGetPixmapXID(sPtr->backPixmap), buffer, scr->copyGC, 0, 0, size.width, size.height, 1, 1); } else { XFillRectangle(scr->display, buffer, lgc, 0, 0, size.width, size.height); XFillRectangle(scr->display, buffer, scr->stippleGC, 0, 0, size.width, size.height); } if (sPtr->flags.vertical) { pos = (size.height - 2 - sPtr->knobThickness) * (POSV - MINV) / (MAXV - MINV) + 1; /* draw knob */ XCopyArea(scr->display, sPtr->knobPixmap, buffer, scr->copyGC, 0, 0, size.width - 2, sPtr->knobThickness, 1, pos); } else { pos = (size.width - 2 - sPtr->knobThickness) * (POSV - MINV) / (MAXV - MINV) + 1; /* draw knob */ XCopyArea(scr->display, sPtr->knobPixmap, buffer, scr->copyGC, 0, 0, sPtr->knobThickness, size.height, pos, 1); } XDrawLine(scr->display, buffer, bgc, 0, 0, 0, size.height - 1); XDrawLine(scr->display, buffer, bgc, 0, 0, size.width, 0); XDrawLine(scr->display, buffer, wgc, size.width - 1, 0, size.width - 1, size.height - 1); XDrawLine(scr->display, buffer, wgc, 0, size.height - 1, size.width - 1, size.height - 1); XCopyArea(scr->display, buffer, sPtr->view->window, scr->copyGC, 0, 0, size.width, size.height, 0, 0); XFreePixmap(scr->display, buffer); } static void handleEvents(XEvent * event, void *data) { Slider *sPtr = (Slider *) data; CHECK_CLASS(data, WC_Slider); switch (event->type) { case Expose: if (event->xexpose.count != 0) break; paintSlider(sPtr); break; case DestroyNotify: destroySlider(sPtr); break; } } #define DECR_PART 1 #define KNOB_PART 2 #define INCR_PART 3 static int getSliderPart(Slider * sPtr, int x, int y) { int p; int pos; WMSize size = sPtr->view->size; if (sPtr->flags.vertical) { p = y; pos = (size.height - 2 - sPtr->knobThickness) * (POSV - MINV) / (MAXV - MINV); if (p < pos) return INCR_PART; if (p > pos + sPtr->knobThickness) return DECR_PART; return KNOB_PART; } else { p = x; pos = (size.width - 2 - sPtr->knobThickness) * (POSV - MINV) / (MAXV - MINV); if (p < pos) return DECR_PART; if (p > pos + sPtr->knobThickness) return INCR_PART; return KNOB_PART; } } static int valueForMousePoint(Slider * sPtr, int x, int y) { WMSize size = sPtr->view->size; int f; if (sPtr->flags.vertical) { f = (y - sPtr->knobThickness / 2) * (MAXV - MINV) / ((int)size.height - 2 - sPtr->knobThickness); } else { f = (x - sPtr->knobThickness / 2) * (MAXV - MINV) / ((int)size.width - 2 - sPtr->knobThickness); } f += sPtr->minValue; if (f < sPtr->minValue) f = sPtr->minValue; else if (f > sPtr->maxValue) f = sPtr->maxValue; return f; } static void handleActionEvents(XEvent * event, void *data) { WMSlider *sPtr = (Slider *) data; CHECK_CLASS(data, WC_Slider); switch (event->type) { case ButtonPress: if (event->xbutton.button == WINGsConfiguration.mouseWheelUp && !sPtr->flags.dragging) { /* Wheel up */ if (sPtr->value + 1 <= sPtr->maxValue) { WMSetSliderValue(sPtr, sPtr->value + 1); if (sPtr->flags.continuous && sPtr->action) { (*sPtr->action) (sPtr, sPtr->clientData); } } } else if (event->xbutton.button == WINGsConfiguration.mouseWheelDown && !sPtr->flags.dragging) { /* Wheel down */ if (sPtr->value - 1 >= sPtr->minValue) { WMSetSliderValue(sPtr, sPtr->value - 1); if (sPtr->flags.continuous && sPtr->action) { (*sPtr->action) (sPtr, sPtr->clientData); } } } else if (getSliderPart(sPtr, event->xbutton.x, event->xbutton.y) == KNOB_PART) sPtr->flags.dragging = 1; else { #ifdef STRICT_NEXT_BEHAVIOUR sPtr->flags.dragging = 1; sPtr->value = valueForMousePoint(sPtr, event->xmotion.x, event->xmotion.y); paintSlider(sPtr); #else int tmp; if (event->xbutton.button == Button2) { sPtr->flags.dragging = 1; sPtr->value = valueForMousePoint(sPtr, event->xmotion.x, event->xmotion.y); paintSlider(sPtr); } else { tmp = valueForMousePoint(sPtr, event->xmotion.x, event->xmotion.y); if (tmp < sPtr->value) tmp = sPtr->value - 1; else tmp = sPtr->value + 1; WMSetSliderValue(sPtr, tmp); } #endif if (sPtr->flags.continuous && sPtr->action) { (*sPtr->action) (sPtr, sPtr->clientData); } } break; case ButtonRelease: if (!sPtr->flags.continuous && sPtr->action) { (*sPtr->action) (sPtr, sPtr->clientData); } sPtr->flags.dragging = 0; break; case MotionNotify: if (sPtr->flags.dragging) { sPtr->value = valueForMousePoint(sPtr, event->xmotion.x, event->xmotion.y); paintSlider(sPtr); if (sPtr->flags.continuous && sPtr->action) { (*sPtr->action) (sPtr, sPtr->clientData); } } break; } } static void destroySlider(Slider * sPtr) { if (sPtr->knobPixmap) XFreePixmap(sPtr->view->screen->display, sPtr->knobPixmap); if (sPtr->backPixmap) WMReleasePixmap(sPtr->backPixmap); WMRemoveNotificationObserver(sPtr); wfree(sPtr); } WindowMaker-0.95.5/WINGs/rgb.h0000644000175000017500000007013012214432632012634 00000000000000 /* Automatically generated file. Do NOT edit. Regenerate it using make-rgb */ #ifndef RGB_H_ #define RGB_H_ #include typedef struct RGBColor { RColor color; char *name; } RGBColor; RGBColor rgbColors[] = { {{255, 250, 250, 0}, "snow"}, {{248, 248, 255, 0}, "ghost"}, {{248, 248, 255, 0}, "GhostWhite"}, {{245, 245, 245, 0}, "white"}, {{245, 245, 245, 0}, "WhiteSmoke"}, {{220, 220, 220, 0}, "gainsboro"}, {{255, 250, 240, 0}, "floral"}, {{255, 250, 240, 0}, "FloralWhite"}, {{253, 245, 230, 0}, "old"}, {{253, 245, 230, 0}, "OldLace"}, {{250, 240, 230, 0}, "linen"}, {{250, 235, 215, 0}, "antique"}, {{250, 235, 215, 0}, "AntiqueWhite"}, {{255, 239, 213, 0}, "papaya"}, {{255, 239, 213, 0}, "PapayaWhip"}, {{255, 235, 205, 0}, "blanched"}, {{255, 235, 205, 0}, "BlanchedAlmond"}, {{255, 228, 196, 0}, "bisque"}, {{255, 218, 185, 0}, "peach"}, {{255, 218, 185, 0}, "PeachPuff"}, {{255, 222, 173, 0}, "navajo"}, {{255, 222, 173, 0}, "NavajoWhite"}, {{255, 228, 181, 0}, "moccasin"}, {{255, 248, 220, 0}, "cornsilk"}, {{255, 255, 240, 0}, "ivory"}, {{255, 250, 205, 0}, "lemon"}, {{255, 250, 205, 0}, "LemonChiffon"}, {{255, 245, 238, 0}, "seashell"}, {{240, 255, 240, 0}, "honeydew"}, {{245, 255, 250, 0}, "mint"}, {{245, 255, 250, 0}, "MintCream"}, {{240, 255, 255, 0}, "azure"}, {{240, 248, 255, 0}, "alice"}, {{240, 248, 255, 0}, "AliceBlue"}, {{230, 230, 250, 0}, "lavender"}, {{255, 240, 245, 0}, "lavender"}, {{255, 240, 245, 0}, "LavenderBlush"}, {{255, 228, 225, 0}, "misty"}, {{255, 228, 225, 0}, "MistyRose"}, {{255, 255, 255, 0}, "white"}, {{ 0, 0, 0, 0}, "black"}, {{ 47, 79, 79, 0}, "dark"}, {{ 47, 79, 79, 0}, "DarkSlateGray"}, {{ 47, 79, 79, 0}, "dark"}, {{ 47, 79, 79, 0}, "DarkSlateGrey"}, {{105, 105, 105, 0}, "dim"}, {{105, 105, 105, 0}, "DimGray"}, {{105, 105, 105, 0}, "dim"}, {{105, 105, 105, 0}, "DimGrey"}, {{112, 128, 144, 0}, "slate"}, {{112, 128, 144, 0}, "SlateGray"}, {{112, 128, 144, 0}, "slate"}, {{112, 128, 144, 0}, "SlateGrey"}, {{119, 136, 153, 0}, "light"}, {{119, 136, 153, 0}, "LightSlateGray"}, {{119, 136, 153, 0}, "light"}, {{119, 136, 153, 0}, "LightSlateGrey"}, {{190, 190, 190, 0}, "gray"}, {{190, 190, 190, 0}, "grey"}, {{211, 211, 211, 0}, "light"}, {{211, 211, 211, 0}, "LightGrey"}, {{211, 211, 211, 0}, "light"}, {{211, 211, 211, 0}, "LightGray"}, {{ 25, 25, 112, 0}, "midnight"}, {{ 25, 25, 112, 0}, "MidnightBlue"}, {{ 0, 0, 128, 0}, "navy"}, {{ 0, 0, 128, 0}, "navy"}, {{ 0, 0, 128, 0}, "NavyBlue"}, {{100, 149, 237, 0}, "cornflower"}, {{100, 149, 237, 0}, "CornflowerBlue"}, {{ 72, 61, 139, 0}, "dark"}, {{ 72, 61, 139, 0}, "DarkSlateBlue"}, {{106, 90, 205, 0}, "slate"}, {{106, 90, 205, 0}, "SlateBlue"}, {{123, 104, 238, 0}, "medium"}, {{123, 104, 238, 0}, "MediumSlateBlue"}, {{132, 112, 255, 0}, "light"}, {{132, 112, 255, 0}, "LightSlateBlue"}, {{ 0, 0, 205, 0}, "medium"}, {{ 0, 0, 205, 0}, "MediumBlue"}, {{ 65, 105, 225, 0}, "royal"}, {{ 65, 105, 225, 0}, "RoyalBlue"}, {{ 0, 0, 255, 0}, "blue"}, {{ 30, 144, 255, 0}, "dodger"}, {{ 30, 144, 255, 0}, "DodgerBlue"}, {{ 0, 191, 255, 0}, "deep"}, {{ 0, 191, 255, 0}, "DeepSkyBlue"}, {{135, 206, 235, 0}, "sky"}, {{135, 206, 235, 0}, "SkyBlue"}, {{135, 206, 250, 0}, "light"}, {{135, 206, 250, 0}, "LightSkyBlue"}, {{ 70, 130, 180, 0}, "steel"}, {{ 70, 130, 180, 0}, "SteelBlue"}, {{176, 196, 222, 0}, "light"}, {{176, 196, 222, 0}, "LightSteelBlue"}, {{173, 216, 230, 0}, "light"}, {{173, 216, 230, 0}, "LightBlue"}, {{176, 224, 230, 0}, "powder"}, {{176, 224, 230, 0}, "PowderBlue"}, {{175, 238, 238, 0}, "pale"}, {{175, 238, 238, 0}, "PaleTurquoise"}, {{ 0, 206, 209, 0}, "dark"}, {{ 0, 206, 209, 0}, "DarkTurquoise"}, {{ 72, 209, 204, 0}, "medium"}, {{ 72, 209, 204, 0}, "MediumTurquoise"}, {{ 64, 224, 208, 0}, "turquoise"}, {{ 0, 255, 255, 0}, "cyan"}, {{224, 255, 255, 0}, "light"}, {{224, 255, 255, 0}, "LightCyan"}, {{ 95, 158, 160, 0}, "cadet"}, {{ 95, 158, 160, 0}, "CadetBlue"}, {{102, 205, 170, 0}, "medium"}, {{102, 205, 170, 0}, "MediumAquamarine"}, {{127, 255, 212, 0}, "aquamarine"}, {{ 0, 100, 0, 0}, "dark"}, {{ 0, 100, 0, 0}, "DarkGreen"}, {{ 85, 107, 47, 0}, "dark"}, {{ 85, 107, 47, 0}, "DarkOliveGreen"}, {{143, 188, 143, 0}, "dark"}, {{143, 188, 143, 0}, "DarkSeaGreen"}, {{ 46, 139, 87, 0}, "sea"}, {{ 46, 139, 87, 0}, "SeaGreen"}, {{ 60, 179, 113, 0}, "medium"}, {{ 60, 179, 113, 0}, "MediumSeaGreen"}, {{ 32, 178, 170, 0}, "light"}, {{ 32, 178, 170, 0}, "LightSeaGreen"}, {{152, 251, 152, 0}, "pale"}, {{152, 251, 152, 0}, "PaleGreen"}, {{ 0, 255, 127, 0}, "spring"}, {{ 0, 255, 127, 0}, "SpringGreen"}, {{124, 252, 0, 0}, "lawn"}, {{124, 252, 0, 0}, "LawnGreen"}, {{ 0, 255, 0, 0}, "green"}, {{127, 255, 0, 0}, "chartreuse"}, {{ 0, 250, 154, 0}, "medium"}, {{ 0, 250, 154, 0}, "MediumSpringGreen"}, {{173, 255, 47, 0}, "green"}, {{173, 255, 47, 0}, "GreenYellow"}, {{ 50, 205, 50, 0}, "lime"}, {{ 50, 205, 50, 0}, "LimeGreen"}, {{154, 205, 50, 0}, "yellow"}, {{154, 205, 50, 0}, "YellowGreen"}, {{ 34, 139, 34, 0}, "forest"}, {{ 34, 139, 34, 0}, "ForestGreen"}, {{107, 142, 35, 0}, "olive"}, {{107, 142, 35, 0}, "OliveDrab"}, {{189, 183, 107, 0}, "dark"}, {{189, 183, 107, 0}, "DarkKhaki"}, {{240, 230, 140, 0}, "khaki"}, {{238, 232, 170, 0}, "pale"}, {{238, 232, 170, 0}, "PaleGoldenrod"}, {{250, 250, 210, 0}, "light"}, {{250, 250, 210, 0}, "LightGoldenrodYellow"}, {{255, 255, 224, 0}, "light"}, {{255, 255, 224, 0}, "LightYellow"}, {{255, 255, 0, 0}, "yellow"}, {{255, 215, 0, 0}, "gold"}, {{238, 221, 130, 0}, "light"}, {{238, 221, 130, 0}, "LightGoldenrod"}, {{218, 165, 32, 0}, "goldenrod"}, {{184, 134, 11, 0}, "dark"}, {{184, 134, 11, 0}, "DarkGoldenrod"}, {{188, 143, 143, 0}, "rosy"}, {{188, 143, 143, 0}, "RosyBrown"}, {{205, 92, 92, 0}, "indian"}, {{205, 92, 92, 0}, "IndianRed"}, {{139, 69, 19, 0}, "saddle"}, {{139, 69, 19, 0}, "SaddleBrown"}, {{160, 82, 45, 0}, "sienna"}, {{205, 133, 63, 0}, "peru"}, {{222, 184, 135, 0}, "burlywood"}, {{245, 245, 220, 0}, "beige"}, {{245, 222, 179, 0}, "wheat"}, {{244, 164, 96, 0}, "sandy"}, {{244, 164, 96, 0}, "SandyBrown"}, {{210, 180, 140, 0}, "tan"}, {{210, 105, 30, 0}, "chocolate"}, {{178, 34, 34, 0}, "firebrick"}, {{165, 42, 42, 0}, "brown"}, {{233, 150, 122, 0}, "dark"}, {{233, 150, 122, 0}, "DarkSalmon"}, {{250, 128, 114, 0}, "salmon"}, {{255, 160, 122, 0}, "light"}, {{255, 160, 122, 0}, "LightSalmon"}, {{255, 165, 0, 0}, "orange"}, {{255, 140, 0, 0}, "dark"}, {{255, 140, 0, 0}, "DarkOrange"}, {{255, 127, 80, 0}, "coral"}, {{240, 128, 128, 0}, "light"}, {{240, 128, 128, 0}, "LightCoral"}, {{255, 99, 71, 0}, "tomato"}, {{255, 69, 0, 0}, "orange"}, {{255, 69, 0, 0}, "OrangeRed"}, {{255, 0, 0, 0}, "red"}, {{255, 105, 180, 0}, "hot"}, {{255, 105, 180, 0}, "HotPink"}, {{255, 20, 147, 0}, "deep"}, {{255, 20, 147, 0}, "DeepPink"}, {{255, 192, 203, 0}, "pink"}, {{255, 182, 193, 0}, "light"}, {{255, 182, 193, 0}, "LightPink"}, {{219, 112, 147, 0}, "pale"}, {{219, 112, 147, 0}, "PaleVioletRed"}, {{176, 48, 96, 0}, "maroon"}, {{199, 21, 133, 0}, "medium"}, {{199, 21, 133, 0}, "MediumVioletRed"}, {{208, 32, 144, 0}, "violet"}, {{208, 32, 144, 0}, "VioletRed"}, {{255, 0, 255, 0}, "magenta"}, {{238, 130, 238, 0}, "violet"}, {{221, 160, 221, 0}, "plum"}, {{218, 112, 214, 0}, "orchid"}, {{186, 85, 211, 0}, "medium"}, {{186, 85, 211, 0}, "MediumOrchid"}, {{153, 50, 204, 0}, "dark"}, {{153, 50, 204, 0}, "DarkOrchid"}, {{148, 0, 211, 0}, "dark"}, {{148, 0, 211, 0}, "DarkViolet"}, {{138, 43, 226, 0}, "blue"}, {{138, 43, 226, 0}, "BlueViolet"}, {{160, 32, 240, 0}, "purple"}, {{147, 112, 219, 0}, "medium"}, {{147, 112, 219, 0}, "MediumPurple"}, {{216, 191, 216, 0}, "thistle"}, {{255, 250, 250, 0}, "snow1"}, {{238, 233, 233, 0}, "snow2"}, {{205, 201, 201, 0}, "snow3"}, {{139, 137, 137, 0}, "snow4"}, {{255, 245, 238, 0}, "seashell1"}, {{238, 229, 222, 0}, "seashell2"}, {{205, 197, 191, 0}, "seashell3"}, {{139, 134, 130, 0}, "seashell4"}, {{255, 239, 219, 0}, "AntiqueWhite1"}, {{238, 223, 204, 0}, "AntiqueWhite2"}, {{205, 192, 176, 0}, "AntiqueWhite3"}, {{139, 131, 120, 0}, "AntiqueWhite4"}, {{255, 228, 196, 0}, "bisque1"}, {{238, 213, 183, 0}, "bisque2"}, {{205, 183, 158, 0}, "bisque3"}, {{139, 125, 107, 0}, "bisque4"}, {{255, 218, 185, 0}, "PeachPuff1"}, {{238, 203, 173, 0}, "PeachPuff2"}, {{205, 175, 149, 0}, "PeachPuff3"}, {{139, 119, 101, 0}, "PeachPuff4"}, {{255, 222, 173, 0}, "NavajoWhite1"}, {{238, 207, 161, 0}, "NavajoWhite2"}, {{205, 179, 139, 0}, "NavajoWhite3"}, {{139, 121, 94, 0}, "NavajoWhite4"}, {{255, 250, 205, 0}, "LemonChiffon1"}, {{238, 233, 191, 0}, "LemonChiffon2"}, {{205, 201, 165, 0}, "LemonChiffon3"}, {{139, 137, 112, 0}, "LemonChiffon4"}, {{255, 248, 220, 0}, "cornsilk1"}, {{238, 232, 205, 0}, "cornsilk2"}, {{205, 200, 177, 0}, "cornsilk3"}, {{139, 136, 120, 0}, "cornsilk4"}, {{255, 255, 240, 0}, "ivory1"}, {{238, 238, 224, 0}, "ivory2"}, {{205, 205, 193, 0}, "ivory3"}, {{139, 139, 131, 0}, "ivory4"}, {{240, 255, 240, 0}, "honeydew1"}, {{224, 238, 224, 0}, "honeydew2"}, {{193, 205, 193, 0}, "honeydew3"}, {{131, 139, 131, 0}, "honeydew4"}, {{255, 240, 245, 0}, "LavenderBlush1"}, {{238, 224, 229, 0}, "LavenderBlush2"}, {{205, 193, 197, 0}, "LavenderBlush3"}, {{139, 131, 134, 0}, "LavenderBlush4"}, {{255, 228, 225, 0}, "MistyRose1"}, {{238, 213, 210, 0}, "MistyRose2"}, {{205, 183, 181, 0}, "MistyRose3"}, {{139, 125, 123, 0}, "MistyRose4"}, {{240, 255, 255, 0}, "azure1"}, {{224, 238, 238, 0}, "azure2"}, {{193, 205, 205, 0}, "azure3"}, {{131, 139, 139, 0}, "azure4"}, {{131, 111, 255, 0}, "SlateBlue1"}, {{122, 103, 238, 0}, "SlateBlue2"}, {{105, 89, 205, 0}, "SlateBlue3"}, {{ 71, 60, 139, 0}, "SlateBlue4"}, {{ 72, 118, 255, 0}, "RoyalBlue1"}, {{ 67, 110, 238, 0}, "RoyalBlue2"}, {{ 58, 95, 205, 0}, "RoyalBlue3"}, {{ 39, 64, 139, 0}, "RoyalBlue4"}, {{ 0, 0, 255, 0}, "blue1"}, {{ 0, 0, 238, 0}, "blue2"}, {{ 0, 0, 205, 0}, "blue3"}, {{ 0, 0, 139, 0}, "blue4"}, {{ 30, 144, 255, 0}, "DodgerBlue1"}, {{ 28, 134, 238, 0}, "DodgerBlue2"}, {{ 24, 116, 205, 0}, "DodgerBlue3"}, {{ 16, 78, 139, 0}, "DodgerBlue4"}, {{ 99, 184, 255, 0}, "SteelBlue1"}, {{ 92, 172, 238, 0}, "SteelBlue2"}, {{ 79, 148, 205, 0}, "SteelBlue3"}, {{ 54, 100, 139, 0}, "SteelBlue4"}, {{ 0, 191, 255, 0}, "DeepSkyBlue1"}, {{ 0, 178, 238, 0}, "DeepSkyBlue2"}, {{ 0, 154, 205, 0}, "DeepSkyBlue3"}, {{ 0, 104, 139, 0}, "DeepSkyBlue4"}, {{135, 206, 255, 0}, "SkyBlue1"}, {{126, 192, 238, 0}, "SkyBlue2"}, {{108, 166, 205, 0}, "SkyBlue3"}, {{ 74, 112, 139, 0}, "SkyBlue4"}, {{176, 226, 255, 0}, "LightSkyBlue1"}, {{164, 211, 238, 0}, "LightSkyBlue2"}, {{141, 182, 205, 0}, "LightSkyBlue3"}, {{ 96, 123, 139, 0}, "LightSkyBlue4"}, {{198, 226, 255, 0}, "SlateGray1"}, {{185, 211, 238, 0}, "SlateGray2"}, {{159, 182, 205, 0}, "SlateGray3"}, {{108, 123, 139, 0}, "SlateGray4"}, {{202, 225, 255, 0}, "LightSteelBlue1"}, {{188, 210, 238, 0}, "LightSteelBlue2"}, {{162, 181, 205, 0}, "LightSteelBlue3"}, {{110, 123, 139, 0}, "LightSteelBlue4"}, {{191, 239, 255, 0}, "LightBlue1"}, {{178, 223, 238, 0}, "LightBlue2"}, {{154, 192, 205, 0}, "LightBlue3"}, {{104, 131, 139, 0}, "LightBlue4"}, {{224, 255, 255, 0}, "LightCyan1"}, {{209, 238, 238, 0}, "LightCyan2"}, {{180, 205, 205, 0}, "LightCyan3"}, {{122, 139, 139, 0}, "LightCyan4"}, {{187, 255, 255, 0}, "PaleTurquoise1"}, {{174, 238, 238, 0}, "PaleTurquoise2"}, {{150, 205, 205, 0}, "PaleTurquoise3"}, {{102, 139, 139, 0}, "PaleTurquoise4"}, {{152, 245, 255, 0}, "CadetBlue1"}, {{142, 229, 238, 0}, "CadetBlue2"}, {{122, 197, 205, 0}, "CadetBlue3"}, {{ 83, 134, 139, 0}, "CadetBlue4"}, {{ 0, 245, 255, 0}, "turquoise1"}, {{ 0, 229, 238, 0}, "turquoise2"}, {{ 0, 197, 205, 0}, "turquoise3"}, {{ 0, 134, 139, 0}, "turquoise4"}, {{ 0, 255, 255, 0}, "cyan1"}, {{ 0, 238, 238, 0}, "cyan2"}, {{ 0, 205, 205, 0}, "cyan3"}, {{ 0, 139, 139, 0}, "cyan4"}, {{151, 255, 255, 0}, "DarkSlateGray1"}, {{141, 238, 238, 0}, "DarkSlateGray2"}, {{121, 205, 205, 0}, "DarkSlateGray3"}, {{ 82, 139, 139, 0}, "DarkSlateGray4"}, {{127, 255, 212, 0}, "aquamarine1"}, {{118, 238, 198, 0}, "aquamarine2"}, {{102, 205, 170, 0}, "aquamarine3"}, {{ 69, 139, 116, 0}, "aquamarine4"}, {{193, 255, 193, 0}, "DarkSeaGreen1"}, {{180, 238, 180, 0}, "DarkSeaGreen2"}, {{155, 205, 155, 0}, "DarkSeaGreen3"}, {{105, 139, 105, 0}, "DarkSeaGreen4"}, {{ 84, 255, 159, 0}, "SeaGreen1"}, {{ 78, 238, 148, 0}, "SeaGreen2"}, {{ 67, 205, 128, 0}, "SeaGreen3"}, {{ 46, 139, 87, 0}, "SeaGreen4"}, {{154, 255, 154, 0}, "PaleGreen1"}, {{144, 238, 144, 0}, "PaleGreen2"}, {{124, 205, 124, 0}, "PaleGreen3"}, {{ 84, 139, 84, 0}, "PaleGreen4"}, {{ 0, 255, 127, 0}, "SpringGreen1"}, {{ 0, 238, 118, 0}, "SpringGreen2"}, {{ 0, 205, 102, 0}, "SpringGreen3"}, {{ 0, 139, 69, 0}, "SpringGreen4"}, {{ 0, 255, 0, 0}, "green1"}, {{ 0, 238, 0, 0}, "green2"}, {{ 0, 205, 0, 0}, "green3"}, {{ 0, 139, 0, 0}, "green4"}, {{127, 255, 0, 0}, "chartreuse1"}, {{118, 238, 0, 0}, "chartreuse2"}, {{102, 205, 0, 0}, "chartreuse3"}, {{ 69, 139, 0, 0}, "chartreuse4"}, {{192, 255, 62, 0}, "OliveDrab1"}, {{179, 238, 58, 0}, "OliveDrab2"}, {{154, 205, 50, 0}, "OliveDrab3"}, {{105, 139, 34, 0}, "OliveDrab4"}, {{202, 255, 112, 0}, "DarkOliveGreen1"}, {{188, 238, 104, 0}, "DarkOliveGreen2"}, {{162, 205, 90, 0}, "DarkOliveGreen3"}, {{110, 139, 61, 0}, "DarkOliveGreen4"}, {{255, 246, 143, 0}, "khaki1"}, {{238, 230, 133, 0}, "khaki2"}, {{205, 198, 115, 0}, "khaki3"}, {{139, 134, 78, 0}, "khaki4"}, {{255, 236, 139, 0}, "LightGoldenrod1"}, {{238, 220, 130, 0}, "LightGoldenrod2"}, {{205, 190, 112, 0}, "LightGoldenrod3"}, {{139, 129, 76, 0}, "LightGoldenrod4"}, {{255, 255, 224, 0}, "LightYellow1"}, {{238, 238, 209, 0}, "LightYellow2"}, {{205, 205, 180, 0}, "LightYellow3"}, {{139, 139, 122, 0}, "LightYellow4"}, {{255, 255, 0, 0}, "yellow1"}, {{238, 238, 0, 0}, "yellow2"}, {{205, 205, 0, 0}, "yellow3"}, {{139, 139, 0, 0}, "yellow4"}, {{255, 215, 0, 0}, "gold1"}, {{238, 201, 0, 0}, "gold2"}, {{205, 173, 0, 0}, "gold3"}, {{139, 117, 0, 0}, "gold4"}, {{255, 193, 37, 0}, "goldenrod1"}, {{238, 180, 34, 0}, "goldenrod2"}, {{205, 155, 29, 0}, "goldenrod3"}, {{139, 105, 20, 0}, "goldenrod4"}, {{255, 185, 15, 0}, "DarkGoldenrod1"}, {{238, 173, 14, 0}, "DarkGoldenrod2"}, {{205, 149, 12, 0}, "DarkGoldenrod3"}, {{139, 101, 8, 0}, "DarkGoldenrod4"}, {{255, 193, 193, 0}, "RosyBrown1"}, {{238, 180, 180, 0}, "RosyBrown2"}, {{205, 155, 155, 0}, "RosyBrown3"}, {{139, 105, 105, 0}, "RosyBrown4"}, {{255, 106, 106, 0}, "IndianRed1"}, {{238, 99, 99, 0}, "IndianRed2"}, {{205, 85, 85, 0}, "IndianRed3"}, {{139, 58, 58, 0}, "IndianRed4"}, {{255, 130, 71, 0}, "sienna1"}, {{238, 121, 66, 0}, "sienna2"}, {{205, 104, 57, 0}, "sienna3"}, {{139, 71, 38, 0}, "sienna4"}, {{255, 211, 155, 0}, "burlywood1"}, {{238, 197, 145, 0}, "burlywood2"}, {{205, 170, 125, 0}, "burlywood3"}, {{139, 115, 85, 0}, "burlywood4"}, {{255, 231, 186, 0}, "wheat1"}, {{238, 216, 174, 0}, "wheat2"}, {{205, 186, 150, 0}, "wheat3"}, {{139, 126, 102, 0}, "wheat4"}, {{255, 165, 79, 0}, "tan1"}, {{238, 154, 73, 0}, "tan2"}, {{205, 133, 63, 0}, "tan3"}, {{139, 90, 43, 0}, "tan4"}, {{255, 127, 36, 0}, "chocolate1"}, {{238, 118, 33, 0}, "chocolate2"}, {{205, 102, 29, 0}, "chocolate3"}, {{139, 69, 19, 0}, "chocolate4"}, {{255, 48, 48, 0}, "firebrick1"}, {{238, 44, 44, 0}, "firebrick2"}, {{205, 38, 38, 0}, "firebrick3"}, {{139, 26, 26, 0}, "firebrick4"}, {{255, 64, 64, 0}, "brown1"}, {{238, 59, 59, 0}, "brown2"}, {{205, 51, 51, 0}, "brown3"}, {{139, 35, 35, 0}, "brown4"}, {{255, 140, 105, 0}, "salmon1"}, {{238, 130, 98, 0}, "salmon2"}, {{205, 112, 84, 0}, "salmon3"}, {{139, 76, 57, 0}, "salmon4"}, {{255, 160, 122, 0}, "LightSalmon1"}, {{238, 149, 114, 0}, "LightSalmon2"}, {{205, 129, 98, 0}, "LightSalmon3"}, {{139, 87, 66, 0}, "LightSalmon4"}, {{255, 165, 0, 0}, "orange1"}, {{238, 154, 0, 0}, "orange2"}, {{205, 133, 0, 0}, "orange3"}, {{139, 90, 0, 0}, "orange4"}, {{255, 127, 0, 0}, "DarkOrange1"}, {{238, 118, 0, 0}, "DarkOrange2"}, {{205, 102, 0, 0}, "DarkOrange3"}, {{139, 69, 0, 0}, "DarkOrange4"}, {{255, 114, 86, 0}, "coral1"}, {{238, 106, 80, 0}, "coral2"}, {{205, 91, 69, 0}, "coral3"}, {{139, 62, 47, 0}, "coral4"}, {{255, 99, 71, 0}, "tomato1"}, {{238, 92, 66, 0}, "tomato2"}, {{205, 79, 57, 0}, "tomato3"}, {{139, 54, 38, 0}, "tomato4"}, {{255, 69, 0, 0}, "OrangeRed1"}, {{238, 64, 0, 0}, "OrangeRed2"}, {{205, 55, 0, 0}, "OrangeRed3"}, {{139, 37, 0, 0}, "OrangeRed4"}, {{255, 0, 0, 0}, "red1"}, {{238, 0, 0, 0}, "red2"}, {{205, 0, 0, 0}, "red3"}, {{139, 0, 0, 0}, "red4"}, {{255, 20, 147, 0}, "DeepPink1"}, {{238, 18, 137, 0}, "DeepPink2"}, {{205, 16, 118, 0}, "DeepPink3"}, {{139, 10, 80, 0}, "DeepPink4"}, {{255, 110, 180, 0}, "HotPink1"}, {{238, 106, 167, 0}, "HotPink2"}, {{205, 96, 144, 0}, "HotPink3"}, {{139, 58, 98, 0}, "HotPink4"}, {{255, 181, 197, 0}, "pink1"}, {{238, 169, 184, 0}, "pink2"}, {{205, 145, 158, 0}, "pink3"}, {{139, 99, 108, 0}, "pink4"}, {{255, 174, 185, 0}, "LightPink1"}, {{238, 162, 173, 0}, "LightPink2"}, {{205, 140, 149, 0}, "LightPink3"}, {{139, 95, 101, 0}, "LightPink4"}, {{255, 130, 171, 0}, "PaleVioletRed1"}, {{238, 121, 159, 0}, "PaleVioletRed2"}, {{205, 104, 137, 0}, "PaleVioletRed3"}, {{139, 71, 93, 0}, "PaleVioletRed4"}, {{255, 52, 179, 0}, "maroon1"}, {{238, 48, 167, 0}, "maroon2"}, {{205, 41, 144, 0}, "maroon3"}, {{139, 28, 98, 0}, "maroon4"}, {{255, 62, 150, 0}, "VioletRed1"}, {{238, 58, 140, 0}, "VioletRed2"}, {{205, 50, 120, 0}, "VioletRed3"}, {{139, 34, 82, 0}, "VioletRed4"}, {{255, 0, 255, 0}, "magenta1"}, {{238, 0, 238, 0}, "magenta2"}, {{205, 0, 205, 0}, "magenta3"}, {{139, 0, 139, 0}, "magenta4"}, {{255, 131, 250, 0}, "orchid1"}, {{238, 122, 233, 0}, "orchid2"}, {{205, 105, 201, 0}, "orchid3"}, {{139, 71, 137, 0}, "orchid4"}, {{255, 187, 255, 0}, "plum1"}, {{238, 174, 238, 0}, "plum2"}, {{205, 150, 205, 0}, "plum3"}, {{139, 102, 139, 0}, "plum4"}, {{224, 102, 255, 0}, "MediumOrchid1"}, {{209, 95, 238, 0}, "MediumOrchid2"}, {{180, 82, 205, 0}, "MediumOrchid3"}, {{122, 55, 139, 0}, "MediumOrchid4"}, {{191, 62, 255, 0}, "DarkOrchid1"}, {{178, 58, 238, 0}, "DarkOrchid2"}, {{154, 50, 205, 0}, "DarkOrchid3"}, {{104, 34, 139, 0}, "DarkOrchid4"}, {{155, 48, 255, 0}, "purple1"}, {{145, 44, 238, 0}, "purple2"}, {{125, 38, 205, 0}, "purple3"}, {{ 85, 26, 139, 0}, "purple4"}, {{171, 130, 255, 0}, "MediumPurple1"}, {{159, 121, 238, 0}, "MediumPurple2"}, {{137, 104, 205, 0}, "MediumPurple3"}, {{ 93, 71, 139, 0}, "MediumPurple4"}, {{255, 225, 255, 0}, "thistle1"}, {{238, 210, 238, 0}, "thistle2"}, {{205, 181, 205, 0}, "thistle3"}, {{139, 123, 139, 0}, "thistle4"}, {{ 0, 0, 0, 0}, "gray0"}, {{ 0, 0, 0, 0}, "grey0"}, {{ 3, 3, 3, 0}, "gray1"}, {{ 3, 3, 3, 0}, "grey1"}, {{ 5, 5, 5, 0}, "gray2"}, {{ 5, 5, 5, 0}, "grey2"}, {{ 8, 8, 8, 0}, "gray3"}, {{ 8, 8, 8, 0}, "grey3"}, {{ 10, 10, 10, 0}, "gray4"}, {{ 10, 10, 10, 0}, "grey4"}, {{ 13, 13, 13, 0}, "gray5"}, {{ 13, 13, 13, 0}, "grey5"}, {{ 15, 15, 15, 0}, "gray6"}, {{ 15, 15, 15, 0}, "grey6"}, {{ 18, 18, 18, 0}, "gray7"}, {{ 18, 18, 18, 0}, "grey7"}, {{ 20, 20, 20, 0}, "gray8"}, {{ 20, 20, 20, 0}, "grey8"}, {{ 23, 23, 23, 0}, "gray9"}, {{ 23, 23, 23, 0}, "grey9"}, {{ 26, 26, 26, 0}, "gray10"}, {{ 26, 26, 26, 0}, "grey10"}, {{ 28, 28, 28, 0}, "gray11"}, {{ 28, 28, 28, 0}, "grey11"}, {{ 31, 31, 31, 0}, "gray12"}, {{ 31, 31, 31, 0}, "grey12"}, {{ 33, 33, 33, 0}, "gray13"}, {{ 33, 33, 33, 0}, "grey13"}, {{ 36, 36, 36, 0}, "gray14"}, {{ 36, 36, 36, 0}, "grey14"}, {{ 38, 38, 38, 0}, "gray15"}, {{ 38, 38, 38, 0}, "grey15"}, {{ 41, 41, 41, 0}, "gray16"}, {{ 41, 41, 41, 0}, "grey16"}, {{ 43, 43, 43, 0}, "gray17"}, {{ 43, 43, 43, 0}, "grey17"}, {{ 46, 46, 46, 0}, "gray18"}, {{ 46, 46, 46, 0}, "grey18"}, {{ 48, 48, 48, 0}, "gray19"}, {{ 48, 48, 48, 0}, "grey19"}, {{ 51, 51, 51, 0}, "gray20"}, {{ 51, 51, 51, 0}, "grey20"}, {{ 54, 54, 54, 0}, "gray21"}, {{ 54, 54, 54, 0}, "grey21"}, {{ 56, 56, 56, 0}, "gray22"}, {{ 56, 56, 56, 0}, "grey22"}, {{ 59, 59, 59, 0}, "gray23"}, {{ 59, 59, 59, 0}, "grey23"}, {{ 61, 61, 61, 0}, "gray24"}, {{ 61, 61, 61, 0}, "grey24"}, {{ 64, 64, 64, 0}, "gray25"}, {{ 64, 64, 64, 0}, "grey25"}, {{ 66, 66, 66, 0}, "gray26"}, {{ 66, 66, 66, 0}, "grey26"}, {{ 69, 69, 69, 0}, "gray27"}, {{ 69, 69, 69, 0}, "grey27"}, {{ 71, 71, 71, 0}, "gray28"}, {{ 71, 71, 71, 0}, "grey28"}, {{ 74, 74, 74, 0}, "gray29"}, {{ 74, 74, 74, 0}, "grey29"}, {{ 77, 77, 77, 0}, "gray30"}, {{ 77, 77, 77, 0}, "grey30"}, {{ 79, 79, 79, 0}, "gray31"}, {{ 79, 79, 79, 0}, "grey31"}, {{ 82, 82, 82, 0}, "gray32"}, {{ 82, 82, 82, 0}, "grey32"}, {{ 84, 84, 84, 0}, "gray33"}, {{ 84, 84, 84, 0}, "grey33"}, {{ 87, 87, 87, 0}, "gray34"}, {{ 87, 87, 87, 0}, "grey34"}, {{ 89, 89, 89, 0}, "gray35"}, {{ 89, 89, 89, 0}, "grey35"}, {{ 92, 92, 92, 0}, "gray36"}, {{ 92, 92, 92, 0}, "grey36"}, {{ 94, 94, 94, 0}, "gray37"}, {{ 94, 94, 94, 0}, "grey37"}, {{ 97, 97, 97, 0}, "gray38"}, {{ 97, 97, 97, 0}, "grey38"}, {{ 99, 99, 99, 0}, "gray39"}, {{ 99, 99, 99, 0}, "grey39"}, {{102, 102, 102, 0}, "gray40"}, {{102, 102, 102, 0}, "grey40"}, {{105, 105, 105, 0}, "gray41"}, {{105, 105, 105, 0}, "grey41"}, {{107, 107, 107, 0}, "gray42"}, {{107, 107, 107, 0}, "grey42"}, {{110, 110, 110, 0}, "gray43"}, {{110, 110, 110, 0}, "grey43"}, {{112, 112, 112, 0}, "gray44"}, {{112, 112, 112, 0}, "grey44"}, {{115, 115, 115, 0}, "gray45"}, {{115, 115, 115, 0}, "grey45"}, {{117, 117, 117, 0}, "gray46"}, {{117, 117, 117, 0}, "grey46"}, {{120, 120, 120, 0}, "gray47"}, {{120, 120, 120, 0}, "grey47"}, {{122, 122, 122, 0}, "gray48"}, {{122, 122, 122, 0}, "grey48"}, {{125, 125, 125, 0}, "gray49"}, {{125, 125, 125, 0}, "grey49"}, {{127, 127, 127, 0}, "gray50"}, {{127, 127, 127, 0}, "grey50"}, {{130, 130, 130, 0}, "gray51"}, {{130, 130, 130, 0}, "grey51"}, {{133, 133, 133, 0}, "gray52"}, {{133, 133, 133, 0}, "grey52"}, {{135, 135, 135, 0}, "gray53"}, {{135, 135, 135, 0}, "grey53"}, {{138, 138, 138, 0}, "gray54"}, {{138, 138, 138, 0}, "grey54"}, {{140, 140, 140, 0}, "gray55"}, {{140, 140, 140, 0}, "grey55"}, {{143, 143, 143, 0}, "gray56"}, {{143, 143, 143, 0}, "grey56"}, {{145, 145, 145, 0}, "gray57"}, {{145, 145, 145, 0}, "grey57"}, {{148, 148, 148, 0}, "gray58"}, {{148, 148, 148, 0}, "grey58"}, {{150, 150, 150, 0}, "gray59"}, {{150, 150, 150, 0}, "grey59"}, {{153, 153, 153, 0}, "gray60"}, {{153, 153, 153, 0}, "grey60"}, {{156, 156, 156, 0}, "gray61"}, {{156, 156, 156, 0}, "grey61"}, {{158, 158, 158, 0}, "gray62"}, {{158, 158, 158, 0}, "grey62"}, {{161, 161, 161, 0}, "gray63"}, {{161, 161, 161, 0}, "grey63"}, {{163, 163, 163, 0}, "gray64"}, {{163, 163, 163, 0}, "grey64"}, {{166, 166, 166, 0}, "gray65"}, {{166, 166, 166, 0}, "grey65"}, {{168, 168, 168, 0}, "gray66"}, {{168, 168, 168, 0}, "grey66"}, {{171, 171, 171, 0}, "gray67"}, {{171, 171, 171, 0}, "grey67"}, {{173, 173, 173, 0}, "gray68"}, {{173, 173, 173, 0}, "grey68"}, {{176, 176, 176, 0}, "gray69"}, {{176, 176, 176, 0}, "grey69"}, {{179, 179, 179, 0}, "gray70"}, {{179, 179, 179, 0}, "grey70"}, {{181, 181, 181, 0}, "gray71"}, {{181, 181, 181, 0}, "grey71"}, {{184, 184, 184, 0}, "gray72"}, {{184, 184, 184, 0}, "grey72"}, {{186, 186, 186, 0}, "gray73"}, {{186, 186, 186, 0}, "grey73"}, {{189, 189, 189, 0}, "gray74"}, {{189, 189, 189, 0}, "grey74"}, {{191, 191, 191, 0}, "gray75"}, {{191, 191, 191, 0}, "grey75"}, {{194, 194, 194, 0}, "gray76"}, {{194, 194, 194, 0}, "grey76"}, {{196, 196, 196, 0}, "gray77"}, {{196, 196, 196, 0}, "grey77"}, {{199, 199, 199, 0}, "gray78"}, {{199, 199, 199, 0}, "grey78"}, {{201, 201, 201, 0}, "gray79"}, {{201, 201, 201, 0}, "grey79"}, {{204, 204, 204, 0}, "gray80"}, {{204, 204, 204, 0}, "grey80"}, {{207, 207, 207, 0}, "gray81"}, {{207, 207, 207, 0}, "grey81"}, {{209, 209, 209, 0}, "gray82"}, {{209, 209, 209, 0}, "grey82"}, {{212, 212, 212, 0}, "gray83"}, {{212, 212, 212, 0}, "grey83"}, {{214, 214, 214, 0}, "gray84"}, {{214, 214, 214, 0}, "grey84"}, {{217, 217, 217, 0}, "gray85"}, {{217, 217, 217, 0}, "grey85"}, {{219, 219, 219, 0}, "gray86"}, {{219, 219, 219, 0}, "grey86"}, {{222, 222, 222, 0}, "gray87"}, {{222, 222, 222, 0}, "grey87"}, {{224, 224, 224, 0}, "gray88"}, {{224, 224, 224, 0}, "grey88"}, {{227, 227, 227, 0}, "gray89"}, {{227, 227, 227, 0}, "grey89"}, {{229, 229, 229, 0}, "gray90"}, {{229, 229, 229, 0}, "grey90"}, {{232, 232, 232, 0}, "gray91"}, {{232, 232, 232, 0}, "grey91"}, {{235, 235, 235, 0}, "gray92"}, {{235, 235, 235, 0}, "grey92"}, {{237, 237, 237, 0}, "gray93"}, {{237, 237, 237, 0}, "grey93"}, {{240, 240, 240, 0}, "gray94"}, {{240, 240, 240, 0}, "grey94"}, {{242, 242, 242, 0}, "gray95"}, {{242, 242, 242, 0}, "grey95"}, {{245, 245, 245, 0}, "gray96"}, {{245, 245, 245, 0}, "grey96"}, {{247, 247, 247, 0}, "gray97"}, {{247, 247, 247, 0}, "grey97"}, {{250, 250, 250, 0}, "gray98"}, {{250, 250, 250, 0}, "grey98"}, {{252, 252, 252, 0}, "gray99"}, {{252, 252, 252, 0}, "grey99"}, {{255, 255, 255, 0}, "gray100"}, {{255, 255, 255, 0}, "grey100"}, {{169, 169, 169, 0}, "dark"}, {{169, 169, 169, 0}, "DarkGrey"}, {{169, 169, 169, 0}, "dark"}, {{169, 169, 169, 0}, "DarkGray"}, {{ 0, 0, 139, 0}, "dark"}, {{ 0, 0, 139, 0}, "DarkBlue"}, {{ 0, 139, 139, 0}, "dark"}, {{ 0, 139, 139, 0}, "DarkCyan"}, {{139, 0, 139, 0}, "dark"}, {{139, 0, 139, 0}, "DarkMagenta"}, {{139, 0, 0, 0}, "dark"}, {{139, 0, 0, 0}, "DarkRed"}, {{144, 238, 144, 0}, "light"}, {{144, 238, 144, 0}, "LightGreen"}, {{ 0, 0, 0, 0}, NULL} }; #endif WindowMaker-0.95.5/WINGs/wpopupbutton.c0000644000175000017500000004311012214432632014641 00000000000000 #include "WINGsP.h" typedef struct W_PopUpButton { W_Class widgetClass; WMView *view; void *clientData; WMAction *action; char *caption; WMArray *items; short selectedItemIndex; short highlightedItem; WMView *menuView; /* override redirect popup menu */ WMHandlerID timer; /* for autoscroll */ /**/ int scrollStartY; /* for autoscroll */ struct { unsigned int pullsDown:1; unsigned int configured:1; unsigned int insideMenu:1; unsigned int enabled:1; } flags; } PopUpButton; #define MENU_BLINK_DELAY 60000 #define MENU_BLINK_COUNT 2 #define SCROLL_DELAY 10 #define DEFAULT_WIDTH 60 #define DEFAULT_HEIGHT 20 #define DEFAULT_CAPTION "" static void destroyPopUpButton(PopUpButton * bPtr); static void paintPopUpButton(PopUpButton * bPtr); static void handleEvents(XEvent * event, void *data); static void handleActionEvents(XEvent * event, void *data); static void resizeMenu(PopUpButton * bPtr); WMPopUpButton *WMCreatePopUpButton(WMWidget * parent) { PopUpButton *bPtr; W_Screen *scr = W_VIEW(parent)->screen; bPtr = wmalloc(sizeof(PopUpButton)); bPtr->widgetClass = WC_PopUpButton; bPtr->view = W_CreateView(W_VIEW(parent)); if (!bPtr->view) { wfree(bPtr); return NULL; } bPtr->view->self = bPtr; WMCreateEventHandler(bPtr->view, ExposureMask | StructureNotifyMask | ClientMessageMask, handleEvents, bPtr); W_ResizeView(bPtr->view, DEFAULT_WIDTH, DEFAULT_HEIGHT); bPtr->caption = wstrdup(DEFAULT_CAPTION); WMCreateEventHandler(bPtr->view, ButtonPressMask | ButtonReleaseMask, handleActionEvents, bPtr); bPtr->flags.enabled = 1; bPtr->items = WMCreateArrayWithDestructor(4, (WMFreeDataProc *) WMDestroyMenuItem); bPtr->selectedItemIndex = -1; bPtr->menuView = W_CreateUnmanagedTopView(scr); W_ResizeView(bPtr->menuView, bPtr->view->size.width, 1); WMCreateEventHandler(bPtr->menuView, ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask | ButtonMotionMask | ExposureMask, handleActionEvents, bPtr); return bPtr; } void WMSetPopUpButtonAction(WMPopUpButton * bPtr, WMAction * action, void *clientData) { CHECK_CLASS(bPtr, WC_PopUpButton); bPtr->action = action; bPtr->clientData = clientData; } WMMenuItem *WMAddPopUpButtonItem(WMPopUpButton * bPtr, const char *title) { WMMenuItem *item; CHECK_CLASS(bPtr, WC_PopUpButton); item = WMCreateMenuItem(); WMSetMenuItemTitle(item, title); WMAddToArray(bPtr->items, item); if (bPtr->menuView && bPtr->menuView->flags.realized) resizeMenu(bPtr); return item; } WMMenuItem *WMInsertPopUpButtonItem(WMPopUpButton * bPtr, int index, const char *title) { WMMenuItem *item; CHECK_CLASS(bPtr, WC_PopUpButton); item = WMCreateMenuItem(); WMSetMenuItemTitle(item, title); WMInsertInArray(bPtr->items, index, item); /* if there is an selected item, update it's index to match the new * position */ if (index < bPtr->selectedItemIndex) bPtr->selectedItemIndex++; if (bPtr->menuView && bPtr->menuView->flags.realized) resizeMenu(bPtr); return item; } void WMRemovePopUpButtonItem(WMPopUpButton * bPtr, int index) { CHECK_CLASS(bPtr, WC_PopUpButton); wassertr(index >= 0 && index < WMGetArrayItemCount(bPtr->items)); WMDeleteFromArray(bPtr->items, index); if (bPtr->selectedItemIndex >= 0 && !bPtr->flags.pullsDown) { if (index < bPtr->selectedItemIndex) bPtr->selectedItemIndex--; else if (index == bPtr->selectedItemIndex) { /* reselect first item if the removed item is the * selected one */ bPtr->selectedItemIndex = 0; if (bPtr->view->flags.mapped) paintPopUpButton(bPtr); } } if (bPtr->menuView && bPtr->menuView->flags.realized) resizeMenu(bPtr); } void WMSetPopUpButtonEnabled(WMPopUpButton * bPtr, Bool flag) { bPtr->flags.enabled = ((flag == 0) ? 0 : 1); if (bPtr->view->flags.mapped) paintPopUpButton(bPtr); } Bool WMGetPopUpButtonEnabled(WMPopUpButton * bPtr) { return bPtr->flags.enabled; } void WMSetPopUpButtonSelectedItem(WMPopUpButton * bPtr, int index) { wassertr(index < WMGetArrayItemCount(bPtr->items)); /* if (index >= WMGetArrayCount(bPtr->items)) index = -1; */ bPtr->selectedItemIndex = index; if (bPtr->view->flags.mapped) paintPopUpButton(bPtr); } int WMGetPopUpButtonSelectedItem(WMPopUpButton * bPtr) { if (!bPtr->flags.pullsDown && bPtr->selectedItemIndex < 0) return -1; else return bPtr->selectedItemIndex; } void WMSetPopUpButtonText(WMPopUpButton * bPtr, const char *text) { if (bPtr->caption) wfree(bPtr->caption); if (text) bPtr->caption = wstrdup(text); else bPtr->caption = NULL; if (bPtr->view->flags.realized) { if (bPtr->flags.pullsDown || bPtr->selectedItemIndex < 0) { paintPopUpButton(bPtr); } } } void WMSetPopUpButtonItemEnabled(WMPopUpButton * bPtr, int index, Bool flag) { WMSetMenuItemEnabled(WMGetFromArray(bPtr->items, index), (flag ? 1 : 0)); } Bool WMGetPopUpButtonItemEnabled(WMPopUpButton * bPtr, int index) { return WMGetMenuItemEnabled(WMGetFromArray(bPtr->items, index)); } void WMSetPopUpButtonPullsDown(WMPopUpButton * bPtr, Bool flag) { bPtr->flags.pullsDown = ((flag == 0) ? 0 : 1); if (flag) { bPtr->selectedItemIndex = -1; } if (bPtr->view->flags.mapped) paintPopUpButton(bPtr); } int WMGetPopUpButtonNumberOfItems(WMPopUpButton * bPtr) { return WMGetArrayItemCount(bPtr->items); } char *WMGetPopUpButtonItem(WMPopUpButton * bPtr, int index) { if (index >= WMGetArrayItemCount(bPtr->items) || index < 0) return NULL; return WMGetMenuItemTitle(WMGetFromArray(bPtr->items, index)); } WMMenuItem *WMGetPopUpButtonMenuItem(WMPopUpButton * bPtr, int index) { return WMGetFromArray(bPtr->items, index); } static void paintPopUpButton(PopUpButton * bPtr) { W_Screen *scr = bPtr->view->screen; char *caption; Pixmap pixmap; if (bPtr->flags.pullsDown) { caption = bPtr->caption; } else { if (bPtr->selectedItemIndex < 0) { /* if no item selected, show the caption */ caption = bPtr->caption; } else { caption = WMGetPopUpButtonItem(bPtr, bPtr->selectedItemIndex); } } pixmap = XCreatePixmap(scr->display, bPtr->view->window, bPtr->view->size.width, bPtr->view->size.height, scr->depth); XFillRectangle(scr->display, pixmap, WMColorGC(scr->gray), 0, 0, bPtr->view->size.width, bPtr->view->size.height); W_DrawRelief(scr, pixmap, 0, 0, bPtr->view->size.width, bPtr->view->size.height, WRRaised); if (caption) { W_PaintText(bPtr->view, pixmap, scr->normalFont, 6, (bPtr->view->size.height - WMFontHeight(scr->normalFont)) / 2, bPtr->view->size.width, WALeft, bPtr->flags.enabled ? scr->black : scr->darkGray, False, caption, strlen(caption)); } if (bPtr->flags.pullsDown) { XCopyArea(scr->display, scr->pullDownIndicator->pixmap, pixmap, scr->copyGC, 0, 0, scr->pullDownIndicator->width, scr->pullDownIndicator->height, bPtr->view->size.width - scr->pullDownIndicator->width - 4, (bPtr->view->size.height - scr->pullDownIndicator->height) / 2); } else { int x, y; x = bPtr->view->size.width - scr->popUpIndicator->width - 4; y = (bPtr->view->size.height - scr->popUpIndicator->height) / 2; XSetClipOrigin(scr->display, scr->clipGC, x, y); XSetClipMask(scr->display, scr->clipGC, scr->popUpIndicator->mask); XCopyArea(scr->display, scr->popUpIndicator->pixmap, pixmap, scr->clipGC, 0, 0, scr->popUpIndicator->width, scr->popUpIndicator->height, x, y); } XCopyArea(scr->display, pixmap, bPtr->view->window, scr->copyGC, 0, 0, bPtr->view->size.width, bPtr->view->size.height, 0, 0); XFreePixmap(scr->display, pixmap); } static void handleEvents(XEvent * event, void *data) { PopUpButton *bPtr = (PopUpButton *) data; CHECK_CLASS(data, WC_PopUpButton); switch (event->type) { case Expose: if (event->xexpose.count != 0) break; paintPopUpButton(bPtr); break; case DestroyNotify: destroyPopUpButton(bPtr); break; } } static void paintMenuEntry(PopUpButton * bPtr, int index, int highlight) { W_Screen *scr = bPtr->view->screen; int yo; int width, itemHeight, itemCount; char *title; itemCount = WMGetArrayItemCount(bPtr->items); if (index < 0 || index >= itemCount) return; itemHeight = bPtr->view->size.height; width = bPtr->view->size.width; yo = (itemHeight - WMFontHeight(scr->normalFont)) / 2; if (!highlight) { XClearArea(scr->display, bPtr->menuView->window, 0, index * itemHeight, width, itemHeight, False); return; } else if (index < 0 && bPtr->flags.pullsDown) { return; } XFillRectangle(scr->display, bPtr->menuView->window, WMColorGC(scr->white), 1, index * itemHeight + 1, width - 3, itemHeight - 3); title = WMGetPopUpButtonItem(bPtr, index); W_DrawRelief(scr, bPtr->menuView->window, 0, index * itemHeight, width, itemHeight, WRRaised); W_PaintText(bPtr->menuView, bPtr->menuView->window, scr->normalFont, 6, index * itemHeight + yo, width, WALeft, scr->black, False, title, strlen(title)); if (!bPtr->flags.pullsDown && index == bPtr->selectedItemIndex) { XCopyArea(scr->display, scr->popUpIndicator->pixmap, bPtr->menuView->window, scr->copyGC, 0, 0, scr->popUpIndicator->width, scr->popUpIndicator->height, width - scr->popUpIndicator->width - 4, index * itemHeight + (itemHeight - scr->popUpIndicator->height) / 2); } } static Pixmap makeMenuPixmap(PopUpButton * bPtr) { Pixmap pixmap; W_Screen *scr = bPtr->view->screen; WMMenuItem *item; WMArrayIterator iter; int yo, i; int width, height, itemHeight; itemHeight = bPtr->view->size.height; width = bPtr->view->size.width; height = itemHeight * WMGetArrayItemCount(bPtr->items); yo = (itemHeight - WMFontHeight(scr->normalFont)) / 2; pixmap = XCreatePixmap(scr->display, bPtr->view->window, width, height, scr->depth); XFillRectangle(scr->display, pixmap, WMColorGC(scr->gray), 0, 0, width, height); i = 0; WM_ITERATE_ARRAY(bPtr->items, item, iter) { WMColor *color; char *text; text = WMGetMenuItemTitle(item); W_DrawRelief(scr, pixmap, 0, i * itemHeight, width, itemHeight, WRRaised); if (!WMGetMenuItemEnabled(item)) color = scr->darkGray; else color = scr->black; W_PaintText(bPtr->menuView, pixmap, scr->normalFont, 6, i * itemHeight + yo, width, WALeft, color, False, text, strlen(text)); if (!bPtr->flags.pullsDown && i == bPtr->selectedItemIndex) { XCopyArea(scr->display, scr->popUpIndicator->pixmap, pixmap, scr->copyGC, 0, 0, scr->popUpIndicator->width, scr->popUpIndicator->height, width - scr->popUpIndicator->width - 4, i * itemHeight + (itemHeight - scr->popUpIndicator->height) / 2); } i++; } return pixmap; } static void resizeMenu(PopUpButton * bPtr) { int height; height = WMGetArrayItemCount(bPtr->items) * bPtr->view->size.height; if (height > 0) W_ResizeView(bPtr->menuView, bPtr->view->size.width, height); } static void popUpMenu(PopUpButton * bPtr) { W_Screen *scr = bPtr->view->screen; Window dummyW; int x, y; if (!bPtr->flags.enabled) return; if (!bPtr->menuView->flags.realized) { W_RealizeView(bPtr->menuView); resizeMenu(bPtr); } if (WMGetArrayItemCount(bPtr->items) < 1) return; XTranslateCoordinates(scr->display, bPtr->view->window, scr->rootWin, 0, 0, &x, &y, &dummyW); if (bPtr->flags.pullsDown) { y += bPtr->view->size.height; } else { y -= bPtr->view->size.height * bPtr->selectedItemIndex; } W_MoveView(bPtr->menuView, x, y); XSetWindowBackgroundPixmap(scr->display, bPtr->menuView->window, makeMenuPixmap(bPtr)); XClearWindow(scr->display, bPtr->menuView->window); if (W_VIEW_WIDTH(bPtr->menuView) != W_VIEW_WIDTH(bPtr->view)) resizeMenu(bPtr); W_MapView(bPtr->menuView); bPtr->highlightedItem = 0; if (!bPtr->flags.pullsDown && bPtr->selectedItemIndex < 0) paintMenuEntry(bPtr, bPtr->selectedItemIndex, True); } static void popDownMenu(PopUpButton * bPtr) { W_UnmapView(bPtr->menuView); } static void autoScroll(void *data) { PopUpButton *bPtr = (PopUpButton *) data; int scrHeight = WMWidgetScreen(bPtr)->rootView->size.height; int repeat = 0; int dy = 0; if (bPtr->scrollStartY >= scrHeight - 1 && bPtr->menuView->pos.y + bPtr->menuView->size.height >= scrHeight - 1) { repeat = 1; if (bPtr->menuView->pos.y + bPtr->menuView->size.height - 5 <= scrHeight - 1) { dy = scrHeight - 1 - (bPtr->menuView->pos.y + bPtr->menuView->size.height); } else dy = -5; } else if (bPtr->scrollStartY <= 1 && bPtr->menuView->pos.y < 1) { repeat = 1; if (bPtr->menuView->pos.y + 5 > 1) dy = 1 - bPtr->menuView->pos.y; else dy = 5; } if (repeat) { int oldItem; W_MoveView(bPtr->menuView, bPtr->menuView->pos.x, bPtr->menuView->pos.y + dy); oldItem = bPtr->highlightedItem; bPtr->highlightedItem = (bPtr->scrollStartY - bPtr->menuView->pos.y) / bPtr->view->size.height; if (oldItem != bPtr->highlightedItem) { WMMenuItem *item; paintMenuEntry(bPtr, oldItem, False); if (bPtr->highlightedItem >= 0 && bPtr->highlightedItem < WMGetArrayItemCount(bPtr->items)) { item = WMGetPopUpButtonMenuItem(bPtr, bPtr->highlightedItem); paintMenuEntry(bPtr, bPtr->highlightedItem, WMGetMenuItemEnabled(item)); } else { bPtr->highlightedItem = -1; } } bPtr->timer = WMAddTimerHandler(SCROLL_DELAY, autoScroll, bPtr); } else { bPtr->timer = NULL; } } static void wheelScrollUp(PopUpButton * bPtr) { int testIndex = bPtr->selectedItemIndex - 1; while (testIndex >= 0 && !WMGetPopUpButtonItemEnabled(bPtr, testIndex)) testIndex--; if (testIndex != -1) { WMSetPopUpButtonSelectedItem(bPtr, testIndex); if (bPtr->action) (*bPtr->action) (bPtr, bPtr->clientData); } } static void wheelScrollDown(PopUpButton * bPtr) { int itemCount = WMGetArrayItemCount(bPtr->items); int testIndex = bPtr->selectedItemIndex + 1; while (testIndex < itemCount && !WMGetPopUpButtonItemEnabled(bPtr, testIndex)) testIndex++; if (testIndex != itemCount) { WMSetPopUpButtonSelectedItem(bPtr, testIndex); if (bPtr->action) (*bPtr->action) (bPtr, bPtr->clientData); } } static void handleActionEvents(XEvent * event, void *data) { PopUpButton *bPtr = (PopUpButton *) data; int oldItem; int scrHeight = WMWidgetScreen(bPtr)->rootView->size.height; CHECK_CLASS(data, WC_PopUpButton); if (WMGetArrayItemCount(bPtr->items) < 1) return; switch (event->type) { /* called for menuView */ case Expose: paintMenuEntry(bPtr, bPtr->highlightedItem, True); break; case LeaveNotify: bPtr->flags.insideMenu = 0; if (bPtr->menuView->flags.mapped) paintMenuEntry(bPtr, bPtr->highlightedItem, False); bPtr->highlightedItem = -1; break; case EnterNotify: bPtr->flags.insideMenu = 1; break; case MotionNotify: if (bPtr->flags.insideMenu) { oldItem = bPtr->highlightedItem; bPtr->highlightedItem = event->xmotion.y / bPtr->view->size.height; if (oldItem != bPtr->highlightedItem) { WMMenuItem *item; paintMenuEntry(bPtr, oldItem, False); if (bPtr->highlightedItem >= 0 && bPtr->highlightedItem < WMGetArrayItemCount(bPtr->items)) { item = WMGetPopUpButtonMenuItem(bPtr, bPtr->highlightedItem); paintMenuEntry(bPtr, bPtr->highlightedItem, WMGetMenuItemEnabled(item)); } else { bPtr->highlightedItem = -1; } } if (event->xmotion.y_root >= scrHeight - 1 || event->xmotion.y_root <= 1) { bPtr->scrollStartY = event->xmotion.y_root; if (!bPtr->timer) autoScroll(bPtr); } else if (bPtr->timer) { WMDeleteTimerHandler(bPtr->timer); bPtr->timer = NULL; } } break; /* called for bPtr->view */ case ButtonPress: if (!bPtr->flags.enabled) break; if (event->xbutton.button == WINGsConfiguration.mouseWheelUp) { if (!bPtr->menuView->flags.mapped && !bPtr->flags.pullsDown) { wheelScrollUp(bPtr); } break; } else if (event->xbutton.button == WINGsConfiguration.mouseWheelDown) { if (!bPtr->menuView->flags.mapped && !bPtr->flags.pullsDown) { wheelScrollDown(bPtr); } break; } popUpMenu(bPtr); if (!bPtr->flags.pullsDown) { bPtr->highlightedItem = bPtr->selectedItemIndex; bPtr->flags.insideMenu = 1; } else { bPtr->highlightedItem = -1; bPtr->flags.insideMenu = 0; } XGrabPointer(bPtr->view->screen->display, bPtr->menuView->window, False, ButtonReleaseMask | ButtonMotionMask | EnterWindowMask | LeaveWindowMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime); break; case ButtonRelease: if (event->xbutton.button == WINGsConfiguration.mouseWheelUp || event->xbutton.button == WINGsConfiguration.mouseWheelDown) { break; } XUngrabPointer(bPtr->view->screen->display, event->xbutton.time); if (!bPtr->flags.pullsDown) popDownMenu(bPtr); if (bPtr->timer) { WMDeleteTimerHandler(bPtr->timer); bPtr->timer = NULL; } if (bPtr->flags.insideMenu && bPtr->highlightedItem >= 0) { WMMenuItem *item; item = WMGetPopUpButtonMenuItem(bPtr, bPtr->highlightedItem); if (WMGetMenuItemEnabled(item)) { int i; WMSetPopUpButtonSelectedItem(bPtr, bPtr->highlightedItem); if (bPtr->flags.pullsDown) { for (i = 0; i < MENU_BLINK_COUNT; i++) { paintMenuEntry(bPtr, bPtr->highlightedItem, False); XSync(bPtr->view->screen->display, 0); wusleep(MENU_BLINK_DELAY); paintMenuEntry(bPtr, bPtr->highlightedItem, True); XSync(bPtr->view->screen->display, 0); wusleep(MENU_BLINK_DELAY); } } paintMenuEntry(bPtr, bPtr->highlightedItem, False); popDownMenu(bPtr); if (bPtr->action) (*bPtr->action) (bPtr, bPtr->clientData); } } if (bPtr->menuView->flags.mapped) popDownMenu(bPtr); break; } } static void destroyPopUpButton(PopUpButton * bPtr) { if (bPtr->timer) { WMDeleteTimerHandler(bPtr->timer); } WMFreeArray(bPtr->items); if (bPtr->caption) wfree(bPtr->caption); /* have to destroy explicitly because the popup is a toplevel */ W_DestroyView(bPtr->menuView); wfree(bPtr); } WindowMaker-0.95.5/WINGs/Resources/0000755000175000017500000000000012214434642013745 500000000000000WindowMaker-0.95.5/WINGs/Resources/Makefile.in0000644000175000017500000003147412214434561015743 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WINGs/Resources DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(resdatadir)" DATA = $(resdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ resdatadir = $(datadir)/WINGs resdata_DATA = Images.tiff Images.xpm defaultIcon.tiff defaultIcon.xpm EXTRA_DIST = $(resdata_DATA) Images.xcf all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/Resources/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WINGs/Resources/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-resdataDATA: $(resdata_DATA) @$(NORMAL_INSTALL) test -z "$(resdatadir)" || $(MKDIR_P) "$(DESTDIR)$(resdatadir)" @list='$(resdata_DATA)'; test -n "$(resdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(resdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(resdatadir)" || exit $$?; \ done uninstall-resdataDATA: @$(NORMAL_UNINSTALL) @list='$(resdata_DATA)'; test -n "$(resdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(resdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(resdatadir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(resdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-resdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-resdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-resdataDATA \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-resdataDATA # 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. .NOEXPORT: WindowMaker-0.95.5/WINGs/Resources/Images.xcf0000644000175000017500000013607112214432632015601 00000000000000gimp xcf file€€BB?cR£€€ Pasted Layerÿ     ?€€,R—€€H‡:KKäö  3ó &0ð #" # üï ÷9MTK6÷'%&&÷ôBZlvxo[E3Uî¡„„Š„wqzxnoŠ•¦–—Wò[p†ŠzolZKB1 ìUã¬+,Ö.917äG#:£rÜJHIJKLLJI}™ ˆqgc]WRJ1 =TSTUURQOQUVîöü"QõB/!0öbŸmýIHIIKí./¯Ö¯„}zt]XTNDLRRSûQRUVíUøÿb{‘öe˜p‡Óÿ„«Ø¹oHI㜠Ö㱃z_ZWRL2 ?PQQRThˆ}waþUþ ü ûHGHHIIã”Åáâ¶Œvmr¸§}zdK +KQQVl²Ä„]XìA8) <,G509 1#4ûHGGHIIË’Úçá´Štlp·¨€~jVGQY¨ÎµtWTU,BI-HàHGHHIJJÍÙˤ€pkoÉÀ©¨zGTiÀ‹VQQþRþÄHTeIIJKSž· †rjhrìïööט!MT_dQONONQf®VeC„~KoƒsnfYnkrTQHwOÜH[–tQLL',dŠtgddmÈÕóóÏg-#JNONNMMNMQêý‹@.£d,š{I@@‰kF47¶1ÜGHo›™«¾L<]z|f]ai«¿ðï©?ABABBå?0!.=,T²œO=??FJIHEGCýq~ðàȰØ]eníÆÀÞnûB<<>??å@=1$ )-++/0,*o½ƒ>6BGFC@?A@Ü?:<=??=;<>?=94/+)+.4;77™ºf8?A@?>=??ñ>9;=>>;;<>><<=<<ô=>>5B®¥W8>=<<ý>?í:9;<;;=>?@?>:;;;÷9/TÑB5:;;>û78:9;;ô=??=;:9;=><::ó6.”Àv87:;;=?÷U%=HQVH 7ò899;;<==;:99:;;î98998822œ°a58:;2•´Ûº”‘‰kgb\P)hpooùnmkkptíUòù_u„íu¤Íÿ{­ÅµmÜ\UUX[^`"§¤Ùç»’••mifaZ9Vnlmnn€¡™”‚ëU I%Q9F2>VDH%F,;>4JÜYTUVY\_›Èãæ½–~tzÅ·˜•}^:ellu‹ÃÔœutê.rVRmXfPthM}omDsOndu-ÃWSSVWY]˜ßêå»”{swŹš™‚m(^kv½ÜÆ‹gdg^fc@cQ]aS`V`Z^x_|_`g_ƒ?ÃVQTTWX\…ÕàÕ®‹xrwÓ˺¹¤%_l‚ÏŸh][[]>E6897>EFCEHHFB77;GOP\>ÄV_rWWX\\­Çµ–~roxíðööâ§'(hgtu_XVWVXf©K\;pBc\NHC8a]lJH@oDÜTd¢†a^a0/pšŸƒrmmvÎÙóóÚq9/^Y\XXUUTTXêýŠC5£d6Ÿ^7XN1¡‰kFNOMLNMJISSêù“‘«ÿ:²QB]D"ŠNûŠ@é™ÁÃLCFHKKMOaC'5QhnpfiX7QO5HQNK]ˆ‰_LTN­–ü›N3˜+ËL2 ÂLtBÑŠ+œúzlÃICCFHIIKG< hw~zqc2G~XENJIQf^QLNJꘇZI°±¸¦›ÿŠUH®›ž¡ÿ‡ŒYÃH@ACFEFFGC5"$3C.K˜I@BBKRNJHIGYeTHË•©­‚…Š>8ÚÅÁÍ#‹EWØF?>@AB?BBC?4%!,.,.450+cŸm;9FJHFCCFCYYEEþžžúEYYEžžýYEÜC??=>>@??ê=>=>>??@6>–‰K:@@?@ABCý=:==?úA@A?>??þ@??ò=1I¥y?9>??@BBý9:;;ö<=??A??=>??í>=>=>=:/¡b7>ö=><><=<=<==ó;61‡”T7ŸkÜŠƒ…Š‹“ ~§ºÊį§¥™“‰wKqœžœž›˜’”™îöüV}òHkJc‰ó4P›fÜ„z}ƒ…ˆ‹V7£¼åж¸·³—”‰v(8Œ™˜˜—”’”™íUïõUn{ênÀ‰ Ãþr§¾«eÜ€tt|‚…‰/±¨Þïбº»·—•’ˆQv””“”“¡¼µ²£ëU5_s€ov‰{c}kywoƒBÜ|rrw}ƒ†!¤ÍíóÖ»–‰ØÒÅï‹N‰‘“›«Òà·—”êQ’}uކ‘€™’ ••y™€•‘¡NÃymoty}ƒŸçôóÕ¹”ˆ×ÓÇÆ³ž6™ÏæÔ§‰„ˆŒ‹‘l€‰ŽŽƒˆŒž¡“«hÃtknpty}’äñë㑇ŒàÝ××Ç· 1~ Ü·Š{yvyi~qutsz‚„ƒ†ŠŠƒ~rqu}†‰˜kÄtyvvy} pÏæÞÁ¨Œƒ‹ðò÷÷í¸-4‡ˆ”–€vrtotf¤DU9zgA^0!XRhCEHj@Üoyµ¡ƒ„B7¿Ä«™ŒˆÝäõõæ}H=zwzvuprmktêýŠLE d#¨0D[L§‰lG(f¶#âka··ÅÔrQ—¬¨“Š‹“ÍØóóÀIN8bnunkküainêÿÉsÿi@½'d_C¦}ç]CºDÜg[ikmp{n.*…š©™ˆ‰Ì×ó܃+0Fellfaa]UegêÿÔÛÔÿrÃ$:=a›oÿ` ê¿(äaTW]cff‚ .O[`Ž{Ьu>6)Qfgaaú`VSfcëÿ¡ÿ¥<»'SwB”Mû‹EçYÜ]NQW]`dfwO+?[…‘w{h9A:6Zga\u§£o[dYéWÔ\ªÏ*?YŒHÑŠXÐ.ÃYKNTX\]]ZI(n†Œˆ~p:CHLAR`[UaƒuaVYQ½[nu ŒÄº¯SÕs¼šž¼Îms ÃVGIOTUUVVRA+# $->U10LI@JIHWf^UMOH tÜ›§À`fmêÆÀÜnþREEHßIKNI;,'4527?@9)7OB4:LVRKGCFC žú žžþ ÜL@CBCCBCCGGDA<71/17?F?,CP>:FIGCA?A@öH<>?BFBABCCþABBïCDC9/IL<8A@?>>??ø?9;<=@BCCù?>@BCA??ò=1.QG57;;<=??Ü9899;=?@CC@?<;>>?>;;<;;8+AQ?28;<=>?ýUý! ô97989;<=>?=;;þ<;;ó:5(CL<39;=>?ò "/ -+ !û?;$ ù7# !*11ú*#)!û3C6ü<>599þ?JJùA:! !ü0> ì-fTWMINZ^Y^ZM1$!ýëUyrvlhaimzmvk]A8*3*ìUˆŒˆ€‰}ŠŠ|yoRA2*éU™««§Ÿ©œš«œšˆgQA2-(ýX¦½½ð»®¼½¼¬ª’qZI="(ýtÉÝÝòÜÍÝÍ̯©‡r[B.)ýÙîîöͽ¢iR=")ýãÿÿôþîп˜ƒlS?"è ý€âÿÿôþîÞã‹s^C3üè3 ýoáÿÿôþüîÝ·¡‹r]D1üè3 ýVÒÿ ÿöûä«”}gafüè3 ý’ìñ ñøàɸ¦ŽwRüè33 ýMÒñ ñøåÑôƒU+ý…ßññøêÝξª{D èü3àññúêÛ̘) üè3û3ðîññûìת0 üè3 ò™·äîëññîè㹌U üè3"÷€°ÏÏ¿ª™üè33sí &,39?FLRY_flrèè™Ÿ¥¬²¸¿ÅÌÒØßåëòÙ &,39?FLRY_flrè3Œ’™Ÿ¥¬²¸¿ÅÌÒØßåëòÙ &,39?FLRY_flrè3Œ’™Ÿ¥¬²¸¿ÅÌÒØßåëòÙ &,39?FLRY_flrè3Œ’™Ÿ¥¬²¸¿ÅÌÒØßåëòÙ &,39?FLRY_flrè33Œ’™Ÿ¥¬²¸¿ÅÌÒØßåëòÍù 5]†®Öÿ ÿüñÉ¡èè&ù 5]†®Öÿ ÿùñÉ¡è3%ù 5]†®Öÿ ÿùñÉ¡è'%ù 5]†®Öÿ ÿùñÉ¡ès& ÿ3 ÿ÷ ÿô :Þ÷ùïÚn0ÿü~ëþþûúÚ~ÿ ý þþûúå“ ý ÿÿþ þfþ þûùó ýÿÿ"ÿüÿÿ"ÿü6ÿÿü0"ÿþÿÿþ "ÿÿ"ÿÿ"ÿÿþ"ÿþÿÿ"ÿÿ"ÿþÿÿ"ÿþÿÿ"ÿþ ÿÿþ"ÿÿ"ÿÿ"ÿÿ"ÿÿþ"ÿ"ÿ"ÿ"ÿõ Ev—©©—yM"ÿñE‡¼ÜñýýñÝ”Y÷0¦ôø±5û`·ðÿÿûôÊ~-÷ MÃúïŽüfÍÿÿþüâŽ(÷lÙûÍGü`Íÿ ÿþü勸'†ÚÔrýE·ÿ ÿþýÝdù5²jü ‡ðÿ ÿþüø½ ú *:!ýE¼ÿ ÿþýãYüývÜÿ ÿþýð˜(ý—ñÿ ÿþýùÄ(ý©ýÿ ÿþþÚ(ý©ýÿ ÿþüÚÿ$ÿý—ñÿ ÿþûùÄÿ$ÿýyÝÿ ÿþûñœÿ$ÿýMÂÿ ÿþûådÿ$ÿü”ôþþúúÇÿ$ÿýYÊþþýæ*ü~âþ þüð«-%ÿü-Žåþ þüð³I%ÿû(‹Ýøþþûúæ«I%ÿñd½ãðùþþùñåÇ-%ÿõ Y˜ÄÚÚÄœd%ÿY%ÿ%ÿ%ÿ%ÿ%ÿmÿòªqUªqUUªq*ÿqôUªUU8ªUÿ$ÿ ùþÿ$ÿÿòªqUªqqªqªqÿ#ÿþýÿqôUU8qÿ"ÿýýù 0ú:&)*:8ýWÿóóýñ33ùªŽÜú¯"3ÿÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! ðl8Üaá::Sh[¥x33ÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! î3††š‹ƒƒŽ°·¨¨™¬S3ÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! îDÝÓ´¬›xƒƒ›‹zT=3ÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! ï3ÎþøÓËů››‚H6MS8ÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! î3¬·™ÜòàËȾ“–‚L0# -ï3æÝ^S8DQU6,:/(ÿþÿÿþÿÿþÿÿþÿÿî3Óå¬qš”bAM<4D6& þÿü3ÿü3ÿü3ÿü3ÿþ3ï3Öò¨}±º}k|h@PH""þÿü3ÿü3ÿü3ÿü3ÿþ3î3âü©†Ð¼uq©“LUS"$ þÿü3ÿü3ÿü3ÿü3ÿþ3ï3èÿ©“ÜÁ}z³›LUW%0þÿ33ýÿ33ýÿ33ýÿ33ýÿ33ï3èÿ¬–ÜÂz·›MWk)5.ï3èÿ¬–ÜÁ}z¸™LWi)7ÿþÿÿþÿÿþÿÿþÿÿï3èÿ°–ÜÁ|z¹—LUf$3þÿü3ÿü3ÿü3ÿü3ÿþ3ï3èÿ¯›Ý¿w€·—LUi"-þÿü3ÿü3ÿü3ÿü3ÿþ3ï3èä·£áÃoƒµ‘O^a&(þÿü3ÿü3ÿü3ÿü3ÿþ3í3ÇåÒ§ãÊzŽ¥‚HUL-#zþÿ33ýÿ33ýÿ33ýÿ33ýÿ33í3¸ÑÜèЫ–‚eBG3&Uzz-3ñHk§³oH8.fwf0ô§kH++'+'hoz.ò‚wssvvtvWvcUuttûrqqD)Çy«©¤Ÿ¡¤¦¡•yƒ’”“’“‘nzÿøñêãÜÕÎÇÀº³¬¥ž—‰‚|ung`YRKD>70)èèý ño£™—•Š•yu…ŠŠÓŒˆk~ÿøñêãÜÕÎÇÀº³¬¥ž—‰‚|ung`YRKD>70)è3 ‚n¡–•‹‰†…†—vkv{~|~~|`~ÿøñêãÜÕÎÇÀº³¬¥ž—‰‚|ung`YRKD>70)è3 }¡•”Žˆ„…•paqwtrprwX ~ÿøñêãÜÕÎÇÀº³¬¥ž—‰‚|ung`YRKD>70)è3 ©ƒ•ŽŽŒ†„iZjpiigkqP ~ÿøñêãÜÕÎÇÀº³¬¥ž—‰‚|ung`YRKD>70)è33 }Š‹Žˆƒ}~—e[fdde`a\K~'á3’Œ’…{‹´s\Zfc_[[_?~ÿþþýýèèüûúúùùø÷öõôóòñðïîÙ쟒–“ŽŒ€tnƒkMUa\[^^V(ÿþþýýè3ûúúùùø÷öõôóòñðïîÙí–qhe`URNKN€gFB=<<=:6#ÿþþýýè3ûúúùùø÷öõôóòñðïîÚ3x¢‡~ldbcd‚dSPQOIEB8~ÿþþýýè3ûúúùùø÷öõôóòñðïîÜv“Š~qiggeXX][XULC~ÿþþýýè33ûúúùùø÷öõôóòñðïîæí3w•ŽŠzunig^]a^[]SN0~(çx˜Š~yuq…h^]^^Y[NM9~ÿÿèÿäüy“ŒŠ„~xup„haY\[XXJI8~ÿÿüè3ÿÿäü‚“ˆ†~|{q}j^\YWTVQJ=~ÿÿüè3ÿÿäýˆ‡xpfe\SQYNNSXVPKHH1ÿÿüè3ÿÿäþe>0@ ÿÿüè33ÿÿþ€€ö~}}||y{~~}}~)ïUUU(.UUi:þU^ýýþüþû þþü    ÷   þþ þô  þ 0ú:&)*:8ýWÿóóýñ33ùªŽÜú¯"3ÿÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! ðl8Üaá::Sh[¥x33ÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! î3††š‹ƒƒŽ°·¨¨™¬S3ÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! îDÝÓ´¬›xƒƒ›‹zT=3ÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! ï3ÎþøÓËů››‚H6MS8ÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! î3¬·™ÜòàËȾ“–‚L0# -ï3æÝ^S8DQU6,:/(ÿþÿÿþÿÿþÿÿþÿÿî3Óå¬qš”bAM<4D6& þÿü3ÿü3ÿü3ÿü3ÿþ3ï3Öò¨}±º}k|h@PH""þÿü3ÿü3ÿü3ÿü3ÿþ3î3âü©†Ð¼uq©“LUS"$ þÿü3ÿü3ÿü3ÿü3ÿþ3ï3èÿ©“ÜÁ}z³›LUW%0þÿ33ýÿ33ýÿ33ýÿ33ýÿ33ï3èÿ¬–ÜÂz·›MWk)5.ï3èÿ¬–ÜÁ}z¸™LWi)7ÿþÿÿþÿÿþÿÿþÿÿï3èÿ°–ÜÁ|z¹—LUf$3þÿü3ÿü3ÿü3ÿü3ÿþ3ï3èÿ¯›Ý¿w€·—LUi"-þÿü3ÿü3ÿü3ÿü3ÿþ3ï3èä·£áÃoƒµ‘O^a&(þÿü3ÿü3ÿü3ÿü3ÿþ3í3ÇåÒ§ãÊzŽ¥‚HUL-#wþÿ33ýÿ33ýÿ33ýÿ33ýÿ33í3¸ÑÜèЫ–‚eBG3&Tww-3ñHk§³oH8.ct]0ô§kH++'+'elw.ój^ZVWWTVCYFATTûSRR1)Ç_”{y|~xrR`imoononUxÿþýüüûúúùø÷÷öõõôóóòñððïîîíììëêééèèêæåâW‡yslhiiaqSRY^abcc€K|ÿþýüüûúúùø÷÷öõõôóóòñððïîîíììëêééè3æåáT…vndb^]_tSJQWZYZZYE |ÿþýüüûúúùø÷÷öõõôóóòñððïîîíììëêééè3æåá`…uqmga\`sNDNTRRTSW> |ÿþýüüûúúùø÷÷öõõôóóòñððïîîíììëêééè3æåâiyronh\X\oJ?JNMLMOT;|ÿþýüüûúúùø÷÷öõõôóóòñððïîîíììëêééè33æåâbtnmmcYV\{G;GEGHEGE6}(ârwqnne\UfšX>>EHECDH,}ÿøñêãèè‘ÇÀº³¬¥ž—‰‚|ung`YRKD>70)" ƒw{vkkc[PNdL5:EACED=ÿøñêãè3ÇÀº³¬¥ž—‰‚|ung`YRKD>70)" iUNJC=9646cH.,*((Ë$ÿøñêãè3ÇÀº³¬¥ž—‰‚|ung`YRKD>70)" 3W‡cXLHEEËeH858642.(~ÿøñêãè3ÇÀº³¬¥ž—‰‚|ung`YRKD>70)" ÂU~mcYPMJHaH<<70~ÿøñêãè33ÇÀº³¬¥ž—‰‚|ung`YRKD>70)" éVsiaXTPNJbGBADA@A;9$~(óVvgaYWURNcJABBõ>@8:,~ÿþþýüèüûúð÷XpeaYVROMdHD@@õ>?76+~ÿþþýüúè3üüûûúã÷^pa]WWUWN]JA@>=;=:90~ÿþþýüúè3üüûûúã÷ahYQIHA::D769;;9647&ÿþþýüúè3üüûûúðùQ0 ".  õ ÿþþýüúè33üüûûúê{{|{||{{xz{z{{|}~~(üUUùU UUK:þUüþþþþ    þ òó  þù&%%&"##ñ"$$ (W2ElW\ ""þù%*))*+,,î)++*)$0húȦ¸¥•,&)++þ" 0ú:&)*:8ýWÿóóýñ33ùªŽÜú¯"3ÿÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! ðl8Üaá::Sh[¥x33ÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! î3††š‹ƒƒŽ°·¨¨™¬S3ÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! îDÝÓ´¬›xƒƒ›‹zT=3ÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! ï3ÎþøÓËů››‚H6MS8ÙÿøñêäÝÖÐÉ»µ®§¡š“Œ†xrkd]WPIC<5.(! î3¬·™ÜòàËȾ“–‚L0# -ï3æÝ^S8DQU6,:/(ÿþÿÿþÿÿþÿÿþÿÿî3Óå¬qš”bAM<4D6& þÿü3ÿü3ÿü3ÿü3ÿþ3ï3Öò¨}±º}k|h@PH""þÿü3ÿü3ÿü3ÿü3ÿþ3î3âü©†Ð¼uq©“LUS"$ þÿü3ÿü3ÿü3ÿü3ÿþ3ï3èÿ©“ÜÁ}z³›LUW%0þÿ33ýÿ33ýÿ33ýÿ33ýÿ33ï3èÿ¬–ÜÂz·›MWk)5.ï3èÿ¬–ÜÁ}z¸™LWi)7ÿþÿÿþÿÿþÿÿþÿÿï3èÿ°–ÜÁ|z¹—LUf$3þÿü3ÿü3ÿü3ÿü3ÿþ3ï3èÿ¯›Ý¿w€·—LUi"-þÿü3ÿü3ÿü3ÿü3ÿþ3ï3èä·£áÃoƒµ‘O^a&(þÿü3ÿü3ÿü3ÿü3ÿþ3í3ÇåÒ§ãÊzŽ¥‚HUL-#rþÿ33ýÿ33ýÿ33ýÿ33ýÿ33í3¸ÑÜèЫ–‚eBG3&Prr-3ñHk§³oH8._o]0ô§kH++'+'ahr.óWMH@?=;<3D41::9ý8!)çOˆ~i`^ac\V:FNOQRQRR;uÿÿèÿäûEvfXPMIJET:8>BCECEE8 yÿÿèè3ÿÿùAtaRDBA@CZ;49<=??ù>1yÿÿéè3ÿÿùNtbWUKA?HZ7.6:;;ø=>-{ÿÿßè3ÿÿûVf]YXM=;:96L4-.0-..,)~(Õ<_LE>=::8L3-.//..'* ~ÿøñêãÜÕÎÇÀº³¬¥ž—‰èè€Ñng`YRKD>70)" =XKC=;988M30.-.++'&~ÿøñêãÜÕÎÇÀº³¬¥ž—‰è3ng`YRKD>70)" BXGA=>><6F5--.,++*)$~ÿøñêãÜÕÎÇÀº³¬¥ž—‰è3ng`YRKD>70)" ET?834/**4))*+-+(')ÿøñêãÜÕÎÇÀº³¬¥ž—‰è3ng`YRKD>70)" óD' ! ÑÿøñêãÜÕÎÇÀº³¬¥ž—‰è33ng`YRKD>70)" þyyïz|{{vzyyzz||~~(þUú K:þUþ™››šþ™ššþ™šš›ûš››™þž¦¦ý¥¦¥¥£¥ü¦¥¦££¥þþ¢««ª«üª¨¦¨¨õ¦§¬«®¬ª¬©¬¦¦¨þ ü¦¯­®®­ó«­°£‚ ’s„€°®­­ý®¥ý©°²²þ¯±±ò²·˜H70%MH«´¯±±ý²© .ýÿÿ7ýÿÿý1ýÿ ÿý%ÿþÿ ÿþ%ÿÿ%ÿÿ%ÿÿ%ÿÿ.ÿÿþÿÿþÿÿþÿÿþÿÿÿÿþÿÿþÿÿþÿÿþÿÿÿÿþÿÿþÿÿþÿÿþÿÿþ ÿÿÿþÿÿþÿÿþÿÿþÿÿþ ÿÿÿþÿÿþÿÿþÿÿþÿÿþ ÿÿ-þ ÿÿÿþÿÿþÿÿþÿÿþÿÿþ ÿÿÿþÿÿþÿÿþÿÿþÿÿþ ÿÿÿþÿÿþÿÿþÿÿþÿÿþÿÿÿþÿÿþÿÿþÿÿþÿÿÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþ+þÿ ÿþ9/þÿ ÿ7óÿþ(ÿúüÿÿÿ$ÿÿ%ÿÿ%ÿÿ%ÿÿ%ÿýÿÿ(þÿÿ%ÿüÿýÿÿ%ÿýÿÿ%ÿý ÿÿ%ÿýÿÿ%ÿýÿÿ(þÿÿ%ÿýÿÿ%ÿÿ%ÿÿ%ÿÿ%ÿüÿÿ(ë   +ûÆûqªªqq8øªqqUq ÿ  ÿ ñÆqUªªqÆÆqÆqª8ÿ qüªqUúª8q8ÿ ÿ ÿù仓kC ùCk“»äÿÿüè''7:7ÿèÿÿüè3ÿÿÿüè3ÿÿÿüè3ÿÿÿüè33ÿÿZè !(.5TNKéÌåòÒ¼¶ëÿ©$ $Uñz>TNKéÌåòÒ¼¶ëÿ©$ $ôñ‡{x§¦¢xtqÿýýái& #ñ‡{x§¦¢xtqoinkjm'& #ÑñŠ€smgaYVQÿÿüöðìH$ñŠ€smgaYVQLE@:5/*% $ôïƒplfb]VQÿaaáH(ïƒplfb]VQKDA;50+& (û푇Gþÿýýóa&)푇G û*)ÑJûüûúùøÿêäÞØÒHK(*JûüûúùøôòïìéåâÃ,*ôL÷üûúùøÿaaáHK+,L÷üûúùøôáÔÇÄÀÑÅ/,ôíšMýüüúúøÿýýáaK,,íšMýüüúúøöññíëçáÅ0,Ñ뛓PåàÜÙÖÚÿÒÐÆ¼¸HK..뛓PåàÜÙÖÚÓÑÌÈŽ¿Ç2.Ñéž“Rø÷õôÿýýÌÆÂ¾¶a]_$éž“Rø÷õôòñëéäâÞÙÙÇ3.Ñë¡•UçãáÝÿÊÎÌÂÀ´° –a$ë¡•UçãáÝÙÕÍÇ¿¸³¾É6/Ñ飘VõóñðíÿÀÈÀ¸®ª”a$#飘VõóñðíìæåàÝÚ×ÓË8/Ñ穜XáäàÞÙÖÿ¾¼²ª”aK&&穜XáäàÞÙÖÎȾ¸³¯Ë;.Ñæ« Yòðïíëêæþª¨’ažŸ2/ æ« YòðïíëêæåâßÜÛÛÍ<0 úç­Ÿ\ÚÊÊêÈľ¼ÿŒažž­=4ç­Ÿ\ÚÊÊñÈľ¼»¹·¶¸Í>4ü¦ þiù¦ þQø(Px¡Éñÿ ÿùÖ®†]5 üè''ÿ:ÿíÿøñêäÝÖÐÉ»µ®§¡š“Œèèïrkd]WPIC<5.(!ÚÿøñêäÝÖÐÉ»µ®§¡š“Œè3rkd]WPIC<5.(!ÿÛÿøñêäÝÖÐÉ»µ®§¡š“Œè3rkd]WPIC<5.(!ÿÛÿøñêäÝÖÐÉ»µ®§¡š“Œè3rkd]WPIC<5.(!ÛÿøñêäÝÖÐÉ»µ®§¡š“Œè33rkd]WPIC<5.(!:&è<üè3;üè3;üè3;üè33V:VÐëãÓг­©©èýûùõëáÚËÕÕ»FëãÓг­©©èýûùõëáÚËÕÕ»Fëõ¬¥s…ø˜²¿­48òÿÒHRFëõ¬¥s…ø˜²¿­48òÿÒHRFÑõ§¤Wpvwð¥¿Ì©7@ÿÿÑHMEõ§¤Wpvwð¥¿Ì©7@ÿÿÑHMEÑõ¤ŸXlqoð²ÌØ®6@ÿÿÍHMBõ¤ŸXlqoð²ÌØ®6@ÿÿÍHMBÑõ¢Ypsrì¿ØåµAMÿÿÍHGGõ¢Ypsrì¿ØåµAMÿÿÍHGGÑõ¢›[soméÌåòÒ¼¶ëÿÉHEHUõ¢›[soméÌåòÒ¼¶ëÿÉHEHôõ¦™šÅÇž›™ÿØØáiJBHõ¦™šÅÇž›™˜“™˜—›JJBHóö¦Ÿ’Ž‹ƒ|yu§áH4AH ö¦Ÿ’Ž‹ƒ|yupjd^YSMGDH ôô©¡ŽŠ†€}xs§aaáH4:L ô©¡ŽŠ†€}xsmga[WTLD@L ûô­£^þáØØóaGL ô­£^ ûNL ôõ«¥^ûüûúùø§áHmFN õ«¥^ûüûúùøôòïìéåâØMN ôó¬¥a÷üûúùø§aaáHmGK ó¬¥a÷üûúùøôáÔÇÄÀÑÜNK ôó°§aýüüúúøáØØáamGM ó°§aýüüúúøöññíëçáÚNM ôó²ªbåàÜÙÖÚ§áHmJJ ó²ªbåàÜÙÖÚÓÑÌÈŽ¿ÚPJ ôò²§dø÷õôÿØØáa]_9 ò²§dø÷õôòñëéäâÞÙÙÜRJ öò³¨eçãáݧãa9 ò³¨eçãáÝÙÕÍÇ¿¸³¾ÝSJ õñµ¬fõóñðí§âa97 ñµ¬fõóñðíìæåàÝÚ×ÓÞTI ôñ¹®fáäàÞÙÖ§áam89 ñ¹®fáäàÞÙÖÎȾ¸³¯ÝSEóð¹°gòðïíëêæ¤àaž­FEð¹°gòðïíëêæåâßÜÛÛßTFúï¹­hÚÊÊêÈľ¼§ažž¼UJ ï¹­hÚÊÊñÈľ¼»¹·¶¸ßVJ ü²$þiù²$þQ ù 5]†®Öÿ ÿùñÉ¡è''XíÿøñêäÝÖÐÉ»µ®§¡š“Œèèïrkd]WPIC<5.(!ÚÿøñêäÝÖÐÉ»µ®§¡š“Œè3rkd]WPIC<5.(!ÿÛÿøñêäÝÖÐÉ»µ®§¡š“Œè3rkd]WPIC<5.(!ÿÛÿøñêäÝÖÐÉ»µ®§¡š“Œè3rkd]WPIC<5.(!ÛÿøñêäÝÖÐÉ»µ®§¡š“Œè33rkd]WPIC<5.(!ÿ:ÿ&è<üè3ÿ&üè3ÿ&üè3;üè33V:VÐÿòóñðñèýûùõëáÚËÿÿþÿòóñðñèýûùõëáÚËÿÿþëÿèæ°ÐÊÊø˜²¿­48òÿÿ…ëÿèæ°ÐÊÊø˜²¿­48òÿÿ…ñÿâ߉¯¹ºð¥¿Ì©7@ÿÿê…Œ}ÿâ߉¯¹ºð¥¿Ì©7@ÿÿú…Œ}ñÿÝ܈¥­®ð²ÌØ®6@ÿÿê…ˆ{ÿÝ܈¥­®ð²ÌØ®6@ÿÿú…ˆ{ñÿÛ׈§­®ì¿ØåµAMÿÿê…‚‚ÿÛ׈§­®ì¿ØåµAMÿÿú…‚‚ÑÿØÓ‡«¥¦éÌåòÒ¼¶ëÿÿ…}…UÿØÓ‡«¥¦éÌåòÒ¼¶ëÿÿ…}…ôÿÚÐÑøù÷ÝÛÜÿØØái…{„ÿÚÐÑøù÷ÝÛÜÜÚáâãæ„…{„ÑÿÙÓÆÄÀ¼¶³°§&#!!H`v…ÿÙÓÆÄÀ¼¶³°«¦¡›”އ€y…ôÿØÒÁ½»·²±¬§aaáH`l‡ÿØÒÁ½»·²±¬¦¡œ–‰‚{u‡ûÿØÒ„þáØØóax†ÿØÒ„ ûƒ†ÑÿÖуûüûúùø§! H¦xƒÿÖуûüûúùøôòïìéåâÿƒƒôÿÕЃ÷üûúùø§aaáH¦wÿÕЃ÷üûúùøôáÔÇÄÀÑÿ‚ôÿÕЂýüüúúøáØØáa¦vÿÕЂýüüúúøöññíëçáÿÑÿÔÐåàÜÙÖÚ§H¦x}ÿÔÐåàÜÙÖÚÓÑÌÈŽ¿ÿ}ÑÿÓÌø÷õôÿØØa]_ZÿÓÌø÷õôòñëéäâÞÙÙÿ€yÑÿÒÊ€çãáݧaZÿÒÊ€çãáÝÙÕÍÇ¿¸³¾ÿvÑþÒËõóñðí§aZXþÒËõóñðíìæåàÝÚ×ÓÿtÑüÔËáäàÞÙÖ§ a¦Y[üÔËáäàÞÙÖÎȾ¸³¯ÿ~kÑûÒË~òðïíëêæ¤ažÇijûÒË~òðïíëêæåâßÜÛÛÿ}kúúÐÆ}ÚÊÊêÈľ¼§ažžØ|oúÐÆ}ÚÊÊñÈľ¼»¹·¶¸ÿ}oüÅ)þiùÅ)þQ#ÿýüöÿòªqUªqUUªq*ÿqôUªUU8ªUÿ!ÿüýõá þÿ!ÿüüïØÿòªqUªqqâqÿ!ÿüúçÉÿqôUqUªqÿ!ÿüùãÂþ"ÿü÷Ü·ÿòªqUªqUUªq*ÿqôUªUU8ªUÿ!ÿüöÙ®þ"ÿüôÔ«þÿÿðªqUªqqªqªqÿ ÿûþòØ®þÿÿðqqUU8qÿ ÿûýñÚ´þ!ÿûýñݼþÿÿðªqUªqqâq*ÿqôUqUªqÀÿþ ÿþÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿQýýóþ ýê  $þöíý þö$ "þý#"" õ  " û  õ'%%&'&&%&##õ$"O¤M$##ý%ô'%%'""%$""ô#$&°àj$%##ý%ó!)()% ))((ø)% ¾Ûz&&ü(*!ó#&()  #+((ø#ºØ„%&&ý("ß%(%  #,''&')%!¶Ùˆ"$$!!$'$ß*>58a<$  )4¥Ö•- 1GFG6!'þ™ßt„¢Üèâñ»R1nžk")j£ÂÓϯTa´ääæ´.1þªßÇäåßµ‘’“¥·éöÏgVlÖåßÙÉž‚‘¨ÀÏÌÏÅ}n߯Èǹ”qoy›ºÖÙ±rt—ÀÆÀ¶ª“tz–ª­ª¬¬¤ž Šþ,11/ò1,8ckÕ©wgkY.*..þ)ý5<;;9ò8ŠéŸu<’[J†R3:99þ2û>FEECCò?a€U|›Ö…·‘>ABBþ;ùEJIIJJKKîJIHHFE>5š”xlWaGLMMþCùLRROSPQQýPRQQôOŽÐp_‚¬]KOPNNþJòV\[[ZYZWWZZYXWWõSs¡‚žˆs[WZXXýYSó]edc_a“‘k`^cdd÷b_bjµ¥W_bbþZóejib{¥ïç° jgjjøgf·¨YhjiiûjkkcæmqppÃÄË¢pê‰orqpopqon¼§Xprppûqopkævzw„爗ÃlÔ“rx€„ztvww¼¨Yvxttûuvxsß~ƒ€‰Ò¸¢XÌ¡|¨ÙÞÃ||}³«X~ƒƒ‡…†‚€{þ™ß—ž°¼¼¸ˆz²’ž³¦|Ÿ¯šª¥y[€~š½º¼©Œ‚þªß§¹¹°†gg[c„¶ÆLGw¹´¸±_M^i…Ÿœžxvß–›—ƒaKIN^²·†PZ}šœ‘‚nZJN\kqqrngh Šü­°±¯¯®ó´­m-?75M@›µ®®ý¯«þ°²²ý±¯±±¯ñµq1Y178D–»±±¯¯þ®þ³¸¸·ëµ·½ }X?;)S:3q½··µ··²þ·»»ºó½À¹hNaZG6GÁººý»¶ü»ÂÂÁÁí¿Á¿¾¿¿¾ÁÂh(,8.„¼Â¿¿þ¹þ¿ÅÅýÆÊÇÇþÅÂÂôÃɪT:`irËÊÅÄÄýýôÃÊÊÌÑÉŽ¾ÏÌÈÈöÊÐÇ·®qÖËÊÊþÂóÆÎÏÕ»€&*^ŠÏÐÍÍ÷ÎÏѱvVÕÎÍÍýÎÅßÊÏÒÔ_!(M6 °ØÒÕÔÔÑÑÐÔ®uOØÒÑÐÑÐÑÑÉßÍÐØÅ),6A<°ÞÓÈ¿ÎÛÕÖØ´zKÕÖÕÖ×ÖÔÔÌßÏØÞÉO3j}G#ªä£TGmÍÜÌų}AÑàÕÊËËÓÖÏþ3ß¼º­­¨¨±„RT¯»‰HI!{”Ž–”bM·ªš§¨¦®ÚÌßœ¢¢vYYOQg¨´‰CR\š£ œQ}ùàÛ«G Á€à'.€0€ 0°À@À«€ÜÊ —!x¶ì9ræÊ'o¾ü *\¤h±â%JæØ®òþÝT¸jR€ Ô`¬nÖR% ³÷8 €à´Ñb€À›çè5€ O=pã:¼?À†8B›ˆú &æ¯2pŠ@@‚'à7°‡À>'-Z¼dé²å¥ËR_í_Å:^6f÷·¡íÌîª5pøI‰óð À¤*…7/ÑýúÜï^yp\D,Ôdƒ)”¥zÙL•p €ÇþRt0R^k €Ð: ­Ë²Ðnàjµ¹äˆ¶Ùb–ëÞx N`¢æhnÙjä¿­ZÞ¦µÆÛØ¡…6›ot—ÖwÞi·¶Ýzß&·ß­Aa>”””£=äQt>Nè“€è´Ò$:VtA޳ó}‡ÖÊ/€ƒËí´[> ®ƒïëy$4’xã˜Cö²uíùâCdžù™/…°Ál™´LIÇJW_£3DtáGžŸÑž&è€J*èÕk¢Íà à&1äÐL8½@ hm“„,ä•wÃ3œ;Üʸ'<7p'E\ãߨÂzð…w¼áU†7qá©ÑÖö¶ŸµjwÛ?8!t@ˆía;+$ö ®¶É‘Ðã™a¢«É€Ã°À Ç}xŒ* `;‚Œr A±ûÙïÌP°9Iâ—aÁ›+1ë`²Q€V#~q=üccü‚@àßÌ"p$*$ Ѐ&ÔXº`· # q›µ(G%` è;ø'ÐX†À<æ0"5êä… e|³žž¡5RêY£ÒžáDÆ(j‘(JˆA`“€L³ ÅnÕ…KœÞd'.ÃÝ‹õá[]øÆGT20œã+À&æFC@>¨‰~0\Æw]¨À”ð@M©Ðì)!ÁYmZ½ÙhQ+XÇ1°†MYã E¼7Z2@ Òîñ¤.¬áÐþµ*.ä‡s*ƒhD ²v€Ô#KéP@š° …8¤$ ÒÜÛX6±9û6ˆÍúmI¡hzDWæÕ(xëRàú׺ÞÂ)ØÜBªýÆo ŒÞ¡š ”‚úW¾ ì߃”Ä:IxÃÅ j [~_Ñ4z÷õtPÄ?!Rlâ„ðÆÇ ì*a×*àüŒC\ L ©ð£[B`¡ñ´*|3 Xo8A¿Y,`'~ >{ñ„7"‹C¡˜Aj „e4­P‡'—ñ3ÑED+%û'Ðd™AŒ¡™‡8$ ‰éšøÂ7a°Œ5›­Y¸Ây‘qÚÒâÛ8ñBdlà0ãøk=npi Axè€RðµS@#{ 6'ÆYŒ€ÆTqÓ2ÀG8‡+ƒ~%8†6#0¼-Ì„jÈW¥Fº†ä†– U×Äå ª a ƒÿ`@® †– eË`CÎà® §›`&®r3ƒâÀ )€¶½‚Ui`A €ÄT ="vŒñ0Ø=÷§P÷9ØBPØ 3¥E.À=ˆ@„'øE8‚]E< &×@Ç|@LÕ±€'Þ08¤PV«h€BøócÌÀL ,@r8' \ôƒe8&?fÀ Ç3ø .  ‚è^‚AÈP:5ø6 “v^$`íöe´ÁL…vÈp'pÃ?Dx¥.—uØ]²6FîIQa,´-ÐÑjÊÂ\¸„{êÒz2„k̇«ØÈ‚(°¤4€Á .5]€@4 u€iXPdÃ%DållUFA{¨ƒb² Áà aQ îEŽà æ„ Ê ΄ „O°DÄî„ ÆD5(…„W¨O¬$¨M2€Ý¤¤úò0èL:ÄA<àH&Veõ¤ƒÎP5Kl…ùä>ô‚‹äÇlT[àK„pìÅCÞ`TeàîDΤ4“POÌAR·hF0øcVøÁ¤õy$°¤4 €`^ÑbT€Aøƒ#’‚Tã¤>d‹* _´Fôƒ8%¥M3ŠÀL˜€n(QPE‰LÀB¸„;‡38t¸ ñƒxÑ,ø3u²qP0%ôŠ´F8„QA%ˆ„EzeJ“hqClUO¸eõÔ†Ad)²oT ´†zWJà`M(dO˜DOäÄ þI”„Nð` ž\J¬\ÉIdËéÄFÄåPx…Ö<4|¤ª¥È›¼Ó3¾v6á°ÝпH€ö·64˜ìšE.Ã…)€ (€6T‡,Èp°KÕ€uXui°×U¨V È†Û F@Æ÷Rx€QðŠ.nwi°ìtWp7’ä@¼3ÐN€‡¨ê€è±~E0—hø–qH4+>RÏh°€Eøà ØENDR~à®^ÆÞrFxò`¸…;B`¹uÓÝxnžæJ…m8%¬ƒò$…j¨P´@,:' áqFEÿŽ­Ôi­ÖÆøÅqÕrTG/h†ÈÌq×F 7Àd×qc7¼Ø‚ÁüÁ¬ªJ¼>£à›ÈFQŒ lUK¨A#d’aí` þÄή¶|xc73Û0ˆ^ ´¿c3šñLf:3Ãå³ÂFf[„Ð.æÔ2ª27£ ‚àaÆ/òŒ–h†3_ðB:>@‚ øö8”šäºHÉYV-éäá×q¨Ô¦ÆÔð—4jöÕÑMáHÒèந‚}°†ðŽgÒ¡ CÍÂ!îêá±{ÄK­+“O éapA ÝðF6º1~n¨¯ßôf:.ð‚Ÿ]ZQD½8²´!+u«#%pÆñ?‚¡âÇ ´$GœBÛ:³_ì.\w§*v¼áeØ † asXa16Y<㋌…h“F &:šBß7{¸ÃáˆG:òQ¨vp‚s{;Yïðœ»sg°};;þTw½ŽÆ²åØu9äÒGD‡5ŽÛÛN]àB|à•Æ0ƒ©@‚^£ ƒ“ÅViŒÿø¨s¸c5€ lè¨WºòU®šC@ E ™Ç;1*JeË€C¸•AÀ4ÊÍ‚'øæB dº¶)ø†G–– SuIfÂ)@dx1€8P€8 (€¤1©tYf¶uÜ´cË‘q؆3¸€_HšÐ/ðW€0ˆ€h €&À9oÀs€%& £d*E d 9ªÇ*"#@Ôô\h!~0!¸ó%{ ‡ ˜…o8XÈO¨f†oÈ‚,£Üöü4÷Up} [ <Þ,¨…X‚)XsðBM”PR9ÄcbTRO¨ØBÍ„M„„O‡¯„I¤„NðĈ­DK¬DM,JìÄOô$L8•Kä$B è‡ÿ Ç …?ÁNXø’P¢{PQy`ä"xÒ,øã$J€O,ƒo.@`mÅø†Úh@Àx8#8cÓã©ÄpõpB´4v;·€c¸@c¨„a+°€ pa×€ xP$ˆ!°pP `B*¤£1ìó\ ÀFC C*JVSÚÈ`ôgøAcxƒK8Fx@c€+ ‡Ø„o8‡p¨„_(ƒJ€ˆFMÉ‹Wó h} b€X‡=xD#Ô?@"J†MÈ$O’$H„ÄÉÁDÉ‘NÌÍÉdÌÊÙ$NÄ$KüIª ‡ô\'o\-h¦ÓdT5|'Z°„`F`Fjx¤>ø—(¡fK»C;”RÎ@:@TÁ†}Ø÷ x…wDhç1ñA:ŠŒ‰åè „“ðh„ X°{pL«´v! ð~p‚'° RJÖkìÓë J8Ú¦1ª d ¢%lDc6¢kq£;€…g¶„×LFF ¸ò¸¡X†c€‚}°‚2ø‚pX† ¸œ¬ôf%!eÔ-Ô´eEMÄ+Þ„ÀÍœÈÁ\ÈñH¼$Í©2*œË¥ÒÍåœÎù2/SÔÌUÉ ¼ÈíÜ•ñ¥UøÏC¢_09ø 2r‡“åºcTbOì3–€‡ob@¡k@pcƒm¡‡GîÌ8€¢1j°$O´,Jä\øw A 8„s.…V˜†MGpŽö´†P¾%ZðÈe° À—ZÊD‡"WcÀ2Ï¥k„7lt¡%û@: ÀQì`KÏåB­t€GØ„#t€+.­ ¯L…w8Kø‚Bƒ/GMÃ.9o4PFM½F Ô¤ Êþ²,“².ã2,³²(ãú¯¿ÒOŠDÍnвÏu/§ÜI’d²ÀKVÔ‚`°”@½†Oø”Á|ÎWµ£;ø‚ÍJQt .„@F*جÔZÑ@h0JlÛ5*£lã¦dدr²†iÊpã€j@=(Q°‚hr÷Æ 7a¨að" 2Ïàð(ÀÐQë'`¾ÓÛ·ç€KWÜ{ä9g®ØuéÙ)c}¸YpæQyàê5jÖª]§n½ú 6j(0ÀÀIåmØ;ÿ>[w Ô€ÏÀ]{öèÔÚW§Þ]úÜm€~CºÔ­O—À#ÆŽ ¬ß¿K¤gÖ°¥Ṳ̀È~£øƒ´y €|QðR4_¾bôŸ3E^_Þ<ðíÍëp¿M&|ÄÌ™1À›o@ƒ9â¯%@6÷í7/@@·ýåuïqŸN³6ðâÅ€ Á‚—ƒ7"™3óKb±A °E`‰$D|À“ZZ4‡P;1ùW@N´äŽ é9–L€+î₸æ4|Žyä _¶y¤‚bŽùÅB›Øãˆ3®¸ã‰7¾øH0¡¸,”œ0à ФíæKwþùåÀD Eûxã/gùƒ8 Ÿ>ºåãŒs™$qY~–—~â‡?QBмà€î`ˆöÀ·0ï|ðI !d¢ñD tˆ!. H<À¸ì`WS à_,Ñ÷xàX NÓæ‘=vååBÉð#ä%k8å^¹ä˜oŠ˜ãiÄà…×”øâOsPA . àˆËú€4`€Âîœ+ô@ò™*”„£Xb/l68Uÿù p¡¢€DU*A"† T@t€À 4ðòV é‚@`Ñ1x`_ Ž€û¨xd3<®Â®C kç"*X¯îyf k~¿ýˆ½Å^»j¥ ÓI?ZŽ€ RÌë1í>ºîý.N>ý¬Þ{hùÌÓ.èö´qÅ•@  DÌ‘ƒ“;Þù”ÄB9‡M‰W¾ä´0—Rã/€g‚ Ú}9çÔtö9ãVdWí¾oV­5 !µ E΃[O•âZáùñ_paÕ\ŒJ "PÁ Ф¬“A²û¤vM»D^ ×MkØ8"ND‚G\bƒÇv!®Õ­^áVuÀ®ì¥~ûX** 8B à'xR&pˆB’`†‚@! yðCÜÐ…0t¡&$ML,¡m¨Âš‡'Ü‚ómµèB;ŽDº£ëx':Ï¡w®‹tàgë4*r~T]­è‰tÜâ±áUðàT`»z°ƒmà¯dÀç‰.7ã—$4·—€"áǦ ðË]!˜æ\%‰qI"77ᇼxÃQ0ƒ-œxš¼ðK6ï„ E|F:àŽ(h„ 0ä  8Ä .qH(r’û ðý©šV6űMqg lbŸ¼x¶-žlK áFTøÀ9îñ*¼âÓ°Ã;n4Jü‡1‚9Œ@„BÞ…?Ç9Ëi˜rÁ° ;Ò‘E ŠYÌæ&ç9ÉUî"¬(GYëÚŒ”£“—È;#JÑ×[ô£½ÂÇ 0Ñ.TÔ µñ `17>AJÐs÷À;ÞHÀy.àïäÄG<ãA ’ ˜@Np®><‹¦"…gÜ+—xÒ¼Trq9±yãš] ƒor“Ou€ƒ,ðìƒ< ²¼å¨4r¸´6MIJKà×È<"¡Á¹Žoà"`ØÃ&yñHÒ×Wêμ·p‚gÄâ »¨F~p ª+¹Ìo~"æœ4¾ñmBcœ‡‚D¦`yÍ{>›Ûä“&"´ŠX¡EQ`fBš…pRQ¢Õº"é)EˆráZ_g¹„x‰”(Ü n|¸ ¤ÞÈ€c¨ß ¦— ¾“H·ZwV.á,3Îp*ìRIÿ4ˆ¤–0©u‹ë,K2Iðí9UXÄŽ¨à›œäUŽÀ€0! " ®3 À tZÉ·d!ÐÅQ¿¤À`PC à‘@?ò ^‰ |0ØU p#€SP„¸¢öñ„GœÃ X„?Fpƒ ä4‚VÍot¾rݤ±4oMn|ÓóÔ¬¼å£‰ák~[¨(Nb’< ü‚œÀ;=…oÉÅÁìî5’ç܃Ÿ¸¨Ã1Îe-Miw+>﬊jŠçiá@¤À ž¸€ ¬â@¡½«ìÄ  @‚*ðä Àð}–äÄÍR"HZ< ûØ5ʼn7‘HA°>n ü®ãçøA5î1YØáƒÐ 0Çìqcìi\Sד‹u7·é­ Æš»®qækbZ ½SŠÍ¢Y÷ÎiƒŽL}ê(ké–¢éä¶mw‡ M9È@ð„xñ ,`Ÿx%܉ÁFiã«´IqSÂ{F  8Á Îèf£’„m^¡y•éÃ|©| € ‚Ð(¢€8@• Ä4#­ ðÏä¾s~ÖÜ´Œ—!â‘bx¦0Žcøýçï?ÿ0 € 4°Àƒ2¨ ƒ 6¸àC1¤C 5´ÐÃ3¬°Ã 7¼ð#ˆÐ=ãN ·¦J`Æ&^`T£˜c9‰Epª£Œ)6ÁÀ\Á£*ºˆI41¥#Q*rÁqzáãÖT/¦.ë(±øÒ˯n¸š‡ ÂŠ«µ¤Ák±¦šj»–ÚFm¨!ꩯrjÄ< œbvºA ⮣¤@êNp*3(ù”SN3 AáuqxALAà8²L)[f)VZ<•¥Î@y@A¦ˆ@²#ã[ÉÝx€›Ë %š1’Âù°p€øï¾àZ ~›€_ãùÝB”fj†ßÎëC”-ø„¯®f;¸Áøåk~¸Ç`U›h’óJ+€q'¯¾‚ŠÆ˜°ÎѪºt¬òj󂫯ª·þá§hØqó)¿—?¶8HþgêXHg=yÁI3,ƒ4SÆåi2t~!V[rþ…Œ_ âV`þ%×RHp)ã0 7âÿÅÿ~ö|xæ¿OlY üè¶À/ Ô†/ÐcŸ(Ø dõãä8$ ®H €ú QJ »høÆÞ€œAÛÙTq®[ÔíøØuF#ŒìJCªÒõ†w‰áÜè*»Æ¤n³;5‚¨ˆã͑¶#KA¶„Š #´Ö¢L¨¨r0 E¥cm 7OùM‹„ÓŸ>äÍSßš`‚ p ¸Gzí‡90ÐØÃ§Ž€„Wà ·ŠðX¤Ã˜(ø²þœ0(Z ÞCŠ7ìA=ŠT" üE`Á‡€2xèNÁ¶ÜFÔ葃;6\¼ÀaCÅ3p´dÁ£¤H Ës‚Äáƒ'€§¢¹tA¾ü~ýòe»(¨à%J– Œ=P ÒLP¹”ªàƃKN%8ÕàŽƒ;iTZMp• š”‚néš‹ïØ¥k·.àШõ (à U‚ûë^¡*ƒ–/(¸o`ÃÁø¬‚ÚÐ ¦¹bå4ˆ´ šó˜‡Á>ÀÜ]:ŸVi÷k8ÉúTöåÛÏÖ©îräè±ã'Nž:}ælð²ŽTXŠcéÚ뮸a`¥ï0Ù¼åýà8ÚÖÞ&pãwo‚w>÷"V þ[¨[9# 4V ‡ vX`#UÑÞQ¢'hô©xÚ”5P-e\0ÞQ &M„{•y‚øe%âRç-H%‚PŠ/>â9”óE…üåÓd8Qøâ+±„O2éäI8¹SH9ñÔMætt(¢RHCàÔ’I)©T²H6óŒøã–[þøHˆnæ|sωxýË[W£ÍGðòrdøhæp Xy£Œµ8Áã-¤ƒƒ0@~Là" ùŸ]€c•mø†œó Á·/¸¹‡J¨¬j>a²ƒ-ø’ZdT8sUËÜØ€’à“o¸e¹‚ -.,3Í8ëV“h=ÃÌÚn­ÝTÒJ‡ôŽ ¥3˜þö³j?“îÚJ…ßìøå9!ž¹˜K!…v¼ålB -Ö7p wÌ[¼Àµ<'FéGVrÄÁ”€ÓG¥BôA§uQÚùP@)Dàx[ˆ¥x]T’?ýä_ÿTçzx@Fl>À@bN¸P^¸_Žk“ Éh8ƒQ@žÑ@Þykš+z‘Z/¯Ê(‹î·îq«mºm%ùè˜ôN;ï²ë¶í¡›vvâ;»ƒâ–#9‚]§úwÀ•ÆÁuu¼Ð €á=p[pÔ?Iàá•ÐnPÁÇ»Xk¯&PzÂI” º§ ðY£P~ù <Ÿ2§5 âK5PþùS™7ø)€7„( ˜ûi€†8r Š HQ[Ž;/ý4A•; Ÿ¾àR瓟¤8§ ñÍâÛbŸ·ß®Ø*Ñ]vÛƒ]èÊþÚ³?¤ê7IÈ_¸’®°O`쫇|®¡´ÌTÓq…cÁ`(G‚dJjèÇ? Æü™ÎœT6§ið@ŸøD f°;Ãès%S2Ôlf¾@€COŽêøÅ!±!W€*qiÌâš~(`M3ø>t1Œ@ÂÍ¡P°Æñ£X|ˆ%xFÝ¥^lÆ«U<âNü”}Á ŠRð§qü2ŸÆ»* Ò™°D¡‰ì¨L™žnFù”!šÀGN’2ðÅ(E¹ÊunrËÑ„E‹Ò‰¯1)‘xÆGΤd¾žôü˜—N®áœfDç0wT!L1–r€´¡Æ§rIl<*­x„”'ˆÓ,,ÅhT‚)ˆºƒÊæò‰ãˆüRßøg,ò ˆiE>ËŽÀÃßs’pÂ3"ª*KÐøÈ ö‘ î\òEPb ¸›ÕZ•ªW­ÊÕb Á}TjW¯ªÕ¯q «ÁÒšÕr¸À1 V×´Ú5ªcñH`¼Ë%Ø!0VaL`Qs\y”/¥ª@Ç`4LüãêÇñ¶˜2@ë~sˆ¸„2¢U@ ‰ànÖEpÌé÷ð€‰|jgï†gn³(Á'TÅwªËdä@[®©‰4v™À@¤¥$)%2Z ¦§¼G+.c|³{H{#9S¥×¹ÕíQ zRó:Õ¬.=ìkUÿêÌÿÂ,f{Þƒ^öÌŠÀ«>€ìfÎâ8ÃïŽÊÝ á@Ò fCå3).!¸w lL—6‰vµ C ƒ à®6Œ«‡Al£‚àùæHá†Ù¦Ð¿ø-"¾kYÂ&LG!^¨xÀ? ¡8P hAÃBÓ@F?\Ô‹}Щ`x%0 ¦ÌÏÌoèqñÓ¹ &JÓŒEDë bÜ` ¨GcÖ\@Tª((ЊÀJL—€ðÛ `±`é.§»_£^÷½š‹¬IÏzÕÞômáï]uÒGô¹¯‹ëiµeŽÿhàEÀ™Š€µú -AJC÷A6ˆày¥–S Hé|óÈ0p^“ñE×ä¢cr7,Ô†ÀgA?ÌãO4€2ׂ†$ÂÒ…3ƒWŽÂ6¾-†Mtc x„K½UŠpÛà^@ƒþ½€Ö&@p ÀaTÁÍ"y@Ép›Áˆ]¢µ2@Fm<tV™2Ð2µ®& ¸ÇOqmv–â›ÉØD(â˜e/qñ‹^Ä’uÖÅ,á KéƒÎ—yÆsÖLÂø[AÝš5rlAƒÀh`ØÓhÎ6—w\ÈIâOL⃠Òу ŒÁÀ éÀ$0š–¹ðiLaËvÅæ€}p0¼8`n Ìõ®hÇóÞŽ5*ãÄDƒ pb˜>`%D ?íéVîŠCm # …qðG:('ó`1qEAå92s¸-"¼p\Rã옇߂ ¥¸3| gg9ÓÙ?¼œE/%ö¦äùÎð1‰|”ÇM‡î6TˆpT@Ô –!†` U¨Z#»nn¼ &2ÁGpÄ}=”26¥‡á‚9 s(N`¤#>‡rÈÀ$LÀ0ø‚wš†5XƒM €C4Ä0„b$€ÀX@B@`&D@ rØ„uXu¨‡.'‚o4`@q°!êxøiøî$vìƒØGCX…yXb¸³-€D@@hL ÀA€,´3&ó †7¸'è€kÄ…GøCqH‚(°s:ï £0œ.ßÕ`”ðC¨’)°qVp›1`0T¿á|!Àk¶”–® ?¹…1Hƒ0ePŠ…øÁ>x‚rmØ3Ø…+úÄ(¦ V| "NFÖàHƒ ˜‡€A˜rW("b F \´0bø‚Wã…7x”yx–…Ëè8„u0AÀ8ã—.n2W 6'âk G †/¤X0‚ ( Ã0½Øƒ8Œ£8Ž“8³8‹¸Œ«¸Ž›¸»¸B@ $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼øQ,:öïß…‡@~ü²îØ ¾üðíÇ?€l°ÂïÔüü*XØO1ÞJ–(å³,x…%¨5gÄ‹Àž.þ ç ž(I²©¤I—!S–l9råÉW P¦nŠù)í­€²>ËW¬\5HõšµëÖ¸e‚ñ&Nš3™3g 4XJd(Ø€|îè(Ø Ö6`wp·€ðý€ ëèŽ]:,bËM  @÷÷âqÿ 9ƒÏœ=wþB‹—._émµ¿µë7nV°uûN°»÷î~ððQ]Ç?œ<}öüE—]UÏuÝ4=°Àƒ2¨ Er›RhâX~¥¢‡fª LÈ0 ùPN ñ„ Z£ð,?`7:ˆ‹ c€þØ¥…%pÄÝ9€\>\å€n‚À?)L6P‚ !$>C ´0 '¼" ’È¢ 5ªh¢c7†˜b2¶8‰+žøH !> ±$’r=Y“&¿ü (° ƒ#™zöôç[6è¤àA€~ù““r€¡ò3¦"X«"ª¨ª³¦_P˜W¼P€eæ•çÜè#4ɤóN¾Ð‹,ºØâK,¹ÔÒË ìrËg¨ÂŠ+e­ò*«Ö0öê©¡¦Z¨­¾ëª§¾<“I®à®»é¶» ‚#‘ZvÌ—†é¡A¿d€+9ÉÇ >X0‡‰†…á f$*šÆ”ºÀ½IŒˆ]:ñ«?¯d˜ÿ{îUï>úê§?€hÁ†j0‡a$bF©x šÆg<ç&tâI»h°ûåWXq%‘y4‹¨eS>ù€h± HÌ燯fä$„àx»¡‡õ>78€«ÝÍçksX÷”ý ÊRðÆß9)ùpàÒØ¡ Ÿ$ñ” “‘„~W•dµ”]wý AÛxÓÍËØrëm·Ÿ;š]vÝ«=÷ÞwP<øÐÃù=£8öxüOì2Ÿ•yô±ÏäŸ4Ù€žõPN衆\v€ää‡o™XcG )eº4Ì V͵DÀ†D —CpÌçCß²â€Àw¬T`üxÒÓžõ¼¥ë¯áßôô¶J¼GOeØ‚‚dÓ+™ 0 á×Àd€ÝÍÔ#ì:ô£ŸæW¿ûÓß’¯ÇCºÐ3x# 2Ñ€-JàÓæx·MÉ„/üÒ_ø 7>©t©’…T¨¡Ãu¡Êæ ´¹ÿX è@ÂkXÅ 0X à¼Ü0ЇÀ fb œfü‡5ìx‹X¸Õ/ü„/~ŒHÄ¢@fR’ßÖ §uñ/ëÚËæ в½ÈÌ‚Ä1ßøe ‡Œ†ƒ˜Å"V– Cr’›<ââ/$AZ­…Vã·¸§'ÅãN&›Ñ;I VT­‹:°XF#ÎÓ €hGÿ3`€l÷bIÉô) dêá?%)KEªRÁxÐ3îdÆošÉ– D$6!JO¸\œí$F”̹Œ»Í‘ÑLd Þ± uòóš·¼·Y@ :­EI›cÝA'ŠOüã‡Ä; D"’uÈG>@qxÈ €¶1ˆäLË;³dÏIò“?¼ @(HÁ*ÈIÿøSGq‹Ÿ§dé*å*w>‡"´aþ9QŒEЈÜbˆˆœN 6HR™¢õÀ54áÅüÙ¼šÕà à PˤÐ-6Å @p [èGZ ÊÉ «•¿‚9ª*V éVºž•«4½(âC©Æ/~õñ¦$XÂ!äf­jSö¼”§‰M =îñL”¢Skx·0(4 ipá<@ýW¯Ê¶¢ UJ?Ò“>×HnØÂ¢¢4l`Yµõ0›Úôf ÙÖmš[Т–´¬Þje}S‰[ĵ áiÅØ5Ïš°‚“$â׎v5>ÙMîqO¬€Û¦áµèÕ^ñn]ô¡Ë"h@¼+OzôÂÇ%óðW"¾ˆ¸ D€Cla@!60Ѓ<÷='I¯zÓ;ô¡O}éû1\ Ó#û­/=ê›HàŸÀ¬áB²’i°ƒ/G{z:¶±+×½@ú±JúûúB*‚a’Ö¬EœTñãc@ŠYÌšp£ %¦Ê?Ó3DH€èkXccWÜò_÷O8â IÆ3>|L½ÀD&6¢7@ª“±6G˜ IÄoŽÐB„ lŒn£ÏÖLg>Ë!Žc‰Kb:.ñD´b+À+^ˆ~ôÊeH{åéQi@¯Âg¾ 0æAþª“"DQs$ÙP CÈLb!¦Ä(¶¬‹C,ð^póÏ—ºôe.{¹b[V´’J¯¬r[$ÛÈçgÝ‘R|DÁ€…¸!0W ĆB÷YÌjÉ»Ú5q àÚ“ÿÚ ZàÅ«ôj Is~bð'F,D¦L0M“+ ¼Çì €ÿÔ¼#H›Þ4C2 Ûð À‘EÝxre@`9€ƒ *L¸‘¢D‹ç'vܘuÔà£)_-øn Ào;>;¶jº+Ðð `ËM@ï©lR€;geËW=fì¸ñ&NšPøôi³Ôõ À Ì2$[°pº¸Ž-ë-Yz¤À -Y¶bÕšu6m‹³5xúv~·§oáëSç3v~üÙÈhhôÖWJ^y€M†)6Ôp÷<° ¸àC1¤C 54Ó9ç‘þb‚ x¶ zè°žH¼1’`§ÄòÆw¿€’E MelU×IMdsΗ\á D`›išP.YQœ° FÅ0Ã7ü¥Š$²(¢ŠFÝè´öC{M…÷Es-5Ê,CÁpÀ ÿx⶘¤ÆPPÎýÐ (° ‚ )´0ã8ãoþe’u+­€NÚ“ “h\lóÎkqËÒ úè€t°–ÁYç`Þeà­‡’ɤH[þU`›IêÀGÌR¸È¢‹-Þ³’J ´2¢++ºfíШ,?[Ѿ,y°Ç?axâ.w&¨«·þ ﲫ®»é¶0ιç‹Ƙb žx‘–^ºi?œÐ•9Œ‹.K-£C˜k® Ml`C䪩NEàÁƒ Ȥ$`ž`‰òÝÁ± zè©—Þú諟þhc+³¤o¾;šP!GqoŸ7^xšpâI'ïn¹åWXq%£)£‰QþÑBn €¤&Ø)>t,7€ôÍÍÇ«ÉW]}͵×]ÕMÞ*çü‚Ýe¯½÷Ù7ÄݤßÏô=Œ;à ƒ:ü¨£9ö¸ãO8ñ¤“O9õ´ÓÏ8ó¬³Ï9÷¼ó/¸ð¢‹/¹ô²Ë¯¸òª«¯¹öºëo¸ñ¦›o¹õ¶Ûï¸ó®»ï¹÷¾‚ $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼ø &Jœ$i²ä)R¦J&mºô2fÊœ%k¶ì9ræÊ'o¾ü *\¤h±â%J–*]¦l¹ò*Vª\¥jµê5jÖª]§n½ú 6jܤi³æ-Z¶jݦm»ö:vêÜ¥k·î=zöêݧo¿þ€€†E  JŽEØEîEF.F6F(=R/usr/src/Applications/windowmaker/WindowMaker/WINGs/Resources/Images.tiffCreated with The GIMP’œ*….9·@ DŠ r wŠ ¨R“HHWindowMaker-0.95.5/WINGs/Resources/defaultIcon.xpm0000644000175000017500000000506212214432632016650 00000000000000/* XPM */ static char * defaultIcon_xpm[] = { "48 48 3 1", " c #000000000000", ". c None", "X c #FFFFFFFFFFFF", " ..", " ..", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ", " ", " ", ".... ", ".... "}; WindowMaker-0.95.5/WINGs/Resources/defaultIcon.tiff0000644000175000017500000000140412214432632016770 00000000000000MM*¨€ Oø ‚ÁàИd" ‡Â¢PØ„V'ŠEâјäb=ƤQجM ”Hä2IT¦Y/•ÌeÓ)lÖa'“DŸó¹äö}? PhT:%G¤RiT‰$â#K¨TjU:¥V¥M§NªÕºåv½_ÍäV %–ÍgžX£6‹e¶ÝKµSí÷;¥Öm!»^oV[ŒZ÷ÀUoµ¬ FÁÂpø¼dÿÆäq˜ø6K-…ÊeóWüÎo=uÎçôVÝM|šZôúºþ—Y¯Ájn[ ¥_e~Úîn|&ë}E×oøTaÞb¸ü¾DÎSÌæqzî—OsÕëm;o¹«ïwôÞ‹ÉåÏyý¯W¯-í÷d~Ÿ'!ôÖ|ÿo×ï± € Oøÿ„BaP¸d6ˆDbQ8¤V-‚Á q˜änHdR9$–EƒJ#R˜ô²]+˜J¦RÙŒÒg/›Ígiäî}: NhSÚ ‡?£Ñije.J¨RjRØ-V­U¨Ók4úrµ]­Økµ{%‚Í_´W­V+M²Ÿ00’  š+¬Ø*àèð(1 øRdefaultIcon.tiff Imported from XPM image: defaultIcon.xpm*"~HHImageMagickWindowMaker-0.95.5/WINGs/Resources/Images.xpm0000644000175000017500000023755112214432632015632 00000000000000/* XPM */ static char * Images_xpm[] = { "128 128 3027 2", " c None", ". c #125D93", "+ c #12547E", "@ c #0B4E7A", "# c #06436B", "$ c #0F4F77", "% c #0B4B73", "& c #0A4B73", "* c #11527D", "= c #12588A", "- c #1E6CA1", "; c #1368A2", "> c #3A3A3A", ", c #262626", "' c #292929", ") c #2A2A2A", "! c #00436F", "~ c #14517D", "{ c #1C5882", "] c #205C85", "^ c #155176", "/ c #1E5C85", "( c #144F76", "_ c #155078", ": c #26638C", "< c #18547E", "[ c #043F69", "} c #023F67", "| c #024A78", "1 c #575757", "2 c #FFFFFF", "3 c #F3F3F3", "4 c #F1F1F1", "5 c #333333", "6 c #014778", "7 c #0B4970", "8 c #1B557D", "9 c #235F8A", "0 c #19537B", "a c #16527A", "b c #22608B", "c c #19557D", "d c #094368", "e c #23608A", "f c #145075", "g c #1B557B", "h c #0A4A73", "i c #0C486E", "j c #054A74", "k c #000000", "l c #000006", "m c #040711", "n c #060912", "o c #030611", "p c #000004", "q c #8E8E8E", "r c #181818", "s c #DCDCDC", "t c #161616", "u c #191919", "v c #1E1E1E", "w c #AFAFAF", "x c #222222", "y c #004474", "z c #1E6493", "A c #074266", "B c #1C608F", "C c #0A4468", "D c #00375A", "E c #1B608F", "F c #033D60", "G c #1B608E", "H c #114C73", "I c #10466B", "J c #154D70", "K c #1D6393", "L c #054C7F", "M c #020511", "N c #1D2131", "O c #39415E", "P c #4D577A", "Q c #545E80", "R c #4B5578", "S c #363D54", "T c #1B1E33", "U c #000207", "V c #F8F8F8", "W c #EAEAEA", "X c #E4E4E4", "Y c #DDDDDD", "Z c #D6D6D6", "` c #D0D0D0", " . c #C9C9C9", ".. c #C2C2C2", "+. c #BBBBBB", "@. c #B5B5B5", "#. c #AEAEAE", "$. c #A7A7A7", "%. c #A1A1A1", "&. c #9A9A9A", "*. c #939393", "=. c #8C8C8C", "-. c #868686", ";. c #7F7F7F", ">. c #787878", ",. c #727272", "'. c #6B6B6B", "). c #646464", "!. c #5D5D5D", "~. c #505050", "{. c #494949", "]. c #434343", "^. c #3C3C3C", "/. c #353535", "(. c #2E2E2E", "_. c #282828", ":. c #212121", "<. c #1A1A1A", "[. c #141414", "}. c #0D0D0D", "|. c #060606", "1. c #6C6C6C", "2. c #383838", "3. c #616161", "4. c #E1E1E1", "5. c #535353", "6. c #686868", "7. c #5B5B5B", "8. c #A5A5A5", "9. c #9D9D9D", "0. c #2775BC", "a. c #256C9C", "b. c #196395", "c. c #135C8F", "d. c #115C91", "e. c #105A8E", "f. c #175E93", "g. c #1D6396", "h. c #266A9E", "i. c #26699E", "j. c #266A9C", "k. c #1C6094", "l. c #155A8D", "m. c #0F5A8E", "n. c #145F94", "o. c #176095", "p. c #1B6396", "q. c #145B8F", "r. c #145FA2", "s. c #000005", "t. c #1D2942", "u. c #424E6B", "v. c #5A6583", "w. c #6C7488", "x. c #767C8D", "y. c #787E92", "z. c #6F768B", "A. c #5B6178", "B. c #454B62", "C. c #333545", "D. c #0F0F12", "E. c #8B8B8B", "F. c #838383", "G. c #B0B0B0", "H. c #B7B7B7", "I. c #A8A8A8", "J. c #999999", "K. c #ACACAC", "L. c #A19995", "M. c #847A73", "N. c #847871", "O. c #8A7D74", "P. c #847570", "Q. c #77706C", "R. c #71716B", "S. c #7A7772", "T. c #787570", "U. c #6E6C67", "V. c #6F706C", "W. c #8A8380", "X. c #958984", "Y. c #A69B93", "Z. c #968C86", "`. c #979089", " + c #575843", ".+ c #15213C", "++ c #5B6F95", "@+ c #707D97", "#+ c #868FA2", "$+ c #8A95AC", "%+ c #7A85A5", "&+ c #6F7CA3", "*+ c #6C79A1", "=+ c #5A668D", "-+ c #424A66", ";+ c #313655", ">+ c #0A0B10", ",+ c #444444", "'+ c #D3D3D3", ")+ c #B4B4B4", "!+ c #9B9B9B", "~+ c #909090", "{+ c #7A7A7A", "]+ c #545454", "^+ c #3D3D3D", "/+ c #E3E3E3", "(+ c #ACA9AA", "_+ c #2B2D2B", ":+ c #1B2828", "<+ c #2C4447", "[+ c #D6D4D4", "}+ c #2E2D2A", "|+ c #393A39", "1+ c #002749", "2+ c #313230", "3+ c #373938", "4+ c #E4E0E1", "5+ c #474040", "6+ c #233F41", "7+ c #3A3C3E", "8+ c #A3A49F", "9+ c #72726B", "0+ c #4A618A", "a+ c #485C83", "b+ c #495D85", "c+ c #4B618B", "d+ c #4C6590", "e+ c #4C6793", "f+ c #4A678F", "g+ c #0F1420", "h+ c #495A7E", "i+ c #7D8CA7", "j+ c #99A5BA", "k+ c #A0AECA", "l+ c #889BC4", "m+ c #7181AF", "n+ c #6777A7", "o+ c #6373A5", "p+ c #5D6B99", "q+ c #576693", "r+ c #525E89", "s+ c #4A5477", "t+ c #31374B", "u+ c #0C101A", "v+ c #3D5371", "w+ c #54729C", "x+ c #53749E", "y+ c #54739C", "z+ c #55749E", "A+ c #55739B", "B+ c #526F98", "C+ c #516B92", "D+ c #4F668D", "E+ c #51678D", "F+ c #556F94", "G+ c #567499", "H+ c #CECECE", "I+ c #FEFEFE", "J+ c #CBCBCB", "K+ c #C5C5C5", "L+ c #828282", "M+ c #484848", "N+ c #363636", "O+ c #4D4D4D", "P+ c #F6F5F6", "Q+ c #FCFAFC", "R+ c #041010", "S+ c #225156", "T+ c #51787D", "U+ c #F5F2F2", "V+ c #424948", "W+ c #2F656B", "X+ c #21474A", "Y+ c #155C63", "Z+ c #307F89", "`+ c #F6F2F3", " @ c #1F3234", ".@ c #004850", "+@ c #628990", "@@ c #9FA39B", "#@ c #6D7266", "$@ c #495D84", "%@ c #48577A", "&@ c #49587D", "*@ c #495C83", "=@ c #4B5F88", "-@ c #4B648B", ";@ c #2E3E56", ">@ c #2F3237", ",@ c #8D95A3", "'@ c #AFB4BC", ")@ c #D6DBE5", "!@ c #AFBAD0", "~@ c #8494B6", "{@ c #7D91B8", "]@ c #7A8FB7", "^@ c #7489B3", "/@ c #5D6B97", "(@ c #586794", "_@ c #546290", ":@ c #4E5C89", "<@ c #445076", "[@ c #1C1F28", "}@ c #1F2938", "|@ c #4C688C", "1@ c #527099", "2@ c #536F97", "3@ c #536E94", "4@ c #536D92", "5@ c #516B90", "6@ c #526B90", "7@ c #557094", "8@ c #F2F2F2", "9@ c #E0E0E0", "0@ c #C8C8C8", "a@ c #BEBEBE", "b@ c #969696", "c@ c #4C4C4C", "d@ c #303030", "e@ c #232323", "f@ c #090909", "g@ c #F8F2EF", "h@ c #FFF9F5", "i@ c #625F55", "j@ c #7B756E", "k@ c #91847B", "l@ c #F6EDEA", "m@ c #65756E", "n@ c #98C2C0", "o@ c #708D89", "p@ c #87A4A0", "q@ c #D3CDC3", "r@ c #FFFFFE", "s@ c #847B72", "t@ c #ABADA7", "u@ c #D8C5BE", "v@ c #B9B5AB", "w@ c #6F6D65", "x@ c #485C80", "y@ c #485574", "z@ c #48587C", "A@ c #485B82", "B@ c #495E85", "C@ c #496089", "D@ c #19222F", "E@ c #9CA7B1", "F@ c #A0A4A8", "G@ c #D6D9DE", "H@ c #E3E7EF", "I@ c #B1BBD0", "J@ c #8392B1", "K@ c #8195BA", "L@ c #7F95BB", "M@ c #7A90B7", "N@ c #5F6D97", "O@ c #5A6995", "P@ c #576692", "Q@ c #52618F", "R@ c #4C5A88", "S@ c #323951", "T@ c #0C0E14", "U@ c #3F5676", "V@ c #506E94", "W@ c #516C94", "X@ c #516D93", "Y@ c #526E94", "Z@ c #546E93", "`@ c #6880A1", " # c #88A1BC", ".# c #7D99B5", "+# c #7794B2", "@# c #6182A3", "## c #E6E6E6", "$# c #5E5E5E", "%# c #515151", "&# c #555555", "*# c #2C2C2C", "=# c #2F2F2F", "-# c #1C1C1C", ";# c #000935", "># c #00497F", ",# c #00255F", "'# c #0C517F", ")# c #003973", "!# c #004680", "~# c #00326F", "{# c #003E76", "]# c #145689", "^# c #04447B", "/# c #01487F", "(# c #002563", "_# c #00467D", ":# c #002C6B", "<# c #003B79", "[# c #003E77", "}# c #00346F", "|# c #004A83", "1# c #001642", "2# c #48597C", "3# c #475472", "4# c #485572", "5# c #485677", "6# c #49597D", "7# c #495F86", "8# c #111721", "9# c #949BA4", "0# c #C5C8CD", "a# c #E1E3ED", "b# c #E2E6F3", "c# c #B6BDD6", "d# c #8C96BB", "e# c #767E96", "f# c #6D7489", "g# c #727A8F", "h# c #B8C5D8", "i# c #A7B7D2", "j# c #7D98C5", "k# c #7A95C3", "l# c #647DAF", "m# c #4B5E8B", "n# c #0C0F17", "o# c #2B3A4E", "p# c #4B6589", "q# c #516C91", "r# c #516C93", "s# c #56759B", "t# c #6C8BAB", "u# c #B2C3D2", "v# c #C4D4E0", "w# c #849CB7", "x# c #5D7597", "y# c #587494", "z# c #E5E5E5", "A# c #717171", "B# c #949494", "C# c #626262", "D# c #414141", "E# c #343434", "F# c #1D1D1D", "G# c #002E51", "H# c #417292", "I# c #1A567D", "J# c #1D5275", "K# c #386D8E", "L# c #145886", "M# c #296691", "N# c #0A5080", "O# c #3C7499", "P# c #2C6892", "Q# c #054D7F", "R# c #477DA0", "S# c #356F95", "T# c #306D95", "U# c #004479", "V# c #397399", "W# c #094F80", "X# c #316E95", "Y# c #236491", "Z# c #3475A1", "`# c #002D4E", " $ c #485779", ".$ c #47536D", "+$ c #47536F", "@$ c #485674", "#$ c #495779", "$$ c #495D83", "%$ c #0F141C", "&$ c #92989F", "*$ c #DADFE7", "=$ c #E7EAF4", "-$ c #E1E5F3", ";$ c #B4BBD5", ">$ c #8A94B9", ",$ c #747B94", "'$ c #6C7388", ")$ c #70778D", "!$ c #B7C5D7", "~$ c #A8B9D3", "{$ c #809AC7", "]$ c #7E99C6", "^$ c #6A82B3", "/$ c #566D9E", "($ c #0E121B", "_$ c #1D2836", ":$ c #475E7F", "<$ c #597699", "[$ c #A8BDCF", "}$ c #CEDCE6", "|$ c #B5C6D4", "1$ c #748BA7", "2$ c #576789", "3$ c #546484", "4$ c #556788", "5$ c #7D7D7D", "6$ c #B1B1B1", "7$ c #BABABA", "8$ c #7C7C7C", "9$ c #404040", "0$ c #1B5E8C", "a$ c #2C668B", "b$ c #1E6391", "c$ c #00406C", "d$ c #1E6390", "e$ c #085180", "f$ c #1D5D89", "g$ c #1E618E", "h$ c #0E5381", "i$ c #1D608E", "j$ c #125683", "k$ c #1D608D", "l$ c #1B5A88", "m$ c #42789E", "n$ c #1B5F8D", "o$ c #497CA1", "p$ c #1C5F8D", "q$ c #2D6793", "r$ c #4883AB", "s$ c #003F68", "t$ c #47516B", "u$ c #48546E", "v$ c #485470", "w$ c #495774", "x$ c #4A5879", "y$ c #4A5C7D", "z$ c #0F131B", "A$ c #7F8592", "B$ c #CDD5E4", "C$ c #D9E0F1", "D$ c #CBD5EB", "E$ c #A4AECE", "F$ c #808BB3", "G$ c #707891", "H$ c #6B7287", "I$ c #6F778C", "J$ c #C9D3E0", "K$ c #C0CBDD", "L$ c #A9BAD7", "M$ c #A8B9D7", "N$ c #90A4C7", "O$ c #141920", "P$ c #1B2531", "Q$ c #475F7E", "R$ c #546C90", "S$ c #6982A0", "T$ c #C0CFDC", "U$ c #8B9FB7", "V$ c #56688A", "W$ c #515D7B", "X$ c #515B79", "Y$ c #515B76", "Z$ c #525D79", "`$ c #E2E2E2", " % c #FCFCFC", ".% c #A9A9A9", "+% c #BCBCBC", "@% c #757575", "#% c #242424", "$% c #0C0C0C", "%% c #003E69", "&% c #00457E", "*% c #003671", "=% c #003875", "-% c #003974", ";% c #003773", ">% c #003E7A", ",% c #004582", "'% c #004684", ")% c #004383", "!% c #004586", "~% c #00488A", "{% c #004683", "]% c #00427E", "^% c #003772", "/% c #003771", "(% c #003B75", "_% c #00477D", ":% c #004F86", "<% c #005089", "[% c #025C98", "}% c #003E6B", "|% c #545F79", "1% c #65728D", "2% c #495776", "3% c #4B5C7D", "4% c #131720", "5% c #535C70", "6% c #9EADCF", "7% c #B7C7E6", "8% c #A0B5DE", "9% c #8696C1", "0% c #727EA8", "a% c #6A728C", "b% c #686F83", "c% c #72788B", "d% c #ECEDF0", "e% c #EFF0F2", "f% c #F6F6F7", "g% c #D7E2ED", "h% c #98A7B8", "i% c #21272D", "j% c #1D2834", "k% c #4D6887", "l% c #546788", "m% c #5F7494", "n% c #647596", "o% c #515F80", "p% c #4F5876", "q% c #4E5672", "r% c #4F5774", "s% c #4E566F", "t% c #515874", "u% c #E8E8E8", "v% c #C1C1C1", "w% c #B3B3B3", "x% c #252525", "y% c #AEA9A4", "z% c #564B44", "A% c #655C55", "B% c #433B39", "C% c #847F7A", "D% c #7E7067", "E% c #4B4241", "F% c #6F635E", "G% c #835C30", "H% c #734E21", "I% c #6E481B", "J% c #664319", "K% c #593811", "L% c #6E6158", "M% c #6B5D52", "N% c #726C68", "O% c #544A43", "P% c #514845", "Q% c #484048", "R% c #776F6A", "S% c #4F4440", "T% c #48546F", "U% c #5B6479", "V% c #96A2B5", "W% c #7486A1", "X% c #516183", "Y% c #4C5E7F", "Z% c #4C6184", "`% c #273042", " & c #2C2F37", ".& c #64708F", "+& c #8A9ABF", "@& c #8F9FC4", "#& c #7483AB", "$& c #677299", "%& c #646D8C", "&& c #646D88", "*& c #6D7690", "=& c #C8CEDD", "-& c #D5D9E4", ";& c #F3F3F5", ">& c #CFDAE6", ",& c #67717D", "'& c #2D3948", ")& c #232F3D", "!& c #4A5E7A", "~& c #4E5977", "{& c #4F5C7A", "]& c #4E5876", "^& c #4E5875", "/& c #4D5570", "(& c #4D5572", "_& c #4E546D", ":& c #4D546B", "<& c #FDFDFD", "[& c #8B8A8A", "}& c #40434C", "|& c #2E3545", "1& c #A3A3A0", "2& c #2C3623", "3& c #9A9FA8", "4& c #7B5E30", "5& c #183744", "6& c #49585B", "7& c #404E4C", "8& c #403115", "9& c #9DA1A7", "0& c #898989", "a& c #6B6B6C", "b& c #464647", "c& c #343C28", "d& c #374266", "e& c #B6B4B6", "f& c #313723", "g& c #47526B", "h& c #484F61", "i& c #6F7B90", "j& c #9BA6B7", "k& c #99A6B7", "l& c #ABB6C5", "m& c #BEC7D4", "n& c #4C5B72", "o& c #0E0E10", "p& c #3C4151", "q& c #5D6C97", "r& c #7A87AC", "s& c #7C87A8", "t& c #667193", "u& c #5D688A", "v& c #616B8B", "w& c #697493", "x& c #ABB5CD", "y& c #BFC6D8", "z& c #F0F0F3", "A& c #EFF0F3", "B& c #A9B4C0", "C& c #3C4249", "D& c #2F3B4E", "E& c #232A38", "F& c #434B62", "G& c #4B536E", "H& c #4D5775", "I& c #4C546E", "J& c #4A516B", "K& c #4C526B", "L& c #4C536B", "M& c #4A4F61", "N& c #4C5469", "O& c #4E566E", "P& c #B8B8B8", "Q& c #696969", "R& c #373737", "S& c #CAC8C9", "T& c #62687F", "U& c #656773", "V& c #696869", "W& c #403D40", "X& c #ACB2BD", "Y& c #815D27", "Z& c #1C4A64", "`& c #4D5D5F", " * c #143643", ".* c #392608", "+* c #9DA0A6", "@* c #7E7E7D", "#* c #E7E7E7", "$* c #5C5C5D", "%* c #454243", "&* c #556081", "** c #BBB9BA", "=* c #434044", "-* c #465167", ";* c #474C5B", ">* c #4D5569", ",* c #48526B", "'* c #48536D", ")* c #495670", "!* c #4F5E7B", "~* c #4A566E", "{* c #26272E", "]* c #1E212A", "^* c #4D5C85", "/* c #5E6E9A", "(* c #7C88A9", "_* c #6E7899", ":* c #5B6688", "<* c #5E6889", "[* c #677090", "}* c #AAB3CC", "|* c #BEC4D7", "1* c #CAD0DC", "2* c #727883", "3* c #1F232B", "4* c #1F2430", "5* c #2F3546", "6* c #464D65", "7* c #4A536C", "8* c #4C526C", "9* c #4A5166", "0* c #494D61", "a* c #494E61", "b* c #494C5D", "c* c #474955", "d* c #4C5365", "e* c #4D5467", "f* c #B9B9B9", "g* c #979797", "h* c #666666", "i* c #FFFBFF", "j* c #D5CFD4", "k* c #DCDEDB", "l* c #D9CBD4", "m* c #28311E", "n* c #B4BAC3", "o* c #7D5624", "p* c #35403A", "q* c #2A3B3D", "r* c #556161", "s* c #4F3513", "t* c #91969B", "u* c #6F6F6F", "v* c #606060", "w* c #2B3220", "x* c #EBE6EA", "y* c #BEB7BF", "z* c #2F3328", "A* c #454D61", "B* c #434754", "C* c #434857", "D* c #454B5D", "E* c #464C63", "F* c #464E66", "G* c #464D66", "H* c #656E82", "I* c #717281", "J* c #070809", "K* c #22252E", "L* c #3C404F", "M* c #4A4D5B", "N* c #4F5260", "O* c #545F7F", "P* c #5B678E", "Q* c #5E698F", "R* c #62687B", "S* c #6E748A", "T* c #8E94AC", "U* c #626775", "V* c #393A3E", "W* c #2B2D36", "X* c #1E2029", "Y* c #393E51", "Z* c #484E66", "`* c #4A4F67", " = c #494C61", ".= c #4A4E61", "+= c #494D60", "@= c #484A56", "#= c #474953", "$= c #4C5366", "%= c #4D5363", "&= c #BFBFBF", "*= c #777777", "== c #808080", "-= c #2D2D2D", ";= c #FFF9FF", ">= c #009300", ",= c #009100", "'= c #99ABA1", ")= c #A59DA5", "!= c #3C3A3C", "~= c #AEB2BB", "{= c #695127", "]= c #214253", "^= c #4E5D77", "/= c #3C4442", "(= c #472214", "_= c #8F8A94", ":= c #4D4E4D", "<= c #FBFBFB", "[= c #8B8A8B", "}= c #454045", "|= c #E2E9E7", "1= c #589959", "2= c #4CC100", "3= c #434C5D", "4= c #41434E", "5= c #434651", "6= c #454B60", "7= c #434D64", "8= c #484F66", "9= c #586177", "0= c #3F434F", "a= c #111113", "b= c #25272B", "c= c #33353F", "d= c #4E515B", "e= c #5F6885", "f= c #656E91", "g= c #667090", "h= c #616677", "i= c #64697B", "j= c #525868", "k= c #383739", "l= c #585141", "m= c #5C4F3A", "n= c #383536", "o= c #40485A", "p= c #495167", "q= c #484E61", "r= c #484B5C", "s= c #515D75", "t= c #6888A7", "u= c #7089A3", "v= c #575F6F", "w= c #494C5B", "x= c #4D5464", "y= c #4A4E59", "z= c #A3A3A3", "A= c #C3C3C3", "B= c #919191", "C= c #4F4F4F", "D= c #53AD00", "E= c #569657", "F= c #C9FCD4", "G= c #5F9B5C", "H= c #004E15", "I= c #003300", "J= c #AC98AA", "K= c #212B18", "L= c #C0CBCF", "M= c #6A4C2A", "N= c #2E323F", "O= c #5DA059", "P= c #00C20E", "Q= c #004C00", "R= c #8A748C", "S= c #4A4248", "T= c #D1D1D1", "U= c #8A8A8A", "V= c #262B1C", "W= c #589C58", "X= c #C4FAD0", "Y= c #0E7A2E", "Z= c #006C15", "`= c #434959", " - c #3F434B", ".- c #424654", "+- c #434858", "@- c #43495C", "#- c #43495D", "$- c #434B5D", "%- c #41475A", "&- c #373C49", "*- c #1E2028", "=- c #0B0C10", "-- c #0E0F11", ";- c #65686E", ">- c #737786", ",- c #787E8C", "'- c #767A88", ")- c #6C717E", "!- c #5E6370", "~- c #2E323A", "{- c #4B4743", "]- c #937E48", "^- c #AE904C", "/- c #675841", "(- c #414552", "_- c #464E60", ":- c #484A5B", "<- c #4A5161", "[- c #556683", "}- c #535E75", "|- c #4C5161", "1- c #484C56", "2- c #4B4E59", "3- c #474A51", "4- c #C7C7C7", "5- c #D2D2D2", "6- c #CACACA", "7- c #B4EABD", "8- c #56985B", "9- c #6C876E", "0- c #748D75", "a- c #005A20", "b- c #004900", "c- c #89B08C", "d- c #EBB1C4", "e- c #C3B8BA", "f- c #D0A6AF", "g- c #509B53", "h- c #CBFFD5", "i- c #758A73", "j- c #00551D", "k- c #004800", "l- c #BDAEBC", "m- c #9A9B9A", "n- c #9D9E9E", "o- c #BCA1BC", "p- c #C3FFCE", "q- c #6E876D", "r- c #778C73", "s- c #005920", "t- c #424856", "u- c #3E4047", "v- c #3F4149", "w- c #41434F", "x- c #414555", "y- c #424655", "z- c #424656", "A- c #424756", "B- c #3F4352", "C- c #303541", "D- c #1F222B", "E- c #1A1C23", "F- c #17191F", "G- c #16181E", "H- c #181920", "I- c #1B1E24", "J- c #21242D", "K- c #2E333E", "L- c #3D4355", "M- c #2C2E31", "N- c #544B30", "O- c #B2984C", "P- c #9C8149", "Q- c #4F4940", "R- c #3D404A", "S- c #3F4249", "T- c #3F4248", "U- c #464B57", "V- c #4A5266", "W- c #494E5E", "X- c #484A55", "Y- c #45484D", "Z- c #47494F", "`- c #434748", " ; c #ABABAB", ".; c #656565", "+; c #424242", "@; c #474747", "#; c #080808", "$; c #555450", "%; c #00590A", "&; c #718D74", "*; c #7E6500", "=; c #00541C", "-; c #E0CBDC", ";; c #C8959B", ">; c #B0A9A7", ",; c #D8ADC0", "'; c #5D8260", "); c #658566", "!; c #6E8A6D", "~; c #003E00", "{; c #003800", "]; c #EDDAEA", "^; c #C6C5C6", "/; c #C0C1C0", "(; c #DECDDC", "_; c #002300", ":; c #6E8B6E", "<; c #004500", "[; c #00571D", "}; c #424652", "|; c #3C3F45", "1; c #3C3E45", "2; c #3E4045", "3; c #3F4148", "4; c #3F3F48", "5; c #3F424B", "6; c #40434E", "7; c #3D3F49", "8; c #31343B", "9; c #24252C", "0; c #202127", "a; c #292C34", "b; c #2D2E35", "c; c #2B2C32", "d; c #2B2E37", "e; c #2F343F", "f; c #303540", "g; c #2C3039", "h; c #2A2B29", "i; c #6F6337", "j; c #BD9F4F", "k; c #836D42", "l; c #3E3B34", "m; c #36393A", "n; c #42464C", "o; c #474A56", "p; c #464852", "q; c #43464B", "r; c #404347", "s; c #3F4343", "t; c #414646", "u; c #404343", "v; c #131313", "w; c #66635F", "x; c #77746F", "y; c #3F434C", "z; c #3A3C40", "A; c #3C3F43", "B; c #3D3F42", "C; c #3F4143", "D; c #3F4043", "E; c #3B3D43", "F; c #3E3F47", "G; c #3F4147", "H; c #3D3D44", "I; c #393B41", "J; c #34363C", "K; c #2B2C31", "L; c #292B2F", "M; c #2E3337", "N; c #34383F", "O; c #3B3F46", "P; c #373A3F", "Q; c #37362C", "R; c #998643", "S; c #BA9B50", "T; c #66573E", "U; c #38393A", "V; c #3F4246", "W; c #414549", "X; c #3F4243", "Y; c #3E4141", "Z; c #3D413F", "`; c #3F4341", " > c #3F4340", ".> c #2B2B2B", "+> c #272727", "@> c #686561", "#> c #6F6C68", "$> c #3E4048", "%> c #393B3C", "&> c #3B3C3E", "*> c #3D3E3F", "=> c #3E3F42", "-> c #3E3F46", ";> c #3B3D42", ">> c #3B3E41", ",> c #3C3E42", "'> c #3E4043", ")> c #3E3F43", "!> c #3D3F41", "~> c #3C3D42", "{> c #3D3F43", "]> c #3E3F44", "^> c #353639", "/> c #423E2F", "(> c #AE9649", "_> c #A5894C", ":> c #574B3C", "<> c #383A38", "[> c #3E4041", "}> c #3D4040", "|> c #3C3F3F", "1> c #3C403E", "2> c #3C413E", "3> c #3E423F", "4> c #3F433F", "5> c #3A3D3F", "6> c #3B3D3B", "7> c #3C3D3C", "8> c #3B3D3D", "9> c #3B3D40", "0> c #404043", "a> c #3A3E3F", "b> c #3B3F3E", "c> c #3C3F40", "d> c #3F3F42", "e> c #3E3F41", "f> c #3B3F3F", "g> c #393D3D", "h> c #2F3131", "i> c #54492E", "j> c #C3A551", "k> c #917947", "l> c #423F35", "m> c #353937", "n> c #3A3E3B", "o> c #3B3F3B", "p> c #3B3F3C", "q> c #3B403D", "r> c #373939", "s> c #3A3B39", "t> c #393B39", "u> c #3B3B3B", "v> c #3B3C3D", "w> c #3B3D3F", "x> c #3D3F40", "y> c #3F3F43", "z> c #3A3D3C", "A> c #393E3B", "B> c #3D3F3E", "C> c #3E3F3F", "D> c #3C3E3E", "E> c #3A3D3B", "F> c #363A38", "G> c #2E2F2B", "H> c #948141", "I> c #C0A151", "J> c #76623F", "K> c #383732", "L> c #373C38", "M> c #3A3F3B", "N> c #3D413E", "O> c #258C00", "P> c #3D9800", "Q> c #489800", "R> c #518000", "S> c #373A39", "T> c #373837", "U> c #383B39", "V> c #393A38", "W> c #3B3D3C", "X> c #3C3D3D", "Y> c #3D3E3E", "Z> c #3B3E3D", "`> c #393C3B", " , c #3A3E3C", "., c #3B3C3B", "+, c #393D3B", "@, c #383C3B", "#, c #383D3B", "$, c #383B3A", "%, c #323635", "&, c #323128", "*, c #9C8743", "=, c #B0944C", "-, c #61543C", ";, c #353733", ">, c #383C39", ",, c #228822", "', c #46D02F", "), c #47DB10", "!, c #5AE90C", "~, c #72FF0D", "{, c #8EF10D", "], c #9DE20C", "^, c #B4E12D", "/, c #B4D22B", "(, c #828819", "_, c #4B3D13", ":, c #AF953F", "<, c #90743B", "[, c #553524", "}, c #826A57", "|, c #775E4D", "1, c #735A48", "2, c #735640", "3, c #76573F", "4, c #76573D", "5, c #74543B", "6, c #76563C", "7, c #574333", "8, c #765944", "9, c #634634", "0, c #554131", "a, c #75543A", "b, c #74543A", "c, c #725339", "d, c #715239", "e, c #715238", "f, c #443121", "g, c #2BC537", "h, c #33EE23", "i, c #37FF20", "j, c #5EFF21", "k, c #77FF2A", "l, c #90FF31", "m, c #AAFF31", "n, c #C1FF31", "o, c #CAFF2A", "p, c #DEFF23", "q, c #DBE01F", "r, c #D6C629", "s, c #776633", "t, c #B29943", "u, c #776136", "v, c #2C2519", "w, c #795F4F", "x, c #AB9488", "y, c #A9907E", "z, c #A48169", "A, c #9F7B60", "B, c #A1795E", "C, c #A47C61", "D, c #A67E63", "E, c #A1785C", "F, c #957256", "G, c #79523A", "H, c #836046", "I, c #8D694E", "J, c #926D4F", "K, c #946F51", "L, c #936F52", "M, c #926E51", "N, c #916E52", "O, c #6E553B", "P, c #7A7875", "Q, c #1BD83E", "R, c #1FFF35", "S, c #2BFF39", "T, c #43FF39", "U, c #67FF39", "V, c #7EFF3F", "W, c #99FF4A", "X, c #B0FF4A", "Y, c #CBFF4A", "Z, c #D6FF41", "`, c #ECFF3A", " ' c #EDEE21", ".' c #F1DD12", "+' c #E2BF0E", "@' c #9A7D0A", "#' c #887330", "$' c #9F823E", "%' c #443720", "&' c #F8FEFF", "*' c #F1FDFF", "=' c #EAFCFF", "-' c #E3FCFF", ";' c #DCFBFF", ">' c #D5FAFF", ",' c #CEFAFF", "'' c #C7F9FF", ")' c #C0F8FF", "!' c #BAF7FF", "~' c #B3F7FF", "{' c #ACF6FF", "]' c #A5F5FF", "^' c #9EF5FF", "/' c #97F4FF", "(' c #90F3FF", "_' c #89F3FF", ":' c #82F2FF", "<' c #7CF1FF", "[' c #75F0FF", "}' c #6EF0FF", "|' c #67EFFF", "1' c #60EEFF", "2' c #59EEFF", "3' c #52EDFF", "4' c #4BECFF", "5' c #44ECFF", "6' c #3EEBFF", "7' c #37EAFF", "8' c #30E9FF", "9' c #29E9FF", "0' c #0DE6FF", "a' c #06E5FF", "b' c #00E2FB", "c' c #6F5745", "d' c #A38776", "e' c #997966", "f' c #977358", "g' c #956C50", "h' c #90684D", "i' c #906949", "j' c #8F694A", "k' c #8A6145", "l' c #957154", "m' c #79533A", "n' c #755238", "o' c #81593E", "p' c #855E42", "q' c #8A6143", "r' c #8A6245", "s' c #8A6343", "t' c #8C6345", "u' c #886345", "v' c #6B4B38", "w' c #140E09", "x' c #7E7C79", "y' c #1DD866", "z' c #1EFF54", "A' c #34FF57", "B' c #3CFF4D", "C' c #57FF49", "D' c #6CFF4E", "E' c #88FF5A", "F' c #9EFF5E", "G' c #BBFF59", "H' c #D0FF5E", "I' c #EAFF5A", "J' c #FAFB4D", "K' c #F1E531", "L' c #F1D524", "M' c #F1BF15", "N' c #E8A911", "O' c #A17717", "P' c #161100", "Q' c #403312", "R' c #100C01", "S' c #00E1F9", "T' c #6E5441", "U' c #A18574", "V' c #967661", "W' c #956E52", "X' c #8B6444", "Y' c #896242", "Z' c #865E41", "`' c #855D40", " ) c #865F43", ".) c #97745A", "+) c #76533B", "@) c #6B4A34", "#) c #765139", "$) c #7B573C", "%) c #7E5A3D", "&) c #7C593F", "*) c #7E5A3F", "=) c #7C593E", "-) c #604531", ";) c #110D08", ">) c #2DCC79", ",) c #12FF72", "') c #2AFF76", ")) c #3AFF6C", "!) c #4AFF68", "~) c #5FFF61", "{) c #78FF69", "]) c #8CFF6D", "^) c #ADFF7A", "/) c #C2FF6D", "() c #DCFF76", "_) c #EEFF6B", ":) c #FBF25D", "<) c #F1DC41", "[) c #F1CA38", "}) c #F1B42A", "|) c #F1A011", "1) c #E1961E", "2) c #01E1F9", "3) c #7D604E", "4) c #957562", "5) c #947157", "6) c #906D55", "7) c #8E674B", "8) c #886141", "9) c #845C3F", "0) c #856048", "a) c #95735A", "b) c #704E37", "c) c #61442E", "d) c #714E36", "e) c #77543A", "f) c #74523B", "g) c #72523B", "h) c #70543B", "i) c #72533D", "j) c #77573E", "k) c #583E2D", "l) c #0D0906", "m) c #7E7C7B", "n) c #118855", "o) c #13EE88", "p) c #29FF8D", "q) c #3AFF8C", "r) c #4AFF88", "s) c #5CFF80", "t) c #77FF89", "u) c #7EFF7D", "v) c #9AFF8A", "w) c #BDFF8D", "x) c #DDFF8A", "y) c #DFFF7C", "z) c #FAFF79", "A) c #FFF06F", "B) c #F1CA52", "C) c #F1B441", "D) c #F1A532", "E) c #F1961E", "F) c #EE7D07", "G) c #B85500", "H) c #836956", "I) c #957966", "J) c #8E725D", "K) c #8E6F59", "L) c #8D6E58", "M) c #8C684D", "N) c #865C3D", "O) c #81583C", "P) c #845C43", "Q) c #906F59", "R) c #694A36", "S) c #5A3F2B", "T) c #6A4A35", "U) c #694D36", "V) c #694C36", "W) c #674D38", "X) c #6B4F38", "Y) c #71543C", "Z) c #503B2B", "`) c #0A0603", " ! c #32D099", ".! c #1AFFAB", "+! c #2FFFAB", "@! c #49FFA7", "#! c #5AFF9F", "$! c #6AFFA9", "%! c #7DFF9C", "&! c #99FF9A", "*! c #9EFF9D", "=! c #CCFFAB", "-! c #DEFF9C", ";! c #EFFF9A", ">! c #FCFB8D", ",! c #FFE388", "'! c #F1C367", ")! c #F1AC51", "!! c #F19B41", "~! c #F18E32", "{! c #F1741D", "]! c #E76811", "^! c #02E2FB", "/! c #7D6250", "(! c #907461", "_! c #8A6E59", ":! c #8B6D54", "~ c #B00D00", ",~ c #FEF8FF", "'~ c #FEF1FF", ")~ c #FDEAFF", "!~ c #FDE3FF", "~~ c #FBC7FF", "{~ c #FAC0FF", "]~ c #FABAFF", "^~ c #F9B3FF", "/~ c #F9ACFF", "(~ c #F9A5FF", "_~ c #F89EFF", ":~ c #F897FF", "<~ c #F790FF", "[~ c #F789FF", "}~ c #F682FF", "|~ c #F67CFF", "1~ c #F575FF", "2~ c #F56EFF", "3~ c #F467FF", "4~ c #F460FF", "5~ c #F359FF", "6~ c #F352FF", "7~ c #F34BFF", "8~ c #F244FF", "9~ c #F23EFF", "0~ c #F137FF", "a~ c #F130FF", "b~ c #F029FF", "c~ c #F022FF", "d~ c #EF1BFF", "e~ c #EF14FF", "f~ c #EE0DFF", "g~ c #EE06FF", "h~ c #EC01FC", "i~ c #9F8372", "j~ c #967B69", "k~ c #937662", "l~ c #8F6B50", "m~ c #8E6B4B", "n~ c #8C6347", "o~ c #805B3F", "p~ c #745036", "q~ c #6E4E37", "r~ c #836448", "s~ c #6B4C36", "t~ c #4D3522", "u~ c #553A28", "v~ c #614530", "w~ c #5C412D", "x~ c #5E452F", "y~ c #5E442D", "z~ c #563D2D", "A~ c #281B15", "B~ c #0F8181", "C~ c #1CE3D9", "D~ c #31FEEE", "E~ c #4AFEEE", "F~ c #5EFEEE", "G~ c #7AFEEE", "H~ c #8DFEEE", "I~ c #ABFEEE", "J~ c #BDFEEE", "K~ c #DDFEEE", "L~ c #EEFEEE", "M~ c #FFEDEE", "N~ c #FFDDCD", "O~ c #FFBFBD", "P~ c #FFAEA2", "Q~ c #F18881", "R~ c #F17269", "S~ c #F16252", "T~ c #F1533D", "U~ c #F13B22", "V~ c #F1120E", "W~ c #CF0000", "X~ c #ED00FD", "Y~ c #71553F", "Z~ c #684E3D", "`~ c #654A38", " { c #60432F", ".{ c #553D2A", "+{ c #523927", "@{ c #4E3627", "#{ c #4B3424", "${ c #4E3625", "%{ c #80634B", "&{ c #674834", "*{ c #462E21", "={ c #422C1F", "-{ c #3D2A1C", ";{ c #3C281B", ">{ c #3D281C", ",{ c #3A281B", "'{ c #36241B", "){ c #231510", "!{ c #038181", "~{ c #15D9E3", "{{ c #29F5FF", "]{ c #3FF8FF", "^{ c #59F2FF", "/{ c #6DFBFF", "({ c #8AF0FF", "_{ c #9CFDFF", ":{ c #BCEFFF", "<{ c #CDFEFF", "[{ c #EEEDFF", "}{ c #FFEDFE", "|{ c #FFCDEE", "1{ c #FFBDD0", "2{ c #FFA1BF", "3{ c #F18B98", "4{ c #F17A83", "5{ c #F1626C", "6{ c #F14D53", "7{ c #F1323F", "8{ c #F11F22", "9{ c #CF000E", "0{ c #060000", "a{ c #0C0000", "b{ c #130000", "c{ c #190000", "d{ c #1F0000", "e{ c #260000", "f{ c #2C0000", "g{ c #330000", "h{ c #390000", "i{ c #3F0000", "j{ c #460000", "k{ c #4C0000", "l{ c #520000", "m{ c #590000", "n{ c #5F0000", "o{ c #660000", "p{ c #6C0000", "q{ c #720000", "r{ c #790000", "s{ c #7F0000", "t{ c #850000", "u{ c #8C0000", "v{ c #920000", "w{ c #990000", "x{ c #9F0000", "y{ c #B80000", "z{ c #BF0000", "A{ c #C50000", "B{ c #CC0000", "C{ c #D20000", "D{ c #D80000", "E{ c #DF0000", "F{ c #E50000", "G{ c #EB0000", "H{ c #F20000", "I{ c #EE00FF", "J{ c #78573C", "K{ c #A28773", "L{ c #87634E", "M{ c #7E583F", "N{ c #6C4C35", "O{ c #644833", "P{ c #624531", "Q{ c #634532", "R{ c #644533", "S{ c #82654D", "T{ c #644835", "U{ c #533828", "V{ c #503527", "W{ c #513828", "X{ c #4F3626", "Y{ c #493424", "Z{ c #453222", "`{ c #422E21", " ] c #38281D", ".] c #040201", "+] c #7E7E7E", "@] c #0D6A80", "#] c #1BC0E2", "$] c #31D6FF", "%] c #49D3FF", "&] c #5ED9FF", "*] c #7AD1FF", "=] c #8DDBFF", "-] c #A9CFFF", ";] c #ACDCFF", ">] c #CCCEFF", ",] c #DDDDFF", "'] c #FFCDFE", ")] c #FFCCEE", "!] c #FFAFDE", "~] c #FF9DC3", "{] c #F177A3", "]] c #F16A8B", "^] c #F15C73", "/] c #F1425E", "(] c #F12E43", "_] c #EE1533", ":] c #BF0D1B", "<] c #76553B", "[] c #9D7E6A", "}] c #936D54", "|] c #8A6347", "1] c #7E593D", "2] c #715038", "3] c #674A36", "4] c #81614A", "5] c #654836", "6] c #583C2B", "7] c #5D422E", "8] c #5B402E", "9] c #583E2B", "0] c #553C2C", "a] c #4C3729", "b] c #433024", "c] c #1E160F", "d] c #010101", "e] c #2DB4E1", "f] c #2AC5FF", "g] c #41C7FF", "h] c #56C3FF", "i] c #60C9FF", "j] c #7CBFFF", "k] c #8FBDFF", "l] c #AABFFF", "m] c #AFBDFF", "n] c #CEBFFF", "o] c #E1BDFE", "p] c #FDAFFC", "q] c #FFAAEE", "r] c #FF92DD", "s] c #F171B7", "t] c #F162A1", "u] c #F1538B", "v] c #F13D72", "w] c #F1235D", "x] c #E81444", "y] c #AA0831", "z] c #77563B", "A] c #95735C", "B] c #8E694D", "C] c #7F583E", "D] c #7A543B", "E] c #75503A", "F] c #6E4E39", "G] c #81624C", "H] c #674734", "I] c #5E422D", "J] c #5D412E", "K] c #614430", "L] c #5E412D", "M] c #533B2C", "N] c #4E3929", "O] c #30241B", "P] c #2E9DD2", "Q] c #23AAFF", "R] c #3AA9FF", "S] c #4CACFF", "T] c #59A8FF", "U] c #6FACFF", "V] c #88A1FF", "W] c #92A1FF", "X] c #AAA2FF", "Y] c #BFAEFF", "Z] c #DDA1FF", "`] c #F19DFF", " ^ c #FD92FB", ".^ c #FF8AE4", "+^ c #F168C2", "@^ c #F154AB", "#^ c #F14594", "$^ c #F1347D", "%^ c #F11E67", "&^ c #E71161", "*^ c #78563C", "=^ c #98765F", "-^ c #8F674C", ";^ c #7E573D", ">^ c #79553A", ",^ c #75523A", "'^ c #714E38", ")^ c #85634C", "!^ c #684A33", "~^ c #5E422F", "{^ c #593E2E", "]^ c #4E3827", "^^ c #4D3A2A", "/^ c #392C20", "(^ c #010100", "_^ c #115B92", ":^ c #0E88EC", "<^ c #1B8AF1", "[^ c #3186F1", "}^ c #4182F1", "|^ c #5286F1", "1^ c #6880F1", "2^ c #7C77F1", "3^ c #9381F1", "4^ c #AE88F1", "5^ c #C58BF1", "6^ c #E081F1", "7^ c #E672F1", "8^ c #EF68E0", "9^ c #F15DC9", "0^ c #F14AB8", "a^ c #F136A6", "b^ c #F1268E", "c^ c #EC1577", "d^ c #BC0552", "e^ c #FFFEF8", "f^ c #FFFEF1", "g^ c #FFFEEA", "h^ c #FFFEE3", "i^ c #FFFEDC", "j^ c #FFFED5", "k^ c #FFFECE", "l^ c #FFFDC7", "m^ c #FFFDC0", "n^ c #FFFDBA", "o^ c #FFFDB3", "p^ c #FFFDAC", "q^ c #FFFDA5", "r^ c #FFFD9E", "s^ c #FFFC97", "t^ c #FFFC90", "u^ c #FFFC89", "v^ c #FFFC6E", "w^ c #FFFC67", "x^ c #FFFB60", "y^ c #FFFB59", "z^ c #FFFB52", "A^ c #FFFB4B", "B^ c #FFFB44", "C^ c #FFFB3E", "D^ c #FFFB37", "E^ c #FFFA30", "F^ c #FFFA29", "G^ c #FFFA22", "H^ c #FFFA1B", "I^ c #FFFA14", "J^ c #FFFA0D", "K^ c #FFFA06", "L^ c #FCF701", "M^ c #79583D", "N^ c #937058", "O^ c #8C654B", "P^ c #84593D", "Q^ c #7E563B", "R^ c #785239", "S^ c #754F38", "T^ c #704D38", "U^ c #84644D", "V^ c #684833", "W^ c #59402E", "X^ c #5C402D", "Y^ c #583F2B", "Z^ c #4A3727", "`^ c #493626", " / c #382B1F", "./ c #2577D2", "+/ c #0D72F1", "@/ c #246FF1", "#/ c #3869F1", "$/ c #4168F1", "%/ c #5260F1", "&/ c #6B61F1", "*/ c #8C69F1", "=/ c #A572F1", "-/ c #BF71F1", ";/ c #D772F1", ">/ c #E75CF1", ",/ c #EF52E5", "'/ c #F14AD1", ")/ c #F13AC3", "!/ c #F127B4", "~/ c #F1179D", "{/ c #E41383", "]/ c #8C1755", "^/ c #825E42", "// c #886147", "(/ c #865D41", "_/ c #7F573E", ":/ c #7C553E", "( c #23428D", ",( c #1940E0", "'( c #1334F1", ")( c #232BF1", "!( c #392CF1", "~( c #5432F1", "{( c #6B3DF1", "]( c #9242F1", "^( c #9D3CF1", "/( c #B83CF1", "(( c #CC3CF1", "_( c #E434F1", ":( c #EF23EA", "<( c #F115DB", "[( c #EE22CC", "}( c #C11B98", "|( c #FEF900", "1( c #655144", "2( c #3E3027", "3( c #1C140F", "4( c #19120C", "5( c #16100B", "6( c #110C08", "7( c #0E0905", "8( c #050402", "9( c #030202", "0( c #302217", "a( c #402E21", "b( c #19110C", "c( c #130C08", "d( c #100A07", "e( c #0A0705", "f( c #050302", "g( c #020101", "h( c #2C3A90", "i( c #1E2DF0", "j( c #1B14EE", "k( c #3112F1", "l( c #4921F1", "m( c #6622F1", "n( c #7B2EF1", "o( c #9825F1", "p( c #AD21F1", "q( c #C421F1", "r( c #D71EF1", "s( c #E112EC", "t( c #E213D7", "u( c #BD1AAA", "v( c #FFFA00", "w( c #807B79", "x( c #807C79", "y( c #7E7B79", "z( c #7D7C7A", "A( c #7D7C7C", "B( c #7C7B7B", "C( c #797876", "D( c #7B7A7A", "E( c #7E7A79", "F( c #7D7B7A", "G( c #7D7D7C", "H( c #190CB7", "I( c #2C18E4", "J( c #5522EE", "K( c #560EEB", "L( c #7811F1", "M( c #8C1CF1", "N( c #AA15EE", "O( c #AC19E8", "P( c #BF19E3", "Q( c #A618B9", "R( c #862B8C", "S( c #43219D", "T( c #3A00B0", "U( c #5800CF", "V( c #7600CF", "W( c #750BBF", "X( c #8A22AA", "Y( c #00000C", "Z( c #010013", "`( c #010019", " _ c #02001F", "._ c #020026", "+_ c #02002C", "@_ c #030033", "#_ c #030039", "$_ c #04003F", "%_ c #040046", "&_ c #04004C", "*_ c #050052", "=_ c #050059", "-_ c #06005F", ";_ c #060066", ">_ c #06006C", ",_ c #070072", "'_ c #08008C", ")_ c #090092", "!_ c #090099", "~_ c #0A009F", "{_ c #0A00A5", "]_ c #0A00AC", "^_ c #0B00B2", "/_ c #0B00B8", "(_ c #0C00BF", "__ c #0C00C5", ":_ c #0C00CC", "<_ c #0D00D2", "[_ c #0D00D8", "}_ c #0E00DF", "|_ c #0E00E5", "1_ c #0E00EB", "2_ c #0F00F2", "3_ c #FF0000", "4_ c #000399", "5_ c #00049B", "6_ c #00039B", "7_ c #00039A", "8_ c #000299", "9_ c #00029B", "0_ c #00019B", "a_ c #00009A", "b_ c #000199", "c_ c #FF2800", "d_ c #FF5000", "e_ c #FF7800", "f_ c #FFA100", "g_ c #FFC900", "h_ c #FFF100", "i_ c #E4FF00", "j_ c #BBFF00", "k_ c #93FF00", "l_ c #6BFF00", "m_ c #43FF00", "n_ c #1AFF00", "o_ c #00FF0D", "p_ c #00FF35", "q_ c #00FF5D", "r_ c #00FF86", "s_ c #00FFAE", "t_ c #00FFD6", "u_ c #00FFFF", "v_ c #00D6FF", "w_ c #00AEFF", "x_ c #0086FF", "y_ c #005DFF", "z_ c #0035FF", "A_ c #000DFF", "B_ c #1A00FF", "C_ c #4300FF", "D_ c #6B00FF", "E_ c #9300FF", "F_ c #BB00FF", "G_ c #E400FF", "H_ c #FF00F1", "I_ c #FF00C9", "J_ c #FF00A1", "K_ c #030C9E", "L_ c #0410A6", "M_ c #0310A6", "N_ c #0110A5", "O_ c #010FA5", "P_ c #010FA3", "Q_ c #000FA3", "R_ c #010DA5", "S_ c #030DA6", "T_ c #010DA3", "U_ c #010CA3", "V_ c #030CA5", "W_ c #02099D", "X_ c #FFEE00", "Y_ c #0513A2", "Z_ c #0A1AAB", "`_ c #0919AB", " : c #0719AB", ".: c #0618AA", "+: c #061BAA", "@: c #061AAA", "#: c #071CAB", "$: c #071AAB", "%: c #0619A8", "&: c #041AA6", "*: c #0618A8", "=: c #0418A6", "-: c #0416A7", ";: c #0613AC", ">: c #0610AB", ",: c #060DAE", "': c #060EAC", "): c #0610AA", "!: c #060DAC", "~: c #0713A9", "{: c #0714AC", "]: c #0618A6", "^: c #0617A6", "/: c #0619A6", "(: c #0717A8", "_: c #0411A0", ":: c #091DA6", "<: c #0F26AF", "[: c #0D25AD", "}: c #0F25AE", "|: c #0F26AE", "1: c #0F22AE", "2: c #0D23AE", "3: c #0C23AD", "4: c #0C22AD", "5: c #0C24AD", "6: c #0C24AB", "7: c #0C20AD", "8: c #0C1EB0", "9: c #0928A3", "0: c #035782", "a: c #0432A0", "b: c #074592", "c: c #066C73", "d: c #075784", "e: c #075C80", "f: c #0D20AE", "g: c #0D22AD", "h: c #0D22AE", "i: c #081AA5", "j: c #737373", "k: c #0C25A9", "l: c #102AB0", "m: c #1029B2", "n: c #102AB2", "o: c #102BB2", "p: c #102CB2", "q: c #0F29AF", "r: c #102BB1", "s: c #102AB1", "t: c #1024B7", "u: c #123098", "v: c #146848", "w: c #03FA05", "x: c #00C837", "y: c #0BA630", "z: c #0AB825", "A: c #04A54D", "B: c #0C9548", "C: c #0F2CAB", "D: c #1026B4", "E: c #122BB1", "F: c #122BB2", "G: c #0A22A9", "H: c #37FF00", "I: c #0E2CAD", "J: c #1431B0", "K: c #1331B1", "L: c #1331AF", "M: c #1431AF", "N: c #122FAF", "O: c #132FAE", "P: c #1331AE", "Q: c #132CB4", "R: c #1138AD", "S: c #12636D", "T: c #1D6B2D", "U: c #07D512", "V: c #06A93F", "W: c #177737", "X: c #1D6735", "Y: c #166B4D", "Z: c #1D5940", "`: c #162E9B", " < c #142AB5", ".< c #122EAE", "+< c #132EAE", "@< c #132EAF", "#< c #0D29AB", "$< c #1135B0", "%< c #153CB2", "&< c #143BB2", "*< c #143BB1", "=< c #1339AF", "-< c #1439B1", ";< c #1539B1", ">< c #1539AF", ",< c #1639AF", "'< c #1439AF", ")< c #1538B5", "!< c #0C8A71", "~< c #03E91C", "{< c #129F1C", "]< c #177531", "^< c #1D3C59", "/< c #149231", "(< c #205B37", "_< c #244A38", ":< c #168644", "<< c #135296", "[< c #1533BB", "}< c #153AB1", "|< c #1639B1", "1< c #1032AE", "2< c #FFF8F8", "3< c #FFF1F1", "4< c #FFEAEA", "5< c #FFE4E4", "6< c #FFDDDD", "7< c #FFD6D6", "8< c #FFD0D0", "9< c #FFC9C9", "0< c #FFC2C2", "a< c #FFBBBB", "b< c #FFB5B5", "c< c #FFAEAE", "d< c #FFA7A7", "e< c #FFA1A1", "f< c #FF9A9A", "g< c #FF9393", "h< c #FF8C8C", "i< c #FF7272", "j< c #FF6B6B", "k< c #FF6464", "l< c #FF5D5D", "m< c #FF5757", "n< c #FF5050", "o< c #FF4949", "p< c #FF4343", "q< c #FF3C3C", "r< c #FF3535", "s< c #FF2E2E", "t< c #FF2828", "u< c #FF2121", "v< c #FF1A1A", "w< c #FF0808", "x< c #FF0101", "y< c #133EB3", "z< c #1A46B8", "A< c #1A45B8", "B< c #1945B8", "C< c #1A43B8", "D< c #1943B8", "E< c #1943B7", "F< c #1743B5", "G< c #1743B7", "H< c #183FBD", "I< c #1461A0", "J< c #0E807D", "K< c #1C5558", "L< c #177C3F", "M< c #0E9B3B", "N< c #08D629", "O< c #157F53", "P< c #15853A", "Q< c #0EB733", "R< c #0F9171", "S< c #183EBD", "T< c #1941B7", "U< c #1942B7", "V< c #1742B5", "W< c #1742B7", "X< c #133BB2", "Y< c #1745B7", "Z< c #204ABB", "`< c #1F49BB", " [ c #1F4ABB", ".[ c #1F4BBB", "+[ c #1D4ABB", "@[ c #1C49BA", "#[ c #1C48BA", "$[ c #1C46BD", "%[ c #1D45C0", "&[ c #1D3EB9", "*[ c #243568", "=[ c #14814E", "-[ c #0C9A61", ";[ c #10945A", ">[ c #187847", ",[ c #1D6C36", "'[ c #225747", ")[ c #1C6190", "![ c #1E47C1", "~[ c #1F4CBA", "{[ c #1F4DBA", "][ c #1F4DBB", "^[ c #1643B6", "/[ c #1A4CBB", "([ c #2352C2", "_[ c #2252C2", ":[ c #224FC1", "<[ c #2253C1", "[[ c #2250C1", "}[ c #2051C1", "|[ c #2051BF", "1[ c #1F50BF", "2[ c #1F52BE", "3[ c #1F51BF", "4[ c #1F51BE", "5[ c #1F4FC2", "6[ c #158E68", "7[ c #0BD008", "8[ c #177028", "9[ c #175F2C", "0[ c #228238", "a[ c #12AC2E", "b[ c #1B5D84", "c[ c #204BBC", "d[ c #1F4EBF", "e[ c #204EBF", "f[ c #194AB9", "g[ c #1D56BF", "h[ c #275CC5", "i[ c #255BC5", "j[ c #265AC6", "k[ c #2759CA", "l[ c #265AC7", "m[ c #2657C7", "n[ c #2557C7", "o[ c #265AC5", "p[ c #235AC2", "q[ c #2359C2", "r[ c #2358C2", "s[ c #2357C2", "t[ c #2457C3", "u[ c #2253C9", "v[ c #1C73AA", "w[ c #12A154", "x[ c #0F823A", "y[ c #4F9E60", "z[ c #A48869", "A[ c #4D7372", "B[ c #1A5BCB", "C[ c #2457CA", "D[ c #235AC5", "E[ c #2358C4", "F[ c #2559C3", "G[ c #1C53BD", "H[ c #0019FF", "I[ c #1F5DC3", "J[ c #2765CA", "K[ c #2564CA", "L[ c #2563CC", "M[ c #275FD1", "N[ c #2261C9", "O[ c #19938E", "P[ c #19918F", "Q[ c #226BBE", "R[ c #2560CF", "S[ c #245ECC", "T[ c #2263C8", "U[ c #2264C8", "V[ c #2364C8", "W[ c #2462CA", "X[ c #265FD0", "Y[ c #1F62C7", "Z[ c #1A6AB7", "`[ c #B0B5AE", " } c #E0A57F", ".} c #6A5771", "+} c #195FD6", "@} c #2462CB", "#} c #2562CA", "$} c #2362CA", "%} c #1D5AC2", "&} c #2165C6", "*} c #296ACE", "=} c #2869CF", "-} c #2962D5", ";} c #257BBB", ">} c #17A580", ",} c #08EF26", "'} c #09E72A", ")} c #15B05E", "!} c #1BA08A", "~} c #296ACF", "{} c #2967D0", "]} c #286ACD", "^} c #2567CF", "/} c #2066D1", "(} c #BEB7B1", "_} c #DBA876", ":} c #7A5956", "<} c #1A68D5", "[} c #266ACE", "}} c #2669CD", "|} c #266ACD", "1} c #286BCD", "2} c #2A6BCE", "3} c #2163C5", "4} c #0D0000", "5} c #140000", "6} c #1A0000", "7} c #210000", "8} c #280000", "9} c #2E0000", "0} c #350000", "a} c #3C0000", "b} c #430000", "c} c #490000", "d} c #500000", "e} c #570000", "f} c #5D0000", "g} c #640000", "h} c #6B0000", "i} c #780000", "j} c #860000", "k} c #930000", "l} c #9A0000", "m} c #B50000", "n} c #BB0000", "o} c #C20000", "p} c #C90000", "q} c #D00000", "r} c #D60000", "s} c #DD0000", "t} c #E40000", "u} c #E30000", "v} c #E70000", "w} c #236DCA", "x} c #2671CF", "y} c #2870D2", "z} c #2970D4", "A} c #12C35F", "B} c #0DC421", "C} c #0ACB28", "D} c #14A24D", "E} c #1B7036", "F} c #0AEA20", "G} c #2389B0", "H} c #2B6FD8", "I} c #2872D2", "J} c #2871D5", "K} c #2870D4", "L} c #286FD4", "M} c #2870D1", "N} c #2871D1", "O} c #236FD0", "P} c #1E6ED4", "Q} c #BABCAE", "R} c #D8A775", "S} c #84584F", "T} c #1D70D8", "U} c #2572D2", "V} c #2670D1", "W} c #2670D0", "X} c #2671D0", "Y} c #266FD1", "Z} c #226BC9", "`} c #E100FF", " | c #2576CD", ".| c #287AD0", "+| c #2577D8", "@| c #2084C5", "#| c #01E729", "$| c #0C881D", "%| c #0D972C", "&| c #09C336", "*| c #196C41", "=| c #10D43C", "-| c #2393B0", ";| c #2C72DE", ">| c #2778D3", ",| c #2780C8", "'| c #2684BF", ")| c #277ACE", "!| c #2974DB", "~| c #2576D5", "{| c #2177D6", "]| c #1C77D8", "^| c #B6BCB4", "/| c #D9A87A", "(| c #88594B", "_| c #2276D5", ":| c #2478D6", "<| c #2474D5", "[| c #2174D6", "}| c #1F74D7", "|| c #2175D6", "1| c #2476D4", "2| c #2778D4", "3| c #2473CC", "4| c #DE0000", "5| c #2A7ECF", "6| c #1C83D8", "7| c #1E80DE", "8| c #3E89C9", "9| c #35D24F", "0| c #38B833", "a| c #61A26A", "b| c #3C9D7D", "c| c #155847", "d| c #06CC23", "e| c #14A1AA", "f| c #247CE4", "g| c #18A8A3", "h| c #0CD954", "i| c #0DDE47", "j| c #11C36D", "k| c #1F90CD", "l| c #207CDC", "m| c #297CCC", "n| c #347DC5", "o| c #A5B3B3", "p| c #D6AB7D", "q| c #955841", "r| c #2D7ED1", "s| c #2083E0", "t| c #3183D5", "u| c #4787CA", "v| c #4685CB", "w| c #4786CB", "x| c #3682D3", "y| c #2180D6", "z| c #277BCF", "A| c #EE0000", "B| c #7497BC", "C| c #849DBA", "D| c #A29EAD", "E| c #DCB0AD", "F| c #E8BCA8", "G| c #E2BCA8", "H| c #F1B8B1", "I| c #BB8884", "J| c #527A52", "K| c #31B254", "L| c #6E92AF", "M| c #9E9EBB", "N| c #6BB389", "O| c #22A648", "P| c #297C49", "Q| c #189F21", "R| c #6AAF7B", "S| c #A38D94", "T| c #C29A8E", "U| c #D3AA96", "V| c #CFA594", "W| c #AF7962", "X| c #905B4D", "Y| c #5480B7", "Z| c #617EAA", "`| c #B49A9A", " 1 c #E4BDA7", ".1 c #E4BAA8", "+1 c #E6BCA6", "@1 c #B4A9AE", "#1 c #2E8CDA", "$1 c #3182CC", "%1 c #F00000", "&1 c #3A5656", "*1 c #C7A79C", "=1 c #E4B9A2", "-1 c #E5B9A2", ";1 c #DFB09D", ">1 c #B58676", ",1 c #916759", "'1 c #926759", ")1 c #935B4F", "!1 c #A56351", "~1 c #B78467", "{1 c #E9B6A8", "]1 c #F6C6B4", "^1 c #CF9D89", "/1 c #674C43", "(1 c #564752", "_1 c #6C775C", ":1 c #D6B99A", "<1 c #E5B4A3", "[1 c #DFB8A0", "}1 c #D9B19C", "|1 c #C9907F", "11 c #9E5F51", "21 c #824D3C", "31 c #915E53", "41 c #A86959", "51 c #C08575", "61 c #CF9F92", "71 c #CC9C91", "81 c #CF9E8F", "91 c #C58D7B", "01 c #7D7888", "a1 c #6E7692", "b1 c #C69686", "c1 c #C89B8B", "d1 c #C79787", "e1 c #B98373", "f1 c #946151", "g1 c #714B3A", "h1 c #6F4939", "i1 c #794E3D", "j1 c #9B5E4E", "k1 c #BA8170", "l1 c #D6B2A1", "m1 c #D9B7A5", "n1 c #B18675", "o1 c #725043", "p1 c #745A4F", "q1 c #977D6B", "r1 c #C09A87", "s1 c #C69C8B", "t1 c #C0917F", "u1 c #B6826F", "v1 c #AA6E5C", "w1 c #935A49", "x1 c #744A3A", "y1 c #7A4E3D", "z1 c #965C4C", "A1 c #AA6B5B", "B1 c #AD7162", "C1 c #AA7160", "D1 c #AC7262", "E1 c #AC6E5C", "F1 c #A4675A", "G1 c #9E685F", "H1 c #D1E3FF", "I1 c #B9D3FF", "J1 c #B5D0FF", "K1 c #8CB3F3", "L1 c #84ADF1", "M1 c #7FA9F0", "N1 c #7EA9F1", "O1 c #F9F9F9", "P1 c #F5F5F5", "Q1 c #EBEBEB", "R1 c #DADADA", "S1 c #BDD5FF", "T1 c #93BBFF", "U1 c #224681", "V1 c #EFF5FF", "W1 c #87ACE8", "X1 c #81A5E6", "Y1 c #4F73B0", "Z1 c #658DD0", "`1 c #5B85CA", " 2 c #5981CA", ".2 c #989898", "+2 c #B2B2B2", "@2 c #ADADAD", "#2 c #B7D2FF", "$2 c #244885", "%2 c #295290", "&2 c #83A7E2", "*2 c #7CA4DF", "=2 c #385789", "-2 c #4A70AF", ";2 c #5276B9", ">2 c #4F77BA", ",2 c #F0F0F0", "'2 c #CCCCCC", ")2 c #B3D1FF", "!2 c #274D8C", "~2 c #20457D", "{2 c #82A4DD", "]2 c #7B9FDC", "^2 c #3B5888", "/2 c #4A6CA5", "(2 c #4C71AD", "_2 c #496FAE", ":2 c #D8D8D8", "<2 c #AFCDFF", "[2 c #254D88", "}2 c #20427B", "|2 c #80A2DB", "12 c #7A9DD7", "22 c #3D5988", "32 c #4E70A7", "42 c #5073AD", "52 c #4D72AE", "62 c #ECECEC", "72 c #ADCDFF", "82 c #234782", "92 c #F1F5FF", "02 c #81A2D8", "a2 c #7A9BD3", "b2 c #3E5B87", "c2 c #5473AB", "d2 c #4E6FA5", "e2 c #4B6DA6", "f2 c #E9E9E9", "g2 c #B6B6B6", "h2 c #A9C9FF", "i2 c #000201", "j2 c #87A6DA", "k2 c #7B99D0", "l2 c #789AD1", "m2 c #A7C5F8", "n2 c #A6C7F9", "o2 c #A2C2F7", "p2 c #789EDD", "q2 c #749BDB", "r2 c #7199DC", "s2 c #FDD8D8", "t2 c #264A85", "u2 c #234884", "v2 c #030814", "w2 c #6F98DC", "x2 c #6993DA", "y2 c #6E99E1", "z2 c #6B98E2", "A2 c #6A97E3", "B2 c #6D9BE6", "C2 c #274A84", "D2 c #F1F6FF", "E2 c #8AA6D9", "F2 c #809FD3", "G2 c #7392C6", "H2 c #6D8EC4", "I2 c #678BC0", "J2 c #6183BC", "K2 c #597CB6", "L2 c #5679B3", "M2 c #5175B0", "N2 c #FF0326", "O2 c #FC0023", "P2 c #F6001C", "Q2 c #F00021", "R2 c #EC0021", "S2 c #1D3460", "T2 c #1D4176", "U2 c #040D19", "V2 c #4C70AB", "W2 c #456AA6", "X2 c #4064A1", "Y2 c #3A5E9B", "Z2 c #355994", "`2 c #2F538E", " 3 c #2A4D87", ".3 c #254780", "+3 c #204479", "@3 c #EFF4FF", "#3 c #8FA9D8", "$3 c #83A1D2", "%3 c #708EC1", "&3 c #6C8ABD", "*3 c #6686BB", "=3 c #6280B7", "-3 c #5D7DB2", ";3 c #5678B1", ">3 c #5173AC", ",3 c #1C3A6C", "'3 c #284C87", ")3 c #4467A1", "!3 c #41619C", "~3 c #3B5B96", "{3 c #355790", "]3 c #305489", "^3 c #2B4C82", "/3 c #26447B", "(3 c #204075", "_3 c #EDF4FF", ":3 c #91ADD8", "<3 c #87A3D2", "[3 c #475E84", "}3 c #FFE1E1", "|3 c #264778", "13 c #294C86", "23 c #2A4E83", "33 c #91ABD6", "43 c #8AA5D1", "53 c #4A5E83", "63 c #FAFAFA", "73 c #EA0021", "83 c #E40020", "93 c #DE001A", "03 c #D80019", "a3 c #D2001D", "b3 c #284678", "c3 c #F4F4F4", "d3 c #EFEFEF", "e3 c #C3D8FF", "f3 c #2C4D83", "g3 c #EFF3FF", "h3 c #94ACD5", "i3 c #8BA5D0", "j3 c #4C6183", "k3 c #F7F7F7", "l3 c #2B4777", "m3 c #2C4B7F", "n3 c #D4D4D4", "o3 c #C4C4C4", "p3 c #C0C0C0", "q3 c #C5DCFF", "r3 c #2F4E82", "s3 c #EDF3FF", "t3 c #9AB0D5", "u3 c #8FA7D0", "v3 c #4D6182", "w3 c #2C4776", "x3 c #2C4D7F", "y3 c #F6F6F6", "z3 c #EDEDED", "A3 c #C5DAFF", "B3 c #304E81", "C3 c #EBF3FF", "D3 c #9BB2D4", "E3 c #93AAD0", "F3 c #506281", "G3 c #D9D9D9", "H3 c #D00013", "I3 c #C60017", "J3 c #BC001A", "K3 c #B80019", "L3 c #2E4A78", "M3 c #2E4A7D", "N3 c #060C17", "O3 c #BDBDBD", "P3 c #C7DAFF", "Q3 c #325081", "R3 c #E9F2FF", "S3 c #9EB2D3", "T3 c #93A7CC", "U3 c #526481", "V3 c #CC0017", "W3 c #C20016", "X3 c #BE0016", "Y3 c #B60015", "Z3 c #5F5F5F", "`3 c #24395A", " 4 c #050914", ".4 c #DEDEDE", "+4 c #C7DCFF", "@4 c #335280", "#4 c #2E4A79", "$4 c #080C17", "%4 c #EBF2FF", "&4 c #A1B3D2", "*4 c #95A8CA", "=4 c #556580", "-4 c #CA001C", ";4 c #CE0013", ">4 c #CC0013", ",4 c #C20012", "'4 c #C00012", ")4 c #B40015", "!4 c #B00014", "~4 c #A00016", "{4 c #960015", "]4 c #060A15", "^4 c #D5D5D5", "/4 c #CDCDCD", "(4 c #C9DDFF", "_4 c #36537F", ":4 c #2F4A76", "<4 c #E9F1FE", "[4 c #A3B5D2", "}4 c #98ACCB", "|4 c #56667F", "14 c #C00016", "24 c #C80012", "34 c #B80011", "44 c #AE0014", "54 c #AA000F", "64 c #940014", "74 c #233758", "84 c #D7D7D7", "94 c #CBDEFF", "04 c #38547F", "a4 c #2F4974", "b4 c #E7F1FC", "c4 c #A9B9D4", "d4 c #9CAECB", "e4 c #58667F", "f4 c #BE0011", "g4 c #BC000D", "h4 c #B20010", "i4 c #263859", "j4 c #26395B", "k4 c #070D16", "l4 c #CBDDFF", "m4 c #3B537E", "n4 c #2E456B", "o4 c #080E17", "p4 c #E6F0FB", "q4 c #ABB9D2", "r4 c #A0B0CB", "s4 c #59677E", "t4 c #FEA4A4", "u4 c #A8000F", "v4 c #920014", "w4 c #9E9E9E", "x4 c #9FADC7", "y4 c #324669", "z4 c #2F456A", "A4 c #0A0E19", "B4 c #DFDFDF", "C4 c #DBDBDB", "D4 c #CDDFFF", "E4 c #3C547D", "F4 c #30466B", "G4 c #E7EFFA", "H4 c #ADB9D0", "I4 c #9FADC6", "J4 c #5C687D", "K4 c #8C0013", "L4 c #ADBCD8", "M4 c #3D557C", "N4 c #344A6F", "O4 c #060A0E", "P4 c #3E567D", "Q4 c #A6B2C5", "R4 c #202429", " . + @ # $ % & * = - ; > , ' ) > ", " ! ~ { ] ^ / ( _ : < [ } | 1 2 3 3 3 4 5 ", " 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u u u v w x 5 ", " y z A B C B D E F G H G I B J K L M N O P Q R S T U 2 V 4 W X Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.1 ~.{.].^./.(._.:.<.[.}.|. 1.2.s 3.4.> > 5.6.7.8.>.9.5 5 ", " 0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r. s.t.u.v.w.x.y.z.A.B.C.D.k 2 V 4 W X Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.1 ~.{.].^./.(._.:.<.[.}.|. 5 -.-.&.E.F.F.q G.H.I.I.J.;.K.5.5 ", " L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. + .+++@+#+$+%+&+*+=+R -+;+>+k 2 V 4 W X Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.1 ~.{.].^./.(._.:.<.[.}.|. ,+Y '+)+K.!+9.>.F.F.~+!+E.{+]+^+5 ", " /+(+_+:+<+[+}+|+1+2+3+4+5+6+7+8+9+ 0+a+b+0+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+C+D+E+F+G+ 2 V 4 W X Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.1 ~.{.].^./.(._.:.<.[.}.|. 5 H+I+V '+J+K+w !+!+L+M+N+O+5.2.k ", " P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@ $@%@&@*@b+=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@B+B+2@3@4@5@6@7@G+ 2 V 4 W X Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.1 ~.{.].^./.(._.:.<.[.}.|. 5 K.H.J.s 8@9@J+0@a@*.b@L+c@d@e@f@ ", " g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@ x@y@y@z@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #.#+#@# 5 ##Y ~+$#5.2.,+%#&#N+*#> =#_.-#k ", " ;#>#,#'#)#!#~#{#]#^#/#(#_#:#<#[#}#|#1# 2#3#4#5#6#*@7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y# 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 '+z#K.A#&.B#C#D#O+^.E#,+N+, F#f@ ", " G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#`# $.$+$@$#$6#$$%$&$*$=$-$;$>$,$'$)$!$~${$]$^$/$($_$:$5@<$[$}$|$1$2$3$4$ 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 5 Z 8@I.5$6$7$5$'.8$6.9$~.M+x x k ", "0$a$b$c$d$e$f$g$h$i$j$k$l$0$m$n$o$p$k$q$p$r$s$ @$t$u$v$w$x$y$z$A$B$C$D$E$F$G$H$I$J$K$L$M$N$]@O$P$Q$R$S$T$U$V$W$X$Y$Z$ 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 5 `$ %.%-.` +%@%A#.%*.c@.x #%$% ", "%%&%*%=%-%;%>%,%'%)%!%~%~%{%]%^%/%(%_%:%<%[%}% @$|%1%2%2%x$3%4%5%6%7%8%9%0%a%b%c%d%e%f%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t% 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 5 u%2 .%*.s v%5${+w%!+c@ x%d@k ", " y%z%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S% T%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&=&-&;&;&>&,&'&)&!&~&{&]&^&/&(&_&:&t% 2 5 5 5 5 5 2 5 5 5 5 5 2 5 5 5 5 5 2 5 5 5 5 5 2 5 5 5 5 5 5 u%2 K.b@s ..;.{+H.!+O+1 '.' /.k ", " <&[&}&|&1&).2&3&4&5&6&7&8&9&0&a&b&c&d&e&f& g&h&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&y&z&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O& 5 u%2 K.b@s v%5${+P&J.c@1 Q&' R&k ", " 2 S&T&U&2 V&W&X&Y&Z&`& *.*+*@*#*$*%*&***=* -*;*>*,*'*)*!*~*{*]*^*/*(*_*:*<*[*}*|*A&1*2*3*4*5*6*7*8*9*0*a*b*c*d*e* 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 u%2 G.b@s v%8${+f*g*c@&#h*#%5 k ", " i*j*k*l*2 ,.m*n*o*p*q*r*s*t*u*2 v*w*x*y*z* A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*`*0* =.=+=@=#=$=%= 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 5 u%2 w !+Y &=*===H.g*c@&#Q&x -=k ", " ;=>=,='=2 )=!=~={=]=^=/=(=_=:=<=[=}=|=1=2= 3=4=5=C*D*6=7=8=9=0=a=b=c=d=e=f=g=h=i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y= 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 5 u%X H.z=4.A=u*F.@.B=C=$#3., _.k ", "D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z= `= -4=.-+-@-#-$-%-&-*-=---;->-,-'-)-!-~-{-]-^-/-(-_-:-c*<-[-}-|-1-2-3- 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 2 ;.;.;.;.5 5 4-z#5-$./+6-{+q 8.L+M+&#c@-=e@k S. ", "7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s- t-u-v-w-.-x-y-z-A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z-`- 2 5 5 5 5 5 2 5 5 5 5 5 2 5 5 5 5 5 2 5 5 5 5 5 2 5 5 5 5 5 5 P&T=s u%` ;b@L+.;+;@;5 , #;$;S.S. ", "%;&;*;=;k-k -;;;>;,;';);!;~;{;];^;/;(;_;:;<;[; };|;1;2;3;T-4;S-5;6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u; 5 5 M+'.$.w%u*M+2.(.t v;#;w;x; ", "%;%;<;<;<;k n-n-n-n-<;%;%;<;k n-n-n-n-n-%;<;k y;z;A;B;C;D;B;E;A;F;G;H;I;J;>@K;L;K;M;N;O;P;Q;R;S;T;U;V;W;r;X;Y;Z;`; > $.'.M+.>.>+>.>+>@>#>S. ", " $>%>&>*>=>->;>>>,>'>)>A;A;!>~>,>~>,>,>{>]>'>^>/>(>_>:><>[>}>|>1>2>3>4> ", " 5>|+6>7>8>9>B;)>C;0>C;)>a>b>c>d>D;e>f>f>f>f>g>h>i>j>k>l>m>n>o>p>q>3>3> ", " r><>s>t>u>v>w>x>y>C;x>f>z>A>b>B>C>D>E>n>z>n>E>F>G>H>I>J>K>L>M>p>q>N>4> ", " O>P>Q>R> S>T>U>V>t>u>W>X>Y>*>Z>E>A>`> ,.,6>.,+,@,+,+,#,$,%,&,*,=,-,;,>,M>q>2>4> ", " ,,',),!,~,{,],^,/,(, _,:,<,[, },|,1,2,3,4,5,6,7,8,9,0,a,b,b,b,b,c,d,e,f, ", " g,h,i,j,k,l,m,n,o,p,q,r, s,t,u,v, w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,L,N,O,k P, ", " Q,R,S,T,U,V,W,X,Y,Z,`, '.'+'@' #'$'%' 2 &'*'='-';'>',''')'!'~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'6'7'8'9'u%u%u%0'a'b' c'd'e'f'g'h'i'j'k'l'm'n'o'p'q'r's't'u'v'w'x' ", " y'z'A'B'C'D'E'F'G'H'I'J'K'L'M'N'O' P'Q'R' 2 &'*'='-';'>',''')'!'~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'6'7'8'9'u%;.5 0'a'S' T'U'V'W'X'Y'Z'`' ).)+)@)#)$)%)&)*)*)=)-);)x' ", " >),)')))!)~){)])^)/)()_):)<)[)})|)1) k k 2 &'*'='-';'>',''')'!'~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'6'7'8'9'u%;.5 0'a'2) 3)U'4)5)6)7)8)9)0)a)b)c)d)e)f)g)h)i)j)k)l)m) ", " n)o)p)q)r)s)t)u)v)w)x)y)z)A)B)C)D)E)F)G) 2 &'*'='-';'>',''')'!'~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'6'7'8'9'u%;.5 0'a'b' H)I)J)K)L)M)N)O)P)Q)R)S)T)b)U)V)W)X)Y)Z)`)m) ", " !.!+!@!#!$!%!&!*!=!-!;!>!,!'!)!!!~!{!]! 2 &'*'='-';'>',''')'!'~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'6'7'8'9'u%5 5 0'a'^! /!(!_!:!~ 2 ,~'~)~!~u%u%u%~~{~]~^~/~(~_~:~<~[~}~|~1~2~3~4~5~6~7~8~9~0~a~b~c~d~e~f~g~h~ i~z!j~k~l~m~n~o~p~q~r~s~t~u~v~w~N!x~y~z~A~k ;. ", " B~C~D~E~F~G~H~I~J~K~L~M~N~O~P~Q~R~S~T~U~V~W~ 2 ,~'~)~!~u%;.5 ~~{~]~^~/~(~_~:~<~[~}~|~1~2~3~4~5~6~7~8~9~0~a~b~c~d~e~f~g~X~ Y~Z~`~ {.{+{@{#{${%{&{*{={-{;{;{>{,{'{){k ;. ", " !{~{{{]{^{/{({_{:{<{[{}{|{1{2{3{4{5{6{7{8{9{ 0{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{u%u%u%y{z{A{B{C{D{E{F{G{H{ 2 ,~'~)~!~u%;.5 ~~{~]~^~/~(~_~:~<~[~}~|~1~2~3~4~5~6~7~8~9~0~a~b~c~d~e~f~g~I{ J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{`{ ].]k +] ", " @]#]$]%]&]*]=]-];]>],]'])]!]~]{]]]^]/](]_]:] 0{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{u%;.5 y{z{A{B{C{D{E{F{G{H{ 2 ,~'~)~!~u%;.5 ~~{~]~^~/~(~_~:~<~[~}~|~1~2~3~4~5~6~7~8~9~0~a~b~c~d~e~f~g~I{ <][]}]|]1]2]U)3]&{4]5]6]6]7]8]9]0]a]b]c]d]+] ", " e]f]g]h]i]j]k]l]m]n]o]p]q]r]s]t]u]v]w]x]y] 0{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{u%;.5 y{z{A{B{C{D{E{F{G{H{ 2 ,~'~)~!~u%5 5 ~~{~]~^~/~(~_~:~<~[~}~|~1~2~3~4~5~6~7~8~9~0~a~b~c~d~e~f~g~X~ z]A]B]k'C]D]E]F]R)G]H]I]J]K]L]8]J]M]N]O]R!+] ", " P]Q]R]S]T]U]V]W]X]Y]Z]`] ^.^+^@^#^$^%^&^ 0{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{u%;.5 y{z{A{B{C{D{E{F{G{H{ *^=^-^k'o';^>^,^'^)^!^L]7]~^~^{^8]]^^^/^(^+] ", " _^:^<^[^}^|^1^2^3^4^5^6^7^8^9^0^a^b^c^d^ 0{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{u%5 5 y{z{A{B{C{D{E{F{G{H{ 2 e^f^g^h^i^j^k^l^m^n^o^p^q^r^s^t^u^u%u%u%v^w^x^y^z^A^B^C^D^E^F^G^H^I^J^K^L^ M^N^O^q'P^Q^R^S^T^U^V^K]W^X^8]9]Y^Z^`^ /(^+] ", " ./+/@/#/$/%/&/*/=/-/;/>/,/'/)/!/~/{/]/ 2 e^f^g^h^i^j^k^l^m^n^o^p^q^r^s^t^u^u%;.5 v^w^x^y^z^A^B^C^D^E^F^G^H^I^J^K^L^ ^/N^//(/;^_/:/$)d)(,('()(!(~({(](^(/(((_(:(<([(}( l/m/n/o/p/q/r/s/u%;.5 t/u/v/w/x/y/z/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/ 2 e^f^g^h^i^j^k^l^m^n^o^p^q^r^s^t^u^u%;.5 v^w^x^y^z^A^B^C^D^E^F^G^H^I^J^K^|( 1(2(3(4(5(6(7(8(9(0(a(b(6(c(c(d(e(f(g(k k ;. ", " h(i(j(k(l(m(n(o(p(q(r(s(t(u( l/m/n/o/p/q/r/s/u%;.5 t/u/v/w/x/y/z/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/ 2 e^f^g^h^i^j^k^l^m^n^o^p^q^r^s^t^u^u%5 5 v^w^x^y^z^A^B^C^D^E^F^G^H^I^J^K^v( ;.w(w(x(y(z(A(B(B(C(D(y(E(F(F(A(G(+]+];.;. ", " H(I(J(K(L(M(N(O(P(Q(R( l/m/n/o/p/q/r/s/u%;.5 t/u/v/w/x/y/z/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/ ", " S(T(U(V(W(X( l/m/n/o/p/q/r/s/u%5 5 t/u/v/w/x/y/z/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/ ", " ", " l Y(Z(`( _._+_@_#_$_%_&_*_=_-_;_>_,_u%u%u%'_)_!_~_{_]_^_/_(___:_<_[_}_|_1_2_ ", " l Y(Z(`( _._+_@_#_$_%_&_*_=_-_;_>_,_u%;.5 '_)_!_~_{_]_^_/_(___:_<_[_}_|_1_2_ ", " l Y(Z(`( _._+_@_#_$_%_&_*_=_-_;_>_,_u%;.5 '_)_!_~_{_]_^_/_(___:_<_[_}_|_1_2_ ", " l Y(Z(`( _._+_@_#_$_%_&_*_=_-_;_>_,_u%;.5 '_)_!_~_{_]_^_/_(___:_<_[_}_|_1_2_ ", " l Y(Z(`( _._+_@_#_$_%_&_*_=_-_;_>_,_u%5 5 '_)_!_~_{_]_^_/_(___:_<_[_}_|_1_2_ ", " ", " ", " ", " ", " ", " 3_3_3_3_3_ k k k k k k k k ", " 3_3_3_3_3_ k k k k k k k 4_5_5_6_6_6_6_6_6_6_7_7_8_7_7_7_8_7_7_7_9_9_9_9_0_0_0_0_a_0_0_b_ ", "3_c_d_e_f_g_h_i_j_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z_A_B_C_D_E_F_G_H_I_J_u%u%u% K_L_M_M_M_N_M_N_O_O_P_Q_O_O_O_O_O_O_R_R_S_R_S_T_T_U_U_U_V_V_V_W_ ", "3_c_d_e_f_g_h_i_j_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z_A_B_C_D_E_F_G_H_I_J_u%;.5 X_X_X_X_X_ k k k k k k k k k k k k k Y_Z_`_ :.:+:@:#:$:@:%:&:%:*:*:=:-:;:>:,:':):!:~:{:]:^:/:(:(:(:_: ", "3_c_d_e_f_g_h_i_j_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z_A_B_C_D_E_F_G_H_I_J_u%;.+> X_X_X_X_X_ k k k k k k k k k k k ::<:[:}:|:1:2:2:2:2:2:3:4:5:6:7:8:9:0:a:b:c:d:e:8:f:g:g:g:g:h:i: ", "3_c_d_e_f_g_h_i_j_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z_A_B_C_D_E_F_G_H_I_J_u%j:, k:l:m:m:n:o:p:p:p:p:q:r:r:s:m:t:u:v:w:x:y:z:A:B:C:D:q:E:E:E:F:G: ", "3_c_d_e_f_g_h_i_j_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z_A_B_C_D_E_F_G_H_I_J_u%+>+> H:H:H:H:H: k k k k k k k k I:J:K:L:L:L:L:L:L:M:N:O:O:P:Q:R:S:T:U:V:W:X:Y:Z:`: <.<+<+<+<@<#< ", " H:H:H:H:H: k k k k k k k $<%<&<&<&<*<=<-<-<;<><,<,<'<)[,['[)[![~[{[{[{[][^[ ", "2 2<3<4<5<6<7<8<9<0},}'})}!}~}{}]}]}]}]}]}*}^}/}(}_}:}<}[}}}}}}}|}1}2}3} ", "k 0{4}5}6}7}8}9}0}a}b}c}d}e}f}g}h}q{i}s{j}u{k}l}u%u%u%m}n}o}p}q}r}s}t}s}u}v} w}x}y}z}A}B}C}D}E}F}G}H}I}J}K}L}M}N}O}P}Q}R}S}T}U}V}W}V}X}Y}M}Z} ", "k 0{4}5}6}7}8}9}0}a}b}c}d}e}f}g}h}q{i}s{j}u{k}l}u%;.5 m}n}o}p}q}r}s}t}s}u}v} `}`}`}`}`} k k k k k k k k k k k k k |.|+|@|#|$|%|&|*|=|-|;|>|,|'|)|!|~|{|]|^|/|(|_|:|<|[|}|||1|2|3| ", "k 0{4}5}6}7}8}9}0}a}b}c}d}e}f}g}h}q{i}s{j}u{k}l}u%;.5 m}n}o}p}q}r}s}D{4|u}v} `}`}`}`}`} k k k k k k k k k k k 5|6|7|8|9|0|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z| ", "k 0{4}5}6}7}8}9}0}a}b}c}d}e}f}g}h}q{i}s{j}u{k}l}u%;.5 m}n}o}p}q}r}s}D{4|t}A| B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|`| 1.1+1@1#1$1 ", "k 0{4}5}6}7}8}9}0}a}b}c}d}e}f}g}h}q{i}s{j}u{k}l}u%5 5 m}n}o}p}q}r}s}D{4|%1v} &1&1&1&1&1 k k k k k k k k k k k k k k k *1=1-1;1>1,1'1)1!1~1{1]1^1/1(1_1:1<1[1}1|111213141516171819101a1 ", " &1&1&1&1&1 k k k k k k k k k k b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1A1B1C1D1E1F1G1 ", " ", " ", " ", " H1I1J1K1L1M1N1u%<&<=O1P1Q14.R1J+S1S1T1U1 H1I1J1K1L1M1N1u%<&<=O1P1Q14.R1J+S1S1T1U1 ", " V1W1X1Y1Z1`1 2V .2+2&=@2E#2.8@2 #2$2%2U1k V1W1X1Y1Z1`1 2V .2+2&=@2E#2.8@2 #2$2%2U1k ", " V1&2*2=2-2;2>2,28.&='2.%R&9$2 2 )2$2!2~2k ;. V1&2*2=2-2;2>2,28.&='2.%R&9$2 2 )2$2!2~2k ;. ", " V1{2]2^2/2(2_2,2+2'2:2#.N+9$2 2 <2$2[2}2k ;. V1{2]2^2/2(2_2,2+2'2:2#.N+9$2 2 <2$2[2}2k ;. ", " V1|2122232425262&=:2z#@.D#O+2 2 72$28282k ;. V1|2122232425262&=:2z#@.D#O+2 2 72$28282k ;. ", " 9202a2b2c2d2e2f2'2z#8@5-+%g2Q12 h2$2~2$2i2;. 9202a2b2c2d2e2f2'2z#8@5-+%g2Q12 h2$2~2$2i2;. ", " 92j2k2l2m2n2o2p2q2r22 s2s2s2s2s2Q&t2}2u2v2;. 92j2k2l2m2n2o2p2q2r2w2x2y2z2A2B2C2t2}2u2v2;. ", " D2E2F2G2H2I2J2K2L2M2d3d<3.3.3.3.3.M+S2,3'3U2;. @3#3$3%3&3*3=3-3;3>3e2)3!3~3{3]3^3/3(3'3U2;. ", " _3:3<3[3k k k k k k }3s2s2s2s2s23.k |313U2;. _3:3<3[3k k k k k k k k k k k k k k 2313U2;. ", " V1334353<= %<=63O1V d<73839303a3M+e2b323U2;. V1334353<= %<=63O1V c38@d362f2z#`$e3f323U2;. ", " g3h3i3j3k3 %<=63O1V d<3.3.3.3.3.M+e2l3m3U2;. g3h3i3j3k3 %<=63O1V c34.n34-o3p3T=q3r3m3U2;. ", " s3t3u3v3<& % %6363V }3s2s2s2s2s23.e2w3x3U2;. s3t3u3v3<& % %6363V y34 4 z3Q1#*4.A3B3x3U2;. ", " C3D3E3F3z#9@s G3Z R1d #include #include "wtableview.h" #include "wtabledelegates.h" typedef struct { WMTableView *table; WMFont *font; GC gc; GC selGC; WMColor *textColor; } StringData; typedef struct { WMTableView *table; GC selGc; } PixmapData; typedef struct { WMTextField *widget; WMTableView *table; WMFont *font; GC gc; GC selGC; WMColor *textColor; } StringEditorData; typedef struct { WMPopUpButton *widget; WMTableView *table; WMFont *font; char **options; int count; GC gc; GC selGC; WMColor *textColor; } EnumSelectorData; typedef struct { WMButton *widget; WMTableView *table; Bool state; GC gc; GC selGC; } BooleanSwitchData; static char *SelectionColor = "#bbbbcc"; static void stringDraw(WMScreen * scr, Drawable d, GC gc, GC sgc, WMColor * textColor, WMFont * font, void *data, WMRect rect, Bool selected) { int x, y; XRectangle rects[1]; Display *dpy = WMScreenDisplay(scr); x = rect.pos.x + 5; y = rect.pos.y + (rect.size.height - WMFontHeight(font)) / 2; rects[0].x = rect.pos.x + 1; rects[0].y = rect.pos.y + 1; rects[0].width = rect.size.width - 1; rects[0].height = rect.size.height - 1; XSetClipRectangles(dpy, gc, 0, 0, rects, 1, YXSorted); if (!selected) { XFillRectangles(dpy, d, gc, rects, 1); WMDrawString(scr, d, textColor, font, x, y, data, strlen(data)); } else { XFillRectangles(dpy, d, sgc, rects, 1); WMDrawString(scr, d, textColor, font, x, y, data, strlen(data)); } XSetClipMask(dpy, gc, None); } static void pixmapDraw(WMScreen * scr, Drawable d, GC gc, GC sgc, WMPixmap * pixmap, WMRect rect, Bool selected) { int x, y; XRectangle rects[1]; Display *dpy = WMScreenDisplay(scr); WMSize size; rects[0].x = rect.pos.x + 1; rects[0].y = rect.pos.y + 1; rects[0].width = rect.size.width - 1; rects[0].height = rect.size.height - 1; XSetClipRectangles(dpy, gc, 0, 0, rects, 1, YXSorted); if (!selected) { XFillRectangles(dpy, d, gc, rects, 1); if (pixmap) { size = WMGetPixmapSize(pixmap); x = rect.pos.x + (rect.size.width - size.width) / 2; y = rect.pos.y + (rect.size.height - size.height) / 2; WMDrawPixmap(pixmap, d, x, y); } } else { XFillRectangles(dpy, d, sgc, rects, 1); if (pixmap) { size = WMGetPixmapSize(pixmap); x = rect.pos.x + (rect.size.width - size.width) / 2; y = rect.pos.y + (rect.size.height - size.height) / 2; WMDrawPixmap(pixmap, d, x, y); } } XSetClipMask(dpy, gc, None); } /* ---------------------------------------------------------------------- */ static void SECellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d) { StringEditorData *strdata = (StringEditorData *) self->data; WMTableView *table = WMGetTableColumnTableView(column); stringDraw(WMWidgetScreen(table), d, strdata->gc, strdata->selGC, strdata->textColor, strdata->font, WMTableViewDataForCell(table, column, row), WMTableViewRectForCell(table, column, row), False); } static void selectedSECellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d) { StringEditorData *strdata = (StringEditorData *) self->data; WMTableView *table = WMGetTableColumnTableView(column); stringDraw(WMWidgetScreen(table), d, strdata->gc, strdata->selGC, strdata->textColor, strdata->font, WMTableViewDataForCell(table, column, row), WMTableViewRectForCell(table, column, row), True); } static void beginSECellEdit(WMTableColumnDelegate * self, WMTableColumn * column, int row) { StringEditorData *strdata = (StringEditorData *) self->data; WMRect rect = WMTableViewRectForCell(strdata->table, column, row); void *data = WMTableViewDataForCell(strdata->table, column, row); WMSetTextFieldText(strdata->widget, (char *)data); WMMoveWidget(strdata->widget, rect.pos.x, rect.pos.y); WMResizeWidget(strdata->widget, rect.size.width + 1, rect.size.height + 1); WMMapWidget(strdata->widget); } static void endSECellEdit(WMTableColumnDelegate * self, WMTableColumn * column, int row) { StringEditorData *strdata = (StringEditorData *) self->data; char *text; WMUnmapWidget(strdata->widget); text = WMGetTextFieldText(strdata->widget); WMSetTableViewDataForCell(strdata->table, column, row, (void *)text); } WMTableColumnDelegate *WTCreateStringEditorDelegate(WMTableView * parent) { WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate)); WMScreen *scr = WMWidgetScreen(parent); StringEditorData *data = wmalloc(sizeof(StringEditorData)); data->widget = WMCreateTextField(parent); W_ReparentView(WMWidgetView(data->widget), WMGetTableViewDocumentView(parent), 0, 0); data->table = parent; data->font = WMSystemFontOfSize(scr, 12); data->gc = WMColorGC(WMWhiteColor(scr)); data->selGC = WMColorGC(WMCreateNamedColor(scr, SelectionColor, False)); data->textColor = WMBlackColor(scr); delegate->data = data; delegate->drawCell = SECellPainter; delegate->drawSelectedCell = selectedSECellPainter; delegate->beginCellEdit = beginSECellEdit; delegate->endCellEdit = endSECellEdit; return delegate; } /* ---------------------------------------------------------------------- */ static void ESCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d) { EnumSelectorData *strdata = (EnumSelectorData *) self->data; WMTableView *table = WMGetTableColumnTableView(column); uintptr_t i = (uintptr_t)WMTableViewDataForCell(table, column, row); stringDraw(WMWidgetScreen(table), d, strdata->gc, strdata->selGC, strdata->textColor, strdata->font, strdata->options[i], WMTableViewRectForCell(table, column, row), False); } static void selectedESCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d) { EnumSelectorData *strdata = (EnumSelectorData *) self->data; WMTableView *table = WMGetTableColumnTableView(column); uintptr_t i = (uintptr_t)WMTableViewDataForCell(table, column, row); stringDraw(WMWidgetScreen(table), d, strdata->gc, strdata->selGC, strdata->textColor, strdata->font, strdata->options[i], WMTableViewRectForCell(table, column, row), True); } static void beginESCellEdit(WMTableColumnDelegate * self, WMTableColumn * column, int row) { EnumSelectorData *strdata = (EnumSelectorData *) self->data; WMRect rect = WMTableViewRectForCell(strdata->table, column, row); uintptr_t data = (uintptr_t)WMTableViewDataForCell(strdata->table, column, row); wassertr(data < strdata->count); WMSetPopUpButtonSelectedItem(strdata->widget, data); WMMoveWidget(strdata->widget, rect.pos.x, rect.pos.y); WMResizeWidget(strdata->widget, rect.size.width, rect.size.height + 1); WMMapWidget(strdata->widget); } static void endESCellEdit(WMTableColumnDelegate * self, WMTableColumn * column, int row) { EnumSelectorData *strdata = (EnumSelectorData *) self->data; int option; WMUnmapWidget(strdata->widget); option = WMGetPopUpButtonSelectedItem(strdata->widget); WMSetTableViewDataForCell(strdata->table, column, row, (void *)(uintptr_t) option); } WMTableColumnDelegate *WTCreateEnumSelectorDelegate(WMTableView * parent) { WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate)); WMScreen *scr = WMWidgetScreen(parent); EnumSelectorData *data = wmalloc(sizeof(EnumSelectorData)); data->widget = WMCreatePopUpButton(parent); W_ReparentView(WMWidgetView(data->widget), WMGetTableViewDocumentView(parent), 0, 0); data->table = parent; data->font = WMSystemFontOfSize(scr, 12); data->gc = WMColorGC(WMWhiteColor(scr)); data->selGC = WMColorGC(WMCreateNamedColor(scr, SelectionColor, False)); data->textColor = WMBlackColor(scr); data->count = 0; data->options = NULL; delegate->data = data; delegate->drawCell = ESCellPainter; delegate->drawSelectedCell = selectedESCellPainter; delegate->beginCellEdit = beginESCellEdit; delegate->endCellEdit = endESCellEdit; return delegate; } void WTSetEnumSelectorOptions(WMTableColumnDelegate * delegate, char **options, int count) { EnumSelectorData *data = (EnumSelectorData *) delegate->data; int i; for (i = 0; i < WMGetPopUpButtonNumberOfItems(data->widget); i++) { WMRemovePopUpButtonItem(data->widget, 0); } data->options = options; data->count = count; for (i = 0; i < count; i++) { WMAddPopUpButtonItem(data->widget, options[i]); } } /* ---------------------------------------------------------------------- */ static void BSCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d) { BooleanSwitchData *strdata = (BooleanSwitchData *) self->data; WMTableView *table = WMGetTableColumnTableView(column); uintptr_t i = (uintptr_t)WMTableViewDataForCell(table, column, row); WMScreen *scr = WMWidgetScreen(table); if (i) { pixmapDraw(scr, d, strdata->gc, strdata->selGC, WMGetSystemPixmap(scr, WSICheckMark), WMTableViewRectForCell(table, column, row), False); } else { pixmapDraw(scr, d, strdata->gc, strdata->selGC, NULL, WMTableViewRectForCell(table, column, row), False); } } static void selectedBSCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d) { BooleanSwitchData *strdata = (BooleanSwitchData *) self->data; WMTableView *table = WMGetTableColumnTableView(column); uintptr_t i = (uintptr_t)WMTableViewDataForCell(table, column, row); WMScreen *scr = WMWidgetScreen(table); if (i) { pixmapDraw(scr, d, strdata->gc, strdata->selGC, WMGetSystemPixmap(scr, WSICheckMark), WMTableViewRectForCell(table, column, row), True); } else { pixmapDraw(scr, d, strdata->gc, strdata->selGC, NULL, WMTableViewRectForCell(table, column, row), True); } } static void beginBSCellEdit(WMTableColumnDelegate * self, WMTableColumn * column, int row) { BooleanSwitchData *strdata = (BooleanSwitchData *) self->data; WMRect rect = WMTableViewRectForCell(strdata->table, column, row); uintptr_t data = (uintptr_t)WMTableViewDataForCell(strdata->table, column, row); WMSetButtonSelected(strdata->widget, data); WMMoveWidget(strdata->widget, rect.pos.x + 1, rect.pos.y + 1); WMResizeWidget(strdata->widget, rect.size.width - 1, rect.size.height - 1); WMMapWidget(strdata->widget); } static void endBSCellEdit(WMTableColumnDelegate * self, WMTableColumn * column, int row) { BooleanSwitchData *strdata = (BooleanSwitchData *) self->data; int value; value = WMGetButtonSelected(strdata->widget); WMSetTableViewDataForCell(strdata->table, column, row, (void *)(uintptr_t) value); WMUnmapWidget(strdata->widget); } WMTableColumnDelegate *WTCreateBooleanSwitchDelegate(WMTableView * parent) { WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate)); WMScreen *scr = WMWidgetScreen(parent); BooleanSwitchData *data = wmalloc(sizeof(BooleanSwitchData)); WMColor *color; data->widget = WMCreateSwitchButton(parent); W_ReparentView(WMWidgetView(data->widget), WMGetTableViewDocumentView(parent), 0, 0); WMSetButtonText(data->widget, NULL); WMSetButtonImagePosition(data->widget, WIPImageOnly); WMSetButtonImage(data->widget, NULL); WMSetButtonAltImage(data->widget, WMGetSystemPixmap(scr, WSICheckMark)); data->table = parent; color = WMCreateNamedColor(scr, SelectionColor, False); WMSetWidgetBackgroundColor(data->widget, color); data->gc = WMColorGC(WMWhiteColor(scr)); data->selGC = WMColorGC(color); delegate->data = data; delegate->drawCell = BSCellPainter; delegate->drawSelectedCell = selectedBSCellPainter; delegate->beginCellEdit = beginBSCellEdit; delegate->endCellEdit = endBSCellEdit; return delegate; } /* ---------------------------------------------------------------------- */ static void SCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d) { StringData *strdata = (StringData *) self->data; WMTableView *table = WMGetTableColumnTableView(column); stringDraw(WMWidgetScreen(table), d, strdata->gc, strdata->selGC, strdata->textColor, strdata->font, WMTableViewDataForCell(table, column, row), WMTableViewRectForCell(table, column, row), False); } static void selectedSCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d) { StringData *strdata = (StringData *) self->data; WMTableView *table = WMGetTableColumnTableView(column); stringDraw(WMWidgetScreen(table), d, strdata->gc, strdata->selGC, strdata->textColor, strdata->font, WMTableViewDataForCell(table, column, row), WMTableViewRectForCell(table, column, row), True); } WMTableColumnDelegate *WTCreateStringDelegate(WMTableView * parent) { WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate)); WMScreen *scr = WMWidgetScreen(parent); StringData *data = wmalloc(sizeof(StringData)); data->table = parent; data->font = WMSystemFontOfSize(scr, 12); data->gc = WMColorGC(WMWhiteColor(scr)); data->selGC = WMColorGC(WMCreateNamedColor(scr, SelectionColor, False)); data->textColor = WMBlackColor(scr); delegate->data = data; delegate->drawCell = SCellPainter; delegate->drawSelectedCell = selectedSCellPainter; delegate->beginCellEdit = NULL; delegate->endCellEdit = NULL; return delegate; } /* ---------------------------------------------------------------------- */ static void PCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d) { StringData *strdata = (StringData *) self->data; WMTableView *table = WMGetTableColumnTableView(column); pixmapDraw(WMWidgetScreen(table), d, strdata->gc, strdata->selGC, (WMPixmap *) WMTableViewDataForCell(table, column, row), WMTableViewRectForCell(table, column, row), False); } static void selectedPCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d) { StringData *strdata = (StringData *) self->data; WMTableView *table = WMGetTableColumnTableView(column); pixmapDraw(WMWidgetScreen(table), d, strdata->gc, strdata->selGC, (WMPixmap *) WMTableViewDataForCell(table, column, row), WMTableViewRectForCell(table, column, row), True); } WMTableColumnDelegate *WTCreatePixmapDelegate(WMTableView * table) { WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate)); WMScreen *scr = WMWidgetScreen(table); StringData *data = wmalloc(sizeof(StringData)); data->table = table; data->gc = WMColorGC(WMWhiteColor(scr)); data->selGC = WMColorGC(WMCreateNamedColor(scr, SelectionColor, False)); delegate->data = data; delegate->drawCell = PCellPainter; delegate->drawSelectedCell = selectedPCellPainter; delegate->beginCellEdit = NULL; delegate->endCellEdit = NULL; return delegate; } /* ---------------------------------------------------------------------- */ static void drawPSCell(WMTableColumnDelegate * self, Drawable d, WMTableColumn * column, int row, Bool selected) { StringData *strdata = (StringData *) self->data; WMTableView *table = WMGetTableColumnTableView(column); void **data; WMPixmap *pix; char *str; WMRect rect; WMSize size; data = WMTableViewDataForCell(table, column, row); str = (char *)data[0]; pix = (WMPixmap *) data[1]; rect = WMTableViewRectForCell(table, column, row); if (pix) { int owidth = rect.size.width; size = WMGetPixmapSize(pix); rect.size.width = size.width; pixmapDraw(WMWidgetScreen(table), WMViewXID(WMGetTableViewDocumentView(table)), strdata->gc, strdata->selGC, pix, rect, selected); rect.pos.x += size.width - 1; rect.size.width = owidth - size.width + 1; } stringDraw(WMWidgetScreen(table), d, strdata->gc, strdata->selGC, strdata->textColor, strdata->font, str, rect, selected); } static void PSCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d) { drawPSCell(self, d, column, row, False); } static void selectedPSCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d) { drawPSCell(self, d, column, row, True); } WMTableColumnDelegate *WTCreatePixmapStringDelegate(WMTableView * parent) { WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate)); WMScreen *scr = WMWidgetScreen(parent); StringData *data = wmalloc(sizeof(StringData)); data->table = parent; data->font = WMSystemFontOfSize(scr, 12); data->gc = WMColorGC(WMWhiteColor(scr)); data->selGC = WMColorGC(WMCreateNamedColor(scr, SelectionColor, False)); data->textColor = WMBlackColor(scr); delegate->data = data; delegate->drawCell = PSCellPainter; delegate->drawSelectedCell = selectedPSCellPainter; delegate->beginCellEdit = NULL; delegate->endCellEdit = NULL; return delegate; } WindowMaker-0.95.5/WINGs/Extras/Makefile.am0000644000175000017500000000124312214432632015212 00000000000000## automake input file for WINGs AUTOMAKE_OPTIONS = # is this a kluge? if so, how should i do it? includedir = @includedir@/WINGs include_HEADERS = wtableview.h wtabledelegates.h lib_LTLIBRARIES = libExtraWINGs.la noinst_PROGRAMS = test EXTRA_DIST = libExtraWINGs_la_SOURCES = \ wtableview.c \ wtabledelegates.c \ wtableview.h \ wtabledelegates.h AM_CPPFLAGS = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs \ -DRESOURCE_PATH=\"$(datadir)/WINGs\" @HEADER_SEARCH_PATH@ LDADD= $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la \ @XFTLIBS@ @INTLIBS@ test_LDADD = wtableview.o wtabledelegates.o $(LDADD) WindowMaker-0.95.5/WINGs/Extras/wtabledelegates.h0000644000175000017500000000127612214432632016471 00000000000000 #ifndef _TABLEDELEGATES_H_ #define _TABLEDELEGATES_H_ #ifdef __cplusplus extern "C" { #endif WMTableColumnDelegate *WTCreatePixmapDelegate(WMTableView *table); WMTableColumnDelegate *WTCreateStringDelegate(WMTableView *table); WMTableColumnDelegate *WTCreatePixmapStringDelegate(WMTableView *parent); WMTableColumnDelegate *WTCreateStringEditorDelegate(WMTableView *table); WMTableColumnDelegate *WTCreateEnumSelectorDelegate(WMTableView *table); void WTSetEnumSelectorOptions(WMTableColumnDelegate *delegate, char **options, int count); WMTableColumnDelegate *WTCreateBooleanSwitchDelegate(WMTableView *parent); #ifdef __cplusplus } #endif #endif WindowMaker-0.95.5/WINGs/Extras/wtableview.c0000644000175000017500000007017712214432632015507 00000000000000 #include #include #include #include "wtableview.h" const char *WMTableViewSelectionDidChangeNotification = "WMTableViewSelectionDidChangeNotification"; struct W_TableColumn { WMTableView *table; WMWidget *titleW; char *title; int width; int minWidth; int maxWidth; void *id; WMTableColumnDelegate *delegate; unsigned resizable:1; unsigned editable:1; }; static void handleResize(W_ViewDelegate * self, WMView * view); static void rearrangeHeader(WMTableView * table); static WMRange rowsInRect(WMTableView * table, WMRect rect); WMTableColumn *WMCreateTableColumn(char *title) { WMTableColumn *col = wmalloc(sizeof(WMTableColumn)); col->table = NULL; col->titleW = NULL; col->width = 50; col->minWidth = 5; col->maxWidth = 0; col->id = NULL; col->title = wstrdup(title); col->delegate = NULL; col->resizable = 1; col->editable = 0; return col; } void WMSetTableColumnId(WMTableColumn * column, void *id) { column->id = id; } void *WMGetTableColumnId(WMTableColumn * column) { return column->id; } void WMSetTableColumnWidth(WMTableColumn * column, unsigned width) { if (column->maxWidth == 0) column->width = WMAX(column->minWidth, width); else column->width = WMAX(column->minWidth, WMIN(column->maxWidth, width)); if (column->table) { rearrangeHeader(column->table); } } void WMSetTableColumnDelegate(WMTableColumn * column, WMTableColumnDelegate * delegate) { column->delegate = delegate; } void WMSetTableColumnConstraints(WMTableColumn * column, unsigned minWidth, unsigned maxWidth) { wassertr(maxWidth == 0 || minWidth <= maxWidth); column->minWidth = minWidth; column->maxWidth = maxWidth; if (column->width < column->minWidth) WMSetTableColumnWidth(column, column->minWidth); else if (column->width > column->maxWidth && column->maxWidth != 0) WMSetTableColumnWidth(column, column->maxWidth); } void WMSetTableColumnEditable(WMTableColumn * column, Bool flag) { column->editable = ((flag == 0) ? 0 : 1); } WMTableView *WMGetTableColumnTableView(WMTableColumn * column) { return column->table; } struct W_TableView { W_Class widgetClass; WMView *view; WMFrame *header; WMLabel *corner; WMScroller *hscroll; WMScroller *vscroll; WMView *tableView; WMPixmap *viewBuffer; WMArray *columns; WMArray *splitters; WMArray *selectedRows; int tableWidth; int rows; WMColor *backColor; GC gridGC; WMColor *gridColor; Cursor splitterCursor; void *dataSource; WMTableViewDelegate *delegate; WMAction *action; void *clientData; void *clickedColumn; int clickedRow; int editingRow; unsigned headerHeight; unsigned rowHeight; unsigned dragging:1; unsigned drawsGrid:1; unsigned canSelectRow:1; unsigned canSelectMultiRows:1; unsigned canDeselectRow:1; unsigned int hasVScroller:1; unsigned int hasHScroller:1; }; static W_Class tableClass = 0; static W_ViewDelegate viewDelegate = { NULL, NULL, handleResize, NULL, NULL }; static void reorganizeInterior(WMTableView * table); static void handleEvents(XEvent * event, void *data); static void handleTableEvents(XEvent * event, void *data); static void repaintTable(WMTableView * table); static WMSize getTotalSize(WMTableView * table) { WMSize size; int i; /* get width from columns */ size.width = 0; for (i = 0; i < WMGetArrayItemCount(table->columns); i++) { WMTableColumn *column; column = WMGetFromArray(table->columns, i); size.width += column->width; } /* get height from rows */ size.height = table->rows * table->rowHeight; return size; } static WMRect getVisibleRect(WMTableView * table) { WMSize size = getTotalSize(table); WMRect rect; if (table->vscroll) { rect.size.height = size.height * WMGetScrollerKnobProportion(table->vscroll); rect.pos.y = (size.height - rect.size.height) * WMGetScrollerValue(table->vscroll); } else { rect.size.height = size.height; rect.pos.y = 0; } if (table->hscroll) { rect.size.width = size.width * WMGetScrollerKnobProportion(table->hscroll); rect.pos.x = (size.width - rect.size.width) * WMGetScrollerValue(table->hscroll); } else { rect.size.width = size.width; rect.pos.x = 0; } return rect; } static void scrollToPoint(WMTableView * table, int x, int y) { WMSize size = getTotalSize(table); int i; float value, prop; if (table->hscroll) { if (size.width > W_VIEW_WIDTH(table->tableView)) { prop = (float)W_VIEW_WIDTH(table->tableView) / (float)size.width; value = (float)x / (float)(size.width - W_VIEW_WIDTH(table->tableView)); } else { prop = 1.0; value = 0.0; } WMSetScrollerParameters(table->hscroll, value, prop); } if (table->vscroll) { if (size.height > W_VIEW_HEIGHT(table->tableView)) { prop = (float)W_VIEW_HEIGHT(table->tableView) / (float)size.height; value = (float)y / (float)(size.height - W_VIEW_HEIGHT(table->tableView)); } else { prop = 1.0; value = 0.0; } WMSetScrollerParameters(table->vscroll, value, prop); } if (table->editingRow >= 0) { for (i = 0; i < WMGetArrayItemCount(table->columns); i++) { WMTableColumn *column; column = WMGetFromArray(table->columns, i); if (column->delegate && column->delegate->beginCellEdit) (*column->delegate->beginCellEdit) (column->delegate, column, table->editingRow); } } repaintTable(table); } static void adjustScrollers(WMTableView * table) { WMSize size = getTotalSize(table); WMSize vsize = WMGetViewSize(table->tableView); float prop, value; float oprop, ovalue; if (table->hscroll) { if (size.width <= vsize.width) { value = 0.0; prop = 1.0; } else { oprop = WMGetScrollerKnobProportion(table->hscroll); if (oprop == 0.0) oprop = 1.0; ovalue = WMGetScrollerValue(table->hscroll); prop = (float)vsize.width / (float)size.width; value = prop * ovalue / oprop; } WMSetScrollerParameters(table->hscroll, value, prop); } if (table->vscroll) { if (size.height <= vsize.height) { value = 0.0; prop = 1.0; } else { oprop = WMGetScrollerKnobProportion(table->vscroll); if (oprop == 0.0) oprop = 1.0; ovalue = WMGetScrollerValue(table->vscroll); prop = (float)vsize.height / (float)size.height; value = prop * ovalue / oprop; } WMSetScrollerParameters(table->vscroll, value, prop); } } static void doScroll(WMWidget * self, void *data) { WMTableView *table = (WMTableView *) data; float value; float vpsize; float size; WMSize ts = getTotalSize(table); value = WMGetScrollerValue(self); if (table->hscroll == (WMScroller *) self) { vpsize = W_VIEW_WIDTH(table->tableView); size = ts.width; } else { vpsize = W_VIEW_HEIGHT(table->tableView); size = ts.height; } switch (WMGetScrollerHitPart(self)) { case WSDecrementWheel: case WSDecrementLine: value -= (float)table->rowHeight / size; if (value < 0) value = 0.0; WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self)); repaintTable(table); break; case WSIncrementWheel: case WSIncrementLine: value += (float)table->rowHeight / size; if (value > 1.0) value = 1.0; WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self)); repaintTable(table); break; case WSKnob: repaintTable(table); break; case WSDecrementPage: value -= vpsize / size; if (value < 0.0) value = 0.0; WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self)); repaintTable(table); break; case WSIncrementPage: value += vpsize / size; if (value > 1.0) value = 1.0; WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self)); repaintTable(table); break; case WSNoPart: case WSKnobSlot: break; } if (table->editingRow >= 0) { int i; for (i = 0; i < WMGetArrayItemCount(table->columns); i++) { WMTableColumn *column; column = WMGetFromArray(table->columns, i); if (column->delegate && column->delegate->beginCellEdit) (*column->delegate->beginCellEdit) (column->delegate, column, table->editingRow); } } if (table->hscroll == self) { int x = 0; int i; WMRect rect = getVisibleRect(table); for (i = 0; i < WMGetArrayItemCount(table->columns); i++) { WMTableColumn *column; WMView *splitter; column = WMGetFromArray(table->columns, i); WMMoveWidget(column->titleW, x - rect.pos.x, 0); x += W_VIEW_WIDTH(WMWidgetView(column->titleW)) + 1; splitter = WMGetFromArray(table->splitters, i); W_MoveView(splitter, x - rect.pos.x - 1, 0); } } } static void splitterHandler(XEvent * event, void *data) { WMTableColumn *column = (WMTableColumn *) data; WMTableView *table = column->table; int done = 0; int cx, ox, offsX; WMPoint pos; WMScreen *scr = WMWidgetScreen(table); GC gc = scr->ixorGC; Display *dpy = WMScreenDisplay(scr); int h = WMWidgetHeight(table) - 22; Window w = WMViewXID(table->view); pos = WMGetViewPosition(WMWidgetView(column->titleW)); offsX = pos.x + column->width; ox = cx = offsX; XDrawLine(dpy, w, gc, cx + 20, 0, cx + 20, h); while (!done) { XEvent ev; WMMaskEvent(dpy, ButtonMotionMask | ButtonReleaseMask, &ev); switch (ev.type) { case MotionNotify: ox = cx; if (column->width + ev.xmotion.x < column->minWidth) cx = pos.x + column->minWidth; else if (column->maxWidth > 0 && column->width + ev.xmotion.x > column->maxWidth) cx = pos.x + column->maxWidth; else cx = offsX + ev.xmotion.x; XDrawLine(dpy, w, gc, ox + 20, 0, ox + 20, h); XDrawLine(dpy, w, gc, cx + 20, 0, cx + 20, h); break; case ButtonRelease: column->width = cx - pos.x; done = 1; break; } } XDrawLine(dpy, w, gc, cx + 20, 0, cx + 20, h); rearrangeHeader(table); repaintTable(table); } static void realizeTable(void *data, WMNotification * notif) { repaintTable(data); } WMTableView *WMCreateTableView(WMWidget * parent) { WMTableView *table = wmalloc(sizeof(WMTableView)); WMScreen *scr = WMWidgetScreen(parent); memset(table, 0, sizeof(WMTableView)); if (!tableClass) { tableClass = W_RegisterUserWidget(); } table->widgetClass = tableClass; table->view = W_CreateView(W_VIEW(parent)); if (!table->view) goto error; table->view->self = table; table->view->delegate = &viewDelegate; table->headerHeight = 20; table->hscroll = WMCreateScroller(table); WMSetScrollerAction(table->hscroll, doScroll, table); WMMoveWidget(table->hscroll, 1, 2 + table->headerHeight); WMMapWidget(table->hscroll); table->hasHScroller = 1; table->vscroll = WMCreateScroller(table); WMSetScrollerArrowsPosition(table->vscroll, WSAMaxEnd); WMSetScrollerAction(table->vscroll, doScroll, table); WMMoveWidget(table->vscroll, 1, 2 + table->headerHeight); WMMapWidget(table->vscroll); table->hasVScroller = 1; table->header = WMCreateFrame(table); WMMoveWidget(table->header, 22, 2); WMMapWidget(table->header); WMSetFrameRelief(table->header, WRFlat); table->corner = WMCreateLabel(table); WMResizeWidget(table->corner, 20, table->headerHeight); WMMoveWidget(table->corner, 2, 2); WMMapWidget(table->corner); WMSetLabelRelief(table->corner, WRRaised); WMSetWidgetBackgroundColor(table->corner, scr->darkGray); table->tableView = W_CreateView(table->view); if (!table->tableView) goto error; table->tableView->self = table; W_MapView(table->tableView); WMAddNotificationObserver(realizeTable, table, WMViewRealizedNotification, table->tableView); table->tableView->flags.dontCompressExpose = 1; table->gridColor = WMCreateNamedColor(scr, "#cccccc", False); /* table->gridColor = WMGrayColor(scr); */ { XGCValues gcv; table->backColor = WMWhiteColor(scr); gcv.foreground = WMColorPixel(table->gridColor); gcv.dashes = 1; gcv.line_style = LineOnOffDash; table->gridGC = XCreateGC(WMScreenDisplay(scr), W_DRAWABLE(scr), GCForeground, &gcv); } table->editingRow = -1; table->clickedRow = -1; table->drawsGrid = 1; table->rowHeight = 16; table->tableWidth = 1; table->columns = WMCreateArray(4); table->splitters = WMCreateArray(4); table->selectedRows = WMCreateArray(16); table->splitterCursor = XCreateFontCursor(WMScreenDisplay(scr), XC_sb_h_double_arrow); table->canSelectRow = 1; WMCreateEventHandler(table->view, ExposureMask | StructureNotifyMask, handleEvents, table); WMCreateEventHandler(table->tableView, ExposureMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask, handleTableEvents, table); WMResizeWidget(table, 50, 50); return table; error: if (table->tableView) W_DestroyView(table->tableView); if (table->view) W_DestroyView(table->view); wfree(table); return NULL; } void WMAddTableViewColumn(WMTableView * table, WMTableColumn * column) { WMScreen *scr = WMWidgetScreen(table); column->table = table; WMAddToArray(table->columns, column); if (!column->titleW) { column->titleW = WMCreateLabel(table); WMSetLabelRelief(column->titleW, WRRaised); WMSetLabelFont(column->titleW, scr->boldFont); WMSetLabelTextColor(column->titleW, scr->white); WMSetWidgetBackgroundColor(column->titleW, scr->darkGray); WMSetLabelText(column->titleW, column->title); W_ReparentView(WMWidgetView(column->titleW), WMWidgetView(table->header), 0, 0); if (W_VIEW_REALIZED(table->view)) WMRealizeWidget(column->titleW); WMMapWidget(column->titleW); } { WMView *splitter = W_CreateView(WMWidgetView(table->header)); W_SetViewBackgroundColor(splitter, WMWhiteColor(scr)); if (W_VIEW_REALIZED(table->view)) W_RealizeView(splitter); W_ResizeView(splitter, 2, table->headerHeight); W_MapView(splitter); W_SetViewCursor(splitter, table->splitterCursor); WMCreateEventHandler(splitter, ButtonPressMask | ButtonReleaseMask, splitterHandler, column); WMAddToArray(table->splitters, splitter); } rearrangeHeader(table); } void WMSetTableViewHeaderHeight(WMTableView * table, unsigned height) { table->headerHeight = height; handleResize(NULL, table->view); } void WMSetTableViewDelegate(WMTableView * table, WMTableViewDelegate * delegate) { table->delegate = delegate; } void WMSetTableViewAction(WMTableView * table, WMAction * action, void *clientData) { table->action = action; table->clientData = clientData; } void *WMGetTableViewClickedColumn(WMTableView * table) { return table->clickedColumn; } int WMGetTableViewClickedRow(WMTableView * table) { return table->clickedRow; } WMArray *WMGetTableViewSelectedRows(WMTableView * table) { return table->selectedRows; } WMView *WMGetTableViewDocumentView(WMTableView * table) { return table->tableView; } void *WMTableViewDataForCell(WMTableView * table, WMTableColumn * column, int row) { return (*table->delegate->valueForCell) (table->delegate, column, row); } void WMSetTableViewDataForCell(WMTableView * table, WMTableColumn * column, int row, void *data) { (*table->delegate->setValueForCell) (table->delegate, column, row, data); } WMRect WMTableViewRectForCell(WMTableView * table, WMTableColumn * column, int row) { WMRect rect; int i; rect.pos.x = 0; rect.pos.y = row * table->rowHeight; rect.size.height = table->rowHeight; for (i = 0; i < WMGetArrayItemCount(table->columns); i++) { WMTableColumn *col; col = WMGetFromArray(table->columns, i); if (col == column) { rect.size.width = col->width; break; } rect.pos.x += col->width; } { WMRect r = getVisibleRect(table); rect.pos.y -= r.pos.y; rect.pos.x -= r.pos.x; } return rect; } void WMSetTableViewDataSource(WMTableView * table, void *source) { table->dataSource = source; } void *WMGetTableViewDataSource(WMTableView * table) { return table->dataSource; } void WMSetTableViewHasHorizontalScroller(WMTableView * tPtr, Bool flag) { if (flag) { if (tPtr->hasHScroller) return; tPtr->hasHScroller = 1; tPtr->hscroll = WMCreateScroller(tPtr); WMSetScrollerAction(tPtr->hscroll, doScroll, tPtr); WMSetScrollerArrowsPosition(tPtr->hscroll, WSAMaxEnd); /* make it a horiz. scroller */ WMResizeWidget(tPtr->hscroll, 1, 2); if (W_VIEW_REALIZED(tPtr->view)) { WMRealizeWidget(tPtr->hscroll); } reorganizeInterior(tPtr); WMMapWidget(tPtr->hscroll); } else { if (!tPtr->hasHScroller) return; tPtr->hasHScroller = 0; WMUnmapWidget(tPtr->hscroll); WMDestroyWidget(tPtr->hscroll); tPtr->hscroll = NULL; reorganizeInterior(tPtr); } } #if 0 /* not supported by now */ void WMSetTableViewHasVerticalScroller(WMTableView * tPtr, Bool flag) { if (flag) { if (tPtr->hasVScroller) return; tPtr->hasVScroller = 1; tPtr->vscroll = WMCreateScroller(tPtr); WMSetScrollerAction(tPtr->vscroll, doScroll, tPtr); WMSetScrollerArrowsPosition(tPtr->vscroll, WSAMaxEnd); /* make it a vert. scroller */ WMResizeWidget(tPtr->vscroll, 1, 2); if (W_VIEW_REALIZED(tPtr->view)) { WMRealizeWidget(tPtr->vscroll); } reorganizeInterior(tPtr); WMMapWidget(tPtr->vscroll); } else { if (!tPtr->hasVScroller) return; tPtr->hasVScroller = 0; WMUnmapWidget(tPtr->vscroll); WMDestroyWidget(tPtr->vscroll); tPtr->vscroll = NULL; reorganizeInterior(tPtr); } } #endif void WMSetTableViewBackgroundColor(WMTableView * table, WMColor * color) { W_SetViewBackgroundColor(table->tableView, color); if (table->backColor) WMReleaseColor(table->backColor); table->backColor = WMRetainColor(color); repaintTable(table); } void WMSetTableViewGridColor(WMTableView * table, WMColor * color) { WMReleaseColor(table->gridColor); table->gridColor = WMRetainColor(color); XSetForeground(WMScreenDisplay(WMWidgetScreen(table)), table->gridGC, WMColorPixel(color)); repaintTable(table); } void WMSetTableViewRowHeight(WMTableView * table, int height) { table->rowHeight = height; repaintTable(table); } void WMScrollTableViewRowToVisible(WMTableView * table, int row) { WMScroller *scroller; WMRange range; WMRect rect; int newY, tmp; rect = getVisibleRect(table); range = rowsInRect(table, rect); scroller = table->vscroll; if (row < range.position) { newY = row * table->rowHeight - rect.size.height / 2; } else if (row >= range.position + range.count) { newY = row * table->rowHeight - rect.size.height / 2; } else { return; } tmp = table->rows * table->rowHeight - rect.size.height; newY = WMAX(0, WMIN(newY, tmp)); scrollToPoint(table, rect.pos.x, newY); } static void drawGrid(WMTableView * table, WMRect rect) { WMScreen *scr = WMWidgetScreen(table); Display *dpy = WMScreenDisplay(scr); int i; int y1, y2; int x1, x2; int xx; Drawable d = WMGetPixmapXID(table->viewBuffer); GC gc = table->gridGC; #if 0 char dashl[1] = { 1 }; XSetDashes(dpy, gc, 0, dashl, 1); y1 = (rect.pos.y / table->rowHeight - 1) * table->rowHeight; y2 = y1 + (rect.size.height / table->rowHeight + 2) * table->rowHeight; #endif y1 = 0; y2 = W_VIEW_HEIGHT(table->tableView); xx = -rect.pos.x; for (i = 0; i < WMGetArrayItemCount(table->columns); i++) { WMTableColumn *column; XDrawLine(dpy, d, gc, xx, y1, xx, y2); column = WMGetFromArray(table->columns, i); xx += column->width; } XDrawLine(dpy, d, gc, xx, y1, xx, y2); x1 = 0; x2 = rect.size.width; if (x2 <= x1) return; #if 0 XSetDashes(dpy, gc, (rect.pos.x & 1), dashl, 1); #endif y1 = -rect.pos.y % table->rowHeight; y2 = y1 + rect.size.height + table->rowHeight; for (i = y1; i <= y2; i += table->rowHeight) { XDrawLine(dpy, d, gc, x1, i, x2, i); } } static WMRange columnsInRect(WMTableView * table, WMRect rect) { WMTableColumn *column; int pos; int i, found; int totalColumns = WMGetArrayItemCount(table->columns); WMRange range; pos = 0; found = 0; for (i = 0; i < totalColumns; i++) { column = WMGetFromArray(table->columns, i); if (!found) { if (rect.pos.x >= pos && rect.pos.x < pos + column->width) { range.position = i; range.count = 1; found = 1; } } else { if (pos > rect.pos.x + rect.size.width) { break; } range.count++; } pos += column->width; } range.count = WMAX(1, WMIN(range.count, totalColumns - range.position)); return range; } static WMRange rowsInRect(WMTableView * table, WMRect rect) { WMRange range; int rh = table->rowHeight; int dif; dif = rect.pos.y % rh; range.position = WMAX(0, (rect.pos.y - dif) / rh); range.count = WMAX(1, WMIN((rect.size.height + dif) / rh, table->rows)); return range; } static void drawRow(WMTableView * table, int row, WMRect clipRect) { int i; WMRange cols = columnsInRect(table, clipRect); WMTableColumn *column; Drawable d = WMGetPixmapXID(table->viewBuffer); for (i = cols.position; i < cols.position + cols.count; i++) { column = WMGetFromArray(table->columns, i); if (!column->delegate || !column->delegate->drawCell) continue; if (WMFindInArray(table->selectedRows, NULL, (void *)(uintptr_t) row) != WANotFound) (*column->delegate->drawSelectedCell) (column->delegate, column, row, d); else (*column->delegate->drawCell) (column->delegate, column, row, d); } } #if 0 static void drawFullRow(WMTableView * table, int row) { int i; WMTableColumn *column; Drawable d = WMGetPixmapXID(table->viewBuffer); for (i = 0; i < WMGetArrayItemCount(table->columns); i++) { column = WMGetFromArray(table->columns, i); if (!column->delegate || !column->delegate->drawCell) continue; if (WMFindInArray(table->selectedRows, NULL, (void *)row) != WANotFound) (*column->delegate->drawSelectedCell) (column->delegate, column, row, d); else (*column->delegate->drawCell) (column->delegate, column, row, d); } } #endif static void setRowSelected(WMTableView * table, unsigned row, Bool flag) { int repaint = 0; if (WMFindInArray(table->selectedRows, NULL, (void *)(uintptr_t) row) != WANotFound) { if (!flag) { WMRemoveFromArray(table->selectedRows, (void *)(uintptr_t) row); repaint = 1; } } else { if (flag) { WMAddToArray(table->selectedRows, (void *)(uintptr_t) row); repaint = 1; } } if (repaint && row < table->rows) { /*drawFullRow(table, row); */ repaintTable(table); } } static void repaintTable(WMTableView * table) { WMRect rect; WMRange rows; WMScreen *scr = WMWidgetScreen(table); int i; if (!table->delegate || !W_VIEW_REALIZED(table->view)) return; wassertr(table->delegate->numberOfRows); if (!table->viewBuffer) { table->viewBuffer = WMCreatePixmap(scr, W_VIEW_WIDTH(table->tableView), W_VIEW_HEIGHT(table->tableView), WMScreenDepth(scr), 0); } XFillRectangle(scr->display, WMGetPixmapXID(table->viewBuffer), WMColorGC(table->backColor), 0, 0, W_VIEW_WIDTH(table->tableView), W_VIEW_HEIGHT(table->tableView)); rect = getVisibleRect(table); if (table->drawsGrid) { drawGrid(table, rect); } rows = rowsInRect(table, rect); for (i = rows.position; i < WMIN(rows.position + rows.count + 1, table->rows); i++) { drawRow(table, i, rect); } XSetWindowBackgroundPixmap(scr->display, table->tableView->window, WMGetPixmapXID(table->viewBuffer)); XClearWindow(scr->display, table->tableView->window); } static void stopRowEdit(WMTableView * table, int row) { int i; WMTableColumn *column; table->editingRow = -1; for (i = 0; i < WMGetArrayItemCount(table->columns); i++) { column = WMGetFromArray(table->columns, i); if (column->delegate && column->delegate->endCellEdit) (*column->delegate->endCellEdit) (column->delegate, column, row); } } void WMEditTableViewRow(WMTableView * table, int row) { int i; WMTableColumn *column; if (table->editingRow >= 0) { stopRowEdit(table, table->editingRow); } table->editingRow = row; if (row < 0) return; for (i = 0; i < WMGetArrayItemCount(table->columns); i++) { column = WMGetFromArray(table->columns, i); if (column->delegate && column->delegate->beginCellEdit) (*column->delegate->beginCellEdit) (column->delegate, column, row); } } void WMSelectTableViewRow(WMTableView * table, int row) { if (table->clickedRow >= 0) setRowSelected(table, table->clickedRow, False); if (row >= table->rows) { return; } setRowSelected(table, row, True); table->clickedRow = row; if (table->action) (*table->action) (table, table->clientData); WMPostNotificationName(WMTableViewSelectionDidChangeNotification, table, NULL); } void WMReloadTableView(WMTableView * table) { if (table->editingRow >= 0) stopRowEdit(table, table->editingRow); /* when this is called, nothing in the table can be assumed to be * like the last time we accessed it (ie, rows might have disappeared) */ WMEmptyArray(table->selectedRows); if (table->clickedRow >= 0) { if (table->action) (*table->action) (table, table->clientData); WMPostNotificationName(WMTableViewSelectionDidChangeNotification, table, NULL); table->clickedRow = -1; } if (table->delegate && table->delegate->numberOfRows) { int rows; rows = (*table->delegate->numberOfRows) (table->delegate, table); if (rows != table->rows) { table->rows = rows; handleResize(table->view->delegate, table->view); } else { repaintTable(table); } } } void WMNoteTableViewNumberOfRowsChanged(WMTableView * table) { WMReloadTableView(table); } static void handleTableEvents(XEvent * event, void *data) { WMTableView *table = (WMTableView *) data; int row; switch (event->type) { case ButtonPress: if (event->xbutton.button == Button1) { WMRect rect = getVisibleRect(table); row = (event->xbutton.y + rect.pos.y) / table->rowHeight; if (row != table->clickedRow) { setRowSelected(table, table->clickedRow, False); setRowSelected(table, row, True); table->clickedRow = row; table->dragging = 1; } else { table->dragging = 1; } } break; case MotionNotify: if (table->dragging && event->xmotion.y >= 0) { WMRect rect = getVisibleRect(table); row = (event->xmotion.y + rect.pos.y) / table->rowHeight; if (table->clickedRow != row && row >= 0 && row < table->rows) { setRowSelected(table, table->clickedRow, False); setRowSelected(table, row, True); table->clickedRow = row; } } break; case ButtonRelease: if (event->xbutton.button == Button1) { if (table->action) (*table->action) (table, table->clientData); WMPostNotificationName(WMTableViewSelectionDidChangeNotification, table, NULL); table->dragging = 0; } break; } } static void handleEvents(XEvent * event, void *data) { WMTableView *table = (WMTableView *) data; WMScreen *scr = WMWidgetScreen(table); switch (event->type) { case Expose: W_DrawRelief(scr, W_VIEW_DRAWABLE(table->view), 0, 0, W_VIEW_WIDTH(table->view), W_VIEW_HEIGHT(table->view), WRSunken); break; } } static void handleResize(W_ViewDelegate * self, WMView * view) { reorganizeInterior(view->self); } static void reorganizeInterior(WMTableView * table) { int width; int height; WMSize size = getTotalSize(table); WMView *view = table->view; int vw, vh; int hsThickness, vsThickness; if (table->vscroll) vsThickness = WMWidgetWidth(table->vscroll); if (table->hscroll) hsThickness = WMWidgetHeight(table->hscroll); width = W_VIEW_WIDTH(view) - 2; height = W_VIEW_HEIGHT(view) - 3; height -= table->headerHeight; /* table header */ if (table->corner) WMResizeWidget(table->corner, 20, table->headerHeight); WMMoveWidget(table->vscroll, 1, table->headerHeight + 1); WMResizeWidget(table->vscroll, 20, height + 1); if (table->hscroll) { WMMoveWidget(table->hscroll, vsThickness, W_VIEW_HEIGHT(view) - hsThickness - 1); WMResizeWidget(table->hscroll, width - (vsThickness + 1), hsThickness); } if (table->header) WMResizeWidget(table->header, width - (vsThickness + 1), table->headerHeight); if (table->viewBuffer) { WMReleasePixmap(table->viewBuffer); table->viewBuffer = NULL; } width -= vsThickness; height -= hsThickness; vw = WMIN(size.width, width); vh = WMIN(size.height, height); W_MoveView(table->tableView, vsThickness + 1, 1 + table->headerHeight + 1); W_ResizeView(table->tableView, WMAX(vw, 1), WMAX(vh, 1) + 1); adjustScrollers(table); repaintTable(table); } static void rearrangeHeader(WMTableView * table) { int width; int count; int i; /*WMRect rect = WMGetScrollViewVisibleRect(table->scrollView); */ width = 0; count = WMGetArrayItemCount(table->columns); for (i = 0; i < count; i++) { WMTableColumn *column = WMGetFromArray(table->columns, i); WMView *splitter = WMGetFromArray(table->splitters, i); WMMoveWidget(column->titleW, width, 0); WMResizeWidget(column->titleW, column->width - 1, table->headerHeight); width += column->width; W_MoveView(splitter, width - 1, 0); } wassertr(table->delegate && table->delegate->numberOfRows); table->rows = table->delegate->numberOfRows(table->delegate, table); table->tableWidth = width + 1; handleResize(table->view->delegate, table->view); } WindowMaker-0.95.5/WINGs/Extras/.deps/0000755000175000017500000000000012214434624014252 500000000000000WindowMaker-0.95.5/WINGs/Extras/.deps/wtabledelegates.Plo0000644000175000017500000000001012214434624017771 00000000000000# dummy WindowMaker-0.95.5/WINGs/Extras/.deps/wtableview.Plo0000644000175000017500000000001012214434624017006 00000000000000# dummy WindowMaker-0.95.5/WINGs/Extras/.deps/test.Po0000644000175000017500000000001012214434624015440 00000000000000# dummy WindowMaker-0.95.5/WINGs/Extras/wtableview.h0000644000175000017500000000663112214432632015506 00000000000000 #ifndef _WTABLEVIEW_H_ #define _WTABLEVIEW_H_ #ifdef __cplusplus extern "C" { #endif typedef struct W_TableColumn WMTableColumn; typedef struct W_TableView WMTableView; extern const char *WMTableViewSelectionDidChangeNotification; typedef struct WMTableColumnDelegate { void *data; void (*drawCell)(struct WMTableColumnDelegate *self, WMTableColumn *column, int row, Drawable d); void (*drawSelectedCell)(struct WMTableColumnDelegate *self, WMTableColumn *column, int row, Drawable d); void (*beginCellEdit)(struct WMTableColumnDelegate *self, WMTableColumn *column, int row); void (*endCellEdit)(struct WMTableColumnDelegate *self, WMTableColumn *column, int row); } WMTableColumnDelegate; typedef struct W_TableViewDelegate { void *data; int (*numberOfRows)(struct W_TableViewDelegate *self, WMTableView *table); void *(*valueForCell)(struct W_TableViewDelegate *self, WMTableColumn *column, int row); void (*setValueForCell)(struct W_TableViewDelegate *self, WMTableColumn *column, int row, void *value); } WMTableViewDelegate; WMTableColumn *WMCreateTableColumn(char *title); void WMSetTableColumnWidth(WMTableColumn *column, unsigned width); void WMSetTableColumnConstraints(WMTableColumn *column, unsigned minWidth, unsigned maxWidth); void WMSetTableColumnDelegate(WMTableColumn *column, WMTableColumnDelegate *delegate); WMTableView *WMGetTableColumnTableView(WMTableColumn *column); void WMSetTableColumnId(WMTableColumn *column, void *id); void *WMGetTableColumnId(WMTableColumn *column); WMTableView *WMCreateTableView(WMWidget *parent); void WMSetTableViewDataSource(WMTableView *table, void *source); void *WMGetTableViewDataSource(WMTableView *table); void WMSetTableViewHeaderHeight(WMTableView *table, unsigned height); void WMAddTableViewColumn(WMTableView *table, WMTableColumn *column); void WMSetTableViewDelegate(WMTableView *table, WMTableViewDelegate *delegate); void WMSetTableViewAction(WMTableView *table, WMAction *action, void *clientData); void *WMGetTableViewClickedColumn(WMTableView *table); int WMGetTableViewClickedRow(WMTableView *table); WMArray *WMGetTableViewSelectedRows(WMTableView *table); WMView *WMGetTableViewDocumentView(WMTableView *table); void WMEditTableViewRow(WMTableView *table, int row); void WMSelectTableViewRow(WMTableView *table, int row); void *WMTableViewDataForCell(WMTableView *table, WMTableColumn *column, int row); void WMSetTableViewDataForCell(WMTableView *table, WMTableColumn *column, int row, void *data); WMRect WMTableViewRectForCell(WMTableView *table, WMTableColumn *column, int row); void WMSetTableViewBackgroundColor(WMTableView *table, WMColor *color); void WMSetTableViewGridColor(WMTableView *table, WMColor *color); void WMSetTableViewRowHeight(WMTableView *table, int height); void WMReloadTableView(WMTableView *table); void WMNoteTableViewNumberOfRowsChanged(WMTableView *table); void WMScrollTableViewRowToVisible(WMTableView *table, int row); void WMSetTableViewHasHorizontalScroller(WMTableView *tPtr, Bool flag); #ifdef __cplusplus } #endif #endif WindowMaker-0.95.5/WINGs/Extras/test.c0000644000175000017500000000537412214432632014312 00000000000000 #include #include #include #include "wtableview.h" #include "wtabledelegates.h" static char *col1[20] = { 0 }; static int col2[20]; static char *options[] = { "Option1", "Option2", "Option3", "Option4", "Option5" }; int numberOfRows(WMTableViewDelegate * self, WMTableView * table) { return 20; } void *valueForCell(WMTableViewDelegate * self, WMTableColumn * column, int row) { /*WMTableView *table = (WMTableView*)WMGetTableColumnTableView(column); */ int i; if (col1[0] == 0) { for (i = 0; i < 20; i++) { char buf[128]; sprintf(buf, "Test row %i", i); col1[i] = wstrdup(buf); col2[i] = 0; } } if ((uintptr_t)WMGetTableColumnId(column) == 1) return col1[row]; else return (void *)(uintptr_t) col2[row]; } void setValueForCell(WMTableViewDelegate * self, WMTableColumn * column, int row, void *data) { if ((uintptr_t)WMGetTableColumnId(column) == 1) col1[row] = data; else col2[row] = (uintptr_t) data; } static WMTableViewDelegate delegate = { NULL, numberOfRows, valueForCell, setValueForCell }; void clickedTable(WMWidget * w, void *self) { int row = WMGetTableViewClickedRow((WMTableView *) self); WMEditTableViewRow(self, row); } int main(int argc, char **argv) { WMScreen *scr; WMWindow *win; WMTableView *table; WMTableColumn *col; WMTableColumnDelegate *colDeleg; WMInitializeApplication("test", &argc, argv); scr = WMOpenScreen(NULL); XSynchronize(WMScreenDisplay(scr), 1); win = WMCreateWindow(scr, "eweq"); WMResizeWidget(win, 400, 200); WMMapWidget(win); table = WMCreateTableView(win); WMSetTableViewHasHorizontalScroller(table, 0); WMSetViewExpandsToParent(WMWidgetView(table), 10, 10, 10, 10); WMSetTableViewBackgroundColor(table, WMWhiteColor(scr)); /*WMSetTableViewGridColor(table, WMGrayColor(scr)); */ WMSetTableViewHeaderHeight(table, 20); WMSetTableViewDelegate(table, &delegate); WMSetTableViewAction(table, clickedTable, table); colDeleg = WTCreateStringEditorDelegate(table); col = WMCreateTableColumn("Group"); WMSetTableColumnWidth(col, 180); WMAddTableViewColumn(table, col); WMSetTableColumnDelegate(col, colDeleg); WMSetTableColumnId(col, (void *)1); colDeleg = WTCreateEnumSelectorDelegate(table); WTSetEnumSelectorOptions(colDeleg, options, 5); col = WMCreateTableColumn("Package"); WMSetTableColumnWidth(col, 140); WMAddTableViewColumn(table, col); WMSetTableColumnDelegate(col, colDeleg); WMSetTableColumnId(col, (void *)2); colDeleg = WTCreateBooleanSwitchDelegate(table); col = WMCreateTableColumn("Bool"); WMSetTableColumnWidth(col, 50); WMAddTableViewColumn(table, col); WMSetTableColumnDelegate(col, colDeleg); WMSetTableColumnId(col, (void *)2); WMMapWidget(table); WMRealizeWidget(win); WMScreenMainLoop(scr); return 0; } WindowMaker-0.95.5/WINGs/Extras/Makefile0000644000175000017500000004746612214434623014641 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # WINGs/Extras/Makefile. Generated from Makefile.in by configure. # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. pkgdatadir = $(datadir)/WindowMaker pkgincludedir = $(includedir)/WindowMaker pkglibdir = $(libdir)/WindowMaker pkglibexecdir = $(libexecdir)/WindowMaker am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = i686-pc-linux-gnu host_triplet = i686-pc-linux-gnu noinst_PROGRAMS = test$(EXEEXT) subdir = WINGs/Extras DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libExtraWINGs_la_LIBADD = am_libExtraWINGs_la_OBJECTS = wtableview.lo wtabledelegates.lo libExtraWINGs_la_OBJECTS = $(am_libExtraWINGs_la_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent PROGRAMS = $(noinst_PROGRAMS) test_SOURCES = test.c test_OBJECTS = test.$(OBJEXT) am__DEPENDENCIES_1 = $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la test_DEPENDENCIES = wtableview.o wtabledelegates.o \ $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I. -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libExtraWINGs_la_SOURCES) test.c DIST_SOURCES = $(libExtraWINGs_la_SOURCES) test.c HEADERS = $(include_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = ${SHELL} /home/jaqque/wmaker/missing --run aclocal-1.11 AMTAR = ${SHELL} /home/jaqque/wmaker/missing --run tar AM_DEFAULT_VERBOSITY = 1 AR = ar AUTOCONF = ${SHELL} /home/jaqque/wmaker/missing --run autoconf AUTOHEADER = ${SHELL} /home/jaqque/wmaker/missing --run autoheader AUTOMAKE = ${SHELL} /home/jaqque/wmaker/missing --run automake-1.11 AWK = mawk CC = gcc CCDEPMODE = depmode=gcc3 CFLAGS = -g -O2 -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-deprecated -Wno-deprecated-declarations CPP = gcc -E CPPFLAGS = -D_XOPEN_SOURCE=600 CYGPATH_W = echo DEFS = -DHAVE_CONFIG_H DEPDIR = .deps DSYMUTIL = DUMPBIN = ECHO_C = ECHO_N = -n ECHO_T = EGREP = /bin/grep -E EXEEXT = FCLIBS = -lfontconfig FGREP = /bin/grep -F GFXLIBS = GREP = /bin/grep HEADER_SEARCH_PATH = -I${includedir} ICONEXT = xpm INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} INSTALL_STRIP_PROGRAM = $(install_sh) -c -s INTLIBS = LD = /usr/bin/ld LDFLAGS = LIBBSD = LIBM = -lm LIBOBJS = LIBRARY_SEARCH_PATH = -L${libdir} LIBS = LIBTOOL = $(SHELL) $(top_builddir)/libtool LIBXINERAMA = LIBXMU = -lXmu LIBXRANDR = LIPO = LN_S = ln -s LTLIBOBJS = MAKEINFO = ${SHELL} /home/jaqque/wmaker/missing --run makeinfo MKDIR_P = /bin/mkdir -p MOFILES = NLSDIR = $(prefix)/lib/locale NM = /usr/bin/nm -B NMEDIT = OBJDUMP = objdump OBJEXT = o OTOOL = OTOOL64 = PACKAGE = WindowMaker PACKAGE_BUGREPORT = PACKAGE_NAME = WindowMaker PACKAGE_STRING = WindowMaker 0.95.5 PACKAGE_TARNAME = WindowMaker PACKAGE_URL = http://www.windowmaker.org/ PACKAGE_VERSION = 0.95.5 PATH_SEPARATOR = : PKGCONFIG = pkg-config RANLIB = ranlib SED = /bin/sed SET_MAKE = SHELL = /bin/bash STRIP = strip UTILMOFILES = VERSION = 0.95.5 WINGSMOFILES = WINGS_VERSION = 2:1:0 WPMOFILES = WRASTER_VERSION = 4:1:1 WUTIL_VERSION = 3:0:0 XCFLAGS = XFTCONFIG = pkg-config xft XFTFLAGS = -I/usr/include/freetype2 XFTLIBS = -lXft XGETTEXT = XLFLAGS = XLIBS = -lXext -lXext -lX11 XMKMF = X_CFLAGS = X_EXTRA_LIBS = X_LIBRARY_PATH = X_LIBS = X_PRE_LIBS = -lSM -lICE abs_builddir = /home/jaqque/wmaker/WINGs/Extras abs_srcdir = /home/jaqque/wmaker/WINGs/Extras abs_top_builddir = /home/jaqque/wmaker abs_top_srcdir = /home/jaqque/wmaker ac_ct_CC = gcc ac_ct_DUMPBIN = am__include = include am__leading_dot = . am__quote = am__tar = ${AMTAR} chof - "$$tardir" am__untar = ${AMTAR} xf - bindir = ${exec_prefix}/bin build = i686-pc-linux-gnu build_alias = build_cpu = i686 build_os = linux-gnu build_vendor = pc builddir = . datadir = ${datarootdir} datarootdir = ${prefix}/share docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} dvidir = ${docdir} exec_prefix = ${prefix} host = i686-pc-linux-gnu host_alias = host_cpu = i686 host_os = linux-gnu host_vendor = pc htmldir = ${docdir} inc_search_path = -I${includedir} # is this a kluge? if so, how should i do it? includedir = ${prefix}/include/WINGs infodir = ${datarootdir}/info install_sh = ${SHELL} /home/jaqque/wmaker/install-sh lcov_output_directory = lib_search_path = -L${libdir} libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale localstatedir = ${prefix}/var lt_ECHO = echo mandir = ${datarootdir}/man menutextdomain = mkdir_p = /bin/mkdir -p oldincludedir = /usr/include pdfdir = ${docdir} pixmapdir = ${datadir}/pixmaps prefix = /usr/local program_transform_name = s,x,x, psdir = ${docdir} sbindir = ${exec_prefix}/sbin sharedstatedir = ${prefix}/com srcdir = . supported_locales = be bg bs ca cs da de el es et fi fr gl hr hu hy it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW sysconfdir = ${prefix}/etc target_alias = top_build_prefix = ../../ top_builddir = ../.. top_srcdir = ../.. wprefs_bindir = ${exec_prefix}/bin wprefs_datadir = ${datarootdir}/WPrefs AUTOMAKE_OPTIONS = include_HEADERS = wtableview.h wtabledelegates.h lib_LTLIBRARIES = libExtraWINGs.la EXTRA_DIST = libExtraWINGs_la_SOURCES = \ wtableview.c \ wtabledelegates.c \ wtableview.h \ wtabledelegates.h AM_CPPFLAGS = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs \ -DRESOURCE_PATH=\"$(datadir)/WINGs\" -I${includedir} LDADD = $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/WINGs/libWUtil.la \ -lXft test_LDADD = wtableview.o wtabledelegates.o $(LDADD) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/Extras/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WINGs/Extras/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libExtraWINGs.la: $(libExtraWINGs_la_OBJECTS) $(libExtraWINGs_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) -rpath $(libdir) $(libExtraWINGs_la_OBJECTS) $(libExtraWINGs_la_LIBADD) $(LIBS) clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) @rm -f test$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c include ./$(DEPDIR)/test.Po include ./$(DEPDIR)/wtabledelegates.Plo include ./$(DEPDIR)/wtableview.Plo .c.o: $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po # $(AM_V_CC) \ # source='$<' object='$@' libtool=no \ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ # $(COMPILE) -c $< .c.obj: $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po # $(AM_V_CC) \ # source='$<' object='$@' libtool=no \ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ # $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo # $(AM_V_CC) \ # source='$<' object='$@' libtool=yes \ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ # $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(includedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-includeHEADERS \ uninstall-libLTLIBRARIES # 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. .NOEXPORT: WindowMaker-0.95.5/WINGs/wlist.c0000644000175000017500000006616312214432632013232 00000000000000 #include "WINGsP.h" char *WMListDidScrollNotification = "WMListDidScrollNotification"; char *WMListSelectionDidChangeNotification = "WMListSelectionDidChangeNotification"; typedef struct W_List { W_Class widgetClass; W_View *view; WMArray *items; /* list of WMListItem */ WMArray *selectedItems; /* list of selected WMListItems */ short itemHeight; int topItem; /* index of first visible item */ short fullFitLines; /* no of lines that fit entirely */ void *clientData; WMAction *action; void *doubleClientData; WMAction *doubleAction; WMListDrawProc *draw; WMHandlerID *idleID; /* for updating the scroller after adding elements */ WMHandlerID *selectID; /* for selecting items in list while scrolling */ WMScroller *vScroller; Pixmap doubleBuffer; struct { unsigned int allowMultipleSelection:1; unsigned int allowEmptySelection:1; unsigned int userDrawn:1; unsigned int userItemHeight:1; unsigned int dontFitAll:1; /* 1 = last item won't be fully visible */ unsigned int redrawPending:1; unsigned int buttonPressed:1; unsigned int buttonWasPressed:1; } flags; } List; #define DEFAULT_WIDTH 150 #define DEFAULT_HEIGHT 150 #define SCROLL_DELAY 100 static void destroyList(List * lPtr); static void paintList(List * lPtr); static void handleEvents(XEvent * event, void *data); static void handleActionEvents(XEvent * event, void *data); static void updateScroller(void *data); static void scrollForwardSelecting(void *data); static void scrollBackwardSelecting(void *data); static void vScrollCallBack(WMWidget * scroller, void *self); static void toggleItemSelection(WMList * lPtr, int index); static void updateGeometry(WMList * lPtr); static void didResizeList(W_ViewDelegate * self, WMView * view); static void unselectAllListItems(WMList * lPtr, WMListItem * exceptThis); W_ViewDelegate _ListViewDelegate = { NULL, NULL, didResizeList, NULL, NULL }; static void updateDoubleBufferPixmap(WMList * lPtr) { WMView *view = lPtr->view; WMScreen *scr = view->screen; if (!view->flags.realized) return; if (lPtr->doubleBuffer) XFreePixmap(scr->display, lPtr->doubleBuffer); lPtr->doubleBuffer = XCreatePixmap(scr->display, view->window, view->size.width, lPtr->itemHeight, scr->depth); } static void realizeObserver(void *self, WMNotification * not) { updateDoubleBufferPixmap(self); } static void releaseItem(void *data) { WMListItem *item = (WMListItem *) data; if (item->text) wfree(item->text); wfree(item); } WMList *WMCreateList(WMWidget * parent) { List *lPtr; W_Screen *scrPtr = W_VIEW(parent)->screen; lPtr = wmalloc(sizeof(List)); lPtr->widgetClass = WC_List; lPtr->view = W_CreateView(W_VIEW(parent)); if (!lPtr->view) { wfree(lPtr); return NULL; } lPtr->view->self = lPtr; lPtr->view->delegate = &_ListViewDelegate; WMCreateEventHandler(lPtr->view, ExposureMask | StructureNotifyMask | ClientMessageMask, handleEvents, lPtr); WMCreateEventHandler(lPtr->view, ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask | ButtonMotionMask, handleActionEvents, lPtr); lPtr->itemHeight = WMFontHeight(scrPtr->normalFont) + 1; lPtr->items = WMCreateArrayWithDestructor(4, releaseItem); lPtr->selectedItems = WMCreateArray(4); /* create the vertical scroller */ lPtr->vScroller = WMCreateScroller(lPtr); WMMoveWidget(lPtr->vScroller, 1, 1); WMSetScrollerArrowsPosition(lPtr->vScroller, WSAMaxEnd); WMSetScrollerAction(lPtr->vScroller, vScrollCallBack, lPtr); /* make the scroller map itself when it's realized */ WMMapWidget(lPtr->vScroller); W_ResizeView(lPtr->view, DEFAULT_WIDTH, DEFAULT_HEIGHT); WMAddNotificationObserver(realizeObserver, lPtr, WMViewRealizedNotification, lPtr->view); return lPtr; } void WMSetListAllowMultipleSelection(WMList * lPtr, Bool flag) { lPtr->flags.allowMultipleSelection = ((flag == 0) ? 0 : 1); } void WMSetListAllowEmptySelection(WMList * lPtr, Bool flag) { lPtr->flags.allowEmptySelection = ((flag == 0) ? 0 : 1); } static int comparator(const void *a, const void *b) { return (strcmp((*(WMListItem **) a)->text, (*(WMListItem **) b)->text)); } void WMSortListItems(WMList * lPtr) { WMSortArray(lPtr->items, comparator); paintList(lPtr); } void WMSortListItemsWithComparer(WMList * lPtr, WMCompareDataProc * func) { WMSortArray(lPtr->items, func); paintList(lPtr); } WMListItem *WMInsertListItem(WMList * lPtr, int row, const char *text) { WMListItem *item; CHECK_CLASS(lPtr, WC_List); item = wmalloc(sizeof(WMListItem)); item->text = wstrdup(text); row = WMIN(row, WMGetArrayItemCount(lPtr->items)); if (row < 0) WMAddToArray(lPtr->items, item); else WMInsertInArray(lPtr->items, row, item); /* update the scroller when idle, so that we don't waste time * updating it when another item is going to be added later */ if (!lPtr->idleID) { lPtr->idleID = WMAddIdleHandler((WMCallback *) updateScroller, lPtr); } return item; } void WMRemoveListItem(WMList * lPtr, int row) { WMListItem *item; int topItem = lPtr->topItem; int selNotify = 0; CHECK_CLASS(lPtr, WC_List); /*wassertr(row>=0 && rowitems)); */ if (row < 0 || row >= WMGetArrayItemCount(lPtr->items)) return; item = WMGetFromArray(lPtr->items, row); if (item->selected) { WMRemoveFromArray(lPtr->selectedItems, item); selNotify = 1; } if (row <= lPtr->topItem + lPtr->fullFitLines + lPtr->flags.dontFitAll) lPtr->topItem--; if (lPtr->topItem < 0) lPtr->topItem = 0; WMDeleteFromArray(lPtr->items, row); if (!lPtr->idleID) { lPtr->idleID = WMAddIdleHandler((WMCallback *) updateScroller, lPtr); } if (lPtr->topItem != topItem) { WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL); } if (selNotify) { WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, NULL); } } WMListItem *WMGetListItem(WMList * lPtr, int row) { return WMGetFromArray(lPtr->items, row); } WMArray *WMGetListItems(WMList * lPtr) { return lPtr->items; } void WMSetListUserDrawProc(WMList * lPtr, WMListDrawProc * proc) { lPtr->flags.userDrawn = 1; lPtr->draw = proc; } void WMSetListUserDrawItemHeight(WMList * lPtr, unsigned short height) { assert(height > 0); lPtr->flags.userItemHeight = 1; lPtr->itemHeight = height; updateDoubleBufferPixmap(lPtr); updateGeometry(lPtr); } void WMClearList(WMList * lPtr) { int selNo = WMGetArrayItemCount(lPtr->selectedItems); WMEmptyArray(lPtr->selectedItems); WMEmptyArray(lPtr->items); lPtr->topItem = 0; if (!lPtr->idleID) { WMDeleteIdleHandler(lPtr->idleID); lPtr->idleID = NULL; } if (lPtr->selectID) { WMDeleteTimerHandler(lPtr->selectID); lPtr->selectID = NULL; } if (lPtr->view->flags.realized) { updateScroller(lPtr); } if (selNo > 0) { WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, NULL); } } void WMSetListAction(WMList * lPtr, WMAction * action, void *clientData) { lPtr->action = action; lPtr->clientData = clientData; } void WMSetListDoubleAction(WMList * lPtr, WMAction * action, void *clientData) { lPtr->doubleAction = action; lPtr->doubleClientData = clientData; } WMArray *WMGetListSelectedItems(WMList * lPtr) { return lPtr->selectedItems; } WMListItem *WMGetListSelectedItem(WMList * lPtr) { return WMGetFromArray(lPtr->selectedItems, 0); } int WMGetListSelectedItemRow(WMList * lPtr) { WMListItem *item = WMGetFromArray(lPtr->selectedItems, 0); return (item != NULL ? WMGetFirstInArray(lPtr->items, item) : WLNotFound); } int WMGetListItemHeight(WMList * lPtr) { return lPtr->itemHeight; } void WMSetListPosition(WMList * lPtr, int row) { lPtr->topItem = row; if (lPtr->topItem + lPtr->fullFitLines > WMGetArrayItemCount(lPtr->items)) lPtr->topItem = WMGetArrayItemCount(lPtr->items) - lPtr->fullFitLines; if (lPtr->topItem < 0) lPtr->topItem = 0; if (lPtr->view->flags.realized) updateScroller(lPtr); } void WMSetListBottomPosition(WMList * lPtr, int row) { if (WMGetArrayItemCount(lPtr->items) > lPtr->fullFitLines) { lPtr->topItem = row - lPtr->fullFitLines; if (lPtr->topItem < 0) lPtr->topItem = 0; if (lPtr->view->flags.realized) updateScroller(lPtr); } } int WMGetListNumberOfRows(WMList * lPtr) { return WMGetArrayItemCount(lPtr->items); } int WMGetListPosition(WMList * lPtr) { return lPtr->topItem; } Bool WMListAllowsMultipleSelection(WMList * lPtr) { return lPtr->flags.allowMultipleSelection; } Bool WMListAllowsEmptySelection(WMList * lPtr) { return lPtr->flags.allowEmptySelection; } static void scrollByAmount(WMList * lPtr, int amount) { int itemCount = WMGetArrayItemCount(lPtr->items); if ((amount < 0 && lPtr->topItem > 0) || (amount > 0 && (lPtr->topItem + lPtr->fullFitLines < itemCount))) { lPtr->topItem += amount; if (lPtr->topItem < 0) lPtr->topItem = 0; if (lPtr->topItem + lPtr->fullFitLines > itemCount) lPtr->topItem = itemCount - lPtr->fullFitLines; updateScroller(lPtr); } } static void vScrollCallBack(WMWidget * scroller, void *self) { WMList *lPtr = (WMList *) self; int oldTopItem = lPtr->topItem; int itemCount = WMGetArrayItemCount(lPtr->items); switch (WMGetScrollerHitPart((WMScroller *) scroller)) { case WSDecrementLine: scrollByAmount(lPtr, -1); break; case WSIncrementLine: scrollByAmount(lPtr, 1); break; case WSDecrementPage: scrollByAmount(lPtr, -lPtr->fullFitLines + (1 - lPtr->flags.dontFitAll) + 1); break; case WSIncrementPage: scrollByAmount(lPtr, lPtr->fullFitLines - (1 - lPtr->flags.dontFitAll) - 1); break; case WSDecrementWheel: scrollByAmount(lPtr, -lPtr->fullFitLines / 3); break; case WSIncrementWheel: scrollByAmount(lPtr, lPtr->fullFitLines / 3); break; case WSKnob: lPtr->topItem = WMGetScrollerValue(lPtr->vScroller) * (float)(itemCount - lPtr->fullFitLines); if (oldTopItem != lPtr->topItem) paintList(lPtr); /* use updateScroller(lPtr) here? -Dan */ break; case WSKnobSlot: case WSNoPart: default: /* do nothing */ break; } if (lPtr->topItem != oldTopItem) WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL); } static void paintItem(List * lPtr, int index) { WMView *view = lPtr->view; W_Screen *scr = view->screen; Display *display = scr->display; int width, height, x, y, tlen; WMListItem *itemPtr; Drawable d = lPtr->doubleBuffer; itemPtr = WMGetFromArray(lPtr->items, index); width = lPtr->view->size.width - 2 - 19; height = lPtr->itemHeight; x = 19; y = 2 + (index - lPtr->topItem) * lPtr->itemHeight + 1; tlen = strlen(itemPtr->text); if (lPtr->flags.userDrawn) { WMRect rect; int flags; rect.size.width = width; rect.size.height = height; rect.pos.x = 0; rect.pos.y = 0; flags = itemPtr->uflags; if (itemPtr->disabled) flags |= WLDSDisabled; if (itemPtr->selected) flags |= WLDSSelected; if (itemPtr->isBranch) flags |= WLDSIsBranch; if (lPtr->draw) (*lPtr->draw) (lPtr, index, d, itemPtr->text, flags, &rect); XCopyArea(display, d, view->window, scr->copyGC, 0, 0, width, height, x, y); } else { WMColor *back = (itemPtr->selected ? scr->white : view->backColor); XFillRectangle(display, d, WMColorGC(back), 0, 0, width, height); W_PaintText(view, d, scr->normalFont, 4, 0, width, WALeft, scr->black, False, itemPtr->text, tlen); XCopyArea(display, d, view->window, scr->copyGC, 0, 0, width, height, x, y); } if ((index - lPtr->topItem + lPtr->fullFitLines) * lPtr->itemHeight > lPtr->view->size.height - 2) { W_DrawRelief(lPtr->view->screen, lPtr->view->window, 0, 0, lPtr->view->size.width, lPtr->view->size.height, WRSunken); } } static void paintList(List * lPtr) { W_Screen *scrPtr = lPtr->view->screen; int i, lim; if (!lPtr->view->flags.mapped) return; if (WMGetArrayItemCount(lPtr->items) > 0) { if (lPtr->topItem + lPtr->fullFitLines + lPtr->flags.dontFitAll > WMGetArrayItemCount(lPtr->items)) { lim = WMGetArrayItemCount(lPtr->items) - lPtr->topItem; XClearArea(scrPtr->display, lPtr->view->window, 19, 2 + lim * lPtr->itemHeight, lPtr->view->size.width - 21, lPtr->view->size.height - lim * lPtr->itemHeight - 3, False); } else { lim = lPtr->fullFitLines + lPtr->flags.dontFitAll; } for (i = lPtr->topItem; i < lPtr->topItem + lim; i++) { paintItem(lPtr, i); } } else { XClearWindow(scrPtr->display, lPtr->view->window); } W_DrawRelief(scrPtr, lPtr->view->window, 0, 0, lPtr->view->size.width, lPtr->view->size.height, WRSunken); } #if 0 static void scrollTo(List * lPtr, int newTop) { } #endif static void updateScroller(void *data) { List *lPtr = (List *) data; float knobProportion, floatValue, tmp; int count = WMGetArrayItemCount(lPtr->items); if (lPtr->idleID) WMDeleteIdleHandler(lPtr->idleID); lPtr->idleID = NULL; paintList(lPtr); if (count == 0 || count <= lPtr->fullFitLines) WMSetScrollerParameters(lPtr->vScroller, 0, 1); else { tmp = lPtr->fullFitLines; knobProportion = tmp / (float)count; floatValue = (float)lPtr->topItem / (float)(count - lPtr->fullFitLines); WMSetScrollerParameters(lPtr->vScroller, floatValue, knobProportion); } } static void scrollForwardSelecting(void *data) { List *lPtr = (List *) data; int lastSelected; lastSelected = lPtr->topItem + lPtr->fullFitLines + lPtr->flags.dontFitAll - 1; if (lastSelected >= WMGetArrayItemCount(lPtr->items) - 1) { lPtr->selectID = NULL; if (lPtr->flags.dontFitAll) scrollByAmount(lPtr, 1); return; } /* selecting NEEDS to be done before scrolling to avoid flickering */ if (lPtr->flags.allowMultipleSelection) { WMListItem *item; WMRange range; item = WMGetFromArray(lPtr->selectedItems, 0); range.position = WMGetFirstInArray(lPtr->items, item); if (lastSelected + 1 >= range.position) { range.count = lastSelected - range.position + 2; } else { range.count = lastSelected - range.position; } WMSetListSelectionToRange(lPtr, range); } else { WMSelectListItem(lPtr, lastSelected + 1); } scrollByAmount(lPtr, 1); lPtr->selectID = WMAddTimerHandler(SCROLL_DELAY, scrollForwardSelecting, lPtr); } static void scrollBackwardSelecting(void *data) { List *lPtr = (List *) data; if (lPtr->topItem < 1) { lPtr->selectID = NULL; return; } /* selecting NEEDS to be done before scrolling to avoid flickering */ if (lPtr->flags.allowMultipleSelection) { WMListItem *item; WMRange range; item = WMGetFromArray(lPtr->selectedItems, 0); range.position = WMGetFirstInArray(lPtr->items, item); if (lPtr->topItem - 1 >= range.position) { range.count = lPtr->topItem - range.position; } else { range.count = lPtr->topItem - range.position - 2; } WMSetListSelectionToRange(lPtr, range); } else { WMSelectListItem(lPtr, lPtr->topItem - 1); } scrollByAmount(lPtr, -1); lPtr->selectID = WMAddTimerHandler(SCROLL_DELAY, scrollBackwardSelecting, lPtr); } static void handleEvents(XEvent * event, void *data) { List *lPtr = (List *) data; CHECK_CLASS(data, WC_List); switch (event->type) { case Expose: if (event->xexpose.count != 0) break; paintList(lPtr); break; case DestroyNotify: destroyList(lPtr); break; } } static int matchTitle(const void *item, const void *title) { const WMListItem *wl_item = item; const char *s_title = title; return (strcmp(wl_item->text, s_title) == 0 ? 1 : 0); } int WMFindRowOfListItemWithTitle(WMList * lPtr, const char *title) { /* * We explicitely discard the 'const' attribute here because the * call-back function handler must not be made with a const * attribute, but our local call-back function (above) does have * it properly set, so we're consistent */ return WMFindInArray(lPtr->items, matchTitle, (char *) title); } void WMSelectListItem(WMList * lPtr, int row) { WMListItem *item; if (row >= WMGetArrayItemCount(lPtr->items)) return; if (row < 0) { /* row = -1 will deselects all for backward compatibility. * will be removed later. -Dan */ WMUnselectAllListItems(lPtr); return; } item = WMGetFromArray(lPtr->items, row); if (item->selected) return; /* Return if already selected */ if (!lPtr->flags.allowMultipleSelection) { /* unselect previous selected items */ unselectAllListItems(lPtr, NULL); } /* select item */ item->selected = 1; WMAddToArray(lPtr->selectedItems, item); if (lPtr->view->flags.mapped && row >= lPtr->topItem && row <= lPtr->topItem + lPtr->fullFitLines) { paintItem(lPtr, row); } WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, NULL); } void WMUnselectListItem(WMList * lPtr, int row) { WMListItem *item = WMGetFromArray(lPtr->items, row); if (!item || !item->selected) return; if (!lPtr->flags.allowEmptySelection && WMGetArrayItemCount(lPtr->selectedItems) <= 1) { return; } item->selected = 0; WMRemoveFromArray(lPtr->selectedItems, item); if (lPtr->view->flags.mapped && row >= lPtr->topItem && row <= lPtr->topItem + lPtr->fullFitLines) { paintItem(lPtr, row); } WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, NULL); } void WMSelectListItemsInRange(WMList * lPtr, WMRange range) { WMListItem *item; int position = range.position, k = 1, notify = 0; int total = WMGetArrayItemCount(lPtr->items); if (!lPtr->flags.allowMultipleSelection) return; if (range.count == 0) return; /* Nothing to select */ if (range.count < 0) { range.count = -range.count; k = -1; } for (; range.count > 0 && position >= 0 && position < total; range.count--) { item = WMGetFromArray(lPtr->items, position); if (!item->selected) { item->selected = 1; WMAddToArray(lPtr->selectedItems, item); if (lPtr->view->flags.mapped && position >= lPtr->topItem && position <= lPtr->topItem + lPtr->fullFitLines) { paintItem(lPtr, position); } notify = 1; } position += k; } if (notify) { WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, NULL); } } void WMSetListSelectionToRange(WMList * lPtr, WMRange range) { WMListItem *item; int mark1, mark2, i, k; int position = range.position, notify = 0; int total = WMGetArrayItemCount(lPtr->items); if (!lPtr->flags.allowMultipleSelection) return; if (range.count == 0) { WMUnselectAllListItems(lPtr); return; } if (range.count < 0) { mark1 = range.position + range.count + 1; mark2 = range.position + 1; range.count = -range.count; k = -1; } else { mark1 = range.position; mark2 = range.position + range.count; k = 1; } if (mark1 > total) mark1 = total; if (mark2 < 0) mark2 = 0; WMEmptyArray(lPtr->selectedItems); for (i = 0; i < mark1; i++) { item = WMGetFromArray(lPtr->items, i); if (item->selected) { item->selected = 0; if (lPtr->view->flags.mapped && i >= lPtr->topItem && i <= lPtr->topItem + lPtr->fullFitLines) { paintItem(lPtr, i); } notify = 1; } } for (; range.count > 0 && position >= 0 && position < total; range.count--) { item = WMGetFromArray(lPtr->items, position); if (!item->selected) { item->selected = 1; if (lPtr->view->flags.mapped && position >= lPtr->topItem && position <= lPtr->topItem + lPtr->fullFitLines) { paintItem(lPtr, position); } notify = 1; } WMAddToArray(lPtr->selectedItems, item); position += k; } for (i = mark2; i < total; i++) { item = WMGetFromArray(lPtr->items, i); if (item->selected) { item->selected = 0; if (lPtr->view->flags.mapped && i >= lPtr->topItem && i <= lPtr->topItem + lPtr->fullFitLines) { paintItem(lPtr, i); } notify = 1; } } if (notify) { WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, NULL); } } void WMSelectAllListItems(WMList * lPtr) { int i; WMListItem *item; if (!lPtr->flags.allowMultipleSelection) return; if (WMGetArrayItemCount(lPtr->items) == WMGetArrayItemCount(lPtr->selectedItems)) { return; /* All items are selected already */ } WMFreeArray(lPtr->selectedItems); lPtr->selectedItems = WMCreateArrayWithArray(lPtr->items); for (i = 0; i < WMGetArrayItemCount(lPtr->items); i++) { item = WMGetFromArray(lPtr->items, i); if (!item->selected) { item->selected = 1; if (lPtr->view->flags.mapped && i >= lPtr->topItem && i <= lPtr->topItem + lPtr->fullFitLines) { paintItem(lPtr, i); } } } WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, NULL); } /* * Be careful from where you call this function! It doesn't honor the * allowEmptySelection flag and doesn't send a notification about selection * change! You need to manage these in the functions from where you call it. * * This will unselect all items if exceptThis is NULL, else will keep * exceptThis selected. * Make sure that exceptThis is one of the already selected items if not NULL! * */ static void unselectAllListItems(WMList * lPtr, WMListItem * exceptThis) { int i; WMListItem *item; for (i = 0; i < WMGetArrayItemCount(lPtr->items); i++) { item = WMGetFromArray(lPtr->items, i); if (item != exceptThis && item->selected) { item->selected = 0; if (lPtr->view->flags.mapped && i >= lPtr->topItem && i <= lPtr->topItem + lPtr->fullFitLines) { paintItem(lPtr, i); } } } WMEmptyArray(lPtr->selectedItems); if (exceptThis != NULL) { exceptThis->selected = 1; WMAddToArray(lPtr->selectedItems, exceptThis); } } void WMUnselectAllListItems(WMList * lPtr) { int keep; WMListItem *keepItem; keep = lPtr->flags.allowEmptySelection ? 0 : 1; if (WMGetArrayItemCount(lPtr->selectedItems) == keep) return; keepItem = (keep == 1 ? WMGetFromArray(lPtr->selectedItems, 0) : NULL); unselectAllListItems(lPtr, keepItem); WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, NULL); } static int getItemIndexAt(List * lPtr, int clickY) { int index; index = (clickY - 2) / lPtr->itemHeight + lPtr->topItem; if (index < 0 || index >= WMGetArrayItemCount(lPtr->items)) return -1; return index; } static void toggleItemSelection(WMList * lPtr, int index) { WMListItem *item = WMGetFromArray(lPtr->items, index); if (item && item->selected) { WMUnselectListItem(lPtr, index); } else { WMSelectListItem(lPtr, index); } } static void handleActionEvents(XEvent * event, void *data) { List *lPtr = (List *) data; int tmp, height; int topItem = lPtr->topItem; static int lastClicked = -1, prevItem = -1; CHECK_CLASS(data, WC_List); switch (event->type) { case ButtonRelease: /* Ignore mouse wheel events, they're not "real" button events */ if (event->xbutton.button == WINGsConfiguration.mouseWheelUp || event->xbutton.button == WINGsConfiguration.mouseWheelDown) { break; } lPtr->flags.buttonPressed = 0; if (lPtr->selectID) { WMDeleteTimerHandler(lPtr->selectID); lPtr->selectID = NULL; } tmp = getItemIndexAt(lPtr, event->xbutton.y); if (tmp >= 0) { if (lPtr->action) (*lPtr->action) (lPtr, lPtr->clientData); } if (!(event->xbutton.state & ShiftMask)) lastClicked = prevItem = tmp; break; case EnterNotify: if (lPtr->selectID) { WMDeleteTimerHandler(lPtr->selectID); lPtr->selectID = NULL; } break; case LeaveNotify: height = WMWidgetHeight(lPtr); if (lPtr->flags.buttonPressed && !lPtr->selectID) { if (event->xcrossing.y >= height) { lPtr->selectID = WMAddTimerHandler(SCROLL_DELAY, scrollForwardSelecting, lPtr); } else if (event->xcrossing.y <= 0) { lPtr->selectID = WMAddTimerHandler(SCROLL_DELAY, scrollBackwardSelecting, lPtr); } } break; case ButtonPress: if (event->xbutton.x <= WMWidgetWidth(lPtr->vScroller)) break; if (event->xbutton.button == WINGsConfiguration.mouseWheelDown || event->xbutton.button == WINGsConfiguration.mouseWheelUp) { int amount = 0; if (event->xbutton.state & ControlMask) { amount = lPtr->fullFitLines - (1 - lPtr->flags.dontFitAll) - 1; } else if (event->xbutton.state & ShiftMask) { amount = 1; } else { amount = lPtr->fullFitLines / 3; if (amount == 0) amount++; } if (event->xbutton.button == WINGsConfiguration.mouseWheelUp) amount = -amount; scrollByAmount(lPtr, amount); break; } tmp = getItemIndexAt(lPtr, event->xbutton.y); lPtr->flags.buttonPressed = 1; if (tmp >= 0) { if (tmp == lastClicked && WMIsDoubleClick(event)) { WMSelectListItem(lPtr, tmp); if (lPtr->doubleAction) (*lPtr->doubleAction) (lPtr, lPtr->doubleClientData); } else { if (!lPtr->flags.allowMultipleSelection) { if (event->xbutton.state & ControlMask) { toggleItemSelection(lPtr, tmp); } else { WMSelectListItem(lPtr, tmp); } } else { WMRange range; WMListItem *lastSel; if (event->xbutton.state & ControlMask) { toggleItemSelection(lPtr, tmp); } else if (event->xbutton.state & ShiftMask) { if (WMGetArrayItemCount(lPtr->selectedItems) == 0) { WMSelectListItem(lPtr, tmp); } else { lastSel = WMGetFromArray(lPtr->items, lastClicked); range.position = WMGetFirstInArray(lPtr->items, lastSel); if (tmp >= range.position) range.count = tmp - range.position + 1; else range.count = tmp - range.position - 1; WMSetListSelectionToRange(lPtr, range); } } else { range.position = tmp; range.count = 1; WMSetListSelectionToRange(lPtr, range); } } } } if (!(event->xbutton.state & ShiftMask)) lastClicked = prevItem = tmp; break; case MotionNotify: height = WMWidgetHeight(lPtr); if (lPtr->selectID && event->xmotion.y > 0 && event->xmotion.y < height) { WMDeleteTimerHandler(lPtr->selectID); lPtr->selectID = NULL; } if (lPtr->flags.buttonPressed && !lPtr->selectID) { if (event->xmotion.y <= 0) { lPtr->selectID = WMAddTimerHandler(SCROLL_DELAY, scrollBackwardSelecting, lPtr); break; } else if (event->xmotion.y >= height) { lPtr->selectID = WMAddTimerHandler(SCROLL_DELAY, scrollForwardSelecting, lPtr); break; } tmp = getItemIndexAt(lPtr, event->xmotion.y); if (tmp >= 0 && tmp != prevItem) { if (lPtr->flags.allowMultipleSelection) { WMRange range; range.position = lastClicked; if (tmp >= lastClicked) range.count = tmp - lastClicked + 1; else range.count = tmp - lastClicked - 1; WMSetListSelectionToRange(lPtr, range); } else { WMSelectListItem(lPtr, tmp); } } prevItem = tmp; } break; } if (lPtr->topItem != topItem) WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL); } static void updateGeometry(WMList * lPtr) { lPtr->fullFitLines = (lPtr->view->size.height - 4) / lPtr->itemHeight; if (lPtr->fullFitLines * lPtr->itemHeight < lPtr->view->size.height - 4) { lPtr->flags.dontFitAll = 1; } else { lPtr->flags.dontFitAll = 0; } if (WMGetArrayItemCount(lPtr->items) - lPtr->topItem <= lPtr->fullFitLines) { lPtr->topItem = WMGetArrayItemCount(lPtr->items) - lPtr->fullFitLines; if (lPtr->topItem < 0) lPtr->topItem = 0; } updateScroller(lPtr); } static void didResizeList(W_ViewDelegate * self, WMView * view) { WMList *lPtr = (WMList *) view->self; WMResizeWidget(lPtr->vScroller, 1, view->size.height - 2); updateDoubleBufferPixmap(lPtr); updateGeometry(lPtr); } static void destroyList(List * lPtr) { if (lPtr->idleID) WMDeleteIdleHandler(lPtr->idleID); lPtr->idleID = NULL; if (lPtr->selectID) WMDeleteTimerHandler(lPtr->selectID); lPtr->selectID = NULL; if (lPtr->selectedItems) WMFreeArray(lPtr->selectedItems); if (lPtr->items) WMFreeArray(lPtr->items); if (lPtr->doubleBuffer) XFreePixmap(lPtr->view->screen->display, lPtr->doubleBuffer); WMRemoveNotificationObserver(lPtr); wfree(lPtr); } WindowMaker-0.95.5/WINGs/wballoon.c0000644000175000017500000002416512214432632013701 00000000000000 #include "wconfig.h" #include "WINGsP.h" #ifdef SHAPE #include #endif typedef struct W_Balloon { W_View *view; WMHashTable *table; /* Table from view ptr to text */ WMColor *backColor; WMColor *textColor; WMFont *font; WMHandlerID timer; /* timer for showing balloon */ WMHandlerID noDelayTimer; int delay; Window forWindow; /* window for which the balloon * is being show in the moment */ struct { WMAlignment alignment:2; unsigned enabled:1; unsigned noDelay:1; } flags; } Balloon; #define DEFAULT_WIDTH 60 #define DEFAULT_HEIGHT 14 #define DEFAULT_ALIGNMENT WALeft #define DEFAULT_DELAY 500 #define NO_DELAY_DELAY 150 static void destroyBalloon(Balloon * bPtr); static void handleEvents(XEvent * event, void *data); static void showText(Balloon * bPtr, int x, int y, int w, int h, const char *text); struct W_Balloon *W_CreateBalloon(WMScreen * scr) { Balloon *bPtr; bPtr = wmalloc(sizeof(Balloon)); bPtr->view = W_CreateUnmanagedTopView(scr); if (!bPtr->view) { wfree(bPtr); return NULL; } bPtr->view->self = bPtr; bPtr->textColor = WMRetainColor(bPtr->view->screen->black); WMCreateEventHandler(bPtr->view, StructureNotifyMask, handleEvents, bPtr); W_ResizeView(bPtr->view, DEFAULT_WIDTH, DEFAULT_HEIGHT); bPtr->flags.alignment = DEFAULT_ALIGNMENT; bPtr->table = WMCreateHashTable(WMIntHashCallbacks); bPtr->delay = DEFAULT_DELAY; bPtr->flags.enabled = 1; return bPtr; } void WMSetBalloonTextAlignment(WMScreen * scr, WMAlignment alignment) { scr->balloon->flags.alignment = alignment; } void WMSetBalloonTextForView(const char *text, WMView * view) { char *oldText = NULL; WMScreen *scr = view->screen; if (text) { oldText = WMHashInsert(scr->balloon->table, view, wstrdup(text)); } else { oldText = WMHashGet(scr->balloon->table, view); WMHashRemove(scr->balloon->table, view); } if (oldText) { wfree(oldText); } } void WMSetBalloonFont(WMScreen * scr, WMFont * font) { Balloon *bPtr = scr->balloon; if (bPtr->font != NULL) WMReleaseFont(bPtr->font); if (font) bPtr->font = WMRetainFont(font); else bPtr->font = NULL; } void WMSetBalloonTextColor(WMScreen * scr, WMColor * color) { Balloon *bPtr = scr->balloon; if (bPtr->textColor) WMReleaseColor(bPtr->textColor); bPtr->textColor = WMRetainColor(color); } void WMSetBalloonDelay(WMScreen * scr, int delay) { scr->balloon->delay = delay; } void WMSetBalloonEnabled(WMScreen * scr, Bool flag) { scr->balloon->flags.enabled = ((flag == 0) ? 0 : 1); W_UnmapView(scr->balloon->view); } static void clearNoDelay(void *data) { Balloon *bPtr = (Balloon *) data; bPtr->flags.noDelay = 0; bPtr->noDelayTimer = NULL; } void W_BalloonHandleLeaveView(WMView * view) { Balloon *bPtr = view->screen->balloon; if (bPtr->forWindow == view->window) { if (bPtr->view->flags.mapped) { W_UnmapView(bPtr->view); bPtr->noDelayTimer = WMAddTimerHandler(NO_DELAY_DELAY, clearNoDelay, bPtr); } if (bPtr->timer) WMDeleteTimerHandler(bPtr->timer); bPtr->timer = NULL; bPtr->forWindow = None; } } /* * botar balao perto do cursor * so mapear balao se o mouse ficar parado pelo delay * */ static void showBalloon(void *data) { char *text; WMView *view = (WMView *) data; Balloon *bPtr = view->screen->balloon; int x, y; Window foo; bPtr->timer = NULL; text = WMHashGet(bPtr->table, view); if (!text) return; XTranslateCoordinates(view->screen->display, view->window, view->screen->rootWin, 0, 0, &x, &y, &foo); if (!bPtr->view->flags.realized) W_RealizeView(bPtr->view); showText(bPtr, x, y, view->size.width, view->size.height, text); bPtr->flags.noDelay = 1; } void W_BalloonHandleEnterView(WMView * view) { Balloon *bPtr = view->screen->balloon; char *text; if (!bPtr->flags.enabled) return; text = WMHashGet(bPtr->table, view); if (!text) { if (bPtr->view->flags.realized) W_UnmapView(bPtr->view); return; } if (bPtr->timer) WMDeleteTimerHandler(bPtr->timer); bPtr->timer = NULL; if (bPtr->noDelayTimer) WMDeleteTimerHandler(bPtr->noDelayTimer); bPtr->noDelayTimer = NULL; bPtr->forWindow = view->window; if (bPtr->flags.noDelay) { bPtr->timer = NULL; showBalloon(view); } else { bPtr->timer = WMAddTimerHandler(bPtr->delay, showBalloon, view); } } #define TOP 0 #define BOTTOM 1 #define LEFT 0 #define RIGHT 2 #define TLEFT (TOP|LEFT) #define TRIGHT (TOP|RIGHT) #define BLEFT (BOTTOM|LEFT) #define BRIGHT (BOTTOM|RIGHT) #define SPACE 12 static void drawBalloon(WMScreen * scr, Pixmap bitmap, Pixmap pix, int x, int y, int w, int h, int side) { Display *dpy = scr->display; WMColor *white = WMWhiteColor(scr); WMColor *black = WMBlackColor(scr); GC bgc = scr->monoGC; GC gc = WMColorGC(white); int rad = h * 3 / 10; XPoint pt[3], ipt[3]; int w1; /* outline */ XSetForeground(dpy, bgc, 1); XFillArc(dpy, bitmap, bgc, x, y, rad, rad, 90 * 64, 90 * 64); XFillArc(dpy, bitmap, bgc, x, y + h - 1 - rad, rad, rad, 180 * 64, 90 * 64); XFillArc(dpy, bitmap, bgc, x + w - 1 - rad, y, rad, rad, 0 * 64, 90 * 64); XFillArc(dpy, bitmap, bgc, x + w - 1 - rad, y + h - 1 - rad, rad, rad, 270 * 64, 90 * 64); XFillRectangle(dpy, bitmap, bgc, x, y + rad / 2, w, h - rad); XFillRectangle(dpy, bitmap, bgc, x + rad / 2, y, w - rad, h); /* interior */ XFillArc(dpy, pix, gc, x + 1, y + 1, rad, rad, 90 * 64, 90 * 64); XFillArc(dpy, pix, gc, x + 1, y + h - 2 - rad, rad, rad, 180 * 64, 90 * 64); XFillArc(dpy, pix, gc, x + w - 2 - rad, y + 1, rad, rad, 0 * 64, 90 * 64); XFillArc(dpy, pix, gc, x + w - 2 - rad, y + h - 2 - rad, rad, rad, 270 * 64, 90 * 64); XFillRectangle(dpy, pix, gc, x + 1, y + 1 + rad / 2, w - 2, h - 2 - rad); XFillRectangle(dpy, pix, gc, x + 1 + rad / 2, y + 1, w - 2 - rad, h - 2); if (side & BOTTOM) { pt[0].y = y + h - 1; pt[1].y = y + h - 1 + SPACE; pt[2].y = y + h - 1; ipt[0].y = pt[0].y - 1; ipt[1].y = pt[1].y - 1; ipt[2].y = pt[2].y - 1; } else { pt[0].y = y; pt[1].y = y - SPACE; pt[2].y = y; ipt[0].y = pt[0].y + 1; ipt[1].y = pt[1].y + 1; ipt[2].y = pt[2].y + 1; } /*w1 = WMAX(h, 24); */ w1 = WMAX(h, 21); if (side & RIGHT) { pt[0].x = x + w - w1 + 2 * w1 / 16; pt[1].x = x + w - w1 + 11 * w1 / 16; pt[2].x = x + w - w1 + 7 * w1 / 16; ipt[0].x = x + 1 + w - w1 + 2 * (w1 - 1) / 16; ipt[1].x = x + 1 + w - w1 + 11 * (w1 - 1) / 16; ipt[2].x = x + 1 + w - w1 + 7 * (w1 - 1) / 16; /*ipt[0].x = pt[0].x+1; ipt[1].x = pt[1].x; ipt[2].x = pt[2].x; */ } else { pt[0].x = x + w1 - 2 * w1 / 16; pt[1].x = x + w1 - 11 * w1 / 16; pt[2].x = x + w1 - 7 * w1 / 16; ipt[0].x = x - 1 + w1 - 2 * (w1 - 1) / 16; ipt[1].x = x - 1 + w1 - 11 * (w1 - 1) / 16; ipt[2].x = x - 1 + w1 - 7 * (w1 - 1) / 16; /*ipt[0].x = pt[0].x-1; ipt[1].x = pt[1].x; ipt[2].x = pt[2].x; */ } XFillPolygon(dpy, bitmap, bgc, pt, 3, Convex, CoordModeOrigin); XFillPolygon(dpy, pix, gc, ipt, 3, Convex, CoordModeOrigin); /* fix outline */ XDrawLines(dpy, pix, WMColorGC(black), pt, 3, CoordModeOrigin); if (side & RIGHT) { pt[0].x++; pt[2].x--; } else { pt[0].x--; pt[2].x++; } XDrawLines(dpy, pix, WMColorGC(black), pt, 3, CoordModeOrigin); WMReleaseColor(white); WMReleaseColor(black); } static Pixmap makePixmap(WMScreen * scr, int width, int height, int side, Pixmap * mask) { Display *dpy = WMScreenDisplay(scr); Pixmap bitmap; Pixmap pixmap; int x, y; WMColor *black = WMBlackColor(scr); bitmap = XCreatePixmap(dpy, scr->rootWin, width + SPACE, height + SPACE, 1); XSetForeground(dpy, scr->monoGC, 0); XFillRectangle(dpy, bitmap, scr->monoGC, 0, 0, width + SPACE, height + SPACE); pixmap = XCreatePixmap(dpy, scr->rootWin, width + SPACE, height + SPACE, scr->depth); XFillRectangle(dpy, pixmap, WMColorGC(black), 0, 0, width + SPACE, height + SPACE); if (side & BOTTOM) { y = 0; } else { y = SPACE; } x = 0; drawBalloon(scr, bitmap, pixmap, x, y, width, height, side); *mask = bitmap; WMReleaseColor(black); return pixmap; } static void showText(Balloon * bPtr, int x, int y, int w, int h, const char *text) { WMScreen *scr = bPtr->view->screen; Display *dpy = WMScreenDisplay(scr); int width; int height; Pixmap pixmap; Pixmap mask; WMFont *font = bPtr->font ? bPtr->font : scr->normalFont; int textHeight; int side = 0; int ty; int bx, by; { int w; const char *ptr, *ptr2; ptr2 = ptr = text; width = 0; while (ptr && ptr2) { ptr2 = strchr(ptr, '\n'); if (ptr2) { w = WMWidthOfString(font, ptr, ptr2 - ptr); } else { w = WMWidthOfString(font, ptr, strlen(ptr)); } if (w > width) width = w; ptr = ptr2 + 1; } } width += 16; textHeight = W_GetTextHeight(font, text, width, False); height = textHeight + 4; if (height < 16) height = 16; if (width < height) width = height; if (x + width > scr->rootView->size.width) { side = RIGHT; bx = x - width + w / 2; if (bx < 0) bx = 0; } else { side = LEFT; bx = x + w / 2; } if (bx + width > scr->rootView->size.width) bx = scr->rootView->size.width - width; if (y - (height + SPACE) < 0) { side |= TOP; by = y + h - 1; ty = SPACE; } else { side |= BOTTOM; by = y - (height + SPACE); ty = 0; } pixmap = makePixmap(scr, width, height, side, &mask); W_PaintText(bPtr->view, pixmap, font, 8, ty + (height - textHeight) / 2, width, bPtr->flags.alignment, bPtr->textColor ? bPtr->textColor : scr->black, False, text, strlen(text)); XSetWindowBackgroundPixmap(dpy, bPtr->view->window, pixmap); W_ResizeView(bPtr->view, width, height + SPACE); XFreePixmap(dpy, pixmap); #ifdef SHAPE XShapeCombineMask(dpy, bPtr->view->window, ShapeBounding, 0, 0, mask, ShapeSet); #endif XFreePixmap(dpy, mask); W_MoveView(bPtr->view, bx, by); W_MapView(bPtr->view); } static void handleEvents(XEvent * event, void *data) { Balloon *bPtr = (Balloon *) data; switch (event->type) { case DestroyNotify: destroyBalloon(bPtr); break; } } static void destroyBalloon(Balloon * bPtr) { WMHashEnumerator e; char *str; e = WMEnumerateHashTable(bPtr->table); while ((str = WMNextHashEnumeratorItem(&e))) { wfree(str); } WMFreeHashTable(bPtr->table); if (bPtr->textColor) WMReleaseColor(bPtr->textColor); if (bPtr->font) WMReleaseFont(bPtr->font); wfree(bPtr); } WindowMaker-0.95.5/WINGs/wlabel.c0000644000175000017500000000777012214432632013335 00000000000000 #include "WINGsP.h" typedef struct W_Label { W_Class widgetClass; W_View *view; char *caption; WMColor *textColor; WMFont *font; /* if NULL, use default */ W_Pixmap *image; struct { WMReliefType relief:3; WMImagePosition imagePosition:4; WMAlignment alignment:2; unsigned int noWrap:1; unsigned int redrawPending:1; } flags; } Label; #define DEFAULT_WIDTH 60 #define DEFAULT_HEIGHT 14 #define DEFAULT_ALIGNMENT WALeft #define DEFAULT_RELIEF WRFlat #define DEFAULT_IMAGE_POSITION WIPNoImage static void destroyLabel(Label * lPtr); static void paintLabel(Label * lPtr); static void handleEvents(XEvent * event, void *data); WMLabel *WMCreateLabel(WMWidget * parent) { Label *lPtr; lPtr = wmalloc(sizeof(Label)); lPtr->widgetClass = WC_Label; lPtr->view = W_CreateView(W_VIEW(parent)); if (!lPtr->view) { wfree(lPtr); return NULL; } lPtr->view->self = lPtr; lPtr->textColor = WMRetainColor(lPtr->view->screen->black); WMCreateEventHandler(lPtr->view, ExposureMask | StructureNotifyMask, handleEvents, lPtr); W_ResizeView(lPtr->view, DEFAULT_WIDTH, DEFAULT_HEIGHT); lPtr->flags.alignment = DEFAULT_ALIGNMENT; lPtr->flags.relief = DEFAULT_RELIEF; lPtr->flags.imagePosition = DEFAULT_IMAGE_POSITION; lPtr->flags.noWrap = 1; return lPtr; } void WMSetLabelImage(WMLabel * lPtr, WMPixmap * image) { if (lPtr->image != NULL) WMReleasePixmap(lPtr->image); if (image) lPtr->image = WMRetainPixmap(image); else lPtr->image = NULL; if (lPtr->view->flags.realized) { paintLabel(lPtr); } } WMPixmap *WMGetLabelImage(WMLabel * lPtr) { return lPtr->image; } char *WMGetLabelText(WMLabel * lPtr) { return lPtr->caption; } void WMSetLabelImagePosition(WMLabel * lPtr, WMImagePosition position) { lPtr->flags.imagePosition = position; if (lPtr->view->flags.realized) { paintLabel(lPtr); } } void WMSetLabelTextAlignment(WMLabel * lPtr, WMAlignment alignment) { lPtr->flags.alignment = alignment; if (lPtr->view->flags.realized) { paintLabel(lPtr); } } void WMSetLabelRelief(WMLabel * lPtr, WMReliefType relief) { lPtr->flags.relief = relief; if (lPtr->view->flags.realized) { paintLabel(lPtr); } } void WMSetLabelText(WMLabel * lPtr, const char *text) { if (lPtr->caption) wfree(lPtr->caption); if (text != NULL) { lPtr->caption = wstrdup(text); } else { lPtr->caption = NULL; } if (lPtr->view->flags.realized) { paintLabel(lPtr); } } WMFont *WMGetLabelFont(WMLabel * lPtr) { return lPtr->font; } void WMSetLabelFont(WMLabel * lPtr, WMFont * font) { if (lPtr->font != NULL) WMReleaseFont(lPtr->font); if (font) lPtr->font = WMRetainFont(font); else lPtr->font = NULL; if (lPtr->view->flags.realized) { paintLabel(lPtr); } } void WMSetLabelTextColor(WMLabel * lPtr, WMColor * color) { if (lPtr->textColor) WMReleaseColor(lPtr->textColor); lPtr->textColor = WMRetainColor(color); if (lPtr->view->flags.realized) { paintLabel(lPtr); } } void WMSetLabelWraps(WMLabel * lPtr, Bool flag) { flag = ((flag == 0) ? 0 : 1); if (lPtr->flags.noWrap != !flag) { lPtr->flags.noWrap = !flag; if (lPtr->view->flags.realized) paintLabel(lPtr); } } static void paintLabel(Label * lPtr) { W_Screen *scrPtr = lPtr->view->screen; W_PaintTextAndImage(lPtr->view, !lPtr->flags.noWrap, lPtr->textColor ? lPtr->textColor : scrPtr->black, (lPtr->font != NULL ? lPtr->font : scrPtr->normalFont), lPtr->flags.relief, lPtr->caption, lPtr->flags.alignment, lPtr->image, lPtr->flags.imagePosition, NULL, 0); } static void handleEvents(XEvent * event, void *data) { Label *lPtr = (Label *) data; CHECK_CLASS(data, WC_Label); switch (event->type) { case Expose: if (event->xexpose.count != 0) break; paintLabel(lPtr); break; case DestroyNotify: destroyLabel(lPtr); break; } } static void destroyLabel(Label * lPtr) { if (lPtr->textColor) WMReleaseColor(lPtr->textColor); if (lPtr->caption) wfree(lPtr->caption); if (lPtr->font) WMReleaseFont(lPtr->font); if (lPtr->image) WMReleasePixmap(lPtr->image); wfree(lPtr); } WindowMaker-0.95.5/WINGs/wevent.c0000644000175000017500000002611012214432632013364 00000000000000 /* * This event handling stuff was inspired on Tk. */ #include "WINGsP.h" /* table to map event types to event masks */ static const unsigned long eventMasks[] = { 0, 0, KeyPressMask, /* KeyPress */ KeyReleaseMask, /* KeyRelease */ ButtonPressMask, /* ButtonPress */ ButtonReleaseMask, /* ButtonRelease */ PointerMotionMask | PointerMotionHintMask | ButtonMotionMask | Button1MotionMask | Button2MotionMask | Button3MotionMask | Button4MotionMask | Button5MotionMask, /* MotionNotify */ EnterWindowMask, /* EnterNotify */ LeaveWindowMask, /* LeaveNotify */ FocusChangeMask, /* FocusIn */ FocusChangeMask, /* FocusOut */ KeymapStateMask, /* KeymapNotify */ ExposureMask, /* Expose */ ExposureMask, /* GraphicsExpose */ ExposureMask, /* NoExpose */ VisibilityChangeMask, /* VisibilityNotify */ SubstructureNotifyMask, /* CreateNotify */ StructureNotifyMask, /* DestroyNotify */ StructureNotifyMask, /* UnmapNotify */ StructureNotifyMask, /* MapNotify */ SubstructureRedirectMask, /* MapRequest */ StructureNotifyMask, /* ReparentNotify */ StructureNotifyMask, /* ConfigureNotify */ SubstructureRedirectMask, /* ConfigureRequest */ StructureNotifyMask, /* GravityNotify */ ResizeRedirectMask, /* ResizeRequest */ StructureNotifyMask, /* CirculateNotify */ SubstructureRedirectMask, /* CirculateRequest */ PropertyChangeMask, /* PropertyNotify */ 0, /* SelectionClear */ 0, /* SelectionRequest */ 0, /* SelectionNotify */ ColormapChangeMask, /* ColormapNotify */ ClientMessageMask, /* ClientMessage */ 0, /* Mapping Notify */ }; /* hook for other toolkits or wmaker process their events */ static WMEventHook *extraEventHandler = NULL; /* * WMCreateEventHandler-- * Create an event handler and put it in the event handler list for the * view. If the same callback and clientdata are already used in another * handler, the masks are OR'ed. * */ void WMCreateEventHandler(WMView * view, unsigned long mask, WMEventProc * eventProc, void *clientData) { W_EventHandler *hPtr; WMArrayIterator iter; WM_ITERATE_ARRAY(view->eventHandlers, hPtr, iter) { if (hPtr->clientData == clientData && hPtr->proc == eventProc) { hPtr->eventMask |= mask; return; } } hPtr = wmalloc(sizeof(W_EventHandler)); /* select events for window */ hPtr->eventMask = mask; hPtr->proc = eventProc; hPtr->clientData = clientData; WMAddToArray(view->eventHandlers, hPtr); } static int matchHandler(const void *item, const void *cdata) { const W_EventHandler *h1 = item; const W_EventHandler *h2 = cdata; return ((h1->eventMask == h2->eventMask) && (h1->proc == h2->proc) && (h1->clientData == h2->clientData)); } /* * WMDeleteEventHandler-- * Delete event handler matching arguments from windows * event handler list. * */ void WMDeleteEventHandler(WMView * view, unsigned long mask, WMEventProc * eventProc, void *clientData) { W_EventHandler tmp; tmp.eventMask = mask; tmp.proc = eventProc; tmp.clientData = clientData; WMRemoveFromArrayMatching(view->eventHandlers, matchHandler, (void *)&tmp); } static Time getEventTime(WMScreen * screen, XEvent * event) { switch (event->type) { case ButtonPress: case ButtonRelease: return event->xbutton.time; case KeyPress: case KeyRelease: return event->xkey.time; case MotionNotify: return event->xmotion.time; case EnterNotify: case LeaveNotify: return event->xcrossing.time; case PropertyNotify: return event->xproperty.time; case SelectionClear: return event->xselectionclear.time; case SelectionRequest: return event->xselectionrequest.time; case SelectionNotify: return event->xselection.time; default: return screen->lastEventTime; } } void W_CallDestroyHandlers(W_View * view) { XEvent event; WMArrayIterator iter; W_EventHandler *hPtr; event.type = DestroyNotify; event.xdestroywindow.window = view->window; event.xdestroywindow.event = view->window; WM_ITERATE_ARRAY(view->eventHandlers, hPtr, iter) { if (hPtr->eventMask & StructureNotifyMask) { (*hPtr->proc) (&event, hPtr->clientData); } } } void WMSetViewNextResponder(WMView * view, WMView * responder) { /* set the widget to receive keyboard events that aren't handled * by this widget */ view->nextResponder = responder; } void WMRelayToNextResponder(WMView * view, XEvent * event) { unsigned long mask = eventMasks[event->xany.type]; if (view->nextResponder) { WMView *next = view->nextResponder; W_EventHandler *hPtr; WMArrayIterator iter; WM_ITERATE_ARRAY(next->eventHandlers, hPtr, iter) { if ((hPtr->eventMask & mask)) { (*hPtr->proc) (event, hPtr->clientData); } } } } int WMHandleEvent(XEvent * event) { W_EventHandler *hPtr; W_View *view, *toplevel; unsigned long mask; Window window; WMArrayIterator iter; if (event->type == MappingNotify) { XRefreshKeyboardMapping(&event->xmapping); return True; } if (XFilterEvent(event, None) == True) { return False; } mask = eventMasks[event->xany.type]; window = event->xany.window; /* diferentiate SubstructureNotify with StructureNotify */ if (mask == StructureNotifyMask) { if (event->xmap.event != event->xmap.window) { mask = SubstructureNotifyMask; window = event->xmap.event; } } view = W_GetViewForXWindow(event->xany.display, window); if (!view) { if (extraEventHandler) (extraEventHandler) (event); return False; } view->screen->lastEventTime = getEventTime(view->screen, event); toplevel = W_TopLevelOfView(view); if (event->type == SelectionNotify || event->type == SelectionClear || event->type == SelectionRequest) { /* handle selection related events */ W_HandleSelectionEvent(event); } /* if it's a key event, redispatch it to the focused control */ if (mask & (KeyPressMask | KeyReleaseMask)) { W_View *focused = W_FocusedViewOfToplevel(toplevel); if (focused) { view = focused; } } /* compress Motion events */ if (event->type == MotionNotify && !view->flags.dontCompressMotion) { while (XPending(event->xmotion.display)) { XEvent ev; XPeekEvent(event->xmotion.display, &ev); if (ev.type == MotionNotify && event->xmotion.window == ev.xmotion.window && event->xmotion.subwindow == ev.xmotion.subwindow) { /* replace events */ XNextEvent(event->xmotion.display, event); } else break; } } /* compress expose events */ if (event->type == Expose && !view->flags.dontCompressExpose) { while (XCheckTypedWindowEvent(event->xexpose.display, view->window, Expose, event)) ; } if (view->screen->modalLoop && toplevel != view->screen->modalView && !toplevel->flags.worksWhenModal) { if (event->type == KeyPress || event->type == KeyRelease || event->type == MotionNotify || event->type == ButtonPress || event->type == ButtonRelease || event->type == FocusIn || event->type == FocusOut) { return True; } } /* do balloon stuffs */ if (event->type == EnterNotify) W_BalloonHandleEnterView(view); else if (event->type == LeaveNotify) W_BalloonHandleLeaveView(view); /* This is a hack. It will make the panel be secure while * the event handlers are handled, as some event handler * might destroy the widget. */ W_RetainView(toplevel); WM_ITERATE_ARRAY(view->eventHandlers, hPtr, iter) { if ((hPtr->eventMask & mask)) { (*hPtr->proc) (event, hPtr->clientData); } } #if 0 /* pass the event to the top level window of the widget */ /* TODO: change this to a responder chain */ if (view->parent != NULL) { vPtr = view; while (vPtr->parent != NULL) vPtr = vPtr->parent; WM_ITERATE_ARRAY(vPtr->eventHandlers, hPtr, iter) { if (hPtr->eventMask & mask) { (*hPtr->proc) (event, hPtr->clientData); } } } #endif /* save button click info to track double-clicks */ if (view->screen->ignoreNextDoubleClick) { view->screen->ignoreNextDoubleClick = 0; } else { if (event->type == ButtonPress) { view->screen->lastClickWindow = event->xbutton.window; view->screen->lastClickTime = event->xbutton.time; } } if (event->type == ClientMessage) { /* must be handled at the end, for such message can destroy the view */ W_HandleDNDClientMessage(toplevel, &event->xclient); } W_ReleaseView(toplevel); return True; } int WMIsDoubleClick(XEvent * event) { W_View *view; if (event->type != ButtonPress) return False; view = W_GetViewForXWindow(event->xany.display, event->xbutton.window); if (!view) return False; if (view->screen->lastClickWindow != event->xbutton.window) return False; if (event->xbutton.time - view->screen->lastClickTime < WINGsConfiguration.doubleClickDelay) { view->screen->lastClickTime = 0; view->screen->lastClickWindow = None; view->screen->ignoreNextDoubleClick = 1; return True; } else return False; } /* * Check for X and input events. If X events are present input events will * not be checked. * * Return value: True if a X event is available or any input event was * processed, false otherwise (including return because of * some timer handler expired). * * If waitForInput is False, it will just peek for available input and return * without processing. Return vaue will be True if input is available. * * If waitForInput is True, it will wait until an input event arrives on the * registered input handlers and ConnectionNumber(dpy), or will return when * a timer handler expires if no input event arrived until then. */ static Bool waitForEvent(Display * dpy, unsigned long xeventmask, Bool waitForInput) { XSync(dpy, False); if (xeventmask == 0) { if (XPending(dpy)) return True; } else { XEvent ev; if (XCheckMaskEvent(dpy, xeventmask, &ev)) { XPutBackEvent(dpy, &ev); return True; } } return W_HandleInputEvents(waitForInput, ConnectionNumber(dpy)); } void WMNextEvent(Display * dpy, XEvent * event) { /* Check any expired timers */ W_CheckTimerHandlers(); while (XPending(dpy) == 0) { /* Do idle and timer stuff while there are no input or X events */ while (!waitForEvent(dpy, 0, False) && W_CheckIdleHandlers()) { /* dispatch timer events */ W_CheckTimerHandlers(); } /* * Make sure that new events did not arrive while we were doing * timer/idle stuff. Or we might block forever waiting for * an event that already arrived. */ /* wait for something to happen or a timer to expire */ waitForEvent(dpy, 0, True); /* Check any expired timers */ W_CheckTimerHandlers(); } XNextEvent(dpy, event); } void WMMaskEvent(Display * dpy, long mask, XEvent * event) { /* Check any expired timers */ W_CheckTimerHandlers(); while (!XCheckMaskEvent(dpy, mask, event)) { /* Do idle and timer stuff while there are no input or X events */ while (!waitForEvent(dpy, mask, False) && W_CheckIdleHandlers()) { W_CheckTimerHandlers(); } if (XCheckMaskEvent(dpy, mask, event)) return; /* Wait for input on the X connection socket or another input handler */ waitForEvent(dpy, mask, True); /* Check any expired timers */ W_CheckTimerHandlers(); } } Bool WMScreenPending(WMScreen * scr) { if (XPending(scr->display)) return True; else return False; } WMEventHook *WMHookEventHandler(WMEventHook * handler) { WMEventHook *oldHandler = extraEventHandler; extraEventHandler = handler; return oldHandler; } WindowMaker-0.95.5/WINGs/wscroller.c0000644000175000017500000005213612214432632014077 00000000000000 /* * Until FreeBSD gets their act together; * http://www.mail-archive.com/freebsd-hackers@freebsd.org/msg69469.html */ #if defined( FREEBSD ) # undef _XOPEN_SOURCE #endif #include "WINGsP.h" #include /* undefine will disable the autoadjusting of the knob dimple to be * directly below the cursor * DOES NOT WORK */ #undef STRICT_NEXT_BEHAVIOUR #define AUTOSCROLL_INITIAL_DELAY 200 #define AUTOSCROLL_DELAY 40 char *WMScrollerDidScrollNotification = "WMScrollerDidScrollNotification"; typedef struct W_Scroller { W_Class widgetClass; W_View *view; void *clientData; WMAction *action; float knobProportion; float floatValue; WMHandlerID timerID; /* for continuous scrolling mode */ #ifndef STRICT_NEXT_BEHAVIOUR int dragPoint; /* point where the knob is being * dragged */ #endif struct { WMScrollArrowPosition arrowsPosition:4; unsigned int horizontal:1; WMScrollerPart hitPart:4; /* */ unsigned int documentFullyVisible:1; /* document is fully visible */ unsigned int prevSelected:1; unsigned int pushed:1; unsigned int incrDown:1; /* whether increment button is down */ unsigned int decrDown:1; unsigned int draggingKnob:1; unsigned int configured:1; unsigned int redrawPending:1; } flags; } Scroller; #define DEFAULT_HEIGHT 60 #define DEFAULT_WIDTH SCROLLER_WIDTH #define DEFAULT_ARROWS_POSITION WSAMinEnd #define BUTTON_SIZE ((SCROLLER_WIDTH) - 4) static void destroyScroller(Scroller * sPtr); static void paintScroller(Scroller * sPtr); static void willResizeScroller(W_ViewDelegate * self, WMView * view, unsigned int *width, unsigned int *height); static void handleEvents(XEvent * event, void *data); static void handleActionEvents(XEvent * event, void *data); static void handleMotion(Scroller * sPtr, int mouseX, int mouseY); W_ViewDelegate _ScrollerViewDelegate = { NULL, NULL, NULL, NULL, willResizeScroller }; WMScroller *WMCreateScroller(WMWidget * parent) { Scroller *sPtr; sPtr = wmalloc(sizeof(Scroller)); sPtr->widgetClass = WC_Scroller; sPtr->view = W_CreateView(W_VIEW(parent)); if (!sPtr->view) { wfree(sPtr); return NULL; } sPtr->view->self = sPtr; sPtr->view->delegate = &_ScrollerViewDelegate; sPtr->flags.documentFullyVisible = 1; WMCreateEventHandler(sPtr->view, ExposureMask | StructureNotifyMask | ClientMessageMask, handleEvents, sPtr); W_ResizeView(sPtr->view, DEFAULT_WIDTH, DEFAULT_WIDTH); sPtr->flags.arrowsPosition = DEFAULT_ARROWS_POSITION; WMCreateEventHandler(sPtr->view, ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask | ButtonMotionMask, handleActionEvents, sPtr); sPtr->flags.hitPart = WSNoPart; sPtr->floatValue = 0.0; sPtr->knobProportion = 1.0; return sPtr; } void WMSetScrollerArrowsPosition(WMScroller * sPtr, WMScrollArrowPosition position) { sPtr->flags.arrowsPosition = position; if (sPtr->view->flags.realized) { paintScroller(sPtr); } } static void willResizeScroller(W_ViewDelegate * self, WMView * view, unsigned int *width, unsigned int *height) { WMScroller *sPtr = (WMScroller *) view->self; if (*width > *height) { sPtr->flags.horizontal = 1; *height = SCROLLER_WIDTH; } else { sPtr->flags.horizontal = 0; *width = SCROLLER_WIDTH; } } void WMSetScrollerAction(WMScroller * sPtr, WMAction * action, void *clientData) { CHECK_CLASS(sPtr, WC_Scroller); sPtr->action = action; sPtr->clientData = clientData; } void WMSetScrollerParameters(WMScroller * sPtr, float floatValue, float knobProportion) { /* * This value represents 1 pixel on a 4k wide screen, it makes * a good minimum; this ensure a non-null value to avoid * potential division-by-0. * Please note that there is another size check when drawing * the knob to make sure it will remain selectable. */ static const float min_knob_proportion = 1.0 / 4096.0; CHECK_CLASS(sPtr, WC_Scroller); assert(!isnan(floatValue)); if (floatValue < 0.0) sPtr->floatValue = 0.0; else if (floatValue > 1.0) sPtr->floatValue = 1.0; else sPtr->floatValue = floatValue; if (knobProportion <= min_knob_proportion) { sPtr->knobProportion = min_knob_proportion; sPtr->flags.documentFullyVisible = 0; } else if (knobProportion >= 1.0) { sPtr->knobProportion = 1.0; sPtr->flags.documentFullyVisible = 1; } else { sPtr->knobProportion = knobProportion; sPtr->flags.documentFullyVisible = 0; } if (sPtr->view->flags.realized) paintScroller(sPtr); /* WMPostNotificationName(WMScrollerDidScrollNotification, sPtr, NULL); */ } float WMGetScrollerKnobProportion(WMScroller * sPtr) { CHECK_CLASS(sPtr, WC_Scroller); return sPtr->knobProportion; } float WMGetScrollerValue(WMScroller * sPtr) { CHECK_CLASS(sPtr, WC_Scroller); return sPtr->floatValue; } WMScrollerPart WMGetScrollerHitPart(WMScroller * sPtr) { CHECK_CLASS(sPtr, WC_Scroller); return sPtr->flags.hitPart; } static void paintArrow(WMScroller * sPtr, Drawable d, int part) /* * part- 0 paints the decrement arrow, 1 the increment arrow */ { WMView *view = sPtr->view; WMScreen *scr = view->screen; int ofs; W_Pixmap *arrow; #ifndef DOUBLE_BUFFER GC gc = scr->lightGC; #endif if (part == 0) { /* decrement button */ if (sPtr->flags.horizontal) { if (sPtr->flags.arrowsPosition == WSAMaxEnd) { ofs = view->size.width - 2 * (BUTTON_SIZE + 1) - 1; } else { ofs = 2; } if (sPtr->flags.decrDown) arrow = scr->hiLeftArrow; else arrow = scr->leftArrow; } else { if (sPtr->flags.arrowsPosition == WSAMaxEnd) { ofs = view->size.height - 2 * (BUTTON_SIZE + 1) - 1; } else { ofs = 2; } if (sPtr->flags.decrDown) arrow = scr->hiUpArrow; else arrow = scr->upArrow; } #ifndef DOUBLE_BUFFER if (sPtr->flags.decrDown) gc = WMColorGC(scr->white); #endif } else { /* increment button */ if (sPtr->flags.horizontal) { if (sPtr->flags.arrowsPosition == WSAMaxEnd) { ofs = view->size.width - BUTTON_SIZE + 1 - 3; } else { ofs = 2 + BUTTON_SIZE + 1; } if (sPtr->flags.incrDown) arrow = scr->hiRightArrow; else arrow = scr->rightArrow; } else { if (sPtr->flags.arrowsPosition == WSAMaxEnd) { ofs = view->size.height - BUTTON_SIZE + 1 - 3; } else { ofs = 2 + BUTTON_SIZE + 1; } if (sPtr->flags.incrDown) arrow = scr->hiDownArrow; else arrow = scr->downArrow; } #ifndef DOUBLE_BUFFER if (sPtr->flags.incrDown) gc = scr->whiteGC; #endif } if (sPtr->flags.horizontal) { /* paint button */ #ifndef DOUBLE_BUFFER XFillRectangle(scr->display, d, gc, ofs + 1, 2 + 1, BUTTON_SIZE + 1 - 3, BUTTON_SIZE - 3); #else if ((!part && sPtr->flags.decrDown) || (part && sPtr->flags.incrDown)) XFillRectangle(scr->display, d, WMColorGC(scr->white), ofs + 1, 2 + 1, BUTTON_SIZE + 1 - 3, BUTTON_SIZE - 3); #endif /* DOUBLE_BUFFER */ W_DrawRelief(scr, d, ofs, 2, BUTTON_SIZE, BUTTON_SIZE, WRRaised); /* paint arrow */ XSetClipMask(scr->display, scr->clipGC, arrow->mask); XSetClipOrigin(scr->display, scr->clipGC, ofs + (BUTTON_SIZE - arrow->width) / 2, 2 + (BUTTON_SIZE - arrow->height) / 2); XCopyArea(scr->display, arrow->pixmap, d, scr->clipGC, 0, 0, arrow->width, arrow->height, ofs + (BUTTON_SIZE - arrow->width) / 2, 2 + (BUTTON_SIZE - arrow->height) / 2); } else { /* vertical */ /* paint button */ #ifndef DOUBLE_BUFFER XFillRectangle(scr->display, d, gc, 2 + 1, ofs + 1, BUTTON_SIZE - 3, BUTTON_SIZE + 1 - 3); #else if ((!part && sPtr->flags.decrDown) || (part && sPtr->flags.incrDown)) XFillRectangle(scr->display, d, WMColorGC(scr->white), 2 + 1, ofs + 1, BUTTON_SIZE - 3, BUTTON_SIZE + 1 - 3); #endif /* DOUBLE_BUFFER */ W_DrawRelief(scr, d, 2, ofs, BUTTON_SIZE, BUTTON_SIZE, WRRaised); /* paint arrow */ XSetClipMask(scr->display, scr->clipGC, arrow->mask); XSetClipOrigin(scr->display, scr->clipGC, 2 + (BUTTON_SIZE - arrow->width) / 2, ofs + (BUTTON_SIZE - arrow->height) / 2); XCopyArea(scr->display, arrow->pixmap, d, scr->clipGC, 0, 0, arrow->width, arrow->height, 2 + (BUTTON_SIZE - arrow->width) / 2, ofs + (BUTTON_SIZE - arrow->height) / 2); } } static int knobLength(Scroller * sPtr) { int tmp, length; if (sPtr->flags.horizontal) length = sPtr->view->size.width - 4; else length = sPtr->view->size.height - 4; if (sPtr->flags.arrowsPosition != WSANone) { length -= 2 * (BUTTON_SIZE + 1); } tmp = (int)((float)length * sPtr->knobProportion + 0.5); /* keep minimum size */ if (tmp < BUTTON_SIZE) tmp = BUTTON_SIZE; return tmp; } static void paintScroller(Scroller * sPtr) { WMView *view = sPtr->view; WMScreen *scr = view->screen; #ifdef DOUBLE_BUFFER Pixmap d; #else Drawable d = view->window; #endif int length, ofs; float knobP, knobL; #ifdef DOUBLE_BUFFER d = XCreatePixmap(scr->display, view->window, view->size.width, view->size.height, scr->depth); XFillRectangle(scr->display, d, WMColorGC(scr->gray), 0, 0, view->size.width, view->size.height); #endif XDrawRectangle(scr->display, d, WMColorGC(scr->black), 0, 0, view->size.width - 1, view->size.height - 1); #ifndef DOUBLE_BUFFER XDrawRectangle(scr->display, d, WMColorGC(scr->gray), 1, 1, view->size.width - 3, view->size.height - 3); #endif if (sPtr->flags.horizontal) length = view->size.width - 4; else length = view->size.height - 4; if (sPtr->flags.documentFullyVisible) { XFillRectangle(scr->display, d, scr->stippleGC, 2, 2, view->size.width - 4, view->size.height - 4); } else { ofs = 2; if (sPtr->flags.arrowsPosition == WSAMaxEnd) { length -= (BUTTON_SIZE + 1) * 2; } else if (sPtr->flags.arrowsPosition == WSAMinEnd) { ofs += (BUTTON_SIZE + 1) * 2; length -= (BUTTON_SIZE + 1) * 2; } knobL = (float)knobLength(sPtr); knobP = sPtr->floatValue * ((float)length - knobL); if (sPtr->flags.horizontal) { /* before */ XFillRectangle(scr->display, d, scr->stippleGC, ofs, 2, (int)knobP, view->size.height - 4); /* knob */ #ifndef DOUBLE_BUFFER XFillRectangle(scr->display, d, scr->lightGC, ofs + (int)knobP + 2, 2 + 2, (int)knobL - 4, view->size.height - 4 - 4); #endif W_DrawRelief(scr, d, ofs + (int)knobP, 2, (int)knobL, view->size.height - 4, WRRaised); XCopyArea(scr->display, scr->scrollerDimple->pixmap, d, scr->copyGC, 0, 0, scr->scrollerDimple->width, scr->scrollerDimple->height, ofs + (int)knobP + ((int)knobL - scr->scrollerDimple->width - 1) / 2, (view->size.height - scr->scrollerDimple->height - 1) / 2); /* after */ if ((int)(knobP + knobL) < length) XFillRectangle(scr->display, d, scr->stippleGC, ofs + (int)(knobP + knobL), 2, length - (int)(knobP + knobL), view->size.height - 4); } else { /* before */ if (knobP > 0.0) XFillRectangle(scr->display, d, scr->stippleGC, 2, ofs, view->size.width - 4, (int)knobP); /* knob */ #ifndef DOUBLE_BUFFER XFillRectangle(scr->display, d, scr->lightGC, 2 + 2, ofs + (int)knobP + 2, view->size.width - 4 - 4, (int)knobL - 4); #endif XCopyArea(scr->display, scr->scrollerDimple->pixmap, d, scr->copyGC, 0, 0, scr->scrollerDimple->width, scr->scrollerDimple->height, (view->size.width - scr->scrollerDimple->width - 1) / 2, ofs + (int)knobP + ((int)knobL - scr->scrollerDimple->height - 1) / 2); W_DrawRelief(scr, d, 2, ofs + (int)knobP, view->size.width - 4, (int)knobL, WRRaised); /* after */ if ((int)(knobP + knobL) < length) XFillRectangle(scr->display, d, scr->stippleGC, 2, ofs + (int)(knobP + knobL), view->size.width - 4, length - (int)(knobP + knobL)); } if (sPtr->flags.arrowsPosition != WSANone) { paintArrow(sPtr, d, 0); paintArrow(sPtr, d, 1); } } #ifdef DOUBLE_BUFFER XCopyArea(scr->display, d, view->window, scr->copyGC, 0, 0, view->size.width, view->size.height, 0, 0); XFreePixmap(scr->display, d); #endif } static void handleEvents(XEvent * event, void *data) { Scroller *sPtr = (Scroller *) data; CHECK_CLASS(data, WC_Scroller); switch (event->type) { case Expose: if (event->xexpose.count == 0) paintScroller(sPtr); break; case DestroyNotify: destroyScroller(sPtr); break; } } /* * locatePointInScroller- * Return the part of the scroller where the point is located. */ static WMScrollerPart locatePointInScroller(Scroller * sPtr, int x, int y, int alternate) { int width = sPtr->view->size.width; int height = sPtr->view->size.height; int c, p1, p2, p3, p4, p5, p6; int knobL, slotL; /* if there is no knob... */ if (sPtr->flags.documentFullyVisible) return WSKnobSlot; if (sPtr->flags.horizontal) c = x; else c = y; /* p1 p2 p3 p4 p5 p6 * | | |###########| |#####| | | * | < | > |###########| O |#####| < | > | * | | |###########| |#####| | | */ if (sPtr->flags.arrowsPosition == WSAMinEnd) { p1 = 18; p2 = 36; if (sPtr->flags.horizontal) { slotL = width - 36; p5 = width; } else { slotL = height - 36; p5 = height; } p6 = p5; } else if (sPtr->flags.arrowsPosition == WSAMaxEnd) { if (sPtr->flags.horizontal) { slotL = width - 36; p6 = width - 18; } else { slotL = height - 36; p6 = height - 18; } p5 = p6 - 18; p1 = p2 = 0; } else { /* no arrows */ p1 = p2 = 0; if (sPtr->flags.horizontal) { slotL = p5 = p6 = width; } else { slotL = p5 = p6 = height; } } knobL = knobLength(sPtr); p3 = p2 + (int)((float)(slotL - knobL) * sPtr->floatValue); p4 = p3 + knobL; /* uses a mix of the NS and Win ways of doing scroll page */ if (c <= p1) return alternate ? WSDecrementPage : WSDecrementLine; else if (c <= p2) return alternate ? WSIncrementPage : WSIncrementLine; else if (c <= p3) return WSDecrementPage; else if (c <= p4) return WSKnob; else if (c <= p5) return WSIncrementPage; else if (c <= p6) return alternate ? WSDecrementPage : WSDecrementLine; else return alternate ? WSIncrementPage : WSIncrementLine; } static void handlePush(Scroller * sPtr, int pushX, int pushY, int alternate) { WMScrollerPart part; int doAction = 0; part = locatePointInScroller(sPtr, pushX, pushY, alternate); sPtr->flags.hitPart = part; switch (part) { case WSIncrementLine: sPtr->flags.incrDown = 1; doAction = 1; break; case WSIncrementPage: doAction = 1; break; case WSDecrementLine: sPtr->flags.decrDown = 1; doAction = 1; break; case WSDecrementPage: doAction = 1; break; case WSKnob: sPtr->flags.draggingKnob = 1; #ifndef STRICT_NEXT_BEHAVIOUR if (sPtr->flags.horizontal) sPtr->dragPoint = pushX; else sPtr->dragPoint = pushY; { int length, knobP; int buttonsLen; if (sPtr->flags.arrowsPosition != WSANone) buttonsLen = 2 * (BUTTON_SIZE + 1); else buttonsLen = 0; if (sPtr->flags.horizontal) length = sPtr->view->size.width - 4 - buttonsLen; else length = sPtr->view->size.height - 4 - buttonsLen; knobP = (int)(sPtr->floatValue * (float)(length - knobLength(sPtr))); if (sPtr->flags.arrowsPosition == WSAMinEnd) sPtr->dragPoint -= 2 + buttonsLen + knobP; else sPtr->dragPoint -= 2 + knobP; } #endif /* STRICT_NEXT_BEHAVIOUR */ /* This does not seem necesary here since we don't know yet if the * knob will be dragged later. -Dan handleMotion(sPtr, pushX, pushY); */ break; case WSDecrementWheel: case WSIncrementWheel: case WSKnobSlot: case WSNoPart: /* dummy */ break; } if (doAction && sPtr->action) { (*sPtr->action) (sPtr, sPtr->clientData); WMPostNotificationName(WMScrollerDidScrollNotification, sPtr, NULL); } } static float floatValueForPoint(Scroller * sPtr, int point) { float floatValue = 0; float position; int slotOfs, slotLength, knobL; if (sPtr->flags.horizontal) slotLength = sPtr->view->size.width - 4; else slotLength = sPtr->view->size.height - 4; slotOfs = 2; if (sPtr->flags.arrowsPosition == WSAMaxEnd) { slotLength -= (BUTTON_SIZE + 1) * 2; } else if (sPtr->flags.arrowsPosition == WSAMinEnd) { slotOfs += (BUTTON_SIZE + 1) * 2; slotLength -= (BUTTON_SIZE + 1) * 2; } knobL = (float)knobLength(sPtr); #ifdef STRICT_NEXT_BEHAVIOUR if (point < slotOfs + knobL / 2) position = (float)(slotOfs + knobL / 2); else if (point > slotOfs + slotLength - knobL / 2) position = (float)(slotOfs + slotLength - knobL / 2); else position = (float)point; floatValue = (position - (float)(slotOfs + slotLength / 2)) / (float)(slotLength - knobL); #else /* Adjust the last point to lie inside the knob slot */ if (point < slotOfs) position = (float)slotOfs; else if (point > slotOfs + slotLength) position = (float)(slotOfs + slotLength); else position = (float)point; /* Compute the float value */ floatValue = (position - (float)slotOfs) / (float)(slotLength - knobL); #endif assert(!isnan(floatValue)); return floatValue; } static void handleMotion(Scroller * sPtr, int mouseX, int mouseY) { if (sPtr->flags.draggingKnob) { float newFloatValue; int point; if (sPtr->flags.horizontal) { point = mouseX; } else { point = mouseY; } #ifndef STRICT_NEXT_BEHAVIOUR point -= sPtr->dragPoint; #endif newFloatValue = floatValueForPoint(sPtr, point); WMSetScrollerParameters(sPtr, newFloatValue, sPtr->knobProportion); if (sPtr->action) { (*sPtr->action) (sPtr, sPtr->clientData); WMPostNotificationName(WMScrollerDidScrollNotification, sPtr, NULL); } } else { int part; part = locatePointInScroller(sPtr, mouseX, mouseY, False); sPtr->flags.hitPart = part; if (part == WSIncrementLine && sPtr->flags.decrDown) { sPtr->flags.decrDown = 0; sPtr->flags.incrDown = 1; } else if (part == WSDecrementLine && sPtr->flags.incrDown) { sPtr->flags.incrDown = 0; sPtr->flags.decrDown = 1; } else if (part != WSIncrementLine && part != WSDecrementLine) { sPtr->flags.incrDown = 0; sPtr->flags.decrDown = 0; } } } static void autoScroll(void *clientData) { Scroller *sPtr = (Scroller *) clientData; if (sPtr->action) { (*sPtr->action) (sPtr, sPtr->clientData); WMPostNotificationName(WMScrollerDidScrollNotification, sPtr, NULL); } sPtr->timerID = WMAddTimerHandler(AUTOSCROLL_DELAY, autoScroll, clientData); } static void handleActionEvents(XEvent * event, void *data) { Scroller *sPtr = (Scroller *) data; int wheelDecrement, wheelIncrement; int id, dd; /* check if we're really dealing with a scroller, as something * might have gone wrong in the event dispatching stuff */ CHECK_CLASS(sPtr, WC_Scroller); id = sPtr->flags.incrDown; dd = sPtr->flags.decrDown; switch (event->type) { case EnterNotify: break; case LeaveNotify: if (sPtr->timerID) { WMDeleteTimerHandler(sPtr->timerID); sPtr->timerID = NULL; } sPtr->flags.incrDown = 0; sPtr->flags.decrDown = 0; break; case ButtonPress: /* FIXME: change Mod1Mask with something else */ if (sPtr->flags.documentFullyVisible) break; if (sPtr->flags.horizontal) { wheelDecrement = WINGsConfiguration.mouseWheelDown; wheelIncrement = WINGsConfiguration.mouseWheelUp; } else { wheelDecrement = WINGsConfiguration.mouseWheelUp; wheelIncrement = WINGsConfiguration.mouseWheelDown; } if (event->xbutton.button == wheelDecrement) { if (event->xbutton.state & ControlMask) { sPtr->flags.hitPart = WSDecrementPage; } else if (event->xbutton.state & ShiftMask) { sPtr->flags.hitPart = WSDecrementLine; } else { sPtr->flags.hitPart = WSDecrementWheel; } if (sPtr->action) { (*sPtr->action) (sPtr, sPtr->clientData); WMPostNotificationName(WMScrollerDidScrollNotification, sPtr, NULL); } } else if (event->xbutton.button == wheelIncrement) { if (event->xbutton.state & ControlMask) { sPtr->flags.hitPart = WSIncrementPage; } else if (event->xbutton.state & ShiftMask) { sPtr->flags.hitPart = WSIncrementLine; } else { sPtr->flags.hitPart = WSIncrementWheel; } if (sPtr->action) { (*sPtr->action) (sPtr, sPtr->clientData); WMPostNotificationName(WMScrollerDidScrollNotification, sPtr, NULL); } } else { handlePush(sPtr, event->xbutton.x, event->xbutton.y, (event->xbutton.state & Mod1Mask) || event->xbutton.button == Button2); /* continue scrolling if pushed on the buttons */ if (sPtr->flags.hitPart == WSIncrementLine || sPtr->flags.hitPart == WSDecrementLine) { sPtr->timerID = WMAddTimerHandler(AUTOSCROLL_INITIAL_DELAY, autoScroll, sPtr); } } break; case ButtonRelease: if (sPtr->flags.draggingKnob) { if (sPtr->action) { (*sPtr->action) (sPtr, sPtr->clientData); WMPostNotificationName(WMScrollerDidScrollNotification, sPtr, NULL); } } if (sPtr->timerID) { WMDeleteTimerHandler(sPtr->timerID); sPtr->timerID = NULL; } sPtr->flags.incrDown = 0; sPtr->flags.decrDown = 0; sPtr->flags.draggingKnob = 0; break; case MotionNotify: handleMotion(sPtr, event->xbutton.x, event->xbutton.y); if (sPtr->timerID && sPtr->flags.hitPart != WSIncrementLine && sPtr->flags.hitPart != WSDecrementLine) { WMDeleteTimerHandler(sPtr->timerID); sPtr->timerID = NULL; } break; } if (id != sPtr->flags.incrDown || dd != sPtr->flags.decrDown) paintScroller(sPtr); } static void destroyScroller(Scroller * sPtr) { /* we don't want autoscroll try to scroll a freed widget */ if (sPtr->timerID) { WMDeleteTimerHandler(sPtr->timerID); } wfree(sPtr); } WindowMaker-0.95.5/WINGs/proplist.c0000644000175000017500000011444412214432632013740 00000000000000 #include #include #include #include #include #include #include #include #include #include #include #include "WUtil.h" #include "wconfig.h" typedef enum { WPLString = 0x57504c01, WPLData = 0x57504c02, WPLArray = 0x57504c03, WPLDictionary = 0x57504c04 } WPLType; typedef struct W_PropList { WPLType type; union { char *string; WMData *data; WMArray *array; WMHashTable *dict; } d; int retainCount; } W_PropList; typedef struct PLData { const char *ptr; int pos; const char *filename; int lineNumber; } PLData; typedef struct StringBuffer { char *str; int size; } StringBuffer; static unsigned hashPropList(const void *param); static WMPropList *getPLString(PLData * pldata); static WMPropList *getPLQString(PLData * pldata); static WMPropList *getPLData(PLData * pldata); static WMPropList *getPLArray(PLData * pldata); static WMPropList *getPLDictionary(PLData * pldata); static WMPropList *getPropList(PLData * pldata); typedef Bool(*isEqualFunc) (const void *, const void *); static const WMHashTableCallbacks WMPropListHashCallbacks = { hashPropList, (isEqualFunc) WMIsPropListEqualTo, NULL, NULL }; static Bool caseSensitive = True; #define BUFFERSIZE 8192 #define BUFFERSIZE_INCREMENT 1024 #if 0 # define DPUT(s) puts(s) #else # define DPUT(s) #endif #define COMPLAIN(pld, msg) wwarning(_("syntax error in %s %s, line %i: %s"),\ (pld)->filename ? "file" : "PropList",\ (pld)->filename ? (pld)->filename : "description",\ (pld)->lineNumber, msg) #define ISSTRINGABLE(c) (isalnum(c) || (c)=='.' || (c)=='_' || (c)=='/' \ || (c)=='+') #define CHECK_BUFFER_SIZE(buf, ptr) \ if ((ptr) >= (buf).size-1) {\ (buf).size += BUFFERSIZE_INCREMENT;\ (buf).str = wrealloc((buf).str, (buf).size);\ } #define inrange(ch, min, max) ((ch)>=(min) && (ch)<=(max)) #define noquote(ch) (inrange(ch, 'a', 'z') || inrange(ch, 'A', 'Z') || inrange(ch, '0', '9') || ((ch)=='_') || ((ch)=='.') || ((ch)=='$')) #define charesc(ch) (inrange(ch, 0x07, 0x0c) || ((ch)=='"') || ((ch)=='\\')) #define numesc(ch) (((ch)<=0x06) || inrange(ch, 0x0d, 0x1f) || ((ch)>0x7e)) #define ishexdigit(ch) (inrange(ch, 'a', 'f') || inrange(ch, 'A', 'F') || inrange(ch, '0', '9')) #define char2num(ch) (inrange(ch,'0','9') ? ((ch)-'0') : (inrange(ch,'a','f') ? ((ch)-0x57) : ((ch)-0x37))) #define num2char(num) ((num) < 0xa ? ((num)+'0') : ((num)+0x57)) #define MaxHashLength 64 static unsigned hashPropList(const void *param) { WMPropList *plist= (WMPropList *) param; unsigned ret = 0; unsigned ctr = 0; const char *key; int i, len; switch (plist->type) { case WPLString: key = plist->d.string; len = WMIN(strlen(key), MaxHashLength); for (i = 0; i < len; i++) { ret ^= tolower(key[i]) << ctr; ctr = (ctr + 1) % sizeof(char *); } /*while (*key) { ret ^= tolower(*key++) << ctr; ctr = (ctr + 1) % sizeof (char *); } */ break; case WPLData: key = WMDataBytes(plist->d.data); len = WMIN(WMGetDataLength(plist->d.data), MaxHashLength); for (i = 0; i < len; i++) { ret ^= key[i] << ctr; ctr = (ctr + 1) % sizeof(char *); } break; default: wwarning(_("Only string or data is supported for a proplist dictionary key")); wassertrv(False, 0); break; } return ret; } static WMPropList *retainPropListByCount(WMPropList * plist, int count) { WMPropList *key, *value; WMHashEnumerator e; int i; plist->retainCount += count; switch (plist->type) { case WPLString: case WPLData: break; case WPLArray: for (i = 0; i < WMGetArrayItemCount(plist->d.array); i++) { retainPropListByCount(WMGetFromArray(plist->d.array, i), count); } break; case WPLDictionary: e = WMEnumerateHashTable(plist->d.dict); while (WMNextHashEnumeratorItemAndKey(&e, (void **)&value, (void **)&key)) { retainPropListByCount(key, count); retainPropListByCount(value, count); } break; default: wwarning(_("Used proplist functions on non-WMPropLists objects")); wassertrv(False, NULL); break; } return plist; } static void releasePropListByCount(WMPropList * plist, int count) { WMPropList *key, *value; WMHashEnumerator e; int i; plist->retainCount -= count; switch (plist->type) { case WPLString: if (plist->retainCount < 1) { wfree(plist->d.string); wfree(plist); } break; case WPLData: if (plist->retainCount < 1) { WMReleaseData(plist->d.data); wfree(plist); } break; case WPLArray: for (i = 0; i < WMGetArrayItemCount(plist->d.array); i++) { releasePropListByCount(WMGetFromArray(plist->d.array, i), count); } if (plist->retainCount < 1) { WMFreeArray(plist->d.array); wfree(plist); } break; case WPLDictionary: e = WMEnumerateHashTable(plist->d.dict); while (WMNextHashEnumeratorItemAndKey(&e, (void **)&value, (void **)&key)) { releasePropListByCount(key, count); releasePropListByCount(value, count); } if (plist->retainCount < 1) { WMFreeHashTable(plist->d.dict); wfree(plist); } break; default: wwarning(_("Used proplist functions on non-WMPropLists objects")); wassertr(False); break; } } static char *dataDescription(WMPropList * plist) { const unsigned char *data; char *retVal; int i, j, length; data = WMDataBytes(plist->d.data); length = WMGetDataLength(plist->d.data); retVal = (char *)wmalloc(2 * length + length / 4 + 3); retVal[0] = '<'; for (i = 0, j = 1; i < length; i++) { retVal[j++] = num2char((data[i] >> 4) & 0x0f); retVal[j++] = num2char(data[i] & 0x0f); if ((i & 0x03) == 3 && i != length - 1) { /* if we've just finished a 32-bit int, add a space */ retVal[j++] = ' '; } } retVal[j++] = '>'; retVal[j] = '\0'; return retVal; } static char *stringDescription(WMPropList * plist) { const char *str; char *retVal, *sPtr, *dPtr; int len, quote; unsigned char ch; str = plist->d.string; if (strlen(str) == 0) { return wstrdup("\"\""); } /* FIXME: make this work with unichars. */ quote = 0; sPtr = (char *)str; len = 0; while ((ch = *sPtr)) { if (!noquote(ch)) { quote = 1; if (charesc(ch)) len++; else if (numesc(ch)) len += 3; } sPtr++; len++; } if (quote) len += 2; retVal = (char *)wmalloc(len + 1); sPtr = (char *)str; dPtr = retVal; if (quote) *dPtr++ = '"'; while ((ch = *sPtr)) { if (charesc(ch)) { *(dPtr++) = '\\'; switch (ch) { case '\a': *dPtr = 'a'; break; case '\b': *dPtr = 'b'; break; case '\t': *dPtr = 't'; break; case '\n': *dPtr = 'n'; break; case '\v': *dPtr = 'v'; break; case '\f': *dPtr = 'f'; break; default: *dPtr = ch; /* " or \ */ } } else if (numesc(ch)) { *(dPtr++) = '\\'; *(dPtr++) = '0' + ((ch >> 6) & 07); *(dPtr++) = '0' + ((ch >> 3) & 07); *dPtr = '0' + (ch & 07); } else { *dPtr = ch; } sPtr++; dPtr++; } if (quote) *dPtr++ = '"'; *dPtr = '\0'; return retVal; } static char *description(WMPropList * plist) { WMPropList *key, *val; char *retstr = NULL; char *str, *tmp, *skey, *sval; WMHashEnumerator e; int i; switch (plist->type) { case WPLString: retstr = stringDescription(plist); break; case WPLData: retstr = dataDescription(plist); break; case WPLArray: retstr = wstrdup("("); for (i = 0; i < WMGetArrayItemCount(plist->d.array); i++) { str = description(WMGetFromArray(plist->d.array, i)); if (i == 0) { retstr = wstrappend(retstr, str); } else { tmp = (char *)wmalloc(strlen(retstr) + strlen(str) + 3); sprintf(tmp, "%s, %s", retstr, str); wfree(retstr); retstr = tmp; } wfree(str); } retstr = wstrappend(retstr, ")"); break; case WPLDictionary: retstr = wstrdup("{"); e = WMEnumerateHashTable(plist->d.dict); while (WMNextHashEnumeratorItemAndKey(&e, (void **)&val, (void **)&key)) { skey = description(key); sval = description(val); tmp = (char *)wmalloc(strlen(retstr) + strlen(skey) + strlen(sval) + 5); sprintf(tmp, "%s%s = %s;", retstr, skey, sval); wfree(skey); wfree(sval); wfree(retstr); retstr = tmp; } retstr = wstrappend(retstr, "}"); break; default: wwarning(_("Used proplist functions on non-WMPropLists objects")); wassertrv(False, NULL); break; } return retstr; } static char *indentedDescription(WMPropList * plist, int level) { WMPropList *key, *val; char *retstr = NULL; char *str, *tmp, *skey, *sval; WMHashEnumerator e; int i; if (plist->type == WPLArray /* || plist->type==WPLDictionary */ ) { retstr = description(plist); if (retstr && ((2 * (level + 1) + strlen(retstr)) <= 77)) { return retstr; } else if (retstr) { wfree(retstr); retstr = NULL; } } switch (plist->type) { case WPLString: retstr = stringDescription(plist); break; case WPLData: retstr = dataDescription(plist); break; case WPLArray: retstr = wstrdup("(\n"); for (i = 0; i < WMGetArrayItemCount(plist->d.array); i++) { str = indentedDescription(WMGetFromArray(plist->d.array, i), level + 1); if (i == 0) { tmp = (char *)wmalloc(2 * (level + 1) + strlen(retstr) + strlen(str) + 1); sprintf(tmp, "%s%*s%s", retstr, 2 * (level + 1), "", str); wfree(retstr); retstr = tmp; } else { tmp = (char *)wmalloc(2 * (level + 1) + strlen(retstr) + strlen(str) + 3); sprintf(tmp, "%s,\n%*s%s", retstr, 2 * (level + 1), "", str); wfree(retstr); retstr = tmp; } wfree(str); } tmp = (char *)wmalloc(strlen(retstr) + 2 * level + 3); sprintf(tmp, "%s\n%*s)", retstr, 2 * level, ""); wfree(retstr); retstr = tmp; break; case WPLDictionary: retstr = wstrdup("{\n"); e = WMEnumerateHashTable(plist->d.dict); while (WMNextHashEnumeratorItemAndKey(&e, (void **)&val, (void **)&key)) { skey = indentedDescription(key, level + 1); sval = indentedDescription(val, level + 1); tmp = (char *)wmalloc(2 * (level + 1) + strlen(retstr) + strlen(skey) + strlen(sval) + 6); sprintf(tmp, "%s%*s%s = %s;\n", retstr, 2 * (level + 1), "", skey, sval); wfree(skey); wfree(sval); wfree(retstr); retstr = tmp; } tmp = (char *)wmalloc(strlen(retstr) + 2 * level + 2); sprintf(tmp, "%s%*s}", retstr, 2 * level, ""); wfree(retstr); retstr = tmp; break; default: wwarning(_("Used proplist functions on non-WMPropLists objects")); wassertrv(False, NULL); break; } return retstr; } static inline int getChar(PLData * pldata) { int c; c = pldata->ptr[pldata->pos]; if (c == 0) { return 0; } pldata->pos++; if (c == '\n') pldata->lineNumber++; return c; } static inline int getNonSpaceChar(PLData * pldata) { int c; while (1) { c = pldata->ptr[pldata->pos]; if (c == 0) { break; } pldata->pos++; if (c == '\n') { pldata->lineNumber++; } else if (!isspace(c)) { break; } } return c; } static char *unescapestr(const char *src) { char *dest = wmalloc(strlen(src) + 1); char *dPtr; char ch; for (dPtr = dest; ; dPtr++) { ch = *src++; if (ch == '\0') break; else if (ch != '\\') *dPtr = ch; else { ch = *(src++); if (ch == '\0') { *dPtr = '\\'; break; } else if ((ch >= '0') && (ch <= '7')) { char wch; /* Convert octal number to character */ wch = (ch & 07); ch = *src; if ((ch >= '0') && (ch <= '7')) { src++; wch = (wch << 3) | (ch & 07); ch = *src; if ((ch >= '0') && (ch <= '7')) { src++; wch = (wch << 3) | (ch & 07); } } *dPtr = wch; } else { switch (ch) { case 'a': *dPtr = '\a'; break; case 'b': *dPtr = '\b'; break; case 't': *dPtr = '\t'; break; case 'r': *dPtr = '\r'; break; case 'n': *dPtr = '\n'; break; case 'v': *dPtr = '\v'; break; case 'f': *dPtr = '\f'; break; default: *dPtr = ch; } } } } *dPtr = 0; return dest; } static WMPropList *getPLString(PLData * pldata) { WMPropList *plist; StringBuffer sBuf; int ptr = 0; int c; sBuf.str = wmalloc(BUFFERSIZE); sBuf.size = BUFFERSIZE; while (1) { c = getChar(pldata); if (ISSTRINGABLE(c)) { CHECK_BUFFER_SIZE(sBuf, ptr); sBuf.str[ptr++] = c; } else { if (c != 0) { pldata->pos--; } break; } } sBuf.str[ptr] = 0; if (ptr == 0) { plist = NULL; } else { char *tmp = unescapestr(sBuf.str); plist = WMCreatePLString(tmp); wfree(tmp); } wfree(sBuf.str); return plist; } static WMPropList *getPLQString(PLData * pldata) { WMPropList *plist; int ptr = 0, escaping = 0, ok = 1; int c; StringBuffer sBuf; sBuf.str = wmalloc(BUFFERSIZE); sBuf.size = BUFFERSIZE; while (1) { c = getChar(pldata); if (!escaping) { if (c == '\\') { escaping = 1; continue; } else if (c == '"') { break; } } else { CHECK_BUFFER_SIZE(sBuf, ptr); sBuf.str[ptr++] = '\\'; escaping = 0; } if (c == 0) { COMPLAIN(pldata, _("unterminated PropList string")); ok = 0; break; } else { CHECK_BUFFER_SIZE(sBuf, ptr); sBuf.str[ptr++] = c; } } sBuf.str[ptr] = 0; if (!ok) { plist = NULL; } else { char *tmp = unescapestr(sBuf.str); plist = WMCreatePLString(tmp); wfree(tmp); } wfree(sBuf.str); return plist; } static WMPropList *getPLData(PLData * pldata) { int ok = 1; int len = 0; int c1, c2; unsigned char buf[BUFFERSIZE], byte; WMPropList *plist; WMData *data; data = WMCreateDataWithCapacity(0); while (1) { c1 = getNonSpaceChar(pldata); if (c1 == 0) { COMPLAIN(pldata, _("unterminated PropList data")); ok = 0; break; } else if (c1 == '>') { break; } else if (ishexdigit(c1)) { c2 = getNonSpaceChar(pldata); if (c2 == 0 || c2 == '>') { COMPLAIN(pldata, _("unterminated PropList data (missing hexdigit)")); ok = 0; break; } else if (ishexdigit(c2)) { byte = char2num(c1) << 4; byte |= char2num(c2); buf[len++] = byte; if (len == sizeof(buf)) { WMAppendDataBytes(data, buf, len); len = 0; } } else { COMPLAIN(pldata, _("non hexdigit character in PropList data")); ok = 0; break; } } else { COMPLAIN(pldata, _("non hexdigit character in PropList data")); ok = 0; break; } } if (!ok) { WMReleaseData(data); return NULL; } if (len > 0) WMAppendDataBytes(data, buf, len); plist = WMCreatePLData(data); WMReleaseData(data); return plist; } static WMPropList *getPLArray(PLData * pldata) { Bool first = True; int ok = 1; int c; WMPropList *array, *obj; array = WMCreatePLArray(NULL); while (1) { c = getNonSpaceChar(pldata); if (c == 0) { COMPLAIN(pldata, _("unterminated PropList array")); ok = 0; break; } else if (c == ')') { break; } else if (c == ',') { /* continue normally */ } else if (!first) { COMPLAIN(pldata, _("missing or unterminated PropList array")); ok = 0; break; } else { pldata->pos--; } first = False; obj = getPropList(pldata); if (!obj) { COMPLAIN(pldata, _("could not get PropList array element")); ok = 0; break; } WMAddToPLArray(array, obj); WMReleasePropList(obj); } if (!ok) { WMReleasePropList(array); array = NULL; } return array; } static WMPropList *getPLDictionary(PLData * pldata) { int ok = 1; int c; WMPropList *dict, *key, *value; dict = WMCreatePLDictionary(NULL, NULL); while (1) { c = getNonSpaceChar(pldata); if (c == 0) { COMPLAIN(pldata, _("unterminated PropList dictionary")); ok = 0; break; } else if (c == '}') { break; } DPUT("getting PropList dictionary key"); if (c == '<') { key = getPLData(pldata); } else if (c == '"') { key = getPLQString(pldata); } else if (ISSTRINGABLE(c)) { pldata->pos--; key = getPLString(pldata); } else { if (c == '=') { COMPLAIN(pldata, _("missing PropList dictionary key")); } else { COMPLAIN(pldata, _("missing PropList dictionary entry key " "or unterminated dictionary")); } ok = 0; break; } if (!key) { COMPLAIN(pldata, _("error parsing PropList dictionary key")); ok = 0; break; } c = getNonSpaceChar(pldata); if (c != '=') { WMReleasePropList(key); COMPLAIN(pldata, _("missing = in PropList dictionary entry")); ok = 0; break; } DPUT("getting PropList dictionary entry value for key"); value = getPropList(pldata); if (!value) { COMPLAIN(pldata, _("error parsing PropList dictionary entry value")); WMReleasePropList(key); ok = 0; break; } c = getNonSpaceChar(pldata); if (c != ';') { COMPLAIN(pldata, _("missing ; in PropList dictionary entry")); WMReleasePropList(key); WMReleasePropList(value); ok = 0; break; } WMPutInPLDictionary(dict, key, value); WMReleasePropList(key); WMReleasePropList(value); } if (!ok) { WMReleasePropList(dict); dict = NULL; } return dict; } static WMPropList *getPropList(PLData * pldata) { WMPropList *plist; int c; c = getNonSpaceChar(pldata); switch (c) { case 0: DPUT("End of PropList"); plist = NULL; break; case '{': DPUT("Getting PropList dictionary"); plist = getPLDictionary(pldata); break; case '(': DPUT("Getting PropList array"); plist = getPLArray(pldata); break; case '<': DPUT("Getting PropList data"); plist = getPLData(pldata); break; case '"': DPUT("Getting PropList quoted string"); plist = getPLQString(pldata); break; default: if (ISSTRINGABLE(c)) { DPUT("Getting PropList string"); pldata->pos--; plist = getPLString(pldata); } else { COMPLAIN(pldata, _("was expecting a string, data, array or " "dictionary. If it's a string, try enclosing " "it with \".")); if (c == '#' || c == '/') { wwarning(_("Comments are not allowed inside WindowMaker owned" " domain files.")); } plist = NULL; } break; } return plist; } void WMPLSetCaseSensitive(Bool caseSensitiveness) { caseSensitive = caseSensitiveness; } WMPropList *WMCreatePLString(const char *str) { WMPropList *plist; wassertrv(str != NULL, NULL); plist = (WMPropList *) wmalloc(sizeof(W_PropList)); plist->type = WPLString; plist->d.string = wstrdup(str); plist->retainCount = 1; return plist; } WMPropList *WMCreatePLData(WMData * data) { WMPropList *plist; wassertrv(data != NULL, NULL); plist = (WMPropList *) wmalloc(sizeof(W_PropList)); plist->type = WPLData; plist->d.data = WMRetainData(data); plist->retainCount = 1; return plist; } WMPropList *WMCreatePLDataWithBytes(const unsigned char *bytes, unsigned int length) { WMPropList *plist; wassertrv(bytes != NULL, NULL); plist = (WMPropList *) wmalloc(sizeof(W_PropList)); plist->type = WPLData; plist->d.data = WMCreateDataWithBytes(bytes, length); plist->retainCount = 1; return plist; } WMPropList *WMCreatePLDataWithBytesNoCopy(unsigned char *bytes, unsigned int length, WMFreeDataProc * destructor) { WMPropList *plist; wassertrv(bytes != NULL, NULL); plist = (WMPropList *) wmalloc(sizeof(W_PropList)); plist->type = WPLData; plist->d.data = WMCreateDataWithBytesNoCopy(bytes, length, destructor); plist->retainCount = 1; return plist; } WMPropList *WMCreatePLArray(WMPropList * elem, ...) { WMPropList *plist, *nelem; va_list ap; plist = (WMPropList *) wmalloc(sizeof(W_PropList)); plist->type = WPLArray; plist->d.array = WMCreateArray(4); plist->retainCount = 1; if (!elem) return plist; WMAddToArray(plist->d.array, WMRetainPropList(elem)); va_start(ap, elem); while (1) { nelem = va_arg(ap, WMPropList *); if (!nelem) { va_end(ap); return plist; } WMAddToArray(plist->d.array, WMRetainPropList(nelem)); } } WMPropList *WMCreatePLDictionary(WMPropList * key, WMPropList * value, ...) { WMPropList *plist, *nkey, *nvalue, *k, *v; va_list ap; plist = (WMPropList *) wmalloc(sizeof(W_PropList)); plist->type = WPLDictionary; plist->d.dict = WMCreateHashTable(WMPropListHashCallbacks); plist->retainCount = 1; if (!key || !value) return plist; WMHashInsert(plist->d.dict, WMRetainPropList(key), WMRetainPropList(value)); va_start(ap, value); while (1) { nkey = va_arg(ap, WMPropList *); if (!nkey) { va_end(ap); return plist; } nvalue = va_arg(ap, WMPropList *); if (!nvalue) { va_end(ap); return plist; } if (WMHashGetItemAndKey(plist->d.dict, nkey, (void **)&v, (void **)&k)) { WMHashRemove(plist->d.dict, k); WMReleasePropList(k); WMReleasePropList(v); } WMHashInsert(plist->d.dict, WMRetainPropList(nkey), WMRetainPropList(nvalue)); } } WMPropList *WMRetainPropList(WMPropList * plist) { WMPropList *key, *value; WMHashEnumerator e; int i; plist->retainCount++; switch (plist->type) { case WPLString: case WPLData: break; case WPLArray: for (i = 0; i < WMGetArrayItemCount(plist->d.array); i++) { WMRetainPropList(WMGetFromArray(plist->d.array, i)); } break; case WPLDictionary: e = WMEnumerateHashTable(plist->d.dict); while (WMNextHashEnumeratorItemAndKey(&e, (void **)&value, (void **)&key)) { WMRetainPropList(key); WMRetainPropList(value); } break; default: wwarning(_("Used proplist functions on non-WMPropLists objects")); wassertrv(False, NULL); break; } return plist; } void WMReleasePropList(WMPropList * plist) { WMPropList *key, *value; WMHashEnumerator e; int i; plist->retainCount--; switch (plist->type) { case WPLString: if (plist->retainCount < 1) { wfree(plist->d.string); wfree(plist); } break; case WPLData: if (plist->retainCount < 1) { WMReleaseData(plist->d.data); wfree(plist); } break; case WPLArray: for (i = 0; i < WMGetArrayItemCount(plist->d.array); i++) { WMReleasePropList(WMGetFromArray(plist->d.array, i)); } if (plist->retainCount < 1) { WMFreeArray(plist->d.array); wfree(plist); } break; case WPLDictionary: e = WMEnumerateHashTable(plist->d.dict); while (WMNextHashEnumeratorItemAndKey(&e, (void **)&value, (void **)&key)) { WMReleasePropList(key); WMReleasePropList(value); } if (plist->retainCount < 1) { WMFreeHashTable(plist->d.dict); wfree(plist); } break; default: wwarning(_("Used proplist functions on non-WMPropLists objects")); wassertr(False); break; } } void WMInsertInPLArray(WMPropList * plist, int index, WMPropList * item) { wassertr(plist->type == WPLArray); retainPropListByCount(item, plist->retainCount); WMInsertInArray(plist->d.array, index, item); } void WMAddToPLArray(WMPropList * plist, WMPropList * item) { wassertr(plist->type == WPLArray); retainPropListByCount(item, plist->retainCount); WMAddToArray(plist->d.array, item); } void WMDeleteFromPLArray(WMPropList * plist, int index) { WMPropList *item; wassertr(plist->type == WPLArray); item = WMGetFromArray(plist->d.array, index); if (item != NULL) { WMDeleteFromArray(plist->d.array, index); releasePropListByCount(item, plist->retainCount); } } void WMRemoveFromPLArray(WMPropList * plist, WMPropList * item) { WMPropList *iPtr; int i; wassertr(plist->type == WPLArray); for (i = 0; i < WMGetArrayItemCount(plist->d.array); i++) { iPtr = WMGetFromArray(plist->d.array, i); if (WMIsPropListEqualTo(item, iPtr)) { WMDeleteFromArray(plist->d.array, i); releasePropListByCount(iPtr, plist->retainCount); break; } } } void WMPutInPLDictionary(WMPropList * plist, WMPropList * key, WMPropList * value) { wassertr(plist->type == WPLDictionary); /*WMRetainPropList(key); */ WMRemoveFromPLDictionary(plist, key); retainPropListByCount(key, plist->retainCount); retainPropListByCount(value, plist->retainCount); WMHashInsert(plist->d.dict, key, value); /*WMReleasePropList(key); */ } void WMRemoveFromPLDictionary(WMPropList * plist, WMPropList * key) { WMPropList *k, *v; wassertr(plist->type == WPLDictionary); if (WMHashGetItemAndKey(plist->d.dict, key, (void **)&v, (void **)&k)) { WMHashRemove(plist->d.dict, k); releasePropListByCount(k, plist->retainCount); releasePropListByCount(v, plist->retainCount); } } WMPropList *WMMergePLDictionaries(WMPropList * dest, WMPropList * source, Bool recursive) { WMPropList *key, *value, *dvalue; WMHashEnumerator e; wassertrv(source->type == WPLDictionary && dest->type == WPLDictionary, NULL); if (source == dest) return dest; e = WMEnumerateHashTable(source->d.dict); while (WMNextHashEnumeratorItemAndKey(&e, (void **)&value, (void **)&key)) { if (recursive && value->type == WPLDictionary) { dvalue = WMHashGet(dest->d.dict, key); if (dvalue && dvalue->type == WPLDictionary) { WMMergePLDictionaries(dvalue, value, True); } else { WMPutInPLDictionary(dest, key, value); } } else { WMPutInPLDictionary(dest, key, value); } } return dest; } WMPropList *WMSubtractPLDictionaries(WMPropList * dest, WMPropList * source, Bool recursive) { WMPropList *key, *value, *dvalue; WMHashEnumerator e; wassertrv(source->type == WPLDictionary && dest->type == WPLDictionary, NULL); if (source == dest) { WMPropList *keys = WMGetPLDictionaryKeys(dest); int i; for (i = 0; i < WMGetArrayItemCount(keys->d.array); i++) { WMRemoveFromPLDictionary(dest, WMGetFromArray(keys->d.array, i)); } return dest; } e = WMEnumerateHashTable(source->d.dict); while (WMNextHashEnumeratorItemAndKey(&e, (void **)&value, (void **)&key)) { dvalue = WMHashGet(dest->d.dict, key); if (!dvalue) continue; if (WMIsPropListEqualTo(value, dvalue)) { WMRemoveFromPLDictionary(dest, key); } else if (recursive && value->type == WPLDictionary && dvalue->type == WPLDictionary) { WMSubtractPLDictionaries(dvalue, value, True); } } return dest; } int WMGetPropListItemCount(WMPropList * plist) { switch (plist->type) { case WPLString: case WPLData: return 0; /* should this be 1 instead? */ case WPLArray: return WMGetArrayItemCount(plist->d.array); case WPLDictionary: return (int)WMCountHashTable(plist->d.dict); default: wwarning(_("Used proplist functions on non-WMPropLists objects")); wassertrv(False, 0); break; } return 0; } Bool WMIsPLString(WMPropList * plist) { return (plist->type == WPLString); } Bool WMIsPLData(WMPropList * plist) { return (plist->type == WPLData); } Bool WMIsPLArray(WMPropList * plist) { return (plist->type == WPLArray); } Bool WMIsPLDictionary(WMPropList * plist) { return (plist->type == WPLDictionary); } Bool WMIsPropListEqualTo(WMPropList * plist, WMPropList * other) { WMPropList *key1, *item1, *item2; WMHashEnumerator enumerator; int n, i; if (plist->type != other->type) return False; switch (plist->type) { case WPLString: if (caseSensitive) { return (strcmp(plist->d.string, other->d.string) == 0); } else { return (strcasecmp(plist->d.string, other->d.string) == 0); } case WPLData: return WMIsDataEqualToData(plist->d.data, other->d.data); case WPLArray: n = WMGetArrayItemCount(plist->d.array); if (n != WMGetArrayItemCount(other->d.array)) return False; for (i = 0; i < n; i++) { item1 = WMGetFromArray(plist->d.array, i); item2 = WMGetFromArray(other->d.array, i); if (!WMIsPropListEqualTo(item1, item2)) return False; } return True; case WPLDictionary: if (WMCountHashTable(plist->d.dict) != WMCountHashTable(other->d.dict)) return False; enumerator = WMEnumerateHashTable(plist->d.dict); while (WMNextHashEnumeratorItemAndKey(&enumerator, (void **)&item1, (void **)&key1)) { item2 = WMHashGet(other->d.dict, key1); if (!item2 || !item1 || !WMIsPropListEqualTo(item1, item2)) return False; } return True; default: wwarning(_("Used proplist functions on non-WMPropLists objects")); wassertrv(False, False); break; } return False; } char *WMGetFromPLString(WMPropList * plist) { wassertrv(plist->type == WPLString, NULL); return plist->d.string; } WMData *WMGetFromPLData(WMPropList * plist) { wassertrv(plist->type == WPLData, NULL); return plist->d.data; } const unsigned char *WMGetPLDataBytes(WMPropList * plist) { wassertrv(plist->type == WPLData, NULL); return WMDataBytes(plist->d.data); } int WMGetPLDataLength(WMPropList * plist) { wassertrv(plist->type == WPLData, 0); return WMGetDataLength(plist->d.data); } WMPropList *WMGetFromPLArray(WMPropList * plist, int index) { wassertrv(plist->type == WPLArray, NULL); return WMGetFromArray(plist->d.array, index); } WMPropList *WMGetFromPLDictionary(WMPropList * plist, WMPropList * key) { wassertrv(plist->type == WPLDictionary, NULL); return WMHashGet(plist->d.dict, key); } WMPropList *WMGetPLDictionaryKeys(WMPropList * plist) { WMPropList *array, *key; WMHashEnumerator enumerator; wassertrv(plist->type == WPLDictionary, NULL); array = (WMPropList *) wmalloc(sizeof(W_PropList)); array->type = WPLArray; array->d.array = WMCreateArray(WMCountHashTable(plist->d.dict)); array->retainCount = 1; enumerator = WMEnumerateHashTable(plist->d.dict); while ((key = WMNextHashEnumeratorKey(&enumerator))) { WMAddToArray(array->d.array, WMRetainPropList(key)); } return array; } WMPropList *WMShallowCopyPropList(WMPropList * plist) { WMPropList *ret = NULL; WMPropList *key, *item; WMHashEnumerator e; WMData *data; int i; switch (plist->type) { case WPLString: ret = WMCreatePLString(plist->d.string); break; case WPLData: data = WMCreateDataWithData(plist->d.data); ret = WMCreatePLData(data); WMReleaseData(data); break; case WPLArray: ret = (WMPropList *) wmalloc(sizeof(W_PropList)); ret->type = WPLArray; ret->d.array = WMCreateArrayWithArray(plist->d.array); ret->retainCount = 1; for (i = 0; i < WMGetArrayItemCount(ret->d.array); i++) WMRetainPropList(WMGetFromArray(ret->d.array, i)); break; case WPLDictionary: ret = WMCreatePLDictionary(NULL, NULL); e = WMEnumerateHashTable(plist->d.dict); while (WMNextHashEnumeratorItemAndKey(&e, (void **)&item, (void **)&key)) { WMPutInPLDictionary(ret, key, item); } break; default: wwarning(_("Used proplist functions on non-WMPropLists objects")); wassertrv(False, NULL); break; } return ret; } WMPropList *WMDeepCopyPropList(WMPropList * plist) { WMPropList *ret = NULL; WMPropList *key, *item; WMHashEnumerator e; WMData *data; int i; switch (plist->type) { case WPLString: ret = WMCreatePLString(plist->d.string); break; case WPLData: data = WMCreateDataWithData(plist->d.data); ret = WMCreatePLData(data); WMReleaseData(data); break; case WPLArray: ret = WMCreatePLArray(NULL); for (i = 0; i < WMGetArrayItemCount(plist->d.array); i++) { item = WMDeepCopyPropList(WMGetFromArray(plist->d.array, i)); WMAddToArray(ret->d.array, item); } break; case WPLDictionary: ret = WMCreatePLDictionary(NULL, NULL); e = WMEnumerateHashTable(plist->d.dict); /* While we copy an existing dictionary there is no way that we can * have duplicate keys, so we don't need to first remove a key/value * pair before inserting the new key/value. */ while (WMNextHashEnumeratorItemAndKey(&e, (void **)&item, (void **)&key)) { WMHashInsert(ret->d.dict, WMDeepCopyPropList(key), WMDeepCopyPropList(item)); } break; default: wwarning(_("Used proplist functions on non-WMPropLists objects")); wassertrv(False, NULL); break; } return ret; } WMPropList *WMCreatePropListFromDescription(const char *desc) { WMPropList *plist = NULL; PLData *pldata; pldata = (PLData *) wmalloc(sizeof(PLData)); pldata->ptr = desc; pldata->lineNumber = 1; plist = getPropList(pldata); if (getNonSpaceChar(pldata) != 0 && plist) { COMPLAIN(pldata, _("extra data after end of property list")); /* * We can't just ignore garbage after the end of the description * (especially if the description was read from a file), because * the "garbage" can be the real data and the real garbage is in * fact in the beginning of the file (which is now inside plist) */ WMReleasePropList(plist); plist = NULL; } wfree(pldata); return plist; } char *WMGetPropListDescription(WMPropList * plist, Bool indented) { return (indented ? indentedDescription(plist, 0) : description(plist)); } WMPropList *WMReadPropListFromFile(const char *file) { WMPropList *plist = NULL; PLData *pldata; char *read_buf; FILE *f; struct stat stbuf; size_t length; f = fopen(file, "rb"); if (!f) { /* let the user print the error message if he really needs to */ /*werror(_("could not open domain file '%s' for reading"), file); */ return NULL; } if (stat(file, &stbuf) == 0) { length = (size_t) stbuf.st_size; } else { werror(_("could not get size for file '%s'"), file); fclose(f); return NULL; } read_buf = wmalloc(length + 1); if (fread(read_buf, length, 1, f) != 1) { if (ferror(f)) { werror(_("error reading from file '%s'"), file); } fclose(f); wfree(read_buf); return NULL; } read_buf[length] = '\0'; fclose(f); pldata = (PLData *) wmalloc(sizeof(PLData)); pldata->ptr = read_buf; pldata->filename = file; pldata->lineNumber = 1; plist = getPropList(pldata); if (getNonSpaceChar(pldata) != 0 && plist) { COMPLAIN(pldata, _("extra data after end of property list")); /* * We can't just ignore garbage after the end of the description * (especially if the description was read from a file), because * the "garbage" can be the real data and the real garbage is in * fact in the beginning of the file (which is now inside plist) */ WMReleasePropList(plist); plist = NULL; } wfree(read_buf); wfree(pldata); return plist; } WMPropList *WMReadPropListFromPipe(const char *command) { FILE *file; WMPropList *plist; PLData *pldata; char line[1024]; char *read_buf; file = popen(command, "r"); if (!file) { werror(_("%s:could not open menu file"), command); return NULL; } pldata = (PLData *) wmalloc(sizeof(PLData)); pldata->ptr = NULL; pldata->filename = command; pldata->lineNumber = 1; /* read from file till EOF or OOM and fill proplist buffer*/ read_buf = NULL; while (fgets(line, sizeof(line), file) != NULL) { if (read_buf == NULL) { read_buf = wmalloc(strlen(line)+1); read_buf[0] = '\0'; } else { read_buf = wrealloc(read_buf, strlen(line) + strlen(read_buf) + 1); } read_buf = strncat(read_buf, line, strlen(line)); } pldata->ptr = read_buf; pclose(file); plist = getPropList(pldata); if (getNonSpaceChar(pldata) != 0 && plist) { COMPLAIN(pldata, _("extra data after end of property list")); /* * We can't just ignore garbage after the end of the description * (especially if the description was read from a file), because * the "garbage" can be the real data and the real garbage is in * fact in the beginning of the file (which is now inside plist) */ WMReleasePropList(plist); plist = NULL; } wfree(read_buf); wfree(pldata); return plist; } /* TODO: review this function's code */ Bool WMWritePropListToFile(WMPropList * plist, const char *path) { char *thePath = NULL; char *desc; FILE *theFile; #ifdef HAVE_MKSTEMP int fd, mask; #endif if (!wmkdirhier(path)) return False; /* Use the path name of the destination file as a prefix for the * mkstemp() call so that we can be sure that both files are on * the same filesystem and the subsequent rename() will work. */ thePath = wstrconcat(path, ".XXXXXX"); #ifdef HAVE_MKSTEMP if ((fd = mkstemp(thePath)) < 0) { werror(_("mkstemp (%s) failed"), thePath); goto failure; } mask = umask(0); umask(mask); fchmod(fd, 0644 & ~mask); if ((theFile = fdopen(fd, "wb")) == NULL) { close(fd); } #else if (mktemp(thePath) == NULL) { werror(_("mktemp (%s) failed"), thePath); goto failure; } theFile = fopen(thePath, "wb"); #endif if (theFile == NULL) { werror(_("open (%s) failed"), thePath); goto failure; } desc = indentedDescription(plist, 0); if (fprintf(theFile, "%s\n", desc) != strlen(desc) + 1) { werror(_("writing to file: %s failed"), thePath); wfree(desc); goto failure; } wfree(desc); (void)fsync(fileno(theFile)); if (fclose(theFile) != 0) { werror(_("fclose (%s) failed"), thePath); goto failure; } /* If we used a temporary file, we still need to rename() it be the * real file. Also, we need to try to retain the file attributes of * the original file we are overwriting (if we are) */ if (rename(thePath, path) != 0) { werror(_("rename ('%s' to '%s') failed"), thePath, path); goto failure; } wfree(thePath); return True; failure: unlink(thePath); wfree(thePath); return False; } /* * create a directory hierarchy * * if the last octet of `path' is `/', the full path is * assumed to be a directory; otherwise path is assumed to be a * file, and the last component is stripped off. the rest is the * the hierarchy to be created. * * refuses to create anything outside $GNUSTEP_USER_ROOT * * returns 1 on success, 0 on failure */ int wmkdirhier(const char *path) { const char *t; char *thePath = NULL, buf[1024]; size_t p, plen; struct stat st; /* Only create directories under $GNUSTEP_USER_ROOT */ if ((t = wusergnusteppath()) == NULL) return 0; if (strncmp(path, t, strlen(t)) != 0) return 0; thePath = wstrdup(path); /* Strip the trailing component if it is a file */ p = strlen(thePath); while (p && thePath[p] != '/') thePath[p--] = '\0'; thePath[p] = '\0'; /* Shortcut if it already exists */ if (stat(thePath, &st) == 0) { wfree(thePath); if (S_ISDIR(st.st_mode)) { /* Is a directory alright */ return 1; } else { /* Exists, but not a directory, the caller * might just as well abort now */ return 0; } } memset(buf, 0, sizeof(buf)); strncpy(buf, t, sizeof(buf) - 1); p = strlen(buf); plen = strlen(thePath); do { while (p++ < plen && thePath[p] != '/') ; strncpy(buf, thePath, p); if (mkdir(buf, 0777) == -1 && errno == EEXIST && stat(buf, &st) == 0 && !S_ISDIR(st.st_mode)) { werror(_("Could not create component %s"), buf); wfree(thePath); return 0; } } while (p < plen); wfree(thePath); return 1; } /* ARGSUSED2 */ static int wrmdirhier_fn(const char *path, const struct stat *st, int type, struct FTW *ftw) { switch(type) { case FTW_D: break; case FTW_DP: return rmdir(path); break; case FTW_F: case FTW_SL: case FTW_SLN: return unlink(path); break; case FTW_DNR: case FTW_NS: default: return EPERM; } /* NOTREACHED */ return 0; } /* * remove a directory hierarchy * * refuses to remove anything outside $GNUSTEP_USER_ROOT * * returns 1 on success, 0 on failure * * TODO: revisit what's error and what's not * * with inspirations from OpenBSD's bin/rm/rm.c */ int wrmdirhier(const char *path) { struct stat st; int error; const char *t; /* Only remove directories under $GNUSTEP_USER_ROOT */ if ((t = wusergnusteppath()) == NULL) return EPERM; if (strncmp(path, t, strlen(t)) != 0) return EPERM; /* Shortcut if it doesn't exist to begin with */ if (stat(path, &st) == -1) return ENOENT; error = nftw(path, wrmdirhier_fn, 1, FTW_PHYS); return error; } WindowMaker-0.95.5/WINGs/usleep.c0000644000175000017500000000067512214432632013361 00000000000000 #include #include #include "WUtil.h" #include "wconfig.h" void wusleep(unsigned int usec) { struct timespec tm; /* An arbitrary limit of 10 minutes -- in WM, if * somethings wants to sleep anything even close to * this, it's most likely an error. */ if (usec > 600000000) return; tm.tv_sec = usec / 1000000; tm.tv_nsec = (usec % 1000000) * 1000; while (nanosleep(&tm, &tm) == -1 && errno == EINTR) ; } WindowMaker-0.95.5/WINGs/wpixmap.c0000644000175000017500000001116612214432632013546 00000000000000 #include "WINGsP.h" #include WMPixmap *WMRetainPixmap(WMPixmap * pixmap) { if (pixmap) pixmap->refCount++; return pixmap; } void WMReleasePixmap(WMPixmap * pixmap) { wassertr(pixmap != NULL); pixmap->refCount--; if (pixmap->refCount < 1) { if (pixmap->pixmap) XFreePixmap(pixmap->screen->display, pixmap->pixmap); if (pixmap->mask) XFreePixmap(pixmap->screen->display, pixmap->mask); wfree(pixmap); } } WMPixmap *WMCreatePixmap(WMScreen * scrPtr, int width, int height, int depth, Bool masked) { WMPixmap *pixPtr; pixPtr = wmalloc(sizeof(WMPixmap)); pixPtr->screen = scrPtr; pixPtr->width = width; pixPtr->height = height; pixPtr->depth = depth; pixPtr->refCount = 1; pixPtr->pixmap = XCreatePixmap(scrPtr->display, W_DRAWABLE(scrPtr), width, height, depth); if (masked) { pixPtr->mask = XCreatePixmap(scrPtr->display, W_DRAWABLE(scrPtr), width, height, 1); } else { pixPtr->mask = None; } return pixPtr; } WMPixmap *WMCreatePixmapFromXPixmaps(WMScreen * scrPtr, Pixmap pixmap, Pixmap mask, int width, int height, int depth) { WMPixmap *pixPtr; pixPtr = wmalloc(sizeof(WMPixmap)); pixPtr->screen = scrPtr; pixPtr->pixmap = pixmap; pixPtr->mask = mask; pixPtr->width = width; pixPtr->height = height; pixPtr->depth = depth; pixPtr->refCount = 1; return pixPtr; } WMPixmap *WMCreatePixmapFromFile(WMScreen * scrPtr, const char *fileName) { WMPixmap *pixPtr; RImage *image; image = RLoadImage(scrPtr->rcontext, fileName, 0); if (!image) return NULL; pixPtr = WMCreatePixmapFromRImage(scrPtr, image, 127); RReleaseImage(image); return pixPtr; } WMPixmap *WMCreatePixmapFromRImage(WMScreen * scrPtr, RImage * image, int threshold) { WMPixmap *pixPtr; Pixmap pixmap, mask; if (!RConvertImageMask(scrPtr->rcontext, image, &pixmap, &mask, threshold)) { return NULL; } pixPtr = wmalloc(sizeof(WMPixmap)); pixPtr->screen = scrPtr; pixPtr->pixmap = pixmap; pixPtr->mask = mask; pixPtr->width = image->width; pixPtr->height = image->height; pixPtr->depth = scrPtr->depth; pixPtr->refCount = 1; return pixPtr; } WMPixmap *WMCreateBlendedPixmapFromRImage(WMScreen * scrPtr, RImage * image, const RColor * color) { WMPixmap *pixPtr; RImage *copy; copy = RCloneImage(image); if (!copy) return NULL; RCombineImageWithColor(copy, color); pixPtr = WMCreatePixmapFromRImage(scrPtr, copy, 0); RReleaseImage(copy); return pixPtr; } WMPixmap *WMCreateBlendedPixmapFromFile(WMScreen * scrPtr, const char *fileName, const RColor * color) { WMPixmap *pixPtr; RImage *image; image = RLoadImage(scrPtr->rcontext, fileName, 0); if (!image) return NULL; RCombineImageWithColor(image, color); pixPtr = WMCreatePixmapFromRImage(scrPtr, image, 0); RReleaseImage(image); return pixPtr; } WMPixmap *WMCreatePixmapFromXPMData(WMScreen * scrPtr, char **data) { WMPixmap *pixPtr; RImage *image; image = RGetImageFromXPMData(scrPtr->rcontext, data); if (!image) return NULL; pixPtr = WMCreatePixmapFromRImage(scrPtr, image, 127); RReleaseImage(image); return pixPtr; } Pixmap WMGetPixmapXID(WMPixmap * pixmap) { wassertrv(pixmap != NULL, None); return pixmap->pixmap; } Pixmap WMGetPixmapMaskXID(WMPixmap * pixmap) { wassertrv(pixmap != NULL, None); return pixmap->mask; } WMSize WMGetPixmapSize(WMPixmap * pixmap) { WMSize size = { 0, 0 }; wassertrv(pixmap != NULL, size); size.width = pixmap->width; size.height = pixmap->height; return size; } WMPixmap *WMGetSystemPixmap(WMScreen * scr, int image) { switch (image) { case WSIReturnArrow: return WMRetainPixmap(scr->buttonArrow); case WSIHighlightedReturnArrow: return WMRetainPixmap(scr->pushedButtonArrow); case WSIScrollerDimple: return WMRetainPixmap(scr->scrollerDimple); case WSIArrowLeft: return WMRetainPixmap(scr->leftArrow); case WSIHighlightedArrowLeft: return WMRetainPixmap(scr->hiLeftArrow); case WSIArrowRight: return WMRetainPixmap(scr->rightArrow); case WSIHighlightedArrowRight: return WMRetainPixmap(scr->hiRightArrow); case WSIArrowUp: return WMRetainPixmap(scr->upArrow); case WSIHighlightedArrowUp: return WMRetainPixmap(scr->hiUpArrow); case WSIArrowDown: return WMRetainPixmap(scr->downArrow); case WSIHighlightedArrowDown: return WMRetainPixmap(scr->hiDownArrow); case WSICheckMark: return WMRetainPixmap(scr->checkMark); default: return NULL; } } void WMDrawPixmap(WMPixmap * pixmap, Drawable d, int x, int y) { WMScreen *scr = pixmap->screen; XSetClipMask(scr->display, scr->clipGC, pixmap->mask); XSetClipOrigin(scr->display, scr->clipGC, x, y); XCopyArea(scr->display, pixmap->pixmap, d, scr->clipGC, 0, 0, pixmap->width, pixmap->height, x, y); } WindowMaker-0.95.5/WINGs/dragcommon.c0000644000175000017500000001373012214432632014206 00000000000000 #include "WINGsP.h" #define XDND_SOURCE_VERSION(dragInfo) dragInfo->protocolVersion #define XDND_DEST_INFO(dragInfo) dragInfo->destInfo #define XDND_DEST_VIEW(dragInfo) dragInfo->destInfo->destView static Bool _WindowExists; Atom W_OperationToAction(WMScreen * scr, WMDragOperationType operation) { switch (operation) { case WDOperationNone: return None; case WDOperationCopy: return scr->xdndActionCopy; case WDOperationMove: return scr->xdndActionMove; case WDOperationLink: return scr->xdndActionLink; case WDOperationAsk: return scr->xdndActionAsk; case WDOperationPrivate: return scr->xdndActionPrivate; default: return None; } } WMDragOperationType W_ActionToOperation(WMScreen * scr, Atom action) { if (action == scr->xdndActionCopy) { return WDOperationCopy; } else if (action == scr->xdndActionMove) { return WDOperationMove; } else if (action == scr->xdndActionLink) { return WDOperationLink; } else if (action == scr->xdndActionAsk) { return WDOperationAsk; } else if (action == scr->xdndActionPrivate) { return WDOperationPrivate; } else if (action == None) { return WDOperationNone; } else { char *tmp = XGetAtomName(scr->display, action); wwarning("unknown XDND action %s ", tmp); XFree(tmp); return WDOperationCopy; } } static void freeDragOperationItem(void *item) { wfree(item); } WMArray *WMCreateDragOperationArray(int initialSize) { return WMCreateArrayWithDestructor(initialSize, freeDragOperationItem); } WMDragOperationItem *WMCreateDragOperationItem(WMDragOperationType type, char *text) { W_DragOperationItem *result = wmalloc(sizeof(W_DragOperationItem)); result->type = type; result->text = text; return (WMDragOperationItem *) result; } WMDragOperationType WMGetDragOperationItemType(WMDragOperationItem * item) { return ((W_DragOperationItem *) item)->type; } char *WMGetDragOperationItemText(WMDragOperationItem * item) { return ((W_DragOperationItem *) item)->text; } static int handleNoWindowXError(Display * dpy, XErrorEvent * errEvt) { if (errEvt->error_code == BadWindow || errEvt->error_code == BadDrawable) { _WindowExists = False; return Success; } return errEvt->error_code; } static Bool windowExists(Display * dpy, Window win) { void *previousErrorHandler; XWindowAttributes attr; XSynchronize(dpy, True); previousErrorHandler = XSetErrorHandler(handleNoWindowXError); _WindowExists = True; /* can generate BadDrawable or BadWindow */ XGetWindowAttributes(dpy, win, &attr); XSetErrorHandler(previousErrorHandler); XSynchronize(dpy, False); return _WindowExists; } Bool W_SendDnDClientMessage(Display * dpy, Window win, Atom message, unsigned long data0, unsigned long data1, unsigned long data2, unsigned long data3, unsigned long data4) { XEvent ev; #ifdef XDND_DEBUG char *msgName = XGetAtomName(dpy, message); printf("sending message %s ... ", msgName); XFree(msgName); #endif if (!windowExists(dpy, win)) { wwarning("xdnd message target %lu does no longer exist.", win); return False; /* message not sent */ } ev.type = ClientMessage; ev.xclient.message_type = message; ev.xclient.format = 32; ev.xclient.window = win; ev.xclient.data.l[0] = data0; ev.xclient.data.l[1] = data1; ev.xclient.data.l[2] = data2; ev.xclient.data.l[3] = data3; ev.xclient.data.l[4] = data4; XSendEvent(dpy, win, False, 0, &ev); XFlush(dpy); #ifdef XDND_DEBUG printf("sent\n"); #endif return True; /* message sent */ } static void handleLeaveMessage(WMDraggingInfo * info) { if (XDND_DEST_INFO(info) != NULL) { /* XDND_DEST_VIEW is never NULL (it's the xdnd aware view) */ wassertr(XDND_DEST_VIEW(info) != NULL); if (XDND_DEST_VIEW(info)->dragDestinationProcs != NULL) { XDND_DEST_VIEW(info)->dragDestinationProcs->concludeDragOperation(XDND_DEST_VIEW(info)); } W_DragDestinationInfoClear(info); } } void W_HandleDNDClientMessage(WMView * toplevel, XClientMessageEvent * event) { WMScreen *scr = W_VIEW_SCREEN(toplevel); WMDraggingInfo *info = &scr->dragInfo; Atom messageType = event->message_type; #ifdef XDND_DEBUG { char *msgTypeName = XGetAtomName(scr->display, messageType); if (msgTypeName != NULL) printf("event type = %s\n", msgTypeName); else printf("pb with event type !\n"); } #endif /* Messages from destination to source */ if (messageType == scr->xdndStatusAtom || messageType == scr->xdndFinishedAtom) { W_DragSourceStopTimer(); W_DragSourceStateHandler(info, event); return; } /* Messages from source to destination */ if (messageType == scr->xdndEnterAtom) { Bool positionSent = (XDND_DEST_INFO(info) != NULL); W_DragDestinationStopTimer(); W_DragDestinationStoreEnterMsgInfo(info, toplevel, event); /* Xdnd version 3 and up are not compatible with version 1 or 2 */ if (XDND_SOURCE_VERSION(info) > 2) { if (positionSent) { /* xdndPosition previously received on xdnd aware view */ W_DragDestinationStateHandler(info, event); return; } else { W_DragDestinationStartTimer(info); return; } } else { wwarning("received dnd enter msg with unsupported version %i", XDND_SOURCE_VERSION(info)); W_DragDestinationCancelDropOnEnter(toplevel, info); return; } } if (messageType == scr->xdndPositionAtom) { W_DragDestinationStopTimer(); W_DragDestinationStorePositionMsgInfo(info, toplevel, event); W_DragDestinationStateHandler(info, event); return; } if (messageType == scr->xdndSelectionAtom || messageType == scr->xdndDropAtom) { W_DragDestinationStopTimer(); W_DragDestinationStateHandler(info, event); return; } if (messageType == scr->xdndLeaveAtom) { /* conclude drop operation, and clear dragging info */ W_DragDestinationStopTimer(); handleLeaveMessage(info); } } /* called in destroyView (wview.c) */ void W_FreeViewXdndPart(WMView * view) { WMUnregisterViewDraggedTypes(view); if (view->dragSourceProcs) wfree(view->dragSourceProcs); if (view->dragDestinationProcs) wfree(view->dragDestinationProcs); if (view->dragImage) WMReleasePixmap(view->dragImage); } WindowMaker-0.95.5/WINGs/NEWS0000644000175000017500000004351612214432632012420 00000000000000** API and ABI modifications since wmaker 0.92.0 ** libWINGs ** struct W_DragDestinationInfo: new members added SIZE CHANGE WMGetTextFieldCursorPosition ADDED WC_Matrix REMOVED from enum. WMCreateProgressIndicator REMOVED WMSetProgressIndicatorMinValue REMOVED WMSetProgressIndicatorMaxValue REMOVED WMSetProgressIndicatorValue REMOVED WMGetProgressIndicatorMinValue REMOVED WMGetProgressIndicatorMaxValue REMOVED WMGetProgressIndicatorValue REMOVED typedef struct W_Ruler WMRuler REMOVED typedef struct WMRulerMargins REMOVED WMAppendTextBlock REMOVED WMAppendTextStream REMOVED WMCreateRuler REMOVED WMCreateTextBlockWithObject REMOVED WMCreateTextBlockWithPixmap REMOVED WMCreateTextBlockWithText REMOVED WMCreateTextForDocumentType REMOVED WMDestroyTextBlock REMOVED WMFindInTextStream REMOVED WMFreezeText REMOVED WMGetGrabbedRulerMargin REMOVED WMGetReleasedRulerMargin REMOVED WMGetRulerMargins REMOVED WMGetRulerOffset REMOVED WMGetTextBlockProperties REMOVED WMGetTextDefaultColor REMOVED WMGetTextDefaultFont REMOVED WMGetTextEditable REMOVED WMGetTextIgnoresNewline REMOVED WMGetTextInsertType REMOVED WMGetTextObjects REMOVED WMGetTextRulerShown REMOVED WMGetTextSelectedObjects REMOVED WMGetTextSelectedStream REMOVED WMGetTextSelectionColor REMOVED WMGetTextSelectionFont REMOVED WMGetTextSelectionUnderlined REMOVED WMGetTextStream REMOVED WMGetTextUsesMonoFont REMOVED WMIsMarginEqualToMargin REMOVED WMPageText REMOVED WMPrependTextBlock REMOVED WMPrependTextStream REMOVED WMRemoveTextBlock REMOVED WMReplaceTextSelection REMOVED WMScrollText REMOVED WMSetRulerMargins REMOVED WMSetRulerMoveAction REMOVED WMSetRulerOffset REMOVED WMSetRulerReleaseAction REMOVED WMSetTextAlignment REMOVED WMSetTextBackgroundColor REMOVED WMSetTextBackgroundPixmap REMOVED WMSetTextBlockProperties REMOVED WMSetTextDefaultColor REMOVED WMSetTextDefaultFont REMOVED WMSetTextDelegate REMOVED WMSetTextEditable REMOVED WMSetTextForegroundColor REMOVED WMSetTextHasHorizontalScroller REMOVED WMSetTextHasRuler REMOVED WMSetTextHasVerticalScroller REMOVED WMSetTextIgnoresNewline REMOVED WMSetTextIndentNewLines REMOVED WMSetTextRelief REMOVED WMSetTextSelectionColor REMOVED WMSetTextSelectionFont REMOVED WMSetTextSelectionUnderlined REMOVED WMSetTextUsesMonoFont REMOVED WMShowTextRuler REMOVED WMThawText REMOVED WMRefreshText REMOVED WMCreateText REMOVED WMClearText REMOVED ** libWutil ** enum WMConnectionState REMOVED enum WMConnectionTimeoutState REMOVED struct ConnectionDelegate REMOVED __wmessage ADDED wstrerror REMOVED wmessage converted from function to wrapper macro wwarning converted from function to wrapper macro wfatal converted from function to wrapper macro wsyserror converted from function to wrapper macro wsyserror REMOVED (use werror instead) werror macro ADDED (replaces wsyserror) wsyserrorwithcode removed wmkdirhier ADDED wrmdirhier ADDED wmalloc0 REMOVED wnew REMOVED wnew0 REMOVED wstrlcpy ADDED wstrlcat ADDED WMPushInArray REMOVED WMWritePropListToFile NUMBER OF FUNCTION ARGUMENTS CHANGED WMGetCurrentHost WMGetHostWithName WMGetHostWithAddress WMRetainHost WMReleaseHost WMSetHostCacheEnabled WMIsHostCacheEnabled WMFlushHostCache WMIsHostEqualToHost WMGetHostName WMGetHostNames WMGetHostAddress WMCreateConnectionAsServerAtAddress REMOVED WMCreateConnectionToAddress REMOVED WMCreateConnectionToAddressAndNotify REMOVED WMCloseConnection REMOVED WMDestroyConnection REMOVED WMConnection* WMAcceptConnection REMOVED WMGetConnectionAvailableData REMOVED WMSendConnectionData REMOVED WMEnqueueConnectionData REMOVED WMFlushConnection REMOVED WMSetConnectionDelegate REMOVED WMGetConnectionService REMOVED WMGetConnectionProtocol REMOVED WMSetConnectionNonBlocking REMOVED WMSetConnectionCloseOnExec REMOVED WMSetConnectionShutdownOnClose REMOVED WMGetConnectionClientData REMOVED WMSetConnectionClientData REMOVED WMGetConnectionFlags REMOVED WMSetConnectionFlags REMOVED WMGetConnectionSocket REMOVED WMGetConnectionState REMOVED WMGetConnectionTimeoutState REMOVED WMGetConnectionUnsentData REMOVED WMGetConnectionQueuedData REMOVED WMSetConnectionDefaultTimeout REMOVED WMSetConnectionOpenTimeout REMOVED WMSetConnectionSendTimeout REMOVED WMTreeWalkProc ADDED WMTreeWalk ADDED wshellquote ADDED ---------------------------------------------------- *** Thu May 9 18:24:03 CEST 2013 - Christophe Const-correctness API changes for WRaster, WUtils and WINGs ----------------------------------------------------------- The 3 libraries have been modified to include appropriate 'const' qualifier to the function parameters that are treated as such. This should provide some hints to the compiler for better optimisation. This change should have no impact on the binary interface, and will not impact existing source code. There is one exception however: WUtil: wusergnusteppath() This function now returns 'const char *' because its result must *not* be modified, so it may generate a const related warning in old code. *** Mon Oct 14 19:42:42 EEST 2002 - Dan Double buffering ---------------- To avoid flickering caused by redrawing the widgets on Expose events, a double buffering tehnique was implemented for most of the widgets. This flickering effect has gotten more vizible with the introduction of antialiased fonts. If with normal text one can redraw the text over the old one over and over again without any degradation of the text (new pixels simply overwrite old pixels), with antialiased text the situation is different and text gets quickly corrupted. To avoid this corruption, one needs to first erase the area where the text will go, which can cause the before mentioned flickering. The double buffer is implemented to solve this issue. This is a change that that will be automatically available for any WINGs applications and will require no change in the existing code. However there is an exception from this in case of WMList if you delegate the drawing of items to userspace (read below for the compelte details). *** Mon Oct 14 22:07:42 EEST 2002 - Dan WMList change ------------- In case of WMList there is the posibility to delegate the drawing of the list items to the application that is linked with WINGs, and this code will not be inside the WINGs library, but in userland. Since we use the double buffering tehnique in this case too (to allow all widgets based on WMList and the ones that draw their list items by themselves to benefit from the double buffering advantage automatically), we no longer pass the window to the user code doing item drawing, but instead pass this pixmap in which we draw before copying to the real window. Since one cannot use XClearWindow() or XClearArea() on pixmaps, but only on windows, if the code drawing list items used to call these functions to clear the item area before drawing it needs to change to using XFillRectangle() instead. With this change it also means that there is no longer any need to do any double buffering in the user code, since it's already done by WINGs. *** Mon Oct 14 19:28:35 EEST 2002 - Dan API change ---------- WMDrawString() and WMDrawImageString() no longer take a GC as argument. Instead WMDrawString() takes a WMColor* as the color for the string to be drawn, while WMDrawImageString() takes 2 WMColor* arguments in place of the old GC: first for text color and second for background color. This change is required to support extending WMFont to allow it to handle antialiased fonts through the XFree86 Xft2 extension. This also has the advantage of hiding low level X11 details and use WINGs internat objects instead. To fix your old code to work with the new WINGs API you need to replace the GC passed to WMDraw***String() in your code with a WMColor*. Most of the old code used to be like this: WMDrawString(screen, window, WMColorGC(color), font, x, y, txt, len); for the new API it should be replaced by: WMDrawString(screen, window, color, font, x, y, txt, len); However if you used a particular GC created by yourself to suit your special needs, you need to pass a color which is the same as the foreground color of that gc. For WMDrawImageString(), from: WMDrawImageString(screen, window, gc, font, x, y, txt, len); becomes WMDrawImageString(screen, window, textColor, backColor, font, x, y, txt, len); where textColor and backColor are declared like: WMColor *textColor, *backColor; and have the color of the foreground respective the background of the old gc. *** Wed Oct 9 07:10:04 EEST 2002 - Dan Antialiased font support ------------------------ With the addition of Xft2 support in the WINGs library, now WINGs can display antialiased text with TrueType or any scalable fonts. Antialiased text is enabled by default, but can be disabled by adding AntialiasedText = NO; in ~/GNUstep/Defaults/WMGLOBAL This will disable antialiased text for any WINGs based application. If you only want to disable them for a specific application only, like WindowMaker for example, then add the same option in the applications configuration file, in this case ~/GNUstep/Defaults/WindowMaker Note that bitmapped fonts look much better than TrueType when antialiasing is disabled. *** Mon Sep 09 06:58:30 EEST 2002 - Dan New delegate for the WMConnection class --------------------------------------- ConnectionDelegate structure has a new member: canResumeSending. The purpose of this callback is to notify you that you can resume sending data over a WMConnection. It works in the following manner: WMSendConnectionData() can return 3 values: -1, 0, 1 -1 - means that the connection has died. you should stop sending data and close the connection ASAP. 1 - means that the data was succesfully sent 0 - means that the data (or part of it) was not sent. however, it was saved in a queue and the library will try to send it later when possible. if the return value is 1, you can continue to send the next message, and so on, until the return value of such a send call will be 0. After it returns 0 you can continue sending, however, the data will not be sent over the connection because the operating system cannot accept any more data for the moment. Instead it will be queued inside the library, making your program's memory footprint increase. If the ammount of data you need to send is limited and not too big, this shouldn't be a problem, because your data will be queued and sent when the operating system will notify the library that sending is possible again. If this is the case you can just ignore the output of WMSendConnectionData() and not set a callback for canResumeSending. However, if the ammount of data you have to send is undetermined and you also want to keep a small memory footprint for your program (so that it won't grow until it uses all your available memory ;) ), you will have to stop sending data over the connection as soon as WMSendConnectionData() returns with 0. Then you should somehow mark this situation in your program to avoid it trying to send anymore data until notified that it can resume. (You should have also set a canResumeSending callback when you initialized your WMConnection object because else you cannot be notified when to resume.) Now, when you receive such a 0 from the send operation, your last sent data is put in a queue inside the library. At a later time when the operating system notifies the library that sending is possible again, the library will resume to send the data that is saved in the queue. After it will be able to send all the data in the queue, the canResumeSending callback will be called, letting you know that not only you can resume sending because the operating system is again able to send data, but also that the queue was completely flushed. From the canResumeSending callback, you should again update the status of your program marking that it can send again, and then resume sending the data from where you were left. *** Thu Oct 04 06:00:09 EEST 2001 -Dan Property lists handling code ---------------------------- Code to handle property lists was added to WINGs. It is more robust than the libPropList code, mostly because some conflicting concepts borrowed from UserDefaults (which libPropList use) are no longer used in the WINGs property lists code. These borrowed concepts conflicted with the retain/release mechanism of property lists and could lead in certain cases to segmentation faults when executing libPropList based code. But the worse part was that these libPropList problems were practically unsolvable without removing one of those conflicting concepts and without a complete redesign. The new WINGs property lists code is also better integrated with the other data types from WINGs and is actively maintained. Practically the things that were removed from the WINGs property list implementation compared to the old libPropList implementation, are exactly the UserDefaults borrowed concepts that conflict with the retain/release mechanism: - The container of a proplist object and the associated functions are gone. - The filename associated with a proplist object and the corresponding functions are gone. Now the saving function needs the filename as a parameter. - The synchronization functions are no longer supported. They are part of the UserDefaults and are implemented there. - No functions related to domains/registering were implemented in the WINGs property lists code, because they are also not part of property lists. They are more in connection with UserDefaults and a central point of access for domains. The above 2 concepts: container and filename were added to libPropList just to let it support synchronization which was borrowed from UserDefaults. Property lists as defined in the openstep specification are just complex data structures composed of strings, data, arrays, dictionaries and a mix of them and are not associated with any file in particular. UserDefaults on the other hand are property lists read from a specific file and they associate that property list with that file and allow them to be synchronized. Old libPropList based code can still be used by linking against the WINGs library containing the new proplist code with minimal changes which are described in detail in the comments at the top of the WINGs/proplist-compat.h header file (the same file carries the #defines for mapping old libPropList functions to the new WINGs proplist functions). Our recommendation is to move to the new functions WINGs provide because they better integrate with other function naming conventions in WINGs. The proplist-compat.h header file is just a way to have old code up and running with minimal changes so that we can remove the old and unmaintained libPropList from systems while keeping to use old libPropList based code without rewriting it and it should not be used for other purposes. *** Sat Apr 21 09:12:09 EEST 2001 -Dan API change ---------- To allow a correct display of icon images with alpha blending in panels and other places where a WINGs based application may use them the following changes took place: 1. The following functions were renamed: - WMSetApplicationIconImage() --> WMSetApplicationIconPixmap() - WMGetApplicationIconImage() --> WMGetApplicationIconPixmap() - WMSetWindowMiniwindowImage() --> WMSetWindowMiniwindowPixmap() 2. The following functions were added: - WMSetApplicationIconImage(WMScreen *scr, RImage *image) - RImage* WMGetApplicationIconImage(WMScreen *scr) - WMPixmap* WMCreateApplicationIconBlendedPixmap(WMScreen *scr, RColor *col) As you can see the old functions that operated on WMPixmap images (which are basically X Pixmaps that lack alpha information) were renamed to ...Pixmap() to make them more suggestive about what they do and to make room for the new functions that operate on RImages (that hold alpha information). Since the corresponding WMGet... functions only retrieve the stored image/pixmap from the application, I'll outline how the WMSet... functions operate: All WM...IconPixmap() functions operate on WMPixmaps All WM...IconImage() functions operate on RImages - WMSetApplicationIconImage() will set the RImage to be used in panels and will also convert the RImage to a WMPixmap with a threshold of 128 and will use that pixmap for the appicon image. If that doesn't satisfy you, you can make a call to WMSetApplicationIconPixmap() on your own to set whatever WMPixmap you see fit for the appicon. - WMSetApplicationIconPixmap() will set the WMPixmap to be used for the appicon and for the panels If you use only one of the above functions, the corresponding image/pixmap will be used everywhere where needed (panels and appicon), but the pixmap version will not be able to handle alpha blending correctly. If you use both WMSetApplicationIconImage() and WMSetApplicationIconPixmap() then the RImage will have priority in panels, and the WMPixmap will only be used for the appicon. This allows you to better control what icon is displayed in the appicon, in case the default conversion of the RImage to a pixmap with a threshold of 128 is not good enough, or in case you want a different icon to be shown in the appicon than in panels. Also this new function was added: - WMCreateApplicationIconBlendedPixmap() will use the RImage set with WMSetApplicationIconImage() if available and will blend it with the color you passed. This will make the image show well on a background of that color. If the RImage was not set it will return NULL. You need to call WMReleasePixmap() on it after you finish with it. Passing a NULL pointer instead of a color will make the RImage be blended with the default color of the WINGs widgets: '#aeaaae' making it suitable to be assigned to any WINGs widget. To make your existing code work as before all you need to do is to rename the following functions: - WMSetApplicationIconImage() --> WMSetApplicationIconPixmap() - WMGetApplicationIconImage() --> WMGetApplicationIconPixmap() - WMSetWindowMiniwindowImage() --> WMSetWindowMiniwindowPixmap() But if you want to take advantage of the new abilities to show alpha blended images you need to start using the new functions. WindowMaker-0.95.5/WINGs/bagtree.c0000644000175000017500000003226112214432632013471 00000000000000 #include #include #include "WUtil.h" typedef struct W_Node { struct W_Node *parent; struct W_Node *left; struct W_Node *right; int color; void *data; int index; } W_Node; typedef struct W_Bag { W_Node *root; W_Node *nil; /* sentinel */ int count; void (*destructor) (void *item); } W_Bag; #define IS_LEFT(node) (node == node->parent->left) #define IS_RIGHT(node) (node == node->parent->right) static void leftRotate(W_Bag * tree, W_Node * node) { W_Node *node2; node2 = node->right; node->right = node2->left; node2->left->parent = node; node2->parent = node->parent; if (node->parent == tree->nil) { tree->root = node2; } else { if (IS_LEFT(node)) { node->parent->left = node2; } else { node->parent->right = node2; } } node2->left = node; node->parent = node2; } static void rightRotate(W_Bag * tree, W_Node * node) { W_Node *node2; node2 = node->left; node->left = node2->right; node2->right->parent = node; node2->parent = node->parent; if (node->parent == tree->nil) { tree->root = node2; } else { if (IS_LEFT(node)) { node->parent->left = node2; } else { node->parent->right = node2; } } node2->right = node; node->parent = node2; } static void treeInsert(W_Bag * tree, W_Node * node) { W_Node *y = tree->nil; W_Node *x = tree->root; while (x != tree->nil) { y = x; if (node->index <= x->index) x = x->left; else x = x->right; } node->parent = y; if (y == tree->nil) tree->root = node; else if (node->index <= y->index) y->left = node; else y->right = node; } static void rbTreeInsert(W_Bag * tree, W_Node * node) { W_Node *y; treeInsert(tree, node); node->color = 'R'; while (node != tree->root && node->parent->color == 'R') { if (IS_LEFT(node->parent)) { y = node->parent->parent->right; if (y->color == 'R') { node->parent->color = 'B'; y->color = 'B'; node->parent->parent->color = 'R'; node = node->parent->parent; } else { if (IS_RIGHT(node)) { node = node->parent; leftRotate(tree, node); } node->parent->color = 'B'; node->parent->parent->color = 'R'; rightRotate(tree, node->parent->parent); } } else { y = node->parent->parent->left; if (y->color == 'R') { node->parent->color = 'B'; y->color = 'B'; node->parent->parent->color = 'R'; node = node->parent->parent; } else { if (IS_LEFT(node)) { node = node->parent; rightRotate(tree, node); } node->parent->color = 'B'; node->parent->parent->color = 'R'; leftRotate(tree, node->parent->parent); } } } tree->root->color = 'B'; } static void rbDeleteFixup(W_Bag * tree, W_Node * node) { W_Node *w; while (node != tree->root && node->color == 'B') { if (IS_LEFT(node)) { w = node->parent->right; if (w->color == 'R') { w->color = 'B'; node->parent->color = 'R'; leftRotate(tree, node->parent); w = node->parent->right; } if (w->left->color == 'B' && w->right->color == 'B') { w->color = 'R'; node = node->parent; } else { if (w->right->color == 'B') { w->left->color = 'B'; w->color = 'R'; rightRotate(tree, w); w = node->parent->right; } w->color = node->parent->color; node->parent->color = 'B'; w->right->color = 'B'; leftRotate(tree, node->parent); node = tree->root; } } else { w = node->parent->left; if (w->color == 'R') { w->color = 'B'; node->parent->color = 'R'; rightRotate(tree, node->parent); w = node->parent->left; } if (w->left->color == 'B' && w->right->color == 'B') { w->color = 'R'; node = node->parent; } else { if (w->left->color == 'B') { w->right->color = 'B'; w->color = 'R'; leftRotate(tree, w); w = node->parent->left; } w->color = node->parent->color; node->parent->color = 'B'; w->left->color = 'B'; rightRotate(tree, node->parent); node = tree->root; } } } node->color = 'B'; } static W_Node *treeMinimum(W_Node * node, W_Node * nil) { while (node->left != nil) node = node->left; return node; } static W_Node *treeMaximum(W_Node * node, W_Node * nil) { while (node->right != nil) node = node->right; return node; } static W_Node *treeSuccessor(W_Node * node, W_Node * nil) { W_Node *y; if (node->right != nil) { return treeMinimum(node->right, nil); } y = node->parent; while (y != nil && node == y->right) { node = y; y = y->parent; } return y; } static W_Node *treePredecessor(W_Node * node, W_Node * nil) { W_Node *y; if (node->left != nil) { return treeMaximum(node->left, nil); } y = node->parent; while (y != nil && node == y->left) { node = y; y = y->parent; } return y; } static W_Node *rbTreeDelete(W_Bag * tree, W_Node * node) { W_Node *nil = tree->nil; W_Node *x, *y; if (node->left == nil || node->right == nil) { y = node; } else { y = treeSuccessor(node, nil); } if (y->left != nil) { x = y->left; } else { x = y->right; } x->parent = y->parent; if (y->parent == nil) { tree->root = x; } else { if (IS_LEFT(y)) { y->parent->left = x; } else { y->parent->right = x; } } if (y != node) { node->index = y->index; node->data = y->data; } if (y->color == 'B') { rbDeleteFixup(tree, x); } return y; } static W_Node *treeSearch(W_Node * root, W_Node * nil, int index) { if (root == nil || root->index == index) { return root; } if (index < root->index) { return treeSearch(root->left, nil, index); } else { return treeSearch(root->right, nil, index); } } static W_Node *treeFind(W_Node * root, W_Node * nil, void *data) { W_Node *tmp; if (root == nil || root->data == data) return root; tmp = treeFind(root->left, nil, data); if (tmp != nil) return tmp; tmp = treeFind(root->right, nil, data); return tmp; } #if 0 static char buf[512]; static void printNodes(W_Node * node, W_Node * nil, int depth) { if (node == nil) { return; } printNodes(node->left, nil, depth + 1); memset(buf, ' ', depth * 2); buf[depth * 2] = 0; if (IS_LEFT(node)) printf("%s/(%2i\n", buf, node->index); else printf("%s\\(%2i\n", buf, node->index); printNodes(node->right, nil, depth + 1); } void PrintTree(WMBag * bag) { W_TreeBag *tree = (W_TreeBag *) bag->data; printNodes(tree->root, tree->nil, 0); } #endif WMBag *WMCreateTreeBag(void) { return WMCreateTreeBagWithDestructor(NULL); } WMBag *WMCreateTreeBagWithDestructor(WMFreeDataProc * destructor) { WMBag *bag; bag = wmalloc(sizeof(WMBag)); bag->nil = wmalloc(sizeof(W_Node)); bag->nil->left = bag->nil->right = bag->nil->parent = bag->nil; bag->nil->index = WBNotFound; bag->root = bag->nil; bag->destructor = destructor; return bag; } int WMGetBagItemCount(WMBag * self) { return self->count; } void WMAppendBag(WMBag * self, WMBag * bag) { WMBagIterator ptr; void *data; for (data = WMBagFirst(bag, &ptr); data != NULL; data = WMBagNext(bag, &ptr)) { WMPutInBag(self, data); } } void WMPutInBag(WMBag * self, void *item) { W_Node *ptr; ptr = wmalloc(sizeof(W_Node)); ptr->data = item; ptr->index = self->count; ptr->left = self->nil; ptr->right = self->nil; ptr->parent = self->nil; rbTreeInsert(self, ptr); self->count++; } void WMInsertInBag(WMBag * self, int index, void *item) { W_Node *ptr; ptr = wmalloc(sizeof(W_Node)); ptr->data = item; ptr->index = index; ptr->left = self->nil; ptr->right = self->nil; ptr->parent = self->nil; rbTreeInsert(self, ptr); while ((ptr = treeSuccessor(ptr, self->nil)) != self->nil) { ptr->index++; } self->count++; } int WMRemoveFromBag(WMBag * self, void *item) { W_Node *ptr = treeFind(self->root, self->nil, item); if (ptr != self->nil) { W_Node *tmp; self->count--; tmp = treeSuccessor(ptr, self->nil); while (tmp != self->nil) { tmp->index--; tmp = treeSuccessor(tmp, self->nil); } ptr = rbTreeDelete(self, ptr); if (self->destructor) self->destructor(ptr->data); wfree(ptr); return 1; } else { return 0; } } int WMEraseFromBag(WMBag * self, int index) { W_Node *ptr = treeSearch(self->root, self->nil, index); if (ptr != self->nil) { self->count--; ptr = rbTreeDelete(self, ptr); if (self->destructor) self->destructor(ptr->data); wfree(ptr); wassertrv(self->count == 0 || self->root->index >= 0, 1); return 1; } else { return 0; } } int WMDeleteFromBag(WMBag * self, int index) { W_Node *ptr = treeSearch(self->root, self->nil, index); if (ptr != self->nil) { W_Node *tmp; self->count--; tmp = treeSuccessor(ptr, self->nil); while (tmp != self->nil) { tmp->index--; tmp = treeSuccessor(tmp, self->nil); } ptr = rbTreeDelete(self, ptr); if (self->destructor) self->destructor(ptr->data); wfree(ptr); wassertrv(self->count == 0 || self->root->index >= 0, 1); return 1; } else { return 0; } } void *WMGetFromBag(WMBag * self, int index) { W_Node *node; node = treeSearch(self->root, self->nil, index); if (node != self->nil) return node->data; else return NULL; } int WMGetFirstInBag(WMBag * self, void *item) { W_Node *node; node = treeFind(self->root, self->nil, item); if (node != self->nil) return node->index; else return WBNotFound; } static int treeCount(W_Node * root, W_Node * nil, void *item) { int count = 0; if (root == nil) return 0; if (root->data == item) count++; if (root->left != nil) count += treeCount(root->left, nil, item); if (root->right != nil) count += treeCount(root->right, nil, item); return count; } int WMCountInBag(WMBag * self, void *item) { return treeCount(self->root, self->nil, item); } void *WMReplaceInBag(WMBag * self, int index, void *item) { W_Node *ptr = treeSearch(self->root, self->nil, index); void *old = NULL; if (item == NULL) { self->count--; ptr = rbTreeDelete(self, ptr); if (self->destructor) self->destructor(ptr->data); wfree(ptr); } else if (ptr != self->nil) { old = ptr->data; ptr->data = item; } else { W_Node *ptr; ptr = wmalloc(sizeof(W_Node)); ptr->data = item; ptr->index = index; ptr->left = self->nil; ptr->right = self->nil; ptr->parent = self->nil; rbTreeInsert(self, ptr); self->count++; } return old; } void WMSortBag(WMBag * self, WMCompareDataProc * comparer) { void **items; W_Node *tmp; int i; if (self->count == 0) return; items = wmalloc(sizeof(void *) * self->count); i = 0; tmp = treeMinimum(self->root, self->nil); while (tmp != self->nil) { items[i++] = tmp->data; tmp = treeSuccessor(tmp, self->nil); } qsort(&items[0], self->count, sizeof(void *), comparer); i = 0; tmp = treeMinimum(self->root, self->nil); while (tmp != self->nil) { tmp->index = i; tmp->data = items[i++]; tmp = treeSuccessor(tmp, self->nil); } wfree(items); } static void deleteTree(WMBag * self, W_Node * node) { if (node == self->nil) return; deleteTree(self, node->left); if (self->destructor) self->destructor(node->data); deleteTree(self, node->right); wfree(node); } void WMEmptyBag(WMBag * self) { deleteTree(self, self->root); self->root = self->nil; self->count = 0; } void WMFreeBag(WMBag * self) { WMEmptyBag(self); wfree(self->nil); wfree(self); } static void mapTree(W_Bag * tree, W_Node * node, void (*function) (void *, void *), void *data) { if (node == tree->nil) return; mapTree(tree, node->left, function, data); (*function) (node->data, data); mapTree(tree, node->right, function, data); } void WMMapBag(WMBag * self, void (*function) (void *, void *), void *data) { mapTree(self, self->root, function, data); } static int findInTree(W_Bag * tree, W_Node * node, WMMatchDataProc * function, void *cdata) { int index; if (node == tree->nil) return WBNotFound; index = findInTree(tree, node->left, function, cdata); if (index != WBNotFound) return index; if ((*function) (node->data, cdata)) { return node->index; } return findInTree(tree, node->right, function, cdata); } int WMFindInBag(WMBag * self, WMMatchDataProc * match, void *cdata) { return findInTree(self, self->root, match, cdata); } void *WMBagFirst(WMBag * self, WMBagIterator * ptr) { W_Node *node; node = treeMinimum(self->root, self->nil); if (node == self->nil) { *ptr = NULL; return NULL; } else { *ptr = node; return node->data; } } void *WMBagLast(WMBag * self, WMBagIterator * ptr) { W_Node *node; node = treeMaximum(self->root, self->nil); if (node == self->nil) { *ptr = NULL; return NULL; } else { *ptr = node; return node->data; } } void *WMBagNext(WMBag * self, WMBagIterator * ptr) { W_Node *node; if (*ptr == NULL) return NULL; node = treeSuccessor(*ptr, self->nil); if (node == self->nil) { *ptr = NULL; return NULL; } else { *ptr = node; return node->data; } } void *WMBagPrevious(WMBag * self, WMBagIterator * ptr) { W_Node *node; if (*ptr == NULL) return NULL; node = treePredecessor(*ptr, self->nil); if (node == self->nil) { *ptr = NULL; return NULL; } else { *ptr = node; return node->data; } } void *WMBagIteratorAtIndex(WMBag * self, int index, WMBagIterator * ptr) { W_Node *node; node = treeSearch(self->root, self->nil, index); if (node == self->nil) { *ptr = NULL; return NULL; } else { *ptr = node; return node->data; } } int WMBagIndexForIterator(WMBag * bag, WMBagIterator ptr) { return ((W_Node *) ptr)->index; } WindowMaker-0.95.5/WINGs/wscrollview.c0000644000175000017500000002707312214432632014445 00000000000000 #include "WINGsP.h" typedef struct W_ScrollView { W_Class widgetClass; WMView *view; WMView *contentView; WMView *viewport; WMScroller *vScroller; WMScroller *hScroller; short lineScroll; short pageScroll; struct { WMReliefType relief:3; unsigned int hasVScroller:1; unsigned int hasHScroller:1; } flags; } ScrollView; static void destroyScrollView(ScrollView * sPtr); static void paintScrollView(ScrollView * sPtr); static void handleEvents(XEvent * event, void *data); static void handleViewportEvents(XEvent * event, void *data); static void resizeScrollView(W_ViewDelegate *self, WMView *view); static void updateScrollerProportion(ScrollView *sPtr); W_ViewDelegate _ScrollViewViewDelegate = { NULL, NULL, resizeScrollView, NULL, NULL }; WMScrollView *WMCreateScrollView(WMWidget * parent) { ScrollView *sPtr; sPtr = wmalloc(sizeof(ScrollView)); sPtr->widgetClass = WC_ScrollView; sPtr->view = W_CreateView(W_VIEW(parent)); if (!sPtr->view) { wfree(sPtr); return NULL; } sPtr->viewport = W_CreateView(sPtr->view); if (!sPtr->viewport) { W_DestroyView(sPtr->view); wfree(sPtr); return NULL; } sPtr->view->self = sPtr; sPtr->viewport->self = sPtr; sPtr->view->delegate = &_ScrollViewViewDelegate; sPtr->viewport->flags.mapWhenRealized = 1; WMCreateEventHandler(sPtr->view, StructureNotifyMask | ExposureMask, handleEvents, sPtr); WMCreateEventHandler(sPtr->viewport, SubstructureNotifyMask, handleViewportEvents, sPtr); sPtr->lineScroll = 4; sPtr->pageScroll = 0; return sPtr; } static void applyScrollerValues(WMScrollView * sPtr) { int x, y; if (sPtr->contentView == NULL) return; if (sPtr->flags.hasHScroller) { float v = WMGetScrollerValue(sPtr->hScroller); int size; size = sPtr->contentView->size.width - sPtr->viewport->size.width; x = v * size; } else { x = 0; } if (sPtr->flags.hasVScroller) { float v = WMGetScrollerValue(sPtr->vScroller); int size; size = sPtr->contentView->size.height - sPtr->viewport->size.height; y = v * size; } else { y = 0; } x = WMAX(0, x); y = WMAX(0, y); W_MoveView(sPtr->contentView, -x, -y); W_RaiseView(sPtr->viewport); } static void reorganizeInterior(WMScrollView * sPtr) { int hx, hy, hw; int vx, vy, vh; int cx, cy, cw, ch; cw = hw = sPtr->view->size.width; vh = ch = sPtr->view->size.height; if (sPtr->flags.relief == WRSimple) { cw -= 2; ch -= 2; cx = 1; cy = 1; } else if (sPtr->flags.relief != WRFlat) { cw -= 3; ch -= 3; cx = 2; cy = 2; } else { cx = 0; cy = 0; } if (sPtr->flags.hasHScroller) { int h = 20; ch -= h; if (sPtr->flags.relief == WRSimple) { hx = 0; hy = sPtr->view->size.height - h; } else if (sPtr->flags.relief != WRFlat) { hx = 1; hy = sPtr->view->size.height - h - 1; hw -= 2; } else { hx = 0; hy = sPtr->view->size.height - h; } } else { /* make compiler shutup */ hx = 0; hy = 0; } if (sPtr->flags.hasVScroller) { int w = 20; cw -= w; cx += w; hx += w - 1; hw -= w - 1; if (sPtr->flags.relief == WRSimple) { vx = 0; vy = 0; } else if (sPtr->flags.relief != WRFlat) { vx = 1; vy = 1; vh -= 2; } else { vx = 0; vy = 0; } } else { /* make compiler shutup */ vx = 0; vy = 0; } W_ResizeView(sPtr->viewport, cw, ch); W_MoveView(sPtr->viewport, cx, cy); if (sPtr->flags.hasHScroller) { WMResizeWidget(sPtr->hScroller, hw, 20); WMMoveWidget(sPtr->hScroller, hx, hy); } if (sPtr->flags.hasVScroller) { WMResizeWidget(sPtr->vScroller, 20, vh); WMMoveWidget(sPtr->vScroller, vx, vy); } applyScrollerValues(sPtr); } static void resizeScrollView(W_ViewDelegate * self, WMView * view) { reorganizeInterior(view->self); updateScrollerProportion(view->self); } void WMResizeScrollViewContent(WMScrollView * sPtr, unsigned int width, unsigned int height) { int w, h, x; w = width; h = height; x = 0; if (sPtr->flags.relief == WRSimple) { w += 2; h += 2; } else if (sPtr->flags.relief != WRFlat) { w += 4; h += 4; x = 1; } if (sPtr->flags.hasVScroller) { WMResizeWidget(sPtr->vScroller, 20, h); width -= W_VIEW(sPtr->vScroller)->size.width; } if (sPtr->flags.hasHScroller) { WMResizeWidget(sPtr->hScroller, w, 20); WMMoveWidget(sPtr->hScroller, x, h); height -= W_VIEW(sPtr->hScroller)->size.height; } W_ResizeView(sPtr->view, w, h); W_ResizeView(sPtr->viewport, width, height); } void WMSetScrollViewLineScroll(WMScrollView * sPtr, int amount) { assert(amount > 0); sPtr->lineScroll = amount; } void WMSetScrollViewPageScroll(WMScrollView * sPtr, int amount) { assert(amount >= 0); sPtr->pageScroll = amount; } WMRect WMGetScrollViewVisibleRect(WMScrollView * sPtr) { WMRect rect; rect.pos.x = -sPtr->contentView->pos.x; rect.pos.y = -sPtr->contentView->pos.y; rect.size = sPtr->viewport->size; return rect; } void WMScrollViewScrollPoint(WMScrollView * sPtr, WMPoint point) { float xsize, ysize; float xpos, ypos; xsize = sPtr->contentView->size.width - sPtr->viewport->size.width; ysize = sPtr->contentView->size.height - sPtr->viewport->size.height; xpos = point.x / xsize; ypos = point.y / ysize; if (sPtr->hScroller) WMSetScrollerParameters(sPtr->hScroller, xpos, WMGetScrollerKnobProportion(sPtr->hScroller)); if (sPtr->vScroller) WMSetScrollerParameters(sPtr->vScroller, ypos, WMGetScrollerKnobProportion(sPtr->vScroller)); W_MoveView(sPtr->contentView, -point.x, -point.y); } static void doScrolling(WMWidget * self, void *data) { ScrollView *sPtr = (ScrollView *) data; float value; int pos; int vpsize; float size; if (sPtr->hScroller == (WMScroller *) self) { pos = -sPtr->contentView->pos.x; size = sPtr->contentView->size.width - sPtr->viewport->size.width; vpsize = sPtr->viewport->size.width - sPtr->pageScroll; } else { pos = -sPtr->contentView->pos.y; size = sPtr->contentView->size.height - sPtr->viewport->size.height; vpsize = sPtr->viewport->size.height - sPtr->pageScroll; } if (vpsize <= 0) vpsize = 1; switch (WMGetScrollerHitPart(self)) { case WSDecrementLine: if (pos > 0) { pos -= sPtr->lineScroll; if (pos < 0) pos = 0; value = (float)pos / size; WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self)); } break; case WSIncrementLine: if (pos < size) { pos += sPtr->lineScroll; if (pos > size) pos = size; value = (float)pos / size; WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self)); } break; case WSKnob: value = WMGetScrollerValue(self); pos = value * size; break; case WSDecrementPage: if (pos > 0) { pos -= vpsize; if (pos < 0) pos = 0; value = (float)pos / size; WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self)); } break; case WSDecrementWheel: if (pos > 0) { pos -= vpsize / 3; if (pos < 0) pos = 0; value = (float)pos / size; WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self)); } break; case WSIncrementPage: if (pos < size) { pos += vpsize; if (pos > size) pos = size; value = (float)pos / size; WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self)); } break; case WSIncrementWheel: if (pos < size) { pos += vpsize / 3; if (pos > size) pos = size; value = (float)pos / size; WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self)); } break; case WSNoPart: case WSKnobSlot: break; } if (sPtr->hScroller == (WMScroller *) self) { W_MoveView(sPtr->contentView, -pos, sPtr->contentView->pos.y); } else { W_MoveView(sPtr->contentView, sPtr->contentView->pos.x, -pos); } } WMScroller *WMGetScrollViewHorizontalScroller(WMScrollView * sPtr) { return sPtr->hScroller; } WMScroller *WMGetScrollViewVerticalScroller(WMScrollView * sPtr) { return sPtr->vScroller; } void WMSetScrollViewHasHorizontalScroller(WMScrollView * sPtr, Bool flag) { if (flag) { if (sPtr->flags.hasHScroller) return; sPtr->flags.hasHScroller = 1; sPtr->hScroller = WMCreateScroller(sPtr); WMSetScrollerAction(sPtr->hScroller, doScrolling, sPtr); /* make it a horiz. scroller */ WMResizeWidget(sPtr->hScroller, 2, 1); if (W_VIEW_REALIZED(sPtr->view)) { WMRealizeWidget(sPtr->hScroller); } reorganizeInterior(sPtr); WMMapWidget(sPtr->hScroller); } else { if (!sPtr->flags.hasHScroller) return; WMUnmapWidget(sPtr->hScroller); WMDestroyWidget(sPtr->hScroller); sPtr->hScroller = NULL; sPtr->flags.hasHScroller = 0; reorganizeInterior(sPtr); } } void WMSetScrollViewHasVerticalScroller(WMScrollView * sPtr, Bool flag) { if (flag) { if (sPtr->flags.hasVScroller) return; sPtr->flags.hasVScroller = 1; sPtr->vScroller = WMCreateScroller(sPtr); WMSetScrollerAction(sPtr->vScroller, doScrolling, sPtr); WMSetScrollerArrowsPosition(sPtr->vScroller, WSAMaxEnd); /* make it a vert. scroller */ WMResizeWidget(sPtr->vScroller, 1, 2); if (W_VIEW_REALIZED(sPtr->view)) { WMRealizeWidget(sPtr->vScroller); } reorganizeInterior(sPtr); WMMapWidget(sPtr->vScroller); } else { if (!sPtr->flags.hasVScroller) return; sPtr->flags.hasVScroller = 0; WMUnmapWidget(sPtr->vScroller); WMDestroyWidget(sPtr->vScroller); sPtr->vScroller = NULL; reorganizeInterior(sPtr); } } void WMSetScrollViewContentView(WMScrollView * sPtr, WMView * view) { assert(sPtr->contentView == NULL); sPtr->contentView = view; W_ReparentView(sPtr->contentView, sPtr->viewport, 0, 0); if (sPtr->flags.hasHScroller) { float prop; prop = (float)sPtr->viewport->size.width / sPtr->contentView->size.width; WMSetScrollerParameters(sPtr->hScroller, 0, prop); } if (sPtr->flags.hasVScroller) { float prop; prop = (float)sPtr->viewport->size.height / sPtr->contentView->size.height; WMSetScrollerParameters(sPtr->vScroller, 0, prop); } } void WMSetScrollViewRelief(WMScrollView * sPtr, WMReliefType type) { sPtr->flags.relief = type; reorganizeInterior(sPtr); if (sPtr->view->flags.mapped) paintScrollView(sPtr); } static void paintScrollView(ScrollView * sPtr) { W_DrawRelief(sPtr->view->screen, sPtr->view->window, 0, 0, sPtr->view->size.width, sPtr->view->size.height, sPtr->flags.relief); } static void updateScrollerProportion(ScrollView * sPtr) { float prop, value; float oldV, oldP; if (sPtr->flags.hasHScroller) { oldV = WMGetScrollerValue(sPtr->hScroller); oldP = WMGetScrollerKnobProportion(sPtr->hScroller); prop = (float)sPtr->viewport->size.width / (float)sPtr->contentView->size.width; if (oldP < 1.0) value = (prop * oldV) / oldP; else value = 0; WMSetScrollerParameters(sPtr->hScroller, value, prop); } if (sPtr->flags.hasVScroller) { oldV = WMGetScrollerValue(sPtr->vScroller); oldP = WMGetScrollerKnobProportion(sPtr->vScroller); prop = (float)sPtr->viewport->size.height / (float)sPtr->contentView->size.height; if (oldP < 1.0) value = (prop * oldV) / oldP; else value = 0; WMSetScrollerParameters(sPtr->vScroller, value, prop); } applyScrollerValues(sPtr); } static void handleViewportEvents(XEvent * event, void *data) { ScrollView *sPtr = (ScrollView *) data; if (sPtr->contentView && event->xconfigure.window == sPtr->contentView->window) updateScrollerProportion(sPtr); } static void handleEvents(XEvent * event, void *data) { ScrollView *sPtr = (ScrollView *) data; CHECK_CLASS(data, WC_ScrollView); switch (event->type) { case Expose: if (event->xexpose.count != 0) break; if (event->xexpose.serial == 0) /* means it's artificial */ W_RedisplayView(sPtr->contentView); else paintScrollView(sPtr); break; case DestroyNotify: destroyScrollView(sPtr); break; } } static void destroyScrollView(ScrollView * sPtr) { wfree(sPtr); } WindowMaker-0.95.5/WINGs/widgets.c0000644000175000017500000006074212214432632013533 00000000000000 #include "WINGsP.h" #include "wconfig.h" #include #include #include #include #include #include /********** data ************/ #define CHECK_BUTTON_ON_WIDTH 16 #define CHECK_BUTTON_ON_HEIGHT 16 static char *CHECK_BUTTON_ON[] = { " %", " .............%#", " ........... .%#", " .......... #.%#", " ......... #%.%#", " ........ #%..%#", " ... #.. #%...%#", " ... #% #%....%#", " ... % #%.....%#", " ... #%......%#", " ... #%.......%#", " ...#%........%#", " .............%#", " .............%#", " %%%%%%%%%%%%%%#", "%###############" }; #define CHECK_BUTTON_OFF_WIDTH 16 #define CHECK_BUTTON_OFF_HEIGHT 16 static char *CHECK_BUTTON_OFF[] = { " %", " .............%#", " .............%#", " .............%#", " .............%#", " .............%#", " .............%#", " .............%#", " .............%#", " .............%#", " .............%#", " .............%#", " .............%#", " .............%#", " %%%%%%%%%%%%%%#", "%###############" }; #define RADIO_BUTTON_ON_WIDTH 15 #define RADIO_BUTTON_ON_HEIGHT 15 static char *RADIO_BUTTON_ON[] = { ".....%%%%%.....", "...%%#####%%...", "..%##.....%.%..", ".%#%.. .....", ".%#. ...", "%#.. .. ", "%#. . ", "%#. . ", "%#. . ", "%#. . ", ".%%. . .", ".%.. . .", "..%... .. ..", ".... ..... ...", "..... .....", }; #define RADIO_BUTTON_OFF_WIDTH 15 #define RADIO_BUTTON_OFF_HEIGHT 15 static char *RADIO_BUTTON_OFF[] = { ".....%%%%%.....", "...%%#####%%...", "..%##.......%..", ".%#%...........", ".%#............", "%#............ ", "%#............ ", "%#............ ", "%#............ ", "%#............ ", ".%%.......... .", ".%........... .", "..%......... ..", ".... ..... ...", "..... .....", }; static char *BUTTON_ARROW[] = { "..................", "....##....#### ...", "...#.%....#... ...", "..#..%#####... ...", ".#............ ...", "#............. ...", ".#............ ...", "..#.. ...", "...#. ............", "....# ............" }; #define BUTTON_ARROW_WIDTH 18 #define BUTTON_ARROW_HEIGHT 10 static char *BUTTON_ARROW2[] = { " ", " ## ####. ", " # % # . ", " # %##### . ", " # . ", "# . ", " # . ", " # .......... ", " # . ", " #. " }; #define BUTTON_ARROW2_WIDTH 18 #define BUTTON_ARROW2_HEIGHT 10 static char *SCROLLER_DIMPLE[] = { ".%###.", "%#%%%%", "#%%...", "#%.. ", "#%. ", ".%. ." }; #define SCROLLER_DIMPLE_WIDTH 6 #define SCROLLER_DIMPLE_HEIGHT 6 static char *SCROLLER_ARROW_UP[] = { "....%....", "....#....", "...%#%...", "...###...", "..%###%..", "..#####..", ".%#####%.", ".#######.", "%#######%" }; static char *HI_SCROLLER_ARROW_UP[] = { " % ", " % ", " %%% ", " %%% ", " %%%%% ", " %%%%% ", " %%%%%%% ", " %%%%%%% ", "%%%%%%%%%" }; #define SCROLLER_ARROW_UP_WIDTH 9 #define SCROLLER_ARROW_UP_HEIGHT 9 static char *SCROLLER_ARROW_DOWN[] = { "%#######%", ".#######.", ".%#####%.", "..#####..", "..%###%..", "...###...", "...%#%...", "....#....", "....%...." }; static char *HI_SCROLLER_ARROW_DOWN[] = { "%%%%%%%%%", " %%%%%%% ", " %%%%%%% ", " %%%%% ", " %%%%% ", " %%% ", " %%% ", " % ", " % " }; #define SCROLLER_ARROW_DOWN_WIDTH 9 #define SCROLLER_ARROW_DOWN_HEIGHT 9 static char *SCROLLER_ARROW_LEFT[] = { "........%", "......%##", "....%####", "..%######", "%########", "..%######", "....%####", "......%##", "........%" }; static char *HI_SCROLLER_ARROW_LEFT[] = { " %", " %%%", " %%%%%", " %%%%%%%", "%%%%%%%%%", " %%%%%%%", " %%%%%", " %%%", " %" }; #define SCROLLER_ARROW_LEFT_WIDTH 9 #define SCROLLER_ARROW_LEFT_HEIGHT 9 static char *SCROLLER_ARROW_RIGHT[] = { "%........", "##%......", "####%....", "######%..", "########%", "######%..", "####%....", "##%......", "%........" }; static char *HI_SCROLLER_ARROW_RIGHT[] = { "% ", "%%% ", "%%%%% ", "%%%%%%% ", "%%%%%%%%%", "%%%%%%% ", "%%%%% ", "%%% ", "% " }; #define SCROLLER_ARROW_RIGHT_WIDTH 9 #define SCROLLER_ARROW_RIGHT_HEIGHT 9 static char *POPUP_INDICATOR[] = { " #==", " ......%#==", " ......%#%%", " ......%#%%", " %%%%%%%#%%", "#########%%", "==%%%%%%%%%", "==%%%%%%%%%" }; #define POPUP_INDICATOR_WIDTH 11 #define POPUP_INDICATOR_HEIGHT 8 static char *PULLDOWN_INDICATOR[] = { "=#######=", "=%===== =", "==%=== ==", "==%=== ==", "===%= ===", "===%= ===", "====%====" }; #define PULLDOWN_INDICATOR_WIDTH 9 #define PULLDOWN_INDICATOR_HEIGHT 7 #define CHECK_MARK_WIDTH 8 #define CHECK_MARK_HEIGHT 10 static char *CHECK_MARK[] = { "======== ", "======= #", "====== #%", "===== #%=", " #== #%==", " #% #%===", " % #%====", " #%=====", " #%======", "#%=======" }; #define STIPPLE_WIDTH 8 #define STIPPLE_HEIGHT 8 static char STIPPLE_BITS[] = { 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55 }; static int userWidgetCount = 0; /***** end data ******/ static void renderPixmap(W_Screen * screen, Pixmap d, Pixmap mask, char **data, int width, int height) { int x, y; GC whiteGC = WMColorGC(screen->white); GC blackGC = WMColorGC(screen->black); GC lightGC = WMColorGC(screen->gray); GC darkGC = WMColorGC(screen->darkGray); if (mask) XSetForeground(screen->display, screen->monoGC, 0); for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { switch (data[y][x]) { case ' ': case 'w': XDrawPoint(screen->display, d, whiteGC, x, y); break; case '=': if (mask) XDrawPoint(screen->display, mask, screen->monoGC, x, y); case '.': case 'l': XDrawPoint(screen->display, d, lightGC, x, y); break; case '%': case 'd': XDrawPoint(screen->display, d, darkGC, x, y); break; case '#': case 'b': default: XDrawPoint(screen->display, d, blackGC, x, y); break; } } } } static WMPixmap *makePixmap(W_Screen * sPtr, char **data, int width, int height, int masked) { Pixmap pixmap, mask = None; pixmap = XCreatePixmap(sPtr->display, W_DRAWABLE(sPtr), width, height, sPtr->depth); if (masked) { mask = XCreatePixmap(sPtr->display, W_DRAWABLE(sPtr), width, height, 1); XSetForeground(sPtr->display, sPtr->monoGC, 1); XFillRectangle(sPtr->display, mask, sPtr->monoGC, 0, 0, width, height); } renderPixmap(sPtr, pixmap, mask, data, width, height); return WMCreatePixmapFromXPixmaps(sPtr, pixmap, mask, width, height, sPtr->depth); } #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; RColor gray; RColor white; gray.red = 0xae; gray.green = 0xaa; gray.blue = 0xae; white.red = 0xff; white.green = 0xff; white.blue = 0xff; 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); RReleaseImage(tmp); /* make it have a white background */ tmp = RGetSubImage(image, 0, 0, 24, 24); RCombineImageWithColor(tmp, &white); scr->altHomeIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); /* trash can */ tmp = RGetSubImage(image, 104, 0, 24, 24); RCombineImageWithColor(tmp, &white); scr->trashcanIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); tmp = RGetSubImage(image, 104, 0, 24, 24); RCombineImageWithColor(tmp, &white); scr->altTrashcanIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); /* create dir */ tmp = RGetSubImage(image, 104, 24, 24, 24); RCombineImageWithColor(tmp, &white); scr->createDirIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); tmp = RGetSubImage(image, 104, 24, 24, 24); RCombineImageWithColor(tmp, &white); scr->altCreateDirIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); /* diskettes */ tmp = RGetSubImage(image, 24, 80, 24, 24); RCombineImageWithColor(tmp, &white); scr->disketteIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); tmp = RGetSubImage(image, 24, 80, 24, 24); RCombineImageWithColor(tmp, &white); scr->altDisketteIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); /* unmount */ tmp = RGetSubImage(image, 0, 80, 24, 24); RCombineImageWithColor(tmp, &white); scr->unmountIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); tmp = RGetSubImage(image, 0, 80, 24, 24); RCombineImageWithColor(tmp, &white); scr->altUnmountIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); /* Magnifying Glass Icon for ColorPanel */ tmp = RGetSubImage(image, 24, 0, 40, 32); RCombineImageWithColor(tmp, &gray); scr->magnifyIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); /* ColorWheel Icon for ColorPanel */ tmp = RGetSubImage(image, 0, 25, 24, 24); scr->wheelIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); /* GrayScale Icon for ColorPanel */ tmp = RGetSubImage(image, 65, 0, 40, 24); scr->grayIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); /* RGB Icon for ColorPanel */ tmp = RGetSubImage(image, 25, 33, 40, 24); scr->rgbIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); /* CMYK Icon for ColorPanel */ tmp = RGetSubImage(image, 65, 25, 40, 24); scr->cmykIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); /* HSB Icon for ColorPanel */ tmp = RGetSubImage(image, 0, 57, 40, 24); scr->hsbIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); /* CustomColorPalette Icon for ColorPanel */ tmp = RGetSubImage(image, 81, 57, 40, 24); scr->customPaletteIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); /* ColorList Icon for ColorPanel */ tmp = RGetSubImage(image, 41, 57, 40, 24); scr->colorListIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RReleaseImage(tmp); RReleaseImage(image); #if 0 scr->defaultObjectIcon = 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; } #endif return True; } WMScreen *WMOpenScreen(const char *display) { Display *dpy = XOpenDisplay(display); if (!dpy) { wwarning("WINGs: could not open display %s", XDisplayName(display)); return NULL; } return WMCreateSimpleApplicationScreen(dpy); } WMScreen *WMCreateSimpleApplicationScreen(Display * display) { WMScreen *scr; scr = WMCreateScreen(display, DefaultScreen(display)); scr->aflags.hasAppIcon = 0; scr->aflags.simpleApplication = 1; return scr; } WMScreen *WMCreateScreen(Display * display, int screen) { return WMCreateScreenWithRContext(display, screen, RCreateContext(display, screen, NULL)); } WMScreen *WMCreateScreenWithRContext(Display * display, int screen, RContext * context) { W_Screen *scrPtr; XGCValues gcv; Pixmap stipple; static int initialized = 0; static char *atomNames[] = { "_GNUSTEP_WM_ATTR", "WM_DELETE_WINDOW", "WM_PROTOCOLS", "CLIPBOARD", "XdndAware", "XdndSelection", "XdndEnter", "XdndLeave", "XdndPosition", "XdndDrop", "XdndFinished", "XdndTypeList", "XdndActionList", "XdndActionDescription", "XdndStatus", "XdndActionCopy", "XdndActionMove", "XdndActionLink", "XdndActionAsk", "XdndActionPrivate", "_WINGS_DND_MOUSE_OFFSET", "WM_STATE", "UTF8_STRING", "_NET_WM_NAME", "_NET_WM_ICON_NAME", "_NET_WM_ICON", }; Atom atoms[sizeof(atomNames) / sizeof(atomNames[0])]; int i; if (!initialized) { initialized = 1; W_ReadConfigurations(); assert(W_ApplicationInitialized()); } scrPtr = malloc(sizeof(W_Screen)); if (!scrPtr) return NULL; memset(scrPtr, 0, sizeof(W_Screen)); scrPtr->aflags.hasAppIcon = 1; scrPtr->display = display; scrPtr->screen = screen; scrPtr->rcontext = context; scrPtr->depth = context->depth; scrPtr->visual = context->visual; scrPtr->lastEventTime = 0; scrPtr->colormap = context->cmap; scrPtr->rootWin = RootWindow(display, screen); scrPtr->fontCache = WMCreateHashTable(WMStringPointerHashCallbacks); scrPtr->xftdraw = XftDrawCreate(scrPtr->display, W_DRAWABLE(scrPtr), scrPtr->visual, scrPtr->colormap); /* Create missing CUT_BUFFERs */ { Atom *rootWinProps; int exists[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; int count; rootWinProps = XListProperties(display, scrPtr->rootWin, &count); for (i = 0; i < count; i++) { switch (rootWinProps[i]) { case XA_CUT_BUFFER0: exists[0] = 1; break; case XA_CUT_BUFFER1: exists[1] = 1; break; case XA_CUT_BUFFER2: exists[2] = 1; break; case XA_CUT_BUFFER3: exists[3] = 1; break; case XA_CUT_BUFFER4: exists[4] = 1; break; case XA_CUT_BUFFER5: exists[5] = 1; break; case XA_CUT_BUFFER6: exists[6] = 1; break; case XA_CUT_BUFFER7: exists[7] = 1; break; default: break; } } if (rootWinProps) { XFree(rootWinProps); } for (i = 0; i < 8; i++) { if (!exists[i]) { XStoreBuffer(display, "", 0, i); } } } scrPtr->ignoredModifierMask = 0; { int i; XModifierKeymap *modmap; KeyCode nlock, slock; static int mask_table[8] = { ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask }; unsigned int numLockMask = 0, scrollLockMask = 0; nlock = XKeysymToKeycode(display, XK_Num_Lock); slock = XKeysymToKeycode(display, XK_Scroll_Lock); /* * Find out the masks for the NumLock and ScrollLock modifiers, * so that we can bind the grabs for when they are enabled too. */ modmap = XGetModifierMapping(display); if (modmap != NULL && modmap->max_keypermod > 0) { for (i = 0; i < 8 * modmap->max_keypermod; i++) { if (modmap->modifiermap[i] == nlock && nlock != 0) numLockMask = mask_table[i / modmap->max_keypermod]; else if (modmap->modifiermap[i] == slock && slock != 0) scrollLockMask = mask_table[i / modmap->max_keypermod]; } } if (modmap) XFreeModifiermap(modmap); scrPtr->ignoredModifierMask = numLockMask | scrollLockMask | LockMask; } /* initially allocate some colors */ WMWhiteColor(scrPtr); WMBlackColor(scrPtr); WMGrayColor(scrPtr); WMDarkGrayColor(scrPtr); gcv.graphics_exposures = False; gcv.function = GXxor; gcv.foreground = W_PIXEL(scrPtr->white); if (gcv.foreground == 0) gcv.foreground = 1; scrPtr->xorGC = XCreateGC(display, W_DRAWABLE(scrPtr), GCFunction | GCGraphicsExposures | GCForeground, &gcv); gcv.function = GXxor; gcv.foreground = W_PIXEL(scrPtr->gray); gcv.subwindow_mode = IncludeInferiors; scrPtr->ixorGC = XCreateGC(display, W_DRAWABLE(scrPtr), GCFunction | GCGraphicsExposures | GCForeground | GCSubwindowMode, &gcv); gcv.function = GXcopy; scrPtr->copyGC = XCreateGC(display, W_DRAWABLE(scrPtr), GCFunction | GCGraphicsExposures, &gcv); scrPtr->clipGC = XCreateGC(display, W_DRAWABLE(scrPtr), GCFunction | GCGraphicsExposures, &gcv); stipple = XCreateBitmapFromData(display, W_DRAWABLE(scrPtr), STIPPLE_BITS, STIPPLE_WIDTH, STIPPLE_HEIGHT); gcv.foreground = W_PIXEL(scrPtr->darkGray); gcv.background = W_PIXEL(scrPtr->gray); gcv.fill_style = FillStippled; gcv.stipple = stipple; scrPtr->stippleGC = XCreateGC(display, W_DRAWABLE(scrPtr), GCForeground | GCBackground | GCStipple | GCFillStyle | GCGraphicsExposures, &gcv); scrPtr->drawStringGC = XCreateGC(display, W_DRAWABLE(scrPtr), GCGraphicsExposures, &gcv); scrPtr->drawImStringGC = XCreateGC(display, W_DRAWABLE(scrPtr), GCGraphicsExposures, &gcv); /* we need a 1bpp drawable for the monoGC, so borrow this one */ scrPtr->monoGC = XCreateGC(display, stipple, 0, NULL); scrPtr->stipple = stipple; scrPtr->antialiasedText = WINGsConfiguration.antialiasedText; scrPtr->normalFont = WMSystemFontOfSize(scrPtr, 0); scrPtr->boldFont = WMBoldSystemFontOfSize(scrPtr, 0); if (!scrPtr->boldFont) scrPtr->boldFont = scrPtr->normalFont; if (!scrPtr->normalFont) { wwarning(_("could not load any fonts. Make sure your font installation" " and locale settings are correct.")); return NULL; } /* create input method stuff */ W_InitIM(scrPtr); scrPtr->checkButtonImageOn = makePixmap(scrPtr, CHECK_BUTTON_ON, CHECK_BUTTON_ON_WIDTH, CHECK_BUTTON_ON_HEIGHT, False); scrPtr->checkButtonImageOff = makePixmap(scrPtr, CHECK_BUTTON_OFF, CHECK_BUTTON_OFF_WIDTH, CHECK_BUTTON_OFF_HEIGHT, False); scrPtr->radioButtonImageOn = makePixmap(scrPtr, RADIO_BUTTON_ON, RADIO_BUTTON_ON_WIDTH, RADIO_BUTTON_ON_HEIGHT, False); scrPtr->radioButtonImageOff = makePixmap(scrPtr, RADIO_BUTTON_OFF, RADIO_BUTTON_OFF_WIDTH, RADIO_BUTTON_OFF_HEIGHT, False); scrPtr->buttonArrow = makePixmap(scrPtr, BUTTON_ARROW, BUTTON_ARROW_WIDTH, BUTTON_ARROW_HEIGHT, False); scrPtr->pushedButtonArrow = makePixmap(scrPtr, BUTTON_ARROW2, BUTTON_ARROW2_WIDTH, BUTTON_ARROW2_HEIGHT, False); scrPtr->scrollerDimple = makePixmap(scrPtr, SCROLLER_DIMPLE, SCROLLER_DIMPLE_WIDTH, SCROLLER_DIMPLE_HEIGHT, False); scrPtr->upArrow = makePixmap(scrPtr, SCROLLER_ARROW_UP, SCROLLER_ARROW_UP_WIDTH, SCROLLER_ARROW_UP_HEIGHT, True); scrPtr->downArrow = makePixmap(scrPtr, SCROLLER_ARROW_DOWN, SCROLLER_ARROW_DOWN_WIDTH, SCROLLER_ARROW_DOWN_HEIGHT, True); scrPtr->leftArrow = makePixmap(scrPtr, SCROLLER_ARROW_LEFT, SCROLLER_ARROW_LEFT_WIDTH, SCROLLER_ARROW_LEFT_HEIGHT, True); scrPtr->rightArrow = makePixmap(scrPtr, SCROLLER_ARROW_RIGHT, SCROLLER_ARROW_RIGHT_WIDTH, SCROLLER_ARROW_RIGHT_HEIGHT, True); scrPtr->hiUpArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_UP, SCROLLER_ARROW_UP_WIDTH, SCROLLER_ARROW_UP_HEIGHT, True); scrPtr->hiDownArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_DOWN, SCROLLER_ARROW_DOWN_WIDTH, SCROLLER_ARROW_DOWN_HEIGHT, True); scrPtr->hiLeftArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_LEFT, SCROLLER_ARROW_LEFT_WIDTH, SCROLLER_ARROW_LEFT_HEIGHT, True); scrPtr->hiRightArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_RIGHT, SCROLLER_ARROW_RIGHT_WIDTH, SCROLLER_ARROW_RIGHT_HEIGHT, True); scrPtr->popUpIndicator = makePixmap(scrPtr, POPUP_INDICATOR, POPUP_INDICATOR_WIDTH, POPUP_INDICATOR_HEIGHT, True); scrPtr->pullDownIndicator = makePixmap(scrPtr, PULLDOWN_INDICATOR, PULLDOWN_INDICATOR_WIDTH, PULLDOWN_INDICATOR_HEIGHT, True); scrPtr->checkMark = makePixmap(scrPtr, CHECK_MARK, CHECK_MARK_WIDTH, CHECK_MARK_HEIGHT, True); loadPixmaps(scrPtr); scrPtr->defaultCursor = XCreateFontCursor(display, XC_left_ptr); scrPtr->textCursor = XCreateFontCursor(display, XC_xterm); { XColor bla; Pixmap blank; blank = XCreatePixmap(display, scrPtr->stipple, 1, 1, 1); XSetForeground(display, scrPtr->monoGC, 0); XFillRectangle(display, blank, scrPtr->monoGC, 0, 0, 1, 1); scrPtr->invisibleCursor = XCreatePixmapCursor(display, blank, blank, &bla, &bla, 0, 0); XFreePixmap(display, blank); } #ifdef HAVE_XINTERNATOMS XInternAtoms(display, atomNames, sizeof(atomNames) / sizeof(atomNames[0]), False, atoms); #else for (i = 0; i < sizeof(atomNames) / sizeof(atomNames[0]); i++) { atoms[i] = XInternAtom(display, atomNames[i], False); } #endif i = 0; scrPtr->attribsAtom = atoms[i++]; scrPtr->deleteWindowAtom = atoms[i++]; scrPtr->protocolsAtom = atoms[i++]; scrPtr->clipboardAtom = atoms[i++]; scrPtr->xdndAwareAtom = atoms[i++]; scrPtr->xdndSelectionAtom = atoms[i++]; scrPtr->xdndEnterAtom = atoms[i++]; scrPtr->xdndLeaveAtom = atoms[i++]; scrPtr->xdndPositionAtom = atoms[i++]; scrPtr->xdndDropAtom = atoms[i++]; scrPtr->xdndFinishedAtom = atoms[i++]; scrPtr->xdndTypeListAtom = atoms[i++]; scrPtr->xdndActionListAtom = atoms[i++]; scrPtr->xdndActionDescriptionAtom = atoms[i++]; scrPtr->xdndStatusAtom = atoms[i++]; scrPtr->xdndActionCopy = atoms[i++]; scrPtr->xdndActionMove = atoms[i++]; scrPtr->xdndActionLink = atoms[i++]; scrPtr->xdndActionAsk = atoms[i++]; scrPtr->xdndActionPrivate = atoms[i++]; scrPtr->wmIconDragOffsetAtom = atoms[i++]; scrPtr->wmStateAtom = atoms[i++]; scrPtr->utf8String = atoms[i++]; scrPtr->netwmName = atoms[i++]; scrPtr->netwmIconName = atoms[i++]; scrPtr->netwmIcon = atoms[i++]; scrPtr->rootView = W_CreateRootView(scrPtr); scrPtr->balloon = W_CreateBalloon(scrPtr); W_InitApplication(scrPtr); return scrPtr; } void WMSetWidgetDefaultFont(WMScreen * scr, WMFont * font) { WMReleaseFont(scr->normalFont); scr->normalFont = WMRetainFont(font); } void WMSetWidgetDefaultBoldFont(WMScreen * scr, WMFont * font) { WMReleaseFont(scr->boldFont); scr->boldFont = WMRetainFont(font); } void WMHangData(WMWidget * widget, void *data) { W_VIEW(widget)->hangedData = data; } void *WMGetHangedData(WMWidget * widget) { return W_VIEW(widget)->hangedData; } void WMDestroyWidget(WMWidget * widget) { W_UnmapView(W_VIEW(widget)); W_DestroyView(W_VIEW(widget)); } void WMSetFocusToWidget(WMWidget * widget) { W_SetFocusOfTopLevel(W_TopLevelOfView(W_VIEW(widget)), W_VIEW(widget)); } /* * WMRealizeWidget- * Realizes the widget and all it's children. * */ void WMRealizeWidget(WMWidget * w) { W_RealizeView(W_VIEW(w)); } void WMMapWidget(WMWidget * w) { W_MapView(W_VIEW(w)); } void WMReparentWidget(WMWidget * w, WMWidget * newParent, int x, int y) { W_ReparentView(W_VIEW(w), W_VIEW(newParent), x, y); } static void makeChildrenAutomap(W_View * view, int flag) { view = view->childrenList; while (view) { view->flags.mapWhenRealized = flag; makeChildrenAutomap(view, flag); view = view->nextSister; } } void WMMapSubwidgets(WMWidget * w) { /* make sure that subwidgets created after the parent was realized * are mapped too */ if (!W_VIEW(w)->flags.realized) { makeChildrenAutomap(W_VIEW(w), True); } else { W_MapSubviews(W_VIEW(w)); } } void WMUnmapSubwidgets(WMWidget * w) { if (!W_VIEW(w)->flags.realized) { makeChildrenAutomap(W_VIEW(w), False); } else { W_UnmapSubviews(W_VIEW(w)); } } void WMUnmapWidget(WMWidget * w) { W_UnmapView(W_VIEW(w)); } Bool WMWidgetIsMapped(WMWidget * w) { return W_VIEW(w)->flags.mapped; } void WMSetWidgetBackgroundColor(WMWidget * w, WMColor * color) { W_SetViewBackgroundColor(W_VIEW(w), color); if (W_VIEW(w)->flags.mapped) WMRedisplayWidget(w); } WMColor *WMGetWidgetBackgroundColor(WMWidget * w) { return W_VIEW(w)->backColor; } void WMRaiseWidget(WMWidget * w) { W_RaiseView(W_VIEW(w)); } void WMLowerWidget(WMWidget * w) { W_LowerView(W_VIEW(w)); } void WMMoveWidget(WMWidget * w, int x, int y) { W_MoveView(W_VIEW(w), x, y); } void WMResizeWidget(WMWidget * w, unsigned int width, unsigned int height) { W_ResizeView(W_VIEW(w), width, height); } W_Class W_RegisterUserWidget(void) { userWidgetCount++; return userWidgetCount + WC_UserWidget - 1; } RContext *WMScreenRContext(WMScreen * scr) { return scr->rcontext; } unsigned int WMWidgetWidth(WMWidget * w) { return W_VIEW(w)->size.width; } unsigned int WMWidgetHeight(WMWidget * w) { return W_VIEW(w)->size.height; } Window WMWidgetXID(WMWidget * w) { return W_VIEW(w)->window; } WMScreen *WMWidgetScreen(WMWidget * w) { return W_VIEW(w)->screen; } void WMScreenMainLoop(WMScreen * scr) { XEvent event; while (1) { WMNextEvent(scr->display, &event); WMHandleEvent(&event); } } void WMBreakModalLoop(WMScreen * scr) { scr->modalLoop = 0; } void WMRunModalLoop(WMScreen * scr, WMView * view) { /* why is scr passed if is determined from the view? */ /*WMScreen *scr = view->screen; */ int oldModalLoop = scr->modalLoop; WMView *oldModalView = scr->modalView; scr->modalView = view; scr->modalLoop = 1; while (scr->modalLoop) { XEvent event; WMNextEvent(scr->display, &event); WMHandleEvent(&event); } scr->modalView = oldModalView; scr->modalLoop = oldModalLoop; } Display *WMScreenDisplay(WMScreen * scr) { return scr->display; } int WMScreenDepth(WMScreen * scr) { return scr->depth; } unsigned int WMScreenWidth(WMScreen * scr) { return scr->rootView->size.width; } unsigned int WMScreenHeight(WMScreen * scr) { return scr->rootView->size.height; } void WMRedisplayWidget(WMWidget * w) { W_RedisplayView(W_VIEW(w)); } WindowMaker-0.95.5/WINGs/menuparser.c0000644000175000017500000004246012214432632014243 00000000000000/* * Window Maker window manager * * Copyright (c) 2012 Christophe Curis * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include "menuparser.h" static WMenuParser menu_parser_create_new(const char *file_name, void *file, const char *include_default_paths); static char *menu_parser_isolate_token(WMenuParser parser, WParserMacro *list_macros); static void menu_parser_get_directive(WMenuParser parser); static Bool menu_parser_include_file(WMenuParser parser); static void menu_parser_condition_ifmacro(WMenuParser parser, Bool check_exists); static void menu_parser_condition_else(WMenuParser parser); static void menu_parser_condition_end(WMenuParser parser); /* Constructor and Destructor for the Menu Parser object */ WMenuParser WMenuParserCreate(const char *file_name, void *file, const char *include_default_paths) { WMenuParser parser; parser = menu_parser_create_new(file_name, file, include_default_paths); menu_parser_register_preset_macros(parser); return parser; } void WMenuParserDelete(WMenuParser parser) { if (parser->include_file) { /* Trick: the top parser's data are not wmalloc'd, we point on the * provided data so we do not wfree it; however for include files * we did wmalloc them. * This code should not be used as the wfree is done when we reach * the end of an include file; however this may not happen when an * early exit occurs (typically when 'readMenuFile' does not find * its expected command). */ fclose(parser->include_file->file_handle); wfree((char *) parser->include_file->file_name); WMenuParserDelete(parser->include_file); } if (parser->macros) menu_parser_free_macros(parser); wfree(parser); } static WMenuParser menu_parser_create_new(const char *file_name, void *file, const char *include_default_paths) { WMenuParser parser; parser = wmalloc(sizeof(*parser)); parser->include_default_paths = include_default_paths; parser->file_name = file_name; parser->file_handle = file; parser->rd = parser->line_buffer; return parser; } /* To report helpfull messages to user */ const char *WMenuParserGetFilename(WMenuParser parser) { return parser->file_name; } void WMenuParserError(WMenuParser parser, const char *msg, ...) { char buf[MAXLINE]; va_list args; WMenuParser parent; while (parser->include_file) parser = parser->include_file; va_start(args, msg); vsnprintf(buf, sizeof(buf), msg, args); va_end(args); __wmessage("WMenuParser", parser->file_name, parser->line_number, WMESSAGE_TYPE_WARNING, "%s", buf); for (parent = parser->parent_file; parent != NULL; parent = parent->parent_file) __wmessage("WMenuParser", parser->file_name, parser->line_number, WMESSAGE_TYPE_WARNING, _(" included from file \"%s\" at line %d"), parent->file_name, parent->line_number); } /* Read one line from file and split content * The function returns False when the end of file is reached */ Bool WMenuParserGetLine(WMenuParser top_parser, char **title, char **command, char **parameter, char **shortcut) { WMenuParser cur_parser; enum { GET_TITLE, GET_COMMAND, GET_PARAMETERS, GET_SHORTCUT } scanmode; char *token, *params = NULL; char lineparam[MAXLINE]; lineparam[0] = '\0'; *title = NULL; *command = NULL; *parameter = NULL; *shortcut = NULL; scanmode = GET_TITLE; read_next_line_with_filechange: cur_parser = top_parser; while (cur_parser->include_file) cur_parser = cur_parser->include_file; read_next_line: if (fgets(cur_parser->line_buffer, sizeof(cur_parser->line_buffer), cur_parser->file_handle) == NULL) { if (cur_parser->cond.depth > 0) { int i; for (i = 0; i < cur_parser->cond.depth; i++) WMenuParserError(cur_parser, _("missing #endif to match #%s at line %d"), cur_parser->cond.stack[i].name, cur_parser->cond.stack[i].line); } if (cur_parser->parent_file == NULL) /* Not inside an included file -> we have reached the end */ return False; /* We have only reached the end of an included file -> go back to calling file */ fclose(cur_parser->file_handle); wfree((char *) cur_parser->file_name); cur_parser = cur_parser->parent_file; wfree(cur_parser->include_file); cur_parser->include_file = NULL; goto read_next_line_with_filechange; } cur_parser->line_number++; cur_parser->rd = cur_parser->line_buffer; for (;;) { if (!menu_parser_skip_spaces_and_comments(cur_parser)) { /* We reached the end of line */ if (scanmode == GET_TITLE) goto read_next_line; /* Empty line -> skip */ else break; /* Finished reading current line -> return it to caller */ } if ((scanmode == GET_TITLE) && (*cur_parser->rd == '#')) { cur_parser->rd++; menu_parser_get_directive(cur_parser); goto read_next_line_with_filechange; } if (cur_parser->cond.stack[0].skip) goto read_next_line; /* Found a word */ token = menu_parser_isolate_token(cur_parser, top_parser->macros); switch (scanmode) { case GET_TITLE: *title = token; scanmode = GET_COMMAND; break; case GET_COMMAND: if (strcmp(token, "SHORTCUT") == 0) { scanmode = GET_SHORTCUT; wfree(token); } else { *command = token; scanmode = GET_PARAMETERS; } break; case GET_SHORTCUT: if (*shortcut != NULL) { WMenuParserError(top_parser, _("multiple SHORTCUT definition not valid") ); wfree(*shortcut); } *shortcut = token; scanmode = GET_COMMAND; break; case GET_PARAMETERS: { char *src; if (params == NULL) { params = lineparam; } else { if ((params - lineparam) < sizeof(lineparam) - 1) *params++ = ' '; } src = token; while ((params - lineparam) < sizeof(lineparam) - 1) if ( (*params = *src++) == '\0') break; else params++; wfree(token); } break; } } if (params != NULL) { lineparam[sizeof(lineparam) - 1] = '\0'; *parameter = wstrdup(lineparam); } return True; } /* Return False when there's nothing left on the line, otherwise increment parser's pointer to next token */ Bool menu_parser_skip_spaces_and_comments(WMenuParser parser) { for (;;) { while (isspace(*parser->rd)) parser->rd++; if (*parser->rd == '\0') { return False; /* Found the end of current line */ } else if ((parser->rd[0] == '\\') && (parser->rd[1] == '\n') && (parser->rd[2] == '\0')) { /* Means that the current line is expected to be continued on next line */ if (fgets(parser->line_buffer, sizeof(parser->line_buffer), parser->file_handle) == NULL) { WMenuParserError(parser, _("premature end of file while expecting a new line after '\\'") ); return False; } parser->line_number++; parser->rd = parser->line_buffer; } else if (parser->rd[0] == '/') { if (parser->rd[1] == '/') /* Single line C comment */ return False; /* Won't find anything more on this line */ if (parser->rd[1] == '*') { int start_line; start_line = parser->line_number; parser->rd += 2; for (;;) { /* Search end-of-comment marker */ while (*parser->rd != '\0') { if ((parser->rd[0] == '*') && (parser->rd[1] == '/')) goto found_end_of_comment; parser->rd++; } /* Marker not found -> load next line */ if (fgets(parser->line_buffer, sizeof(parser->line_buffer), parser->file_handle) == NULL) { WMenuParserError(parser, _("reached end of file while searching '*/' for comment started at line %d"), start_line); return False; } parser->line_number++; parser->rd = parser->line_buffer; } found_end_of_comment: parser->rd += 2; /* Skip closing mark */ continue; /* Because there may be spaces after the comment */ } return True; /* the '/' was not a comment, treat it as user data */ } else { return True; /* Found some data */ } } } /* read a token (non-spaces suite of characters) * the result is wmalloc's, so it needs to be free'd */ static char *menu_parser_isolate_token(WMenuParser parser, WParserMacro *list_macros) { char buffer_token[sizeof(parser->line_buffer)]; char *token; int limit = MAX_NESTED_MACROS; token = buffer_token; restart_token_split: while (*parser->rd != '\0') if (isspace(*parser->rd)) { break; } else if ((parser->rd[0] == '/') && ((parser->rd[1] == '*') || (parser->rd[1] == '/'))) { break; } else if (parser->rd[0] == '\\') { if ((parser->rd[1] == '\n') || (parser->rd[1] == '\0')) break; parser->rd++; *token++ = *parser->rd++; } else if (*parser->rd == '"' ) { char ch; /* Double-quoted string deserve special processing because macros are not expanded inside. We also remove the double quotes. */ parser->rd++; while ((*parser->rd != '\0') && (*parser->rd != '\n')) { ch = *parser->rd++; if (ch == '\\') { if ((*parser->rd == '\0') || (*parser->rd == '\n')) break; *token++ = *parser->rd++; } else if (ch == '"') goto found_end_dquote; else *token++ = ch; } WMenuParserError(parser, _("missing closing double-quote before end-of-line") ); found_end_dquote: ; } else if (*parser->rd == '\'') { char ch; /* Simple-quoted string deserve special processing because we keep their content as-is, including the quotes and the \-escaped text */ *token++ = *parser->rd++; while ((*parser->rd != '\0') && (*parser->rd != '\n')) { ch = *parser->rd++; *token++ = ch; if (ch == '\'') goto found_end_squote; } WMenuParserError(parser, _("missing closing simple-quote before end-of-line") ); found_end_squote: ; } else if (isnamechr(*parser->rd)) { WParserMacro *macro; macro = menu_parser_find_macro(parser, parser->rd); if (macro != NULL) { /* The expansion is done inside the parser's buffer this is needed to allow sub macro calls */ menu_parser_expand_macro(parser, macro); /* Restart parsing to allow expansion of sub macro calls */ if (limit-- > 0) goto restart_token_split; WMenuParserError(parser, _("too many nested macro expansion, breaking loop") ); while (isnamechr(*parser->rd)) parser->rd++; break; } else { while (isnamechr(*parser->rd)) *token++ = *parser->rd++; } } else { *token++ = *parser->rd++; } *token++ = '\0'; token = wmalloc(token - buffer_token); strcpy(token, buffer_token); return token; } /* Processing of special # directives */ static void menu_parser_get_directive(WMenuParser parser) { char *command; /* Isolate the command */ while (isspace(*parser->rd)) parser->rd++; command = parser->rd; while (*parser->rd) if (isspace(*parser->rd)) { *parser->rd++ = '\0'; break; } else { parser->rd++; } if (strcmp(command, "include") == 0) { if (!menu_parser_include_file(parser)) return; } else if (strcmp(command, "define") == 0) { menu_parser_define_macro(parser); } else if (strcmp(command, "ifdef") == 0) { menu_parser_condition_ifmacro(parser, 1); } else if (strcmp(command, "ifndef") == 0) { menu_parser_condition_ifmacro(parser, 0); } else if (strcmp(command, "else") == 0) { menu_parser_condition_else(parser); } else if (strcmp(command, "endif") == 0) { menu_parser_condition_end(parser); } else { WMenuParserError(parser, _("unknow directive '#%s'"), command); return; } if (menu_parser_skip_spaces_and_comments(parser)) WMenuParserError(parser, _("extra text after '#' command is ignored: \"%.16s...\""), parser->rd); } /* Extract the file name, search for it in known directories * and create a sub-parser to handle it. * Returns False if the file could not be found */ static Bool menu_parser_include_file(WMenuParser parser) { char buffer[MAXLINE]; char *req_filename, *fullfilename, *p; char eot; FILE *fh; if (!menu_parser_skip_spaces_and_comments(parser)) { WMenuParserError(parser, _("no file name found for #include") ); return False; } switch (*parser->rd++) { case '<': eot = '>'; break; case '"': eot = '"'; break; default: WMenuParserError(parser, _("file name must be enclosed in brackets or double-quotes for #define") ); return False; } req_filename = parser->rd; while (*parser->rd) { if (*parser->rd == eot) { *parser->rd++ = '\0'; goto found_end_define_fname; } else { parser->rd++; } } WMenuParserError(parser, _("missing closing '%c' in filename specification"), eot); return False; found_end_define_fname: /* If we're inside a #if sequence, we abort now, but not sooner in * order to keep the syntax check */ if (parser->cond.stack[0].skip) return False; { /* Check we are not nesting too many includes */ WMenuParser p; int count; count = 0; for (p = parser; p->parent_file; p = p->parent_file) count++; if (count > MAX_NESTED_INCLUDES) { WMenuParserError(parser, _("too many nested includes") ); return False; } } /* Absolute paths */ fullfilename = req_filename; if (req_filename[0] != '/') { /* Search first in the same directory as the current file */ p = strrchr(parser->file_name, '/'); if (p != NULL) { int len; len = p - parser->file_name + 1; if (len > sizeof(buffer) - 1) len = sizeof(buffer) - 1; strncpy(buffer, parser->file_name, len); strncpy(buffer+len, req_filename, sizeof(buffer) - len - 1); buffer[sizeof(buffer) - 1] = '\0'; fullfilename = buffer; } } fh = fopen(fullfilename, "rb"); /* Not found? Search in wmaker's known places */ if (fh == NULL) { if (req_filename[0] != '/') { const char *src; int idx; fullfilename = buffer; src = parser->include_default_paths; while (*src != '\0') { idx = 0; if (*src == '~') { char *home = wgethomedir(); while (*home != '\0') { if (idx < sizeof(buffer) - 2) buffer[idx++] = *home; home++; } src++; } while ((*src != '\0') && (*src != ':')) { if (idx < sizeof(buffer) - 2) buffer[idx++] = *src; src++; } buffer[idx++] = '/'; for (p = req_filename; *p != '\0'; p++) if (idx < sizeof(buffer) - 1) buffer[idx++] = *p; buffer[idx] = '\0'; fh = fopen(fullfilename, "rb"); if (fh != NULL) goto found_valid_file; if (*src == ':') src++; } } WMenuParserError(parser, _("could not find file \"%s\" for include"), req_filename); return False; } /* Found the file, make it our new source */ found_valid_file: parser->include_file = menu_parser_create_new(wstrdup(req_filename), fh, parser->include_default_paths); parser->include_file->parent_file = parser; return True; } /* Check wether a macro exists or not, and marks the parser to ignore the * following data accordingly */ static void menu_parser_condition_ifmacro(WMenuParser parser, Bool check_exists) { WParserMacro *macro; int idx; const char *cmd_name, *macro_name; cmd_name = check_exists?"ifdef":"ifndef"; if (!menu_parser_skip_spaces_and_comments(parser)) { WMenuParserError(parser, _("missing macro name argument to #%s"), cmd_name); return; } /* jump to end of provided name for later checks that no extra stuff is following */ macro_name = parser->rd; while (isnamechr(*parser->rd)) parser->rd++; /* Add this condition to the stack of conditions */ if (parser->cond.depth >= sizeof(parser->cond.stack) / sizeof(parser->cond.stack[0])) { WMenuParserError(parser, _("too many nested #if sequences") ); return; } for (idx = parser->cond.depth - 1; idx >= 0; idx--) parser->cond.stack[idx + 1] = parser->cond.stack[idx]; parser->cond.depth++; if (parser->cond.stack[1].skip) { parser->cond.stack[0].skip = True; } else { macro = menu_parser_find_macro(parser, macro_name); parser->cond.stack[0].skip = ((check_exists) && (macro == NULL)) || ((!check_exists) && (macro != NULL)) ; } strcpy(parser->cond.stack[0].name, cmd_name); parser->cond.stack[0].line = parser->line_number; } /* Swap the 'data ignore' flag because a #else condition was found */ static void menu_parser_condition_else(WMenuParser parser) { if (parser->cond.depth <= 0) { WMenuParserError(parser, _("found #%s but have no matching #if"), "else" ); return; } if ((parser->cond.depth > 1) && (parser->cond.stack[1].skip)) /* The containing #if is false, so we continue skipping anyway */ parser->cond.stack[0].skip = True; else parser->cond.stack[0].skip = !parser->cond.stack[0].skip; } /* Closes the current conditional, removing it from the stack */ static void menu_parser_condition_end(WMenuParser parser) { int idx; if (parser->cond.depth <= 0) { WMenuParserError(parser, _("found #%s but have no matching #if"), "endif" ); return; } if (--parser->cond.depth > 0) for (idx = 0; idx < parser->cond.depth; idx++) parser->cond.stack[idx] = parser->cond.stack[idx + 1]; else parser->cond.stack[0].skip = False; } WindowMaker-0.95.5/WINGs/selection.c0000644000175000017500000002263712214432632014053 00000000000000 #include #include #include "WINGsP.h" #define MAX_PROPERTY_SIZE 8*1024 char *WMSelectionOwnerDidChangeNotification = "WMSelectionOwnerDidChange"; typedef struct SelectionHandler { WMView *view; Atom selection; Time timestamp; WMSelectionProcs procs; void *data; struct { unsigned delete_pending:1; unsigned done_pending:1; } flags; } SelectionHandler; typedef struct SelectionCallback { WMView *view; Atom selection; Atom target; Time timestamp; WMSelectionCallback *callback; void *data; struct { unsigned delete_pending:1; unsigned done_pending:1; } flags; } SelectionCallback; static WMArray *selCallbacks = NULL; static WMArray *selHandlers = NULL; static Bool gotXError = False; void WMDeleteSelectionHandler(WMView * view, Atom selection, Time timestamp) { SelectionHandler *handler; Display *dpy = W_VIEW_SCREEN(view)->display; Window win = W_VIEW_DRAWABLE(view); WMArrayIterator iter; if (!selHandlers) return; /*//printf("deleting selection handler for %d", win); */ WM_ITERATE_ARRAY(selHandlers, handler, iter) { if (handler->view == view && (handler->selection == selection || selection == None) && (handler->timestamp == timestamp || timestamp == CurrentTime)) { if (handler->flags.done_pending) { handler->flags.delete_pending = 1; /*//puts(": postponed because still pending"); */ return; } /*//printf(": found & removed"); */ WMRemoveFromArray(selHandlers, handler); break; } } /*//printf("\n"); */ XGrabServer(dpy); if (XGetSelectionOwner(dpy, selection) == win) { XSetSelectionOwner(dpy, selection, None, timestamp); } XUngrabServer(dpy); } static void WMDeleteSelectionCallback(WMView * view, Atom selection, Time timestamp) { SelectionCallback *handler; WMArrayIterator iter; if (!selCallbacks) return; WM_ITERATE_ARRAY(selCallbacks, handler, iter) { if (handler->view == view && (handler->selection == selection || selection == None) && (handler->timestamp == timestamp || timestamp == CurrentTime)) { if (handler->flags.done_pending) { handler->flags.delete_pending = 1; return; } WMRemoveFromArray(selCallbacks, handler); break; } } } static int handleXError(Display * dpy, XErrorEvent * ev) { gotXError = True; return 1; } static Bool writeSelection(Display * dpy, Window requestor, Atom property, Atom type, WMData * data) { static void *oldHandler; int format, bpi; format = WMGetDataFormat(data); if (format == 0) format = 8; bpi = format / 8; /* printf("write to %x: %s\n", requestor, XGetAtomName(dpy, property)); */ oldHandler = XSetErrorHandler(handleXError); gotXError = False; XChangeProperty(dpy, requestor, property, type, format, PropModeReplace, WMDataBytes(data), WMGetDataLength(data) / bpi); XFlush(dpy); XSetErrorHandler(oldHandler); return !gotXError; } static void notifySelection(XEvent * event, Atom prop) { XEvent ev; /* printf("event to %x\n", event->xselectionrequest.requestor); */ ev.xselection.type = SelectionNotify; ev.xselection.serial = 0; ev.xselection.send_event = True; ev.xselection.display = event->xselectionrequest.display; ev.xselection.requestor = event->xselectionrequest.requestor; ev.xselection.target = event->xselectionrequest.target; ev.xselection.selection = event->xselectionrequest.selection; ev.xselection.property = prop; ev.xselection.time = event->xselectionrequest.time; XSendEvent(event->xany.display, event->xselectionrequest.requestor, False, 0, &ev); XFlush(event->xany.display); } static void handleRequestEvent(XEvent * event) { SelectionHandler *handler; WMArrayIterator iter; WMArray *copy; Bool handledRequest; WM_ITERATE_ARRAY(selHandlers, handler, iter) { switch (event->type) { case SelectionClear: if (W_VIEW_DRAWABLE(handler->view) != event->xselectionclear.window) { break; } handler->flags.done_pending = 1; if (handler->procs.selectionLost) handler->procs.selectionLost(handler->view, handler->selection, handler->data); handler->flags.done_pending = 0; handler->flags.delete_pending = 1; break; case SelectionRequest: if (W_VIEW_DRAWABLE(handler->view) != event->xselectionrequest.owner) { break; } if (handler->procs.convertSelection != NULL && handler->selection == event->xselectionrequest.selection) { Atom atom; WMData *data; Atom prop; /* they're requesting for something old.. maybe another handler * can handle it */ if (event->xselectionrequest.time < handler->timestamp && event->xselectionrequest.time != CurrentTime) { break; } handledRequest = False; handler->flags.done_pending = 1; data = handler->procs.convertSelection(handler->view, handler->selection, event->xselectionrequest.target, handler->data, &atom); prop = event->xselectionrequest.property; /* obsolete clients that don't set the property field */ if (prop == None) prop = event->xselectionrequest.target; if (data) { if (writeSelection(event->xselectionrequest.display, event->xselectionrequest.requestor, prop, atom, data)) { handledRequest = True; } WMReleaseData(data); } notifySelection(event, (handledRequest == True ? prop : None)); if (handler->procs.selectionDone != NULL) { handler->procs.selectionDone(handler->view, handler->selection, event->xselectionrequest.target, handler->data); } handler->flags.done_pending = 0; } break; } } /* delete handlers */ copy = WMDuplicateArray(selHandlers); WM_ITERATE_ARRAY(copy, handler, iter) { if (handler && handler->flags.delete_pending) { WMDeleteSelectionHandler(handler->view, handler->selection, handler->timestamp); } } WMFreeArray(copy); } static WMData *getSelectionData(Display * dpy, Window win, Atom where) { WMData *wdata; unsigned char *data; Atom rtype; int bits, bpi; unsigned long len, bytes; if (XGetWindowProperty(dpy, win, where, 0, MAX_PROPERTY_SIZE, False, AnyPropertyType, &rtype, &bits, &len, &bytes, &data) != Success) { return NULL; } bpi = bits / 8; wdata = WMCreateDataWithBytesNoCopy(data, len * bpi, (WMFreeDataProc *) XFree); WMSetDataFormat(wdata, bits); return wdata; } static void handleNotifyEvent(XEvent * event) { SelectionCallback *handler; WMArrayIterator iter; WMArray *copy; WMData *data; WM_ITERATE_ARRAY(selCallbacks, handler, iter) { if (W_VIEW_DRAWABLE(handler->view) != event->xselection.requestor || handler->selection != event->xselection.selection) { continue; } handler->flags.done_pending = 1; if (event->xselection.property == None) { data = NULL; } else { data = getSelectionData(event->xselection.display, event->xselection.requestor, event->xselection.property); } (*handler->callback) (handler->view, handler->selection, handler->target, handler->timestamp, handler->data, data); if (data != NULL) { WMReleaseData(data); } handler->flags.done_pending = 0; handler->flags.delete_pending = 1; } /* delete callbacks */ copy = WMDuplicateArray(selCallbacks); WM_ITERATE_ARRAY(copy, handler, iter) { if (handler && handler->flags.delete_pending) { WMDeleteSelectionCallback(handler->view, handler->selection, handler->timestamp); } } WMFreeArray(copy); } void W_HandleSelectionEvent(XEvent * event) { /*//printf("%d received selection ", event->xany.window); */ /*//switch(event->type) { case SelectionNotify: puts("notify"); break; case SelectionRequest: puts("request"); break; case SelectionClear: puts("clear"); break; default: puts("unknown"); break; } */ if (event->type == SelectionNotify) { handleNotifyEvent(event); } else { handleRequestEvent(event); } } Bool WMCreateSelectionHandler(WMView * view, Atom selection, Time timestamp, WMSelectionProcs * procs, void *cdata) { SelectionHandler *handler; Display *dpy = W_VIEW_SCREEN(view)->display; XSetSelectionOwner(dpy, selection, W_VIEW_DRAWABLE(view), timestamp); if (XGetSelectionOwner(dpy, selection) != W_VIEW_DRAWABLE(view)) { return False; } WMPostNotificationName(WMSelectionOwnerDidChangeNotification, (void *)selection, (void *)view); /*//printf("created selection handler for %d\n", W_VIEW_DRAWABLE(view)); */ handler = wmalloc(sizeof(SelectionHandler)); handler->view = view; handler->selection = selection; handler->timestamp = timestamp; handler->procs = *procs; handler->data = cdata; memset(&handler->flags, 0, sizeof(handler->flags)); if (selHandlers == NULL) { selHandlers = WMCreateArrayWithDestructor(4, wfree); } WMAddToArray(selHandlers, handler); return True; } Bool WMRequestSelection(WMView * view, Atom selection, Atom target, Time timestamp, WMSelectionCallback * callback, void *cdata) { SelectionCallback *handler; if (XGetSelectionOwner(W_VIEW_SCREEN(view)->display, selection) == None) return False; if (!XConvertSelection(W_VIEW_SCREEN(view)->display, selection, target, W_VIEW_SCREEN(view)->clipboardAtom, W_VIEW_DRAWABLE(view), timestamp)) { return False; } handler = wmalloc(sizeof(SelectionCallback)); handler->view = view; handler->selection = selection; handler->target = target; handler->timestamp = timestamp; handler->callback = callback; handler->data = cdata; if (selCallbacks == NULL) { selCallbacks = WMCreateArrayWithDestructor(4, wfree); } WMAddToArray(selCallbacks, handler); return True; } WindowMaker-0.95.5/WINGs/ChangeLog0000644000175000017500000007143512214432632013474 00000000000000Changes since wmaker 0.92.0: ............................ - updated the XDND code in to work with GDK based applications. WINGs based applications should now work with both KDE and GNOME applications (Sylvain Reynal ) - better check for the XDND protocol version when interoperating with other applications. As it seems xdnd version 3 (which WINGs supports) and newer are not backward compatible with xdnd version 1 and 2. This is why WINGs applications cannot interoperate with GNUstep applications (which uses xdnd version 2). Xdnd version 4 and 5 are backwards compatible with version 3 though. (Sylvain Reynal ) - removed dependency on rgb.txt from X11 and issues with locating it on the filesystem for different systems/distributions. - Removed dependency on rgb.txt (from X11) and issues with locating it on the filesystem for different systems/distributions. Changes since wmaker 0.80.1: ............................ - Added WMSetConnectionShutdownOnClose() - Added an extra member to the ConnectionDelegate: canResumeSending see NEWS for details. - WMDrawString() and WMDrawImageString() now take WMColor instead of GC as arguments. WMDrawImageString() receives 2 colors (text & background). This is to allow easy extension for Xft/Xrender and hide X low level details Read NEWS for details since this will break backward compatibility. - Added alpha channel to WMColor. 2 new functions also: WMCreateRGBAColor() and WMSetColorAlpha() - Miscelaneous code cleanups in wtext.c - Added Xft2 support in WINGs (for drawing antialiased fonts with transparency). - New options in WMGLOBAL: AntialiasedText. Check NEWS for details. - Fixed some improper calls to snprintf in wfont.c - Added double buffering when drawing a WMFrame title with an antialiased font to avoid flickering. - Added double buffering when drawing WMList items to avoid flickering. Double buffering for list also works for user drawn lists. Read NEWS for details and incompatibilities introduced by this change. - Added WMGetColorAlpha(WMColor *color) - Better outline when drawing balloons. - Added WMCreateFontWithAttributes() - You can now pass "SystemFont", "BoldSystemFont", "SystemFont-##" or "BoldSystemFont-##", with ## being the font size to any font creating function to create a font with the (bold) system font font specification. - Added WMCopyFontWithChanges(). This is a more generic and powerful function meant to replaces the obsoleted WMEmphasizeFont(), WMNormalizeFont(), WMStrenghtenFont() and the other similar functions. To get the same effect you pass some predefined structs to it: WFANormal, WFABold, WFAEmphasized, etc which are declared in WINGs.h). - Fixed a bug with empty frame titles (Alexey Voinov ) - Added WMGetWidgetBackgroundColor() - Code cleanup in wtext.c - Fixed a memory leak in wfontpanel.c - Fixed WMGetTextDefaultColor() not to retain the returned color. It returns only a reference to the internal color, which you shouldn't release - Added wstrndup() - Added WMGetFontName() - Added fontpanel callback - Added WMSetTableViewHasHorizontalScroller() - Fixed bug that could cause SIGSEGV by accessing beyond the end of text in a WINGs textfield widget. - Fixed small memory leak in the font panel code. - Fixed call to qsort in WMSortArray. - Fixed a memleak in the file panel. - Double/triple-click selection in text widgets (Vitaly Ovtchinnikov ) - Fixed bug in tableview (clicked row callback got incorrect row) (Carlos Torres ) - Fixed bug in resizing a scrollview - Fixed bug with wrong text wrapping (Alexey Voinov ) - Added wmkrect() - Added xdnd v3 support (Sylvain Reynal ) - Fixed and enhanced text wrapping. Changes since wmaker 0.80.0: ............................ - fixed a bug in wfindfile() (rewrote wfindfile() with better logic). - separated the font caches for normal fonts and fontsets in WINGs (they can have the same names and collide in the cache giving unwanted results) - fixed labels not to display '\n' as a character if multiple '\n' are passed but just skip to the next line. - better warning when importing non-digit characters in PropList Data. - rewrote WMBox to use a WMArray for subviews. with this change fixed a bug about arranging subviews after removing one and a memleak occuring in the same case. - Fixed WMGetViewScreenPosition() to consider the window decorations. - Added ability to enable/disable individual WMTableViewItems. - Fixed textfields regarding interpretation of special keys with modifiers. - Fixed some functions that accept a boolean flag as a paramater, to set only 1 or 0 for the flag value, not the flag passed by the user. - Added 2 functions to retrieve the default system fonts: WMDefaultSystemFont(WMScreen *scr) and WMDefaultBoldSystemFont(WMScreen *scr) - Added WMSetButtonImageDimsWhenDisabled() and WMGetButtonEnabled() - Cleaned-up the header files of functions/vars declared but not implemented - Added WMGetTextFieldDelegate() Changes since wmaker 0.70.0: ............................ - added an internal strcasecmp() (only on systems where is not present) - removed some redundant includes of ../src/config.h when wconfig.h is included too - removed a wsyserror() message when reading a property list from file (the programmer should decide if to give that message or just ignore). - added a 'Bool recursive' flag to WMMergePLDictionaries() - added WMSubtractPLDictionaries() Changes since wmaker 0.65.0: ............................ - fixed problem with WINGs based apps exiting with a "X_RotateProperties" related error when text was selected in a textfiled. - moved wstrdup(), wstrconcat() and wstrappend() from memory.c to string.c - added property list handling code making libPropList unnecessary and obsolete. Backward compatibility is provided through the WINGs/proplist-compat.h header file which has #defines from old libPropList function names to new function names with minimal changes. Read this header file and the NEWS file for more details about this subject. - Renamed WMGetUDAllKeys() to WMGetUDKeys() Changes since wmaker 0.64.0: ............................ - made programmatic scroller changes send notifications - replaced WMSetBoxExpandsToParent with WMSetViewExpands... - added WMGetLabelFont() - added WMAddPersistentTimerHandler() - Moved all internal handlers (timer, idle and input) to handlers.c - simplified wevent.c and wutil.c. - fixed handling of input with poll (was broken) - fixed mem leak that occured when input handling was done with poll - simpler and more straightforward event handling for timer, idle, input and X events (also fixed some problems the old handling logic had) - moved timer, idle and input handler definitions and prototypes from WINGs.h to WUtil.h because they're not GUI related. - better and more robust handling of events (timer, idle, input, X) in WMMaskEvent(). Also fixed a bug where input and timer events were not treated for undefined periods of time under some circumstances. - fixed secure textfields not to allow text selection, to avoid compromising sensitive information by pasting it to a terminal. - replaced wmkrange(), wmkpoint() and wmksize() functions with macros. - added WMRemoveFromArrayMatching(array, match, cdata), which will remove the first element in the array that is matched by match(item, cdata)==True. - added WMArrayFirst(), WMArrayLast(), WMArrayNext() and WMArrayPrevious() functions and also WM_ITERATE_ARRAY() and WM_ETARETI_ARRAY() macros, to make interfaces to WMBag and WMArray similar and to make life a little simpler when iterating through all elements of an array. - replaced bags with arrays wherever appropriate. This will improve performance a bit. - replaced some recursive code with iterative code in selection.c - added WMCreateBlendedPixmapFromRImage() - small API change: 1. Renamed WMSetApplicationIconImage(), WMGetApplicationIconImage() and WMSetWindowMiniwindowImage() to respectively WMSetApplicationIconPixmap(), WMGetApplicationIconPixmap() and WMSetWindowMiniwindowPixmap() They operate on a WMPixmap which is practically an X Pixmap with no alpha channel information and the new name is more suggestive and also leaves room for the new functions added for operating on images with alpha info. 2. Added WMSetApplicationIconImage() and WMGetApplicationIconImage() which operate on an RImage and store alpha information too. 3. Added WMCreateApplicationIconBlendedPixmap() which will take the image set by WMSetApplicationIconImage() and will combine it with a color. If color is NULL it will blend using the default panel color (#aeaaae) All these changes will allow WINGs to handle images with alpha blending correctly in panels and wherever else needed. More about in NEWS. - updated panels to use the newly available RImages if present and fallback to old WMPixmaps if not, to properly show alpha blended images. - replaced some still left malloc's with wmalloc's. - fixed a bug in WMReparentWidget() - added WMReparentWidget() to WINGs.h - fixed a bug that made the scroller knob jump backwards when dragged (this bug had no relation with the behavior that #define STRICT_NEXT_BEHAVIOUR attempts to accomplish). - fixed scrolling direction with mouse wheel for horizontal scroller. changes since wmaker 0.63.1: ............................ - added WMRunModalLoop() and WMBreakModalLoop() - added WMSetBoxExpandsToParent() - added WMRemoveBoxSubview() - moved WINGs headers in a WINGs subdirectory when installed. use #include in your application from now on. Also updated get-{wings|wutil}-flags. - Fixed a mem leak in WMList. - Fixed a bug that caused sigsegv for a WMList with more than 32767 items. - Added an example of how to create a server type program with WMConnection. - added WMOpenScreen() changes since wmaker 0.62.1: ............................ - added WRuler widget - added WText widget (rtf multiline text widget) Nwanua Elumeze - added a new AUTO option for the UseMultiByte option - added WMRaiseWidget()/WMLowerWidget() - added missing EscapeTextMovement to textfield delegate/notification - added WMGetLabelText() - added WMReparentWidget() - added WMCreateTabViewItem() - added W_CreateUnmanagedTopView() - added wtokenjoin(), wtokensplit(), wtokenfree(), wtrimspace() - added WMWidgetIsMapped() - added WMSetApplicationIconWindow() - restructured the directory tree. Added Documentation, Examples and Tests subdirectories - removed WMArrayBag and reorganized WMTreeBag to be WMBag. - added WMArray class. - added WMSetWindowUserPosition() - added WMGetListSelectedItems() - added WMSetListAllowMultipleSelection(), WMListAllowsMultipleSelection(). - added WMSetListAllowEmptySelection(), WMListAllowsEmptySelection(). - WMListSelectionDidChangeNotification passes NULL as the notification client data (previously passed the selected item row). - added WMUnselectListItem(), WMSelectAllListItems(), WMUnselectAllListItems() - better behavior of wheel mices in WMList. Simple mouse wheel events will scroll by 1/3 of the WMList height. Using Shift as a modifier will scroll line by line, while using Control as a modifier will scroll page by page. - better behavior of WMScroller regarding mouse wheel events. 'Shift' modifier will scroll line by line, while 'Control' modifier will scroll page by page. - fixed some buffer overflow allowing bugs. - added WSDecrementWheel and WSIncrementWheel for handling mouse wheel in scrollers and scrolled widgets. This should be treated like the WSxxxPage counterparts, except it should scroll by page_size/3 instead of one full page - added WMSetBrowserAllowMultipleSelection(), WMSetBrowserAllowEmptySelection() WMBrowserAllowsMultipleSelection() and WMBrowserAllowsEmptySelection() - WMBrowser now allows multiple selections. - Added WMGetBrowserPaths() to retrieve the paths for browsers that allow multiple selections. - WMDestroyWidget() now calls WMUnmapWidget() first - added WMScrollerDidScrollNotification to scroller - added WMGetScrollViewVisibleRect() - fixed a mem leak in the browser code. - renamed wstrappend() to wstrconcat(). wstrconcat(str1, str2) concatenates str1 with str2 and returns that in a newly malloc'ed string. Be sure to rename wstrappend with wstrconcat in your code too, else hazardous things can happen! - implemented a new wstrappend() function. wstrappend(dst, src) will append src to dst modifing dst and returning a pointer to it. No new string is generated, except if dst is NULL, in which case its the same as calling wstrdup(src). dst can ONLY be NULL or a dynamically allocated string (obtained from a call to malloc, realloc, wmalloc, wrealloc, ...). dst CANNOT be a static or a constant string! - added wmessage() for printing a variable formatted string to stderr, with the program name prepended to it. Similar to wwarning(), except that it doesn't add "warning:" in the output message. - added WMBox widget - added WMAddTabViewItemWithView() - added W_SetViewCursor() - made Extra widgets library - added table widget in Extras library - added WMGetConnectionUnsentData() (WMGetConnectionQueuedData() too as an alias). - added WMSetConnectionCloseOnExec() to specify if the socket associated with a connection survives an exec* call or not. When a new connection is created using the WMCreate... or WMAcceptConnection() calls, it has the close on exec flag set automatically to 'True' by the library. Unless you want to let the socket of some connection to survive across an exec* call, you need not to call this function. - removed all the wsyserror() and wwarning() calls from host.c and connection.c and replaced where appropriate with assertions. If a function returns some invalid result, you can still get the system error message if you need, by calling wsyserrorwithcode() and passing WCErrorCode, if WCErrorCode > 0. If WCErrorCode==0, that is not a system error, and wsyserrorwithcode() should not be called in this case. - added WMNextHashEnumeratorKey() to retrieve all keys in some hash enumerator one by one. - fixed a bug with mouse wheels scrolling in scrollers even with the widget fully visible. - Fixed a memory leak (the destroy function for a view was never called and as a result the shaded windows didn't go away when closed. The non-shaded windows were unmapped on close but not destroyed either so they only apparently went away, but continued to use memory). - Fixed a bug in the hashtable code which free'd the whole item instead of just the item key in WMResetHashTable() (possible source of SIGSEGVs) changes since wmaker 0.62.0: ............................ - added WMSetWidgetDefaultFont(), WMSetWidgetDefaultBoldFont() changes since wmaker 0.62.0: ............................ - added WM{S,G}etDataFormat() - added drag and drop - changed selection code - added clientdata to WMFindInBag - removed SetWindowInitialSize() - added SetWindowAspectRatio() - added initial timeout when establishing a connection. - added WMSetConnectionDefaultTimeout() and WMSetConnectionOpenTimeout(); - added WMGetConnectionTimeoutState() changes since wmaker 0.61.1: ............................ - WARNING: semantic of bags has changed! An index assigned to an item will always keep that index unless you insert an item before it. For example: bag = WMCreateBag(); WMSetInBag(bag, 10, "bla"); That code will put "bla" in index 10, instead of 0, as it used to be. - fixed WMInsertInBag(). It ignored index, and always put the new item at end. - added WMSaveUserDefaults(). - rewrote WMPopUpButton to use WMMenuItem - added WMGetPopUpButtonMenuItem(WMPopUpButton *bPtr, int index) - WMSortListItemsWithComparer(WMList *lPtr, (int)(f)(const void*, const void*)) - WMSortBrowserColumnWithComparer() - fixed bug with sorting list items. - fixed bug in handling keyboard input associated with selection and notification sending. - filepanel puts dirs on top of list (Wolff ) - added WMReplaceInBag (Wolff ) - added vertical views and multiple views in WMSplitView (Wolff ) - changed values of parameter values of WMSplitViewConstrainProc() - configurable default fontsize patch (Igor P. Roboul ) - fixed a bug that crashed the programm when a popup button was scrolled. - fixed a bug that caused incorrect drawing position of the popup indicator. - fixed a bug that prevented selecting no item (-1) in a popup button. - an assertion will be raised if the program tries to select a popup button item that is beyond the total number of items present in the popup button. - changed names of functions for SplitView to be consistent. Some contained SubView while other Subview. Now all have Subview. - fixed a bug in how input events were posted. Establishing 2 or more input handlers for the same file descriptor, handling different (read/write/except) events, caused wrong handlers to be called. - Reimplemented the input and idle handlers with WMBag to avoid a functional problem with them: inability to remove handlers next to the called one, from the called handler itself. Trying to do this with the old version caused the program to crash. - changed wrealloc behaviour to be like this: new = wrealloc(old, new_size); 1. if old is NULL, return wmalloc(new_size). 2. if new_size is 0, call wfree(old), and return NULL. 3. if both old is a valid pointer and new_size>0, call realloc. - added wstrerror(int errnum) to return the string associated with errnum. - new wsyserrorwithcode(int error, const char* fmt, ...), similar to wsyserror(), but printing the message for the specified error code. - added 3 new classes: WMData, WMHost and WMConnection - fixed a big memory leak in the color panel code (from Pascal Hofstee). - added scrolling to tabview changes since wmaker 0.61.0: ............................ - added WMGetTextFieldFont() - escape key in panels (craig nellist ) - applied patch with fixes and enhancements to textfield (Franck Wolff ) - changed WMList to use WMBag internally, instead of a linked list - replaced WMAddSortedListItem() with WMSortListItems() - replaced WMAddSortedBrowserItem() with WMSortBrowserColumn() changes since wmaker 0.60.0: ............................ - added WMScreenWidth() and WMScreenHeight() functions. - fixed some problems when compiling with non gcc compilers. - added WMSetTextFieldFont() - added WMSetButtonImageDefault() (craig nellist ) - added WMBag (array/list) - added libWUtil, a library that is a subset of libWINGs. It contains utils that can be used in writing non-GUI programs. They include: hashes, notifications, input/idle/timer handlers, user defaults database handling, memory handling, application resource handling, etc. All the non-GUI stuff from libWINGs is present. Still linWINGs contain all this stuff so if you use libWINGs, you don't need to link against libWUtil too. One notable aspect of libWUtil is that it has a modified version of the event handling function. It is named WHandleEvents() and will handle all input/idle/timer events the app has. If your app has a permanent input handler (as for example a socket a server is listening on), then the main loop of the app can be: while(1) { WHandleEvents(); } but if there is no permanent input handler, you need to add some delay to avoid a too high cpu load by your program: while(1) { WHandleEvents(); wusleep(5000); } A permanent input handler is one that is established when the program starts and is present until the program exits. One that is deleted and later reinstalled, is not considered permanent. This difference is because if there is some input handler, the function will block until some event appears, while if there is no input handler the function will return almost immediately (after handling the timer/idle stuff). Except the stuff declared in WUtil.h, the following functions declared in WINGs.h are also present in libWUtil (you will need to #include if you use one of these): WMInitializeApplication(char *applicationName, int *argc, char **argv); WMSetResourcePath(char *path); WMGetApplicationName(); WMPathForResourceOfType(char *resource, char *ext); WMAddTimerHandler(int milliseconds, WMCallback *callback, void *cdata); WMDeleteTimerWithClientData(void *cdata); WMDeleteTimerHandler(WMHandlerID handlerID); WMAddIdleHandler(WMCallback *callback, void *cdata); WMDeleteIdleHandler(WMHandlerID handlerID); WMAddInputHandler(int fd, int condition, WMInputProc *proc, void *clientData); WMDeleteInputHandler(WMHandlerID handlerID); - added progress indicator widget - Changed WMSetWindowUPosition() and WMSetWindowUSize() to WMSetWindowInitialPosition() and WMSetWindowInitialSize() respectively, for better naming conventions. changes since wmaker 0.53.0: ............................ - added balloon help - fixed a bug with setting initial path in browsers. - added WMSetButtonImageDimsWhenDisabled() - changed simple callback/notifications to delegate-like stuff. Affected widgets are: WMBrowser - WMSetBrowserFillProc() was replaced with WMSetBrowserDelegate - WMBrowserDidScrollNotification was replaced with a delegate callback WMTextField (not completed yet) The notifications will still work, but using the delegate is preferable How to convert old code to delegate callbacks: 1 - create a variable (static or dynamic) of the type of the delegate for the widget type. 2 - Replace the notification observers with the equivalent delegate callbacks. 3 - Put pointers to the callbacks in the delegate variable. Take a look in wfilepanel.c to see how it is used there. - changed W_ViewProcedureTable to delegates This will only affect user created widgets. If you have a custom widget, you will need to update the callbacks and the declaration of the W_ViewProcedureTable variable to be a W_ViewDelegate, which is declared in WINGsP.h To setup the delegate, assign the delegate variable to view->delegate. - WMTextField Removed all the didChange notifications that were sent when the text was changed programmatically. Only changes made by user interaction will be notified now. If you need the old behaviour, send notifications manually when you change the text. - added WMTabView - added WMGetColorPanelColor(WMColorPanel *panel) - made WMGetUDStringForKey() to only return a reference to the string, not a wstrdup()'ed copy. DO NOT FREE IT ANYMORE! - added MultiByteText option to userdefaults file to control use of multibyte string drawing functions - renamed WMCreateFont() to WMCreateFontSet() - renamed WMCreateFontInDefaultEncoding() to WMCreateNormalFont() - added WMCreateFont() with different semantics changes since wmaker 0.52.0: ............................ - added int WMGetBrowserMaxVisibleColumns(WMBrowser *bPtr); changes since wmaker 0.51.2: ............................ - added WMColorWellDidChangeNotification - added wfindfileinarray() - fixed bug in window title setting (MANOME Tomonori ) changes since wmaker 0.51.1: ............................ - wusergnusteppath() will return a statically allocated string now. DO NOT FREE IT ANYMORE!! changes since wmaker 0.51.0: ............................ - applied c++ compat header patch from Martynas Kunigelis - added WMSetTextFieldBeveled() - removed W_GC() : use WMColorGC() instead - added WMCreatePixmap() - changed WMSetTextFieldEnabled() to WMSetTextFieldEditable() 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: ............................ - added wsetabort() - look WUtil.h - fixed bug in WMList resize - added notification sending when changing textfield programatically - removed WMHideWindow() - fixed bug in WMCloseWindow() - added textfield selection patch - added color panel code - added auto name completion for the file panel - added function to select text range, and to set cursor position in text fields programatically changes since wmaker 0.20.3: ............................ - added WMSetSliderImage(), WMSetSliderKnobThickness() - added WMGetListItemHeight() - added WMListDidScrollNotification - added WSetColorWellBordered() - added hacky color dragging in colorwell - added poll() support in WMNextEvent. WARNING: the stuff needed for WMAddInputHandler() is not yet implemented for the poll stuff - added WMSetFilePanelAccessoryView(), WMGetFilePanelAccessoryView() - added WMSetPopUpButtonEnabled() - added WMGetLabelImage() - autoscroll for popup button menus - added WMDrawPixmap() - WARNING: changed parameter list for WMListDrawProc changes since wmaker 0.20.2: ............................ - WMSetBrowserMaxVisibleColumns() - untested changes since wmaker 0.20.0: ............................ - added generic object field for WMListItem. This is for hanging generic clientdata changes since wmaker 0.20.0: ............................ - changed WMGetFilePanelFile() with WMGetFilePanelFileName() - made SavePanel changes since wmaker 0.19.3: ............................ - added WMCreatePanelForWindow() - added extra parent parameter for filepanel, alertpanel and inputpanel - WMCloseWindow() - WMChangePanelOwner() - added WMAddInputHandler() - change range related function arguments (WMTextField) to use WMRange changes since wmaker 0.19.1: ............................ - added wstrappend() - fixed bug when changing selected radio button by hand changes since wmaker 0.18.1: ............................ - removed textHeight arg from W_PaintImageAndText - added WMCreateWindowWithStyle() - added WMSetWindowBaseSize() and ResizeIncrements() - added WMSetWindowLeve() - added WMSetWindowDocumentEdited() - added WMSetScrollViewLineScroll(), WMSetScrollViewPageScroll() - added WMSetWindowMiniwindowTitle() - added WMSetWindowMiniwindowImage() changes since wmaker 0.18.0: ............................ - added functions to get RGB components and "#rrggbb" string from WMColor. - added function to create color from a name - fixed bug that caused blocking until some new event arrives, even when there already were events in the queue (like having to move the pointer over window to force the window to be painted) changes since wmaker 0.17.5: ............................ I don't remember everything, but here it goes: - fixed some bugs in text field - added a incomplete implementation of split view (not yet usable) - added a slider - changed the filepanel stuff. Each application can have only 1 file panel. The same panel will be reused every time you call for it, unless you free it. - changed semantics of WMCreateFont() so that it returns NULL if the requested font can't be loaded - removed WMAddDestroyCallback() - fixed bug in WMRemovePopUpButtonItem() - added function for user specified item height in WMList - added WMSetPopUpButtonText(). It will set the default text in the button when no options are selected - fixed bug in remove/add item in already mapped popupbuttons. Note: it is not good practice to change the contents of a popup button when it's already visible and the user has probably interacted with it. - fixed behaviour of "radio buttons" - WMInitializeApplication() must be the first function to be called in the program - removed applicationName, argc and argv arguments from the WMCreateScree... functions - WMReleaseColor(scr,color) changed to WMReleaseColor(color) - WMPaintColorRectangle() changed to WMPaintColorSwatch() - added various functions in font and color handling - added WMSetButtonFont() - changed WMCreateCommandButton() so that the buttons it creates will change their label when pushed - added WMGetSystemPixmap(WMScreen *scr, int image) - added partial I18N support - added libPropList requirement and some related utility functions - added a interface to prooplist, so that it works as a user defaults db - added WMWidthOfString() (removed WMFontWidthOfString()) - added WMDrawString() - added WMSetTextFieldSecure(WMTextField *tPtr, Bool flag) - WMGetListItem() will dup the returned string - removed need for ProgName being defined - rewrote hashtable stuff and made it available for outside use - added notification functions, with view resize notification - added WMSetWindowMinSize() and MaxSize() - text editing notification - added WMSetListPosition() etc. - added WMInsertBrowserItem() - the above 2 functions return WMListItem*, instead of Bool - rewrote browser - WMGetListItem() will return WMListItem* - removed WMGetListItems() and WMSetListItems() - fixed focus stuff for multi-window apps - changed all WMList function names that contained index to row WindowMaker-0.95.5/WINGs/notification.c0000644000175000017500000002674212214432632014555 00000000000000 #include #include #include #include #include "WUtil.h" #include "WINGsP.h" typedef struct W_Notification { const char *name; void *object; void *clientData; int refCount; } Notification; const char *WMGetNotificationName(WMNotification * notification) { return notification->name; } void *WMGetNotificationObject(WMNotification * notification) { return notification->object; } void *WMGetNotificationClientData(WMNotification * notification) { return notification->clientData; } WMNotification *WMCreateNotification(const char *name, void *object, void *clientData) { Notification *nPtr; nPtr = wmalloc(sizeof(Notification)); nPtr->name = name; nPtr->object = object; nPtr->clientData = clientData; nPtr->refCount = 1; return nPtr; } void WMReleaseNotification(WMNotification * notification) { notification->refCount--; if (notification->refCount < 1) { wfree(notification); } } WMNotification *WMRetainNotification(WMNotification * notification) { notification->refCount++; return notification; } /***************** Notification Center *****************/ typedef struct NotificationObserver { WMNotificationObserverAction *observerAction; void *observer; const char *name; void *object; struct NotificationObserver *prev; /* for tables */ struct NotificationObserver *next; struct NotificationObserver *nextAction; /* for observerTable */ } NotificationObserver; typedef struct W_NotificationCenter { WMHashTable *nameTable; /* names -> observer lists */ WMHashTable *objectTable; /* object -> observer lists */ NotificationObserver *nilList; /* obervers that catch everything */ WMHashTable *observerTable; /* observer -> NotificationObserver */ } NotificationCenter; /* default (and only) center */ static NotificationCenter *notificationCenter = NULL; void W_InitNotificationCenter(void) { notificationCenter = wmalloc(sizeof(NotificationCenter)); notificationCenter->nameTable = WMCreateHashTable(WMStringPointerHashCallbacks); notificationCenter->objectTable = WMCreateHashTable(WMIntHashCallbacks); notificationCenter->nilList = NULL; notificationCenter->observerTable = WMCreateHashTable(WMIntHashCallbacks); } void WMAddNotificationObserver(WMNotificationObserverAction * observerAction, void *observer, const char *name, void *object) { NotificationObserver *oRec, *rec; oRec = wmalloc(sizeof(NotificationObserver)); oRec->observerAction = observerAction; oRec->observer = observer; oRec->name = name; oRec->object = object; oRec->next = NULL; oRec->prev = NULL; /* put this action in the list of actions for this observer */ rec = (NotificationObserver *) WMHashInsert(notificationCenter->observerTable, observer, oRec); if (rec) { /* if this is not the first action for the observer */ oRec->nextAction = rec; } else { oRec->nextAction = NULL; } if (!name && !object) { /* catch-all */ oRec->next = notificationCenter->nilList; if (notificationCenter->nilList) { notificationCenter->nilList->prev = oRec; } notificationCenter->nilList = oRec; } else if (!name) { /* any message coming from object */ rec = (NotificationObserver *) WMHashInsert(notificationCenter->objectTable, object, oRec); oRec->next = rec; if (rec) { rec->prev = oRec; } } else { /* name && (object || !object) */ rec = (NotificationObserver *) WMHashInsert(notificationCenter->nameTable, name, oRec); oRec->next = rec; if (rec) { rec->prev = oRec; } } } void WMPostNotification(WMNotification * notification) { NotificationObserver *orec, *tmp; WMRetainNotification(notification); /* tell the observers that want to know about a particular message */ orec = (NotificationObserver *) WMHashGet(notificationCenter->nameTable, notification->name); while (orec) { tmp = orec->next; if (!orec->object || !notification->object || orec->object == notification->object) { /* tell the observer */ if (orec->observerAction) { (*orec->observerAction) (orec->observer, notification); } } orec = tmp; } /* tell the observers that want to know about an object */ orec = (NotificationObserver *) WMHashGet(notificationCenter->objectTable, notification->object); while (orec) { tmp = orec->next; /* tell the observer */ if (orec->observerAction) { (*orec->observerAction) (orec->observer, notification); } orec = tmp; } /* tell the catch all observers */ orec = notificationCenter->nilList; while (orec) { tmp = orec->next; /* tell the observer */ if (orec->observerAction) { (*orec->observerAction) (orec->observer, notification); } orec = tmp; } WMReleaseNotification(notification); } void WMRemoveNotificationObserver(void *observer) { NotificationObserver *orec, *tmp, *rec; /* get the list of actions the observer is doing */ orec = (NotificationObserver *) WMHashGet(notificationCenter->observerTable, observer); /* * FOREACH orec IN actionlist for observer * DO * remove from respective lists/tables * free * END */ while (orec) { tmp = orec->nextAction; if (!orec->name && !orec->object) { /* catch-all */ if (notificationCenter->nilList == orec) notificationCenter->nilList = orec->next; } else if (!orec->name) { /* any message coming from object */ rec = (NotificationObserver *) WMHashGet(notificationCenter->objectTable, orec->object); if (rec == orec) { /* replace table entry */ if (orec->next) { WMHashInsert(notificationCenter->objectTable, orec->object, orec->next); } else { WMHashRemove(notificationCenter->objectTable, orec->object); } } } else { /* name && (object || !object) */ rec = (NotificationObserver *) WMHashGet(notificationCenter->nameTable, orec->name); if (rec == orec) { /* replace table entry */ if (orec->next) { WMHashInsert(notificationCenter->nameTable, orec->name, orec->next); } else { WMHashRemove(notificationCenter->nameTable, orec->name); } } } if (orec->prev) orec->prev->next = orec->next; if (orec->next) orec->next->prev = orec->prev; wfree(orec); orec = tmp; } WMHashRemove(notificationCenter->observerTable, observer); } void WMRemoveNotificationObserverWithName(void *observer, const char *name, void *object) { NotificationObserver *orec, *tmp, *rec; NotificationObserver *newList = NULL; /* get the list of actions the observer is doing */ orec = (NotificationObserver *) 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) { if (!name && !object) { if (notificationCenter->nilList == orec) notificationCenter->nilList = orec->next; } else if (!name) { rec = (NotificationObserver *) WMHashGet(notificationCenter->objectTable, orec->object); if (rec == orec) { assert(rec->prev == NULL); /* replace table entry */ if (orec->next) { WMHashInsert(notificationCenter->objectTable, orec->object, orec->next); } else { WMHashRemove(notificationCenter->objectTable, orec->object); } } } else { rec = (NotificationObserver *) WMHashGet(notificationCenter->nameTable, orec->name); if (rec == orec) { assert(rec->prev == NULL); /* replace table entry */ if (orec->next) { WMHashInsert(notificationCenter->nameTable, orec->name, orec->next); } else { WMHashRemove(notificationCenter->nameTable, orec->name); } } } if (orec->prev) orec->prev->next = orec->next; if (orec->next) orec->next->prev = orec->prev; wfree(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); } } void WMPostNotificationName(const char *name, void *object, void *clientData) { WMNotification *notification; notification = WMCreateNotification(name, object, clientData); WMPostNotification(notification); WMReleaseNotification(notification); } /**************** Notification Queues ****************/ typedef struct W_NotificationQueue { WMArray *asapQueue; WMArray *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; } WMNotificationQueue *WMCreateNotificationQueue(void) { NotificationQueue *queue; queue = wmalloc(sizeof(NotificationQueue)); queue->asapQueue = WMCreateArrayWithDestructor(8, (WMFreeDataProc *) WMReleaseNotification); queue->idleQueue = WMCreateArrayWithDestructor(8, (WMFreeDataProc *) WMReleaseNotification); queue->next = notificationQueueList; notificationQueueList = queue; return queue; } void WMEnqueueNotification(WMNotificationQueue * queue, WMNotification * notification, WMPostingStyle postingStyle) { WMEnqueueCoalesceNotification(queue, notification, postingStyle, WNCOnName | WNCOnSender); } #define NOTIF ((WMNotification*)cdata) #define ITEM ((WMNotification*)item) static int matchSenderAndName(const void *item, const void *cdata) { return (NOTIF->object == ITEM->object && strcmp(NOTIF->name, ITEM->name) == 0); } static int matchSender(const void *item, const void *cdata) { return (NOTIF->object == ITEM->object); } static int matchName(const void *item, const void *cdata) { return (strcmp(NOTIF->name, ITEM->name) == 0); } #undef NOTIF #undef ITEM void WMDequeueNotificationMatching(WMNotificationQueue * queue, WMNotification * notification, unsigned mask) { WMMatchDataProc *matchFunc; if ((mask & WNCOnName) && (mask & WNCOnSender)) matchFunc = matchSenderAndName; else if (mask & WNCOnName) matchFunc = matchName; else if (mask & WNCOnSender) matchFunc = matchSender; else return; WMRemoveFromArrayMatching(queue->asapQueue, matchFunc, notification); WMRemoveFromArrayMatching(queue->idleQueue, matchFunc, notification); } void WMEnqueueCoalesceNotification(WMNotificationQueue * queue, WMNotification * notification, WMPostingStyle postingStyle, unsigned coalesceMask) { if (coalesceMask != WNCNone) WMDequeueNotificationMatching(queue, notification, coalesceMask); switch (postingStyle) { case WMPostNow: WMPostNotification(notification); WMReleaseNotification(notification); break; case WMPostASAP: WMAddToArray(queue->asapQueue, notification); break; case WMPostWhenIdle: WMAddToArray(queue->idleQueue, notification); break; } } void W_FlushASAPNotificationQueue(void) { WMNotificationQueue *queue = notificationQueueList; while (queue) { while (WMGetArrayItemCount(queue->asapQueue)) { WMPostNotification(WMGetFromArray(queue->asapQueue, 0)); WMDeleteFromArray(queue->asapQueue, 0); } queue = queue->next; } } void W_FlushIdleNotificationQueue(void) { WMNotificationQueue *queue = notificationQueueList; while (queue) { while (WMGetArrayItemCount(queue->idleQueue)) { WMPostNotification(WMGetFromArray(queue->idleQueue, 0)); WMDeleteFromArray(queue->idleQueue, 0); } queue = queue->next; } } WindowMaker-0.95.5/WINGs/wtextfield.c0000644000175000017500000011170712214432632014242 00000000000000 #include "WINGsP.h" #include "wconfig.h" #include #include #include #define CURSOR_BLINK_ON_DELAY 600 #define CURSOR_BLINK_OFF_DELAY 300 char *WMTextDidChangeNotification = "WMTextDidChangeNotification"; char *WMTextDidBeginEditingNotification = "WMTextDidBeginEditingNotification"; char *WMTextDidEndEditingNotification = "WMTextDidEndEditingNotification"; 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 */ int bufferSize; /* memory allocated for text */ int viewPosition; /* position of text being shown */ int cursorPosition; /* position of the insertion cursor */ short usableWidth; short offsetWidth; /* offset of text from border */ WMRange selection; WMFont *font; WMTextFieldDelegate *delegate; WMHandlerID timerID; /* for cursor blinking */ struct { 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 */ unsigned int pointerGrabbed:1; unsigned int ownsSelection:1; unsigned int waitingSelection:1; /* requested selection, but * didnt get yet */ unsigned int notIllegalMovement:1; } flags; } TextField; #define NOTIFY(T,C,N,A) { WMNotification *notif = WMCreateNotification(N,T,A);\ if ((T)->delegate && (T)->delegate->C)\ (*(T)->delegate->C)((T)->delegate,notif);\ WMPostNotification(notif);\ WMReleaseNotification(notif);} #define MIN_TEXT_BUFFER 2 #define TEXT_BUFFER_INCR 8 #define WM_EMACSKEYMASK ControlMask #define WM_EMACSKEY_LEFT XK_b #define WM_EMACSKEY_RIGHT XK_f #define WM_EMACSKEY_HOME XK_a #define WM_EMACSKEY_END XK_e #define WM_EMACSKEY_BS XK_h #define WM_EMACSKEY_DEL XK_d #define DEFAULT_WIDTH 60 #define DEFAULT_HEIGHT 20 #define DEFAULT_BORDERED True #define DEFAULT_ALIGNMENT WALeft static void destroyTextField(TextField * tPtr); static void paintTextField(TextField * tPtr); static void handleEvents(XEvent * event, void *data); static void handleTextFieldActionEvents(XEvent * event, void *data); static void didResizeTextField(W_ViewDelegate * self, WMView * view); struct W_ViewDelegate _TextFieldViewDelegate = { NULL, NULL, didResizeTextField, NULL, NULL }; static void lostSelection(WMView * view, Atom selection, void *cdata); static WMData *requestHandler(WMView * view, Atom selection, Atom target, void *cdata, Atom * type); static WMSelectionProcs selectionHandler = { requestHandler, lostSelection, NULL }; #define TEXT_WIDTH(tPtr, start) (WMWidthOfString((tPtr)->font, \ &((tPtr)->text[(start)]), (tPtr)->textLen - (start))) #define TEXT_WIDTH2(tPtr, start, end) (WMWidthOfString((tPtr)->font, \ &((tPtr)->text[(start)]), (end) - (start))) static inline int oneUTF8CharBackward(const char *str, int len) { const unsigned char *ustr = (const unsigned char *)str; int pos = 0; while (len-- > 0 && ustr[--pos] >= 0x80 && ustr[pos] <= 0xbf) ; return pos; } static inline int oneUTF8CharForward(const char *str, int len) { const unsigned char *ustr = (const unsigned char *)str; int pos = 0; while (len-- > 0 && ustr[++pos] >= 0x80 && ustr[pos] <= 0xbf) ; return pos; } // find the beginning of the UTF8 char pointed by str static inline int seekUTF8CharStart(const char *str, int len) { const unsigned char *ustr = (const unsigned char *)str; int pos = 0; while (len-- > 0 && ustr[pos] >= 0x80 && ustr[pos] <= 0xbf) --pos; return pos; } static void normalizeRange(TextField * tPtr, WMRange * range) { if (range->position < 0 && range->count < 0) range->count = 0; if (range->count == 0) { /*range->position = 0; why is this? */ return; } /* (1,-2) ~> (0,1) ; (1,-1) ~> (0,1) ; (2,-1) ~> (1,1) */ if (range->count < 0) { /* && range->position >= 0 */ if (range->position + range->count < 0) { range->count = range->position; range->position = 0; } else { range->count = -range->count; range->position -= range->count; } /* (-2,1) ~> (0,0) ; (-1,1) ~> (0,0) ; (-1,2) ~> (0,1) */ } else if (range->position < 0) { /* && range->count > 0 */ if (range->position + range->count < 0) { range->position = range->count = 0; } else { range->count += range->position; range->position = 0; } } if (range->position + range->count > tPtr->textLen) range->count = tPtr->textLen - range->position; } static void memmv(char *dest, const char *src, int size) { int i; if (dest > src) { for (i = size - 1; i >= 0; i--) { dest[i] = src[i]; } } else if (dest < src) { for (i = 0; i < size; i++) { dest[i] = src[i]; } } } static int incrToFit(TextField * tPtr) { int vp = tPtr->viewPosition; while (TEXT_WIDTH(tPtr, tPtr->viewPosition) > tPtr->usableWidth) { tPtr->viewPosition += oneUTF8CharForward(&tPtr->text[tPtr->viewPosition], tPtr->textLen - tPtr->viewPosition); } return vp != tPtr->viewPosition; } static int incrToFit2(TextField * tPtr) { int vp = tPtr->viewPosition; while (TEXT_WIDTH2(tPtr, tPtr->viewPosition, tPtr->cursorPosition) >= tPtr->usableWidth) tPtr->viewPosition += oneUTF8CharForward(&tPtr->text[tPtr->viewPosition], tPtr->cursorPosition - tPtr->viewPosition); return vp != tPtr->viewPosition; } static void decrToFit(TextField * tPtr) { int vp = tPtr->viewPosition; while (vp > 0 && (vp += oneUTF8CharBackward(&tPtr->text[vp], vp), TEXT_WIDTH(tPtr, vp)) < tPtr->usableWidth) { tPtr->viewPosition = vp; } } #undef TEXT_WIDTH #undef TEXT_WIDTH2 static WMData *requestHandler(WMView * view, Atom selection, Atom target, void *cdata, Atom * type) { TextField *tPtr = view->self; int count; Display *dpy = tPtr->view->screen->display; Atom _TARGETS; Atom TEXT = XInternAtom(dpy, "TEXT", False); Atom COMPOUND_TEXT = XInternAtom(dpy, "COMPOUND_TEXT", False); WMData *data; count = tPtr->selection.count < 0 ? tPtr->selection.position + tPtr->selection.count : tPtr->selection.position; if (target == XA_STRING || target == TEXT || target == COMPOUND_TEXT) { data = WMCreateDataWithBytes(&(tPtr->text[count]), abs(tPtr->selection.count)); WMSetDataFormat(data, 8); *type = target; return data; } _TARGETS = XInternAtom(dpy, "TARGETS", False); if (target == _TARGETS) { Atom *ptr; ptr = wmalloc(4 * sizeof(Atom)); ptr[0] = _TARGETS; ptr[1] = XA_STRING; ptr[2] = TEXT; ptr[3] = COMPOUND_TEXT; data = WMCreateDataWithBytes(ptr, 4 * 4); WMSetDataFormat(data, 32); *type = target; return data; } return NULL; } static void lostSelection(WMView * view, Atom selection, void *cdata) { TextField *tPtr = (WMTextField *) view->self; if (tPtr->flags.ownsSelection) { WMDeleteSelectionHandler(view, selection, CurrentTime); tPtr->flags.ownsSelection = 0; } if (tPtr->selection.count != 0) { tPtr->selection.count = 0; paintTextField(tPtr); } } static void selectionNotification(void *observerData, WMNotification * notification) { WMView *observerView = (WMView *) observerData; WMView *newOwnerView = (WMView *) WMGetNotificationClientData(notification); if (observerView != newOwnerView) { /* //if (tPtr->flags.ownsSelection) // WMDeleteSelectionHandler(observerView, XA_PRIMARY, CurrentTime); */ lostSelection(observerView, XA_PRIMARY, NULL); } } static void realizeObserver(void *self, WMNotification * not) { W_CreateIC(((TextField *) self)->view); } WMTextField *WMCreateTextField(WMWidget * parent) { TextField *tPtr; tPtr = wmalloc(sizeof(TextField)); tPtr->widgetClass = WC_TextField; tPtr->view = W_CreateView(W_VIEW(parent)); if (!tPtr->view) { wfree(tPtr); return NULL; } tPtr->view->self = tPtr; tPtr->view->delegate = &_TextFieldViewDelegate; tPtr->view->attribFlags |= CWCursor; tPtr->view->attribs.cursor = tPtr->view->screen->textCursor; W_SetViewBackgroundColor(tPtr->view, tPtr->view->screen->white); tPtr->text = wmalloc(MIN_TEXT_BUFFER); tPtr->textLen = 0; tPtr->bufferSize = MIN_TEXT_BUFFER; tPtr->flags.enabled = 1; WMCreateEventHandler(tPtr->view, ExposureMask | StructureNotifyMask | FocusChangeMask, handleEvents, tPtr); tPtr->font = WMRetainFont(tPtr->view->screen->normalFont); tPtr->flags.bordered = DEFAULT_BORDERED; tPtr->flags.beveled = True; tPtr->flags.alignment = DEFAULT_ALIGNMENT; tPtr->offsetWidth = WMAX((tPtr->view->size.height - WMFontHeight(tPtr->font)) / 2, 1); W_ResizeView(tPtr->view, DEFAULT_WIDTH, DEFAULT_HEIGHT); WMCreateEventHandler(tPtr->view, EnterWindowMask | LeaveWindowMask | ButtonReleaseMask | ButtonPressMask | KeyPressMask | Button1MotionMask, handleTextFieldActionEvents, tPtr); WMAddNotificationObserver(selectionNotification, tPtr->view, WMSelectionOwnerDidChangeNotification, (void *)XA_PRIMARY); WMAddNotificationObserver(realizeObserver, tPtr, WMViewRealizedNotification, tPtr->view); tPtr->flags.cursorOn = 1; return tPtr; } void WMSetTextFieldDelegate(WMTextField * tPtr, WMTextFieldDelegate * delegate) { CHECK_CLASS(tPtr, WC_TextField); tPtr->delegate = delegate; } WMTextFieldDelegate *WMGetTextFieldDelegate(WMTextField * tPtr) { CHECK_CLASS(tPtr, WC_TextField); return tPtr->delegate; } void WMInsertTextFieldText(WMTextField * tPtr, const char *text, int position) { int len; CHECK_CLASS(tPtr, WC_TextField); if (!text) return; len = strlen(text); /* check if buffer will hold the text */ if (len + tPtr->textLen >= tPtr->bufferSize) { tPtr->bufferSize = tPtr->textLen + len + TEXT_BUFFER_INCR; tPtr->text = wrealloc(tPtr->text, tPtr->bufferSize); } if (position < 0 || position >= tPtr->textLen) { /* append the text at the end */ wstrlcat(tPtr->text, text, tPtr->bufferSize); tPtr->textLen += len; tPtr->cursorPosition += len; incrToFit(tPtr); } else { /* insert text at position */ memmv(&(tPtr->text[position + len]), &(tPtr->text[position]), tPtr->textLen - position + 1); memcpy(&(tPtr->text[position]), text, len); tPtr->textLen += len; if (position >= tPtr->cursorPosition) { tPtr->cursorPosition += len; incrToFit2(tPtr); } else { incrToFit(tPtr); } } paintTextField(tPtr); } void WMDeleteTextFieldRange(WMTextField * tPtr, WMRange range) { CHECK_CLASS(tPtr, WC_TextField); normalizeRange(tPtr, &range); if (!range.count) return; memmv(&(tPtr->text[range.position]), &(tPtr->text[range.position + range.count]), tPtr->textLen - (range.position + range.count) + 1); /* better than nothing ;) */ if (tPtr->cursorPosition > range.position) tPtr->viewPosition += oneUTF8CharBackward(&tPtr->text[tPtr->viewPosition], tPtr->viewPosition); tPtr->textLen -= range.count; tPtr->cursorPosition = range.position; decrToFit(tPtr); paintTextField(tPtr); } char *WMGetTextFieldText(WMTextField * tPtr) { CHECK_CLASS(tPtr, WC_TextField); return wstrdup(tPtr->text); } void WMSetTextFieldText(WMTextField * tPtr, const char *text) { CHECK_CLASS(tPtr, WC_TextField); if ((text && strcmp(tPtr->text, text) == 0) || (!text && tPtr->textLen == 0)) return; if (text == NULL) { tPtr->text[0] = 0; tPtr->textLen = 0; } else { tPtr->textLen = strlen(text); if (tPtr->textLen >= tPtr->bufferSize) { tPtr->bufferSize = tPtr->textLen + TEXT_BUFFER_INCR; tPtr->text = wrealloc(tPtr->text, tPtr->bufferSize); } wstrlcpy(tPtr->text, text, tPtr->bufferSize); } tPtr->cursorPosition = tPtr->selection.position = tPtr->textLen; tPtr->viewPosition = 0; tPtr->selection.count = 0; if (tPtr->view->flags.realized) paintTextField(tPtr); } void WMSetTextFieldAlignment(WMTextField * tPtr, WMAlignment alignment) { CHECK_CLASS(tPtr, WC_TextField); tPtr->flags.alignment = alignment; if (alignment != WALeft) { wwarning("only left alignment is supported in textfields"); return; } if (tPtr->view->flags.realized) { paintTextField(tPtr); } } void WMSetTextFieldBordered(WMTextField * tPtr, Bool bordered) { CHECK_CLASS(tPtr, WC_TextField); tPtr->flags.bordered = bordered; if (tPtr->view->flags.realized) { paintTextField(tPtr); } } void WMSetTextFieldBeveled(WMTextField * tPtr, Bool flag) { CHECK_CLASS(tPtr, WC_TextField); tPtr->flags.beveled = ((flag == 0) ? 0 : 1); if (tPtr->view->flags.realized) { paintTextField(tPtr); } } void WMSetTextFieldSecure(WMTextField * tPtr, Bool flag) { CHECK_CLASS(tPtr, WC_TextField); tPtr->flags.secure = ((flag == 0) ? 0 : 1); if (tPtr->view->flags.realized) { paintTextField(tPtr); } } Bool WMGetTextFieldEditable(WMTextField * tPtr) { CHECK_CLASS(tPtr, WC_TextField); return tPtr->flags.enabled; } void WMSetTextFieldEditable(WMTextField * tPtr, Bool flag) { CHECK_CLASS(tPtr, WC_TextField); tPtr->flags.enabled = ((flag == 0) ? 0 : 1); if (tPtr->view->flags.realized) { paintTextField(tPtr); } } void WMSelectTextFieldRange(WMTextField * tPtr, WMRange range) { CHECK_CLASS(tPtr, WC_TextField); if (tPtr->flags.enabled) { normalizeRange(tPtr, &range); tPtr->selection = range; tPtr->cursorPosition = range.position + range.count; if (tPtr->view->flags.realized) { paintTextField(tPtr); } } } void WMSetTextFieldCursorPosition(WMTextField * tPtr, unsigned int position) { CHECK_CLASS(tPtr, WC_TextField); if (tPtr->flags.enabled) { if (position > tPtr->textLen) position = tPtr->textLen; tPtr->cursorPosition = position; if (tPtr->view->flags.realized) { paintTextField(tPtr); } } } unsigned WMGetTextFieldCursorPosition(WMTextField *tPtr) { CHECK_CLASS(tPtr, WC_TextField); return tPtr->cursorPosition; } 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; } void WMSetTextFieldFont(WMTextField * tPtr, WMFont * font) { CHECK_CLASS(tPtr, WC_TextField); if (tPtr->font) WMReleaseFont(tPtr->font); tPtr->font = WMRetainFont(font); tPtr->offsetWidth = WMAX((tPtr->view->size.height - WMFontHeight(tPtr->font)) / 2, 1); if (tPtr->view->flags.realized) { paintTextField(tPtr); } } WMFont *WMGetTextFieldFont(WMTextField * tPtr) { return tPtr->font; } static void didResizeTextField(W_ViewDelegate * self, WMView * view) { WMTextField *tPtr = (WMTextField *) view->self; tPtr->offsetWidth = WMAX((tPtr->view->size.height - WMFontHeight(tPtr->font)) / 2, 1); tPtr->usableWidth = tPtr->view->size.width - 2 * tPtr->offsetWidth /*+ 2 */ ; } static char *makeHiddenString(int length) { char *data = wmalloc(length + 1); memset(data, '*', length); data[length] = '\0'; return data; } static void paintCursor(TextField * tPtr) { int cx; WMScreen *screen = tPtr->view->screen; int textWidth; char *text; if (tPtr->flags.secure) text = makeHiddenString(strlen(tPtr->text)); else text = tPtr->text; cx = WMWidthOfString(tPtr->font, &(text[tPtr->viewPosition]), tPtr->cursorPosition - tPtr->viewPosition); switch (tPtr->flags.alignment) { case WARight: textWidth = WMWidthOfString(tPtr->font, text, tPtr->textLen); if (textWidth < tPtr->usableWidth) cx += tPtr->offsetWidth + tPtr->usableWidth - textWidth + 1; else cx += tPtr->offsetWidth + 1; break; case WALeft: cx += tPtr->offsetWidth + 1; break; case WAJustified: /* not supported */ case WACenter: textWidth = WMWidthOfString(tPtr->font, text, tPtr->textLen); if (textWidth < tPtr->usableWidth) cx += tPtr->offsetWidth + (tPtr->usableWidth - textWidth) / 2; else cx += tPtr->offsetWidth; break; } /* XDrawRectangle(screen->display, tPtr->view->window, screen->xorGC, cx, tPtr->offsetWidth, 1, tPtr->view->size.height - 2*tPtr->offsetWidth - 1); printf("%d %d\n",cx,tPtr->cursorPosition); */ XDrawLine(screen->display, tPtr->view->window, screen->xorGC, cx, tPtr->offsetWidth, cx, tPtr->view->size.height - tPtr->offsetWidth - 1); W_SetPreeditPositon(tPtr->view, cx, 0); if (tPtr->flags.secure) { wfree(text); } } static void drawRelief(WMView * view, Bool beveled) { WMScreen *scr = view->screen; Display *dpy = scr->display; GC wgc; GC lgc; GC dgc; int width = view->size.width; int height = view->size.height; dgc = WMColorGC(scr->darkGray); if (!beveled) { XDrawRectangle(dpy, view->window, dgc, 0, 0, width - 1, height - 1); return; } wgc = WMColorGC(scr->white); lgc = WMColorGC(scr->gray); /* top left */ XDrawLine(dpy, view->window, dgc, 0, 0, width - 1, 0); XDrawLine(dpy, view->window, dgc, 0, 1, width - 2, 1); XDrawLine(dpy, view->window, dgc, 0, 0, 0, height - 2); XDrawLine(dpy, view->window, dgc, 1, 0, 1, height - 3); /* bottom right */ XDrawLine(dpy, view->window, wgc, 0, height - 1, width - 1, height - 1); XDrawLine(dpy, view->window, lgc, 1, height - 2, width - 2, height - 2); XDrawLine(dpy, view->window, wgc, width - 1, 0, width - 1, height - 1); XDrawLine(dpy, view->window, lgc, width - 2, 1, width - 2, height - 3); } static void paintTextField(TextField * tPtr) { W_Screen *screen = tPtr->view->screen; W_View *view = tPtr->view; W_View viewbuffer; int tx, ty, tw; int rx; int bd; int totalWidth; char *text; Pixmap drawbuffer; WMColor *color; if (!view->flags.realized || !view->flags.mapped) return; if (!tPtr->flags.bordered) { bd = 0; } else { bd = 2; } if (tPtr->flags.secure) { text = makeHiddenString(strlen(tPtr->text)); } else { text = tPtr->text; } totalWidth = tPtr->view->size.width - 2 * bd; drawbuffer = XCreatePixmap(screen->display, view->window, view->size.width, view->size.height, screen->depth); XFillRectangle(screen->display, drawbuffer, WMColorGC(screen->white), 0, 0, view->size.width, view->size.height); /* this is quite dirty */ viewbuffer.screen = view->screen; viewbuffer.size = view->size; viewbuffer.window = drawbuffer; if (tPtr->textLen > 0) { tw = WMWidthOfString(tPtr->font, &(text[tPtr->viewPosition]), tPtr->textLen - tPtr->viewPosition); ty = tPtr->offsetWidth; switch (tPtr->flags.alignment) { case WALeft: tx = tPtr->offsetWidth + 1; if (tw < tPtr->usableWidth) XFillRectangle(screen->display, drawbuffer, WMColorGC(screen->white), bd + tw, bd, totalWidth - tw, view->size.height - 2 * bd); break; case WACenter: tx = tPtr->offsetWidth + (tPtr->usableWidth - tw) / 2; if (tw < tPtr->usableWidth) XClearArea(screen->display, view->window, bd, bd, totalWidth, view->size.height - 2 * bd, False); break; default: case WARight: 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); break; } color = tPtr->flags.enabled ? screen->black : screen->darkGray; WMDrawImageString(screen, drawbuffer, color, screen->white, tPtr->font, tx, ty, &(text[tPtr->viewPosition]), tPtr->textLen - tPtr->viewPosition); if (tPtr->selection.count) { int count, count2; count = tPtr->selection.count < 0 ? tPtr->selection.position + tPtr->selection.count : tPtr->selection.position; count2 = abs(tPtr->selection.count); if (count < tPtr->viewPosition) { count2 = abs(count2 - abs(tPtr->viewPosition - count)); count = tPtr->viewPosition; } rx = tPtr->offsetWidth + 1 + WMWidthOfString(tPtr->font, text, count) - WMWidthOfString(tPtr->font, text, tPtr->viewPosition); WMDrawImageString(screen, drawbuffer, color, screen->gray, tPtr->font, rx, ty, &(text[count]), count2); } } else { XFillRectangle(screen->display, drawbuffer, WMColorGC(screen->white), bd, bd, totalWidth, view->size.height - 2 * bd); } /* draw relief */ if (tPtr->flags.bordered) { drawRelief(&viewbuffer, tPtr->flags.beveled); } if (tPtr->flags.secure) wfree(text); XCopyArea(screen->display, drawbuffer, view->window, screen->copyGC, 0, 0, view->size.width, view->size.height, 0, 0); XFreePixmap(screen->display, drawbuffer); /* draw cursor */ if (tPtr->flags.focused && tPtr->flags.enabled && tPtr->flags.cursorOn) { paintCursor(tPtr); } } static void blinkCursor(void *data) { TextField *tPtr = (TextField *) data; if (tPtr->flags.cursorOn) { tPtr->timerID = WMAddTimerHandler(CURSOR_BLINK_OFF_DELAY, blinkCursor, data); } else { tPtr->timerID = WMAddTimerHandler(CURSOR_BLINK_ON_DELAY, blinkCursor, data); } paintCursor(tPtr); tPtr->flags.cursorOn = !tPtr->flags.cursorOn; } static void handleEvents(XEvent * event, void *data) { TextField *tPtr = (TextField *) data; CHECK_CLASS(data, WC_TextField); switch (event->type) { case FocusIn: W_FocusIC(tPtr->view); if (W_FocusedViewOfToplevel(W_TopLevelOfView(tPtr->view)) != tPtr->view) return; tPtr->flags.focused = 1; if (!tPtr->timerID) { tPtr->timerID = WMAddTimerHandler(CURSOR_BLINK_ON_DELAY, blinkCursor, tPtr); } paintTextField(tPtr); NOTIFY(tPtr, didBeginEditing, WMTextDidBeginEditingNotification, NULL); tPtr->flags.notIllegalMovement = 0; break; case FocusOut: W_UnFocusIC(tPtr->view); tPtr->flags.focused = 0; if (tPtr->timerID) WMDeleteTimerHandler(tPtr->timerID); tPtr->timerID = NULL; paintTextField(tPtr); if (!tPtr->flags.notIllegalMovement) { NOTIFY(tPtr, didEndEditing, WMTextDidEndEditingNotification, (void *)WMIllegalTextMovement); } break; case Expose: if (event->xexpose.count != 0) break; paintTextField(tPtr); break; case DestroyNotify: destroyTextField(tPtr); break; } } static void handleTextFieldKeyPress(TextField * tPtr, XEvent * event) { char buffer[64]; KeySym ksym; char *textEvent = NULL; void *data = NULL; int count, refresh = 0; int control_pressed = 0; int cancelSelection = 1; Bool shifted, controled, modified; Bool relay = True; /*printf("(%d,%d) -> ", tPtr->selection.position, tPtr->selection.count); */ if (((XKeyEvent *) event)->state & WM_EMACSKEYMASK) control_pressed = 1; shifted = (event->xkey.state & ShiftMask ? True : False); controled = (event->xkey.state & ControlMask ? True : False); modified = shifted || controled; count = W_LookupString(tPtr->view, &event->xkey, buffer, 63, &ksym, NULL); //count = XLookupString(&event->xkey, buffer, 63, &ksym, NULL); buffer[count] = '\0'; switch (ksym) { case XK_Tab: #ifdef XK_ISO_Left_Tab case XK_ISO_Left_Tab: #endif if (!controled) { if (shifted) { if (tPtr->view->prevFocusChain) { W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view), tPtr->view->prevFocusChain); tPtr->flags.notIllegalMovement = 1; } data = (void *)WMBacktabTextMovement; } else { if (tPtr->view->nextFocusChain) { W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view), tPtr->view->nextFocusChain); tPtr->flags.notIllegalMovement = 1; } data = (void *)WMTabTextMovement; } textEvent = WMTextDidEndEditingNotification; cancelSelection = 0; relay = False; } break; case XK_Escape: if (!modified) { data = (void *)WMEscapeTextMovement; textEvent = WMTextDidEndEditingNotification; relay = False; } break; case XK_Return: if (!modified) { data = (void *)WMReturnTextMovement; textEvent = WMTextDidEndEditingNotification; relay = False; } break; case WM_EMACSKEY_LEFT: if (!control_pressed) goto normal_key; else controled = False; #ifdef XK_KP_Left case XK_KP_Left: #endif case XK_Left: if (tPtr->cursorPosition > 0) { int i; paintCursor(tPtr); i = tPtr->cursorPosition; i += oneUTF8CharBackward(&tPtr->text[i], i); if (controled) { while (i > 0 && tPtr->text[i] != ' ') i--; while (i > 0 && tPtr->text[i] == ' ') i--; tPtr->cursorPosition = (i > 0) ? i + 1 : 0; } else tPtr->cursorPosition = i; if (tPtr->cursorPosition < tPtr->viewPosition) { tPtr->viewPosition = tPtr->cursorPosition; refresh = 1; } else paintCursor(tPtr); } if (shifted) cancelSelection = 0; relay = False; break; case WM_EMACSKEY_RIGHT: if (!control_pressed) goto normal_key; else controled = False; #ifdef XK_KP_Right case XK_KP_Right: #endif case XK_Right: if (tPtr->cursorPosition < tPtr->textLen) { int i; paintCursor(tPtr); i = tPtr->cursorPosition; if (controled) { while (tPtr->text[i] && tPtr->text[i] != ' ') i++; while (tPtr->text[i] == ' ') i++; } else { i += oneUTF8CharForward(&tPtr->text[i], tPtr->textLen - i); } tPtr->cursorPosition = i; refresh = incrToFit2(tPtr); if (!refresh) paintCursor(tPtr); } if (shifted) cancelSelection = 0; relay = False; break; case WM_EMACSKEY_HOME: if (!control_pressed) goto normal_key; else controled = False; #ifdef XK_KP_Home case XK_KP_Home: #endif case XK_Home: if (!controled) { if (tPtr->cursorPosition > 0) { paintCursor(tPtr); tPtr->cursorPosition = 0; if (tPtr->viewPosition > 0) { tPtr->viewPosition = 0; refresh = 1; } else paintCursor(tPtr); } if (shifted) cancelSelection = 0; relay = False; } break; case WM_EMACSKEY_END: if (!control_pressed) goto normal_key; else controled = False; #ifdef XK_KP_End case XK_KP_End: #endif case XK_End: if (!controled) { if (tPtr->cursorPosition < tPtr->textLen) { paintCursor(tPtr); tPtr->cursorPosition = tPtr->textLen; tPtr->viewPosition = 0; refresh = incrToFit(tPtr); if (!refresh) paintCursor(tPtr); } if (shifted) cancelSelection = 0; relay = False; } break; case WM_EMACSKEY_BS: if (!control_pressed) goto normal_key; else modified = False; case XK_BackSpace: if (!modified) { if (tPtr->selection.count) { WMDeleteTextFieldRange(tPtr, tPtr->selection); data = (void *)WMDeleteTextEvent; textEvent = WMTextDidChangeNotification; } else if (tPtr->cursorPosition > 0) { int i = oneUTF8CharBackward(&tPtr->text[tPtr->cursorPosition], tPtr->cursorPosition); WMRange range; range.position = tPtr->cursorPosition + i; range.count = -i; WMDeleteTextFieldRange(tPtr, range); data = (void *)WMDeleteTextEvent; textEvent = WMTextDidChangeNotification; } relay = False; } break; case WM_EMACSKEY_DEL: if (!control_pressed) goto normal_key; else modified = False; #ifdef XK_KP_Delete case XK_KP_Delete: #endif case XK_Delete: if (!modified) { if (tPtr->selection.count) { WMDeleteTextFieldRange(tPtr, tPtr->selection); data = (void *)WMDeleteTextEvent; textEvent = WMTextDidChangeNotification; } else if (tPtr->cursorPosition < tPtr->textLen) { WMRange range; range.position = tPtr->cursorPosition; range.count = oneUTF8CharForward(&tPtr->text[tPtr->cursorPosition], tPtr->textLen - tPtr->cursorPosition); WMDeleteTextFieldRange(tPtr, range); data = (void *)WMDeleteTextEvent; textEvent = WMTextDidChangeNotification; } relay = False; } break; normal_key: default: if (!controled) { if (count > 0 && !iscntrl(buffer[0])) { if (tPtr->selection.count) WMDeleteTextFieldRange(tPtr, tPtr->selection); WMInsertTextFieldText(tPtr, buffer, tPtr->cursorPosition); data = (void *)WMInsertTextEvent; textEvent = WMTextDidChangeNotification; relay = False; } } break; } if (relay) { WMRelayToNextResponder(W_VIEW(tPtr), event); return; } /* Do not allow text selection in secure text fields */ if (cancelSelection || tPtr->flags.secure) { lostSelection(tPtr->view, XA_PRIMARY, NULL); if (tPtr->selection.count) { tPtr->selection.count = 0; refresh = 1; } tPtr->selection.position = tPtr->cursorPosition; } else { if (tPtr->selection.count != tPtr->cursorPosition - tPtr->selection.position) { tPtr->selection.count = tPtr->cursorPosition - tPtr->selection.position; refresh = 1; } } /*printf("(%d,%d)\n", tPtr->selection.position, tPtr->selection.count); */ if (textEvent) { WMNotification *notif = WMCreateNotification(textEvent, tPtr, data); if (tPtr->delegate) { if (textEvent == WMTextDidBeginEditingNotification && tPtr->delegate->didBeginEditing) (*tPtr->delegate->didBeginEditing) (tPtr->delegate, notif); else if (textEvent == WMTextDidEndEditingNotification && tPtr->delegate->didEndEditing) (*tPtr->delegate->didEndEditing) (tPtr->delegate, notif); else if (textEvent == WMTextDidChangeNotification && tPtr->delegate->didChange) (*tPtr->delegate->didChange) (tPtr->delegate, notif); } WMPostNotification(notif); WMReleaseNotification(notif); } if (refresh) paintTextField(tPtr); /*printf("(%d,%d)\n", tPtr->selection.position, tPtr->selection.count); */ } static int pointToCursorPosition(TextField * tPtr, int x) { int a, b, pos, prev, tw; if (tPtr->flags.bordered) x -= 2; if (WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]), tPtr->textLen - tPtr->viewPosition) <= x) return tPtr->textLen; a = tPtr->viewPosition; b = tPtr->textLen; /* we halve the text until we get into a 10 byte vicinity of x */ while (b - a > 10) { pos = (a + b) / 2; pos += seekUTF8CharStart(&tPtr->text[pos], pos - a); tw = WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]), pos - tPtr->viewPosition); if (tw > x) { b = pos; } else if (tw < x) { a = pos; } else { return pos; } } /* at this point x can be positioned on any glyph between 'a' and 'b-1' * inclusive, with the exception of the left border of the 'a' glyph and * the right border or the 'b-1' glyph * * ( <--- range for x's position ---> ) * a a+1 .......................... b-1 b */ pos = prev = a; while (pos <= b) { tw = WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]), pos - tPtr->viewPosition); if (tw > x) { return prev; } else if (pos == b) { break; } prev = pos; pos += oneUTF8CharForward(&tPtr->text[pos], b - pos); } return b; } static void pasteText(WMView * view, Atom selection, Atom target, Time timestamp, void *cdata, WMData * data) { TextField *tPtr = (TextField *) view->self; char *str; tPtr->flags.waitingSelection = 0; if (data != NULL) { str = (char *)WMDataBytes(data); WMInsertTextFieldText(tPtr, str, tPtr->cursorPosition); NOTIFY(tPtr, didChange, WMTextDidChangeNotification, (void *)WMInsertTextEvent); } else { int n; str = XFetchBuffer(tPtr->view->screen->display, &n, 0); if (str != NULL) { str[n] = 0; WMInsertTextFieldText(tPtr, str, tPtr->cursorPosition); XFree(str); NOTIFY(tPtr, didChange, WMTextDidChangeNotification, (void *)WMInsertTextEvent); } } } static void handleTextFieldActionEvents(XEvent * event, void *data) { TextField *tPtr = (TextField *) data; static Time lastButtonReleasedEvent = 0; static Time lastButtonReleasedEvent2 = 0; Display *dpy = event->xany.display; CHECK_CLASS(data, WC_TextField); switch (event->type) { case KeyPress: if (tPtr->flags.waitingSelection) { return; } if (tPtr->flags.enabled && tPtr->flags.focused) { handleTextFieldKeyPress(tPtr, event); XDefineCursor(dpy, W_VIEW(tPtr)->window, W_VIEW(tPtr)->screen->invisibleCursor); tPtr->flags.pointerGrabbed = 1; } break; case MotionNotify: if (tPtr->flags.pointerGrabbed) { tPtr->flags.pointerGrabbed = 0; XDefineCursor(dpy, W_VIEW(tPtr)->window, W_VIEW(tPtr)->screen->textCursor); } if (tPtr->flags.waitingSelection) { return; } if (tPtr->flags.enabled && (event->xmotion.state & Button1Mask)) { if (tPtr->viewPosition < tPtr->textLen && event->xmotion.x > tPtr->usableWidth) { if (WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]), tPtr->cursorPosition - tPtr->viewPosition) > tPtr->usableWidth) { tPtr->viewPosition += oneUTF8CharForward(&tPtr->text[tPtr->viewPosition], tPtr->textLen - tPtr->viewPosition); } } else if (tPtr->viewPosition > 0 && event->xmotion.x < 0) { paintCursor(tPtr); tPtr->viewPosition += oneUTF8CharBackward(&tPtr->text[tPtr->viewPosition], tPtr->viewPosition); } tPtr->cursorPosition = pointToCursorPosition(tPtr, event->xmotion.x); /* Do not allow text selection in secure textfields */ if (tPtr->flags.secure) { tPtr->selection.position = tPtr->cursorPosition; } tPtr->selection.count = tPtr->cursorPosition - tPtr->selection.position; paintCursor(tPtr); paintTextField(tPtr); } break; case ButtonPress: if (tPtr->flags.pointerGrabbed) { tPtr->flags.pointerGrabbed = 0; XDefineCursor(dpy, W_VIEW(tPtr)->window, W_VIEW(tPtr)->screen->textCursor); break; } if (tPtr->flags.waitingSelection) { break; } switch (tPtr->flags.alignment) { int textWidth; case WARight: textWidth = WMWidthOfString(tPtr->font, tPtr->text, tPtr->textLen); if (tPtr->flags.enabled && !tPtr->flags.focused) { WMSetFocusToWidget(tPtr); } if (tPtr->flags.focused) { tPtr->selection.position = tPtr->cursorPosition; tPtr->selection.count = 0; } if (textWidth < tPtr->usableWidth) { tPtr->cursorPosition = pointToCursorPosition(tPtr, event->xbutton.x - tPtr->usableWidth + textWidth); } else tPtr->cursorPosition = pointToCursorPosition(tPtr, event->xbutton.x); paintTextField(tPtr); break; case WALeft: if (tPtr->flags.enabled && !tPtr->flags.focused) { WMSetFocusToWidget(tPtr); } if (tPtr->flags.focused && event->xbutton.button == Button1) { tPtr->cursorPosition = pointToCursorPosition(tPtr, event->xbutton.x); tPtr->selection.position = tPtr->cursorPosition; tPtr->selection.count = 0; paintTextField(tPtr); } if (event->xbutton.button == Button2 && tPtr->flags.enabled) { char *text; int n; if (!WMRequestSelection(tPtr->view, XA_PRIMARY, XA_STRING, event->xbutton.time, pasteText, NULL)) { text = XFetchBuffer(tPtr->view->screen->display, &n, 0); if (text) { text[n] = 0; WMInsertTextFieldText(tPtr, text, tPtr->cursorPosition); XFree(text); NOTIFY(tPtr, didChange, WMTextDidChangeNotification, (void *)WMInsertTextEvent); } } else { tPtr->flags.waitingSelection = 1; } } break; default: break; } break; case ButtonRelease: if (tPtr->flags.pointerGrabbed) { tPtr->flags.pointerGrabbed = 0; XDefineCursor(dpy, W_VIEW(tPtr)->window, W_VIEW(tPtr)->screen->textCursor); } if (tPtr->flags.waitingSelection) { break; } if (!tPtr->flags.secure && tPtr->selection.count != 0) { int start, count; XRotateBuffers(dpy, 1); count = abs(tPtr->selection.count); if (tPtr->selection.count < 0) start = tPtr->selection.position - count; else start = tPtr->selection.position; XStoreBuffer(dpy, &tPtr->text[start], count, 0); } if (!tPtr->flags.secure && event->xbutton.time - lastButtonReleasedEvent <= WINGsConfiguration.doubleClickDelay) { if (event->xbutton.time - lastButtonReleasedEvent2 <= 2 * WINGsConfiguration.doubleClickDelay) { tPtr->selection.position = 0; tPtr->selection.count = tPtr->textLen; } else { int pos, cnt; char *txt; pos = tPtr->selection.position; cnt = tPtr->selection.count; txt = tPtr->text; while (pos >= 0) { if (txt[pos] == ' ' || txt[pos] == '\t') break; pos--; } pos++; while (pos + cnt < tPtr->textLen) { if (txt[pos + cnt] == ' ' || txt[pos + cnt] == '\t') break; cnt++; } tPtr->selection.position = pos; tPtr->selection.count = cnt; } paintTextField(tPtr); if (!tPtr->flags.ownsSelection) { tPtr->flags.ownsSelection = WMCreateSelectionHandler(tPtr->view, XA_PRIMARY, event->xbutton.time, &selectionHandler, NULL); } } else if (!tPtr->flags.secure && tPtr->selection.count != 0 && !tPtr->flags.ownsSelection) { tPtr->flags.ownsSelection = WMCreateSelectionHandler(tPtr->view, XA_PRIMARY, event->xbutton.time, &selectionHandler, NULL); } lastButtonReleasedEvent2 = lastButtonReleasedEvent; lastButtonReleasedEvent = event->xbutton.time; break; } } static void destroyTextField(TextField * tPtr) { if (tPtr->timerID) WMDeleteTimerHandler(tPtr->timerID); W_DestroyIC(tPtr->view); WMReleaseFont(tPtr->font); /*// use lostSelection() instead of WMDeleteSelectionHandler here? */ WMDeleteSelectionHandler(tPtr->view, XA_PRIMARY, CurrentTime); WMRemoveNotificationObserver(tPtr); if (tPtr->text) wfree(tPtr->text); wfree(tPtr); } WindowMaker-0.95.5/WINGs/wcolorpanel.c0000644000175000017500000032022412214432632014404 00000000000000/* * ColorPanel for WINGs * * by ]d : Original idea and basic initial code * Pascal Hofstee : Code for wheeldrawing and calculating * colors from it. * Primary coder of this Color Panel. * Alban Hertroys : Optimizations for algorithms for color- * wheel. Also custom ColorPalettes and * magnifying glass. Secondary coder ;) * Alfredo K. Kojima : For pointing out memory-allocation * problems and similair code-issues * Marco van Hylckama-Vlieg : For once again doing the artwork ;-) * */ /* TODO: * - Look at further optimization of colorWheel matrix calculation. * It appears to be rather symmetric in angles of 60 degrees, * while it is optimized in angles of 90 degrees. * - Custom color-lists and custom colors in custom color-lists. * - Stored colors * - Resizing */ #include "wconfig.h" #include "WINGsP.h" #include "rgb.h" #include #include #include #include #include #include #include #include #define RETRY( x ) do { \ x; \ } while (errno == EINTR); /* BUG There's something fishy with shaped windows */ /* Whithout shape extension the magnified image is completely broken -Dan */ #if 0 # ifdef SHAPE # define SHAPE_WAS_DEFINED # undef SHAPE # endif #endif #ifdef SHAPE # include #endif char *WMColorPanelColorChangedNotification = "WMColorPanelColorChangedNotification"; /* * Bitmaps for magnifying glass cursor */ /* Cursor */ #define Cursor_x_hot 11 #define Cursor_y_hot 11 #define Cursor_width 32 #define Cursor_height 32 static unsigned char Cursor_bits[] = { 0x00, 0x7e, 0x00, 0x00, 0xc0, 0x81, 0x03, 0x00, 0x20, 0x00, 0x04, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x04, 0x00, 0x20, 0x00, 0x02, 0x00, 0x40, 0x00, 0x02, 0x00, 0x40, 0x00, 0x02, 0x00, 0x40, 0x00, 0x01, 0x42, 0x80, 0x00, 0x01, 0x24, 0x80, 0x00, 0x01, 0x00, 0x80, 0x00, 0x01, 0x00, 0x80, 0x00, 0x01, 0x24, 0x80, 0x00, 0x01, 0x42, 0x80, 0x00, 0x02, 0x00, 0x40, 0x00, 0x02, 0x00, 0x40, 0x00, 0x02, 0x00, 0x40, 0x00, 0x04, 0x00, 0x20, 0x00, 0x08, 0x00, 0x50, 0x00, 0x10, 0x00, 0x88, 0x00, 0x20, 0x00, 0x5c, 0x01, 0xc0, 0x81, 0x3b, 0x02, 0x00, 0x7e, 0x70, 0x05, 0x00, 0x00, 0xe0, 0x08, 0x00, 0x00, 0xc0, 0x15, 0x00, 0x00, 0x80, 0x23, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x70 }; /* Cursor shape-mask */ #define Cursor_shape_width 32 #define Cursor_shape_height 32 static unsigned char Cursor_shape_bits[] = { 0x00, 0x7e, 0x00, 0x00, 0xc0, 0x81, 0x03, 0x00, 0x20, 0x00, 0x04, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x04, 0x00, 0x20, 0x00, 0x02, 0x00, 0x40, 0x00, 0x02, 0x00, 0x40, 0x00, 0x02, 0x00, 0x40, 0x00, 0x01, 0x42, 0x80, 0x00, 0x01, 0x24, 0x80, 0x00, 0x01, 0x00, 0x80, 0x00, 0x01, 0x00, 0x80, 0x00, 0x01, 0x24, 0x80, 0x00, 0x01, 0x42, 0x80, 0x00, 0x02, 0x00, 0x40, 0x00, 0x02, 0x00, 0x40, 0x00, 0x02, 0x00, 0x40, 0x00, 0x04, 0x00, 0x20, 0x00, 0x08, 0x00, 0x70, 0x00, 0x10, 0x00, 0xf8, 0x00, 0x20, 0x00, 0xfc, 0x01, 0xc0, 0x81, 0xfb, 0x03, 0x00, 0x7e, 0xf0, 0x07, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x70 }; /* Clip-mask for magnified pixels */ #define Cursor_mask_width 24 #define Cursor_mask_height 24 static unsigned char Cursor_mask_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0xc0, 0xff, 0x03, 0xe0, 0xff, 0x07, 0xf0, 0xff, 0x0f, 0xf8, 0xff, 0x1f, 0xfc, 0xff, 0x3f, 0xfc, 0xff, 0x3f, 0xfc, 0xff, 0x3f, 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 0xff, 0x3f, 0xfc, 0xff, 0x3f, 0xf8, 0xff, 0x1f, 0xf0, 0xff, 0x0f, 0xe0, 0xff, 0x07, 0xc0, 0xff, 0x03, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00 }; typedef struct MovingView { WMView *view; /* The view this is all about */ XImage *image; /* What's under the view */ XImage *dirtyRect; /* Storage of overlapped image area */ Pixmap magPix; /* Magnified part of pixmap */ RColor color; /* Color of a pixel in the image */ int x, y; /* Position of view */ } MovingView; typedef struct CPColor { RColor rgb; /* The RGB values of the color */ RHSVColor hsv; /* The HSV values of the color */ enum { /* Which one was last set ? */ cpNone, cpRGB, cpHSV } set; } CPColor; 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 R,G & B = 0-255 */ } wheelMatrix; typedef struct W_ColorPanel { WMWindow *win; WMFont *font8; WMFont *font12; void *clientData; WMAction2 *action; /* 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 */ CPColor color; /* Current color */ WMColorPanelMode mode; /* Current color selection mode */ WMColorPanelMode slidersmode; /* Current color sel. mode sliders panel */ WMColorPanelMode lastChanged; /* Panel that last changed the color */ int colx, coly; /* (x,y) of sel.-marker in WheelMode */ int palx, paly; /* (x,y) of sel.-marker in CustomPaletteMode */ double palXRatio, palYRatio; /* Ratios in x & y between original and scaled palettesize */ int currentPalette; char *configurationPath; struct { unsigned int continuous:1; unsigned int dragging:1; } flags; } W_ColorPanel; enum { CPmenuNewFromFile, CPmenuRename, CPmenuRemove, CPmenuCopy, CPmenuNewFromClipboard } customPaletteMenuItem; enum { CLmenuAdd, CLmenuRename, CLmenuRemove } colorListMenuItem; #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 #define MAX_LENGTH 1024 #ifndef M_PI #define M_PI 3.14159265358979323846 #endif static char *generateNewFilename(const char *curName); static void convertCPColor(CPColor * color); static RColor ulongToRColor(WMScreen * scr, unsigned long value); static unsigned char getShift(unsigned char value); 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 void closeWindowCallback(WMWidget * w, void *data); 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 void magnifyGetImageStored(W_ColorPanel * panel, int x1, int y1, int x2, int y2); static XImage *magnifyGetImage(WMScreen * scr, XImage * image, int x, int y, int w, int h); static wheelMatrix *wheelCreateMatrix(unsigned int width, unsigned int height); static void wheelDestroyMatrix(wheelMatrix * matrix); static void wheelInitMatrix(W_ColorPanel * panel); static void wheelCalculateValues(W_ColorPanel * panel, int maxvalue); 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 wheelUpdateBrightnessGradientFromLocation(W_ColorPanel * panel); static void wheelUpdateBrightnessGradient(W_ColorPanel * panel, CPColor 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 colorListColorMenuCallback(WMWidget * w, void *data); static void colorListListMenuCallback(WMWidget * w, void *data); static void colorListListMenuNew(W_ColorPanel * panel); 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); void WMSetColorPanelAction(WMColorPanel * panel, WMAction2 * action, void *data) { panel->action = action; panel->clientData = data; } static WMColorPanel *makeColorPanel(WMScreen * scrPtr, const char *name) { WMColorPanel *panel; RImage *image; WMPixmap *pixmap; RColor from; RColor to; WMColor *textcolor, *graybuttoncolor; int i; GC bgc = WMColorGC(scrPtr->black); GC wgc = WMColorGC(scrPtr->white); panel = wmalloc(sizeof(WMColorPanel)); panel->color.rgb.red = 0; panel->color.rgb.green = 0; panel->color.rgb.blue = 0; panel->color.hsv.hue = 0; panel->color.hsv.saturation = 0; panel->color.hsv.value = 0; panel->color.set = cpNone; /* Color has not been set yet */ 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")); WMSetWindowCloseAction(panel->win, closeWindowCallback, panel); /* Set Default ColorPanel Mode(s) */ panel->mode = WMWheelModeColorPanel; panel->lastChanged = 0; panel->slidersmode = WMRGBModeColorPanel; panel->configurationPath = wstrconcat(wusergnusteppath(), "/Library/Colors/"); /* Some General Purpose Widgets */ panel->colorWell = WMCreateColorWell(panel->win); WMResizeWidget(panel->colorWell, 134, 36); WSetColorWellBordered(panel->colorWell, False); WMMoveWidget(panel->colorWell, 56, 4); panel->magnifyBtn = WMCreateCustomButton(panel->win, WBBStateLightMask | WBBStateChangeMask); WMResizeWidget(panel->magnifyBtn, 46, 36); WMMoveWidget(panel->magnifyBtn, 6, 4); WMSetButtonAction(panel->magnifyBtn, magnifyPutCursor, panel); WMSetButtonImagePosition(panel->magnifyBtn, WIPImageOnly); WMSetButtonImage(panel->magnifyBtn, scrPtr->magnifyIcon); 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 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); panel->wheelMtrx = wheelCreateMatrix(colorWheelSize + 4, colorWheelSize + 4); wheelInitMatrix(panel); /* 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); RReleaseImage(image); if (pixmap) W_PaintText(W_VIEW(panel->grayBrightnessS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, scrPtr->white, False, _("Brightness"), strlen(_("Brightness"))); else wwarning(_("Color Panel: Could not allocate memory")); 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); for (i = 0; i < 7; i++) { pixmap = WMCreatePixmap(scrPtr, 13, 13, scrPtr->depth, False); graybuttoncolor = WMCreateRGBColor(scrPtr, (255 / 6) * i << 8, (255 / 6) * i << 8, (255 / 6) * i << 8, True); WMPaintColorSwatch(graybuttoncolor, pixmap->pixmap, 0, 0, 15, 15); WMReleaseColor(graybuttoncolor); 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); WMSetButtonImage(panel->grayPresetBtn[i], pixmap); WMSetButtonImagePosition(panel->grayPresetBtn[i], WIPImageOnly); WMReleasePixmap(pixmap); } /* 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); RReleaseImage(image); if (pixmap) W_PaintText(W_VIEW(panel->rgbRedS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, scrPtr->white, False, _("Red"), strlen(_("Red"))); else wwarning(_("Color Panel: Could not allocate memory")); 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); RReleaseImage(image); if (pixmap) W_PaintText(W_VIEW(panel->rgbGreenS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, scrPtr->white, False, _("Green"), strlen(_("Green"))); else wwarning(_("Color Panel: Could not allocate memory")); 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); RReleaseImage(image); if (pixmap) W_PaintText(W_VIEW(panel->rgbBlueS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, scrPtr->white, False, _("Blue"), strlen(_("Blue"))); else wwarning(_("Color Panel: Could not allocate memory")); 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); RReleaseImage(image); if (pixmap) W_PaintText(W_VIEW(panel->cmykCyanS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, scrPtr->black, False, _("Cyan"), strlen(_("Cyan"))); else wwarning(_("Color Panel: Could not allocate memory")); 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); RReleaseImage(image); if (pixmap) W_PaintText(W_VIEW(panel->cmykMagentaS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, scrPtr->black, False, _("Magenta"), strlen(_("Magenta"))); else wwarning(_("Color Panel: Could not allocate memory")); 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); RReleaseImage(image); if (pixmap) W_PaintText(W_VIEW(panel->cmykYellowS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, scrPtr->black, False, _("Yellow"), strlen(_("Yellow"))); else wwarning(_("Color Panel: Could not allocate memory")); 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); RReleaseImage(image); if (pixmap) W_PaintText(W_VIEW(panel->cmykBlackS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, scrPtr->black, False, _("Black"), strlen(_("Black"))); else wwarning(_("Color Panel: Could not allocate memory")); 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 Test if we can create a view */ W_ResizeView(panel->customPaletteContentView, customPaletteWidth, customPaletteHeight); W_MoveView(panel->customPaletteContentView, 2, 2); /* Create event handler to handle expose/click events in 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...")); WMAddPopUpButtonItem(panel->customPaletteMenuBtn, _("Rename...")); WMAddPopUpButtonItem(panel->customPaletteMenuBtn, _("Remove")); WMAddPopUpButtonItem(panel->customPaletteMenuBtn, _("Copy")); WMAddPopUpButtonItem(panel->customPaletteMenuBtn, _("New from Clipboard")); WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuRename, 0); WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuRemove, 0); WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuCopy, 0); WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuNewFromClipboard, 0); customRenderSpectrum(panel); panel->currentPalette = 0; panel->palx = customPaletteWidth / 2; panel->paly = customPaletteHeight / 2; /* 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); WMAddPopUpButtonItem(panel->colorListColorMenuBtn, _("Add...")); WMAddPopUpButtonItem(panel->colorListColorMenuBtn, _("Rename...")); WMAddPopUpButtonItem(panel->colorListColorMenuBtn, _("Remove")); WMSetPopUpButtonItemEnabled(panel->colorListColorMenuBtn, CLmenuAdd, 0); WMSetPopUpButtonItemEnabled(panel->colorListColorMenuBtn, CLmenuRename, 0); WMSetPopUpButtonItemEnabled(panel->colorListColorMenuBtn, CLmenuRemove, 0); 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); WMAddPopUpButtonItem(panel->colorListListMenuBtn, _("New...")); WMAddPopUpButtonItem(panel->colorListListMenuBtn, _("Rename...")); WMAddPopUpButtonItem(panel->colorListListMenuBtn, _("Remove")); WMSetPopUpButtonItemEnabled(panel->colorListListMenuBtn, CLmenuAdd, 0); WMSetPopUpButtonItemEnabled(panel->colorListListMenuBtn, CLmenuRename, 0); WMSetPopUpButtonItemEnabled(panel->colorListListMenuBtn, CLmenuRemove, 0); 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); /* Pixmap to indicate selection positions * wheelframe MUST be mapped. */ panel->selectionImg = XCreatePixmap(scrPtr->display, WMWidgetXID(panel->win), 4, 4, scrPtr->depth); XFillRectangle(scrPtr->display, panel->selectionImg, bgc, 0, 0, 4, 4); XFillRectangle(scrPtr->display, panel->selectionImg, wgc, 1, 1, 2, 2); 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) { scr->sharedColorPanel = NULL; } if (!panel) return; WMRemoveNotificationObserver(panel); WMUnmapWidget(panel->win); /* fonts */ WMReleaseFont(panel->font8); WMReleaseFont(panel->font12); /* pixmaps */ 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); RReleaseImage(panel->customPaletteImg); /* structs */ if (panel->lastBrowseDir) wfree(panel->lastBrowseDir); if (panel->configurationPath) wfree(panel->configurationPath); WMDestroyWidget(panel->win); wfree(panel); } void WMCloseColorPanel(WMColorPanel * panel) { WMFreeColorPanel(panel); } void WMShowColorPanel(WMColorPanel * panel) { WMScreen *scr = WMWidgetScreen(panel->win); WMColor *white = WMWhiteColor(scr); if (panel->color.set == cpNone) WMSetColorPanelColor(panel, white); WMReleaseColor(white); if (panel->mode != WMWheelModeColorPanel) WMPerformButtonClick(panel->wheelBtn); WMMapWidget(panel->win); } static void closeWindowCallback(WMWidget * w, void *data) { W_ColorPanel *panel = (W_ColorPanel *) data; WMCloseColorPanel(panel); } static void readConfiguration(W_ColorPanel * panel) { /* XXX Doesn't take care of "invalid" files */ DIR *dPtr; struct dirent *dp; struct stat stat_buf; int item; if (stat(panel->configurationPath, &stat_buf) != 0) { if (mkdir(panel->configurationPath, S_IRWXU | S_IRGRP | S_IROTH | S_IXGRP | S_IXOTH) != 0) { werror(_("Color Panel: Could not create directory %s needed" " to store configurations"), panel->configurationPath); WMSetPopUpButtonEnabled(panel->customPaletteMenuBtn, False); WMSetPopUpButtonEnabled(panel->colorListColorMenuBtn, False); WMSetPopUpButtonEnabled(panel->colorListListMenuBtn, False); WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win, _("File Error"), _("Could not create ColorPanel configuration directory"), _("OK"), NULL, NULL); } return; } if (!(dPtr = opendir(panel->configurationPath))) { wwarning("%s: %s", _("Color Panel: Could not find file"), panel->configurationPath); return; } while ((dp = readdir(dPtr)) != NULL) { unsigned int perm_mask; char *path = wstrconcat(panel->configurationPath, dp->d_name); if (dp->d_name[0] != '.') { item = WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn); WMAddPopUpButtonItem(panel->customPaletteHistoryBtn, dp->d_name); perm_mask = (access(path, R_OK) == 0); WMSetPopUpButtonItemEnabled(panel->customPaletteHistoryBtn, item, perm_mask); } wfree(path); } closedir(dPtr); } static void readXColors(W_ColorPanel * panel) { WMListItem *item; RGBColor *entry; for (entry = rgbColors; entry->name != NULL; entry++) { item = WMAddListItem(panel->colorListContentLst, entry->name); item->clientData = (void *)&(entry->color); } } void WMSetColorPanelPickerMode(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; } WMColor *WMGetColorPanelColor(WMColorPanel * panel) { return WMGetColorWellColor(panel->colorWell); } void WMSetColorPanelColor(WMColorPanel * panel, WMColor * color) { WMSetColorWellColor(panel->colorWell, color); panel->color.rgb.red = color->color.red >> 8; panel->color.rgb.green = color->color.green >> 8; panel->color.rgb.blue = color->color.blue >> 8; panel->color.set = cpRGB; if (panel->mode == panel->lastChanged) panel->lastChanged = 0; WMSetColorPanelPickerMode(panel, panel->mode); } static void updateSwatch(WMColorPanel * panel, CPColor color) { WMScreen *scr = WMWidgetScreen(panel->win); WMColor *wellcolor; if (color.set != cpRGB) convertCPColor(&color); panel->color = color; wellcolor = WMCreateRGBColor(scr, color.rgb.red << 8, color.rgb.green << 8, color.rgb.blue << 8, True); WMSetColorWellColor(panel->colorWell, wellcolor); WMReleaseColor(wellcolor); if (!panel->flags.dragging || panel->flags.continuous) { if (panel->action) (*panel->action) (panel, panel->clientData); WMPostNotificationName(WMColorPanelColorChangedNotification, panel, NULL); } } static void modeButtonCallback(WMWidget * w, void *data) { W_ColorPanel *panel = (W_ColorPanel *) (data); if (w == panel->wheelBtn) WMSetColorPanelPickerMode(panel, WMWheelModeColorPanel); else if (w == panel->slidersBtn) WMSetColorPanelPickerMode(panel, panel->slidersmode); else if (w == panel->customPaletteBtn) WMSetColorPanelPickerMode(panel, WMCustomPaletteModeColorPanel); else if (w == panel->colorListBtn) WMSetColorPanelPickerMode(panel, WMColorListModeColorPanel); else if (w == panel->grayBtn) WMSetColorPanelPickerMode(panel, WMGrayModeColorPanel); else if (w == panel->rgbBtn) WMSetColorPanelPickerMode(panel, WMRGBModeColorPanel); else if (w == panel->cmykBtn) WMSetColorPanelPickerMode(panel, WMCMYKModeColorPanel); else if (w == panel->hsbBtn) WMSetColorPanelPickerMode(panel, WMHSBModeColorPanel); } /****************** Magnifying Cursor Functions *******************/ static XImage *magnifyGetImage(WMScreen * scr, XImage * image, int x, int y, int w, int h) { int x0 = 0, y0 = 0, w0 = w, h0 = h; const int displayWidth = DisplayWidth(scr->display, scr->screen), displayHeight = DisplayHeight(scr->display, scr->screen); if (!(image && image->data)) { /* The image in panel->magnifyGlass->image does not exist yet. * Grab one from the screen (not beyond) and use it from now on. */ if (!(image = XGetImage(scr->display, scr->rootWin, x - Cursor_x_hot, y - Cursor_y_hot, w, h, AllPlanes, ZPixmap))) wwarning(_("Color Panel: X failed request")); return image; } /* Coordinate correction for back pixmap * if magnifying glass is at screen-borders */ /* Figure 1: Shifting of rectangle-to-grab at top/left screen borders * Hatched area is beyond screen border. * * |<-Cursor_x_hot->| * ________________|_____ * |/ / / / / / /| | | * | / / / / / / |(x,y) | * |/_/_/_/_/_/_/|________| * |<----x0----->|<--w0-->| * 0 */ /* Figure 2: Shifting of rectangle-to-grab at bottom/right * screen borders * Hatched area is beyond screen border * * |<-Cursor_x_hot->| * ________________|_______________ * | | | / / / / / /| * | (x,y)|/ / / / / / | * |___________________|_/_/_/_/_/_/| * |<-------w0-------->| | * |<---------------w--|----------->| * | | * x0 Displaywidth-1 */ if (x < Cursor_x_hot) { /* see fig. 1 */ x0 = Cursor_x_hot - x; w0 = w - x0; } if (displayWidth - 1 < x - Cursor_x_hot + w) { /* see fig. 2 */ w0 = (displayWidth) - (x - Cursor_x_hot); } if (y < Cursor_y_hot) { /* see fig. 1 */ y0 = Cursor_y_hot - y; h0 = h - y0; } if (displayHeight - 1 < y - Cursor_y_hot + h) { /* see fig. 2 */ h0 = (displayHeight) - (y - Cursor_y_hot); } /* end of coordinate correction */ /* Grab an image from the screen, clipped if necessary, * and put it in the existing panel->magnifyGlass->image * with the corresponding clipping offset. */ if (!XGetSubImage(scr->display, scr->rootWin, x - Cursor_x_hot + x0, y - Cursor_y_hot + y0, w0, h0, AllPlanes, ZPixmap, image, x0, y0)) wwarning(_("Color Panel: X failed request")); return NULL; } static void magnifyGetImageStored(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); int xa = 0, ya = 0, xb = 0, yb = 0; int width, height; const int dx = abs(x2 - x1), dy = abs(y2 - y1); XImage *image; const int x_min = Cursor_x_hot, y_min = Cursor_y_hot, x_max = DisplayWidth(scr->display, scr->screen) - 1 - (Cursor_mask_width - Cursor_x_hot), y_max = DisplayHeight(scr->display, scr->screen) - 1 - (Cursor_mask_height - Cursor_y_hot); if ((dx == 0) && (dy == 0) && panel->magnifyGlass->image) return; /* No movement */ if (x1 < x2) xa = dx; else xb = dx; if (y1 < y2) ya = dy; else yb = dy; width = Cursor_mask_width - dx; height = Cursor_mask_height - dy; /* If the traversed distance is larger than the size of the magnifying * glass contents, there is no need to do dirty rectangles. A whole new * rectangle can be grabbed (unless that rectangle falls partially * off screen). * Destroying the image and setting it to NULL will achieve that later on. * * Of course, grabbing an XImage beyond the borders of the screen will * cause trouble, this is considdered a special case. Part of the screen * is grabbed, but there is no need for dirty rectangles. */ if ((width <= 0) || (height <= 0)) { if ((x2 >= x_min) && (y2 >= y_min) && (x2 <= x_max) && (y2 <= y_max)) { if (panel->magnifyGlass->image) XDestroyImage(panel->magnifyGlass->image); panel->magnifyGlass->image = NULL; } } else { if (panel->magnifyGlass->image) { /* Get dirty rectangle from panel->magnifyGlass->image */ panel->magnifyGlass->dirtyRect = XSubImage(panel->magnifyGlass->image, xa, ya, width, height); if (!panel->magnifyGlass->dirtyRect) { wwarning(_("Color Panel: X failed request")); return; /* X returned a NULL from XSubImage */ } } } /* Get image from screen */ image = magnifyGetImage(scr, panel->magnifyGlass->image, x2, y2, Cursor_mask_width, Cursor_mask_height); if (image) { /* Only reassign if a *new* image was grabbed */ panel->magnifyGlass->image = image; return; } /* Copy previously stored rectangle on covered part of image */ if (panel->magnifyGlass->image && panel->magnifyGlass->dirtyRect) { int old_height; /* "width" and "height" are used as coordinates here, * and run from [0...width-1] and [0...height-1] respectively. */ width--; height--; old_height = height; for (; width >= 0; width--) for (height = old_height; height >= 0; height--) XPutPixel(panel->magnifyGlass->image, xb + width, yb + height, XGetPixel(panel->magnifyGlass->dirtyRect, width, height)); XDestroyImage(panel->magnifyGlass->dirtyRect); panel->magnifyGlass->dirtyRect = NULL; } return; } static Pixmap magnifyCreatePixmap(WMColorPanel * panel) { W_Screen *scr = WMWidgetScreen(panel->win); int u, v; #ifndef SHAPE Pixmap pixmap; #endif unsigned long color; if (!panel->magnifyGlass->image) return None; if (!panel->magnifyGlass->magPix) return None; /* * Copy an area of only 5x5 pixels from the center of the image. */ for (u = 0; u < 5; u++) { for (v = 0; v < 5; v++) { color = XGetPixel(panel->magnifyGlass->image, u + 9, v + 9); XSetForeground(scr->display, scr->copyGC, color); if ((u == 2) && (v == 2)) /* (2,2) is center pixel (unmagn.) */ panel->magnifyGlass->color = ulongToRColor(scr, color); /* The center square must eventually be centered around the * hotspot. The image needs shifting to achieve this. The amount of * shifting is (Cursor_mask_width/2 - 2 * square_size) = 11-10 = 1 * _ _ _ _ _ * |_|_|_|_|_| * ^------- center of center square == Cursor_x_hot */ XFillRectangle(scr->display, panel->magnifyGlass->magPix, scr->copyGC, u * 5 + (u == 0 ? 0 : -1), v * 5 + (v == 0 ? 0 : -1), (u == 0 ? 4 : 5), (v == 0 ? 4 : 5)); } } #ifdef SHAPE return panel->magnifyGlass->magPix; #else pixmap = XCreatePixmap(scr->display, W_DRAWABLE(scr), Cursor_mask_width, Cursor_mask_height, scr->depth); if (!pixmap) return None; XPutImage(scr->display, pixmap, scr->copyGC, panel->magnifyGlass->image, 0, 0, 0, 0, Cursor_mask_width, Cursor_mask_height); /* Copy the magnified pixmap, with the clip mask, to background pixmap */ XCopyArea(scr->display, panel->magnifyGlass->magPix, pixmap, scr->clipGC, 0, 0, Cursor_mask_width, Cursor_mask_height, 0, 0); /* (2,2) puts center pixel on center of glass */ return pixmap; #endif } static WMView *magnifyCreateView(W_ColorPanel * panel) { W_Screen *scr = WMWidgetScreen(panel->win); WMView *magView; magView = W_CreateTopView(scr); if (!magView) return NULL; magView->self = panel->win; magView->flags.topLevel = 1; magView->attribFlags |= CWOverrideRedirect | CWSaveUnder; magView->attribs.override_redirect = True; magView->attribs.save_under = True; W_ResizeView(magView, Cursor_mask_width, Cursor_mask_height); W_RealizeView(magView); return magView; } static Cursor magnifyGrabPointer(W_ColorPanel * panel) { W_Screen *scr = WMWidgetScreen(panel->win); Pixmap magPixmap, magPixmap2; Cursor magCursor; XColor fgColor = { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 }; XColor bgColor = { 0, 0xbf00, 0xa000, 0x5000, DoRed | DoGreen | DoBlue, 0 }; /* Cursor creation stuff */ magPixmap = XCreatePixmapFromBitmapData(scr->display, W_DRAWABLE(scr), (char *)Cursor_bits, Cursor_width, Cursor_height, 1, 0, 1); magPixmap2 = XCreatePixmapFromBitmapData(scr->display, W_DRAWABLE(scr), (char *)Cursor_shape_bits, Cursor_width, Cursor_height, 1, 0, 1); magCursor = XCreatePixmapCursor(scr->display, magPixmap, magPixmap2, &fgColor, &bgColor, Cursor_x_hot, Cursor_y_hot); 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, clip_mask; WMPoint point; Window root_return, child_return; clip_mask = XCreatePixmapFromBitmapData(scr->display, W_DRAWABLE(scr), (char *)Cursor_mask_bits, Cursor_mask_width, Cursor_mask_height, 1, 0, 1); panel->magnifyGlass->magPix = XCreatePixmap(scr->display, W_DRAWABLE(scr), 5 * 5 - 1, 5 * 5 - 1, scr->depth); XQueryPointer(scr->display, scr->rootWin, &root_return, &child_return, &x, &y, &u, &v, &mask); panel->magnifyGlass->image = NULL; /* Clipmask to make magnified view-contents circular */ #ifdef SHAPE XShapeCombineMask(scr->display, WMViewXID(panel->magnifyGlass->view), ShapeBounding, 0, 0, clip_mask, ShapeSet); #else /* Clip circle in glass cursor */ XSetClipMask(scr->display, scr->clipGC, clip_mask); XSetClipOrigin(scr->display, scr->clipGC, 0, 0); #endif XFreePixmap(scr->display, clip_mask); /* Draw initial magnifying glass contents */ magnifyGetImageStored(panel, x, y, x, y); pixmap = magnifyCreatePixmap(panel); XSetWindowBackgroundPixmap(scr->display, WMViewXID(panel->magnifyGlass->view), pixmap); XClearWindow(scr->display, WMViewXID(panel->magnifyGlass->view)); XFlush(scr->display); #ifndef SHAPE XFreePixmap(scr->display, pixmap); #endif 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; Pixmap pixmap; XEvent event; WMPoint initialPosition; /* Destroy wheelBackImg, so it'll update properly */ if (panel->selectionBackImg) { XFreePixmap(WMWidgetScreen(panel->win)->display, panel->selectionBackImg); panel->selectionBackImg = None; } /* Create magnifying glass */ panel->magnifyGlass = wmalloc(sizeof(MovingView)); panel->magnifyGlass->view = magnifyCreateView(panel); if (!panel->magnifyGlass->view) return; initialPosition = magnifyInitialize(panel); panel->magnifyGlass->x = initialPosition.x; panel->magnifyGlass->y = initialPosition.y; W_MoveView(panel->magnifyGlass->view, panel->magnifyGlass->x - Cursor_x_hot, panel->magnifyGlass->y - Cursor_y_hot); W_MapView(panel->magnifyGlass->view); magCursor = magnifyGrabPointer(panel); while (panel->magnifyGlass->image) { WMNextEvent(scr->display, &event); /* Pack motion events */ while (XCheckTypedEvent(scr->display, MotionNotify, &event)) { } switch (event.type) { case ButtonPress: XDestroyImage(panel->magnifyGlass->image); panel->magnifyGlass->image = NULL; if (event.xbutton.button == Button1) { panel->color.rgb = panel->magnifyGlass->color; panel->color.set = cpRGB; updateSwatch(panel, panel->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; WMSetButtonSelected(panel->magnifyBtn, False); break; case MotionNotify: while (XPending(event.xmotion.display)) { XEvent ev; XPeekEvent(event.xmotion.display, &ev); if (ev.type == MotionNotify) XNextEvent(event.xmotion.display, &event); else break; } /* Get a "dirty rectangle" */ magnifyGetImageStored(panel, panel->magnifyGlass->x, panel->magnifyGlass->y, event.xmotion.x_root, event.xmotion.y_root); /* Update coordinates */ panel->magnifyGlass->x = event.xmotion.x_root; panel->magnifyGlass->y = event.xmotion.y_root; /* Move view */ W_MoveView(panel->magnifyGlass->view, panel->magnifyGlass->x - Cursor_x_hot, panel->magnifyGlass->y - Cursor_y_hot); /* Put new image (with magn.) in view */ pixmap = magnifyCreatePixmap(panel); if (pixmap != None) { /* Change the window background */ XSetWindowBackgroundPixmap(scr->display, WMViewXID(panel->magnifyGlass->view), pixmap); /* Force an Expose (handled by X) */ XClearWindow(scr->display, WMViewXID(panel->magnifyGlass->view)); /* Synchronize the event queue, so the Expose is handled NOW */ XFlush(scr->display); #ifndef SHAPE XFreePixmap(scr->display, pixmap); #endif } break; /* Try XQueryPointer for this !!! It returns windows that the pointer * is over. Note: We found this solving the invisible donkey cap bug */ #if 0 /* As it is impossible to make this work in all cases, * we consider it confusing. Therefore we disabled it. */ case FocusOut: /* fall through */ case FocusIn: /* * Color Panel window (panel->win) lost or received focus. * We need to update the pixmap in the magnifying glass. * * BUG Doesn't work with focus switches between two windows * if none of them is the color panel. */ XUngrabPointer(scr->display, CurrentTime); W_UnmapView(panel->magnifyGlass->view); magnifyInitialize(panel); W_MapView(panel->magnifyGlass->view); XGrabPointer(scr->display, panel->magnifyGlass->view->window, True, PointerMotionMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, scr->rootWin, magCursor, CurrentTime); break; #endif default: WMHandleEvent(&event); break; } /* of switch */ } XUngrabPointer(scr->display, CurrentTime); XFreeCursor(scr->display, magCursor); XFreePixmap(scr->display, panel->magnifyGlass->magPix); panel->magnifyGlass->magPix = None; W_UnmapView(panel->magnifyGlass->view); W_DestroyView(panel->magnifyGlass->view); panel->magnifyGlass->view = NULL; wfree(panel->magnifyGlass); } /****************** ColorWheel Functions ************************/ static wheelMatrix *wheelCreateMatrix(unsigned int width, unsigned int height) { wheelMatrix *matrix = NULL; int i; assert((width > 0) && (height > 0)); matrix = wmalloc(sizeof(wheelMatrix)); matrix->width = width; matrix->height = height; for (i = 0; i < 3; i++) { matrix->data[i] = wmalloc(width * height * sizeof(unsigned char)); } return matrix; } static void wheelDestroyMatrix(wheelMatrix * matrix) { int i; if (!matrix) return; for (i = 0; i < 3; i++) { if (matrix->data[i]) wfree(matrix->data[i]); } wfree(matrix); } static void wheelInitMatrix(W_ColorPanel * panel) { int i; int x, y; unsigned char *rp, *gp, *bp; CPColor cpColor; long ofs[4]; int xcor, ycor; unsigned short sat; int dhue[4]; const int cw_halfsize = (colorWheelSize + 4) / 2, cw_sqsize = (colorWheelSize + 4) * (colorWheelSize + 4), uchar_shift = getShift(sizeof(unsigned char)); if (!panel->wheelMtrx) return; cpColor.hsv.value = 255; cpColor.set = cpHSV; ofs[0] = -1; ofs[1] = -(colorWheelSize + 4); /* offsets are counterclockwise (in triangles). * * ofs[0] ----> * _______________________________________ * [1] |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| o * s |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| f * f |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| s * o | | | | | | | | | | | | | | | | | | | | | [3] * * <---- ofs[2] * ____ * |\ /| <-- triangles * | \/ | * | /\ | * |/__\| */ for (y = 0; y < cw_halfsize; y++) { for (x = y; x < (colorWheelSize + 4 - y); x++) { /* (xcor, ycor) is (x,y) relative to center of matrix */ xcor = 2 * x - 4 - colorWheelSize; ycor = 2 * y - 4 - colorWheelSize; /* RColor.saturation is unsigned char and will wrap after 255 */ sat = rint(255.0 * sqrt(xcor * xcor + ycor * ycor) / colorWheelSize); cpColor.hsv.saturation = (unsigned char)sat; ofs[0]++; /* top quarter of matrix */ ofs[1] += colorWheelSize + 4; /* left quarter */ ofs[2] = cw_sqsize - 1 - ofs[0]; /* bottom quarter */ ofs[3] = cw_sqsize - 1 - ofs[1]; /* right quarter */ if (sat < 256) { if (xcor != 0) dhue[0] = rint(atan((double)ycor / (double)xcor) * (180.0 / M_PI)) + (xcor < 0 ? 180.0 : 0.0); else dhue[0] = 270; dhue[0] = 360 - dhue[0]; /* Reverse direction of ColorWheel */ dhue[1] = 270 - dhue[0] + (dhue[0] > 270 ? 360 : 0); dhue[2] = dhue[0] - 180 + (dhue[0] < 180 ? 360 : 0); dhue[3] = 90 - dhue[0] + (dhue[0] > 90 ? 360 : 0); for (i = 0; i < 4; i++) { rp = panel->wheelMtrx->data[0] + (ofs[i] << uchar_shift); gp = panel->wheelMtrx->data[1] + (ofs[i] << uchar_shift); bp = panel->wheelMtrx->data[2] + (ofs[i] << uchar_shift); cpColor.hsv.hue = dhue[i]; convertCPColor(&cpColor); *rp = (unsigned char)(cpColor.rgb.red); *gp = (unsigned char)(cpColor.rgb.green); *bp = (unsigned char)(cpColor.rgb.blue); } } else { for (i = 0; i < 4; i++) { rp = panel->wheelMtrx->data[0] + (ofs[i] << uchar_shift); gp = panel->wheelMtrx->data[1] + (ofs[i] << uchar_shift); bp = panel->wheelMtrx->data[2] + (ofs[i] << uchar_shift); *rp = (unsigned char)0; *gp = (unsigned char)0; *bp = (unsigned char)0; } } } ofs[0] += 2 * y + 1; ofs[1] += 1 - (colorWheelSize + 4) * (colorWheelSize + 4 - 1 - 2 * y); } } static void wheelCalculateValues(W_ColorPanel * panel, int maxvalue) { unsigned int i; unsigned int v; 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 * maxvalue) >> 7; panel->wheelMtrx->values[i] = (unsigned char)((v >> 1) + (v & 0x01)); } } static void wheelRender(W_ColorPanel * panel) { W_Screen *scr = WMWidgetScreen(panel->win); int x, y; RImage *image; unsigned char *ptr; RColor gray; unsigned long ofs = 0; /*unsigned char shift = getShift(sizeof(unsigned char)); */ image = RCreateImage(colorWheelSize + 4, colorWheelSize + 4, True); if (!image) { wwarning(_("Color Panel: Could not allocate memory")); return; } ptr = image->data; /* TODO Make this transparent istead of gray */ gray.red = gray.blue = 0xae; gray.green = 0xaa; for (y = 0; y < colorWheelSize + 4; y++) { for (x = 0; x < colorWheelSize + 4; x++) { if (wheelInsideColorWheel(panel, ofs)) { *(ptr++) = (unsigned char)(panel->wheelMtrx->values[panel->wheelMtrx->data[0][ofs]]); *(ptr++) = (unsigned char)(panel->wheelMtrx->values[panel->wheelMtrx->data[1][ofs]]); *(ptr++) = (unsigned char)(panel->wheelMtrx->values[panel->wheelMtrx->data[2][ofs]]); *(ptr++) = 0; } else { *(ptr++) = (unsigned char)(gray.red); *(ptr++) = (unsigned char)(gray.green); *(ptr++) = (unsigned char)(gray.blue); *(ptr++) = 255; } ofs++; } } if (panel->wheelImg) XFreePixmap(scr->display, panel->wheelImg); RConvertImage(scr->rcontext, image, &panel->wheelImg); RReleaseImage(image); /* Check if backimage exists. If it doesn't, allocate 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 hot spot correction */ } } 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) /* TODO Improve */ 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->lastChanged = WMWheelModeColorPanel; panel->flags.dragging = 1; wheelPositionSelection(panel, event->xbutton.x, event->xbutton.y); } break; case ButtonRelease: panel->flags.dragging = 0; if (!panel->flags.continuous) { if (panel->action) (*panel->action) (panel, panel->clientData); } 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 value; W_ColorPanel *panel = (W_ColorPanel *) data; value = 255 - WMGetSliderValue(panel->wheelBrightnessS); wheelCalculateValues(panel, value); if (panel->color.set == cpRGB) { convertCPColor(&panel->color); panel->color.set = cpHSV; } panel->color.hsv.value = value; wheelRender(panel); wheelPaint(panel); wheelUpdateSelection(panel); } static void wheelUpdateSelection(W_ColorPanel * panel) { W_Screen *scr = WMWidgetScreen(panel->win); updateSwatch(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.rgb.red = panel->wheelMtrx->values[panel->wheelMtrx->data[0][ofs]]; panel->color.rgb.green = panel->wheelMtrx->values[panel->wheelMtrx->data[1][ofs]]; panel->color.rgb.blue = panel->wheelMtrx->values[panel->wheelMtrx->data[2][ofs]]; panel->color.set = cpRGB; wheelUndrawSelection(panel); panel->colx = x; panel->coly = y; wheelUpdateSelection(panel); wheelUpdateBrightnessGradientFromLocation(panel); } static void wheelPositionSelectionOutBounds(W_ColorPanel * panel, int x, int y) { int hue; int xcor, ycor; CPColor cpColor; xcor = x * 2 - colorWheelSize - 4; ycor = y * 2 - colorWheelSize - 4; panel->color.hsv.saturation = 255; panel->color.hsv.value = 255 - WMGetSliderValue(panel->wheelBrightnessS); if (xcor != 0) hue = rint(atan(-(double)ycor / (double)xcor) * (180.0 / M_PI)); else { if (ycor < 0) hue = 90; else hue = 270; } if (xcor < 0) hue += 180; if ((xcor > 0) && (ycor > 0)) hue += 360; panel->color.hsv.hue = hue; panel->color.set = cpHSV; convertCPColor(&panel->color); wheelUndrawSelection(panel); panel->colx = 2 + rint((colorWheelSize * (1.0 + cos(panel->color.hsv.hue * (M_PI / 180.0)))) / 2.0); /* "+2" because of "colorWheelSize + 4" */ panel->coly = 2 + rint((colorWheelSize * (1.0 + sin(-panel->color.hsv.hue * (M_PI / 180.0)))) / 2.0); wheelUpdateSelection(panel); cpColor = panel->color; wheelUpdateBrightnessGradient(panel, cpColor); } static void wheelUpdateBrightnessGradientFromLocation(W_ColorPanel * panel) { CPColor from; unsigned long ofs; ofs = panel->coly * panel->wheelMtrx->width + panel->colx; from.rgb.red = panel->wheelMtrx->data[0][ofs]; from.rgb.green = panel->wheelMtrx->data[1][ofs]; from.rgb.blue = panel->wheelMtrx->data[2][ofs]; from.set = cpRGB; wheelUpdateBrightnessGradient(panel, from); } static void wheelUpdateBrightnessGradient(W_ColorPanel * panel, CPColor topColor) { RColor to; RImage *sliderImg; WMPixmap *sliderPxmp; to.red = to.green = to.blue = 0; if (topColor.set == cpHSV) convertCPColor(&topColor); sliderImg = RRenderGradient(16, 153, &(topColor.rgb), &to, RGRD_VERTICAL); sliderPxmp = WMCreatePixmapFromRImage(WMWidgetScreen(panel->win), sliderImg, 0); RReleaseImage(sliderImg); WMSetSliderImage(panel->wheelBrightnessS, sliderPxmp); WMReleasePixmap(sliderPxmp); } /****************** Grayscale Panel Functions ***************/ static void grayBrightnessSliderCallback(WMWidget * w, void *data) { CPColor cpColor; int value; char tmp[4]; W_ColorPanel *panel = (W_ColorPanel *) data; value = WMGetSliderValue(panel->grayBrightnessS); sprintf(tmp, "%d", value); WMSetTextFieldText(panel->grayBrightnessT, tmp); cpColor.rgb.red = cpColor.rgb.green = cpColor.rgb.blue = rint(2.55 * value); cpColor.set = cpRGB; updateSwatch(panel, cpColor); panel->lastChanged = WMGrayModeColorPanel; } static void grayPresetButtonCallback(WMWidget * w, void *data) { CPColor cpColor; 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 * i) / 6.0); sprintf(tmp, "%d", value); WMSetTextFieldText(panel->grayBrightnessT, tmp); cpColor.rgb.red = cpColor.rgb.green = cpColor.rgb.blue = rint((255.0 * i) / 6.0); cpColor.set = cpRGB; WMSetSliderValue(panel->grayBrightnessS, rint((100.0 * i) / 6.0)); updateSwatch(panel, cpColor); panel->lastChanged = WMGrayModeColorPanel; } static void grayBrightnessTextFieldCallback(void *observerData, WMNotification * notification) { CPColor cpColor; 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); cpColor.rgb.red = cpColor.rgb.green = cpColor.rgb.blue = rint((255.0 * value) / 100.0); cpColor.set = cpRGB; updateSwatch(panel, cpColor); panel->lastChanged = WMGrayModeColorPanel; } /******************* RGB Panel Functions *****************/ static void rgbSliderCallback(WMWidget * w, void *data) { CPColor cpColor; 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); cpColor.rgb.red = value[0]; cpColor.rgb.green = value[1]; cpColor.rgb.blue = value[2]; cpColor.set = cpRGB; updateSwatch(panel, cpColor); panel->lastChanged = WMRGBModeColorPanel; } static void rgbTextFieldCallback(void *observerData, WMNotification * notification) { CPColor cpColor; int value[3]; char tmp[4]; 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]); cpColor.rgb.red = value[0]; cpColor.rgb.green = value[1]; cpColor.rgb.blue = value[2]; cpColor.set = cpRGB; updateSwatch(panel, cpColor); panel->lastChanged = WMRGBModeColorPanel; } /******************* CMYK Panel Functions *****************/ static void cmykSliderCallback(WMWidget * w, void *data) { CPColor cpColor; int value[4]; char tmp[4]; W_ColorPanel *panel = (W_ColorPanel *) data; double scale; 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); scale = 2.55 * (1.0 - (value[3] / 100.0)); cpColor.rgb.red = rint((100.0 - value[0]) * scale); cpColor.rgb.green = rint((100.0 - value[1]) * scale); cpColor.rgb.blue = rint((100.0 - value[2]) * scale); cpColor.set = cpRGB; updateSwatch(panel, cpColor); panel->lastChanged = WMCMYKModeColorPanel; } static void cmykTextFieldCallback(void *observerData, WMNotification * notification) { CPColor cpColor; int value[4]; char tmp[4]; int n; double scale; 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]); scale = 2.55 * (1.0 - (value[3] / 100.0)); cpColor.rgb.red = rint((100.0 - value[0]) * scale); cpColor.rgb.green = rint((100.0 - value[1]) * scale); cpColor.rgb.blue = rint((100.0 - value[2]) * scale); cpColor.set = cpRGB; updateSwatch(panel, cpColor); panel->lastChanged = WMCMYKModeColorPanel; } /********************** HSB Panel Functions ***********************/ static void hsbSliderCallback(WMWidget * w, void *data) { CPColor cpColor; 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); cpColor.hsv.hue = value[0]; cpColor.hsv.saturation = value[1] * 2.55; cpColor.hsv.value = value[2] * 2.55; cpColor.set = cpHSV; convertCPColor(&cpColor); panel->lastChanged = WMHSBModeColorPanel; updateSwatch(panel, cpColor); 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) { CPColor cpColor; int value[3]; char tmp[4]; 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]); cpColor.hsv.hue = value[0]; cpColor.hsv.saturation = value[1] * 2.55; cpColor.hsv.value = value[2] * 2.55; cpColor.set = cpHSV; convertCPColor(&cpColor); panel->lastChanged = WMHSBModeColorPanel; updateSwatch(panel, cpColor); hsbUpdateBrightnessGradient(panel); hsbUpdateSaturationGradient(panel); hsbUpdateHueGradient(panel); } static void hsbUpdateBrightnessGradient(W_ColorPanel * panel) { W_Screen *scr = WMWidgetScreen(panel->win); RColor from; CPColor to; RImage *sliderImg; WMPixmap *sliderPxmp; from.red = from.green = from.blue = 0; to.hsv = panel->color.hsv; to.hsv.value = 255; to.set = cpHSV; convertCPColor(&to); sliderImg = RRenderGradient(141, 16, &from, &(to.rgb), RGRD_HORIZONTAL); sliderPxmp = WMCreatePixmapFromRImage(scr, sliderImg, 0); RReleaseImage(sliderImg); if (sliderPxmp) W_PaintText(W_VIEW(panel->hsbBrightnessS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, scr->white, False, _("Brightness"), strlen(_("Brightness"))); else wwarning(_("Color Panel: Could not allocate memory")); WMSetSliderImage(panel->hsbBrightnessS, sliderPxmp); WMReleasePixmap(sliderPxmp); } static void hsbUpdateSaturationGradient(W_ColorPanel * panel) { W_Screen *scr = WMWidgetScreen(panel->win); CPColor from; CPColor to; RImage *sliderImg; WMPixmap *sliderPxmp; from.hsv = panel->color.hsv; from.hsv.saturation = 0; from.set = cpHSV; convertCPColor(&from); to.hsv = panel->color.hsv; to.hsv.saturation = 255; to.set = cpHSV; convertCPColor(&to); sliderImg = RRenderGradient(141, 16, &(from.rgb), &(to.rgb), RGRD_HORIZONTAL); sliderPxmp = WMCreatePixmapFromRImage(scr, sliderImg, 0); RReleaseImage(sliderImg); if (sliderPxmp) W_PaintText(W_VIEW(panel->hsbSaturationS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, from.hsv.value < 128 ? scr->white : scr->black, False, _("Saturation"), strlen(_("Saturation"))); else wwarning(_("Color Panel: Could not allocate memory")); 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->color.hsv; colors = wmalloc(sizeof(RColor *) * (8)); for (i = 0; i < 7; i++) { hsvcolor.hue = (360 * i) / 6; colors[i] = wmalloc(sizeof(RColor)); RHSVtoRGB(&hsvcolor, colors[i]); } colors[7] = NULL; sliderImg = RRenderMultiGradient(141, 16, colors, RGRD_HORIZONTAL); sliderPxmp = WMCreatePixmapFromRImage(scr, sliderImg, 0); RReleaseImage(sliderImg); if (sliderPxmp) W_PaintText(W_VIEW(panel->hsbHueS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, hsvcolor.value < 128 ? scr->white : scr->black, False, _("Hue"), strlen(_("Hue"))); else wwarning(_("Color Panel: Could not allocate memory")); WMSetSliderImage(panel->hsbHueS, sliderPxmp); WMReleasePixmap(sliderPxmp); for (i = 0; i < 7; i++) wfree(colors[i]); wfree(colors); } /*************** Custom Palette Functions ****************/ static void customRenderSpectrum(W_ColorPanel * panel) { RImage *spectrum; int x, y; unsigned char *ptr; CPColor cpColor; spectrum = RCreateImage(SPECTRUM_WIDTH, SPECTRUM_HEIGHT, False); ptr = spectrum->data; for (y = 0; y < SPECTRUM_HEIGHT; y++) { cpColor.hsv.hue = y; cpColor.hsv.saturation = 0; cpColor.hsv.value = 255; cpColor.set = cpHSV; for (x = 0; x < SPECTRUM_WIDTH; x++) { convertCPColor(&cpColor); *(ptr++) = (unsigned char)cpColor.rgb.red; *(ptr++) = (unsigned char)cpColor.rgb.green; *(ptr++) = (unsigned char)cpColor.rgb.blue; if (x < (SPECTRUM_WIDTH / 2)) cpColor.hsv.saturation++; if (x > (SPECTRUM_WIDTH / 2)) cpColor.hsv.value--; } } if (panel->customPaletteImg) { RReleaseImage(panel->customPaletteImg); panel->customPaletteImg = NULL; } panel->customPaletteImg = spectrum; } static void customSetPalette(W_ColorPanel * panel) { W_Screen *scr = WMWidgetScreen(panel->win); RImage *scaledImg; Pixmap image; image = XCreatePixmap(scr->display, W_DRAWABLE(scr), customPaletteWidth, customPaletteHeight, scr->depth); scaledImg = RScaleImage(panel->customPaletteImg, customPaletteWidth, customPaletteHeight); RConvertImage(scr->rcontext, scaledImg, &image); RReleaseImage(scaledImg); XCopyArea(scr->display, image, panel->customPaletteContentView->window, scr->copyGC, 0, 0, customPaletteWidth, customPaletteHeight, 0, 0); /* Check backimage exists. If it doesn't, allocate 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 = (double)(panel->customPaletteImg->width) / (double)(customPaletteWidth); panel->palYRatio = (double)(panel->customPaletteImg->height) / (double)(customPaletteHeight); WMGetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn); } 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) * 3; panel->color.rgb.red = panel->customPaletteImg->data[ofs]; panel->color.rgb.green = panel->customPaletteImg->data[ofs + 1]; panel->color.rgb.blue = panel->customPaletteImg->data[ofs + 2]; panel->color.set = cpRGB; updateSwatch(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) /* TODO Improve. */ 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; if (!panel->flags.continuous) { if (panel->action) (*panel->action) (panel, panel->clientData); } 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 = WMGetPopUpButtonSelectedItem(panel->customPaletteMenuBtn); switch (item) { case CPmenuNewFromFile: customPaletteMenuNewFromFile(panel); break; case CPmenuRename: customPaletteMenuRename(panel); break; case CPmenuRemove: customPaletteMenuRemove(panel); break; case CPmenuCopy: break; case CPmenuNewFromClipboard: 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) wfree(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 = wstrconcat(panel->configurationPath, filename); while (access(tmp, F_OK) == 0) { char *newName; wfree(tmp); newName = generateNewFilename(filename); wfree(filename); filename = newName; tmp = wstrconcat(panel->configurationPath, filename); } wfree(tmp); /* Copy image to $(gnustepdir)/Library/Colors/ & * Add filename to history menu */ if (wcopy_file(panel->configurationPath, filepath, filename) == 0) { /* filepath is a "local" path now the file has been copied */ wfree(filepath); filepath = wstrconcat(panel->configurationPath, filename); /* load the image & add menu entries */ tmpImg = RLoadImage(scr->rcontext, filepath, 0); if (tmpImg) { if (panel->customPaletteImg) RReleaseImage(panel->customPaletteImg); panel->customPaletteImg = tmpImg; customSetPalette(panel); WMAddPopUpButtonItem(panel->customPaletteHistoryBtn, filename); panel->currentPalette = WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn) - 1; WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, panel->currentPalette); } } else { tmp = wstrconcat(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) { werror(_("can't remove file %s"), tmp); WMRunAlertPanel(scr, panel->win, _("File Error"), _("Couldn't remove file from Configuration Directory !"), _("OK"), NULL, NULL); } wfree(tmp); } wfree(filepath); wfree(filename); } WMFreeFilePanel(browseP); wfree(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) { wfree(toName); return; } /* For normal people */ fromPath = wstrconcat(panel->configurationPath, fromName); toPath = wstrconcat(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 { wfree(fromPath); wfree(toName); wfree(toPath); return; } } if (rename(fromPath, toPath) != 0) werror(_("Couldn't rename palette %s to %s"), fromName, toName); else { WMRemovePopUpButtonItem(panel->customPaletteHistoryBtn, item); WMInsertPopUpButtonItem(panel->customPaletteHistoryBtn, item, toName); WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, item); } wfree(fromPath); wfree(toPath); wfree(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 = wstrconcat(_("This will permanently remove the palette "), WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item)); text = wstrconcat(tmp, _(".\n\nAre you sure you want to remove this palette ?")); wfree(tmp); choice = WMRunAlertPanel(scr, panel->win, _("Remove"), text, _("Yes"), _("No"), NULL); /* returns 0 (= "Yes") or 1 (="No") */ wfree(text); if (choice == 0) { tmp = wstrconcat(panel->configurationPath, WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item)); if (remove(tmp) == 0) { /* item-1 always exists */ WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, item - 1); customPaletteHistoryCallback(panel->customPaletteHistoryBtn, panel); customSetPalette(panel); WMRemovePopUpButtonItem(panel->customPaletteHistoryBtn, item); } else { werror(_("Couldn't remove palette %s"), tmp); } wfree(tmp); } } 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; unsigned char perm_mask; item = WMGetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn); if (item == panel->currentPalette) return; if (item == 0) { customRenderSpectrum(panel); WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuRename, False); WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuRemove, False); } else { /* Load file from configpath */ filename = wstrconcat(panel->configurationPath, WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item)); /* If the file corresponding to the item does not exist, * remove it from the history list and select the next one. */ perm_mask = (access(filename, F_OK) == 0); if (!perm_mask) { /* File does not exist */ wfree(filename); WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, item - 1); WMRemovePopUpButtonItem(panel->customPaletteHistoryBtn, item); customPaletteHistoryCallback(w, data); return; } /* Get the image */ tmp = RLoadImage(scr->rcontext, filename, 0); if (tmp) { if (panel->customPaletteImg) { RReleaseImage(panel->customPaletteImg); panel->customPaletteImg = NULL; } panel->customPaletteImg = tmp; } /* If the image is not writable, don't allow removing/renaming */ perm_mask = (access(filename, W_OK) == 0); WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuRename, perm_mask); WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuRemove, perm_mask); wfree(filename); } customSetPalette(panel); panel->currentPalette = item; } /************************* ColorList Panel Functions **********************/ static void colorListPaintItem(WMList * lPtr, int index, Drawable d, char *text, int state, WMRect * rect) { WMScreen *scr = WMWidgetScreen(lPtr); Display *dpy = WMScreenDisplay(scr); WMView *view = W_VIEW(lPtr); RColor *color = (RColor *) WMGetListItem(lPtr, index)->clientData; W_ColorPanel *panel = WMGetHangedData(lPtr); int width, height, x, y; WMColor *fillColor; width = rect->size.width; height = rect->size.height; x = rect->pos.x; y = rect->pos.y; if (state & WLDSSelected) XFillRectangle(dpy, d, WMColorGC(scr->white), x, y, width, height); else XFillRectangle(dpy, d, WMColorGC(view->backColor), x, y, width, height); fillColor = WMCreateRGBColor(scr, color->red << 8, color->green << 8, color->blue << 8, True); XFillRectangle(dpy, d, WMColorGC(fillColor), x, y, 15, height); WMReleaseColor(fillColor); WMDrawString(scr, d, scr->black, panel->font12, x + 18, y, text, strlen(text)); } static void colorListSelect(WMWidget * w, void *data) { W_ColorPanel *panel = (W_ColorPanel *) data; CPColor cpColor; cpColor.rgb = *((RColor *) WMGetListSelectedItem(w)->clientData); cpColor.set = cpRGB; panel->lastChanged = WMColorListModeColorPanel; updateSwatch(panel, cpColor); } static void colorListColorMenuCallback(WMWidget * w, void *data) { W_ColorPanel *panel = (W_ColorPanel *) data; int item = WMGetPopUpButtonSelectedItem(panel->colorListColorMenuBtn); switch (item) { case CLmenuAdd: break; case CLmenuRename: break; case CLmenuRemove: break; } } static void colorListListMenuCallback(WMWidget * w, void *data) { W_ColorPanel *panel = (W_ColorPanel *) data; int item = WMGetPopUpButtonSelectedItem(panel->colorListListMenuBtn); switch (item) { case CLmenuAdd: /* New Color List */ colorListListMenuNew(panel); break; case CLmenuRename: break; case CLmenuRemove: break; } } static void colorListListMenuNew(W_ColorPanel * panel) { } /*************** Panel Initialisation Functions *****************/ static void wheelInit(W_ColorPanel * panel) { CPColor cpColor; if (panel->color.set != cpHSV) convertCPColor(&panel->color); WMSetSliderValue(panel->wheelBrightnessS, 255 - panel->color.hsv.value); panel->colx = 2 + rint((colorWheelSize / 2.0) * (1 + (panel->color.hsv.saturation / 255.0) * cos(panel->color.hsv.hue * M_PI / 180.0))); panel->coly = 2 + rint((colorWheelSize / 2.0) * (1 + (panel->color.hsv.saturation / 255.0) * sin(-panel->color.hsv.hue * M_PI / 180.0))); wheelCalculateValues(panel, panel->color.hsv.value); cpColor = panel->color; cpColor.hsv.value = 255; cpColor.set = cpHSV; wheelUpdateBrightnessGradient(panel, cpColor); } static void grayInit(W_ColorPanel * panel) { int value; char tmp[4]; if (panel->color.set != cpHSV) convertCPColor(&panel->color); value = rint(panel->color.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]; if (panel->color.set != cpRGB) convertCPColor(&panel->color); WMSetSliderValue(panel->rgbRedS, panel->color.rgb.red); WMSetSliderValue(panel->rgbGreenS, panel->color.rgb.green); WMSetSliderValue(panel->rgbBlueS, panel->color.rgb.blue); sprintf(tmp, "%d", panel->color.rgb.red); WMSetTextFieldText(panel->rgbRedT, tmp); sprintf(tmp, "%d", panel->color.rgb.green); WMSetTextFieldText(panel->rgbGreenT, tmp); sprintf(tmp, "%d", panel->color.rgb.blue); WMSetTextFieldText(panel->rgbBlueT, tmp); } static void cmykInit(W_ColorPanel * panel) { int value[3]; char tmp[4]; if (panel->color.set != cpRGB) convertCPColor(&panel->color); value[0] = rint((255 - panel->color.rgb.red) / 2.55); value[1] = rint((255 - panel->color.rgb.green) / 2.55); value[2] = rint((255 - panel->color.rgb.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]; if (panel->color.set != cpHSV) convertCPColor(&panel->color); value[0] = panel->color.hsv.hue; value[1] = rint(panel->color.hsv.saturation / 2.55); value[2] = rint(panel->color.hsv.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); } /************************** Common utility functions ************************/ static char *generateNewFilename(const char *curName) { int n; char c; int baseLen; const char *ptr; char *newName; assert(curName); ptr = curName; if (((ptr = strrchr(ptr, '{')) == 0) || sscanf(ptr, "{%i}%c", &n, &c) != 1) return wstrconcat(curName, " {1}"); baseLen = ptr - curName - 1; newName = wmalloc(baseLen + 16); strncpy(newName, curName, baseLen); snprintf(&newName[baseLen], 16, " {%i}", n + 1); return newName; } static void convertCPColor(CPColor * color) { unsigned short old_hue = 0; switch (color->set) { case cpNone: wwarning(_("Color Panel: Color unspecified")); return; case cpRGB: old_hue = color->hsv.hue; RRGBtoHSV(&(color->rgb), &(color->hsv)); /* In black the hue is undefined, and may change by conversion * Same for white. */ if (((color->rgb.red == 0) && (color->rgb.green == 0) && (color->rgb.blue == 0)) || ((color->rgb.red == 0) && (color->rgb.green == 0) && (color->rgb.blue == 255)) ) color->hsv.hue = old_hue; break; case cpHSV: RHSVtoRGB(&(color->hsv), &(color->rgb)); break; } } #define ABS_SHIFT(val, shift) \ (((shift) > 0) ? (val) >> (shift) : (val) << -(shift)) static RColor ulongToRColor(WMScreen * scr, unsigned long value) { RColor color; XColor *xcolor = NULL; xcolor = wmalloc(sizeof(XColor)); xcolor->pixel = value; XQueryColor(scr->display, scr->rcontext->cmap, xcolor); color.red = xcolor->red >> 8; color.green = xcolor->green >> 8; color.blue = xcolor->blue >> 8; color.alpha = 0; wfree(xcolor); return color; } static unsigned char getShift(unsigned char value) { unsigned char i = -1; if (value == 0) return 0; while (value) { value >>= 1; i++; } return i; } #ifdef SHAPE_WAS_DEFINED #undef SHAPE_WAS_DEFINED #define SHAPE #endif WindowMaker-0.95.5/WINGs/memory.c0000644000175000017500000001023612214432632013366 00000000000000/* * Window Maker miscelaneous function library * * Copyright (c) 1997-2003 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., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include "wconfig.h" #include "WUtil.h" #include #include #include #include #include #include #include #ifdef USE_BOEHM_GC #ifndef GC_DEBUG #define GC_DEBUG #endif /* !GC_DEBUG */ #include #endif /* USE_BOEHM_GC */ #ifndef False # define False 0 #endif #ifndef True # define True 1 #endif static void defaultHandler(int bla) { if (bla) kill(getpid(), SIGABRT); else exit(1); } static waborthandler *aborthandler = defaultHandler; #define wAbort(a) (*aborthandler)(a) waborthandler *wsetabort(waborthandler * handler) { waborthandler *old = aborthandler; aborthandler = handler; return old; } static int Aborting = 0; /* if we're in the middle of an emergency exit */ static WMHashTable *table = NULL; void *wmalloc(size_t size) { void *tmp; assert(size > 0); #ifdef USE_BOEHM_GC tmp = GC_MALLOC(size); #else tmp = malloc(size); #endif if (tmp == NULL) { wwarning("malloc() failed. Retrying after 2s."); sleep(2); #ifdef USE_BOEHM_GC tmp = GC_MALLOC(size); #else tmp = malloc(size); #endif if (tmp == NULL) { if (Aborting) { fputs("Really Bad Error: recursive malloc() failure.", stderr); exit(-1); } else { wfatal("virtual memory exhausted"); Aborting = 1; wAbort(False); } } } memset(tmp, 0, size); return tmp; } void *wrealloc(void *ptr, size_t newsize) { void *nptr; if (!ptr) { nptr = wmalloc(newsize); } else if (newsize == 0) { wfree(ptr); nptr = NULL; } else { #ifdef USE_BOEHM_GC nptr = GC_REALLOC(ptr, newsize); #else nptr = realloc(ptr, newsize); #endif if (nptr == NULL) { wwarning("realloc() failed. Retrying after 2s."); sleep(2); #ifdef USE_BOEHM_GC nptr = GC_REALLOC(ptr, newsize); #else nptr = realloc(ptr, newsize); #endif if (nptr == NULL) { if (Aborting) { fputs("Really Bad Error: recursive realloc() failure.", stderr); exit(-1); } else { wfatal("virtual memory exhausted"); Aborting = 1; wAbort(False); } } } } return nptr; } void *wretain(void *ptr) { int *refcount; if (!table) { table = WMCreateHashTable(WMIntHashCallbacks); } refcount = WMHashGet(table, ptr); if (!refcount) { refcount = wmalloc(sizeof(int)); *refcount = 1; WMHashInsert(table, ptr, refcount); #ifdef VERBOSE printf("== %i (%p)\n", *refcount, ptr); #endif } else { (*refcount)++; #ifdef VERBOSE printf("+ %i (%p)\n", *refcount, ptr); #endif } return ptr; } void wfree(void *ptr) { if (ptr) #ifdef USE_BOEHM_GC /* This should eventually be removed, once the criss-cross * of wmalloc()d memory being free()d, malloc()d memory being * wfree()d, various misuses of calling wfree() on objects * allocated by libc malloc() and calling libc free() on * objects allocated by Boehm GC (think external libraries) * is cleaned up. */ if (GC_base(ptr) != 0) GC_FREE(ptr); else free(ptr); #else free(ptr); #endif ptr = NULL; } void wrelease(void *ptr) { int *refcount; refcount = WMHashGet(table, ptr); if (!refcount) { wwarning("trying to release unexisting data %p", ptr); } else { (*refcount)--; if (*refcount < 1) { #ifdef VERBOSE printf("RELEASING %p\n", ptr); #endif WMHashRemove(table, ptr); wfree(refcount); wfree(ptr); } #ifdef VERBOSE else { printf("- %i (%p)\n", *refcount, ptr); } #endif } } WindowMaker-0.95.5/WINGs/wtext.c0000644000175000017500000027010112214432632013230 00000000000000 /* WINGs WMText: multi-line/font/color/graphic text widget, by Nwanua. */ #include "WINGsP.h" #include #include #include #define DO_BLINK 0 /* TODO: * - verify what happens with XK_return in insertTextInt... * - selection code... selects can be funny if it crosses over. use rect? * - also inspect behaviour for WACenter and WARight * - what if a widget grabs the click... howto say: "pressed me"? * note that WMCreateEventHandler takes one data, but need widget & tPtr * - FIX: graphix blocks MUST be skipped if monoFont even though they exist! * - check if support for Horizontal Scroll is complete * - Tabs now are simply replaced by 4 spaces... * - redo blink code to reduce paint event... use pixmap buffer... * - add paragraph support (full) and '\n' code in getStream.. */ /* a Section is a section of a TextBlock that describes what parts of a TextBlock has been laid out on which "line"... o this greatly aids redraw, scroll and selection. o this is created during layoutLine, but may be later modified. o there may be many Sections per TextBlock, hence the array */ typedef struct { unsigned int x, y; /* where to draw it from */ unsigned short w, h; /* its width and height */ unsigned short begin; /* where the layout begins */ unsigned short end; /* where it ends */ unsigned short max_d; /* a quick hack for layOut if(laidOut) */ unsigned short last:1; /* is it the last section on a "line"? */ unsigned int _y:31; /* the "line" it and other textblocks are on */ } Section; /* a TextBlock is a node in a doubly-linked list of TextBlocks containing: o text for the block, color and font o or a pointer to the pixmap o OR a pointer to the widget and the (text) description for its graphic */ typedef struct _TextBlock { struct _TextBlock *next; /* next text block in linked list */ struct _TextBlock *prior; /* prior text block in linked list */ char *text; /* pointer to text (could be kanji) */ /* or to the object's description */ union { WMFont *font; /* the font */ WMWidget *widget; /* the embedded widget */ WMPixmap *pixmap; /* the pixmap */ } d; /* description */ unsigned short used; /* number of chars in this block */ unsigned short allocated; /* size of allocation (in chars) */ WMColor *color; /* the color */ Section *sections; /* the region for layouts (a growable array) */ /* an _array_! of size _nsections_ */ unsigned short s_begin; /* where the selection begins */ unsigned short s_end; /* where it ends */ unsigned int first:1; /* first TextBlock in paragraph */ unsigned int blank:1; /* ie. blank paragraph */ unsigned int kanji:1; /* is of 16-bit characters or not */ unsigned int graphic:1; /* graphic or text: text=0 */ unsigned int object:1; /* embedded object or pixmap */ unsigned int underlined:1; /* underlined or not */ unsigned int selected:1; /* selected or not */ unsigned int nsections:8; /* over how many "lines" a TextBlock wraps */ int script:8; /* script in points: negative for subscript */ unsigned int marginN:8; /* which of the margins in the tPtr to use */ unsigned int nClicks:2; /* single, double, triple clicks */ unsigned int RESERVED:7; } TextBlock; /* I'm lazy: visible.h vs. visible.size.height :-) */ typedef struct { int y, x, h, w; } myRect; typedef struct W_Text { W_Class widgetClass; /* the class number of this widget */ W_View *view; /* the view referring to this instance */ WMRuler *ruler; /* the ruler widget to manipulate paragraphs */ WMScroller *vS; /* the vertical scroller */ unsigned int vpos; /* the current vertical position */ unsigned int prevVpos; /* the previous vertical position */ WMScroller *hS; /* the horizontal scroller */ unsigned int hpos; /* the current horizontal position */ unsigned int prevHpos; /* the previous horizontal position */ WMFont *dFont; /* the default font */ WMColor *dColor; /* the default color */ WMPixmap *dBulletPix; /* the default pixmap for bullets */ WMColor *fgColor; /* The current foreground color */ WMColor *bgColor; /* The background color */ GC stippledGC; /* the GC to overlay selected graphics with */ Pixmap db; /* the buffer on which to draw */ WMPixmap *bgPixmap; /* the background pixmap */ myRect visible; /* the actual rectangle that can be drawn into */ myRect cursor; /* the position and (height) of cursor */ myRect sel; /* the selection rectangle */ WMPoint clicked; /* where in the _document_ was clicked */ unsigned short tpos; /* the position in the currentTextBlock */ unsigned short docWidth; /* the width of the entire document */ unsigned int docHeight; /* the height of the entire document */ TextBlock *firstTextBlock; TextBlock *lastTextBlock; TextBlock *currentTextBlock; WMArray *gfxItems; /* a nice array of graphic items */ #if DO_BLINK WMHandlerID timerID; /* for nice twinky-winky */ #endif WMAction *parser; WMAction *writer; WMTextDelegate *delegate; Time lastClickTime; WMRulerMargins *margins; /* an array of margins */ unsigned int nMargins:7; /* the total number of margins in use */ struct { unsigned int monoFont:1; /* whether to ignore formats and graphic */ unsigned int focused:1; /* whether this instance has input focus */ unsigned int editable:1; /* "silly user, you can't edit me" */ unsigned int ownsSelection:1; /* "I ownz the current selection!" */ unsigned int pointerGrabbed:1; /* "heh, gib me pointer" */ unsigned int extendSelection:1; /* shift-drag to select more regions */ unsigned int rulerShown:1; /* whether the ruler is shown or not */ unsigned int frozen:1; /* whether screen updates are to be made */ unsigned int cursorShown:1; /* whether to show the cursor */ unsigned int acceptsGraphic:1; /* accept graphic when dropped */ unsigned int horizOnDemand:1; /* if a large image should appear */ unsigned int needsLayOut:1; /* in case of Append/Deletes */ unsigned int ignoreNewLine:1; /* turn it into a ' ' in streams > 1 */ unsigned int indentNewLine:1; /* add " " for a newline typed */ unsigned int laidOut:1; /* have the TextBlocks all been laid out */ unsigned int waitingForSelection:1; /* I don't wanna wait in vain... */ unsigned int prepend:1; /* prepend=1, append=0 (for parsers) */ WMAlignment alignment:2; /* the alignment for text */ WMReliefType relief:3; /* the relief to display with */ unsigned int isOverGraphic:2; /* the mouse is over a graphic */ unsigned int first:1; /* for plain text parsing, newline? */ /* unsigned int RESERVED:1; */ } flags; WMArray *xdndSourceTypes; WMArray *xdndDestinationTypes; } Text; #define NOTIFY(T,C,N,A) {\ WMNotification *notif = WMCreateNotification(N,T,A);\ if ((T)->delegate && (T)->delegate->C)\ (*(T)->delegate->C)((T)->delegate,notif);\ WMPostNotification(notif);\ WMReleaseNotification(notif);} #define TYPETEXT 0 #if 0 /* just to print blocks of text not terminated by \0 */ static void output(char *ptr, int len) { char *s; s = wmalloc(len + 1); memcpy(s, ptr, len); s[len] = 0; /* printf(" s is [%s] (%d)\n", s, strlen(s)); */ printf("[%s]\n", s); wfree(s); } #endif #if DO_BLINK #define CURSOR_BLINK_ON_DELAY 600 #define CURSOR_BLINK_OFF_DELAY 400 #endif #define STIPPLE_WIDTH 8 #define STIPPLE_HEIGHT 8 static char STIPPLE_BITS[] = { 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa }; static char *default_bullet[] = { "6 6 4 1", " c None s None", ". c black", "X c white", "o c #808080", " ... ", ".XX.. ", ".XX..o", ".....o", " ...oo", " ooo " }; static void handleEvents(XEvent * event, void *data); static void layOutDocument(Text * tPtr); static void updateScrollers(Text * tPtr); static int getMarginNumber(Text * tPtr, WMRulerMargins * margins) { unsigned int i = 0; for (i = 0; i < tPtr->nMargins; i++) { if (WMIsMarginEqualToMargin(&tPtr->margins[i], margins)) return i; } return -1; } static int newMargin(Text * tPtr, WMRulerMargins * margins) { int n; if (!margins) { tPtr->margins[0].retainCount++; return 0; } n = getMarginNumber(tPtr, margins); if (n == -1) { if (tPtr->nMargins >= 127) { n = tPtr->nMargins - 1; return n; } tPtr->margins = wrealloc(tPtr->margins, (++tPtr->nMargins) * sizeof(WMRulerMargins)); n = tPtr->nMargins - 1; tPtr->margins[n].left = margins->left; tPtr->margins[n].first = margins->first; tPtr->margins[n].body = margins->body; tPtr->margins[n].right = margins->right; /* for each tab... */ tPtr->margins[n].retainCount = 1; } else { tPtr->margins[n].retainCount++; } return n; } static Bool sectionWasSelected(Text * tPtr, TextBlock * tb, XRectangle * rect, int s) { unsigned short i, w, lw, selected = False, extend = False; myRect sel; /* if selection rectangle completely encloses the section */ if ((tb->sections[s]._y >= tPtr->visible.y + tPtr->sel.y) && (tb->sections[s]._y + tb->sections[s].h <= tPtr->visible.y + tPtr->sel.y + tPtr->sel.h)) { sel.x = 0; sel.w = tPtr->visible.w; selected = extend = True; /* or if it starts on a line and then goes further down */ } else if ((tb->sections[s]._y <= tPtr->visible.y + tPtr->sel.y) && (tb->sections[s]._y + tb->sections[s].h <= tPtr->visible.y + tPtr->sel.y + tPtr->sel.h) && (tb->sections[s]._y + tb->sections[s].h >= tPtr->visible.y + tPtr->sel.y)) { sel.x = WMAX(tPtr->sel.x, tPtr->clicked.x); sel.w = tPtr->visible.w; selected = extend = True; /* or if it begins before a line, but ends on it */ } else if ((tb->sections[s]._y >= tPtr->visible.y + tPtr->sel.y) && (tb->sections[s]._y + tb->sections[s].h >= tPtr->visible.y + tPtr->sel.y + tPtr->sel.h) && (tb->sections[s]._y <= tPtr->visible.y + tPtr->sel.y + tPtr->sel.h)) { if (1 || tPtr->sel.x + tPtr->sel.w > tPtr->clicked.x) sel.w = tPtr->sel.x + tPtr->sel.w; else sel.w = tPtr->sel.x; sel.x = 0; selected = True; /* or if the selection rectangle lies entirely within a line */ } else if ((tb->sections[s]._y <= tPtr->visible.y + tPtr->sel.y) && (tPtr->sel.w >= 2) && (tb->sections[s]._y + tb->sections[s].h >= tPtr->visible.y + tPtr->sel.y + tPtr->sel.h)) { sel.x = tPtr->sel.x; sel.w = tPtr->sel.w; selected = True; } if (selected) { selected = False; /* if not within (modified) selection rectangle */ if (tb->sections[s].x > sel.x + sel.w || tb->sections[s].x + tb->sections[s].w < sel.x) return False; if (tb->graphic) { if (tb->sections[s].x + tb->sections[s].w <= sel.x + sel.w && tb->sections[s].x >= sel.x) { rect->width = tb->sections[s].w; rect->x = tb->sections[s].x; selected = True; } } else { i = tb->sections[s].begin; lw = 0; if (0 && tb->sections[s].x >= sel.x) { tb->s_begin = tb->sections[s].begin; goto _selEnd; } while (++i <= tb->sections[s].end) { w = WMWidthOfString(tb->d.font, &(tb->text[i - 1]), 1); lw += w; if (lw + tb->sections[s].x >= sel.x || i == tb->sections[s].end) { lw -= w; i--; tb->s_begin = (tb->selected ? WMIN(tb->s_begin, i) : i); break; } } if (i > tb->sections[s].end) { printf("WasSelected: (i > tb->sections[s].end) \n"); return False; } _selEnd: rect->x = tb->sections[s].x + lw; lw = 0; while (++i <= tb->sections[s].end) { w = WMWidthOfString(tb->d.font, &(tb->text[i - 1]), 1); lw += w; if (lw + rect->x >= sel.x + sel.w || i == tb->sections[s].end) { if (i != tb->sections[s].end) { lw -= w; i--; } rect->width = lw; if (tb->sections[s].last && sel.x + sel.w >= tb->sections[s].x + tb->sections[s].w && extend) { rect->width += (tPtr->visible.w - rect->x - lw); } tb->s_end = (tb->selected ? WMAX(tb->s_end, i) : i); selected = True; break; } } } } if (selected) { rect->y = tb->sections[s]._y - tPtr->vpos; rect->height = tb->sections[s].h; if (tb->graphic) { printf("DEBUG: graphic s%d h%d\n", s, tb->sections[s].h); } } return selected; } static void setSelectionProperty(WMText * tPtr, WMFont * font, WMColor * color, int underlined) { TextBlock *tb; int isFont = False; tb = tPtr->firstTextBlock; if (!tb || !tPtr->flags.ownsSelection) return; if (font && (!color || underlined == -1)) isFont = True; while (tb) { if (tPtr->flags.monoFont || tb->selected) { if (tPtr->flags.monoFont || (tb->s_end - tb->s_begin == tb->used) || tb->graphic) { if (isFont) { if (!tb->graphic) { WMReleaseFont(tb->d.font); tb->d.font = WMRetainFont(font); } } else if (underlined != -1) { tb->underlined = underlined; } else { WMReleaseColor(tb->color); tb->color = WMRetainColor(color); } } else if (tb->s_end <= tb->used && tb->s_begin < tb->s_end) { TextBlock *midtb, *otb = tb; if (underlined != -1) { midtb = (TextBlock *) WMCreateTextBlockWithText(tPtr, &(tb->text[tb->s_begin]), tb->d.font, tb->color, False, (tb->s_end - tb->s_begin)); } else { midtb = (TextBlock *) WMCreateTextBlockWithText(tPtr, &(tb->text[tb->s_begin]), (isFont ? font : tb->d. font), (isFont ? tb-> color : color), False, (tb->s_end - tb->s_begin)); } if (midtb) { if (underlined != -1) { midtb->underlined = underlined; } else { midtb->underlined = otb->underlined; } midtb->selected = !True; midtb->s_begin = 0; midtb->s_end = midtb->used; tPtr->currentTextBlock = tb; WMAppendTextBlock(tPtr, midtb); tb = tPtr->currentTextBlock; } if (otb->used - otb->s_end > 0) { TextBlock *ntb; ntb = (TextBlock *) WMCreateTextBlockWithText(tPtr, &(otb->text[otb->s_end]), otb->d.font, otb->color, False, otb->used - otb->s_end); if (ntb) { ntb->underlined = otb->underlined; ntb->selected = False; WMAppendTextBlock(tPtr, ntb); tb = tPtr->currentTextBlock; } } if (midtb) { tPtr->currentTextBlock = midtb; } otb->selected = False; otb->used = otb->s_begin; } } tb = tb->next; } tPtr->flags.needsLayOut = True; WMThawText(tPtr); /* in case the size changed... */ if (isFont && tPtr->currentTextBlock) { TextBlock *tb = tPtr->currentTextBlock; printf("%d %d %d\n", tPtr->sel.y, tPtr->sel.h, tPtr->sel.w); tPtr->sel.y = 3 + tb->sections[0]._y; tPtr->sel.h = tb->sections[tb->nsections - 1]._y - tb->sections[0]._y; tPtr->sel.w = tb->sections[tb->nsections - 1].w; if (tb->sections[tb->nsections - 1]._y != tb->sections[0]._y) { tPtr->sel.x = 0; } printf("%d %d %d\n\n\n", tPtr->sel.y, tPtr->sel.h, tPtr->sel.w); } } static Bool removeSelection(Text * tPtr) { TextBlock *tb = NULL; Bool first = False; if (!(tb = tPtr->firstTextBlock)) return False; while (tb) { if (tb->selected) { if (!first && !tb->graphic) { WMReleaseFont(tPtr->dFont); tPtr->dFont = WMRetainFont(tb->d.font); first = True; } if ((tb->s_end - tb->s_begin == tb->used) || tb->graphic) { tPtr->currentTextBlock = tb; if (tb->next) { tPtr->tpos = 0; } else if (tb->prior) { if (tb->prior->graphic) tPtr->tpos = 1; else tPtr->tpos = tb->prior->used; } else tPtr->tpos = 0; WMDestroyTextBlock(tPtr, WMRemoveTextBlock(tPtr)); tb = tPtr->currentTextBlock; continue; } else if (tb->s_end <= tb->used) { memmove(&(tb->text[tb->s_begin]), &(tb->text[tb->s_end]), tb->used - tb->s_end); tb->used -= (tb->s_end - tb->s_begin); tb->selected = False; tPtr->tpos = tb->s_begin; } } tb = tb->next; } return True; } static TextBlock *getFirstNonGraphicBlockFor(TextBlock * tb, short dir) { TextBlock *hold = tb; if (!tb) return NULL; while (tb) { if (!tb->graphic) break; tb = (dir ? tb->next : tb->prior); } if (!tb) { tb = hold; while (tb) { if (!tb->graphic) break; tb = (dir ? tb->prior : tb->next); } } if (!tb) return NULL; return tb; } static Bool updateStartForCurrentTextBlock(Text * tPtr, int x, int y, int *dir, TextBlock * tb) { if (tPtr->flags.monoFont && tb->graphic) { tb = getFirstNonGraphicBlockFor(tb, *dir); if (!tb) return 0; if (tb->graphic) { tPtr->currentTextBlock = (dir ? tPtr->lastTextBlock : tPtr->firstTextBlock); tPtr->tpos = 0; return 0; } } if (!tb->sections) { layOutDocument(tPtr); return 0; } *dir = !(y <= tb->sections[0].y); if (*dir) { if ((y <= tb->sections[0]._y + tb->sections[0].h) && (y >= tb->sections[0]._y)) { /* if it's on the same line */ if (x < tb->sections[0].x) *dir = 0; } } else { if ((y <= tb->sections[tb->nsections - 1]._y + tb->sections[tb->nsections - 1].h) && (y >= tb->sections[tb->nsections - 1]._y)) { /* if it's on the same line */ if (x > tb->sections[tb->nsections - 1].x) *dir = 1; } } return 1; } static void paintText(Text * tPtr) { TextBlock *tb; WMFont *font; const char *text; int len, y, c, s, done = False, dir /* 1 = down */ ; WMScreen *scr = tPtr->view->screen; Display *dpy = tPtr->view->screen->display; Window win = tPtr->view->window; WMColor *color; if (!tPtr->view->flags.realized || !tPtr->db || tPtr->flags.frozen) return; XFillRectangle(dpy, tPtr->db, WMColorGC(tPtr->bgColor), 0, 0, tPtr->visible.w, tPtr->visible.h); if (tPtr->bgPixmap) { WMDrawPixmap(tPtr->bgPixmap, tPtr->db, (tPtr->visible.w - tPtr->visible.x - tPtr->bgPixmap->width) / 2, (tPtr->visible.h - tPtr->visible.y - tPtr->bgPixmap->height) / 2); } if (!(tb = tPtr->currentTextBlock)) { if (!(tb = tPtr->firstTextBlock)) { goto _copy_area; } } done = False; /* first, which direction? Don't waste time looking all over, since the parts to be drawn will most likely be near what was previously drawn */ if (!updateStartForCurrentTextBlock(tPtr, 0, tPtr->vpos, &dir, tb)) goto _copy_area; while (tb) { if (tb->graphic && tPtr->flags.monoFont) goto _getSibling; if (dir) { if (tPtr->vpos <= tb->sections[tb->nsections - 1]._y + tb->sections[tb->nsections - 1].h) break; } else { if (tPtr->vpos >= tb->sections[tb->nsections - 1]._y + tb->sections[tb->nsections - 1].h) break; } _getSibling: if (dir) { if (tb->next) tb = tb->next; else break; } else { if (tb->prior) tb = tb->prior; else break; } } /* first, place all text that can be viewed */ while (!done && tb) { if (tb->graphic) { tb = tb->next; continue; } tb->selected = False; for (s = 0; s < tb->nsections && !done; s++) { if (tb->sections[s]._y > tPtr->vpos + tPtr->visible.h) { done = True; break; } if (tb->sections[s].y + tb->sections[s].h < tPtr->vpos) continue; if (tPtr->flags.monoFont) { font = tPtr->dFont; color = tPtr->fgColor; } else { font = tb->d.font; color = tb->color; } if (tPtr->flags.ownsSelection) { XRectangle rect; if (sectionWasSelected(tPtr, tb, &rect, s)) { tb->selected = True; XFillRectangle(dpy, tPtr->db, WMColorGC(scr->gray), rect.x, rect.y, rect.width, rect.height); } } len = tb->sections[s].end - tb->sections[s].begin; text = &(tb->text[tb->sections[s].begin]); y = tb->sections[s].y - tPtr->vpos; WMDrawString(scr, tPtr->db, color, font, tb->sections[s].x - tPtr->hpos, y, text, len); if (!tPtr->flags.monoFont && tb->underlined) { XDrawLine(dpy, tPtr->db, WMColorGC(color), tb->sections[s].x - tPtr->hpos, y + font->y + 1, tb->sections[s].x + tb->sections[s].w - tPtr->hpos, y + font->y + 1); } } tb = (!done ? tb->next : NULL); } /* now , show all graphic items that can be viewed */ c = WMGetArrayItemCount(tPtr->gfxItems); if (c > 0 && !tPtr->flags.monoFont) { int j, h; for (j = 0; j < c; j++) { tb = (TextBlock *) WMGetFromArray(tPtr->gfxItems, j); /* if it's not viewable, and mapped, unmap it */ if (tb->sections[0]._y + tb->sections[0].h <= tPtr->vpos || tb->sections[0]._y >= tPtr->vpos + tPtr->visible.h) { if (tb->object) { if ((W_VIEW(tb->d.widget))->flags.mapped) { WMUnmapWidget(tb->d.widget); } } } else { /* if it's viewable, and not mapped, map it */ if (tb->object) { W_View *view = W_VIEW(tb->d.widget); if (!view->flags.realized) WMRealizeWidget(tb->d.widget); if (!view->flags.mapped) { XMapWindow(view->screen->display, view->window); XFlush(view->screen->display); view->flags.mapped = 1; } } if (tb->object) { WMMoveWidget(tb->d.widget, tb->sections[0].x + tPtr->visible.x - tPtr->hpos, tb->sections[0].y + tPtr->visible.y - tPtr->vpos); h = WMWidgetHeight(tb->d.widget) + 1; } else { WMDrawPixmap(tb->d.pixmap, tPtr->db, tb->sections[0].x - tPtr->hpos, tb->sections[0].y - tPtr->vpos); h = tb->d.pixmap->height + 1; } if (tPtr->flags.ownsSelection) { XRectangle rect; if (sectionWasSelected(tPtr, tb, &rect, 0)) { Drawable d = (0 && tb->object ? (WMWidgetView(tb->d.widget))->window : tPtr->db); tb->selected = True; XFillRectangle(dpy, d, tPtr->stippledGC, /*XFillRectangle(dpy, tPtr->db, tPtr->stippledGC, */ rect.x, rect.y, rect.width, rect.height); } } if (!tPtr->flags.monoFont && tb->underlined) { XDrawLine(dpy, tPtr->db, WMColorGC(tb->color), tb->sections[0].x - tPtr->hpos, tb->sections[0].y + h - tPtr->vpos, tb->sections[0].x + tb->sections[0].w - tPtr->hpos, tb->sections[0].y + h - tPtr->vpos); } } } } _copy_area: if (tPtr->flags.editable && tPtr->flags.cursorShown && tPtr->cursor.x != -23 && tPtr->flags.focused) { int y = tPtr->cursor.y - tPtr->vpos; XDrawLine(dpy, tPtr->db, WMColorGC(tPtr->fgColor), tPtr->cursor.x, y, tPtr->cursor.x, y + tPtr->cursor.h); } XCopyArea(dpy, tPtr->db, win, WMColorGC(tPtr->bgColor), 0, 0, tPtr->visible.w, tPtr->visible.h, tPtr->visible.x, tPtr->visible.y); W_DrawRelief(scr, win, 0, 0, tPtr->view->size.width, tPtr->view->size.height, tPtr->flags.relief); if (tPtr->ruler && tPtr->flags.rulerShown) XDrawLine(dpy, win, WMColorGC(tPtr->fgColor), 2, 42, tPtr->view->size.width - 4, 42); } static void mouseOverObject(Text * tPtr, int x, int y) { TextBlock *tb; Bool result = False; x -= tPtr->visible.x; x += tPtr->hpos; y -= tPtr->visible.y; y += tPtr->vpos; if (tPtr->flags.ownsSelection) { if (tPtr->sel.x <= x && tPtr->sel.y <= y && tPtr->sel.x + tPtr->sel.w >= x && tPtr->sel.y + tPtr->sel.h >= y) { tPtr->flags.isOverGraphic = 1; result = True; } } if (!result) { int j, c = WMGetArrayItemCount(tPtr->gfxItems); if (c < 1) tPtr->flags.isOverGraphic = 0; for (j = 0; j < c; j++) { tb = (TextBlock *) WMGetFromArray(tPtr->gfxItems, j); if (!tb || !tb->sections) { tPtr->flags.isOverGraphic = 0; return; } if (!tb->object) { if (tb->sections[0].x <= x && tb->sections[0].y <= y && tb->sections[0].x + tb->sections[0].w >= x && tb->sections[0].y + tb->d.pixmap->height >= y) { tPtr->flags.isOverGraphic = 3; result = True; break; } } } } if (!result) tPtr->flags.isOverGraphic = 0; tPtr->view->attribs.cursor = (result ? tPtr->view->screen->defaultCursor : tPtr->view->screen->textCursor); { XSetWindowAttributes attribs; attribs.cursor = tPtr->view->attribs.cursor; XChangeWindowAttributes(tPtr->view->screen->display, tPtr->view->window, CWCursor, &attribs); } } #if DO_BLINK static void blinkCursor(void *data) { Text *tPtr = (Text *) data; if (tPtr->flags.cursorShown) { tPtr->timerID = WMAddTimerHandler(CURSOR_BLINK_OFF_DELAY, blinkCursor, data); } else { tPtr->timerID = WMAddTimerHandler(CURSOR_BLINK_ON_DELAY, blinkCursor, data); } paintText(tPtr); tPtr->flags.cursorShown = !tPtr->flags.cursorShown; } #endif static void updateCursorPosition(Text * tPtr) { TextBlock *tb = NULL; int x, y, h, s; if (tPtr->flags.needsLayOut) layOutDocument(tPtr); if (!(tb = tPtr->currentTextBlock)) { if (!(tb = tPtr->firstTextBlock)) { WMFont *font = tPtr->dFont; tPtr->tpos = 0; tPtr->cursor.h = font->height + abs(font->height - font->y); tPtr->cursor.y = 2; tPtr->cursor.x = 2; return; } } if (tb->blank) { tPtr->tpos = 0; y = tb->sections[0].y; h = tb->sections[0].h; x = tb->sections[0].x; } else if (tb->graphic) { y = tb->sections[0].y; h = tb->sections[0].h; x = tb->sections[0].x; if (tPtr->tpos == 1) x += tb->sections[0].w; } else { if (tPtr->tpos > tb->used) tPtr->tpos = tb->used; for (s = 0; s < tb->nsections - 1; s++) { if (tPtr->tpos >= tb->sections[s].begin && tPtr->tpos <= tb->sections[s].end) break; } y = tb->sections[s]._y; h = tb->sections[s].h; x = tb->sections[s].x + WMWidthOfString((tPtr->flags.monoFont ? tPtr->dFont : tb->d.font), &tb->text[tb->sections[s].begin], tPtr->tpos - tb->sections[s].begin); } tPtr->cursor.y = y; tPtr->cursor.h = h; tPtr->cursor.x = x; /* scroll the bars if the cursor is not visible */ if (tPtr->flags.editable && tPtr->cursor.x != -23) { if (tPtr->cursor.y + tPtr->cursor.h > tPtr->vpos + tPtr->visible.y + tPtr->visible.h) { tPtr->vpos += (tPtr->cursor.y + tPtr->cursor.h + 10 - (tPtr->vpos + tPtr->visible.y + tPtr->visible.h)); } else if (tPtr->cursor.y < tPtr->vpos + tPtr->visible.y) { tPtr->vpos -= (tPtr->vpos + tPtr->visible.y - tPtr->cursor.y); } } updateScrollers(tPtr); } static void cursorToTextPosition(Text * tPtr, int x, int y) { TextBlock *tb = NULL; int done = False, s, pos, len, _w, _y, dir = 1; /* 1 == "down" */ const char *text; if (tPtr->flags.needsLayOut) layOutDocument(tPtr); y += (tPtr->vpos - tPtr->visible.y); if (y < 0) y = 0; x -= (tPtr->visible.x - 2); if (x < 0) x = 0; /* clicked is relative to document, not window... */ tPtr->clicked.x = x; tPtr->clicked.y = y; if (!(tb = tPtr->currentTextBlock)) { if (!(tb = tPtr->firstTextBlock)) { WMFont *font = tPtr->dFont; tPtr->tpos = 0; tPtr->cursor.h = font->height + abs(font->height - font->y); tPtr->cursor.y = 2; tPtr->cursor.x = 2; return; } } /* first, which direction? Most likely, newly clicked position will be close to previous */ if (!updateStartForCurrentTextBlock(tPtr, x, y, &dir, tb)) return; s = (dir ? 0 : tb->nsections - 1); if (y >= tb->sections[s]._y && y <= tb->sections[s]._y + tb->sections[s].h) { goto _doneV; } /* get the first (or last) section of the TextBlock that lies about the vertical click point */ done = False; while (!done && tb) { if (tPtr->flags.monoFont && tb->graphic) { if ((dir ? tb->next : tb->prior)) tb = (dir ? tb->next : tb->prior); continue; } s = (dir ? 0 : tb->nsections - 1); while (!done && (dir ? (s < tb->nsections) : (s >= 0))) { if ((dir ? (y <= tb->sections[s]._y + tb->sections[s].h) : (y >= tb->sections[s]._y))) { done = True; } else { dir ? s++ : s--; } } if (!done) { if ((dir ? tb->next : tb->prior)) { tb = (dir ? tb->next : tb->prior); } else { pos = tb->used; break; /* goto _doneH; */ } } } if (s < 0 || s >= tb->nsections) { s = (dir ? tb->nsections - 1 : 0); } _doneV: /* we have the line, which TextBlock on that line is it? */ pos = (dir ? 0 : tb->sections[s].begin); if (tPtr->flags.monoFont && tb->graphic) { TextBlock *hold = tb; tb = getFirstNonGraphicBlockFor(hold, dir); if (!tb) { tPtr->tpos = 0; tb = hold; s = 0; goto _doNothing; } } if (tb->blank) _w = 0; _y = tb->sections[s]._y; while (tb) { if (tPtr->flags.monoFont && tb->graphic) { tb = (dir ? tb->next : tb->prior); continue; } if (dir) { if (tb->graphic) { if (tb->object) _w = WMWidgetWidth(tb->d.widget) - 5; else _w = tb->d.pixmap->width - 5; if (tb->sections[0].x + _w >= x) break; } else { text = &(tb->text[tb->sections[s].begin]); len = tb->sections[s].end - tb->sections[s].begin; _w = WMWidthOfString(tb->d.font, text, len); if (tb->sections[s].x + _w >= x) break; } } else { if (tb->sections[s].x <= x) break; } if ((dir ? tb->next : tb->prior)) { TextBlock *nxt = (dir ? tb->next : tb->prior); if (tPtr->flags.monoFont && nxt->graphic) { nxt = getFirstNonGraphicBlockFor(nxt, dir); if (!nxt) { pos = (dir ? 0 : tb->sections[s].begin); tPtr->cursor.x = tb->sections[s].x; goto _doneH; } } if (_y != nxt->sections[dir ? 0 : nxt->nsections - 1]._y) { /* this must be the last/first on this line. stop */ pos = (dir ? tb->sections[s].end : 0); tPtr->cursor.x = tb->sections[s].x; if (!tb->blank) { if (tb->graphic) { if (tb->object) tPtr->cursor.x += WMWidgetWidth(tb->d.widget); else tPtr->cursor.x += tb->d.pixmap->width; } else if (pos > tb->sections[s].begin) { tPtr->cursor.x += WMWidthOfString(tb->d.font, &(tb->text[tb->sections[s].begin]), pos - tb->sections[s].begin); } } goto _doneH; } } if ((dir ? tb->next : tb->prior)) { tb = (dir ? tb->next : tb->prior); } else { done = True; break; } if (tb) s = (dir ? 0 : tb->nsections - 1); } /* we have said TextBlock, now where within it? */ if (tb) { if (tb->graphic) { int gw = (tb->object ? WMWidgetWidth(tb->d.widget) : tb->d.pixmap->width); tPtr->cursor.x = tb->sections[0].x; if (x > tPtr->cursor.x + gw / 2) { pos = 1; tPtr->cursor.x += gw; } else { printf("first %d\n", tb->first); if (tb->prior) { if (tb->prior->graphic) pos = 1; else pos = tb->prior->used; tb = tb->prior; } else pos = 0; } s = 0; goto _doneH; } else { WMFont *f = tb->d.font; len = tb->sections[s].end - tb->sections[s].begin; text = &(tb->text[tb->sections[s].begin]); _w = x - tb->sections[s].x; pos = 0; while (pos < len && WMWidthOfString(f, text, pos + 1) < _w) pos++; tPtr->cursor.x = tb->sections[s].x + (pos ? WMWidthOfString(f, text, pos) : 0); pos += tb->sections[s].begin; } } _doneH: if (tb->graphic) { tPtr->tpos = (pos <= 1) ? pos : 0; } else { tPtr->tpos = (pos < tb->used) ? pos : tb->used; } _doNothing: if (!tb) printf("...for this app will surely crash :-)\n"); tPtr->currentTextBlock = tb; tPtr->cursor.h = tb->sections[s].h; tPtr->cursor.y = tb->sections[s]._y; /* scroll the bars if the cursor is not visible */ if (tPtr->flags.editable && tPtr->cursor.x != -23) { if (tPtr->cursor.y + tPtr->cursor.h > tPtr->vpos + tPtr->visible.y + tPtr->visible.h) { tPtr->vpos += (tPtr->cursor.y + tPtr->cursor.h + 10 - (tPtr->vpos + tPtr->visible.y + tPtr->visible.h)); updateScrollers(tPtr); } else if (tPtr->cursor.y < tPtr->vpos + tPtr->visible.y) { tPtr->vpos -= (tPtr->vpos + tPtr->visible.y - tPtr->cursor.y); updateScrollers(tPtr); } } } static void updateScrollers(Text * tPtr) { if (tPtr->flags.frozen) return; if (tPtr->vS) { if (tPtr->docHeight <= tPtr->visible.h) { WMSetScrollerParameters(tPtr->vS, 0, 1); tPtr->vpos = 0; } else { float hmax = (float)(tPtr->docHeight); WMSetScrollerParameters(tPtr->vS, ((float)tPtr->vpos) / (hmax - (float)tPtr->visible.h), (float)tPtr->visible.h / hmax); } } else tPtr->vpos = 0; if (tPtr->hS) { if (tPtr->docWidth <= tPtr->visible.w) { WMSetScrollerParameters(tPtr->hS, 0, 1); tPtr->hpos = 0; } else { float wmax = (float)(tPtr->docWidth); WMSetScrollerParameters(tPtr->hS, ((float)tPtr->hpos) / (wmax - (float)tPtr->visible.w), (float)tPtr->visible.w / wmax); } } else tPtr->hpos = 0; } static void scrollersCallBack(WMWidget * w, void *self) { Text *tPtr = (Text *) self; Bool scroll = False; int which; if (!tPtr->view->flags.realized || tPtr->flags.frozen) return; if (w == tPtr->vS) { int height; height = tPtr->visible.h; which = WMGetScrollerHitPart(tPtr->vS); switch (which) { case WSDecrementLine: if (tPtr->vpos > 0) { if (tPtr->vpos > 16) tPtr->vpos -= 16; else tPtr->vpos = 0; scroll = True; } break; case WSIncrementLine:{ int limit = tPtr->docHeight - height; if (tPtr->vpos < limit) { if (tPtr->vpos < limit - 16) tPtr->vpos += 16; else tPtr->vpos = limit; scroll = True; } } break; case WSDecrementPage: if (((int)tPtr->vpos - (int)height) >= 0) tPtr->vpos -= height; else tPtr->vpos = 0; scroll = True; break; case WSIncrementPage: tPtr->vpos += height; if (tPtr->vpos > (tPtr->docHeight - height)) tPtr->vpos = tPtr->docHeight - height; scroll = True; break; case WSKnob: tPtr->vpos = WMGetScrollerValue(tPtr->vS) * (float)(tPtr->docHeight - height); scroll = True; break; case WSKnobSlot: case WSNoPart: break; } scroll = (tPtr->vpos != tPtr->prevVpos); tPtr->prevVpos = tPtr->vpos; } if (w == tPtr->hS) { int width = tPtr->visible.w; which = WMGetScrollerHitPart(tPtr->hS); switch (which) { case WSDecrementLine: if (tPtr->hpos > 0) { if (tPtr->hpos > 16) tPtr->hpos -= 16; else tPtr->hpos = 0; scroll = True; } break; case WSIncrementLine:{ int limit = tPtr->docWidth - width; if (tPtr->hpos < limit) { if (tPtr->hpos < limit - 16) tPtr->hpos += 16; else tPtr->hpos = limit; scroll = True; } } break; case WSDecrementPage: if (((int)tPtr->hpos - (int)width) >= 0) tPtr->hpos -= width; else tPtr->hpos = 0; scroll = True; break; case WSIncrementPage: tPtr->hpos += width; if (tPtr->hpos > (tPtr->docWidth - width)) tPtr->hpos = tPtr->docWidth - width; scroll = True; break; case WSKnob: tPtr->hpos = WMGetScrollerValue(tPtr->hS) * (float)(tPtr->docWidth - width); scroll = True; break; case WSKnobSlot: case WSNoPart: break; } scroll = (tPtr->hpos != tPtr->prevHpos); tPtr->prevHpos = tPtr->hpos; } if (scroll) { updateScrollers(tPtr); paintText(tPtr); } } typedef struct { TextBlock *tb; unsigned short begin, end; /* what part of the text block */ } myLineItems; static int layOutLine(Text * tPtr, myLineItems * items, int nitems, int x, int y) { int i, j = 0, lw = 0, line_height = 0, max_d = 0, len, n; WMFont *font; const char *text; TextBlock *tb, *tbsame = NULL; if (!items || nitems == 0) return 0; for (i = 0; i < nitems; i++) { tb = items[i].tb; if (tb->graphic) { if (!tPtr->flags.monoFont) { if (tb->object) { WMWidget *wdt = tb->d.widget; line_height = WMAX(line_height, WMWidgetHeight(wdt)); if (tPtr->flags.alignment != WALeft) lw += WMWidgetWidth(wdt); } else { line_height = WMAX(line_height, tb->d.pixmap->height + max_d); if (tPtr->flags.alignment != WALeft) lw += tb->d.pixmap->width; } } } else { font = (tPtr->flags.monoFont) ? tPtr->dFont : tb->d.font; /*max_d = WMAX(max_d, abs(font->height-font->y)); */ max_d = 2; line_height = WMAX(line_height, font->height + max_d); text = &(tb->text[items[i].begin]); len = items[i].end - items[i].begin; if (tPtr->flags.alignment != WALeft) lw += WMWidthOfString(font, text, len); } } if (tPtr->flags.alignment == WARight) { j = tPtr->visible.w - lw; } else if (tPtr->flags.alignment == WACenter) { j = (int)((float)(tPtr->visible.w - lw)) / 2.0; } for (i = 0; i < nitems; i++) { tb = items[i].tb; if (tbsame == tb) { /* extend it, since it's on same line */ tb->sections[tb->nsections - 1].end = items[i].end; n = tb->nsections - 1; } else { tb->sections = wrealloc(tb->sections, (++tb->nsections) * sizeof(Section)); n = tb->nsections - 1; tb->sections[n]._y = y + max_d; tb->sections[n].max_d = max_d; tb->sections[n].x = x + j; tb->sections[n].h = line_height; tb->sections[n].begin = items[i].begin; tb->sections[n].end = items[i].end; } tb->sections[n].last = (i + 1 == nitems); if (tb->graphic) { if (!tPtr->flags.monoFont) { if (tb->object) { WMWidget *wdt = tb->d.widget; tb->sections[n].y = max_d + y + line_height - WMWidgetHeight(wdt); tb->sections[n].w = WMWidgetWidth(wdt); } else { tb->sections[n].y = y + line_height + max_d - tb->d.pixmap->height; tb->sections[n].w = tb->d.pixmap->width; } x += tb->sections[n].w; } } else { font = (tPtr->flags.monoFont) ? tPtr->dFont : tb->d.font; len = items[i].end - items[i].begin; text = &(tb->text[items[i].begin]); tb->sections[n].y = y + line_height - font->y; tb->sections[n].w = WMWidthOfString(font, &(tb->text[tb->sections[n].begin]), tb->sections[n].end - tb->sections[n].begin); x += WMWidthOfString(font, text, len); } tbsame = tb; } return line_height; } static void layOutDocument(Text * tPtr) { TextBlock *tb; myLineItems *items = NULL; unsigned int itemsSize = 0, nitems = 0, begin, end; WMFont *font; unsigned int x, y = 0, lw = 0, width = 0, bmargin; const char *start = NULL, *mark = NULL; if (tPtr->flags.frozen || (!(tb = tPtr->firstTextBlock))) return; assert(tPtr->visible.w > 20); tPtr->docWidth = tPtr->visible.w; x = tPtr->margins[tb->marginN].first; bmargin = tPtr->margins[tb->marginN].body; /* only partial layOut needed: re-Lay only affected textblocks */ if (tPtr->flags.laidOut) { tb = tPtr->currentTextBlock; /* search backwards for textblocks on same line */ while (tb->prior) { if (!tb->sections || tb->nsections < 1) { tb = tPtr->firstTextBlock; tPtr->flags.laidOut = False; y = 0; goto _layOut; } if (!tb->prior->sections || tb->prior->nsections < 1) { tb = tPtr->firstTextBlock; tPtr->flags.laidOut = False; y = 0; goto _layOut; } if (tb->sections[0]._y != tb->prior->sections[tb->prior->nsections - 1]._y) { break; } tb = tb->prior; } if (tb->prior && tb->prior->sections && tb->prior->nsections > 0) { y = tb->prior->sections[tb->prior->nsections - 1]._y + tb->prior->sections[tb->prior->nsections - 1].h - tb->prior->sections[tb->prior->nsections - 1].max_d; } else { y = 0; } } _layOut: while (tb) { if (tb->sections && tb->nsections > 0) { wfree(tb->sections); tb->sections = NULL; tb->nsections = 0; } if (tb->first && tb->blank && tb->next && !tb->next->first) { TextBlock *next = tb->next; tPtr->currentTextBlock = tb; WMDestroyTextBlock(tPtr, WMRemoveTextBlock(tPtr)); tb = next; tb->first = True; continue; } if (tb->first && tb != tPtr->firstTextBlock) { y += layOutLine(tPtr, items, nitems, x, y); x = tPtr->margins[tb->marginN].first; bmargin = tPtr->margins[tb->marginN].body; nitems = 0; lw = 0; } if (tb->graphic) { if (!tPtr->flags.monoFont) { if (tb->object) width = WMWidgetWidth(tb->d.widget); else width = tb->d.pixmap->width; if (width > tPtr->docWidth) tPtr->docWidth = width; lw += width; if (lw >= tPtr->visible.w - x) { y += layOutLine(tPtr, items, nitems, x, y); nitems = 0; x = bmargin; lw = width; } if (nitems + 1 > itemsSize) { items = wrealloc(items, (++itemsSize) * sizeof(myLineItems)); } items[nitems].tb = tb; items[nitems].begin = 0; items[nitems].end = 0; nitems++; } } else if ((start = tb->text)) { begin = end = 0; font = tPtr->flags.monoFont ? tPtr->dFont : tb->d.font; while (start) { mark = strchr(start, ' '); if (mark) { end += (int)(mark - start) + 1; start = mark + 1; } else { end += strlen(start); start = mark; } if (end > tb->used) end = tb->used; if (end - begin > 0) { width = WMWidthOfString(font, &tb->text[begin], end - begin); /* if it won't fit, char wrap it */ if (width >= tPtr->visible.w) { char *t = &tb->text[begin]; int l = end - begin, i = 0; do { width = WMWidthOfString(font, t, ++i); } while (width < tPtr->visible.w && i < l); if (i > 2) i--; end = begin + i; start = &tb->text[end]; } lw += width; } if (lw >= tPtr->visible.w - x) { y += layOutLine(tPtr, items, nitems, x, y); lw = width; x = bmargin; nitems = 0; } if (nitems + 1 > itemsSize) { items = wrealloc(items, (++itemsSize) * sizeof(myLineItems)); } items[nitems].tb = tb; items[nitems].begin = begin; items[nitems].end = end; nitems++; begin = end; } } /* not yet fully ready. but is already VERY FAST for a 3Mbyte file ;-) */ if (0 && tPtr->flags.laidOut && tb->next && tb->next->sections && tb->next->nsections > 0 && (tPtr->vpos + tPtr->visible.h < tb->next->sections[0]._y)) { if (tPtr->lastTextBlock->sections && tPtr->lastTextBlock->nsections > 0) { TextBlock *ltb = tPtr->lastTextBlock; int ly = ltb->sections[ltb->nsections - 1]._y; int lh = ltb->sections[ltb->nsections - 1].h; int ss, sd; lh += 1 + tPtr->visible.y + ltb->sections[ltb->nsections - 1].max_d; printf("it's %d\n", tPtr->visible.y + ltb->sections[ltb->nsections - 1].max_d); y += layOutLine(tPtr, items, nitems, x, y); ss = ly + lh - y; sd = tPtr->docHeight - y; printf("dif %d-%d: %d\n", ss, sd, ss - sd); y += tb->next->sections[0]._y - y; nitems = 0; printf("nitems%d\n", nitems); if (ss - sd != 0) y = tPtr->docHeight + ss - sd; break; } else { tPtr->flags.laidOut = False; } } tb = tb->next; } if (nitems > 0) y += layOutLine(tPtr, items, nitems, x, y); if (tPtr->docHeight != y + 10) { tPtr->docHeight = y + 10; updateScrollers(tPtr); } if (tPtr->docWidth > tPtr->visible.w && !tPtr->hS) { XEvent event; tPtr->flags.horizOnDemand = True; WMSetTextHasHorizontalScroller((WMText *) tPtr, True); event.type = Expose; handleEvents(&event, (void *)tPtr); } else if (tPtr->docWidth <= tPtr->visible.w && tPtr->hS && tPtr->flags.horizOnDemand) { tPtr->flags.horizOnDemand = False; WMSetTextHasHorizontalScroller((WMText *) tPtr, False); } tPtr->flags.laidOut = True; if (items && itemsSize > 0) wfree(items); } static void textDidResize(W_ViewDelegate * self, WMView * view) { Text *tPtr = (Text *) view->self; unsigned short w = tPtr->view->size.width; unsigned short h = tPtr->view->size.height; unsigned short rh = 0, vw = 0, rel; rel = (tPtr->flags.relief == WRFlat); if (tPtr->ruler && tPtr->flags.rulerShown) { WMMoveWidget(tPtr->ruler, 2, 2); WMResizeWidget(tPtr->ruler, w - 4, 40); rh = 40; } if (tPtr->vS) { WMMoveWidget(tPtr->vS, 1 - (rel ? 1 : 0), rh + 1 - (rel ? 1 : 0)); WMResizeWidget(tPtr->vS, 20, h - rh - 2 + (rel ? 2 : 0)); vw = 20; WMSetRulerOffset(tPtr->ruler, 22); } else WMSetRulerOffset(tPtr->ruler, 2); if (tPtr->hS) { if (tPtr->vS) { WMMoveWidget(tPtr->hS, vw, h - 21); WMResizeWidget(tPtr->hS, w - vw - 1, 20); } else { WMMoveWidget(tPtr->hS, vw + 1, h - 21); WMResizeWidget(tPtr->hS, w - vw - 2, 20); } } tPtr->visible.x = (tPtr->vS) ? 24 : 4; tPtr->visible.y = (tPtr->ruler && tPtr->flags.rulerShown) ? 43 : 3; tPtr->visible.w = tPtr->view->size.width - tPtr->visible.x - 8; tPtr->visible.h = tPtr->view->size.height - tPtr->visible.y; tPtr->visible.h -= (tPtr->hS) ? 20 : 0; tPtr->margins[0].right = tPtr->visible.w; if (tPtr->view->flags.realized) { if (tPtr->db) { XFreePixmap(tPtr->view->screen->display, tPtr->db); tPtr->db = (Pixmap) NULL; } if (tPtr->visible.w < 40) tPtr->visible.w = 40; if (tPtr->visible.h < 20) tPtr->visible.h = 20; if (!tPtr->db) { tPtr->db = XCreatePixmap(tPtr->view->screen->display, tPtr->view->window, tPtr->visible.w, tPtr->visible.h, tPtr->view->screen->depth); } } WMThawText(tPtr); } W_ViewDelegate _TextViewDelegate = { NULL, NULL, textDidResize, NULL, NULL }; #define TEXT_BUFFER_INCR 8 #define reqBlockSize(requested) (requested + TEXT_BUFFER_INCR) static void clearText(Text * tPtr) { tPtr->vpos = tPtr->hpos = 0; tPtr->docHeight = tPtr->docWidth = 0; tPtr->cursor.x = -23; if (!tPtr->firstTextBlock) return; while (tPtr->currentTextBlock) WMDestroyTextBlock(tPtr, WMRemoveTextBlock(tPtr)); tPtr->firstTextBlock = NULL; tPtr->currentTextBlock = NULL; tPtr->lastTextBlock = NULL; WMEmptyArray(tPtr->gfxItems); } /* possibly remove a single character from the currentTextBlock, or if there's a selection, remove it... note that Delete and Backspace are treated differently */ static void deleteTextInteractively(Text * tPtr, KeySym ksym) { TextBlock *tb; Bool back = (Bool) (ksym == XK_BackSpace); Bool done = 1, wasFirst = 0; if (!tPtr->flags.editable) return; if (!(tb = tPtr->currentTextBlock)) return; if (tPtr->flags.ownsSelection) { if (removeSelection(tPtr)) layOutDocument(tPtr); return; } wasFirst = tb->first; if (back && tPtr->tpos < 1) { if (tb->prior) { if (tb->prior->blank) { tPtr->currentTextBlock = tb->prior; WMRemoveTextBlock(tPtr); tPtr->currentTextBlock = tb; tb->first = True; layOutDocument(tPtr); return; } else { if (tb->blank) { TextBlock *prior = tb->prior; tPtr->currentTextBlock = tb; WMRemoveTextBlock(tPtr); tb = prior; } else { tb = tb->prior; } if (tb->graphic) tPtr->tpos = 1; else tPtr->tpos = tb->used; tPtr->currentTextBlock = tb; done = 1; if (wasFirst) { if (tb->next) tb->next->first = False; layOutDocument(tPtr); return; } } } } if ((tb->used > 0) && ((back ? tPtr->tpos > 0 : 1)) && (tPtr->tpos <= tb->used) && !tb->graphic) { if (back) tPtr->tpos--; memmove(&(tb->text[tPtr->tpos]), &(tb->text[tPtr->tpos + 1]), tb->used - tPtr->tpos); tb->used--; done = 0; } /* if there are no characters left to back over in the textblock, but it still has characters to the right of the cursor: */ if ((back ? (tPtr->tpos == 0 && !done) : (tPtr->tpos >= tb->used)) || tb->graphic) { /* no more chars, and it's marked as blank? */ if (tb->blank) { TextBlock *sibling = (back ? tb->prior : tb->next); if (tb->used == 0 || tb->graphic) WMDestroyTextBlock(tPtr, WMRemoveTextBlock(tPtr)); if (sibling) { tPtr->currentTextBlock = sibling; if (tb->graphic) tPtr->tpos = (back ? 1 : 0); else tPtr->tpos = (back ? sibling->used : 0); } /* no more chars, so mark it as blank */ } else if (tb->used == 0) { tb->blank = 1; } else if (tb->graphic) { Bool hasNext = (tb->next != NULL); WMDestroyTextBlock(tPtr, WMRemoveTextBlock(tPtr)); if (hasNext) { tPtr->tpos = 0; } else if (tPtr->currentTextBlock) { tPtr->tpos = (tPtr->currentTextBlock->graphic ? 1 : tPtr->currentTextBlock->used); } } else printf("DEBUG: unaccounted for... catch this!\n"); } layOutDocument(tPtr); } static void insertTextInteractively(Text * tPtr, char *text, int len) { TextBlock *tb; char *newline = NULL; if (!tPtr->flags.editable) { return; } if (len < 1 || !text) return; if (tPtr->flags.ignoreNewLine && *text == '\n' && len == 1) return; if (tPtr->flags.ownsSelection) removeSelection(tPtr); if (tPtr->flags.ignoreNewLine) { int i; for (i = 0; i < len; i++) { if (text[i] == '\n') text[i] = ' '; } } tb = tPtr->currentTextBlock; if (!tb || tb->graphic) { tPtr->tpos = 0; WMAppendTextStream(tPtr, text); layOutDocument(tPtr); return; } if ((newline = strchr(text, '\n'))) { int nlen = (int)(newline - text); int s = tb->used - tPtr->tpos; if (!tb->blank && nlen > 0) { char *save = NULL; if (s > 0) { save = wmalloc(s); memcpy(save, &tb->text[tPtr->tpos], s); tb->used -= (tb->used - tPtr->tpos); } insertTextInteractively(tPtr, text, nlen); newline++; WMAppendTextStream(tPtr, newline); if (s > 0) { insertTextInteractively(tPtr, save, s); wfree(save); } } else { if (tPtr->tpos > 0 && tPtr->tpos < tb->used && !tb->graphic && tb->text) { unsigned short savePos = tPtr->tpos; void *ntb = WMCreateTextBlockWithText(tPtr, &tb->text[tPtr->tpos], tb->d.font, tb->color, True, tb->used - tPtr->tpos); if (tb->sections[0].end == tPtr->tpos) WMAppendTextBlock(tPtr, WMCreateTextBlockWithText(tPtr, NULL, tb->d.font, tb->color, True, 0)); tb->used = savePos; WMAppendTextBlock(tPtr, ntb); tPtr->tpos = 0; } else if (tPtr->tpos == tb->used) { if (tPtr->flags.indentNewLine) { WMAppendTextBlock(tPtr, WMCreateTextBlockWithText(tPtr, " ", tb->d.font, tb->color, True, 4)); tPtr->tpos = 4; } else { WMAppendTextBlock(tPtr, WMCreateTextBlockWithText(tPtr, NULL, tb->d.font, tb->color, True, 0)); tPtr->tpos = 0; } } else if (tPtr->tpos == 0) { if (tPtr->flags.indentNewLine) { WMPrependTextBlock(tPtr, WMCreateTextBlockWithText(tPtr, " ", tb->d.font, tb->color, True, 4)); } else { WMPrependTextBlock(tPtr, WMCreateTextBlockWithText(tPtr, NULL, tb->d.font, tb->color, True, 0)); } tPtr->tpos = 0; if (tPtr->currentTextBlock->next) tPtr->currentTextBlock = tPtr->currentTextBlock->next; } } } else { if (tb->used + len >= tb->allocated) { tb->allocated = reqBlockSize(tb->used + len); tb->text = wrealloc(tb->text, tb->allocated); } if (tb->blank) { memcpy(tb->text, text, len); tb->used = len; tPtr->tpos = len; tb->text[tb->used] = 0; tb->blank = False; } else { memmove(&(tb->text[tPtr->tpos + len]), &tb->text[tPtr->tpos], tb->used - tPtr->tpos + 1); memmove(&tb->text[tPtr->tpos], text, len); tb->used += len; tPtr->tpos += len; tb->text[tb->used] = 0; } } layOutDocument(tPtr); } static void selectRegion(Text * tPtr, int x, int y) { if (x < 0 || y < 0) return; y += (tPtr->flags.rulerShown ? 40 : 0); y += tPtr->vpos; if (y > 10) y -= 10; /* the original offset */ x -= tPtr->visible.x - 2; if (x < 0) x = 0; tPtr->sel.x = WMAX(0, WMIN(tPtr->clicked.x, x)); tPtr->sel.w = abs(tPtr->clicked.x - x); tPtr->sel.y = WMAX(0, WMIN(tPtr->clicked.y, y)); tPtr->sel.h = abs(tPtr->clicked.y - y); tPtr->flags.ownsSelection = True; paintText(tPtr); } static void releaseSelection(Text * tPtr) { TextBlock *tb = tPtr->firstTextBlock; while (tb) { tb->selected = False; tb = tb->next; } tPtr->flags.ownsSelection = False; WMDeleteSelectionHandler(tPtr->view, XA_PRIMARY, CurrentTime); paintText(tPtr); } static WMData *requestHandler(WMView * view, Atom selection, Atom target, void *cdata, Atom * type) { Text *tPtr = view->self; Display *dpy = tPtr->view->screen->display; Atom _TARGETS; Atom TEXT = XInternAtom(dpy, "TEXT", False); Atom COMPOUND_TEXT = XInternAtom(dpy, "COMPOUND_TEXT", False); WMData *data = NULL; if (target == XA_STRING || target == TEXT || target == COMPOUND_TEXT) { char *text = WMGetTextSelectedStream(tPtr); if (text) { data = WMCreateDataWithBytes(text, strlen(text)); WMSetDataFormat(data, TYPETEXT); } *type = target; return data; } else printf("didn't get it\n"); _TARGETS = XInternAtom(dpy, "TARGETS", False); if (target == _TARGETS) { Atom *ptr; ptr = wmalloc(4 * sizeof(Atom)); ptr[0] = _TARGETS; ptr[1] = XA_STRING; ptr[2] = TEXT; ptr[3] = COMPOUND_TEXT; data = WMCreateDataWithBytes(ptr, 4 * 4); WMSetDataFormat(data, 32); *type = target; return data; } return NULL; } static void lostHandler(WMView * view, Atom selection, void *cdata) { releaseSelection((WMText *) view->self); } static WMSelectionProcs selectionHandler = { requestHandler, lostHandler, NULL }; static void ownershipObserver(void *observerData, WMNotification * notification) { if (observerData != WMGetNotificationClientData(notification)) lostHandler(WMWidgetView(observerData), XA_PRIMARY, NULL); } static void autoSelectText(Text * tPtr, int clicks) { int x, start; TextBlock *tb; char *mark = NULL, behind, ahead; if (!(tb = tPtr->currentTextBlock)) return; if (clicks == 2) { switch (tb->text[tPtr->tpos]) { case ' ': return; /* case '<': case '>': behind = '<'; ahead = '>'; break; case '{': case '}': behind = '{'; ahead = '}'; break; case '[': case ']': behind = '['; ahead = ']'; break; */ default: behind = ahead = ' '; } tPtr->sel.y = tPtr->cursor.y + 5; tPtr->sel.h = 6; /*tPtr->cursor.h-10; */ if (tb->graphic) { tPtr->sel.x = tb->sections[0].x; tPtr->sel.w = tb->sections[0].w; } else { WMFont *font = tPtr->flags.monoFont ? tPtr->dFont : tb->d.font; start = tPtr->tpos; while (start > 0 && tb->text[start - 1] != behind) start--; x = tPtr->cursor.x; if (tPtr->tpos > start) { x -= WMWidthOfString(font, &tb->text[start], tPtr->tpos - start); } tPtr->sel.x = (x < 0 ? 0 : x) + 1; if ((mark = strchr(&tb->text[start], ahead))) { tPtr->sel.w = WMWidthOfString(font, &tb->text[start], (int)(mark - &tb->text[start])); } else if (tb->used > start) { tPtr->sel.w = WMWidthOfString(font, &tb->text[start], tb->used - start); } } } else if (clicks == 3) { TextBlock *cur = tb; while (tb && !tb->first) { tb = tb->prior; } tPtr->sel.y = tb->sections[0]._y; tb = cur; while (tb->next && !tb->next->first) { tb = tb->next; } tPtr->sel.h = tb->sections[tb->nsections - 1]._y + 5 - tPtr->sel.y; tPtr->sel.x = 0; tPtr->sel.w = tPtr->docWidth; tPtr->clicked.x = 0; /* only for now, fix sel. code */ } if (!tPtr->flags.ownsSelection) { WMCreateSelectionHandler(tPtr->view, XA_PRIMARY, tPtr->lastClickTime, &selectionHandler, NULL); tPtr->flags.ownsSelection = True; } paintText(tPtr); } # if 0 static void fontChanged(void *observerData, WMNotification * notification) { WMText *tPtr = (WMText *) observerData; WMFont *font = (WMFont *) WMGetNotificationClientData(notification); printf("fontChanged\n"); if (!tPtr || !font) return; if (tPtr->flags.ownsSelection) WMSetTextSelectionFont(tPtr, font); } #endif static void handleTextKeyPress(Text * tPtr, XEvent * event) { char buffer[64]; KeySym ksym; int control_pressed = False; TextBlock *tb = NULL; if (((XKeyEvent *) event)->state & ControlMask) control_pressed = True; buffer[XLookupString(&event->xkey, buffer, 63, &ksym, NULL)] = 0; switch (ksym) { case XK_Home: if ((tPtr->currentTextBlock = tPtr->firstTextBlock)) tPtr->tpos = 0; updateCursorPosition(tPtr); paintText(tPtr); break; case XK_End: if ((tPtr->currentTextBlock = tPtr->lastTextBlock)) { if (tPtr->currentTextBlock->graphic) tPtr->tpos = 1; else tPtr->tpos = tPtr->currentTextBlock->used; } updateCursorPosition(tPtr); paintText(tPtr); break; case XK_Left: if (!(tb = tPtr->currentTextBlock)) break; if (tb->graphic) goto L_imaGFX; if (tPtr->tpos == 0) { L_imaGFX: if (tb->prior) { tPtr->currentTextBlock = tb->prior; if (tPtr->currentTextBlock->graphic) tPtr->tpos = 1; else tPtr->tpos = tPtr->currentTextBlock->used; if (!tb->first && tPtr->tpos > 0) tPtr->tpos--; } else tPtr->tpos = 0; } else tPtr->tpos--; updateCursorPosition(tPtr); paintText(tPtr); break; case XK_Right: if (!(tb = tPtr->currentTextBlock)) break; if (tb->graphic) goto R_imaGFX; if (tPtr->tpos == tb->used) { R_imaGFX: if (tb->next) { tPtr->currentTextBlock = tb->next; tPtr->tpos = 0; if (!tb->next->first && tb->next->used > 0) tPtr->tpos++; } else { if (tb->graphic) tPtr->tpos = 1; else tPtr->tpos = tb->used; } } else tPtr->tpos++; updateCursorPosition(tPtr); paintText(tPtr); break; case XK_Down: cursorToTextPosition(tPtr, tPtr->cursor.x + tPtr->visible.x, tPtr->clicked.y + tPtr->cursor.h - tPtr->vpos); paintText(tPtr); break; case XK_Up: cursorToTextPosition(tPtr, tPtr->cursor.x + tPtr->visible.x, tPtr->visible.y + tPtr->cursor.y - tPtr->vpos - 3); paintText(tPtr); break; case XK_BackSpace: case XK_Delete: #ifdef XK_KP_Delete case XK_KP_Delete: #endif deleteTextInteractively(tPtr, ksym); updateCursorPosition(tPtr); paintText(tPtr); break; case XK_Control_R: case XK_Control_L: control_pressed = True; break; case XK_Tab: insertTextInteractively(tPtr, " ", 4); updateCursorPosition(tPtr); paintText(tPtr); break; case XK_Return: *buffer = '\n'; default: if (*buffer != 0 && !control_pressed) { insertTextInteractively(tPtr, buffer, strlen(buffer)); updateCursorPosition(tPtr); paintText(tPtr); } else if (control_pressed && ksym == XK_r) { Bool i = !tPtr->flags.rulerShown; WMShowTextRuler(tPtr, i); tPtr->flags.rulerShown = i; } else if (control_pressed && *buffer == '\a') { XBell(tPtr->view->screen->display, 0); } else { WMRelayToNextResponder(tPtr->view, event); } } if (!control_pressed && tPtr->flags.ownsSelection) { releaseSelection(tPtr); } } static void pasteText(WMView * view, Atom selection, Atom target, Time timestamp, void *cdata, WMData * data) { Text *tPtr = (Text *) view->self; char *text; tPtr->flags.waitingForSelection = 0; if (data) { text = (char *)WMDataBytes(data); if (tPtr->parser) { (tPtr->parser) (tPtr, (void *)text); layOutDocument(tPtr); } else insertTextInteractively(tPtr, text, strlen(text)); updateCursorPosition(tPtr); paintText(tPtr); } else { int n; text = XFetchBuffer(tPtr->view->screen->display, &n, 0); if (text) { text[n] = 0; if (tPtr->parser) { (tPtr->parser) (tPtr, (void *)text); layOutDocument(tPtr); } else insertTextInteractively(tPtr, text, n); updateCursorPosition(tPtr); paintText(tPtr); XFree(text); } } } static void handleActionEvents(XEvent * event, void *data) { Text *tPtr = (Text *) data; Display *dpy = event->xany.display; KeySym ksym; switch (event->type) { case KeyPress: ksym = XLookupKeysym((XKeyEvent *) event, 0); if (ksym == XK_Shift_R || ksym == XK_Shift_L) { tPtr->flags.extendSelection = True; return; } if (tPtr->flags.focused) { XGrabPointer(dpy, W_VIEW(tPtr)->window, False, PointerMotionMask | ButtonPressMask | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, None, tPtr->view->screen->invisibleCursor, CurrentTime); tPtr->flags.pointerGrabbed = True; handleTextKeyPress(tPtr, event); } break; case KeyRelease: ksym = XLookupKeysym((XKeyEvent *) event, 0); if (ksym == XK_Shift_R || ksym == XK_Shift_L) { tPtr->flags.extendSelection = False; return; /* end modify flag so selection can be extended */ } break; case MotionNotify: if (tPtr->flags.pointerGrabbed) { tPtr->flags.pointerGrabbed = False; XUngrabPointer(dpy, CurrentTime); } if (tPtr->flags.waitingForSelection) break; if ((event->xmotion.state & Button1Mask)) { if (WMIsDraggingFromView(tPtr->view)) { WMDragImageFromView(tPtr->view, event); break; } if (!tPtr->flags.ownsSelection) { WMCreateSelectionHandler(tPtr->view, XA_PRIMARY, event->xbutton.time, &selectionHandler, NULL); tPtr->flags.ownsSelection = True; } selectRegion(tPtr, event->xmotion.x, event->xmotion.y); break; } mouseOverObject(tPtr, event->xmotion.x, event->xmotion.y); break; case ButtonPress: if (tPtr->flags.pointerGrabbed) { tPtr->flags.pointerGrabbed = False; XUngrabPointer(dpy, CurrentTime); break; } if (tPtr->flags.waitingForSelection) break; if (tPtr->flags.extendSelection && tPtr->flags.ownsSelection) { selectRegion(tPtr, event->xmotion.x, event->xmotion.y); return; } if (tPtr->flags.ownsSelection) releaseSelection(tPtr); if (event->xbutton.button == Button1) { TextBlock *tb = tPtr->currentTextBlock; if (WMIsDoubleClick(event)) { tPtr->lastClickTime = event->xbutton.time; if (tb && tb->graphic && !tb->object) { if (tPtr->delegate && tPtr->delegate->didDoubleClickOnPicture) { char *desc; desc = wmalloc(tb->used + 1); memcpy(desc, tb->text, tb->used); desc[tb->used] = 0; (*tPtr->delegate->didDoubleClickOnPicture) (tPtr->delegate, desc); wfree(desc); } } else { autoSelectText(tPtr, 2); } break; } else if (event->xbutton.time - tPtr->lastClickTime < WINGsConfiguration.doubleClickDelay) { tPtr->lastClickTime = event->xbutton.time; autoSelectText(tPtr, 3); break; } if (!tPtr->flags.focused) { WMSetFocusToWidget(tPtr); tPtr->flags.focused = True; } else if (tb && tPtr->flags.isOverGraphic && tb->graphic && !tb->object && tb->d.pixmap) { WMSetViewDragImage(tPtr->view, tb->d.pixmap); WMDragImageFromView(tPtr->view, event); break; } tPtr->lastClickTime = event->xbutton.time; cursorToTextPosition(tPtr, event->xmotion.x, event->xmotion.y); paintText(tPtr); } if (event->xbutton.button == WINGsConfiguration.mouseWheelDown) { WMScrollText(tPtr, 16); break; } if (event->xbutton.button == WINGsConfiguration.mouseWheelUp) { WMScrollText(tPtr, -16); break; } if (event->xbutton.button == Button2) { char *text = NULL; int n; if (!tPtr->flags.editable) { XBell(dpy, 0); break; } if (!WMRequestSelection(tPtr->view, XA_PRIMARY, XA_STRING, event->xbutton.time, pasteText, NULL)) { text = XFetchBuffer(tPtr->view->screen->display, &n, 0); tPtr->flags.waitingForSelection = 0; if (text) { text[n] = 0; if (tPtr->parser) { (tPtr->parser) (tPtr, (void *)text); layOutDocument(tPtr); } else insertTextInteractively(tPtr, text, n); XFree(text); #if 0 NOTIFY(tPtr, didChange, WMTextDidChangeNotification, (void *)WMInsertTextEvent); #endif updateCursorPosition(tPtr); paintText(tPtr); } else { tPtr->flags.waitingForSelection = True; } } break; } case ButtonRelease: if (tPtr->flags.pointerGrabbed) { tPtr->flags.pointerGrabbed = False; XUngrabPointer(dpy, CurrentTime); break; } if (tPtr->flags.waitingForSelection) break; if (WMIsDraggingFromView(tPtr->view)) WMDragImageFromView(tPtr->view, event); } } static void handleEvents(XEvent * event, void *data) { Text *tPtr = (Text *) data; switch (event->type) { case Expose: if (event->xexpose.count != 0) break; if (tPtr->hS) { if (!(W_VIEW(tPtr->hS))->flags.realized) WMRealizeWidget(tPtr->hS); } if (tPtr->vS) { if (!(W_VIEW(tPtr->vS))->flags.realized) WMRealizeWidget(tPtr->vS); } if (tPtr->ruler) { if (!(W_VIEW(tPtr->ruler))->flags.realized) WMRealizeWidget(tPtr->ruler); } if (!tPtr->db) textDidResize(tPtr->view->delegate, tPtr->view); paintText(tPtr); break; case FocusIn: if (W_FocusedViewOfToplevel(W_TopLevelOfView(tPtr->view)) != tPtr->view) return; tPtr->flags.focused = True; #if DO_BLINK if (tPtr->flags.editable && !tPtr->timerID) { tPtr->timerID = WMAddTimerHandler(12 + 0 * CURSOR_BLINK_ON_DELAY, blinkCursor, tPtr); } #endif break; case FocusOut: tPtr->flags.focused = False; paintText(tPtr); #if DO_BLINK if (tPtr->timerID) { WMDeleteTimerHandler(tPtr->timerID); tPtr->timerID = NULL; } #endif break; case DestroyNotify: clearText(tPtr); if (tPtr->db) XFreePixmap(tPtr->view->screen->display, tPtr->db); if (tPtr->gfxItems) WMEmptyArray(tPtr->gfxItems); #if DO_BLINK if (tPtr->timerID) WMDeleteTimerHandler(tPtr->timerID); #endif WMReleaseFont(tPtr->dFont); WMReleaseColor(tPtr->dColor); WMDeleteSelectionHandler(tPtr->view, XA_PRIMARY, CurrentTime); WMRemoveNotificationObserver(tPtr); WMFreeArray(tPtr->xdndSourceTypes); WMFreeArray(tPtr->xdndDestinationTypes); wfree(tPtr); break; } } static void insertPlainText(Text * tPtr, const char *text) { const char *start, *mark; void *tb = NULL; start = text; while (start) { mark = strchr(start, '\n'); if (mark) { tb = WMCreateTextBlockWithText(tPtr, start, tPtr->dFont, tPtr->dColor, tPtr->flags.first, (int)(mark - start)); start = mark + 1; tPtr->flags.first = True; } else { if (start && strlen(start)) { tb = WMCreateTextBlockWithText(tPtr, start, tPtr->dFont, tPtr->dColor, tPtr->flags.first, strlen(start)); } else tb = NULL; tPtr->flags.first = False; start = mark; } if (tPtr->flags.prepend) WMPrependTextBlock(tPtr, tb); else WMAppendTextBlock(tPtr, tb); } } static void rulerMoveCallBack(WMWidget * w, void *self) { Text *tPtr = (Text *) self; if (!tPtr) return; if (W_CLASS(tPtr) != WC_Text) return; paintText(tPtr); } static void rulerReleaseCallBack(WMWidget * w, void *self) { Text *tPtr = (Text *) self; if (!tPtr) return; if (W_CLASS(tPtr) != WC_Text) return; WMThawText(tPtr); return; } static WMArray *dropDataTypes(WMView * self) { return ((Text *) self->self)->xdndSourceTypes; } static WMDragOperationType wantedDropOperation(WMView * self) { return WDOperationCopy; } static Bool acceptDropOperation(WMView * self, WMDragOperationType allowedOperation) { return (allowedOperation == WDOperationCopy); } static WMData *fetchDragData(WMView * self, char *type) { TextBlock *tb = ((WMText *) self->self)->currentTextBlock; char *desc; WMData *data; if (strcmp(type, "text/plain")) { if (!tb) return NULL; desc = wmalloc(tb->used + 1); memcpy(desc, tb->text, tb->used); desc[tb->used] = 0; data = WMCreateDataWithBytes(desc, strlen(desc) + 1); wfree(desc); return data; } return NULL; } static WMDragSourceProcs _DragSourceProcs = { dropDataTypes, wantedDropOperation, NULL, acceptDropOperation, NULL, NULL, fetchDragData }; static WMArray *requiredDataTypes(WMView * self, WMDragOperationType request, WMArray * sourceDataTypes) { return ((Text *) self->self)->xdndDestinationTypes; } static WMDragOperationType allowedOperation(WMView * self, WMDragOperationType request, WMArray * sourceDataTypes) { return WDOperationCopy; } static void performDragOperation(WMView * self, WMArray * dropData, WMArray * operations, WMPoint * dropLocation) { WMText *tPtr = (WMText *) self->self; WMData *data; char *colorName; WMColor *color; if (tPtr) { /* only one required type, implies only one drop data */ /* get application/X-color if any */ data = (WMData *) WMPopFromArray(dropData); if (data != NULL) { colorName = (char *)WMDataBytes(data); color = WMCreateNamedColor(W_VIEW_SCREEN(self), colorName, True); if (color) { WMSetTextSelectionColor(tPtr, color); WMReleaseColor(color); } } } } static WMDragDestinationProcs _DragDestinationProcs = { NULL, requiredDataTypes, allowedOperation, NULL, performDragOperation, NULL }; static char *getStream(WMText * tPtr, int sel, int array) { TextBlock *tb = NULL; char *text = NULL; unsigned long where = 0; if (!tPtr) return NULL; if (!(tb = tPtr->firstTextBlock)) return NULL; if (tPtr->writer) { (tPtr->writer) (tPtr, (void *)text); return text; } tb = tPtr->firstTextBlock; while (tb) { if (!tb->graphic || (tb->graphic && !tPtr->flags.monoFont)) { if (!sel || (tb->graphic && tb->selected)) { if (!tPtr->flags.ignoreNewLine && (tb->first || tb->blank) && tb != tPtr->firstTextBlock) { text = wrealloc(text, where + 1); text[where++] = '\n'; } if (tb->blank) goto _gSnext; if (tb->graphic && array) { text = wrealloc(text, where + 4); text[where++] = 0xFA; text[where++] = (tb->used >> 8) & 0x0ff; text[where++] = tb->used & 0x0ff; text[where++] = tb->allocated; /* extra info */ } text = wrealloc(text, where + tb->used); memcpy(&text[where], tb->text, tb->used); where += tb->used; } else if (sel && tb->selected) { if (!tPtr->flags.ignoreNewLine && tb->blank) { text = wrealloc(text, where + 1); text[where++] = '\n'; } if (tb->blank) goto _gSnext; text = wrealloc(text, where + (tb->s_end - tb->s_begin)); memcpy(&text[where], &tb->text[tb->s_begin], tb->s_end - tb->s_begin); where += tb->s_end - tb->s_begin; } } _gSnext: tb = tb->next; } /* +1 for the end of string, let's be nice */ text = wrealloc(text, where + 1); text[where] = 0; return text; } static void releaseStreamObjects(void *data) { if (data) wfree(data); } static WMArray *getStreamObjects(WMText * tPtr, int sel) { WMArray *array = WMCreateArrayWithDestructor(4, releaseStreamObjects); WMData *data; char *stream; unsigned short len; char *start, *fa, *desc; stream = getStream(tPtr, sel, 1); if (!stream) return NULL; start = stream; while (start) { fa = strchr(start, 0xFA); if (fa) { if ((int)(fa - start) > 0) { desc = start; desc[(int)(fa - start)] = 0; data = WMCreateDataWithBytes((void *)desc, (int)(fa - start)); WMSetDataFormat(data, TYPETEXT); WMAddToArray(array, (void *)data); } len = *(fa + 1) * 0xff + *(fa + 2); data = WMCreateDataWithBytes((void *)(fa + 4), len); WMSetDataFormat(data, *(fa + 3)); WMAddToArray(array, (void *)data); start = fa + len + 4; } else { if (start && strlen(start)) { data = WMCreateDataWithBytes((void *)start, strlen(start)); WMSetDataFormat(data, TYPETEXT); WMAddToArray(array, (void *)data); } start = fa; } } wfree(stream); return array; } #define XDND_TEXT_DATA_TYPE "text/plain" #define XDND_COLOR_DATA_TYPE "application/X-color" static WMArray *getXdndSourceTypeArray(void) { WMArray *types = WMCreateArray(1); WMAddToArray(types, XDND_TEXT_DATA_TYPE); return types; } static WMArray *getXdndDestinationTypeArray(void) { WMArray *types = WMCreateArray(1); WMAddToArray(types, XDND_COLOR_DATA_TYPE); return types; } WMText *WMCreateTextForDocumentType(WMWidget * parent, WMAction * parser, WMAction * writer) { Text *tPtr; Display *dpy; WMScreen *scr; XGCValues gcv; tPtr = wmalloc(sizeof(Text)); tPtr->widgetClass = WC_Text; tPtr->view = W_CreateView(W_VIEW(parent)); if (!tPtr->view) { perror("could not create text's view\n"); wfree(tPtr); return NULL; } dpy = tPtr->view->screen->display; scr = tPtr->view->screen; tPtr->view->self = tPtr; tPtr->view->attribs.cursor = scr->textCursor; tPtr->view->attribFlags |= CWOverrideRedirect | CWCursor; W_ResizeView(tPtr->view, 250, 200); tPtr->dColor = WMBlackColor(scr); tPtr->fgColor = WMBlackColor(scr); tPtr->bgColor = WMWhiteColor(scr); W_SetViewBackgroundColor(tPtr->view, tPtr->bgColor); gcv.graphics_exposures = False; gcv.foreground = W_PIXEL(scr->gray); gcv.background = W_PIXEL(scr->darkGray); gcv.fill_style = FillStippled; /* why not use scr->stipple here? */ gcv.stipple = XCreateBitmapFromData(dpy, W_DRAWABLE(scr), STIPPLE_BITS, STIPPLE_WIDTH, STIPPLE_HEIGHT); tPtr->stippledGC = XCreateGC(dpy, W_DRAWABLE(scr), GCForeground | GCBackground | GCStipple | GCFillStyle | GCGraphicsExposures, &gcv); tPtr->ruler = NULL; tPtr->vS = NULL; tPtr->hS = NULL; tPtr->dFont = WMSystemFontOfSize(scr, 12); tPtr->view->delegate = &_TextViewDelegate; tPtr->delegate = NULL; #if DO_BLINK tPtr->timerID = NULL; #endif WMCreateEventHandler(tPtr->view, ExposureMask | StructureNotifyMask | EnterWindowMask | LeaveWindowMask | FocusChangeMask, handleEvents, tPtr); WMCreateEventHandler(tPtr->view, ButtonReleaseMask | ButtonPressMask | KeyReleaseMask | KeyPressMask | Button1MotionMask, handleActionEvents, tPtr); WMAddNotificationObserver(ownershipObserver, tPtr, WMSelectionOwnerDidChangeNotification, tPtr); WMSetViewDragSourceProcs(tPtr->view, &_DragSourceProcs); WMSetViewDragDestinationProcs(tPtr->view, &_DragDestinationProcs); { WMArray *types = WMCreateArray(2); WMAddToArray(types, "application/X-color"); WMAddToArray(types, "application/X-image"); WMRegisterViewForDraggedTypes(tPtr->view, types); } /*WMAddNotificationObserver(fontChanged, tPtr, WMFontPanelDidChangeNotification, tPtr); */ tPtr->firstTextBlock = NULL; tPtr->lastTextBlock = NULL; tPtr->currentTextBlock = NULL; tPtr->tpos = 0; tPtr->gfxItems = WMCreateArray(4); tPtr->parser = parser; tPtr->writer = writer; tPtr->sel.x = tPtr->sel.y = 2; tPtr->sel.w = tPtr->sel.h = 0; tPtr->clicked.x = tPtr->clicked.y = 2; tPtr->visible.x = tPtr->visible.y = 2; tPtr->visible.h = tPtr->view->size.height; tPtr->visible.w = tPtr->view->size.width - 4; tPtr->cursor.x = -23; tPtr->docWidth = 0; tPtr->docHeight = 0; tPtr->dBulletPix = WMCreatePixmapFromXPMData(tPtr->view->screen, default_bullet); tPtr->db = (Pixmap) NULL; tPtr->bgPixmap = NULL; tPtr->margins = WMGetRulerMargins(NULL); tPtr->margins->right = tPtr->visible.w; tPtr->nMargins = 1; tPtr->flags.rulerShown = False; tPtr->flags.monoFont = False; tPtr->flags.focused = False; tPtr->flags.editable = True; tPtr->flags.ownsSelection = False; tPtr->flags.pointerGrabbed = False; tPtr->flags.extendSelection = False; tPtr->flags.frozen = False; tPtr->flags.cursorShown = True; tPtr->flags.acceptsGraphic = False; tPtr->flags.horizOnDemand = False; tPtr->flags.needsLayOut = False; tPtr->flags.ignoreNewLine = False; tPtr->flags.indentNewLine = False; tPtr->flags.laidOut = False; tPtr->flags.ownsSelection = False; tPtr->flags.waitingForSelection = False; tPtr->flags.prepend = False; tPtr->flags.isOverGraphic = False; tPtr->flags.relief = WRSunken; tPtr->flags.isOverGraphic = 0; tPtr->flags.alignment = WALeft; tPtr->flags.first = True; tPtr->xdndSourceTypes = getXdndSourceTypeArray(); tPtr->xdndDestinationTypes = getXdndDestinationTypeArray(); return tPtr; } void WMPrependTextStream(WMText * tPtr, const char *text) { CHECK_CLASS(tPtr, WC_Text); if (!text) { if (tPtr->flags.ownsSelection) releaseSelection(tPtr); clearText(tPtr); updateScrollers(tPtr); return; } tPtr->flags.prepend = True; if (text && tPtr->parser) (tPtr->parser) (tPtr, (void *)text); else insertPlainText(tPtr, text); tPtr->flags.needsLayOut = True; tPtr->tpos = 0; if (!tPtr->flags.frozen) { layOutDocument(tPtr); } } void WMAppendTextStream(WMText * tPtr, const char *text) { CHECK_CLASS(tPtr, WC_Text); if (!text) { if (tPtr->flags.ownsSelection) releaseSelection(tPtr); clearText(tPtr); updateScrollers(tPtr); return; } tPtr->flags.prepend = False; if (text && tPtr->parser) (tPtr->parser) (tPtr, (void *)text); else insertPlainText(tPtr, text); tPtr->flags.needsLayOut = True; if (tPtr->currentTextBlock) { if (tPtr->currentTextBlock->graphic) tPtr->tpos = 1; else tPtr->tpos = tPtr->currentTextBlock->used; } if (!tPtr->flags.frozen) { layOutDocument(tPtr); } } char *WMGetTextStream(WMText * tPtr) { CHECK_CLASS(tPtr, WC_Text); return getStream(tPtr, 0, 0); } char *WMGetTextSelectedStream(WMText * tPtr) { CHECK_CLASS(tPtr, WC_Text); return getStream(tPtr, 1, 0); } WMArray *WMGetTextObjects(WMText * tPtr) { CHECK_CLASS(tPtr, WC_Text); return getStreamObjects(tPtr, 0); } WMArray *WMGetTextSelectedObjects(WMText * tPtr) { CHECK_CLASS(tPtr, WC_Text); return getStreamObjects(tPtr, 1); } void WMSetTextDelegate(WMText * tPtr, WMTextDelegate * delegate) { CHECK_CLASS(tPtr, WC_Text); tPtr->delegate = delegate; } void *WMCreateTextBlockWithObject(WMText * tPtr, WMWidget * w, const char *description, WMColor * color, unsigned short first, unsigned short extraInfo) { TextBlock *tb; if (!w || !description || !color) return NULL; tb = wmalloc(sizeof(TextBlock)); tb->text = wstrdup(description); tb->used = strlen(description); tb->blank = False; tb->d.widget = w; tb->color = WMRetainColor(color); tb->marginN = newMargin(tPtr, NULL); tb->allocated = extraInfo; tb->first = first; tb->kanji = False; tb->graphic = True; tb->object = True; tb->underlined = False; tb->selected = False; tb->script = 0; tb->sections = NULL; tb->nsections = 0; tb->prior = NULL; tb->next = NULL; return tb; } void *WMCreateTextBlockWithPixmap(WMText * tPtr, WMPixmap * p, const char *description, WMColor * color, unsigned short first, unsigned short extraInfo) { TextBlock *tb; if (!p || !description || !color) return NULL; tb = wmalloc(sizeof(TextBlock)); tb->text = wstrdup(description); tb->used = strlen(description); tb->blank = False; tb->d.pixmap = WMRetainPixmap(p); tb->color = WMRetainColor(color); tb->marginN = newMargin(tPtr, NULL); tb->allocated = extraInfo; tb->first = first; tb->kanji = False; tb->graphic = True; tb->object = False; tb->underlined = False; tb->selected = False; tb->script = 0; tb->sections = NULL; tb->nsections = 0; tb->prior = NULL; tb->next = NULL; return tb; } void *WMCreateTextBlockWithText(WMText * tPtr, const char *text, WMFont * font, WMColor * color, unsigned short first, unsigned short len) { TextBlock *tb; if (!font || !color) return NULL; tb = wmalloc(sizeof(TextBlock)); tb->allocated = reqBlockSize(len); tb->text = (char *)wmalloc(tb->allocated); if (len < 1 || !text || (*text == '\n' && len == 1)) { *tb->text = ' '; tb->used = 1; tb->blank = True; } else { memcpy(tb->text, text, len); tb->used = len; tb->blank = False; } tb->text[tb->used] = 0; tb->d.font = WMRetainFont(font); tb->color = WMRetainColor(color); tb->marginN = newMargin(tPtr, NULL); tb->first = first; tb->kanji = False; tb->graphic = False; tb->underlined = False; tb->selected = False; tb->script = 0; tb->sections = NULL; tb->nsections = 0; tb->prior = NULL; tb->next = NULL; return tb; } void WMSetTextBlockProperties(WMText * tPtr, void *vtb, unsigned int first, unsigned int kanji, unsigned int underlined, int script, WMRulerMargins * margins) { TextBlock *tb = (TextBlock *) vtb; if (!tb) return; tb->first = first; tb->kanji = kanji; tb->underlined = underlined; tb->script = script; tb->marginN = newMargin(tPtr, margins); } void WMGetTextBlockProperties(WMText * tPtr, void *vtb, unsigned int *first, unsigned int *kanji, unsigned int *underlined, int *script, WMRulerMargins * margins) { TextBlock *tb = (TextBlock *) vtb; if (!tb) return; if (first) *first = tb->first; if (kanji) *kanji = tb->kanji; if (underlined) *underlined = tb->underlined; if (script) *script = tb->script; if (margins) margins = &tPtr->margins[tb->marginN]; } void WMPrependTextBlock(WMText * tPtr, void *vtb) { TextBlock *tb = (TextBlock *) vtb; if (!tb) return; if (tb->graphic) { if (tb->object) { WMWidget *w = tb->d.widget; if (W_CLASS(w) != WC_TextField && W_CLASS(w) != WC_Text) { (W_VIEW(w))->attribs.cursor = tPtr->view->screen->defaultCursor; (W_VIEW(w))->attribFlags |= CWOverrideRedirect | CWCursor; } } WMAddToArray(tPtr->gfxItems, (void *)tb); tPtr->tpos = 1; } else { tPtr->tpos = tb->used; } if (!tPtr->lastTextBlock || !tPtr->firstTextBlock) { tb->next = tb->prior = NULL; tb->first = True; tPtr->lastTextBlock = tPtr->firstTextBlock = tPtr->currentTextBlock = tb; return; } if (!tb->first) { tb->marginN = tPtr->currentTextBlock->marginN; } tb->next = tPtr->currentTextBlock; tb->prior = tPtr->currentTextBlock->prior; if (tPtr->currentTextBlock->prior) tPtr->currentTextBlock->prior->next = tb; tPtr->currentTextBlock->prior = tb; if (!tb->prior) tPtr->firstTextBlock = tb; tPtr->currentTextBlock = tb; } void WMAppendTextBlock(WMText * tPtr, void *vtb) { TextBlock *tb = (TextBlock *) vtb; if (!tb) return; if (tb->graphic) { if (tb->object) { WMWidget *w = tb->d.widget; if (W_CLASS(w) != WC_TextField && W_CLASS(w) != WC_Text) { (W_VIEW(w))->attribs.cursor = tPtr->view->screen->defaultCursor; (W_VIEW(w))->attribFlags |= CWOverrideRedirect | CWCursor; } } WMAddToArray(tPtr->gfxItems, (void *)tb); tPtr->tpos = 1; } else { tPtr->tpos = tb->used; } if (!tPtr->lastTextBlock || !tPtr->firstTextBlock) { tb->next = tb->prior = NULL; tb->first = True; tPtr->lastTextBlock = tPtr->firstTextBlock = tPtr->currentTextBlock = tb; return; } if (!tb->first) { tb->marginN = tPtr->currentTextBlock->marginN; } tb->next = tPtr->currentTextBlock->next; tb->prior = tPtr->currentTextBlock; if (tPtr->currentTextBlock->next) tPtr->currentTextBlock->next->prior = tb; tPtr->currentTextBlock->next = tb; if (!tb->next) tPtr->lastTextBlock = tb; tPtr->currentTextBlock = tb; } void *WMRemoveTextBlock(WMText * tPtr) { TextBlock *tb = NULL; if (!tPtr->firstTextBlock || !tPtr->lastTextBlock || !tPtr->currentTextBlock) { return NULL; } tb = tPtr->currentTextBlock; if (tb->graphic) { WMRemoveFromArray(tPtr->gfxItems, (void *)tb); if (tb->object) { WMUnmapWidget(tb->d.widget); } } if (tPtr->currentTextBlock == tPtr->firstTextBlock) { if (tPtr->currentTextBlock->next) tPtr->currentTextBlock->next->prior = NULL; tPtr->firstTextBlock = tPtr->currentTextBlock->next; tPtr->currentTextBlock = tPtr->firstTextBlock; } else if (tPtr->currentTextBlock == tPtr->lastTextBlock) { tPtr->currentTextBlock->prior->next = NULL; tPtr->lastTextBlock = tPtr->currentTextBlock->prior; tPtr->currentTextBlock = tPtr->lastTextBlock; } else { tPtr->currentTextBlock->prior->next = tPtr->currentTextBlock->next; tPtr->currentTextBlock->next->prior = tPtr->currentTextBlock->prior; tPtr->currentTextBlock = tPtr->currentTextBlock->next; } return (void *)tb; } #if 0 static void destroyWidget(WMWidget * widget) { WMDestroyWidget(widget); // -- never do this -- wfree(widget); } #endif void WMDestroyTextBlock(WMText * tPtr, void *vtb) { TextBlock *tb = (TextBlock *) vtb; if (!tb) return; if (tb->graphic) { if (tb->object) { /* naturally, there's a danger to destroying widgets whose action * brings us here: ie. press a button to destroy it... * need to find a safer way. till then... this stays commented out */ /* 5 months later... destroy it 10 seconds after now which should * be enough time for the widget's action to be completed... :-) */ /* This is a bad assumption. Just destroy the widget here. * if the caller needs it, it can protect it with W_RetainView() * WMAddTimerHandler(10000, destroyWidget, (void *)tb->d.widget);*/ WMDestroyWidget(tb->d.widget); } else { WMReleasePixmap(tb->d.pixmap); } } else { WMReleaseFont(tb->d.font); } WMReleaseColor(tb->color); /* isn't this going to memleak if nsections==0? if (tb->sections && tb->nsections > 0) */ if (tb->sections) wfree(tb->sections); wfree(tb->text); wfree(tb); } void WMSetTextForegroundColor(WMText * tPtr, WMColor * color) { if (tPtr->fgColor) WMReleaseColor(tPtr->fgColor); tPtr->fgColor = WMRetainColor(color ? color : tPtr->view->screen->black); paintText(tPtr); } void WMSetTextBackgroundColor(WMText * tPtr, WMColor * color) { if (tPtr->bgColor) WMReleaseColor(tPtr->bgColor); tPtr->bgColor = WMRetainColor(color ? color : tPtr->view->screen->white); W_SetViewBackgroundColor(tPtr->view, tPtr->bgColor); paintText(tPtr); } void WMSetTextBackgroundPixmap(WMText * tPtr, WMPixmap * pixmap) { if (tPtr->bgPixmap) WMReleasePixmap(tPtr->bgPixmap); if (pixmap) tPtr->bgPixmap = WMRetainPixmap(pixmap); else tPtr->bgPixmap = NULL; } void WMSetTextRelief(WMText * tPtr, WMReliefType relief) { tPtr->flags.relief = relief; textDidResize(tPtr->view->delegate, tPtr->view); } void WMSetTextHasHorizontalScroller(WMText * tPtr, Bool shouldhave) { if (shouldhave && !tPtr->hS) { tPtr->hS = WMCreateScroller(tPtr); (W_VIEW(tPtr->hS))->attribs.cursor = tPtr->view->screen->defaultCursor; (W_VIEW(tPtr->hS))->attribFlags |= CWOverrideRedirect | CWCursor; WMSetScrollerArrowsPosition(tPtr->hS, WSAMinEnd); WMSetScrollerAction(tPtr->hS, scrollersCallBack, tPtr); WMMapWidget(tPtr->hS); } else if (!shouldhave && tPtr->hS) { WMUnmapWidget(tPtr->hS); WMDestroyWidget(tPtr->hS); tPtr->hS = NULL; } tPtr->hpos = 0; tPtr->prevHpos = 0; textDidResize(tPtr->view->delegate, tPtr->view); } void WMSetTextHasRuler(WMText * tPtr, Bool shouldhave) { if (shouldhave && !tPtr->ruler) { tPtr->ruler = WMCreateRuler(tPtr); (W_VIEW(tPtr->ruler))->attribs.cursor = tPtr->view->screen->defaultCursor; (W_VIEW(tPtr->ruler))->attribFlags |= CWOverrideRedirect | CWCursor; WMSetRulerReleaseAction(tPtr->ruler, rulerReleaseCallBack, tPtr); WMSetRulerMoveAction(tPtr->ruler, rulerMoveCallBack, tPtr); } else if (!shouldhave && tPtr->ruler) { WMShowTextRuler(tPtr, False); WMDestroyWidget(tPtr->ruler); tPtr->ruler = NULL; } textDidResize(tPtr->view->delegate, tPtr->view); } void WMShowTextRuler(WMText * tPtr, Bool show) { if (!tPtr->ruler) return; if (tPtr->flags.monoFont) show = False; tPtr->flags.rulerShown = show; if (show) { WMMapWidget(tPtr->ruler); } else { WMUnmapWidget(tPtr->ruler); } textDidResize(tPtr->view->delegate, tPtr->view); } Bool WMGetTextRulerShown(WMText * tPtr) { if (!tPtr->ruler) return False; return tPtr->flags.rulerShown; } void WMSetTextHasVerticalScroller(WMText * tPtr, Bool shouldhave) { if (shouldhave && !tPtr->vS) { tPtr->vS = WMCreateScroller(tPtr); (W_VIEW(tPtr->vS))->attribs.cursor = tPtr->view->screen->defaultCursor; (W_VIEW(tPtr->vS))->attribFlags |= CWOverrideRedirect | CWCursor; WMSetScrollerArrowsPosition(tPtr->vS, WSAMaxEnd); WMSetScrollerAction(tPtr->vS, scrollersCallBack, tPtr); WMMapWidget(tPtr->vS); } else if (!shouldhave && tPtr->vS) { WMUnmapWidget(tPtr->vS); WMDestroyWidget(tPtr->vS); tPtr->vS = NULL; } tPtr->vpos = 0; tPtr->prevVpos = 0; textDidResize(tPtr->view->delegate, tPtr->view); } Bool WMScrollText(WMText * tPtr, int amount) { Bool scroll = False; if (amount == 0 || !tPtr->view->flags.realized) return False; if (amount < 0) { if (tPtr->vpos > 0) { if (tPtr->vpos > abs(amount)) tPtr->vpos += amount; else tPtr->vpos = 0; scroll = True; } } else { int limit = tPtr->docHeight - tPtr->visible.h; if (tPtr->vpos < limit) { if (tPtr->vpos < limit - amount) tPtr->vpos += amount; else tPtr->vpos = limit; scroll = True; } } if (scroll && tPtr->vpos != tPtr->prevVpos) { updateScrollers(tPtr); paintText(tPtr); } tPtr->prevVpos = tPtr->vpos; return scroll; } Bool WMPageText(WMText * tPtr, Bool direction) { if (!tPtr->view->flags.realized) return False; return WMScrollText(tPtr, direction ? tPtr->visible.h : -tPtr->visible.h); } void WMSetTextEditable(WMText * tPtr, Bool editable) { tPtr->flags.editable = editable; } int WMGetTextEditable(WMText * tPtr) { return tPtr->flags.editable; } void WMSetTextIndentNewLines(WMText * tPtr, Bool indent) { tPtr->flags.indentNewLine = indent; } void WMSetTextIgnoresNewline(WMText * tPtr, Bool ignore) { tPtr->flags.ignoreNewLine = ignore; } Bool WMGetTextIgnoresNewline(WMText * tPtr) { return tPtr->flags.ignoreNewLine; } void WMSetTextUsesMonoFont(WMText * tPtr, Bool mono) { if (mono) { if (tPtr->flags.rulerShown) WMShowTextRuler(tPtr, False); if (tPtr->flags.alignment != WALeft) tPtr->flags.alignment = WALeft; } tPtr->flags.monoFont = mono; textDidResize(tPtr->view->delegate, tPtr->view); } Bool WMGetTextUsesMonoFont(WMText * tPtr) { return tPtr->flags.monoFont; } void WMSetTextDefaultFont(WMText * tPtr, WMFont * font) { if (tPtr->dFont) WMReleaseFont(tPtr->dFont); if (font) { tPtr->dFont = WMRetainFont(font); } else { tPtr->dFont = WMSystemFontOfSize(tPtr->view->screen, 12); } } WMFont *WMGetTextDefaultFont(WMText * tPtr) { return WMRetainFont(tPtr->dFont); } void WMSetTextDefaultColor(WMText * tPtr, WMColor * color) { if (tPtr->dColor) WMReleaseColor(tPtr->dColor); if (color) { tPtr->dColor = WMRetainColor(color); } else { tPtr->dColor = WMBlackColor(tPtr->view->screen); } } WMColor *WMGetTextDefaultColor(WMText * tPtr) { return tPtr->dColor; } void WMSetTextAlignment(WMText * tPtr, WMAlignment alignment) { if (tPtr->flags.monoFont) tPtr->flags.alignment = WALeft; else tPtr->flags.alignment = alignment; WMThawText(tPtr); } int WMGetTextInsertType(WMText * tPtr) { return tPtr->flags.prepend; } void WMSetTextSelectionColor(WMText * tPtr, WMColor * color) { setSelectionProperty(tPtr, NULL, color, -1); } WMColor *WMGetTextSelectionColor(WMText * tPtr) { TextBlock *tb; tb = tPtr->currentTextBlock; if (!tb || !tPtr->flags.ownsSelection) return NULL; if (!tb->selected) return NULL; return tb->color; } void WMSetTextSelectionFont(WMText * tPtr, WMFont * font) { setSelectionProperty(tPtr, font, NULL, -1); } WMFont *WMGetTextSelectionFont(WMText * tPtr) { TextBlock *tb; tb = tPtr->currentTextBlock; if (!tb || !tPtr->flags.ownsSelection) return NULL; if (!tb->selected) return NULL; if (tb->graphic) { tb = getFirstNonGraphicBlockFor(tb, 1); if (!tb) return NULL; } return (tb->selected ? tb->d.font : NULL); } void WMSetTextSelectionUnderlined(WMText * tPtr, int underlined) { /* // check this */ if (underlined != 0 && underlined != 1) return; setSelectionProperty(tPtr, NULL, NULL, underlined); } int WMGetTextSelectionUnderlined(WMText * tPtr) { TextBlock *tb; tb = tPtr->currentTextBlock; if (!tb || !tPtr->flags.ownsSelection) return 0; if (!tb->selected) return 0; return tb->underlined; } void WMFreezeText(WMText * tPtr) { tPtr->flags.frozen = True; } void WMThawText(WMText * tPtr) { tPtr->flags.frozen = False; if (tPtr->flags.monoFont) { int j, c = WMGetArrayItemCount(tPtr->gfxItems); TextBlock *tb; /* make sure to unmap widgets no matter where they are */ /* they'll be later remapped if needed by paintText */ for (j = 0; j < c; j++) { if ((tb = (TextBlock *) WMGetFromArray(tPtr->gfxItems, j))) { if (tb->object && ((W_VIEW(tb->d.widget))->flags.mapped)) WMUnmapWidget(tb->d.widget); } } } tPtr->flags.laidOut = False; layOutDocument(tPtr); updateScrollers(tPtr); paintText(tPtr); tPtr->flags.needsLayOut = False; } /* find first occurence of a string */ static const char *mystrstr(const char *haystack, const char *needle, unsigned short len, const char *end, Bool caseSensitive) { const char *ptr; if (!haystack || !needle || !end) return NULL; for (ptr = haystack; ptr < end; ptr++) { if (caseSensitive) { if (*ptr == *needle && !strncmp(ptr, needle, len)) return ptr; } else { if (tolower(*ptr) == tolower(*needle) && !strncasecmp(ptr, needle, len)) return ptr; } } return NULL; } /* find last occurence of a string */ static const char *mystrrstr(const char *haystack, const char *needle, unsigned short len, const char *end, Bool caseSensitive) { const char *ptr; if (!haystack || !needle || !end) return NULL; for (ptr = haystack - 2; ptr > end; ptr--) { if (caseSensitive) { if (*ptr == *needle && !strncmp(ptr, needle, len)) return ptr; } else { if (tolower(*ptr) == tolower(*needle) && !strncasecmp(ptr, needle, len)) return ptr; } } return NULL; } Bool WMFindInTextStream(WMText * tPtr, const char *needle, Bool direction, Bool caseSensitive) { TextBlock *tb; const char *mark = NULL; unsigned short pos; #if 0 if (!(tb = tPtr->currentTextBlock)) { if (!(tb = ((direction > 0) ? tPtr->firstTextBlock : tPtr->lastTextBlock))) { return False; } } else { /* if(tb != ((direction>0) ?tPtr->firstTextBlock : tPtr->lastTextBlock)) tb = (direction>0) ? tb->next : tb->prior; */ if (tb != tPtr->lastTextBlock) tb = tb->prior; } #endif tb = tPtr->currentTextBlock; pos = tPtr->tpos; while (tb) { if (!tb->graphic) { if (direction > 0) { if (pos + 1 < tb->used) pos++; if (tb->used - pos > 0 && pos > 0) { mark = mystrstr(&tb->text[pos], needle, strlen(needle), &tb->text[tb->used], caseSensitive); } else { tb = tb->next; pos = 0; continue; } } else { if (pos - 1 > 0) pos--; if (pos > 0) { mark = mystrrstr(&tb->text[pos], needle, strlen(needle), tb->text, caseSensitive); } else { tb = tb->prior; if (!tb) return False; pos = tb->used; continue; } } if (mark) { WMFont *font = tPtr->flags.monoFont ? tPtr->dFont : tb->d.font; tPtr->tpos = (int)(mark - tb->text); tPtr->currentTextBlock = tb; updateCursorPosition(tPtr); tPtr->sel.y = tPtr->cursor.y + 5; tPtr->sel.h = tPtr->cursor.h - 10; tPtr->sel.x = tPtr->cursor.x + 1; tPtr->sel.w = WMIN(WMWidthOfString(font, &tb->text[tPtr->tpos], strlen(needle)), tPtr->docWidth - tPtr->sel.x); tPtr->flags.ownsSelection = True; paintText(tPtr); return True; } } tb = (direction > 0) ? tb->next : tb->prior; if (tb) { pos = (direction > 0) ? 0 : tb->used; } } return False; } Bool WMReplaceTextSelection(WMText * tPtr, char *replacement) { if (!tPtr->flags.ownsSelection) return False; removeSelection(tPtr); if (replacement) { insertTextInteractively(tPtr, replacement, strlen(replacement)); updateCursorPosition(tPtr); paintText(tPtr); } return True; } WindowMaker-0.95.5/WINGs/wframe.c0000644000175000017500000001143712214432632013343 00000000000000 #include "WINGsP.h" typedef struct W_Frame { W_Class widgetClass; W_View *view; char *caption; struct { WMReliefType relief:4; WMTitlePosition titlePosition:4; } flags; } Frame; #define DEFAULT_RELIEF WRGroove #define DEFAULT_TITLE_POSITION WTPAtTop #define DEFAULT_WIDTH 40 #define DEFAULT_HEIGHT 40 static void destroyFrame(Frame * fPtr); static void paintFrame(Frame * fPtr); static void repaintFrame(Frame * fPtr); void WMSetFrameTitlePosition(WMFrame * fPtr, WMTitlePosition position) { fPtr->flags.titlePosition = position; if (fPtr->view->flags.realized) { repaintFrame(fPtr); } } void WMSetFrameRelief(WMFrame * fPtr, WMReliefType relief) { fPtr->flags.relief = relief; if (fPtr->view->flags.realized) { repaintFrame(fPtr); } } void WMSetFrameTitle(WMFrame * fPtr, const char *title) { if (fPtr->caption) wfree(fPtr->caption); if (title) fPtr->caption = wstrdup(title); else fPtr->caption = NULL; if (fPtr->view->flags.realized) { repaintFrame(fPtr); } } static void repaintFrame(Frame * fPtr) { W_View *view = fPtr->view; W_Screen *scrPtr = view->screen; XClearWindow(scrPtr->display, view->window); paintFrame(fPtr); } static void paintFrame(Frame * fPtr) { W_View *view = fPtr->view; W_Screen *scrPtr = view->screen; WMFont *font = scrPtr->normalFont; Display *display = scrPtr->display; int tx, ty, tw, th, tlen; int fy, fh; Bool drawTitle; if (fPtr->caption != NULL) { th = WMFontHeight(font); tlen = strlen(fPtr->caption); } else { th = 0; tlen = 0; } fh = view->size.height; fy = 0; switch (fPtr->flags.titlePosition) { case WTPAboveTop: ty = 0; fy = th + 4; fh = view->size.height - fy; break; case WTPAtTop: ty = 0; fy = th / 2; fh = view->size.height - fy; break; case WTPBelowTop: ty = 4; fy = 0; fh = view->size.height; break; case WTPAboveBottom: ty = view->size.height - th - 4; fy = 0; fh = view->size.height; break; case WTPAtBottom: ty = view->size.height - th; fy = 0; fh = view->size.height - th / 2; break; case WTPBelowBottom: ty = view->size.height - th; fy = 0; fh = view->size.height - th - 4; break; default: ty = 0; fy = 0; fh = view->size.height; } if (tlen > 0 && fPtr->flags.titlePosition != WTPNoTitle) { tw = WMWidthOfString(font, fPtr->caption, tlen); tx = (view->size.width - tw) / 2; drawTitle = True; } else { tw = tx = 0; drawTitle = False; } { XRectangle rect; Region region, tmp; GC gc[4]; int i; region = XCreateRegion(); rect.x = 0; rect.y = 0; rect.width = view->size.width; rect.height = view->size.height; XUnionRectWithRegion(&rect, region, region); if (drawTitle) { tmp = XCreateRegion(); rect.x = tx; rect.y = ty; rect.width = tw; rect.height = th; XUnionRectWithRegion(&rect, tmp, tmp); XSubtractRegion(region, tmp, region); XDestroyRegion(tmp); } gc[0] = WMColorGC(scrPtr->black); gc[1] = WMColorGC(scrPtr->darkGray); gc[2] = WMColorGC(scrPtr->gray); gc[3] = WMColorGC(scrPtr->white); for (i = 0; i < 4; i++) { XSetRegion(display, gc[i], region); } XDestroyRegion(region); W_DrawReliefWithGC(scrPtr, view->window, 0, fy, view->size.width, fh, fPtr->flags.relief, gc[0], gc[1], gc[2], gc[3]); for (i = 0; i < 4; i++) { XSetClipMask(display, gc[i], None); } } if (drawTitle) { /* can't draw AA text over and over again because it gets messed */ /* // TODO create the dbl buffer pixmap when create/set frame title */ if (scrPtr->antialiasedText) { Drawable d; d = XCreatePixmap(display, view->window, tw, th, scrPtr->depth); XFillRectangle(display, d, WMColorGC(view->backColor), 0, 0, tw, th); WMDrawString(scrPtr, d, scrPtr->black, font, 0, 0, fPtr->caption, tlen); XCopyArea(display, d, view->window, scrPtr->copyGC, 0, 0, tw, th, tx, ty); XFreePixmap(display, d); } else { WMDrawString(scrPtr, view->window, scrPtr->black, font, tx, ty, fPtr->caption, tlen); } } } static void handleEvents(XEvent * event, void *data) { Frame *fPtr = (Frame *) data; CHECK_CLASS(data, WC_Frame); switch (event->type) { case Expose: if (event->xexpose.count == 0) paintFrame(fPtr); break; case DestroyNotify: destroyFrame(fPtr); break; } } WMFrame *WMCreateFrame(WMWidget * parent) { Frame *fPtr; fPtr = wmalloc(sizeof(Frame)); fPtr->widgetClass = WC_Frame; fPtr->view = W_CreateView(W_VIEW(parent)); if (!fPtr->view) { wfree(fPtr); return NULL; } fPtr->view->self = fPtr; WMCreateEventHandler(fPtr->view, ExposureMask | StructureNotifyMask, handleEvents, fPtr); fPtr->flags.relief = DEFAULT_RELIEF; fPtr->flags.titlePosition = DEFAULT_TITLE_POSITION; WMResizeWidget(fPtr, DEFAULT_WIDTH, DEFAULT_HEIGHT); return fPtr; } static void destroyFrame(Frame * fPtr) { if (fPtr->caption) wfree(fPtr->caption); wfree(fPtr); } WindowMaker-0.95.5/WINGs/dragdestination.c0000644000175000017500000006656312214432632015253 00000000000000 #include "WINGsP.h" #include #define XDND_SOURCE_RESPONSE_MAX_DELAY 3000 #define XDND_PROPERTY_FORMAT 32 #define XDND_ACTION_DESCRIPTION_FORMAT 8 #define XDND_SOURCE_VERSION(dragInfo) dragInfo->protocolVersion #define XDND_DEST_INFO(dragInfo) dragInfo->destInfo #define XDND_AWARE_VIEW(dragInfo) dragInfo->destInfo->xdndAwareView #define XDND_SOURCE_WIN(dragInfo) dragInfo->destInfo->sourceWindow #define XDND_DEST_VIEW(dragInfo) dragInfo->destInfo->destView #define XDND_DEST_STATE(dragInfo) dragInfo->destInfo->state #define XDND_SOURCE_ACTION_CHANGED(dragInfo) dragInfo->destInfo->sourceActionChanged #define XDND_SOURCE_TYPES(dragInfo) dragInfo->destInfo->sourceTypes #define XDND_TYPE_LIST_AVAILABLE(dragInfo) dragInfo->destInfo->typeListAvailable #define XDND_REQUIRED_TYPES(dragInfo) dragInfo->destInfo->requiredTypes #define XDND_SOURCE_ACTION(dragInfo) dragInfo->sourceAction #define XDND_DEST_ACTION(dragInfo) dragInfo->destinationAction #define XDND_SOURCE_OPERATIONS(dragInfo) dragInfo->destInfo->sourceOperations #define XDND_DROP_DATAS(dragInfo) dragInfo->destInfo->dropDatas #define XDND_DROP_DATA_COUNT(dragInfo) dragInfo->destInfo->dropDataCount #define XDND_DEST_VIEW_IS_REGISTERED(dragInfo) ((dragInfo->destInfo) != NULL)\ && ((dragInfo->destInfo->destView->dragDestinationProcs) != NULL) static unsigned char XDNDversion = XDND_VERSION; static WMHandlerID dndDestinationTimer = NULL; static void *idleState(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info); static void *waitEnterState(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info); static void *inspectDropDataState(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info); static void *dropAllowedState(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info); static void *dropNotAllowedState(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info); static void *waitForDropDataState(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info); /* ----- Types & datas list ----- */ static void freeSourceTypeArrayItem(void *type) { XFree(type); } static WMArray *createSourceTypeArray(int initialSize) { return WMCreateArrayWithDestructor(initialSize, freeSourceTypeArrayItem); } static void freeDropDataArrayItem(void *data) { if (data != NULL) WMReleaseData((WMData *) data); } static WMArray *createDropDataArray(WMArray * requiredTypes) { if (requiredTypes != NULL) return WMCreateArrayWithDestructor(WMGetArrayItemCount(requiredTypes), freeDropDataArrayItem); else return WMCreateArray(0); } static WMArray *getTypesFromTypeList(WMScreen * scr, Window sourceWin) { Atom dataType; Atom *typeAtomList; WMArray *typeList; int i, format; unsigned long count, remaining; unsigned char *data = NULL; XGetWindowProperty(scr->display, sourceWin, scr->xdndTypeListAtom, 0, 0x8000000L, False, XA_ATOM, &dataType, &format, &count, &remaining, &data); if (dataType != XA_ATOM || format != XDND_PROPERTY_FORMAT || count == 0 || !data) { if (data) { XFree(data); } return createSourceTypeArray(0); } typeList = createSourceTypeArray(count); typeAtomList = (Atom *) data; for (i = 0; i < count; i++) { WMAddToArray(typeList, XGetAtomName(scr->display, typeAtomList[i])); } XFree(data); return typeList; } static WMArray *getTypesFromThreeTypes(WMScreen * scr, XClientMessageEvent * event) { WMArray *typeList; Atom atom; int i; typeList = createSourceTypeArray(3); for (i = 2; i < 5; i++) { if (event->data.l[i] != None) { atom = (Atom) event->data.l[i]; WMAddToArray(typeList, XGetAtomName(scr->display, atom)); } } return typeList; } static void storeRequiredTypeList(WMDraggingInfo * info) { WMView *destView = XDND_DEST_VIEW(info); WMScreen *scr = W_VIEW_SCREEN(destView); WMArray *requiredTypes; /* First, see if the stored source types are enough for dest requirements */ requiredTypes = destView->dragDestinationProcs->requiredDataTypes(destView, W_ActionToOperation(scr, XDND_SOURCE_ACTION (info)), XDND_SOURCE_TYPES(info)); if (requiredTypes == NULL && XDND_TYPE_LIST_AVAILABLE(info)) { /* None of the stored source types fits, but the whole type list hasn't been retrieved yet. */ WMFreeArray(XDND_SOURCE_TYPES(info)); XDND_SOURCE_TYPES(info) = getTypesFromTypeList(scr, XDND_SOURCE_WIN(info)); /* Don't retrieve the type list again */ XDND_TYPE_LIST_AVAILABLE(info) = False; requiredTypes = destView->dragDestinationProcs->requiredDataTypes(destView, W_ActionToOperation(scr, XDND_SOURCE_ACTION (info)), XDND_SOURCE_TYPES(info)); } XDND_REQUIRED_TYPES(info) = requiredTypes; } static char *getNextRequestedDataType(WMDraggingInfo * info) { /* get the type of the first data not yet retrieved from selection */ int nextTypeIndex; if (XDND_REQUIRED_TYPES(info) != NULL) { nextTypeIndex = WMGetArrayItemCount(XDND_DROP_DATAS(info)); return WMGetFromArray(XDND_REQUIRED_TYPES(info), nextTypeIndex); /* NULL if no more type */ } else return NULL; } /* ----- Action list ----- */ static WMArray *sourceOperationList(WMScreen * scr, Window sourceWin) { Atom dataType, *actionList; int i, size; unsigned long count, remaining; unsigned char *actionDatas = NULL; unsigned char *descriptionList = NULL; WMArray *operationArray; WMDragOperationItem *operationItem; char *description; remaining = 0; XGetWindowProperty(scr->display, sourceWin, scr->xdndActionListAtom, 0, 0x8000000L, False, XA_ATOM, &dataType, &size, &count, &remaining, &actionDatas); if (dataType != XA_ATOM || size != XDND_PROPERTY_FORMAT || count == 0 || !actionDatas) { wwarning("Cannot read action list"); if (actionDatas) { XFree(actionDatas); } return NULL; } actionList = (Atom *) actionDatas; XGetWindowProperty(scr->display, sourceWin, scr->xdndActionDescriptionAtom, 0, 0x8000000L, False, XA_STRING, &dataType, &size, &count, &remaining, &descriptionList); if (dataType != XA_STRING || size != XDND_ACTION_DESCRIPTION_FORMAT || count == 0 || !descriptionList) { wwarning("Cannot read action description list"); if (actionList) { XFree(actionList); } if (descriptionList) { XFree(descriptionList); } return NULL; } operationArray = WMCreateDragOperationArray(count); description = (char *)descriptionList; for (i = 0; count > 0; i++) { size = strlen(description); operationItem = WMCreateDragOperationItem(W_ActionToOperation(scr, actionList[i]), wstrdup(description)); WMAddToArray(operationArray, operationItem); count -= (size + 1); /* -1 : -NULL char */ /* next description */ description = &(description[size + 1]); } XFree(actionList); XFree(descriptionList); return operationArray; } /* ----- Dragging Info ----- */ static void updateSourceWindow(WMDraggingInfo * info, XClientMessageEvent * event) { XDND_SOURCE_WIN(info) = (Window) event->data.l[0]; } static WMView *findChildInView(WMView * parent, int x, int y) { if (parent->childrenList == NULL) return parent; else { WMView *child = parent->childrenList; while (child != NULL && (!child->flags.mapped || x < WMGetViewPosition(child).x || x > WMGetViewPosition(child).x + WMGetViewSize(child).width || y < WMGetViewPosition(child).y || y > WMGetViewPosition(child).y + WMGetViewSize(child).height)) child = child->nextSister; if (child == NULL) return parent; else return findChildInView(child, x - WMGetViewPosition(child).x, y - WMGetViewPosition(child).y); } } static WMView *findDestinationViewInToplevel(WMView * toplevel, int x, int y) { WMScreen *scr = W_VIEW_SCREEN(toplevel); Window toplevelWin = WMViewXID(toplevel); int xInToplevel, yInToplevel; Window foo; XTranslateCoordinates(scr->display, scr->rootWin, toplevelWin, x, y, &xInToplevel, &yInToplevel, &foo); return findChildInView(toplevel, xInToplevel, yInToplevel); } /* Clear datas only used by current destination view */ static void freeDestinationViewInfos(WMDraggingInfo * info) { if (XDND_SOURCE_TYPES(info) != NULL) { WMFreeArray(XDND_SOURCE_TYPES(info)); XDND_SOURCE_TYPES(info) = NULL; } if (XDND_DROP_DATAS(info) != NULL) { WMFreeArray(XDND_DROP_DATAS(info)); XDND_DROP_DATAS(info) = NULL; } XDND_REQUIRED_TYPES(info) = NULL; } void W_DragDestinationInfoClear(WMDraggingInfo * info) { W_DragDestinationStopTimer(); if (XDND_DEST_INFO(info) != NULL) { freeDestinationViewInfos(info); wfree(XDND_DEST_INFO(info)); XDND_DEST_INFO(info) = NULL; } } static void initDestinationDragInfo(WMDraggingInfo * info, WMView * destView) { wassertr(destView != NULL); XDND_DEST_INFO(info) = (W_DragDestinationInfo *) wmalloc(sizeof(W_DragDestinationInfo)); XDND_DEST_STATE(info) = idleState; XDND_DEST_VIEW(info) = destView; XDND_SOURCE_ACTION_CHANGED(info) = False; XDND_SOURCE_TYPES(info) = NULL; XDND_REQUIRED_TYPES(info) = NULL; XDND_DROP_DATAS(info) = NULL; } void W_DragDestinationStoreEnterMsgInfo(WMDraggingInfo * info, WMView * toplevel, XClientMessageEvent * event) { WMScreen *scr = W_VIEW_SCREEN(toplevel); if (XDND_DEST_INFO(info) == NULL) initDestinationDragInfo(info, toplevel); XDND_SOURCE_VERSION(info) = (event->data.l[1] >> 24); XDND_AWARE_VIEW(info) = toplevel; updateSourceWindow(info, event); #if 0 if (event->data.l[1] & 1) /* XdndTypeList property is available */ XDND_SOURCE_TYPES(info) = getTypesFromTypeList(scr, XDND_SOURCE_WIN(info)); else XDND_SOURCE_TYPES(info) = getTypesFromThreeTypes(scr, event); #endif XDND_SOURCE_TYPES(info) = getTypesFromThreeTypes(scr, event); /* to use if the 3 types are not enough */ XDND_TYPE_LIST_AVAILABLE(info) = (event->data.l[1] & 1); } void W_DragDestinationStorePositionMsgInfo(WMDraggingInfo * info, WMView * toplevel, XClientMessageEvent * event) { int x = event->data.l[2] >> 16; int y = event->data.l[2] & 0xffff; WMView *newDestView; newDestView = findDestinationViewInToplevel(toplevel, x, y); if (XDND_DEST_INFO(info) == NULL) { initDestinationDragInfo(info, newDestView); XDND_AWARE_VIEW(info) = toplevel; updateSourceWindow(info, event); } else { if (newDestView != XDND_DEST_VIEW(info)) { updateSourceWindow(info, event); XDND_DEST_VIEW(info) = newDestView; XDND_SOURCE_ACTION_CHANGED(info) = False; if (XDND_DEST_STATE(info) != waitEnterState) XDND_DEST_STATE(info) = idleState; } else { XDND_SOURCE_ACTION_CHANGED(info) = (XDND_SOURCE_ACTION(info) != event->data.l[4]); } } XDND_SOURCE_ACTION(info) = event->data.l[4]; /* note: source position is not stored */ } /* ----- End of Dragging Info ----- */ /* ----- Messages ----- */ /* send a DnD message to the source window */ static void sendDnDClientMessage(WMDraggingInfo * info, Atom message, unsigned long data1, unsigned long data2, unsigned long data3, unsigned long data4) { if (!W_SendDnDClientMessage(W_VIEW_SCREEN(XDND_AWARE_VIEW(info))->display, XDND_SOURCE_WIN(info), message, WMViewXID(XDND_AWARE_VIEW(info)), data1, data2, data3, data4)) { /* drop failed */ W_DragDestinationInfoClear(info); } } /* send a xdndStatus message to the source, with position and size of the destination if it has no subwidget (requesting a position message on every move otherwise) */ static void sendStatusMessage(WMView * destView, WMDraggingInfo * info, Atom action) { unsigned long data1; data1 = (action == None) ? 0 : 1; if (destView->childrenList == NULL) { WMScreen *scr = W_VIEW_SCREEN(destView); int destX, destY; WMSize destSize = WMGetViewSize(destView); Window foo; XTranslateCoordinates(scr->display, WMViewXID(destView), scr->rootWin, 0, 0, &destX, &destY, &foo); sendDnDClientMessage(info, W_VIEW_SCREEN(destView)->xdndStatusAtom, data1, (destX << 16) | destY, (destSize.width << 16) | destSize.height, action); } else { /* set bit 1 to request explicitly position message on every move */ data1 = data1 | 2; sendDnDClientMessage(info, W_VIEW_SCREEN(destView)->xdndStatusAtom, data1, 0, 0, action); } } static void storeDropData(WMView * destView, Atom selection, Atom target, Time timestamp, void *cdata, WMData * data) { WMScreen *scr = W_VIEW_SCREEN(destView); WMDraggingInfo *info = &(scr->dragInfo); WMData *dataToStore = NULL; if (data != NULL) dataToStore = WMRetainData(data); if (XDND_DEST_INFO(info) != NULL && XDND_DROP_DATAS(info) != NULL) { WMAddToArray(XDND_DROP_DATAS(info), dataToStore); W_SendDnDClientMessage(scr->display, WMViewXID(destView), scr->xdndSelectionAtom, WMViewXID(destView), 0, 0, 0, 0); } } static Bool requestDropDataInSelection(WMView * destView, const char *type) { WMScreen *scr = W_VIEW_SCREEN(destView); if (type != NULL) { if (!WMRequestSelection(destView, scr->xdndSelectionAtom, XInternAtom(scr->display, type, False), CurrentTime, storeDropData, NULL)) { wwarning("could not request data for dropped data"); return False; } return True; } return False; } static Bool requestDropData(WMDraggingInfo * info) { WMView *destView = XDND_DEST_VIEW(info); char *nextType = getNextRequestedDataType(info); while ((nextType != NULL) && (!requestDropDataInSelection(destView, nextType))) { /* store NULL if request failed, and try with next type */ WMAddToArray(XDND_DROP_DATAS(info), NULL); nextType = getNextRequestedDataType(info); } /* remains types to retrieve ? */ return (nextType != NULL); } static void concludeDrop(WMView * destView) { destView->dragDestinationProcs->concludeDragOperation(destView); } /* send cancel message to the source */ static void cancelDrop(WMView * destView, WMDraggingInfo * info) { sendStatusMessage(destView, info, None); concludeDrop(destView); freeDestinationViewInfos(info); } /* suspend drop, when dragged icon enter an unregistered view or a register view that doesn't accept the drop */ static void suspendDropAuthorization(WMView * destView, WMDraggingInfo * info) { sendStatusMessage(destView, info, None); /* Free datas that depend on destination behaviour */ if (XDND_DROP_DATAS(info) != NULL) { WMFreeArray(XDND_DROP_DATAS(info)); XDND_DROP_DATAS(info) = NULL; } XDND_REQUIRED_TYPES(info) = NULL; } /* cancel drop on Enter message, if protocol version is nok */ void W_DragDestinationCancelDropOnEnter(WMView * toplevel, WMDraggingInfo * info) { if (XDND_DEST_VIEW_IS_REGISTERED(info)) cancelDrop(XDND_DEST_VIEW(info), info); else sendStatusMessage(toplevel, info, None); W_DragDestinationInfoClear(info); } static void finishDrop(WMView * destView, WMDraggingInfo * info) { sendDnDClientMessage(info, W_VIEW_SCREEN(destView)->xdndFinishedAtom, 0, 0, 0, 0); concludeDrop(destView); W_DragDestinationInfoClear(info); } static Atom getAllowedAction(WMView * destView, WMDraggingInfo * info) { WMScreen *scr = W_VIEW_SCREEN(destView); return W_OperationToAction(scr, destView->dragDestinationProcs->allowedOperation(destView, W_ActionToOperation(scr, XDND_SOURCE_ACTION (info)), XDND_SOURCE_TYPES(info))); } static void *checkActionAllowed(WMView * destView, WMDraggingInfo * info) { XDND_DEST_ACTION(info) = getAllowedAction(destView, info); if (XDND_DEST_ACTION(info) == None) { suspendDropAuthorization(destView, info); return dropNotAllowedState; } sendStatusMessage(destView, info, XDND_DEST_ACTION(info)); return dropAllowedState; } static void *checkDropAllowed(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info) { storeRequiredTypeList(info); if (destView->dragDestinationProcs->inspectDropData != NULL) { XDND_DROP_DATAS(info) = createDropDataArray(XDND_REQUIRED_TYPES(info)); /* store first available data */ if (requestDropData(info)) return inspectDropDataState; /* no data retrieved, but inspect can allow it */ if (destView->dragDestinationProcs->inspectDropData(destView, XDND_DROP_DATAS(info))) return checkActionAllowed(destView, info); suspendDropAuthorization(destView, info); return dropNotAllowedState; } return checkActionAllowed(destView, info); } static WMPoint *getDropLocationInView(WMView * view) { Window rootWin, childWin; int rootX, rootY; unsigned int mask; WMPoint *location; location = (WMPoint *) wmalloc(sizeof(WMPoint)); XQueryPointer(W_VIEW_SCREEN(view)->display, WMViewXID(view), &rootWin, &childWin, &rootX, &rootY, &(location->x), &(location->y), &mask); return location; } static void callPerformDragOperation(WMView * destView, WMDraggingInfo * info) { WMArray *operationList = NULL; WMScreen *scr = W_VIEW_SCREEN(destView); WMPoint *dropLocation; if (XDND_SOURCE_ACTION(info) == scr->xdndActionAsk) operationList = sourceOperationList(scr, XDND_SOURCE_WIN(info)); dropLocation = getDropLocationInView(destView); destView->dragDestinationProcs->performDragOperation(destView, XDND_DROP_DATAS(info), operationList, dropLocation); wfree(dropLocation); if (operationList != NULL) WMFreeArray(operationList); } /* ----- Destination timer ----- */ static void dragSourceResponseTimeOut(void *destView) { WMView *view = (WMView *) destView; WMDraggingInfo *info; wwarning("delay for drag source response expired"); info = &(W_VIEW_SCREEN(view)->dragInfo); if (XDND_DEST_VIEW_IS_REGISTERED(info)) cancelDrop(view, info); else { sendStatusMessage(view, info, None); } W_DragDestinationInfoClear(info); } void W_DragDestinationStopTimer() { if (dndDestinationTimer != NULL) { WMDeleteTimerHandler(dndDestinationTimer); dndDestinationTimer = NULL; } } void W_DragDestinationStartTimer(WMDraggingInfo * info) { W_DragDestinationStopTimer(); if (XDND_DEST_STATE(info) != idleState) dndDestinationTimer = WMAddTimerHandler(XDND_SOURCE_RESPONSE_MAX_DELAY, dragSourceResponseTimeOut, XDND_DEST_VIEW(info)); } /* ----- End of Destination timer ----- */ /* ----- Destination states ----- */ #ifdef XDND_DEBUG static const char *stateName(W_DndState * state) { if (state == NULL) return "no state defined"; if (state == idleState) return "idleState"; if (state == waitEnterState) return "waitEnterState"; if (state == inspectDropDataState) return "inspectDropDataState"; if (state == dropAllowedState) return "dropAllowedState"; if (state == dropNotAllowedState) return "dropNotAllowedState"; if (state == waitForDropDataState) return "waitForDropDataState"; return "unknown state"; } #endif static void *idleState(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info) { WMScreen *scr; Atom sourceMsg; if (destView->dragDestinationProcs != NULL) { scr = W_VIEW_SCREEN(destView); sourceMsg = event->message_type; if (sourceMsg == scr->xdndPositionAtom) { destView->dragDestinationProcs->prepareForDragOperation(destView); if (XDND_SOURCE_TYPES(info) != NULL) { /* enter message infos are available */ return checkDropAllowed(destView, event, info); } /* waiting for enter message */ return waitEnterState; } } suspendDropAuthorization(destView, info); return idleState; } /* Source position and action are stored, waiting for xdnd protocol version and source type */ static void *waitEnterState(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info) { WMScreen *scr = W_VIEW_SCREEN(destView); Atom sourceMsg = event->message_type; if (sourceMsg == scr->xdndEnterAtom) { W_DragDestinationStoreEnterMsgInfo(info, destView, event); return checkDropAllowed(destView, event, info); } return waitEnterState; } /* We have requested a data, and have received it */ static void *inspectDropDataState(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info) { WMScreen *scr; Atom sourceMsg; scr = W_VIEW_SCREEN(destView); sourceMsg = event->message_type; if (sourceMsg == scr->xdndSelectionAtom) { /* a data has been retrieved, store next available */ if (requestDropData(info)) return inspectDropDataState; /* all required (and available) datas are stored */ if (destView->dragDestinationProcs->inspectDropData(destView, XDND_DROP_DATAS(info))) return checkActionAllowed(destView, info); suspendDropAuthorization(destView, info); return dropNotAllowedState; } return inspectDropDataState; } static void *dropNotAllowedState(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info) { WMScreen *scr = W_VIEW_SCREEN(destView); Atom sourceMsg = event->message_type; if (sourceMsg == scr->xdndDropAtom) { finishDrop(destView, info); return idleState; } if (sourceMsg == scr->xdndPositionAtom) { if (XDND_SOURCE_ACTION_CHANGED(info)) { return checkDropAllowed(destView, event, info); } else { sendStatusMessage(destView, info, None); return dropNotAllowedState; } } return dropNotAllowedState; } static void *dropAllowedState(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info) { WMScreen *scr = W_VIEW_SCREEN(destView); Atom sourceMsg = event->message_type; if (sourceMsg == scr->xdndDropAtom) { if (XDND_DROP_DATAS(info) != NULL) { /* drop datas were cached with inspectDropData call */ callPerformDragOperation(destView, info); } else { XDND_DROP_DATAS(info) = createDropDataArray(XDND_REQUIRED_TYPES(info)); /* store first available data */ if (requestDropData(info)) return waitForDropDataState; /* no data retrieved */ callPerformDragOperation(destView, info); } finishDrop(destView, info); return idleState; } if (sourceMsg == scr->xdndPositionAtom) { if (XDND_SOURCE_ACTION_CHANGED(info)) { return checkDropAllowed(destView, event, info); } else { sendStatusMessage(destView, info, XDND_DEST_ACTION(info)); return dropAllowedState; } } return dropAllowedState; } static void *waitForDropDataState(WMView * destView, XClientMessageEvent * event, WMDraggingInfo * info) { WMScreen *scr = W_VIEW_SCREEN(destView); Atom sourceMsg = event->message_type; if (sourceMsg == scr->xdndSelectionAtom) { /* store next data */ if (requestDropData(info)) return waitForDropDataState; /* all required (and available) datas are stored */ callPerformDragOperation(destView, info); finishDrop(destView, info); return idleState; } return waitForDropDataState; } /* ----- End of Destination states ----- */ void W_DragDestinationStateHandler(WMDraggingInfo * info, XClientMessageEvent * event) { WMView *destView; W_DndState *newState; wassertr(XDND_DEST_INFO(info) != NULL); wassertr(XDND_DEST_VIEW(info) != NULL); destView = XDND_DEST_VIEW(info); if (XDND_DEST_STATE(info) == NULL) XDND_DEST_STATE(info) = idleState; #ifdef XDND_DEBUG printf("current dest state: %s\n", stateName(XDND_DEST_STATE(info))); #endif newState = (W_DndState *) XDND_DEST_STATE(info) (destView, event, info); #ifdef XDND_DEBUG printf("new dest state: %s\n", stateName(newState)); #endif if (XDND_DEST_INFO(info) != NULL) { XDND_DEST_STATE(info) = newState; if (XDND_DEST_STATE(info) != idleState) W_DragDestinationStartTimer(info); } } static void realizedObserver(void *self, WMNotification * notif) { WMView *view = (WMView *) WMGetNotificationObject(notif); WMScreen *scr = W_VIEW_SCREEN(view); XChangeProperty(scr->display, W_VIEW_DRAWABLE(view), scr->xdndAwareAtom, XA_ATOM, XDND_PROPERTY_FORMAT, PropModeReplace, &XDNDversion, 1); WMRemoveNotificationObserver(self); } static void W_SetXdndAwareProperty(WMScreen * scr, WMView * view, Atom * types, int typeCount) { WMView *toplevel = W_TopLevelOfView(view); if (!toplevel->flags.xdndHintSet) { toplevel->flags.xdndHintSet = 1; if (toplevel->flags.realized) { XChangeProperty(scr->display, W_VIEW_DRAWABLE(toplevel), scr->xdndAwareAtom, XA_ATOM, XDND_PROPERTY_FORMAT, PropModeReplace, &XDNDversion, 1); } else { WMAddNotificationObserver(realizedObserver, /* just use as an id */ &view->dragDestinationProcs, WMViewRealizedNotification, toplevel); } } } void WMRegisterViewForDraggedTypes(WMView * view, WMArray * acceptedTypes) { Atom *types; int typeCount; int i; typeCount = WMGetArrayItemCount(acceptedTypes); types = wmalloc(sizeof(Atom) * (typeCount + 1)); for (i = 0; i < typeCount; i++) { types[i] = XInternAtom(W_VIEW_SCREEN(view)->display, WMGetFromArray(acceptedTypes, i), False); } types[i] = 0; view->droppableTypes = types; /* WMFreeArray(acceptedTypes); */ W_SetXdndAwareProperty(W_VIEW_SCREEN(view), view, types, typeCount); } void WMUnregisterViewDraggedTypes(WMView * view) { if (view->droppableTypes != NULL) wfree(view->droppableTypes); view->droppableTypes = NULL; } /* requestedOperation: operation requested by the source sourceDataTypes: data types (mime-types strings) supported by the source (never NULL, destroyed when drop ends) return operation allowed by destination (self) */ static WMDragOperationType defAllowedOperation(WMView * self, WMDragOperationType requestedOperation, WMArray * sourceDataTypes) { /* no operation allowed */ return WDOperationNone; } /* requestedOperation: operation requested by the source sourceDataTypes: data types (mime-types strings) supported by the source (never NULL, destroyed when drop ends) return data types (mime-types strings) required by destination (self) or NULL if no suitable data type is available (force to 2nd pass with full source type list). */ static WMArray *defRequiredDataTypes(WMView * self, WMDragOperationType requestedOperation, WMArray * sourceDataTypes) { /* no data type allowed (NULL even at 2nd pass) */ return NULL; } /* Executed when the drag enters destination (self) */ static void defPrepareForDragOperation(WMView * self) { } /* Checks datas to be dropped (optional). dropDatas: datas (WMData*) required by destination (self) (given in same order as returned by requiredDataTypes). A NULL data means it couldn't be retreived. Destroyed when drop ends. return true if data array is ok */ /* Bool (*inspectDropData)(WMView *self, WMArray *dropDatas); */ /* Process drop dropDatas: datas (WMData*) required by destination (self) (given in same order as returned by requiredDataTypes). A NULL data means it couldn't be retrieved. Destroyed when drop ends. operationList: if source operation is WDOperationAsk, contains operations (and associated texts) that can be asked to source. (destroyed after performDragOperation call) Otherwise this parameter is NULL. */ static void defPerformDragOperation(WMView * self, WMArray * dropDatas, WMArray * operationList, WMPoint * dropLocation) { } /* Executed after drop */ static void defConcludeDragOperation(WMView * self) { } void WMSetViewDragDestinationProcs(WMView * view, WMDragDestinationProcs * procs) { if (view->dragDestinationProcs == NULL) { view->dragDestinationProcs = wmalloc(sizeof(WMDragDestinationProcs)); } else { free(view->dragDestinationProcs); } *view->dragDestinationProcs = *procs; /*XXX fill in non-implemented stuffs */ if (procs->allowedOperation == NULL) { view->dragDestinationProcs->allowedOperation = defAllowedOperation; } if (procs->allowedOperation == NULL) { view->dragDestinationProcs->requiredDataTypes = defRequiredDataTypes; } /* note: inspectDropData can be NULL, if data consultation is not needed to give drop permission */ if (procs->prepareForDragOperation == NULL) { view->dragDestinationProcs->prepareForDragOperation = defPrepareForDragOperation; } if (procs->performDragOperation == NULL) { view->dragDestinationProcs->performDragOperation = defPerformDragOperation; } if (procs->concludeDragOperation == NULL) { view->dragDestinationProcs->concludeDragOperation = defConcludeDragOperation; } } WindowMaker-0.95.5/WINGs/wappresource.c0000644000175000017500000000653012214432632014577 00000000000000 #include #include "WINGsP.h" #include #include "GNUstep.h" void WMSetApplicationIconWindow(WMScreen * scr, Window window) { scr->applicationIconWindow = window; if (scr->groupLeader) { XWMHints *hints; hints = XGetWMHints(scr->display, scr->groupLeader); hints->flags |= IconWindowHint; hints->icon_window = window; XSetWMHints(scr->display, scr->groupLeader, hints); XFree(hints); } } void WMSetApplicationIconImage(WMScreen * scr, RImage * image) { WMPixmap *icon; if (scr->applicationIconImage == image) return; if (scr->applicationIconImage) RReleaseImage(scr->applicationIconImage); scr->applicationIconImage = RRetainImage(image); /* TODO: check whether we should set the pixmap only if there's none yet */ if (image != NULL && (icon = WMCreatePixmapFromRImage(scr, image, 128)) != NULL) { WMSetApplicationIconPixmap(scr, icon); WMReleasePixmap(icon); } } RImage *WMGetApplicationIconImage(WMScreen * scr) { return scr->applicationIconImage; } void WMSetApplicationIconPixmap(WMScreen * scr, WMPixmap * icon) { if (scr->applicationIconPixmap == icon) return; if (scr->applicationIconPixmap) WMReleasePixmap(scr->applicationIconPixmap); scr->applicationIconPixmap = WMRetainPixmap(icon); if (scr->groupLeader) { XWMHints *hints; hints = XGetWMHints(scr->display, scr->groupLeader); hints->flags |= IconPixmapHint | IconMaskHint; hints->icon_pixmap = (icon != NULL ? icon->pixmap : None); hints->icon_mask = (icon != NULL ? icon->mask : None); XSetWMHints(scr->display, scr->groupLeader, hints); XFree(hints); } } WMPixmap *WMGetApplicationIconPixmap(WMScreen * scr) { return scr->applicationIconPixmap; } WMPixmap *WMCreateApplicationIconBlendedPixmap(WMScreen * scr, const RColor * color) { WMPixmap *pix; if (scr->applicationIconImage) { static const RColor gray = { /* red */ 0xAE, /* green */ 0xAA, /* blue */ 0xAE, /* alpha */ 0xFF }; if (!color) color = &gray; pix = WMCreateBlendedPixmapFromRImage(scr, scr->applicationIconImage, color); } else { pix = NULL; } return pix; } void WMSetApplicationHasAppIcon(WMScreen * scr, Bool flag) { scr->aflags.hasAppIcon = ((flag == 0) ? 0 : 1); } void W_InitApplication(WMScreen * scr) { Window leader; XClassHint *classHint; XWMHints *hints; leader = XCreateSimpleWindow(scr->display, scr->rootWin, -1, -1, 1, 1, 0, 0, 0); if (!scr->aflags.simpleApplication) { classHint = XAllocClassHint(); classHint->res_name = "groupLeader"; classHint->res_class = WMApplication.applicationName; XSetClassHint(scr->display, leader, classHint); XFree(classHint); XSetCommand(scr->display, leader, WMApplication.argv, WMApplication.argc); hints = XAllocWMHints(); hints->flags = WindowGroupHint; hints->window_group = leader; /* This code will never actually be reached, because to have * scr->applicationIconPixmap set we need to have a screen first, * but this function is called in the screen creation process. * -Dan */ if (scr->applicationIconPixmap) { hints->flags |= IconPixmapHint; hints->icon_pixmap = scr->applicationIconPixmap->pixmap; if (scr->applicationIconPixmap->mask) { hints->flags |= IconMaskHint; hints->icon_mask = scr->applicationIconPixmap->mask; } } XSetWMHints(scr->display, leader, hints); XFree(hints); } scr->groupLeader = leader; } WindowMaker-0.95.5/WINGs/tree.c0000644000175000017500000001212112214432632013010 00000000000000 #include #include "WUtil.h" typedef struct W_TreeNode { void *data; /*unsigned int uflags:16; */ WMArray *leaves; int depth; struct W_TreeNode *parent; WMFreeDataProc *destructor; } W_TreeNode; static void destroyNode(void *data) { WMTreeNode *aNode = (WMTreeNode *) data; if (aNode->destructor) { (*aNode->destructor) (aNode->data); } if (aNode->leaves) { WMFreeArray(aNode->leaves); } wfree(aNode); } WMTreeNode *WMCreateTreeNode(void *data) { return WMCreateTreeNodeWithDestructor(data, NULL); } WMTreeNode *WMCreateTreeNodeWithDestructor(void *data, WMFreeDataProc * destructor) { WMTreeNode *aNode; aNode = (WMTreeNode *) wmalloc(sizeof(W_TreeNode)); aNode->destructor = destructor; aNode->data = data; aNode->parent = NULL; aNode->depth = 0; aNode->leaves = NULL; /*aNode->leaves = WMCreateArrayWithDestructor(1, destroyNode); */ return aNode; } WMTreeNode *WMInsertItemInTree(WMTreeNode * parent, int index, void *item) { WMTreeNode *aNode; wassertrv(parent != NULL, NULL); aNode = WMCreateTreeNodeWithDestructor(item, parent->destructor); aNode->parent = parent; aNode->depth = parent->depth + 1; if (!parent->leaves) { parent->leaves = WMCreateArrayWithDestructor(1, destroyNode); } if (index < 0) { WMAddToArray(parent->leaves, aNode); } else { WMInsertInArray(parent->leaves, index, aNode); } return aNode; } static void updateNodeDepth(WMTreeNode * aNode, int depth) { int i; aNode->depth = depth; if (aNode->leaves) { for (i = 0; i < WMGetArrayItemCount(aNode->leaves); i++) { updateNodeDepth(WMGetFromArray(aNode->leaves, i), depth + 1); } } } WMTreeNode *WMInsertNodeInTree(WMTreeNode * parent, int index, WMTreeNode * aNode) { wassertrv(parent != NULL, NULL); wassertrv(aNode != NULL, NULL); aNode->parent = parent; updateNodeDepth(aNode, parent->depth + 1); if (!parent->leaves) { parent->leaves = WMCreateArrayWithDestructor(1, destroyNode); } if (index < 0) { WMAddToArray(parent->leaves, aNode); } else { WMInsertInArray(parent->leaves, index, aNode); } return aNode; } void WMDestroyTreeNode(WMTreeNode * aNode) { wassertr(aNode != NULL); if (aNode->parent && aNode->parent->leaves) { WMRemoveFromArray(aNode->parent->leaves, aNode); } else { destroyNode(aNode); } } void WMDeleteLeafForTreeNode(WMTreeNode * aNode, int index) { wassertr(aNode != NULL); wassertr(aNode->leaves != NULL); WMDeleteFromArray(aNode->leaves, index); } static int sameData(const void *item, const void *data) { return (((WMTreeNode *) item)->data == data); } void WMRemoveLeafForTreeNode(WMTreeNode * aNode, void *leaf) { int index; wassertr(aNode != NULL); wassertr(aNode->leaves != NULL); index = WMFindInArray(aNode->leaves, sameData, leaf); if (index != WANotFound) { WMDeleteFromArray(aNode->leaves, index); } } void *WMReplaceDataForTreeNode(WMTreeNode * aNode, void *newData) { void *old; wassertrv(aNode != NULL, NULL); old = aNode->data; aNode->data = newData; return old; } void *WMGetDataForTreeNode(WMTreeNode * aNode) { return aNode->data; } int WMGetTreeNodeDepth(WMTreeNode * aNode) { return aNode->depth; } WMTreeNode *WMGetParentForTreeNode(WMTreeNode * aNode) { return aNode->parent; } void WMSortLeavesForTreeNode(WMTreeNode * aNode, WMCompareDataProc * comparer) { wassertr(aNode != NULL); if (aNode->leaves) { WMSortArray(aNode->leaves, comparer); } } static void sortLeavesForNode(WMTreeNode * aNode, WMCompareDataProc * comparer) { int i; if (!aNode->leaves) return; WMSortArray(aNode->leaves, comparer); for (i = 0; i < WMGetArrayItemCount(aNode->leaves); i++) { sortLeavesForNode(WMGetFromArray(aNode->leaves, i), comparer); } } void WMSortTree(WMTreeNode * aNode, WMCompareDataProc * comparer) { wassertr(aNode != NULL); sortLeavesForNode(aNode, comparer); } static WMTreeNode *findNodeInTree(WMTreeNode * aNode, WMMatchDataProc * match, void *cdata, int limit) { if (match == NULL && aNode->data == cdata) return aNode; else if ((*match) (aNode->data, cdata)) return aNode; if (aNode->leaves && limit != 0) { WMTreeNode *leaf; int i; for (i = 0; i < WMGetArrayItemCount(aNode->leaves); i++) { leaf = findNodeInTree(WMGetFromArray(aNode->leaves, i), match, cdata, limit > 0 ? limit - 1 : limit); if (leaf) return leaf; } } return NULL; } WMTreeNode *WMFindInTree(WMTreeNode * aTree, WMMatchDataProc * match, void *cdata) { wassertrv(aTree != NULL, NULL); return findNodeInTree(aTree, match, cdata, -1); } WMTreeNode *WMFindInTreeWithDepthLimit(WMTreeNode * aTree, WMMatchDataProc * match, void *cdata, int limit) { wassertrv(aTree != NULL, NULL); wassertrv(limit >= 0, NULL); return findNodeInTree(aTree, match, cdata, limit); } void WMTreeWalk(WMTreeNode * aNode, WMTreeWalkProc * walk, void *data, Bool DepthFirst) { int i; WMTreeNode *leaf; wassertr(aNode != NULL); if (DepthFirst) (*walk)(aNode, data); if (aNode->leaves) { for (i = 0; i < WMGetArrayItemCount(aNode->leaves); i++) { leaf = (WMTreeNode *)WMGetFromArray(aNode->leaves, i); WMTreeWalk(leaf, walk, data, DepthFirst); } } if (!DepthFirst) (*walk)(aNode, data); } WindowMaker-0.95.5/WINGs/wapplication.c0000644000175000017500000000740112214432632014550 00000000000000 #include #include #include "WINGsP.h" #include "wconfig.h" struct W_Application WMApplication; char *_WINGS_progname = NULL; Bool W_ApplicationInitialized(void) { return _WINGS_progname != NULL; } void WMInitializeApplication(const char *applicationName, int *argc, char **argv) { int i; assert(argc != NULL); assert(argv != NULL); assert(applicationName != NULL); setlocale(LC_ALL, ""); #ifdef I18N if (getenv("NLSPATH")) bindtextdomain("WINGs", getenv("NLSPATH")); else bindtextdomain("WINGs", LOCALEDIR); bind_textdomain_codeset("WINGs", "UTF-8"); #endif _WINGS_progname = argv[0]; WMApplication.applicationName = wstrdup(applicationName); WMApplication.argc = *argc; WMApplication.argv = wmalloc((*argc + 1) * sizeof(char *)); for (i = 0; i < *argc; i++) { WMApplication.argv[i] = wstrdup(argv[i]); } WMApplication.argv[i] = NULL; /* initialize notification center */ W_InitNotificationCenter(); } void WMSetResourcePath(const char *path) { if (WMApplication.resourcePath) wfree(WMApplication.resourcePath); WMApplication.resourcePath = wstrdup(path); } char *WMGetApplicationName() { return WMApplication.applicationName; } static char *checkFile(const char *path, const char *folder, const char *ext, const char *resource) { char *ret; int extralen; size_t slen; if (!path || !resource) return NULL; extralen = (ext ? strlen(ext) + 1 : 0) + (folder ? strlen(folder) + 1 : 0) + 1; slen = strlen(path) + strlen(resource) + 1 + extralen; ret = wmalloc(slen); if (wstrlcpy(ret, path, slen) >= slen) goto error; if (folder && (wstrlcat(ret, "/", slen) >= slen || wstrlcat(ret, folder, slen) >= slen)) goto error; if (ext && (wstrlcat(ret, "/", slen) >= slen || wstrlcat(ret, ext, slen) >= slen)) goto error; if (wstrlcat(ret, "/", slen) >= slen || wstrlcat(ret, resource, slen) >= slen) goto error; if (access(ret, F_OK) != 0) goto error; return ret; error: if (ret) wfree(ret); return NULL; } char *WMPathForResourceOfType(const char *resource, const char *ext) { char *path, *tmp, *appdir; int i; size_t slen; path = tmp = appdir = NULL; /* * Paths are searched in this order: * - resourcePath/ext * - dirname(argv[0])/ext * - GNUSTEP_USER_ROOT/Applications/ApplicationName.app/ext * - ~/GNUstep/Applications/ApplicationName.app/ext * - GNUSTEP_LOCAL_ROOT/Applications/ApplicationName.app/ext * - /usr/local/GNUstep/Applications/ApplicationName.app/ext * - GNUSTEP_SYSTEM_ROOT/Applications/ApplicationName.app/ext * - /usr/GNUstep/Applications/ApplicationName.app/ext */ if (WMApplication.resourcePath) { path = checkFile(WMApplication.resourcePath, NULL, ext, resource); if (path) goto out; } if (WMApplication.argv[0]) { tmp = wstrdup(WMApplication.argv[0]); i = strlen(tmp); while (i > 0 && tmp[i] != '/') i--; tmp[i] = 0; if (i > 0) { path = checkFile(tmp, NULL, ext, resource); } else { path = NULL; } goto out; } slen = strlen(WMApplication.applicationName) + sizeof("Applications/.app"); appdir = wmalloc(slen); if (snprintf(appdir, slen, "Applications/%s.app", WMApplication.applicationName) >= slen) goto out; path = checkFile(getenv("GNUSTEP_USER_ROOT"), appdir, ext, resource); if (path) goto out; path = checkFile(wusergnusteppath(), appdir, ext, resource); if (path) goto out; path = checkFile(getenv("GNUSTEP_LOCAL_ROOT"), appdir, ext, resource); if (path) goto out; path = checkFile("/usr/local/GNUstep", appdir, ext, resource); if (path) goto out; path = checkFile(getenv("GNUSTEP_SYSTEM_ROOT"), appdir, ext, resource); if (path) goto out; path = checkFile("/usr/GNUstep", appdir, ext, resource); /* falls through */ out: if (tmp) wfree(tmp); if (appdir) wfree(appdir); return path; } WindowMaker-0.95.5/WINGs/wbrowser.c0000644000175000017500000006757712214432632013754 00000000000000 #include "WINGsP.h" #include /* for : double rint (double) */ typedef struct W_Browser { W_Class widgetClass; W_View *view; char **titles; WMList **columns; short columnCount; short usedColumnCount; /* columns actually being used */ short minColumnWidth; short maxVisibleColumns; short firstVisibleColumn; short titleHeight; short selectedColumn; WMSize columnSize; void *clientData; WMAction *action; void *doubleClientData; WMAction *doubleAction; WMBrowserDelegate *delegate; WMScroller *scroller; char *pathSeparator; struct { unsigned int isTitled:1; unsigned int allowMultipleSelection:1; unsigned int allowEmptySelection:1; unsigned int hasScroller:1; /* */ unsigned int loaded:1; unsigned int loadingColumn:1; } flags; } Browser; #define COLUMN_SPACING 4 #define TITLE_SPACING 2 #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 COLUMN_IS_VISIBLE(b, c) ((c) >= (b)->firstVisibleColumn \ && (c) < (b)->firstVisibleColumn + (b)->maxVisibleColumns) static void handleEvents(XEvent * event, void *data); static void destroyBrowser(WMBrowser * bPtr); static void setupScroller(WMBrowser * bPtr); 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, const char *text, int *textLen, int width); static void willResizeBrowser(W_ViewDelegate *, WMView *, unsigned int *, unsigned int *); W_ViewDelegate _BrowserViewDelegate = { NULL, NULL, NULL, NULL, willResizeBrowser }; WMBrowser *WMCreateBrowser(WMWidget * parent) { WMBrowser *bPtr; int i; wassertrv(parent, NULL); bPtr = wmalloc(sizeof(WMBrowser)); bPtr->widgetClass = WC_Browser; bPtr->view = W_CreateView(W_VIEW(parent)); if (!bPtr->view) { wfree(bPtr); return NULL; } bPtr->view->self = bPtr; bPtr->view->delegate = &_BrowserViewDelegate; WMCreateEventHandler(bPtr->view, ExposureMask | StructureNotifyMask | ClientMessageMask, handleEvents, bPtr); /* default configuration */ bPtr->flags.hasScroller = DEFAULT_HAS_SCROLLER; bPtr->titleHeight = DEFAULT_TITLE_HEIGHT; bPtr->flags.isTitled = DEFAULT_IS_TITLED; bPtr->maxVisibleColumns = DEFAULT_MAX_VISIBLE_COLUMNS; WMResizeWidget(bPtr, DEFAULT_WIDTH, DEFAULT_HEIGHT); bPtr->pathSeparator = wstrdup(DEFAULT_SEPARATOR); if (bPtr->flags.hasScroller) setupScroller(bPtr); for (i = 0; i < bPtr->maxVisibleColumns; i++) { WMAddBrowserColumn(bPtr); } bPtr->usedColumnCount = 0; bPtr->selectedColumn = -1; return bPtr; } void WMSetBrowserAllowMultipleSelection(WMBrowser * bPtr, Bool flag) { int i; bPtr->flags.allowMultipleSelection = ((flag == 0) ? 0 : 1); for (i = 0; i < bPtr->columnCount; i++) { WMSetListAllowMultipleSelection(bPtr->columns[i], flag); } } void WMSetBrowserAllowEmptySelection(WMBrowser * bPtr, Bool flag) { int i; bPtr->flags.allowEmptySelection = ((flag == 0) ? 0 : 1); for (i = 0; i < bPtr->columnCount; i++) { WMSetListAllowEmptySelection(bPtr->columns[i], flag); } } int WMGetBrowserMaxVisibleColumns(WMBrowser * bPtr) { return bPtr->maxVisibleColumns; } void WMSetBrowserMaxVisibleColumns(WMBrowser * bPtr, int columns) { int curMaxVisibleColumns; int newFirstVisibleColumn = 0; assert(bPtr != NULL); 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); } } WMResizeWidget(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); } } int WMGetBrowserNumberOfColumns(WMBrowser * bPtr) { return bPtr->usedColumnCount; } void WMSetBrowserPathSeparator(WMBrowser * bPtr, const char *separator) { if (bPtr->pathSeparator) wfree(bPtr->pathSeparator); bPtr->pathSeparator = wstrdup(separator); } static void drawTitleOfColumn(WMBrowser * bPtr, int column) { WMScreen *scr = bPtr->view->screen; int x; x = (column - bPtr->firstVisibleColumn) * (bPtr->columnSize.width + COLUMN_SPACING); XFillRectangle(scr->display, bPtr->view->window, WMColorGC(scr->darkGray), x, 0, bPtr->columnSize.width, bPtr->titleHeight); W_DrawRelief(scr, bPtr->view->window, x, 0, bPtr->columnSize.width, bPtr->titleHeight, WRSunken); 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, scr->white, False, titleBuf, titleLen); wfree(titleBuf); } else { W_PaintText(bPtr->view, bPtr->view->window, scr->boldFont, x, (bPtr->titleHeight - WMFontHeight(scr->boldFont)) / 2, bPtr->columnSize.width, WACenter, scr->white, False, bPtr->titles[column], titleLen); } } } WMList *WMGetBrowserListInColumn(WMBrowser * bPtr, int column) { if (column < 0 || column >= bPtr->usedColumnCount) return NULL; return bPtr->columns[column]; } void WMSetBrowserDelegate(WMBrowser * bPtr, WMBrowserDelegate * delegate) { bPtr->delegate = delegate; } int WMGetBrowserFirstVisibleColumn(WMBrowser * bPtr) { return bPtr->firstVisibleColumn; } static void removeColumn(WMBrowser * bPtr, int column) { int i, clearEnd, destroyEnd; WMList **clist; char **tlist; assert(bPtr != NULL); column = (column < 0) ? 0 : column; if (column >= bPtr->columnCount) { return; } if (column < bPtr->maxVisibleColumns) { 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]) { wfree(bPtr->titles[i]); bPtr->titles[i] = NULL; } WMClearList(bPtr->columns[i]); } for (; i < destroyEnd; i++) { if (bPtr->titles[i]) { wfree(bPtr->titles[i]); bPtr->titles[i] = NULL; } 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)); wfree(bPtr->titles); wfree(bPtr->columns); bPtr->titles = tlist; bPtr->columns = clist; } WMListItem *WMGetBrowserSelectedItemInColumn(WMBrowser * bPtr, int column) { if ((column < 0) || (column >= bPtr->usedColumnCount)) return NULL; return WMGetListSelectedItem(bPtr->columns[column]); } int WMGetBrowserSelectedColumn(WMBrowser * bPtr) { return bPtr->selectedColumn; } int WMGetBrowserSelectedRowInColumn(WMBrowser * bPtr, int column) { if (column >= 0 && column < bPtr->columnCount) { return WMGetListSelectedItemRow(bPtr->columns[column]); } else { return -1; } } void WMSetBrowserColumnTitle(WMBrowser * bPtr, int column, const char *title) { assert(column >= 0); assert(column < bPtr->usedColumnCount); if (bPtr->titles[column]) wfree(bPtr->titles[column]); bPtr->titles[column] = wstrdup(title); if (COLUMN_IS_VISIBLE(bPtr, column) && bPtr->flags.isTitled) { drawTitleOfColumn(bPtr, column); } } void WMSetBrowserTitled(WMBrowser * bPtr, Bool flag) { int i; int columnX, columnY; flag = ((flag == 0) ? 0 : 1); if (bPtr->flags.isTitled == flag) return; columnX = 0; if (!bPtr->flags.isTitled) { columnY = TITLE_SPACING + bPtr->titleHeight; bPtr->columnSize.height -= columnY; for (i = 0; i < bPtr->columnCount; i++) { WMResizeWidget(bPtr->columns[i], bPtr->columnSize.width, bPtr->columnSize.height); columnX = WMWidgetView(bPtr->columns[i])->pos.x; WMMoveWidget(bPtr->columns[i], columnX, columnY); } } else { bPtr->columnSize.height += TITLE_SPACING + bPtr->titleHeight; for (i = 0; i < bPtr->columnCount; i++) { WMResizeWidget(bPtr->columns[i], bPtr->columnSize.width, bPtr->columnSize.height); columnX = WMWidgetView(bPtr->columns[i])->pos.x; WMMoveWidget(bPtr->columns[i], columnX, 0); } } bPtr->flags.isTitled = flag; } void WMSortBrowserColumn(WMBrowser * bPtr, int column) { WMSortListItems(bPtr->columns[column]); } void WMSortBrowserColumnWithComparer(WMBrowser * bPtr, int column, WMCompareDataProc * func) { WMSortListItemsWithComparer(bPtr->columns[column], func); } WMListItem *WMInsertBrowserItem(WMBrowser * bPtr, int column, int row, const char *text, Bool isBranch) { WMListItem *item; if (column < 0 || column >= bPtr->columnCount) return NULL; item = WMInsertListItem(bPtr->columns[column], row, text); item->isBranch = isBranch; return item; } static void willResizeBrowser(W_ViewDelegate * self, WMView * view, unsigned int *width, unsigned int *height) { WMBrowser *bPtr = (WMBrowser *) view->self; int cols = bPtr->maxVisibleColumns; int colX, colY; int i; assert(*width > 0); assert(*height > 0); bPtr->columnSize.width = (*width - (cols - 1) * COLUMN_SPACING) / cols; bPtr->columnSize.height = *height; if (bPtr->flags.isTitled) { colY = TITLE_SPACING + bPtr->titleHeight; bPtr->columnSize.height -= colY; } else { colY = 0; } if (bPtr->flags.hasScroller) { bPtr->columnSize.height -= SCROLLER_WIDTH + 4; if (bPtr->scroller) { WMResizeWidget(bPtr->scroller, *width - 2, 1); WMMoveWidget(bPtr->scroller, 1, *height - SCROLLER_WIDTH - 1); } } colX = 0; for (i = 0; i < bPtr->columnCount; i++) { WMResizeWidget(bPtr->columns[i], bPtr->columnSize.width, bPtr->columnSize.height); WMMoveWidget(bPtr->columns[i], colX, colY); if (COLUMN_IS_VISIBLE(bPtr, i)) { colX += bPtr->columnSize.width + COLUMN_SPACING; } } } static void paintItem(WMList * lPtr, int index, Drawable d, char *text, int state, WMRect * rect) { WMView *view = W_VIEW(lPtr); W_Screen *scr = view->screen; Display *display = scr->display; WMFont *font = ((state & WLDSIsBranch) ? scr->boldFont : scr->normalFont); WMColor *backColor = ((state & WLDSSelected) ? scr->white : view->backColor); int width, height, x, y, textLen; width = rect->size.width; height = rect->size.height; x = rect->pos.x; y = rect->pos.y; textLen = strlen(text); XFillRectangle(display, d, WMColorGC(backColor), x, y, width, height); if (text) { /* Avoid overlaping... */ int widthC = (state & WLDSIsBranch) ? width - 20 : width - 8; if (WMWidthOfString(font, text, textLen) > widthC) { char *textBuf = createTruncatedString(font, text, &textLen, widthC); W_PaintText(view, d, font, x + 4, y, widthC, WALeft, scr->black, False, textBuf, textLen); wfree(textBuf); } else { W_PaintText(view, d, font, x + 4, y, widthC, WALeft, scr->black, False, text, textLen); } } if (state & WLDSIsBranch) { WMColor *lineColor = ((state & WLDSSelected) ? scr->gray : scr->white); XDrawLine(display, d, WMColorGC(scr->darkGray), x + width - 11, y + 3, x + width - 6, y + height / 2); XDrawLine(display, d, WMColorGC(lineColor), x + width - 11, y + height - 5, x + width - 6, y + height / 2); XDrawLine(display, d, WMColorGC(scr->black), x + width - 12, y + 3, x + width - 12, y + height - 5); } } static void scrollCallback(WMWidget * scroller, void *self) { WMBrowser *bPtr = (WMBrowser *) self; WMScroller *sPtr = (WMScroller *) scroller; int newFirst; #define LAST_VISIBLE_COLUMN bPtr->firstVisibleColumn+bPtr->maxVisibleColumns switch (WMGetScrollerHitPart(sPtr)) { case WSDecrementLine: if (bPtr->firstVisibleColumn > 0) { scrollToColumn(bPtr, bPtr->firstVisibleColumn - 1, True); } break; case WSDecrementPage: case WSDecrementWheel: if (bPtr->firstVisibleColumn > 0) { newFirst = bPtr->firstVisibleColumn - bPtr->maxVisibleColumns; scrollToColumn(bPtr, newFirst, True); } break; case WSIncrementLine: if (LAST_VISIBLE_COLUMN < bPtr->usedColumnCount) { scrollToColumn(bPtr, bPtr->firstVisibleColumn + 1, True); } break; case WSIncrementPage: case WSIncrementWheel: 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, True); } break; case WSKnob: { double floatValue; double value = bPtr->columnCount - bPtr->maxVisibleColumns; floatValue = WMGetScrollerValue(bPtr->scroller); floatValue = (floatValue * value) / value; newFirst = rint(floatValue * (float)(bPtr->columnCount - bPtr->maxVisibleColumns)); if (bPtr->firstVisibleColumn != newFirst) scrollToColumn(bPtr, newFirst, False); /*else WMSetScrollerParameters(bPtr->scroller, floatValue, bPtr->maxVisibleColumns/(float)bPtr->columnCount); */ } break; case WSKnobSlot: case WSNoPart: /* do nothing */ break; } #undef LAST_VISIBLE_COLUMN } static void setupScroller(WMBrowser * bPtr) { WMScroller *sPtr; int y; y = bPtr->view->size.height - SCROLLER_WIDTH - 1; sPtr = WMCreateScroller(bPtr); WMSetScrollerAction(sPtr, scrollCallback, bPtr); WMMoveWidget(sPtr, 1, y); WMResizeWidget(sPtr, bPtr->view->size.width - 2, SCROLLER_WIDTH); bPtr->scroller = sPtr; WMMapWidget(sPtr); } void WMSetBrowserAction(WMBrowser * bPtr, WMAction * action, void *clientData) { bPtr->action = action; bPtr->clientData = 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; } char *WMSetBrowserPath(WMBrowser * bPtr, char *path) { int i; char *str; char *tmp, *retPtr = NULL; int item; WMListItem *listItem; /* WMLoadBrowserColumnZero must be call first */ if (!bPtr->flags.loaded) { return False; } removeColumn(bPtr, 1); WMSelectListItem(bPtr->columns[0], -1); WMSetListPosition(bPtr->columns[0], 0); i = 0; str = wstrdup(path); tmp = strtok(str, bPtr->pathSeparator); while (tmp) { /* select it in the column */ item = WMFindRowOfListItemWithTitle(bPtr->columns[i], tmp); if (item < 0) { 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; } /* load next column */ WMAddBrowserColumn(bPtr); loadColumn(bPtr, i + 1); tmp = strtok(NULL, bPtr->pathSeparator); i++; } wfree(str); for (i = bPtr->usedColumnCount - 1; (i > -1) && !WMGetListSelectedItem(bPtr->columns[i]); i--) ; 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 retPtr; } char *WMGetBrowserPath(WMBrowser * bPtr) { return WMGetBrowserPathToColumn(bPtr, bPtr->columnCount); } char *WMGetBrowserPathToColumn(WMBrowser * bPtr, int column) { int i, size; char *path; size_t slen; WMListItem *item; 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++) { item = WMGetListSelectedItem(bPtr->columns[i]); if (!item) break; size += strlen(item->text); } /* get the path */ slen = size + (column + 1) * strlen(bPtr->pathSeparator) + 1; path = wmalloc(slen); /* ignore first `/' */ for (i = 0; i <= column; i++) { if (wstrlcat(path, bPtr->pathSeparator, slen) >= slen) goto error; item = WMGetListSelectedItem(bPtr->columns[i]); if (!item) break; if (wstrlcat(path, item->text, slen) >= slen) goto error; } return path; error: wfree(path); return NULL; } WMArray *WMGetBrowserPaths(WMBrowser * bPtr) { int column, i, k, size, selNo; char *path; size_t slen; WMListItem *item, *lastItem; WMArray *paths, *items; column = bPtr->usedColumnCount - 1; if (column < 0) { paths = WMCreateArrayWithDestructor(1, wfree); WMAddToArray(paths, wstrdup(bPtr->pathSeparator)); return paths; } items = WMGetListSelectedItems(bPtr->columns[column]); selNo = WMGetArrayItemCount(items); paths = WMCreateArrayWithDestructor(selNo, wfree); if (selNo <= 1) { WMAddToArray(paths, WMGetBrowserPath(bPtr)); return paths; } /* calculate size of buffer */ size = 0; for (i = 0; i < column; i++) { item = WMGetListSelectedItem(bPtr->columns[i]); if (!item) break; size += strlen(item->text); } size += (column + 1) * strlen(bPtr->pathSeparator) + 1; for (k = 0; k < selNo; k++) { /* get the path */ lastItem = WMGetFromArray(items, k); slen = size + (lastItem != NULL ? strlen(lastItem->text) : 0); path = wmalloc(slen); /* ignore first `/' */ for (i = 0; i <= column; i++) { if (wstrlcat(path, bPtr->pathSeparator, slen) >= slen) { wfree(path); return NULL; } if (i == column) { item = lastItem; } else { item = WMGetListSelectedItem(bPtr->columns[i]); } if (!item) break; if (wstrlcat(path, item->text, slen) >= slen) { wfree(path); return NULL; } } WMAddToArray(paths, path); } return paths; } Bool WMBrowserAllowsMultipleSelection(WMBrowser * bPtr) { return bPtr->flags.allowMultipleSelection; } Bool WMBrowserAllowsEmptySelection(WMBrowser * bPtr) { return bPtr->flags.allowEmptySelection; } static void loadColumn(WMBrowser * bPtr, int column) { assert(bPtr->delegate); assert(bPtr->delegate->createRowsForColumn); bPtr->flags.loadingColumn = 1; (*bPtr->delegate->createRowsForColumn) (bPtr->delegate, bPtr, column, bPtr->columns[column]); bPtr->flags.loadingColumn = 0; if (bPtr->delegate->titleOfColumn) { char *title; title = (*bPtr->delegate->titleOfColumn) (bPtr->delegate, bPtr, column); if (bPtr->titles[column]) wfree(bPtr->titles[column]); bPtr->titles[column] = wstrdup(title); if (COLUMN_IS_VISIBLE(bPtr, column) && bPtr->flags.isTitled) { drawTitleOfColumn(bPtr, column); } } } static void paintBrowser(WMBrowser * bPtr) { int i; if (!bPtr->view->flags.mapped) return; W_DrawRelief(bPtr->view->screen, bPtr->view->window, 0, bPtr->view->size.height - SCROLLER_WIDTH - 2, bPtr->view->size.width, 22, WRSunken); if (bPtr->flags.isTitled) { for (i = 0; i < bPtr->maxVisibleColumns; i++) { drawTitleOfColumn(bPtr, i + bPtr->firstVisibleColumn); } } } static void handleEvents(XEvent * event, void *data) { WMBrowser *bPtr = (WMBrowser *) data; CHECK_CLASS(data, WC_Browser); switch (event->type) { case Expose: paintBrowser(bPtr); break; case DestroyNotify: destroyBrowser(bPtr); break; } } static void scrollToColumn(WMBrowser * bPtr, int column, Bool updateScroller) { int i; int x; int notify = 0; if (column != bPtr->firstVisibleColumn) { notify = 1; } if (column < 0) column = 0; if (notify && bPtr->delegate && bPtr->delegate->willScroll) { (*bPtr->delegate->willScroll) (bPtr->delegate, bPtr); } x = 0; bPtr->firstVisibleColumn = column; for (i = 0; i < bPtr->columnCount; i++) { if (COLUMN_IS_VISIBLE(bPtr, i)) { WMMoveWidget(bPtr->columns[i], x, WMWidgetView(bPtr->columns[i])->pos.y); if (!WMWidgetView(bPtr->columns[i])->flags.realized) WMRealizeWidget(bPtr->columns[i]); WMMapWidget(bPtr->columns[i]); x += bPtr->columnSize.width + COLUMN_SPACING; } else { WMUnmapWidget(bPtr->columns[i]); } } /* update the scroller */ 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) paintBrowser(bPtr); if (notify && bPtr->delegate && bPtr->delegate->didScroll) { (*bPtr->delegate->didScroll) (bPtr->delegate, bPtr); } } static void listCallback(void *self, void *clientData) { WMBrowser *bPtr = (WMBrowser *) clientData; WMList *lPtr = (WMList *) self; WMListItem *item; int i, selNo; static WMListItem *oldItem = NULL; static int oldSelNo = 0; item = WMGetListSelectedItem(lPtr); selNo = WMGetArrayItemCount(WMGetListSelectedItems(lPtr)); if (oldItem == NULL || oldItem != item || oldSelNo != selNo) { for (i = 0; i < bPtr->columnCount; i++) { if (lPtr == bPtr->columns[i]) break; } assert(i < bPtr->columnCount); bPtr->selectedColumn = i; /* columns at right must be cleared */ removeColumn(bPtr, i + 1); /* open directory */ if (item && item->isBranch && selNo == 1) { WMAddBrowserColumn(bPtr); } if (bPtr->usedColumnCount < bPtr->maxVisibleColumns) i = 0; else i = bPtr->usedColumnCount - bPtr->maxVisibleColumns; scrollToColumn(bPtr, i, True); if (item && item->isBranch && selNo == 1) { loadColumn(bPtr, bPtr->usedColumnCount - 1); } } /* call callback for click */ if (bPtr->action) (*bPtr->action) (bPtr, bPtr->clientData); oldItem = item; oldSelNo = selNo; } 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); } void WMLoadBrowserColumnZero(WMBrowser * bPtr) { if (!bPtr->flags.loaded) { /* create column 0 */ WMAddBrowserColumn(bPtr); loadColumn(bPtr, 0); /* make column 0 visible */ scrollToColumn(bPtr, 0, True); bPtr->flags.loaded = 1; } } 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, True); else scrollToColumn(bPtr, bPtr->usedColumnCount - bPtr->maxVisibleColumns, True); WMRemoveListItem(list, row); } static void listSelectionObserver(void *observerData, WMNotification * notification) { WMBrowser *bPtr = (WMBrowser *) observerData; int column; WMList *lPtr = (WMList *) WMGetNotificationObject(notification); for (column = 0; column < bPtr->usedColumnCount; 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 (WMGetArrayItemCount(WMGetListSelectedItems(lPtr)) == 0) column--; bPtr->selectedColumn = column; } int WMAddBrowserColumn(WMBrowser * bPtr) { WMList *list; WMList **clist; char **tlist; int colY; int index; if (bPtr->usedColumnCount < bPtr->columnCount) { return bPtr->usedColumnCount++; } bPtr->usedColumnCount++; if (bPtr->flags.isTitled) { colY = TITLE_SPACING + bPtr->titleHeight; } else { colY = 0; } index = bPtr->columnCount; bPtr->columnCount++; clist = wmalloc(sizeof(WMList *) * bPtr->columnCount); tlist = wmalloc(sizeof(char *) * bPtr->columnCount); memcpy(clist, bPtr->columns, sizeof(WMList *) * (bPtr->columnCount - 1)); memcpy(tlist, bPtr->titles, sizeof(char *) * (bPtr->columnCount - 1)); if (bPtr->columns) wfree(bPtr->columns); if (bPtr->titles) wfree(bPtr->titles); bPtr->columns = clist; bPtr->titles = tlist; bPtr->titles[index] = NULL; list = WMCreateList(bPtr); WMSetListAllowMultipleSelection(list, bPtr->flags.allowMultipleSelection); WMSetListAllowEmptySelection(list, bPtr->flags.allowEmptySelection); 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); WMMoveWidget(list, (bPtr->columnSize.width + COLUMN_SPACING) * index, colY); if (COLUMN_IS_VISIBLE(bPtr, index)) WMMapWidget(list); /* 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); } return index; } static void destroyBrowser(WMBrowser * bPtr) { int i; for (i = 0; i < bPtr->columnCount; i++) { if (bPtr->titles[i]) wfree(bPtr->titles[i]); } wfree(bPtr->titles); wfree(bPtr->pathSeparator); WMRemoveNotificationObserver(bPtr); wfree(bPtr); } static char *createTruncatedString(WMFont * font, const char *text, int *textLen, int width) { size_t slen; int dLen; char *textBuf; dLen = WMWidthOfString(font, ".", 1); slen = *textLen + 4; textBuf = wmalloc(slen); if (width >= 3 * dLen) { int tmpTextLen = *textLen; if (wstrlcpy(textBuf, text, slen) >= slen) goto error; while (tmpTextLen && (WMWidthOfString(font, textBuf, tmpTextLen) + 3 * dLen > width)) tmpTextLen--; if (wstrlcpy(textBuf + tmpTextLen, "...", slen) >= slen) goto error; *textLen = tmpTextLen + 3; } else if (width >= 2 * dLen) { if (wstrlcpy(textBuf, "..", slen) >= slen) goto error; *textLen = 2; } else if (width >= dLen) { if (wstrlcpy(textBuf, ".", slen) >= slen) goto error; *textLen = 1; } else { *textBuf = '\0'; *textLen = 0; } return textBuf; error: wfree(textBuf); return NULL; } WindowMaker-0.95.5/WINGs/wmenuitem.c0000644000175000017500000000744312214432632014076 00000000000000 #include "WINGsP.h" typedef struct W_MenuItem { char *title; WMPixmap *image; char *shortcutKey; int shortcutModifierMask; WMAction *action; void *data; struct W_Menu *submenu; void *object; WMPixmap *onStateImage; WMPixmap *offStateImage; WMPixmap *mixedStateImage; struct { unsigned enabled:1; unsigned state:2; } flags; } MenuItem; WMMenuItem *WMGetSeparatorMenuItem(void) { return NULL; } Bool WMMenuItemIsSeparator(WMMenuItem * item) { return False; } WMMenuItem *WMCreateMenuItem(void) { WMMenuItem *item; item = wmalloc(sizeof(MenuItem)); item->flags.enabled = 1; return item; } void WMDestroyMenuItem(WMMenuItem * item) { if (item->title) wfree(item->title); if (item->image) WMReleasePixmap(item->image); if (item->shortcutKey) wfree(item->shortcutKey); if (item->onStateImage) WMReleasePixmap(item->onStateImage); if (item->offStateImage) WMReleasePixmap(item->offStateImage); if (item->mixedStateImage) WMReleasePixmap(item->mixedStateImage); } Bool WMGetMenuItemEnabled(WMMenuItem * item) { return item->flags.enabled; } void WMSetMenuItemEnabled(WMMenuItem * item, Bool flag) { item->flags.enabled = ((flag == 0) ? 0 : 1); } char *WMGetMenuItemShortcut(WMMenuItem * item) { return item->shortcutKey; } unsigned WMGetMenuItemShortcutModifierMask(WMMenuItem * item) { return item->shortcutModifierMask; } void WMSetMenuItemShortcut(WMMenuItem * item, const char *shortcut) { if (item->shortcutKey) wfree(item->shortcutKey); item->shortcutKey = wstrdup(shortcut); } void WMSetMenuItemShortcutModifierMask(WMMenuItem * item, unsigned mask) { item->shortcutModifierMask = mask; } void *WMGetMenuItemRepresentedObject(WMMenuItem * item) { return item->object; } void WMSetMenuItemRepresentedObject(WMMenuItem * item, void *object) { item->object = object; } void WMSetMenuItemAction(WMMenuItem * item, WMAction * action, void *data) { item->action = action; item->data = data; } WMAction *WMGetMenuItemAction(WMMenuItem * item) { return item->action; } void *WMGetMenuItemData(WMMenuItem * item) { return item->data; } void WMSetMenuItemTitle(WMMenuItem * item, const char *title) { if (item->title) wfree(item->title); if (title) item->title = wstrdup(title); else item->title = NULL; } char *WMGetMenuItemTitle(WMMenuItem * item) { return item->title; } void WMSetMenuItemState(WMMenuItem * item, int state) { item->flags.state = state; } int WMGetMenuItemState(WMMenuItem * item) { return item->flags.state; } void WMSetMenuItemPixmap(WMMenuItem * item, WMPixmap * pixmap) { if (item->image) WMReleasePixmap(item->image); item->image = WMRetainPixmap(pixmap); } WMPixmap *WMGetMenuItemPixmap(WMMenuItem * item) { return item->image; } void WMSetMenuItemOnStatePixmap(WMMenuItem * item, WMPixmap * pixmap) { if (item->onStateImage) WMReleasePixmap(item->onStateImage); item->onStateImage = WMRetainPixmap(pixmap); } WMPixmap *WMGetMenuItemOnStatePixmap(WMMenuItem * item) { return item->onStateImage; } void WMSetMenuItemOffStatePixmap(WMMenuItem * item, WMPixmap * pixmap) { if (item->offStateImage) WMReleasePixmap(item->offStateImage); item->offStateImage = WMRetainPixmap(pixmap); } WMPixmap *WMGetMenuItemOffStatePixmap(WMMenuItem * item) { return item->offStateImage; } void WMSetMenuItemMixedStatePixmap(WMMenuItem * item, WMPixmap * pixmap) { if (item->mixedStateImage) WMReleasePixmap(item->mixedStateImage); item->mixedStateImage = WMRetainPixmap(pixmap); } WMPixmap *WMGetMenuItemMixedStatePixmap(WMMenuItem * item) { return item->mixedStateImage; } #if 0 void WMSetMenuItemSubmenu(WMMenuItem * item, WMMenu * submenu) { item->submenu = submenu; } WMMenu *WMGetMenuItemSubmenu(WMMenuItem * item) { return item->submenu; } Bool WMGetMenuItemHasSubmenu(WMMenuItem * item) { return item->submenu != NULL; } #endif WindowMaker-0.95.5/WINGs/wbox.c0000644000175000017500000001145012214432632013034 00000000000000 #include "WINGsP.h" typedef struct { WMView *view; int minSize; int maxSize; int space; unsigned expand:1; unsigned fill:1; unsigned end:1; } SubviewItem; typedef struct W_Box { W_Class widgetClass; W_View *view; WMArray *subviews; short borderWidth; unsigned horizontal:1; } Box; #define DEFAULT_WIDTH 40 #define DEFAULT_HEIGHT 40 static void destroyBox(Box * bPtr); static void handleEvents(XEvent * event, void *data); static void didResize(struct W_ViewDelegate *, WMView *); static W_ViewDelegate delegate = { NULL, NULL, didResize, NULL, NULL }; WMBox *WMCreateBox(WMWidget * parent) { Box *bPtr; bPtr = wmalloc(sizeof(Box)); bPtr->widgetClass = WC_Box; bPtr->view = W_CreateView(W_VIEW(parent)); if (!bPtr->view) { wfree(bPtr); return NULL; } bPtr->view->self = bPtr; bPtr->view->delegate = &delegate; bPtr->subviews = WMCreateArrayWithDestructor(2, wfree); WMCreateEventHandler(bPtr->view, StructureNotifyMask, handleEvents, bPtr); WMResizeWidget(bPtr, DEFAULT_WIDTH, DEFAULT_HEIGHT); return bPtr; } typedef struct { WMBox *box; int total; int expands; int x, y; int xe, ye; int w, h; } BoxData; static void computeExpansion(void *object, void *cdata) { SubviewItem *item = (SubviewItem *) object; BoxData *eData = (BoxData *) cdata; eData->total -= item->minSize; eData->total -= item->space; if (item->expand) { eData->expands++; } } static void doRearrange(void *object, void *cdata) { SubviewItem *item = (SubviewItem *) object; BoxData *eData = (BoxData *) cdata; if (eData->box->horizontal) { eData->w = item->minSize; if (item->expand) eData->w += eData->total / eData->expands; } else { eData->h = item->minSize; if (item->expand) eData->h += eData->total / eData->expands; } if (!item->end) { W_MoveView(item->view, eData->x, eData->y); } W_ResizeView(item->view, eData->w, eData->h); if (eData->box->horizontal) { if (item->end) eData->xe -= eData->w + item->space; else eData->x += eData->w + item->space; } else { if (item->end) eData->ye -= eData->h + item->space; else eData->y += eData->h + item->space; } if (item->end) { W_MoveView(item->view, eData->xe, eData->ye); } } static void rearrange(WMBox * box) { BoxData eData; eData.box = box; eData.x = eData.y = box->borderWidth; eData.w = eData.h = 1; eData.expands = 0; if (box->horizontal) { eData.ye = box->borderWidth; eData.xe = WMWidgetWidth(box) - box->borderWidth; eData.h = WMWidgetHeight(box) - 2 * box->borderWidth; eData.total = WMWidgetWidth(box) - 2 * box->borderWidth; } else { eData.xe = box->borderWidth; eData.ye = WMWidgetHeight(box) - box->borderWidth; eData.w = WMWidgetWidth(box) - 2 * box->borderWidth; eData.total = WMWidgetHeight(box) - 2 * box->borderWidth; } if (eData.w <= 0 || eData.h <= 0 || eData.total <= 0) { return; } WMMapArray(box->subviews, computeExpansion, &eData); WMMapArray(box->subviews, doRearrange, &eData); } void WMSetBoxBorderWidth(WMBox * box, unsigned width) { if (box->borderWidth != width) { box->borderWidth = width; rearrange(box); } } void WMAddBoxSubview(WMBox * bPtr, WMView * view, Bool expand, Bool fill, int minSize, int maxSize, int space) { SubviewItem *subView; subView = wmalloc(sizeof(SubviewItem)); subView->view = view; subView->minSize = minSize; subView->maxSize = maxSize; subView->expand = expand; subView->fill = fill; subView->space = space; subView->end = 0; WMAddToArray(bPtr->subviews, subView); rearrange(bPtr); } void WMAddBoxSubviewAtEnd(WMBox * bPtr, WMView * view, Bool expand, Bool fill, int minSize, int maxSize, int space) { SubviewItem *subView; subView = wmalloc(sizeof(SubviewItem)); subView->view = view; subView->minSize = minSize; subView->maxSize = maxSize; subView->expand = expand; subView->fill = fill; subView->space = space; subView->end = 1; WMAddToArray(bPtr->subviews, subView); rearrange(bPtr); } static int matchView(const void *item, const void *cdata) { return (((SubviewItem *) item)->view == (WMView *) cdata); } void WMRemoveBoxSubview(WMBox * bPtr, WMView * view) { if (WMRemoveFromArrayMatching(bPtr->subviews, matchView, view)) { rearrange(bPtr); } } void WMSetBoxHorizontal(WMBox * box, Bool flag) { /* make sure flag is either 0 or 1 no matter what true value was passed */ flag = ((flag == 0) ? 0 : 1); if (box->horizontal != flag) { box->horizontal = flag; rearrange(box); } } static void destroyBox(Box * bPtr) { WMFreeArray(bPtr->subviews); wfree(bPtr); } static void didResize(struct W_ViewDelegate *delegate, WMView * view) { rearrange(view->self); } static void handleEvents(XEvent * event, void *data) { Box *bPtr = (Box *) data; CHECK_CLASS(data, WC_Box); switch (event->type) { case DestroyNotify: destroyBox(bPtr); break; case ConfigureNotify: rearrange(bPtr); break; } } WindowMaker-0.95.5/WINGs/Documentation/0000755000175000017500000000000012214434642014604 500000000000000WindowMaker-0.95.5/WINGs/Documentation/Makefile.in0000644000175000017500000002540612214434560016577 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WINGs/Documentation DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ AUTOMAKE_OPTIONS = EXTRA_DIST = all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/Documentation/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WINGs/Documentation/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # 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. .NOEXPORT: WindowMaker-0.95.5/WINGs/Documentation/Makefile.am0000644000175000017500000000012412214432632016552 00000000000000## automake input file for WINGs - Documentation AUTOMAKE_OPTIONS = EXTRA_DIST = WindowMaker-0.95.5/WINGs/findfile.c0000644000175000017500000002333312214432632013640 00000000000000/* * Window Maker miscelaneous function library * * Copyright (c) 1997-2003 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., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include "wconfig.h" #include "WUtil.h" #include #include #include #include #include #include #include #include #ifndef PATH_MAX #define PATH_MAX 1024 #endif #define RETRY( x ) do { x; } while (errno == EINTR); char *wgethomedir() { static char *home = NULL; char *tmp; struct passwd *user; if (home) return home; tmp = getenv("HOME"); if (tmp) { home = wstrdup(tmp); return home; } user = getpwuid(getuid()); if (!user) { werror(_("could not get password entry for UID %i"), getuid()); home = "/"; } if (!user->pw_dir) home = "/"; else home = wstrdup(user->pw_dir); return home; } /* * Return the home directory for the specified used * * If user not found, returns NULL, otherwise always returns a path that is * statically stored. * * Please note you must use the path before any other call to 'getpw*' or it * may be erased. This is a design choice to avoid duplication considering * the use case for this function. */ static const char *getuserhomedir(const char *username) { static const char default_home[] = "/"; struct passwd *user; user = getpwnam(username); if (!user) { werror(_("could not get password entry for user %s"), username); return NULL; } if (!user->pw_dir) return default_home; else return user->pw_dir; } char *wexpandpath(const char *path) { const char *origpath = path; char buffer2[PATH_MAX + 2]; char buffer[PATH_MAX + 2]; int i; memset(buffer, 0, PATH_MAX + 2); if (*path == '~') { const char *home; path++; if (*path == '/' || *path == 0) { home = wgethomedir(); if (strlen(home) > PATH_MAX || wstrlcpy(buffer, home, sizeof(buffer)) >= sizeof(buffer)) goto error; } else { int j; j = 0; while (*path != 0 && *path != '/') { if (j > PATH_MAX) goto error; buffer2[j++] = *path; buffer2[j] = 0; path++; } home = getuserhomedir(buffer2); if (!home || wstrlcat(buffer, home, sizeof(buffer)) >= sizeof(buffer)) goto error; } } i = strlen(buffer); while (*path != 0 && i <= PATH_MAX) { char *tmp; if (*path == '$') { int j = 0; path++; /* expand $(HOME) or $HOME style environment variables */ if (*path == '(') { path++; while (*path != 0 && *path != ')') { if (j > PATH_MAX) goto error; buffer2[j++] = *(path++); buffer2[j] = 0; } if (*path == ')') { path++; tmp = getenv(buffer2); } else { tmp = NULL; } if (!tmp) { if ((i += strlen(buffer2) + 2) > PATH_MAX) goto error; buffer[i] = 0; if (wstrlcat(buffer, "$(", sizeof(buffer)) >= sizeof(buffer) || wstrlcat(buffer, buffer2, sizeof(buffer)) >= sizeof(buffer)) goto error; if (*(path-1)==')') { if (++i > PATH_MAX || wstrlcat(buffer, ")", sizeof(buffer)) >= sizeof(buffer)) goto error; } } else { if ((i += strlen(tmp)) > PATH_MAX || wstrlcat(buffer, tmp, sizeof(buffer)) >= sizeof(buffer)) goto error; } } else { while (*path != 0 && *path != '/') { if (j > PATH_MAX) goto error; buffer2[j++] = *(path++); buffer2[j] = 0; } tmp = getenv(buffer2); if (!tmp) { if ((i += strlen(buffer2) + 1) > PATH_MAX || wstrlcat(buffer, "$", sizeof(buffer)) >= sizeof(buffer) || wstrlcat(buffer, buffer2, sizeof(buffer)) >= sizeof(buffer)) goto error; } else { if ((i += strlen(tmp)) > PATH_MAX || wstrlcat(buffer, tmp, sizeof(buffer)) >= sizeof(buffer)) goto error; } } } else { buffer[i++] = *path; path++; } } if (*path!=0) goto error; return wstrdup(buffer); error: errno = ENAMETOOLONG; werror(_("could not expand %s"), origpath); return NULL; } /* return address of next char != tok or end of string whichever comes first */ static const char *skipchar(const char *string, char tok) { while (*string != 0 && *string == tok) string++; return string; } /* return address of next char == tok or end of string whichever comes first */ static const char *nextchar(const char *string, char tok) { while (*string != 0 && *string != tok) string++; return string; } /* *---------------------------------------------------------------------- * findfile-- * Finds a file in a : separated list of paths. ~ expansion is also * done. * * Returns: * The complete path for the file (in a newly allocated string) or * NULL if the file was not found. * * Side effects: * A new string is allocated. It must be freed later. * *---------------------------------------------------------------------- */ char *wfindfile(const char *paths, const char *file) { char *path; const char *tmp, *tmp2; int len, flen; char *fullpath; if (!file) return NULL; if (*file == '/' || *file == '~' || *file == '$' || !paths || *paths == 0) { if (access(file, F_OK) < 0) { fullpath = wexpandpath(file); if (!fullpath) return NULL; if (access(fullpath, F_OK) < 0) { wfree(fullpath); return NULL; } else { return fullpath; } } else { return wstrdup(file); } } flen = strlen(file); tmp = paths; while (*tmp) { tmp = skipchar(tmp, ':'); if (*tmp == 0) break; tmp2 = nextchar(tmp, ':'); len = tmp2 - tmp; path = wmalloc(len + flen + 2); path = memcpy(path, tmp, len); path[len] = 0; if (path[len - 1] != '/' && wstrlcat(path, "/", len + flen + 2) >= len + flen + 2) { wfree(path); return NULL; } if (wstrlcat(path, file, len + flen + 2) >= len + flen + 2) { wfree(path); return NULL; } fullpath = wexpandpath(path); wfree(path); if (fullpath) { if (access(fullpath, F_OK) == 0) { return fullpath; } wfree(fullpath); } tmp = tmp2; } return NULL; } char *wfindfileinlist(char *const *path_list, const char *file) { int i; char *path; int len, flen; char *fullpath; if (!file) return NULL; if (*file == '/' || *file == '~' || !path_list) { if (access(file, F_OK) < 0) { fullpath = wexpandpath(file); if (!fullpath) return NULL; if (access(fullpath, F_OK) < 0) { wfree(fullpath); return NULL; } else { return fullpath; } } else { return wstrdup(file); } } flen = strlen(file); for (i = 0; path_list[i] != NULL; i++) { len = strlen(path_list[i]); path = wmalloc(len + flen + 2); path = memcpy(path, path_list[i], len); path[len] = 0; if (wstrlcat(path, "/", len + flen + 2) >= len + flen + 2 || wstrlcat(path, file, len + flen + 2) >= len + flen + 2) { wfree(path); return NULL; } /* expand tilde */ fullpath = wexpandpath(path); wfree(path); if (fullpath) { /* check if file exists */ if (access(fullpath, F_OK) == 0) { return fullpath; } wfree(fullpath); } } return NULL; } char *wfindfileinarray(WMPropList *array, const char *file) { int i; char *path; int len, flen; char *fullpath; if (!file) return NULL; if (*file == '/' || *file == '~' || !array) { if (access(file, F_OK) < 0) { fullpath = wexpandpath(file); if (!fullpath) return NULL; if (access(fullpath, F_OK) < 0) { wfree(fullpath); return NULL; } else { return fullpath; } } else { return wstrdup(file); } } flen = strlen(file); for (i = 0; i < WMGetPropListItemCount(array); i++) { WMPropList *prop; char *p; prop = WMGetFromPLArray(array, i); if (!prop) continue; p = WMGetFromPLString(prop); len = strlen(p); path = wmalloc(len + flen + 2); path = memcpy(path, p, len); path[len] = 0; if (wstrlcat(path, "/", len + flen + 2) >= len + flen + 2 || wstrlcat(path, file, len + flen + 2) >= len + flen + 2) { wfree(path); return NULL; } /* expand tilde */ fullpath = wexpandpath(path); wfree(path); if (fullpath) { /* check if file exists */ if (access(fullpath, F_OK) == 0) { return fullpath; } wfree(fullpath); } } return NULL; } int wcopy_file(const char *dir, const char *src_file, const char *dest_file) { FILE *src, *dst; size_t nread, nwritten; char *dstpath; struct stat st; char buf[4096]; /* only to a directory */ if (stat(dir, &st) != 0 || !S_ISDIR(st.st_mode)) return -1; /* only copy files */ if (stat(src_file, &st) != 0 || !S_ISREG(st.st_mode)) return -1; RETRY( src = fopen(src_file, "rb") ) if (src == NULL) { werror(_("Could not open %s"), src_file); return -1; } dstpath = wstrconcat(dir, dest_file); RETRY( dst = fopen(dstpath, "wb") ) if (dst == NULL) { werror(_("Could not create %s"), dstpath); wfree(dstpath); RETRY( fclose(src) ) return -1; } do { RETRY( nread = fread(buf, 1, sizeof(buf), src) ) if (ferror(src)) break; RETRY( nwritten = fwrite(buf, 1, nread, dst) ) if (ferror(dst) || feof(src) || nread != nwritten) break; } while (1); if (ferror(src) || ferror(dst)) unlink(dstpath); RETRY( fclose(src) ) fchmod(fileno(dst), st.st_mode); fsync(fileno(dst)); RETRY( fclose(dst) ) wfree(dstpath); return 0; } WindowMaker-0.95.5/WINGs/make-rgb0000755000175000017500000000234012214432632013322 00000000000000#!/usr/bin/python import sys import re from optparse import OptionParser parser = OptionParser(version="%prog 1.0") parser.add_option("-f", "--file", dest="rgbtxtFile", default='/etc/X11/rgb.txt', help="rgb.txt file containing X11 colors (/etc/X11/rgb.txt)", metavar="File") (options, args) = parser.parse_args() f = open(options.rgbtxtFile) lines = f.readlines() f.close() colorLine = re.compile(r'''\s* (?P\d+) # red \s+ (?P\d+) # green \s+ (?P\d+) # blue \s+ (?P[^\s]+) # name ''', re.VERBOSE) print ''' /* Automatically generated file. Do NOT edit. Regenerate it using make-rgb */ #ifndef RGB_H_ #define RGB_H_ #include typedef struct RGBColor { RColor color; char *name; } RGBColor; RGBColor rgbColors[] = {''' for line in lines: m = colorLine.match(line) if m: print ''' {{%(red)3s, %(green)3s, %(blue)3s, 0}, "%(name)s"},''' % m.groupdict() print ''' {{ 0, 0, 0, 0}, NULL} }; #endif ''' WindowMaker-0.95.5/WINGs/array.c0000644000175000017500000001635012214432632013177 00000000000000/* * Dynamically Resized Array * * Authors: Alfredo K. Kojima * Dan Pascu * * This code is released to the Public Domain, but * proper credit is always appreciated :) */ #include #include #include "WUtil.h" #define INITIAL_SIZE 8 #define RESIZE_INCREMENT 8 typedef struct W_Array { void **items; /* the array data */ int itemCount; /* # of items in array */ int allocSize; /* allocated size of array */ WMFreeDataProc *destructor; /* the destructor to free elements */ } W_Array; WMArray *WMCreateArray(int initialSize) { return WMCreateArrayWithDestructor(initialSize, NULL); } WMArray *WMCreateArrayWithDestructor(int initialSize, WMFreeDataProc * destructor) { WMArray *array; array = wmalloc(sizeof(WMArray)); if (initialSize <= 0) { initialSize = INITIAL_SIZE; } array->items = wmalloc(sizeof(void *) * initialSize); array->itemCount = 0; array->allocSize = initialSize; array->destructor = destructor; return array; } WMArray *WMCreateArrayWithArray(WMArray * array) { WMArray *newArray; newArray = wmalloc(sizeof(WMArray)); newArray->items = wmalloc(sizeof(void *) * array->allocSize); memcpy(newArray->items, array->items, sizeof(void *) * array->itemCount); newArray->itemCount = array->itemCount; newArray->allocSize = array->allocSize; newArray->destructor = NULL; return newArray; } void WMEmptyArray(WMArray * array) { if (array->destructor) { while (array->itemCount > 0) { array->itemCount--; array->destructor(array->items[array->itemCount]); } } /*memset(array->items, 0, array->itemCount * sizeof(void*)); */ array->itemCount = 0; } void WMFreeArray(WMArray * array) { if (array == NULL) return; WMEmptyArray(array); wfree(array->items); wfree(array); } int WMGetArrayItemCount(WMArray * array) { if (array == NULL) return 0; return array->itemCount; } void WMAppendArray(WMArray * array, WMArray * other) { if (array == NULL || other == NULL) return; if (other->itemCount == 0) return; if (array->itemCount + other->itemCount > array->allocSize) { array->allocSize += other->allocSize; array->items = wrealloc(array->items, sizeof(void *) * array->allocSize); } memcpy(array->items + array->itemCount, other->items, sizeof(void *) * other->itemCount); array->itemCount += other->itemCount; } void WMAddToArray(WMArray * array, void *item) { if (array == NULL) return; if (array->itemCount >= array->allocSize) { array->allocSize += RESIZE_INCREMENT; array->items = wrealloc(array->items, sizeof(void *) * array->allocSize); } array->items[array->itemCount] = item; array->itemCount++; } void WMInsertInArray(WMArray * array, int index, void *item) { wassertr(index >= 0 && index <= array->itemCount); if (array == NULL) return; if (array->itemCount >= array->allocSize) { array->allocSize += RESIZE_INCREMENT; array->items = wrealloc(array->items, sizeof(void *) * array->allocSize); } if (index < array->itemCount) { memmove(array->items + index + 1, array->items + index, sizeof(void *) * (array->itemCount - index)); } array->items[index] = item; array->itemCount++; } void *WMReplaceInArray(WMArray * array, int index, void *item) { void *old; wassertrv(index >= 0 && index <= array->itemCount, NULL); if (array == NULL) return NULL; /* is it really useful to perform append if index == array->itemCount ? -Dan */ if (index == array->itemCount) { WMAddToArray(array, item); return NULL; } old = array->items[index]; array->items[index] = item; return old; } int WMDeleteFromArray(WMArray * array, int index) { wassertrv(index >= 0 && index < array->itemCount, 0); if (array == NULL) return 0; if (array->destructor) { array->destructor(array->items[index]); } if (index < array->itemCount - 1) { memmove(array->items + index, array->items + index + 1, sizeof(void *) * (array->itemCount - index - 1)); } array->itemCount--; return 1; } int WMRemoveFromArrayMatching(WMArray * array, WMMatchDataProc * match, void *cdata) { int i; if (array == NULL) return 1; if (match != NULL) { for (i = 0; i < array->itemCount; i++) { if ((*match) (array->items[i], cdata)) { WMDeleteFromArray(array, i); return 1; } } } else { for (i = 0; i < array->itemCount; i++) { if (array->items[i] == cdata) { WMDeleteFromArray(array, i); return 1; } } } return 0; } void *WMGetFromArray(WMArray * array, int index) { if (index < 0 || array == NULL || index >= array->itemCount) return NULL; return array->items[index]; } void *WMPopFromArray(WMArray * array) { if (array == NULL || array->itemCount <= 0) return NULL; array->itemCount--; return array->items[array->itemCount]; } int WMFindInArray(WMArray * array, WMMatchDataProc * match, void *cdata) { int i; if (array == NULL) return WANotFound; if (match != NULL) { for (i = 0; i < array->itemCount; i++) { if ((*match) (array->items[i], cdata)) return i; } } else { for (i = 0; i < array->itemCount; i++) { if (array->items[i] == cdata) return i; } } return WANotFound; } int WMCountInArray(WMArray * array, void *item) { int i, count; if (array == NULL) return 0; for (i = 0, count = 0; i < array->itemCount; i++) { if (array->items[i] == item) count++; } return count; } void WMSortArray(WMArray * array, WMCompareDataProc * comparer) { if (array == NULL) return; if (array->itemCount > 1) { /* Don't sort empty or single element arrays */ qsort(array->items, array->itemCount, sizeof(void *), comparer); } } void WMMapArray(WMArray * array, void (*function) (void *, void *), void *data) { int i; if (array == NULL) return; for (i = 0; i < array->itemCount; i++) { (*function) (array->items[i], data); } } WMArray *WMGetSubarrayWithRange(WMArray * array, WMRange aRange) { WMArray *newArray; if (aRange.count <= 0 || array == NULL) return WMCreateArray(0); if (aRange.position < 0) aRange.position = 0; if (aRange.position >= array->itemCount) aRange.position = array->itemCount - 1; if (aRange.position + aRange.count > array->itemCount) aRange.count = array->itemCount - aRange.position; newArray = WMCreateArray(aRange.count); memcpy(newArray->items, array->items + aRange.position, sizeof(void *) * aRange.count); newArray->itemCount = aRange.count; return newArray; } void *WMArrayFirst(WMArray * array, WMArrayIterator * iter) { if (array == NULL || array->itemCount == 0) { *iter = WANotFound; return NULL; } else { *iter = 0; return array->items[0]; } } void *WMArrayLast(WMArray * array, WMArrayIterator * iter) { if (array == NULL || array->itemCount == 0) { *iter = WANotFound; return NULL; } else { *iter = array->itemCount - 1; return array->items[*iter]; } } void *WMArrayNext(WMArray * array, WMArrayIterator * iter) { if (array == NULL) { *iter = WANotFound; return NULL; } if (*iter >= 0 && *iter < array->itemCount - 1) { return array->items[++(*iter)]; } else { *iter = WANotFound; return NULL; } } void *WMArrayPrevious(WMArray * array, WMArrayIterator * iter) { if (array == NULL) { *iter = WANotFound; return NULL; } if (*iter > 0 && *iter < array->itemCount) { return array->items[--(*iter)]; } else { *iter = WANotFound; return NULL; } } WindowMaker-0.95.5/WINGs/BUGS0000644000175000017500000000025312214432632012373 00000000000000- filepanel does not reread / . If you add new files in / they will not be visible until the program is restarted. Closing and reopening the file panel does not help. WindowMaker-0.95.5/wmlib/0000755000175000017500000000000012214434644012160 500000000000000WindowMaker-0.95.5/wmlib/Makefile.in0000644000175000017500000004457012214434561014155 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = wmlib DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in COPYING.LIB ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libWMaker_la_DEPENDENCIES = am_libWMaker_la_OBJECTS = menu.lo app.lo event.lo command.lo libWMaker_la_OBJECTS = $(am_libWMaker_la_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent libWMaker_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libWMaker_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libWMaker_la_SOURCES) DIST_SOURCES = $(libWMaker_la_SOURCES) HEADERS = $(include_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ AUTOMAKE_OPTIONS = no-dependencies libWMaker_la_LDFLAGS = -version-info 1:1:0 lib_LTLIBRARIES = libWMaker.la include_HEADERS = WMaker.h AM_CPPFLAGS = $(DFLAGS) @XCFLAGS@ libWMaker_la_LIBADD = -lX11 libWMaker_la_SOURCES = \ menu.c \ app.c \ event.c \ command.c \ app.h \ menu.h DISTCLEANFILES = wmlib.pc all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu wmlib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu wmlib/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libWMaker.la: $(libWMaker_la_OBJECTS) $(libWMaker_la_DEPENDENCIES) $(AM_V_CCLD)$(libWMaker_la_LINK) -rpath $(libdir) $(libWMaker_la_OBJECTS) $(libWMaker_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c .c.o: $(AM_V_CC) @AM_BACKSLASH@ $(COMPILE) -c $< .c.obj: $(AM_V_CC) @AM_BACKSLASH@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: $(AM_V_CC) @AM_BACKSLASH@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(includedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-exec-local install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-exec-local \ install-html install-html-am install-includeHEADERS \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-includeHEADERS uninstall-libLTLIBRARIES install-exec-local: @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(libdir)/pkgconfig @list='wmlib.pc'; for p in $$list; do \ if test -f $$p; then \ echo "$(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/pkgconfig/"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/pkgconfig/; \ else :; fi; \ done # 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. .NOEXPORT: WindowMaker-0.95.5/wmlib/COPYING.LIB0000644000175000017500000006144712214432632013547 00000000000000 GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code 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 distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, 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 Library, 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. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "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 AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY 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 LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! WindowMaker-0.95.5/wmlib/Makefile.am0000644000175000017500000000116412214432632014131 00000000000000 AUTOMAKE_OPTIONS = no-dependencies libWMaker_la_LDFLAGS = -version-info 1:1:0 lib_LTLIBRARIES = libWMaker.la include_HEADERS = WMaker.h AM_CPPFLAGS = $(DFLAGS) @XCFLAGS@ libWMaker_la_LIBADD = -lX11 libWMaker_la_SOURCES = \ menu.c \ app.c \ event.c \ command.c \ app.h \ menu.h DISTCLEANFILES = wmlib.pc install-exec-local: @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(libdir)/pkgconfig @list='wmlib.pc'; for p in $$list; do \ if test -f $$p; then \ echo "$(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/pkgconfig/"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/pkgconfig/; \ else :; fi; \ done WindowMaker-0.95.5/wmlib/app.h0000644000175000017500000000245012214432632013025 00000000000000/* app.h - private declarations for application context * * WMlib - WindowMaker application programming interface * * Copyright (C) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #ifndef _APP_H_ #define _APP_H_ typedef struct _wmAppContext { Display *dpy; int screen_number; int our_leader_hint; /* if app leader hint was set by us */ Window main_window; /* main window of the application */ Window *windows; int win_count; /* size of windows array */ WMMenu *main_menu; int last_menu_tag; } wmAppContext; #endif WindowMaker-0.95.5/wmlib/command.c0000644000175000017500000000462512214432632013664 00000000000000/* command.c - WindowMaker commands * * WMlib - WindowMaker application programming interface * * Copyright (C) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include #include "WMaker.h" #include "app.h" static Atom getwmfunc(Display * dpy) { return XInternAtom(dpy, "_WINDOWMAKER_WM_FUNCTION", False); } void WMHideApplication(WMAppContext * app) { XEvent event; event.xclient.type = ClientMessage; event.xclient.message_type = getwmfunc(app->dpy); event.xclient.format = 32; event.xclient.display = app->dpy; event.xclient.window = app->main_window; event.xclient.data.l[0] = WMFHideApplication; event.xclient.data.l[1] = 0; event.xclient.data.l[2] = 0; event.xclient.data.l[3] = 0; XSendEvent(app->dpy, RootWindow(app->dpy, app->screen_number), False, SubstructureNotifyMask | SubstructureRedirectMask, &event); } void WMHideOthers(WMAppContext * app) { XEvent event; event.xclient.type = ClientMessage; event.xclient.message_type = getwmfunc(app->dpy); event.xclient.format = 32; event.xclient.display = app->dpy; event.xclient.window = app->main_window; event.xclient.data.l[0] = WMFHideOtherApplications; event.xclient.data.l[1] = 0; event.xclient.data.l[2] = 0; event.xclient.data.l[3] = 0; XSendEvent(app->dpy, RootWindow(app->dpy, app->screen_number), False, SubstructureNotifyMask | SubstructureRedirectMask, &event); } void WMSetWindowAttributes(Display * dpy, Window window, GNUstepWMAttributes * attributes) { Atom atom; atom = XInternAtom(dpy, "_GNUSTEP_WM_ATTR", False); XChangeProperty(dpy, window, atom, atom, 32, PropModeReplace, (unsigned char *)attributes, sizeof(GNUstepWMAttributes) / sizeof(CARD32)); } WindowMaker-0.95.5/wmlib/WMaker.h0000644000175000017500000001103512214432632013432 00000000000000/* * WindowMaker interface definitions * * Copyright (C) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #ifndef _WMLIB_H_ #define _WMLIB_H_ /* the definitions in this file can change at any time. WINGs has more * stable definitions */ #include #include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ typedef struct { CARD32 flags; CARD32 window_style; CARD32 window_level; CARD32 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 */ CARD32 extra_flags; } GNUstepWMAttributes; #define GSWindowStyleAttr (1<<0) #define GSWindowLevelAttr (1<<1) #define GSMiniaturizePixmapAttr (1<<3) #define GSClosePixmapAttr (1<<4) #define GSMiniaturizeMaskAttr (1<<5) #define GSCloseMaskAttr (1<<6) #define GSExtraFlagsAttr (1<<7) #define GSClientResizeFlag (1<<0) #define GSFullKeyboardEventsFlag (1<<1) #define GSMenuWindowFlag (1<<2) #define GSIconWindowFlag (1<<3) #define GSSkipWindowListFlag (1<<4) #define GSNoApplicationIconFlag (1<<5) #define GSDarkGrayTitlebarFlag (1<<8) #define WMFHideOtherApplications 10 #define WMFHideApplication 12 #ifndef _DEFINED_GNUSTEP_WINDOW_INFO #define _DEFINED_GNUSTEP_WINDOW_INFO /* * Window levels are taken from GNUstep (gui/AppKit/NSWindow.h) * NSDesktopWindowLevel intended to be the level at which things * on the desktop sit ... so you should be able * to put a desktop background just below it. * * Applications are actually permitted to use any value in the * range INT_MIN+1 to INT_MAX */ enum { WMDesktopWindowLevel = -1000, /* GNUstep addition */ WMNormalWindowLevel = 0, WMFloatingWindowLevel = 3, WMSubmenuWindowLevel = 3, WMTornOffMenuWindowLevel = 3, WMMainMenuWindowLevel = 20, WMDockWindowLevel = 21, /* Deprecated - use NSStatusWindowLevel */ WMStatusWindowLevel = 21, WMModalPanelWindowLevel = 100, WMPopUpMenuWindowLevel = 101, WMScreenSaverWindowLevel = 1000 }; /* window attributes */ enum { WMBorderlessWindowMask = 0, WMTitledWindowMask = 1, WMClosableWindowMask = 2, WMMiniaturizableWindowMask = 4, WMResizableWindowMask = 8, WMIconWindowMask = 64, WMMiniWindowMask = 128 }; #endif typedef struct _wmAppContext WMAppContext; typedef struct _wmMenu WMMenu; typedef void (*WMMenuAction)(void *clientdata, int code, Time timestamp); typedef void (*WMFreeFunction)(void *clientdata); int WMProcessEvent(WMAppContext *app, XEvent *event); WMAppContext *WMAppCreateWithMain(Display *display, int screen_number, Window main_window); WMAppContext *WMAppCreate(Display *display, int screen_number); int WMAppAddWindow(WMAppContext *app, Window window); int WMAppSetMainMenu(WMAppContext *app, WMMenu *menu); int WMRealizeMenus(WMAppContext *app); void WMSetWindowAttributes(Display *dpy, Window window, GNUstepWMAttributes *attributes); void WMHideApplication(WMAppContext *app); void WMHideOthers(WMAppContext *app); /* * WARNING: the menu related functions might be removed in the future. */ WMMenu *WMMenuCreate(WMAppContext *app, char *title); int WMMenuAddItem(WMMenu *menu, char *text, WMMenuAction action, void *clientData, WMFreeFunction freedata, char *rtext); int WMMenuInsertItem(WMMenu *menu, int index, char *text, WMMenuAction *action, char *rtext); int WMMenuRemoveItem(WMMenu *menu, int index); int WMMenuAddSubmenu(WMMenu *menu, char *title, WMMenu *submenu); void WMMenuSetEnabled(WMMenu *menu, int index, int enabled); void WMMenuDestroy(WMMenu *menu, int submenus); #ifdef __cplusplus } #endif /* __cplusplus */ #endif WindowMaker-0.95.5/wmlib/app.c0000644000175000017500000000363412214432632013025 00000000000000/* app.c - application context stuff * * WMlib - WindowMaker application programming interface * * Copyright (C) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include #include #include "WMaker.h" #include "app.h" WMAppContext *WMAppCreateWithMain(Display * display, int screen_number, Window main_window) { wmAppContext *ctx; ctx = malloc(sizeof(wmAppContext)); if (!ctx) return NULL; ctx->dpy = display; ctx->screen_number = screen_number; ctx->our_leader_hint = False; ctx->main_window = main_window; ctx->windows = malloc(sizeof(Window)); if (!ctx->windows) { free(ctx); return NULL; } ctx->win_count = 1; ctx->windows[0] = main_window; ctx->main_menu = NULL; ctx->last_menu_tag = 100; return ctx; } int WMAppAddWindow(WMAppContext * app, Window window) { Window *win; win = malloc(sizeof(Window) * (app->win_count + 1)); if (!win) return False; memcpy(win, app->windows, sizeof(Window) * app->win_count); free(app->windows); win[app->win_count] = window; app->windows = win; app->win_count++; return True; } int WMAppSetMainMenu(WMAppContext * app, WMMenu * menu) { app->main_menu = menu; return True; } WindowMaker-0.95.5/wmlib/event.c0000644000175000017500000000430712214432632013364 00000000000000/* event.c - WindowMaker event handler * * WMlib - WindowMaker application programming interface * * Copyright (C) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include #include #include #include "WMaker.h" #include "app.h" #include "menu.h" static Atom _XA_WINDOWMAKER_MENU = 0; enum { wmSelectItem = 1 }; static wmMenuEntry *findEntry(WMMenu * menu, int tag) { wmMenuEntry *entry = menu->first; while (entry) { if (entry->tag == tag) { return entry; } if (entry->cascade) { wmMenuEntry *tmp; tmp = findEntry(entry->cascade, tag); if (tmp) return tmp; } entry = entry->next; } return NULL; } static void wmHandleMenuEvents(WMAppContext * app, XEvent * event) { wmMenuEntry *entry; switch (event->xclient.data.l[1]) { case wmSelectItem: entry = findEntry(app->main_menu, event->xclient.data.l[2]); if (entry && entry->callback) { (*entry->callback) (entry->clientData, event->xclient.data.l[2], event->xclient.data.l[0]); } break; } } int WMProcessEvent(WMAppContext * app, XEvent * event) { int proc = False; if (!_XA_WINDOWMAKER_MENU) { _XA_WINDOWMAKER_MENU = XInternAtom(app->dpy, "_WINDOWMAKER_MENU", False); } switch (event->type) { case ClientMessage: if (event->xclient.format == 32 && event->xclient.message_type == _XA_WINDOWMAKER_MENU && event->xclient.window == app->main_window) { wmHandleMenuEvents(app, event); proc = True; } } return proc; } WindowMaker-0.95.5/wmlib/menu.h0000644000175000017500000000375312214432632013220 00000000000000/* menu.h - private menu declarations * * WMlib - WindowMaker application programming interface * * Copyright (C) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #ifndef _MENU_H_ #define _MENU_H_ #define WMMENU_PROPNAME "_WINDOWMAKER_MENU" typedef struct _wmMenuEntry { struct _wmMenuEntry *next; struct _wmMenuEntry *prev; struct _wmMenu *menu; /* menu for the entry */ char *text; /* entry text */ char *shortcut; WMMenuAction callback; void *clientData; /* data to pass to callback */ WMFreeFunction free; /* function to free clientData */ int tag; /* unique entry ID */ struct _wmMenu *cascade; /* cascade menu */ short order; short enabled; /* entry is selectable */ char *entryline; } wmMenuEntry; typedef struct _wmMenu { wmAppContext *appcontext; int code; struct _wmMenu *parent; char *title; /* menu title */ wmMenuEntry *entries; /* list of entries */ wmMenuEntry *first; /* first of list of entries */ int realized; char *entryline; char *entryline2; } wmMenu; enum { wmBeginMenu = 1, wmEndMenu = 2, wmNormalItem = 10, wmDoubleItem = 11, wmSubmenuItem = 12 }; #endif WindowMaker-0.95.5/wmlib/menu.c0000644000175000017500000001222312214432632013203 00000000000000/* menu.c - menu interface functions * * WMlib - WindowMaker application programming interface * * Copyright (C) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include #include #include #include #include "WMaker.h" #include "app.h" #include "menu.h" WMMenu *WMMenuCreate(WMAppContext * app, char *title) { wmMenu *menu; if (strlen(title) > 255) return NULL; menu = malloc(sizeof(wmMenu)); if (!menu) return NULL; menu->appcontext = app; menu->parent = NULL; menu->title = title; menu->entries = NULL; menu->first = NULL; menu->realized = False; menu->code = app->last_menu_tag++; menu->entryline = malloc(strlen(title) + 32); menu->entryline2 = malloc(32); if (!menu->entryline || !menu->entryline2) { if (menu->entryline) free(menu->entryline); free(menu); return NULL; } sprintf(menu->entryline, "%i %i %s", wmBeginMenu, menu->code, title); sprintf(menu->entryline2, "%i %i", wmEndMenu, menu->code); return menu; } int WMMenuAddItem(WMMenu * menu, char *text, WMMenuAction action, void *clientData, WMFreeFunction freedata, char *rtext) { wmMenuEntry *entry; /* max size of right side text */ if (rtext && strlen(rtext) > 4) return -1; /* max size of menu text */ if (strlen(text) > 255) return -1; entry = malloc(sizeof(wmMenuEntry)); if (!entry) return -1; entry->entryline = malloc(strlen(text) + 100); if (!entry->entryline) { free(menu); return -1; } if (menu->entries) entry->order = menu->entries->order + 1; else { entry->order = 0; menu->first = entry; } entry->next = NULL; entry->prev = menu->entries; if (menu->entries) menu->entries->next = entry; menu->entries = entry; entry->menu = menu; entry->text = text; entry->shortcut = rtext; entry->callback = action; entry->clientData = clientData; entry->free = freedata; entry->tag = menu->appcontext->last_menu_tag++; entry->cascade = NULL; entry->enabled = True; if (!rtext) sprintf(entry->entryline, "%i %i %i %i %s", wmNormalItem, menu->code, entry->tag, True, text); else sprintf(entry->entryline, "%i %i %i %i %s %s", wmDoubleItem, menu->code, entry->tag, True, rtext, text); return entry->tag; } int WMMenuAddSubmenu(WMMenu * menu, char *text, WMMenu * submenu) { wmMenuEntry *entry; /* max size of menu text */ if (strlen(text) > 255) return -1; entry = malloc(sizeof(wmMenuEntry)); if (!entry) return -1; entry->entryline = malloc(strlen(text) + 100); if (!entry->entryline) { free(menu); return -1; } if (menu->entries) entry->order = menu->entries->order + 1; else { entry->order = 0; menu->first = entry; } entry->next = NULL; entry->prev = menu->entries; if (menu->entries) menu->entries->next = entry; menu->entries = entry; entry->menu = menu; entry->text = text; entry->shortcut = NULL; entry->callback = NULL; entry->clientData = NULL; entry->tag = menu->appcontext->last_menu_tag++; entry->cascade = submenu; entry->enabled = True; sprintf(entry->entryline, "%i %i %i %i %i %s", wmSubmenuItem, menu->code, entry->tag, True, submenu->code, text); return entry->tag; } static int countItems(WMMenu * menu) { wmMenuEntry *entry = menu->first; int c; c = 1; while (entry) { c++; if (entry->cascade) { c += countItems(entry->cascade); } entry = entry->next; } c++; return c; } static void addItems(char **slist, int *index, WMMenu * menu) { wmMenuEntry *entry = menu->first; slist[(*index)++] = menu->entryline; while (entry) { slist[(*index)++] = entry->entryline; if (entry->cascade) { addItems(slist, index, entry->cascade); } entry = entry->next; } slist[(*index)++] = menu->entryline2; } static Atom getatom(Display * dpy) { static Atom atom = 0; if (atom == 0) { atom = XInternAtom(dpy, WMMENU_PROPNAME, False); } return atom; } int WMRealizeMenus(WMAppContext * app) { int i, count; char **slist; XTextProperty text_prop; if (!app->main_menu) return False; /* first count how many menu items there are */ count = countItems(app->main_menu); if (count == 0) return True; count++; slist = malloc(count * sizeof(char *)); if (!slist) { return False; } slist[0] = "WMMenu 0"; i = 1; addItems(slist, &i, app->main_menu); if (!XStringListToTextProperty(slist, i, &text_prop)) { free(slist); return False; } free(slist); XSetTextProperty(app->dpy, app->main_window, &text_prop, getatom(app->dpy)); XFree(text_prop.value); return True; } WindowMaker-0.95.5/AUTHORS0000644000175000017500000001506312214432632012036 00000000000000Information about locale translators is at src/po/README and Library/WindowMaker/README Many thanks to the following people who have contributed patches, bug fixes and other stuff for Window Maker: ABE Shige I18N support, diagonal and vertical gradient, cosmetic additions to move/resize frames, window list menu, side swapping and other things for dock, japanese local, icon arrangement fix, remember current workspace after restart, dock bug fixes Andrea Arcangeli Fix for cascade window placement Dmitry Astapov Fix and some additions on XKB lock language status. Peter Bentley fixed WM_STATE handling bug, fixed some memory leaks, made application menus be mapped near the windows for non-click-to-focus modes, timer bug Ulf Betlehem Window resize with Meta-Click3, fixed OpaqueMove to send only 1 synth. ConfigureNotify Olly Betts shaded window indication in window list Tudor Bosman autoraise bugfix Rob Clark Text input field, 15bpp support George Clernon bug fix in browser widget Omar Cornut / Zoop SteelBlueSilk theme Sylvain CORRE bug fix for MkLinux/PPC Frederic Devernay dock fix for openwindows, made asclock be friendlier with colorcell impaired dpys, fixed wrlib to work with most visual/depth combinations, many miscellaneous bug fixes Adrian Drzewiecki opaque window move Bjoern Giesler Dynamic reconfiguration, libPropList Oliver Graf more configure.in fixes Chris Green FAQ author/maintainer Nicolai P Guba Documentation help, autoconf cleanup Mark 'segfault' Guzman Various bugfixes Ullrich Hafner Better detection of gfx libraries, added IconTitleColor/IconTitleBack Matthew Hawkins former temporary project maintainer Greg Hayes Twisted miniaturization animation Alban Hertroys WINGs color panel HIDEKI Fujimoto FreeBSD portability, icon arrangement fixes, dock initialization bug fix, some I18N related fixes Pascal Hofstee WINGs bug fixes, WINGs color panel Robert A. Holak bug fix Michael Hokenson wkde2menu.pl script IKARASHI Akira Workspace change bug fix Sudish Joseph Modifier binding fix and other bug fixes Luke Kendall menu format converter, various enhancements to wxcopy and wxpaste Bradley M Keryan EMACS/keypad like cursor movement for WINGs textfield Jim Knoble made autoarrange icons a runtime option, SHADOW_RESIZEBAR c-time option, no workspace switch to the same workspace, dashed icon selection, misclellaneous bug fixes, definable cursors, --no-polling command line option. The JED Text Editor Project maintainer Alfredo K. Kojima The guy who types random keys to feed JED with the necessary entropy Jay Kominek smart and random placement Alexander Kourakos Move/resize code fixes, button press/release fix Ryan Land workspace "layers" Largo wm.current.nu maintainer, FAQ co-maintainer Stuart Luppescu Documentation help Marcelo E. Magallon CPP search path improvement, man pages, bug fixes Tim Malone bug fix, jpeg bug fix MANOME Tomonori I18N bug fixes and japanese locale, wsetfont script Brian Alexander Martin PIPE_MENU Andrea Mistrali 3D version of GNUstep icon. Jeff Meininger Fix for unassociated alpha tiff Craig Nellist selection in textfield Dan Pascu dock ghost (superfluous mode) fix, enhancement for scrollable menus, clip, numerous other stuff, project maintainer Biagio Pippa <1993s017@educ.disi.unige.it> fixed miniaturization with transient window Anthony Quinn Sound code. Andreas Saudemont Initial code for clip's collapse feature. Ture Pelsson various portability fixes, replaced busy wait with select() in event handling code, fixed problem with some misbehaved kids after a fork(), some other bug fixes, support for poll() in event handling code Toby Sargeant menu format converter Carsten Schaar SCO portability, german locale, autoconf enhancements Christopher Seawood REDUCE_APPICON/single-icon Chong Shang Shan flipping iconification animation Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz> SGI "black dialogs" bug fix Paul D. Smith SunOS portability, configure fixes Phillip Smith FTP, WWW, mailing list site provider/maintainer (Net logistics) Lauri Tarkkala SIGHUP unblock bug fix Sam Varner many fixes and enhancements for move, resize and window placement code. Marco van Hylckama Vlieg house icon for WINGs file dialogs, defaultAppIcon and Clip xpm tchX.tiff Plus the following icons: GNUterm.tiff clip2.tiff defaultterm.tiff draw.tiff linuxterm.tiff mixer.tiff notepad.tiff pdf.tiff ps.tiff real.tiff sgiterm.tiff sound.tiff staroffice2.tiff timer.tiff wilber.tiff write.tiff xdvi.tiff 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. FRBall dgradient fix "]d" Window list menu miniaturized/hidden hints, XDE support, XKB lock language status, WINGs enhancements, bug fixes, window commands menu enhancement, window move/resize by keyboard. GNUstepGlow.tiff icon, WINGs color panel, Appearance section icon(s) Trae Mc Combs BlueWaves.jpeg background image in BlueWaves theme. And a special thanks to Martin Eskildsen for giving me his copy of NEXTSTEP :-) WindowMaker-0.95.5/TODO0000644000175000017500000000555612214432632011464 00000000000000remake wrlib rule to not compile with -fomit-frame-pointer and stuff if its added to CFLAGS Do ASAP: ======== - fix bestvisual selection code. Broken. - fix RemakeStackList() to account for transient windows - blink border of clients with UrgencyHint set between red and black - finish session stuff - remove colors_per_channel stuff from wmaker after? + finish the ability to browse for files/dirs in the WPrefs menu editor - check whether window states are being saved/restored properly via netwm on restart/crash-restart (grep for XXX/TODO) Need to do: =========== - figure out a better gnustep path for wprefs.app installation - impelment a generic pixmap type, which receives attributes (scaled/maxscaled/centered/tiled, smoothed, size/position, ...) - allow user to select/restore default root menu from wprefs - support for X11R6.4 extension for getting extra visual info in wrlib's automatic best context guessing - docklet to control AccessX (keyboard accessibility) functions - rewrite all redundant stuff to use WINGs - add function to directly make a thumbnail of an image, using the functionality provided by the image libraries to load a minimal amount of data. - rewrite defaults/wdefaults stuff to use WINGs UD stuff. Search list: ~/G/D/WindowMaker /u/l/s/W/D/WindowMaker built-in-defaults - remake internal string processing to use wchar? unicode? - add new file for stuff like default commands and dnd commands for docked apps, balloons for the dock etc - check whether apps with name.class set to empty strings should be treated like if name.class is NULL.NULL - review the defaults handling code (not to reread after we update a domain if possible, check WINGs apps updating WMWindowAttributes after start making screen to flash on update) Maybe some day: =============== - virtual workspace - optimize for size Never: (so, dont even bother to ask) ====== - different themes for each workspace. Unless you give us a SGI/Power Onyx with 2 CPUs ;). - anything that requires the mouse pointer to be jumped by WindowMaker to somewhere. This is *terrible* behaviour. And it's not just IMO. - rewrite to use Gtk... I wont even bother to explain why... - ICCCM 2.0: ICCCM 2.0 (not 1.0, which is what everybody supports so so) is a relatively new standard and nobody, AFAIK, complies with it (not even twm as people tend to think). It has some neat things, but many of the new stuff is really weird and tricky to implement, not to say unworthy (read the specs and you'll see). This is not bad, since I think it is very unlikely that a client that requires it exists... Anyway, if we get an "official" sample implementation (twm?) it might be supported. Maybe dtwm supports it? I dont know... After 1.0.0 is released ======================= - rework/redesign the appicon/dock/clip concept - maybe rewrite the main code in obj-c or c++ - major clean up in theming/texturing stuff WindowMaker-0.95.5/configure.ac0000644000175000017500000006475312214432632013266 00000000000000dnl dnl Window Maker autoconf input. dnl dnl Process with: dnl aclocal dnl autoheader dnl autoconf dnl libtoolize --force --automake dnl automake -a --gnu --include-deps dnl dnl AC_INIT(WindowMaker, 0.95.5, , WindowMaker, http://www.windowmaker.org/) AC_CONFIG_SRCDIR(src/WindowMaker.h) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS(config.h) AM_INIT_AUTOMAKE([1.11 silent-rules]) AH_BOTTOM([#include "config-paths.h"]) dnl libtool library versioning dnl ======================= dnl dnl current dnl revision dnl age dnl dnl 1. Start with version information of ‘0:0:0’ for each libtool library. dnl 2. Update the version information only immediately before a public dnl release of your software. More frequent updates are unnecessary, and dnl only guarantee that the current interface number gets larger faster. dnl 3. If the library source code has changed at all since the last dnl update, then increment revision (‘c:r:a’ becomes ‘c:r+1:a’). dnl 4. If any interfaces have been added, removed, or changed since the dnl last update, increment current, and set revision to 0. dnl 5. If any interfaces have been added since the last public release, dnl then increment age. dnl 6. If any interfaces have been removed or changed since the last dnl public release, then set age to 0. dnl dnl libwraster WRASTER_CURRENT=4 WRASTER_REVISION=1 WRASTER_AGE=1 WRASTER_VERSION=$WRASTER_CURRENT:$WRASTER_REVISION:$WRASTER_AGE AC_SUBST(WRASTER_VERSION) dnl dnl libWINGs WINGS_CURRENT=2 WINGS_REVISION=1 WINGS_AGE=0 WINGS_VERSION=$WINGS_CURRENT:$WINGS_REVISION:$WINGS_AGE AC_SUBST(WINGS_VERSION) dnl dnl libWUtil WUTIL_CURRENT=3 WUTIL_REVISION=0 WUTIL_AGE=0 WUTIL_VERSION=$WUTIL_CURRENT:$WUTIL_REVISION:$WUTIL_AGE AC_SUBST(WUTIL_VERSION) dnl Checks for host/os name dnl ======================= dnl AC_CANONICAL_HOST -- already done by AC_PROG_LIBTOOL dnl Checks for programs. dnl =================== AC_ISC_POSIX AC_PROG_CC AC_PROG_LN_S AC_PROG_GCC_TRADITIONAL AC_PROG_LIBTOOL dnl Debugging Options dnl ================= AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug], [enable debugging options, @<:@default=no@:>@])], [AS_CASE(["$enableval"], [yes], [debug=yes], [no], [debug=no], [AC_MSG_ERROR([bad value $enableval for --enable-debug])] )], [debug=no]) AS_IF([test "x$debug" = "xyes"], [CFLAGS="-g -O0" ; CPPFLAGS="$CPPFLAGS -DDEBUG"]) AX_CFLAGS_GCC_OPTION(-Wall) AX_CFLAGS_GCC_OPTION(-Wextra -Wno-sign-compare -Wno-unused-parameter) AS_IF([test "x$debug" = "xyes"], [dnl When debug is enabled, we try to activate more checks from dnl the compiler. They are on independant check because the dnl macro checks all the options at once, but we may have cases dnl where some options are not supported and we don't want to dnl loose all of them. dnl dnl Floating-point comparison is not a good idea AX_CFLAGS_GCC_OPTION([-Wfloat-equal]) dnl dnl Try to report misuses of '&' versus '&&' and similar AX_CFLAGS_GCC_OPTION([-Wlogical-op]) dnl dnl Use of 'sizeof()' on inappropriate pointer types AX_CFLAGS_GCC_OPTION([-Wpointer-arith]) ], [dnl dnl When debug not enabled, we try to avoid some non-necessary dnl messages from the compiler dnl dnl To support legacy X servers, we have sometime to use dnl functions marked as deprecated. We do not wish our users dnl to be worried about it AX_CFLAGS_GCC_OPTION([-Wno-deprecated]) AX_CFLAGS_GCC_OPTION([-Wno-deprecated-declarations]) ]) dnl Platform-specific Makefile setup dnl ================================ AS_CASE(["$host"], [*-*-linux*|*-*-cygwin*|*-gnu*], [WM_OSDEP="linux" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600"], [*-*-freebsd*|*-k*bsd-gnu*], [WM_OSDEP="bsd" ; CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -DFREEBSD"], [*-*-netbsd*], [WM_OSDEP="bsd" ; CPPFLAGS="$CPPFLAGS -DNETBSD"], [*-*-openbsd*], [WM_OSDEP="bsd" ; CPPFLAGS="$CPPFLAGS -DOPENBSD"], [*-*-dragonfly*], [WM_OSDEP="bsd" ; CPPFLAGS="$CPPFLAGS -DDRAGONFLYBSD"], [*-apple-darwin*], [WM_OSDEP="darwin"], [*-*-solaris*], [WM_OSDEP="stub"], dnl solaris.c when done [WM_OSDEP="stub"]) AM_CONDITIONAL([WM_OSDEP_LINUX], [test "x$WM_OSDEP" = "xlinux"]) AM_CONDITIONAL([WM_OSDEP_BSD], [test "x$WM_OSDEP" = "xbsd"]) AM_CONDITIONAL([WM_OSDEP_DARWIN], [test "x$WM_OSDEP" = "xdarwin"]) AM_CONDITIONAL([WM_OSDEP_GENERIC], [test "x$WM_OSDEP" = "xstub"]) dnl the prefix dnl ========== dnl dnl move this earlier in the script... anyone know why this is handled dnl in such a bizarre way? test "x$prefix" = xNONE && prefix=$ac_default_prefix dnl Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' _bindir=`eval echo $bindir` _bindir=`eval echo $_bindir` lib_search_path='-L${libdir}' inc_search_path='-I${includedir}' dnl =============================================== dnl Specify paths to look for libraries and headers dnl =============================================== AC_ARG_WITH(libs-from, AS_HELP_STRING([--with-libs-from], [pass compiler flags to look for libraries]), [lib_search_path="$withval $lib_search_path"]) AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from], [pass compiler flags to look for header files]), [inc_search_path="$withval $inc_search_path"]) dnl Boehm GC dnl ======== with_boehm_gc=no AC_ARG_ENABLE([boehm-gc], [AS_HELP_STRING([--enable-boehm-gc], [use Boehm GC instead of the default libc malloc() [default=no]])], [with_boehm_gc=$enableval]) AS_IF([test "x$with_boehm_gc" = "xyes"], AC_SEARCH_LIBS([GC_malloc], [gc], [AC_DEFINE(USE_BOEHM_GC, 1, [Define if Boehm GC is to be used])], [AC_MSG_FAILURE([--enable-boehm-gc specified but test for libgc failed])], [] ) ) dnl LCOV dnl ==== AC_ARG_ENABLE([lcov], [AS_HELP_STRING([--enable-lcov[=output-directory]], [enable coverage data generation using LCOV (GCC only) [default=no]])], [], [enable_lcov=no]) AS_IF([test "x$enable_lcov" != "xno"], [AX_CFLAGS_GCC_OPTION(-fprofile-arcs -ftest-coverage) if test "x$enable_lcov" = "xyes"; then lcov_output_directory="coverage-report" else lcov_output_directory="${enable_lcov}/coverage-report" fi AC_SUBST(lcov_output_directory)] ) AM_CONDITIONAL([USE_LCOV], [test "x$enable_lcov" != "xno"]) dnl dnl ============================ dnl Checks for library functions dnl ============================ dnl not used anywhere AC_FUNC_MEMCMP AC_FUNC_VPRINTF AC_CHECK_FUNCS(gethostname select poll strcasecmp strncasecmp \ setsid mallinfo mkstemp sysconf) dnl Check for strlcat/strlcpy dnl ========================= AC_ARG_WITH([libbsd], [AS_HELP_STRING([--without-libbsd], [do not use libbsd for strlcat and strlcpy [default=check]])], [AS_IF([test "x$with_libbsd" != "xno"], [with_libbsd=bsd] [with_libbsd=] )], [with_libbsd=bsd]) tmp_libs=$LIBS AC_SEARCH_LIBS([strlcat],[$with_libbsd], [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcat is available])], [], [] ) AC_SEARCH_LIBS([strlcpy],[$with_libbsd], [AC_DEFINE(HAVE_STRLCAT, 1, [Define if strlcpy is available])], [], [] ) LIBS=$tmp_libs LIBBSD= AS_IF([test "x$ac_cv_search_strlcat" = "x-lbsd" -o "x$ac_cv_search_strlcpy" = "x-lbsd"], [LIBBSD=-lbsd AC_CHECK_HEADERS([bsd/string.h])] ) AC_SUBST(LIBBSD) dnl Check for OpenBSD kernel memory interface - kvm(3) dnl ================================================== AS_IF([test "x$WM_OSDEP" = "xbsd"], AC_SEARCH_LIBS([kvm_openfiles], [kvm]) ) dnl Check for inotify dnl ================= AC_CHECK_HEADERS(sys/inotify.h, AC_DEFINE(HAVE_INOTIFY, 1, Check for inotify)) dnl Checks for header files. dnl ======================= AC_HEADER_SYS_WAIT AC_HEADER_TIME AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h libintl.h poll.h malloc.h ctype.h \ string.h strings.h) dnl Checks for typedefs, structures, and compiler characteristics. dnl ============================================================== AC_DECL_SYS_SIGLIST AC_C_CONST AC_C_INLINE WM_C_NORETURN AC_TYPE_SIZE_T AC_TYPE_PID_T AC_TYPE_SIGNAL dnl pkg-config dnl ========== dnl AC_ARG_VAR(PKGCONFIG, [pkg-config command]) AC_CHECK_PROG(PKGCONFIG, pkg-config, pkg-config) dnl gettext dnl ======= dnl AM_GNU_GETTEXT INTLIBS="" AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"], INTLIBS="" )) AC_CHECK_PROG(XGETTEXT, xgettext, xgettext) if test "$XGETTEXT" != ""; then if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then echo "xgettext isn't GNU version" XGETTEXT="" fi fi if test "$LINGUAS" != ""; then if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then AC_DEFINE(I18N, 1, [Internationalization (I18N) support (set by configure)]) PO="" echo "xgettext and gettext() exist; will build i18n support for $LINGUAS" else LINGUAS="" PO="" echo "xgettext and libintl.a don't both exist; will not build i18n support" fi else INTLIBS="" MOFILES="" WPMOFILES="" UTILMOFILES="" PO="" fi dnl The Tower of Babel dnl ================== dnl List of supported locales dnl ========================= supported_locales="be bg bs ca cs da de el es et fi fr gl hr hu hy it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW" supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW" supported_wings_locales="bg ca cs de fr sk" supported_util_locales="de es fr pt" for lang in $LINGUAS; do ok=0 for l in $supported_locales; do if test "$l" = "$lang"; then ok=1 break fi done if test "$ok" = 1; then MOFILES="$MOFILES $lang.mo" else echo "Locale $lang is not supported." fi ok=0 for l in $supported_wprefs_locales; do if test "$l" = "$lang"; then ok=1 break fi done if test "$ok" = 1; then WPMOFILES="$WPMOFILES $lang.mo" fi ok=0 for l in $supported_util_locales; do if test "$l" = "$lang"; then ok=1 break fi done if test "$ok" = 1; then UTILMOFILES="$UTILMOFILES $lang.mo" fi ok=0 for l in $supported_wings_locales; do if test "$l" = "$lang"; then ok=1 break fi done if test "$ok" = 1; then WINGSMOFILES="$WINGSMOFILES $lang.mo" fi done dnl Added by Oliver - Support for NLSDIR option dnl =========================================== AC_ARG_WITH(nlsdir, AS_HELP_STRING([--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='$(prefix)/lib/locale' fi fi menutextdomain= AC_ARG_WITH(menu-textdomain, AS_HELP_STRING([--with-menu-textdomain=DOMAIN], [specify gettext domain used for menu translations]), [if test "x$withval" != "xno"; then menutextdomain=$withval fi]) AC_SUBST(menutextdomain) AC_SUBST(INTLIBS) AC_SUBST(NLSDIR) AC_SUBST(MOFILES) AC_SUBST(WPMOFILES) AC_SUBST(UTILMOFILES) AC_SUBST(WINGSMOFILES) AC_SUBST(supported_locales) dnl =========================================== dnl Stuff that uses X dnl =========================================== AC_PATH_XTRA if test $no_x; then AC_MSG_ERROR([The path for the X11 files not found! Make sure you have X and it's headers and libraries (the -devel packages in Linux) installed.]) fi X_LIBRARY_PATH=$x_libraries XCFLAGS="$X_CFLAGS" XLFLAGS="$X_LIBS" XLIBS="-lX11 $X_EXTRA_LIBS" LIBXMU="-lXmu" AC_SUBST(LIBXMU) lib_search_path="$lib_search_path $XLFLAGS" inc_search_path="$inc_search_path $XCFLAGS" AC_SUBST(X_LIBRARY_PATH) dnl Decide which locale function to use, setlocale() or _Xsetlocale() dnl by MANOME Tomonori dnl =========================================== use_locale=yes AC_ARG_ENABLE(locale, AS_HELP_STRING([--disable-locale], [disable use of X locale support]), use_locale=no) if test "$use_locale" = yes; then AC_CHECK_LIB(X11, _Xsetlocale, AC_DEFINE(X_LOCALE, 1, [define if you want support for X window's X_LOCALE (set by configure)]),, $XLFLAGS $XLIBS) fi dnl Check whether XInternAtoms() exist dnl ================================== AC_CHECK_LIB(X11, XInternAtoms, AC_DEFINE(HAVE_XINTERNATOMS, 1, [define if your X server has XInternAtoms() (set by configure)]),, $XLFLAGS $XLIBS) dnl Check whether XConvertCase() exist dnl ================================== AC_CHECK_LIB(X11, XConvertCase, AC_DEFINE(HAVE_XCONVERTCASE, 1, [define if your X server has XConvertCase() (set by configure)]),, $XLFLAGS $XLIBS) dnl XKB keyboard language status dnl ============================ AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]), AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled])) dnl Shape support dnl ============= shape=yes AC_ARG_ENABLE(shape, AS_HELP_STRING([--disable-shape], [disable shaped window extension support]), shape=$enableval, shape=yes) added_xext=no if test "$shape" = yes; then AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS="-lXext $XLIBS" added_xext=yes AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], shape=no, $XLFLAGS $XLIBS) fi dnl XRandR support dnl ============== xrandr=no AC_ARG_ENABLE(xrandr, AS_HELP_STRING([--enable-xrandr], [enable XRandR window extension support (NOT recommended, buggy)]), xrandr=$enableval, xrandr=no) added_xext=no LIBXRANDR= if test "$xrandr" = yes; then AC_CHECK_LIB(Xrandr, XRRQueryExtension, [LIBXRANDR=-lXrandr added_xext=yes AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])], xrandr=no, $XLFLAGS $XLIBS) fi AC_SUBST(LIBXRANDR) dnl dnl libWINGS uses math functions, check whether usage requires linking dnl against libm dnl WM_CHECK_LIBM dnl dnl libWINGS uses FcPatternDel from libfontconfig dnl AC_MSG_CHECKING([for fontconfig library]) FCLIBS=`$PKGCONFIG fontconfig --libs` if test "x$FCLIBS" = "x" ; then AC_MSG_RESULT([not found]) else AC_MSG_RESULT([found]) fi AC_SUBST(FCLIBS) dnl Xft2 antialiased font support dnl ============================= xft=yes XFTLIBS="" if test "x$PKGCONFIG" != x -a "`$PKGCONFIG xft; echo $?`" = 0; then XFTCONFIG="$PKGCONFIG xft" pkgconfig_xft=yes else AC_CHECK_PROG(XFTCONFIG, xft-config, xft-config) fi AC_MSG_CHECKING([for the Xft2 library]) if test "x$XFTCONFIG" != x; then XFTLIBS=`$XFTCONFIG --libs` XFTFLAGS=`$XFTCONFIG --cflags` AC_MSG_RESULT([found]) else AC_MSG_RESULT([not found]) echo echo "ERROR!!! libXft2 is not installed or could not be found." echo " Xft2 is a requirement for building Window Maker." echo " Please install it (along with fontconfig) before continuing." echo exit 1 fi minXFT="2.1.0" goodxft="no" dnl dnl The macro below will use $XFTFLAGS (defined above) to find Xft.h dnl WM_CHECK_XFT_VERSION($minXFT, goodxft=yes, goodxft=no) if test "$goodxft" = no; then echo echo "ERROR!!! libXft on this system is an old version." echo " Please consider upgrading to at least version ${minXFT}." echo exit 1 fi AC_SUBST(XFTFLAGS) AC_SUBST(XFTLIBS) dnl XINERAMA support dnl ================ xinerama=no AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support]), xinerama=$enableval, xinerama=no) LIBXINERAMA= if test "$xinerama" = yes; then AC_CHECK_LIB(Xinerama, XineramaQueryScreens, [LIBXINERAMA=-lXinerama xfxine=yes], xfxine=no, $XLFLAGS $XLIBS) AC_CHECK_LIB(Xext, XineramaGetInfo, [sunxine=yes ], sunxine=no, $XLFLAGS $XLIBS) if test "$xfxine" = yes; then xine=1 fi if test "$sunxine" = yes; then xine=1 AC_DEFINE(SOLARIS_XINERAMA, 1, [define if you want support for the XINERAMA extension and are in Solaris (set by configure)]) fi if test "$xine" = 1; then AC_DEFINE(XINERAMA, 1, [define if you want support for the XINERAMA extension (set by configure)]) fi fi AC_SUBST(LIBXINERAMA) dnl MIT-SHM support dnl =============== shm=yes AC_ARG_ENABLE(shm, AS_HELP_STRING([--disable-shm], [disable usage of MIT-SHM extension]), shm=$enableval, shm=yes) if test "$shm" = yes; then AC_CHECK_LIB(Xext, XShmAttach, ok=yes, ok=no, $XLFLAGS $XLIBS) if test "$ok" = yes; then AC_CHECK_FUNC(shmget, ok=yes, ok=no) fi if test "$ok" = yes; then if test "$added_xext" = no; then XLIBS="-lXext $XLIBS" fi AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)]) fi fi dnl R6 Style Session Management Support dnl =================================== # # #AC_DEFINE(R6SM) #AC_SUBST(XSMPLIBS) # dnl ============================================== dnl Graphic Format Libraries dnl ============================================== dnl XPM Support dnl =========== xpm=yes AC_ARG_ENABLE(xpm, AS_HELP_STRING([--disable-xpm], [disable use of XPM pixmaps through libXpm]), xpm=$enableval, xpm=yes) if test "$xpm" = yes; then 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, 1, [define if XPM libraries are available (set by configure)]) else supported_gfx="builtin-XPM" fi fi fi # for wmlib AC_SUBST(XCFLAGS) # for test AC_SUBST(XLFLAGS) AC_SUBST(XLIBS) AC_SUBST(X_EXTRA_LIBS) dnl =============================================== dnl End of stuff that uses X dnl =============================================== dnl PNG Support dnl =========== png=yes AC_ARG_ENABLE(png, AS_HELP_STRING([--disable-png], [disable PNG support through libpng]), png=$enableval, png=yes, png=no) if test "$png" = yes ; then my_libname="" WM_CHECK_LIB(png, png_get_valid, [-lm]) if test "x$ac_cv_lib_png_png_get_valid" = xyes; then my_libname="-lpng" fi dnl dnl Retry with zlib dnl if test "x$my_libname" = x; then unset ac_cv_lib_png_png_get_valid WM_CHECK_LIB(png, png_get_valid, [-lz -lm]) if test "x$ac_cv_lib_png_png_get_valid" = xyes; then my_libname="-lpng -lz" fi fi 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 $my_libname" supported_gfx="$supported_gfx PNG" AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set by configure)]) fi fi fi dnl JPEG Support dnl ============ jpeg=yes ljpeg="" AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--disable-jpeg], [disable JPEG support through libjpeg]), jpeg=$enableval, jpeg=yes, jpeg=no) if test "$jpeg" = yes; then WM_CHECK_LIB(jpeg, jpeg_destroy_compress) if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then ljpeg="-ljpeg" 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, 1, [define if JPEG libraries are available (set by configure)]) fi fi fi dnl GIF Support dnl ============ gif=yes AC_ARG_ENABLE(gif, AS_HELP_STRING([--disable-gif], [disable GIF support through libgif or libungif]), gif=$enableval, gif=yes, gif=no) if test "$gif" = yes; then my_libname="" WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS]) if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then my_libname=-lungif fi dnl dnl libungif is the same thing as libgif for all practical purposes. dnl 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=-lgif 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 $my_libname" supported_gfx="$supported_gfx GIF" AC_DEFINE(USE_GIF, 1, [define if GIF libraries are available (set by configure)]) fi fi fi dnl TIFF Support dnl ============ AC_ARG_ENABLE(tiff, AS_HELP_STRING([--disable-tiff], [disable use of TIFF images through libtiff]), tif=$enableval, tif=yes, tif=no) # # TIFF can optionally have JPEG and/or zlib support. Must find out # when they are supported so that correct library flags are passed during # detection and linkage # # # By default use xpm icons if tiff is not found. ICONEXT="xpm" # if test "$tif" = yes; then my_libname="" 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 "x$my_libname" = x; then WM_CHECK_LIB(tiff, TIFFGetVersion, [$ljpeg -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, [$ljpeg -lm]) if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then my_libname="-ltiff34" fi fi 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, 1, [define if TIFF libraries are available (set by configure)]) 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(GFXLIBS) AC_SUBST(ICONEXT) AM_CONDITIONAL([ICON_EXT_XPM], [test "x$ICONEXT" = "xxpm"]) AM_CONDITIONAL([ICON_EXT_TIFF], [test "x$ICONEXT" = "xtiff"]) dnl ============================================== dnl End of Graphic Format Libraries dnl ============================================== dnl dnl stdlib.h is checked here, because of conflict in jpeglib.h AC_CHECK_HEADERS(stdlib.h) # AC_PREFIX_PROGRAM(wmaker) dnl Support for PIXMAPDIR option dnl ============================ AC_ARG_WITH(pixmapdir, AS_HELP_STRING([--with-pixmapdir=PATH], [specify where pixmaps are located [DATADIR/pixmaps]])) if test "x$with_pixmapdir" != "x"; then pixmapdir=$with_pixmapdir else pixmapdir='${datadir}/pixmaps' fi AC_SUBST(pixmapdir) dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app dnl ============================================== AC_ARG_WITH(gnustepdir, AS_HELP_STRING([--with-gnustepdir=PATH], [specify the directory for GNUstep applications])) if test "x`echo $with_gnustepdir | grep ^/`" != "x"; then appspath=$with_gnustepdir fi if test "x$appspath$GNUSTEP_LOCAL_ROOT" = "x"; then wprefs_base_dir=${prefix} wprefs_datadir="${datadir}/WPrefs" wprefs_bindir="${bindir}" else gnustepdir=$appspath if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s|^${prefix}|prefix|"` gnustepdir=`echo $gnustepdir | sed -e 's|^prefix|${prefix}|'` fi wprefs_base_dir=$gnustepdir/Applications wprefs_datadir=$wprefs_base_dir/WPrefs.app wprefs_bindir=$wprefs_base_dir/WPrefs.app fi AC_SUBST(wprefs_datadir) AC_SUBST(wprefs_bindir) dnl Enable User Defined Menu thing dnl ============================== AC_ARG_ENABLE(usermenu, AS_HELP_STRING([--enable-usermenu], [user defined menus for applications]), if test "$enableval" = yes; then AC_DEFINE(USER_MENU, 1, [define if you want user defined menus for applications]) fi ) gl_LD_VERSION_SCRIPT AC_OUTPUT(Makefile po/Makefile util/Makefile util/po/Makefile test/Makefile \ WINGs/Makefile WINGs/WINGs/Makefile WINGs/Documentation/Makefile \ WINGs/Examples/Makefile WINGs/Resources/Makefile WINGs/Tests/Makefile \ WINGs/Extras/Makefile WINGs/po/Makefile \ wmlib/Makefile wrlib/Makefile wrlib/tests/Makefile \ src/Makefile src/wconfig.h \ doc/Makefile doc/sk/Makefile doc/cs/Makefile \ doc/ru/Makefile \ WindowMaker/Makefile WindowMaker/Backgrounds/Makefile \ WindowMaker/Defaults/Makefile WindowMaker/IconSets/Makefile \ WindowMaker/Icons/Makefile WindowMaker/Pixmaps/Makefile \ WindowMaker/Styles/Makefile WindowMaker/Themes/Makefile \ WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \ WPrefs.app/po/Makefile ) dnl Output some helpful data for compiling wraster and WINGs/WUtil apps dnl =================================================================== dnl echo "WFLAGS=\"$LIBPL_INC_PATH -I$prefix/include\"" > WINGs-flags dnl echo "WLIBS=\"-L$exec_prefix/lib -lWINGs -lwraster $LIBPL_LIBS $GFXLIBS -lm\""\ dnl | sed -e 's|\$(prefix)|'"$prefix|" >> WINGs-flags dnl The #lp# and #rp# stuff below is a hack because [ and ] get lost when dnl parsed by m4 AC_SUBST(lib_search_path) AC_SUBST(inc_search_path) dnl dnl Spit out the configuration dnl ========================== supported_gfx="$supported_gfx builtin-PPM" if test "x$MOFILES" = "x"; then mof=None else mof=`echo $MOFILES` fi if test "x$MOFILES" = "x"; then languages=None else languages=`echo $MOFILES | sed 's/.mo//g'` fi echo echo "Window Maker was configured as follows:" echo echo "Installation path prefix : $prefix" echo "Installation path for binaries : $_bindir" echo "Installation path for libraries : $libdir" echo "Installation path for WPrefs.app : $wprefs_base_dir" | sed -e 's|\${prefix}|'"$prefix|" echo "Supported graphic format libraries : $supported_gfx" echo "Antialiased text support in WINGs : $xft" echo "Xinerama extension support : $xinerama" echo "XRandR extension support : $xrandr" echo "Translated message files to install : $mof" dnl echo "Supported languages beside English : $languages" if test "x$MOFILES" != "x"; then echo "Installation path for translations : $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|" fi AS_IF([test "x$debug" = "xyes"], [echo "Debug information enabled : $debug"]) echo dnl WM_PRINT_REDCRAP_BUG_STATUS 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" echo "not installed correctly or was not found. Background images" echo "from themes will not display as they usually are JPEG files." echo echo "To fix, download and install the jpeg library and/or make sure you" echo "installed all jpeg related packages, SPECIALLY the development packages" echo "like jpeg-devel (if you use some prepackaged version of libjpeg)." echo echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING" fi dnl This is for Emacs. I'm lazy, I know... (nicolai) dnl ================================================ dnl Local Variables: dnl compile-command: "autoconf" dnl End: WindowMaker-0.95.5/src/0000755000175000017500000000000012214434642011633 500000000000000WindowMaker-0.95.5/src/session.c0000644000175000017500000003302112214432632013376 00000000000000/* session.c - session state handling and R6 style session management * * Copyright (c) 1998-2003 Dan Pascu * Copyright (c) 1998-2003 Alfredo Kojima * * Window Maker window manager * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ /* * * If defined(XSMP_ENABLED) and session manager is running then * do normal stuff * else * do pre-R6 session management stuff (save window state and relaunch) * * When doing a checkpoint: * * = Without XSMP * Open "Stop"/status Dialog * Send SAVE_YOURSELF to clients and wait for reply * Save restart info * Save state of clients * * = With XSMP * Send checkpoint request to sm * * When exiting: * ------------- * * = Without XSMP * * Open "Exit Now"/status Dialog * Send SAVE_YOURSELF to clients and wait for reply * Save restart info * Save state of clients * Send DELETE to all clients * When no more clients are left or user hit "Exit Now", exit * * = With XSMP * * Send Shutdown request to session manager * if SaveYourself message received, save state of clients * if the Die message is received, exit. */ #include "wconfig.h" #include #include #include #include #include #include #include #include #include "WindowMaker.h" #include "screen.h" #include "window.h" #include "client.h" #include "session.h" #include "framewin.h" #include "workspace.h" #include "main.h" #include "properties.h" #include "application.h" #include "appicon.h" #include "dock.h" #include "misc.h" #include /** Global **/ extern Atom _XA_WM_SAVE_YOURSELF; extern Time LastTimestamp; static WMPropList *sApplications = NULL; static WMPropList *sCommand; static WMPropList *sName; static WMPropList *sHost; static WMPropList *sWorkspace; static WMPropList *sShaded; static WMPropList *sMiniaturized; static WMPropList *sHidden; static WMPropList *sGeometry; static WMPropList *sShortcutMask; static WMPropList *sDock; static WMPropList *sYes, *sNo; static void make_keys(void) { if (sApplications != NULL) return; sApplications = WMCreatePLString("Applications"); sCommand = WMCreatePLString("Command"); sName = WMCreatePLString("Name"); sHost = WMCreatePLString("Host"); sWorkspace = WMCreatePLString("Workspace"); sShaded = WMCreatePLString("Shaded"); sMiniaturized = WMCreatePLString("Miniaturized"); sHidden = WMCreatePLString("Hidden"); sGeometry = WMCreatePLString("Geometry"); sDock = WMCreatePLString("Dock"); sShortcutMask = WMCreatePLString("ShortcutMask"); sYes = WMCreatePLString("Yes"); sNo = WMCreatePLString("No"); } static int getBool(WMPropList * value) { char *val; if (!WMIsPLString(value)) { return 0; } if (!(val = WMGetFromPLString(value))) { return 0; } if ((val[1] == '\0' && (val[0] == 'y' || val[0] == 'Y')) || strcasecmp(val, "YES") == 0) { return 1; } else if ((val[1] == '\0' && (val[0] == 'n' || val[0] == 'N')) || strcasecmp(val, "NO") == 0) { return 0; } else { int i; if (sscanf(val, "%i", &i) == 1) { return (i != 0); } else { wwarning(_("can't convert \"%s\" to boolean"), val); return 0; } } } static unsigned getInt(WMPropList * value) { char *val; unsigned n; if (!WMIsPLString(value)) return 0; val = WMGetFromPLString(value); if (!val) return 0; if (sscanf(val, "%u", &n) != 1) return 0; return n; } static WMPropList *makeWindowState(WWindow * wwin, WApplication * wapp) { WScreen *scr = wwin->screen_ptr; Window win; int i; unsigned mask; char *class, *instance, *command = NULL, buffer[512]; WMPropList *win_state, *cmd, *name, *workspace; WMPropList *shaded, *miniaturized, *hidden, *geometry; WMPropList *dock, *shortcut; if (wwin->orig_main_window != None && wwin->orig_main_window != wwin->client_win) win = wwin->orig_main_window; else win = wwin->client_win; command = GetCommandForWindow(win); if (!command) return NULL; if (PropGetWMClass(win, &class, &instance)) { if (class && instance) snprintf(buffer, sizeof(buffer), "%s.%s", instance, class); else if (instance) snprintf(buffer, sizeof(buffer), "%s", instance); else if (class) snprintf(buffer, sizeof(buffer), ".%s", class); else snprintf(buffer, sizeof(buffer), "."); name = WMCreatePLString(buffer); cmd = WMCreatePLString(command); /*sprintf(buffer, "%d", wwin->frame->workspace+1); workspace = WMCreatePLString(buffer); */ workspace = WMCreatePLString(scr->workspaces[wwin->frame->workspace]->name); shaded = wwin->flags.shaded ? sYes : sNo; miniaturized = wwin->flags.miniaturized ? sYes : sNo; hidden = wwin->flags.hidden ? sYes : sNo; snprintf(buffer, sizeof(buffer), "%ix%i+%i+%i", wwin->client.width, wwin->client.height, wwin->frame_x, wwin->frame_y); geometry = WMCreatePLString(buffer); for (mask = 0, i = 0; i < MAX_WINDOW_SHORTCUTS; i++) { if (scr->shortcutWindows[i] != NULL && WMGetFirstInArray(scr->shortcutWindows[i], wwin) != WANotFound) mask |= 1 << i; } snprintf(buffer, sizeof(buffer), "%u", mask); shortcut = WMCreatePLString(buffer); win_state = WMCreatePLDictionary(sName, name, sCommand, cmd, sWorkspace, workspace, sShaded, shaded, sMiniaturized, miniaturized, sHidden, hidden, sShortcutMask, shortcut, sGeometry, geometry, NULL); WMReleasePropList(name); WMReleasePropList(cmd); WMReleasePropList(workspace); WMReleasePropList(geometry); WMReleasePropList(shortcut); if (wapp && wapp->app_icon && wapp->app_icon->dock) { int i; char *name = NULL; if (wapp->app_icon->dock == scr->dock) { name = "Dock"; } if (name == NULL) // Try the clips { for (i = 0; i < scr->workspace_count; i++) if (scr->workspaces[i]->clip == wapp->app_icon->dock) break; if (i < scr->workspace_count) name = scr->workspaces[i]->name; } if (name == NULL) // Try the drawers { WDrawerChain *dc; for (dc = scr->drawers; dc != NULL; dc = dc->next) { if (dc->adrawer == wapp->app_icon->dock) break; } assert(dc != NULL); name = dc->adrawer->icon_array[0]->wm_instance; } dock = WMCreatePLString(name); WMPutInPLDictionary(win_state, sDock, dock); WMReleasePropList(dock); } } else { win_state = NULL; } if (instance) free(instance); if (class) free(class); if (command) wfree(command); return win_state; } void wSessionSaveState(WScreen * scr) { WWindow *wwin = scr->focused_window; WMPropList *win_info, *wks; WMPropList *list = NULL; WMArray *wapp_list = NULL; make_keys(); if (!scr->session_state) { scr->session_state = WMCreatePLDictionary(NULL, NULL); if (!scr->session_state) return; } list = WMCreatePLArray(NULL); wapp_list = WMCreateArray(16); while (wwin) { WApplication *wapp = wApplicationOf(wwin->main_window); Window appId = wwin->orig_main_window; if ((wwin->transient_for == None || wwin->transient_for == wwin->screen_ptr->root_win) && (WMGetFirstInArray(wapp_list, (void *)appId) == WANotFound || WFLAGP(wwin, shared_appicon)) && !WFLAGP(wwin, dont_save_session)) { /* A entry for this application was not yet saved. Save one. */ if ((win_info = makeWindowState(wwin, wapp)) != NULL) { WMAddToPLArray(list, win_info); WMReleasePropList(win_info); /* If we were succesful in saving the info for this window * add the application the window belongs to, to the * application list, so no multiple entries for the same * application are saved. */ WMAddToArray(wapp_list, (void *)appId); } } wwin = wwin->prev; } WMRemoveFromPLDictionary(scr->session_state, sApplications); WMPutInPLDictionary(scr->session_state, sApplications, list); WMReleasePropList(list); wks = WMCreatePLString(scr->workspaces[scr->current_workspace]->name); WMPutInPLDictionary(scr->session_state, sWorkspace, wks); WMReleasePropList(wks); WMFreeArray(wapp_list); } void wSessionClearState(WScreen * scr) { make_keys(); if (!scr->session_state) return; WMRemoveFromPLDictionary(scr->session_state, sApplications); WMRemoveFromPLDictionary(scr->session_state, sWorkspace); } static pid_t execCommand(WScreen *scr, char *command) { pid_t pid; char **argv; int argc; wtokensplit(command, &argv, &argc); if (!argc) { return 0; } if ((pid = fork()) == 0) { char **args; int i; SetupEnvironment(scr); args = malloc(sizeof(char *) * (argc + 1)); if (!args) exit(111); for (i = 0; i < argc; i++) { args[i] = argv[i]; } args[argc] = NULL; execvp(argv[0], args); exit(111); } while (argc > 0) wfree(argv[--argc]); wfree(argv); return pid; } static WSavedState *getWindowState(WScreen * scr, WMPropList * win_state) { WSavedState *state = wmalloc(sizeof(WSavedState)); WMPropList *value; char *tmp; unsigned mask; int i; state->workspace = -1; value = WMGetFromPLDictionary(win_state, sWorkspace); if (value && WMIsPLString(value)) { tmp = WMGetFromPLString(value); if (sscanf(tmp, "%i", &state->workspace) != 1) { state->workspace = -1; for (i = 0; i < scr->workspace_count; i++) { if (strcmp(scr->workspaces[i]->name, tmp) == 0) { state->workspace = i; break; } } } else { state->workspace--; } } if ((value = WMGetFromPLDictionary(win_state, sShaded)) != NULL) state->shaded = getBool(value); if ((value = WMGetFromPLDictionary(win_state, sMiniaturized)) != NULL) state->miniaturized = getBool(value); if ((value = WMGetFromPLDictionary(win_state, sHidden)) != NULL) state->hidden = getBool(value); if ((value = WMGetFromPLDictionary(win_state, sShortcutMask)) != NULL) { mask = getInt(value); state->window_shortcuts = mask; } value = WMGetFromPLDictionary(win_state, sGeometry); if (value && WMIsPLString(value)) { if (!(sscanf(WMGetFromPLString(value), "%ix%i+%i+%i", &state->w, &state->h, &state->x, &state->y) == 4 && (state->w > 0 && state->h > 0))) { state->w = 0; state->h = 0; } } return state; } #define SAME(x, y) (((x) && (y) && !strcmp((x), (y))) || (!(x) && !(y))) void wSessionRestoreState(WScreen *scr) { WSavedState *state; char *instance, *class, *command; WMPropList *win_info, *apps, *cmd, *value; pid_t pid; int i, count; WDock *dock; WAppIcon *btn = NULL; int j, n, found; char *tmp; make_keys(); if (!scr->session_state) return; WMPLSetCaseSensitive(True); apps = WMGetFromPLDictionary(scr->session_state, sApplications); if (!apps) return; count = WMGetPropListItemCount(apps); if (count == 0) return; for (i = 0; i < count; i++) { win_info = WMGetFromPLArray(apps, i); cmd = WMGetFromPLDictionary(win_info, sCommand); if (!cmd || !WMIsPLString(cmd) || !(command = WMGetFromPLString(cmd))) { continue; } value = WMGetFromPLDictionary(win_info, sName); if (!value) continue; ParseWindowName(value, &instance, &class, "session"); if (!instance && !class) continue; state = getWindowState(scr, win_info); dock = NULL; value = WMGetFromPLDictionary(win_info, sDock); if (value && WMIsPLString(value) && (tmp = WMGetFromPLString(value)) != NULL) { if (sscanf(tmp, "%i", &n) != 1) { if (!strcasecmp(tmp, "DOCK")) { dock = scr->dock; } if (dock == NULL) // Try the clips { for (j = 0; j < scr->workspace_count; j++) { if (strcmp(scr->workspaces[j]->name, tmp) == 0) { dock = scr->workspaces[j]->clip; break; } } } if (dock == NULL) // Try the drawers { WDrawerChain *dc; for (dc = scr->drawers; dc != NULL; dc = dc->next) { if (strcmp(dc->adrawer->icon_array[0]->wm_instance, tmp) == 0) { dock = dc->adrawer; break; } } } } else { if (n == 0) { dock = scr->dock; } else if (n > 0 && n <= scr->workspace_count) { dock = scr->workspaces[n - 1]->clip; } } } found = 0; if (dock != NULL) { for (j = 0; j < dock->max_icons; j++) { btn = dock->icon_array[j]; if (btn && SAME(instance, btn->wm_instance) && SAME(class, btn->wm_class) && SAME(command, btn->command) && !btn->launching) { found = 1; break; } } } if (found) { wDockLaunchWithState(dock, btn, state); } else if ((pid = execCommand(scr, command)) > 0) { wWindowAddSavedState(instance, class, command, pid, state); } else { wfree(state); } if (instance) wfree(instance); if (class) wfree(class); } /* clean up */ WMPLSetCaseSensitive(False); } void wSessionRestoreLastWorkspace(WScreen * scr) { WMPropList *wks; int w; char *value; make_keys(); if (!scr->session_state) return; WMPLSetCaseSensitive(True); wks = WMGetFromPLDictionary(scr->session_state, sWorkspace); if (!wks || !WMIsPLString(wks)) return; value = WMGetFromPLString(wks); if (!value) return; /* clean up */ WMPLSetCaseSensitive(False); /* Get the workspace number for the workspace name */ w = wGetWorkspaceNumber(scr, value); if (w != scr->current_workspace && w < scr->workspace_count) wWorkspaceChange(scr, w); } WindowMaker-0.95.5/src/appmenu.h0000644000175000017500000000206312214432632013367 00000000000000/* appmenu.h- application defined menu * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _WAPPMENU_H_ #define _WAPPMENU_H_ WMenu *wAppMenuGet(WScreen *scr, Window window); void wAppMenuDestroy(WMenu *menu); void wAppMenuMap(WMenu *menu, WWindow *wwin); void wAppMenuUnmap(WMenu *menu); #endif WindowMaker-0.95.5/src/dock.h0000644000175000017500000001006712214432632012645 00000000000000/* dock.h- built-in Dock module for WindowMaker * * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMDOCK_H_ #define WMDOCK_H_ #include "appicon.h" typedef struct WDock { WScreen *screen_ptr; int x_pos, y_pos; /* position of the first icon */ WAppIcon **icon_array; /* array of docked icons */ int max_icons; int icon_count; #define WM_DOCK 0 #define WM_CLIP 1 #define WM_DRAWER 2 int type; WMagicNumber auto_expand_magic; WMagicNumber auto_collapse_magic; WMagicNumber auto_raise_magic; WMagicNumber auto_lower_magic; unsigned int auto_collapse:1; /* if clip auto-collapse itself */ unsigned int auto_raise_lower:1; /* if clip should raise/lower when * entered/leaved */ unsigned int on_right_side:1; unsigned int collapsed:1; unsigned int mapped:1; unsigned int lowered:1; unsigned int attract_icons:1; /* If clip should attract app-icons */ unsigned int lclip_button_pushed:1; unsigned int rclip_button_pushed:1; struct WMenu *menu; struct WDDomain *defaults; } WDock; WDock *wDockCreate(WScreen *scr, int type, const char *name); WDock *wDockRestoreState(WScreen *scr, WMPropList *dock_state, int type); void wDockDestroy(WDock *dock); void wDockHideIcons(WDock *dock); void wDockShowIcons(WDock *dock); void wDockLower(WDock *dock); void wDockRaise(WDock *dock); void wDockRaiseLower(WDock *dock); void wDockSaveState(WScreen *scr, WMPropList *old_state); Bool wDockAttachIcon(WDock *dock, WAppIcon *icon, int x, int y, Bool update_icon); Bool wDockSnapIcon(WDock *dock, WAppIcon *icon, int req_x, int req_y, int *ret_x, int *ret_y, int redocking); Bool wDockFindFreeSlot(WDock *dock, int *req_x, int *req_y); void wDockDetach(WDock *dock, WAppIcon *icon); Bool wDockMoveIconBetweenDocks(WDock *src, WDock *dest, WAppIcon *icon, int x, int y); void wDockReattachIcon(WDock *dock, WAppIcon *icon, int x, int y); void wSlideAppicons(WAppIcon **appicons, int n, int to_the_left); void wDrawerFillTheGap(WDock *drawer, WAppIcon *aicon, Bool redocking); void wDockFinishLaunch(WDock *dock, WAppIcon *icon); void wDockTrackWindowLaunch(WDock *dock, Window window); WAppIcon *wDockFindIconForWindow(WDock *dock, Window window); void wDockDoAutoLaunch(WDock *dock, int workspace); void wDockLaunchWithState(WDock *dock, WAppIcon *btn, WSavedState *state); #ifdef XDND int wDockReceiveDNDDrop(WScreen *scr, XEvent *event); #endif void wClipIconPaint(WAppIcon *aicon); void wClipSaveState(WScreen *scr); WMPropList *wClipSaveWorkspaceState(WScreen *scr, int workspace); WAppIcon *wClipRestoreState(WScreen *scr, WMPropList *clip_state); void wDrawerIconPaint(WAppIcon *dicon); void wDrawersSaveState(WScreen *scr); void wDrawersRestoreState(WScreen *scr); int wIsADrawer(WScreen *scr, WAppIcon *aicon); void wClipUpdateForWorkspaceChange(WScreen *scr, int workspace); RImage *wClipMakeTile(WScreen *scr, RImage *normalTile); RImage* wDrawerMakeTile(WScreen *scr, RImage *normalTile); #define WO_FAILED 0 #define WO_NOT_APPLICABLE 1 #define WO_SUCCESS 2 typedef enum { P_NORMAL = 0, P_AUTO_RAISE_LOWER, P_KEEP_ON_TOP, } dockPosition; int wClipMakeIconOmnipresent(WAppIcon *aicon, int omnipresent); #endif WindowMaker-0.95.5/src/client.c0000644000175000017500000004761012214432632013202 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #ifdef SHAPE #include #endif #include #include #include #include "WindowMaker.h" #include "framewin.h" #include "window.h" #include "properties.h" #include "actions.h" #include "icon.h" #include "client.h" #include "colormap.h" #include "stacking.h" #include "appicon.h" #include "appmenu.h" #include "wmspec.h" #include "misc.h" /****** Global Variables ******/ /* contexts */ extern XContext wWinContext; extern Atom _XA_WM_STATE; extern Atom _XA_WM_PROTOCOLS; extern Atom _XA_WM_COLORMAP_WINDOWS; extern Atom _XA_WINDOWMAKER_MENU; extern Atom _XA_GNUSTEP_WM_ATTR; extern Atom _XA_GNUSTEP_WM_RESIZEBAR; #ifdef SHAPE extern Bool wShapeSupported; #endif /* *-------------------------------------------------------------------- * wClientRestore-- * Reparent the window back to the root window. * *-------------------------------------------------------------------- */ void wClientRestore(WWindow * wwin) { #if 0 int gx, gy; wClientGetGravityOffsets(wwin, &gx, &gy); /* set the position of the frame on screen */ wwin->frame_x -= gx * wwin->screen_ptr->frame_border_width; wwin->frame_y -= gy * wwin->screen_ptr->frame_border_width; /* if gravity is to the south, account for the border sizes */ if (gy > 0) wwin->frame_y += (wwin->frame->top_width + wwin->frame->bottom_width); #endif 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); /* don't let the window get iconified after restart */ /* if (wwin->flags.shaded) wClientSetState(wwin, NormalState, None); */ } /* *---------------------------------------------------------------------- * wClientSetState-- * Set the state of the client window to one of the window * states defined in ICCCM (Iconic, Withdrawn, Normal) * * Side effects: * The WM_STATE property of the window is updated as well as the * WWindow.state variable. *---------------------------------------------------------------------- */ void wClientSetState(WWindow * wwin, int state, Window icon_win) { long data[2]; wwin->state = state; data[0] = (unsigned long)state; data[1] = (unsigned long)icon_win; XChangeProperty(dpy, wwin->client_win, _XA_WM_STATE, _XA_WM_STATE, 32, PropModeReplace, (unsigned char *)data, 2); } void wClientGetGravityOffsets(WWindow * wwin, int *ofs_x, int *ofs_y) { switch (wwin->normal_hints->win_gravity) { case ForgetGravity: case CenterGravity: case StaticGravity: *ofs_x = 0; *ofs_y = 0; break; case NorthWestGravity: *ofs_x = -1; *ofs_y = -1; break; case NorthGravity: *ofs_x = 0; *ofs_y = -1; break; case NorthEastGravity: *ofs_x = 1; *ofs_y = -1; break; case WestGravity: *ofs_x = -1; *ofs_y = 0; break; case EastGravity: *ofs_x = 1; *ofs_y = 0; break; case SouthWestGravity: *ofs_x = -1; *ofs_y = 1; break; case SouthGravity: *ofs_x = 0; *ofs_y = 1; break; case SouthEastGravity: *ofs_x = 1; *ofs_y = 1; break; } } void wClientConfigure(WWindow * wwin, XConfigureRequestEvent * xcre) { XWindowChanges xwc; int nx, ny, nwidth, nheight; int ofs_x, ofs_y; /* printf("configure event: %d %d %d %d\n", xcre->x, xcre->y, xcre->width, xcre->height); */ if (wwin == NULL) { /* * configure a window that was not mapped by us */ xwc.x = xcre->x; xwc.y = xcre->y; xwc.width = xcre->width; xwc.height = xcre->height; xwc.border_width = xcre->border_width; xwc.stack_mode = xcre->detail; xwc.sibling = xcre->above; XConfigureWindow(dpy, xcre->window, xcre->value_mask, &xwc); return; } #ifdef SHAPE if (wShapeSupported) { int junk; unsigned int ujunk; int b_shaped; XShapeSelectInput(dpy, wwin->client_win, ShapeNotifyMask); XShapeQueryExtents(dpy, wwin->client_win, &b_shaped, &junk, &junk, &ujunk, &ujunk, &junk, &junk, &junk, &ujunk, &ujunk); wwin->flags.shaped = b_shaped; } #endif if (xcre->value_mask & CWStackMode) { WObjDescriptor *desc; WWindow *sibling; if ((xcre->value_mask & CWSibling) && (XFindContext(dpy, xcre->above, wWinContext, (XPointer *) & desc) == XCSUCCESS) && (desc->parent_type == WCLASS_WINDOW)) { sibling = desc->parent; xwc.sibling = sibling->frame->core->window; } else { xwc.sibling = xcre->above; } xwc.stack_mode = xcre->detail; XConfigureWindow(dpy, wwin->frame->core->window, xcre->value_mask & (CWSibling | CWStackMode), &xwc); /* fix stacking order */ RemakeStackList(wwin->screen_ptr); } wClientGetGravityOffsets(wwin, &ofs_x, &ofs_y); if (xcre->value_mask & CWBorderWidth) { wwin->old_border_width = xcre->border_width; } if (!wwin->flags.shaded) { /* If the window is shaded, wrong height will be set for the window */ if (xcre->value_mask & CWX) { nx = xcre->x; /* Subtracting the border makes the window shift by 1 pixel -Dan */ /*if (HAS_BORDER(wwin)) { nx -= wwin->screen_ptr->frame_border_width; } */ } else { nx = wwin->frame_x; } if (xcre->value_mask & CWY) { ny = xcre->y - ((ofs_y < 0) ? 0 : wwin->frame->top_width); /* Subtracting the border makes the window shift by 1 pixel -Dan */ /*if (HAS_BORDER(wwin)) { ny -= wwin->screen_ptr->frame_border_width; } */ } else { ny = wwin->frame_y; } if (xcre->value_mask & CWWidth) nwidth = xcre->width; else nwidth = wwin->frame->core->width; if (xcre->value_mask & CWHeight) nheight = xcre->height; else nheight = wwin->frame->core->height - wwin->frame->top_width - wwin->frame->bottom_width; if (nwidth != wwin->old_geometry.width) wwin->flags.maximized &= ~(MAX_HORIZONTAL | MAX_TOPHALF | MAX_BOTTOMHALF | MAX_MAXIMUS); if (nheight != wwin->old_geometry.height) wwin->flags.maximized &= ~(MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_MAXIMUS); wWindowConfigure(wwin, nx, ny, nwidth, nheight); wwin->old_geometry.x = nx; wwin->old_geometry.y = ny; wwin->old_geometry.width = nwidth; wwin->old_geometry.height = nheight; } } void wClientSendProtocol(WWindow * wwin, Atom protocol, Time time) { XEvent event; event.xclient.type = ClientMessage; event.xclient.message_type = _XA_WM_PROTOCOLS; event.xclient.format = 32; event.xclient.display = dpy; event.xclient.window = wwin->client_win; event.xclient.data.l[0] = protocol; event.xclient.data.l[1] = time; event.xclient.data.l[2] = 0; event.xclient.data.l[3] = 0; XSendEvent(dpy, wwin->client_win, False, NoEventMask, &event); XSync(dpy, False); } void wClientKill(WWindow * wwin) { XKillClient(dpy, wwin->client_win); XFlush(dpy); } /* *---------------------------------------------------------------------- * wClientCheckProperty-- * Handles PropertyNotify'es, verifying which property was * changed and updating internal state according to that, like redrawing * the icon title when it is changed. * * Side effects: * Depends on the changed property. * * TODO: _GNUSTEP_WM_ATTR *---------------------------------------------------------------------- */ void wClientCheckProperty(WWindow * wwin, XPropertyEvent * event) { XWindowAttributes attribs; XWMHints *new_hints; int i, g1, g2; char *tmp = NULL; switch (event->atom) { case XA_WM_NAME: if (!wwin->flags.net_has_title) { /* window title was changed */ if (!wFetchName(dpy, wwin->client_win, &tmp)) { wWindowUpdateName(wwin, NULL); } else { wWindowUpdateName(wwin, tmp); } if (tmp) XFree(tmp); } break; case XA_WM_ICON_NAME: /* Title has changed, update the icon title */ if (wwin->icon) { wIconChangeTitle(wwin->icon, wwin); wIconPaint(wwin->icon); } break; case XA_WM_COMMAND: if (wwin->main_window != None) { WApplication *wapp = wApplicationOf(wwin->main_window); char *command; if (!wapp || !wapp->app_icon || wapp->app_icon->docked) break; command = GetCommandForWindow(wwin->main_window); if (command) { if (wapp->app_icon->command) wfree(wapp->app_icon->command); wapp->app_icon->command = command; } } break; case XA_WM_HINTS: /* WM_HINTS */ new_hints = XGetWMHints(dpy, wwin->client_win); /* group leader update * * This means that the window is setting the leader after * it was mapped, changing leaders or removing the leader. * * Valid state transitions are: * * _1 __2 * / \ / \ * v | v | * (GC) (GC') * / ^ / ^ * 3| |4 5| |6 * | | | | * v / v / * (G'C) (G'C') * * Where G is the window_group hint, C is CLIENT_LEADER property * and ' indicates the hint is unset. * * 1,2 - change group leader to new value of window_group * 3 - change leader to value of CLIENT_LEADER * 4 - change leader to value of window_group * 5 - destroy application * 6 - create application */ if (new_hints && (new_hints->flags & WindowGroupHint) && new_hints->window_group != None) { g2 = 1; } else { g2 = 0; } if (wwin->wm_hints && (wwin->wm_hints->flags & WindowGroupHint) && wwin->wm_hints->window_group != None) { g1 = 1; } else { g1 = 0; } if (wwin->client_leader) { if (g1 && g2 && wwin->wm_hints->window_group != new_hints->window_group) { i = 1; } else if (g1 && !g2) { i = 3; } else if (!g1 && g2) { i = 4; } else { i = 0; } } else { if (g1 && g2 && wwin->wm_hints->window_group != new_hints->window_group) { i = 2; } else if (g1 && !g2) { i = 5; } else if (!g1 && g2) { i = 6; } else { i = 0; } } /* Handling this may require more work. -Dan */ if (wwin->fake_group != NULL) { i = 7; } if (wwin->wm_hints) XFree(wwin->wm_hints); wwin->wm_hints = new_hints; /* do action according to state transition */ switch (i) { /* 3 - change leader to value of CLIENT_LEADER */ case 3: wApplicationDestroy(wApplicationOf(wwin->main_window)); wwin->main_window = wwin->client_leader; wwin->group_id = None; wApplicationCreate(wwin); break; /* 1,2,4 - change leader to new value of window_group */ case 1: case 2: case 4: wApplicationDestroy(wApplicationOf(wwin->main_window)); wwin->main_window = new_hints->window_group; wwin->group_id = wwin->main_window; wApplicationCreate(wwin); break; /* 5 - destroy application */ case 5: wApplicationDestroy(wApplicationOf(wwin->main_window)); wwin->main_window = None; wwin->group_id = None; break; /* 6 - create application */ case 6: wwin->main_window = new_hints->window_group; wwin->group_id = wwin->main_window; wApplicationCreate(wwin); break; /* 7 - we have a fake window group id, so just ignore anything else */ case 7: break; } if (wwin->wm_hints) { /* update icon */ if ((wwin->wm_hints->flags & IconPixmapHint) || (wwin->wm_hints->flags & IconWindowHint)) { WApplication *wapp; if (wwin->flags.miniaturized && wwin->icon) wIconUpdate(wwin->icon); wapp = wApplicationOf(wwin->main_window); if (wapp && wapp->app_icon) { wIconUpdate(wapp->app_icon->icon); wAppIconPaint(wapp->app_icon); } } if (wwin->wm_hints->flags & UrgencyHint) wwin->flags.urgent = 1; else wwin->flags.urgent = 0; wAppBounceWhileUrgent(wApplicationOf(wwin->main_window)); /*} else if (wwin->fake_group!=NULL) { wwin->group_id = wwin->fake_group->leader; */ } else { wwin->group_id = None; } break; case XA_WM_NORMAL_HINTS: /* normal (geometry) hints */ { int foo; unsigned bar; XGetWindowAttributes(dpy, wwin->client_win, &attribs); wClientGetNormalHints(wwin, &attribs, False, &foo, &foo, &bar, &bar); /* TODO: should we check for consistency of the current * size against the new geometry hints? */ } break; case XA_WM_TRANSIENT_FOR: { Window new_owner; WWindow *owner; if (!XGetTransientForHint(dpy, wwin->client_win, &new_owner)) { new_owner = None; } else { if (new_owner == 0 || new_owner == wwin->client_win) { new_owner = wwin->screen_ptr->root_win; } } if (new_owner != wwin->transient_for) { owner = wWindowFor(wwin->transient_for); if (owner) { if (owner->flags.semi_focused) { owner->flags.semi_focused = 0; if ((owner->flags.mapped || owner->flags.shaded) && owner->frame) wFrameWindowPaint(owner->frame); } } owner = wWindowFor(new_owner); if (owner) { if (!owner->flags.semi_focused) { owner->flags.semi_focused = 1; if ((owner->flags.mapped || owner->flags.shaded) && owner->frame) wFrameWindowPaint(owner->frame); } } wwin->transient_for = new_owner; if (new_owner == None) { if (WFLAGP(wwin, no_miniaturizable)) { WSETUFLAG(wwin, no_miniaturizable, 0); WSETUFLAG(wwin, no_miniaturize_button, 0); if (wwin->frame) wWindowConfigureBorders(wwin); } } else if (!WFLAGP(wwin, no_miniaturizable)) { WSETUFLAG(wwin, no_miniaturizable, 1); WSETUFLAG(wwin, no_miniaturize_button, 1); if (wwin->frame) wWindowConfigureBorders(wwin); } } } break; default: if (event->atom == _XA_WM_PROTOCOLS) { PropGetProtocols(wwin->client_win, &wwin->protocols); WSETUFLAG(wwin, kill_close, !wwin->protocols.DELETE_WINDOW); if (wwin->frame) wWindowUpdateButtonImages(wwin); } else if (event->atom == _XA_WM_COLORMAP_WINDOWS) { GetColormapWindows(wwin); wColormapInstallForWindow(wwin->screen_ptr, wwin); } else if (event->atom == _XA_WINDOWMAKER_MENU) { WApplication *wapp; wapp = wApplicationOf(wwin->main_window); if (wapp) { if (wapp->menu) { /* update menu */ /* TODO: remake appmenu update */ wAppMenuDestroy(wapp->menu); } if (wwin->fake_group) { WScreen *scr = wwin->screen_ptr; WWindow *foo = scr->focused_window; WFakeGroupLeader *fPtr = wwin->fake_group; wApplicationDestroy(wapp); while (foo) { if (foo->fake_group && foo->fake_group == fPtr) { WSETUFLAG(foo, shared_appicon, 0); foo->fake_group = NULL; if (foo->group_id != None) foo->main_window = foo->group_id; else if (foo->client_leader != None) foo->main_window = foo->client_leader; else if (WFLAGP(foo, emulate_appicon)) foo->main_window = foo->client_win; else foo->main_window = None; if (foo->main_window) { wapp = wApplicationCreate(foo); } } foo = foo->prev; } if (fPtr->leader != None) XDestroyWindow(dpy, fPtr->leader); fPtr->retainCount = 0; fPtr->leader = None; fPtr->origLeader = None; wapp = wApplicationOf(wwin->main_window); if (wapp) { wapp->menu = wAppMenuGet(scr, wwin->main_window); } if (wPreferences.auto_arrange_icons) { wArrangeIcons(wwin->screen_ptr, True); } } else { wapp->menu = wAppMenuGet(wwin->screen_ptr, wwin->main_window); } /* make the appmenu be mapped */ wSetFocusTo(wwin->screen_ptr, NULL); wSetFocusTo(wwin->screen_ptr, wwin->screen_ptr->focused_window); } } else if (event->atom == _XA_GNUSTEP_WM_ATTR) { GNUstepWMAttributes *attr; PropGetGNUstepWMAttr(wwin->client_win, &attr); wWindowUpdateGNUstepAttr(wwin, attr); XFree(attr); } else { wNETWMCheckClientHintChange(wwin, event); } } } /* *---------------------------------------------------------------------- * wClientGetNormalHints-- * Get size (normal) hints and a default geometry for the client * window. The hints are also checked for inconsistency. If geometry is * True, the returned data will account for client specified initial * geometry. * * Side effects: * normal_hints is filled with valid data. *---------------------------------------------------------------------- */ void wClientGetNormalHints(WWindow * wwin, XWindowAttributes * wattribs, Bool geometry, int *x, int *y, unsigned *width, unsigned *height) { int pre_icccm = 0; /* not used */ /* find a position for the window */ if (!wwin->normal_hints) wwin->normal_hints = XAllocSizeHints(); if (!PropGetNormalHints(wwin->client_win, wwin->normal_hints, &pre_icccm)) { wwin->normal_hints->flags = 0; } *x = wattribs->x; *y = wattribs->y; *width = wattribs->width; *height = wattribs->height; if (!(wwin->normal_hints->flags & PWinGravity)) { wwin->normal_hints->win_gravity = NorthWestGravity; } if (!(wwin->normal_hints->flags & PMinSize)) { wwin->normal_hints->min_width = MIN_WINDOW_SIZE; wwin->normal_hints->min_height = MIN_WINDOW_SIZE; } if (!(wwin->normal_hints->flags & PBaseSize)) { wwin->normal_hints->base_width = 0; wwin->normal_hints->base_height = 0; } if (!(wwin->normal_hints->flags & PMaxSize)) { wwin->normal_hints->max_width = wwin->screen_ptr->scr_width * 2; wwin->normal_hints->max_height = wwin->screen_ptr->scr_height * 2; } /* some buggy apps set weird hints.. */ if (wwin->normal_hints->min_width <= 0) wwin->normal_hints->min_width = MIN_WINDOW_SIZE; if (wwin->normal_hints->min_height <= 0) wwin->normal_hints->min_height = MIN_WINDOW_SIZE; if (wwin->normal_hints->max_width < wwin->normal_hints->min_width) wwin->normal_hints->max_width = wwin->normal_hints->min_width; if (wwin->normal_hints->max_height < wwin->normal_hints->min_height) wwin->normal_hints->max_height = wwin->normal_hints->min_height; if (!(wwin->normal_hints->flags & PResizeInc)) { wwin->normal_hints->width_inc = 1; wwin->normal_hints->height_inc = 1; } else { if (wwin->normal_hints->width_inc <= 0) wwin->normal_hints->width_inc = 1; if (wwin->normal_hints->height_inc <= 0) wwin->normal_hints->height_inc = 1; } if (wwin->normal_hints->flags & PAspect) { if (wwin->normal_hints->min_aspect.x < 1) wwin->normal_hints->min_aspect.x = 1; if (wwin->normal_hints->min_aspect.y < 1) wwin->normal_hints->min_aspect.y = 1; if (wwin->normal_hints->max_aspect.x < 1) wwin->normal_hints->max_aspect.x = 1; if (wwin->normal_hints->max_aspect.y < 1) wwin->normal_hints->max_aspect.y = 1; } if (wwin->normal_hints->min_height > wwin->normal_hints->max_height) { wwin->normal_hints->min_height = wwin->normal_hints->max_height; } if (wwin->normal_hints->min_width > wwin->normal_hints->max_width) { wwin->normal_hints->min_width = wwin->normal_hints->max_width; } #ifdef IGNORE_PPOSITION wwin->normal_hints->flags &= ~PPosition; #endif if (pre_icccm && !wwin->screen_ptr->flags.startup && geometry) { if (wwin->normal_hints->flags & (USPosition | PPosition)) { *x = wwin->normal_hints->x; *y = wwin->normal_hints->y; } if (wwin->normal_hints->flags & (USSize | PSize)) { *width = wwin->normal_hints->width; *height = wwin->normal_hints->height; } } } void GetColormapWindows(WWindow * wwin) { #ifndef NO_CRASHES if (wwin->cmap_windows) { XFree(wwin->cmap_windows); } wwin->cmap_windows = NULL; wwin->cmap_window_no = 0; if (!XGetWMColormapWindows(dpy, wwin->client_win, &(wwin->cmap_windows), &(wwin->cmap_window_no)) || !wwin->cmap_windows) { wwin->cmap_window_no = 0; wwin->cmap_windows = NULL; } #endif } WindowMaker-0.95.5/src/pixmap.c0000644000175000017500000000715112214432632013216 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include "WindowMaker.h" #include "pixmap.h" /* *---------------------------------------------------------------------- * wPixmapCreateFromXPMData-- * Creates a WPixmap structure and initializes it with the supplied * XPM structure data. * * Returns: * A WPixmap structure or NULL on failure. * * Notes: * DEF_XPM_CLOSENESS specifies the XpmCloseness *---------------------------------------------------------------------- */ WPixmap *wPixmapCreateFromXPMData(WScreen * scr, char **data) { RImage *image; WPixmap *pix; image = RGetImageFromXPMData(scr->rcontext, data); if (!image) return NULL; pix = wmalloc(sizeof(WPixmap)); RConvertImageMask(scr->rcontext, image, &pix->image, &pix->mask, 128); pix->width = image->width; pix->height = image->height; pix->depth = scr->w_depth; RReleaseImage(image); return pix; } /* *---------------------------------------------------------------------- * wPixmapCreateFromXBMData-- * Creates a WPixmap structure and initializes it with the supplied * XBM structure data, size and mask. * * Returns: * A WPixmap structure or NULL on failure. * *---------------------------------------------------------------------- */ WPixmap *wPixmapCreateFromXBMData(WScreen * scr, char *data, char *mask, int width, int height, unsigned long fg, unsigned long bg) { WPixmap *pix; pix = wmalloc(sizeof(WPixmap)); pix->image = XCreatePixmapFromBitmapData(dpy, scr->w_win, data, width, height, fg, bg, scr->w_depth); if (pix->image == None) { wfree(pix); return NULL; } if (mask) { pix->mask = XCreateBitmapFromData(dpy, scr->w_win, mask, width, height); } else { pix->mask = None; } pix->width = width; pix->height = height; pix->depth = scr->w_depth; return pix; } WPixmap *wPixmapCreate(WScreen * scr, Pixmap image, Pixmap mask) { WPixmap *pix; Window foo; int bar; unsigned int width, height, depth, baz; pix = wmalloc(sizeof(WPixmap)); pix->image = image; pix->mask = mask; if (!XGetGeometry(dpy, image, &foo, &bar, &bar, &width, &height, &baz, &depth)) { wwarning("XGetGeometry() failed during wPixmapCreate()"); wfree(pix); return NULL; } pix->width = width; pix->height = height; pix->depth = depth; return pix; } /* *---------------------------------------------------------------------- * wPixmapDestroy-- * Destroys a WPixmap structure and the pixmap/mask it holds. * * Returns: * None *---------------------------------------------------------------------- */ void wPixmapDestroy(WPixmap * pix) { if (!pix->shared) { if (pix->mask && !pix->client_owned_mask) { XFreePixmap(dpy, pix->mask); } if (pix->image && !pix->client_owned) { XFreePixmap(dpy, pix->image); } } wfree(pix); } WindowMaker-0.95.5/src/def_pixmaps.h0000644000175000017500000001442112214432632014222 00000000000000/* diamond mark */ #define MENU_RADIO_INDICATOR_XBM_SIZE 9 static unsigned char MENU_RADIO_INDICATOR_XBM_DATA[] = { 0x10, 0x00, 0x38, 0x00, 0x7c, 0x00, 0xee, 0x00, 0xc7, 0x01, 0xee, 0x00, 0x7c, 0x00, 0x38, 0x00, 0x10, 0x00}; /* check mark */ #define MENU_CHECK_INDICATOR_XBM_SIZE 9 static unsigned char MENU_CHECK_INDICATOR_XBM_DATA[] = { 0x00, 0x01, 0x83, 0x01, 0xc3, 0x00, 0x63, 0x00, 0x33, 0x00, 0x1b, 0x00, 0x0f, 0x00, 0x07, 0x00, 0x03, 0x00}; #define MENU_MINI_INDICATOR_XBM_SIZE 9 static unsigned char MENU_MINI_INDICATOR_XBM_DATA[] = { 0xff, 0x01, 0xff, 0x01, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0x01}; #define MENU_HIDE_INDICATOR_XBM_SIZE 9 static unsigned char MENU_HIDE_INDICATOR_XBM_DATA[] = { 0x99, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x33, 0x01}; #define MENU_SHADE_INDICATOR_XBM_SIZE 9 static unsigned char MENU_SHADE_INDICATOR_XBM_DATA[] = { 0xff, 0x01, 0xff, 0x01, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; /* button pixmaps */ /* the first one is for normal state, the second is for when * the button is pushed */ static char *PRED_CLOSE_XPM[] = { "10 10 3 1", " c #000000", ". c #616561", "X c None", " .XXXXXX. ", ". .XXXX. .", "X. .XX. .X", "XX. .. .XX", "XXX. .XXX", "XXX. .XXX", "XX. .. .XX", "X. .XX. .X", ". .XXXX. .", " .XXXXXX. "}; static char *PRED_BROKEN_CLOSE_XPM[] = { "10 10 3 1", " c #000000", ". c #616561", "X c None", " .XXXXXX. ", ". .XXXX. .", "X. XXXX .X", "XXXXXXXXXX", "XXXXXXXXXX", "XXXXXXXXXX", "XXXXXXXXXX", "X. XXXX .X", ". .XXXX. .", " .XXXXXX. "}; static char *PRED_KILL_XPM[] = { "10 10 3 1", " c #000000", ". c #616561", "X c None", " .XXXXXX. ", ". XXXXXX .", "XXXXXXXXXX", "XXX .. XXX", "XXX. .XXX", "XXX. .XXX", "XXX .. XXX", "XXXXXXXXXX", ". XXXXXX .", " .XXXXXX. "}; static char *PRED_ICONIFY_XPM[] = { " 10 10 2 1", ". c #000000", "# c None", "..........", "..........", "..........", ".########.", ".########.", ".########.", ".########.", ".########.", ".########.", ".........." }; static char *NEXT_CLOSE_XPM[] = { "10 10 69 1", " c None", ". c #FBFBFB", "+ c #F9F9F9", "@ c #F7F7F7", "# c #F4F4F4", "$ c #F0F0F0", "% c #EDEDED", "& c #E8E8E8", "* c #AFAFAF", "= c #FCFCFC", "- c #8B8B8B", "; c #DEDEDE", "> c #E0E0E0", ", c #C7C7C7", "' c #999999", ") c #2B2B2B", "! c #878787", "~ c #F1F1F1", "{ c #222222", "] c #C2C2C2", "^ c #EBEBEB", "/ c #DCDCDC", "( c #9F9F9F", "_ c #363636", ": c #FEFEFE", "< c #C1C1C1", "[ c #232323", "} c #CFCFCF", "| c #282828", "1 c #D5D5D5", "2 c #FAFAFA", "3 c #F6F6F6", "4 c #D3D3D3", "5 c #121212", "6 c #BEBEBE", "7 c #898989", "8 c #838383", "9 c #EEEEEE", "0 c #E9E9E9", "a c #CDCDCD", "b c #080808", "c c #131313", "d c #A1A1A1", "e c #7F7F7F", "f c #808080", "g c #D9D9D9", "h c #8D8D8D", "i c #1D1D1D", "j c #C9C9C9", "k c #B4B4B4", "l c #191919", "m c #6A6A6A", "n c #6C6C6C", "o c #7A7A7A", "p c #B1B1B1", "q c #202020", "r c #BBBBBB", "s c #D4D4D4", "t c #151515", "u c #515151", "v c #747474", "w c #3A3A3A", "x c #CCCCCC", "y c #B3B3B3", "z c #939393", "A c #A3A3A3", "B c #919191", "C c #858585", "D c #7C7C7C", "...+@#$%&*", "=-;#%>,')!", "=~{]^/(_!!", "=:<[}*|1(!", "2@345[>678", "@90abc6def", "#ghijklmno", "~pqrgs(tuv", "%wxx'-p8tn", "yzAB7C8enD"}; static char *NEXT_BROKEN_CLOSE_XPM[] = { "10 10 8 1", " c None", ". c #E0E0E0", "+ c #7D7D7D", "@ c #DBDBDB", "# c #BDBDBD", "$ c #080808", "% c #363636", "& c #D4D4D4", ".........+", ".+@...#+$+", "..$#.@+%++", "..###++&++", "...&...#++", "...&..#+++", ".@+##+%%%+", ".+$#@&+$%%", ".%##++++$%", "++++++++%+"}; static char *NEXT_KILL_XPM[] = { "10 10 64 1", " c None", ". c #FBFBFB", "+ c #FAFAFA", "@ c #F7F7F7", "# c #F5F5F5", "$ c #F6F6F6", "% c #EEEEEE", "& c #B3B3B3", "* c #FCFCFC", "= c #8B8B8B", "- c #E3E3E3", "; c #F4F4F4", "> c #ECECEC", ", c #EAEAEA", "' c #BFBFBF", ") c #474747", "! c #A5A5A5", "~ c #EFEFEF", "{ c #262626", "] c #B6B6B6", "^ c #B4B4B4", "/ c #282828", "( c #A3A3A3", "_ c #FEFEFE", ": c #E0E0E0", "< c #B8B8B8", "[ c #C5C5C5", "} c #DCDCDC", "| c #D3D3D3", "1 c #E4E4E4", "2 c #B1B1B1", "3 c #878787", "4 c #D5D5D5", "5 c #202020", "6 c #222222", "7 c #F1F1F1", "8 c #959595", "9 c #838383", "0 c #DBDBDB", "a c #252525", "b c #E9E9E9", "c c #F0F0F0", "d c #999999", "e c #808080", "f c #9B9B9B", "g c #C2C2C2", "h c #7C7C7C", "i c #7A7A7A", "j c #232323", "k c #CCCCCC", "l c #C1C1C1", "m c #181818", "n c #404040", "o c #747474", "p c #E7E7E7", "q c #303030", "r c #C9C9C9", "s c #ACACAC", "t c #787878", "u c #141414", "v c #6C6C6C", "w c #8F8F8F", "x c #858585", "y c #7F7F7F", "...+@#$$%&", "*=-+;>,')!", "*~{];#^/((", "*_:<[}|123", "+@+456;789", "@~706abcde", "#0fg#$3ehi", "c=jk>%lmno", "pqr}s(^tuv", "2w!d=x9yvh"}; static char *NEXT_ICONIFY_XPM[] = { "10 10 72 1", " c None", ". c #FCFCFC", "+ c #FAFAFA", "@ c #F8F8F8", "# c #F6F6F6", "$ c #F2F2F2", "% c #EFEFEF", "& c #EAEAEA", "* c #A6A6A6", "= c #FEFEFE", "- c #FDFDFD", "; c #F9F9F9", "> c #E2E2E2", ", c #CBCBCB", "' c #AFAFAF", ") c #808080", "! c #717171", "~ c #FFFFFF", "{ c #FBFBFB", "] c #F1F1F1", "^ c #E5E5E5", "/ c #CCCCCC", "( c #838383", "_ c #A0A0A0", ": c #989898", "< c #8B8B8B", "[ c #7F7F7F", "} c #E8E8E8", "| c #ADADAD", "1 c #181818", "2 c #171717", "3 c #161616", "4 c #141414", "5 c #0A0A0A", "6 c #000000", "7 c #A2A2A2", "8 c #747474", "9 c #6C6C6C", "0 c #F0F0F0", "a c #B9B9B9", "b c #B7B7B7", "c c #B1B1B1", "d c #868686", "e c #020202", "f c #EDEDED", "g c #939393", "h c #676767", "i c #696969", "j c #8E8E8E", "k c #787878", "l c #757575", "m c #777777", "n c #767676", "o c #EBEBEB", "p c #525252", "q c #626262", "r c #F3F3F3", "s c #E1E1E1", "t c #B5B5B5", "u c #5F5F5F", "v c #424242", "w c #5B5B5B", "x c #9D9D9D", "y c #969696", "z c #E4E4E4", "A c #444444", "B c #2E2E2E", "C c #A9A9A9", "D c #7C7C7C", "E c #797979", "F c #5D5D5D", "G c #646464", "...+@#$%&*", ".=-;%>,')!", "-~={]^/'(!", "_'*:<[}|)!", "123456%789", "0abcdefghi", "jklmneonpq", "rs^>te}uvw", "f_xy9ezABp", "CDDEue7FpG"}; #ifdef XKB_BUTTON_HINT #include "extend_pixmaps.h" #endif /* XKB_BUTTON_HINT */ WindowMaker-0.95.5/src/switchpanel.h0000644000175000017500000000252312214432632014244 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2004 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _SWITCHPANEL_H_ #define _SWITCHPANEL_H_ typedef struct SwitchPanel WSwitchPanel; WSwitchPanel *wInitSwitchPanel(WScreen *scr, WWindow *curwin, Bool class_only); void wSwitchPanelDestroy(WSwitchPanel *panel); WWindow *wSwitchPanelSelectNext(WSwitchPanel *panel, int back, int ignore_minimized, Bool class_only); WWindow *wSwitchPanelSelectFirst(WSwitchPanel *panel, int back); WWindow *wSwitchPanelHandleEvent(WSwitchPanel *panel, XEvent *event); Window wSwitchPanelGetWindow(WSwitchPanel *swpanel); #endif /* _SWITCHPANEL_H_ */ WindowMaker-0.95.5/src/wcore.c0000644000175000017500000001120612214432632013033 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include "WindowMaker.h" #include "wcore.h" /****** Global Variables ******/ /* cursors */ extern Cursor wCursor[WCUR_LAST]; extern XContext wWinContext; /*---------------------------------------------------------------------- * wCoreCreateTopLevel-- * Creates a toplevel window used for icons, menus and dialogs. * * Returns: * The created window. *--------------------------------------------------------------------- */ WCoreWindow *wCoreCreateTopLevel(WScreen *screen, int x, int y, int width, int height, int bwidth, int depth, Visual *visual, Colormap colormap, WMPixel border_pixel) { WCoreWindow *core; int vmask; XSetWindowAttributes attribs; core = wmalloc(sizeof(WCoreWindow)); vmask = CWBorderPixel | CWCursor | CWEventMask | CWOverrideRedirect | CWColormap; attribs.override_redirect = True; attribs.cursor = wCursor[WCUR_DEFAULT]; attribs.background_pixmap = None; attribs.background_pixel = screen->black_pixel; attribs.border_pixel = border_pixel; attribs.event_mask = SubstructureRedirectMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | ExposureMask | EnterWindowMask | LeaveWindowMask; attribs.colormap = colormap; if (wPreferences.use_saveunders) { vmask |= CWSaveUnder; attribs.save_under = True; } core->window = XCreateWindow(dpy, screen->root_win, x, y, width, height, bwidth, depth, CopyFromParent, visual, vmask, &attribs); core->width = width; core->height = height; core->screen_ptr = screen; core->descriptor.self = core; XClearWindow(dpy, core->window); XSaveContext(dpy, core->window, wWinContext, (XPointer) & core->descriptor); return core; } /*---------------------------------------------------------------------- * wCoreCreate-- * Creates a brand new child window. * The window will have a border width of 0 and color is black. * * Returns: * A initialized core window structure. * * Side effects: * A window context for the created window is saved. * * Notes: * The event mask is initialized to a default value. *--------------------------------------------------------------------- */ WCoreWindow *wCoreCreate(WCoreWindow *parent, int x, int y, int width, int height) { WCoreWindow *core; int vmask; XSetWindowAttributes attribs; core = wmalloc(sizeof(WCoreWindow)); vmask = CWBorderPixel | CWCursor | CWEventMask | CWColormap; attribs.cursor = wCursor[WCUR_DEFAULT]; attribs.background_pixmap = None; attribs.background_pixel = parent->screen_ptr->black_pixel; attribs.event_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | ExposureMask | EnterWindowMask | LeaveWindowMask; attribs.colormap = parent->screen_ptr->w_colormap; core->window = XCreateWindow(dpy, parent->window, x, y, width, height, 0, parent->screen_ptr->w_depth, CopyFromParent, parent->screen_ptr->w_visual, vmask, &attribs); core->width = width; core->height = height; core->screen_ptr = parent->screen_ptr; core->descriptor.self = core; XSaveContext(dpy, core->window, wWinContext, (XPointer) & core->descriptor); return core; } void wCoreDestroy(WCoreWindow * core) { if (core->stacking) wfree(core->stacking); XDeleteContext(dpy, core->window, wWinContext); XDestroyWindow(dpy, core->window); wfree(core); } void wCoreConfigure(WCoreWindow * core, int req_x, int req_y, int req_w, int req_h) { XWindowChanges xwc; unsigned int mask; mask = CWX | CWY; xwc.x = req_x; xwc.y = req_y; if (req_w <= 0) req_w = core->width; if (req_h <= 0) req_h = core->height; if (req_w != core->width || req_h != core->height) { mask |= CWWidth | CWHeight; xwc.width = req_w; xwc.height = req_h; core->width = req_w; core->height = req_h; } XConfigureWindow(dpy, core->window, mask, &xwc); } WindowMaker-0.95.5/src/geomview.h0000644000175000017500000000217512214432632013550 00000000000000/* geomview.h * * Copyright (c) 2000 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef GEOMVIEW_H #define GEOMVIEW_H typedef struct W_GeometryView WGeometryView; WGeometryView *WCreateGeometryView(WMScreen *scr); void WSetGeometryViewShownPosition(WGeometryView *gview, int x, int y); void WSetGeometryViewShownSize(WGeometryView *gview, unsigned width, unsigned height); #endif /* GEOMVIEW_H */ WindowMaker-0.95.5/src/switchpanel.c0000644000175000017500000004423212214432632014242 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2004 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include "WindowMaker.h" #include "screen.h" #include "framewin.h" #include "icon.h" #include "window.h" #include "defaults.h" #include "switchpanel.h" #include "misc.h" #include "xinerama.h" extern Atom _XA_WM_IGNORE_FOCUS_EVENTS; #ifdef SHAPE #include extern Bool wShapeSupported; #endif struct SwitchPanel { WScreen *scr; WMWindow *win; WMFrame *iconBox; WMArray *icons; WMArray *images; WMArray *windows; WMArray *flags; RImage *bg; int current; int firstVisible; int visibleCount; WMLabel *label; RImage *tileTmp; RImage *tile; WMFont *font; WMColor *white; }; #define BORDER_SPACE 10 #define ICON_SIZE 48 #define ICON_TILE_SIZE 64 #define LABEL_HEIGHT 25 #define SCREEN_BORDER_SPACING 2*20 #define SCROLL_STEPS (ICON_TILE_SIZE/2) #define ICON_SELECTED (1<<1) #define ICON_DIM (1<<2) static int canReceiveFocus(WWindow *wwin) { if (wwin->frame->workspace != wwin->screen_ptr->current_workspace) return 0; if (wPreferences.cycle_active_head_only && wGetHeadForWindow(wwin) != wGetHeadForPointerLocation(wwin->screen_ptr)) return 0; if (WFLAGP(wwin, no_focusable)) return 0; if (!wwin->flags.mapped) { if (!wwin->flags.shaded && !wwin->flags.miniaturized && !wwin->flags.hidden) return 0; else return -1; } return 1; } static Bool sameWindowClass(WWindow *wwin, WWindow *curwin) { if (!wwin->wm_class || !curwin->wm_class) return False; if (strcmp(wwin->wm_class, curwin->wm_class)) return False; return True; } static void changeImage(WSwitchPanel *panel, int idecks, int selected, Bool dim, Bool force) { WMFrame *icon = NULL; RImage *image = NULL; char flags = 0; char desired = 0; /* This whole function is a no-op if we aren't drawing the panel */ if (!wPreferences.swtileImage) return; icon = WMGetFromArray(panel->icons, idecks); image = WMGetFromArray(panel->images, idecks); flags = (char) (uintptr_t) WMGetFromArray(panel->flags, idecks); if (selected) desired |= ICON_SELECTED; if (dim) desired |= ICON_DIM; if (flags == desired && !force) return; WMReplaceInArray(panel->flags, idecks, (void *) (uintptr_t) desired); if (!panel->bg && !panel->tile && !selected) WMSetFrameRelief(icon, WRFlat); if (image && icon) { RImage *back; int opaq = (dim) ? 75 : 255; RImage *tile; WMPoint pos; Pixmap p; if (canReceiveFocus(WMGetFromArray(panel->windows, idecks)) < 0) opaq = 50; pos = WMGetViewPosition(WMWidgetView(icon)); back = panel->tileTmp; if (panel->bg) { RCopyArea(back, panel->bg, BORDER_SPACE + pos.x - panel->firstVisible * ICON_TILE_SIZE, BORDER_SPACE + pos.y, back->width, back->height, 0, 0); } else { RColor color; WMScreen *wscr = WMWidgetScreen(icon); color.red = 255; color.red = WMRedComponentOfColor(WMGrayColor(wscr)) >> 8; color.green = WMGreenComponentOfColor(WMGrayColor(wscr)) >> 8; color.blue = WMBlueComponentOfColor(WMGrayColor(wscr)) >> 8; RFillImage(back, &color); } if (selected) { tile = panel->tile; RCombineArea(back, tile, 0, 0, tile->width, tile->height, (back->width - tile->width) / 2, (back->height - tile->height) / 2); } RCombineAreaWithOpaqueness(back, image, 0, 0, image->width, image->height, (back->width - image->width) / 2, (back->height - image->height) / 2, opaq); RConvertImage(panel->scr->rcontext, back, &p); XSetWindowBackgroundPixmap(dpy, WMWidgetXID(icon), p); XClearWindow(dpy, WMWidgetXID(icon)); XFreePixmap(dpy, p); } if (!panel->bg && !panel->tile && selected) WMSetFrameRelief(icon, WRSimple); } static void addIconForWindow(WSwitchPanel *panel, WMWidget *parent, WWindow *wwin, int x, int y) { WMFrame *icon = WMCreateFrame(parent); RImage *image = NULL; WMSetFrameRelief(icon, WRFlat); WMResizeWidget(icon, ICON_TILE_SIZE, ICON_TILE_SIZE); WMMoveWidget(icon, x, y); if (!WFLAGP(wwin, always_user_icon) && wwin->net_icon_image) image = RRetainImage(wwin->net_icon_image); /* get_icon_image() includes the default icon image */ if (!image) image = get_icon_image(panel->scr, wwin->wm_instance, wwin->wm_class, ICON_TILE_SIZE); /* We must resize the icon size (~64) to the switchpanel icon size (~48) */ image = wIconValidateIconSize(image, ICON_SIZE); WMAddToArray(panel->images, image); WMAddToArray(panel->icons, icon); } static void scrollIcons(WSwitchPanel *panel, int delta) { int nfirst = panel->firstVisible + delta; int i; int count = WMGetArrayItemCount(panel->windows); Bool dim; if (count <= panel->visibleCount) return; if (nfirst < 0) nfirst = 0; else if (nfirst >= count - panel->visibleCount) nfirst = count - panel->visibleCount; if (nfirst == panel->firstVisible) return; WMMoveWidget(panel->iconBox, -nfirst * ICON_TILE_SIZE, 0); panel->firstVisible = nfirst; for (i = panel->firstVisible; i < panel->firstVisible + panel->visibleCount; i++) { if (i == panel->current) continue; dim = ((char) (uintptr_t) WMGetFromArray(panel->flags, i) & ICON_DIM); changeImage(panel, i, 0, dim, True); } } /* * 0 1 2 * 3 4 5 * 6 7 8 */ static RImage *assemblePuzzleImage(RImage **images, int width, int height) { RImage *img = RCreateImage(width, height, 1); RImage *tmp; int tw, th; RColor color; if (!img) return NULL; color.red = 0; color.green = 0; color.blue = 0; color.alpha = 255; RFillImage(img, &color); tw = width - images[0]->width - images[2]->width; th = height - images[0]->height - images[6]->height; if (tw <= 0 || th <= 0) return NULL; /* top */ if (tw > 0) { tmp = RSmoothScaleImage(images[1], tw, images[1]->height); RCopyArea(img, tmp, 0, 0, tmp->width, tmp->height, images[0]->width, 0); RReleaseImage(tmp); } /* bottom */ if (tw > 0) { tmp = RSmoothScaleImage(images[7], tw, images[7]->height); RCopyArea(img, tmp, 0, 0, tmp->width, tmp->height, images[6]->width, height - images[6]->height); RReleaseImage(tmp); } /* left */ if (th > 0) { tmp = RSmoothScaleImage(images[3], images[3]->width, th); RCopyArea(img, tmp, 0, 0, tmp->width, tmp->height, 0, images[0]->height); RReleaseImage(tmp); } /* right */ if (th > 0) { tmp = RSmoothScaleImage(images[5], images[5]->width, th); RCopyArea(img, tmp, 0, 0, tmp->width, tmp->height, width - images[5]->width, images[2]->height); RReleaseImage(tmp); } /* center */ if (tw > 0 && th > 0) { tmp = RSmoothScaleImage(images[4], tw, th); RCopyArea(img, tmp, 0, 0, tmp->width, tmp->height, images[0]->width, images[0]->height); RReleaseImage(tmp); } /* corners */ RCopyArea(img, images[0], 0, 0, images[0]->width, images[0]->height, 0, 0); RCopyArea(img, images[2], 0, 0, images[2]->width, images[2]->height, width - images[2]->width, 0); RCopyArea(img, images[6], 0, 0, images[6]->width, images[6]->height, 0, height - images[6]->height); RCopyArea(img, images[8], 0, 0, images[8]->width, images[8]->height, width - images[8]->width, height - images[8]->height); return img; } static RImage *createBackImage(int width, int height) { return assemblePuzzleImage(wPreferences.swbackImage, width, height); } static RImage *getTile(void) { RImage *stile; if (!wPreferences.swtileImage) return NULL; stile = RScaleImage(wPreferences.swtileImage, ICON_TILE_SIZE, ICON_TILE_SIZE); if (!stile) return wPreferences.swtileImage; return stile; } static void drawTitle(WSwitchPanel *panel, int idecks, const char *title) { char *ntitle; int width = WMWidgetWidth(panel->win); int x; if (title) ntitle = ShrinkString(panel->font, title, width - 2 * BORDER_SPACE); else ntitle = NULL; if (panel->bg) { if (ntitle) { if (strcmp(ntitle, title) != 0) { x = BORDER_SPACE; } else { int w = WMWidthOfString(panel->font, ntitle, strlen(ntitle)); x = BORDER_SPACE + (idecks - panel->firstVisible) * ICON_TILE_SIZE + ICON_TILE_SIZE / 2 - w / 2; if (x < BORDER_SPACE) x = BORDER_SPACE; else if (x + w > width - BORDER_SPACE) x = width - BORDER_SPACE - w; } } XClearWindow(dpy, WMWidgetXID(panel->win)); if (ntitle) WMDrawString(panel->scr->wmscreen, WMWidgetXID(panel->win), panel->white, panel->font, x, WMWidgetHeight(panel->win) - BORDER_SPACE - LABEL_HEIGHT + WMFontHeight(panel->font) / 2, ntitle, strlen(ntitle)); } else { if (ntitle) WMSetLabelText(panel->label, ntitle); } if (ntitle) free(ntitle); } static WMArray *makeWindowListArray(WWindow *curwin, int include_unmapped, Bool class_only) { WMArray *windows = WMCreateArray(10); int fl; WWindow *wwin; for (fl = 0; fl < 2; fl++) { for (wwin = curwin; wwin; wwin = wwin->prev) { if (((!fl && canReceiveFocus(wwin) > 0) || (fl && canReceiveFocus(wwin) < 0)) && (wwin->flags.mapped || include_unmapped)) { if (class_only) if (!sameWindowClass(wwin, curwin)) continue; if (!WFLAGP(wwin, skip_switchpanel)) WMAddToArray(windows, wwin); } } wwin = curwin; /* start over from the beginning of the list */ while (wwin->next) wwin = wwin->next; for (wwin = curwin; wwin && wwin != curwin; wwin = wwin->prev) { if (((!fl && canReceiveFocus(wwin) > 0) || (fl && canReceiveFocus(wwin) < 0)) && (wwin->flags.mapped || include_unmapped)) { if (class_only) if (!sameWindowClass(wwin, curwin)) continue; if (!WFLAGP(wwin, skip_switchpanel)) WMAddToArray(windows, wwin); } } } return windows; } static WMArray *makeWindowFlagsArray(int count) { WMArray *flags = WMCreateArray(1); int i; for (i = 0; i < count; i++) WMAddToArray(flags, (char) 0); return flags; } WSwitchPanel *wInitSwitchPanel(WScreen *scr, WWindow *curwin, Bool class_only) { WWindow *wwin; WSwitchPanel *panel = wmalloc(sizeof(WSwitchPanel)); WMFrame *viewport; int i, width, height, iconsThatFitCount, count; WMRect rect = wGetRectForHead(scr, wGetHeadForPointerLocation(scr)); panel->scr = scr; panel->windows = makeWindowListArray(curwin, wPreferences.swtileImage != NULL, class_only); count = WMGetArrayItemCount(panel->windows); if (count) panel->flags = makeWindowFlagsArray(count); if (count == 0) { WMFreeArray(panel->windows); wfree(panel); return NULL; } width = ICON_TILE_SIZE * count; iconsThatFitCount = count; if (width > rect.size.width) { iconsThatFitCount = (rect.size.width - SCREEN_BORDER_SPACING) / ICON_TILE_SIZE; width = iconsThatFitCount * ICON_TILE_SIZE; } panel->visibleCount = iconsThatFitCount; if (!wPreferences.swtileImage) return panel; height = LABEL_HEIGHT + ICON_TILE_SIZE; panel->tileTmp = RCreateImage(ICON_TILE_SIZE, ICON_TILE_SIZE, 1); panel->tile = getTile(); if (panel->tile && wPreferences.swbackImage[8]) panel->bg = createBackImage(width + 2 * BORDER_SPACE, height + 2 * BORDER_SPACE); if (!panel->tileTmp || !panel->tile) { if (panel->bg) RReleaseImage(panel->bg); panel->bg = NULL; if (panel->tile) RReleaseImage(panel->tile); panel->tile = NULL; if (panel->tileTmp) RReleaseImage(panel->tileTmp); panel->tileTmp = NULL; } panel->white = WMWhiteColor(scr->wmscreen); panel->font = WMBoldSystemFontOfSize(scr->wmscreen, 12); panel->icons = WMCreateArray(count); panel->images = WMCreateArray(count); panel->win = WMCreateWindow(scr->wmscreen, ""); if (!panel->bg) { WMFrame *frame = WMCreateFrame(panel->win); WMColor *darkGray = WMDarkGrayColor(scr->wmscreen); WMSetFrameRelief(frame, WRSimple); WMSetViewExpandsToParent(WMWidgetView(frame), 0, 0, 0, 0); panel->label = WMCreateLabel(panel->win); WMResizeWidget(panel->label, width, LABEL_HEIGHT); WMMoveWidget(panel->label, BORDER_SPACE, BORDER_SPACE + ICON_TILE_SIZE + 5); WMSetLabelRelief(panel->label, WRSimple); WMSetWidgetBackgroundColor(panel->label, darkGray); WMSetLabelFont(panel->label, panel->font); WMSetLabelTextColor(panel->label, panel->white); WMReleaseColor(darkGray); height += 5; } WMResizeWidget(panel->win, width + 2 * BORDER_SPACE, height + 2 * BORDER_SPACE); viewport = WMCreateFrame(panel->win); WMResizeWidget(viewport, width, ICON_TILE_SIZE); WMMoveWidget(viewport, BORDER_SPACE, BORDER_SPACE); WMSetFrameRelief(viewport, WRFlat); panel->iconBox = WMCreateFrame(viewport); WMMoveWidget(panel->iconBox, 0, 0); WMResizeWidget(panel->iconBox, ICON_TILE_SIZE * count, ICON_TILE_SIZE); WMSetFrameRelief(panel->iconBox, WRFlat); WM_ITERATE_ARRAY(panel->windows, wwin, i) { addIconForWindow(panel, panel->iconBox, wwin, i * ICON_TILE_SIZE, 0); } WMMapSubwidgets(panel->win); WMRealizeWidget(panel->win); WM_ITERATE_ARRAY(panel->windows, wwin, i) { changeImage(panel, i, 0, False, True); } if (panel->bg) { Pixmap pixmap, mask; RConvertImageMask(scr->rcontext, panel->bg, &pixmap, &mask, 250); XSetWindowBackgroundPixmap(dpy, WMWidgetXID(panel->win), pixmap); #ifdef SHAPE if (mask && wShapeSupported) XShapeCombineMask(dpy, WMWidgetXID(panel->win), ShapeBounding, 0, 0, mask, ShapeSet); #endif if (pixmap) XFreePixmap(dpy, pixmap); if (mask) XFreePixmap(dpy, mask); } { WMPoint center; center = wGetPointToCenterRectInHead(scr, wGetHeadForPointerLocation(scr), width + 2 * BORDER_SPACE, height + 2 * BORDER_SPACE); WMMoveWidget(panel->win, center.x, center.y); } panel->current = WMGetFirstInArray(panel->windows, curwin); if (panel->current >= 0) changeImage(panel, panel->current, 1, False, False); WMMapWidget(panel->win); return panel; } void wSwitchPanelDestroy(WSwitchPanel *panel) { int i; RImage *image; if (panel->win) { Window info_win = panel->scr->info_window; XEvent ev; ev.xclient.type = ClientMessage; ev.xclient.message_type = _XA_WM_IGNORE_FOCUS_EVENTS; ev.xclient.format = 32; ev.xclient.data.l[0] = True; XSendEvent(dpy, info_win, True, EnterWindowMask, &ev); WMUnmapWidget(panel->win); ev.xclient.data.l[0] = False; XSendEvent(dpy, info_win, True, EnterWindowMask, &ev); } if (panel->images) { WM_ITERATE_ARRAY(panel->images, image, i) { if (image) RReleaseImage(image); } WMFreeArray(panel->images); } if (panel->win) WMDestroyWidget(panel->win); if (panel->icons) WMFreeArray(panel->icons); if (panel->flags) WMFreeArray(panel->flags); WMFreeArray(panel->windows); if (panel->tile) RReleaseImage(panel->tile); if (panel->tileTmp) RReleaseImage(panel->tileTmp); if (panel->bg) RReleaseImage(panel->bg); if (panel->font) WMReleaseFont(panel->font); if (panel->white) WMReleaseColor(panel->white); wfree(panel); } WWindow *wSwitchPanelSelectNext(WSwitchPanel *panel, int back, int ignore_minimized, Bool class_only) { WWindow *wwin, *curwin, *tmpwin; int count = WMGetArrayItemCount(panel->windows); int orig = panel->current; int i; Bool dim = False; if (count == 0) return NULL; if (!wPreferences.cycle_ignore_minimized) ignore_minimized = False; if (ignore_minimized && canReceiveFocus(WMGetFromArray(panel->windows, (count + panel->current) % count)) < 0) ignore_minimized = False; curwin = WMGetFromArray(panel->windows, orig); do { do { if (back) panel->current--; else panel->current++; panel->current= (count + panel->current) % count; wwin = WMGetFromArray(panel->windows, panel->current); if (!class_only) break; if (panel->current == orig) break; } while (!sameWindowClass(wwin, curwin)); } while (ignore_minimized && panel->current != orig && canReceiveFocus(wwin) < 0); WM_ITERATE_ARRAY(panel->windows, tmpwin, i) { if (i == panel->current) continue; if (!class_only || sameWindowClass(tmpwin, curwin)) changeImage(panel, i, 0, False, False); else { if (i == orig) dim = True; changeImage(panel, i, 0, True, False); } } if (panel->current < panel->firstVisible) scrollIcons(panel, panel->current - panel->firstVisible); else if (panel->current - panel->firstVisible >= panel->visibleCount) scrollIcons(panel, panel->current - panel->firstVisible - panel->visibleCount + 1); if (panel->win) { drawTitle(panel, panel->current, wwin->frame->title); if (panel->current != orig) changeImage(panel, orig, 0, dim, False); changeImage(panel, panel->current, 1, False, False); } return wwin; } WWindow *wSwitchPanelSelectFirst(WSwitchPanel *panel, int back) { WWindow *wwin; int count = WMGetArrayItemCount(panel->windows); char *title; int i; if (count == 0) return NULL; if (back) { panel->current = count - 1; scrollIcons(panel, count); } else { panel->current = 0; scrollIcons(panel, -count); } wwin = WMGetFromArray(panel->windows, panel->current); title = wwin->frame->title; if (panel->win) { WM_ITERATE_ARRAY(panel->windows, wwin, i) { changeImage(panel, i, i == panel->current, False, False); } drawTitle(panel, panel->current, title); } return wwin; } WWindow *wSwitchPanelHandleEvent(WSwitchPanel *panel, XEvent *event) { WMFrame *icon; int i; int focus = -1; if (!panel->win) return NULL; if (event->type == MotionNotify) { WM_ITERATE_ARRAY(panel->icons, icon, i) { if (WMWidgetXID(icon) == event->xmotion.window) { focus = i; break; } } } if (focus >= 0 && panel->current != focus) { WWindow *wwin; WM_ITERATE_ARRAY(panel->windows, wwin, i) { changeImage(panel, i, i == focus, False, False); } panel->current = focus; wwin = WMGetFromArray(panel->windows, focus); drawTitle(panel, panel->current, wwin->frame->title); return wwin; } return NULL; } Window wSwitchPanelGetWindow(WSwitchPanel *swpanel) { if (!swpanel->win) return None; return WMWidgetXID(swpanel->win); } WindowMaker-0.95.5/src/wdefaults.h0000644000175000017500000000266012214432632013723 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMWDEFAULTS_H_ #define WMWDEFAULTS_H_ /* bit flags for the above window attributes */ #define WA_TITLEBAR (1<<0) #define WA_RESIZABLE (1<<1) #define WA_CLOSABLE (1<<2) #define WA_MINIATURIZABLE (1<<3) #define WA_BROKEN_CLOSE (1<<4) #define WA_SHADEABLE (1<<5) #define WA_FOCUSABLE (1<<6) #define WA_OMNIPRESENT (1<<7) #define WA_SKIP_WINDOW_LIST (1<<8) #define WA_SKIP_SWITCHPANEL (1<<9) #define WA_FLOATING (1<<10) #define WA_IGNORE_KEYS (1<<11) #define WA_IGNORE_MOUSE (1<<12) #define WA_IGNORE_HIDE_OTHERS (1<<13) #define WA_NOT_APPLICATION (1<<14) #define WA_DONT_MOVE_OFF (1<<15) #endif WindowMaker-0.95.5/src/actions.h0000644000175000017500000000530512214432632013364 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMACTIONS_H_ #define WMACTIONS_H_ #include "window.h" #define MAX_HORIZONTAL (1 << 0) #define MAX_VERTICAL (1 << 1) #define MAX_LEFTHALF (1 << 2) #define MAX_RIGHTHALF (1 << 3) #define MAX_TOPHALF (1 << 4) #define MAX_BOTTOMHALF (1 << 5) #define MAX_MAXIMUS (1 << 6) #define MAX_IGNORE_XINERAMA (1 << 7) #define MAX_KEYBOARD (1 << 8) #define SAVE_GEOMETRY_X (1 << 0) #define SAVE_GEOMETRY_Y (1 << 1) #define SAVE_GEOMETRY_WIDTH (1 << 2) #define SAVE_GEOMETRY_HEIGHT (1 << 3) #define SAVE_GEOMETRY_ALL SAVE_GEOMETRY_X | SAVE_GEOMETRY_Y | SAVE_GEOMETRY_WIDTH | SAVE_GEOMETRY_HEIGHT void wSetFocusTo(WScreen *scr, WWindow *wwin); int wMouseMoveWindow(WWindow *wwin, XEvent *ev); int wKeyboardMoveResizeWindow(WWindow *wwin); void wMouseResizeWindow(WWindow *wwin, XEvent *ev); void wShadeWindow(WWindow *wwin); void wUnshadeWindow(WWindow *wwin); void wIconifyWindow(WWindow *wwin); void wDeiconifyWindow(WWindow *wwin); void wSelectWindows(WScreen *scr, XEvent *ev); void wSelectWindow(WWindow *wwin, Bool flag); void wUnselectWindows(WScreen *scr); void wMaximizeWindow(WWindow *wwin, int directions); void wUnmaximizeWindow(WWindow *wwin); void handleMaximize(WWindow *wwin, int directions); void wHideAll(WScreen *src); void wHideOtherApplications(WWindow *wwin); void wShowAllWindows(WScreen *scr); void wHideApplication(WApplication *wapp); void wUnhideApplication(WApplication *wapp, Bool miniwindows, Bool bringToCurrentWS); void wRefreshDesktop(WScreen *scr); void wArrangeIcons(WScreen *scr, Bool arrangeAll); void wMakeWindowVisible(WWindow *wwin); void wFullscreenWindow(WWindow *wwin); void wUnfullscreenWindow(WWindow *wwin); void animateResize(WScreen *scr, int x, int y, int w, int h, int fx, int fy, int fw, int fh); void update_saved_geometry(WWindow *wwin); #endif WindowMaker-0.95.5/src/appicon.h0000644000175000017500000000626512214432632013363 00000000000000/* appicon.h- application icon * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMAPPICON_H_ #define WMAPPICON_H_ #include #include "window.h" #include "icon.h" #include "application.h" typedef struct WAppIcon { short xindex; short yindex; struct WAppIcon *next; struct WAppIcon *prev; WIcon *icon; int x_pos, y_pos; /* absolute screen coordinate */ char *command; /* command used to launch app */ #ifdef XDND char *dnd_command; /* command to use when something is */ /* dropped on us */ #endif char *paste_command; /* command to run when * something is pasted */ char *wm_class; char *wm_instance; pid_t pid; /* for apps launched from the dock */ Window main_window; struct WDock *dock; /* In which dock is docked. */ struct _AppSettingsPanel *panel; /* Settings Panel */ unsigned int docked:1; unsigned int omnipresent:1; /* If omnipresent when * docked in clip */ unsigned int attracted:1; /* If it was attracted by the clip */ unsigned int launching:1; unsigned int running:1; /* application is already running */ unsigned int relaunching:1; /* launching 2nd instance */ unsigned int forced_dock:1; unsigned int auto_launch:1; /* launch app on startup */ unsigned int remote_start:1; unsigned int updated:1; unsigned int editing:1; /* editing docked icon */ unsigned int drop_launch:1; /* launching from drop action */ unsigned int paste_launch:1; /* launching from paste action */ unsigned int destroyed:1; /* appicon was destroyed */ unsigned int buggy_app:1; /* do not make dock rely on hints * set by app */ unsigned int lock:1; /* do not allow to be destroyed */ } WAppIcon; WAppIcon *wAppIconCreateForDock(WScreen *scr, const char *command, const char *wm_instance, const char *wm_class, int tile); Bool wHandleAppIconMove(WAppIcon *aicon, XEvent *event); void wAppIconDestroy(WAppIcon *aicon); void wAppIconPaint(WAppIcon *aicon); void wAppIconMove(WAppIcon *aicon, int x, int y); void create_appicon_for_application(WApplication *wapp, WWindow *wwin); void removeAppIconFor(WApplication * wapp); void save_appicon(WAppIcon *aicon, Bool dock); void paint_app_icon(WApplication *wapp); void unpaint_app_icon(WApplication *wapp); void wApplicationExtractDirPackIcon(WScreen *scr, const char *path, const char *wm_instance, const char *wm_class); WAppIcon *wAppIconFor(Window window); void appIconMouseDown(WObjDescriptor * desc, XEvent * event); #endif WindowMaker-0.95.5/src/wconfig.h0000644000175000017500000002742712214434623013373 00000000000000/* * wconfig.h- default configuration and definitions + compile time options * * WindowMaker window manager * * Copyright (c) 1997-2003 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., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #ifndef WMCONFIG_H_ #define WMCONFIG_H_ #include "config.h" /*** Change this file (wconfig.h) *after* you ran configure ***/ /* * Comment out the following #defines if you want to disable a feature. * Also check the features you can enable through configure. */ /* If you want animations for iconification, shading, icon arrangement etc. */ #define ANIMATIONS /* support for XDND drop in the Dock. Experimental */ /*#define XDND*/ /* support for Motif window manager (mwm) window hints */ #define MWM_HINTS /* * Undefine BALLOON_TEXT if you don't want balloons for showing extra * information, like window titles that are not fully visible. */ #define BALLOON_TEXT /* * If balloons should be shaped or be simple rectangles. * The X server must support the shape extensions and it's support * must be enabled (default). */ #define SHAPED_BALLOON /* * Turn on a hack to make mouse and keyboard actions work even if * the NumLock or ScrollLock modifiers are turned on. They might * inflict a performance/memory penalty. * * If you're an X expert (knows the implementation of XGrabKey() in X) * and knows that the penalty is small (or not), please tell me. */ #define NUMLOCK_HACK /* * define OPTIMIZE_SHAPE if you want the shape setting code to be optimized * for applications that change their shape frequently (like xdaliclock * -shape), removing flickering. If wmaker and your display are on * different machines and the network connection is slow, it is not * recommended. */ #undef OPTIMIZE_SHAPE /* define CONFIGURE_WINDOW_WHILE_MOVING if you want WindowMaker to send * the synthetic ConfigureNotify event to windows while moving at every * single movement. Default is to send a synthetic ConfigureNotify event * only at the end of window moving, which improves performance. */ #undef CONFIGURE_WINDOW_WHILE_MOVING /* disable/enable workspace indicator in the dock */ #undef WS_INDICATOR /* * define HIDDENDOT if you want a dot to be shown in the application icon * of applications that are hidden. */ #define HIDDENDOT /* * Ignores the PPosition hint from clients. This is needed for some * programs that have buggy implementations of such hint and place * themselves in strange locations. */ #undef IGNORE_PPOSITION /* * The following options WILL NOT BE MADE RUN-TIME. Please do not request. * They will only add unneeded bloat. */ /* * define SHADOW_RESIZEBAR if you want a resizebar with shadows like in * AfterStep, instead of the default Openstep look. * NEXTSTEP 3.3 also does not have these shadows. */ #undef SHADOW_RESIZEBAR #define NORMAL_ICON_KABOOM /* * #define if you want the window creation animation when superfluous * is enabled. */ #undef WINDOW_BIRTH_ZOOM /* * Some of the following options can be configured in the preference files, * but if for some reason they can't, these are their defaults. * * There are also some options that can only be configured here, at compile time. */ /* list of paths to look for the config files, searched in order of appearance */ #define DEF_CONFIG_PATHS "~/GNUstep/Library/WindowMaker:"PKGDATADIR #define DEF_MENU_FILE "menu" /* name of the script to execute at startup */ #define DEF_INIT_SCRIPT "autostart" #define DEF_EXIT_SCRIPT "exitscript" #define DEFAULTS_DIR "Defaults" #ifdef USE_TIFF #define DEF_BUTTON_IMAGES PKGDATADIR"/buttons.tiff" #else #define DEF_BUTTON_IMAGES PKGDATADIR"/buttons.xpm" #endif /* the file of the system wide submenu to be forced into the main menu */ #define GLOBAL_PREAMBLE_MENU_FILE "GlobalMenu.pre" #define GLOBAL_EPILOGUE_MENU_FILE "GlobalMenu.post" /* pixmap path */ #define DEF_PIXMAP_PATHS \ "(\"~/pixmaps\",\"~/GNUstep/Library/WindowMaker/Pixmaps\",\""PIXMAPDIR"\")" #ifdef USER_MENU #define GLOBAL_USER_MENU_PATH PKGDATADIR"/UserMenus" #define DEF_USER_MENU_PATHS \ "~/GNUstep/Library/WindowMaker/UserMenus:"GLOBAL_USER_MENU_PATH #endif /* icon path */ #define DEF_ICON_PATHS \ "(\"~/pixmaps\",\"~/GNUstep/Library/Icons\",\"/usr/include/X11/pixmaps/\",\""PIXMAPDIR"\")" /* window title to use for untitled windows */ #define DEF_WINDOW_TITLE "Untitled" /* default style */ #define DEF_FRAME_COLOR "white" /* default fonts */ #define DEF_TITLE_FONT "\"Trebuchet MS,sans serif:bold:pixelsize=12\"" #define DEF_MENU_TITLE_FONT "\"Trebuchet MS,sans serif:bold:pixelsize=12\"" #define DEF_MENU_ENTRY_FONT "\"Trebuchet MS,sans serif:pixelsize=12\"" #define DEF_ICON_TITLE_FONT "\"Arial,sans serif:pixelsize=9\"" #define DEF_CLIP_TITLE_FONT "\"Verdana:bold:pixelsize=10\"" #define DEF_INFO_TEXT_FONT "\"Trebuchet MS,sans serif:pixelsize=12\"" #define DEF_WORKSPACE_NAME_FONT "\"Trebuchet MS,sans serif:pixelsize=24\"" /* line width of the move/resize frame */ #define DEF_FRAME_THICKNESS 1 #define DEF_WINDOW_TITLE_EXTEND_SPACE "0" #define DEF_MENU_TITLE_EXTEND_SPACE "0" #define DEF_MENU_TEXT_EXTEND_SPACE "0" #define TITLEBAR_EXTEND_SPACE 4 #define DEF_XPM_CLOSENESS 40000 /* default position of application menus */ #define DEF_APPMENU_X 10 #define DEF_APPMENU_Y 10 /* calculate window edge resistance from edge resistance */ #define WIN_RESISTANCE(x) (((x)*20)/30) /* Window level where icons reside */ #define NORMAL_ICON_LEVEL WMNormalLevel /* do not divide main menu and submenu in different tiers, * opposed to OpenStep */ #define SINGLE_MENULEVEL /* max. time to spend doing animations in seconds. If the animation * time exceeds this value, it is immediately finished. Usefull for * moments of high-load. DO NOT set *_DELAY_{Z,T,F} to zero! */ #define MAX_ANIMATION_TIME 1 /* Zoom animation */ #define MINIATURIZE_ANIMATION_FRAMES_Z 7 #define MINIATURIZE_ANIMATION_STEPS_Z 16 #define MINIATURIZE_ANIMATION_DELAY_Z 10000 /* Twist animation */ #define MINIATURIZE_ANIMATION_FRAMES_T 12 #define MINIATURIZE_ANIMATION_STEPS_T 16 #define MINIATURIZE_ANIMATION_DELAY_T 20000 #define MINIATURIZE_ANIMATION_TWIST_T 0.5 /* Flip animation */ #define MINIATURIZE_ANIMATION_FRAMES_F 12 #define MINIATURIZE_ANIMATION_STEPS_F 16 #define MINIATURIZE_ANIMATION_DELAY_F 20000 #define MINIATURIZE_ANIMATION_TWIST_F 0.5 /* delays in ms...*/ #define BALLOON_DELAY 1000 /* ...before balloon is shown */ #define MENU_SELECT_DELAY 200 /* ...for menu item selection hysteresis */ #define MENU_JUMP_BACK_DELAY 400 /* ...for jumpback of scrolled menus */ /* animation speed constants */ #define ICON_SLIDE_SLOWDOWN_UF 1 #define ICON_SLIDE_DELAY_UF 0 #define ICON_SLIDE_STEPS_UF 50 #define ICON_SLIDE_SLOWDOWN_F 3 #define ICON_SLIDE_DELAY_F 0 #define ICON_SLIDE_STEPS_F 50 #define ICON_SLIDE_SLOWDOWN_M 5 #define ICON_SLIDE_DELAY_M 0 #define ICON_SLIDE_STEPS_M 30 #define ICON_SLIDE_SLOWDOWN_S 10 #define ICON_SLIDE_DELAY_S 0 #define ICON_SLIDE_STEPS_S 20 #define ICON_SLIDE_SLOWDOWN_US 20 #define ICON_SLIDE_DELAY_US 1 #define ICON_SLIDE_STEPS_US 10 /* menu scrolling */ #define MENU_SCROLL_STEPS_UF 14 #define MENU_SCROLL_DELAY_UF 1 #define MENU_SCROLL_STEPS_F 10 #define MENU_SCROLL_DELAY_F 5 #define MENU_SCROLL_STEPS_M 6 #define MENU_SCROLL_DELAY_M 5 #define MENU_SCROLL_STEPS_S 4 #define MENU_SCROLL_DELAY_S 6 #define MENU_SCROLL_STEPS_US 1 #define MENU_SCROLL_DELAY_US 8 /* shade animation */ #define SHADE_STEPS_UF 5 #define SHADE_DELAY_UF 0 #define SHADE_STEPS_F 10 #define SHADE_DELAY_F 0 #define SHADE_STEPS_M 15 #define SHADE_DELAY_M 0 #define SHADE_STEPS_S 30 #define SHADE_DELAY_S 0 #define SHADE_STEPS_US 40 #define SHADE_DELAY_US 10 /* workspace name on switch display */ #define WORKSPACE_NAME_FADE_DELAY 30 #define WORKSPACE_NAME_DELAY 400 /* Delay when cycling colors of selected icons. */ #define COLOR_CYCLE_DELAY 200 /* size of the pieces in the undocked icon explosion */ #define ICON_KABOOM_PIECE_SIZE 4 /* * Position increment for smart placement: >= 1 * Raise these values if it's too slow for you */ #define PLACETEST_HSTEP 8 #define PLACETEST_VSTEP 8 #define DOCK_EXTRA_SPACE 0 /* Vicinity in which an icon can be attached to the clip */ #define CLIP_ATTACH_VICINITY 1 #define CLIP_BUTTON_SIZE 23 /* The amount of space (in multiples of the icon size) * a docked icon must be dragged out to detach it */ #define DOCK_DETTACH_THRESHOLD 3 /* Max. number of icons the dock and clip can have */ #define DOCK_MAX_ICONS 32 /* blink interval when invoking a menu item */ #define MENU_BLINK_DELAY 60000 #define MENU_BLINK_COUNT 2 #define CURSOR_BLINK_RATE 300 /* how many pixels to move before dragging windows and other objects */ #define MOVE_THRESHOLD 5 #define HRESIZE_THRESHOLD 3 #define MAX_WORKSPACENAME_WIDTH 64 /* max width of window title in window list */ #define MAX_WINDOWLIST_WIDTH 400 #ifndef HAVE_INOTIFY /* Check defaults database for changes every this many milliseconds */ #define DEFAULTS_CHECK_INTERVAL 2000 #endif #define KEY_CONTROL_WINDOW_WEIGHT 1 /* don't put titles in miniwindows */ #undef NO_MINIWINDOW_TITLES /* for boxes with high mouse sampling rates (SGI) */ #define DELAY_BETWEEN_MOUSE_SAMPLING 10 /* * You should not modify the following values, unless you know * what you're doing. */ /* number of window shortcuts */ #define MAX_WINDOW_SHORTCUTS 10 #define WM_PI 3.14159265358979323846 #define MIN_TITLEFONT_HEIGHT(h) ((h)>14 ? (h) : 14) #define TITLEBAR_HEIGHT 18 /* window's titlebar height */ #define RESIZEBAR_HEIGHT 8 /* height of the resizebar */ #define RESIZEBAR_MIN_WIDTH 20 /* min width of handles-corner_width */ #define RESIZEBAR_CORNER_WIDTH 28 /* width of the corner of resizebars */ #define MENU_INDICATOR_SPACE 12 #define MIN_WINDOW_SIZE 5 /* minimum size for windows */ #define ICON_WIDTH 64 /* size of the icon window */ #define ICON_HEIGHT 64 #define ICON_BORDER_WIDTH 2 #define MAX_ICON_WIDTH 60 /* size of the icon pixmap */ #define MAX_ICON_HEIGHT 48 #define MAX_WORKSPACES 100 #define MAX_MENU_TEXT_LENGTH 512 #define MAX_RESTART_ARGS 16 #define MAX_DEAD_PROCESSES 128 #define MAXLINE 1024 #ifdef _MAX_PATH # define DEFAULT_PATH_MAX _MAX_PATH #else # define DEFAULT_PATH_MAX 512 #endif /* some rules */ #ifndef SHAPE #undef SHAPED_BALLOON #endif #ifdef XKB_MODELOCK #define KEEP_XKB_LOCK_STATUS /* This is a hidden feature. * Choose just one of LANGUAGE_* hints. * Icon can be changed in def_pixmaps.h. * More icons are welcome. */ #define XKB_BUTTON_HINT #undef LANGUAGE_TH #undef LANGUAGE_SK #endif #if defined(HAVE_LIBINTL_H) && defined(I18N) #include #define _(text) gettext(text) /* Use N_() in initializers, it will make xgettext pick * the string up for translation */ #define N_(text) (text) #if defined(MENU_TEXTDOMAIN) #define M_(text) dgettext(MENU_TEXTDOMAIN, text) #else #define M_(text) (text) #endif #else #define _(text) (text) #define N_(text) (text) #define M_(text) (text) #endif #endif /* WMCONFIG_H_ */ WindowMaker-0.95.5/src/main.h0000644000175000017500000000241312214432632012645 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMMAIN_H_ #define WMMAIN_H_ #include "config.h" #ifdef HAVE_STDNORETURN #include #endif noreturn void Exit(int status); void Restart(char *manager, Bool abortOnFailure); void SetupEnvironment(WScreen *scr); void ExecuteShellCommand(WScreen *scr, const char *command); Bool RelaunchWindow(WWindow *wwin); noreturn void wAbort(Bool dumpCore); void ExecExitScript(void); int getWVisualID(int screen); #endif WindowMaker-0.95.5/src/shutdown.h0000644000175000017500000000213612214432632013576 00000000000000/* shutdown.c - Shutdown functions * * Window Maker window manager * * Copyright (c) 2013 Window Maker Team * * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef SHUTDOWN_H #define SHUTDOWN_H /* shutdown modes */ typedef enum { WSExitMode, WSLogoutMode, WSKillMode, WSRestartPreparationMode } WShutdownMode; void Shutdown(WShutdownMode mode); void RestoreDesktop(WScreen *scr); #endif /* SHUTDOWN_H */ WindowMaker-0.95.5/src/defaults.c0000644000175000017500000027040312214432632013531 00000000000000/* defaults.c - manage configuration through defaults db * * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef PATH_MAX #define PATH_MAX DEFAULT_PATH_MAX #endif #include #include #include #include #include "WindowMaker.h" #include "framewin.h" #include "window.h" #include "texture.h" #include "screen.h" #include "resources.h" #include "defaults.h" #include "keybind.h" #include "xmodifier.h" #include "icon.h" #include "main.h" #include "actions.h" #include "dock.h" #include "workspace.h" #include "properties.h" #include "misc.h" #include "event.h" #include "winmenu.h" #define MAX_SHORTCUT_LENGTH 32 #ifndef GLOBAL_DEFAULTS_SUBDIR #define GLOBAL_DEFAULTS_SUBDIR "WindowMaker" #endif /***** Global *****/ extern WDDomain *WDWindowMaker; extern WDDomain *WDWindowAttributes; extern WDDomain *WDRootMenu; extern int wScreenCount; extern WShortKey wKeyBindings[WKBD_LAST]; typedef struct _WDefaultEntry WDefaultEntry; typedef int (WDECallbackConvert) (WScreen *scr, WDefaultEntry *entry, WMPropList *plvalue, void *addr, void **tdata); typedef int (WDECallbackUpdate) (WScreen *scr, WDefaultEntry *entry, void *tdata, void *extra_data); struct _WDefaultEntry { const char *key; const char *default_value; void *extra_data; void *addr; WDECallbackConvert *convert; WDECallbackUpdate *update; WMPropList *plkey; WMPropList *plvalue; /* default value */ }; /* used to map strings to integers */ typedef struct { const char *string; short value; char is_alias; } WOptionEnumeration; /* type converters */ static WDECallbackConvert getBool; static WDECallbackConvert getInt; static WDECallbackConvert getCoord; static WDECallbackConvert getPathList; static WDECallbackConvert getEnum; static WDECallbackConvert getTexture; static WDECallbackConvert getWSBackground; static WDECallbackConvert getWSSpecificBackground; static WDECallbackConvert getFont; static WDECallbackConvert getColor; static WDECallbackConvert getKeybind; static WDECallbackConvert getModMask; static WDECallbackConvert getPropList; /* value setting functions */ static WDECallbackUpdate setJustify; static WDECallbackUpdate setClearance; static WDECallbackUpdate setIfDockPresent; static WDECallbackUpdate setClipMergedInDock; static WDECallbackUpdate setWrapAppiconsInDock; static WDECallbackUpdate setStickyIcons; static WDECallbackUpdate setWidgetColor; static WDECallbackUpdate setIconTile; static WDECallbackUpdate setWinTitleFont; static WDECallbackUpdate setMenuTitleFont; static WDECallbackUpdate setMenuTextFont; static WDECallbackUpdate setIconTitleFont; static WDECallbackUpdate setIconTitleColor; static WDECallbackUpdate setIconTitleBack; static WDECallbackUpdate setFrameBorderWidth; static WDECallbackUpdate setFrameBorderColor; static WDECallbackUpdate setFrameSelectedBorderColor; static WDECallbackUpdate setLargeDisplayFont; static WDECallbackUpdate setWTitleColor; static WDECallbackUpdate setFTitleBack; static WDECallbackUpdate setPTitleBack; static WDECallbackUpdate setUTitleBack; static WDECallbackUpdate setResizebarBack; static WDECallbackUpdate setWorkspaceBack; static WDECallbackUpdate setWorkspaceSpecificBack; static WDECallbackUpdate setMenuTitleColor; static WDECallbackUpdate setMenuTextColor; static WDECallbackUpdate setMenuDisabledColor; static WDECallbackUpdate setMenuTitleBack; static WDECallbackUpdate setMenuTextBack; static WDECallbackUpdate setHightlight; static WDECallbackUpdate setHightlightText; static WDECallbackUpdate setKeyGrab; static WDECallbackUpdate setDoubleClick; static WDECallbackUpdate setIconPosition; static WDECallbackUpdate setClipTitleFont; static WDECallbackUpdate setClipTitleColor; static WDECallbackUpdate setMenuStyle; static WDECallbackUpdate setSwPOptions; static WDECallbackUpdate updateUsableArea; static WDECallbackUpdate setModifierKeyLabels; extern Cursor wCursor[WCUR_LAST]; static WDECallbackConvert getCursor; static WDECallbackUpdate setCursor; /* * Tables to convert strings to enumeration values. * Values stored are char */ /* WARNING: sum of length of all value strings must not exceed * this value */ #define TOTAL_VALUES_LENGTH 80 #define REFRESH_WINDOW_TEXTURES (1<<0) #define REFRESH_MENU_TEXTURE (1<<1) #define REFRESH_MENU_FONT (1<<2) #define REFRESH_MENU_COLOR (1<<3) #define REFRESH_MENU_TITLE_TEXTURE (1<<4) #define REFRESH_MENU_TITLE_FONT (1<<5) #define REFRESH_MENU_TITLE_COLOR (1<<6) #define REFRESH_WINDOW_TITLE_COLOR (1<<7) #define REFRESH_WINDOW_FONT (1<<8) #define REFRESH_ICON_TILE (1<<9) #define REFRESH_ICON_FONT (1<<10) #define REFRESH_WORKSPACE_BACK (1<<11) #define REFRESH_BUTTON_IMAGES (1<<12) #define REFRESH_ICON_TITLE_COLOR (1<<13) #define REFRESH_ICON_TITLE_BACK (1<<14) #define REFRESH_WORKSPACE_MENU (1<<15) #define REFRESH_FRAME_BORDER REFRESH_MENU_FONT|REFRESH_WINDOW_FONT static WOptionEnumeration seFocusModes[] = { {"Manual", WKF_CLICK, 0}, {"ClickToFocus", WKF_CLICK, 1}, {"Sloppy", WKF_SLOPPY, 0}, {"SemiAuto", WKF_SLOPPY, 1}, {"Auto", WKF_SLOPPY, 1}, {NULL, 0, 0} }; static WOptionEnumeration seTitlebarModes[] = { {"new", TS_NEW, 0}, {"old", TS_OLD, 0}, {"next", TS_NEXT, 0}, {NULL, 0, 0} }; static WOptionEnumeration seColormapModes[] = { {"Manual", WCM_CLICK, 0}, {"ClickToFocus", WCM_CLICK, 1}, {"Auto", WCM_POINTER, 0}, {"FocusFollowMouse", WCM_POINTER, 1}, {NULL, 0, 0} }; static WOptionEnumeration sePlacements[] = { {"Auto", WPM_AUTO, 0}, {"Smart", WPM_SMART, 0}, {"Cascade", WPM_CASCADE, 0}, {"Random", WPM_RANDOM, 0}, {"Manual", WPM_MANUAL, 0}, {"Center", WPM_CENTER, 0}, {NULL, 0, 0} }; static WOptionEnumeration seGeomDisplays[] = { {"None", WDIS_NONE, 0}, {"Center", WDIS_CENTER, 0}, {"Corner", WDIS_TOPLEFT, 0}, {"Floating", WDIS_FRAME_CENTER, 0}, {"Line", WDIS_NEW, 0}, {NULL, 0, 0} }; static WOptionEnumeration seSpeeds[] = { {"UltraFast", SPEED_ULTRAFAST, 0}, {"Fast", SPEED_FAST, 0}, {"Medium", SPEED_MEDIUM, 0}, {"Slow", SPEED_SLOW, 0}, {"UltraSlow", SPEED_ULTRASLOW, 0}, {NULL, 0, 0} }; static WOptionEnumeration seMouseButtonActions[] = { {"None", WA_NONE, 0}, {"SelectWindows", WA_SELECT_WINDOWS, 0}, {"OpenApplicationsMenu", WA_OPEN_APPMENU, 0}, {"OpenWindowListMenu", WA_OPEN_WINLISTMENU, 0}, {NULL, 0, 0} }; static WOptionEnumeration seMouseWheelActions[] = { {"None", WA_NONE, 0}, {"SwitchWorkspaces", WA_SWITCH_WORKSPACES, 0}, {NULL, 0, 0} }; static WOptionEnumeration seIconificationStyles[] = { {"Zoom", WIS_ZOOM, 0}, {"Twist", WIS_TWIST, 0}, {"Flip", WIS_FLIP, 0}, {"None", WIS_NONE, 0}, {"random", WIS_RANDOM, 0}, {NULL, 0, 0} }; static WOptionEnumeration seJustifications[] = { {"Left", WTJ_LEFT, 0}, {"Center", WTJ_CENTER, 0}, {"Right", WTJ_RIGHT, 0}, {NULL, 0, 0} }; static WOptionEnumeration seIconPositions[] = { {"blv", IY_BOTTOM | IY_LEFT | IY_VERT, 0}, {"blh", IY_BOTTOM | IY_LEFT | IY_HORIZ, 0}, {"brv", IY_BOTTOM | IY_RIGHT | IY_VERT, 0}, {"brh", IY_BOTTOM | IY_RIGHT | IY_HORIZ, 0}, {"tlv", IY_TOP | IY_LEFT | IY_VERT, 0}, {"tlh", IY_TOP | IY_LEFT | IY_HORIZ, 0}, {"trv", IY_TOP | IY_RIGHT | IY_VERT, 0}, {"trh", IY_TOP | IY_RIGHT | IY_HORIZ, 0}, {NULL, 0, 0} }; static WOptionEnumeration seMenuStyles[] = { {"normal", MS_NORMAL, 0}, {"singletexture", MS_SINGLE_TEXTURE, 0}, {"flat", MS_FLAT, 0}, {NULL, 0, 0} }; static WOptionEnumeration seDisplayPositions[] = { {"none", WD_NONE, 0}, {"center", WD_CENTER, 0}, {"top", WD_TOP, 0}, {"bottom", WD_BOTTOM, 0}, {"topleft", WD_TOPLEFT, 0}, {"topright", WD_TOPRIGHT, 0}, {"bottomleft", WD_BOTTOMLEFT, 0}, {"bottomright", WD_BOTTOMRIGHT, 0}, {NULL, 0, 0} }; static WOptionEnumeration seWorkspaceBorder[] = { {"None", WB_NONE, 0}, {"LeftRight", WB_LEFTRIGHT, 0}, {"TopBottom", WB_TOPBOTTOM, 0}, {"AllDirections", WB_ALLDIRS, 0}, {NULL, 0, 0} }; /* * ALL entries in the tables bellow, NEED to have a default value * defined, and this value needs to be correct. */ /* these options will only affect the window manager on startup * * static defaults can't access the screen data, because it is * created after these defaults are read */ WDefaultEntry staticOptionList[] = { {"ColormapSize", "4", NULL, &wPreferences.cmap_size, getInt, NULL, NULL, NULL}, {"DisableDithering", "NO", NULL, &wPreferences.no_dithering, getBool, NULL, NULL, NULL}, {"IconSize", "64", NULL, &wPreferences.icon_size, getInt, NULL, NULL, NULL}, {"ModifierKey", "Mod1", NULL, &wPreferences.modifier_mask, getModMask, NULL, NULL, NULL}, {"DisableWSMouseActions", "NO", NULL, &wPreferences.disable_root_mouse, getBool, NULL, NULL, NULL}, {"FocusMode", "manual", seFocusModes, /* have a problem when switching from */ &wPreferences.focus_mode, getEnum, NULL, NULL, NULL}, /* manual to sloppy without restart */ {"NewStyle", "new", seTitlebarModes, &wPreferences.new_style, getEnum, NULL, NULL, NULL}, {"DisableDock", "NO", (void *)WM_DOCK, NULL, getBool, setIfDockPresent, NULL, NULL}, {"DisableClip", "NO", (void *)WM_CLIP, NULL, getBool, setIfDockPresent, NULL, NULL}, {"DisableDrawers", "NO", (void *)WM_DRAWER, NULL, getBool, setIfDockPresent, NULL, NULL}, {"ClipMergedInDock", "NO", NULL, NULL, getBool, setClipMergedInDock, NULL, NULL}, {"DisableMiniwindows", "NO", NULL, &wPreferences.disable_miniwindows, getBool, NULL, NULL, NULL} }; #define NUM2STRING_(x) #x #define NUM2STRING(x) NUM2STRING_(x) WDefaultEntry optionList[] = { /* dynamic options */ {"IconPosition", "blh", seIconPositions, &wPreferences.icon_yard, getEnum, setIconPosition, NULL, NULL}, {"IconificationStyle", "Zoom", seIconificationStyles, &wPreferences.iconification_style, getEnum, NULL, NULL, NULL}, {"MouseLeftButtonAction", "SelectWindows", seMouseButtonActions, &wPreferences.mouse_button1, getEnum, NULL, NULL, NULL}, {"MouseMiddleButtonAction", "OpenWindowListMenu", seMouseButtonActions, &wPreferences.mouse_button2, getEnum, NULL, NULL, NULL}, {"MouseRightButtonAction", "OpenApplicationsMenu", seMouseButtonActions, &wPreferences.mouse_button3, getEnum, NULL, NULL, NULL}, {"MouseWheelAction", "None", seMouseWheelActions, &wPreferences.mouse_wheel, getEnum, NULL, NULL, NULL}, {"PixmapPath", DEF_PIXMAP_PATHS, NULL, &wPreferences.pixmap_path, getPathList, NULL, NULL, NULL}, {"IconPath", DEF_ICON_PATHS, NULL, &wPreferences.icon_path, getPathList, NULL, NULL, NULL}, {"ColormapMode", "auto", seColormapModes, &wPreferences.colormap_mode, getEnum, NULL, NULL, NULL}, {"AutoFocus", "NO", NULL, &wPreferences.auto_focus, getBool, NULL, NULL, NULL}, {"RaiseDelay", "0", NULL, &wPreferences.raise_delay, getInt, NULL, NULL, NULL}, {"CirculateRaise", "NO", NULL, &wPreferences.circ_raise, getBool, NULL, NULL, NULL}, {"Superfluous", "NO", NULL, &wPreferences.superfluous, getBool, NULL, NULL, NULL}, {"AdvanceToNewWorkspace", "NO", NULL, &wPreferences.ws_advance, getBool, NULL, NULL, NULL}, {"CycleWorkspaces", "NO", NULL, &wPreferences.ws_cycle, getBool, NULL, NULL, NULL}, {"WorkspaceNameDisplayPosition", "center", seDisplayPositions, &wPreferences.workspace_name_display_position, getEnum, NULL, NULL, NULL}, {"WorkspaceBorder", "None", seWorkspaceBorder, &wPreferences.workspace_border_position, getEnum, updateUsableArea, NULL, NULL}, {"WorkspaceBorderSize", "0", NULL, &wPreferences.workspace_border_size, getInt, updateUsableArea, NULL, NULL}, {"StickyIcons", "NO", NULL, &wPreferences.sticky_icons, getBool, setStickyIcons, NULL, NULL}, {"SaveSessionOnExit", "NO", NULL, &wPreferences.save_session_on_exit, getBool, NULL, NULL, NULL}, {"WrapMenus", "NO", NULL, &wPreferences.wrap_menus, getBool, NULL, NULL, NULL}, {"ScrollableMenus", "NO", NULL, &wPreferences.scrollable_menus, getBool, NULL, NULL, NULL}, {"MenuScrollSpeed", "medium", seSpeeds, &wPreferences.menu_scroll_speed, getEnum, NULL, NULL, NULL}, {"IconSlideSpeed", "medium", seSpeeds, &wPreferences.icon_slide_speed, getEnum, NULL, NULL, NULL}, {"ShadeSpeed", "medium", seSpeeds, &wPreferences.shade_speed, getEnum, NULL, NULL, NULL}, {"BounceAppIconsWhenUrgent", "YES", NULL, &wPreferences.bounce_appicons_when_urgent, getBool, NULL, NULL, NULL}, {"RaiseAppIconsWhenBouncing", "NO", NULL, &wPreferences.raise_appicons_when_bouncing, getBool, NULL, NULL, NULL}, {"DoNotMakeAppIconsBounce", "NO", NULL, &wPreferences.do_not_make_appicons_bounce, getBool, NULL, NULL, NULL}, {"DoubleClickTime", "250", (void *)&wPreferences.dblclick_time, &wPreferences.dblclick_time, getInt, setDoubleClick, NULL, NULL}, {"ClipAutoraiseDelay", "600", NULL, &wPreferences.clip_auto_raise_delay, getInt, NULL, NULL, NULL}, {"ClipAutolowerDelay", "1000", NULL, &wPreferences.clip_auto_lower_delay, getInt, NULL, NULL, NULL}, {"ClipAutoexpandDelay", "600", NULL, &wPreferences.clip_auto_expand_delay, getInt, NULL, NULL, NULL}, {"ClipAutocollapseDelay", "1000", NULL, &wPreferences.clip_auto_collapse_delay, getInt, NULL, NULL, NULL}, {"WrapAppiconsInDock", "YES", NULL, NULL, getBool, setWrapAppiconsInDock, NULL, NULL}, {"AlignSubmenus", "NO", NULL, &wPreferences.align_menus, getBool, NULL, NULL, NULL}, {"ViKeyMenus", "NO", NULL, &wPreferences.vi_key_menus, getBool, NULL, NULL, NULL}, {"OpenTransientOnOwnerWorkspace", "NO", NULL, &wPreferences.open_transients_with_parent, getBool, NULL, NULL, NULL}, {"WindowPlacement", "auto", sePlacements, &wPreferences.window_placement, getEnum, NULL, NULL, NULL}, {"IgnoreFocusClick", "NO", NULL, &wPreferences.ignore_focus_click, getBool, NULL, NULL, NULL}, {"UseSaveUnders", "NO", NULL, &wPreferences.use_saveunders, getBool, NULL, NULL, NULL}, {"OpaqueMove", "NO", NULL, &wPreferences.opaque_move, getBool, NULL, NULL, NULL}, {"OpaqueResize", "NO", NULL, &wPreferences.opaque_resize, getBool, NULL, NULL, NULL}, {"OpaqueMoveResizeKeyboard", "NO", NULL, &wPreferences.opaque_move_resize_keyboard, getBool, NULL, NULL, NULL}, {"DisableAnimations", "NO", NULL, &wPreferences.no_animations, getBool, NULL, NULL, NULL}, {"DontLinkWorkspaces", "NO", NULL, &wPreferences.no_autowrap, getBool, NULL, NULL, NULL}, {"HighlightActiveApp", "YES", NULL, &wPreferences.highlight_active_app, getBool, NULL, NULL, NULL}, {"AutoArrangeIcons", "NO", NULL, &wPreferences.auto_arrange_icons, getBool, NULL, NULL, NULL}, {"NoWindowOverDock", "NO", NULL, &wPreferences.no_window_over_dock, getBool, updateUsableArea, NULL, NULL}, {"NoWindowOverIcons", "NO", NULL, &wPreferences.no_window_over_icons, getBool, updateUsableArea, NULL, NULL}, {"WindowPlaceOrigin", "(0, 0)", NULL, &wPreferences.window_place_origin, getCoord, NULL, NULL, NULL}, {"ResizeDisplay", "corner", seGeomDisplays, &wPreferences.size_display, getEnum, NULL, NULL, NULL}, {"MoveDisplay", "corner", seGeomDisplays, &wPreferences.move_display, getEnum, NULL, NULL, NULL}, {"DontConfirmKill", "NO", NULL, &wPreferences.dont_confirm_kill, getBool, NULL, NULL, NULL}, {"WindowTitleBalloons", "NO", NULL, &wPreferences.window_balloon, getBool, NULL, NULL, NULL}, {"MiniwindowTitleBalloons", "NO", NULL, &wPreferences.miniwin_balloon, getBool, NULL, NULL, NULL}, {"AppIconBalloons", "NO", NULL, &wPreferences.appicon_balloon, getBool, NULL, NULL, NULL}, {"HelpBalloons", "NO", NULL, &wPreferences.help_balloon, getBool, NULL, NULL, NULL}, {"EdgeResistance", "30", NULL, &wPreferences.edge_resistance, getInt, NULL, NULL, NULL}, {"ResizeIncrement", "0", NULL, &wPreferences.resize_increment, getInt, NULL, NULL, NULL}, {"Attraction", "NO", NULL, &wPreferences.attract, getBool, NULL, NULL, NULL}, {"DisableBlinking", "NO", NULL, &wPreferences.dont_blink, getBool, NULL, NULL, NULL}, {"SingleClickLaunch", "NO", NULL, &wPreferences.single_click, getBool, NULL, NULL, NULL}, {"StrictWindozeCycle", "YES", NULL, &wPreferences.strict_windoze_cycle, getBool, NULL, NULL, NULL}, {"SwitchPanelOnlyOpen", "NO", NULL, &wPreferences.panel_only_open, getBool, NULL, NULL, NULL}, /* style options */ {"MenuStyle", "normal", seMenuStyles, &wPreferences.menu_style, getEnum, setMenuStyle, NULL, NULL}, {"WidgetColor", "(solid, gray)", NULL, NULL, getTexture, setWidgetColor, NULL, NULL}, {"WorkspaceSpecificBack", "()", NULL, NULL, getWSSpecificBackground, setWorkspaceSpecificBack, NULL, NULL}, /* WorkspaceBack must come after WorkspaceSpecificBack or * WorkspaceBack wont know WorkspaceSpecificBack was also * specified and 2 copies of wmsetbg will be launched */ {"WorkspaceBack", "(solid, black)", NULL, NULL, getWSBackground, setWorkspaceBack, NULL, NULL}, {"SmoothWorkspaceBack", "NO", NULL, NULL, getBool, NULL, NULL, NULL}, {"IconBack", "(solid, gray)", NULL, NULL, getTexture, setIconTile, NULL, NULL}, {"TitleJustify", "center", seJustifications, &wPreferences.title_justification, getEnum, setJustify, NULL, NULL}, {"WindowTitleFont", DEF_TITLE_FONT, NULL, NULL, getFont, setWinTitleFont, NULL, NULL}, {"WindowTitleExtendSpace", DEF_WINDOW_TITLE_EXTEND_SPACE, NULL, &wPreferences.window_title_clearance, getInt, setClearance, NULL, NULL}, {"WindowTitleMinHeight", "0", NULL, &wPreferences.window_title_min_height, getInt, setClearance, NULL, NULL}, {"WindowTitleMaxHeight", NUM2STRING(INT_MAX), NULL, &wPreferences.window_title_max_height, getInt, setClearance, NULL, NULL}, {"MenuTitleExtendSpace", DEF_MENU_TITLE_EXTEND_SPACE, NULL, &wPreferences.menu_title_clearance, getInt, setClearance, NULL, NULL}, {"MenuTitleMinHeight", "0", NULL, &wPreferences.menu_title_min_height, getInt, setClearance, NULL, NULL}, {"MenuTitleMaxHeight", NUM2STRING(INT_MAX), NULL, &wPreferences.menu_title_max_height, getInt, setClearance, NULL, NULL}, {"MenuTextExtendSpace", DEF_MENU_TEXT_EXTEND_SPACE, NULL, &wPreferences.menu_text_clearance, getInt, setClearance, NULL, NULL}, {"MenuTitleFont", DEF_MENU_TITLE_FONT, NULL, NULL, getFont, setMenuTitleFont, NULL, NULL}, {"MenuTextFont", DEF_MENU_ENTRY_FONT, NULL, NULL, getFont, setMenuTextFont, NULL, NULL}, {"IconTitleFont", DEF_ICON_TITLE_FONT, NULL, NULL, getFont, setIconTitleFont, NULL, NULL}, {"ClipTitleFont", DEF_CLIP_TITLE_FONT, NULL, NULL, getFont, setClipTitleFont, NULL, NULL}, {"ShowClipTitle", "YES", NULL, &wPreferences.show_clip_title, getBool, NULL, NULL, NULL}, {"LargeDisplayFont", DEF_WORKSPACE_NAME_FONT, NULL, NULL, getFont, setLargeDisplayFont, NULL, NULL}, {"HighlightColor", "white", NULL, NULL, getColor, setHightlight, NULL, NULL}, {"HighlightTextColor", "black", NULL, NULL, getColor, setHightlightText, NULL, NULL}, {"ClipTitleColor", "black", (void *)CLIP_NORMAL, NULL, getColor, setClipTitleColor, NULL, NULL}, {"CClipTitleColor", "\"#454045\"", (void *)CLIP_COLLAPSED, NULL, getColor, setClipTitleColor, NULL, NULL}, {"FTitleColor", "white", (void *)WS_FOCUSED, NULL, getColor, setWTitleColor, NULL, NULL}, {"PTitleColor", "white", (void *)WS_PFOCUSED, NULL, getColor, setWTitleColor, NULL, NULL}, {"UTitleColor", "black", (void *)WS_UNFOCUSED, NULL, getColor, setWTitleColor, NULL, NULL}, {"FTitleBack", "(solid, black)", NULL, NULL, getTexture, setFTitleBack, NULL, NULL}, {"PTitleBack", "(solid, \"#616161\")", NULL, NULL, getTexture, setPTitleBack, NULL, NULL}, {"UTitleBack", "(solid, gray)", NULL, NULL, getTexture, setUTitleBack, NULL, NULL}, {"ResizebarBack", "(solid, gray)", NULL, NULL, getTexture, setResizebarBack, NULL, NULL}, {"MenuTitleColor", "white", NULL, NULL, getColor, setMenuTitleColor, NULL, NULL}, {"MenuTextColor", "black", NULL, NULL, getColor, setMenuTextColor, NULL, NULL}, {"MenuDisabledColor", "\"#616161\"", NULL, NULL, getColor, setMenuDisabledColor, NULL, NULL}, {"MenuTitleBack", "(solid, black)", NULL, NULL, getTexture, setMenuTitleBack, NULL, NULL}, {"MenuTextBack", "(solid, gray)", NULL, NULL, getTexture, setMenuTextBack, NULL, NULL}, {"IconTitleColor", "white", NULL, NULL, getColor, setIconTitleColor, NULL, NULL}, {"IconTitleBack", "black", NULL, NULL, getColor, setIconTitleBack, NULL, NULL}, {"SwitchPanelImages", "(swtile.png, swback.png, 30, 40)", &wPreferences, NULL, getPropList, setSwPOptions, NULL, NULL}, {"ModifierKeyLabels", "(\"Shift+\", \"Ctrl+\", \"Mod1+\", \"Mod2+\", \"Mod3+\", \"Mod4+\", \"Mod5+\")", &wPreferences, NULL, getPropList, setModifierKeyLabels, NULL, NULL}, {"FrameBorderWidth", "1", NULL, NULL, getInt, setFrameBorderWidth, NULL, NULL}, {"FrameBorderColor", "black", NULL, NULL, getColor, setFrameBorderColor, NULL, NULL}, {"FrameSelectedBorderColor", "white", NULL, NULL, getColor, setFrameSelectedBorderColor, NULL, NULL}, /* keybindings */ {"RootMenuKey", "None", (void *)WKBD_ROOTMENU, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowListKey", "None", (void *)WKBD_WINDOWLIST, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowMenuKey", "None", (void *)WKBD_WINDOWMENU, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"DockRaiseLowerKey", "None", (void*)WKBD_DOCKRAISELOWER, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"ClipRaiseLowerKey", "None", (void *)WKBD_CLIPRAISELOWER, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MiniaturizeKey", "None", (void *)WKBD_MINIATURIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MinimizeAllKey", "None", (void *)WKBD_MINIMIZEALL, NULL, getKeybind, setKeyGrab, NULL, NULL }, {"HideKey", "None", (void *)WKBD_HIDE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"HideOthersKey", "None", (void *)WKBD_HIDE_OTHERS, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveResizeKey", "None", (void *)WKBD_MOVERESIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"CloseKey", "None", (void *)WKBD_CLOSE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MaximizeKey", "None", (void *)WKBD_MAXIMIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"VMaximizeKey", "None", (void *)WKBD_VMAXIMIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"HMaximizeKey", "None", (void *)WKBD_HMAXIMIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"LHMaximizeKey", "None", (void*)WKBD_LHMAXIMIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"RHMaximizeKey", "None", (void*)WKBD_RHMAXIMIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"THMaximizeKey", "None", (void*)WKBD_THMAXIMIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"BHMaximizeKey", "None", (void*)WKBD_BHMAXIMIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"LTCMaximizeKey", "None", (void*)WKBD_LTCMAXIMIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"RTCMaximizeKey", "None", (void*)WKBD_RTCMAXIMIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"LBCMaximizeKey", "None", (void*)WKBD_LBCMAXIMIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"RBCMaximizeKey", "None", (void*)WKBD_RBCMAXIMIZE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MaximusKey", "None", (void*)WKBD_MAXIMUS, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"RaiseKey", "\"Meta+Up\"", (void *)WKBD_RAISE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"LowerKey", "\"Meta+Down\"", (void *)WKBD_LOWER, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"RaiseLowerKey", "None", (void *)WKBD_RAISELOWER, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"ShadeKey", "None", (void *)WKBD_SHADE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"SelectKey", "None", (void *)WKBD_SELECT, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"FocusNextKey", "None", (void *)WKBD_FOCUSNEXT, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"FocusPrevKey", "None", (void *)WKBD_FOCUSPREV, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"GroupNextKey", "None", (void *)WKBD_GROUPNEXT, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"GroupPrevKey", "None", (void *)WKBD_GROUPPREV, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"NextWorkspaceKey", "None", (void *)WKBD_NEXTWORKSPACE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"PrevWorkspaceKey", "None", (void *)WKBD_PREVWORKSPACE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"LastWorkspaceKey", "None", (void *)WKBD_LASTWORKSPACE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"NextWorkspaceLayerKey", "None", (void *)WKBD_NEXTWSLAYER, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"PrevWorkspaceLayerKey", "None", (void *)WKBD_PREVWSLAYER, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"Workspace1Key", "None", (void *)WKBD_WORKSPACE1, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"Workspace2Key", "None", (void *)WKBD_WORKSPACE2, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"Workspace3Key", "None", (void *)WKBD_WORKSPACE3, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"Workspace4Key", "None", (void *)WKBD_WORKSPACE4, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"Workspace5Key", "None", (void *)WKBD_WORKSPACE5, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"Workspace6Key", "None", (void *)WKBD_WORKSPACE6, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"Workspace7Key", "None", (void *)WKBD_WORKSPACE7, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"Workspace8Key", "None", (void *)WKBD_WORKSPACE8, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"Workspace9Key", "None", (void *)WKBD_WORKSPACE9, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"Workspace10Key", "None", (void *)WKBD_WORKSPACE10, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToWorkspace1Key", "None", (void *)WKBD_MOVE_WORKSPACE1, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToWorkspace2Key", "None", (void *)WKBD_MOVE_WORKSPACE2, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToWorkspace3Key", "None", (void *)WKBD_MOVE_WORKSPACE3, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToWorkspace4Key", "None", (void *)WKBD_MOVE_WORKSPACE4, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToWorkspace5Key", "None", (void *)WKBD_MOVE_WORKSPACE5, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToWorkspace6Key", "None", (void *)WKBD_MOVE_WORKSPACE6, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToWorkspace7Key", "None", (void *)WKBD_MOVE_WORKSPACE7, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToWorkspace8Key", "None", (void *)WKBD_MOVE_WORKSPACE8, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToWorkspace9Key", "None", (void *)WKBD_MOVE_WORKSPACE9, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToWorkspace10Key", "None", (void *)WKBD_MOVE_WORKSPACE10, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToNextWorkspaceKey", "None", (void *)WKBD_MOVE_NEXTWORKSPACE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToPrevWorkspaceKey", "None", (void *)WKBD_MOVE_PREVWORKSPACE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToLastWorkspaceKey", "None", (void *)WKBD_MOVE_LASTWORKSPACE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToNextWorkspaceLayerKey", "None", (void *)WKBD_MOVE_NEXTWSLAYER, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"MoveToPrevWorkspaceLayerKey", "None", (void *)WKBD_MOVE_PREVWSLAYER, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowShortcut1Key", "None", (void *)WKBD_WINDOW1, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowShortcut2Key", "None", (void *)WKBD_WINDOW2, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowShortcut3Key", "None", (void *)WKBD_WINDOW3, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowShortcut4Key", "None", (void *)WKBD_WINDOW4, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowShortcut5Key", "None", (void *)WKBD_WINDOW5, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowShortcut6Key", "None", (void *)WKBD_WINDOW6, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowShortcut7Key", "None", (void *)WKBD_WINDOW7, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowShortcut8Key", "None", (void *)WKBD_WINDOW8, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowShortcut9Key", "None", (void *)WKBD_WINDOW9, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowShortcut10Key", "None", (void *)WKBD_WINDOW10, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"WindowRelaunchKey", "None", (void *)WKBD_RELAUNCH, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"ScreenSwitchKey", "None", (void *)WKBD_SWITCH_SCREEN, NULL, getKeybind, setKeyGrab, NULL, NULL}, #ifdef KEEP_XKB_LOCK_STATUS {"ToggleKbdModeKey", "None", (void *)WKBD_TOGGLE, NULL, getKeybind, setKeyGrab, NULL, NULL}, {"KbdModeLock", "NO", NULL, &wPreferences.modelock, getBool, NULL, NULL, NULL}, #endif /* KEEP_XKB_LOCK_STATUS */ {"NormalCursor", "(builtin, left_ptr)", (void *)WCUR_ROOT, NULL, getCursor, setCursor, NULL, NULL}, {"ArrowCursor", "(builtin, top_left_arrow)", (void *)WCUR_ARROW, NULL, getCursor, setCursor, NULL, NULL}, {"MoveCursor", "(builtin, fleur)", (void *)WCUR_MOVE, NULL, getCursor, setCursor, NULL, NULL}, {"ResizeCursor", "(builtin, sizing)", (void *)WCUR_RESIZE, NULL, getCursor, setCursor, NULL, NULL}, {"TopLeftResizeCursor", "(builtin, top_left_corner)", (void *)WCUR_TOPLEFTRESIZE, NULL, getCursor, setCursor, NULL, NULL}, {"TopRightResizeCursor", "(builtin, top_right_corner)", (void *)WCUR_TOPRIGHTRESIZE, NULL, getCursor, setCursor, NULL, NULL}, {"BottomLeftResizeCursor", "(builtin, bottom_left_corner)", (void *)WCUR_BOTTOMLEFTRESIZE, NULL, getCursor, setCursor, NULL, NULL}, {"BottomRightResizeCursor", "(builtin, bottom_right_corner)", (void *)WCUR_BOTTOMRIGHTRESIZE, NULL, getCursor, setCursor, NULL, NULL}, {"VerticalResizeCursor", "(builtin, sb_v_double_arrow)", (void *)WCUR_VERTICALRESIZE, NULL, getCursor, setCursor, NULL, NULL}, {"HorizontalResizeCursor", "(builtin, sb_h_double_arrow)", (void *)WCUR_HORIZONRESIZE, NULL, getCursor, setCursor, NULL, NULL}, {"WaitCursor", "(builtin, watch)", (void *)WCUR_WAIT, NULL, getCursor, setCursor, NULL, NULL}, {"QuestionCursor", "(builtin, question_arrow)", (void *)WCUR_QUESTION, NULL, getCursor, setCursor, NULL, NULL}, {"TextCursor", "(builtin, xterm)", (void *)WCUR_TEXT, NULL, getCursor, setCursor, NULL, NULL}, {"SelectCursor", "(builtin, cross)", (void *)WCUR_SELECT, NULL, getCursor, setCursor, NULL, NULL}, {"DialogHistoryLines", "500", NULL, &wPreferences.history_lines, getInt, NULL, NULL, NULL}, {"CycleActiveHeadOnly", "NO", NULL, &wPreferences.cycle_active_head_only, getBool, NULL, NULL, NULL}, {"CycleIgnoreMinimized", "NO", NULL, &wPreferences.cycle_ignore_minimized, getBool, NULL, NULL, NULL} }; static void initDefaults(void) { unsigned int i; WDefaultEntry *entry; WMPLSetCaseSensitive(False); for (i = 0; i < sizeof(optionList) / sizeof(optionList[0]); i++) { entry = &optionList[i]; entry->plkey = WMCreatePLString(entry->key); if (entry->default_value) entry->plvalue = WMCreatePropListFromDescription(entry->default_value); else entry->plvalue = NULL; } for (i = 0; i < sizeof(staticOptionList) / sizeof(staticOptionList[0]); i++) { entry = &staticOptionList[i]; entry->plkey = WMCreatePLString(entry->key); if (entry->default_value) entry->plvalue = WMCreatePropListFromDescription(entry->default_value); else entry->plvalue = NULL; } } static WMPropList *readGlobalDomain(const char *domainName, Bool requireDictionary) { WMPropList *globalDict = NULL; char path[PATH_MAX]; struct stat stbuf; snprintf(path, sizeof(path), "%s/%s/%s", SYSCONFDIR, GLOBAL_DEFAULTS_SUBDIR, domainName); if (stat(path, &stbuf) >= 0) { globalDict = WMReadPropListFromFile(path); if (globalDict && requireDictionary && !WMIsPLDictionary(globalDict)) { wwarning(_("Domain %s (%s) of global defaults database is corrupted!"), domainName, path); WMReleasePropList(globalDict); globalDict = NULL; } else if (!globalDict) { wwarning(_("could not load domain %s from global defaults database"), domainName); } } return globalDict; } #if defined(GLOBAL_PREAMBLE_MENU_FILE) || defined(GLOBAL_EPILOGUE_MENU_FILE) static void prependMenu(WMPropList * destarr, WMPropList * array) { WMPropList *item; int i; for (i = 0; i < WMGetPropListItemCount(array); i++) { item = WMGetFromPLArray(array, i); if (item) WMInsertInPLArray(destarr, i + 1, item); } } static void appendMenu(WMPropList * destarr, WMPropList * array) { WMPropList *item; int i; for (i = 0; i < WMGetPropListItemCount(array); i++) { item = WMGetFromPLArray(array, i); if (item) WMAddToPLArray(destarr, item); } } #endif void wDefaultsMergeGlobalMenus(WDDomain * menuDomain) { WMPropList *menu = menuDomain->dictionary; WMPropList *submenu; if (!menu || !WMIsPLArray(menu)) return; #ifdef GLOBAL_PREAMBLE_MENU_FILE submenu = WMReadPropListFromFile(SYSCONFDIR "/" GLOBAL_DEFAULTS_SUBDIR "/" GLOBAL_PREAMBLE_MENU_FILE); if (submenu && !WMIsPLArray(submenu)) { wwarning(_("invalid global menu file %s"), GLOBAL_PREAMBLE_MENU_FILE); WMReleasePropList(submenu); submenu = NULL; } if (submenu) { prependMenu(menu, submenu); WMReleasePropList(submenu); } #endif #ifdef GLOBAL_EPILOGUE_MENU_FILE submenu = WMReadPropListFromFile(SYSCONFDIR "/" GLOBAL_DEFAULTS_SUBDIR "/" GLOBAL_EPILOGUE_MENU_FILE); if (submenu && !WMIsPLArray(submenu)) { wwarning(_("invalid global menu file %s"), GLOBAL_EPILOGUE_MENU_FILE); WMReleasePropList(submenu); submenu = NULL; } if (submenu) { appendMenu(menu, submenu); WMReleasePropList(submenu); } #endif menuDomain->dictionary = menu; } WDDomain *wDefaultsInitDomain(const char *domain, Bool requireDictionary) { WDDomain *db; struct stat stbuf; static int inited = 0; const char *the_path; WMPropList *shared_dict = NULL; if (!inited) { inited = 1; initDefaults(); } db = wmalloc(sizeof(WDDomain)); db->domain_name = domain; db->path = wdefaultspathfordomain(domain); the_path = db->path; if (the_path && stat(the_path, &stbuf) >= 0) { db->dictionary = WMReadPropListFromFile(the_path); if (db->dictionary) { if (requireDictionary && !WMIsPLDictionary(db->dictionary)) { WMReleasePropList(db->dictionary); db->dictionary = NULL; wwarning(_("Domain %s (%s) of defaults database is corrupted!"), domain, the_path); } db->timestamp = stbuf.st_mtime; } else { wwarning(_("could not load domain %s from user defaults database"), domain); } } /* global system dictionary */ shared_dict = readGlobalDomain(domain, requireDictionary); if (shared_dict && db->dictionary && WMIsPLDictionary(shared_dict) && WMIsPLDictionary(db->dictionary)) { WMMergePLDictionaries(shared_dict, db->dictionary, True); WMReleasePropList(db->dictionary); db->dictionary = shared_dict; if (stbuf.st_mtime > db->timestamp) db->timestamp = stbuf.st_mtime; } else if (!db->dictionary) { db->dictionary = shared_dict; if (stbuf.st_mtime > db->timestamp) db->timestamp = stbuf.st_mtime; } return db; } void wReadStaticDefaults(WMPropList * dict) { WMPropList *plvalue; WDefaultEntry *entry; unsigned int i; void *tdata; for (i = 0; i < sizeof(staticOptionList) / sizeof(staticOptionList[0]); i++) { entry = &staticOptionList[i]; if (dict) plvalue = WMGetFromPLDictionary(dict, entry->plkey); else plvalue = NULL; /* no default in the DB. Use builtin default */ if (!plvalue) plvalue = entry->plvalue; if (plvalue) { /* convert data */ (*entry->convert) (NULL, entry, plvalue, entry->addr, &tdata); if (entry->update) (*entry->update) (NULL, entry, tdata, entry->extra_data); } } } void wDefaultsCheckDomains(void* arg) { WScreen *scr; struct stat stbuf; WMPropList *shared_dict = NULL; WMPropList *dict; int i; if (stat(WDWindowMaker->path, &stbuf) >= 0 && WDWindowMaker->timestamp < stbuf.st_mtime) { WDWindowMaker->timestamp = stbuf.st_mtime; /* Global dictionary */ shared_dict = readGlobalDomain("WindowMaker", True); /* User dictionary */ dict = WMReadPropListFromFile(WDWindowMaker->path); if (dict) { if (!WMIsPLDictionary(dict)) { WMReleasePropList(dict); dict = NULL; wwarning(_("Domain %s (%s) of defaults database is corrupted!"), "WindowMaker", WDWindowMaker->path); } else { if (shared_dict) { WMMergePLDictionaries(shared_dict, dict, True); WMReleasePropList(dict); dict = shared_dict; shared_dict = NULL; } for (i = 0; i < wScreenCount; i++) { scr = wScreenWithNumber(i); if (scr) wReadDefaults(scr, dict); } if (WDWindowMaker->dictionary) WMReleasePropList(WDWindowMaker->dictionary); WDWindowMaker->dictionary = dict; } } else { wwarning(_("could not load domain %s from user defaults database"), "WindowMaker"); } if (shared_dict) WMReleasePropList(shared_dict); } if (stat(WDWindowAttributes->path, &stbuf) >= 0 && WDWindowAttributes->timestamp < stbuf.st_mtime) { /* global dictionary */ shared_dict = readGlobalDomain("WMWindowAttributes", True); /* user dictionary */ dict = WMReadPropListFromFile(WDWindowAttributes->path); if (dict) { if (!WMIsPLDictionary(dict)) { WMReleasePropList(dict); dict = NULL; wwarning(_("Domain %s (%s) of defaults database is corrupted!"), "WMWindowAttributes", WDWindowAttributes->path); } else { if (shared_dict) { WMMergePLDictionaries(shared_dict, dict, True); WMReleasePropList(dict); dict = shared_dict; shared_dict = NULL; } if (WDWindowAttributes->dictionary) WMReleasePropList(WDWindowAttributes->dictionary); WDWindowAttributes->dictionary = dict; for (i = 0; i < wScreenCount; i++) { scr = wScreenWithNumber(i); if (scr) { wDefaultUpdateIcons(scr); /* Update the panel image if changed */ /* Don't worry. If the image is the same these * functions will have no performance impact. */ create_logo_image(scr); } } } } else { wwarning(_("could not load domain %s from user defaults database"), "WMWindowAttributes"); } WDWindowAttributes->timestamp = stbuf.st_mtime; if (shared_dict) WMReleasePropList(shared_dict); } if (stat(WDRootMenu->path, &stbuf) >= 0 && WDRootMenu->timestamp < stbuf.st_mtime) { dict = WMReadPropListFromFile(WDRootMenu->path); if (dict) { if (!WMIsPLArray(dict) && !WMIsPLString(dict)) { WMReleasePropList(dict); dict = NULL; wwarning(_("Domain %s (%s) of defaults database is corrupted!"), "WMRootMenu", WDRootMenu->path); } else { if (WDRootMenu->dictionary) WMReleasePropList(WDRootMenu->dictionary); WDRootMenu->dictionary = dict; wDefaultsMergeGlobalMenus(WDRootMenu); } } else { wwarning(_("could not load domain %s from user defaults database"), "WMRootMenu"); } WDRootMenu->timestamp = stbuf.st_mtime; } #ifndef HAVE_INOTIFY if (!arg) WMAddTimerHandler(DEFAULTS_CHECK_INTERVAL, wDefaultsCheckDomains, arg); #endif } void wReadDefaults(WScreen * scr, WMPropList * new_dict) { WMPropList *plvalue, *old_value; WDefaultEntry *entry; unsigned int i; int update_workspace_back = 0; /* kluge :/ */ unsigned int needs_refresh; void *tdata; WMPropList *old_dict = (WDWindowMaker->dictionary != new_dict ? WDWindowMaker->dictionary : NULL); needs_refresh = 0; for (i = 0; i < sizeof(optionList) / sizeof(optionList[0]); i++) { entry = &optionList[i]; if (new_dict) plvalue = WMGetFromPLDictionary(new_dict, entry->plkey); else plvalue = NULL; if (!old_dict) old_value = NULL; else old_value = WMGetFromPLDictionary(old_dict, entry->plkey); if (!plvalue && !old_value) { /* no default in the DB. Use builtin default */ plvalue = entry->plvalue; if (plvalue && new_dict) WMPutInPLDictionary(new_dict, entry->plkey, plvalue); } else if (!plvalue) { /* value was deleted from DB. Keep current value */ continue; } else if (!old_value) { /* set value for the 1st time */ } else if (!WMIsPropListEqualTo(plvalue, old_value)) { /* value has changed */ } else { if (strcmp(entry->key, "WorkspaceBack") == 0 && update_workspace_back && scr->flags.backimage_helper_launched) { } else { /* value was not changed since last time */ continue; } } if (plvalue) { /* convert data */ if ((*entry->convert) (scr, entry, plvalue, entry->addr, &tdata)) { /* * If the WorkspaceSpecificBack data has been changed * so that the helper will be launched now, we must be * sure to send the default background texture config * to the helper. */ if (strcmp(entry->key, "WorkspaceSpecificBack") == 0 && !scr->flags.backimage_helper_launched) update_workspace_back = 1; if (entry->update) needs_refresh |= (*entry->update) (scr, entry, tdata, entry->extra_data); } } } if (needs_refresh != 0 && !scr->flags.startup) { int foo; foo = 0; if (needs_refresh & REFRESH_MENU_TITLE_TEXTURE) foo |= WTextureSettings; if (needs_refresh & REFRESH_MENU_TITLE_FONT) foo |= WFontSettings; if (needs_refresh & REFRESH_MENU_TITLE_COLOR) foo |= WColorSettings; if (foo) WMPostNotificationName(WNMenuTitleAppearanceSettingsChanged, NULL, (void *)(uintptr_t) foo); foo = 0; if (needs_refresh & REFRESH_MENU_TEXTURE) foo |= WTextureSettings; if (needs_refresh & REFRESH_MENU_FONT) foo |= WFontSettings; if (needs_refresh & REFRESH_MENU_COLOR) foo |= WColorSettings; if (foo) WMPostNotificationName(WNMenuAppearanceSettingsChanged, NULL, (void *)(uintptr_t) foo); foo = 0; if (needs_refresh & REFRESH_WINDOW_FONT) foo |= WFontSettings; if (needs_refresh & REFRESH_WINDOW_TEXTURES) foo |= WTextureSettings; if (needs_refresh & REFRESH_WINDOW_TITLE_COLOR) foo |= WColorSettings; if (foo) WMPostNotificationName(WNWindowAppearanceSettingsChanged, NULL, (void *)(uintptr_t) foo); if (!(needs_refresh & REFRESH_ICON_TILE)) { foo = 0; if (needs_refresh & REFRESH_ICON_FONT) foo |= WFontSettings; if (needs_refresh & REFRESH_ICON_TITLE_COLOR) foo |= WTextureSettings; if (needs_refresh & REFRESH_ICON_TITLE_BACK) foo |= WTextureSettings; if (foo) WMPostNotificationName(WNIconAppearanceSettingsChanged, NULL, (void *)(uintptr_t) foo); } if (needs_refresh & REFRESH_ICON_TILE) WMPostNotificationName(WNIconTileSettingsChanged, NULL, NULL); if (needs_refresh & REFRESH_WORKSPACE_MENU) { if (scr->workspace_menu) wWorkspaceMenuUpdate(scr, scr->workspace_menu); if (scr->clip_ws_menu) wWorkspaceMenuUpdate(scr, scr->clip_ws_menu); if (scr->workspace_submenu) scr->workspace_submenu->flags.realized = 0; if (scr->clip_submenu) scr->clip_submenu->flags.realized = 0; } } } void wDefaultUpdateIcons(WScreen *scr) { WAppIcon *aicon = scr->app_icon_list; WDrawerChain *dc; WWindow *wwin = scr->focused_window; while (aicon) { /* Get the application icon, default included */ wIconChangeImageFile(aicon->icon, NULL); wAppIconPaint(aicon); aicon = aicon->next; } if (!wPreferences.flags.noclip || wPreferences.flags.clip_merged_in_dock) wClipIconPaint(scr->clip_icon); for (dc = scr->drawers; dc != NULL; dc = dc->next) wDrawerIconPaint(dc->adrawer->icon_array[0]); while (wwin) { if (wwin->icon && wwin->flags.miniaturized) wIconChangeImageFile(wwin->icon, NULL); wwin = wwin->prev; } } /* --------------------------- Local ----------------------- */ #define GET_STRING_OR_DEFAULT(x, var) if (!WMIsPLString(value)) { \ wwarning(_("Wrong option format for key \"%s\". Should be %s."), \ entry->key, x); \ wwarning(_("using default \"%s\" instead"), entry->default_value); \ var = entry->default_value;\ } else var = WMGetFromPLString(value)\ static int string2index(WMPropList *key, WMPropList *val, const char *def, WOptionEnumeration * values) { char *str; WOptionEnumeration *v; char buffer[TOTAL_VALUES_LENGTH]; if (WMIsPLString(val) && (str = WMGetFromPLString(val))) { for (v = values; v->string != NULL; v++) { if (strcasecmp(v->string, str) == 0) return v->value; } } buffer[0] = 0; for (v = values; v->string != NULL; v++) { if (!v->is_alias) { if (buffer[0] != 0) strcat(buffer, ", "); snprintf(buffer+strlen(buffer), sizeof(buffer)-strlen(buffer)-1, "\"%s\"", v->string); } } wwarning(_("wrong option value for key \"%s\"; got \"%s\", should be one of %s."), WMGetFromPLString(key), WMIsPLString(val) ? WMGetFromPLString(val) : "(unknown)", buffer); if (def) { return string2index(key, val, NULL, values); } return -1; } /* * value - is the value in the defaults DB * addr - is the address to store the data * ret - is the address to store a pointer to a temporary buffer. ret * must not be freed and is used by the set functions */ static int getBool(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { static char data; const char *val; int second_pass = 0; GET_STRING_OR_DEFAULT("Boolean", val); again: if ((val[1] == '\0' && (val[0] == 'y' || val[0] == 'Y')) || strcasecmp(val, "YES") == 0) { data = 1; } else if ((val[1] == '\0' && (val[0] == 'n' || val[0] == 'N')) || strcasecmp(val, "NO") == 0) { data = 0; } else { int i; if (sscanf(val, "%i", &i) == 1) { if (i != 0) data = 1; else data = 0; } else { wwarning(_("can't convert \"%s\" to boolean for key \"%s\""), val, entry->key); if (second_pass == 0) { val = WMGetFromPLString(entry->plvalue); second_pass = 1; wwarning(_("using default \"%s\" instead"), val); goto again; } return False; } } if (ret) *ret = &data; if (addr) *(char *)addr = data; return True; } static int getInt(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { static int data; const char *val; GET_STRING_OR_DEFAULT("Integer", val); if (sscanf(val, "%i", &data) != 1) { wwarning(_("can't convert \"%s\" to integer for key \"%s\""), val, entry->key); val = WMGetFromPLString(entry->plvalue); wwarning(_("using default \"%s\" instead"), val); if (sscanf(val, "%i", &data) != 1) { return False; } } if (ret) *ret = &data; if (addr) *(int *)addr = data; return True; } static int getCoord(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { static WCoord data; char *val_x, *val_y; int nelem, changed = 0; WMPropList *elem_x, *elem_y; again: if (!WMIsPLArray(value)) { wwarning(_("Wrong option format for key \"%s\". Should be %s."), entry->key, "Coordinate"); if (changed == 0) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return False; } nelem = WMGetPropListItemCount(value); if (nelem != 2) { wwarning(_("Incorrect number of elements in array for key \"%s\"."), entry->key); if (changed == 0) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return False; } elem_x = WMGetFromPLArray(value, 0); elem_y = WMGetFromPLArray(value, 1); if (!elem_x || !elem_y || !WMIsPLString(elem_x) || !WMIsPLString(elem_y)) { wwarning(_("Wrong value for key \"%s\". Should be Coordinate."), entry->key); if (changed == 0) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return False; } val_x = WMGetFromPLString(elem_x); val_y = WMGetFromPLString(elem_y); if (sscanf(val_x, "%i", &data.x) != 1 || sscanf(val_y, "%i", &data.y) != 1) { wwarning(_("can't convert array to integers for \"%s\"."), entry->key); if (changed == 0) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return False; } if (data.x < 0) data.x = 0; else if (data.x > scr->scr_width / 3) data.x = scr->scr_width / 3; if (data.y < 0) data.y = 0; else if (data.y > scr->scr_height / 3) data.y = scr->scr_height / 3; if (ret) *ret = &data; if (addr) *(WCoord *) addr = data; return True; } static int getPropList(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { WMRetainPropList(value); *ret = value; return True; } static int getPathList(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { static char *data; int i, count, len; char *ptr; WMPropList *d; int changed = 0; again: if (!WMIsPLArray(value)) { wwarning(_("Wrong option format for key \"%s\". Should be %s."), entry->key, "an array of paths"); if (changed == 0) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return False; } i = 0; count = WMGetPropListItemCount(value); if (count < 1) { if (changed == 0) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return False; } len = 0; for (i = 0; i < count; i++) { d = WMGetFromPLArray(value, i); if (!d || !WMIsPLString(d)) { count = i; break; } len += strlen(WMGetFromPLString(d)) + 1; } ptr = data = wmalloc(len + 1); for (i = 0; i < count; i++) { d = WMGetFromPLArray(value, i); if (!d || !WMIsPLString(d)) { break; } strcpy(ptr, WMGetFromPLString(d)); ptr += strlen(WMGetFromPLString(d)); *ptr = ':'; ptr++; } ptr--; *(ptr--) = 0; if (*(char **)addr != NULL) { wfree(*(char **)addr); } *(char **)addr = data; return True; } static int getEnum(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { static signed char data; data = string2index(entry->plkey, value, entry->default_value, (WOptionEnumeration *) entry->extra_data); if (data < 0) return False; if (ret) *ret = &data; if (addr) *(signed char *)addr = data; return True; } /* * (solid ) * (hgradient ) * (vgradient ) * (dgradient ) * (mhgradient ...) * (mvgradient ...) * (mdgradient ...) * (igradient ) * (tpixmap ) * (spixmap ) * (cpixmap ) * (thgradient ) * (tvgradient ) * (tdgradient ) * (function ...) */ static WTexture *parse_texture(WScreen * scr, WMPropList * pl) { WMPropList *elem; char *val; int nelem; WTexture *texture = NULL; nelem = WMGetPropListItemCount(pl); if (nelem < 1) return NULL; elem = WMGetFromPLArray(pl, 0); if (!elem || !WMIsPLString(elem)) return NULL; val = WMGetFromPLString(elem); if (strcasecmp(val, "solid") == 0) { XColor color; if (nelem != 2) return NULL; /* get color */ elem = WMGetFromPLArray(pl, 1); if (!elem || !WMIsPLString(elem)) return NULL; val = WMGetFromPLString(elem); if (!XParseColor(dpy, scr->w_colormap, val, &color)) { wwarning(_("\"%s\" is not a valid color name"), val); return NULL; } texture = (WTexture *) wTextureMakeSolid(scr, &color); } else if (strcasecmp(val, "dgradient") == 0 || strcasecmp(val, "vgradient") == 0 || strcasecmp(val, "hgradient") == 0) { RColor color1, color2; XColor xcolor; int type; if (nelem != 3) { wwarning(_("bad number of arguments in gradient specification")); return NULL; } if (val[0] == 'd' || val[0] == 'D') type = WTEX_DGRADIENT; else if (val[0] == 'h' || val[0] == 'H') type = WTEX_HGRADIENT; else type = WTEX_VGRADIENT; /* get from color */ elem = WMGetFromPLArray(pl, 1); if (!elem || !WMIsPLString(elem)) return NULL; val = WMGetFromPLString(elem); if (!XParseColor(dpy, scr->w_colormap, val, &xcolor)) { wwarning(_("\"%s\" is not a valid color name"), val); return NULL; } color1.alpha = 255; color1.red = xcolor.red >> 8; color1.green = xcolor.green >> 8; color1.blue = xcolor.blue >> 8; /* get to color */ elem = WMGetFromPLArray(pl, 2); if (!elem || !WMIsPLString(elem)) { return NULL; } val = WMGetFromPLString(elem); if (!XParseColor(dpy, scr->w_colormap, val, &xcolor)) { wwarning(_("\"%s\" is not a valid color name"), val); return NULL; } color2.alpha = 255; color2.red = xcolor.red >> 8; color2.green = xcolor.green >> 8; color2.blue = xcolor.blue >> 8; texture = (WTexture *) wTextureMakeGradient(scr, type, &color1, &color2); } else if (strcasecmp(val, "igradient") == 0) { RColor colors1[2], colors2[2]; int th1, th2; XColor xcolor; int i; if (nelem != 7) { wwarning(_("bad number of arguments in gradient specification")); return NULL; } /* get from color */ for (i = 0; i < 2; i++) { elem = WMGetFromPLArray(pl, 1 + i); if (!elem || !WMIsPLString(elem)) return NULL; val = WMGetFromPLString(elem); if (!XParseColor(dpy, scr->w_colormap, val, &xcolor)) { wwarning(_("\"%s\" is not a valid color name"), val); return NULL; } colors1[i].alpha = 255; colors1[i].red = xcolor.red >> 8; colors1[i].green = xcolor.green >> 8; colors1[i].blue = xcolor.blue >> 8; } elem = WMGetFromPLArray(pl, 3); if (!elem || !WMIsPLString(elem)) return NULL; val = WMGetFromPLString(elem); th1 = atoi(val); /* get from color */ for (i = 0; i < 2; i++) { elem = WMGetFromPLArray(pl, 4 + i); if (!elem || !WMIsPLString(elem)) return NULL; val = WMGetFromPLString(elem); if (!XParseColor(dpy, scr->w_colormap, val, &xcolor)) { wwarning(_("\"%s\" is not a valid color name"), val); return NULL; } colors2[i].alpha = 255; colors2[i].red = xcolor.red >> 8; colors2[i].green = xcolor.green >> 8; colors2[i].blue = xcolor.blue >> 8; } elem = WMGetFromPLArray(pl, 6); if (!elem || !WMIsPLString(elem)) return NULL; val = WMGetFromPLString(elem); th2 = atoi(val); texture = (WTexture *) wTextureMakeIGradient(scr, th1, colors1, th2, colors2); } else if (strcasecmp(val, "mhgradient") == 0 || strcasecmp(val, "mvgradient") == 0 || strcasecmp(val, "mdgradient") == 0) { XColor color; RColor **colors; int i, count; int type; if (nelem < 3) { wwarning(_("too few arguments in multicolor gradient specification")); return NULL; } if (val[1] == 'h' || val[1] == 'H') type = WTEX_MHGRADIENT; else if (val[1] == 'v' || val[1] == 'V') type = WTEX_MVGRADIENT; else type = WTEX_MDGRADIENT; count = nelem - 1; colors = wmalloc(sizeof(RColor *) * (count + 1)); for (i = 0; i < count; i++) { elem = WMGetFromPLArray(pl, i + 1); if (!elem || !WMIsPLString(elem)) { for (--i; i >= 0; --i) { wfree(colors[i]); } wfree(colors); return NULL; } val = WMGetFromPLString(elem); if (!XParseColor(dpy, scr->w_colormap, val, &color)) { wwarning(_("\"%s\" is not a valid color name"), val); for (--i; i >= 0; --i) { wfree(colors[i]); } wfree(colors); return NULL; } else { colors[i] = wmalloc(sizeof(RColor)); colors[i]->red = color.red >> 8; colors[i]->green = color.green >> 8; colors[i]->blue = color.blue >> 8; } } colors[i] = NULL; texture = (WTexture *) wTextureMakeMGradient(scr, type, colors); } else if (strcasecmp(val, "spixmap") == 0 || strcasecmp(val, "cpixmap") == 0 || strcasecmp(val, "tpixmap") == 0) { XColor color; int type; if (nelem != 3) return NULL; if (val[0] == 's' || val[0] == 'S') type = WTP_SCALE; else if (val[0] == 'c' || val[0] == 'C') type = WTP_CENTER; else type = WTP_TILE; /* get color */ elem = WMGetFromPLArray(pl, 2); if (!elem || !WMIsPLString(elem)) { return NULL; } val = WMGetFromPLString(elem); if (!XParseColor(dpy, scr->w_colormap, val, &color)) { wwarning(_("\"%s\" is not a valid color name"), val); return NULL; } /* file name */ elem = WMGetFromPLArray(pl, 1); if (!elem || !WMIsPLString(elem)) return NULL; val = WMGetFromPLString(elem); texture = (WTexture *) wTextureMakePixmap(scr, type, val, &color); } else if (strcasecmp(val, "thgradient") == 0 || strcasecmp(val, "tvgradient") == 0 || strcasecmp(val, "tdgradient") == 0) { RColor color1, color2; XColor xcolor; int opacity; int style; if (val[1] == 'h' || val[1] == 'H') style = WTEX_THGRADIENT; else if (val[1] == 'v' || val[1] == 'V') style = WTEX_TVGRADIENT; else style = WTEX_TDGRADIENT; if (nelem != 5) { wwarning(_("bad number of arguments in textured gradient specification")); return NULL; } /* get from color */ elem = WMGetFromPLArray(pl, 3); if (!elem || !WMIsPLString(elem)) return NULL; val = WMGetFromPLString(elem); if (!XParseColor(dpy, scr->w_colormap, val, &xcolor)) { wwarning(_("\"%s\" is not a valid color name"), val); return NULL; } color1.alpha = 255; color1.red = xcolor.red >> 8; color1.green = xcolor.green >> 8; color1.blue = xcolor.blue >> 8; /* get to color */ elem = WMGetFromPLArray(pl, 4); if (!elem || !WMIsPLString(elem)) { return NULL; } val = WMGetFromPLString(elem); if (!XParseColor(dpy, scr->w_colormap, val, &xcolor)) { wwarning(_("\"%s\" is not a valid color name"), val); return NULL; } color2.alpha = 255; color2.red = xcolor.red >> 8; color2.green = xcolor.green >> 8; color2.blue = xcolor.blue >> 8; /* get opacity */ elem = WMGetFromPLArray(pl, 2); if (!elem || !WMIsPLString(elem)) opacity = 128; else val = WMGetFromPLString(elem); if (!val || (opacity = atoi(val)) < 0 || opacity > 255) { wwarning(_("bad opacity value for tgradient texture \"%s\". Should be [0..255]"), val); opacity = 128; } /* get file name */ elem = WMGetFromPLArray(pl, 1); if (!elem || !WMIsPLString(elem)) return NULL; val = WMGetFromPLString(elem); texture = (WTexture *) wTextureMakeTGradient(scr, style, &color1, &color2, val, opacity); } else if (strcasecmp(val, "function") == 0) { /* Leave this in to handle the unlikely case of * someone actually having function textures configured */ wwarning("function texture support has been removed"); return NULL; } else { wwarning(_("invalid texture type %s"), val); return NULL; } return texture; } static int getTexture(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { static WTexture *texture; int changed = 0; again: if (!WMIsPLArray(value)) { wwarning(_("Wrong option format for key \"%s\". Should be %s."), entry->key, "Texture"); if (changed == 0) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return False; } if (strcmp(entry->key, "WidgetColor") == 0 && !changed) { WMPropList *pl; pl = WMGetFromPLArray(value, 0); if (!pl || !WMIsPLString(pl) || !WMGetFromPLString(pl) || strcasecmp(WMGetFromPLString(pl), "solid") != 0) { wwarning(_("Wrong option format for key \"%s\". Should be %s."), entry->key, "Solid Texture"); value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } } texture = parse_texture(scr, value); if (!texture) { wwarning(_("Error in texture specification for key \"%s\""), entry->key); if (changed == 0) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return False; } if (ret) *ret = &texture; if (addr) *(WTexture **) addr = texture; return True; } static int getWSBackground(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { WMPropList *elem; int changed = 0; char *val; int nelem; again: if (!WMIsPLArray(value)) { wwarning(_("Wrong option format for key \"%s\". Should be %s."), "WorkspaceBack", "Texture or None"); if (changed == 0) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return False; } /* only do basic error checking and verify for None texture */ nelem = WMGetPropListItemCount(value); if (nelem > 0) { elem = WMGetFromPLArray(value, 0); if (!elem || !WMIsPLString(elem)) { wwarning(_("Wrong type for workspace background. Should be a texture type.")); if (changed == 0) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return False; } val = WMGetFromPLString(elem); if (strcasecmp(val, "None") == 0) return True; } *ret = WMRetainPropList(value); return True; } static int getWSSpecificBackground(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { WMPropList *elem; int nelem; int changed = 0; again: if (!WMIsPLArray(value)) { wwarning(_("Wrong option format for key \"%s\". Should be %s."), "WorkspaceSpecificBack", "an array of textures"); if (changed == 0) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return False; } /* only do basic error checking and verify for None texture */ nelem = WMGetPropListItemCount(value); if (nelem > 0) { while (nelem--) { elem = WMGetFromPLArray(value, nelem); if (!elem || !WMIsPLArray(elem)) { wwarning(_("Wrong type for background of workspace %i. Should be a texture."), nelem); } } } *ret = WMRetainPropList(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) { WMPropList *key = WMCreatePLString("WorkspaceBack"); WMRemoveFromPLDictionary(WDWindowMaker->dictionary, key); WMReleasePropList(key); } #endif return True; } static int getFont(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { static WMFont *font; const char *val; GET_STRING_OR_DEFAULT("Font", val); font = WMCreateFont(scr->wmscreen, val); if (!font) font = WMCreateFont(scr->wmscreen, "fixed"); if (!font) { wfatal(_("could not load any usable font!!!")); exit(1); } if (ret) *ret = font; /* can't assign font value outside update function */ wassertrv(addr == NULL, True); return True; } static int getColor(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { static XColor color; const char *val; int second_pass = 0; GET_STRING_OR_DEFAULT("Color", val); again: if (!wGetColor(scr, val, &color)) { wwarning(_("could not get color for key \"%s\""), entry->key); if (second_pass == 0) { val = WMGetFromPLString(entry->plvalue); second_pass = 1; wwarning(_("using default \"%s\" instead"), val); goto again; } return False; } if (ret) *ret = &color; assert(addr == NULL); /* if (addr) *(unsigned long*)addr = pixel; */ return True; } static int getKeybind(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { static WShortKey shortcut; KeySym ksym; const char *val; char *k; char buf[MAX_SHORTCUT_LENGTH], *b; GET_STRING_OR_DEFAULT("Key spec", val); if (!val || strcasecmp(val, "NONE") == 0) { shortcut.keycode = 0; shortcut.modifier = 0; if (ret) *ret = &shortcut; return True; } wstrlcpy(buf, val, MAX_SHORTCUT_LENGTH); b = (char *)buf; /* get modifiers */ shortcut.modifier = 0; while ((k = strchr(b, '+')) != NULL) { int mod; *k = 0; mod = wXModifierFromKey(b); if (mod < 0) { wwarning(_("%s: invalid key modifier \"%s\""), entry->key, b); return False; } shortcut.modifier |= mod; b = k + 1; } /* get key */ ksym = XStringToKeysym(b); if (ksym == NoSymbol) { wwarning(_("%s:invalid kbd shortcut specification \"%s\""), entry->key, val); return False; } shortcut.keycode = XKeysymToKeycode(dpy, ksym); if (shortcut.keycode == 0) { wwarning(_("%s:invalid key in shortcut \"%s\""), entry->key, val); return False; } if (ret) *ret = &shortcut; return True; } static int getModMask(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { static int mask; const char *str; GET_STRING_OR_DEFAULT("Modifier Key", str); if (!str) return False; mask = wXModifierFromKey(str); if (mask < 0) { wwarning(_("%s: modifier key %s is not valid"), entry->key, str); mask = 0; return False; } if (addr) *(int *)addr = mask; if (ret) *ret = &mask; return True; } # include typedef struct { const char *name; int id; } WCursorLookup; #define CURSOR_ID_NONE (XC_num_glyphs) static const WCursorLookup cursor_table[] = { {"X_cursor", XC_X_cursor}, {"arrow", XC_arrow}, {"based_arrow_down", XC_based_arrow_down}, {"based_arrow_up", XC_based_arrow_up}, {"boat", XC_boat}, {"bogosity", XC_bogosity}, {"bottom_left_corner", XC_bottom_left_corner}, {"bottom_right_corner", XC_bottom_right_corner}, {"bottom_side", XC_bottom_side}, {"bottom_tee", XC_bottom_tee}, {"box_spiral", XC_box_spiral}, {"center_ptr", XC_center_ptr}, {"circle", XC_circle}, {"clock", XC_clock}, {"coffee_mug", XC_coffee_mug}, {"cross", XC_cross}, {"cross_reverse", XC_cross_reverse}, {"crosshair", XC_crosshair}, {"diamond_cross", XC_diamond_cross}, {"dot", XC_dot}, {"dotbox", XC_dotbox}, {"double_arrow", XC_double_arrow}, {"draft_large", XC_draft_large}, {"draft_small", XC_draft_small}, {"draped_box", XC_draped_box}, {"exchange", XC_exchange}, {"fleur", XC_fleur}, {"gobbler", XC_gobbler}, {"gumby", XC_gumby}, {"hand1", XC_hand1}, {"hand2", XC_hand2}, {"heart", XC_heart}, {"icon", XC_icon}, {"iron_cross", XC_iron_cross}, {"left_ptr", XC_left_ptr}, {"left_side", XC_left_side}, {"left_tee", XC_left_tee}, {"leftbutton", XC_leftbutton}, {"ll_angle", XC_ll_angle}, {"lr_angle", XC_lr_angle}, {"man", XC_man}, {"middlebutton", XC_middlebutton}, {"mouse", XC_mouse}, {"pencil", XC_pencil}, {"pirate", XC_pirate}, {"plus", XC_plus}, {"question_arrow", XC_question_arrow}, {"right_ptr", XC_right_ptr}, {"right_side", XC_right_side}, {"right_tee", XC_right_tee}, {"rightbutton", XC_rightbutton}, {"rtl_logo", XC_rtl_logo}, {"sailboat", XC_sailboat}, {"sb_down_arrow", XC_sb_down_arrow}, {"sb_h_double_arrow", XC_sb_h_double_arrow}, {"sb_left_arrow", XC_sb_left_arrow}, {"sb_right_arrow", XC_sb_right_arrow}, {"sb_up_arrow", XC_sb_up_arrow}, {"sb_v_double_arrow", XC_sb_v_double_arrow}, {"shuttle", XC_shuttle}, {"sizing", XC_sizing}, {"spider", XC_spider}, {"spraycan", XC_spraycan}, {"star", XC_star}, {"target", XC_target}, {"tcross", XC_tcross}, {"top_left_arrow", XC_top_left_arrow}, {"top_left_corner", XC_top_left_corner}, {"top_right_corner", XC_top_right_corner}, {"top_side", XC_top_side}, {"top_tee", XC_top_tee}, {"trek", XC_trek}, {"ul_angle", XC_ul_angle}, {"umbrella", XC_umbrella}, {"ur_angle", XC_ur_angle}, {"watch", XC_watch}, {"xterm", XC_xterm}, {NULL, CURSOR_ID_NONE} }; static void check_bitmap_status(int status, const char *filename, Pixmap bitmap) { switch (status) { case BitmapOpenFailed: wwarning(_("failed to open bitmap file \"%s\""), filename); break; case BitmapFileInvalid: wwarning(_("\"%s\" is not a valid bitmap file"), filename); break; case BitmapNoMemory: wwarning(_("out of memory reading bitmap file \"%s\""), filename); break; case BitmapSuccess: XFreePixmap(dpy, bitmap); break; } } /* * (none) * (builtin, ) * (bitmap, , ) */ static int parse_cursor(WScreen * scr, WMPropList * pl, Cursor * cursor) { WMPropList *elem; char *val; int nelem; int status = 0; nelem = WMGetPropListItemCount(pl); if (nelem < 1) { return (status); } elem = WMGetFromPLArray(pl, 0); if (!elem || !WMIsPLString(elem)) { return (status); } val = WMGetFromPLString(elem); if (strcasecmp(val, "none") == 0) { status = 1; *cursor = None; } else if (strcasecmp(val, "builtin") == 0) { int i; int cursor_id = CURSOR_ID_NONE; if (nelem != 2) { wwarning(_("bad number of arguments in cursor specification")); return (status); } elem = WMGetFromPLArray(pl, 1); if (!elem || !WMIsPLString(elem)) { return (status); } val = WMGetFromPLString(elem); for (i = 0; cursor_table[i].name != NULL; i++) { if (strcasecmp(val, cursor_table[i].name) == 0) { cursor_id = cursor_table[i].id; break; } } if (CURSOR_ID_NONE == cursor_id) { wwarning(_("unknown builtin cursor name \"%s\""), val); } else { *cursor = XCreateFontCursor(dpy, cursor_id); status = 1; } } else if (strcasecmp(val, "bitmap") == 0) { char *bitmap_name; char *mask_name; int bitmap_status; int mask_status; Pixmap bitmap; Pixmap mask; unsigned int w, h; int x, y; XColor fg, bg; if (nelem != 3) { wwarning(_("bad number of arguments in cursor specification")); return (status); } elem = WMGetFromPLArray(pl, 1); if (!elem || !WMIsPLString(elem)) { return (status); } val = WMGetFromPLString(elem); bitmap_name = FindImage(wPreferences.pixmap_path, val); if (!bitmap_name) { wwarning(_("could not find cursor bitmap file \"%s\""), val); return (status); } elem = WMGetFromPLArray(pl, 2); if (!elem || !WMIsPLString(elem)) { wfree(bitmap_name); return (status); } val = WMGetFromPLString(elem); mask_name = FindImage(wPreferences.pixmap_path, val); if (!mask_name) { wfree(bitmap_name); wwarning(_("could not find cursor bitmap file \"%s\""), val); return (status); } mask_status = XReadBitmapFile(dpy, scr->w_win, mask_name, &w, &h, &mask, &x, &y); bitmap_status = XReadBitmapFile(dpy, scr->w_win, bitmap_name, &w, &h, &bitmap, &x, &y); if ((BitmapSuccess == bitmap_status) && (BitmapSuccess == mask_status)) { fg.pixel = scr->black_pixel; bg.pixel = scr->white_pixel; XQueryColor(dpy, scr->w_colormap, &fg); XQueryColor(dpy, scr->w_colormap, &bg); *cursor = XCreatePixmapCursor(dpy, bitmap, mask, &fg, &bg, x, y); status = 1; } check_bitmap_status(bitmap_status, bitmap_name, bitmap); check_bitmap_status(mask_status, mask_name, mask); wfree(bitmap_name); wfree(mask_name); } return (status); } static int getCursor(WScreen * scr, WDefaultEntry * entry, WMPropList * value, void *addr, void **ret) { static Cursor cursor; int status; int changed = 0; again: if (!WMIsPLArray(value)) { wwarning(_("Wrong option format for key \"%s\". Should be %s."), entry->key, "cursor specification"); if (!changed) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return (False); } status = parse_cursor(scr, value, &cursor); if (!status) { wwarning(_("Error in cursor specification for key \"%s\""), entry->key); if (!changed) { value = entry->plvalue; changed = 1; wwarning(_("using default \"%s\" instead"), entry->default_value); goto again; } return (False); } if (ret) { *ret = &cursor; } if (addr) { *(Cursor *) addr = cursor; } return (True); } #undef CURSOR_ID_NONE /* ---------------- value setting functions --------------- */ static int setJustify(WScreen * scr, WDefaultEntry * entry, void *tdata, void *extra_data) { return REFRESH_WINDOW_TITLE_COLOR; } static int setClearance(WScreen * scr, WDefaultEntry * entry, void *bar, void *foo) { return REFRESH_WINDOW_FONT | REFRESH_BUTTON_IMAGES | REFRESH_MENU_TITLE_FONT | REFRESH_MENU_FONT; } static int setIfDockPresent(WScreen * scr, WDefaultEntry * entry, void *tdata, void *extra_data) { char *flag = tdata; long which = (long) extra_data; switch (which) { case WM_DOCK: wPreferences.flags.nodock = wPreferences.flags.nodock || *flag; // Drawers require the dock wPreferences.flags.nodrawer = wPreferences.flags.nodrawer || wPreferences.flags.nodock; break; case WM_CLIP: wPreferences.flags.noclip = wPreferences.flags.noclip || *flag; break; case WM_DRAWER: wPreferences.flags.nodrawer = wPreferences.flags.nodrawer || *flag; break; default: break; } return 0; } static int setClipMergedInDock(WScreen *scr, WDefaultEntry *entry, void *tdata, void *foo) { char *flag = tdata; wPreferences.flags.clip_merged_in_dock = *flag; wPreferences.flags.noclip = wPreferences.flags.noclip || *flag; return 0; } static int setWrapAppiconsInDock(WScreen *scr, WDefaultEntry *entry, void *tdata, void *foo) { char *flag = tdata; wPreferences.flags.wrap_appicons_in_dock = *flag; return 0; } static int setStickyIcons(WScreen * scr, WDefaultEntry * entry, void *bar, void *foo) { if (scr->workspaces) { wWorkspaceForceChange(scr, scr->current_workspace); wArrangeIcons(scr, False); } return 0; } static int setIconTile(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { Pixmap pixmap; RImage *img; WTexture ** texture = tdata; int reset = 0; img = wTextureRenderImage(*texture, wPreferences.icon_size, wPreferences.icon_size, ((*texture)->any.type & WREL_BORDER_MASK) ? WREL_ICON : WREL_FLAT); if (!img) { wwarning(_("could not render texture for icon background")); if (!entry->addr) wTextureDestroy(scr, *texture); return 0; } RConvertImage(scr->rcontext, img, &pixmap); if (scr->icon_tile) { reset = 1; RReleaseImage(scr->icon_tile); XFreePixmap(dpy, scr->icon_tile_pixmap); } scr->icon_tile = img; /* put the icon in the noticeboard hint */ PropSetIconTileHint(scr, img); if (!wPreferences.flags.noclip || wPreferences.flags.clip_merged_in_dock) { if (scr->clip_tile) { RReleaseImage(scr->clip_tile); } scr->clip_tile = wClipMakeTile(scr, img); } if (!wPreferences.flags.nodrawer) { if (scr->drawer_tile) { RReleaseImage(scr->drawer_tile); } scr->drawer_tile = wDrawerMakeTile(scr, img); } scr->icon_tile_pixmap = pixmap; if (scr->def_icon_rimage) { RReleaseImage(scr->def_icon_rimage); scr->def_icon_rimage = NULL; } if (scr->icon_back_texture) wTextureDestroy(scr, (WTexture *) scr->icon_back_texture); scr->icon_back_texture = wTextureMakeSolid(scr, &((*texture)->any.color)); /* Free the texture as nobody else will use it, nor refer to it. */ if (!entry->addr) wTextureDestroy(scr, *texture); return (reset ? REFRESH_ICON_TILE : 0); } static int setWinTitleFont(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WMFont *font = tdata; if (scr->title_font) { WMReleaseFont(scr->title_font); } scr->title_font = font; return REFRESH_WINDOW_FONT | REFRESH_BUTTON_IMAGES; } static int setMenuTitleFont(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WMFont *font = tdata; if (scr->menu_title_font) { WMReleaseFont(scr->menu_title_font); } scr->menu_title_font = font; return REFRESH_MENU_TITLE_FONT; } static int setMenuTextFont(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WMFont *font = tdata; if (scr->menu_entry_font) { WMReleaseFont(scr->menu_entry_font); } scr->menu_entry_font = font; return REFRESH_MENU_FONT; } static int setIconTitleFont(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WMFont *font = tdata; if (scr->icon_title_font) { WMReleaseFont(scr->icon_title_font); } scr->icon_title_font = font; return REFRESH_ICON_FONT; } static int setClipTitleFont(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WMFont *font = tdata; if (scr->clip_title_font) { WMReleaseFont(scr->clip_title_font); } scr->clip_title_font = font; return REFRESH_ICON_FONT; } static int setLargeDisplayFont(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WMFont *font = tdata; if (scr->workspace_name_font) { WMReleaseFont(scr->workspace_name_font); } scr->workspace_name_font = font; return 0; } static int setHightlight(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { XColor *color = tdata; if (scr->select_color) WMReleaseColor(scr->select_color); scr->select_color = WMCreateRGBColor(scr->wmscreen, color->red, color->green, color->blue, True); wFreeColor(scr, color->pixel); return REFRESH_MENU_COLOR; } static int setHightlightText(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { XColor *color = tdata; if (scr->select_text_color) WMReleaseColor(scr->select_text_color); scr->select_text_color = WMCreateRGBColor(scr->wmscreen, color->red, color->green, color->blue, True); wFreeColor(scr, color->pixel); return REFRESH_MENU_COLOR; } static int setClipTitleColor(WScreen * scr, WDefaultEntry * entry, void *tdata, void *extra_data) { XColor *color = tdata; long widx = (long) extra_data; if (scr->clip_title_color[widx]) WMReleaseColor(scr->clip_title_color[widx]); scr->clip_title_color[widx] = WMCreateRGBColor(scr->wmscreen, color->red, color->green, color->blue, True); wFreeColor(scr, color->pixel); return REFRESH_ICON_TITLE_COLOR; } static int setWTitleColor(WScreen * scr, WDefaultEntry * entry, void *tdata, void *extra_data) { XColor *color = tdata; long widx = (long) extra_data; if (scr->window_title_color[widx]) WMReleaseColor(scr->window_title_color[widx]); scr->window_title_color[widx] = WMCreateRGBColor(scr->wmscreen, color->red, color->green, color->blue, True); wFreeColor(scr, color->pixel); return REFRESH_WINDOW_TITLE_COLOR; } static int setMenuTitleColor(WScreen * scr, WDefaultEntry * entry, void *tdata, void *extra_data) { XColor *color = tdata; if (scr->menu_title_color[0]) WMReleaseColor(scr->menu_title_color[0]); scr->menu_title_color[0] = WMCreateRGBColor(scr->wmscreen, color->red, color->green, color->blue, True); wFreeColor(scr, color->pixel); return REFRESH_MENU_TITLE_COLOR; } static int setMenuTextColor(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { XColor *color = tdata; if (scr->mtext_color) WMReleaseColor(scr->mtext_color); scr->mtext_color = WMCreateRGBColor(scr->wmscreen, color->red, color->green, color->blue, True); if (WMColorPixel(scr->dtext_color) == WMColorPixel(scr->mtext_color)) { WMSetColorAlpha(scr->dtext_color, 0x7fff); } else { WMSetColorAlpha(scr->dtext_color, 0xffff); } wFreeColor(scr, color->pixel); return REFRESH_MENU_COLOR; } static int setMenuDisabledColor(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { XColor *color = tdata; if (scr->dtext_color) WMReleaseColor(scr->dtext_color); scr->dtext_color = WMCreateRGBColor(scr->wmscreen, color->red, color->green, color->blue, True); if (WMColorPixel(scr->dtext_color) == WMColorPixel(scr->mtext_color)) { WMSetColorAlpha(scr->dtext_color, 0x7fff); } else { WMSetColorAlpha(scr->dtext_color, 0xffff); } wFreeColor(scr, color->pixel); return REFRESH_MENU_COLOR; } static int setIconTitleColor(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { XColor *color = tdata; if (scr->icon_title_color) WMReleaseColor(scr->icon_title_color); scr->icon_title_color = WMCreateRGBColor(scr->wmscreen, color->red, color->green, color->blue, True); wFreeColor(scr, color->pixel); return REFRESH_ICON_TITLE_COLOR; } static int setIconTitleBack(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { XColor *color = tdata; if (scr->icon_title_texture) { wTextureDestroy(scr, (WTexture *) scr->icon_title_texture); } scr->icon_title_texture = wTextureMakeSolid(scr, color); return REFRESH_ICON_TITLE_BACK; } static int setFrameBorderWidth(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { int *value = tdata; scr->frame_border_width = *value; return REFRESH_FRAME_BORDER; } static int setFrameBorderColor(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { XColor *color = tdata; if (scr->frame_border_color) WMReleaseColor(scr->frame_border_color); scr->frame_border_color = WMCreateRGBColor(scr->wmscreen, color->red, color->green, color->blue, True); wFreeColor(scr, color->pixel); return REFRESH_FRAME_BORDER; } static int setFrameSelectedBorderColor(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { XColor *color = tdata; if (scr->frame_selected_border_color) WMReleaseColor(scr->frame_selected_border_color); scr->frame_selected_border_color = WMCreateRGBColor(scr->wmscreen, color->red, color->green, color->blue, True); wFreeColor(scr, color->pixel); return REFRESH_FRAME_BORDER; } static void trackDeadProcess(pid_t pid, unsigned char status, WScreen * scr) { close(scr->helper_fd); scr->helper_fd = 0; scr->helper_pid = 0; scr->flags.backimage_helper_launched = 0; } static int setWorkspaceSpecificBack(WScreen * scr, WDefaultEntry * entry, void *tdata, void *bar) { WMPropList *value = tdata; WMPropList *val; char *str; int i; if (scr->flags.backimage_helper_launched) { if (WMGetPropListItemCount(value) == 0) { SendHelperMessage(scr, 'C', 0, NULL); SendHelperMessage(scr, 'K', 0, NULL); WMReleasePropList(value); return 0; } } else { pid_t pid; int filedes[2]; if (WMGetPropListItemCount(value) == 0) return 0; if (pipe(filedes) < 0) { werror("pipe() failed:can't set workspace specific background image"); WMReleasePropList(value); return 0; } pid = fork(); if (pid < 0) { werror("fork() failed:can't set workspace specific background image"); if (close(filedes[0]) < 0) werror("could not close pipe"); if (close(filedes[1]) < 0) werror("could not close pipe"); } else if (pid == 0) { char *dither; SetupEnvironment(scr); if (close(0) < 0) werror("could not close pipe"); if (dup(filedes[0]) < 0) { werror("dup() failed:can't set workspace specific background image"); } dither = wPreferences.no_dithering ? "-m" : "-d"; if (wPreferences.smooth_workspace_back) execlp("wmsetbg", "wmsetbg", "-helper", "-S", dither, NULL); else execlp("wmsetbg", "wmsetbg", "-helper", dither, NULL); werror("could not execute wmsetbg"); exit(1); } else { if (fcntl(filedes[0], F_SETFD, FD_CLOEXEC) < 0) { werror("error setting close-on-exec flag"); } if (fcntl(filedes[1], F_SETFD, FD_CLOEXEC) < 0) { werror("error setting close-on-exec flag"); } scr->helper_fd = filedes[1]; scr->helper_pid = pid; scr->flags.backimage_helper_launched = 1; wAddDeathHandler(pid, (WDeathHandler *) trackDeadProcess, scr); SendHelperMessage(scr, 'P', -1, wPreferences.pixmap_path); } } for (i = 0; i < WMGetPropListItemCount(value); i++) { val = WMGetFromPLArray(value, i); if (val && WMIsPLArray(val) && WMGetPropListItemCount(val) > 0) { str = WMGetPropListDescription(val, False); SendHelperMessage(scr, 'S', i + 1, str); wfree(str); } else { SendHelperMessage(scr, 'U', i + 1, NULL); } } sleep(1); WMReleasePropList(value); return 0; } static int setWorkspaceBack(WScreen * scr, WDefaultEntry * entry, void *tdata, void *bar) { WMPropList *value = tdata; if (scr->flags.backimage_helper_launched) { char *str; if (WMGetPropListItemCount(value) == 0) { SendHelperMessage(scr, 'U', 0, NULL); } else { /* set the default workspace background to this one */ str = WMGetPropListDescription(value, False); if (str) { SendHelperMessage(scr, 'S', 0, str); wfree(str); SendHelperMessage(scr, 'C', scr->current_workspace + 1, NULL); } else { SendHelperMessage(scr, 'U', 0, NULL); } } } else if (WMGetPropListItemCount(value) > 0) { char *command; char *text; char *dither; int len; text = WMGetPropListDescription(value, False); len = strlen(text) + 40; command = wmalloc(len); dither = wPreferences.no_dithering ? "-m" : "-d"; if (wPreferences.smooth_workspace_back) snprintf(command, len, "wmsetbg %s -S -p '%s' &", dither, text); else snprintf(command, len, "wmsetbg %s -p '%s' &", dither, text); wfree(text); ExecuteShellCommand(scr, command); wfree(command); } WMReleasePropList(value); return 0; } static int setWidgetColor(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WTexture **texture = tdata; if (scr->widget_texture) { wTextureDestroy(scr, (WTexture *) scr->widget_texture); } scr->widget_texture = *(WTexSolid **) texture; return 0; } static int setFTitleBack(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WTexture **texture = tdata; if (scr->window_title_texture[WS_FOCUSED]) { wTextureDestroy(scr, scr->window_title_texture[WS_FOCUSED]); } scr->window_title_texture[WS_FOCUSED] = *texture; return REFRESH_WINDOW_TEXTURES; } static int setPTitleBack(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WTexture **texture = tdata; if (scr->window_title_texture[WS_PFOCUSED]) { wTextureDestroy(scr, scr->window_title_texture[WS_PFOCUSED]); } scr->window_title_texture[WS_PFOCUSED] = *texture; return REFRESH_WINDOW_TEXTURES; } static int setUTitleBack(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WTexture **texture = tdata; if (scr->window_title_texture[WS_UNFOCUSED]) { wTextureDestroy(scr, scr->window_title_texture[WS_UNFOCUSED]); } scr->window_title_texture[WS_UNFOCUSED] = *texture; return REFRESH_WINDOW_TEXTURES; } static int setResizebarBack(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WTexture **texture = tdata; if (scr->resizebar_texture[0]) { wTextureDestroy(scr, scr->resizebar_texture[0]); } scr->resizebar_texture[0] = *texture; return REFRESH_WINDOW_TEXTURES; } static int setMenuTitleBack(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WTexture **texture = tdata; if (scr->menu_title_texture[0]) { wTextureDestroy(scr, scr->menu_title_texture[0]); } scr->menu_title_texture[0] = *texture; return REFRESH_MENU_TITLE_TEXTURE; } static int setMenuTextBack(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WTexture **texture = tdata; if (scr->menu_item_texture) { wTextureDestroy(scr, scr->menu_item_texture); wTextureDestroy(scr, (WTexture *) scr->menu_item_auxtexture); } scr->menu_item_texture = *texture; scr->menu_item_auxtexture = wTextureMakeSolid(scr, &scr->menu_item_texture->any.color); return REFRESH_MENU_TEXTURE; } static int setKeyGrab(WScreen * scr, WDefaultEntry * entry, void *tdata, void *extra_data) { WShortKey *shortcut = tdata; WWindow *wwin; long widx = (long) extra_data; wKeyBindings[widx] = *shortcut; wwin = scr->focused_window; while (wwin != NULL) { XUngrabKey(dpy, AnyKey, AnyModifier, wwin->frame->core->window); if (!WFLAGP(wwin, no_bind_keys)) { wWindowSetKeyGrabs(wwin); } wwin = wwin->prev; } /* do we need to update window menus? */ if (widx >= WKBD_WORKSPACE1 && widx <= WKBD_WORKSPACE10) return REFRESH_WORKSPACE_MENU; if (widx == WKBD_LASTWORKSPACE) return REFRESH_WORKSPACE_MENU; if (widx >= WKBD_MOVE_WORKSPACE1 && widx <= WKBD_MOVE_WORKSPACE10) return REFRESH_WORKSPACE_MENU; return 0; } static int setIconPosition(WScreen * scr, WDefaultEntry * entry, void *bar, void *foo) { wScreenUpdateUsableArea(scr); wArrangeIcons(scr, True); return 0; } static int updateUsableArea(WScreen * scr, WDefaultEntry * entry, void *bar, void *foo) { wScreenUpdateUsableArea(scr); return 0; } static int setMenuStyle(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { return REFRESH_MENU_TEXTURE; } static RImage *chopOffImage(RImage * image, int x, int y, int w, int h) { RImage *img = RCreateImage(w, h, image->format == RRGBAFormat); RCopyArea(img, image, x, y, w, h, 0, 0); return img; } static int setSwPOptions(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WMPropList *array = tdata; char *path; RImage *bgimage; int cwidth, cheight; struct WPreferences *prefs = foo; if (!WMIsPLArray(array) || WMGetPropListItemCount(array) == 0) { if (prefs->swtileImage) RReleaseImage(prefs->swtileImage); prefs->swtileImage = NULL; WMReleasePropList(array); return 0; } switch (WMGetPropListItemCount(array)) { case 4: if (!WMIsPLString(WMGetFromPLArray(array, 1))) { wwarning(_("Invalid arguments for option \"%s\""), entry->key); break; } else path = FindImage(wPreferences.pixmap_path, WMGetFromPLString(WMGetFromPLArray(array, 1))); if (!path) { wwarning(_("Could not find image \"%s\" for option \"%s\""), WMGetFromPLString(WMGetFromPLArray(array, 1)), entry->key); } else { bgimage = RLoadImage(scr->rcontext, path, 0); if (!bgimage) { wwarning(_("Could not load image \"%s\" for option \"%s\""), path, entry->key); wfree(path); } else { wfree(path); cwidth = atoi(WMGetFromPLString(WMGetFromPLArray(array, 2))); cheight = atoi(WMGetFromPLString(WMGetFromPLArray(array, 3))); if (cwidth <= 0 || cheight <= 0 || cwidth >= bgimage->width - 2 || cheight >= bgimage->height - 2) wwarning(_("Invalid split sizes for SwitchPanel back image.")); else { int i; int swidth, theight; for (i = 0; i < 9; i++) { if (prefs->swbackImage[i]) RReleaseImage(prefs->swbackImage[i]); prefs->swbackImage[i] = NULL; } swidth = (bgimage->width - cwidth) / 2; theight = (bgimage->height - cheight) / 2; prefs->swbackImage[0] = chopOffImage(bgimage, 0, 0, swidth, theight); prefs->swbackImage[1] = chopOffImage(bgimage, swidth, 0, cwidth, theight); prefs->swbackImage[2] = chopOffImage(bgimage, swidth + cwidth, 0, swidth, theight); prefs->swbackImage[3] = chopOffImage(bgimage, 0, theight, swidth, cheight); prefs->swbackImage[4] = chopOffImage(bgimage, swidth, theight, cwidth, cheight); prefs->swbackImage[5] = chopOffImage(bgimage, swidth + cwidth, theight, swidth, cheight); prefs->swbackImage[6] = chopOffImage(bgimage, 0, theight + cheight, swidth, theight); prefs->swbackImage[7] = chopOffImage(bgimage, swidth, theight + cheight, cwidth, theight); prefs->swbackImage[8] = chopOffImage(bgimage, swidth + cwidth, theight + cheight, swidth, theight); // check if anything failed for (i = 0; i < 9; i++) { if (!prefs->swbackImage[i]) { for (; i >= 0; --i) { RReleaseImage(prefs->swbackImage[i]); prefs->swbackImage[i] = NULL; } break; } } } RReleaseImage(bgimage); } } case 1: if (!WMIsPLString(WMGetFromPLArray(array, 0))) { wwarning(_("Invalid arguments for option \"%s\""), entry->key); break; } else path = FindImage(wPreferences.pixmap_path, WMGetFromPLString(WMGetFromPLArray(array, 0))); if (!path) { wwarning(_("Could not find image \"%s\" for option \"%s\""), WMGetFromPLString(WMGetFromPLArray(array, 0)), entry->key); } else { if (prefs->swtileImage) RReleaseImage(prefs->swtileImage); prefs->swtileImage = RLoadImage(scr->rcontext, path, 0); if (!prefs->swtileImage) { wwarning(_("Could not load image \"%s\" for option \"%s\""), path, entry->key); } wfree(path); } break; default: wwarning(_("Invalid number of arguments for option \"%s\""), entry->key); break; } WMReleasePropList(array); return 0; } static int setModifierKeyLabels(WScreen * scr, WDefaultEntry * entry, void *tdata, void *foo) { WMPropList *array = tdata; int i; struct WPreferences *prefs = foo; if (!WMIsPLArray(array) || WMGetPropListItemCount(array) != 7) { wwarning(_("Value for option \"%s\" must be an array of 7 strings"), entry->key); WMReleasePropList(array); return 0; } DestroyWindowMenu(scr); for (i = 0; i < 7; i++) { if (prefs->modifier_labels[i]) wfree(prefs->modifier_labels[i]); if (WMIsPLString(WMGetFromPLArray(array, i))) { prefs->modifier_labels[i] = wstrdup(WMGetFromPLString(WMGetFromPLArray(array, i))); } else { wwarning(_("Invalid argument for option \"%s\" item %d"), entry->key, i); prefs->modifier_labels[i] = NULL; } } WMReleasePropList(array); return 0; } static int setDoubleClick(WScreen *scr, WDefaultEntry *entry, void *tdata, void *foo) { int *value = tdata; if (*value <= 0) *(int *)foo = 1; W_setconf_doubleClickDelay(*value); return 0; } static int setCursor(WScreen * scr, WDefaultEntry * entry, void *tdata, void *extra_data) { Cursor *cursor = tdata; long widx = (long) extra_data; if (wCursor[widx] != None) { XFreeCursor(dpy, wCursor[widx]); } wCursor[widx] = *cursor; if (widx == WCUR_ROOT && *cursor != None) { XDefineCursor(dpy, scr->root_win, *cursor); } return 0; } WindowMaker-0.95.5/src/stacking.c0000644000175000017500000003755412214432632013535 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include "WindowMaker.h" #include "screen.h" #include "window.h" #include "actions.h" #include "properties.h" #include "stacking.h" #include "workspace.h" /*** Global Variables ***/ extern XContext wStackContext; static void notifyStackChange(WCoreWindow * frame, char *detail) { WWindow *wwin = wWindowFor(frame->window); WMPostNotificationName(WMNChangedStacking, wwin, detail); } /* *---------------------------------------------------------------------- * RemakeStackList-- * Remakes the stacking_list for the screen, getting the real * stacking order from the server and reordering windows that are not * in the correct stacking. * * Side effects: * The stacking order list and the actual window stacking * may be changed (corrected) * *---------------------------------------------------------------------- */ void RemakeStackList(WScreen * scr) { Window *windows; unsigned int nwindows; Window junkr, junkp; WCoreWindow *frame; WCoreWindow *tmp; int level; int i, c; if (!XQueryTree(dpy, scr->root_win, &junkr, &junkp, &windows, &nwindows)) { wwarning(_("could not get window list!!")); return; } else { WMEmptyBag(scr->stacking_list); /* verify list integrity */ c = 0; for (i = 0; i < nwindows; i++) { if (XFindContext(dpy, windows[i], wStackContext, (XPointer *) & frame) == XCNOENT) { continue; } if (!frame) continue; c++; level = frame->stacking->window_level; tmp = WMGetFromBag(scr->stacking_list, level); if (tmp) tmp->stacking->above = frame; frame->stacking->under = tmp; frame->stacking->above = NULL; WMSetInBag(scr->stacking_list, level, frame); } XFree(windows); scr->window_count = c; } CommitStacking(scr); } /* *---------------------------------------------------------------------- * CommitStacking-- * Reorders the actual window stacking, so that it has the stacking * order in the internal window stacking lists. It does the opposite * of RemakeStackList(). * * Side effects: * Windows may be restacked. *---------------------------------------------------------------------- */ void CommitStacking(WScreen * scr) { WCoreWindow *tmp; int nwindows, i; Window *windows; WMBagIterator iter; nwindows = scr->window_count; windows = wmalloc(sizeof(Window) * nwindows); i = 0; WM_ETARETI_BAG(scr->stacking_list, tmp, iter) { while (tmp) { windows[i++] = tmp->window; tmp = tmp->stacking->under; } } XRestackWindows(dpy, windows, i); wfree(windows); WMPostNotificationName(WMNResetStacking, scr, NULL); } /* *---------------------------------------------------------------------- * moveFrameToUnder-- * Reestacks windows so that "frame" is under "under". * * Returns: * None * * Side effects: * Changes the stacking order of frame. *---------------------------------------------------------------------- */ static void moveFrameToUnder(WCoreWindow * under, WCoreWindow * frame) { Window wins[2]; wins[0] = under->window; wins[1] = frame->window; XRestackWindows(dpy, wins, 2); } /* *---------------------------------------------------------------------- * CommitStackingForWindow-- * Reorders the stacking for the specified window, so that it has the * stacking order in the internal window stacking lists. * * Side effects: * Windows may be restacked. *---------------------------------------------------------------------- */ void CommitStackingForWindow(WCoreWindow * frame) { int level = frame->stacking->window_level; WScreen *scr = frame->screen_ptr; if (frame->stacking->above == NULL) { WMBagIterator iter; WCoreWindow *above = WMBagLast(scr->stacking_list, &iter); int i, last = above->stacking->window_level; /* find the 1st level above us which has windows in it */ for (i = level + 1, above = NULL; i <= last; i++) { above = WMGetFromBag(scr->stacking_list, i); if (above != NULL) break; } if (above != frame && above != NULL) { while (above->stacking->under) above = above->stacking->under; moveFrameToUnder(above, frame); } else { /* no window above us */ XRaiseWindow(dpy, frame->window); } } else { moveFrameToUnder(frame->stacking->above, frame); } } /* *---------------------------------------------------------------------- * wRaiseFrame-- * Raises a frame taking the window level into account. * * Returns: * None * * Side effects: * Window stacking order and stacking list are changed. * *---------------------------------------------------------------------- */ void wRaiseFrame(WCoreWindow * frame) { WCoreWindow *wlist = frame; int level = frame->stacking->window_level; WScreen *scr = frame->screen_ptr; /* already on top */ if (frame->stacking->above == NULL) { return; } /* insert it on top of other windows on the same level */ if (frame->stacking->under) frame->stacking->under->stacking->above = frame->stacking->above; if (frame->stacking->above) frame->stacking->above->stacking->under = frame->stacking->under; frame->stacking->above = NULL; frame->stacking->under = WMGetFromBag(scr->stacking_list, level); if (frame->stacking->under) { frame->stacking->under->stacking->above = frame; } WMSetInBag(scr->stacking_list, level, frame); /* raise transients under us from bottom to top * so that the order is kept */ again: wlist = frame->stacking->under; while (wlist && wlist->stacking->under) wlist = wlist->stacking->under; while (wlist && wlist != frame) { if (wlist->stacking->child_of == frame) { wRaiseFrame(wlist); goto again; } wlist = wlist->stacking->above; } /* try to optimize things a little */ if (frame->stacking->above == NULL) { WMBagIterator iter; WCoreWindow *above = WMBagLast(scr->stacking_list, &iter); int i, last = above->stacking->window_level; /* find the 1st level above us which has windows in it */ for (i = level + 1, above = NULL; i <= last; i++) { above = WMGetFromBag(scr->stacking_list, i); if (above != NULL) break; } if (above != frame && above != NULL) { while (above->stacking->under) above = above->stacking->under; moveFrameToUnder(above, frame); } else { /* no window above us */ above = NULL; XRaiseWindow(dpy, frame->window); } } else { moveFrameToUnder(frame->stacking->above, frame); } notifyStackChange(frame, "raise"); } void wRaiseLowerFrame(WCoreWindow * frame) { if (!frame->stacking->above || (frame->stacking->window_level != frame->stacking->above->stacking->window_level)) { wLowerFrame(frame); } else { WCoreWindow *scan = frame->stacking->above; WWindow *frame_wwin = (WWindow *) frame->descriptor.parent; while (scan) { if (scan->descriptor.parent_type == WCLASS_WINDOW) { WWindow *scan_wwin = (WWindow *) scan->descriptor.parent; if (wWindowObscuresWindow(scan_wwin, frame_wwin) && scan_wwin->flags.mapped) { break; } } scan = scan->stacking->above; } if (scan) { wRaiseFrame(frame); } else { wLowerFrame(frame); } } } void wLowerFrame(WCoreWindow * frame) { WScreen *scr = frame->screen_ptr; WCoreWindow *wlist = frame; int level = frame->stacking->window_level; /* already in bottom */ if (wlist->stacking->under == NULL) { return; } /* cant lower transient below below its owner */ if (wlist->stacking->under == wlist->stacking->child_of) { return; } /* remove from the list */ if (WMGetFromBag(scr->stacking_list, level) == frame) { /* it was the top window */ WMSetInBag(scr->stacking_list, level, frame->stacking->under); frame->stacking->under->stacking->above = NULL; } else { if (frame->stacking->under) frame->stacking->under->stacking->above = frame->stacking->above; if (frame->stacking->above) frame->stacking->above->stacking->under = frame->stacking->under; } wlist = WMGetFromBag(scr->stacking_list, level); /* look for place to put this window */ if (wlist) { WCoreWindow *owner = frame->stacking->child_of; if (owner != wlist) { while (wlist->stacking->under) { /* if this is a transient, it should not be placed under * it's owner */ if (owner == wlist->stacking->under) break; wlist = wlist->stacking->under; } } } /* insert under the place found */ frame->stacking->above = wlist; if (wlist) { frame->stacking->under = wlist->stacking->under; if (wlist->stacking->under) wlist->stacking->under->stacking->above = frame; wlist->stacking->under = frame; } else { frame->stacking->under = NULL; } if (frame->stacking->above == NULL) { WMBagIterator iter; WCoreWindow *above = WMBagLast(scr->stacking_list, &iter); int i, last = above->stacking->window_level; /* find the 1st level above us which has windows in it */ for (i = level + 1, above = NULL; i <= last; i++) { above = WMGetFromBag(scr->stacking_list, i); if (above != NULL) break; } if (above != frame && above != NULL) { while (above->stacking->under) above = above->stacking->under; moveFrameToUnder(above, frame); } else { /* no window below us */ XLowerWindow(dpy, frame->window); } } else { moveFrameToUnder(frame->stacking->above, frame); } notifyStackChange(frame, "lower"); } /* *---------------------------------------------------------------------- * AddToStackList-- * Inserts the frame in the top of the stacking list. The * stacking precedence is obeyed. * * Returns: * None * * Side effects: * The frame is added to it's screen's window list. *---------------------------------------------------------------------- */ void AddToStackList(WCoreWindow * frame) { WCoreWindow *curtop, *wlist; int index = frame->stacking->window_level; WScreen *scr = frame->screen_ptr; WCoreWindow *trans = NULL; frame->screen_ptr->window_count++; XSaveContext(dpy, frame->window, wStackContext, (XPointer) frame); curtop = WMGetFromBag(scr->stacking_list, index); /* first window in this level */ if (curtop == NULL) { WMSetInBag(scr->stacking_list, index, frame); frame->stacking->above = NULL; frame->stacking->under = NULL; CommitStacking(scr); return; } /* check if this is a transient owner */ wlist = curtop; while (wlist) { if (wlist->stacking->child_of == frame) trans = wlist; wlist = wlist->stacking->under; } /* trans will hold the transient in the lowest position * in stacking list */ frame->stacking->above = trans; if (trans != NULL) { /* window is owner of a transient.. put it below * the lowest transient */ frame->stacking->under = trans->stacking->under; if (trans->stacking->under) { trans->stacking->under->stacking->above = frame; } trans->stacking->under = frame; } else { /* window is not owner of transients.. just put it in the * top of other windows */ frame->stacking->under = curtop; curtop->stacking->above = frame; WMSetInBag(scr->stacking_list, index, frame); } CommitStacking(scr); } /* *---------------------------------------------------------------------- * MoveInStackListAbove-- * Moves the frame above "next". * * Returns: * None * * Side effects: * Stacking order may be changed. * Window level for frame may be changed. *---------------------------------------------------------------------- */ void MoveInStackListAbove(WCoreWindow * next, WCoreWindow * frame) { WCoreWindow *tmpw; WScreen *scr = frame->screen_ptr; int index; if (!next || frame->stacking->under == next) return; if (frame->stacking->window_level != next->stacking->window_level) ChangeStackingLevel(frame, next->stacking->window_level); index = frame->stacking->window_level; tmpw = WMGetFromBag(scr->stacking_list, index); if (tmpw == frame) WMSetInBag(scr->stacking_list, index, frame->stacking->under); if (frame->stacking->under) frame->stacking->under->stacking->above = frame->stacking->above; if (frame->stacking->above) frame->stacking->above->stacking->under = frame->stacking->under; if (next->stacking->above) next->stacking->above->stacking->under = frame; frame->stacking->under = next; frame->stacking->above = next->stacking->above; next->stacking->above = frame; if (tmpw == next) WMSetInBag(scr->stacking_list, index, frame); /* try to optimize things a little */ if (frame->stacking->above == NULL) { WCoreWindow *above = NULL; WMBagIterator iter; for (above = WMBagIteratorAtIndex(scr->stacking_list, index + 1, &iter); above != NULL; above = WMBagNext(scr->stacking_list, &iter)) { /* can't optimize */ while (above->stacking->under) above = above->stacking->under; break; } if (above == NULL) { XRaiseWindow(dpy, frame->window); } else { moveFrameToUnder(above, frame); } } else { moveFrameToUnder(frame->stacking->above, frame); } WMPostNotificationName(WMNResetStacking, scr, NULL); } /* *---------------------------------------------------------------------- * MoveInStackListUnder-- * Moves the frame to under "prev". * * Returns: * None * * Side effects: * Stacking order may be changed. * Window level for frame may be changed. *---------------------------------------------------------------------- */ void MoveInStackListUnder(WCoreWindow * prev, WCoreWindow * frame) { WCoreWindow *tmpw; int index; WScreen *scr = frame->screen_ptr; if (!prev || frame->stacking->above == prev) return; if (frame->stacking->window_level != prev->stacking->window_level) ChangeStackingLevel(frame, prev->stacking->window_level); index = frame->stacking->window_level; tmpw = WMGetFromBag(scr->stacking_list, index); if (tmpw == frame) WMSetInBag(scr->stacking_list, index, frame->stacking->under); if (frame->stacking->under) frame->stacking->under->stacking->above = frame->stacking->above; if (frame->stacking->above) frame->stacking->above->stacking->under = frame->stacking->under; if (prev->stacking->under) prev->stacking->under->stacking->above = frame; frame->stacking->above = prev; frame->stacking->under = prev->stacking->under; prev->stacking->under = frame; moveFrameToUnder(prev, frame); WMPostNotificationName(WMNResetStacking, scr, NULL); } void RemoveFromStackList(WCoreWindow * frame) { int index = frame->stacking->window_level; if (XDeleteContext(dpy, frame->window, wStackContext) == XCNOENT) { wwarning("RemoveFromStackingList(): window not in list "); return; } /* remove from the window stack list */ if (frame->stacking->under) frame->stacking->under->stacking->above = frame->stacking->above; if (frame->stacking->above) frame->stacking->above->stacking->under = frame->stacking->under; else /* this was the first window on the list */ WMSetInBag(frame->screen_ptr->stacking_list, index, frame->stacking->under); frame->screen_ptr->window_count--; WMPostNotificationName(WMNResetStacking, frame->screen_ptr, NULL); } void ChangeStackingLevel(WCoreWindow * frame, int new_level) { int old_level; if (frame->stacking->window_level == new_level) return; old_level = frame->stacking->window_level; RemoveFromStackList(frame); frame->stacking->window_level = new_level; AddToStackList(frame); if (old_level > new_level) { wRaiseFrame(frame); } else { wLowerFrame(frame); } } WindowMaker-0.95.5/src/cycling.h0000644000175000017500000000176212214432632013357 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 2013 Window Maker Team * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMCYCLING_H #define WMCYCLING_H void StartWindozeCycle(WWindow *wwin, XEvent *event, Bool next, Bool class_only); #endif /* WMCYCLING_H */ WindowMaker-0.95.5/src/dialog.c0000644000175000017500000012324412214432632013161 00000000000000/* dialog.c - dialog windows for internal use * * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_MALLOC_H #include #endif #include #ifdef __FreeBSD__ #include #endif #ifndef PATH_MAX #define PATH_MAX DEFAULT_PATH_MAX #endif #include "WindowMaker.h" #include "GNUstep.h" #include "screen.h" #include "window.h" #include "dialog.h" #include "misc.h" #include "stacking.h" #include "framewin.h" #include "window.h" #include "actions.h" #include "xinerama.h" static WMPoint getCenter(WScreen * scr, int width, int height) { return wGetPointToCenterRectInHead(scr, wGetHeadForPointerLocation(scr), width, height); } int wMessageDialog(WScreen *scr, const char *title, const char *message, const char *defBtn, const char *altBtn, const char *othBtn) { WMAlertPanel *panel; Window parent; WWindow *wwin; int result; WMPoint center; panel = WMCreateAlertPanel(scr->wmscreen, NULL, title, message, defBtn, altBtn, othBtn); parent = XCreateSimpleWindow(dpy, scr->root_win, 0, 0, 400, 180, 0, 0, 0); XReparentWindow(dpy, WMWidgetXID(panel->win), parent, 0, 0); center = getCenter(scr, 400, 180); wwin = wManageInternalWindow(scr, parent, None, NULL, center.x, center.y, 400, 180); wwin->client_leader = WMWidgetXID(panel->win); WMMapWidget(panel->win); wWindowMap(wwin); WMRunModalLoop(WMWidgetScreen(panel->win), WMWidgetView(panel->win)); result = panel->result; WMUnmapWidget(panel->win); wUnmanageWindow(wwin, False, False); WMDestroyAlertPanel(panel); XDestroyWindow(dpy, parent); return result; } static void toggleSaveSession(WMWidget *w, void *data) { wPreferences.save_session_on_exit = WMGetButtonSelected((WMButton *) w); } int wExitDialog(WScreen *scr, const char *title, const char *message, const char *defBtn, const char *altBtn, const char *othBtn) { WMAlertPanel *panel; WMButton *saveSessionBtn; Window parent; WWindow *wwin; WMPoint center; int result; panel = WMCreateAlertPanel(scr->wmscreen, NULL, title, message, defBtn, altBtn, othBtn); /* add save session button */ saveSessionBtn = WMCreateSwitchButton(panel->hbox); WMSetButtonAction(saveSessionBtn, toggleSaveSession, NULL); WMAddBoxSubview(panel->hbox, WMWidgetView(saveSessionBtn), False, True, 200, 0, 0); WMSetButtonText(saveSessionBtn, _("Save workspace state")); WMSetButtonSelected(saveSessionBtn, wPreferences.save_session_on_exit); WMRealizeWidget(saveSessionBtn); WMMapWidget(saveSessionBtn); parent = XCreateSimpleWindow(dpy, scr->root_win, 0, 0, 400, 180, 0, 0, 0); XReparentWindow(dpy, WMWidgetXID(panel->win), parent, 0, 0); center = getCenter(scr, 400, 180); wwin = wManageInternalWindow(scr, parent, None, NULL, center.x, center.y, 400, 180); wwin->client_leader = WMWidgetXID(panel->win); WMMapWidget(panel->win); wWindowMap(wwin); WMRunModalLoop(WMWidgetScreen(panel->win), WMWidgetView(panel->win)); result = panel->result; WMUnmapWidget(panel->win); wUnmanageWindow(wwin, False, False); WMDestroyAlertPanel(panel); XDestroyWindow(dpy, parent); return result; } typedef struct _WMInputPanelWithHistory { WMInputPanel *panel; WMArray *history; int histpos; char *prefix; char *suffix; char *rest; WMArray *variants; int varpos; } WMInputPanelWithHistory; static char *HistoryFileName(const char *name) { char *filename = NULL; filename = wstrdup(wusergnusteppath()); filename = wstrappend(filename, "/.AppInfo/WindowMaker/History"); if (name && strlen(name)) { filename = wstrappend(filename, "."); filename = wstrappend(filename, name); } return filename; } static int strmatch(const void *str1, const void *str2) { return !strcmp((const char *)str1, (const char *)str2); } static WMArray *LoadHistory(const char *filename, int max) { WMPropList *plhistory; WMPropList *plitem; WMArray *history; int i, num; char *str; history = WMCreateArrayWithDestructor(1, wfree); WMAddToArray(history, wstrdup("")); plhistory = WMReadPropListFromFile(filename); if (plhistory) { if (WMIsPLArray(plhistory)) { num = WMGetPropListItemCount(plhistory); for (i = 0; i < num; ++i) { plitem = WMGetFromPLArray(plhistory, i); if (WMIsPLString(plitem)) { str = WMGetFromPLString(plitem); if (WMFindInArray(history, strmatch, str) == WANotFound) { /* * The string here is duplicated because it will be freed * automatically when the array is deleted. This is not really * great because it is already an allocated string, * unfortunately we cannot re-use it because it will be freed * when we discard the PL (and we don't want to waste the PL's * memory either) */ WMAddToArray(history, wstrdup(str)); if (--max <= 0) break; } } } } WMReleasePropList(plhistory); } return history; } static void SaveHistory(WMArray * history, const char *filename) { int i; WMPropList *plhistory; plhistory = WMCreatePLArray(NULL); for (i = 0; i < WMGetArrayItemCount(history); ++i) WMAddToPLArray(plhistory, WMCreatePLString(WMGetFromArray(history, i))); WMWritePropListToFile(plhistory, filename); WMReleasePropList(plhistory); } static int pstrcmp(const char **str1, const char **str2) { return strcmp(*str1, *str2); } static void ScanFiles(const char *dir, const char *prefix, unsigned acceptmask, unsigned declinemask, WMArray * result) { int prefixlen; DIR *d; struct dirent *de; struct stat sb; char *fullfilename, *suffix; prefixlen = strlen(prefix); if ((d = opendir(dir)) != NULL) { while ((de = readdir(d)) != NULL) { if (strlen(de->d_name) > prefixlen && !strncmp(prefix, de->d_name, prefixlen) && strcmp(de->d_name, ".") != 0 && strcmp(de->d_name, "..")) { fullfilename = wstrconcat((char *)dir, "/"); fullfilename = wstrappend(fullfilename, de->d_name); if (stat(fullfilename, &sb) == 0 && (sb.st_mode & acceptmask) && !(sb.st_mode & declinemask) && WMFindInArray(result, (WMMatchDataProc *) strmatch, de->d_name + prefixlen) == WANotFound) { suffix = wstrdup(de->d_name + prefixlen); if (sb.st_mode & S_IFDIR) wstrappend(suffix,"/"); WMAddToArray(result, suffix); } wfree(fullfilename); } } closedir(d); } } static WMArray *GenerateVariants(const char *complete) { Bool firstWord = True; WMArray *variants = NULL; char *pos = NULL, *path = NULL, *tmp = NULL, *dir = NULL, *prefix = NULL; variants = WMCreateArrayWithDestructor(0, wfree); while (*complete == ' ') ++complete; if ((pos = strrchr(complete, ' ')) != NULL) { complete = pos + 1; firstWord = False; } if ((pos = strrchr(complete, '/')) != NULL) { tmp = wstrndup((char *)complete, pos - complete + 1); if (*tmp == '~' && *(tmp + 1) == '/' && getenv("HOME")) { dir = wstrdup(getenv("HOME")); dir = wstrappend(dir, tmp + 1); wfree(tmp); } else { dir = tmp; } prefix = wstrdup(pos + 1); ScanFiles(dir, prefix, (unsigned)-1, 0, variants); wfree(dir); wfree(prefix); } else if (*complete == '~') { WMAddToArray(variants, wstrdup("/")); } else if (firstWord) { path = getenv("PATH"); while (path) { pos = strchr(path, ':'); if (pos) { tmp = wstrndup(path, pos - path); path = pos + 1; } else if (*path != '\0') { tmp = wstrdup(path); path = NULL; } else break; ScanFiles(tmp, complete, S_IXOTH | S_IXGRP | S_IXUSR, S_IFDIR, variants); wfree(tmp); } } WMSortArray(variants, (WMCompareDataProc *) pstrcmp); return variants; } static void handleHistoryKeyPress(XEvent * event, void *clientData) { char *text; unsigned pos; WMInputPanelWithHistory *p = (WMInputPanelWithHistory *) clientData; KeySym ksym; ksym = XLookupKeysym(&event->xkey, 0); switch (ksym) { case XK_Up: if (p->histpos < WMGetArrayItemCount(p->history) - 1) { if (p->histpos == 0) wfree(WMReplaceInArray(p->history, 0, WMGetTextFieldText(p->panel->text))); p->histpos++; WMSetTextFieldText(p->panel->text, WMGetFromArray(p->history, p->histpos)); } break; case XK_Down: if (p->histpos > 0) { p->histpos--; WMSetTextFieldText(p->panel->text, WMGetFromArray(p->history, p->histpos)); } break; case XK_Tab: if (!p->variants) { text = WMGetTextFieldText(p->panel->text); pos = WMGetTextFieldCursorPosition(p->panel->text); p->prefix = wstrndup(text, pos); p->suffix = wstrdup(text + pos); wfree(text); p->variants = GenerateVariants(p->prefix); p->varpos = 0; if (!p->variants) { wfree(p->prefix); wfree(p->suffix); p->prefix = NULL; p->suffix = NULL; } } if (p->variants && p->prefix && p->suffix) { p->varpos++; if (p->varpos > WMGetArrayItemCount(p->variants)) p->varpos = 0; if (p->varpos > 0) text = wstrconcat(p->prefix, WMGetFromArray(p->variants, p->varpos - 1)); else text = wstrdup(p->prefix); pos = strlen(text); text = wstrappend(text, p->suffix); WMSetTextFieldText(p->panel->text, text); WMSetTextFieldCursorPosition(p->panel->text, pos); wfree(text); } break; } if (ksym != XK_Tab) { if (p->prefix) { wfree(p->prefix); p->prefix = NULL; } if (p->suffix) { wfree(p->suffix); p->suffix = NULL; } if (p->variants) { WMFreeArray(p->variants); p->variants = NULL; } } } int wAdvancedInputDialog(WScreen *scr, const char *title, const char *message, const char *name, char **text) { WWindow *wwin; Window parent; char *result; WMPoint center; WMInputPanelWithHistory *p; char *filename; filename = HistoryFileName(name); p = wmalloc(sizeof(WMInputPanelWithHistory)); p->panel = WMCreateInputPanel(scr->wmscreen, NULL, title, message, *text, _("OK"), _("Cancel")); p->history = LoadHistory(filename, wPreferences.history_lines); p->histpos = 0; p->prefix = NULL; p->suffix = NULL; p->rest = NULL; p->variants = NULL; p->varpos = 0; WMCreateEventHandler(WMWidgetView(p->panel->text), KeyPressMask, handleHistoryKeyPress, p); parent = XCreateSimpleWindow(dpy, scr->root_win, 0, 0, 320, 160, 0, 0, 0); XSelectInput(dpy, parent, KeyPressMask | KeyReleaseMask); XReparentWindow(dpy, WMWidgetXID(p->panel->win), parent, 0, 0); center = getCenter(scr, 320, 160); wwin = wManageInternalWindow(scr, parent, None, NULL, center.x, center.y, 320, 160); wwin->client_leader = WMWidgetXID(p->panel->win); WMMapWidget(p->panel->win); wWindowMap(wwin); WMRunModalLoop(WMWidgetScreen(p->panel->win), WMWidgetView(p->panel->win)); if (p->panel->result == WAPRDefault) { result = WMGetTextFieldText(p->panel->text); wfree(WMReplaceInArray(p->history, 0, wstrdup(result))); SaveHistory(p->history, filename); } else result = NULL; wUnmanageWindow(wwin, False, False); WMDestroyInputPanel(p->panel); WMFreeArray(p->history); wfree(p); wfree(filename); XDestroyWindow(dpy, parent); if (result == NULL) return False; else { if (*text) wfree(*text); *text = result; return True; } } int wInputDialog(WScreen *scr, const char *title, const char *message, char **text) { WWindow *wwin; Window parent; WMInputPanel *panel; char *result; WMPoint center; panel = WMCreateInputPanel(scr->wmscreen, NULL, title, message, *text, _("OK"), _("Cancel")); parent = XCreateSimpleWindow(dpy, scr->root_win, 0, 0, 320, 160, 0, 0, 0); XSelectInput(dpy, parent, KeyPressMask | KeyReleaseMask); XReparentWindow(dpy, WMWidgetXID(panel->win), parent, 0, 0); center = getCenter(scr, 320, 160); wwin = wManageInternalWindow(scr, parent, None, NULL, center.x, center.y, 320, 160); wwin->client_leader = WMWidgetXID(panel->win); WMMapWidget(panel->win); wWindowMap(wwin); WMRunModalLoop(WMWidgetScreen(panel->win), WMWidgetView(panel->win)); if (panel->result == WAPRDefault) result = WMGetTextFieldText(panel->text); else result = NULL; wUnmanageWindow(wwin, False, False); WMDestroyInputPanel(panel); XDestroyWindow(dpy, parent); if (result == NULL) return False; else { if (*text) wfree(*text); *text = result; return True; } } /* ***************************************************************** * Icon Selection Panel ***************************************************************** */ typedef struct IconPanel { WScreen *scr; WMWindow *win; WMLabel *dirLabel; WMLabel *iconLabel; WMList *dirList; WMList *iconList; WMFont *normalfont; WMButton *previewButton; WMLabel *iconView; WMLabel *fileLabel; WMTextField *fileField; WMButton *okButton; WMButton *cancelButton; #if 0 WMButton *chooseButton; #endif short done; short result; short preview; } IconPanel; static void listPixmaps(WScreen *scr, WMList *lPtr, const char *path) { struct dirent *dentry; DIR *dir; char pbuf[PATH_MAX + 16]; char *apath; IconPanel *panel = WMGetHangedData(lPtr); panel->preview = False; apath = wexpandpath(path); dir = opendir(apath); if (!dir) { char *msg; char *tmp; tmp = _("Could not open directory "); msg = wmalloc(strlen(tmp) + strlen(path) + 6); strcpy(msg, tmp); strcat(msg, path); wMessageDialog(scr, _("Error"), msg, _("OK"), NULL, NULL); wfree(msg); wfree(apath); return; } /* list contents in the column */ while ((dentry = readdir(dir))) { struct stat statb; if (strcmp(dentry->d_name, ".") == 0 || strcmp(dentry->d_name, "..") == 0) continue; strcpy(pbuf, apath); strcat(pbuf, "/"); strcat(pbuf, dentry->d_name); if (stat(pbuf, &statb) < 0) continue; if (statb.st_mode & (S_IRUSR | S_IRGRP | S_IROTH) && statb.st_mode & (S_IFREG | S_IFLNK)) { WMAddListItem(lPtr, dentry->d_name); } } WMSortListItems(lPtr); closedir(dir); wfree(apath); panel->preview = True; } static void setViewedImage(IconPanel *panel, const char *file) { WMPixmap *pixmap; RColor color; color.red = 0xae; color.green = 0xaa; color.blue = 0xae; color.alpha = 0; pixmap = WMCreateBlendedPixmapFromFile(WMWidgetScreen(panel->win), file, &color); if (!pixmap) { WMSetButtonEnabled(panel->okButton, False); WMSetLabelText(panel->iconView, _("Could not load image file ")); WMSetLabelImage(panel->iconView, NULL); } else { WMSetButtonEnabled(panel->okButton, True); WMSetLabelText(panel->iconView, NULL); WMSetLabelImage(panel->iconView, pixmap); WMReleasePixmap(pixmap); } } static void listCallback(void *self, void *data) { WMList *lPtr = (WMList *) self; IconPanel *panel = (IconPanel *) data; char *path; if (lPtr == panel->dirList) { WMListItem *item = WMGetListSelectedItem(lPtr); if (item == NULL) return; path = item->text; WMSetTextFieldText(panel->fileField, path); WMSetLabelImage(panel->iconView, NULL); WMSetButtonEnabled(panel->okButton, False); WMClearList(panel->iconList); listPixmaps(panel->scr, panel->iconList, path); } else { char *tmp, *iconFile; WMListItem *item = WMGetListSelectedItem(panel->dirList); if (item == NULL) return; path = item->text; tmp = wexpandpath(path); item = WMGetListSelectedItem(panel->iconList); if (item == NULL) return; iconFile = item->text; path = wmalloc(strlen(tmp) + strlen(iconFile) + 4); strcpy(path, tmp); strcat(path, "/"); strcat(path, iconFile); wfree(tmp); WMSetTextFieldText(panel->fileField, path); setViewedImage(panel, path); wfree(path); } } static void listIconPaths(WMList * lPtr) { char *paths; char *path; paths = wstrdup(wPreferences.icon_path); path = strtok(paths, ":"); do { char *tmp; tmp = wexpandpath(path); /* do not sort, because the order implies the order of * directories searched */ if (access(tmp, X_OK) == 0) WMAddListItem(lPtr, path); wfree(tmp); } while ((path = strtok(NULL, ":")) != NULL); wfree(paths); } static void drawIconProc(WMList * lPtr, int index, Drawable d, char *text, int state, WMRect * rect) { IconPanel *panel = WMGetHangedData(lPtr); WScreen *scr = panel->scr; GC gc = scr->draw_gc; GC copygc = scr->copy_gc; char *file, *dirfile; WMPixmap *pixmap; WMColor *back; WMSize size; WMScreen *wmscr = WMWidgetScreen(panel->win); RColor color; int x, y, width, height, len; if (!panel->preview) return; x = rect->pos.x; y = rect->pos.y; width = rect->size.width; height = rect->size.height; back = (state & WLDSSelected) ? scr->white : scr->gray; dirfile = wexpandpath(WMGetListSelectedItem(panel->dirList)->text); len = strlen(dirfile) + strlen(text) + 4; file = wmalloc(len); snprintf(file, len, "%s/%s", dirfile, text); wfree(dirfile); color.red = WMRedComponentOfColor(back) >> 8; color.green = WMGreenComponentOfColor(back) >> 8; color.blue = WMBlueComponentOfColor(back) >> 8; color.alpha = WMGetColorAlpha(back) >> 8; pixmap = WMCreateBlendedPixmapFromFile(wmscr, file, &color); wfree(file); if (!pixmap) { /*WMRemoveListItem(lPtr, index); */ return; } XFillRectangle(dpy, d, WMColorGC(back), x, y, width, height); XSetClipMask(dpy, gc, None); /*XDrawRectangle(dpy, d, WMColorGC(white), x+5, y+5, width-10, 54); */ XDrawLine(dpy, d, WMColorGC(scr->white), x, y + height - 1, x + width, y + height - 1); size = WMGetPixmapSize(pixmap); XSetClipMask(dpy, copygc, WMGetPixmapMaskXID(pixmap)); XSetClipOrigin(dpy, copygc, x + (width - size.width) / 2, y + 2); XCopyArea(dpy, WMGetPixmapXID(pixmap), d, copygc, 0, 0, size.width > 100 ? 100 : size.width, size.height > 64 ? 64 : size.height, x + (width - size.width) / 2, y + 2); { int i, j; int fheight = WMFontHeight(panel->normalfont); int tlen = strlen(text); int twidth = WMWidthOfString(panel->normalfont, text, tlen); int ofx, ofy; ofx = x + (width - twidth) / 2; ofy = y + 64 - fheight; for (i = -1; i < 2; i++) for (j = -1; j < 2; j++) WMDrawString(wmscr, d, scr->white, panel->normalfont, ofx + i, ofy + j, text, tlen); WMDrawString(wmscr, d, scr->black, panel->normalfont, ofx, ofy, text, tlen); } WMReleasePixmap(pixmap); /* I hope it is better to do not use cache / on my box it is fast nuff */ XFlush(dpy); } static void buttonCallback(void *self, void *clientData) { WMButton *bPtr = (WMButton *) self; IconPanel *panel = (IconPanel *) clientData; if (bPtr == panel->okButton) { panel->done = True; panel->result = True; } else if (bPtr == panel->cancelButton) { panel->done = True; panel->result = False; } else if (bPtr == panel->previewButton) { /**** Previewer ****/ WMSetButtonEnabled(bPtr, False); WMSetListUserDrawItemHeight(panel->iconList, 68); WMSetListUserDrawProc(panel->iconList, drawIconProc); WMRedisplayWidget(panel->iconList); /* for draw proc to access screen/gc */ /*** end preview ***/ } #if 0 else if (bPtr == panel->chooseButton) { WMOpenPanel *op; op = WMCreateOpenPanel(WMWidgetScreen(bPtr)); if (WMRunModalFilePanelForDirectory(op, NULL, "/usr/local", NULL, NULL)) { char *path; path = WMGetFilePanelFile(op); WMSetTextFieldText(panel->fileField, path); setViewedImage(panel, path); wfree(path); } WMDestroyFilePanel(op); } #endif } static void keyPressHandler(XEvent * event, void *data) { IconPanel *panel = (IconPanel *) data; char buffer[32]; KeySym ksym; int iidx; int didx; int item = 0; WMList *list = NULL; if (event->type == KeyRelease) return; buffer[0] = 0; XLookupString(&event->xkey, buffer, sizeof(buffer), &ksym, NULL); iidx = WMGetListSelectedItemRow(panel->iconList); didx = WMGetListSelectedItemRow(panel->dirList); switch (ksym) { case XK_Up: if (iidx > 0) item = iidx - 1; else item = iidx; list = panel->iconList; break; case XK_Down: if (iidx < WMGetListNumberOfRows(panel->iconList) - 1) item = iidx + 1; else item = iidx; list = panel->iconList; break; case XK_Home: item = 0; list = panel->iconList; break; case XK_End: item = WMGetListNumberOfRows(panel->iconList) - 1; list = panel->iconList; break; case XK_Next: if (didx < WMGetListNumberOfRows(panel->dirList) - 1) item = didx + 1; else item = didx; list = panel->dirList; break; case XK_Prior: if (didx > 0) item = didx - 1; else item = 0; list = panel->dirList; break; case XK_Return: WMPerformButtonClick(panel->okButton); break; case XK_Escape: WMPerformButtonClick(panel->cancelButton); break; } if (list) { WMSelectListItem(list, item); WMSetListPosition(list, item - 5); listCallback(list, panel); } } Bool wIconChooserDialog(WScreen *scr, char **file, const char *instance, const char *class) { WWindow *wwin; Window parent; IconPanel *panel; WMColor *color; WMFont *boldFont; Bool result; panel = wmalloc(sizeof(IconPanel)); panel->scr = scr; panel->win = WMCreateWindow(scr->wmscreen, "iconChooser"); WMResizeWidget(panel->win, 450, 280); WMCreateEventHandler(WMWidgetView(panel->win), KeyPressMask | KeyReleaseMask, keyPressHandler, panel); boldFont = WMBoldSystemFontOfSize(scr->wmscreen, 12); panel->normalfont = WMSystemFontOfSize(WMWidgetScreen(panel->win), 12); panel->dirLabel = WMCreateLabel(panel->win); WMResizeWidget(panel->dirLabel, 200, 20); WMMoveWidget(panel->dirLabel, 10, 7); WMSetLabelText(panel->dirLabel, _("Directories")); WMSetLabelFont(panel->dirLabel, boldFont); WMSetLabelTextAlignment(panel->dirLabel, WACenter); WMSetLabelRelief(panel->dirLabel, WRSunken); panel->iconLabel = WMCreateLabel(panel->win); WMResizeWidget(panel->iconLabel, 140, 20); WMMoveWidget(panel->iconLabel, 215, 7); WMSetLabelText(panel->iconLabel, _("Icons")); WMSetLabelFont(panel->iconLabel, boldFont); WMSetLabelTextAlignment(panel->iconLabel, WACenter); WMReleaseFont(boldFont); color = WMWhiteColor(scr->wmscreen); WMSetLabelTextColor(panel->dirLabel, color); WMSetLabelTextColor(panel->iconLabel, color); WMReleaseColor(color); color = WMDarkGrayColor(scr->wmscreen); WMSetWidgetBackgroundColor(panel->iconLabel, color); WMSetWidgetBackgroundColor(panel->dirLabel, color); WMReleaseColor(color); WMSetLabelRelief(panel->iconLabel, WRSunken); panel->dirList = WMCreateList(panel->win); WMResizeWidget(panel->dirList, 200, 170); WMMoveWidget(panel->dirList, 10, 30); WMSetListAction(panel->dirList, listCallback, panel); panel->iconList = WMCreateList(panel->win); WMResizeWidget(panel->iconList, 140, 170); WMMoveWidget(panel->iconList, 215, 30); WMSetListAction(panel->iconList, listCallback, panel); WMHangData(panel->iconList, panel); panel->previewButton = WMCreateCommandButton(panel->win); WMResizeWidget(panel->previewButton, 75, 26); WMMoveWidget(panel->previewButton, 365, 130); WMSetButtonText(panel->previewButton, _("Preview")); WMSetButtonAction(panel->previewButton, buttonCallback, panel); panel->iconView = WMCreateLabel(panel->win); WMResizeWidget(panel->iconView, 75, 75); WMMoveWidget(panel->iconView, 365, 40); WMSetLabelImagePosition(panel->iconView, WIPOverlaps); WMSetLabelRelief(panel->iconView, WRSunken); WMSetLabelTextAlignment(panel->iconView, WACenter); panel->fileLabel = WMCreateLabel(panel->win); WMResizeWidget(panel->fileLabel, 80, 20); WMMoveWidget(panel->fileLabel, 10, 210); WMSetLabelText(panel->fileLabel, _("File Name:")); panel->fileField = WMCreateTextField(panel->win); WMSetViewNextResponder(WMWidgetView(panel->fileField), WMWidgetView(panel->win)); WMResizeWidget(panel->fileField, 345, 20); WMMoveWidget(panel->fileField, 95, 210); WMSetTextFieldEditable(panel->fileField, False); panel->okButton = WMCreateCommandButton(panel->win); WMResizeWidget(panel->okButton, 80, 26); WMMoveWidget(panel->okButton, 360, 240); WMSetButtonText(panel->okButton, _("OK")); WMSetButtonEnabled(panel->okButton, False); WMSetButtonAction(panel->okButton, buttonCallback, panel); panel->cancelButton = WMCreateCommandButton(panel->win); WMResizeWidget(panel->cancelButton, 80, 26); WMMoveWidget(panel->cancelButton, 270, 240); WMSetButtonText(panel->cancelButton, _("Cancel")); WMSetButtonAction(panel->cancelButton, buttonCallback, panel); #if 0 panel->chooseButton = WMCreateCommandButton(panel->win); WMResizeWidget(panel->chooseButton, 110, 26); WMMoveWidget(panel->chooseButton, 150, 240); WMSetButtonText(panel->chooseButton, _("Choose File")); WMSetButtonAction(panel->chooseButton, buttonCallback, panel); #endif WMRealizeWidget(panel->win); WMMapSubwidgets(panel->win); parent = XCreateSimpleWindow(dpy, scr->root_win, 0, 0, 450, 280, 0, 0, 0); XReparentWindow(dpy, WMWidgetXID(panel->win), parent, 0, 0); { char *tmp; int len = (instance ? strlen(instance) : 0) + (class ? strlen(class) : 0) + 32; WMPoint center; tmp = wmalloc(len); if (tmp && (instance || class)) snprintf(tmp, len, "%s [%s.%s]", _("Icon Chooser"), instance, class); else strcpy(tmp, _("Icon Chooser")); center = getCenter(scr, 450, 280); wwin = wManageInternalWindow(scr, parent, None, tmp, center.x, center.y, 450, 280); wfree(tmp); } /* put icon paths in the list */ listIconPaths(panel->dirList); WMMapWidget(panel->win); wWindowMap(wwin); while (!panel->done) { XEvent event; WMNextEvent(dpy, &event); WMHandleEvent(&event); } if (panel->result) { char *defaultPath, *wantedPath; /* check if the file the user selected is not the one that * would be loaded by default with the current search path */ *file = WMGetListSelectedItem(panel->iconList)->text; if (**file == 0) { wfree(*file); *file = NULL; } else { defaultPath = FindImage(wPreferences.icon_path, *file); wantedPath = WMGetTextFieldText(panel->fileField); /* if the file is not the default, use full path */ if (strcmp(wantedPath, defaultPath) != 0) { *file = wantedPath; } else { *file = wstrdup(*file); wfree(wantedPath); } wfree(defaultPath); } } else { *file = NULL; } result = panel->result; WMReleaseFont(panel->normalfont); WMUnmapWidget(panel->win); WMDestroyWidget(panel->win); wUnmanageWindow(wwin, False, False); wfree(panel); XDestroyWindow(dpy, parent); return result; } /* *********************************************************************** * Info Panel *********************************************************************** */ typedef struct { WScreen *scr; WWindow *wwin; WMWindow *win; WMLabel *logoL; WMLabel *name1L; WMFrame *lineF; WMLabel *name2L; WMLabel *versionL; WMLabel *infoL; WMLabel *copyrL; } InfoPanel; #define COPYRIGHT_TEXT \ "Copyright \xc2\xa9 1997-2006 Alfredo K. Kojima\n"\ "Copyright \xc2\xa9 1998-2006 Dan Pascu" static InfoPanel *thePanel = NULL; static void destroyInfoPanel(WCoreWindow *foo, void *data, XEvent *event) { WMUnmapWidget(thePanel); wUnmanageWindow(thePanel->wwin, False, False); WMDestroyWidget(thePanel->win); wfree(thePanel); thePanel = NULL; } void wShowInfoPanel(WScreen * scr) { InfoPanel *panel; WMPixmap *logo; WMFont *font; char *strbuf = NULL; const char *separator; char buffer[256]; const char *name; Window parent; WWindow *wwin; char **strl; int i, width = 50, sepHeight; char *visuals[] = { "StaticGray", "GrayScale", "StaticColor", "PseudoColor", "TrueColor", "DirectColor" }; if (thePanel) { if (thePanel->scr == scr) { wRaiseFrame(thePanel->wwin->frame->core); wSetFocusTo(scr, thePanel->wwin); } return; } panel = wmalloc(sizeof(InfoPanel)); panel->scr = scr; panel->win = WMCreateWindow(scr->wmscreen, "info"); WMResizeWidget(panel->win, 390, 230); logo = WMCreateApplicationIconBlendedPixmap(scr->wmscreen, (RColor *) NULL); if (!logo) { logo = WMRetainPixmap(WMGetApplicationIconPixmap(scr->wmscreen)); } if (logo) { panel->logoL = WMCreateLabel(panel->win); WMResizeWidget(panel->logoL, 64, 64); WMMoveWidget(panel->logoL, 30, 20); WMSetLabelImagePosition(panel->logoL, WIPImageOnly); WMSetLabelImage(panel->logoL, logo); WMReleasePixmap(logo); } sepHeight = 3; panel->name1L = WMCreateLabel(panel->win); WMResizeWidget(panel->name1L, 240, 30 + 2); WMMoveWidget(panel->name1L, 100, 30 - 2 - sepHeight); name = "Lucida Sans,Comic Sans MS,URW Gothic L,Trebuchet MS" ":italic:pixelsize=28:antialias=true"; font = WMCreateFont(scr->wmscreen, name); strbuf = "Window Maker"; if (font) { width = WMWidthOfString(font, strbuf, strlen(strbuf)); WMSetLabelFont(panel->name1L, font); WMReleaseFont(font); } WMSetLabelTextAlignment(panel->name1L, WACenter); WMSetLabelText(panel->name1L, strbuf); panel->lineF = WMCreateFrame(panel->win); WMResizeWidget(panel->lineF, width, sepHeight); WMMoveWidget(panel->lineF, 100 + (240 - width) / 2, 60 - sepHeight); WMSetFrameRelief(panel->lineF, WRSimple); WMSetWidgetBackgroundColor(panel->lineF, scr->black); panel->name2L = WMCreateLabel(panel->win); WMResizeWidget(panel->name2L, 240, 24); WMMoveWidget(panel->name2L, 100, 60); name = "URW Gothic L,Nimbus Sans L:pixelsize=16:antialias=true"; font = WMCreateFont(scr->wmscreen, name); if (font) { WMSetLabelFont(panel->name2L, font); WMReleaseFont(font); font = NULL; } WMSetLabelTextAlignment(panel->name2L, WACenter); WMSetLabelText(panel->name2L, _("Window Manager for X")); snprintf(buffer, sizeof(buffer), _("Version %s"), VERSION); panel->versionL = WMCreateLabel(panel->win); WMResizeWidget(panel->versionL, 310, 16); WMMoveWidget(panel->versionL, 30, 95); WMSetLabelTextAlignment(panel->versionL, WARight); WMSetLabelText(panel->versionL, buffer); WMSetLabelWraps(panel->versionL, False); panel->copyrL = WMCreateLabel(panel->win); WMResizeWidget(panel->copyrL, 360, 40); WMMoveWidget(panel->copyrL, 15, 185); WMSetLabelTextAlignment(panel->copyrL, WALeft); WMSetLabelText(panel->copyrL, COPYRIGHT_TEXT); font = WMSystemFontOfSize(scr->wmscreen, 11); if (font) { WMSetLabelFont(panel->copyrL, font); WMReleaseFont(font); font = NULL; } strbuf = NULL; snprintf(buffer, sizeof(buffer), _("Using visual 0x%x: %s %ibpp "), (unsigned)scr->w_visual->visualid, visuals[scr->w_visual->class], scr->w_depth); strbuf = wstrappend(strbuf, buffer); switch (scr->w_depth) { case 15: strbuf = wstrappend(strbuf, _("(32 thousand colors)\n")); break; case 16: strbuf = wstrappend(strbuf, _("(64 thousand colors)\n")); break; case 24: case 32: strbuf = wstrappend(strbuf, _("(16 million colors)\n")); break; default: snprintf(buffer, sizeof(buffer), _("(%d colors)\n"), 1 << scr->w_depth); strbuf = wstrappend(strbuf, buffer); break; } #if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO) { struct mallinfo ma = mallinfo(); snprintf(buffer, sizeof(buffer), #ifdef DEBUG _("Total memory allocated: %i kB (in use: %i kB, %d free chunks).\n"), #else _("Total memory allocated: %i kB (in use: %i kB).\n"), #endif (ma.arena + ma.hblkhd) / 1024, (ma.uordblks + ma.hblkhd) / 1024 #ifdef DEBUG /* * This information is representative of the memory * fragmentation. In ideal case it should be 1, but * that is never possible */ , ma.ordblks #endif ); strbuf = wstrappend(strbuf, buffer); } #endif strbuf = wstrappend(strbuf, _("Supported image formats: ")); strl = RSupportedFileFormats(); separator = NULL; for (i = 0; strl[i] != NULL; i++) { if (separator != NULL) strbuf = wstrappend(strbuf, separator); strbuf = wstrappend(strbuf, strl[i]); separator = ", "; } strbuf = wstrappend(strbuf, _("\nAdditional support for: ")); strbuf = wstrappend(strbuf, "WMSPEC"); #ifdef HAVE_XRANDR strbuf = wstrappend(strbuf, ", XRandR "); if (has_randr) strbuf = wstrappend(strbuf, _("(Supported)")); else strbuf = wstrappend(strbuf, _("(Unsupported)")); #endif #ifdef MWM_HINTS strbuf = wstrappend(strbuf, ", MWM"); #endif #ifdef XINERAMA strbuf = wstrappend(strbuf, _("\n")); #ifdef SOLARIS_XINERAMA strbuf = wstrappend(strbuf, _("Solaris ")); #endif strbuf = wstrappend(strbuf, _("Xinerama: ")); { char tmp[128]; snprintf(tmp, sizeof(tmp) - 1, _("%d heads found."), scr->xine_info.count); strbuf = wstrappend(strbuf, tmp); } #endif panel->infoL = WMCreateLabel(panel->win); WMResizeWidget(panel->infoL, 350, 75); WMMoveWidget(panel->infoL, 15, 115); WMSetLabelText(panel->infoL, strbuf); font = WMSystemFontOfSize(scr->wmscreen, 11); if (font) { WMSetLabelFont(panel->infoL, font); WMReleaseFont(font); font = NULL; } wfree(strbuf); WMRealizeWidget(panel->win); WMMapSubwidgets(panel->win); parent = XCreateSimpleWindow(dpy, scr->root_win, 0, 0, 382, 230, 0, 0, 0); XReparentWindow(dpy, WMWidgetXID(panel->win), parent, 0, 0); WMMapWidget(panel->win); { WMPoint center = getCenter(scr, 382, 230); wwin = wManageInternalWindow(scr, parent, None, _("Info"), center.x, center.y, 382, 230); } WSETUFLAG(wwin, no_closable, 0); WSETUFLAG(wwin, no_close_button, 0); #ifdef XKB_BUTTON_HINT wFrameWindowHideButton(wwin->frame, WFF_LANGUAGE_BUTTON); #endif wWindowUpdateButtonImages(wwin); wFrameWindowShowButton(wwin->frame, WFF_RIGHT_BUTTON); wwin->frame->on_click_right = destroyInfoPanel; wWindowMap(wwin); panel->wwin = wwin; thePanel = panel; } /* *********************************************************************** * Legal Panel *********************************************************************** */ typedef struct { WScreen *scr; WWindow *wwin; WMWindow *win; WMLabel *licenseL; } LegalPanel; static LegalPanel *legalPanel = NULL; static void destroyLegalPanel(WCoreWindow * foo, void *data, XEvent * event) { WMUnmapWidget(legalPanel->win); WMDestroyWidget(legalPanel->win); wUnmanageWindow(legalPanel->wwin, False, False); wfree(legalPanel); legalPanel = NULL; } void wShowLegalPanel(WScreen * scr) { LegalPanel *panel; Window parent; WWindow *wwin; if (legalPanel) { if (legalPanel->scr == scr) { wRaiseFrame(legalPanel->wwin->frame->core); wSetFocusTo(scr, legalPanel->wwin); } return; } panel = wmalloc(sizeof(LegalPanel)); panel->scr = scr; panel->win = WMCreateWindow(scr->wmscreen, "legal"); WMResizeWidget(panel->win, 420, 250); panel->licenseL = WMCreateLabel(panel->win); WMSetLabelWraps(panel->licenseL, True); WMResizeWidget(panel->licenseL, 400, 230); WMMoveWidget(panel->licenseL, 10, 10); WMSetLabelTextAlignment(panel->licenseL, WALeft); WMSetLabelText(panel->licenseL, _(" Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" "02110-1301 USA.")); WMSetLabelRelief(panel->licenseL, WRGroove); WMRealizeWidget(panel->win); WMMapSubwidgets(panel->win); parent = XCreateSimpleWindow(dpy, scr->root_win, 0, 0, 420, 250, 0, 0, 0); XReparentWindow(dpy, WMWidgetXID(panel->win), parent, 0, 0); { WMPoint center = getCenter(scr, 420, 250); wwin = wManageInternalWindow(scr, parent, None, _("Legal"), center.x, center.y, 420, 250); } WSETUFLAG(wwin, no_closable, 0); WSETUFLAG(wwin, no_close_button, 0); wWindowUpdateButtonImages(wwin); wFrameWindowShowButton(wwin->frame, WFF_RIGHT_BUTTON); #ifdef XKB_BUTTON_HINT wFrameWindowHideButton(wwin->frame, WFF_LANGUAGE_BUTTON); #endif wwin->frame->on_click_right = destroyLegalPanel; panel->wwin = wwin; WMMapWidget(panel->win); wWindowMap(wwin); legalPanel = panel; } /* *********************************************************************** * Crashing Dialog Panel *********************************************************************** */ extern WDDomain *WDWindowAttributes; typedef struct _CrashPanel { WMWindow *win; /* main window */ WMLabel *iconL; /* application icon */ WMLabel *nameL; /* title of panel */ WMFrame *sepF; /* separator frame */ WMLabel *noteL; /* Title of note */ WMLabel *note2L; /* body of note with what happened */ WMFrame *whatF; /* "what to do next" frame */ WMPopUpButton *whatP; /* action selection popup button */ WMButton *okB; /* ok button */ Bool done; /* if finished with this dialog */ int action; /* what to do after */ KeyCode retKey; } CrashPanel; static void handleKeyPress(XEvent * event, void *clientData) { CrashPanel *panel = (CrashPanel *) clientData; if (event->xkey.keycode == panel->retKey) { WMPerformButtonClick(panel->okB); } } static void okButtonCallback(void *self, void *clientData) { CrashPanel *panel = (CrashPanel *) clientData; panel->done = True; } static void setCrashAction(void *self, void *clientData) { WMPopUpButton *pop = (WMPopUpButton *) self; CrashPanel *panel = (CrashPanel *) clientData; panel->action = WMGetPopUpButtonSelectedItem(pop); } /* Make this read the logo from a compiled in pixmap -Dan */ static WMPixmap *getWindowMakerIconImage(WMScreen *scr) { WMPixmap *pix = NULL; char *path = NULL; /* Get the Logo icon, without the default icon */ path = get_icon_filename(NULL, "Logo", "WMPanel", NULL, False); if (path) { RColor gray; gray.red = 0xae; gray.green = 0xaa; gray.blue = 0xae; gray.alpha = 0; pix = WMCreateBlendedPixmapFromFile(scr, path, &gray); wfree(path); } return pix; } #define PWIDTH 295 #define PHEIGHT 345 int wShowCrashingDialogPanel(int whatSig) { CrashPanel *panel; WMScreen *scr; WMFont *font; WMPixmap *logo; int screen_no, scr_width, scr_height; int action; char buf[256]; panel = wmalloc(sizeof(CrashPanel)); screen_no = DefaultScreen(dpy); scr_width = WidthOfScreen(ScreenOfDisplay(dpy, screen_no)); scr_height = HeightOfScreen(ScreenOfDisplay(dpy, screen_no)); scr = WMCreateScreen(dpy, screen_no); if (!scr) { werror(_("cannot open connection for crashing dialog panel. Aborting.")); return WMAbort; } panel->retKey = XKeysymToKeycode(dpy, XK_Return); panel->win = WMCreateWindow(scr, "crashingDialog"); WMResizeWidget(panel->win, PWIDTH, PHEIGHT); WMMoveWidget(panel->win, (scr_width - PWIDTH) / 2, (scr_height - PHEIGHT) / 2); logo = getWindowMakerIconImage(scr); if (logo) { panel->iconL = WMCreateLabel(panel->win); WMResizeWidget(panel->iconL, 64, 64); WMMoveWidget(panel->iconL, 10, 10); WMSetLabelImagePosition(panel->iconL, WIPImageOnly); WMSetLabelImage(panel->iconL, logo); } panel->nameL = WMCreateLabel(panel->win); WMResizeWidget(panel->nameL, 200, 30); WMMoveWidget(panel->nameL, 80, 25); WMSetLabelTextAlignment(panel->nameL, WALeft); font = WMBoldSystemFontOfSize(scr, 24); WMSetLabelFont(panel->nameL, font); WMReleaseFont(font); WMSetLabelText(panel->nameL, _("Fatal error")); panel->sepF = WMCreateFrame(panel->win); WMResizeWidget(panel->sepF, PWIDTH + 4, 2); WMMoveWidget(panel->sepF, -2, 80); panel->noteL = WMCreateLabel(panel->win); WMResizeWidget(panel->noteL, PWIDTH - 20, 40); WMMoveWidget(panel->noteL, 10, 90); WMSetLabelTextAlignment(panel->noteL, WAJustified); snprintf(buf, sizeof(buf), _("Window Maker received signal %i."), whatSig); WMSetLabelText(panel->noteL, buf); panel->note2L = WMCreateLabel(panel->win); WMResizeWidget(panel->note2L, PWIDTH - 20, 100); WMMoveWidget(panel->note2L, 10, 130); WMSetLabelTextAlignment(panel->note2L, WALeft); WMSetLabelText(panel->note2L, _(" This fatal error occured probably due to a bug." " Please fill the included BUGFORM and " "report it to bugs@windowmaker.info.")); WMSetLabelWraps(panel->note2L, True); panel->whatF = WMCreateFrame(panel->win); WMResizeWidget(panel->whatF, PWIDTH - 20, 50); WMMoveWidget(panel->whatF, 10, 240); WMSetFrameTitle(panel->whatF, _("What do you want to do now?")); panel->whatP = WMCreatePopUpButton(panel->whatF); WMResizeWidget(panel->whatP, PWIDTH - 20 - 70, 20); WMMoveWidget(panel->whatP, 35, 20); WMSetPopUpButtonPullsDown(panel->whatP, False); WMSetPopUpButtonText(panel->whatP, _("Select action")); WMAddPopUpButtonItem(panel->whatP, _("Abort and leave a core file")); WMAddPopUpButtonItem(panel->whatP, _("Restart Window Maker")); WMAddPopUpButtonItem(panel->whatP, _("Start alternate window manager")); WMSetPopUpButtonAction(panel->whatP, setCrashAction, panel); WMSetPopUpButtonSelectedItem(panel->whatP, WMRestart); panel->action = WMRestart; WMMapSubwidgets(panel->whatF); panel->okB = WMCreateCommandButton(panel->win); WMResizeWidget(panel->okB, 80, 26); WMMoveWidget(panel->okB, 205, 309); WMSetButtonText(panel->okB, _("OK")); WMSetButtonImage(panel->okB, WMGetSystemPixmap(scr, WSIReturnArrow)); WMSetButtonAltImage(panel->okB, WMGetSystemPixmap(scr, WSIHighlightedReturnArrow)); WMSetButtonImagePosition(panel->okB, WIPRight); WMSetButtonAction(panel->okB, okButtonCallback, panel); panel->done = 0; WMCreateEventHandler(WMWidgetView(panel->win), KeyPressMask, handleKeyPress, panel); WMRealizeWidget(panel->win); WMMapSubwidgets(panel->win); WMMapWidget(panel->win); XSetInputFocus(dpy, WMWidgetXID(panel->win), RevertToParent, CurrentTime); while (!panel->done) { XEvent event; WMNextEvent(dpy, &event); WMHandleEvent(&event); } action = panel->action; WMUnmapWidget(panel->win); WMDestroyWidget(panel->win); wfree(panel); return action; } WindowMaker-0.95.5/src/Makefile.in0000644000175000017500000006275412214434561013636 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = wmaker$(EXEEXT) @WM_OSDEP_BSD_TRUE@am__append_1 = osdep_bsd.c @WM_OSDEP_DARWIN_TRUE@am__append_2 = osdep_darwin.c @WM_OSDEP_LINUX_TRUE@am__append_3 = osdep_linux.c @WM_OSDEP_GENERIC_TRUE@am__append_4 = osdep_stub.c subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/wconfig.h.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = wconfig.h CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am__wmaker_SOURCES_DIST = 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 \ colormap.h cycling.c cycling.h def_pixmaps.h defaults.c \ defaults.h dialog.c dialog.h dock.c dockedapp.c dockedapp.h \ dock.h event.c event.h extend_pixmaps.h framewin.c framewin.h \ geomview.c geomview.h osdep.h icon.c icon.h keybind.h main.c \ main.h menu.c menu.h misc.c misc.h monitor.c monitor.h motif.c \ motif.h moveres.c pixmap.c pixmap.h placement.c placement.h \ properties.c properties.h resources.c resources.h rootmenu.c \ rootmenu.h screen.c screen.h session.h session.c shutdown.h \ shutdown.c switchpanel.c switchpanel.h stacking.c stacking.h \ startup.c startup.h superfluous.c superfluous.h switchmenu.c \ switchmenu.h texture.c texture.h usermenu.c usermenu.h xdnd.h \ xdnd.c xinerama.h xinerama.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 winmenu.h winspector.h \ winspector.c wmspec.h wmspec.c workspace.c workspace.h \ osdep_bsd.c osdep_darwin.c osdep_linux.c osdep_stub.c @WM_OSDEP_BSD_TRUE@am__objects_1 = osdep_bsd.$(OBJEXT) @WM_OSDEP_DARWIN_TRUE@am__objects_2 = osdep_darwin.$(OBJEXT) @WM_OSDEP_LINUX_TRUE@am__objects_3 = osdep_linux.$(OBJEXT) @WM_OSDEP_GENERIC_TRUE@am__objects_4 = osdep_stub.$(OBJEXT) am_wmaker_OBJECTS = actions.$(OBJEXT) appicon.$(OBJEXT) \ application.$(OBJEXT) appmenu.$(OBJEXT) balloon.$(OBJEXT) \ client.$(OBJEXT) colormap.$(OBJEXT) cycling.$(OBJEXT) \ defaults.$(OBJEXT) dialog.$(OBJEXT) dock.$(OBJEXT) \ dockedapp.$(OBJEXT) event.$(OBJEXT) framewin.$(OBJEXT) \ geomview.$(OBJEXT) icon.$(OBJEXT) main.$(OBJEXT) \ menu.$(OBJEXT) misc.$(OBJEXT) monitor.$(OBJEXT) \ motif.$(OBJEXT) moveres.$(OBJEXT) pixmap.$(OBJEXT) \ placement.$(OBJEXT) properties.$(OBJEXT) resources.$(OBJEXT) \ rootmenu.$(OBJEXT) screen.$(OBJEXT) session.$(OBJEXT) \ shutdown.$(OBJEXT) switchpanel.$(OBJEXT) stacking.$(OBJEXT) \ startup.$(OBJEXT) superfluous.$(OBJEXT) switchmenu.$(OBJEXT) \ texture.$(OBJEXT) usermenu.$(OBJEXT) xdnd.$(OBJEXT) \ xinerama.$(OBJEXT) xmodifier.$(OBJEXT) xutil.$(OBJEXT) \ wcore.$(OBJEXT) wdefaults.$(OBJEXT) window.$(OBJEXT) \ winmenu.$(OBJEXT) winspector.$(OBJEXT) wmspec.$(OBJEXT) \ workspace.$(OBJEXT) $(am__objects_1) $(am__objects_2) \ $(am__objects_3) $(am__objects_4) wmaker_OBJECTS = $(am_wmaker_OBJECTS) wmaker_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/WINGs/libWUtil.la \ $(top_builddir)/wrlib/libwraster.la AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(wmaker_SOURCES) DIST_SOURCES = $(am__wmaker_SOURCES_DIST) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ AUTOMAKE_OPTIONS = BUILT_SOURCES = wconfig.h EXTRA_DIST = 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 colormap.h \ cycling.c cycling.h def_pixmaps.h defaults.c defaults.h \ dialog.c dialog.h dock.c dockedapp.c dockedapp.h dock.h \ event.c event.h extend_pixmaps.h framewin.c framewin.h \ geomview.c geomview.h osdep.h icon.c icon.h keybind.h main.c \ main.h menu.c menu.h misc.c misc.h monitor.c monitor.h motif.c \ motif.h moveres.c pixmap.c pixmap.h placement.c placement.h \ properties.c properties.h resources.c resources.h rootmenu.c \ rootmenu.h screen.c screen.h session.h session.c shutdown.h \ shutdown.c switchpanel.c switchpanel.h stacking.c stacking.h \ startup.c startup.h superfluous.c superfluous.h switchmenu.c \ switchmenu.h texture.c texture.h usermenu.c usermenu.h xdnd.h \ xdnd.c xinerama.h xinerama.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 winmenu.h winspector.h \ winspector.c wmspec.h wmspec.c workspace.c workspace.h \ $(am__append_1) $(am__append_2) $(am__append_3) \ $(am__append_4) AM_CFLAGS = AM_CPPFLAGS = \ $(DFLAGS) -DLOCALEDIR=\"$(NLSDIR)\" \ -I$(top_srcdir)/wrlib \ -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@ wmaker_LDADD = \ $(top_builddir)/WINGs/libWINGs.la\ $(top_builddir)/WINGs/libWUtil.la\ $(top_builddir)/wrlib/libwraster.la\ @XLFLAGS@ \ @LIBXRANDR@ \ @LIBXINERAMA@ \ @XLIBS@ \ @LIBM@ \ @INTLIBS@ all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): wconfig.h: $(top_builddir)/config.status $(srcdir)/wconfig.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list wmaker$(EXEEXT): $(wmaker_OBJECTS) $(wmaker_DEPENDENCIES) @rm -f wmaker$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wmaker_OBJECTS) $(wmaker_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/actions.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appicon.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/application.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appmenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/balloon.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/client.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/colormap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cycling.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/defaults.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dock.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dockedapp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/event.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/framewin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geomview.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icon.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/monitor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/motif.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moveres.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osdep_bsd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osdep_darwin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osdep_linux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osdep_stub.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pixmap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/placement.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/properties.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resources.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rootmenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/screen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/session.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shutdown.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stacking.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/startup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/superfluous.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/switchmenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/switchpanel.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texture.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usermenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcore.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdefaults.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/window.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/winmenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/winspector.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmspec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/workspace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xdnd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xinerama.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmodifier.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xutil.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS # 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. .NOEXPORT: WindowMaker-0.95.5/src/event.h0000644000175000017500000000256712214432632013054 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 2013 Window Maker Team * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMEVENT_H #define WMEVENT_H #include "config.h" #ifdef HAVE_STDNORETURN #include #endif typedef void (WDeathHandler)(pid_t pid, unsigned int status, void *cdata); noreturn void EventLoop(void); void DispatchEvent(XEvent *event); void ProcessPendingEvents(void); WMagicNumber wAddDeathHandler(pid_t pid, WDeathHandler *callback, void *cdata); Bool IsDoubleClick(WScreen *scr, XEvent *event); /* called from the signal handler */ void NotifyDeadProcess(pid_t pid, unsigned char status); #endif /* WMEVENT_H */ WindowMaker-0.95.5/src/actions.c0000644000175000017500000015033012214432632013356 00000000000000/* action.c- misc. window commands (miniaturize, hide etc.) * * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include "WindowMaker.h" #include "framewin.h" #include "window.h" #include "client.h" #include "icon.h" #include "colormap.h" #include "application.h" #include "actions.h" #include "stacking.h" #include "appicon.h" #include "dock.h" #include "appmenu.h" #include "winspector.h" #include "workspace.h" #include "xinerama.h" #include "usermenu.h" #include "placement.h" #include "misc.h" #include "event.h" /****** Global Variables ******/ int ignore_wks_change = 0; extern Time LastTimestamp; extern Time LastFocusChange; extern Atom _XA_WM_TAKE_FOCUS; static void find_Maximus_geometry(WWindow *wwin, WArea usableArea, int *new_x, int *new_y, unsigned int *new_width, unsigned int *new_height); static void save_old_geometry(WWindow *wwin, int directions); /******* Local Variables *******/ static struct { int steps; int delay; } shadePars[5] = { { SHADE_STEPS_UF, SHADE_DELAY_UF}, { SHADE_STEPS_F, SHADE_DELAY_F}, { SHADE_STEPS_M, SHADE_DELAY_M}, { SHADE_STEPS_S, SHADE_DELAY_S}, { SHADE_STEPS_US, SHADE_DELAY_US}}; #define UNSHADE 0 #define SHADE 1 #define SHADE_STEPS shadePars[(int)wPreferences.shade_speed].steps #define SHADE_DELAY shadePars[(int)wPreferences.shade_speed].delay static int compareTimes(Time t1, Time t2) { Time diff; if (t1 == t2) return 0; diff = t1 - t2; return (diff < 60000) ? 1 : -1; } #ifdef ANIMATIONS static void shade_animate(WWindow *wwin, Bool what); #else static void shade_animate(WWindow *wwin, Bool what) { } #endif /* *---------------------------------------------------------------------- * wSetFocusTo-- * Changes the window focus to the one passed as argument. * If the window to focus is not already focused, it will be brought * to the head of the list of windows. Previously focused window is * unfocused. * * Side effects: * Window list may be reordered and the window focus is changed. * *---------------------------------------------------------------------- */ void wSetFocusTo(WScreen *scr, WWindow *wwin) { static WScreen *old_scr = NULL; WWindow *old_focused; WWindow *focused = scr->focused_window; Time timestamp = LastTimestamp; WApplication *oapp = NULL, *napp = NULL; int wasfocused; if (scr->flags.ignore_focus_events || compareTimes(LastFocusChange, timestamp) > 0) return; if (!old_scr) old_scr = scr; old_focused = old_scr->focused_window; LastFocusChange = timestamp; if (old_focused) oapp = wApplicationOf(old_focused->main_window); if (wwin == NULL) { XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, CurrentTime); if (old_focused) wWindowUnfocus(old_focused); if (oapp) { wAppMenuUnmap(oapp->menu); if (wPreferences.highlight_active_app) wApplicationDeactivate(oapp); } WMPostNotificationName(WMNChangedFocus, NULL, (void *)True); return; } if (old_scr != scr && old_focused) wWindowUnfocus(old_focused); wasfocused = wwin->flags.focused; napp = wApplicationOf(wwin->main_window); /* remember last workspace where the app has been */ if (napp) napp->last_workspace = wwin->frame->workspace; if (wwin->flags.mapped && !WFLAGP(wwin, no_focusable)) { /* install colormap if colormap mode is lock mode */ if (wPreferences.colormap_mode == WCM_CLICK) wColormapInstallForWindow(scr, wwin); /* set input focus */ switch (wwin->focus_mode) { case WFM_NO_INPUT: XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, CurrentTime); break; case WFM_PASSIVE: case WFM_LOCALLY_ACTIVE: XSetInputFocus(dpy, wwin->client_win, RevertToParent, CurrentTime); break; case WFM_GLOBALLY_ACTIVE: break; } XFlush(dpy); if (wwin->protocols.TAKE_FOCUS) wClientSendProtocol(wwin, _XA_WM_TAKE_FOCUS, timestamp); XSync(dpy, False); } else { XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, CurrentTime); } if (WFLAGP(wwin, no_focusable)) return; /* if this is not the focused window focus it */ if (focused != wwin) { /* change the focus window list order */ if (wwin->prev) wwin->prev->next = wwin->next; if (wwin->next) wwin->next->prev = wwin->prev; wwin->prev = focused; focused->next = wwin; wwin->next = NULL; scr->focused_window = wwin; if (oapp && oapp != napp) { wAppMenuUnmap(oapp->menu); if (wPreferences.highlight_active_app) wApplicationDeactivate(oapp); } } wWindowFocus(wwin, focused); if (napp && !wasfocused) { #ifdef USER_MENU wUserMenuRefreshInstances(napp->menu, wwin); #endif /* USER_MENU */ if (wwin->flags.mapped) wAppMenuMap(napp->menu, wwin); } if (napp && wPreferences.highlight_active_app) wApplicationActivate(napp); XFlush(dpy); old_scr = scr; } void wShadeWindow(WWindow *wwin) { if (wwin->flags.shaded) return; XLowerWindow(dpy, wwin->client_win); shade_animate(wwin, SHADE); wwin->flags.skip_next_animation = 0; wwin->flags.shaded = 1; 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); /* for the client it's just like iconification */ wFrameWindowResize(wwin->frame, wwin->frame->core->width, wwin->frame->top_width - 1); wwin->client.y = wwin->frame_y - wwin->client.height + wwin->frame->top_width; wWindowSynthConfigureNotify(wwin); /* wClientSetState(wwin, IconicState, None); */ WMPostNotificationName(WMNChangedState, wwin, "shade"); #ifdef ANIMATIONS if (!wwin->screen_ptr->flags.startup) { /* Catch up with events not processed while animation was running */ ProcessPendingEvents(); } #endif } void wUnshadeWindow(WWindow *wwin) { if (!wwin->flags.shaded) return; wwin->flags.shaded = 0; wwin->flags.mapped = 1; XMapWindow(dpy, wwin->client_win); shade_animate(wwin, UNSHADE); wwin->flags.skip_next_animation = 0; wFrameWindowResize(wwin->frame, wwin->frame->core->width, wwin->frame->top_width + wwin->client.height + wwin->frame->bottom_width); wwin->client.y = wwin->frame_y + wwin->frame->top_width; wWindowSynthConfigureNotify(wwin); /* if the window is focused, set the focus again as it was disabled during * shading */ if (wwin->flags.focused) wSetFocusTo(wwin->screen_ptr, wwin); WMPostNotificationName(WMNChangedState, wwin, "shade"); } /* Set the old coordinates using the current values */ static void save_old_geometry(WWindow *wwin, int directions) { /* never been saved? */ if (! wwin->old_geometry.width) directions |= SAVE_GEOMETRY_X | SAVE_GEOMETRY_WIDTH; if (! wwin->old_geometry.height) directions |= SAVE_GEOMETRY_Y | SAVE_GEOMETRY_HEIGHT; if (directions & SAVE_GEOMETRY_X) wwin->old_geometry.x = wwin->frame_x; if (directions & SAVE_GEOMETRY_Y) wwin->old_geometry.y = wwin->frame_y; if (directions & SAVE_GEOMETRY_WIDTH) wwin->old_geometry.width = wwin->client.width; if (directions & SAVE_GEOMETRY_HEIGHT) wwin->old_geometry.height = wwin->client.height; } static void remember_geometry(WWindow *wwin, int *x, int *y, int *w, int *h) { WMRect old_geom_rect; int old_head; Bool same_head; old_geom_rect = wmkrect(wwin->old_geometry.x, wwin->old_geometry.y, wwin->old_geometry.width, wwin->old_geometry.height); old_head = wGetHeadForRect(wwin->screen_ptr, old_geom_rect); same_head = (wGetHeadForWindow(wwin) == old_head); *x = ((wwin->old_geometry.x || wwin->old_geometry.width) && same_head) ? wwin->old_geometry.x : wwin->frame_x; *y = ((wwin->old_geometry.y || wwin->old_geometry.height) && same_head) ? wwin->old_geometry.y : wwin->frame_y; *w = wwin->old_geometry.width ? wwin->old_geometry.width : wwin->client.width; *h = wwin->old_geometry.height ? wwin->old_geometry.height : wwin->client.height; } /* Remember geometry for unmaximizing */ void update_saved_geometry(WWindow *wwin) { /* NOT if we aren't already maximized * we'll save geometry when maximizing */ if (!wwin->flags.maximized) return; /* NOT if we are fully maximized */ if ((wwin->flags.maximized & MAX_MAXIMUS) || ((wwin->flags.maximized & MAX_HORIZONTAL) && (wwin->flags.maximized & MAX_VERTICAL))) return; /* save the co-ordinate in the axis in which we AREN'T maximized */ if (wwin->flags.maximized & MAX_HORIZONTAL) save_old_geometry(wwin, SAVE_GEOMETRY_Y); if (wwin->flags.maximized & MAX_VERTICAL) save_old_geometry(wwin, SAVE_GEOMETRY_X); } void wMaximizeWindow(WWindow *wwin, int directions) { unsigned int new_width, new_height, half_scr_width, half_scr_height; int new_x = 0; int new_y = 0; int maximus_x = 0; int maximus_y = 0; unsigned int maximus_width = 0; unsigned int maximus_height = 0; WArea usableArea, totalArea; Bool has_border = 1; int adj_size; if (!IS_RESIZABLE(wwin)) return; if (!HAS_BORDER(wwin)) has_border = 0; /* the size to adjust the geometry */ adj_size = wwin->screen_ptr->frame_border_width * 2 * has_border; /* save old coordinates before we change the current values */ if (!wwin->flags.maximized) save_old_geometry(wwin, SAVE_GEOMETRY_ALL); totalArea.x2 = wwin->screen_ptr->scr_width; totalArea.y2 = wwin->screen_ptr->scr_height; totalArea.x1 = 0; totalArea.y1 = 0; usableArea = totalArea; if (!(directions & MAX_IGNORE_XINERAMA)) { WScreen *scr = wwin->screen_ptr; int head; if (directions & MAX_KEYBOARD) head = wGetHeadForWindow(wwin); else head = wGetHeadForPointerLocation(scr); usableArea = wGetUsableAreaForHead(scr, head, &totalArea, True); } /* Only save directions, not kbd or xinerama hints */ directions &= (MAX_HORIZONTAL | MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_TOPHALF | MAX_BOTTOMHALF | MAX_MAXIMUS); if (WFLAGP(wwin, full_maximize)) { usableArea = totalArea; } half_scr_width = (usableArea.x2 - usableArea.x1)/2; half_scr_height = (usableArea.y2 - usableArea.y1)/2; if (wwin->flags.shaded) { wwin->flags.skip_next_animation = 1; wUnshadeWindow(wwin); } if (directions & MAX_MAXIMUS) { find_Maximus_geometry(wwin, usableArea, &maximus_x, &maximus_y, &maximus_width, &maximus_height); new_width = maximus_width - adj_size; new_height = maximus_height - adj_size; new_x = maximus_x; new_y = maximus_y; if (WFLAGP(wwin, full_maximize) && (new_y == 0)) { new_height += wwin->frame->bottom_width - 1; new_y -= wwin->frame->top_width; } wwin->maximus_x = new_x; wwin->maximus_y = new_y; wwin->flags.old_maximized |= MAX_MAXIMUS; } else { /* set default values if no option set then */ if (!(directions & (MAX_HORIZONTAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_MAXIMUS))) { new_width = (wwin->old_geometry.width) ? wwin->old_geometry.width : wwin->frame->core->width; new_x = (wwin->old_geometry.x) ? wwin->old_geometry.x : wwin->frame_x; } if (!(directions & (MAX_VERTICAL | MAX_TOPHALF | MAX_BOTTOMHALF | MAX_MAXIMUS))) { new_height = (wwin->old_geometry.height) ? wwin->old_geometry.height : wwin->frame->core->height; new_y = (wwin->old_geometry.y) ? wwin->old_geometry.y : wwin->frame_y; } /* left|right position */ if (directions & MAX_LEFTHALF) { new_width = half_scr_width - adj_size; new_x = usableArea.x1; } else if (directions & MAX_RIGHTHALF) { new_width = half_scr_width - adj_size; new_x = usableArea.x1 + half_scr_width; } /* top|bottom position */ if (directions & MAX_TOPHALF) { new_height = half_scr_height - adj_size; new_y = usableArea.y1; } else if (directions & MAX_BOTTOMHALF) { new_height = half_scr_height - adj_size; new_y = usableArea.y1 + half_scr_height; } /* vertical|horizontal position */ if (directions & MAX_HORIZONTAL) { new_width = usableArea.x2 - usableArea.x1 - adj_size; new_x = usableArea.x1; } if (directions & MAX_VERTICAL) { new_height = usableArea.y2 - usableArea.y1 - adj_size; new_y = usableArea.y1; if (WFLAGP(wwin, full_maximize) && (new_y == 0)) new_y -= wwin->frame->top_width; } } if (!WFLAGP(wwin, full_maximize) && !(directions == MAX_MAXIMUS || directions == MAX_HORIZONTAL)) new_height -= wwin->frame->top_width + wwin->frame->bottom_width; /* set maximization state */ wwin->flags.maximized = directions; if ((wwin->flags.old_maximized & MAX_MAXIMUS) && !wwin->flags.maximized) wwin->flags.maximized = MAX_MAXIMUS; wWindowConstrainSize(wwin, &new_width, &new_height); wWindowCropSize(wwin, usableArea.x2 - usableArea.x1, usableArea.y2 - usableArea.y1, &new_width, &new_height); wWindowConfigure(wwin, new_x, new_y, new_width, new_height); wWindowSynthConfigureNotify(wwin); WMPostNotificationName(WMNChangedState, wwin, "maximize"); } /* generic (un)maximizer */ void handleMaximize(WWindow *wwin, int directions) { int current = wwin->flags.maximized; int requested = directions & (MAX_HORIZONTAL | MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_TOPHALF | MAX_BOTTOMHALF | MAX_MAXIMUS); int effective = requested ^ current; int flags = directions & ~requested; if (!effective) { /* allow wMaximizeWindow to restore the Maximusized size */ if ((wwin->flags.old_maximized & MAX_MAXIMUS) && !(requested & MAX_MAXIMUS)) wMaximizeWindow(wwin, MAX_MAXIMUS | flags); else wUnmaximizeWindow(wwin); /* these alone mean vertical|horizontal toggle */ } else if ((effective == MAX_LEFTHALF) || (effective == MAX_RIGHTHALF) || (effective == MAX_TOPHALF) || (effective == MAX_BOTTOMHALF)) wUnmaximizeWindow(wwin); else { if ((requested == (MAX_HORIZONTAL | MAX_VERTICAL)) || (requested == MAX_MAXIMUS)) effective = requested; else { if (requested & MAX_LEFTHALF) { if (!(requested & (MAX_TOPHALF | MAX_BOTTOMHALF))) effective |= MAX_VERTICAL; else effective |= requested & (MAX_TOPHALF | MAX_BOTTOMHALF); effective |= MAX_LEFTHALF; effective &= ~(MAX_HORIZONTAL | MAX_RIGHTHALF); } else if (requested & MAX_RIGHTHALF) { if (!(requested & (MAX_TOPHALF | MAX_BOTTOMHALF))) effective |= MAX_VERTICAL; else effective |= requested & (MAX_TOPHALF | MAX_BOTTOMHALF); effective |= MAX_RIGHTHALF; effective &= ~(MAX_HORIZONTAL | MAX_LEFTHALF); } if (requested & MAX_TOPHALF) { if (!(requested & (MAX_LEFTHALF | MAX_RIGHTHALF))) effective |= MAX_HORIZONTAL; else effective |= requested & (MAX_LEFTHALF | MAX_RIGHTHALF); effective |= MAX_TOPHALF; effective &= ~(MAX_VERTICAL | MAX_BOTTOMHALF); } else if (requested & MAX_BOTTOMHALF) { if (!(requested & (MAX_LEFTHALF | MAX_RIGHTHALF))) effective |= MAX_HORIZONTAL; else effective |= requested & (MAX_LEFTHALF | MAX_RIGHTHALF); effective |= MAX_BOTTOMHALF; effective &= ~(MAX_VERTICAL | MAX_TOPHALF); } if (requested & MAX_HORIZONTAL) effective &= ~(MAX_LEFTHALF | MAX_RIGHTHALF); if (requested & MAX_VERTICAL) effective &= ~(MAX_TOPHALF | MAX_BOTTOMHALF); effective &= ~MAX_MAXIMUS; } wMaximizeWindow(wwin, effective | flags); } } /* the window boundary coordinates */ typedef struct { int left; int right; int bottom; int top; int width; int height; } win_coords; static void set_window_coords(WWindow *wwin, win_coords *obs) { obs->left = wwin->frame_x; obs->top = wwin->frame_y; obs->width = wwin->frame->core->width; obs->height = wwin->frame->core->height; obs->bottom = obs->top + obs->height; obs->right = obs->left + obs->width; } /* * Maximus: tiled maximization (maximize without overlapping other windows) * * The original window 'orig' will be maximized to new coordinates 'new'. * The windows obstructing the maximization of 'orig' are denoted 'obs'. */ static void find_Maximus_geometry(WWindow *wwin, WArea usableArea, int *new_x, int *new_y, unsigned int *new_width, unsigned int *new_height) { WWindow *tmp; short int tbar_height_0 = 0, rbar_height_0 = 0, bd_width_0 = 0; short int adjust_height; int x_intsect, y_intsect; /* the obstructing, original and new windows */ win_coords obs, orig, new; /* set the original coordinate positions of the window to be Maximumized */ if (wwin->flags.maximized) { /* window is already maximized; consider original geometry */ remember_geometry(wwin, &orig.left, &orig.top, &orig.width, &orig.height); orig.bottom = orig.top + orig.height; orig.right = orig.left + orig.width; } else set_window_coords(wwin, &orig); /* Try to fully maximize first, then readjust later */ new.left = usableArea.x1; new.right = usableArea.x2; new.top = usableArea.y1; new.bottom = usableArea.y2; if (HAS_TITLEBAR(wwin)) tbar_height_0 = TITLEBAR_HEIGHT; if (HAS_RESIZEBAR(wwin)) rbar_height_0 = RESIZEBAR_HEIGHT; if (HAS_BORDER(wwin)) bd_width_0 = wwin->screen_ptr->frame_border_width; /* the length to be subtracted if the window has titlebar, etc */ adjust_height = tbar_height_0 + 2 * bd_width_0 + rbar_height_0; tmp = wwin; /* The focused window is always the last in the list */ while (tmp->prev) { /* ignore windows in other workspaces etc */ if (tmp->prev->frame->workspace != wwin->screen_ptr->current_workspace || tmp->prev->flags.miniaturized || tmp->prev->flags.hidden) { tmp = tmp->prev; continue; } tmp = tmp->prev; /* Set the coordinates of obstructing window */ set_window_coords(tmp, &obs); /* Try to maximize in the y direction first */ x_intsect = calcIntersectionLength(orig.left, orig.width, obs.left, obs.width); if (x_intsect != 0) { /* TODO: Consider the case when coords are equal */ if (obs.bottom < orig.top && obs.bottom > new.top) { /* w_0 is below the bottom of w_j */ new.top = obs.bottom + 1; } if (orig.bottom < obs.top && obs.top < new.bottom) { /* The bottom of w_0 is above the top of w_j */ new.bottom = obs.top - 1; } } } tmp = wwin; while (tmp->prev) { if (tmp->prev->frame->workspace != wwin->screen_ptr->current_workspace || tmp->prev->flags.miniaturized || tmp->prev->flags.hidden) { tmp = tmp->prev; continue; } tmp = tmp->prev; set_window_coords(tmp, &obs); /* * Use the new.top and new.height instead of original values * as they may have different intersections with the obstructing windows */ new.height = new.bottom - new.top - adjust_height; y_intsect = calcIntersectionLength(new.top, new.height, obs.top, obs.height); if (y_intsect != 0) { if (obs.right < orig.left && obs.right > new.left) { /* w_0 is completely to the right of w_j */ new.left = obs.right + 1; } if (orig.right < obs.left && obs.left < new.right) { /* w_0 is completely to the left of w_j */ new.right = obs.left - 1; } } } *new_x = new.left; *new_y = new.top; /* xcalc needs -7 here, but other apps don't */ *new_height = new.bottom - new.top - adjust_height - 1;; *new_width = new.right - new.left; } void wUnmaximizeWindow(WWindow *wwin) { int x, y, w, h; if (!wwin->flags.maximized) return; if (wwin->flags.shaded) { wwin->flags.skip_next_animation = 1; wUnshadeWindow(wwin); } /* Use old coordinates if they are set, current values otherwise */ remember_geometry(wwin, &x, &y, &w, &h); /* unMaximusize relative to original position */ if (wwin->flags.maximized & MAX_MAXIMUS) { x += wwin->frame_x - wwin->maximus_x; y += wwin->frame_y - wwin->maximus_y; } wwin->flags.maximized = 0; wwin->flags.old_maximized = 0; wWindowConfigure(wwin, x, y, w, h); wWindowSynthConfigureNotify(wwin); WMPostNotificationName(WMNChangedState, wwin, "maximize"); } void wFullscreenWindow(WWindow *wwin) { int head; WMRect rect; if (wwin->flags.fullscreen) return; wwin->flags.fullscreen = True; wWindowConfigureBorders(wwin); ChangeStackingLevel(wwin->frame->core, WMFullscreenLevel); wwin->bfs_geometry.x = wwin->frame_x; wwin->bfs_geometry.y = wwin->frame_y; wwin->bfs_geometry.width = wwin->frame->core->width; wwin->bfs_geometry.height = wwin->frame->core->height; head = wGetHeadForWindow(wwin); rect = wGetRectForHead(wwin->screen_ptr, head); wWindowConfigure(wwin, rect.pos.x, rect.pos.y, rect.size.width, rect.size.height); WMPostNotificationName(WMNChangedState, wwin, "fullscreen"); } void wUnfullscreenWindow(WWindow *wwin) { if (!wwin->flags.fullscreen) return; wwin->flags.fullscreen = False; if (wwin->frame->core->stacking->window_level == WMFullscreenLevel) { if (WFLAGP(wwin, sunken)) { ChangeStackingLevel(wwin->frame->core, WMSunkenLevel); } else if (WFLAGP(wwin, floating)) { ChangeStackingLevel(wwin->frame->core, WMFloatingLevel); } else { ChangeStackingLevel(wwin->frame->core, WMNormalLevel); } } wWindowConfigure(wwin, wwin->bfs_geometry.x, wwin->bfs_geometry.y, wwin->bfs_geometry.width, wwin->bfs_geometry.height); wWindowConfigureBorders(wwin); /* // seems unnecessary, but also harmless (doesn't generate flicker) -Dan wFrameWindowPaint(wwin->frame); */ WMPostNotificationName(WMNChangedState, wwin, "fullscreen"); } #ifdef ANIMATIONS static void animateResizeFlip(WScreen *scr, int x, int y, int w, int h, int fx, int fy, int fw, int fh, int steps) { #define FRAMES (MINIATURIZE_ANIMATION_FRAMES_F) float cx, cy, cw, ch; float xstep, ystep, wstep, hstep; XPoint points[5]; float dx, dch, midy; float angle, final_angle, delta; xstep = (float)(fx - x) / steps; ystep = (float)(fy - y) / steps; wstep = (float)(fw - w) / steps; hstep = (float)(fh - h) / steps; cx = (float)x; cy = (float)y; cw = (float)w; ch = (float)h; final_angle = 2 * WM_PI * MINIATURIZE_ANIMATION_TWIST_F; delta = (float)(final_angle / FRAMES); for (angle = 0;; angle += delta) { if (angle > final_angle) angle = final_angle; dx = (cw / 10) - ((cw / 5) * sin(angle)); dch = (ch / 2) * cos(angle); midy = cy + (ch / 2); points[0].x = cx + dx; points[0].y = midy - dch; points[1].x = cx + cw - dx; points[1].y = points[0].y; points[2].x = cx + cw + dx; points[2].y = midy + dch; points[3].x = cx - dx; points[3].y = points[2].y; points[4].x = points[0].x; points[4].y = points[0].y; XGrabServer(dpy); XDrawLines(dpy, scr->root_win, scr->frame_gc, points, 5, CoordModeOrigin); XFlush(dpy); wusleep(MINIATURIZE_ANIMATION_DELAY_F); XDrawLines(dpy, scr->root_win, scr->frame_gc, points, 5, CoordModeOrigin); XUngrabServer(dpy); cx += xstep; cy += ystep; cw += wstep; ch += hstep; if (angle >= final_angle) break; } XFlush(dpy); } #undef FRAMES static void animateResizeTwist(WScreen *scr, int x, int y, int w, int h, int fx, int fy, int fw, int fh, int steps) { #define FRAMES (MINIATURIZE_ANIMATION_FRAMES_T) float cx, cy, cw, ch; float xstep, ystep, wstep, hstep; XPoint points[5]; float angle, final_angle, a, d, delta; x += w / 2; y += h / 2; fx += fw / 2; fy += fh / 2; xstep = (float)(fx - x) / steps; ystep = (float)(fy - y) / steps; wstep = (float)(fw - w) / steps; hstep = (float)(fh - h) / steps; cx = (float)x; cy = (float)y; cw = (float)w; ch = (float)h; final_angle = 2 * WM_PI * MINIATURIZE_ANIMATION_TWIST_T; delta = (float)(final_angle / FRAMES); for (angle = 0;; angle += delta) { if (angle > final_angle) angle = final_angle; a = atan(ch / cw); d = sqrt((cw / 2) * (cw / 2) + (ch / 2) * (ch / 2)); points[0].x = cx + cos(angle - a) * d; points[0].y = cy + sin(angle - a) * d; points[1].x = cx + cos(angle + a) * d; points[1].y = cy + sin(angle + a) * d; points[2].x = cx + cos(angle - a + WM_PI) * d; points[2].y = cy + sin(angle - a + WM_PI) * d; points[3].x = cx + cos(angle + a + WM_PI) * d; points[3].y = cy + sin(angle + a + WM_PI) * d; points[4].x = cx + cos(angle - a) * d; points[4].y = cy + sin(angle - a) * d; XGrabServer(dpy); XDrawLines(dpy, scr->root_win, scr->frame_gc, points, 5, CoordModeOrigin); XFlush(dpy); wusleep(MINIATURIZE_ANIMATION_DELAY_T); XDrawLines(dpy, scr->root_win, scr->frame_gc, points, 5, CoordModeOrigin); XUngrabServer(dpy); cx += xstep; cy += ystep; cw += wstep; ch += hstep; if (angle >= final_angle) break; } XFlush(dpy); } #undef FRAMES static void animateResizeZoom(WScreen *scr, int x, int y, int w, int h, int fx, int fy, int fw, int fh, int steps) { #define FRAMES (MINIATURIZE_ANIMATION_FRAMES_Z) float cx[FRAMES], cy[FRAMES], cw[FRAMES], ch[FRAMES]; float xstep, ystep, wstep, hstep; int i, j; xstep = (float)(fx - x) / steps; ystep = (float)(fy - y) / steps; wstep = (float)(fw - w) / steps; hstep = (float)(fh - h) / steps; for (j = 0; j < FRAMES; j++) { cx[j] = (float)x; cy[j] = (float)y; cw[j] = (float)w; ch[j] = (float)h; } XGrabServer(dpy); for (i = 0; i < steps; i++) { for (j = 0; j < FRAMES; j++) { XDrawRectangle(dpy, scr->root_win, scr->frame_gc, (int)cx[j], (int)cy[j], (int)cw[j], (int)ch[j]); } XFlush(dpy); wusleep(MINIATURIZE_ANIMATION_DELAY_Z); for (j = 0; j < FRAMES; j++) { XDrawRectangle(dpy, scr->root_win, scr->frame_gc, (int)cx[j], (int)cy[j], (int)cw[j], (int)ch[j]); if (j < FRAMES - 1) { cx[j] = cx[j + 1]; cy[j] = cy[j + 1]; cw[j] = cw[j + 1]; ch[j] = ch[j + 1]; } else { cx[j] += xstep; cy[j] += ystep; cw[j] += wstep; ch[j] += hstep; } } } for (j = 0; j < FRAMES; j++) { XDrawRectangle(dpy, scr->root_win, scr->frame_gc, (int)cx[j], (int)cy[j], (int)cw[j], (int)ch[j]); } XFlush(dpy); wusleep(MINIATURIZE_ANIMATION_DELAY_Z); for (j = 0; j < FRAMES; j++) { XDrawRectangle(dpy, scr->root_win, scr->frame_gc, (int)cx[j], (int)cy[j], (int)cw[j], (int)ch[j]); } XUngrabServer(dpy); } #undef FRAMES void animateResize(WScreen *scr, int x, int y, int w, int h, int fx, int fy, int fw, int fh) { int style = wPreferences.iconification_style; /* Catch the value */ int steps; if (style == WIS_NONE) return; if (style == WIS_RANDOM) { style = rand() % 3; } switch (style) { case WIS_TWIST: steps = MINIATURIZE_ANIMATION_STEPS_T; if (steps > 0) animateResizeTwist(scr, x, y, w, h, fx, fy, fw, fh, steps); break; case WIS_FLIP: steps = MINIATURIZE_ANIMATION_STEPS_F; if (steps > 0) animateResizeFlip(scr, x, y, w, h, fx, fy, fw, fh, steps); break; case WIS_ZOOM: default: steps = MINIATURIZE_ANIMATION_STEPS_Z; if (steps > 0) animateResizeZoom(scr, x, y, w, h, fx, fy, fw, fh, steps); break; } } #endif /* ANIMATIONS */ static void flushExpose(void) { XEvent tmpev; while (XCheckTypedEvent(dpy, Expose, &tmpev)) WMHandleEvent(&tmpev); XSync(dpy, 0); } static void unmapTransientsFor(WWindow *wwin) { WWindow *tmp; tmp = wwin->screen_ptr->focused_window; while (tmp) { /* unmap the transients for this transient */ if (tmp != wwin && tmp->transient_for == wwin->client_win && (tmp->flags.mapped || wwin->screen_ptr->flags.startup || tmp->flags.shaded)) { unmapTransientsFor(tmp); tmp->flags.miniaturized = 1; if (!tmp->flags.shaded) { wWindowUnmap(tmp); } else { XUnmapWindow(dpy, tmp->frame->core->window); } /* if (!tmp->flags.shaded) */ wClientSetState(tmp, IconicState, None); WMPostNotificationName(WMNChangedState, tmp, "iconify-transient"); } tmp = tmp->prev; } } static void mapTransientsFor(WWindow *wwin) { WWindow *tmp; tmp = wwin->screen_ptr->focused_window; while (tmp) { /* recursively map the transients for this transient */ if (tmp != wwin && tmp->transient_for == wwin->client_win && /*!tmp->flags.mapped */ tmp->flags.miniaturized && tmp->icon == NULL) { mapTransientsFor(tmp); tmp->flags.miniaturized = 0; if (!tmp->flags.shaded) { wWindowMap(tmp); } else { XMapWindow(dpy, tmp->frame->core->window); } tmp->flags.semi_focused = 0; /* if (!tmp->flags.shaded) */ wClientSetState(tmp, NormalState, None); WMPostNotificationName(WMNChangedState, tmp, "iconify-transient"); } tmp = tmp->prev; } } static WWindow *recursiveTransientFor(WWindow * wwin) { int i; if (!wwin) return None; /* hackish way to detect transient_for cycle */ i = wwin->screen_ptr->window_count + 1; while (wwin && wwin->transient_for != None && i > 0) { wwin = wWindowFor(wwin->transient_for); i--; } if (i == 0 && wwin) { wwarning("%s has a severely broken WM_TRANSIENT_FOR hint.", wwin->frame->title); return NULL; } return wwin; } void wIconifyWindow(WWindow * wwin) { XWindowAttributes attribs; int present; if (!XGetWindowAttributes(dpy, wwin->client_win, &attribs)) return; /* the window doesn't exist anymore */ if (wwin->flags.miniaturized) return; /* already miniaturized */ if (wwin->transient_for != None && wwin->transient_for != wwin->screen_ptr->root_win) { WWindow *owner = wWindowFor(wwin->transient_for); if (owner && owner->flags.miniaturized) return; } present = wwin->frame->workspace == wwin->screen_ptr->current_workspace; /* if the window is in another workspace, simplify process */ if (present) { /* icon creation may take a while */ XGrabPointer(dpy, wwin->screen_ptr->root_win, False, ButtonMotionMask | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime); } if (!wPreferences.disable_miniwindows && !wwin->flags.net_handle_icon) { if (!wwin->flags.icon_moved) PlaceIcon(wwin->screen_ptr, &wwin->icon_x, &wwin->icon_y, wGetHeadForWindow(wwin)); wwin->icon = icon_create_for_wwindow(wwin); wwin->icon->mapped = 1; } wwin->flags.miniaturized = 1; wwin->flags.mapped = 0; /* unmap transients */ unmapTransientsFor(wwin); if (present) { XUngrabPointer(dpy, CurrentTime); wWindowUnmap(wwin); /* let all Expose events arrive so that we can repaint * something before the animation starts (and the server is grabbed) */ XSync(dpy, 0); if (wPreferences.disable_miniwindows || wwin->flags.net_handle_icon) wClientSetState(wwin, IconicState, None); else wClientSetState(wwin, IconicState, wwin->icon->icon_win); flushExpose(); #ifdef ANIMATIONS if (!wwin->screen_ptr->flags.startup && !wwin->flags.skip_next_animation && !wPreferences.no_animations) { int ix, iy, iw, ih; if (!wPreferences.disable_miniwindows && !wwin->flags.net_handle_icon) { ix = wwin->icon_x; iy = wwin->icon_y; iw = wwin->icon->core->width; ih = wwin->icon->core->height; } else { if (wwin->flags.net_handle_icon) { ix = wwin->icon_x; iy = wwin->icon_y; iw = wwin->icon_w; ih = wwin->icon_h; } else { ix = 0; iy = 0; iw = wwin->screen_ptr->scr_width; ih = wwin->screen_ptr->scr_height; } } animateResize(wwin->screen_ptr, wwin->frame_x, wwin->frame_y, wwin->frame->core->width, wwin->frame->core->height, ix, iy, iw, ih); } #endif } wwin->flags.skip_next_animation = 0; if (!wPreferences.disable_miniwindows && !wwin->flags.net_handle_icon) { if (wwin->screen_ptr->current_workspace == wwin->frame->workspace || IS_OMNIPRESENT(wwin) || wPreferences.sticky_icons) XMapWindow(dpy, wwin->icon->core->window); AddToStackList(wwin->icon->core); wLowerFrame(wwin->icon->core); } if (present) { WWindow *owner = recursiveTransientFor(wwin->screen_ptr->focused_window); /* * It doesn't seem to be working and causes button event hangup * when deiconifying a transient window. setupIconGrabs(wwin->icon); */ if ((wwin->flags.focused || (owner && wwin->client_win == owner->client_win)) && wPreferences.focus_mode == WKF_CLICK) { WWindow *tmp; tmp = wwin->prev; while (tmp) { if (!WFLAGP(tmp, no_focusable) && !(tmp->flags.hidden || tmp->flags.miniaturized) && (wwin->frame->workspace == tmp->frame->workspace)) break; tmp = tmp->prev; } wSetFocusTo(wwin->screen_ptr, tmp); } else if (wPreferences.focus_mode != WKF_CLICK) { wSetFocusTo(wwin->screen_ptr, NULL); } #ifdef ANIMATIONS if (!wwin->screen_ptr->flags.startup) { /* Catch up with events not processed while animation was running */ Window clientwin = wwin->client_win; ProcessPendingEvents(); /* the window can disappear while ProcessPendingEvents() runs */ if (!wWindowFor(clientwin)) { return; } } #endif } /* maybe we want to do this regardless of net_handle_icon * it seems to me we might break behaviour this way. */ if (wwin->flags.selected && !wPreferences.disable_miniwindows && !wwin->flags.net_handle_icon) wIconSelect(wwin->icon); WMPostNotificationName(WMNChangedState, wwin, "iconify"); if (wPreferences.auto_arrange_icons) wArrangeIcons(wwin->screen_ptr, True); } void wDeiconifyWindow(WWindow *wwin) { /* Let's avoid changing workspace while deiconifying */ ignore_wks_change = 1; /* we're hiding for show_desktop */ int netwm_hidden = wwin->flags.net_show_desktop && wwin->frame->workspace != wwin->screen_ptr->current_workspace; if (!netwm_hidden) wWindowChangeWorkspace(wwin, wwin->screen_ptr->current_workspace); if (!wwin->flags.miniaturized) { ignore_wks_change = 0; return; } if (wwin->transient_for != None && wwin->transient_for != wwin->screen_ptr->root_win) { WWindow *owner = recursiveTransientFor(wwin); if (owner && owner->flags.miniaturized) { wDeiconifyWindow(owner); wSetFocusTo(wwin->screen_ptr, wwin); wRaiseFrame(wwin->frame->core); ignore_wks_change = 0; return; } } wwin->flags.miniaturized = 0; if (!netwm_hidden && !wwin->flags.shaded) wwin->flags.mapped = 1; if (!netwm_hidden || wPreferences.sticky_icons) { /* maybe we want to do this regardless of net_handle_icon * it seems to me we might break behaviour this way. */ if (!wPreferences.disable_miniwindows && !wwin->flags.net_handle_icon && wwin->icon != NULL) { if (wwin->icon->selected) wIconSelect(wwin->icon); XUnmapWindow(dpy, wwin->icon->core->window); } } /* if the window is in another workspace, do it silently */ if (!netwm_hidden) { #ifdef ANIMATIONS if (!wwin->screen_ptr->flags.startup && !wPreferences.no_animations && !wwin->flags.skip_next_animation && wwin->icon != NULL) { int ix, iy, iw, ih; if (!wPreferences.disable_miniwindows && !wwin->flags.net_handle_icon) { ix = wwin->icon_x; iy = wwin->icon_y; iw = wwin->icon->core->width; ih = wwin->icon->core->height; } else { if (wwin->flags.net_handle_icon) { ix = wwin->icon_x; iy = wwin->icon_y; iw = wwin->icon_w; ih = wwin->icon_h; } else { ix = 0; iy = 0; iw = wwin->screen_ptr->scr_width; ih = wwin->screen_ptr->scr_height; } } animateResize(wwin->screen_ptr, ix, iy, iw, ih, wwin->frame_x, wwin->frame_y, wwin->frame->core->width, wwin->frame->core->height); } #endif /* ANIMATIONS */ wwin->flags.skip_next_animation = 0; XGrabServer(dpy); if (!wwin->flags.shaded) XMapWindow(dpy, wwin->client_win); XMapWindow(dpy, wwin->frame->core->window); wRaiseFrame(wwin->frame->core); if (!wwin->flags.shaded) wClientSetState(wwin, NormalState, None); mapTransientsFor(wwin); } if (!wPreferences.disable_miniwindows && wwin->icon != NULL && !wwin->flags.net_handle_icon) { RemoveFromStackList(wwin->icon->core); /* removeIconGrabs(wwin->icon); */ wIconDestroy(wwin->icon); wwin->icon = NULL; } if (!netwm_hidden) { XUngrabServer(dpy); wSetFocusTo(wwin->screen_ptr, wwin); #ifdef ANIMATIONS if (!wwin->screen_ptr->flags.startup) { /* Catch up with events not processed while animation was running */ Window clientwin = wwin->client_win; ProcessPendingEvents(); /* the window can disappear while ProcessPendingEvents() runs */ if (!wWindowFor(clientwin)) { ignore_wks_change = 0; return; } } #endif } if (wPreferences.auto_arrange_icons) wArrangeIcons(wwin->screen_ptr, True); WMPostNotificationName(WMNChangedState, wwin, "iconify"); /* In case we were shaded and iconified, also unshade */ if (!netwm_hidden) wUnshadeWindow(wwin); ignore_wks_change = 0; } static void hideWindow(WIcon *icon, int icon_x, int icon_y, WWindow *wwin, int animate) { if (wwin->flags.miniaturized) { if (wwin->icon) { XUnmapWindow(dpy, wwin->icon->core->window); wwin->icon->mapped = 0; } wwin->flags.hidden = 1; WMPostNotificationName(WMNChangedState, wwin, "hide"); return; } if (wwin->flags.inspector_open) { wHideInspectorForWindow(wwin); } wwin->flags.hidden = 1; wWindowUnmap(wwin); wClientSetState(wwin, IconicState, icon->icon_win); flushExpose(); #ifdef ANIMATIONS if (!wwin->screen_ptr->flags.startup && !wPreferences.no_animations && !wwin->flags.skip_next_animation && animate) { animateResize(wwin->screen_ptr, wwin->frame_x, wwin->frame_y, wwin->frame->core->width, wwin->frame->core->height, icon_x, icon_y, icon->core->width, icon->core->height); } #endif wwin->flags.skip_next_animation = 0; WMPostNotificationName(WMNChangedState, wwin, "hide"); } void wHideAll(WScreen *scr) { WWindow *wwin; WWindow **windows; WMenu *menu; unsigned int wcount = 0; int i; if (!scr) return; menu = scr->switch_menu; windows = wmalloc(sizeof(WWindow *)); if (menu != NULL) { for (i = 0; i < menu->entry_no; i++) { windows[wcount] = (WWindow *) menu->entries[i]->clientdata; wcount++; windows = wrealloc(windows, sizeof(WWindow *) * (wcount + 1)); } } else { wwin = scr->focused_window; while (wwin) { windows[wcount] = wwin; wcount++; windows = wrealloc(windows, sizeof(WWindow *) * (wcount + 1)); wwin = wwin->prev; } } for (i = 0; i < wcount; i++) { wwin = windows[i]; if (wwin->frame->workspace == scr->current_workspace && !(wwin->flags.miniaturized || wwin->flags.hidden) && !wwin->flags.internal_window && !WFLAGP(wwin, no_miniaturizable) ) { wwin->flags.skip_next_animation = 1; wIconifyWindow(wwin); } } wfree(windows); } void wHideOtherApplications(WWindow *awin) { WWindow *wwin; WApplication *tapp; if (!awin) return; wwin = awin->screen_ptr->focused_window; while (wwin) { if (wwin != awin && wwin->frame->workspace == awin->screen_ptr->current_workspace && !(wwin->flags.miniaturized || wwin->flags.hidden) && !wwin->flags.internal_window && wGetWindowOfInspectorForWindow(wwin) != awin && !WFLAGP(wwin, no_hide_others)) { if (wwin->main_window == None || WFLAGP(wwin, no_appicon)) { if (!WFLAGP(wwin, no_miniaturizable)) { wwin->flags.skip_next_animation = 1; wIconifyWindow(wwin); } } else if (wwin->main_window != None && awin->main_window != wwin->main_window) { tapp = wApplicationOf(wwin->main_window); if (tapp) { tapp->flags.skip_next_animation = 1; wHideApplication(tapp); } else { if (!WFLAGP(wwin, no_miniaturizable)) { wwin->flags.skip_next_animation = 1; wIconifyWindow(wwin); } } } } wwin = wwin->prev; } /* wSetFocusTo(awin->screen_ptr, awin); */ } void wHideApplication(WApplication *wapp) { WScreen *scr; WWindow *wlist; int hadfocus; int animate; if (!wapp) { wwarning("trying to hide a non grouped window"); return; } if (!wapp->main_window_desc) { wwarning("group leader not found for window group"); return; } scr = wapp->main_window_desc->screen_ptr; hadfocus = 0; wlist = scr->focused_window; if (!wlist) return; if (wlist->main_window == wapp->main_window) wapp->last_focused = wlist; else wapp->last_focused = NULL; animate = !wapp->flags.skip_next_animation; while (wlist) { if (wlist->main_window == wapp->main_window) { if (wlist->flags.focused) { hadfocus = 1; } if (wapp->app_icon) { hideWindow(wapp->app_icon->icon, wapp->app_icon->x_pos, wapp->app_icon->y_pos, wlist, animate); animate = False; } } wlist = wlist->prev; } wapp->flags.skip_next_animation = 0; if (hadfocus) { if (wPreferences.focus_mode == WKF_CLICK) { wlist = scr->focused_window; while (wlist) { if (!WFLAGP(wlist, no_focusable) && !wlist->flags.hidden && (wlist->flags.mapped || wlist->flags.shaded)) break; wlist = wlist->prev; } wSetFocusTo(scr, wlist); } else { wSetFocusTo(scr, NULL); } } wapp->flags.hidden = 1; if (wPreferences.auto_arrange_icons) wArrangeIcons(scr, True); #ifdef HIDDENDOT if (wapp->app_icon) wAppIconPaint(wapp->app_icon); #endif } static void unhideWindow(WIcon *icon, int icon_x, int icon_y, WWindow *wwin, int animate, int bringToCurrentWS) { if (bringToCurrentWS) wWindowChangeWorkspace(wwin, wwin->screen_ptr->current_workspace); wwin->flags.hidden = 0; #ifdef ANIMATIONS if (!wwin->screen_ptr->flags.startup && !wPreferences.no_animations && animate) { animateResize(wwin->screen_ptr, icon_x, icon_y, icon->core->width, icon->core->height, wwin->frame_x, wwin->frame_y, wwin->frame->core->width, wwin->frame->core->height); } #endif wwin->flags.skip_next_animation = 0; if (wwin->screen_ptr->current_workspace == wwin->frame->workspace) { XMapWindow(dpy, wwin->client_win); XMapWindow(dpy, wwin->frame->core->window); wClientSetState(wwin, NormalState, None); wwin->flags.mapped = 1; wRaiseFrame(wwin->frame->core); } if (wwin->flags.inspector_open) { wUnhideInspectorForWindow(wwin); } WMPostNotificationName(WMNChangedState, wwin, "hide"); } void wUnhideApplication(WApplication *wapp, Bool miniwindows, Bool bringToCurrentWS) { WScreen *scr; WWindow *wlist, *next; WWindow *focused = NULL; int animate; if (!wapp) return; scr = wapp->main_window_desc->screen_ptr; wlist = scr->focused_window; if (!wlist) return; /* goto beginning of list */ while (wlist->prev) wlist = wlist->prev; animate = !wapp->flags.skip_next_animation; while (wlist) { next = wlist->next; if (wlist->main_window == wapp->main_window) { if (wlist->flags.focused) focused = wlist; else if (!focused || !focused->flags.focused) focused = wlist; if (wlist->flags.miniaturized) { if ((bringToCurrentWS || wPreferences.sticky_icons || wlist->frame->workspace == scr->current_workspace) && wlist->icon) { if (!wlist->icon->mapped) { int x, y; PlaceIcon(scr, &x, &y, wGetHeadForWindow(wlist)); if (wlist->icon_x != x || wlist->icon_y != y) { XMoveWindow(dpy, wlist->icon->core->window, x, y); } wlist->icon_x = x; wlist->icon_y = y; XMapWindow(dpy, wlist->icon->core->window); wlist->icon->mapped = 1; } wRaiseFrame(wlist->icon->core); } if (bringToCurrentWS) wWindowChangeWorkspace(wlist, scr->current_workspace); wlist->flags.hidden = 0; if (miniwindows && wlist->frame->workspace == scr->current_workspace) { wDeiconifyWindow(wlist); } WMPostNotificationName(WMNChangedState, wlist, "hide"); } else if (wlist->flags.shaded) { if (bringToCurrentWS) wWindowChangeWorkspace(wlist, scr->current_workspace); wlist->flags.hidden = 0; wRaiseFrame(wlist->frame->core); if (wlist->frame->workspace == scr->current_workspace) { XMapWindow(dpy, wlist->frame->core->window); if (miniwindows) { wUnshadeWindow(wlist); } } WMPostNotificationName(WMNChangedState, wlist, "hide"); } else if (wlist->flags.hidden) { unhideWindow(wapp->app_icon->icon, wapp->app_icon->x_pos, wapp->app_icon->y_pos, wlist, animate, bringToCurrentWS); animate = False; } else { if (bringToCurrentWS && wlist->frame->workspace != scr->current_workspace) { wWindowChangeWorkspace(wlist, scr->current_workspace); } wRaiseFrame(wlist->frame->core); } } wlist = next; } wapp->flags.skip_next_animation = 0; wapp->flags.hidden = 0; if (wapp->last_focused && wapp->last_focused->flags.mapped) { wRaiseFrame(wapp->last_focused->frame->core); wSetFocusTo(scr, wapp->last_focused); } else if (focused) { wSetFocusTo(scr, focused); } wapp->last_focused = NULL; if (wPreferences.auto_arrange_icons) wArrangeIcons(scr, True); #ifdef HIDDENDOT wAppIconPaint(wapp->app_icon); #endif } void wShowAllWindows(WScreen *scr) { WWindow *wwin, *old_foc; WApplication *wapp; old_foc = wwin = scr->focused_window; while (wwin) { if (!wwin->flags.internal_window && (scr->current_workspace == wwin->frame->workspace || IS_OMNIPRESENT(wwin))) { if (wwin->flags.miniaturized) { wwin->flags.skip_next_animation = 1; wDeiconifyWindow(wwin); } else if (wwin->flags.hidden) { wapp = wApplicationOf(wwin->main_window); if (wapp) { wUnhideApplication(wapp, False, False); } else { wwin->flags.skip_next_animation = 1; wDeiconifyWindow(wwin); } } } wwin = wwin->prev; } wSetFocusTo(scr, old_foc); /*wRaiseFrame(old_foc->frame->core); */ } void wRefreshDesktop(WScreen *scr) { Window win; XSetWindowAttributes attr; attr.backing_store = NotUseful; attr.save_under = False; win = XCreateWindow(dpy, scr->root_win, 0, 0, scr->scr_width, scr->scr_height, 0, CopyFromParent, CopyFromParent, (Visual *) CopyFromParent, CWBackingStore | CWSaveUnder, &attr); XMapRaised(dpy, win); XDestroyWindow(dpy, win); XFlush(dpy); } void wArrangeIcons(WScreen *scr, Bool arrangeAll) { WWindow *wwin; WAppIcon *aicon; int head; const int heads = wXineramaHeads(scr); struct HeadVars { int pf; /* primary axis */ int sf; /* secondary axis */ int fullW; int fullH; int pi, si; int sx1, sx2, sy1, sy2; /* screen boundary */ int sw, sh; int xo, yo; int xs, ys; } *vars; int isize = wPreferences.icon_size; vars = (struct HeadVars *)wmalloc(sizeof(struct HeadVars) * heads); for (head = 0; head < heads; ++head) { WArea area = wGetUsableAreaForHead(scr, head, NULL, False); WMRect rect = wmkrect(area.x1, area.y1, area.x2 - area.x1, area.y2 - area.y1); vars[head].pi = vars[head].si = 0; vars[head].sx1 = rect.pos.x; vars[head].sy1 = rect.pos.y; vars[head].sw = rect.size.width; vars[head].sh = rect.size.height; vars[head].sx2 = vars[head].sx1 + vars[head].sw; vars[head].sy2 = vars[head].sy1 + vars[head].sh; vars[head].sw = isize * (vars[head].sw / isize); vars[head].sh = isize * (vars[head].sh / isize); vars[head].fullW = (vars[head].sx2 - vars[head].sx1) / isize; vars[head].fullH = (vars[head].sy2 - vars[head].sy1) / isize; /* icon yard boundaries */ if (wPreferences.icon_yard & IY_VERT) { vars[head].pf = vars[head].fullH; vars[head].sf = vars[head].fullW; } else { vars[head].pf = vars[head].fullW; vars[head].sf = vars[head].fullH; } if (wPreferences.icon_yard & IY_RIGHT) { vars[head].xo = vars[head].sx2 - isize; vars[head].xs = -1; } else { vars[head].xo = vars[head].sx1; vars[head].xs = 1; } if (wPreferences.icon_yard & IY_TOP) { vars[head].yo = vars[head].sy1; vars[head].ys = 1; } else { vars[head].yo = vars[head].sy2 - isize; vars[head].ys = -1; } } #define X ((wPreferences.icon_yard & IY_VERT) \ ? vars[head].xo + vars[head].xs*(vars[head].si*isize) \ : vars[head].xo + vars[head].xs*(vars[head].pi*isize)) #define Y ((wPreferences.icon_yard & IY_VERT) \ ? vars[head].yo + vars[head].ys*(vars[head].pi*isize) \ : vars[head].yo + vars[head].ys*(vars[head].si*isize)) /* arrange application icons */ aicon = scr->app_icon_list; /* reverse them to avoid unnecessarily sliding of icons */ while (aicon && aicon->next) aicon = aicon->next; while (aicon) { if (!aicon->docked) { /* CHECK: can icon be NULL here ? */ /* The intention here is to place the AppIcon on the head that * contains most of the applications _main_ window. */ head = wGetHeadForWindow(aicon->icon->owner); if (aicon->x_pos != X || aicon->y_pos != Y) { #ifdef ANIMATIONS if (!wPreferences.no_animations) SlideWindow(aicon->icon->core->window, aicon->x_pos, aicon->y_pos, X, Y); #endif /* ANIMATIONS */ } wAppIconMove(aicon, X, Y); vars[head].pi++; if (vars[head].pi >= vars[head].pf) { vars[head].pi = 0; vars[head].si++; } } aicon = aicon->prev; } /* arrange miniwindows */ wwin = scr->focused_window; /* reverse them to avoid unnecessarily shuffling */ while (wwin && wwin->prev) wwin = wwin->prev; while (wwin) { if (wwin->icon && wwin->flags.miniaturized && !wwin->flags.hidden && (wwin->frame->workspace == scr->current_workspace || IS_OMNIPRESENT(wwin) || wPreferences.sticky_icons)) { head = wGetHeadForWindow(wwin); if (arrangeAll || !wwin->flags.icon_moved) { if (wwin->icon_x != X || wwin->icon_y != Y) move_window(wwin->icon->core->window, wwin->icon_x, wwin->icon_y, X, Y); wwin->icon_x = X; wwin->icon_y = Y; vars[head].pi++; if (vars[head].pi >= vars[head].pf) { vars[head].pi = 0; vars[head].si++; } } } if (arrangeAll) { wwin->flags.icon_moved = 0; } /* we reversed the order, so we use next */ wwin = wwin->next; } wfree(vars); } void wSelectWindow(WWindow *wwin, Bool flag) { WScreen *scr = wwin->screen_ptr; if (flag) { wwin->flags.selected = 1; if (wwin->frame->selected_border_pixel) XSetWindowBorder(dpy, wwin->frame->core->window, *wwin->frame->selected_border_pixel); else XSetWindowBorder(dpy, wwin->frame->core->window, scr->white_pixel); if (!HAS_BORDER(wwin)) { XSetWindowBorderWidth(dpy, wwin->frame->core->window, wwin->screen_ptr->frame_border_width); } if (!scr->selected_windows) scr->selected_windows = WMCreateArray(4); WMAddToArray(scr->selected_windows, wwin); } else { wwin->flags.selected = 0; if (wwin->frame->border_pixel) XSetWindowBorder(dpy, wwin->frame->core->window, *wwin->frame->border_pixel); else XSetWindowBorder(dpy, wwin->frame->core->window, scr->frame_border_pixel); if (!HAS_BORDER(wwin)) { XSetWindowBorderWidth(dpy, wwin->frame->core->window, 0); } if (scr->selected_windows) { WMRemoveFromArray(scr->selected_windows, wwin); } } } void wMakeWindowVisible(WWindow *wwin) { if (wwin->frame->workspace != wwin->screen_ptr->current_workspace) wWorkspaceChange(wwin->screen_ptr, wwin->frame->workspace); if (wwin->flags.shaded) { wUnshadeWindow(wwin); } if (wwin->flags.hidden) { WApplication *app; app = wApplicationOf(wwin->main_window); if (app) { /* trick to get focus to this window */ app->last_focused = wwin; wUnhideApplication(app, False, False); } } if (wwin->flags.miniaturized) { wDeiconifyWindow(wwin); } else { if (!WFLAGP(wwin, no_focusable)) wSetFocusTo(wwin->screen_ptr, wwin); wRaiseFrame(wwin->frame->core); } } /* * Do the animation while shading (called with what = SHADE) * or unshading (what = UNSHADE). */ #ifdef ANIMATIONS static void shade_animate(WWindow *wwin, Bool what) { int y, s, w, h; time_t time0 = time(NULL); if (wwin->flags.skip_next_animation || wPreferences.no_animations) return; switch(what) { case SHADE: if (!wwin->screen_ptr->flags.startup) { /* do the shading animation */ h = wwin->frame->core->height; s = h / SHADE_STEPS; if (s < 1) s = 1; w = wwin->frame->core->width; y = wwin->frame->top_width; while (h > wwin->frame->top_width + 1) { XMoveWindow(dpy, wwin->client_win, 0, y); XResizeWindow(dpy, wwin->frame->core->window, w, h); XFlush(dpy); if (time(NULL) - time0 > MAX_ANIMATION_TIME) break; if (SHADE_DELAY > 0) { wusleep(SHADE_DELAY * 1000L); } else { wusleep(10); } h -= s; y -= s; } XMoveWindow(dpy, wwin->client_win, 0, wwin->frame->top_width); } break; case UNSHADE: h = wwin->frame->top_width + wwin->frame->bottom_width; y = wwin->frame->top_width - wwin->client.height; s = abs(y) / SHADE_STEPS; if (s < 1) s = 1; w = wwin->frame->core->width; XMoveWindow(dpy, wwin->client_win, 0, y); if (s > 0) { while (h < wwin->client.height + wwin->frame->top_width + wwin->frame->bottom_width) { XResizeWindow(dpy, wwin->frame->core->window, w, h); XMoveWindow(dpy, wwin->client_win, 0, y); XFlush(dpy); if (SHADE_DELAY > 0) { wusleep(SHADE_DELAY * 2000L / 3); } else { wusleep(10); } h += s; y += s; if (time(NULL) - time0 > MAX_ANIMATION_TIME) break; } } XMoveWindow(dpy, wwin->client_win, 0, wwin->frame->top_width); break; } } #endif WindowMaker-0.95.5/src/wmspec.c0000644000175000017500000013374612214432632013230 00000000000000/* wmspec.c-- support for the wm-spec Hints * * Window Maker window manager * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ /* * TODO * ---- * * This file needs to be checked for all calls to XGetWindowProperty() and * proper checks need to be made on the returned values. Only checking for * return to be Success is not enough. -Dan */ #include "wconfig.h" #include #include #include #include #include #include "WindowMaker.h" #include "window.h" #include "screen.h" #include "workspace.h" #include "framewin.h" #include "actions.h" #include "client.h" #include "appicon.h" #include "wmspec.h" #include "icon.h" #include "stacking.h" #include "xinerama.h" #include "properties.h" /* Global variables */ extern Atom _XA_WM_DELETE_WINDOW; extern Time LastTimestamp; /* Root Window Properties */ static Atom net_supported; static Atom net_client_list; static Atom net_client_list_stacking; static Atom net_number_of_desktops; static Atom net_desktop_geometry; static Atom net_desktop_viewport; static Atom net_current_desktop; static Atom net_desktop_names; static Atom net_active_window; static Atom net_supporting_wm_check; static Atom net_virtual_roots; /* N/A */ static Atom net_desktop_layout; /* XXX */ static Atom net_showing_desktop; /* Other Root Window Messages */ static Atom net_close_window; static Atom net_moveresize_window; /* TODO */ static Atom net_wm_moveresize; /* TODO */ /* Application Window Properties */ static Atom net_wm_name; static Atom net_wm_visible_name; /* TODO (unnecessary?) */ static Atom net_wm_icon_name; static Atom net_wm_visible_icon_name; /* TODO (unnecessary?) */ static Atom net_wm_desktop; static Atom net_wm_window_type; static Atom net_wm_window_type_desktop; static Atom net_wm_window_type_dock; static Atom net_wm_window_type_toolbar; static Atom net_wm_window_type_menu; static Atom net_wm_window_type_utility; static Atom net_wm_window_type_splash; static Atom net_wm_window_type_dialog; static Atom net_wm_window_type_normal; static Atom net_wm_state; static Atom net_wm_state_modal; /* XXX: what is this?!? */ static Atom net_wm_state_sticky; static Atom net_wm_state_maximized_vert; static Atom net_wm_state_maximized_horz; static Atom net_wm_state_shaded; static Atom net_wm_state_skip_taskbar; static Atom net_wm_state_skip_pager; static Atom net_wm_state_hidden; static Atom net_wm_state_fullscreen; static Atom net_wm_state_above; static Atom net_wm_state_below; static Atom net_wm_allowed_actions; static Atom net_wm_action_move; static Atom net_wm_action_resize; static Atom net_wm_action_minimize; static Atom net_wm_action_shade; static Atom net_wm_action_stick; static Atom net_wm_action_maximize_horz; static Atom net_wm_action_maximize_vert; static Atom net_wm_action_fullscreen; static Atom net_wm_action_change_desktop; static Atom net_wm_action_close; static Atom net_wm_strut; /* XXX: see net_workarea */ static Atom net_wm_strut_partial; /* TODO: doesn't really fit into the current strut scheme */ static Atom net_wm_icon_geometry; /* FIXME: should work together with net_wm_handled_icons, gnome-panel-2.2.0.1 doesn't use _NET_WM_HANDLED_ICONS, thus present situation. */ static Atom net_wm_icon; static Atom net_wm_pid; /* TODO */ static Atom net_wm_handled_icons; /* FIXME: see net_wm_icon_geometry */ static Atom net_frame_extents; /* Window Manager Protocols */ static Atom net_wm_ping; /* TODO */ static Atom utf8_string; typedef struct { char *name; Atom *atom; } atomitem_t; static atomitem_t atomNames[] = { {"_NET_SUPPORTED", &net_supported}, {"_NET_CLIENT_LIST", &net_client_list}, {"_NET_CLIENT_LIST_STACKING", &net_client_list_stacking}, {"_NET_NUMBER_OF_DESKTOPS", &net_number_of_desktops}, {"_NET_DESKTOP_GEOMETRY", &net_desktop_geometry}, {"_NET_DESKTOP_VIEWPORT", &net_desktop_viewport}, {"_NET_CURRENT_DESKTOP", &net_current_desktop}, {"_NET_DESKTOP_NAMES", &net_desktop_names}, {"_NET_ACTIVE_WINDOW", &net_active_window}, {"_NET_SUPPORTING_WM_CHECK", &net_supporting_wm_check}, {"_NET_VIRTUAL_ROOTS", &net_virtual_roots}, {"_NET_DESKTOP_LAYOUT", &net_desktop_layout}, {"_NET_SHOWING_DESKTOP", &net_showing_desktop}, {"_NET_CLOSE_WINDOW", &net_close_window}, {"_NET_MOVERESIZE_WINDOW", &net_moveresize_window}, {"_NET_WM_MOVERESIZE", &net_wm_moveresize}, {"_NET_WM_NAME", &net_wm_name}, {"_NET_WM_VISIBLE_NAME", &net_wm_visible_name}, {"_NET_WM_ICON_NAME", &net_wm_icon_name}, {"_NET_WM_VISIBLE_ICON_NAME", &net_wm_visible_icon_name}, {"_NET_WM_DESKTOP", &net_wm_desktop}, {"_NET_WM_WINDOW_TYPE", &net_wm_window_type}, {"_NET_WM_WINDOW_TYPE_DESKTOP", &net_wm_window_type_desktop}, {"_NET_WM_WINDOW_TYPE_DOCK", &net_wm_window_type_dock}, {"_NET_WM_WINDOW_TYPE_TOOLBAR", &net_wm_window_type_toolbar}, {"_NET_WM_WINDOW_TYPE_MENU", &net_wm_window_type_menu}, {"_NET_WM_WINDOW_TYPE_UTILITY", &net_wm_window_type_utility}, {"_NET_WM_WINDOW_TYPE_SPLASH", &net_wm_window_type_splash}, {"_NET_WM_WINDOW_TYPE_DIALOG", &net_wm_window_type_dialog}, {"_NET_WM_WINDOW_TYPE_NORMAL", &net_wm_window_type_normal}, {"_NET_WM_STATE", &net_wm_state}, {"_NET_WM_STATE_MODAL", &net_wm_state_modal}, {"_NET_WM_STATE_STICKY", &net_wm_state_sticky}, {"_NET_WM_STATE_MAXIMIZED_VERT", &net_wm_state_maximized_vert}, {"_NET_WM_STATE_MAXIMIZED_HORZ", &net_wm_state_maximized_horz}, {"_NET_WM_STATE_SHADED", &net_wm_state_shaded}, {"_NET_WM_STATE_SKIP_TASKBAR", &net_wm_state_skip_taskbar}, {"_NET_WM_STATE_SKIP_PAGER", &net_wm_state_skip_pager}, {"_NET_WM_STATE_HIDDEN", &net_wm_state_hidden}, {"_NET_WM_STATE_FULLSCREEN", &net_wm_state_fullscreen}, {"_NET_WM_STATE_ABOVE", &net_wm_state_above}, {"_NET_WM_STATE_BELOW", &net_wm_state_below}, {"_NET_WM_ALLOWED_ACTIONS", &net_wm_allowed_actions}, {"_NET_WM_ACTION_MOVE", &net_wm_action_move}, {"_NET_WM_ACTION_RESIZE", &net_wm_action_resize}, {"_NET_WM_ACTION_MINIMIZE", &net_wm_action_minimize}, {"_NET_WM_ACTION_SHADE", &net_wm_action_shade}, {"_NET_WM_ACTION_STICK", &net_wm_action_stick}, {"_NET_WM_ACTION_MAXIMIZE_HORZ", &net_wm_action_maximize_horz}, {"_NET_WM_ACTION_MAXIMIZE_VERT", &net_wm_action_maximize_vert}, {"_NET_WM_ACTION_FULLSCREEN", &net_wm_action_fullscreen}, {"_NET_WM_ACTION_CHANGE_DESKTOP", &net_wm_action_change_desktop}, {"_NET_WM_ACTION_CLOSE", &net_wm_action_close}, {"_NET_WM_STRUT", &net_wm_strut}, {"_NET_WM_STRUT_PARTIAL", &net_wm_strut_partial}, {"_NET_WM_ICON_GEOMETRY", &net_wm_icon_geometry}, {"_NET_WM_ICON", &net_wm_icon}, {"_NET_WM_PID", &net_wm_pid}, {"_NET_WM_HANDLED_ICONS", &net_wm_handled_icons}, {"_NET_FRAME_EXTENTS", &net_frame_extents}, {"_NET_WM_PING", &net_wm_ping}, {"UTF8_STRING", &utf8_string}, }; #define atomNr (sizeof(atomNames)/sizeof(atomNames[0])) #define _NET_WM_STATE_REMOVE 0 #define _NET_WM_STATE_ADD 1 #define _NET_WM_STATE_TOGGLE 2 #define _NET_WM_MOVERESIZE_SIZE_TOPLEFT 0 #define _NET_WM_MOVERESIZE_SIZE_TOP 1 #define _NET_WM_MOVERESIZE_SIZE_TOPRIGHT 2 #define _NET_WM_MOVERESIZE_SIZE_RIGHT 3 #define _NET_WM_MOVERESIZE_SIZE_BOTTOMRIGHT 4 #define _NET_WM_MOVERESIZE_SIZE_BOTTOM 5 #define _NET_WM_MOVERESIZE_SIZE_BOTTOMLEFT 6 #define _NET_WM_MOVERESIZE_SIZE_LEFT 7 #define _NET_WM_MOVERESIZE_MOVE 8 /* movement only */ #define _NET_WM_MOVERESIZE_SIZE_KEYBOARD 9 /* size via keyboard */ #define _NET_WM_MOVERESIZE_MOVE_KEYBOARD 10 /* move via keyboard */ static void observer(void *self, WMNotification *notif); static void wsobserver(void *self, WMNotification *notif); static void updateClientList(WScreen *scr); static void updateClientListStacking(WScreen *scr, WWindow *); static void updateWorkspaceNames(WScreen *scr); static void updateCurrentWorkspace(WScreen *scr); static void updateWorkspaceCount(WScreen *scr); static void wNETWMShowingDesktop(WScreen *scr, Bool show); typedef struct NetData { WScreen *scr; WReservedArea *strut; WWindow **show_desktop; } NetData; static void setSupportedHints(WScreen *scr) { Atom atom[atomNr]; int i = 0; /* set supported hints list */ /* XXX: extend this !!! */ atom[i++] = net_client_list; atom[i++] = net_client_list_stacking; atom[i++] = net_number_of_desktops; atom[i++] = net_desktop_geometry; atom[i++] = net_desktop_viewport; atom[i++] = net_current_desktop; atom[i++] = net_desktop_names; atom[i++] = net_active_window; atom[i++] = net_supporting_wm_check; atom[i++] = net_showing_desktop; #if 0 atom[i++] = net_wm_moveresize; #endif atom[i++] = net_wm_desktop; atom[i++] = net_wm_window_type; atom[i++] = net_wm_window_type_desktop; atom[i++] = net_wm_window_type_dock; atom[i++] = net_wm_window_type_toolbar; atom[i++] = net_wm_window_type_menu; atom[i++] = net_wm_window_type_utility; atom[i++] = net_wm_window_type_splash; atom[i++] = net_wm_window_type_dialog; atom[i++] = net_wm_window_type_normal; atom[i++] = net_wm_state; /* atom[i++] = net_wm_state_modal; *//* XXX: not sure where/when to use it. */ atom[i++] = net_wm_state_sticky; atom[i++] = net_wm_state_shaded; atom[i++] = net_wm_state_maximized_horz; atom[i++] = net_wm_state_maximized_vert; atom[i++] = net_wm_state_skip_taskbar; atom[i++] = net_wm_state_skip_pager; atom[i++] = net_wm_state_hidden; atom[i++] = net_wm_state_fullscreen; atom[i++] = net_wm_state_above; atom[i++] = net_wm_state_below; atom[i++] = net_wm_allowed_actions; atom[i++] = net_wm_action_move; atom[i++] = net_wm_action_resize; atom[i++] = net_wm_action_minimize; atom[i++] = net_wm_action_shade; atom[i++] = net_wm_action_stick; atom[i++] = net_wm_action_maximize_horz; atom[i++] = net_wm_action_maximize_vert; atom[i++] = net_wm_action_fullscreen; atom[i++] = net_wm_action_change_desktop; atom[i++] = net_wm_action_close; atom[i++] = net_wm_strut; atom[i++] = net_wm_icon_geometry; atom[i++] = net_wm_icon; atom[i++] = net_wm_handled_icons; atom[i++] = net_frame_extents; atom[i++] = net_wm_name; atom[i++] = net_wm_icon_name; XChangeProperty(dpy, scr->root_win, net_supported, XA_ATOM, 32, PropModeReplace, (unsigned char *)atom, i); /* set supporting wm hint */ XChangeProperty(dpy, scr->root_win, net_supporting_wm_check, XA_WINDOW, 32, PropModeReplace, (unsigned char *)&scr->info_window, 1); XChangeProperty(dpy, scr->info_window, net_supporting_wm_check, XA_WINDOW, 32, PropModeReplace, (unsigned char *)&scr->info_window, 1); } void wNETWMUpdateDesktop(WScreen *scr) { long *views, sizes[2]; int count, i; if (scr->workspace_count == 0) return; count = scr->workspace_count * 2; views = wmalloc(sizeof(long) * count); /*memset(views, 0, sizeof(long) * count); */ sizes[0] = scr->scr_width; sizes[1] = scr->scr_height; for (i = 0; i < scr->workspace_count; i++) { views[2 * i + 0] = 0; views[2 * i + 1] = 0; } XChangeProperty(dpy, scr->root_win, net_desktop_geometry, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)sizes, 2); XChangeProperty(dpy, scr->root_win, net_desktop_viewport, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)views, count); wfree(views); } int wNETWMGetCurrentDesktopFromHint(WScreen *scr) { int count; unsigned char *prop; prop = PropGetCheckProperty(scr->root_win, net_current_desktop, XA_CARDINAL, 0, 1, &count); if (prop) { int desktop = *(long *)prop; XFree(prop); return desktop; } return -1; } /* * Find the best icon to be used by Window Maker for appicon/miniwindows. * Currently the algorithm is to take the image with the size closest * to icon_size x icon_size, but never bigger than that. * * This algorithm is very poorly implemented and needs to be redone (it can * easily select images with very large widths and very small heights over * square images, if the area of the former is closer to the desired one). * * The logic can also be changed to accept bigger images and scale them down. */ static unsigned long *findBestIcon(unsigned long *data, unsigned long items) { int size, wanted, d; unsigned long i, distance; unsigned long *icon; /* better use only 75% of icon_size. For 64x64 this means 48x48 * This leaves room around the icon for the miniwindow title and * results in better overall aesthetics -Dan */ wanted = wPreferences.icon_size * wPreferences.icon_size; for (icon = NULL, distance = wanted, i = 0L; i < items - 1;) { size = data[i] * data[i + 1]; if (size == 0) break; d = wanted - size; if (d >= 0 && d <= distance && (i + size + 2) <= items) { distance = d; icon = &data[i]; } i += size + 2; } return icon; } static RImage *makeRImageFromARGBData(unsigned long *data) { int size, width, height, i; RImage *image; unsigned char *imgdata; unsigned long pixel; width = data[0]; height = data[1]; size = width * height; if (size == 0) return NULL; image = RCreateImage(width, height, True); for (imgdata = image->data, i = 2; i < size + 2; i++, imgdata += 4) { pixel = data[i]; imgdata[3] = (pixel >> 24) & 0xff; /* A */ imgdata[0] = (pixel >> 16) & 0xff; /* R */ imgdata[1] = (pixel >> 8) & 0xff; /* G */ imgdata[2] = (pixel >> 0) & 0xff; /* B */ } return image; } RImage *get_window_image_from_x11(Window window) { RImage *image; Atom type; int format; unsigned long items, rest; unsigned long *property, *data; /* Get the icon from X11 Window */ if (XGetWindowProperty(dpy, window, net_wm_icon, 0L, LONG_MAX, False, XA_CARDINAL, &type, &format, &items, &rest, (unsigned char **)&property) != Success || !property) return NULL; if (type != XA_CARDINAL || format != 32 || items < 2) { XFree(property); return NULL; } /* Find the best icon */ data = findBestIcon(property, items); if (!data) { XFree(property); return NULL; } /* Save the best icon in the X11 icon */ image = makeRImageFromARGBData(data); XFree(property); /* Resize the image to the correct value */ image = wIconValidateIconSize(image, wPreferences.icon_size); return image; } static void updateIconImage(WWindow *wwin) { /* Remove the icon image from X11 */ if (wwin->net_icon_image) RReleaseImage(wwin->net_icon_image); /* Save the icon in the X11 icon */ wwin->net_icon_image = get_window_image_from_x11(wwin->client_win); /* Refresh the Window Icon */ if (wwin->icon) wIconUpdate(wwin->icon); /* Refresh the application icon */ WApplication *app = wApplicationOf(wwin->main_window); if (app && app->app_icon) { wIconUpdate(app->app_icon->icon); wAppIconPaint(app->app_icon); } } static void updateShowDesktop(WScreen *scr, Bool show) { long foo; foo = (show == True); XChangeProperty(dpy, scr->root_win, net_showing_desktop, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&foo, 1); } static void wNETWMShowingDesktop(WScreen *scr, Bool show) { if (show && scr->netdata->show_desktop == NULL) { WWindow *tmp, **wins; int i = 0; wins = (WWindow **) wmalloc(sizeof(WWindow *) * (scr->window_count + 1)); tmp = scr->focused_window; while (tmp) { if (!tmp->flags.hidden && !tmp->flags.miniaturized && !WFLAGP(tmp, skip_window_list)) { wins[i++] = tmp; tmp->flags.skip_next_animation = 1; tmp->flags.net_show_desktop = 1; wIconifyWindow(tmp); } tmp = tmp->prev; } wins[i++] = NULL; scr->netdata->show_desktop = wins; updateShowDesktop(scr, True); } else if (scr->netdata->show_desktop != NULL) { /* FIXME: get rid of workspace flashing ! */ int ws = scr->current_workspace; WWindow **tmp; for (tmp = scr->netdata->show_desktop; *tmp; ++tmp) { wDeiconifyWindow(*tmp); (*tmp)->flags.net_show_desktop = 0; } if (ws != scr->current_workspace) wWorkspaceChange(scr, ws); wfree(scr->netdata->show_desktop); scr->netdata->show_desktop = NULL; updateShowDesktop(scr, False); } } void wNETWMInitStuff(WScreen *scr) { NetData *data; int i; #ifdef DEBUG_WMSPEC wmessage("wNETWMInitStuff"); #endif #ifdef HAVE_XINTERNATOMS { Atom atoms[atomNr]; char *names[atomNr]; for (i = 0; i < atomNr; ++i) names[i] = atomNames[i].name; XInternAtoms(dpy, &names[0], atomNr, False, atoms); for (i = 0; i < atomNr; ++i) *atomNames[i].atom = atoms[i]; } #else for (i = 0; i < atomNr; i++) *atomNames[i].atom = XInternAtom(dpy, atomNames[i].name, False); #endif data = wmalloc(sizeof(NetData)); data->scr = scr; data->strut = NULL; data->show_desktop = NULL; scr->netdata = data; setSupportedHints(scr); WMAddNotificationObserver(observer, data, WMNManaged, NULL); WMAddNotificationObserver(observer, data, WMNUnmanaged, NULL); WMAddNotificationObserver(observer, data, WMNChangedWorkspace, NULL); WMAddNotificationObserver(observer, data, WMNChangedState, NULL); WMAddNotificationObserver(observer, data, WMNChangedFocus, NULL); WMAddNotificationObserver(observer, data, WMNChangedStacking, NULL); WMAddNotificationObserver(observer, data, WMNChangedName, NULL); WMAddNotificationObserver(wsobserver, data, WMNWorkspaceCreated, NULL); WMAddNotificationObserver(wsobserver, data, WMNWorkspaceDestroyed, NULL); WMAddNotificationObserver(wsobserver, data, WMNWorkspaceChanged, NULL); WMAddNotificationObserver(wsobserver, data, WMNWorkspaceNameChanged, NULL); updateClientList(scr); updateClientListStacking(scr, NULL); updateWorkspaceCount(scr); updateWorkspaceNames(scr); updateShowDesktop(scr, False); wScreenUpdateUsableArea(scr); } void wNETWMCleanup(WScreen *scr) { int i; for (i = 0; i < atomNr; i++) XDeleteProperty(dpy, scr->root_win, *atomNames[i].atom); } void wNETWMUpdateActions(WWindow *wwin, Bool del) { Atom action[10]; /* nr of actions atoms defined */ int i = 0; if (del) { XDeleteProperty(dpy, wwin->client_win, net_wm_allowed_actions); return; } if (IS_MOVABLE(wwin)) action[i++] = net_wm_action_move; if (IS_RESIZABLE(wwin)) action[i++] = net_wm_action_resize; if (!WFLAGP(wwin, no_miniaturizable)) action[i++] = net_wm_action_minimize; if (!WFLAGP(wwin, no_shadeable)) action[i++] = net_wm_action_shade; /* if (!WFLAGP(wwin, no_stickable)) */ action[i++] = net_wm_action_stick; /* if (!(WFLAGP(wwin, no_maximizeable) & MAX_HORIZONTAL)) */ if (IS_RESIZABLE(wwin)) action[i++] = net_wm_action_maximize_horz; /* if (!(WFLAGP(wwin, no_maximizeable) & MAX_VERTICAL)) */ if (IS_RESIZABLE(wwin)) action[i++] = net_wm_action_maximize_vert; /* if (!WFLAGP(wwin, no_fullscreen)) */ action[i++] = net_wm_action_fullscreen; /* if (!WFLAGP(wwin, no_change_desktop)) */ action[i++] = net_wm_action_change_desktop; if (!WFLAGP(wwin, no_closable)) action[i++] = net_wm_action_close; XChangeProperty(dpy, wwin->client_win, net_wm_allowed_actions, XA_ATOM, 32, PropModeReplace, (unsigned char *)action, i); } Bool wNETWMGetUsableArea(WScreen *scr, int head, WArea *area) { WReservedArea *cur; WMRect rect; if (!scr->netdata || !scr->netdata->strut) return False; area->x1 = area->y1 = area->x2 = area->y2 = 0; for (cur = scr->netdata->strut; cur; cur = cur->next) { WWindow *wwin = wWindowFor(cur->window); if (wWindowTouchesHead(wwin, head)) { if (cur->area.x1 > area->x1) area->x1 = cur->area.x1; if (cur->area.y1 > area->y1) area->y1 = cur->area.y1; if (cur->area.x2 > area->x2) area->x2 = cur->area.x2; if (cur->area.y2 > area->y2) area->y2 = cur->area.y2; } } if (area->x1 == 0 && area->x2 == 0 && area->y1 == 0 && area->y2 == 0) return False; rect = wGetRectForHead(scr, head); area->x1 = rect.pos.x + area->x1; area->x2 = rect.pos.x + rect.size.width - area->x2; area->y1 = rect.pos.y + area->y1; area->y2 = rect.pos.y + rect.size.height - area->y2; return True; } static void updateClientList(WScreen *scr) { WWindow *wwin; Window *windows; int count; windows = (Window *) wmalloc(sizeof(Window) * (scr->window_count + 1)); count = 0; wwin = scr->focused_window; while (wwin) { windows[count++] = wwin->client_win; wwin = wwin->prev; } XChangeProperty(dpy, scr->root_win, net_client_list, XA_WINDOW, 32, PropModeReplace, (unsigned char *)windows, count); wfree(windows); XFlush(dpy); } static void updateClientListStacking(WScreen *scr, WWindow *wwin_excl) { WWindow *wwin; Window *client_list, *client_list_reverse; int client_count, i; WCoreWindow *tmp; WMBagIterator iter; /* update client list */ i = scr->window_count + 1; client_list = (Window *) wmalloc(sizeof(Window) * i); client_list_reverse = (Window *) wmalloc(sizeof(Window) * i); client_count = 0; WM_ETARETI_BAG(scr->stacking_list, tmp, iter) { while (tmp) { wwin = wWindowFor(tmp->window); /* wwin_excl is a window to exclude from the list (e.g. it's now unmanaged) */ if (wwin && (wwin != wwin_excl)) client_list[client_count++] = wwin->client_win; tmp = tmp->stacking->under; } } for (i = 0; i < client_count; i++) { Window w = client_list[client_count - i - 1]; client_list_reverse[i] = w; } XChangeProperty(dpy, scr->root_win, net_client_list_stacking, XA_WINDOW, 32, PropModeReplace, (unsigned char *)client_list_reverse, client_count); wfree(client_list); wfree(client_list_reverse); XFlush(dpy); } static void updateWorkspaceCount(WScreen *scr) { /* changeable */ long count; count = scr->workspace_count; XChangeProperty(dpy, scr->root_win, net_number_of_desktops, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&count, 1); } static void updateCurrentWorkspace(WScreen *scr) { /* changeable */ long count; count = scr->current_workspace; XChangeProperty(dpy, scr->root_win, net_current_desktop, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&count, 1); } static void updateWorkspaceNames(WScreen *scr) { char buf[MAX_WORKSPACES * (MAX_WORKSPACENAME_WIDTH + 1)], *pos; unsigned int i, len, curr_size; pos = buf; len = 0; for (i = 0; i < scr->workspace_count; i++) { curr_size = strlen(scr->workspaces[i]->name); strcpy(pos, scr->workspaces[i]->name); pos += (curr_size + 1); len += (curr_size + 1); } XChangeProperty(dpy, scr->root_win, net_desktop_names, utf8_string, 8, PropModeReplace, (unsigned char *)buf, len); } static void updateFocusHint(WScreen *scr, WWindow *wwin) { /* changeable */ Window window; if (!scr->focused_window || !scr->focused_window->flags.focused) window = None; else window = scr->focused_window->client_win; XChangeProperty(dpy, scr->root_win, net_active_window, XA_WINDOW, 32, PropModeReplace, (unsigned char *)&window, 1); } static void updateWorkspaceHint(WWindow *wwin, Bool fake, Bool del) { long l; if (del) { XDeleteProperty(dpy, wwin->client_win, net_wm_desktop); } else { l = ((fake || IS_OMNIPRESENT(wwin)) ? -1 : wwin->frame->workspace); XChangeProperty(dpy, wwin->client_win, net_wm_desktop, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&l, 1); } } static void updateStateHint(WWindow *wwin, Bool changedWorkspace, Bool del) { /* changeable */ if (del) { XDeleteProperty(dpy, wwin->client_win, net_wm_state); } else { Atom state[15]; /* nr of defined state atoms */ int i = 0; if (changedWorkspace || (wPreferences.sticky_icons && !IS_OMNIPRESENT(wwin))) updateWorkspaceHint(wwin, False, False); if (IS_OMNIPRESENT(wwin)) state[i++] = net_wm_state_sticky; if (wwin->flags.shaded) state[i++] = net_wm_state_shaded; if (wwin->flags.maximized & MAX_HORIZONTAL) state[i++] = net_wm_state_maximized_horz; if (wwin->flags.maximized & MAX_VERTICAL) state[i++] = net_wm_state_maximized_vert; if (WFLAGP(wwin, skip_window_list)) state[i++] = net_wm_state_skip_taskbar; if (wwin->flags.net_skip_pager) state[i++] = net_wm_state_skip_pager; if ((wwin->flags.hidden || wwin->flags.miniaturized) && !wwin->flags.net_show_desktop) { state[i++] = net_wm_state_hidden; state[i++] = net_wm_state_skip_pager; if (wwin->flags.miniaturized && wPreferences.sticky_icons) { if (!IS_OMNIPRESENT(wwin)) updateWorkspaceHint(wwin, True, False); state[i++] = net_wm_state_sticky; } } if (WFLAGP(wwin, sunken)) state[i++] = net_wm_state_below; if (WFLAGP(wwin, floating)) state[i++] = net_wm_state_above; if (wwin->flags.fullscreen) state[i++] = net_wm_state_fullscreen; XChangeProperty(dpy, wwin->client_win, net_wm_state, XA_ATOM, 32, PropModeReplace, (unsigned char *)state, i); } } static Bool updateStrut(WScreen *scr, Window w, Bool adding) { WReservedArea *area; Bool hasState = False; if (adding) { Atom type_ret; int fmt_ret; unsigned long nitems_ret, bytes_after_ret; long *data = NULL; if ((XGetWindowProperty(dpy, w, net_wm_strut, 0, 4, False, XA_CARDINAL, &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret, (unsigned char **)&data) == Success && data) || ((XGetWindowProperty(dpy, w, net_wm_strut_partial, 0, 12, False, XA_CARDINAL, &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret, (unsigned char **)&data) == Success && data))) { /* XXX: This is strictly incorrect in the case of net_wm_strut_partial... * Discard the start and end properties from the partial strut and treat it as * a (deprecated) strut. * This means we are marking the whole width or height of the screen as * reserved, which is not necessarily what the strut defines. However for the * purposes of determining placement or maximization it's probably good enough. */ area = (WReservedArea *) wmalloc(sizeof(WReservedArea)); area->area.x1 = data[0]; area->area.x2 = data[1]; area->area.y1 = data[2]; area->area.y2 = data[3]; area->window = w; area->next = scr->netdata->strut; scr->netdata->strut = area; XFree(data); hasState = True; } } else { /* deleting */ area = scr->netdata->strut; if (area) { if (area->window == w) { scr->netdata->strut = area->next; wfree(area); hasState = True; } else { while (area->next && area->next->window != w) area = area->next; if (area->next) { WReservedArea *next; next = area->next->next; wfree(area->next); area->next = next; hasState = True; } } } } return hasState; } static int getWindowLayer(WWindow *wwin) { int layer = WMNormalLevel; if (wwin->type == net_wm_window_type_desktop) { layer = WMDesktopLevel; } else if (wwin->type == net_wm_window_type_dock) { layer = WMDockLevel; } else if (wwin->type == net_wm_window_type_toolbar) { layer = WMMainMenuLevel; } else if (wwin->type == net_wm_window_type_menu) { layer = WMSubmenuLevel; } else if (wwin->type == net_wm_window_type_utility) { } else if (wwin->type == net_wm_window_type_splash) { } else if (wwin->type == net_wm_window_type_dialog) { if (wwin->transient_for) { WWindow *parent = wWindowFor(wwin->transient_for); if (parent && parent->flags.fullscreen) layer = WMFullscreenLevel; } /* //layer = WMPopUpLevel; // this seems a bad idea -Dan */ } else if (wwin->type == net_wm_window_type_normal) { } if (wwin->client_flags.sunken && WMSunkenLevel < layer) layer = WMSunkenLevel; if (wwin->client_flags.floating && WMFloatingLevel > layer) layer = WMFloatingLevel; return layer; } static void doStateAtom(WWindow *wwin, Atom state, int set, Bool init) { if (state == net_wm_state_sticky) { if (set == _NET_WM_STATE_TOGGLE) set = !IS_OMNIPRESENT(wwin); if (set != wwin->flags.omnipresent) wWindowSetOmnipresent(wwin, set); } else if (state == net_wm_state_shaded) { if (set == _NET_WM_STATE_TOGGLE) set = !wwin->flags.shaded; if (init) { wwin->flags.shaded = set; } else { if (set) wShadeWindow(wwin); else wUnshadeWindow(wwin); } } else if (state == net_wm_state_skip_taskbar) { if (set == _NET_WM_STATE_TOGGLE) set = !wwin->client_flags.skip_window_list; wwin->client_flags.skip_window_list = set; } else if (state == net_wm_state_skip_pager) { if (set == _NET_WM_STATE_TOGGLE) set = !wwin->flags.net_skip_pager; wwin->flags.net_skip_pager = set; } else if (state == net_wm_state_maximized_vert) { if (set == _NET_WM_STATE_TOGGLE) set = !(wwin->flags.maximized & MAX_VERTICAL); if (init) { wwin->flags.maximized |= (set ? MAX_VERTICAL : 0); } else { if (set) wMaximizeWindow(wwin, wwin->flags.maximized | MAX_VERTICAL); else wMaximizeWindow(wwin, wwin->flags.maximized & ~MAX_VERTICAL); } } else if (state == net_wm_state_maximized_horz) { if (set == _NET_WM_STATE_TOGGLE) set = !(wwin->flags.maximized & MAX_HORIZONTAL); if (init) { wwin->flags.maximized |= (set ? MAX_HORIZONTAL : 0); } else { if (set) wMaximizeWindow(wwin, wwin->flags.maximized | MAX_HORIZONTAL); else wMaximizeWindow(wwin, wwin->flags.maximized & ~MAX_HORIZONTAL); } } else if (state == net_wm_state_hidden) { if (set == _NET_WM_STATE_TOGGLE) set = !(wwin->flags.miniaturized); if (init) { wwin->flags.miniaturized = set; } else { if (set) wIconifyWindow(wwin); else wDeiconifyWindow(wwin); } } else if (state == net_wm_state_fullscreen) { if (set == _NET_WM_STATE_TOGGLE) set = !(wwin->flags.fullscreen); if (init) { wwin->flags.fullscreen = set; } else { if (set) wFullscreenWindow(wwin); else wUnfullscreenWindow(wwin); } } else if (state == net_wm_state_above) { if (set == _NET_WM_STATE_TOGGLE) set = !(wwin->client_flags.floating); if (init) { wwin->client_flags.floating = set; } else { wwin->client_flags.floating = set; ChangeStackingLevel(wwin->frame->core, getWindowLayer(wwin)); } } else if (state == net_wm_state_below) { if (set == _NET_WM_STATE_TOGGLE) set = !(wwin->client_flags.sunken); if (init) { wwin->client_flags.sunken = set; } else { wwin->client_flags.sunken = set; ChangeStackingLevel(wwin->frame->core, getWindowLayer(wwin)); } } else { #ifdef DEBUG_WMSPEC wmessage("doStateAtom unknown atom %s set %d\n", XGetAtomName(dpy, state), set); #endif } } static void removeIcon(WWindow *wwin) { if (wwin->icon == NULL) return; if (wwin->flags.miniaturized && wwin->icon->mapped) { XUnmapWindow(dpy, wwin->icon->core->window); RemoveFromStackList(wwin->icon->core); wIconDestroy(wwin->icon); wwin->icon = NULL; } } static Bool handleWindowType(WWindow *wwin, Atom type, int *layer) { Bool ret = True; if (type == net_wm_window_type_desktop) { wwin->client_flags.no_titlebar = 1; wwin->client_flags.no_resizable = 1; wwin->client_flags.no_miniaturizable = 1; wwin->client_flags.no_border = 1; wwin->client_flags.no_resizebar = 1; wwin->client_flags.no_shadeable = 1; wwin->client_flags.no_movable = 1; wwin->client_flags.omnipresent = 1; wwin->client_flags.skip_window_list = 1; wwin->client_flags.skip_switchpanel = 1; wwin->client_flags.dont_move_off = 1; wwin->client_flags.no_appicon = 1; wwin->flags.net_skip_pager = 1; wwin->frame_x = 0; wwin->frame_y = 0; } else if (type == net_wm_window_type_dock) { wwin->client_flags.no_titlebar = 1; wwin->client_flags.no_resizable = 1; wwin->client_flags.no_miniaturizable = 1; wwin->client_flags.no_border = 1; /* XXX: really not a single decoration. */ wwin->client_flags.no_resizebar = 1; wwin->client_flags.no_shadeable = 1; wwin->client_flags.no_movable = 1; wwin->client_flags.omnipresent = 1; wwin->client_flags.skip_window_list = 1; wwin->client_flags.skip_switchpanel = 1; wwin->client_flags.dont_move_off = 1; wwin->flags.net_skip_pager = 1; } else if (type == net_wm_window_type_toolbar) { wwin->client_flags.no_titlebar = 1; wwin->client_flags.no_resizable = 1; wwin->client_flags.no_miniaturizable = 1; wwin->client_flags.no_resizebar = 1; wwin->client_flags.no_shadeable = 1; wwin->client_flags.skip_window_list = 1; wwin->client_flags.skip_switchpanel = 1; wwin->client_flags.dont_move_off = 1; wwin->client_flags.no_appicon = 1; } else if (type == net_wm_window_type_menu) { wwin->client_flags.no_titlebar = 1; wwin->client_flags.no_resizable = 1; wwin->client_flags.no_miniaturizable = 1; wwin->client_flags.no_resizebar = 1; wwin->client_flags.no_shadeable = 1; wwin->client_flags.skip_window_list = 1; wwin->client_flags.skip_switchpanel = 1; wwin->client_flags.dont_move_off = 1; wwin->client_flags.no_appicon = 1; } else if (type == net_wm_window_type_utility) { wwin->client_flags.no_appicon = 1; } else if (type == net_wm_window_type_splash) { wwin->client_flags.no_titlebar = 1; wwin->client_flags.no_resizable = 1; wwin->client_flags.no_miniaturizable = 1; wwin->client_flags.no_resizebar = 1; wwin->client_flags.no_shadeable = 1; wwin->client_flags.no_movable = 1; wwin->client_flags.skip_window_list = 1; wwin->client_flags.skip_switchpanel = 1; wwin->client_flags.dont_move_off = 1; wwin->client_flags.no_appicon = 1; wwin->flags.net_skip_pager = 1; } else if (type == net_wm_window_type_dialog) { /* These also seem a bad idea in our context -Dan // wwin->client_flags.skip_window_list = 1; // wwin->client_flags.no_appicon = 1; */ } else if (type == net_wm_window_type_normal) { } else { ret = False; } wwin->type = type; *layer = getWindowLayer(wwin); return ret; } void wNETWMPositionSplash(WWindow *wwin, int *x, int *y, int width, int height) { if (wwin->type == net_wm_window_type_splash) { WScreen *scr = wwin->screen_ptr; WMRect rect = wGetRectForHead(scr, wGetHeadForPointerLocation(scr)); *x = rect.pos.x + (rect.size.width - width) / 2; *y = rect.pos.y + (rect.size.height - height) / 2; } } static void updateWindowType(WWindow *wwin) { Atom type_ret; int fmt_ret, layer; unsigned long nitems_ret, bytes_after_ret; long *data = NULL; if (XGetWindowProperty(dpy, wwin->client_win, net_wm_window_type, 0, 1, False, XA_ATOM, &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret, (unsigned char **)&data) == Success && data) { int i; Atom *type = (Atom *) data; for (i = 0; i < nitems_ret; ++i) { if (handleWindowType(wwin, type[i], &layer)) break; } XFree(data); } if (wwin->frame != NULL) { ChangeStackingLevel(wwin->frame->core, layer); wwin->frame->flags.need_texture_change = 1; wWindowConfigureBorders(wwin); wFrameWindowPaint(wwin->frame); wNETWMUpdateActions(wwin, False); } } void wNETWMCheckClientHints(WWindow *wwin, int *layer, int *workspace) { Atom type_ret; int fmt_ret, i; unsigned long nitems_ret, bytes_after_ret; long *data = NULL; if (XGetWindowProperty(dpy, wwin->client_win, net_wm_desktop, 0, 1, False, XA_CARDINAL, &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret, (unsigned char **)&data) == Success && data) { long desktop = *data; XFree(data); if (desktop == -1) wwin->client_flags.omnipresent = 1; else *workspace = desktop; } if (XGetWindowProperty(dpy, wwin->client_win, net_wm_state, 0, 1, False, XA_ATOM, &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret, (unsigned char **)&data) == Success && data) { Atom *state = (Atom *) data; for (i = 0; i < nitems_ret; ++i) doStateAtom(wwin, state[i], _NET_WM_STATE_ADD, True); XFree(data); } if (XGetWindowProperty(dpy, wwin->client_win, net_wm_window_type, 0, 1, False, XA_ATOM, &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret, (unsigned char **)&data) == Success && data) { Atom *type = (Atom *) data; for (i = 0; i < nitems_ret; ++i) { if (handleWindowType(wwin, type[i], layer)) break; } XFree(data); } wNETWMUpdateActions(wwin, False); updateStrut(wwin->screen_ptr, wwin->client_win, False); updateStrut(wwin->screen_ptr, wwin->client_win, True); wScreenUpdateUsableArea(wwin->screen_ptr); } static Bool updateNetIconInfo(WWindow *wwin) { Atom type_ret; int fmt_ret; unsigned long nitems_ret, bytes_after_ret; long *data = NULL; Bool hasState = False; Bool old_state = wwin->flags.net_handle_icon; if (XGetWindowProperty(dpy, wwin->client_win, net_wm_handled_icons, 0, 1, False, XA_CARDINAL, &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret, (unsigned char **)&data) == Success && data) { long handled = *data; wwin->flags.net_handle_icon = (handled != 0); XFree(data); hasState = True; } else { wwin->flags.net_handle_icon = False; } if (XGetWindowProperty(dpy, wwin->client_win, net_wm_icon_geometry, 0, 4, False, XA_CARDINAL, &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret, (unsigned char **)&data) == Success && data) { #ifdef NETWM_PROPER if (wwin->flags.net_handle_icon) #else wwin->flags.net_handle_icon = True; #endif { wwin->icon_x = data[0]; wwin->icon_y = data[1]; wwin->icon_w = data[2]; wwin->icon_h = data[3]; } XFree(data); hasState = True; } else { wwin->flags.net_handle_icon = False; } if (wwin->flags.miniaturized && old_state != wwin->flags.net_handle_icon) { if (wwin->flags.net_handle_icon) { removeIcon(wwin); } else { wwin->flags.miniaturized = False; wwin->flags.skip_next_animation = True; wIconifyWindow(wwin); } } return hasState; } void wNETWMCheckInitialClientState(WWindow *wwin) { #ifdef DEBUG_WMSPEC wmessage("wNETWMCheckInitialClientState"); #endif wNETWMShowingDesktop(wwin->screen_ptr, False); updateNetIconInfo(wwin); updateIconImage(wwin); } static void handleDesktopNames(XClientMessageEvent *event, WScreen *scr) { unsigned long nitems_ret, bytes_after_ret; char *data, *names[32]; int fmt_ret, i, n; Atom type_ret; if (XGetWindowProperty(dpy, scr->root_win, net_desktop_names, 0, 1, False, utf8_string, &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret, (unsigned char **)&data) != Success) return; if (data == NULL) return; if (type_ret != utf8_string || fmt_ret != 8) return; n = 0; names[n] = data; for (i = 0; i < nitems_ret; i++) { if (data[i] == 0) { n++; names[n] = &data[i]; } else if (*names[n] == 0) { names[n] = &data[i]; wWorkspaceRename(scr, n, names[n]); } } } Bool wNETWMProcessClientMessage(XClientMessageEvent *event) { WScreen *scr; WWindow *wwin; Bool done = True; #ifdef DEBUG_WMSPEC wmessage("processClientMessage type %s\n", XGetAtomName(dpy, event->message_type)); #endif scr = wScreenForWindow(event->window); if (scr) { /* generic client messages */ if (event->message_type == net_current_desktop) { wWorkspaceChange(scr, event->data.l[0]); } else if (event->message_type == net_number_of_desktops) { long value; value = event->data.l[0]; if (value > scr->workspace_count) { wWorkspaceMake(scr, value - scr->workspace_count); } else if (value < scr->workspace_count) { int i; Bool rebuild = False; for (i = scr->workspace_count - 1; i >= value; i--) { if (!wWorkspaceDelete(scr, i)) { rebuild = True; break; } } if (rebuild) updateWorkspaceCount(scr); } } else if (event->message_type == net_showing_desktop) { wNETWMShowingDesktop(scr, event->data.l[0]); } else if (event->message_type == net_desktop_names) { handleDesktopNames(event, scr); } else { done = False; } if (done) return True; } /* window specific client messages */ wwin = wWindowFor(event->window); if (!wwin) return False; if (event->message_type == net_active_window) { /* * Satisfy a client's focus request only if * - request comes from a pager, or * - it's explicitly allowed in Advanced Options, or * - giving the client the focus does not cause a change in * the active workspace (XXX: or the active head if Xinerama) */ if (wwin->frame->workspace == wwin->screen_ptr->current_workspace /* No workspace change */ || event->data.l[0] == 2 /* Requested by pager */ || WFLAGP(wwin, focus_across_wksp) /* Explicitly allowed */) { wNETWMShowingDesktop(scr, False); wMakeWindowVisible(wwin); } } else if (event->message_type == net_close_window) { if (!WFLAGP(wwin, no_closable)) { if (wwin->protocols.DELETE_WINDOW) wClientSendProtocol(wwin, _XA_WM_DELETE_WINDOW, LastTimestamp); } } else if (event->message_type == net_wm_state) { int maximized = wwin->flags.maximized; long set = event->data.l[0]; #ifdef DEBUG_WMSPEC wmessage("net_wm_state set %ld a1 %s a2 %s\n", set, XGetAtomName(dpy, event->data.l[1]), XGetAtomName(dpy, event->data.l[2])); #endif doStateAtom(wwin, (Atom) event->data.l[1], set, False); if (event->data.l[2]) doStateAtom(wwin, (Atom) event->data.l[2], set, False); if (wwin->flags.maximized != maximized) { if (!wwin->flags.maximized) { wwin->flags.maximized = maximized; wUnmaximizeWindow(wwin); } else { wMaximizeWindow(wwin, wwin->flags.maximized); } } updateStateHint(wwin, False, False); } else if (event->message_type == net_wm_handled_icons || event->message_type == net_wm_icon_geometry) { updateNetIconInfo(wwin); } else if (event->message_type == net_wm_desktop) { long desktop = event->data.l[0]; if (desktop == -1) { wWindowSetOmnipresent(wwin, True); } else { if (IS_OMNIPRESENT(wwin)) wWindowSetOmnipresent(wwin, False); wWindowChangeWorkspace(wwin, desktop); } } else { done = False; } return done; } void wNETWMCheckClientHintChange(WWindow *wwin, XPropertyEvent *event) { #ifdef DEBUG_WMSPEC wmessage("clientHintChange type %s\n", XGetAtomName(dpy, event->atom)); #endif if (event->atom == net_wm_strut || event->atom == net_wm_strut_partial) { updateStrut(wwin->screen_ptr, wwin->client_win, False); updateStrut(wwin->screen_ptr, wwin->client_win, True); wScreenUpdateUsableArea(wwin->screen_ptr); } else if (event->atom == net_wm_handled_icons || event->atom == net_wm_icon_geometry) { updateNetIconInfo(wwin); } else if (event->atom == net_wm_window_type) { updateWindowType(wwin); } else if (event->atom == net_wm_name) { char *name = wNETWMGetWindowName(wwin->client_win); wWindowUpdateName(wwin, name); if (name) wfree(name); } else if (event->atom == net_wm_icon_name) { if (wwin->icon) { wIconChangeTitle(wwin->icon, wwin); wIconPaint(wwin->icon); } } else if (event->atom == net_wm_icon) { updateIconImage(wwin); } } int wNETWMGetPidForWindow(Window window) { Atom type_ret; int fmt_ret; unsigned long nitems_ret, bytes_after_ret; long *data = NULL; int pid; if (XGetWindowProperty(dpy, window, net_wm_pid, 0, 1, False, XA_CARDINAL, &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret, (unsigned char **)&data) == Success && data) { pid = *data; XFree(data); } else { pid = 0; } return pid; } char *wNETWMGetWindowName(Window window) { char *name; char *ret; int size; name = (char *)PropGetCheckProperty(window, net_wm_name, utf8_string, 0, 0, &size); if (name) { ret = wstrndup(name, size); XFree(name); } else { ret = NULL; } return ret; } char *wNETWMGetIconName(Window window) { char *name; char *ret; int size; name = (char *)PropGetCheckProperty(window, net_wm_icon_name, utf8_string, 0, 0, &size); if (name) { ret = wstrndup(name, size); XFree(name); } else { ret = NULL; } return ret; } static void observer(void *self, WMNotification *notif) { WWindow *wwin = (WWindow *) WMGetNotificationObject(notif); const char *name = WMGetNotificationName(notif); void *data = WMGetNotificationClientData(notif); NetData *ndata = (NetData *) self; if (strcmp(name, WMNManaged) == 0 && wwin) { updateClientList(wwin->screen_ptr); updateClientListStacking(wwin->screen_ptr, NULL); updateStateHint(wwin, True, False); updateStrut(wwin->screen_ptr, wwin->client_win, False); updateStrut(wwin->screen_ptr, wwin->client_win, True); wScreenUpdateUsableArea(wwin->screen_ptr); } else if (strcmp(name, WMNUnmanaged) == 0 && wwin) { updateClientList(wwin->screen_ptr); updateClientListStacking(wwin->screen_ptr, wwin); updateWorkspaceHint(wwin, False, True); updateStateHint(wwin, False, True); wNETWMUpdateActions(wwin, True); updateStrut(wwin->screen_ptr, wwin->client_win, False); wScreenUpdateUsableArea(wwin->screen_ptr); } else if (strcmp(name, WMNResetStacking) == 0 && wwin) { updateClientListStacking(wwin->screen_ptr, NULL); updateStateHint(wwin, False, False); } else if (strcmp(name, WMNChangedStacking) == 0 && wwin) { updateClientListStacking(wwin->screen_ptr, NULL); updateStateHint(wwin, False, False); } else if (strcmp(name, WMNChangedFocus) == 0) { updateFocusHint(ndata->scr, wwin); } else if (strcmp(name, WMNChangedWorkspace) == 0 && wwin) { updateWorkspaceHint(wwin, False, False); updateStateHint(wwin, True, False); } else if (strcmp(name, WMNChangedState) == 0 && wwin) { updateStateHint(wwin, !strcmp(data, "omnipresent"), False); } } static void wsobserver(void *self, WMNotification *notif) { WScreen *scr = (WScreen *) WMGetNotificationObject(notif); const char *name = WMGetNotificationName(notif); if (strcmp(name, WMNWorkspaceCreated) == 0) { updateWorkspaceCount(scr); updateWorkspaceNames(scr); } else if (strcmp(name, WMNWorkspaceDestroyed) == 0) { updateWorkspaceCount(scr); updateWorkspaceNames(scr); } else if (strcmp(name, WMNWorkspaceChanged) == 0) { updateCurrentWorkspace(scr); } else if (strcmp(name, WMNWorkspaceNameChanged) == 0) { updateWorkspaceNames(scr); } } void wNETFrameExtents(WWindow *wwin) { long extents[4] = { 0, 0, 0, 0 }; /* The extents array describes dimensions which are not * part of the client window. In our case that means * widths of the border and heights of the titlebar and resizebar. * * Index 0 = left * 1 = right * 2 = top * 3 = bottom */ if (wwin->frame->titlebar) extents[2] = wwin->frame->titlebar->height; if (wwin->frame->resizebar) extents[3] = wwin->frame->resizebar->height; if (HAS_BORDER(wwin)) { extents[0] += wwin->screen_ptr->frame_border_width; extents[1] += wwin->screen_ptr->frame_border_width; extents[2] += wwin->screen_ptr->frame_border_width; extents[3] += wwin->screen_ptr->frame_border_width; } XChangeProperty(dpy, wwin->client_win, net_frame_extents, XA_CARDINAL, 32, PropModeReplace, (unsigned char *) extents, 4); } void wNETCleanupFrameExtents(WWindow *wwin) { XDeleteProperty(dpy, wwin->client_win, net_frame_extents); } WindowMaker-0.95.5/src/main.c0000644000175000017500000005034512214432632012647 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #ifdef HAVE_INOTIFY #include #endif #include #include #include #include #include #include #include #include #include /* Xlocale.h and locale.h are the same if X_LOCALE is undefind in wconfig.h, * and if X_LOCALE is defined, X's locale emulating functions will be used. * See Xlocale.h for more information. */ #include #define MAINFILE #include "WindowMaker.h" #include "window.h" #include "defaults.h" #include "event.h" #include "startup.h" #include "menu.h" #include "keybind.h" #include "xmodifier.h" #include "session.h" #include "shutdown.h" #include "dialog.h" #include "main.h" #include "monitor.h" #include #ifndef GLOBAL_DEFAULTS_SUBDIR #define GLOBAL_DEFAULTS_SUBDIR "WindowMaker" #endif /****** Global Variables ******/ /* general info */ Display *dpy; char *ProgName; unsigned int ValidModMask = 0xff; #ifdef HAVE_INOTIFY int inotifyFD; int inotifyWD; #endif /* locale to use. NULL==POSIX or C */ char *Locale = NULL; int wScreenCount = 0; struct WPreferences wPreferences; WShortKey wKeyBindings[WKBD_LAST]; /* defaults domains */ WDDomain *WDWindowMaker = NULL; WDDomain *WDWindowAttributes = NULL; WDDomain *WDRootMenu = NULL; /* XContexts */ XContext wWinContext; XContext wAppWinContext; XContext wStackContext; XContext wVEdgeContext; /* Atoms */ Atom _XA_WM_STATE; Atom _XA_WM_CHANGE_STATE; Atom _XA_WM_PROTOCOLS; Atom _XA_WM_TAKE_FOCUS; Atom _XA_WM_DELETE_WINDOW; Atom _XA_WM_SAVE_YOURSELF; Atom _XA_WM_CLIENT_LEADER; Atom _XA_WM_COLORMAP_WINDOWS; Atom _XA_WM_COLORMAP_NOTIFY; Atom _XA_GNUSTEP_WM_ATTR; Atom _XA_GNUSTEP_WM_MINIATURIZE_WINDOW; Atom _XA_GNUSTEP_WM_RESIZEBAR; Atom _XA_GNUSTEP_TITLEBAR_STATE; Atom _XA_WINDOWMAKER_MENU; Atom _XA_WINDOWMAKER_WM_PROTOCOLS; Atom _XA_WINDOWMAKER_STATE; Atom _XA_WINDOWMAKER_WM_FUNCTION; Atom _XA_WINDOWMAKER_NOTICEBOARD; Atom _XA_WINDOWMAKER_COMMAND; Atom _XA_WINDOWMAKER_ICON_SIZE; Atom _XA_WINDOWMAKER_ICON_TILE; Atom _XA_WM_IGNORE_FOCUS_EVENTS; /* cursors */ Cursor wCursor[WCUR_LAST]; /* last event timestamp for XSetInputFocus */ Time LastTimestamp = CurrentTime; /* timestamp on the last time we did XSetInputFocus() */ Time LastFocusChange = CurrentTime; #ifdef SHAPE Bool wShapeSupported; int wShapeEventBase; #endif #ifdef KEEP_XKB_LOCK_STATUS Bool wXkbSupported; int wXkbEventBase; #endif /* special flags */ char WProgramSigState = 0; char WProgramState = WSTATE_NORMAL; char WDelayedActionSet = 0; /* notifications */ const char WMNManaged[] = "WMNManaged"; const char WMNUnmanaged[] = "WMNUnmanaged"; const char WMNChangedWorkspace[] = "WMNChangedWorkspace"; const char WMNChangedState[] = "WMNChangedState"; const char WMNChangedFocus[] = "WMNChangedFocus"; const char WMNChangedStacking[] = "WMNChangedStacking"; const char WMNChangedName[] = "WMNChangedName"; const char WMNWorkspaceCreated[] = "WMNWorkspaceCreated"; const char WMNWorkspaceDestroyed[] = "WMNWorkspaceDestroyed"; const char WMNWorkspaceChanged[] = "WMNWorkspaceChanged"; const char WMNWorkspaceNameChanged[] = "WMNWorkspaceNameChanged"; const char WMNResetStacking[] = "WMNResetStacking"; /******** End Global Variables *****/ static char *DisplayName = NULL; static char **Arguments; static int ArgCount; static Bool multiHead = True; static int *wVisualID = NULL; static int wVisualID_len = 0; static int real_main(int argc, char **argv); int getWVisualID(int screen) { if (wVisualID == NULL) return -1; if (screen < 0 || screen >= wVisualID_len) return -1; return wVisualID[screen]; } static void setWVisualID(int screen, int val) { int i; if (screen < 0) return; if (wVisualID == NULL) { /* no array at all, alloc space for screen + 1 entries * and init with default value */ wVisualID_len = screen + 1; wVisualID = (int *)malloc(wVisualID_len * sizeof(int)); for (i = 0; i < wVisualID_len; i++) { wVisualID[i] = -1; } } else if (screen >= wVisualID_len) { /* larger screen number than previously allocated so enlarge array */ int oldlen = wVisualID_len; wVisualID_len = screen + 1; wVisualID = (int *)realloc(wVisualID, wVisualID_len * sizeof(int)); for (i = oldlen; i < wVisualID_len; i++) { wVisualID[i] = -1; } } wVisualID[screen] = val; } /* * this function splits a given string at the comma into tokens * and set the wVisualID variable to each parsed number */ static int initWVisualID(const char *user_str) { char *mystr = strdup(user_str); int cur_in_pos = 0; int cur_out_pos = 0; int cur_screen = 0; int error_found = 0; for (;;) { /* check for delimiter */ if (user_str[cur_in_pos] == '\0' || user_str[cur_in_pos] == ',') { int v; mystr[cur_out_pos] = '\0'; if (sscanf(mystr, "%i", &v) != 1) { error_found = 1; break; } setWVisualID(cur_screen, v); cur_screen++; cur_out_pos = 0; } /* break in case last char has been consumed */ if (user_str[cur_in_pos] == '\0') break; /* if the current char is no delimiter put it into mystr */ if (user_str[cur_in_pos] != ',') { mystr[cur_out_pos++] = user_str[cur_in_pos]; } cur_in_pos++; } free(mystr); if (cur_screen == 0||error_found != 0) return 1; return 0; } noreturn void Exit(int status) { if (dpy) XCloseDisplay(dpy); exit(status); } void Restart(char *manager, Bool abortOnFailure) { char *prog = NULL; char *argv[MAX_RESTART_ARGS]; int i; if (manager && manager[0] != 0) { prog = argv[0] = strtok(manager, " "); for (i = 1; i < MAX_RESTART_ARGS; i++) { argv[i] = strtok(NULL, " "); if (argv[i] == NULL) { break; } } } if (dpy) { XCloseDisplay(dpy); dpy = NULL; } if (!prog) { execvp(Arguments[0], Arguments); wfatal(_("failed to restart Window Maker.")); } else { execvp(prog, argv); werror(_("could not exec %s"), prog); } if (abortOnFailure) exit(7); } void SetupEnvironment(WScreen * scr) { char *tmp, *ptr; char buf[16]; if (multiHead) { int len = strlen(DisplayName) + 64; tmp = wmalloc(len); snprintf(tmp, len, "DISPLAY=%s", XDisplayName(DisplayName)); ptr = strchr(strchr(tmp, ':'), '.'); if (ptr) *ptr = 0; snprintf(buf, sizeof(buf), ".%i", scr->screen); strcat(tmp, buf); putenv(tmp); } tmp = wmalloc(60); snprintf(tmp, 60, "WRASTER_COLOR_RESOLUTION%i=%i", scr->screen, scr->rcontext->attribs->colors_per_channel); putenv(tmp); } typedef struct { WScreen *scr; char *command; } _tuple; static void shellCommandHandler(pid_t pid, unsigned char status, _tuple * data) { if (status == 127) { char *buffer; buffer = wstrconcat(_("Could not execute command: "), data->command); wMessageDialog(data->scr, _("Error"), buffer, _("OK"), NULL, NULL); wfree(buffer); } else if (status != 127) { /* printf("%s: %i\n", data->command, status); */ } wfree(data->command); wfree(data); } void ExecuteShellCommand(WScreen *scr, const char *command) { static char *shell = NULL; pid_t pid; /* * This have a problem: if the shell is tcsh (not sure about others) * and ~/.tcshrc have /bin/stty erase ^H somewhere on it, the shell * will block and the command will not be executed. if (!shell) { shell = getenv("SHELL"); if (!shell) shell = "/bin/sh"; } */ shell = "/bin/sh"; pid = fork(); if (pid == 0) { SetupEnvironment(scr); #ifdef HAVE_SETSID setsid(); #endif execl(shell, shell, "-c", command, NULL); werror("could not execute %s -c %s", shell, command); Exit(-1); } else if (pid < 0) { werror("cannot fork a new process"); } else { _tuple *data = wmalloc(sizeof(_tuple)); data->scr = scr; data->command = wstrdup(command); wAddDeathHandler(pid, (WDeathHandler *) shellCommandHandler, data); } } /* *--------------------------------------------------------------------- * RelaunchWindow-- * Launch a new instance of the active window * *---------------------------------------------------------------------- */ Bool RelaunchWindow(WWindow *wwin) { if (! wwin || ! wwin->client_win) { werror("no window to relaunch"); return False; } char **argv; int argc; if (! XGetCommand(dpy, wwin->client_win, &argv, &argc) || argc == 0 || argv == NULL) { werror("cannot relaunch the application because no WM_COMMAND property is set"); return False; } pid_t pid = fork(); if (pid == 0) { SetupEnvironment(wwin->screen_ptr); #ifdef HAVE_SETSID setsid(); #endif /* argv is not null-terminated */ char **a = (char **) malloc(argc + 1); if (! a) { werror("out of memory trying to relaunch the application"); Exit(-1); } int i; for (i = 0; i < argc; i++) a[i] = argv[i]; a[i] = NULL; execvp(a[0], a); Exit(-1); } else if (pid < 0) { werror("cannot fork a new process"); XFreeStringList(argv); return False; } else { _tuple *data = wmalloc(sizeof(_tuple)); data->scr = wwin->screen_ptr; data->command = wtokenjoin(argv, argc); /* not actually a shell command */ wAddDeathHandler(pid, (WDeathHandler *) shellCommandHandler, data); XFreeStringList(argv); } return True; } /* *--------------------------------------------------------------------- * wAbort-- * Do a major cleanup and exit the program * *---------------------------------------------------------------------- */ noreturn void wAbort(Bool dumpCore) { int i; WScreen *scr; for (i = 0; i < wScreenCount; i++) { scr = wScreenWithNumber(i); if (scr) RestoreDesktop(scr); } printf(_("%s aborted.\n"), ProgName); if (dumpCore) abort(); else exit(1); } static void print_help(void) { printf(_("Usage: %s [options]\n"), ProgName); puts(_("The Window Maker window manager for the X window system")); puts(""); puts(_(" -display host:dpy display to use")); puts(_(" --no-dock do not open the application Dock")); puts(_(" --no-clip do not open the workspace Clip")); puts(_(" --no-autolaunch do not autolaunch applications")); puts(_(" --dont-restore do not restore saved session")); puts(_(" --locale locale locale to use")); puts(_(" --visual-id visualid visual id of visual to use")); puts(_(" --static do not update or save configurations")); #ifndef HAVE_INOTIFY puts(_(" --no-polling do not periodically check for configuration updates")); #endif puts(_(" --version print version and exit")); puts(_(" --help show this message")); } static void check_defaults(void) { char *path; path = wdefaultspathfordomain("WindowMaker"); if (access(path, R_OK) != 0) { wwarning(_("could not find user GNUstep directory (%s)."), path); if (system("wmaker.inst --batch") != 0) { wwarning(_("There was an error while creating GNUstep directory, please " "make sure you have installed Window Maker correctly and run wmaker.inst")); } else { wwarning(_("%s directory created with default configuration."), path); } } wfree(path); } #ifdef HAVE_INOTIFY /* * Add watch here, used to notify if configuration * files have changed, using linux kernel inotify mechanism */ static void inotifyWatchConfig(void) { char *watchPath = NULL; inotifyFD = inotify_init(); /* Initialise an inotify instance */ if (inotifyFD < 0) { wwarning(_("could not initialise an inotify instance." " Changes to the defaults database will require" " a restart to take effect. Check your kernel!")); } else { watchPath = wstrconcat(wusergnusteppath(), "/Defaults"); /* Add the watch; really we are only looking for modify events * but we might want more in the future so check all events for now. * The individual events are checked for in event.c. */ inotifyWD = inotify_add_watch(inotifyFD, watchPath, IN_ALL_EVENTS); if (inotifyWD < 0) { wwarning(_("could not add an inotify watch on path %s." "Changes to the defaults database will require" " a restart to take effect."), watchPath); close(inotifyFD); } } wfree(watchPath); } #endif /* HAVE_INOTIFY */ static void execInitScript(void) { char *file, *paths; paths = wstrconcat(wusergnusteppath(), "/Library/WindowMaker"); paths = wstrappend(paths, ":" DEF_CONFIG_PATHS); file = wfindfile(paths, DEF_INIT_SCRIPT); wfree(paths); if (file) { if (system(file) != 0) werror(_("%s:could not execute initialization script"), file); wfree(file); } } void ExecExitScript(void) { char *file, *paths; paths = wstrconcat(wusergnusteppath(), "/Library/WindowMaker"); paths = wstrappend(paths, ":" DEF_CONFIG_PATHS); file = wfindfile(paths, DEF_EXIT_SCRIPT); wfree(paths); if (file) { if (system(file) != 0) werror(_("%s:could not execute exit script"), file); wfree(file); } } int main(int argc, char **argv) { int i_am_the_monitor, i, len; char *str, *alt; /* setup common stuff for the monitor and wmaker itself */ WMInitializeApplication("WindowMaker", &argc, argv); memset(&wPreferences, 0, sizeof(wPreferences)); wPreferences.fallbackWMs = WMCreateArray(8); alt = getenv("WINDOWMAKER_ALT_WM"); if (alt != NULL) WMAddToArray(wPreferences.fallbackWMs, wstrdup(alt)); WMAddToArray(wPreferences.fallbackWMs, wstrdup("blackbox")); WMAddToArray(wPreferences.fallbackWMs, wstrdup("metacity")); WMAddToArray(wPreferences.fallbackWMs, wstrdup("fvwm")); WMAddToArray(wPreferences.fallbackWMs, wstrdup("twm")); WMAddToArray(wPreferences.fallbackWMs, NULL); WMAddToArray(wPreferences.fallbackWMs, wstrdup("rxvt")); WMAddToArray(wPreferences.fallbackWMs, wstrdup("xterm")); i_am_the_monitor = 1; for (i = 1; i < argc; i++) { if (strncmp(argv[i], "--for-real", strlen("--for-real")) == 0) { i_am_the_monitor = 0; break; } else if (strcmp(argv[i], "-display") == 0 || strcmp(argv[i], "--display") == 0) { i++; if (i >= argc) { wwarning(_("too few arguments for %s"), argv[i - 1]); exit(0); } DisplayName = argv[i]; } } DisplayName = XDisplayName(DisplayName); len = strlen(DisplayName) + 64; str = wmalloc(len); snprintf(str, len, "DISPLAY=%s", DisplayName); putenv(str); if (i_am_the_monitor) return MonitorLoop(argc, argv); else return real_main(argc, argv); } static int real_main(int argc, char **argv) { int i; char *pos; int d, s; setlocale(LC_ALL, ""); wsetabort(wAbort); /* for telling WPrefs what's the name of the wmaker binary being ran */ setenv("WMAKER_BIN_NAME", argv[0], 1); ArgCount = argc; Arguments = wmalloc(sizeof(char *) * (ArgCount + 1)); for (i = 0; i < argc; i++) { Arguments[i] = argv[i]; } /* add the extra option to signal that we're just restarting wmaker */ Arguments[argc - 1] = "--for-real="; Arguments[argc] = NULL; ProgName = strrchr(argv[0], '/'); if (!ProgName) ProgName = argv[0]; else ProgName++; if (argc > 1) { for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-nocpp") == 0 || strcmp(argv[i], "--no-cpp") == 0) { wwarning(_("option \"%s\" is deprecated, please remove it from your script"), argv[i]); } else if (strcmp(argv[i], "--for-real") == 0) { wPreferences.flags.restarting = 0; } else if (strcmp(argv[i], "--for-real=") == 0) { wPreferences.flags.restarting = 1; } else if (strcmp(argv[i], "--for-real-") == 0) { wPreferences.flags.restarting = 2; } else if (strcmp(argv[i], "-no-autolaunch") == 0 || strcmp(argv[i], "--no-autolaunch") == 0) { wPreferences.flags.noautolaunch = 1; } else if (strcmp(argv[i], "-dont-restore") == 0 || strcmp(argv[i], "--dont-restore") == 0) { wPreferences.flags.norestore = 1; } else if (strcmp(argv[i], "-nodock") == 0 || strcmp(argv[i], "--no-dock") == 0) { wPreferences.flags.nodock = 1; wPreferences.flags.nodrawer = 1; } else if (strcmp(argv[i], "-noclip") == 0 || strcmp(argv[i], "--no-clip") == 0) { wPreferences.flags.noclip = 1; } else if (strcmp(argv[i], "-nodrawer") == 0 || strcmp(argv[i], "--no-drawer") == 0) { wPreferences.flags.nodrawer = 1; } else if (strcmp(argv[i], "-version") == 0 || strcmp(argv[i], "--version") == 0) { printf("Window Maker %s\n", VERSION); exit(0); } else if (strcmp(argv[i], "--global_defaults_path") == 0) { printf("%s/%s\n", SYSCONFDIR, GLOBAL_DEFAULTS_SUBDIR); exit(0); } else if (strcmp(argv[i], "-locale") == 0 || strcmp(argv[i], "--locale") == 0) { i++; if (i >= argc) { wwarning(_("too few arguments for %s"), argv[i - 1]); exit(0); } Locale = argv[i]; } else if (strcmp(argv[i], "-display") == 0 || strcmp(argv[i], "--display") == 0) { i++; if (i >= argc) { wwarning(_("too few arguments for %s"), argv[i - 1]); exit(0); } DisplayName = argv[i]; } else if (strcmp(argv[i], "-visualid") == 0 || strcmp(argv[i], "--visual-id") == 0) { i++; if (i >= argc) { wwarning(_("too few arguments for %s"), argv[i - 1]); exit(0); } if (initWVisualID(argv[i]) != 0) { wwarning(_("bad value for visualid: \"%s\""), argv[i]); exit(0); } } else if (strcmp(argv[i], "-static") == 0 || strcmp(argv[i], "--static") == 0 #ifndef HAVE_INOTIFY || strcmp(argv[i], "--no-polling") == 0 #endif ) { wPreferences.flags.noupdates = 1; } else if (strcmp(argv[i], "--help") == 0) { print_help(); exit(0); } else { printf(_("%s: invalid argument '%s'\n"), argv[0], argv[i]); printf(_("Try '%s --help' for more information\n"), argv[0]); exit(1); } } } if (!wPreferences.flags.noupdates) { /* check existence of Defaults DB directory */ check_defaults(); } if (Locale) { setenv("LANG", Locale, 1); } else { Locale = getenv("LC_ALL"); if (!Locale) { Locale = getenv("LANG"); } } setlocale(LC_ALL, ""); if (!Locale || strcmp(Locale, "C") == 0 || strcmp(Locale, "POSIX") == 0) Locale = NULL; #ifdef I18N if (getenv("NLSPATH")) { bindtextdomain("WindowMaker", getenv("NLSPATH")); #if defined(MENU_TEXTDOMAIN) bindtextdomain(MENU_TEXTDOMAIN, getenv("NLSPATH")); #endif } else { bindtextdomain("WindowMaker", LOCALEDIR); #if defined(MENU_TEXTDOMAIN) bindtextdomain(MENU_TEXTDOMAIN, LOCALEDIR); #endif } bind_textdomain_codeset("WindowMaker", "UTF-8"); #if defined(MENU_TEXTDOMAIN) bind_textdomain_codeset(MENU_TEXTDOMAIN, "UTF-8"); #endif textdomain("WindowMaker"); if (!XSupportsLocale()) { wwarning(_("X server does not support locale")); } if (XSetLocaleModifiers("") == NULL) { wwarning(_("cannot set locale modifiers")); } #endif if (Locale) { char *ptr; Locale = wstrdup(Locale); ptr = strchr(Locale, '.'); if (ptr) *ptr = 0; } /* open display */ dpy = XOpenDisplay(DisplayName); if (dpy == NULL) { wfatal(_("could not open display \"%s\""), XDisplayName(DisplayName)); exit(1); } if (fcntl(ConnectionNumber(dpy), F_SETFD, FD_CLOEXEC) < 0) { werror("error setting close-on-exec flag for X connection"); exit(1); } if (getWVisualID(0) < 0) { /* * If unspecified, use default visual instead of waiting * for wrlib/context.c:bestContext() that may end up choosing * the "fake" 24 bits added by the Composite extension. * This is required to avoid all sort of corruptions when * composite is enabled, and at a depth other than 24. */ setWVisualID(0, (int)DefaultVisual(dpy, DefaultScreen(dpy))->visualid); } /* check if the user specified a complete display name (with screen). * If so, only manage the specified screen */ if (DisplayName) pos = strchr(DisplayName, ':'); else pos = NULL; if (pos && sscanf(pos, ":%i.%i", &d, &s) == 2) multiHead = False; DisplayName = XDisplayName(DisplayName); setenv("DISPLAY", DisplayName, 1); wXModifierInitialize(); StartUp(!multiHead); if (wScreenCount == 1) multiHead = False; execInitScript(); #ifdef HAVE_INOTIFY inotifyWatchConfig(); #endif EventLoop(); return -1; } WindowMaker-0.95.5/src/switchmenu.c0000644000175000017500000002661312214432632014112 00000000000000/* * Window Maker window manager * * Copyright (c) 1997 Shige Abe * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include "WindowMaker.h" #include "window.h" #include "actions.h" #include "client.h" #include "misc.h" #include "stacking.h" #include "workspace.h" #include "framewin.h" #include "switchmenu.h" #define IS_GNUSTEP_MENU(w) ((w)->wm_gnustep_attr && \ ((w)->wm_gnustep_attr->flags & GSWindowLevelAttr) && \ ((w)->wm_gnustep_attr->window_level == WMMainMenuWindowLevel || \ (w)->wm_gnustep_attr->window_level == WMSubmenuWindowLevel)) static int initialized = 0; static void observer(void *self, WMNotification * notif); static void wsobserver(void *self, WMNotification * notif); /* * FocusWindow * * - Needs to check if already in the right workspace before * calling wChangeWorkspace? * * Order: * Switch to correct workspace * Unshade if shaded * If iconified then deiconify else focus/raise. */ static void focusWindow(WMenu * menu, WMenuEntry * entry) { WWindow *wwin; WScreen *scr; int x, y, move = 0; wwin = (WWindow *) entry->clientdata; scr = wwin->screen_ptr; wMakeWindowVisible(wwin); x = wwin->frame_x; y = wwin->frame_y; /* bring window back to visible area */ move = wScreenBringInside(scr, &x, &y, wwin->frame->core->width, wwin->frame->core->height); if (move) { wWindowConfigure(wwin, x, y, wwin->client.width, wwin->client.height); } } void InitializeSwitchMenu(void) { if (!initialized) { initialized = 1; WMAddNotificationObserver(observer, NULL, WMNManaged, NULL); WMAddNotificationObserver(observer, NULL, WMNUnmanaged, NULL); WMAddNotificationObserver(observer, NULL, WMNChangedWorkspace, NULL); WMAddNotificationObserver(observer, NULL, WMNChangedState, NULL); WMAddNotificationObserver(observer, NULL, WMNChangedFocus, NULL); WMAddNotificationObserver(observer, NULL, WMNChangedStacking, NULL); WMAddNotificationObserver(observer, NULL, WMNChangedName, NULL); WMAddNotificationObserver(wsobserver, NULL, WMNWorkspaceChanged, NULL); WMAddNotificationObserver(wsobserver, NULL, WMNWorkspaceNameChanged, NULL); } } /* * * Open switch menu * */ void OpenSwitchMenu(WScreen * scr, int x, int y, int keyboard) { WMenu *switchmenu = scr->switch_menu; WWindow *wwin; if (switchmenu) { if (switchmenu->flags.mapped) { if (!switchmenu->flags.buttoned) { wMenuUnmap(switchmenu); } else { wRaiseFrame(switchmenu->frame->core); if (keyboard) wMenuMapAt(switchmenu, 0, 0, True); else wMenuMapCopyAt(switchmenu, x - switchmenu->frame->core->width / 2, y); } } else { if (keyboard && x == scr->scr_width / 2 && y == scr->scr_height / 2) { y = y - switchmenu->frame->core->height / 2; } wMenuMapAt(switchmenu, x - switchmenu->frame->core->width / 2, y, keyboard); } return; } switchmenu = wMenuCreate(scr, _("Windows"), True); scr->switch_menu = switchmenu; wwin = scr->focused_window; while (wwin) { UpdateSwitchMenu(scr, wwin, ACTION_ADD); wwin = wwin->prev; } if (switchmenu) { int newx, newy; if (!switchmenu->flags.realized) wMenuRealize(switchmenu); if (keyboard && x == 0 && y == 0) { newx = newy = 0; } else if (keyboard && x == scr->scr_width / 2 && y == scr->scr_height / 2) { newx = x - switchmenu->frame->core->width / 2; newy = y - switchmenu->frame->core->height / 2; } else { newx = x - switchmenu->frame->core->width / 2; newy = y; } wMenuMapAt(switchmenu, newx, newy, keyboard); } } static int menuIndexForWindow(WMenu * menu, WWindow * wwin, int old_pos) { int idx; if (menu->entry_no <= old_pos) return -1; #define WS(i) ((WWindow*)menu->entries[i]->clientdata)->frame->workspace if (old_pos >= 0) { if (WS(old_pos) >= wwin->frame->workspace && (old_pos == 0 || WS(old_pos - 1) <= wwin->frame->workspace)) { return old_pos; } } #undef WS for (idx = 0; idx < menu->entry_no; idx++) { WWindow *tw = (WWindow *) menu->entries[idx]->clientdata; if (!IS_OMNIPRESENT(tw) && tw->frame->workspace > wwin->frame->workspace) { break; } } return idx; } /* * Update switch menu */ void UpdateSwitchMenu(WScreen * scr, WWindow * wwin, int action) { WMenu *switchmenu = scr->switch_menu; WMenuEntry *entry; char title[MAX_MENU_TEXT_LENGTH + 6]; int len = sizeof(title); int i; int checkVisibility = 0; if (!wwin->screen_ptr->switch_menu) return; /* * This menu is updated under the following conditions: * * 1. When a window is created. * 2. When a window is destroyed. * * 3. When a window changes it's title. * 4. When a window changes its workspace. */ if (action == ACTION_ADD) { char *t; int idx; if (wwin->flags.internal_window || WFLAGP(wwin, skip_window_list) || IS_GNUSTEP_MENU(wwin)) { return; } if (wwin->frame->title) snprintf(title, len, "%s", wwin->frame->title); else snprintf(title, len, "%s", DEF_WINDOW_TITLE); t = ShrinkString(scr->menu_entry_font, title, MAX_WINDOWLIST_WIDTH); if (IS_OMNIPRESENT(wwin)) idx = -1; else { idx = menuIndexForWindow(switchmenu, wwin, -1); } entry = wMenuInsertCallback(switchmenu, idx, t, focusWindow, wwin); wfree(t); entry->flags.indicator = 1; entry->rtext = wmalloc(MAX_WORKSPACENAME_WIDTH + 8); if (IS_OMNIPRESENT(wwin)) snprintf(entry->rtext, MAX_WORKSPACENAME_WIDTH, "[*]"); else snprintf(entry->rtext, MAX_WORKSPACENAME_WIDTH, "[%s]", scr->workspaces[wwin->frame->workspace]->name); if (wwin->flags.hidden) { entry->flags.indicator_type = MI_HIDDEN; entry->flags.indicator_on = 1; } else if (wwin->flags.miniaturized) { entry->flags.indicator_type = MI_MINIWINDOW; entry->flags.indicator_on = 1; } else if (wwin->flags.focused) { entry->flags.indicator_type = MI_DIAMOND; entry->flags.indicator_on = 1; } else if (wwin->flags.shaded) { entry->flags.indicator_type = MI_SHADED; entry->flags.indicator_on = 1; } wMenuRealize(switchmenu); checkVisibility = 1; } else { char *t; for (i = 0; i < switchmenu->entry_no; i++) { entry = switchmenu->entries[i]; /* this is the entry that was changed */ if (entry->clientdata == wwin) { switch (action) { case ACTION_REMOVE: wMenuRemoveItem(switchmenu, i); wMenuRealize(switchmenu); checkVisibility = 1; break; case ACTION_CHANGE: if (entry->text) wfree(entry->text); if (wwin->frame->title) snprintf(title, MAX_MENU_TEXT_LENGTH, "%s", wwin->frame->title); else snprintf(title, MAX_MENU_TEXT_LENGTH, "%s", DEF_WINDOW_TITLE); t = ShrinkString(scr->menu_entry_font, title, MAX_WINDOWLIST_WIDTH); entry->text = t; wMenuRealize(switchmenu); checkVisibility = 1; break; case ACTION_CHANGE_WORKSPACE: if (entry->rtext) { int idx = -1; char *t, *rt; int it, ion; if (IS_OMNIPRESENT(wwin)) { snprintf(entry->rtext, MAX_WORKSPACENAME_WIDTH, "[*]"); } else { snprintf(entry->rtext, MAX_WORKSPACENAME_WIDTH, "[%s]", scr->workspaces[wwin->frame->workspace]->name); } rt = entry->rtext; entry->rtext = NULL; t = entry->text; entry->text = NULL; it = entry->flags.indicator_type; ion = entry->flags.indicator_on; if (!IS_OMNIPRESENT(wwin) && idx < 0) { idx = menuIndexForWindow(switchmenu, wwin, i); } wMenuRemoveItem(switchmenu, i); entry = wMenuInsertCallback(switchmenu, idx, t, focusWindow, wwin); wfree(t); entry->rtext = rt; entry->flags.indicator = 1; entry->flags.indicator_type = it; entry->flags.indicator_on = ion; } wMenuRealize(switchmenu); checkVisibility = 1; break; case ACTION_CHANGE_STATE: if (wwin->flags.hidden) { entry->flags.indicator_type = MI_HIDDEN; entry->flags.indicator_on = 1; } else if (wwin->flags.miniaturized) { entry->flags.indicator_type = MI_MINIWINDOW; entry->flags.indicator_on = 1; } else if (wwin->flags.shaded && !wwin->flags.focused) { entry->flags.indicator_type = MI_SHADED; entry->flags.indicator_on = 1; } else { entry->flags.indicator_on = wwin->flags.focused; entry->flags.indicator_type = MI_DIAMOND; } break; } break; } } } if (checkVisibility) { int tmp; tmp = switchmenu->frame->top_width + 5; /* if menu got unreachable, bring it to a visible place */ if (switchmenu->frame_x < tmp - (int)switchmenu->frame->core->width) { wMenuMove(switchmenu, tmp - (int)switchmenu->frame->core->width, switchmenu->frame_y, False); } } wMenuPaint(switchmenu); } static void UpdateSwitchMenuWorkspace(WScreen *scr, int workspace) { WMenu *menu = scr->switch_menu; int i; WWindow *wwin; if (!menu) return; for (i = 0; i < menu->entry_no; i++) { wwin = (WWindow *) menu->entries[i]->clientdata; if (wwin->frame->workspace == workspace && !IS_OMNIPRESENT(wwin)) { if (IS_OMNIPRESENT(wwin)) snprintf(menu->entries[i]->rtext, MAX_WORKSPACENAME_WIDTH, "[*]"); else snprintf(menu->entries[i]->rtext, MAX_WORKSPACENAME_WIDTH, "[%s]", scr->workspaces[wwin->frame->workspace]->name); menu->flags.realized = 0; } } if (!menu->flags.realized) wMenuRealize(menu); } static void observer(void *self, WMNotification * notif) { WWindow *wwin = (WWindow *) WMGetNotificationObject(notif); const char *name = WMGetNotificationName(notif); void *data = WMGetNotificationClientData(notif); if (!wwin) return; if (strcmp(name, WMNManaged) == 0) UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_ADD); else if (strcmp(name, WMNUnmanaged) == 0) UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_REMOVE); else if (strcmp(name, WMNChangedWorkspace) == 0) UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_CHANGE_WORKSPACE); else if (strcmp(name, WMNChangedFocus) == 0) UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_CHANGE_STATE); else if (strcmp(name, WMNChangedName) == 0) UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_CHANGE); else if (strcmp(name, WMNChangedState) == 0) { if (strcmp((char *)data, "omnipresent") == 0) { UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_CHANGE_WORKSPACE); } else { UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_CHANGE_STATE); } } } static void wsobserver(void *self, WMNotification * notif) { WScreen *scr = (WScreen *) WMGetNotificationObject(notif); const char *name = WMGetNotificationName(notif); void *data = WMGetNotificationClientData(notif); if (strcmp(name, WMNWorkspaceNameChanged) == 0) { UpdateSwitchMenuWorkspace(scr, (uintptr_t)data); } else if (strcmp(name, WMNWorkspaceChanged) == 0) { } } WindowMaker-0.95.5/src/superfluous.c0000644000175000017500000002175012214432632014315 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include "WindowMaker.h" #include "screen.h" #include "superfluous.h" #include "framewin.h" #include "window.h" #include "actions.h" #include "xinerama.h" #include "stacking.h" #define PIECES ((64/ICON_KABOOM_PIECE_SIZE)*(64/ICON_KABOOM_PIECE_SIZE)) #define KAB_PRECISION 4 #define BOUNCE_HZ 25 #define BOUNCE_DELAY (1000/BOUNCE_HZ) #define BOUNCE_HEIGHT 24 #define BOUNCE_LENGTH 0.3 #define BOUNCE_DAMP 0.6 #define URGENT_BOUNCE_DELAY 3000 void DoKaboom(WScreen * scr, Window win, int x, int y) { #ifdef NORMAL_ICON_KABOOM int i, j, k; int sw = scr->scr_width, sh = scr->scr_height; int px[PIECES]; short py[PIECES]; char pvx[PIECES], pvy[PIECES]; /* in MkLinux/PPC gcc seems to think that char is unsigned? */ signed char ax[PIECES], ay[PIECES]; Pixmap tmp; XSetClipMask(dpy, scr->copy_gc, None); tmp = XCreatePixmap(dpy, scr->root_win, wPreferences.icon_size, wPreferences.icon_size, scr->depth); if (scr->w_visual == DefaultVisual(dpy, scr->screen)) XCopyArea(dpy, win, tmp, scr->copy_gc, 0, 0, wPreferences.icon_size, wPreferences.icon_size, 0, 0); else { XImage *image; image = XGetImage(dpy, win, 0, 0, wPreferences.icon_size, wPreferences.icon_size, AllPlanes, ZPixmap); if (!image) { XUnmapWindow(dpy, win); return; } XPutImage(dpy, tmp, scr->copy_gc, image, 0, 0, 0, 0, wPreferences.icon_size, wPreferences.icon_size); XDestroyImage(image); } for (i = 0, k = 0; i < wPreferences.icon_size / ICON_KABOOM_PIECE_SIZE && k < PIECES; i++) { for (j = 0; j < wPreferences.icon_size / ICON_KABOOM_PIECE_SIZE && k < PIECES; j++) { if (rand() % 2) { ax[k] = i; ay[k] = j; px[k] = (x + i * ICON_KABOOM_PIECE_SIZE) << KAB_PRECISION; py[k] = y + j * ICON_KABOOM_PIECE_SIZE; pvx[k] = rand() % (1 << (KAB_PRECISION + 3)) - (1 << (KAB_PRECISION + 3)) / 2; pvy[k] = -15 - rand() % 7; k++; } else { ax[k] = -1; } } } XUnmapWindow(dpy, win); j = k; while (k > 0) { XEvent foo; if (XCheckTypedEvent(dpy, ButtonPress, &foo)) { XPutBackEvent(dpy, &foo); XClearWindow(dpy, scr->root_win); break; } for (i = 0; i < j; i++) { if (ax[i] >= 0) { int _px = px[i] >> KAB_PRECISION; XClearArea(dpy, scr->root_win, _px, py[i], ICON_KABOOM_PIECE_SIZE, ICON_KABOOM_PIECE_SIZE, False); px[i] += pvx[i]; py[i] += pvy[i]; _px = px[i] >> KAB_PRECISION; pvy[i]++; if (_px < -wPreferences.icon_size || _px > sw || py[i] >= sh) { ax[i] = -1; k--; } else { XCopyArea(dpy, tmp, scr->root_win, scr->copy_gc, ax[i] * ICON_KABOOM_PIECE_SIZE, ay[i] * ICON_KABOOM_PIECE_SIZE, ICON_KABOOM_PIECE_SIZE, ICON_KABOOM_PIECE_SIZE, _px, py[i]); } } } XFlush(dpy); wusleep(MINIATURIZE_ANIMATION_DELAY_Z * 2); } XFreePixmap(dpy, tmp); #endif /* NORMAL_ICON_KABOOM */ } Pixmap MakeGhostIcon(WScreen * scr, Drawable drawable) { RImage *back; RColor color; Pixmap pixmap; if (!drawable) return None; back = RCreateImageFromDrawable(scr->rcontext, drawable, None); if (!back) return None; color.red = 0xff; color.green = 0xff; color.blue = 0xff; color.alpha = 200; RClearImage(back, &color); RConvertImage(scr->rcontext, back, &pixmap); RReleaseImage(back); return pixmap; } void DoWindowBirth(WWindow *wwin) { #ifdef WINDOW_BIRTH_ZOOM int center_x, center_y; int width = wwin->frame->core->width; int height = wwin->frame->core->height; int w = WMIN(width, 20); int h = WMIN(height, 20); WScreen *scr = wwin->screen_ptr; center_x = wwin->frame_x + (width - w) / 2; center_y = wwin->frame_y + (height - h) / 2; animateResize(scr, center_x, center_y, 1, 1, wwin->frame_x, wwin->frame_y, width, height); #endif } typedef struct AppBouncerData { WApplication *wapp; int count; int pow; int dir; WMHandlerID *timer; } AppBouncerData; static void doAppBounce(void *arg) { AppBouncerData *data = (AppBouncerData*)arg; WAppIcon *aicon = data->wapp->app_icon; reinit: if (aicon && data->wapp->refcount > 1) { if (wPreferences.raise_appicons_when_bouncing) XRaiseWindow(dpy, aicon->icon->core->window); const double ticks = BOUNCE_HZ * BOUNCE_LENGTH; const double s = sqrt(BOUNCE_HEIGHT)/(ticks/2); double h = BOUNCE_HEIGHT*pow(BOUNCE_DAMP, data->pow); double sqrt_h = sqrt(h); if (h > 3) { double offset, x = s * data->count - sqrt_h; if (x > sqrt_h) { ++data->pow; data->count = 0; goto reinit; } else ++data->count; offset = h - x*x; switch (data->dir) { case 0: /* left, bounce to right */ XMoveWindow(dpy, aicon->icon->core->window, aicon->x_pos + (int)offset, aicon->y_pos); break; case 1: /* right, bounce to left */ XMoveWindow(dpy, aicon->icon->core->window, aicon->x_pos - (int)offset, aicon->y_pos); break; case 2: /* top, bounce down */ XMoveWindow(dpy, aicon->icon->core->window, aicon->x_pos, aicon->y_pos + (int)offset); break; case 3: /* bottom, bounce up */ XMoveWindow(dpy, aicon->icon->core->window, aicon->x_pos, aicon->y_pos - (int)offset); break; } return; } } XMoveWindow(dpy, aicon->icon->core->window, aicon->x_pos, aicon->y_pos); CommitStackingForWindow(aicon->icon->core); data->wapp->flags.bouncing = 0; WMDeleteTimerHandler(data->timer); wApplicationDestroy(data->wapp); free(data); } static int bounceDirection(WAppIcon *aicon) { enum { left_e = 1, right_e = 2, top_e = 4, bottom_e = 8 }; WScreen *scr = aicon->icon->core->screen_ptr; WMRect rr, sr; int l, r, t, b, h, v; int dir = 0; rr.pos.x = aicon->x_pos; rr.pos.y = aicon->y_pos; rr.size.width = rr.size.height = 64; sr = wGetRectForHead(scr, wGetHeadForRect(scr, rr)); l = rr.pos.x - sr.pos.x; r = sr.pos.x + sr.size.width - rr.pos.x - rr.size.width; t = rr.pos.y - sr.pos.y; b = sr.pos.y + sr.size.height - rr.pos.y - rr.size.height; if (l < r) { dir |= left_e; h = l; } else { dir |= right_e; h = r; } if (t < b) { dir |= top_e; v = t; } else { dir |= bottom_e; v = b; } if (aicon->dock && abs(aicon->xindex) != abs(aicon->yindex)) { if (abs(aicon->xindex) < abs(aicon->yindex)) dir &= ~(top_e | bottom_e); else dir &= ~(left_e | right_e); } else { if (h < v) dir &= ~(top_e | bottom_e); else dir &= ~(left_e | right_e); } switch (dir) { case left_e: dir = 0; break; case right_e: dir = 1; break; case top_e: dir = 2; break; case bottom_e: dir = 3; break; default: wwarning(_("Impossible direction: %d"), dir); dir = 3; break; } return dir; } void wAppBounce(WApplication *wapp) { if (!wPreferences.no_animations && wapp->app_icon && !wapp->flags.bouncing && !wPreferences.do_not_make_appicons_bounce) { ++wapp->refcount; wapp->flags.bouncing = 1; AppBouncerData *data = (AppBouncerData *)malloc(sizeof(AppBouncerData)); data->wapp = wapp; data->count = data->pow = 0; data->dir = bounceDirection(wapp->app_icon); data->timer = WMAddPersistentTimerHandler(BOUNCE_DELAY, doAppBounce, data); } } static int appIsUrgent(WApplication *wapp) { WScreen *scr; WWindow *wlist; if (!wapp->main_window_desc) { wwarning("group leader not found for window group"); return 0; } scr = wapp->main_window_desc->screen_ptr; wlist = scr->focused_window; if (!wlist) return 0; while (wlist) { if (wlist->main_window == wapp->main_window) { if (wlist->flags.urgent) return 1; } wlist = wlist->prev; } return 0; } static void doAppUrgentBounce(void *arg) { WApplication *wapp = (WApplication *)arg; if (appIsUrgent(wapp)) { if(wPreferences.bounce_appicons_when_urgent) wAppBounce(wapp); } else { WMDeleteTimerHandler(wapp->urgent_bounce_timer); wapp->urgent_bounce_timer = NULL; } } void wAppBounceWhileUrgent(WApplication *wapp) { if (!wapp) return; if (appIsUrgent(wapp)) { if (!wapp->urgent_bounce_timer) { wapp->urgent_bounce_timer = WMAddPersistentTimerHandler(URGENT_BOUNCE_DELAY, doAppUrgentBounce, wapp); doAppUrgentBounce(wapp); } } else { if (wapp->urgent_bounce_timer) { WMDeleteTimerHandler(wapp->urgent_bounce_timer); wapp->urgent_bounce_timer = NULL; } } } WindowMaker-0.95.5/src/placement.c0000644000175000017500000003422512214432632013672 00000000000000/* placement.c - window and icon placement on screen * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include "WindowMaker.h" #include "wcore.h" #include "framewin.h" #include "window.h" #include "icon.h" #include "appicon.h" #include "actions.h" #include "application.h" #include "dock.h" #include "xinerama.h" #include "placement.h" #define X_ORIGIN WMAX(usableArea.x1,\ wPreferences.window_place_origin.x) #define Y_ORIGIN WMAX(usableArea.y1,\ wPreferences.window_place_origin.y) /* Returns True if it is an icon and is in this workspace */ static Bool iconPosition(WCoreWindow *wcore, int sx1, int sy1, int sx2, int sy2, int workspace, int *retX, int *retY) { void *parent; int ok = 0; parent = wcore->descriptor.parent; /* if it is an application icon */ if (wcore->descriptor.parent_type == WCLASS_APPICON && !((WAppIcon *) parent)->docked) { *retX = ((WAppIcon *) parent)->x_pos; *retY = ((WAppIcon *) parent)->y_pos; ok = 1; } else if (wcore->descriptor.parent_type == WCLASS_MINIWINDOW && (((WIcon *) parent)->owner->frame->workspace == workspace || IS_OMNIPRESENT(((WIcon *) parent)->owner) || wPreferences.sticky_icons) && ((WIcon *) parent)->mapped) { *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)->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 */ if (ok) { if (*retX < sx1 - wPreferences.icon_size) ok = 0; else if (*retX > sx2) ok = 0; if (*retY < sy1 - wPreferences.icon_size) ok = 0; else if (*retY > sy2) ok = 0; } return ok; } void PlaceIcon(WScreen *scr, int *x_ret, int *y_ret, int head) { int pf; /* primary axis */ int sf; /* secondary axis */ int fullW; int fullH; char *map; int pi, si; WCoreWindow *obj; int sx1, sx2, sy1, sy2; /* screen boundary */ int sw, sh; int xo, yo; int xs, ys; int x, y; int isize = wPreferences.icon_size; int done = 0; WMBagIterator iter; WArea area = wGetUsableAreaForHead(scr, head, NULL, False); /* Find out screen boundaries. */ /* Allows each head to have miniwindows */ sx1 = area.x1; sy1 = area.y1; sx2 = area.x2; sy2 = area.y2; sw = sx2 - sx1; sh = sy2 - sy1; sw = isize * (sw / isize); sh = isize * (sh / isize); fullW = (sx2 - sx1) / isize; fullH = (sy2 - sy1) / isize; /* icon yard boundaries */ if (wPreferences.icon_yard & IY_VERT) { pf = fullH; sf = fullW; } else { pf = fullW; sf = fullH; } if (wPreferences.icon_yard & IY_RIGHT) { xo = sx2 - isize; xs = -1; } else { xo = sx1; xs = 1; } if (wPreferences.icon_yard & IY_TOP) { yo = sy1; ys = 1; } else { yo = sy2 - isize; ys = -1; } /* * Create a map with the occupied slots. 1 means the slot is used * or at least partially used. * The slot usage can be optimized by only marking fully used slots * or slots that have most of it covered. * Space usage is worse than the fvwm algorithm (used in the old version) * but complexity is much better (faster) than it. */ map = wmalloc((sw + 2) * (sh + 2)); #define INDEX(x,y) (((y)+1)*(sw+2) + (x) + 1) WM_ETARETI_BAG(scr->stacking_list, obj, iter) { while (obj) { int x, y; if (iconPosition(obj, sx1, sy1, sx2, sy2, scr->current_workspace, &x, &y)) { int xdi, ydi; /* rounded down */ int xui, yui; /* rounded up */ xdi = x / isize; ydi = y / isize; xui = (x + isize / 2) / isize; yui = (y + isize / 2) / isize; map[INDEX(xdi, ydi)] = 1; map[INDEX(xdi, yui)] = 1; map[INDEX(xui, ydi)] = 1; map[INDEX(xui, yui)] = 1; } obj = obj->stacking->under; } } /* Default position */ *x_ret = 0; *y_ret = 0; /* Look for an empty slot */ for (si = 0; si < sf; si++) { for (pi = 0; pi < pf; pi++) { if (wPreferences.icon_yard & IY_VERT) { x = xo + xs * (si * isize); y = yo + ys * (pi * isize); } else { x = xo + xs * (pi * isize); y = yo + ys * (si * isize); } if (!map[INDEX(x / isize, y / isize)]) { *x_ret = x; *y_ret = y; done = 1; break; } } if (done) break; } wfree(map); } /* Computes the intersecting length of two line sections */ int calcIntersectionLength(int p1, int l1, int p2, int l2) { int isect; int tmp; if (p1 > p2) { tmp = p1; p1 = p2; p2 = tmp; tmp = l1; l1 = l2; l2 = tmp; } if (p1 + l1 < p2) isect = 0; else if (p2 + l2 < p1 + l1) isect = l2; else isect = p1 + l1 - p2; return isect; } /* Computes the intersecting area of two rectangles */ int calcIntersectionArea(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2) { return calcIntersectionLength(x1, w1, x2, w2) * calcIntersectionLength(y1, h1, y2, h2); } static int calcSumOfCoveredAreas(WWindow *wwin, int x, int y, int w, int h) { int sum_isect = 0; WWindow *test_window; int tw, tx, ty, th; test_window = wwin->screen_ptr->focused_window; for (; test_window != NULL && test_window->prev != NULL;) test_window = test_window->prev; for (; test_window != NULL; test_window = test_window->next) { if (test_window->frame->core->stacking->window_level < WMNormalLevel) { continue; } tw = test_window->frame->core->width; th = test_window->frame->core->height; tx = test_window->frame_x; ty = test_window->frame_y; if (test_window->flags.mapped || (test_window->flags.shaded && test_window->frame->workspace == wwin->screen_ptr->current_workspace && !(test_window->flags.miniaturized || test_window->flags.hidden))) { sum_isect += calcIntersectionArea(tx, ty, tw, th, x, y, w, h); } } return sum_isect; } static void set_width_height(WWindow *wwin, unsigned int *width, unsigned int *height) { if (wwin->frame) { *height += wwin->frame->top_width + wwin->frame->bottom_width; } else { if (HAS_TITLEBAR(wwin)) *height += TITLEBAR_HEIGHT; if (HAS_RESIZEBAR(wwin)) *height += RESIZEBAR_HEIGHT; } if (HAS_BORDER(wwin)) { *height += 2 * wwin->screen_ptr->frame_border_width; *width += 2 * wwin->screen_ptr->frame_border_width; } } static void smartPlaceWindow(WWindow *wwin, int *x_ret, int *y_ret, unsigned int width, unsigned int height, WArea usableArea) { int test_x = 0, test_y = Y_ORIGIN; int from_x, to_x, from_y, to_y; int sx; int min_isect, min_isect_x, min_isect_y; int sum_isect; set_width_height(wwin, &width, &height); sx = X_ORIGIN; min_isect = INT_MAX; min_isect_x = sx; min_isect_y = test_y; while (((test_y + height) < usableArea.y2)) { test_x = sx; while ((test_x + width) < usableArea.x2) { sum_isect = calcSumOfCoveredAreas(wwin, test_x, test_y, width, height); if (sum_isect < min_isect) { min_isect = sum_isect; min_isect_x = test_x; min_isect_y = test_y; } test_x += PLACETEST_HSTEP; } test_y += PLACETEST_VSTEP; } from_x = min_isect_x - PLACETEST_HSTEP + 1; from_x = WMAX(from_x, X_ORIGIN); to_x = min_isect_x + PLACETEST_HSTEP; if (to_x + width > usableArea.x2) to_x = usableArea.x2 - width; from_y = min_isect_y - PLACETEST_VSTEP + 1; from_y = WMAX(from_y, Y_ORIGIN); to_y = min_isect_y + PLACETEST_VSTEP; if (to_y + height > usableArea.y2) to_y = usableArea.y2 - height; for (test_x = from_x; test_x < to_x; test_x++) { for (test_y = from_y; test_y < to_y; test_y++) { sum_isect = calcSumOfCoveredAreas(wwin, test_x, test_y, width, height); if (sum_isect < min_isect) { min_isect = sum_isect; min_isect_x = test_x; min_isect_y = test_y; } } } *x_ret = min_isect_x; *y_ret = min_isect_y; } static Bool center_place_window(WWindow *wwin, int *x_ret, int *y_ret, unsigned int width, unsigned int height, WArea usableArea) { int swidth, sheight; set_width_height(wwin, &width, &height); swidth = usableArea.x2 - usableArea.x1; sheight = usableArea.y2 - usableArea.y1; if (width > swidth || height > sheight) return False; *x_ret = (usableArea.x1 + usableArea.x2 - width) / 2; *y_ret = (usableArea.y1 + usableArea.y2 - height) / 2; return True; } static Bool autoPlaceWindow(WWindow *wwin, int *x_ret, int *y_ret, unsigned int width, unsigned int height, int tryCount, WArea usableArea) { WScreen *scr = wwin->screen_ptr; int test_x = 0, test_y = Y_ORIGIN; int loc_ok = False, tw, tx, ty, th; int swidth, sx; WWindow *test_window; set_width_height(wwin, &width, &height); swidth = usableArea.x2 - usableArea.x1; sx = X_ORIGIN; /* this was based on fvwm2's smart placement */ while (((test_y + height) < (usableArea.y2 - usableArea.y1)) && !loc_ok) { test_x = sx; while (((test_x + width) < swidth) && (!loc_ok)) { loc_ok = True; test_window = scr->focused_window; while ((test_window != NULL) && (loc_ok == True)) { if (test_window->frame->core->stacking->window_level < WMNormalLevel && tryCount > 0) { test_window = test_window->next; continue; } tw = test_window->frame->core->width; th = test_window->frame->core->height; tx = test_window->frame_x; ty = test_window->frame_y; if ((tx < (test_x + width)) && ((tx + tw) > test_x) && (ty < (test_y + height)) && ((ty + th) > test_y) && (test_window->flags.mapped || (test_window->flags.shaded && test_window->frame->workspace == scr->current_workspace && !(test_window->flags.miniaturized || test_window->flags.hidden)))) { loc_ok = False; } test_window = test_window->next; } test_window = scr->focused_window; while ((test_window != NULL) && (loc_ok == True)) { if (test_window->frame->core->stacking->window_level < WMNormalLevel && tryCount > 0) { test_window = test_window->prev; continue; } tw = test_window->frame->core->width; th = test_window->frame->core->height; tx = test_window->frame_x; ty = test_window->frame_y; if ((tx < (test_x + width)) && ((tx + tw) > test_x) && (ty < (test_y + height)) && ((ty + th) > test_y) && (test_window->flags.mapped || (test_window->flags.shaded && test_window->frame->workspace == scr->current_workspace && !(test_window->flags.miniaturized || test_window->flags.hidden)))) { loc_ok = False; } test_window = test_window->prev; } if (loc_ok == True) { *x_ret = test_x; *y_ret = test_y; break; } test_x += PLACETEST_HSTEP; } test_y += PLACETEST_VSTEP; } return loc_ok; } static void cascadeWindow(WScreen *scr, WWindow *wwin, int *x_ret, int *y_ret, unsigned int width, unsigned int height, int h, WArea usableArea) { set_width_height(wwin, &width, &height); *x_ret = h * scr->cascade_index + X_ORIGIN; *y_ret = h * scr->cascade_index + Y_ORIGIN; if (width + *x_ret > usableArea.x2 || height + *y_ret > usableArea.y2) { scr->cascade_index = 0; *x_ret = X_ORIGIN; *y_ret = Y_ORIGIN; } } static void randomPlaceWindow(WWindow *wwin, int *x_ret, int *y_ret, unsigned int width, unsigned int height, WArea usableArea) { int w, h; set_width_height(wwin, &width, &height); w = ((usableArea.x2 - X_ORIGIN) - width); h = ((usableArea.y2 - Y_ORIGIN) - height); if (w < 1) w = 1; if (h < 1) h = 1; *x_ret = X_ORIGIN + rand() % w; *y_ret = Y_ORIGIN + rand() % h; } void PlaceWindow(WWindow *wwin, int *x_ret, int *y_ret, unsigned width, unsigned height) { WScreen *scr = wwin->screen_ptr; int h = WMFontHeight(scr->title_font) + (wPreferences.window_title_clearance + TITLEBAR_EXTEND_SPACE) * 2; if (h > wPreferences.window_title_max_height) h = wPreferences.window_title_max_height; if (h < wPreferences.window_title_min_height) h = wPreferences.window_title_min_height; WArea usableArea = wGetUsableAreaForHead(scr, wGetHeadForPointerLocation(scr), NULL, True); switch (wPreferences.window_placement) { case WPM_MANUAL: InteractivePlaceWindow(wwin, x_ret, y_ret, width, height); break; case WPM_SMART: smartPlaceWindow(wwin, x_ret, y_ret, width, height, usableArea); break; case WPM_CENTER: if (center_place_window(wwin, x_ret, y_ret, width, height, usableArea)) break; case WPM_AUTO: if (autoPlaceWindow(wwin, x_ret, y_ret, width, height, 0, usableArea)) { break; } else if (autoPlaceWindow(wwin, x_ret, y_ret, width, height, 1, usableArea)) { break; } /* there isn't a break here, because if we fail, it should fall through to cascade placement, as people who want tiling want automagicness aren't going to want to place their window */ case WPM_CASCADE: if (wPreferences.window_placement == WPM_AUTO || wPreferences.window_placement == WPM_CENTER) scr->cascade_index++; cascadeWindow(scr, wwin, x_ret, y_ret, width, height, h, usableArea); if (wPreferences.window_placement == WPM_CASCADE) scr->cascade_index++; break; case WPM_RANDOM: randomPlaceWindow(wwin, x_ret, y_ret, width, height, usableArea); break; } /* * clip to usableArea instead of full screen * this will also take dock/clip etc.. into account * aswell as being xinerama friendly */ if (*x_ret + width > usableArea.x2) *x_ret = usableArea.x2 - width; if (*x_ret < usableArea.x1) *x_ret = usableArea.x1; if (*y_ret + height > usableArea.y2) *y_ret = usableArea.y2 - height; if (*y_ret < usableArea.y1) *y_ret = usableArea.y1; } WindowMaker-0.95.5/src/usermenu.c0000644000175000017500000002032112214432632013555 00000000000000/* usermenu.c- user defined menu * * Window Maker window manager * * Copyright (c) hmmm... Should I put everybody's name here? * Where's my lawyer?? -- ]d :D * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * * * * * * * * * * User defined menu is good, but beer's always better * if someone wanna start hacking something, He heard... * TODO * - enhance commands. (eg, exit, hide, list all app's member * window and etc) * - cache menu... dunno.. if people really use this feature :P * - Violins, senseless violins! * that's all, right now :P * - external! WINGs menu editor. * TODONOT * - allow applications to share their menu. ] think it * looks wierd since there still are more than 1 appicon. * * Syntax... * ( * "Program Name", * ("Command 1", SHORTCUT, 1), * ("Command 2", SHORTCUT, 2, ("Allowed_instant_1", "Allowed_instant_2")), * ("Command 3", SHORTCUT, (3,4,5), ("Allowed_instant_1")), * ( * "Submenu", * ("Kill Command", KILL), * ("Hide Command", HIDE), * ("Hide Others Command", HIDE_OTHERS), * ("Members", MEMBERS), * ("Exit Command", EXIT) * ) * ) * * Tips: * - If you don't want short cut keys to be listed * in the right side of entries, you can just put them * in array instead of using the string directly. * */ #include "wconfig.h" #ifdef USER_MENU #include #include #include #include #include #include #include #include #include "WindowMaker.h" #include "menu.h" #include "actions.h" #include "keybind.h" #include "xmodifier.h" #include "framewin.h" #define MAX_SHORTCUT_LENGTH 32 typedef struct { WScreen *screen; WShortKey *key; int key_no; } WUserMenuData; static void notifyClient(WMenu * menu, WMenuEntry * entry) { XEvent event; WUserMenuData *data = entry->clientdata; WScreen *scr = data->screen; Window window; int i; window = scr->focused_window->client_win; for (i = 0; i < data->key_no; i++) { event.xkey.type = KeyPress; event.xkey.display = dpy; event.xkey.window = window; event.xkey.root = DefaultRootWindow(dpy); event.xkey.subwindow = (Window) None; event.xkey.x = 0x0; event.xkey.y = 0x0; event.xkey.x_root = 0x0; event.xkey.y_root = 0x0; event.xkey.keycode = data->key[i].keycode; event.xkey.state = data->key[i].modifier; event.xkey.same_screen = True; event.xkey.time = CurrentTime; if (XSendEvent(dpy, window, False, KeyPressMask, &event)) { event.xkey.type = KeyRelease; event.xkey.time = CurrentTime; XSendEvent(dpy, window, True, KeyReleaseMask, &event); } } } static void removeUserMenudata(void *menudata) { WUserMenuData *data = menudata; if (data->key) wfree(data->key); wfree(data); } static WUserMenuData *convertShortcuts(WScreen * scr, WMPropList * shortcut) { WUserMenuData *data; KeySym ksym; char *k, buf[MAX_SHORTCUT_LENGTH], *b; int keycount, i, j, mod; if (WMIsPLString(shortcut)) { keycount = 1; } else if (WMIsPLArray(shortcut)) { keycount = WMGetPropListItemCount(shortcut); } else { return NULL; } data = wmalloc(sizeof(WUserMenuData)); if (!data) return NULL; data->key = wmalloc(sizeof(WShortKey) * keycount); if (!data->key) { wfree(data); return NULL; } for (i = 0, j = 0; i < keycount; i++) { data->key[j].modifier = 0; if (WMIsPLArray(shortcut)) wstrlcpy(buf, WMGetFromPLString(WMGetFromPLArray(shortcut, i)), MAX_SHORTCUT_LENGTH); else wstrlcpy(buf, WMGetFromPLString(shortcut), MAX_SHORTCUT_LENGTH); b = (char *)buf; while ((k = strchr(b, '+')) != NULL) { *k = 0; mod = wXModifierFromKey(b); if (mod < 0) break; data->key[j].modifier |= mod; b = k + 1; } ksym = XStringToKeysym(b); if (ksym == NoSymbol) continue; data->key[j].keycode = XKeysymToKeycode(dpy, ksym); if (data->key[j].keycode) j++; } keyover: /* get key */ if (!j) { puts("fatal j"); wfree(data->key); wfree(data); return NULL; } data->key_no = j; data->screen = scr; return data; } static WMenu *configureUserMenu(WScreen * scr, WMPropList * plum) { char *mtitle; WMenu *menu = NULL; WMPropList *elem, *title, *command, *params; int count, i; WUserMenuData *data; if (!plum) return NULL; if (!WMIsPLArray(plum)) return NULL; count = WMGetPropListItemCount(plum); if (!count) return NULL; elem = WMGetFromPLArray(plum, 0); if (!WMIsPLString(elem)) return NULL; mtitle = WMGetFromPLString(elem); menu = wMenuCreateForApp(scr, mtitle, True); for (i = 1; i < count; i++) { elem = WMGetFromPLArray(plum, i); if (WMIsPLArray(WMGetFromPLArray(elem, 1))) { WMenu *submenu; WMenuEntry *mentry; submenu = configureUserMenu(scr, elem); if (submenu) mentry = wMenuAddCallback(menu, submenu->frame->title, NULL, NULL); wMenuEntrySetCascade(menu, mentry, submenu); } else { int idx = 0; WMPropList *instances = 0; title = WMGetFromPLArray(elem, idx++); command = WMGetFromPLArray(elem, idx++); if (WMGetPropListItemCount(elem) >= 3) params = WMGetFromPLArray(elem, idx++); if (!title || !command) return menu; if (!strcmp("SHORTCUT", WMGetFromPLString(command))) { WMenuEntry *entry; data = convertShortcuts(scr, params); if (data) { entry = wMenuAddCallback(menu, WMGetFromPLString(title), notifyClient, data); if (entry) { if (WMIsPLString(params)) entry->rtext = GetShortcutString(WMGetFromPLString(params)); entry->free_cdata = removeUserMenudata; if (WMGetPropListItemCount(elem) >= 4) { instances = WMGetFromPLArray(elem, idx++); if (WMIsPLArray(instances)) if (instances && WMGetPropListItemCount(instances) && WMIsPLArray(instances)) { entry->instances = WMRetainPropList(instances); } } } } } } } return menu; } void wUserMenuRefreshInstances(WMenu * menu, WWindow * wwin) { WMenuEntry *entry; int i, j, count, paintflag; paintflag = 0; if (!menu) return; for (i = 0; i < menu->entry_no; i++) { if (menu->entries[i]->instances) { WMPropList *ins; int oldflag; count = WMGetPropListItemCount(menu->entries[i]->instances); oldflag = menu->entries[i]->flags.enabled; menu->entries[i]->flags.enabled = 0; for (j = 0; j < count; j++) { ins = WMGetFromPLArray(menu->entries[i]->instances, j); if (!strcmp(wwin->wm_instance, WMGetFromPLString(ins))) { menu->entries[i]->flags.enabled = 1; break; } } if (oldflag != menu->entries[i]->flags.enabled) paintflag = 1; } } for (i = 0; i < menu->cascade_no; i++) { if (!menu->cascades[i]->flags.brother) wUserMenuRefreshInstances(menu->cascades[i], wwin); else wUserMenuRefreshInstances(menu->cascades[i]->brother, wwin); } if (paintflag) wMenuPaint(menu); } static WMenu *readUserMenuFile(WScreen *scr, const char *file_name) { WMenu *menu = NULL; WMPropList *plum; plum = WMReadPropListFromFile(file_name); if (plum) { menu = configureUserMenu(scr, plum); WMReleasePropList(plum); } return menu; } WMenu *wUserMenuGet(WScreen * scr, WWindow * wwin) { WMenu *menu = NULL; char *path = NULL; char *tmp; if (wwin->wm_instance && wwin->wm_class) { int len = strlen(wwin->wm_instance) + strlen(wwin->wm_class) + 7; tmp = wmalloc(len); snprintf(tmp, len, "%s.%s.menu", wwin->wm_instance, wwin->wm_class); path = wfindfile(DEF_USER_MENU_PATHS, tmp); wfree(tmp); if (!path) return NULL; if (wwin) menu = readUserMenuFile(scr, path); wfree(path); } return menu; } #endif /* USER_MENU */ WindowMaker-0.95.5/src/GNUstep.h0000644000175000017500000000625312214432632013254 00000000000000/* GNUstep.h-- stuff for compatibility with GNUstep applications * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMGNUSTEP_H_ #define WMGNUSTEP_H_ #include #define GNUSTEP_WM_MINIATURIZE_WINDOW "_GNUSTEP_WM_MINIATURIZE_WINDOW" #define GNUSTEP_WM_ATTR_NAME "_GNUSTEP_WM_ATTR" #define GNUSTEP_TITLEBAR_STATE "_GNUSTEP_TITLEBAR_STATE" enum { WMTitleBarKey = 0, WMTitleBarNormal = 1, WMTitleBarMain = 2 }; #ifndef _DEFINED_GNUSTEP_WINDOW_INFO #define _DEFINED_GNUSTEP_WINDOW_INFO /* * Window levels are taken from GNUstep (gui/AppKit/NSWindow.h) * NSDesktopWindowLevel intended to be the level at which things * on the desktop sit ... so you should be able * to put a desktop background just below it. * * Applications are actually permitted to use any value in the * range INT_MIN+1 to INT_MAX */ enum { WMDesktopWindowLevel = -1000, /* GNUstep addition */ WMNormalWindowLevel = 0, WMFloatingWindowLevel = 3, WMSubmenuWindowLevel = 3, WMTornOffMenuWindowLevel = 3, WMMainMenuWindowLevel = 20, WMDockWindowLevel = 21, /* Deprecated - use NSStatusWindowLevel */ WMStatusWindowLevel = 21, WMModalPanelWindowLevel = 100, WMPopUpMenuWindowLevel = 101, WMScreenSaverWindowLevel = 1000 }; /* window attributes */ enum { WMBorderlessWindowMask = 0, WMTitledWindowMask = 1, WMClosableWindowMask = 2, WMMiniaturizableWindowMask = 4, WMResizableWindowMask = 8, WMIconWindowMask = 64, WMMiniWindowMask = 128 }; #endif /* window manager -> appkit notifications */ #define GNUSTEP_WM_NOTIFICATION "GNUSTEP_WM_NOTIFICATION" typedef struct { CARD32 flags; CARD32 window_style; CARD32 window_level; CARD32 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 */ CARD32 extra_flags; } GNUstepWMAttributes; #define GSWindowStyleAttr (1<<0) #define GSWindowLevelAttr (1<<1) #define GSMiniaturizePixmapAttr (1<<3) #define GSClosePixmapAttr (1<<4) #define GSMiniaturizeMaskAttr (1<<5) #define GSCloseMaskAttr (1<<6) #define GSExtraFlagsAttr (1<<7) /* extra flags */ #define GSDocumentEditedFlag (1<<0) #define GSNoApplicationIconFlag (1<<5) #define WMFHideOtherApplications 10 #define WMFHideApplication 12 #endif WindowMaker-0.95.5/src/winspector.c0000644000175000017500000014402212214432632014114 00000000000000/* winspector.c - window attribute inspector * * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include "WindowMaker.h" #include "screen.h" #include "wcore.h" #include "framewin.h" #include "window.h" #include "workspace.h" #include "defaults.h" #include "dialog.h" #include "icon.h" #include "stacking.h" #include "application.h" #include "appicon.h" #include "actions.h" #include "winspector.h" #include "dock.h" #include "client.h" #include "wmspec.h" #include "misc.h" #include "switchmenu.h" #include #define USE_TEXT_FIELD 1 #define UPDATE_TEXT_FIELD 2 #define REVERT_TO_DEFAULT 4 #define PWIDTH 290 #define PHEIGHT 360 #define UNDEFINED_POS 0xffffff #define UPDATE_DEFAULTS 1 #define IS_BOOLEAN 2 typedef struct InspectorPanel { struct InspectorPanel *nextPtr; WWindow *frame; WWindow *inspected; /* the window that's being inspected */ WMWindow *win; Window parent; /* common stuff */ WMButton *revertBtn; WMButton *applyBtn; WMButton *saveBtn; WMPopUpButton *pagePopUp; /* first page. general stuff */ WMFrame *specFrm; WMButton *instRb; WMButton *clsRb; WMButton *bothRb; WMButton *defaultRb; WMButton *selWinB; WMLabel *specLbl; /* second page. attributes */ WMFrame *attrFrm; WMButton *attrChk[11]; /* 3rd page. more attributes */ WMFrame *moreFrm; #ifdef XKB_BUTTON_HINT WMButton *moreChk[12]; #else WMButton *moreChk[11]; #endif /* 4th page. icon and workspace */ WMFrame *iconFrm; WMLabel *iconLbl; WMLabel *fileLbl; WMTextField *fileText; WMButton *alwChk; WMButton *browseIconBtn; WMFrame *wsFrm; WMPopUpButton *wsP; /* 5th page. application wide attributes */ WMFrame *appFrm; WMButton *appChk[3]; unsigned int done:1; unsigned int destroyed:1; unsigned int choosingIcon:1; } InspectorPanel; extern Cursor wCursor[WCUR_LAST]; extern WDDomain *WDWindowAttributes; static InspectorPanel *panelList = NULL; static WMPropList *ANoTitlebar = NULL; static WMPropList *ANoResizebar; static WMPropList *ANoMiniaturizeButton; static WMPropList *ANoCloseButton; static WMPropList *ANoBorder; static WMPropList *ANoHideOthers; static WMPropList *ANoMouseBindings; static WMPropList *ANoKeyBindings; static WMPropList *ANoAppIcon; static WMPropList *AKeepOnTop; static WMPropList *AKeepOnBottom; static WMPropList *AOmnipresent; static WMPropList *ASkipWindowList; static WMPropList *ASkipSwitchPanel; static WMPropList *AKeepInsideScreen; static WMPropList *AUnfocusable; static WMPropList *AFocusAcrossWorkspace; static WMPropList *AAlwaysUserIcon; static WMPropList *AStartMiniaturized; static WMPropList *AStartMaximized; static WMPropList *ADontSaveSession; static WMPropList *AEmulateAppIcon; static WMPropList *AFullMaximize; static WMPropList *ASharedAppIcon; static WMPropList *ANoMiniaturizable; #ifdef XKB_BUTTON_HINT static WMPropList *ANoLanguageButton; #endif static WMPropList *AStartWorkspace; static WMPropList *AIcon; /* application wide options */ static WMPropList *AStartHidden; static WMPropList *AnyWindow; static WMPropList *EmptyString; static WMPropList *Yes, *No; static char *spec_text; static void applySettings(WMButton *button, InspectorPanel *panel); static InspectorPanel *createInspectorForWindow(WWindow *wwin, int xpos, int ypos, Bool showSelectPanel); static void create_tab_window_attributes(WWindow *wwin, InspectorPanel *panel, int frame_width); static void create_tab_window_advanced(WWindow *wwin, InspectorPanel *panel, int frame_width); static void create_tab_icon_workspace(WWindow *wwin, InspectorPanel *panel, int frame_width); static void create_tab_app_specific(WWindow *wwin, InspectorPanel *panel, int frame_width); static void make_keys(void) { if (ANoTitlebar != NULL) return; AIcon = WMCreatePLString("Icon"); ANoTitlebar = WMCreatePLString("NoTitlebar"); ANoResizebar = WMCreatePLString("NoResizebar"); ANoMiniaturizeButton = WMCreatePLString("NoMiniaturizeButton"); ANoCloseButton = WMCreatePLString("NoCloseButton"); ANoBorder = WMCreatePLString("NoBorder"); ANoHideOthers = WMCreatePLString("NoHideOthers"); ANoMouseBindings = WMCreatePLString("NoMouseBindings"); ANoKeyBindings = WMCreatePLString("NoKeyBindings"); ANoAppIcon = WMCreatePLString("NoAppIcon"); AKeepOnTop = WMCreatePLString("KeepOnTop"); AKeepOnBottom = WMCreatePLString("KeepOnBottom"); AOmnipresent = WMCreatePLString("Omnipresent"); ASkipWindowList = WMCreatePLString("SkipWindowList"); ASkipSwitchPanel = WMCreatePLString("SkipSwitchPanel"); AKeepInsideScreen = WMCreatePLString("KeepInsideScreen"); AUnfocusable = WMCreatePLString("Unfocusable"); AFocusAcrossWorkspace = WMCreatePLString("FocusAcrossWorkspace"); AAlwaysUserIcon = WMCreatePLString("AlwaysUserIcon"); AStartMiniaturized = WMCreatePLString("StartMiniaturized"); AStartMaximized = WMCreatePLString("StartMaximized"); AStartHidden = WMCreatePLString("StartHidden"); ADontSaveSession = WMCreatePLString("DontSaveSession"); AEmulateAppIcon = WMCreatePLString("EmulateAppIcon"); AFullMaximize = WMCreatePLString("FullMaximize"); ASharedAppIcon = WMCreatePLString("SharedAppIcon"); ANoMiniaturizable = WMCreatePLString("NoMiniaturizable"); #ifdef XKB_BUTTON_HINT ANoLanguageButton = WMCreatePLString("NoLanguageButton"); #endif AStartWorkspace = WMCreatePLString("StartWorkspace"); AnyWindow = WMCreatePLString("*"); EmptyString = WMCreatePLString(""); Yes = WMCreatePLString("Yes"); No = WMCreatePLString("No"); } static void freeInspector(InspectorPanel *panel) { panel->destroyed = 1; if (panel->choosingIcon) return; WMDestroyWidget(panel->win); XDestroyWindow(dpy, panel->parent); wfree(panel); } static void destroyInspector(WCoreWindow *foo, void *data, XEvent *event) { InspectorPanel *panel, *tmp; panel = panelList; while (panel->frame != data) panel = panel->nextPtr; if (panelList == panel) { panelList = panel->nextPtr; } else { tmp = panelList; while (tmp->nextPtr != panel) tmp = tmp->nextPtr; tmp->nextPtr = panel->nextPtr; } panel->inspected->flags.inspector_open = 0; panel->inspected->inspector = NULL; WMRemoveNotificationObserver(panel); wWindowUnmap(panel->frame); wUnmanageWindow(panel->frame, True, False); freeInspector(panel); } void wDestroyInspectorPanels(void) { InspectorPanel *panel; while (panelList != NULL) { panel = panelList; panelList = panelList->nextPtr; wUnmanageWindow(panel->frame, False, False); WMDestroyWidget(panel->win); panel->inspected->flags.inspector_open = 0; panel->inspected->inspector = NULL; wfree(panel); } } static void changePage(WMPopUpButton *bPtr, InspectorPanel *panel) { int page; page = WMGetPopUpButtonSelectedItem(bPtr); if (page == 0) { WMMapWidget(panel->specFrm); WMMapWidget(panel->specLbl); } else if (page == 1) { WMMapWidget(panel->attrFrm); } else if (page == 2) { WMMapWidget(panel->moreFrm); } else if (page == 3) { WMMapWidget(panel->iconFrm); WMMapWidget(panel->wsFrm); } else { WMMapWidget(panel->appFrm); } if (page != 0) { WMUnmapWidget(panel->specFrm); WMUnmapWidget(panel->specLbl); } if (page != 1) WMUnmapWidget(panel->attrFrm); if (page != 2) WMUnmapWidget(panel->moreFrm); if (page != 3) { WMUnmapWidget(panel->iconFrm); WMUnmapWidget(panel->wsFrm); } if (page != 4 && panel->appFrm) WMUnmapWidget(panel->appFrm); } static int showIconFor(WMScreen *scrPtr, InspectorPanel *panel, const char *wm_instance, const char *wm_class, int flags) { WMPixmap *pixmap = (WMPixmap *) NULL; char *file = NULL, *path = NULL, *db_icon = NULL; if ((flags & USE_TEXT_FIELD) != 0) { file = WMGetTextFieldText(panel->fileText); if (file && file[0] == 0) { wfree(file); file = NULL; } } else { /* Get the application icon, default NOT included */ db_icon = wDefaultGetIconFile(wm_instance, wm_class, False); if (db_icon != NULL) file = wstrdup(db_icon); } if (db_icon != NULL && (flags & REVERT_TO_DEFAULT) != 0) { if (file) file = wstrdup(db_icon); flags |= UPDATE_TEXT_FIELD; } if ((flags & UPDATE_TEXT_FIELD) != 0) WMSetTextFieldText(panel->fileText, file); if (file) { path = FindImage(wPreferences.icon_path, file); if (!path) { char *buf; int len = strlen(file) + 80; buf = wmalloc(len); snprintf(buf, len, _("Could not find icon \"%s\" specified for this window"), file); wMessageDialog(panel->frame->screen_ptr, _("Error"), buf, _("OK"), NULL, NULL); wfree(buf); wfree(file); return -1; } pixmap = WMCreatePixmapFromFile(scrPtr, path); wfree(path); if (!pixmap) { char *buf; int len = strlen(file) + 80; buf = wmalloc(len); snprintf(buf, len, _("Could not open specified icon \"%s\":%s"), file, RMessageForError(RErrorCode)); wMessageDialog(panel->frame->screen_ptr, _("Error"), buf, _("OK"), NULL, NULL); wfree(buf); wfree(file); return -1; } wfree(file); } WMSetLabelImage(panel->iconLbl, pixmap); if (pixmap) WMReleasePixmap(pixmap); return 0; } static int getBool(WMPropList *value) { char *val; if (!WMIsPLString(value)) return 0; if (!(val = WMGetFromPLString(value))) return 0; if ((val[1] == '\0' && (val[0] == 'y' || val[0] == 'Y' || val[0] == 'T' || val[0] == 't' || val[0] == '1')) || (strcasecmp(val, "YES") == 0 || strcasecmp(val, "TRUE") == 0)) { return 1; } else if ((val[1] == '\0' && (val[0] == 'n' || val[0] == 'N' || val[0] == 'F' || val[0] == 'f' || val[0] == '0')) || (strcasecmp(val, "NO") == 0 || strcasecmp(val, "FALSE") == 0)) { return 0; } else { wwarning(_("can't convert \"%s\" to boolean"), val); return 0; } } /* Will insert the attribute = value; pair in window's list, * if it's different from the defaults. * Defaults means either defaults database, or attributes saved * for the default window "*". This is to let one revert options that are * global because they were saved for all windows ("*"). */ static int insertAttribute(WMPropList *dict, WMPropList *window, WMPropList *attr, WMPropList *value, int flags) { WMPropList *def_win, *def_value = NULL; int update = 0, modified = 0; if (!(flags & UPDATE_DEFAULTS) && dict) { if ((def_win = WMGetFromPLDictionary(dict, AnyWindow)) != NULL) def_value = WMGetFromPLDictionary(def_win, attr); } /* If we could not find defaults in database, fall to hardcoded values. * Also this is true if we save defaults for all windows */ if (!def_value) def_value = ((flags & IS_BOOLEAN) != 0) ? No : EmptyString; if (flags & IS_BOOLEAN) update = (getBool(value) != getBool(def_value)); else update = !WMIsPropListEqualTo(value, def_value); if (update) { WMPutInPLDictionary(window, attr, value); modified = 1; } return modified; } static void saveSettings(WMButton *button, InspectorPanel *panel) { WWindow *wwin = panel->inspected; WDDomain *db = WDWindowAttributes; WMPropList *dict = NULL; WMPropList *winDic, *appDic, *value, *value1, *key = NULL, *key2; char *icon_file, *buf1, *buf2; int flags = 0, i = 0, different = 0, different2 = 0; /* Save will apply the changes and save them */ applySettings(panel->applyBtn, panel); if (WMGetButtonSelected(panel->instRb) != 0) { key = WMCreatePLString(wwin->wm_instance); } else if (WMGetButtonSelected(panel->clsRb) != 0) { key = WMCreatePLString(wwin->wm_class); } else if (WMGetButtonSelected(panel->bothRb) != 0) { buf1 = StrConcatDot(wwin->wm_instance, wwin->wm_class); key = WMCreatePLString(buf1); wfree(buf1); } else if (WMGetButtonSelected(panel->defaultRb) != 0) { key = WMRetainPropList(AnyWindow); flags = UPDATE_DEFAULTS; } if (!key) return; dict = db->dictionary; if (!dict) { dict = WMCreatePLDictionary(NULL, NULL); if (dict) { db->dictionary = dict; } else { WMReleasePropList(key); return; } } if (showIconFor(WMWidgetScreen(button), panel, NULL, NULL, USE_TEXT_FIELD) < 0) return; WMPLSetCaseSensitive(True); winDic = WMCreatePLDictionary(NULL, NULL); appDic = WMCreatePLDictionary(NULL, NULL); /* Save the icon info */ /* The flag "Ignore client suplied icon is not selected" */ buf1 = wmalloc(4); snprintf(buf1, 4, "%s", (WMGetButtonSelected(panel->alwChk) != 0) ? "Yes" : "No"); value1 = WMCreatePLString(buf1); different |= insertAttribute(dict, winDic, AAlwaysUserIcon, value1, flags); WMReleasePropList(value1); wfree(buf1); /* The icon filename (if exists) */ icon_file = WMGetTextFieldText(panel->fileText); if ((icon_file) && (icon_file[0] != 0)) { value = WMCreatePLString(icon_file); different |= insertAttribute(dict, winDic, AIcon, value, flags); different2 |= insertAttribute(dict, appDic, AIcon, value, flags); WMReleasePropList(value); wfree(icon_file); } i = WMGetPopUpButtonSelectedItem(panel->wsP) - 1; if (i >= 0 && i < panel->frame->screen_ptr->workspace_count) { value = WMCreatePLString(panel->frame->screen_ptr->workspaces[i]->name); different |= insertAttribute(dict, winDic, AStartWorkspace, value, flags); WMReleasePropList(value); } flags |= IS_BOOLEAN; value = (WMGetButtonSelected(panel->attrChk[0]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoTitlebar, value, flags); value = (WMGetButtonSelected(panel->attrChk[1]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoResizebar, value, flags); value = (WMGetButtonSelected(panel->attrChk[2]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoCloseButton, value, flags); value = (WMGetButtonSelected(panel->attrChk[3]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoMiniaturizeButton, value, flags); value = (WMGetButtonSelected(panel->attrChk[4]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoBorder, value, flags); value = (WMGetButtonSelected(panel->attrChk[5]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AKeepOnTop, value, flags); value = (WMGetButtonSelected(panel->attrChk[6]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AKeepOnBottom, value, flags); value = (WMGetButtonSelected(panel->attrChk[7]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AOmnipresent, value, flags); value = (WMGetButtonSelected(panel->attrChk[8]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AStartMiniaturized, value, flags); value = (WMGetButtonSelected(panel->attrChk[9]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AStartMaximized, value, flags); value = (WMGetButtonSelected(panel->attrChk[10]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AFullMaximize, value, flags); value = (WMGetButtonSelected(panel->moreChk[0]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoKeyBindings, value, flags); value = (WMGetButtonSelected(panel->moreChk[1]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoMouseBindings, value, flags); value = (WMGetButtonSelected(panel->moreChk[2]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ASkipWindowList, value, flags); value = (WMGetButtonSelected(panel->moreChk[3]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ASkipSwitchPanel, value, flags); value = (WMGetButtonSelected(panel->moreChk[4]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AUnfocusable, value, flags); value = (WMGetButtonSelected(panel->moreChk[5]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AKeepInsideScreen, value, flags); value = (WMGetButtonSelected(panel->moreChk[6]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoHideOthers, value, flags); value = (WMGetButtonSelected(panel->moreChk[7]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ADontSaveSession, value, flags); value = (WMGetButtonSelected(panel->moreChk[8]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AEmulateAppIcon, value, flags); value = (WMGetButtonSelected(panel->moreChk[9]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AFocusAcrossWorkspace, value, flags); value = (WMGetButtonSelected(panel->moreChk[10]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoMiniaturizable, value, flags); #ifdef XKB_BUTTON_HINT value = (WMGetButtonSelected(panel->moreChk[11]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoLanguageButton, value, flags); #endif if (wwin->main_window != None && wApplicationOf(wwin->main_window) != NULL) { value = (WMGetButtonSelected(panel->appChk[0]) != 0) ? Yes : No; different2 |= insertAttribute(dict, appDic, AStartHidden, value, flags); value = (WMGetButtonSelected(panel->appChk[1]) != 0) ? Yes : No; different2 |= insertAttribute(dict, appDic, ANoAppIcon, value, flags); value = (WMGetButtonSelected(panel->appChk[2]) != 0) ? Yes : No; different2 |= insertAttribute(dict, appDic, ASharedAppIcon, value, flags); } if (wwin->fake_group) { key2 = WMCreatePLString(wwin->fake_group->identifier); if (WMIsPropListEqualTo(key, key2)) { WMMergePLDictionaries(winDic, appDic, True); different |= different2; } else { WMRemoveFromPLDictionary(dict, key2); if (different2) WMPutInPLDictionary(dict, key2, appDic); } WMReleasePropList(key2); WMReleasePropList(appDic); } else if (wwin->main_window != wwin->client_win) { WApplication *wapp = wApplicationOf(wwin->main_window); if (wapp) { buf2 = StrConcatDot(wapp->main_window_desc->wm_instance, wapp->main_window_desc->wm_class); key2 = WMCreatePLString(buf2); wfree(buf2); if (WMIsPropListEqualTo(key, key2)) { WMMergePLDictionaries(winDic, appDic, True); different |= different2; } else { WMRemoveFromPLDictionary(dict, key2); if (different2) WMPutInPLDictionary(dict, key2, appDic); } WMReleasePropList(key2); WMReleasePropList(appDic); } } else { WMMergePLDictionaries(winDic, appDic, True); different |= different2; WMReleasePropList(appDic); } WMRemoveFromPLDictionary(dict, key); if (different) WMPutInPLDictionary(dict, key, winDic); WMReleasePropList(key); WMReleasePropList(winDic); UpdateDomainFile(db); /* clean up */ WMPLSetCaseSensitive(False); } static void applySettings(WMButton *button, InspectorPanel *panel) { WWindow *wwin = panel->inspected; WApplication *wapp = wApplicationOf(wwin->main_window); int floating, sunken, skip_window_list; int old_omnipresent, old_no_bind_keys, old_no_bind_mouse; old_omnipresent = WFLAGP(wwin, omnipresent); old_no_bind_keys = WFLAGP(wwin, no_bind_keys); old_no_bind_mouse = WFLAGP(wwin, no_bind_mouse); showIconFor(WMWidgetScreen(button), panel, NULL, NULL, USE_TEXT_FIELD); /* Attributes... --> Window Attributes */ WSETUFLAG(wwin, no_titlebar, WMGetButtonSelected(panel->attrChk[0])); WSETUFLAG(wwin, no_resizebar, WMGetButtonSelected(panel->attrChk[1])); WSETUFLAG(wwin, no_close_button, WMGetButtonSelected(panel->attrChk[2])); WSETUFLAG(wwin, no_miniaturize_button, WMGetButtonSelected(panel->attrChk[3])); WSETUFLAG(wwin, no_border, WMGetButtonSelected(panel->attrChk[4])); floating = WMGetButtonSelected(panel->attrChk[5]); sunken = WMGetButtonSelected(panel->attrChk[6]); WSETUFLAG(wwin, omnipresent, WMGetButtonSelected(panel->attrChk[7])); WSETUFLAG(wwin, start_miniaturized, WMGetButtonSelected(panel->attrChk[8])); WSETUFLAG(wwin, start_maximized, WMGetButtonSelected(panel->attrChk[9])); WSETUFLAG(wwin, full_maximize, WMGetButtonSelected(panel->attrChk[10])); /* Attributes... --> Advanced Options */ WSETUFLAG(wwin, no_bind_keys, WMGetButtonSelected(panel->moreChk[0])); WSETUFLAG(wwin, no_bind_mouse, WMGetButtonSelected(panel->moreChk[1])); skip_window_list = WMGetButtonSelected(panel->moreChk[2]); WSETUFLAG(wwin, skip_switchpanel, WMGetButtonSelected(panel->moreChk[3])); WSETUFLAG(wwin, no_focusable, WMGetButtonSelected(panel->moreChk[4])); WSETUFLAG(wwin, dont_move_off, WMGetButtonSelected(panel->moreChk[5])); WSETUFLAG(wwin, no_hide_others, WMGetButtonSelected(panel->moreChk[6])); WSETUFLAG(wwin, dont_save_session, WMGetButtonSelected(panel->moreChk[7])); WSETUFLAG(wwin, emulate_appicon, WMGetButtonSelected(panel->moreChk[8])); WSETUFLAG(wwin, focus_across_wksp, WMGetButtonSelected(panel->moreChk[9])); WSETUFLAG(wwin, no_miniaturizable, WMGetButtonSelected(panel->moreChk[10])); #ifdef XKB_BUTTON_HINT WSETUFLAG(wwin, no_language_button, WMGetButtonSelected(panel->moreChk[11])); #endif WSETUFLAG(wwin, always_user_icon, WMGetButtonSelected(panel->alwChk)); if (WFLAGP(wwin, no_titlebar) && wwin->flags.shaded) wUnshadeWindow(wwin); WSETUFLAG(wwin, no_shadeable, WFLAGP(wwin, no_titlebar)); if (floating) { if (!WFLAGP(wwin, floating)) ChangeStackingLevel(wwin->frame->core, WMFloatingLevel); } else if (sunken) { if (!WFLAGP(wwin, sunken)) ChangeStackingLevel(wwin->frame->core, WMSunkenLevel); } else { if (WFLAGP(wwin, floating) || WFLAGP(wwin, sunken)) ChangeStackingLevel(wwin->frame->core, WMNormalLevel); } WSETUFLAG(wwin, sunken, sunken); WSETUFLAG(wwin, floating, floating); wwin->flags.omnipresent = 0; if (WFLAGP(wwin, skip_window_list) != skip_window_list) { WSETUFLAG(wwin, skip_window_list, skip_window_list); UpdateSwitchMenu(wwin->screen_ptr, wwin, skip_window_list ? ACTION_REMOVE : ACTION_ADD); } else { if (WFLAGP(wwin, omnipresent) != old_omnipresent) WMPostNotificationName(WMNChangedState, wwin, "omnipresent"); } if (WFLAGP(wwin, no_bind_keys) != old_no_bind_keys) { if (WFLAGP(wwin, no_bind_keys)) XUngrabKey(dpy, AnyKey, AnyModifier, wwin->frame->core->window); else wWindowSetKeyGrabs(wwin); } if (WFLAGP(wwin, no_bind_mouse) != old_no_bind_mouse) wWindowResetMouseGrabs(wwin); wwin->frame->flags.need_texture_change = 1; wWindowConfigureBorders(wwin); wFrameWindowPaint(wwin->frame); wNETWMUpdateActions(wwin, False); /* Can't apply emulate_appicon because it will probably cause problems. */ if (wapp) { /* do application wide stuff */ WSETUFLAG(wapp->main_window_desc, start_hidden, WMGetButtonSelected(panel->appChk[0])); WSETUFLAG(wapp->main_window_desc, no_appicon, WMGetButtonSelected(panel->appChk[1])); WSETUFLAG(wapp->main_window_desc, shared_appicon, WMGetButtonSelected(panel->appChk[2])); if (WFLAGP(wapp->main_window_desc, no_appicon)) unpaint_app_icon(wapp); else paint_app_icon(wapp); char *file = WMGetTextFieldText(panel->fileText); if (file[0] == 0) { wfree(file); file = NULL; } /* If always_user_icon flag is set, but the user icon is not set * we use client supplied icon and we unset the flag */ if ((WFLAGP(wwin, always_user_icon) && (!file))) { /* Show the warning */ char *buf; int len = 100; buf = wmalloc(len); snprintf(buf, len, _("Ignore client supplied icon is set, but icon filename textbox is empty. Using client supplied icon")); wMessageDialog(panel->frame->screen_ptr, _("Warning"), buf, _("OK"), NULL, NULL); wfree(buf); wfree(file); /* Change the flags */ WSETUFLAG(wwin, always_user_icon, 0); WMSetButtonSelected(panel->alwChk, 0); } /* After test the always_user_icon flag value before, * the "else" block is used only if the flag is set and * the icon text box has an icon path */ if (!WFLAGP(wwin, always_user_icon)) { /* Change App Icon image, using the icon provided by the client */ if (wapp->app_icon) { RImage *image = get_rimage_icon_from_wm_hints(wapp->app_icon->icon); if (image) { set_icon_image_from_image(wapp->app_icon->icon, image); update_icon_pixmap(wapp->app_icon->icon); } else { wIconUpdate(wapp->app_icon->icon); } } /* Change icon image if the app is minimized, * using the icon provided by the client */ if (wwin->icon) { RImage *image = get_rimage_icon_from_wm_hints(wwin->icon); if (image) { set_icon_image_from_image(wwin->icon, image); update_icon_pixmap(wwin->icon); } else { wIconUpdate(wwin->icon); } } } else { /* Change App Icon image */ if (wapp->app_icon) wIconChangeImageFile(wapp->app_icon->icon, file); /* Change icon image if the app is minimized */ if (wwin->icon) wIconChangeImageFile(wwin->icon, file); } if (file) wfree(file); } wNETFrameExtents(wwin); } static void revertSettings(WMButton *button, InspectorPanel *panel) { WWindow *wwin = panel->inspected; WApplication *wapp = wApplicationOf(wwin->main_window); int i, n, workspace, level; char *wm_instance = NULL, *wm_class = NULL; if (panel->instRb && WMGetButtonSelected(panel->instRb) != 0) wm_instance = wwin->wm_instance; else if (panel->clsRb && WMGetButtonSelected(panel->clsRb) != 0) wm_class = wwin->wm_class; else if (panel->bothRb && WMGetButtonSelected(panel->bothRb) != 0) { wm_instance = wwin->wm_instance; wm_class = wwin->wm_class; } memset(&wwin->defined_user_flags, 0, sizeof(WWindowAttributes)); memset(&wwin->user_flags, 0, sizeof(WWindowAttributes)); memset(&wwin->client_flags, 0, sizeof(WWindowAttributes)); wWindowSetupInitialAttributes(wwin, &level, &workspace); for (i = 0; i < (sizeof(panel->attrChk) / sizeof(panel->attrChk[0])); i++) { int flag = 0; switch (i) { case 0: flag = WFLAGP(wwin, no_titlebar); break; case 1: flag = WFLAGP(wwin, no_resizebar); break; case 2: flag = WFLAGP(wwin, no_close_button); break; case 3: flag = WFLAGP(wwin, no_miniaturize_button); break; case 4: flag = WFLAGP(wwin, no_border); break; case 5: flag = WFLAGP(wwin, floating); break; case 6: flag = WFLAGP(wwin, sunken); break; case 7: flag = WFLAGP(wwin, omnipresent); break; case 8: flag = WFLAGP(wwin, start_miniaturized); break; case 9: flag = WFLAGP(wwin, start_maximized != 0); break; case 10: flag = WFLAGP(wwin, full_maximize); break; } WMSetButtonSelected(panel->attrChk[i], flag); } for (i = 0; i < (sizeof(panel->moreChk) / sizeof(panel->moreChk[0])); i++) { int flag = 0; switch (i) { case 0: flag = WFLAGP(wwin, no_bind_keys); break; case 1: flag = WFLAGP(wwin, no_bind_mouse); break; case 2: flag = WFLAGP(wwin, skip_window_list); break; case 3: flag = WFLAGP(wwin, skip_switchpanel); break; case 4: flag = WFLAGP(wwin, no_focusable); break; case 5: flag = WFLAGP(wwin, dont_move_off); break; case 6: flag = WFLAGP(wwin, no_hide_others); break; case 7: flag = WFLAGP(wwin, dont_save_session); break; case 8: flag = WFLAGP(wwin, emulate_appicon); break; case 9: flag = WFLAGP(wwin, focus_across_wksp); break; case 10: flag = WFLAGP(wwin, no_miniaturizable); break; #ifdef XKB_BUTTON_HINT case 11: flag = WFLAGP(wwin, no_language_button); break; #endif } WMSetButtonSelected(panel->moreChk[i], flag); } if (panel->appFrm && wapp) { for (i = 0; i < (sizeof(panel->appChk) / sizeof(panel->appChk[0])); i++) { int flag = 0; switch (i) { case 0: flag = WFLAGP(wapp->main_window_desc, start_hidden); break; case 1: flag = WFLAGP(wapp->main_window_desc, no_appicon); break; case 2: flag = WFLAGP(wapp->main_window_desc, shared_appicon); break; } WMSetButtonSelected(panel->appChk[i], flag); } } WMSetButtonSelected(panel->alwChk, WFLAGP(wwin, always_user_icon)); showIconFor(WMWidgetScreen(panel->alwChk), panel, wm_instance, wm_class, REVERT_TO_DEFAULT); n = wDefaultGetStartWorkspace(wwin->screen_ptr, wm_instance, wm_class); if (n >= 0 && n < wwin->screen_ptr->workspace_count) WMSetPopUpButtonSelectedItem(panel->wsP, n + 1); else WMSetPopUpButtonSelectedItem(panel->wsP, 0); /* must auto apply, so that there wno't be internal * inconsistencies between the state in the flags and * the actual state of the window */ applySettings(panel->applyBtn, panel); } static void chooseIconCallback(WMWidget *self, void *clientData) { char *file; InspectorPanel *panel = (InspectorPanel *) clientData; int result; panel->choosingIcon = 1; WMSetButtonEnabled(panel->browseIconBtn, False); result = wIconChooserDialog(panel->frame->screen_ptr, &file, panel->inspected->wm_instance, panel->inspected->wm_class); panel->choosingIcon = 0; if (!panel->destroyed) { /* kluge */ if (result) { WMSetTextFieldText(panel->fileText, file); showIconFor(WMWidgetScreen(self), panel, NULL, NULL, USE_TEXT_FIELD); wfree(file); } WMSetButtonEnabled(panel->browseIconBtn, True); } else { freeInspector(panel); } } static void textEditedObserver(void *observerData, WMNotification *notification) { InspectorPanel *panel = (InspectorPanel *) observerData; if ((long)WMGetNotificationClientData(notification) != WMReturnTextMovement) return; showIconFor(WMWidgetScreen(panel->win), panel, NULL, NULL, USE_TEXT_FIELD); } static void selectSpecification(WMWidget *bPtr, void *data) { InspectorPanel *panel = (InspectorPanel *) data; char *str; WWindow *wwin = panel->inspected; int len; if (bPtr == panel->defaultRb && (wwin->wm_instance || wwin->wm_class)) WMSetButtonEnabled(panel->applyBtn, False); else WMSetButtonEnabled(panel->applyBtn, True); len = 16 + strlen(wwin->wm_instance ? wwin->wm_instance : "?") + strlen(wwin->wm_class ? wwin->wm_class : "?"); str = wmalloc(len); snprintf(str, len, _("Inspecting %s.%s"), wwin->wm_instance ? wwin->wm_instance : "?", wwin->wm_class ? wwin->wm_class : "?"); wFrameWindowChangeTitle(panel->frame->frame, str); wfree(str); } static void selectWindow(WMWidget *bPtr, void *data) { InspectorPanel *panel = (InspectorPanel *) data; WWindow *wwin = panel->inspected; WScreen *scr = wwin->screen_ptr; XEvent event; WWindow *iwin; if (XGrabPointer(dpy, scr->root_win, True, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, wCursor[WCUR_SELECT], CurrentTime) != GrabSuccess) { wwarning("could not grab mouse pointer"); return; } WMSetLabelText(panel->specLbl, _("Click in the window you wish to inspect.")); WMMaskEvent(dpy, ButtonPressMask, &event); XUngrabPointer(dpy, CurrentTime); iwin = wWindowFor(event.xbutton.subwindow); if (iwin && !iwin->flags.internal_window && iwin != wwin && !iwin->flags.inspector_open) { iwin->flags.inspector_open = 1; iwin->inspector = createInspectorForWindow(iwin, panel->frame->frame_x, panel->frame->frame_y, True); wCloseInspectorForWindow(wwin); } else { WMSetLabelText(panel->specLbl, spec_text); } } static InspectorPanel *createInspectorForWindow(WWindow *wwin, int xpos, int ypos, Bool showSelectPanel) { WScreen *scr = wwin->screen_ptr; InspectorPanel *panel; Window parent; char *str = NULL, *tmp = NULL; int x, y, btn_width, frame_width; WMButton *selectedBtn = NULL; spec_text = _("The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved."); panel = wmalloc(sizeof(InspectorPanel)); memset(panel, 0, sizeof(InspectorPanel)); panel->destroyed = 0; panel->inspected = wwin; panel->nextPtr = panelList; panelList = panel; panel->win = WMCreateWindow(scr->wmscreen, "windowInspector"); WMResizeWidget(panel->win, PWIDTH, PHEIGHT); /**** create common stuff ****/ /* command buttons */ btn_width = (PWIDTH - (2 * 15) - (2 * 10)) / 3; panel->saveBtn = WMCreateCommandButton(panel->win); WMSetButtonAction(panel->saveBtn, (WMAction *) saveSettings, panel); WMMoveWidget(panel->saveBtn, (2 * (btn_width + 10)) + 15, PHEIGHT - 40); WMSetButtonText(panel->saveBtn, _("Save")); WMResizeWidget(panel->saveBtn, btn_width, 28); if (wPreferences.flags.noupdates || !(wwin->wm_class || wwin->wm_instance)) WMSetButtonEnabled(panel->saveBtn, False); panel->applyBtn = WMCreateCommandButton(panel->win); WMSetButtonAction(panel->applyBtn, (WMAction *) applySettings, panel); WMMoveWidget(panel->applyBtn, btn_width + 10 + 15, PHEIGHT - 40); WMSetButtonText(panel->applyBtn, _("Apply")); WMResizeWidget(panel->applyBtn, btn_width, 28); panel->revertBtn = WMCreateCommandButton(panel->win); WMSetButtonAction(panel->revertBtn, (WMAction *) revertSettings, panel); WMMoveWidget(panel->revertBtn, 15, PHEIGHT - 40); WMSetButtonText(panel->revertBtn, _("Reload")); WMResizeWidget(panel->revertBtn, btn_width, 28); /* page selection popup button */ panel->pagePopUp = WMCreatePopUpButton(panel->win); WMSetPopUpButtonAction(panel->pagePopUp, (WMAction *) changePage, panel); WMMoveWidget(panel->pagePopUp, 25, 15); WMResizeWidget(panel->pagePopUp, PWIDTH - 50, 20); WMAddPopUpButtonItem(panel->pagePopUp, _("Window Specification")); WMAddPopUpButtonItem(panel->pagePopUp, _("Window Attributes")); WMAddPopUpButtonItem(panel->pagePopUp, _("Advanced Options")); WMAddPopUpButtonItem(panel->pagePopUp, _("Icon and Initial Workspace")); WMAddPopUpButtonItem(panel->pagePopUp, _("Application Specific")); /**** window spec ****/ frame_width = PWIDTH - (2 * 15); panel->specFrm = WMCreateFrame(panel->win); WMSetFrameTitle(panel->specFrm, _("Window Specification")); WMMoveWidget(panel->specFrm, 15, 65); WMResizeWidget(panel->specFrm, frame_width, 145); panel->defaultRb = WMCreateRadioButton(panel->specFrm); WMMoveWidget(panel->defaultRb, 10, 78); WMResizeWidget(panel->defaultRb, frame_width - (2 * 10), 20); WMSetButtonText(panel->defaultRb, _("Defaults for all windows")); WMSetButtonSelected(panel->defaultRb, False); WMSetButtonAction(panel->defaultRb, selectSpecification, panel); if (wwin->wm_class && wwin->wm_instance) { tmp = wstrconcat(wwin->wm_instance, "."); str = wstrconcat(tmp, wwin->wm_class); panel->bothRb = WMCreateRadioButton(panel->specFrm); WMMoveWidget(panel->bothRb, 10, 18); WMResizeWidget(panel->bothRb, frame_width - (2 * 10), 20); WMSetButtonText(panel->bothRb, str); wfree(tmp); wfree(str); WMGroupButtons(panel->defaultRb, panel->bothRb); if (!selectedBtn) selectedBtn = panel->bothRb; WMSetButtonAction(panel->bothRb, selectSpecification, panel); } if (wwin->wm_instance) { panel->instRb = WMCreateRadioButton(panel->specFrm); WMMoveWidget(panel->instRb, 10, 38); WMResizeWidget(panel->instRb, frame_width - (2 * 10), 20); WMSetButtonText(panel->instRb, wwin->wm_instance); WMGroupButtons(panel->defaultRb, panel->instRb); if (!selectedBtn) selectedBtn = panel->instRb; WMSetButtonAction(panel->instRb, selectSpecification, panel); } if (wwin->wm_class) { panel->clsRb = WMCreateRadioButton(panel->specFrm); WMMoveWidget(panel->clsRb, 10, 58); WMResizeWidget(panel->clsRb, frame_width - (2 * 10), 20); WMSetButtonText(panel->clsRb, wwin->wm_class); WMGroupButtons(panel->defaultRb, panel->clsRb); if (!selectedBtn) selectedBtn = panel->clsRb; WMSetButtonAction(panel->clsRb, selectSpecification, panel); } panel->selWinB = WMCreateCommandButton(panel->specFrm); WMMoveWidget(panel->selWinB, 20, 145 - 24 - 10); WMResizeWidget(panel->selWinB, frame_width - 2 * 10 - 20, 24); WMSetButtonText(panel->selWinB, _("Select window")); WMSetButtonAction(panel->selWinB, selectWindow, panel); panel->specLbl = WMCreateLabel(panel->win); WMMoveWidget(panel->specLbl, 15, 210); WMResizeWidget(panel->specLbl, frame_width, 100); WMSetLabelText(panel->specLbl, spec_text); WMSetLabelWraps(panel->specLbl, True); WMSetLabelTextAlignment(panel->specLbl, WALeft); /**** attributes ****/ create_tab_window_attributes(wwin, panel, frame_width); create_tab_window_advanced(wwin, panel, frame_width); create_tab_icon_workspace(wwin, panel, frame_width); create_tab_app_specific(wwin, panel, frame_width); /* if the window is a transient, don't let it have a miniaturize button */ if (wwin->transient_for != None && wwin->transient_for != scr->root_win) WMSetButtonEnabled(panel->attrChk[3], False); else WMSetButtonEnabled(panel->attrChk[3], True); if (!wwin->wm_class && !wwin->wm_instance) WMSetPopUpButtonItemEnabled(panel->pagePopUp, 0, False); WMRealizeWidget(panel->win); WMMapSubwidgets(panel->win); WMMapSubwidgets(panel->specFrm); WMMapSubwidgets(panel->attrFrm); WMMapSubwidgets(panel->moreFrm); WMMapSubwidgets(panel->iconFrm); WMMapSubwidgets(panel->wsFrm); if (panel->appFrm) WMMapSubwidgets(panel->appFrm); if (showSelectPanel) { WMSetPopUpButtonSelectedItem(panel->pagePopUp, 0); changePage(panel->pagePopUp, panel); } else { WMSetPopUpButtonSelectedItem(panel->pagePopUp, 1); changePage(panel->pagePopUp, panel); } parent = XCreateSimpleWindow(dpy, scr->root_win, 0, 0, PWIDTH, PHEIGHT, 0, 0, 0); XSelectInput(dpy, parent, KeyPressMask | KeyReleaseMask); panel->parent = parent; XReparentWindow(dpy, WMWidgetXID(panel->win), parent, 0, 0); WMMapWidget(panel->win); XSetTransientForHint(dpy, parent, wwin->client_win); if (xpos == UNDEFINED_POS) { x = wwin->frame_x + wwin->frame->core->width / 2; y = wwin->frame_y + wwin->frame->top_width * 2; if (y + PHEIGHT > scr->scr_height) y = scr->scr_height - PHEIGHT - 30; if (x + PWIDTH > scr->scr_width) x = scr->scr_width - PWIDTH; } else { x = xpos; y = ypos; } panel->frame = wManageInternalWindow(scr, parent, wwin->client_win, "Inspector", x, y, PWIDTH, PHEIGHT); if (!selectedBtn) selectedBtn = panel->defaultRb; WMSetButtonSelected(selectedBtn, True); selectSpecification(selectedBtn, panel); /* kluge to know who should get the key events */ panel->frame->client_leader = WMWidgetXID(panel->win); WSETUFLAG(panel->frame, no_closable, 0); WSETUFLAG(panel->frame, no_close_button, 0); wWindowUpdateButtonImages(panel->frame); wFrameWindowShowButton(panel->frame->frame, WFF_RIGHT_BUTTON); panel->frame->frame->on_click_right = destroyInspector; wWindowMap(panel->frame); showIconFor(WMWidgetScreen(panel->alwChk), panel, wwin->wm_instance, wwin->wm_class, UPDATE_TEXT_FIELD); return panel; } void wShowInspectorForWindow(WWindow *wwin) { if (wwin->flags.inspector_open) return; WMSetBalloonEnabled(wwin->screen_ptr->wmscreen, wPreferences.help_balloon); make_keys(); wwin->flags.inspector_open = 1; wwin->inspector = createInspectorForWindow(wwin, UNDEFINED_POS, UNDEFINED_POS, False); } void wHideInspectorForWindow(WWindow *wwin) { WWindow *pwin = wwin->inspector->frame; wWindowUnmap(pwin); pwin->flags.hidden = 1; wClientSetState(pwin, IconicState, None); } void wUnhideInspectorForWindow(WWindow *wwin) { WWindow *pwin = wwin->inspector->frame; pwin->flags.hidden = 0; pwin->flags.mapped = 1; XMapWindow(dpy, pwin->client_win); XMapWindow(dpy, pwin->frame->core->window); wClientSetState(pwin, NormalState, None); } WWindow *wGetWindowOfInspectorForWindow(WWindow *wwin) { if (!wwin->inspector) return NULL; assert(wwin->flags.inspector_open != 0); return wwin->inspector->frame; } void wCloseInspectorForWindow(WWindow *wwin) { WWindow *pwin = wwin->inspector->frame; /* the inspector window */ (*pwin->frame->on_click_right) (NULL, pwin, NULL); } static void create_tab_window_attributes(WWindow *wwin, InspectorPanel *panel, int frame_width) { int i = 0; char *caption = NULL, *descr = NULL; int flag = 0; panel->attrFrm = WMCreateFrame(panel->win); WMSetFrameTitle(panel->attrFrm, _("Attributes")); WMMoveWidget(panel->attrFrm, 15, 45); WMResizeWidget(panel->attrFrm, frame_width, 250); for (i = 0; i < (sizeof(panel->attrChk) / sizeof(panel->attrChk[0])); i++) { switch (i) { case 0: caption = _("Disable titlebar"); flag = WFLAGP(wwin, no_titlebar); descr = _("Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)."); break; case 1: caption = _("Disable resizebar"); flag = WFLAGP(wwin, no_resizebar); descr = _("Remove the resizebar of this window."); break; case 2: caption = _("Disable close button"); flag = WFLAGP(wwin, no_close_button); descr = _("Remove the `close window' button of this window."); break; case 3: caption = _("Disable miniaturize button"); flag = WFLAGP(wwin, no_miniaturize_button); descr = _("Remove the `miniaturize window' button of the window."); break; case 4: caption = _("Disable border"); flag = WFLAGP(wwin, no_border); descr = _("Remove the 1 pixel black border around the window."); break; case 5: caption = _("Keep on top (floating)"); flag = WFLAGP(wwin, floating); descr = _("Keep the window over other windows, not allowing\n" "them to cover it."); break; case 6: caption = _("Keep at bottom (sunken)"); flag = WFLAGP(wwin, sunken); descr = _("Keep the window under all other windows."); break; case 7: caption = _("Omnipresent"); flag = WFLAGP(wwin, omnipresent); descr = _("Make window present in all workspaces."); break; case 8: caption = _("Start miniaturized"); flag = WFLAGP(wwin, start_miniaturized); descr = _("Make the window be automatically miniaturized when it's\n" "first shown."); break; case 9: caption = _("Start maximized"); flag = WFLAGP(wwin, start_maximized != 0); descr = _("Make the window be automatically maximized when it's\n" "first shown."); break; case 10: caption = _("Full screen maximization"); flag = WFLAGP(wwin, full_maximize); descr = _("Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen."); break; } panel->attrChk[i] = WMCreateSwitchButton(panel->attrFrm); WMMoveWidget(panel->attrChk[i], 10, 20 * (i + 1)); WMResizeWidget(panel->attrChk[i], frame_width - 15, 20); WMSetButtonSelected(panel->attrChk[i], flag); WMSetButtonText(panel->attrChk[i], caption); WMSetBalloonTextForView(descr, WMWidgetView(panel->attrChk[i])); } } static void create_tab_window_advanced(WWindow *wwin, InspectorPanel *panel, int frame_width) { int i = 0; char *caption = NULL, *descr = NULL; int flag = 0; panel->moreFrm = WMCreateFrame(panel->win); WMSetFrameTitle(panel->moreFrm, _("Advanced")); WMMoveWidget(panel->moreFrm, 15, 45); WMResizeWidget(panel->moreFrm, frame_width, 265); for (i = 0; i < (sizeof(panel->moreChk) / sizeof(panel->moreChk[0])); i++) { switch (i) { case 0: caption = _("Do not bind keyboard shortcuts"); flag = WFLAGP(wwin, no_bind_keys); descr = _("Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration."); break; case 1: caption = _("Do not bind mouse clicks"); flag = WFLAGP(wwin, no_bind_mouse); descr = _("Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you have\n" "configured)."); break; case 2: caption = _("Do not show in the window list"); flag = WFLAGP(wwin, skip_window_list); descr = _("Do not list the window in the window list menu."); break; case 3: caption = _("Do not show in the switch panel"); flag = WFLAGP(wwin, skip_switchpanel); descr = _("Do not include in switchpanel while alternating windows."); break; case 4: caption = _("Do not let it take focus"); flag = WFLAGP(wwin, no_focusable); descr = _("Do not let the window take keyboard focus when you\n" "click on it."); break; case 5: caption = _("Keep inside screen"); flag = WFLAGP(wwin, dont_move_off); descr = _("Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n"); break; case 6: caption = _("Ignore 'Hide Others'"); flag = WFLAGP(wwin, no_hide_others); descr = _("Do not hide the window when issuing the\n" "`HideOthers' command."); break; case 7: caption = _("Ignore 'Save Session'"); flag = WFLAGP(wwin, dont_save_session); descr = _("Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts."); break; case 8: caption = _("Emulate application icon"); flag = WFLAGP(wwin, emulate_appicon); descr = _("Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created."); break; case 9: caption = _("Focus across workspaces"); flag = WFLAGP(wwin, focus_across_wksp); descr = _("Allow Window Maker to switch workspace to satisfy\n" "a focus request (annoying)."); break; case 10: caption = _("Do not let it be minimized"); flag = WFLAGP(wwin, no_miniaturizable); descr = _("Do not let the window of this application be\n" "minimized.\n"); break; #ifdef XKB_BUTTON_HINT case 11: caption = _("Disable language button"); flag = WFLAGP(wwin, no_language_button); descr = _("Remove the `toggle language' button of the window."); break; #endif } panel->moreChk[i] = WMCreateSwitchButton(panel->moreFrm); WMMoveWidget(panel->moreChk[i], 10, 20 * (i + 1)); WMResizeWidget(panel->moreChk[i], frame_width - 15, 20); WMSetButtonSelected(panel->moreChk[i], flag); WMSetButtonText(panel->moreChk[i], caption); WMSetBalloonTextForView(descr, WMWidgetView(panel->moreChk[i])); } } static void create_tab_icon_workspace(WWindow *wwin, InspectorPanel *panel, int frame_width) { WScreen *scr = wwin->screen_ptr; int i = 0; /* miniwindow/workspace */ panel->iconFrm = WMCreateFrame(panel->win); WMMoveWidget(panel->iconFrm, 15, 50); WMResizeWidget(panel->iconFrm, PWIDTH - (2 * 15), 170); WMSetFrameTitle(panel->iconFrm, _("Miniwindow Image")); panel->iconLbl = WMCreateLabel(panel->iconFrm); WMMoveWidget(panel->iconLbl, PWIDTH - (2 * 15) - 22 - 64, 20); WMResizeWidget(panel->iconLbl, 64, 64); WMSetLabelRelief(panel->iconLbl, WRGroove); WMSetLabelImagePosition(panel->iconLbl, WIPImageOnly); panel->browseIconBtn = WMCreateCommandButton(panel->iconFrm); WMSetButtonAction(panel->browseIconBtn, chooseIconCallback, panel); WMMoveWidget(panel->browseIconBtn, 22, 32); WMResizeWidget(panel->browseIconBtn, 120, 26); WMSetButtonText(panel->browseIconBtn, _("Browse...")); panel->fileLbl = WMCreateLabel(panel->iconFrm); WMMoveWidget(panel->fileLbl, 20, 85); WMResizeWidget(panel->fileLbl, PWIDTH - (2 * 15) - (2 * 20), 14); WMSetLabelText(panel->fileLbl, _("Icon filename:")); panel->fileText = WMCreateTextField(panel->iconFrm); WMMoveWidget(panel->fileText, 20, 105); WMResizeWidget(panel->fileText, PWIDTH - (2 * 20) - (2 * 15), 20); WMSetTextFieldText(panel->fileText, NULL); WMAddNotificationObserver(textEditedObserver, panel, WMTextDidEndEditingNotification, panel->fileText); panel->alwChk = WMCreateSwitchButton(panel->iconFrm); WMMoveWidget(panel->alwChk, 20, 130); WMResizeWidget(panel->alwChk, PWIDTH - (2 * 15) - (2 * 15), 30); WMSetButtonText(panel->alwChk, _("Ignore client supplied icon")); WMSetButtonSelected(panel->alwChk, WFLAGP(wwin, always_user_icon)); panel->wsFrm = WMCreateFrame(panel->win); WMMoveWidget(panel->wsFrm, 15, 225); WMResizeWidget(panel->wsFrm, PWIDTH - (2 * 15), 70); WMSetFrameTitle(panel->wsFrm, _("Initial Workspace")); WMSetBalloonTextForView(_("The workspace to place the window when it's" "first shown."), WMWidgetView(panel->wsFrm)); panel->wsP = WMCreatePopUpButton(panel->wsFrm); WMMoveWidget(panel->wsP, 20, 30); WMResizeWidget(panel->wsP, PWIDTH - (2 * 15) - (2 * 20), 20); WMAddPopUpButtonItem(panel->wsP, _("Nowhere in particular")); for (i = 0; i < wwin->screen_ptr->workspace_count; i++) WMAddPopUpButtonItem(panel->wsP, scr->workspaces[i]->name); i = wDefaultGetStartWorkspace(wwin->screen_ptr, wwin->wm_instance, wwin->wm_class); if (i >= 0 && i <= wwin->screen_ptr->workspace_count) WMSetPopUpButtonSelectedItem(panel->wsP, i + 1); else WMSetPopUpButtonSelectedItem(panel->wsP, 0); } static void create_tab_app_specific(WWindow *wwin, InspectorPanel *panel, int frame_width) { WScreen *scr = wwin->screen_ptr; int i = 0, flag = 0, tmp; char *caption = NULL, *descr = NULL; if (wwin->main_window != None) { WApplication *wapp = wApplicationOf(wwin->main_window); panel->appFrm = WMCreateFrame(panel->win); WMSetFrameTitle(panel->appFrm, _("Application Attributes")); WMMoveWidget(panel->appFrm, 15, 50); WMResizeWidget(panel->appFrm, frame_width, 240); for (i = 0; i < (sizeof(panel->appChk) / sizeof(panel->appChk[0])); i++) { switch (i) { case 0: caption = _("Start hidden"); flag = WFLAGP(wapp->main_window_desc, start_hidden); descr = _("Automatically hide application when it's started."); break; case 1: caption = _("No application icon"); flag = WFLAGP(wapp->main_window_desc, no_appicon); descr = _("Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly."); break; case 2: caption = _("Shared application icon"); flag = WFLAGP(wapp->main_window_desc, shared_appicon); descr = _("Use a single shared application icon for all of\n" "the instances of this application.\n"); break; } panel->appChk[i] = WMCreateSwitchButton(panel->appFrm); WMMoveWidget(panel->appChk[i], 10, 20 * (i + 1)); WMResizeWidget(panel->appChk[i], 205, 20); WMSetButtonSelected(panel->appChk[i], flag); WMSetButtonText(panel->appChk[i], caption); WMSetBalloonTextForView(descr, WMWidgetView(panel->appChk[i])); } if (WFLAGP(wwin, emulate_appicon)) { WMSetButtonEnabled(panel->appChk[1], False); WMSetButtonEnabled(panel->moreChk[7], True); } else { WMSetButtonEnabled(panel->appChk[1], True); WMSetButtonEnabled(panel->moreChk[7], False); } } else { if ((wwin->transient_for != None && wwin->transient_for != scr->root_win) || !wwin->wm_class || !wwin->wm_instance) tmp = False; else tmp = True; WMSetButtonEnabled(panel->moreChk[7], tmp); WMSetPopUpButtonItemEnabled(panel->pagePopUp, 4, False); panel->appFrm = NULL; } } WindowMaker-0.95.5/src/xmodifier.c0000644000175000017500000002360712214432632013712 00000000000000/* Grok X modifier mappings for shortcuts. Most of this code was taken from src/event-Xt.c in XEmacs 20.3-b17. The copyright(s) from the original XEmacs code are included below. Perpetrator: Sudish Joseph , Sept. 1997. */ /* The event_stream interface for X11 with Xt, and/or tty frames. Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. Copyright (C) 1995 Sun Microsystems, Inc. Copyright (C) 1996 Ben Wing. This file is part of XEmacs. XEmacs 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, or (at your option) any later version. XEmacs 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 XEmacs; see the file COPYING. if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include "WindowMaker.h" #include "xmodifier.h" /************************************************************************/ /* keymap handling */ /************************************************************************/ /* X bogusly doesn't define the interpretations of any bits besides ModControl, ModShift, and ModLock; so the Interclient Communication Conventions Manual says that we have to bend over backwards to figure out what the other modifier bits mean. According to ICCCM: - Any keycode which is assigned ModControl is a "control" key. - Any modifier bit which is assigned to a keycode which generates Meta_L or Meta_R is the modifier bit meaning "meta". Likewise for Super, Hyper, etc. - Any keypress event which contains ModControl in its state should be interpreted as a "control" character. - Any keypress event which contains a modifier bit in its state which is generated by a keycode whose corresponding keysym is Meta_L or Meta_R should be interpreted as a "meta" character. Likewise for Super, Hyper, etc. - It is illegal for a keysym to be associated with more than one modifier bit. This means that the only thing that emacs can reasonably interpret as a "meta" key is a key whose keysym is Meta_L or Meta_R, and which generates one of the modifier bits Mod1-Mod5. Unfortunately, many keyboards don't have Meta keys in their default configuration. So, if there are no Meta keys, but there are "Alt" keys, emacs will interpret Alt as Meta. If there are both Meta and Alt keys, then the Meta keys mean "Meta", and the Alt keys mean "Alt" (it used to mean "Symbol," but that just confused the hell out of way too many people). This works with the default configurations of the 19 keyboard-types I've checked. Emacs detects keyboard configurations which violate the above rules, and prints an error message on the standard-error-output. (Perhaps it should use a pop-up-window instead.) */ static int MetaMask, HyperMask, SuperMask, AltMask, ModeMask; static const char *index_to_name(int indice) { switch (indice) { case ShiftMapIndex: return "ModShift"; case LockMapIndex: return "ModLock"; case ControlMapIndex: return "ModControl"; case Mod1MapIndex: return "Mod1"; case Mod2MapIndex: return "Mod2"; case Mod3MapIndex: return "Mod3"; case Mod4MapIndex: return "Mod4"; case Mod5MapIndex: return "Mod5"; default: return "???"; } } static void x_reset_modifier_mapping(Display * display) { int modifier_index, modifier_key, column, mkpm; int meta_bit = 0; int hyper_bit = 0; int super_bit = 0; int alt_bit = 0; int mode_bit = 0; XModifierKeymap *x_modifier_keymap = XGetModifierMapping(display); #define modwarn(name,old,other) \ wwarning ("%s (0x%x) generates %s, which is generated by %s.", \ name, code, index_to_name (old), other) #define modbarf(name,other) \ wwarning ("%s (0x%x) generates %s, which is nonsensical.", \ name, code, other) #define check_modifier(name,mask) \ if ((1<max_keypermod; for (modifier_index = 0; modifier_index < 8; modifier_index++) for (modifier_key = 0; modifier_key < mkpm; modifier_key++) { KeySym last_sym = 0; for (column = 0; column < 4; column += 2) { KeyCode code = x_modifier_keymap->modifiermap[modifier_index * mkpm + modifier_key]; KeySym sym = (code ? XkbKeycodeToKeysym(display, code, 0, column) : 0); if (sym == last_sym) continue; last_sym = sym; switch (sym) { case XK_Mode_switch: store_modifier("Mode_switch", mode_bit); break; case XK_Meta_L: store_modifier("Meta_L", meta_bit); break; case XK_Meta_R: store_modifier("Meta_R", meta_bit); break; case XK_Super_L: store_modifier("Super_L", super_bit); break; case XK_Super_R: store_modifier("Super_R", super_bit); break; case XK_Hyper_L: store_modifier("Hyper_L", hyper_bit); break; case XK_Hyper_R: store_modifier("Hyper_R", hyper_bit); break; case XK_Alt_L: store_modifier("Alt_L", alt_bit); break; case XK_Alt_R: store_modifier("Alt_R", alt_bit); break; case XK_Control_L: check_modifier("Control_L", ControlMask); break; case XK_Control_R: check_modifier("Control_R", ControlMask); break; case XK_Shift_L: check_modifier("Shift_L", ShiftMask); break; case XK_Shift_R: check_modifier("Shift_R", ShiftMask); break; case XK_Shift_Lock: check_modifier("Shift_Lock", LockMask); break; case XK_Caps_Lock: check_modifier("Caps_Lock", LockMask); break; /* It probably doesn't make any sense for a modifier bit to be assigned to a key that is not one of the above, but OpenWindows assigns modifier bits to a couple of random function keys for no reason that I can discern, so printing a warning here would be annoying. */ } } } #undef store_modifier #undef check_modifier #undef modwarn #undef modbarf /* If there was no Meta key, then try using the Alt key instead. If there is both a Meta key and an Alt key, then the Alt key is not disturbed and remains an Alt key. */ if (!meta_bit && alt_bit) meta_bit = alt_bit, alt_bit = 0; /* mode_bit overrides everything, since it's processed down inside of XLookupString() instead of by us. If Meta and Mode_switch both generate the same modifier bit (which is an error), then we don't interpret that bit as Meta, because we can't make XLookupString() not interpret it as Mode_switch; and interpreting it as both would be totally wrong. */ if (mode_bit) { const char *warn = 0; if (mode_bit == meta_bit) warn = "Meta", meta_bit = 0; else if (mode_bit == hyper_bit) warn = "Hyper", hyper_bit = 0; else if (mode_bit == super_bit) warn = "Super", super_bit = 0; else if (mode_bit == alt_bit) warn = "Alt", alt_bit = 0; if (warn) { wwarning("%s is being used for both Mode_switch and %s.", index_to_name(mode_bit), warn); } } MetaMask = (meta_bit ? (1 << meta_bit) : 0); HyperMask = (hyper_bit ? (1 << hyper_bit) : 0); SuperMask = (super_bit ? (1 << super_bit) : 0); AltMask = (alt_bit ? (1 << alt_bit) : 0); ModeMask = (mode_bit ? (1 << mode_bit) : 0); /* unused */ XFreeModifiermap(x_modifier_keymap); } int wXModifierFromKey(const char *key) { if (strcasecmp(key, "SHIFT") == 0 && ShiftMask != 0) return ShiftMask; else if (strcasecmp(key, "CONTROL") == 0 && ControlMask != 0) return ControlMask; else if (strcasecmp(key, "ALT") == 0 && AltMask != 0) return AltMask; else if (strcasecmp(key, "META") == 0 && MetaMask != 0) return MetaMask; else if (strcasecmp(key, "SUPER") == 0 && SuperMask != 0) return SuperMask; else if (strcasecmp(key, "HYPER") == 0 && HyperMask != 0) return HyperMask; else if (strcasecmp(key, "MOD1") == 0 && Mod1Mask != 0) return Mod1Mask; else if (strcasecmp(key, "MOD2") == 0 && Mod2Mask != 0) return Mod2Mask; else if (strcasecmp(key, "MOD3") == 0 && Mod3Mask != 0) return Mod3Mask; else if (strcasecmp(key, "MOD4") == 0 && Mod4Mask != 0) return Mod4Mask; else if (strcasecmp(key, "MOD5") == 0 && Mod5Mask != 0) return Mod5Mask; else return -1; } /* Wrapper so that we may fit the WM naming conventions, yet leave the original XEmacs function name in place. */ void wXModifierInitialize(void) { x_reset_modifier_mapping(dpy); } WindowMaker-0.95.5/src/rootmenu.c0000644000175000017500000012063612214432632013574 00000000000000/* rootmenu.c- user defined menu * * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "WindowMaker.h" #include "actions.h" #include "menu.h" #include "misc.h" #include "main.h" #include "dialog.h" #include "keybind.h" #include "stacking.h" #include "workspace.h" #include "defaults.h" #include "framewin.h" #include "session.h" #include "shutdown.h" #include "xmodifier.h" #include "rootmenu.h" #include "startup.h" #include "switchmenu.h" #include #define MAX_SHORTCUT_LENGTH 32 extern char *Locale; extern WDDomain *WDRootMenu; extern Cursor wCursor[WCUR_LAST]; static WMenu *readMenuPipe(WScreen * scr, char **file_name); static WMenu *readPLMenuPipe(WScreen * scr, char **file_name); static WMenu *readMenuFile(WScreen *scr, const char *file_name); static WMenu *readMenuDirectory(WScreen *scr, const char *title, char **file_name, const char *command); static WMenu *configureMenu(WScreen * scr, WMPropList * definition, Bool includeGlobals); static void menu_parser_register_macros(WMenuParser parser); typedef struct Shortcut { struct Shortcut *next; int modifier; KeyCode keycode; WMenuEntry *entry; WMenu *menu; } Shortcut; static Shortcut *shortcutList = NULL; /* * Syntax: * # main menu * "Menu Name" MENU * "Title" EXEC command_to_exec -params * "Submenu" MENU * "Title" EXEC command_to_exec -params * "Submenu" END * "Workspaces" WORKSPACE_MENU * "Title" built_in_command * "Quit" EXIT * "Quick Quit" EXIT QUICK * "Menu Name" END * * Commands may be preceded by SHORTCUT key * * Built-in commands: * * INFO_PANEL - shows the Info Panel * LEGAL_PANEL - shows the Legal info panel * SHUTDOWN [QUICK] - closes the X server [without confirmation] * REFRESH - forces the desktop to be repainted * EXIT [QUICK] - exit the window manager [without confirmation] * EXEC - execute an external program * SHEXEC - execute a shell command * WORKSPACE_MENU - places the workspace submenu * ARRANGE_ICONS * RESTART [] - restarts the window manager * SHOW_ALL - unhide all windows on workspace * HIDE_OTHERS - hides all windows excep the focused one * OPEN_MENU file - read menu data from file which must be a valid menu file. * OPEN_MENU /some/dir [/some/other/dir ...] [WITH command -options] * - read menu data from directory(ies) and * eventually precede each with a command. * OPEN_MENU | command * - opens command and uses its stdout to construct and insert * the resulting menu in current position. The output of * command must be a valid menu description. * The space between '|' and command is optional. * || will do the same, but will not cache the contents. * OPEN_PLMENU | command * - opens command and uses its stdout which must be in proplist * fromat to construct and insert the resulting menu in current * position. * The space between '|' and command is optional. * || will do the same, but will not cache the contents. * SAVE_SESSION - saves the current state of the desktop, which include * all running applications, all their hints (geometry, * position on screen, workspace they live on, the dock * or clip from where they were launched, and * if minimized, shaded or hidden. Also saves the current * workspace the user is on. All will be restored on every * start of windowmaker until another SAVE_SESSION or * CLEAR_SESSION is used. If SaveSessionOnExit = Yes; in * WindowMaker domain file, then saving is automatically * done on every windowmaker exit, overwriting any * SAVE_SESSION or CLEAR_SESSION (see below). Also save * dock state now. * CLEAR_SESSION - clears any previous saved session. This will not have * any effect if SaveSessionOnExit is True. * */ #define M_QUICK 1 /* menu commands */ static void execCommand(WMenu * menu, WMenuEntry * entry) { char *cmdline; cmdline = ExpandOptions(menu->frame->screen_ptr, (char *)entry->clientdata); XGrabPointer(dpy, menu->frame->screen_ptr->root_win, True, 0, GrabModeAsync, GrabModeAsync, None, wCursor[WCUR_WAIT], CurrentTime); XSync(dpy, 0); if (cmdline) { ExecuteShellCommand(menu->frame->screen_ptr, cmdline); wfree(cmdline); } XUngrabPointer(dpy, CurrentTime); XSync(dpy, 0); } static void exitCommand(WMenu * menu, WMenuEntry * entry) { static int inside = 0; int result; /* prevent reentrant calls */ if (inside) return; inside = 1; #define R_CANCEL 0 #define R_EXIT 1 result = R_CANCEL; if ((long)entry->clientdata == M_QUICK) { result = R_EXIT; } else { int r, oldSaveSessionFlag; oldSaveSessionFlag = wPreferences.save_session_on_exit; r = wExitDialog(menu->frame->screen_ptr, _("Exit"), _("Exit window manager?"), _("Exit"), _("Cancel"), NULL); if (r == WAPRDefault) { result = R_EXIT; } else if (r == WAPRAlternate) { /* Don't modify the "save session on exit" flag if the * user canceled the operation. */ wPreferences.save_session_on_exit = oldSaveSessionFlag; } } if (result == R_EXIT) Shutdown(WSExitMode); #undef R_EXIT #undef R_CANCEL inside = 0; } static void shutdownCommand(WMenu * menu, WMenuEntry * entry) { static int inside = 0; int result; /* prevent reentrant calls */ if (inside) return; inside = 1; #define R_CANCEL 0 #define R_CLOSE 1 #define R_KILL 2 result = R_CANCEL; if ((long)entry->clientdata == M_QUICK) result = R_CLOSE; else { int r, oldSaveSessionFlag; oldSaveSessionFlag = wPreferences.save_session_on_exit; r = wExitDialog(menu->frame->screen_ptr, _("Kill X session"), _("Kill Window System session?\n" "(all applications will be closed)"), _("Kill"), _("Cancel"), NULL); if (r == WAPRDefault) { result = R_KILL; } else if (r == WAPRAlternate) { /* Don't modify the "save session on exit" flag if the * user canceled the operation. */ wPreferences.save_session_on_exit = oldSaveSessionFlag; } } if (result != R_CANCEL) { Shutdown(WSKillMode); } #undef R_CLOSE #undef R_CANCEL #undef R_KILL inside = 0; } static void restartCommand(WMenu * menu, WMenuEntry * entry) { Shutdown(WSRestartPreparationMode); Restart((char *)entry->clientdata, False); Restart(NULL, True); } static void refreshCommand(WMenu * menu, WMenuEntry * entry) { wRefreshDesktop(menu->frame->screen_ptr); } static void arrangeIconsCommand(WMenu * menu, WMenuEntry * entry) { wArrangeIcons(menu->frame->screen_ptr, True); } static void showAllCommand(WMenu * menu, WMenuEntry * entry) { wShowAllWindows(menu->frame->screen_ptr); } static void hideOthersCommand(WMenu * menu, WMenuEntry * entry) { wHideOtherApplications(menu->frame->screen_ptr->focused_window); } static void saveSessionCommand(WMenu * menu, WMenuEntry * entry) { if (!wPreferences.save_session_on_exit) wSessionSaveState(menu->frame->screen_ptr); wScreenSaveState(menu->frame->screen_ptr); } static void clearSessionCommand(WMenu * menu, WMenuEntry * entry) { wSessionClearState(menu->frame->screen_ptr); wScreenSaveState(menu->frame->screen_ptr); } static void infoPanelCommand(WMenu * menu, WMenuEntry * entry) { wShowInfoPanel(menu->frame->screen_ptr); } static void legalPanelCommand(WMenu * menu, WMenuEntry * entry) { wShowLegalPanel(menu->frame->screen_ptr); } /********************************************************************/ static char *getLocalizedMenuFile(const char *menu) { char *buffer, *ptr, *locale; int len; if (!Locale) return NULL; len = strlen(menu) + strlen(Locale) + 8; buffer = wmalloc(len); /* try menu.locale_name */ snprintf(buffer, len, "%s.%s", menu, Locale); if (access(buffer, F_OK) == 0) return buffer; /* position of locale in our buffer */ locale = buffer + strlen(menu) + 1; /* 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(locale, '_'); if (ptr) { *ptr = 0; if (access(buffer, F_OK) == 0) return buffer; } wfree(buffer); return NULL; } Bool wRootMenuPerformShortcut(XEvent * event) { WScreen *scr = wScreenForRootWindow(event->xkey.root); Shortcut *ptr; int modifiers; int done = 0; /* ignore CapsLock */ modifiers = event->xkey.state & ValidModMask; for (ptr = shortcutList; ptr != NULL; ptr = ptr->next) { if (ptr->keycode == 0 || ptr->menu->menu->screen_ptr != scr) continue; if (ptr->keycode == event->xkey.keycode && ptr->modifier == modifiers) { (*ptr->entry->callback) (ptr->menu, ptr->entry); done = True; } } return done; } void wRootMenuBindShortcuts(Window window) { Shortcut *ptr; ptr = shortcutList; while (ptr) { if (ptr->modifier != AnyModifier) { XGrabKey(dpy, ptr->keycode, ptr->modifier | LockMask, window, True, GrabModeAsync, GrabModeAsync); #ifdef NUMLOCK_HACK wHackedGrabKey(ptr->keycode, ptr->modifier, window, True, GrabModeAsync, GrabModeAsync); #endif } XGrabKey(dpy, ptr->keycode, ptr->modifier, window, True, GrabModeAsync, GrabModeAsync); ptr = ptr->next; } } static void rebindKeygrabs(WScreen * scr) { WWindow *wwin; wwin = scr->focused_window; while (wwin != NULL) { XUngrabKey(dpy, AnyKey, AnyModifier, wwin->frame->core->window); if (!WFLAGP(wwin, no_bind_keys)) { wWindowSetKeyGrabs(wwin); } wwin = wwin->prev; } } static void removeShortcutsForMenu(WMenu * menu) { Shortcut *ptr, *tmp; Shortcut *newList = NULL; ptr = shortcutList; while (ptr != NULL) { tmp = ptr->next; if (ptr->menu == menu) { wfree(ptr); } else { ptr->next = newList; newList = ptr; } ptr = tmp; } shortcutList = newList; menu->menu->screen_ptr->flags.root_menu_changed_shortcuts = 1; } static Bool addShortcut(const char *file, const char *shortcutDefinition, WMenu *menu, WMenuEntry *entry) { Shortcut *ptr; KeySym ksym; char *k; char buf[MAX_SHORTCUT_LENGTH], *b; ptr = wmalloc(sizeof(Shortcut)); wstrlcpy(buf, shortcutDefinition, MAX_SHORTCUT_LENGTH); b = (char *)buf; /* get modifiers */ ptr->modifier = 0; while ((k = strchr(b, '+')) != NULL) { int mod; *k = 0; mod = wXModifierFromKey(b); if (mod < 0) { wwarning(_("%s: invalid key modifier \"%s\""), file, b); wfree(ptr); return False; } ptr->modifier |= mod; b = k + 1; } /* get key */ ksym = XStringToKeysym(b); if (ksym == NoSymbol) { wwarning(_("%s:invalid kbd shortcut specification \"%s\" for entry %s"), file, shortcutDefinition, entry->text); wfree(ptr); return False; } ptr->keycode = XKeysymToKeycode(dpy, ksym); if (ptr->keycode == 0) { wwarning(_("%s:invalid key in shortcut \"%s\" for entry %s"), file, shortcutDefinition, entry->text); wfree(ptr); return False; } ptr->menu = menu; ptr->entry = entry; ptr->next = shortcutList; shortcutList = ptr; menu->menu->screen_ptr->flags.root_menu_changed_shortcuts = 1; return True; } static char *next_token(char *line, char **next) { char *tmp, c; char *ret; *next = NULL; while (*line == ' ' || *line == '\t') line++; tmp = line; if (*tmp == '"') { tmp++; line++; while (*tmp != 0 && *tmp != '"') tmp++; if (*tmp != '"') { wwarning(_("%s: unmatched '\"' in menu file"), line); return NULL; } } else { do { if (*tmp == '\\') tmp++; if (*tmp != 0) tmp++; } while (*tmp != 0 && *tmp != ' ' && *tmp != '\t'); } c = *tmp; *tmp = 0; ret = wstrdup(line); *tmp = c; if (c == 0) return ret; else tmp++; /* skip blanks */ while (*tmp == ' ' || *tmp == '\t') tmp++; if (*tmp != 0) *next = tmp; return ret; } static void separateCommand(char *line, char ***file, char **command) { char *token, *tmp = line; WMArray *array = WMCreateArray(4); int count, i; *file = NULL; *command = NULL; do { token = next_token(tmp, &tmp); if (token) { if (strcmp(token, "WITH") == 0) { if (tmp != NULL && *tmp != 0) *command = wstrdup(tmp); else wwarning(_("%s: missing command"), line); break; } WMAddToArray(array, token); } } while (token != NULL && tmp != NULL); count = WMGetArrayItemCount(array); if (count > 0) { *file = wmalloc(sizeof(char *) * (count + 1)); (*file)[count] = NULL; for (i = 0; i < count; i++) { (*file)[i] = WMGetFromArray(array, i); } } WMFreeArray(array); } static WMenu *constructPLMenu(WScreen *screen, const char *path) { WMPropList *pl = NULL; WMenu *menu = NULL; if (!path) return NULL; pl = WMReadPropListFromFile(path); if (!pl) return NULL; menu = configureMenu(screen, pl, False); WMReleasePropList(pl); if (!menu) return NULL; menu->on_destroy = removeShortcutsForMenu; return menu; } static void constructMenu(WMenu * menu, WMenuEntry * entry) { WMenu *submenu; struct stat stat_buf; char **path; char *cmd; char *lpath = NULL; int i, first = -1; time_t last = 0; separateCommand((char *)entry->clientdata, &path, &cmd); if (path == NULL || *path == NULL || **path == 0) { wwarning(_("invalid OPEN_MENU specification: %s"), (char *)entry->clientdata); if (cmd) wfree(cmd); return; } if (path[0][0] == '|') { /* pipe menu */ if (!menu->cascades[entry->cascade] || menu->cascades[entry->cascade]->timestamp == 0) { /* parse pipe */ submenu = readMenuPipe(menu->frame->screen_ptr, path); if (submenu != NULL) { if (path[0][1] == '|') submenu->timestamp = 0; else submenu->timestamp = 1; /* there's no automatic reloading */ } } else { submenu = NULL; } } else { /* try interpreting path as a proplist file */ submenu = constructPLMenu(menu->frame->screen_ptr, path[0]); /* if unsuccessful, try it as an old-style file */ if (!submenu) { i = 0; while (path[i] != NULL) { char *tmp; if (strcmp(path[i], "-noext") == 0) { i++; continue; } tmp = wexpandpath(path[i]); wfree(path[i]); lpath = getLocalizedMenuFile(tmp); if (lpath) { wfree(tmp); path[i] = lpath; lpath = NULL; } else { path[i] = tmp; } if (stat(path[i], &stat_buf) == 0) { if (last < stat_buf.st_mtime) last = stat_buf.st_mtime; if (first < 0) first = i; } else { werror(_("%s:could not stat menu"), path[i]); /*goto finish; */ } i++; } if (first < 0) { werror(_("%s:could not stat menu:%s"), "OPEN_MENU", (char *)entry->clientdata); goto finish; } stat(path[first], &stat_buf); if (!menu->cascades[entry->cascade] || menu->cascades[entry->cascade]->timestamp < last) { if (S_ISDIR(stat_buf.st_mode)) { /* menu directory */ submenu = readMenuDirectory(menu->frame->screen_ptr, entry->text, path, cmd); if (submenu) submenu->timestamp = last; } else if (S_ISREG(stat_buf.st_mode)) { /* menu file */ if (cmd || path[1]) wwarning(_("too many parameters in OPEN_MENU: %s"), (char *)entry->clientdata); submenu = readMenuFile(menu->frame->screen_ptr, path[first]); if (submenu) submenu->timestamp = stat_buf.st_mtime; } else { submenu = NULL; } } else { submenu = NULL; } } } if (submenu) { wMenuEntryRemoveCascade(menu, entry); wMenuEntrySetCascade(menu, entry, submenu); } finish: i = 0; while (path[i] != NULL) wfree(path[i++]); wfree(path); if (cmd) wfree(cmd); } static void constructPLMenuFromPipe(WMenu * menu, WMenuEntry * entry) { WMenu *submenu = NULL; char **path; char *cmd; int i; separateCommand((char *)entry->clientdata, &path, &cmd); if (path == NULL || *path == NULL || **path == 0) { wwarning(_("invalid OPEN_PLMENU specification: %s"), (char *)entry->clientdata); if (cmd) wfree(cmd); return; } if (path[0][0] == '|') { /* pipe menu */ if (!menu->cascades[entry->cascade] || menu->cascades[entry->cascade]->timestamp == 0) { /* parse pipe */ submenu = readPLMenuPipe(menu->frame->screen_ptr, path); if (submenu != NULL) { if (path[0][1] == '|') submenu->timestamp = 0; else submenu->timestamp = 1; /* there's no automatic reloading */ } } } if (submenu) { wMenuEntryRemoveCascade(menu, entry); wMenuEntrySetCascade(menu, entry, submenu); } i = 0; while (path[i] != NULL) wfree(path[i++]); wfree(path); if (cmd) wfree(cmd); } static void cleanupWorkspaceMenu(WMenu * menu) { if (menu->frame->screen_ptr->workspace_menu == menu) menu->frame->screen_ptr->workspace_menu = NULL; } static WMenuEntry *addWorkspaceMenu(WScreen *scr, WMenu *menu, const char *title) { WMenu *wsmenu; WMenuEntry *entry; if (scr->flags.added_workspace_menu) { wwarning(_ ("There are more than one WORKSPACE_MENU commands in the applications menu. Only one is allowed.")); return NULL; } else { scr->flags.added_workspace_menu = 1; wsmenu = wWorkspaceMenuMake(scr, True); wsmenu->on_destroy = cleanupWorkspaceMenu; scr->workspace_menu = wsmenu; entry = wMenuAddCallback(menu, title, NULL, NULL); wMenuEntrySetCascade(menu, entry, wsmenu); wWorkspaceMenuUpdate(scr, wsmenu); } return entry; } static void cleanupWindowsMenu(WMenu * menu) { if (menu->frame->screen_ptr->switch_menu == menu) menu->frame->screen_ptr->switch_menu = NULL; } static WMenuEntry *addWindowsMenu(WScreen *scr, WMenu *menu, const char *title) { WMenu *wwmenu; WWindow *wwin; WMenuEntry *entry; if (scr->flags.added_windows_menu) { wwarning(_ ("There are more than one WINDOWS_MENU commands in the applications menu. Only one is allowed.")); return NULL; } else { scr->flags.added_windows_menu = 1; wwmenu = wMenuCreate(scr, _("Window List"), False); wwmenu->on_destroy = cleanupWindowsMenu; scr->switch_menu = wwmenu; wwin = scr->focused_window; while (wwin) { UpdateSwitchMenu(scr, wwin, ACTION_ADD); wwin = wwin->prev; } entry = wMenuAddCallback(menu, title, NULL, NULL); wMenuEntrySetCascade(menu, entry, wwmenu); } return entry; } static WMenuEntry *addMenuEntry(WMenu *menu, const char *title, const char *shortcut, const char *command, const char *params, const char *file_name) { WScreen *scr; WMenuEntry *entry = NULL; Bool shortcutOk = False; if (!menu) return NULL; scr = menu->frame->screen_ptr; if (strcmp(command, "OPEN_MENU") == 0) { if (!params) { wwarning(_("%s:missing parameter for menu command \"%s\""), file_name, command); } else { WMenu *dummy; char *path; path = wfindfile(DEF_CONFIG_PATHS, params); if (!path) { path = wstrdup(params); } dummy = wMenuCreate(scr, title, False); dummy->on_destroy = removeShortcutsForMenu; entry = wMenuAddCallback(menu, title, constructMenu, path); entry->free_cdata = wfree; wMenuEntrySetCascade(menu, entry, dummy); } } else if (strcmp(command, "OPEN_PLMENU") == 0) { if (!params) { wwarning(_("%s:missing parameter for menu command \"%s\""), file_name, command); } else { WMenu *dummy; char *path; path = wfindfile(DEF_CONFIG_PATHS, params); if (!path) path = wstrdup(params); dummy = wMenuCreate(scr, title, False); dummy->on_destroy = removeShortcutsForMenu; entry = wMenuAddCallback(menu, title, constructPLMenuFromPipe, path); entry->free_cdata = wfree; wMenuEntrySetCascade(menu, entry, dummy); } } else if (strcmp(command, "EXEC") == 0) { if (!params) wwarning(_("%s:missing parameter for menu command \"%s\""), file_name, command); else { entry = wMenuAddCallback(menu, title, execCommand, wstrconcat("exec ", params)); entry->free_cdata = wfree; shortcutOk = True; } } else if (strcmp(command, "SHEXEC") == 0) { if (!params) wwarning(_("%s:missing parameter for menu command \"%s\""), file_name, command); else { entry = wMenuAddCallback(menu, title, execCommand, wstrdup(params)); entry->free_cdata = wfree; shortcutOk = True; } } else if (strcmp(command, "EXIT") == 0) { if (params && strcmp(params, "QUICK") == 0) entry = wMenuAddCallback(menu, title, exitCommand, (void *)M_QUICK); else entry = wMenuAddCallback(menu, title, exitCommand, NULL); shortcutOk = True; } else if (strcmp(command, "SHUTDOWN") == 0) { if (params && strcmp(params, "QUICK") == 0) entry = wMenuAddCallback(menu, title, shutdownCommand, (void *)M_QUICK); else entry = wMenuAddCallback(menu, title, shutdownCommand, NULL); shortcutOk = True; } else if (strcmp(command, "REFRESH") == 0) { entry = wMenuAddCallback(menu, title, refreshCommand, NULL); shortcutOk = True; } else if (strcmp(command, "WORKSPACE_MENU") == 0) { entry = addWorkspaceMenu(scr, menu, title); shortcutOk = True; } else if (strcmp(command, "WINDOWS_MENU") == 0) { entry = addWindowsMenu(scr, menu, title); shortcutOk = True; } else if (strcmp(command, "ARRANGE_ICONS") == 0) { entry = wMenuAddCallback(menu, title, arrangeIconsCommand, NULL); shortcutOk = True; } else if (strcmp(command, "HIDE_OTHERS") == 0) { entry = wMenuAddCallback(menu, title, hideOthersCommand, NULL); shortcutOk = True; } else if (strcmp(command, "SHOW_ALL") == 0) { entry = wMenuAddCallback(menu, title, showAllCommand, NULL); shortcutOk = True; } else if (strcmp(command, "RESTART") == 0) { entry = wMenuAddCallback(menu, title, restartCommand, params ? wstrdup(params) : NULL); entry->free_cdata = wfree; shortcutOk = True; } else if (strcmp(command, "SAVE_SESSION") == 0) { entry = wMenuAddCallback(menu, title, saveSessionCommand, NULL); shortcutOk = True; } else if (strcmp(command, "CLEAR_SESSION") == 0) { entry = wMenuAddCallback(menu, title, clearSessionCommand, NULL); shortcutOk = True; } else if (strcmp(command, "INFO_PANEL") == 0) { entry = wMenuAddCallback(menu, title, infoPanelCommand, NULL); shortcutOk = True; } else if (strcmp(command, "LEGAL_PANEL") == 0) { entry = wMenuAddCallback(menu, title, legalPanelCommand, NULL); shortcutOk = True; } else { wwarning(_("%s:unknown command \"%s\" in menu config."), file_name, command); return NULL; } if (shortcut && entry) { if (!shortcutOk) { wwarning(_("%s:can't add shortcut for entry \"%s\""), file_name, title); } else { if (addShortcut(file_name, shortcut, menu, entry)) { entry->rtext = GetShortcutString(shortcut); /* entry->rtext = wstrdup(shortcut); */ } } } return entry; } /******************* Menu Configuration From File *******************/ static void freeline(char *title, char *command, char *parameter, char *shortcut) { wfree(title); wfree(command); wfree(parameter); wfree(shortcut); } static WMenu *parseCascade(WScreen * scr, WMenu * menu, WMenuParser parser) { char *command, *params, *shortcut, *title; while (WMenuParserGetLine(parser, &title, &command, ¶ms, &shortcut)) { if (command == NULL || !command[0]) { WMenuParserError(parser, _("missing command in menu config") ); freeline(title, command, params, shortcut); goto error; } if (strcasecmp(command, "MENU") == 0) { WMenu *cascade; /* start submenu */ cascade = wMenuCreate(scr, M_(title), False); cascade->on_destroy = removeShortcutsForMenu; if (!parseCascade(scr, cascade, parser)) { wMenuDestroy(cascade, True); } else { wMenuEntrySetCascade(menu, wMenuAddCallback(menu, M_(title), NULL, NULL), cascade); } } else if (strcasecmp(command, "END") == 0) { /* end of menu */ freeline(title, command, params, shortcut); return menu; } else { /* normal items */ addMenuEntry(menu, M_(title), shortcut, command, params, WMenuParserGetFilename(parser)); } freeline(title, command, params, shortcut); } WMenuParserError(parser, _("syntax error in menu file: END declaration missing") ); error: return NULL; } static WMenu *readMenuFile(WScreen *scr, const char *file_name) { WMenu *menu = NULL; FILE *file = NULL; WMenuParser parser; char *command, *params, *shortcut, *title; file = fopen(file_name, "rb"); if (!file) { werror(_("%s:could not open menu file"), file_name); return NULL; } parser = WMenuParserCreate(file_name, file, DEF_CONFIG_PATHS); menu_parser_register_macros(parser); while (WMenuParserGetLine(parser, &title, &command, ¶ms, &shortcut)) { if (command == NULL || !command[0]) { WMenuParserError(parser, _("missing command in menu config") ); freeline(title, command, params, shortcut); break; } if (strcasecmp(command, "MENU") == 0) { menu = wMenuCreate(scr, M_(title), True); menu->on_destroy = removeShortcutsForMenu; if (!parseCascade(scr, menu, parser)) { wMenuDestroy(menu, True); menu = NULL; } freeline(title, command, params, shortcut); break; } else { WMenuParserError(parser, _("invalid menu file, MENU command is missing") ); freeline(title, command, params, shortcut); break; } freeline(title, command, params, shortcut); } WMenuParserDelete(parser); fclose(file); return menu; } /************ Menu Configuration From Pipe *************/ static WMenu *readPLMenuPipe(WScreen * scr, char **file_name) { WMPropList *plist = NULL; WMenu *menu = NULL; char *filename; char flat_file[MAXLINE]; int i; flat_file[0] = '\0'; for (i = 0; file_name[i] != NULL; i++) { strcat(flat_file, file_name[i]); strcat(flat_file, " "); } filename = flat_file + (flat_file[1] == '|' ? 2 : 1); plist = WMReadPropListFromPipe(filename); if (!plist) return NULL; menu = configureMenu(scr, plist, False); WMReleasePropList(plist); if (!menu) return NULL; menu->on_destroy = removeShortcutsForMenu; return menu; } static WMenu *readMenuPipe(WScreen * scr, char **file_name) { WMenu *menu = NULL; FILE *file = NULL; WMenuParser parser; char *command, *params, *shortcut, *title; char *filename; char flat_file[MAXLINE]; int i; flat_file[0] = '\0'; for (i = 0; file_name[i] != NULL; i++) { strcat(flat_file, file_name[i]); strcat(flat_file, " "); } filename = flat_file + (flat_file[1] == '|' ? 2 : 1); file = popen(filename, "r"); if (!file) { werror(_("%s:could not open menu file"), filename); return NULL; } parser = WMenuParserCreate(flat_file, file, DEF_CONFIG_PATHS); menu_parser_register_macros(parser); while (WMenuParserGetLine(parser, &title, &command, ¶ms, &shortcut)) { if (command == NULL || !command[0]) { WMenuParserError(parser, _("missing command in menu config") ); freeline(title, command, params, shortcut); break; } if (strcasecmp(command, "MENU") == 0) { menu = wMenuCreate(scr, M_(title), True); menu->on_destroy = removeShortcutsForMenu; if (!parseCascade(scr, menu, parser)) { wMenuDestroy(menu, True); menu = NULL; } freeline(title, command, params, shortcut); break; } else { WMenuParserError(parser, _("no title given for the root menu") ); freeline(title, command, params, shortcut); break; } freeline(title, command, params, shortcut); } WMenuParserDelete(parser); pclose(file); return menu; } typedef struct { char *name; int index; } dir_data; static int myCompare(const void *d1, const void *d2) { dir_data *p1 = *(dir_data **) d1; dir_data *p2 = *(dir_data **) d2; return strcmp(p1->name, p2->name); } /***** Preset some macro for file parser *****/ static void menu_parser_register_macros(WMenuParser parser) { Visual *visual; char buf[32]; // Used to return CPP verion, now returns wmaker's version WMenuParserRegisterSimpleMacro(parser, "__VERSION__", VERSION); // All macros below were historically defined by WindowMaker visual = DefaultVisual(dpy, DefaultScreen(dpy)); snprintf(buf, sizeof(buf), "%d", visual->class); WMenuParserRegisterSimpleMacro(parser, "VISUAL", buf); snprintf(buf, sizeof(buf), "%d", DefaultDepth(dpy, DefaultScreen(dpy)) ); WMenuParserRegisterSimpleMacro(parser, "DEPTH", buf); snprintf(buf, sizeof(buf), "%d", WidthOfScreen(DefaultScreenOfDisplay(dpy)) ); WMenuParserRegisterSimpleMacro(parser, "SCR_WIDTH", buf); snprintf(buf, sizeof(buf), "%d", HeightOfScreen(DefaultScreenOfDisplay(dpy)) ); WMenuParserRegisterSimpleMacro(parser, "SCR_HEIGHT", buf); WMenuParserRegisterSimpleMacro(parser, "DISPLAY", XDisplayName(DisplayString(dpy)) ); WMenuParserRegisterSimpleMacro(parser, "WM_VERSION", "\"" VERSION "\""); } /************ Menu Configuration From Directory *************/ static Bool isFilePackage(const char *file) { int l; /* check if the extension indicates this file is a * file package. For now, only recognize .themed */ l = strlen(file); if (l > 7 && strcmp(&(file[l - 7]), ".themed") == 0) { return True; } else { return False; } } static WMenu *readMenuDirectory(WScreen *scr, const char *title, char **path, const char *command) { DIR *dir; struct dirent *dentry; struct stat stat_buf; WMenu *menu = NULL; char *buffer; WMArray *dirs = NULL, *files = NULL; WMArrayIterator iter; int length, i, have_space = 0; dir_data *data; int stripExtension = 0; dirs = WMCreateArray(16); files = WMCreateArray(16); i = 0; while (path[i] != NULL) { if (strcmp(path[i], "-noext") == 0) { stripExtension = 1; i++; continue; } dir = opendir(path[i]); if (!dir) { i++; continue; } while ((dentry = readdir(dir))) { if (strcmp(dentry->d_name, ".") == 0 || strcmp(dentry->d_name, "..") == 0) continue; if (dentry->d_name[0] == '.') continue; buffer = malloc(strlen(path[i]) + strlen(dentry->d_name) + 4); if (!buffer) { werror(_("out of memory while constructing directory menu %s"), path[i]); break; } strcpy(buffer, path[i]); strcat(buffer, "/"); strcat(buffer, dentry->d_name); if (stat(buffer, &stat_buf) != 0) { werror(_("%s:could not stat file \"%s\" in menu directory"), path[i], dentry->d_name); } else { Bool isFilePack = False; data = NULL; if (S_ISDIR(stat_buf.st_mode) && !(isFilePack = isFilePackage(dentry->d_name))) { /* access always returns success for user root */ if (access(buffer, X_OK) == 0) { /* Directory is accesible. Add to directory list */ data = (dir_data *) wmalloc(sizeof(dir_data)); data->name = wstrdup(dentry->d_name); data->index = i; WMAddToArray(dirs, data); } } else if (S_ISREG(stat_buf.st_mode) || isFilePack) { /* Hack because access always returns X_OK success for user root */ #define S_IXANY (S_IXUSR | S_IXGRP | S_IXOTH) if ((command != NULL && access(buffer, R_OK) == 0) || (command == NULL && access(buffer, X_OK) == 0 && (stat_buf.st_mode & S_IXANY))) { data = (dir_data *) wmalloc(sizeof(dir_data)); data->name = wstrdup(dentry->d_name); data->index = i; WMAddToArray(files, data); } } } free(buffer); } closedir(dir); i++; } if (!WMGetArrayItemCount(dirs) && !WMGetArrayItemCount(files)) { WMFreeArray(dirs); WMFreeArray(files); return NULL; } WMSortArray(dirs, myCompare); WMSortArray(files, myCompare); menu = wMenuCreate(scr, M_(title), False); menu->on_destroy = removeShortcutsForMenu; WM_ITERATE_ARRAY(dirs, data, iter) { /* New directory. Use same OPEN_MENU command that was used * for the current directory. */ length = strlen(path[data->index]) + strlen(data->name) + 6; if (stripExtension) length += 7; if (command) length += strlen(command) + 6; buffer = malloc(length); if (!buffer) { werror(_("out of memory while constructing directory menu %s"), path[data->index]); break; } buffer[0] = '\0'; if (stripExtension) strcat(buffer, "-noext "); have_space = strchr(path[data->index], ' ') != NULL || strchr(data->name, ' ') != NULL; if (have_space) strcat(buffer, "\""); strcat(buffer, path[data->index]); strcat(buffer, "/"); strcat(buffer, data->name); if (have_space) strcat(buffer, "\""); if (command) { strcat(buffer, " WITH "); strcat(buffer, command); } addMenuEntry(menu, M_(data->name), NULL, "OPEN_MENU", buffer, path[data->index]); wfree(buffer); if (data->name) wfree(data->name); wfree(data); } WM_ITERATE_ARRAY(files, data, iter) { /* executable: add as entry */ length = strlen(path[data->index]) + strlen(data->name) + 6; if (command) length += strlen(command); buffer = malloc(length); if (!buffer) { werror(_("out of memory while constructing directory menu %s"), path[data->index]); break; } have_space = strchr(path[data->index], ' ') != NULL || strchr(data->name, ' ') != NULL; if (command != NULL) { strcpy(buffer, command); strcat(buffer, " "); if (have_space) strcat(buffer, "\""); strcat(buffer, path[data->index]); } else { if (have_space) { buffer[0] = '"'; buffer[1] = 0; strcat(buffer, path[data->index]); } else { strcpy(buffer, path[data->index]); } } strcat(buffer, "/"); strcat(buffer, data->name); if (have_space) strcat(buffer, "\""); if (stripExtension) { char *ptr = strrchr(data->name, '.'); if (ptr && ptr != data->name) *ptr = 0; } addMenuEntry(menu, M_(data->name), NULL, "SHEXEC", buffer, path[data->index]); wfree(buffer); if (data->name) wfree(data->name); wfree(data); } WMFreeArray(files); WMFreeArray(dirs); return menu; } /************ Menu Configuration From WMRootMenu *************/ static WMenu *makeDefaultMenu(WScreen * scr) { WMenu *menu = NULL; menu = wMenuCreate(scr, _("Commands"), True); wMenuAddCallback(menu, M_("XTerm"), execCommand, "xterm"); wMenuAddCallback(menu, M_("rxvt"), execCommand, "rxvt"); wMenuAddCallback(menu, _("Restart"), restartCommand, NULL); wMenuAddCallback(menu, _("Exit..."), exitCommand, NULL); return menu; } /* *---------------------------------------------------------------------- * configureMenu-- * Reads root menu configuration from defaults database. * *---------------------------------------------------------------------- */ static WMenu *configureMenu(WScreen * scr, WMPropList * definition, Bool includeGlobals) { WMenu *menu = NULL; WMPropList *elem; int i, count; WMPropList *title, *command, *params; char *tmp, *mtitle; if (WMIsPLString(definition)) { struct stat stat_buf; char *path = NULL; Bool menu_is_default = False; /* menu definition is a string. Probably a path, so parse the file */ tmp = wexpandpath(WMGetFromPLString(definition)); path = getLocalizedMenuFile(tmp); if (!path) path = wfindfile(DEF_CONFIG_PATHS, tmp); if (!path) { path = wfindfile(DEF_CONFIG_PATHS, DEF_MENU_FILE); menu_is_default = True; } if (!path) { werror(_("could not find menu file \"%s\" referenced in WMRootMenu"), tmp); wfree(tmp); return NULL; } if (stat(path, &stat_buf) < 0) { werror(_("could not access menu \"%s\" referenced in WMRootMenu"), path); wfree(path); wfree(tmp); return NULL; } if (!scr->root_menu || stat_buf.st_mtime > scr->root_menu->timestamp /* if the pointer in WMRootMenu has changed */ || WDRootMenu->timestamp > scr->root_menu->timestamp) { if (menu_is_default) { wwarning(_ ("using default menu file \"%s\" as the menu referenced in WMRootMenu could not be found "), path); } menu = readMenuFile(scr, path); if (menu) menu->timestamp = WMAX(stat_buf.st_mtime, WDRootMenu->timestamp); } else { menu = NULL; } wfree(path); wfree(tmp); return menu; } count = WMGetPropListItemCount(definition); if (count == 0) return NULL; elem = WMGetFromPLArray(definition, 0); if (!WMIsPLString(elem)) { tmp = WMGetPropListDescription(elem, False); wwarning(_("%s:format error in root menu configuration \"%s\""), "WMRootMenu", tmp); wfree(tmp); return NULL; } mtitle = WMGetFromPLString(elem); menu = wMenuCreate(scr, M_(mtitle), False); menu->on_destroy = removeShortcutsForMenu; #ifdef GLOBAL_SUBMENU_FILE if (includeGlobals) { WMenu *submenu; WMenuEntry *mentry; submenu = readMenuFile(scr, GLOBAL_SUBMENU_FILE); if (submenu) { mentry = wMenuAddCallback(menu, submenu->frame->title, NULL, NULL); wMenuEntrySetCascade(menu, mentry, submenu); } } #endif for (i = 1; i < count; i++) { elem = WMGetFromPLArray(definition, i); #if 0 if (WMIsPLString(elem)) { char *file; file = WMGetFromPLString(elem); } #endif if (!WMIsPLArray(elem) || WMGetPropListItemCount(elem) < 2) goto error; if (WMIsPLArray(WMGetFromPLArray(elem, 1))) { WMenu *submenu; WMenuEntry *mentry; /* submenu */ submenu = configureMenu(scr, elem, True); if (submenu) { mentry = wMenuAddCallback(menu, submenu->frame->title, NULL, NULL); wMenuEntrySetCascade(menu, mentry, submenu); } } else { int idx = 0; WMPropList *shortcut; /* normal entry */ title = WMGetFromPLArray(elem, idx++); shortcut = WMGetFromPLArray(elem, idx++); if (strcmp(WMGetFromPLString(shortcut), "SHORTCUT") == 0) { shortcut = WMGetFromPLArray(elem, idx++); command = WMGetFromPLArray(elem, idx++); } else { command = shortcut; shortcut = NULL; } params = WMGetFromPLArray(elem, idx++); if (!title || !command) goto error; addMenuEntry(menu, M_(WMGetFromPLString(title)), shortcut ? WMGetFromPLString(shortcut) : NULL, WMGetFromPLString(command), params ? WMGetFromPLString(params) : NULL, "WMRootMenu"); } continue; error: tmp = WMGetPropListDescription(elem, False); wwarning(_("%s:format error in root menu configuration \"%s\""), "WMRootMenu", tmp); wfree(tmp); } return menu; } /* *---------------------------------------------------------------------- * OpenRootMenu-- * Opens the root menu, parsing the menu configuration from the * defaults database. * If the menu is already mapped and is not sticked to the * root window, it will be unmapped. * * Side effects: * The menu may be remade. * * Notes: * Construction of OPEN_MENU entries are delayed to the moment the * user map's them. *---------------------------------------------------------------------- */ void OpenRootMenu(WScreen * scr, int x, int y, int keyboard) { WMenu *menu = NULL; WMPropList *definition; /* static WMPropList *domain=NULL; if (!domain) { domain = WMCreatePLString("WMRootMenu"); } */ scr->flags.root_menu_changed_shortcuts = 0; scr->flags.added_workspace_menu = 0; scr->flags.added_windows_menu = 0; if (scr->root_menu && scr->root_menu->flags.mapped) { menu = scr->root_menu; if (!menu->flags.buttoned) { wMenuUnmap(menu); } else { wRaiseFrame(menu->frame->core); if (keyboard) wMenuMapAt(menu, 0, 0, True); else wMenuMapCopyAt(menu, x - menu->frame->core->width / 2, y); } return; } definition = WDRootMenu->dictionary; /* definition = PLGetDomain(domain); */ if (definition) { if (WMIsPLArray(definition)) { if (!scr->root_menu || WDRootMenu->timestamp > scr->root_menu->timestamp) { menu = configureMenu(scr, definition, True); if (menu) menu->timestamp = WDRootMenu->timestamp; } else menu = NULL; } else { menu = configureMenu(scr, definition, True); } } if (!menu) { /* menu hasn't changed or could not be read */ if (!scr->root_menu) { wMessageDialog(scr, _("Error"), _("The applications menu could not be loaded. " "Look at the console output for a detailed " "description of the errors."), _("OK"), NULL, NULL); menu = makeDefaultMenu(scr); scr->root_menu = menu; } menu = scr->root_menu; } else { /* new root menu */ if (scr->root_menu) { wMenuDestroy(scr->root_menu, True); } scr->root_menu = menu; } if (menu) { int newx, newy; if (keyboard && x == 0 && y == 0) { newx = newy = 0; } else if (keyboard && x == scr->scr_width / 2 && y == scr->scr_height / 2) { newx = x - menu->frame->core->width / 2; newy = y - menu->frame->core->height / 2; } else { newx = x - menu->frame->core->width / 2; newy = y; } wMenuMapAt(menu, newx, newy, keyboard); } if (scr->flags.root_menu_changed_shortcuts) rebindKeygrabs(scr); } WindowMaker-0.95.5/src/xutil.c0000644000175000017500000001043112214432632013060 00000000000000/* * WindowMaker miscelaneous functions * * Copyright (c) 1997-2003 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., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include #include #include #include #include #include "wconfig.h" #include "xutil.h" #include #if 0 static Atom Clipboard = 0; #endif static char *requestCodes[] = { "DUMMY", "X_CreateWindow", "X_ChangeWindowAttributes", "X_GetWindowAttributes", "X_DestroyWindow", "X_DestroySubwindows", "X_ChangeSaveSet", "X_ReparentWindow", "X_MapWindow", "X_MapSubwindows", "X_UnmapWindow", "X_UnmapSubwindows", "X_ConfigureWindow", "X_CirculateWindow", "X_GetGeometry", "X_QueryTree", "X_InternAtom", "X_GetAtomName", "X_ChangeProperty", "X_DeleteProperty", "X_GetProperty", "X_ListProperties", "X_SetSelectionOwner", "X_GetSelectionOwner", "X_ConvertSelection", "X_SendEvent", "X_GrabPointer", "X_UngrabPointer", "X_GrabButton", "X_UngrabButton", "X_ChangeActivePointerGrab", "X_GrabKeyboard", "X_UngrabKeyboard", "X_GrabKey", "X_UngrabKey", "X_AllowEvents", "X_GrabServer", "X_UngrabServer", "X_QueryPointer", "X_GetMotionEvents", "X_TranslateCoords", "X_WarpPointer", "X_SetInputFocus", "X_GetInputFocus", "X_QueryKeymap", "X_OpenFont", "X_CloseFont", "X_QueryFont", "X_QueryTextExtents", "X_ListFonts", "X_ListFontsWithInfo", "X_SetFontPath", "X_GetFontPath", "X_CreatePixmap", "X_FreePixmap", "X_CreateGC", "X_ChangeGC", "X_CopyGC", "X_SetDashes", "X_SetClipRectangles", "X_FreeGC", "X_ClearArea", "X_CopyArea", "X_CopyPlane", "X_PolyPoint", "X_PolyLine", "X_PolySegment", "X_PolyRectangle", "X_PolyArc", "X_FillPoly", "X_PolyFillRectangle", "X_PolyFillArc", "X_PutImage", "X_GetImage", "X_PolyText8", "X_PolyText16", "X_ImageText8", "X_ImageText16", "X_CreateColormap", "X_FreeColormap", "X_CopyColormapAndFree", "X_InstallColormap", "X_UninstallColormap", "X_ListInstalledColormaps", "X_AllocColor", "X_AllocNamedColor", "X_AllocColorCells", "X_AllocColorPlanes", "X_FreeColors", "X_StoreColors", "X_StoreNamedColor", "X_QueryColors", "X_LookupColor", "X_CreateCursor", "X_CreateGlyphCursor", "X_FreeCursor", "X_RecolorCursor", "X_QueryBestSize", "X_QueryExtension", "X_ListExtensions", "X_ChangeKeyboardMapping", "X_GetKeyboardMapping", "X_ChangeKeyboardControl", "X_GetKeyboardControl", "X_Bell", "X_ChangePointerControl", "X_GetPointerControl", "X_SetScreenSaver", "X_GetScreenSaver", "X_ChangeHosts", "X_ListHosts", "X_SetAccessControl", "X_SetCloseDownMode", "X_KillClient", "X_RotateProperties", "X_ForceScreenSaver", "X_SetPointerMapping", "X_GetPointerMapping", "X_SetModifierMapping", "X_GetModifierMapping", "X_NoOperation" }; void FormatXError(Display * dpy, XErrorEvent * error, char *buffer, int size) { int i, p; XGetErrorText(dpy, error->error_code, buffer, size); i = strlen(buffer); if (i > size - 100) return; buffer += i; if (error->request_code >= sizeof(requestCodes) / sizeof(requestCodes[0])) { sprintf(buffer, "\n Request code: %i\n", error->request_code); } else { sprintf(buffer, "\n Request code: %i %s\n", error->request_code, requestCodes[error->request_code]); } i += p = strlen(buffer); if (i > size - 40) return; buffer += p; sprintf(buffer, " Request minor code: %i\n", error->minor_code); i += p = strlen(buffer); if (i > size - 30) return; buffer += p; sprintf(buffer, " Resource ID: 0x%x\n", (unsigned int)error->resourceid); i += p = strlen(buffer); if (i > size - 30) return; buffer += p; sprintf(buffer, " Error serial: %li\n", error->serial); return; } WindowMaker-0.95.5/src/osdep_stub.c0000644000175000017500000000100412214432632014056 00000000000000 #include #include #include "wconfig.h" #include "osdep.h" Bool GetCommandForPid(int pid, char ***argv, int *argc) { static int notified = 0; if (!notified) { struct utsname un; if (uname(&un) != -1) { wwarning(_("%s is not implemented on this platform; " "tell wmaker-dev@windowmaker.org you are running " "%s release %s version %s"), __FUNCTION__, un.sysname, un.release, un.version); notified = 1; } } *argv = NULL; *argc = 0; return False; } WindowMaker-0.95.5/src/resources.c0000644000175000017500000000344412214432632013733 00000000000000/* resources.c - manage X resources (colors etc) * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include "WindowMaker.h" #include "texture.h" #include "resources.h" #include "screen.h" int wGetColorForColormap(Colormap colormap, const char *color_name, XColor *color) { if (!XParseColor(dpy, colormap, color_name, color)) { wwarning(_("could not parse color \"%s\""), color_name); return False; } if (!XAllocColor(dpy, colormap, color)) { wwarning(_("could not allocate color \"%s\""), color_name); return False; } return True; } int wGetColor(WScreen *scr, const char *color_name, XColor *color) { return wGetColorForColormap(scr->w_colormap, color_name, color); } void wFreeColor(WScreen * scr, unsigned long pixel) { if (pixel != scr->white_pixel && pixel != scr->black_pixel) { unsigned long colors[1]; colors[0] = pixel; XFreeColors(dpy, scr->w_colormap, colors, 1, 0); } } WindowMaker-0.95.5/src/appicon.c0000644000175000017500000010362512214432632013354 00000000000000/* appicon.c- icon for applications (not mini-window) * * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include #include "WindowMaker.h" #include "window.h" #include "icon.h" #include "application.h" #include "appicon.h" #include "actions.h" #include "stacking.h" #include "dock.h" #include "main.h" #include "defaults.h" #include "workspace.h" #include "superfluous.h" #include "menu.h" #include "framewin.h" #include "dialog.h" #include "xinerama.h" #include "client.h" #include "placement.h" #include "misc.h" #include "event.h" #ifdef XDND #include "xdnd.h" #endif /* * icon_file for the dock is got from the preferences file by * using the classname/instancename */ /**** Global variables ****/ extern Cursor wCursor[WCUR_LAST]; extern WDDomain *WDWindowAttributes; extern XContext wWinContext; #define MOD_MASK wPreferences.modifier_mask #define ICON_SIZE wPreferences.icon_size static void iconDblClick(WObjDescriptor * desc, XEvent * event); static void iconExpose(WObjDescriptor * desc, XEvent * event); static void wApplicationSaveIconPathFor(const char *iconPath, const char *wm_instance, const char *wm_class); static WAppIcon *wAppIconCreate(WWindow * leader_win); static void add_to_appicon_list(WScreen *scr, WAppIcon *appicon); static void remove_from_appicon_list(WScreen *scr, WAppIcon *appicon); static void create_appicon_from_dock(WWindow *wwin, WApplication *wapp, Window main_window); /* This function is used if the application is a .app. It checks if it has an icon in it * like for example /usr/local/GNUstep/Applications/WPrefs.app/WPrefs.tiff */ void wApplicationExtractDirPackIcon(WScreen * scr, const char *path, const char *wm_instance, const char *wm_class) { char *iconPath = NULL; char *tmp = NULL; if (strstr(path, ".app")) { tmp = wmalloc(strlen(path) + 16); if (scr->flags.supports_tiff) { strcpy(tmp, path); strcat(tmp, ".tiff"); if (access(tmp, R_OK) == 0) iconPath = tmp; } if (!iconPath) { strcpy(tmp, path); strcat(tmp, ".xpm"); if (access(tmp, R_OK) == 0) iconPath = tmp; } if (!iconPath) wfree(tmp); if (iconPath) { wApplicationSaveIconPathFor(iconPath, wm_instance, wm_class); wfree(iconPath); } } } WAppIcon *wAppIconCreateForDock(WScreen *scr, const char *command, const char *wm_instance, const char *wm_class, int tile) { WAppIcon *aicon; aicon = wmalloc(sizeof(WAppIcon)); wretain(aicon); aicon->yindex = -1; aicon->xindex = -1; add_to_appicon_list(scr, aicon); if (command) aicon->command = wstrdup(command); if (wm_class) aicon->wm_class = wstrdup(wm_class); if (wm_instance) aicon->wm_instance = wstrdup(wm_instance); if (strcmp(wm_class, "WMDock") == 0 && wPreferences.flags.clip_merged_in_dock) tile = TILE_CLIP; aicon->icon = icon_create_for_dock(scr, command, wm_instance, wm_class, tile); #ifdef XDND wXDNDMakeAwareness(aicon->icon->core->window); #endif /* will be overriden by dock */ aicon->icon->core->descriptor.handle_mousedown = appIconMouseDown; aicon->icon->core->descriptor.handle_expose = iconExpose; aicon->icon->core->descriptor.parent_type = WCLASS_APPICON; aicon->icon->core->descriptor.parent = aicon; AddToStackList(aicon->icon->core); return aicon; } void create_appicon_for_application(WApplication *wapp, WWindow *wwin) { /* Try to create an icon from the dock or clip */ create_appicon_from_dock(wwin, wapp, wapp->main_window); /* If app_icon was not found, create it */ if (!wapp->app_icon) { /* Create the icon */ wapp->app_icon = wAppIconCreate(wapp->main_window_desc); wIconUpdate(wapp->app_icon->icon); /* Now, paint the icon */ if (!WFLAGP(wapp->main_window_desc, no_appicon)) paint_app_icon(wapp); } /* Save the app_icon in a file */ save_appicon(wapp->app_icon, False); } void unpaint_app_icon(WApplication *wapp) { WAppIcon *aicon; WScreen *scr; WDock *clip; if (!wapp || !wapp->app_icon) return; aicon = wapp->app_icon; /* If the icon is docked, don't continue */ if (aicon->docked) return; scr = wapp->main_window_desc->screen_ptr; clip = scr->workspaces[scr->current_workspace]->clip; if (!clip || !aicon->attracted || !clip->collapsed) XUnmapWindow(dpy, aicon->icon->core->window); /* We want to avoid having it on the list because otherwise * there will be a hole when the icons are arranged with * wArrangeIcons() */ remove_from_appicon_list(scr, aicon); if (wPreferences.auto_arrange_icons && !aicon->attracted) wArrangeIcons(scr, True); } void paint_app_icon(WApplication *wapp) { WIcon *icon; WScreen *scr = wapp->main_window_desc->screen_ptr; WDock *attracting_dock; int x = 0, y = 0; Bool update_icon = False; if (!wapp || !wapp->app_icon) return; icon = wapp->app_icon->icon; wapp->app_icon->main_window = wapp->main_window; /* If the icon is docked, don't continue */ if (wapp->app_icon->docked) return; attracting_dock = scr->attracting_drawer != NULL ? scr->attracting_drawer : scr->workspaces[scr->current_workspace]->clip; if (attracting_dock && attracting_dock->attract_icons && wDockFindFreeSlot(attracting_dock, &x, &y)) { wapp->app_icon->attracted = 1; if (!icon->shadowed) { icon->shadowed = 1; update_icon = True; } wDockAttachIcon(attracting_dock, wapp->app_icon, x, y, update_icon); } else { /* We must know if the icon is painted in the screen, * because if painted, then PlaceIcon will return the next * space on the screen, and the icon will move */ if (wapp->app_icon->next == NULL && wapp->app_icon->prev == NULL) { PlaceIcon(scr, &x, &y, wGetHeadForWindow(wapp->main_window_desc)); wAppIconMove(wapp->app_icon, x, y); wLowerFrame(icon->core); } } /* If we want appicon (no_appicon is not set) and the icon is not * in the appicon_list, we must add it. Else, we want to avoid * having it on the list */ if (!WFLAGP(wapp->main_window_desc, no_appicon) && wapp->app_icon->next == NULL && wapp->app_icon->prev == NULL) add_to_appicon_list(scr, wapp->app_icon); if (!attracting_dock || !wapp->app_icon->attracted || !attracting_dock->collapsed) XMapWindow(dpy, icon->core->window); if (wPreferences.auto_arrange_icons && !wapp->app_icon->attracted) wArrangeIcons(scr, True); } void removeAppIconFor(WApplication *wapp) { if (!wapp->app_icon) return; if (wPreferences.highlight_active_app) wIconSetHighlited(wapp->app_icon->icon, False); if (wapp->app_icon->docked && !wapp->app_icon->attracted) { wapp->app_icon->running = 0; /* since we keep it, we don't care if it was attracted or not */ wapp->app_icon->attracted = 0; wapp->app_icon->icon->shadowed = 0; wapp->app_icon->main_window = None; wapp->app_icon->pid = 0; wapp->app_icon->icon->owner = NULL; wapp->app_icon->icon->icon_win = None; /* Set the icon image */ set_icon_image_from_database(wapp->app_icon->icon, wapp->app_icon->wm_instance, wapp->app_icon->wm_class, wapp->app_icon->command); /* Update the icon, because wapp->app_icon->icon could be NULL */ wIconUpdate(wapp->app_icon->icon); /* Paint it */ wAppIconPaint(wapp->app_icon); } else if (wapp->app_icon->docked) { wapp->app_icon->running = 0; if (wapp->app_icon->dock->type == WM_DRAWER) { wDrawerFillTheGap(wapp->app_icon->dock, wapp->app_icon, True); } wDockDetach(wapp->app_icon->dock, wapp->app_icon); } else { wAppIconDestroy(wapp->app_icon); } wapp->app_icon = NULL; if (wPreferences.auto_arrange_icons) wArrangeIcons(wapp->main_window_desc->screen_ptr, True); } static WAppIcon *wAppIconCreate(WWindow *leader_win) { WAppIcon *aicon; aicon = wmalloc(sizeof(WAppIcon)); wretain(aicon); aicon->yindex = -1; aicon->xindex = -1; aicon->prev = NULL; aicon->next = NULL; if (leader_win->wm_class) aicon->wm_class = wstrdup(leader_win->wm_class); if (leader_win->wm_instance) aicon->wm_instance = wstrdup(leader_win->wm_instance); aicon->icon = icon_create_for_wwindow(leader_win); #ifdef XDND wXDNDMakeAwareness(aicon->icon->core->window); #endif /* will be overriden if docked */ aicon->icon->core->descriptor.handle_mousedown = appIconMouseDown; aicon->icon->core->descriptor.handle_expose = iconExpose; aicon->icon->core->descriptor.parent_type = WCLASS_APPICON; aicon->icon->core->descriptor.parent = aicon; AddToStackList(aicon->icon->core); aicon->icon->show_title = 0; return aicon; } void wAppIconDestroy(WAppIcon * aicon) { WScreen *scr = aicon->icon->core->screen_ptr; RemoveFromStackList(aicon->icon->core); wIconDestroy(aicon->icon); if (aicon->command) wfree(aicon->command); #ifdef XDND if (aicon->dnd_command) wfree(aicon->dnd_command); #endif if (aicon->wm_instance) wfree(aicon->wm_instance); if (aicon->wm_class) wfree(aicon->wm_class); remove_from_appicon_list(scr, aicon); aicon->destroyed = 1; wrelease(aicon); } static void drawCorner(WIcon * icon) { WScreen *scr = icon->core->screen_ptr; XPoint points[3]; points[0].x = 1; points[0].y = 1; points[1].x = 12; points[1].y = 1; points[2].x = 1; points[2].y = 12; XFillPolygon(dpy, icon->core->window, scr->icon_title_texture->normal_gc, points, 3, Convex, CoordModeOrigin); XDrawLine(dpy, icon->core->window, scr->icon_title_texture->light_gc, 0, 0, 0, 12); XDrawLine(dpy, icon->core->window, scr->icon_title_texture->light_gc, 0, 0, 12, 0); } void wAppIconMove(WAppIcon * aicon, int x, int y) { XMoveWindow(dpy, aicon->icon->core->window, x, y); aicon->x_pos = x; aicon->y_pos = y; } #ifdef WS_INDICATOR static void updateDockNumbers(WScreen * scr) { int length; char *ws_numbers; WAppIcon *dicon = scr->dock->icon_array[0]; ws_numbers = wmalloc(20); snprintf(ws_numbers, 20, "%i [ %i ]", scr->current_workspace + 1, ((scr->current_workspace / 10) + 1)); length = strlen(ws_numbers); XClearArea(dpy, dicon->icon->core->window, 2, 2, 50, WMFontHeight(scr->icon_title_font) + 1, False); WMDrawString(scr->wmscreen, dicon->icon->core->window, scr->black, scr->icon_title_font, 4, 3, ws_numbers, length); WMDrawString(scr->wmscreen, dicon->icon->core->window, scr->white, scr->icon_title_font, 3, 2, ws_numbers, length); wfree(ws_numbers); } #endif /* WS_INDICATOR */ void wAppIconPaint(WAppIcon *aicon) { WApplication *wapp; WScreen *scr = aicon->icon->core->screen_ptr; if (aicon->icon->owner) wapp = wApplicationOf(aicon->icon->owner->main_window); else wapp = NULL; wIconPaint(aicon->icon); # ifdef WS_INDICATOR if (aicon->docked && scr->dock && scr->dock == aicon->dock && aicon->yindex == 0) updateDockNumbers(scr); # endif if (scr->dock_dots && aicon->docked && !aicon->running && aicon->command != NULL) { XSetClipMask(dpy, scr->copy_gc, scr->dock_dots->mask); XSetClipOrigin(dpy, scr->copy_gc, 0, 0); XCopyArea(dpy, scr->dock_dots->image, aicon->icon->core->window, scr->copy_gc, 0, 0, scr->dock_dots->width, scr->dock_dots->height, 0, 0); } #ifdef HIDDENDOT if (wapp && wapp->flags.hidden) { XSetClipMask(dpy, scr->copy_gc, scr->dock_dots->mask); XSetClipOrigin(dpy, scr->copy_gc, 0, 0); XCopyArea(dpy, scr->dock_dots->image, aicon->icon->core->window, scr->copy_gc, 0, 0, 7, scr->dock_dots->height, 0, 0); } #endif /* HIDDENDOT */ if (aicon->omnipresent) drawCorner(aicon->icon); XSetClipMask(dpy, scr->copy_gc, None); if (aicon->launching) XFillRectangle(dpy, aicon->icon->core->window, scr->stipple_gc, 0, 0, wPreferences.icon_size, wPreferences.icon_size); } /* Save the application icon, if it's a dockapp then use it with dock = True */ void save_appicon(WAppIcon *aicon, Bool dock) { char *path; if (!aicon) return; if (dock && (!aicon->docked || aicon->attracted)) return; path = wIconStore(aicon->icon); if (!path) return; wApplicationSaveIconPathFor(path, aicon->wm_instance, aicon->wm_class); wfree(path); } #define canBeDocked(wwin) ((wwin) && ((wwin)->wm_class||(wwin)->wm_instance)) /* main_window may not have the full command line; try to find one which does */ static void relaunchApplication(WApplication *wapp) { WScreen *scr; WWindow *wlist, *next; scr = wapp->main_window_desc->screen_ptr; wlist = scr->focused_window; if (! wlist) return; while (wlist->prev) wlist = wlist->prev; while (wlist) { next = wlist->next; if (wlist->main_window == wapp->main_window) { if (RelaunchWindow(wlist)) return; } wlist = next; } } static void relaunchCallback(WMenu * menu, WMenuEntry * entry) { WApplication *wapp = (WApplication *) entry->clientdata; relaunchApplication(wapp); } static void hideCallback(WMenu * menu, WMenuEntry * entry) { WApplication *wapp = (WApplication *) entry->clientdata; if (wapp->flags.hidden) { wWorkspaceChange(menu->menu->screen_ptr, wapp->last_workspace); wUnhideApplication(wapp, False, False); } else { wHideApplication(wapp); } } static void unhideHereCallback(WMenu * menu, WMenuEntry * entry) { WApplication *wapp = (WApplication *) entry->clientdata; wUnhideApplication(wapp, False, True); } static void setIconCallback(WMenu *menu, WMenuEntry *entry) { WAppIcon *icon = ((WApplication *) entry->clientdata)->app_icon; char *file = NULL; WScreen *scr; int result; assert(icon != NULL); if (icon->editing) return; icon->editing = 1; scr = icon->icon->core->screen_ptr; wretain(icon); result = wIconChooserDialog(scr, &file, icon->wm_instance, icon->wm_class); if (result && !icon->destroyed) { if (file && *file == 0) { wfree(file); file = NULL; } if (!wIconChangeImageFile(icon->icon, file)) { wMessageDialog(scr, _("Error"), _("Could not open specified icon file"), _("OK"), NULL, NULL); } else { wDefaultChangeIcon(scr, icon->wm_instance, icon->wm_class, file); wAppIconPaint(icon); } if (file) wfree(file); } icon->editing = 0; wrelease(icon); } static void killCallback(WMenu * menu, WMenuEntry * entry) { WApplication *wapp = (WApplication *) entry->clientdata; WFakeGroupLeader *fPtr; char *buffer; char *shortname; if (!WCHECK_STATE(WSTATE_NORMAL)) return; WCHANGE_STATE(WSTATE_MODAL); assert(entry->clientdata != NULL); shortname = basename(wapp->app_icon->wm_instance); buffer = wstrconcat(wapp->app_icon ? shortname : NULL, _(" will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm.")); fPtr = wapp->main_window_desc->fake_group; wretain(wapp->main_window_desc); if (wPreferences.dont_confirm_kill || wMessageDialog(menu->frame->screen_ptr, _("Kill Application"), buffer, _("Yes"), _("No"), NULL) == WAPRDefault) { if (fPtr != NULL) { WWindow *wwin, *twin; wwin = wapp->main_window_desc->screen_ptr->focused_window; while (wwin) { twin = wwin->prev; if (wwin->fake_group == fPtr) wClientKill(wwin); wwin = twin; } } else if (!wapp->main_window_desc->flags.destroyed) { wClientKill(wapp->main_window_desc); } } wrelease(wapp->main_window_desc); wfree(buffer); WCHANGE_STATE(WSTATE_NORMAL); } static WMenu *createApplicationMenu(WScreen *scr) { WMenu *menu; menu = wMenuCreate(scr, NULL, False); wMenuAddCallback(menu, _("Unhide Here"), unhideHereCallback, NULL); wMenuAddCallback(menu, _("Hide"), hideCallback, NULL); wMenuAddCallback(menu, _("Launch"), relaunchCallback, NULL); wMenuAddCallback(menu, _("Set Icon..."), setIconCallback, NULL); wMenuAddCallback(menu, _("Kill"), killCallback, NULL); return menu; } static void openApplicationMenu(WApplication * wapp, int x, int y) { WMenu *menu; WScreen *scr = wapp->main_window_desc->screen_ptr; int i; if (!scr->icon_menu) { scr->icon_menu = createApplicationMenu(scr); wfree(scr->icon_menu->entries[1]->text); } menu = scr->icon_menu; if (wapp->flags.hidden) menu->entries[1]->text = _("Unhide"); else menu->entries[1]->text = _("Hide"); menu->flags.realized = 0; wMenuRealize(menu); x -= menu->frame->core->width / 2; if (x + menu->frame->core->width > scr->scr_width) x = scr->scr_width - menu->frame->core->width; if (x < 0) x = 0; /* set client data */ for (i = 0; i < menu->entry_no; i++) menu->entries[i]->clientdata = wapp; wMenuMapAt(menu, x, y, False); } /******************************************************************/ static void iconExpose(WObjDescriptor *desc, XEvent *event) { wAppIconPaint(desc->parent); } static void iconDblClick(WObjDescriptor *desc, XEvent *event) { WAppIcon *aicon = desc->parent; WApplication *wapp; WScreen *scr = aicon->icon->core->screen_ptr; int unhideHere; assert(aicon->icon->owner != NULL); wapp = wApplicationOf(aicon->icon->owner->main_window); if (event->xbutton.state & ControlMask) { relaunchApplication(wapp); return; } unhideHere = (event->xbutton.state & ShiftMask); /* go to the last workspace that the user worked on the app */ if (!unhideHere && wapp->last_workspace != scr->current_workspace) wWorkspaceChange(scr, wapp->last_workspace); wUnhideApplication(wapp, event->xbutton.button == Button2, unhideHere); if (event->xbutton.state & MOD_MASK) wHideOtherApplications(aicon->icon->owner); } void appIconMouseDown(WObjDescriptor * desc, XEvent * event) { WAppIcon *aicon = desc->parent; WScreen *scr = aicon->icon->core->screen_ptr; Bool hasMoved; if (aicon->editing || WCHECK_STATE(WSTATE_MODAL)) return; if (IsDoubleClick(scr, event)) { /* Middle or right mouse actions were handled on first click */ if (event->xbutton.button == Button1) iconDblClick(desc, event); return; } if (event->xbutton.button == Button2) { WApplication *wapp = wApplicationOf(aicon->icon->owner->main_window); if (wapp) relaunchApplication(wapp); return; } if (event->xbutton.button == Button3) { WObjDescriptor *desc; WApplication *wapp = wApplicationOf(aicon->icon->owner->main_window); if (!wapp) return; if (event->xbutton.send_event && XGrabPointer(dpy, aicon->icon->core->window, True, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime) != GrabSuccess) { wwarning("pointer grab failed for appicon menu"); return; } openApplicationMenu(wapp, event->xbutton.x_root, event->xbutton.y_root); /* allow drag select of menu */ desc = &scr->icon_menu->menu->descriptor; event->xbutton.send_event = True; (*desc->handle_mousedown) (desc, event); return; } hasMoved = wHandleAppIconMove(aicon, event); if (wPreferences.single_click && !hasMoved && aicon->dock != NULL) { iconDblClick(desc, event); } } Bool wHandleAppIconMove(WAppIcon *aicon, XEvent *event) { WIcon *icon = aicon->icon; WScreen *scr = icon->core->screen_ptr; WDock *originalDock = aicon->dock; /* can be NULL */ WDock *lastDock = originalDock; WDock *allDocks[scr->drawer_count + 2]; /* clip, dock and drawers (order determined at runtime) */ WDrawerChain *dc; Bool done = False, dockable, ondock; Bool grabbed = False; Bool collapsed = False; /* Stores the collapsed state of lastDock, before the moving appicon entered it */ int superfluous = wPreferences.superfluous; /* we cache it to avoid problems */ int omnipresent = aicon->omnipresent; /* this must be cached */ Bool showed_all_clips = False; int clickButton = event->xbutton.button; Pixmap ghost = None; Window wins[2]; /* Managing shadow window */ XEvent ev; int x = aicon->x_pos, y = aicon->y_pos; int ofs_x = event->xbutton.x, ofs_y = event->xbutton.y; int shad_x = x, shad_y = y; int ix = aicon->xindex, iy = aicon->yindex; int i; int oldX = x; int oldY = y; Bool hasMoved = False; if (wPreferences.flags.noupdates && originalDock != NULL) return False; if (!(event->xbutton.state & MOD_MASK)) wRaiseFrame(icon->core); else { /* If Mod is pressed for an docked appicon, assume it is to undock it, * so don't lower it */ if (originalDock == NULL) wLowerFrame(icon->core); } if (XGrabPointer(dpy, icon->core->window, True, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime) != GrabSuccess) { wwarning("Pointer grab failed in wHandleAppIconMove"); } if (originalDock != NULL) { dockable = True; ondock = True; } else { ondock = False; if (wPreferences.flags.nodock && wPreferences.flags.noclip && wPreferences.flags.nodrawer) dockable = 0; else dockable = canBeDocked(icon->owner); } /* We try the various docks in that order: * - First, the dock the appicon comes from, if any * - Then, the drawers * - Then, the "dock" (WM_DOCK) * - Finally, the clip */ i = 0; if (originalDock != NULL) allDocks[ i++ ] = originalDock; /* Testing scr->drawers is enough, no need to test wPreferences.flags.nodrawer */ for (dc = scr->drawers; dc != NULL; dc = dc->next) { if (dc->adrawer != originalDock) allDocks[ i++ ] = dc->adrawer; } if (!wPreferences.flags.nodock && scr->dock != originalDock) allDocks[ i++ ] = scr->dock; if (!wPreferences.flags.noclip && originalDock != scr->workspaces[scr->current_workspace]->clip) allDocks[ i++ ] = scr->workspaces[scr->current_workspace]->clip; for ( ; i < scr->drawer_count + 2; i++) /* In case the clip, the dock, or both, are disabled */ allDocks[ i ] = NULL; wins[0] = icon->core->window; wins[1] = scr->dock_shadow; XRestackWindows(dpy, wins, 2); XMoveResizeWindow(dpy, scr->dock_shadow, aicon->x_pos, aicon->y_pos, ICON_SIZE, ICON_SIZE); if (superfluous) { if (icon->pixmap != None) ghost = MakeGhostIcon(scr, icon->pixmap); else ghost = MakeGhostIcon(scr, icon->core->window); XSetWindowBackgroundPixmap(dpy, scr->dock_shadow, ghost); XClearWindow(dpy, scr->dock_shadow); } if (ondock) XMapWindow(dpy, scr->dock_shadow); while (!done) { WMMaskEvent(dpy, PointerMotionMask | ButtonReleaseMask | ButtonPressMask | ButtonMotionMask | ExposureMask | EnterWindowMask, &ev); switch (ev.type) { case Expose: WMHandleEvent(&ev); break; case EnterNotify: /* It means the cursor moved so fast that it entered * something else (if moving slowly, it would have * stayed in the appIcon that is being moved. Ignore * such "spurious" EnterNotifiy's */ break; case MotionNotify: hasMoved = True; if (!grabbed) { if (abs(ofs_x - ev.xmotion.x) >= MOVE_THRESHOLD || abs(ofs_y - ev.xmotion.y) >= MOVE_THRESHOLD) { XChangeActivePointerGrab(dpy, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, wCursor[WCUR_MOVE], CurrentTime); grabbed = 1; } else { break; } } if (omnipresent && !showed_all_clips) { int i; for (i = 0; i < scr->workspace_count; i++) { if (i == scr->current_workspace) continue; wDockShowIcons(scr->workspaces[i]->clip); /* Note: if dock is collapsed (for instance, because it auto-collapses), its icons still won't show up */ } showed_all_clips = True; /* To prevent flickering */ } x = ev.xmotion.x_root - ofs_x; y = ev.xmotion.y_root - ofs_y; wAppIconMove(aicon, x, y); WDock *theNewDock = NULL; if (!(ev.xmotion.state & MOD_MASK) || aicon->launching || aicon->lock) { for (i = 0; dockable && i < scr->drawer_count + 2; i++) { WDock *theDock = allDocks[i]; if (theDock == NULL) break; if (wDockSnapIcon(theDock, aicon, x, y, &ix, &iy, (theDock == originalDock))) { theNewDock = theDock; break; } } if (originalDock != NULL && theNewDock == NULL && (aicon->launching || aicon->lock || aicon->running)) { /* In those cases, stay in lastDock if no dock really wants us */ theNewDock = lastDock; } } if (lastDock != NULL && lastDock != theNewDock) { /* Leave lastDock in the state we found it */ if (lastDock->type == WM_DRAWER) { wDrawerFillTheGap(lastDock, aicon, (lastDock == originalDock)); } if (collapsed) { lastDock->collapsed = 1; wDockHideIcons(lastDock); collapsed = False; } if (lastDock->auto_raise_lower) { wDockLower(lastDock); } } if (theNewDock != NULL) { if (lastDock != theNewDock) { collapsed = theNewDock->collapsed; if (collapsed) { theNewDock->collapsed = 0; wDockShowIcons(theNewDock); } if (theNewDock->auto_raise_lower) { wDockRaise(theNewDock); /* And raise the moving tile above it */ wRaiseFrame(aicon->icon->core); } lastDock = theNewDock; } shad_x = lastDock->x_pos + ix*wPreferences.icon_size; shad_y = lastDock->y_pos + iy*wPreferences.icon_size; XMoveWindow(dpy, scr->dock_shadow, shad_x, shad_y); if (!ondock) { XMapWindow(dpy, scr->dock_shadow); } ondock = 1; } else { lastDock = theNewDock; // i.e., NULL if (ondock) { XUnmapWindow(dpy, scr->dock_shadow); /* * Leaving that weird comment for now. * But if we see no gap, there is no need to fill one! * We could test ondock first and the lastDock to NULL afterwards if (lastDock_before_it_was_null->type == WM_DRAWER) { wDrawerFillTheGap(lastDock, aicon, (lastDock == originalDock)); } */ } ondock = 0; } break; case ButtonPress: break; case ButtonRelease: if (ev.xbutton.button != clickButton) break; XUngrabPointer(dpy, CurrentTime); Bool docked = False; if (ondock) { SlideWindow(icon->core->window, x, y, shad_x, shad_y); XUnmapWindow(dpy, scr->dock_shadow); if (originalDock == NULL) { // docking an undocked appicon docked = wDockAttachIcon(lastDock, aicon, ix, iy, False); if (!docked) { /* AppIcon got rejected (happens only when we can't get the command for that appicon, and the user cancels the wInputDialog asking for one). Make the rejection obvious by sliding the icon to its old position */ if (lastDock->type == WM_DRAWER) { // Also fill the gap left in the drawer wDrawerFillTheGap(lastDock, aicon, False); } SlideWindow(icon->core->window, x, y, oldX, oldY); } } else { // moving a docked appicon to a dock if (originalDock == lastDock) { docked = True; wDockReattachIcon(originalDock, aicon, ix, iy); } else { docked = wDockMoveIconBetweenDocks(originalDock, lastDock, aicon, ix, iy); if (!docked) { /* Possible scenario: user moved an auto-attracted appicon from the clip to the dock, and cancelled the wInputDialog asking for a command */ if (lastDock->type == WM_DRAWER) { wDrawerFillTheGap(lastDock, aicon, False); } /* If aicon comes from a drawer, make some room to reattach it */ if (originalDock->type == WM_DRAWER) { WAppIcon *aiconsToShift[ originalDock->icon_count ]; int j = 0; for (i = 0; i < originalDock->max_icons; i++) { WAppIcon *ai = originalDock->icon_array[ i ]; if (ai && ai != aicon && abs(ai->xindex) >= abs(aicon->xindex)) aiconsToShift[j++] = ai; } if (j != originalDock->icon_count - abs(aicon->xindex) - 1) // Trust this never happens? wwarning("Shifting j=%d appicons (instead of %d!) to reinsert aicon at index %d.", j, originalDock->icon_count - abs(aicon->xindex) - 1, aicon->xindex); wSlideAppicons(aiconsToShift, j, originalDock->on_right_side); // Trust the appicon is inserted at exactly the same place, so its oldX/oldY are consistent with its "new" location? } SlideWindow(icon->core->window, x, y, oldX, oldY); wDockReattachIcon(originalDock, aicon, aicon->xindex, aicon->yindex); } else { if (originalDock->auto_collapse && !originalDock->collapsed) { originalDock->collapsed = 1; wDockHideIcons(originalDock); } if (originalDock->auto_raise_lower) wDockLower(originalDock); } } } // No matter what happened above, check to lower lastDock // Don't see why I commented out the following 2 lines /* if (lastDock->auto_raise_lower) wDockLower(lastDock); */ /* If docked (or tried to dock) to a auto_collapsing dock, unset * collapsed, so that wHandleAppIconMove doesn't collapse it * right away (the timer will take care of it) */ if (lastDock->auto_collapse) collapsed = 0; } else { if (originalDock != NULL) { /* Detaching a docked appicon */ if (superfluous) { if (!aicon->running && !wPreferences.no_animations) { /* We need to deselect it, even if is deselected in * wDockDetach(), because else DoKaboom() will fail. */ if (aicon->icon->selected) wIconSelect(aicon->icon); DoKaboom(scr, aicon->icon->core->window, x, y); } } wDockDetach(originalDock, aicon); if (originalDock->auto_collapse && !originalDock->collapsed) { originalDock->collapsed = 1; wDockHideIcons(originalDock); } if (originalDock->auto_raise_lower) wDockLower(originalDock); } } // Can't remember why the icon hiding is better done above than below (commented out) // Also, lastDock is quite different from originalDock /* if (collapsed) { lastDock->collapsed = 1; wDockHideIcons(lastDock); collapsed = 0; } */ if (superfluous) { if (ghost != None) XFreePixmap(dpy, ghost); XSetWindowBackground(dpy, scr->dock_shadow, scr->white_pixel); } if (showed_all_clips) { int i; for (i = 0; i < scr->workspace_count; i++) { if (i == scr->current_workspace) continue; wDockHideIcons(scr->workspaces[i]->clip); } } if (wPreferences.auto_arrange_icons && !(originalDock != NULL && docked)) /* Need to rearrange unless moving from dock to dock */ wArrangeIcons(scr, True); return hasMoved; } } return False; /* Never reached */ } /* This function save the application icon and store the path in the Dictionary */ static void wApplicationSaveIconPathFor(const char *iconPath, const char *wm_instance, const char *wm_class) { WMPropList *dict = WDWindowAttributes->dictionary; WMPropList *adict, *key, *iconk; WMPropList *val; char *tmp; tmp = get_name_for_instance_class(wm_instance, wm_class); key = WMCreatePLString(tmp); wfree(tmp); adict = WMGetFromPLDictionary(dict, key); iconk = WMCreatePLString("Icon"); if (adict) { val = WMGetFromPLDictionary(adict, iconk); } else { /* no dictionary for app, so create one */ adict = WMCreatePLDictionary(NULL, NULL); WMPutInPLDictionary(dict, key, adict); WMReleasePropList(adict); val = NULL; } if (!val) { val = WMCreatePLString(iconPath); WMPutInPLDictionary(adict, iconk, val); WMReleasePropList(val); } else { val = NULL; } WMReleasePropList(key); WMReleasePropList(iconk); if (val && !wPreferences.flags.noupdates) UpdateDomainFile(WDWindowAttributes); } static WAppIcon *findDockIconFor(WDock *dock, Window main_window) { WAppIcon *aicon = NULL; aicon = wDockFindIconForWindow(dock, main_window); if (!aicon) { wDockTrackWindowLaunch(dock, main_window); aicon = wDockFindIconForWindow(dock, main_window); } return aicon; } static void create_appicon_from_dock(WWindow *wwin, WApplication *wapp, Window main_window) { WScreen *scr = wwin->screen_ptr; wapp->app_icon = NULL; if (scr->last_dock) wapp->app_icon = findDockIconFor(scr->last_dock, main_window); /* check main dock if we did not find it in last dock */ if (!wapp->app_icon && scr->dock) wapp->app_icon = findDockIconFor(scr->dock, main_window); /* check clips */ if (!wapp->app_icon) { int i; for (i = 0; i < scr->workspace_count; i++) { WDock *dock = scr->workspaces[i]->clip; if (dock) wapp->app_icon = findDockIconFor(dock, main_window); if (wapp->app_icon) break; } } /* Finally check drawers */ if (!wapp->app_icon) { WDrawerChain *dc; for (dc = scr->drawers; dc != NULL; dc = dc->next) { wapp->app_icon = findDockIconFor(dc->adrawer, main_window); if (wapp->app_icon) break; } } /* If created, then set some flags */ if (wapp->app_icon) { WWindow *mainw = wapp->main_window_desc; wapp->app_icon->running = 1; wapp->app_icon->icon->owner = mainw; if (mainw->wm_hints && (mainw->wm_hints->flags & IconWindowHint)) wapp->app_icon->icon->icon_win = mainw->wm_hints->icon_window; /* Update the icon images */ wIconUpdate(wapp->app_icon->icon); /* Paint it */ wAppIconPaint(wapp->app_icon); save_appicon(wapp->app_icon, True); } } /* Add the appicon to the appiconlist */ static void add_to_appicon_list(WScreen *scr, WAppIcon *appicon) { appicon->prev = NULL; appicon->next = scr->app_icon_list; if (scr->app_icon_list) scr->app_icon_list->prev = appicon; scr->app_icon_list = appicon; } /* Remove the appicon from the appiconlist */ static void remove_from_appicon_list(WScreen *scr, WAppIcon *appicon) { if (appicon == scr->app_icon_list) { if (appicon->next) appicon->next->prev = NULL; scr->app_icon_list = appicon->next; } else { if (appicon->next) appicon->next->prev = appicon->prev; if (appicon->prev) appicon->prev->next = appicon->next; } appicon->prev = NULL; appicon->next = NULL; } /* Return the AppIcon associated with a given (Xlib) Window. */ WAppIcon *wAppIconFor(Window window) { WObjDescriptor *desc; if (window == None) return NULL; if (XFindContext(dpy, window, wWinContext, (XPointer *) & desc) == XCNOENT) return NULL; if (desc->parent_type == WCLASS_APPICON || desc->parent_type == WCLASS_DOCK_ICON) return desc->parent; return NULL; } WindowMaker-0.95.5/src/WindowMaker.h0000644000175000017500000003565212214432632014163 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WINDOWMAKER_H_ #define WINDOWMAKER_H_ #include "wconfig.h" #include #include #include /* class codes */ typedef enum { WCLASS_UNKNOWN = 0, WCLASS_WINDOW = 1, /* managed client windows */ WCLASS_MENU = 2, /* root menus */ WCLASS_APPICON = 3, WCLASS_DUMMYWINDOW = 4, /* window that holds window group leader */ WCLASS_MINIWINDOW = 5, WCLASS_DOCK_ICON = 6, WCLASS_PAGER = 7, WCLASS_TEXT_INPUT = 8, WCLASS_FRAME = 9 } WClassType; /* * generic window levels (a superset of the N*XTSTEP ones) * Applications should use levels between WMDesktopLevel and * WMScreensaverLevel anything boyond that range is allowed, * but discouraged. */ enum { WMBackLevel = INT_MIN+1, /* Very lowest level */ WMDesktopLevel = -1000, /* Lowest level of normal use */ WMSunkenLevel = -1, WMNormalLevel = 0, WMFloatingLevel = 3, WMDockLevel = 5, WMSubmenuLevel = 15, WMMainMenuLevel = 20, WMStatusLevel = 21, WMFullscreenLevel = 50, WMModalLevel = 100, WMPopUpLevel = 101, WMScreensaverLevel = 1000, WMOuterSpaceLevel = INT_MAX }; /* * WObjDescriptor will be used by the event dispatcher to * send events to a particular object through the methods in the * method table. If all objects of the same class share the * same methods, the class method table should be used, otherwise * a new method table must be created for each object. * It is also assigned to find the parent structure of a given * window (like the WWindow or WMenu for a button) */ typedef struct WObjDescriptor { void *self; /* the object that will be called */ /* event handlers */ void (*handle_expose)(struct WObjDescriptor *sender, XEvent *event); void (*handle_mousedown)(struct WObjDescriptor *sender, XEvent *event); void (*handle_enternotify)(struct WObjDescriptor *sender, XEvent *event); void (*handle_leavenotify)(struct WObjDescriptor *sender, XEvent *event); WClassType parent_type; /* type code of the parent */ void *parent; /* parent object (WWindow or WMenu) */ } WObjDescriptor; /* internal buttons */ #define WBUT_CLOSE 0 #define WBUT_BROKENCLOSE 1 #define WBUT_ICONIFY 2 #define WBUT_KILL 3 #ifdef XKB_BUTTON_HINT #define WBUT_XKBGROUP1 4 #define WBUT_XKBGROUP2 5 #define WBUT_XKBGROUP3 6 #define WBUT_XKBGROUP4 7 #define PRED_BPIXMAPS 8 /* reserved for 4 groups */ #else #define PRED_BPIXMAPS 4 /* count of WBUT icons */ #endif /* XKB_BUTTON_HINT */ /* cursors */ #define WCUR_DEFAULT 0 #define WCUR_NORMAL 0 #define WCUR_MOVE 1 #define WCUR_RESIZE 2 #define WCUR_TOPLEFTRESIZE 3 #define WCUR_TOPRIGHTRESIZE 4 #define WCUR_BOTTOMLEFTRESIZE 5 #define WCUR_BOTTOMRIGHTRESIZE 6 #define WCUR_VERTICALRESIZE 7 #define WCUR_HORIZONRESIZE 8 #define WCUR_WAIT 9 #define WCUR_ARROW 10 #define WCUR_QUESTION 11 #define WCUR_TEXT 12 #define WCUR_SELECT 13 #define WCUR_ROOT 14 #define WCUR_EMPTY 15 #define WCUR_LAST 16 /* geometry displays */ #define WDIS_NEW 0 /* new style */ #define WDIS_CENTER 1 /* center of screen */ #define WDIS_TOPLEFT 2 /* top left corner of screen */ #define WDIS_FRAME_CENTER 3 /* center of the frame */ #define WDIS_NONE 4 /* keyboard input focus mode */ #define WKF_CLICK 0 #define WKF_SLOPPY 2 /* colormap change mode */ #define WCM_CLICK 0 #define WCM_POINTER 1 /* window placement mode */ #define WPM_MANUAL 0 #define WPM_CASCADE 1 #define WPM_SMART 2 #define WPM_RANDOM 3 #define WPM_AUTO 4 #define WPM_CENTER 5 /* text justification */ #define WTJ_CENTER 0 #define WTJ_LEFT 1 #define WTJ_RIGHT 2 /* iconification styles */ #define WIS_ZOOM 0 #define WIS_TWIST 1 #define WIS_FLIP 2 #define WIS_NONE 3 #define WIS_RANDOM 4 /* secret */ /* switchmenu actions */ #define ACTION_ADD 0 #define ACTION_REMOVE 1 #define ACTION_CHANGE 2 #define ACTION_CHANGE_WORKSPACE 3 #define ACTION_CHANGE_STATE 4 /* speeds */ #define SPEED_ULTRAFAST 0 #define SPEED_FAST 1 #define SPEED_MEDIUM 2 #define SPEED_SLOW 3 #define SPEED_ULTRASLOW 4 /* window states */ #define WS_FOCUSED 0 #define WS_UNFOCUSED 1 #define WS_PFOCUSED 2 /* clip title colors */ #define CLIP_NORMAL 0 #define CLIP_COLLAPSED 1 /* icon yard position */ #define IY_VERT 1 #define IY_HORIZ 0 #define IY_TOP 2 #define IY_BOTTOM 0 #define IY_RIGHT 4 #define IY_LEFT 0 /* menu styles */ #define MS_NORMAL 0 #define MS_SINGLE_TEXTURE 1 #define MS_FLAT 2 /* workspace actions */ #define WA_NONE 0 #define WA_SELECT_WINDOWS 1 #define WA_OPEN_APPMENU 2 #define WA_OPEN_WINLISTMENU 3 #define WA_SWITCH_WORKSPACES 4 /* workspace display position */ #define WD_NONE 0 #define WD_CENTER 1 #define WD_TOP 2 #define WD_BOTTOM 3 #define WD_TOPLEFT 4 #define WD_TOPRIGHT 5 #define WD_BOTTOMLEFT 6 #define WD_BOTTOMRIGHT 7 /* titlebar style */ #define TS_NEW 0 #define TS_OLD 1 #define TS_NEXT 2 /* workspace border position */ #define WB_NONE 0 #define WB_LEFTRIGHT 1 #define WB_TOPBOTTOM 2 #define WB_ALLDIRS (WB_LEFTRIGHT|WB_TOPBOTTOM) /* program states */ #define WSTATE_NORMAL 0 #define WSTATE_NEED_EXIT 1 #define WSTATE_NEED_RESTART 2 #define WSTATE_EXITING 3 #define WSTATE_RESTARTING 4 #define WSTATE_MODAL 5 #define WSTATE_NEED_REREAD 6 #define WCHECK_STATE(state) (state == WProgramState) #define WCHANGE_STATE(nstate) {\ if (WProgramState == WSTATE_NORMAL\ || nstate != WSTATE_MODAL)\ WProgramState = (nstate); \ if (WProgramSigState != 0)\ WProgramState = WProgramSigState;\ } /* only call inside signal handlers, with signals blocked */ #define SIG_WCHANGE_STATE(nstate) {\ WProgramSigState = (nstate);\ WProgramState = (nstate);\ } /* Flags for the Window Maker state when restarting/crash situations */ #define WFLAGS_NONE (0) #define WFLAGS_CRASHED (1<<0) /* notifications */ #ifdef MAINFILE #define NOTIFICATION(n) const char WN##n [] = #n #else #define NOTIFICATION(n) extern const char WN##n [] #endif NOTIFICATION(WindowAppearanceSettingsChanged); NOTIFICATION(IconAppearanceSettingsChanged); NOTIFICATION(IconTileSettingsChanged); NOTIFICATION(MenuAppearanceSettingsChanged); NOTIFICATION(MenuTitleAppearanceSettingsChanged); /* appearance settings clientdata flags */ enum { WFontSettings = 1 << 0, WTextureSettings = 1 << 1, WColorSettings = 1 << 2 }; typedef struct { int x1, y1; int x2, y2; } WArea; typedef struct WCoord { int x, y; } WCoord; extern struct WPreferences { char *pixmap_path; /* : separated list of paths to find pixmaps */ char *icon_path; /* : separated list of paths to find icons */ WMArray *fallbackWMs; /* fallback window manager list */ char *logger_shell; /* shell to log child stdi/o */ RImage *button_images; /* titlebar button images */ char smooth_workspace_back; signed char size_display; /* display type for resize geometry */ signed char move_display; /* display type for move geometry */ signed char window_placement; /* window placement mode */ signed char colormap_mode; /* colormap focus mode */ signed char focus_mode; /* window focusing mode */ char opaque_move; /* update window position during move */ char opaque_resize; /* update window position during resize */ char opaque_move_resize_keyboard; /* update window position during move,resize with keyboard */ char wrap_menus; /* wrap menus at edge of screen */ char scrollable_menus; /* let them be scrolled */ char vi_key_menus; /* use h/j/k/l to select */ char align_menus; /* align menu with their parents */ char use_saveunders; /* turn on SaveUnders for menus, icons etc. */ char no_window_over_dock; char no_window_over_icons; WCoord window_place_origin; /* Offset for windows placed on screen */ char constrain_window_size; /* don't let windows get bigger than screen */ char windows_cycling; /* windoze cycling */ char circ_raise; /* raise window after Alt-tabbing */ char ignore_focus_click; char open_transients_with_parent; /* open transient window in same workspace as parent */ signed char title_justification; /* titlebar text alignment */ int window_title_clearance; int window_title_min_height; int window_title_max_height; int menu_title_clearance; int menu_title_min_height; int menu_title_max_height; int menu_text_clearance; char multi_byte_text; #ifdef KEEP_XKB_LOCK_STATUS char modelock; #endif char no_dithering; /* use dithering or not */ char no_animations; /* enable/disable animations */ char no_autowrap; /* wrap workspace when window is moved to the edge */ char highlight_active_app; /* show the focused app by highlighting its icon */ char auto_arrange_icons; /* automagically arrange icons */ char icon_box_position; /* position to place icons */ signed char iconification_style; /* position to place icons */ char disable_root_mouse; /* disable button events in root window */ char auto_focus; /* focus window when it's mapped */ char *icon_back_file; /* background image for icons */ WCoord *root_menu_pos; /* initial position of the root menu*/ WCoord *app_menu_pos; WCoord *win_menu_pos; signed char icon_yard; /* aka iconbox */ int raise_delay; /* delay for autoraise. 0 is disabled */ int cmap_size; /* size of dithering colormap in colors per channel */ int icon_size; /* size of the icon */ signed char menu_style; /* menu decoration style */ signed char workspace_name_display_position; unsigned int modifier_mask; /* mask to use as kbd modifier */ char *modifier_labels[7]; /* Names of the modifiers */ char ws_advance; /* Create new workspace and advance */ char ws_cycle; /* Cycle existing workspaces */ char save_session_on_exit; /* automatically save session on exit */ char sticky_icons; /* If miniwindows will be onmipresent */ char dont_confirm_kill; /* do not confirm Kill application */ char disable_miniwindows; char dont_blink; /* do not blink icon selection */ /* Appearance options */ char new_style; /* Use newstyle buttons */ char superfluous; /* Use superfluous things */ /* root window mouse bindings */ signed char mouse_button1; /* action for left mouse button */ signed char mouse_button2; /* action for middle mouse button */ signed char mouse_button3; /* action for right mouse button */ signed char mouse_wheel; /* action for mouse wheel */ /* balloon text */ char window_balloon; char miniwin_balloon; char appicon_balloon; char help_balloon; /* some constants */ int dblclick_time; /* double click delay time in ms */ /* animate menus */ signed char menu_scroll_speed; /* how fast menus are scrolled */ /* animate icon sliding */ signed char icon_slide_speed; /* icon slide animation speed */ /* shading animation */ signed char shade_speed; /* bouncing animation */ char bounce_appicons_when_urgent; char raise_appicons_when_bouncing; char do_not_make_appicons_bounce; int edge_resistance; int resize_increment; char attract; unsigned int workspace_border_size; /* Size in pixels of the workspace border */ char workspace_border_position; /* Where to leave a workspace border */ char single_click; /* single click to lauch applications */ int history_lines; /* history of "Run..." dialog */ char cycle_active_head_only; /* Cycle only windows on the active head */ char cycle_ignore_minimized; /* Ignore minimized windows when cycling */ char strict_windoze_cycle; /* don't close switchpanel when shift is released */ char panel_only_open; /* Only open the switchpanel; don't switch */ /* All delays here are in ms. 0 means instant auto-action. */ int clip_auto_raise_delay; /* Delay after which the clip will be raised when entered */ int clip_auto_lower_delay; /* Delay after which the clip will be lowered when leaved */ int clip_auto_expand_delay; /* Delay after which the clip will expand when entered */ int clip_auto_collapse_delay; /* Delay after which the clip will collapse when leaved */ RImage *swtileImage; RImage *swbackImage[9]; int show_clip_title; struct { unsigned int nodock:1; /* don't display the dock */ unsigned int noclip:1; /* don't display the clip */ unsigned int clip_merged_in_dock:1; /* disable clip, dock gets its workspace switching functionality */ unsigned int nodrawer:1; /* don't use drawers */ unsigned int wrap_appicons_in_dock:1; /* Whether to wrap appicons when Dock is moved up and down */ unsigned int noupdates:1; /* don't require ~/GNUstep (-static) */ unsigned int noautolaunch:1; /* don't autolaunch apps */ unsigned int norestore:1; /* don't restore session */ #ifndef HAVE_INOTIFY unsigned int nopolling:1; /* don't poll the defaults database for changes */ #endif unsigned int restarting:2; } flags; /* internal flags */ } wPreferences; /****** Global Variables ******/ extern Display *dpy; extern unsigned int ValidModMask; extern char WProgramState; extern char WProgramSigState; /****** Notifications ******/ extern const char WMNManaged[]; extern const char WMNUnmanaged[]; extern const char WMNChangedWorkspace[]; extern const char WMNChangedState[]; extern const char WMNChangedFocus[]; extern const char WMNChangedStacking[]; extern const char WMNChangedName[]; extern const char WMNWorkspaceCreated[]; extern const char WMNWorkspaceDestroyed[]; extern const char WMNWorkspaceChanged[]; extern const char WMNWorkspaceNameChanged[]; extern const char WMNResetStacking[]; #endif WindowMaker-0.95.5/src/extend_pixmaps.h0000644000175000017500000000635412214432632014761 00000000000000#include "wconfig.h" static char *PRED_XKBGROUP1_XPM[] = { " 10 10 2 1", ". c #000000", "# c None", "........##", ".......###", "..########", "..########", "......####", ".....#####", "..########", "..########", "........##", "........##" }; #ifdef LANGUAGE_TH static char *PRED_XKBGROUP2_XPM[] = { " 10 10 2 1", ". c #000000", "# c None", "#..###..##", ".#..#.#..#", ".#...###..", "#...####..", "##..####..", "##..####..", "##..####..", "##..####..", "##..####..", "##.#####.#" }; #elif defined LANGUAGE_SK static char *PRED_XKBGROUP2_XPM[] = { " 10 10 2 1", ". c #000000", "# c None", "####..####", "####..####", "##......##", "##......##", "####..####", "#........#", "#........#", "####..####", "###....###", "##......##"}; #elif defined LANGUAGE_EL static char *PRED_XKBGROUP2_XPM[] = { " 10 10 2 1", ". c #000000", "# c None", "##..######", "##..##....", "......####", "##..##....", "##..######", "..........", "##########", "..........", "##########", "##########"}; #else static char *PRED_XKBGROUP2_XPM[] = { " 10 10 2 1", ". c #000000", "# c None", "##########", "#...##...#", "..........", "..........", "..........", "..........", "#........#", "##......##", "###....###", "####..####" }; #endif static char *PRED_XKBGROUP3_XPM[] = { " 10 10 2 1", ". c #000000", "# c None", "..........", "..........", "..##..##..", "..##..##..", "..........", "..........", "..######..", "...####...", "....##....", ".........." }; static char *PRED_XKBGROUP4_XPM[] = { " 10 10 2 1", ". c #000000", "# c None", "..........", ".########.", ".#..##..#.", ".#..##..#.", ".########.", ".#......#.", ".##....##.", ".###..###.", ".########.", ".........." }; static char *NEXT_XKBGROUP1_XPM[] = { "10 10 6 1", " c None", ". c #E0E0E0", "+ c #7D7D7D", "@ c #363636", "# c #080808", "$ c #BDBDBD", ".........+", "..@@@@@@++", "..@####+++", "..#+$$$$++", "..###+.$++", "..#++..$++", "..#$.$$$++", "..#@@@@+++", ".$+#####@@", "+++++++@@@"}; static char *NEXT_XKBGROUP2_XPM[] = { "10 10 6 1", " c None", ". c #E0E0E0", "+ c #7D7D7D", "@ c #BDBDBD", "# c #080808", "$ c #363636", ".........+", ".@##@@$#++", ".#.+#+###+", ".#+######+", ".########+", "..######++", "..@####+++", ".@@@#$++++", ".@++#$++$$", "+++++++$$$"}; static char *NEXT_XKBGROUP3_XPM[] = { "10 10 6 1", " c None", ". c #E0E0E0", "+ c #7D7D7D", "@ c #BDBDBD", "# c #080808", "$ c #363636", ".........+", "..@####.++", ".@######.+", ".#.+##.+#+", ".#++##++#+", ".########+", ".##@##@##+", ".+##@@##$+", ".@+####$$$", "+++++++$$$"}; static char *NEXT_XKBGROUP4_XPM[] = { "10 10 6 1", " c None", ". c #E0E0E0", "+ c #7D7D7D", "@ c #BDBDBD", "# c #080808", "$ c #363636", ".........+", "..@####.++", ".@#@@@@#.+", ".##$@@#$#+", ".#$$@@$$#+", ".#@@@@++#+", ".#+#++#.#+", ".+#+##$#$+", ".@+####$$$", "+++++++$$$"}; WindowMaker-0.95.5/src/placement.h0000644000175000017500000000315412214432632013674 00000000000000/* placement.h - window and icon placement on screen * * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 2013 Window Maker Team * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef PLACEMENT_H #define PLACEMENT_H void PlaceIcon(WScreen *scr, int *x_ret, int *y_ret, int head); /* Computes the intersecting length of two line sections */ int calcIntersectionLength(int p1, int l1, int p2, int l2); /* Computes the intersecting area of two rectangles */ int calcIntersectionArea(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2); void PlaceWindow(WWindow *wwin, int *x_ret, int *y_ret, unsigned width, unsigned height); void InteractivePlaceWindow(WWindow * wwin, int *x_ret, int *y_ret, unsigned width, unsigned height); /* Set the points x and y inside the screen */ void get_right_position_on_screen(WScreen *scr, int *x, int *y, int size_x, int size_y); #endif /* PLACEMENT_H */ WindowMaker-0.95.5/src/keybind.h0000644000175000017500000000520212214432632013345 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMKEYBIND_H #define WMKEYBIND_H enum { /* anywhere */ WKBD_ROOTMENU, WKBD_WINDOWMENU, WKBD_WINDOWLIST, /* window */ WKBD_MINIATURIZE, WKBD_MINIMIZEALL, WKBD_HIDE, WKBD_HIDE_OTHERS, WKBD_MAXIMIZE, WKBD_VMAXIMIZE, WKBD_HMAXIMIZE, WKBD_LHMAXIMIZE, WKBD_RHMAXIMIZE, WKBD_THMAXIMIZE, WKBD_BHMAXIMIZE, WKBD_LTCMAXIMIZE, WKBD_RTCMAXIMIZE, WKBD_LBCMAXIMIZE, WKBD_RBCMAXIMIZE, WKBD_MAXIMUS, WKBD_SELECT, WKBD_RAISE, WKBD_LOWER, WKBD_RAISELOWER, WKBD_MOVERESIZE, WKBD_SHADE, WKBD_FOCUSNEXT, WKBD_FOCUSPREV, WKBD_GROUPNEXT, WKBD_GROUPPREV, /* window, menu */ WKBD_CLOSE, /* Dock */ WKBD_DOCKRAISELOWER, /* Clip */ WKBD_CLIPRAISELOWER, /* workspace */ WKBD_WORKSPACE1, WKBD_WORKSPACE2, WKBD_WORKSPACE3, WKBD_WORKSPACE4, WKBD_WORKSPACE5, WKBD_WORKSPACE6, WKBD_WORKSPACE7, WKBD_WORKSPACE8, WKBD_WORKSPACE9, WKBD_WORKSPACE10, WKBD_NEXTWORKSPACE, WKBD_PREVWORKSPACE, WKBD_LASTWORKSPACE, WKBD_NEXTWSLAYER, WKBD_PREVWSLAYER, /* move to workspace */ WKBD_MOVE_WORKSPACE1, WKBD_MOVE_WORKSPACE2, WKBD_MOVE_WORKSPACE3, WKBD_MOVE_WORKSPACE4, WKBD_MOVE_WORKSPACE5, WKBD_MOVE_WORKSPACE6, WKBD_MOVE_WORKSPACE7, WKBD_MOVE_WORKSPACE8, WKBD_MOVE_WORKSPACE9, WKBD_MOVE_WORKSPACE10, WKBD_MOVE_NEXTWORKSPACE, WKBD_MOVE_PREVWORKSPACE, WKBD_MOVE_LASTWORKSPACE, WKBD_MOVE_NEXTWSLAYER, WKBD_MOVE_PREVWSLAYER, /* window shortcuts */ WKBD_WINDOW1, WKBD_WINDOW2, WKBD_WINDOW3, WKBD_WINDOW4, WKBD_WINDOW5, WKBD_WINDOW6, WKBD_WINDOW7, WKBD_WINDOW8, WKBD_WINDOW9, WKBD_WINDOW10, /* launch a new instance of the active window */ WKBD_RELAUNCH, /* screen */ WKBD_SWITCH_SCREEN, #ifdef KEEP_XKB_LOCK_STATUS WKBD_TOGGLE, #endif /* keep this last */ WKBD_LAST }; typedef struct WShortKey { unsigned int modifier; KeyCode keycode; } WShortKey; void wKeyboardInitialize(void); #endif /* WMKEYBIND_H */ WindowMaker-0.95.5/src/icon.h0000644000175000017500000000473312214432632012660 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMICON_H_ #define WMICON_H_ #include "wcore.h" #include "window.h" #define TILE_NORMAL 0 #define TILE_CLIP 1 #define TILE_DRAWER 2 typedef struct WIcon { WCoreWindow *core; WWindow *owner; /* owner window */ char *icon_name; /* the icon name hint */ Window icon_win; /* client suplied icon window */ char *file; /* the file with the icon image */ RImage *file_image; /* the image from the file */ unsigned int tile_type:4; unsigned int show_title:1; unsigned int selected:1; unsigned int step:3; /* selection cycle step */ unsigned int shadowed:1; /* If the icon is to be blured */ unsigned int mapped:1; unsigned int highlighted:1; Pixmap pixmap; WMHandlerID handlerID; /* timer handler ID for cycling select * color */ } WIcon; WIcon *icon_create_for_dock(WScreen *scr, const char *command, const char *wm_instance, const char *wm_class, int tile); WIcon *icon_create_for_wwindow(WWindow *wwin); void set_icon_image_from_database(WIcon *icon, const char *wm_instance, const char *wm_class, const char *command); void wIconDestroy(WIcon *icon); void wIconPaint(WIcon *icon); void wIconUpdate(WIcon *icon); void wIconSelect(WIcon *icon); void wIconChangeTitle(WIcon *icon, WWindow *wwin); void update_icon_pixmap(WIcon *icon); Bool wIconChangeImageFile(WIcon *icon, const char *file); RImage *wIconValidateIconSize(RImage *icon, int max_size); RImage *get_rimage_icon_from_wm_hints(WIcon *icon); char *wIconStore(WIcon *icon); char *get_name_for_instance_class(const char *wm_instance, const char *wm_class); void wIconSetHighlited(WIcon *icon, Bool flag); void set_icon_image_from_image(WIcon *icon, RImage *image); #endif /* WMICON_H_ */ WindowMaker-0.95.5/src/osdep_bsd.c0000644000175000017500000001146512214432632013665 00000000000000/* * Until FreeBSD gets their act together; * http://www.mail-archive.com/freebsd-hackers@freebsd.org/msg69469.html */ #if defined( FREEBSD ) # undef _XOPEN_SOURCE #endif #if defined( FREEBSD ) || defined( DRAGONFLYBSD ) # include #else /* OPENBSD || NETBSD */ # include #endif #include #include #if defined( OPENBSD ) # include # include /* _POSIX2_LINE_MAX */ #endif #include #include #if defined( OPENBSD ) # include #endif #include #include #include "wconfig.h" #include "osdep.h" /* * copy argc and argv for an existing process identified by `pid' * into suitable storage given in ***argv and *argc. * * subsequent calls use the same static area for argv and argc. * * returns 0 for failure, in which case argc := 0 and argv := NULL * returns 1 for success */ /* * NetBSD, FreeBSD and DragonFlyBSD supply the necessary information via * sysctl(3). The result is a plain simple flat octet stream and its length. * The octet stream represents argv, with members separated by a null character. * The argv array returned by GetCommandForPid() consists of pointers into this * stream (which is stored in a static array, `args'). Net and Free/DFly only * differ slightly in the MIB vector given to sysctl(3). Free and DFly are * identical. * * OpenBSD supplies the necessary informationvia kvm(3) in the form of a real * argv array. This array is flattened to be in the same way as Net/Free/DFly * returns the arguments in the first place. This is done in order for the * storage (`args') to easily be made static, which means some memory bytes * are sacrificed to save hoops of memory management. */ Bool GetCommandForPid(int pid, char ***argv, int *argc) { /* * it just returns failure if the sysctl calls fail; since there's * apparently no harm done to the caller because of this, it seems * more user-friendly than to bomb out. */ int j, mib[4]; unsigned int i; size_t count; static char *args = NULL; static int argmax = 0; #if defined( OPENBSD ) char kvmerr[_POSIX2_LINE_MAX]; /* for kvm*() error reporting */ int procs; /* kvm_getprocs() */ kvm_t *kd; struct kinfo_proc *kp; char **nargv; /* kvm_getarg() */ #endif *argv = NULL; *argc = 0; /* the system-wide limit */ if (argmax == 0) { /* it hopefully doesn't change at runtime *g* */ mib[0] = CTL_KERN; mib[1] = KERN_ARGMAX; mib[2] = 0; mib[4] = 0; count = sizeof(argmax); if (sysctl(mib, 2, &argmax, &count, NULL, 0) == -1) return False; } /* if argmax is still 0, something went very seriously wrong */ assert( argmax > 0); /* space for args; no need to free before returning even on errors */ if (args == NULL) args = (char *)wmalloc(argmax); #if defined( OPENBSD ) /* kvm descriptor */ if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, kvmerr)) == NULL) return False; procs = 0; /* the process we are interested in */ if ((kp = kvm_getprocs(kd, KERN_PROC_PID, pid, sizeof(*kp), &procs)) == NULL || procs == 0) /* if kvm_getprocs() bombs out or does not find the process */ return False; /* get its argv */ if ((nargv = kvm_getargv(kd, kp, 0)) == NULL) return False; /* flatten nargv into args */ count = 0; memset(args, 0, argmax); /* * must have this much free space in `args' in order for the current * iteration not to overflow it: we are at `count', and will append * the next (*argc) arg and a nul (+1) * technically, overflow (or truncation, which isn't handled) can not * happen (should not, at least). */ #define ARGSPACE ( count + strlen(nargv[ (*argc) ] ) + 1 ) while (nargv[*argc] && ARGSPACE < argmax ) { memcpy(args + count, nargv[*argc], strlen(nargv[*argc])); count += strlen(nargv[*argc]) + 1; (*argc)++; } #undef ARGSPACE /* by now *argc is correct as a byproduct */ kvm_close(kd); #else /* FREEBSD || NETBSD || DRAGONFLYBSD */ mib[0] = CTL_KERN; #if defined( NETBSD ) mib[1] = KERN_PROC_ARGS; mib[2] = pid; mib[3] = KERN_PROC_ARGV; #elif defined( FREEBSD ) || defined( DRAGONFLYBSD ) mib[1] = KERN_PROC; mib[2] = KERN_PROC_ARGS; mib[3] = pid; #endif count = argmax; /* canary */ *args = 0; if (sysctl(mib, 4, args, &count, NULL, 0) == -1 || *args == 0) return False; /* args is a flattened series of null-terminated strings */ for (i = 0; i < count; i++) if (args[i] == '\0') (*argc)++; #endif *argv = (char **)wmalloc(sizeof(char *) * (*argc + 1 /* term. null ptr */)); (*argv)[0] = args; /* go through args, set argv[$next] to the beginning of each string */ for (i = 0, j = 1; i < count; i++) { if (args[i] != '\0') continue; if (i < count - 1) (*argv)[j++] = &args[i + 1]; if (j == *argc) break; } /* the list of arguments must be terminated by a null pointer */ (*argv)[j] = NULL; return True; } WindowMaker-0.95.5/src/screen.h0000644000175000017500000002763512214432632013215 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMSCREEN_H_ #define WMSCREEN_H_ #include "wconfig.h" #include "WindowMaker.h" #include #include #define WTB_LEFT 0 #define WTB_RIGHT 1 #define WTB_FOCUSED 0 #define WTB_UNFOCUSED 2 #define WTB_PFOCUSED 4 #define WTB_MENU 6 #ifdef HAVE_XRANDR extern Bool has_randr; extern int randr_event_base; #endif typedef struct { WMRect *screens; int count; /* screen count, 0 = inactive */ int primary_head; /* main working screen */ } WXineramaInfo; /* an area of the screen reserved by some window */ typedef struct WReservedArea { WArea area; Window window; struct WReservedArea *next; } WReservedArea; typedef struct WAppIconChain { struct WAppIcon *aicon; struct WAppIconChain *next; } WAppIconChain; /* Drawers, which are docks, really */ typedef struct WDrawerChain { struct WDock *adrawer; struct WDrawerChain *next; } WDrawerChain; /* * each WScreen is saved into a context associated with it's root window */ typedef struct _WScreen { int screen; /* screen number */ Window info_window; /* for our window manager info stuff */ int scr_width; /* size of the screen */ int scr_height; Window root_win; /* root window of screen */ int depth; /* depth of the default visual */ Colormap colormap; /* root colormap */ int root_colormap_install_count; struct WWindow *original_cmap_window; /* colormap before installing * root colormap temporarily */ struct WWindow *cmap_window; Colormap current_colormap; Window w_win; /* window to use as drawable * for new GCs, pixmaps etc. */ Visual *w_visual; int w_depth; Colormap w_colormap; /* our colormap */ WXineramaInfo xine_info; Window no_focus_win; /* window to get focus when nobody * else can do it */ struct WWindow *focused_window; /* window that has the focus * Use this list if you want to * traverse the entire window list */ WMArray *selected_windows; WMArray *fakeGroupLeaders; /* list of fake window group ids */ struct WAppIcon *app_icon_list; /* list of all app-icons on screen */ struct WApplication *wapp_list; /* list of all aplications */ WMBag *stacking_list; /* bag of lists of windows * in stacking order. * Indexed by window level * and each list on the array * is ordered from the topmost to * the lowest window */ int window_count; /* number of windows in window_list */ int workspace_count; /* number of workspaces */ struct WWorkspace **workspaces; /* workspace array */ int current_workspace; /* current workspace number */ int last_workspace; /* last used workspace number */ WReservedArea *reservedAreas; /* used to build totalUsableArea */ WArea *usableArea; /* area of the workspace where * we can put windows on, as defined * by other clients (not us) */ WArea *totalUsableArea; /* same as above, but including * the dock and other stuff */ WMColor *black; WMColor *white; WMColor *gray; WMColor *darkGray; /* shortcuts for the pixels of the above colors. just for convenience */ WMPixel black_pixel; WMPixel white_pixel; WMPixel light_pixel; WMPixel dark_pixel; Pixmap stipple_bitmap; Pixmap transp_stipple; /* for making holes in icon masks for * transparent icon simulation */ WMFont *title_font; /* default font for the titlebars */ WMFont *menu_title_font; /* font for menu titlebars */ WMFont *menu_entry_font; /* font for menu items */ WMFont *icon_title_font; /* for icon titles */ WMFont *clip_title_font; /* for clip titles */ WMFont *info_text_font; /* text on things like geometry * hint boxes */ XFontStruct *tech_draw_font; /* font for tech draw style geom view needs to be a core font so we can use it with a XORing GC */ WMFont *workspace_name_font; WMColor *select_color; WMColor *select_text_color; /* foreground colors */ WMColor *window_title_color[3]; /* window titlebar text (foc, unfoc, pfoc)*/ WMColor *menu_title_color[3]; /* menu titlebar text */ WMColor *clip_title_color[2]; /* clip title text */ WMColor *mtext_color; /* menu item text */ WMColor *dtext_color; /* disabled menu item text */ int frame_border_width; WMColor *frame_border_color; WMColor *frame_selected_border_color; WMPixel line_pixel; WMPixel frame_border_pixel; /* frame border */ WMPixel frame_selected_border_pixel;/* frame border */ union WTexture *menu_title_texture[3];/* menu titlebar texture (tex, -, -) */ union WTexture *window_title_texture[3]; /* win textures (foc, unfoc, pfoc) */ union WTexture *resizebar_texture[3];/* window resizebar texture (tex, -, -) */ union WTexture *menu_item_texture; /* menu item texture */ struct WTexSolid *menu_item_auxtexture; /* additional texture to draw menu * cascade arrows */ struct WTexSolid *icon_title_texture;/* icon titles */ struct WTexSolid *widget_texture; struct WTexSolid *icon_back_texture; /* icon back color for shadowing */ WMColor *icon_title_color; /* icon title color */ GC icon_select_gc; GC frame_gc; /* gc for resize/move frame (root) */ GC line_gc; /* gc for drawing XORed lines (root) */ GC copy_gc; /* gc for XCopyArea() */ GC stipple_gc; /* gc for stippled filling */ GC draw_gc; /* gc for drawing misc things */ GC mono_gc; /* gc for 1 bit drawables */ struct WPixmap *b_pixmaps[PRED_BPIXMAPS]; /* internal pixmaps for buttons*/ struct WPixmap *menu_radio_indicator;/* left menu indicator */ struct WPixmap *menu_check_indicator;/* left menu indicator for checkmark */ struct WPixmap *menu_mini_indicator; /* for miniwindow */ struct WPixmap *menu_hide_indicator; /* for hidden window */ struct WPixmap *menu_shade_indicator; /* for shaded window */ int app_menu_x, app_menu_y; /* position for application menus */ struct WMenu *root_menu; /* root window menu */ struct WMenu *switch_menu; /* window list menu */ struct WMenu *workspace_menu; /* workspace operation */ struct WMenu *window_menu; /* window command menu */ struct WMenu *icon_menu; /* icon/appicon menu */ struct WMenu *workspace_submenu; /* workspace list for window_menu */ struct WDock *dock; /* the application dock */ struct WMenu *dock_pos_menu; /* Dock position menu */ struct WPixmap *dock_dots; /* 3 dots for the Dock */ Window dock_shadow; /* shadow for dock buttons */ struct WAppIcon *clip_icon; /* The clip main icon, or the dock's, if they are merged */ struct WMenu *clip_menu; /* Menu for clips */ struct WMenu *clip_submenu; /* Workspace list for clips */ struct WMenu *clip_options; /* Options for Clip */ struct WMenu *clip_ws_menu; /* workspace menu for clip */ struct WMenu *drawer_menu; /* Menu for drawers */ struct WDock *last_dock; WAppIconChain *global_icons; /* for omnipresent icons chain in clip */ int global_icon_count; /* How many global icons do we have */ WDrawerChain *drawers; /* Chain of drawers */ /* Cache the following two informations, as they are used quite a lot */ int drawer_count; /* Nb of drawers that */ struct WDock *attracting_drawer; /* The drawer that auto-attracts icons, or NULL */ int keymove_tick; struct RContext *rcontext; /* wrlib context */ WMScreen *wmscreen; /* for widget library */ struct RImage *icon_tile; struct RImage *clip_tile; /* tile with arrows to change workspace */ struct RImage *drawer_tile; /* tile for a drawer (tile + arrow) */ Pixmap icon_tile_pixmap; /* For app supplied icons */ struct RImage *def_icon_rimage; /* Default RImage icon */ struct WDialogData *dialog_data; struct W_GeometryView *gview; /* size/position view */ /* state and other informations */ short cascade_index; /* for cascade window placement */ WMPropList *session_state; /* for double-click detection */ Time last_click_time; Window last_click_window; int last_click_button; /* balloon help data */ struct _WBalloon *balloon; /* workspace name data */ Window workspace_name; WMHandlerID *workspace_name_timer; struct WorkspaceNameData *workspace_name_data; /* for raise-delay */ WMHandlerID *autoRaiseTimer; Window autoRaiseWindow; /* window that is scheduled to be * raised */ /* for window shortcuts */ WMArray *shortcutWindows[MAX_WINDOW_SHORTCUTS]; #ifdef XDND char *xdestring; #endif struct NetData *netdata; int helper_fd; pid_t helper_pid; struct { unsigned int startup:1; /* during window manager startup */ unsigned int regenerate_icon_textures:1; unsigned int dnd_data_convertion_status:1; unsigned int root_menu_changed_shortcuts:1; unsigned int added_workspace_menu:1; unsigned int added_windows_menu:1; unsigned int startup2:1; /* startup phase 2 */ unsigned int supports_tiff:1; unsigned int next_click_is_not_double:1; 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; unsigned int jump_back_pending:1; unsigned int ignore_focus_events:1; } flags; } WScreen; WScreen *wScreenInit(int screen_number); void wScreenSaveState(WScreen *scr); void wScreenRestoreState(WScreen *scr); int wScreenBringInside(WScreen *scr, int *x, int *y, int width, int height); int wScreenKeepInside(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 *wScreenForWindow(Window window); /* slower than above functions */ void wScreenFinish(WScreen *scr); void wScreenUpdateUsableArea(WScreen *scr); void create_logo_image(WScreen *scr); #endif WindowMaker-0.95.5/src/Makefile.am0000644000175000017500000000375712214432632013620 00000000000000AUTOMAKE_OPTIONS = BUILT_SOURCES = wconfig.h bin_PROGRAMS = wmaker EXTRA_DIST = 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 \ colormap.h \ cycling.c \ cycling.h \ def_pixmaps.h \ defaults.c \ defaults.h \ dialog.c \ dialog.h \ dock.c \ dockedapp.c \ dockedapp.h \ dock.h \ event.c \ event.h \ extend_pixmaps.h \ framewin.c \ framewin.h \ geomview.c \ geomview.h \ osdep.h \ icon.c \ icon.h \ keybind.h \ main.c \ main.h \ menu.c \ menu.h \ misc.c \ misc.h \ monitor.c \ monitor.h \ motif.c \ motif.h \ moveres.c \ pixmap.c \ pixmap.h \ placement.c \ placement.h \ properties.c \ properties.h \ resources.c \ resources.h \ rootmenu.c \ rootmenu.h \ screen.c \ screen.h \ session.h \ session.c \ shutdown.h \ shutdown.c \ switchpanel.c \ switchpanel.h \ stacking.c \ stacking.h \ startup.c \ startup.h \ superfluous.c \ superfluous.h \ switchmenu.c \ switchmenu.h \ texture.c \ texture.h \ usermenu.c \ usermenu.h \ xdnd.h \ xdnd.c \ xinerama.h \ xinerama.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 \ winmenu.h \ winspector.h \ winspector.c \ wmspec.h \ wmspec.c \ workspace.c \ workspace.h if WM_OSDEP_BSD wmaker_SOURCES += osdep_bsd.c endif if WM_OSDEP_DARWIN wmaker_SOURCES += osdep_darwin.c endif if WM_OSDEP_LINUX wmaker_SOURCES += osdep_linux.c endif if WM_OSDEP_GENERIC wmaker_SOURCES += osdep_stub.c endif AM_CFLAGS = AM_CPPFLAGS = \ $(DFLAGS) -DLOCALEDIR=\"$(NLSDIR)\" \ -I$(top_srcdir)/wrlib \ -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@ wmaker_LDADD = \ $(top_builddir)/WINGs/libWINGs.la\ $(top_builddir)/WINGs/libWUtil.la\ $(top_builddir)/wrlib/libwraster.la\ @XLFLAGS@ \ @LIBXRANDR@ \ @LIBXINERAMA@ \ @XLIBS@ \ @LIBM@ \ @INTLIBS@ WindowMaker-0.95.5/src/winspector.h0000644000175000017500000000231712214432632014121 00000000000000/* winspector.h - window attribute inspector header file * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WINSPECTOR_H_ #define WINSPECTOR_H_ #include "window.h" void wShowInspectorForWindow(WWindow *wwin); void wHideInspectorForWindow(WWindow *wwin); void wUnhideInspectorForWindow(WWindow *wwin); void wDestroyInspectorPanels(void); WWindow *wGetWindowOfInspectorForWindow(WWindow *wwin); void wCloseInspectorForWindow(WWindow *wwin); #endif WindowMaker-0.95.5/src/wcore.h0000644000175000017500000000330112214432632013035 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMCORE_H_ #define WMCORE_H_ #include "screen.h" typedef struct WStacking { struct _WCoreWindow *above; struct _WCoreWindow *under; short window_level; struct _WCoreWindow *child_of; /* owner for transient window */ } WStacking; typedef struct _WCoreWindow { Window window; int width; /* size of the window */ int height; WScreen *screen_ptr; /* ptr to screen of the window */ WObjDescriptor descriptor; WStacking *stacking; /* window stacking information */ } WCoreWindow; WCoreWindow *wCoreCreateTopLevel(WScreen *screen, int x, int y, int width, int height, int bwidth, int depth, Visual *visual, Colormap colormap, WMPixel border_pixel); WCoreWindow *wCoreCreate(WCoreWindow *parent, int x, int y, int width, int height); void wCoreDestroy(WCoreWindow *core); void wCoreConfigure(WCoreWindow *core, int req_x, int req_y, int req_w, int req_h); #endif WindowMaker-0.95.5/src/properties.c0000644000175000017500000001452212214432632014114 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include "WindowMaker.h" #include "window.h" #include "GNUstep.h" #include "properties.h" /* atoms */ extern Atom _XA_WM_STATE; extern Atom _XA_WM_CLIENT_LEADER; extern Atom _XA_WM_TAKE_FOCUS; extern Atom _XA_WM_DELETE_WINDOW; extern Atom _XA_WM_SAVE_YOURSELF; extern Atom _XA_GNUSTEP_WM_ATTR; extern Atom _XA_GNUSTEP_WM_MINIATURIZE_WINDOW; extern Atom _XA_WINDOWMAKER_WM_FUNCTION; extern Atom _XA_WINDOWMAKER_MENU; extern Atom _XA_WINDOWMAKER_WM_PROTOCOLS; extern Atom _XA_WINDOWMAKER_NOTICEBOARD; extern Atom _XA_WINDOWMAKER_ICON_TILE; int PropGetNormalHints(Window window, XSizeHints * size_hints, int *pre_iccm) { long supplied_hints; if (!XGetWMNormalHints(dpy, window, size_hints, &supplied_hints)) { return False; } if (supplied_hints == (USPosition | USSize | PPosition | PSize | PMinSize | PMaxSize | PResizeInc | PAspect)) { *pre_iccm = 1; } else { *pre_iccm = 0; } return True; } int PropGetWMClass(Window window, char **wm_class, char **wm_instance) { XClassHint *class_hint; class_hint = XAllocClassHint(); if (XGetClassHint(dpy, window, class_hint) == 0) { *wm_class = strdup("default"); *wm_instance = strdup("default"); XFree(class_hint); return False; } *wm_instance = strdup(class_hint->res_name); *wm_class = strdup(class_hint->res_class); XFree(class_hint->res_name); XFree(class_hint->res_class); XFree(class_hint); return True; } void PropGetProtocols(Window window, WProtocols * prots) { Atom *protocols; int count, i; memset(prots, 0, sizeof(WProtocols)); if (!XGetWMProtocols(dpy, window, &protocols, &count)) { return; } for (i = 0; i < count; i++) { if (protocols[i] == _XA_WM_TAKE_FOCUS) prots->TAKE_FOCUS = 1; else if (protocols[i] == _XA_WM_DELETE_WINDOW) prots->DELETE_WINDOW = 1; else if (protocols[i] == _XA_WM_SAVE_YOURSELF) prots->SAVE_YOURSELF = 1; else if (protocols[i] == _XA_GNUSTEP_WM_MINIATURIZE_WINDOW) prots->MINIATURIZE_WINDOW = 1; } XFree(protocols); } unsigned char *PropGetCheckProperty(Window window, Atom hint, Atom type, int format, int count, int *retCount) { Atom type_ret; int fmt_ret; unsigned long nitems_ret; unsigned long bytes_after_ret; unsigned char *data; int tmp; if (count <= 0) tmp = 0xffffff; else tmp = count; if (XGetWindowProperty(dpy, window, hint, 0, tmp, False, type, &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret, (unsigned char **)&data) != Success || !data) return NULL; if ((type != AnyPropertyType && type != type_ret) || (count > 0 && nitems_ret != count) || (format != 0 && format != fmt_ret)) { XFree(data); return NULL; } if (retCount) *retCount = nitems_ret; return data; } int PropGetGNUstepWMAttr(Window window, GNUstepWMAttributes ** attr) { unsigned long *data; data = (unsigned long *)PropGetCheckProperty(window, _XA_GNUSTEP_WM_ATTR, _XA_GNUSTEP_WM_ATTR, 32, 9, NULL); if (!data) return False; *attr = malloc(sizeof(GNUstepWMAttributes)); if (!*attr) { XFree(data); return False; } (*attr)->flags = data[0]; (*attr)->window_style = data[1]; (*attr)->window_level = data[2]; (*attr)->reserved = data[3]; (*attr)->miniaturize_pixmap = data[4]; (*attr)->close_pixmap = data[5]; (*attr)->miniaturize_mask = data[6]; (*attr)->close_mask = data[7]; (*attr)->extra_flags = data[8]; XFree(data); return True; } void PropSetWMakerProtocols(Window root) { Atom protocols[3]; int count = 0; protocols[count++] = _XA_WINDOWMAKER_MENU; protocols[count++] = _XA_WINDOWMAKER_WM_FUNCTION; protocols[count++] = _XA_WINDOWMAKER_NOTICEBOARD; XChangeProperty(dpy, root, _XA_WINDOWMAKER_WM_PROTOCOLS, XA_ATOM, 32, PropModeReplace, (unsigned char *)protocols, count); } void PropSetIconTileHint(WScreen * scr, RImage * image) { static Atom imageAtom = 0; unsigned char *tmp; int x, y; if (scr->info_window == None) return; if (!imageAtom) { /* * WIDTH, HEIGHT (16 bits, MSB First) * array of R,G,B,A bytes */ imageAtom = XInternAtom(dpy, "_RGBA_IMAGE", False); } tmp = malloc(image->width * image->height * 4 + 4); if (!tmp) { wwarning("could not allocate memory to set _WINDOWMAKER_ICON_TILE hint"); return; } tmp[0] = image->width >> 8; tmp[1] = image->width & 0xff; tmp[2] = image->height >> 8; tmp[3] = image->height & 0xff; if (image->format == RRGBAFormat) { memcpy(&tmp[4], image->data, image->width * image->height * 4); } else { char *ptr = (char *)(tmp + 4); char *src = (char *)image->data; for (y = 0; y < image->height; y++) { for (x = 0; x < image->width; x++) { *ptr++ = *src++; *ptr++ = *src++; *ptr++ = *src++; *ptr++ = 255; } } } XChangeProperty(dpy, scr->info_window, _XA_WINDOWMAKER_ICON_TILE, imageAtom, 8, PropModeReplace, tmp, image->width * image->height * 4 + 4); wfree(tmp); } Window PropGetClientLeader(Window window) { Window *win; Window leader; win = (Window *) PropGetCheckProperty(window, _XA_WM_CLIENT_LEADER, XA_WINDOW, 32, 1, NULL); if (!win) return None; leader = (Window) * win; XFree(win); return leader; } int PropGetWindowState(Window window) { long *data; long state; data = (long *)PropGetCheckProperty(window, _XA_WM_STATE, _XA_WM_STATE, 32, 1, NULL); if (!data) return -1; state = *data; XFree(data); return state; } void PropCleanUp(Window root) { XDeleteProperty(dpy, root, _XA_WINDOWMAKER_WM_PROTOCOLS); XDeleteProperty(dpy, root, _XA_WINDOWMAKER_NOTICEBOARD); XDeleteProperty(dpy, root, XA_WM_ICON_SIZE); } WindowMaker-0.95.5/src/xinerama.c0000644000175000017500000001653012214432632013525 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include "xinerama.h" #include "screen.h" #include "window.h" #include "framewin.h" #include "placement.h" #ifdef XINERAMA # ifdef SOLARIS_XINERAMA /* sucks */ # include # else # include # endif #endif void wInitXinerama(WScreen * scr) { scr->xine_info.primary_head = 0; scr->xine_info.screens = NULL; scr->xine_info.count = 0; #ifdef XINERAMA # ifdef SOLARIS_XINERAMA if (XineramaGetState(dpy, scr->screen)) { WXineramaInfo *info = &scr->xine_info; XRectangle head[MAXFRAMEBUFFERS]; unsigned char hints[MAXFRAMEBUFFERS]; int i; if (XineramaGetInfo(dpy, scr->screen, head, hints, &info->count)) { info->screens = wmalloc(sizeof(WMRect) * (info->count + 1)); for (i = 0; i < info->count; i++) { info->screens[i].pos.x = head[i].x; info->screens[i].pos.y = head[i].y; info->screens[i].size.width = head[i].width; info->screens[i].size.height = head[i].height; } } } # else /* !SOLARIS_XINERAMA */ if (XineramaIsActive(dpy)) { XineramaScreenInfo *xine_screens; WXineramaInfo *info = &scr->xine_info; int i; xine_screens = XineramaQueryScreens(dpy, &info->count); info->screens = wmalloc(sizeof(WMRect) * (info->count + 1)); for (i = 0; i < info->count; i++) { info->screens[i].pos.x = xine_screens[i].x_org; info->screens[i].pos.y = xine_screens[i].y_org; info->screens[i].size.width = xine_screens[i].width; info->screens[i].size.height = xine_screens[i].height; } XFree(xine_screens); } # endif /* !SOLARIS_XINERAMA */ #endif /* XINERAMA */ } int wGetRectPlacementInfo(WScreen * scr, WMRect rect, int *flags) { int best; unsigned long area, totalArea; int i; int rx = rect.pos.x; int ry = rect.pos.y; int rw = rect.size.width; int rh = rect.size.height; wassertrv(flags != NULL, 0); best = -1; area = 0; totalArea = 0; *flags = XFLAG_NONE; if (scr->xine_info.count <= 1) { unsigned long a; a = calcIntersectionArea(rx, ry, rw, rh, 0, 0, scr->scr_width, scr->scr_height); if (a == 0) { *flags |= XFLAG_DEAD; } else if (a != rw * rh) { *flags |= XFLAG_PARTIAL; } return scr->xine_info.primary_head; } for (i = 0; i < wXineramaHeads(scr); i++) { unsigned long a; a = calcIntersectionArea(rx, ry, rw, rh, scr->xine_info.screens[i].pos.x, scr->xine_info.screens[i].pos.y, scr->xine_info.screens[i].size.width, scr->xine_info.screens[i].size.height); totalArea += a; if (a > area) { if (best != -1) *flags |= XFLAG_MULTIPLE; area = a; best = i; } } if (best == -1) { *flags |= XFLAG_DEAD; best = wGetHeadForPointerLocation(scr); } else if (totalArea != rw * rh) *flags |= XFLAG_PARTIAL; return best; } /* get the head that covers most of the rectangle */ int wGetHeadForRect(WScreen * scr, WMRect rect) { int best; unsigned long area; int i; int rx = rect.pos.x; int ry = rect.pos.y; int rw = rect.size.width; int rh = rect.size.height; if (!scr->xine_info.count) return scr->xine_info.primary_head; best = -1; area = 0; for (i = 0; i < wXineramaHeads(scr); i++) { unsigned long a; a = calcIntersectionArea(rx, ry, rw, rh, scr->xine_info.screens[i].pos.x, scr->xine_info.screens[i].pos.y, scr->xine_info.screens[i].size.width, scr->xine_info.screens[i].size.height); if (a > area) { area = a; best = i; } } /* * in case rect is in dead space, return valid head */ if (best == -1) best = wGetHeadForPointerLocation(scr); return best; } Bool wWindowTouchesHead(WWindow * wwin, int head) { WScreen *scr; WMRect rect; int a; if (!wwin || !wwin->frame) return False; scr = wwin->screen_ptr; rect = wGetRectForHead(scr, head); a = calcIntersectionArea(wwin->frame_x, wwin->frame_y, wwin->frame->core->width, wwin->frame->core->height, rect.pos.x, rect.pos.y, rect.size.width, rect.size.height); return (a != 0); } Bool wAppIconTouchesHead(WAppIcon * aicon, int head) { WScreen *scr; WMRect rect; int a; if (!aicon || !aicon->icon) return False; scr = aicon->icon->core->screen_ptr; rect = wGetRectForHead(scr, head); a = calcIntersectionArea(aicon->x_pos, aicon->y_pos, aicon->icon->core->width, aicon->icon->core->height, rect.pos.x, rect.pos.y, rect.size.width, rect.size.height); return (a != 0); } int wGetHeadForWindow(WWindow * wwin) { WMRect rect; if (wwin == NULL || wwin->frame == NULL) return 0; rect.pos.x = wwin->frame_x; rect.pos.y = wwin->frame_y; rect.size.width = wwin->frame->core->width; rect.size.height = wwin->frame->core->height; return wGetHeadForRect(wwin->screen_ptr, rect); } int wGetHeadForPoint(WScreen * scr, WMPoint point) { int i; for (i = 0; i < scr->xine_info.count; i++) { WMRect *rect = &scr->xine_info.screens[i]; if ((unsigned)(point.x - rect->pos.x) < rect->size.width && (unsigned)(point.y - rect->pos.y) < rect->size.height) return i; } return scr->xine_info.primary_head; } int wGetHeadForPointerLocation(WScreen * scr) { WMPoint point; Window bla; int ble; unsigned int blo; if (!scr->xine_info.count) return scr->xine_info.primary_head; if (!XQueryPointer(dpy, scr->root_win, &bla, &bla, &point.x, &point.y, &ble, &ble, &blo)) return scr->xine_info.primary_head; return wGetHeadForPoint(scr, point); } /* get the dimensions of the head */ WMRect wGetRectForHead(WScreen * scr, int head) { WMRect rect; if (head < scr->xine_info.count) { rect.pos.x = scr->xine_info.screens[head].pos.x; rect.pos.y = scr->xine_info.screens[head].pos.y; rect.size.width = scr->xine_info.screens[head].size.width; rect.size.height = scr->xine_info.screens[head].size.height; } else { rect.pos.x = 0; rect.pos.y = 0; rect.size.width = scr->scr_width; rect.size.height = scr->scr_height; } return rect; } WArea wGetUsableAreaForHead(WScreen * scr, int head, WArea * totalAreaPtr, Bool noicons) { WArea totalArea, usableArea; WMRect rect = wGetRectForHead(scr, head); totalArea.x1 = rect.pos.x; totalArea.y1 = rect.pos.y; totalArea.x2 = totalArea.x1 + rect.size.width; totalArea.y2 = totalArea.y1 + rect.size.height; if (totalAreaPtr != NULL) *totalAreaPtr = totalArea; if (head < wXineramaHeads(scr)) { usableArea = noicons ? scr->totalUsableArea[head] : scr->usableArea[head]; } else usableArea = totalArea; return usableArea; } WMPoint wGetPointToCenterRectInHead(WScreen * scr, int head, int width, int height) { WMPoint p; WMRect rect = wGetRectForHead(scr, head); p.x = rect.pos.x + (rect.size.width - width) / 2; p.y = rect.pos.y + (rect.size.height - height) / 2; return p; } WindowMaker-0.95.5/src/resources.h0000644000175000017500000000206712214432632013740 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMRESOURCES_H_ #define WMRESOURCES_H_ int wGetColorForColormap(Colormap colormap, const char *color_name, XColor *color); int wGetColor(WScreen *scr, const char *color_name, XColor *color); void wFreeColor(WScreen *scr, unsigned long pixel); #endif WindowMaker-0.95.5/src/balloon.h0000644000175000017500000000176112214432632013354 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _BALLOON_H_ #define _BALLOON_H_ void wBalloonInitialize(WScreen *scr); void wBalloonEnteredObject(WScreen *scr, WObjDescriptor *object); void wBalloonHide(WScreen *scr); #endif WindowMaker-0.95.5/src/wdefaults.c0000644000175000017500000004614012214432632013717 00000000000000/* wdefaults.c - window specific defaults * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include #include #include #include "WindowMaker.h" #include "window.h" #include "appicon.h" #include "screen.h" #include "workspace.h" #include "defaults.h" #include "icon.h" #include "misc.h" #define APPLY_VAL(value, flag, attrib) \ if (value) {attr->flag = getBool(attrib, value); \ if (mask) mask->flag = 1;} /* Global stuff */ extern WDDomain *WDWindowAttributes; /* Local stuff */ /* type converters */ static int getBool(WMPropList *, WMPropList *); static char *getString(WMPropList *, WMPropList *); static WMPropList *ANoTitlebar = NULL; static WMPropList *ANoResizebar; static WMPropList *ANoMiniaturizeButton; static WMPropList *ANoMiniaturizable; static WMPropList *ANoCloseButton; static WMPropList *ANoBorder; static WMPropList *ANoHideOthers; static WMPropList *ANoMouseBindings; static WMPropList *ANoKeyBindings; static WMPropList *ANoAppIcon; /* app */ static WMPropList *AKeepOnTop; static WMPropList *AKeepOnBottom; static WMPropList *AOmnipresent; static WMPropList *ASkipWindowList; static WMPropList *ASkipSwitchPanel; static WMPropList *AKeepInsideScreen; static WMPropList *AUnfocusable; static WMPropList *AAlwaysUserIcon; static WMPropList *AStartMiniaturized; static WMPropList *AStartMaximized; static WMPropList *AStartHidden; /* app */ static WMPropList *ADontSaveSession; /* app */ static WMPropList *AEmulateAppIcon; static WMPropList *AFocusAcrossWorkspace; static WMPropList *AFullMaximize; static WMPropList *ASharedAppIcon; /* app */ #ifdef XKB_BUTTON_HINT static WMPropList *ANoLanguageButton; #endif static WMPropList *AStartWorkspace; static WMPropList *AIcon; static WMPropList *AnyWindow; static WMPropList *No; static void init_wdefaults(void) { AIcon = WMCreatePLString("Icon"); ANoTitlebar = WMCreatePLString("NoTitlebar"); ANoResizebar = WMCreatePLString("NoResizebar"); ANoMiniaturizeButton = WMCreatePLString("NoMiniaturizeButton"); ANoMiniaturizable = WMCreatePLString("NoMiniaturizable"); ANoCloseButton = WMCreatePLString("NoCloseButton"); ANoBorder = WMCreatePLString("NoBorder"); ANoHideOthers = WMCreatePLString("NoHideOthers"); ANoMouseBindings = WMCreatePLString("NoMouseBindings"); ANoKeyBindings = WMCreatePLString("NoKeyBindings"); ANoAppIcon = WMCreatePLString("NoAppIcon"); AKeepOnTop = WMCreatePLString("KeepOnTop"); AKeepOnBottom = WMCreatePLString("KeepOnBottom"); AOmnipresent = WMCreatePLString("Omnipresent"); ASkipWindowList = WMCreatePLString("SkipWindowList"); ASkipSwitchPanel = WMCreatePLString("SkipSwitchPanel"); AKeepInsideScreen = WMCreatePLString("KeepInsideScreen"); AUnfocusable = WMCreatePLString("Unfocusable"); AAlwaysUserIcon = WMCreatePLString("AlwaysUserIcon"); AStartMiniaturized = WMCreatePLString("StartMiniaturized"); AStartHidden = WMCreatePLString("StartHidden"); AStartMaximized = WMCreatePLString("StartMaximized"); ADontSaveSession = WMCreatePLString("DontSaveSession"); AEmulateAppIcon = WMCreatePLString("EmulateAppIcon"); AFocusAcrossWorkspace = WMCreatePLString("FocusAcrossWorkspace"); AFullMaximize = WMCreatePLString("FullMaximize"); ASharedAppIcon = WMCreatePLString("SharedAppIcon"); #ifdef XKB_BUTTON_HINT ANoLanguageButton = WMCreatePLString("NoLanguageButton"); #endif AStartWorkspace = WMCreatePLString("StartWorkspace"); AnyWindow = WMCreatePLString("*"); No = WMCreatePLString("No"); } /* Returns the correct WMPropList, using instance+class or instance, or class, or default */ static WMPropList *get_value(WMPropList * dict_win, WMPropList * dict_class, WMPropList * dict_name, WMPropList * dict_any, WMPropList * option, WMPropList * default_value, Bool useGlobalDefault) { WMPropList *value; if (dict_win) { value = WMGetFromPLDictionary(dict_win, option); if (value) return value; } if (dict_name) { value = WMGetFromPLDictionary(dict_name, option); if (value) return value; } if (dict_class) { value = WMGetFromPLDictionary(dict_class, option); if (value) return value; } if (!useGlobalDefault) return NULL; if (dict_any) { value = WMGetFromPLDictionary(dict_any, option); if (value) return value; } return default_value; } static WMPropList *get_value_from_instanceclass(const char *value) { WMPropList *key, *val = NULL; if (!value) return NULL; key = WMCreatePLString(value); WMPLSetCaseSensitive(True); if (WDWindowAttributes->dictionary) val = key ? WMGetFromPLDictionary(WDWindowAttributes->dictionary, key) : NULL; if (key) WMReleasePropList(key); WMPLSetCaseSensitive(False); return val; } /* *---------------------------------------------------------------------- * wDefaultFillAttributes-- * Retrieves attributes for the specified instance/class and * fills attr with it. Values that are actually defined are also * set in mask. If useGlobalDefault is True, the default for * all windows ("*") will be used for when no values are found * for that instance/class. * *---------------------------------------------------------------------- */ void wDefaultFillAttributes(const char *instance, const char *class, WWindowAttributes *attr, WWindowAttributes *mask, Bool useGlobalDefault) { WMPropList *value, *dw, *dc, *dn, *da; char *buffer; dw = dc = dn = da = NULL; if (!ANoTitlebar) init_wdefaults(); if (class && instance) { buffer = StrConcatDot(instance, class); dw = get_value_from_instanceclass(buffer); wfree(buffer); } dn = get_value_from_instanceclass(instance); dc = get_value_from_instanceclass(class); WMPLSetCaseSensitive(True); if ((WDWindowAttributes->dictionary) && (useGlobalDefault)) da = WMGetFromPLDictionary(WDWindowAttributes->dictionary, AnyWindow); /* get the data */ value = get_value(dw, dc, dn, da, ANoTitlebar, No, useGlobalDefault); APPLY_VAL(value, no_titlebar, ANoTitlebar); value = get_value(dw, dc, dn, da, ANoResizebar, No, useGlobalDefault); APPLY_VAL(value, no_resizebar, ANoResizebar); value = get_value(dw, dc, dn, da, ANoMiniaturizeButton, No, useGlobalDefault); APPLY_VAL(value, no_miniaturize_button, ANoMiniaturizeButton); value = get_value(dw, dc, dn, da, ANoMiniaturizable, No, useGlobalDefault); APPLY_VAL(value, no_miniaturizable, ANoMiniaturizable); value = get_value(dw, dc, dn, da, ANoCloseButton, No, useGlobalDefault); APPLY_VAL(value, no_close_button, ANoCloseButton); value = get_value(dw, dc, dn, da, ANoBorder, No, useGlobalDefault); APPLY_VAL(value, no_border, ANoBorder); value = get_value(dw, dc, dn, da, ANoHideOthers, No, useGlobalDefault); APPLY_VAL(value, no_hide_others, ANoHideOthers); value = get_value(dw, dc, dn, da, ANoMouseBindings, No, useGlobalDefault); APPLY_VAL(value, no_bind_mouse, ANoMouseBindings); value = get_value(dw, dc, dn, da, ANoKeyBindings, No, useGlobalDefault); APPLY_VAL(value, no_bind_keys, ANoKeyBindings); value = get_value(dw, dc, dn, da, ANoAppIcon, No, useGlobalDefault); APPLY_VAL(value, no_appicon, ANoAppIcon); value = get_value(dw, dc, dn, da, ASharedAppIcon, No, useGlobalDefault); APPLY_VAL(value, shared_appicon, ASharedAppIcon); value = get_value(dw, dc, dn, da, AKeepOnTop, No, useGlobalDefault); APPLY_VAL(value, floating, AKeepOnTop); value = get_value(dw, dc, dn, da, AKeepOnBottom, No, useGlobalDefault); APPLY_VAL(value, sunken, AKeepOnBottom); value = get_value(dw, dc, dn, da, AOmnipresent, No, useGlobalDefault); APPLY_VAL(value, omnipresent, AOmnipresent); value = get_value(dw, dc, dn, da, ASkipWindowList, No, useGlobalDefault); APPLY_VAL(value, skip_window_list, ASkipWindowList); value = get_value(dw, dc, dn, da, ASkipSwitchPanel, No, useGlobalDefault); APPLY_VAL(value, skip_switchpanel, ASkipSwitchPanel); value = get_value(dw, dc, dn, da, AKeepInsideScreen, No, useGlobalDefault); APPLY_VAL(value, dont_move_off, AKeepInsideScreen); value = get_value(dw, dc, dn, da, AUnfocusable, No, useGlobalDefault); APPLY_VAL(value, no_focusable, AUnfocusable); value = get_value(dw, dc, dn, da, AAlwaysUserIcon, No, useGlobalDefault); APPLY_VAL(value, always_user_icon, AAlwaysUserIcon); value = get_value(dw, dc, dn, da, AStartMiniaturized, No, useGlobalDefault); APPLY_VAL(value, start_miniaturized, AStartMiniaturized); value = get_value(dw, dc, dn, da, AStartHidden, No, useGlobalDefault); APPLY_VAL(value, start_hidden, AStartHidden); value = get_value(dw, dc, dn, da, AStartMaximized, No, useGlobalDefault); APPLY_VAL(value, start_maximized, AStartMaximized); value = get_value(dw, dc, dn, da, ADontSaveSession, No, useGlobalDefault); APPLY_VAL(value, dont_save_session, ADontSaveSession); value = get_value(dw, dc, dn, da, AEmulateAppIcon, No, useGlobalDefault); APPLY_VAL(value, emulate_appicon, AEmulateAppIcon); value = get_value(dw, dc, dn, da, AFocusAcrossWorkspace, No, useGlobalDefault); APPLY_VAL(value, focus_across_wksp, AFocusAcrossWorkspace); value = get_value(dw, dc, dn, da, AFullMaximize, No, useGlobalDefault); APPLY_VAL(value, full_maximize, AFullMaximize); #ifdef XKB_BUTTON_HINT value = get_value(dw, dc, dn, da, ANoLanguageButton, No, useGlobalDefault); APPLY_VAL(value, no_language_button, ANoLanguageButton); #endif /* clean up */ WMPLSetCaseSensitive(False); } static WMPropList *get_generic_value(const char *instance, const char *class, WMPropList *option, Bool default_icon) { WMPropList *value, *key, *dict; value = NULL; WMPLSetCaseSensitive(True); /* Search the icon name using class and instance */ if (class && instance) { char *buffer; buffer = wmalloc(strlen(class) + strlen(instance) + 2); sprintf(buffer, "%s.%s", instance, class); key = WMCreatePLString(buffer); wfree(buffer); dict = WMGetFromPLDictionary(WDWindowAttributes->dictionary, key); WMReleasePropList(key); if (dict) value = WMGetFromPLDictionary(dict, option); } /* Search the icon name using instance */ if (!value && instance) { key = WMCreatePLString(instance); dict = WMGetFromPLDictionary(WDWindowAttributes->dictionary, key); WMReleasePropList(key); if (dict) value = WMGetFromPLDictionary(dict, option); } /* Search the icon name using class */ if (!value && class) { key = WMCreatePLString(class); dict = WMGetFromPLDictionary(WDWindowAttributes->dictionary, key); WMReleasePropList(key); if (dict) value = WMGetFromPLDictionary(dict, option); } /* Search the default icon name - See default_icon argument! */ if (!value && default_icon) { /* AnyWindow is "*" - see wdefaults.c */ dict = WMGetFromPLDictionary(WDWindowAttributes->dictionary, AnyWindow); if (dict) value = WMGetFromPLDictionary(dict, option); } WMPLSetCaseSensitive(False); return value; } /* Get the file name of the image, using instance and class */ char *get_icon_filename(WScreen *scr, const char *winstance, const char *wclass, const char *command, Bool default_icon) { char *file_name = NULL; char *file_path = NULL; /* Get the file name of the image, using instance and class */ file_name = wDefaultGetIconFile(winstance, wclass, default_icon); /* Check if the file really exists in the disk */ if (file_name) file_path = FindImage(wPreferences.icon_path, file_name); /* If the specific icon filename is not found, and command is specified, * then include the .app icons and re-do the search. */ if ((!file_name || !file_path ) && scr && command) { wApplicationExtractDirPackIcon(scr, command, winstance, wclass); file_name = wDefaultGetIconFile(winstance, wclass, False); } /* Get the full path for the image file */ if (file_name) { file_path = FindImage(wPreferences.icon_path, file_name); if (!file_path) wwarning(_("icon \"%s\" doesn't exist, check your config files"), file_name); /* FIXME: Here, if file_path don't exists, then the icon is in the * "icon database" (WDWindowAttributes->dictionary), but the icon * is not en disk. Therefore, we should remove it from the icon * database. Is possible to do that using wDefaultChangeIcon() */ /* Don't wfree(file_name) here, because is a pointer to the icon * dictionary (WDWindowAttributes->dictionary) value. */ } if (!file_path && default_icon) file_path = get_default_image_path(); return file_path; } /* This function returns the image picture for the file_name file */ RImage *get_rimage_from_file(WScreen *scr, const char *file_name, int max_size) { RImage *image = NULL; if (!file_name) return NULL; image = RLoadImage(scr->rcontext, file_name, 0); if (!image) wwarning(_("error loading image file \"%s\": %s"), file_name, RMessageForError(RErrorCode)); image = wIconValidateIconSize(image, max_size); return image; } /* This function returns the default icon's full path * If the path for an icon is not found, returns NULL */ char *get_default_image_path(void) { char *path = NULL, *file = NULL; /* Get the default icon */ file = wDefaultGetIconFile(NULL, NULL, True); if (file) path = FindImage(wPreferences.icon_path, file); return path; } /* This function creates the RImage using the default icon */ RImage *get_default_image(WScreen *scr) { RImage *image = NULL; char *path = NULL; /* Get the filename full path */ path = get_default_image_path(); if (!path) return NULL; /* Get the default icon */ image = get_rimage_from_file(scr, path, wPreferences.icon_size); if (!image) wwarning(_("could not find default icon \"%s\""), path); /* Resize the icon to the wPreferences.icon_size size * usually this function will return early, because size is right */ image = wIconValidateIconSize(image, wPreferences.icon_size); return image; } RImage *get_icon_image(WScreen *scr, const char *winstance, const char *wclass, int max_size) { char *file_name = NULL; /* Get the file name of the image, using instance and class */ file_name = get_icon_filename(scr, winstance, wclass, NULL, True); return get_rimage_from_file(scr, file_name, max_size); } int wDefaultGetStartWorkspace(WScreen *scr, const char *instance, const char *class) { WMPropList *value; int w; char *tmp; if (!ANoTitlebar) init_wdefaults(); if (!WDWindowAttributes->dictionary) return -1; value = get_generic_value(instance, class, AStartWorkspace, True); if (!value) return -1; tmp = getString(AStartWorkspace, value); if (!tmp || strlen(tmp) == 0) return -1; /* Get the workspace number for the workspace name */ w = wGetWorkspaceNumber(scr, tmp); return w; } /* Get the name of the Icon File. If default_icon is True, then, default value included */ char *wDefaultGetIconFile(const char *instance, const char *class, Bool default_icon) { WMPropList *value; char *tmp; if (!ANoTitlebar) init_wdefaults(); if (!WDWindowAttributes || !WDWindowAttributes->dictionary) return NULL; value = get_generic_value(instance, class, AIcon, default_icon); if (!value) return NULL; tmp = getString(AIcon, value); return tmp; } void wDefaultChangeIcon(WScreen *scr, const char *instance, const char *class, const char *file) { WDDomain *db = WDWindowAttributes; WMPropList *icon_value = NULL, *value, *attr, *key, *def_win, *def_icon = NULL; WMPropList *dict = db->dictionary; int same = 0; if (!dict) { dict = WMCreatePLDictionary(NULL, NULL); if (dict) db->dictionary = dict; else return; } WMPLSetCaseSensitive(True); if (instance && class) { char *buffer; buffer = StrConcatDot(instance, class); key = WMCreatePLString(buffer); wfree(buffer); } else if (instance) { key = WMCreatePLString(instance); } else if (class) { key = WMCreatePLString(class); } else { key = WMRetainPropList(AnyWindow); } if (file) { value = WMCreatePLString(file); icon_value = WMCreatePLDictionary(AIcon, value, NULL); WMReleasePropList(value); if ((def_win = WMGetFromPLDictionary(dict, AnyWindow)) != NULL) def_icon = WMGetFromPLDictionary(def_win, AIcon); if (def_icon && !strcmp(WMGetFromPLString(def_icon), file)) same = 1; } if ((attr = WMGetFromPLDictionary(dict, key)) != NULL) { if (WMIsPLDictionary(attr)) { if (icon_value != NULL && !same) WMMergePLDictionaries(attr, icon_value, False); else WMRemoveFromPLDictionary(attr, AIcon); } } else if (icon_value != NULL && !same) { WMPutInPLDictionary(dict, key, icon_value); } if (!wPreferences.flags.noupdates) UpdateDomainFile(db); WMReleasePropList(key); if (icon_value) WMReleasePropList(icon_value); WMPLSetCaseSensitive(False); } void wDefaultPurgeInfo(WScreen *scr, const char *instance, const char *class) { WMPropList *value, *key, *dict; char *buffer; if (!AIcon) { /* Unnecessary precaution */ init_wdefaults(); } WMPLSetCaseSensitive(True); buffer = wmalloc(strlen(class) + strlen(instance) + 2); sprintf(buffer, "%s.%s", instance, class); key = WMCreatePLString(buffer); dict = WMGetFromPLDictionary(WDWindowAttributes->dictionary, key); if (dict) { value = WMGetFromPLDictionary(dict, AIcon); if (value) { WMRemoveFromPLDictionary(dict, AIcon); } WMRemoveFromPLDictionary(WDWindowAttributes->dictionary, key); UpdateDomainFile(WDWindowAttributes); } wfree(buffer); WMReleasePropList(key); WMPLSetCaseSensitive(False); } /* --------------------------- Local ----------------------- */ static int getBool(WMPropList * key, WMPropList * value) { char *val; if (!WMIsPLString(value)) { wwarning(_("Wrong option format for key \"%s\". Should be %s."), WMGetFromPLString(key), "Boolean"); return 0; } val = WMGetFromPLString(value); if ((val[1] == '\0' && (val[0] == 'y' || val[0] == 'Y' || val[0] == 'T' || val[0] == 't' || val[0] == '1')) || (strcasecmp(val, "YES") == 0 || strcasecmp(val, "TRUE") == 0)) { return 1; } else if ((val[1] == '\0' && (val[0] == 'n' || val[0] == 'N' || val[0] == 'F' || val[0] == 'f' || val[0] == '0')) || (strcasecmp(val, "NO") == 0 || strcasecmp(val, "FALSE") == 0)) { return 0; } else { wwarning(_("can't convert \"%s\" to boolean"), val); /* We return False if we can't convert to BOOLEAN. * This is because all options defaults to False. * -1 is not checked and thus is interpreted as True, * which is not good.*/ return 0; } } /* WARNING: Do not free the value returned by this function!! */ static char *getString(WMPropList * key, WMPropList * value) { if (!WMIsPLString(value)) { wwarning(_("Wrong option format for key \"%s\". Should be %s."), WMGetFromPLString(key), "String"); return NULL; } return WMGetFromPLString(value); } WindowMaker-0.95.5/src/stacking.h0000644000175000017500000000264112214432632013527 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMSTACKING_H_ #define WMSTACKING_H_ void wRaiseFrame(WCoreWindow *frame); void wLowerFrame(WCoreWindow *frame); void wRaiseLowerFrame(WCoreWindow *frame); void AddToStackList(WCoreWindow *frame); void MoveInStackListAbove(WCoreWindow *next, WCoreWindow *frame); void MoveInStackListUnder(WCoreWindow *prev, WCoreWindow *frame); void RemoveFromStackList(WCoreWindow *frame); void ChangeStackingLevel(WCoreWindow *frame, int new_level); void RemakeStackList(WScreen *scr); void CommitStacking(WScreen *scr); void CommitStackingForFrame(WCoreWindow *frame); void CommitStackingForWindow(WCoreWindow * frame); #endif WindowMaker-0.95.5/src/misc.c0000644000175000017500000005453012214432632012656 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "window.h" #include "misc.h" #include "WindowMaker.h" #include "GNUstep.h" #include "screen.h" #include "wcore.h" #include "window.h" #include "framewin.h" #include "dialog.h" #include "xutil.h" #include "xmodifier.h" #define ICON_SIZE wPreferences.icon_size /**** Local prototypes *****/ static void UnescapeWM_CLASS(const char *str, char **name, char **class); /* XFetchName Wrapper */ Bool wFetchName(Display *dpy, Window win, char **winname) { XTextProperty text_prop; char **list; int num; if (XGetWMName(dpy, win, &text_prop)) { if (text_prop.value && text_prop.nitems > 0) { if (text_prop.encoding == XA_STRING) { *winname = wstrdup((char *)text_prop.value); XFree(text_prop.value); } else { text_prop.nitems = strlen((char *)text_prop.value); if (XmbTextPropertyToTextList(dpy, &text_prop, &list, &num) >= Success && num > 0 && *list) { XFree(text_prop.value); *winname = wstrdup(*list); XFreeStringList(list); } else { *winname = wstrdup((char *)text_prop.value); XFree(text_prop.value); } } } else { /* the title is set, but it was set to none */ *winname = wstrdup(""); } return True; } else { /* the hint is probably not set */ *winname = NULL; return False; } } /* XGetIconName Wrapper */ Bool wGetIconName(Display *dpy, Window win, char **iconname) { XTextProperty text_prop; char **list; int num; if (XGetWMIconName(dpy, win, &text_prop) != 0 && text_prop.value && text_prop.nitems > 0) { if (text_prop.encoding == XA_STRING) *iconname = (char *)text_prop.value; else { text_prop.nitems = strlen((char *)text_prop.value); if (XmbTextPropertyToTextList(dpy, &text_prop, &list, &num) >= Success && num > 0 && *list) { XFree(text_prop.value); *iconname = wstrdup(*list); XFreeStringList(list); } else *iconname = (char *)text_prop.value; } return True; } *iconname = NULL; return False; } static void eatExpose(void) { XEvent event, foo; /* compress all expose events into a single one */ if (XCheckMaskEvent(dpy, ExposureMask, &event)) { /* ignore other exposure events for this window */ while (XCheckWindowEvent(dpy, event.xexpose.window, ExposureMask, &foo)) ; /* eat exposes for other windows */ eatExpose(); event.xexpose.count = 0; XPutBackEvent(dpy, &event); } } void move_window(Window win, int from_x, int from_y, int to_x, int to_y) { #ifdef ANIMATIONS if (wPreferences.no_animations) XMoveWindow(dpy, win, to_x, to_y); else SlideWindow(win, from_x, from_y, to_x, to_y); #else XMoveWindow(dpy, win, to_x, to_y); #endif } void SlideWindow(Window win, int from_x, int from_y, int to_x, int to_y) { Window *wins[1] = { &win }; SlideWindows(wins, 1, from_x, from_y, to_x, to_y); } /* wins is an array of Window, sorted from left to right, the first is * going to be moved from (from_x,from_y) to (to_x,to_y) and the * following windows are going to be offset by (ICON_SIZE*i,0) */ void SlideWindows(Window *wins[], int n, int from_x, int from_y, int to_x, int to_y) { time_t time0 = time(NULL); float dx, dy, x = from_x, y = from_y, px, py; Bool is_dx_nul, is_dy_nul; int dx_is_bigger = 0, dx_int, dy_int; int slide_delay, slide_steps, slide_slowdown; int i; /* animation parameters */ static const struct { int delay; int steps; int slowdown; } apars[5] = { {ICON_SLIDE_DELAY_UF, ICON_SLIDE_STEPS_UF, ICON_SLIDE_SLOWDOWN_UF}, {ICON_SLIDE_DELAY_F, ICON_SLIDE_STEPS_F, ICON_SLIDE_SLOWDOWN_F}, {ICON_SLIDE_DELAY_M, ICON_SLIDE_STEPS_M, ICON_SLIDE_SLOWDOWN_M}, {ICON_SLIDE_DELAY_S, ICON_SLIDE_STEPS_S, ICON_SLIDE_SLOWDOWN_S}, {ICON_SLIDE_DELAY_US, ICON_SLIDE_STEPS_US, ICON_SLIDE_SLOWDOWN_US} }; slide_slowdown = apars[(int)wPreferences.icon_slide_speed].slowdown; slide_steps = apars[(int)wPreferences.icon_slide_speed].steps; slide_delay = apars[(int)wPreferences.icon_slide_speed].delay; dx_int = to_x - from_x; dy_int = to_y - from_y; is_dx_nul = (dx_int == 0); is_dy_nul = (dy_int == 0); dx = (float) dx_int; dy = (float) dy_int; if (abs(dx_int) > abs(dy_int)) { dx_is_bigger = 1; } if (dx_is_bigger) { px = dx / slide_slowdown; if (px < slide_steps && px > 0) px = slide_steps; else if (px > -slide_steps && px < 0) px = -slide_steps; py = (is_dx_nul ? 0.0 : px * dy / dx); } else { py = dy / slide_slowdown; if (py < slide_steps && py > 0) py = slide_steps; else if (py > -slide_steps && py < 0) py = -slide_steps; px = (is_dy_nul ? 0.0 : py * dx / dy); } while (((int)x) != to_x || ((int)y) != to_y) { x += px; y += py; if ((px < 0 && (int)x < to_x) || (px > 0 && (int)x > to_x)) x = (float)to_x; if ((py < 0 && (int)y < to_y) || (py > 0 && (int)y > to_y)) y = (float)to_y; if (dx_is_bigger) { px = px * (1.0 - 1 / (float)slide_slowdown); if (px < slide_steps && px > 0) px = slide_steps; else if (px > -slide_steps && px < 0) px = -slide_steps; py = (is_dx_nul ? 0.0 : px * dy / dx); } else { py = py * (1.0 - 1 / (float)slide_slowdown); if (py < slide_steps && py > 0) py = slide_steps; else if (py > -slide_steps && py < 0) py = -slide_steps; px = (is_dy_nul ? 0.0 : py * dx / dy); } for (i = 0; i < n; i++) { XMoveWindow(dpy, *wins[i], (int)x + i * ICON_SIZE, (int)y); } XFlush(dpy); if (slide_delay > 0) { wusleep(slide_delay * 1000L); } else { wusleep(10); } if (time(NULL) - time0 > MAX_ANIMATION_TIME) break; } for (i = 0; i < n; i++) { XMoveWindow(dpy, *wins[i], to_x + i * ICON_SIZE, to_y); } XSync(dpy, 0); /* compress expose events */ eatExpose(); } char *ShrinkString(WMFont *font, const char *string, int width) { int w, w1 = 0; int p; char *pos; char *text; int p1, p2, t; p = strlen(string); w = WMWidthOfString(font, string, p); text = wmalloc(strlen(string) + 8); strcpy(text, string); if (w <= width) return text; pos = strchr(text, ' '); if (!pos) pos = strchr(text, ':'); if (pos) { *pos = 0; p = strlen(text); w1 = WMWidthOfString(font, text, p); if (w1 > width) { w1 = 0; p = 0; *pos = ' '; *text = 0; } else { *pos = 0; width -= w1; p++; } string += p; p = strlen(string); } else { *text = 0; } strcat(text, "..."); width -= WMWidthOfString(font, "...", 3); p1 = 0; p2 = p; t = (p2 - p1) / 2; while (p2 > p1 && p1 != t) { w = WMWidthOfString(font, &string[p - t], t); if (w > width) { p2 = t; t = p1 + (p2 - p1) / 2; } else if (w < width) { p1 = t; t = p1 + (p2 - p1) / 2; } else p2 = p1 = t; } strcat(text, &string[p - p1]); return text; } char *FindImage(const char *paths, const char *file) { char *tmp, *path = NULL; tmp = strrchr(file, ':'); if (tmp) { *tmp = 0; path = wfindfile(paths, file); *tmp = ':'; } if (!tmp || !path) path = wfindfile(paths, file); return path; } static void timeoutHandler(void *data) { *(int *)data = 1; } static char *getTextSelection(WScreen * screen, Atom selection) { int buffer = -1; switch (selection) { case XA_CUT_BUFFER0: buffer = 0; break; case XA_CUT_BUFFER1: buffer = 1; break; case XA_CUT_BUFFER2: buffer = 2; break; case XA_CUT_BUFFER3: buffer = 3; break; case XA_CUT_BUFFER4: buffer = 4; break; case XA_CUT_BUFFER5: buffer = 5; break; case XA_CUT_BUFFER6: buffer = 6; break; case XA_CUT_BUFFER7: buffer = 7; break; } if (buffer >= 0) { char *data; int size; data = XFetchBuffer(dpy, &size, buffer); return data; } else { char *data; int bits; Atom rtype; unsigned long len, bytes; WMHandlerID timer; int timeout = 0; XEvent ev; static Atom clipboard = 0; if (!clipboard) clipboard = XInternAtom(dpy, "CLIPBOARD", False); XDeleteProperty(dpy, screen->info_window, clipboard); XConvertSelection(dpy, selection, XA_STRING, clipboard, screen->info_window, CurrentTime); timer = WMAddTimerHandler(1000, timeoutHandler, &timeout); while (!XCheckTypedWindowEvent(dpy, screen->info_window, SelectionNotify, &ev) && !timeout) ; if (!timeout) { WMDeleteTimerHandler(timer); } else { wwarning("selection retrieval timed out"); return NULL; } /* nobody owns the selection or the current owner has * nothing to do with what we need */ if (ev.xselection.property == None) { return NULL; } if (XGetWindowProperty(dpy, screen->info_window, clipboard, 0, 1024, False, XA_STRING, &rtype, &bits, &len, &bytes, (unsigned char **)&data) != Success) { return NULL; } if (rtype != XA_STRING || bits != 8) { wwarning("invalid data in text selection"); if (data) XFree(data); return NULL; } return data; } } static char *getselection(WScreen * scr) { char *tmp; tmp = getTextSelection(scr, XA_PRIMARY); if (!tmp) tmp = getTextSelection(scr, XA_CUT_BUFFER0); return tmp; } static char* parseuserinputpart(const char *line, int *ptr, const char *endchars) { int depth = 0, begin; char *value = NULL; begin = ++*ptr; while(line[*ptr] != '\0') { if(line[*ptr] == '(') { ++depth; } else if(depth > 0 && line[*ptr] == ')') { --depth; } else if(depth == 0 && strchr(endchars, line[*ptr]) != NULL) { value = wmalloc(*ptr - begin + 1); strncpy(value, line + begin, *ptr - begin); value[*ptr - begin] = '\0'; break; } ++*ptr; } return value; } static char* getuserinput(WScreen *scr, const char *line, int *ptr, Bool advanced) { char *ret = NULL, *title = NULL, *prompt = NULL, *name = NULL; int rv; if(line[*ptr] == '(') title = parseuserinputpart(line, ptr, ",)"); if(title != NULL && line[*ptr] == ',') prompt = parseuserinputpart(line, ptr, ",)"); if(prompt != NULL && line[*ptr] == ',') name = parseuserinputpart(line, ptr, ")"); if(advanced) rv = wAdvancedInputDialog(scr, title ? _(title):_("Program Arguments"), prompt ? _(prompt):_("Enter command arguments:"), name, &ret); else rv = wInputDialog(scr, title ? _(title):_("Program Arguments"), prompt ? _(prompt):_("Enter command arguments:"), &ret); if(title) wfree(title); if(prompt) wfree(prompt); if(name) wfree(name); return rv ? ret : NULL; } #define S_NORMAL 0 #define S_ESCAPE 1 #define S_OPTION 2 /* * state input new-state output * NORMAL % OPTION * NORMAL \ ESCAPE * NORMAL etc. NORMAL * ESCAPE any NORMAL * OPTION s NORMAL * OPTION w NORMAL * OPTION a NORMAL * OPTION d NORMAL * OPTION W NORMAL * OPTION etc. NORMAL % */ #define TMPBUFSIZE 64 char *ExpandOptions(WScreen *scr, const char *cmdline) { int ptr, optr, state, len, olen; char *out, *nout; char *selection = NULL; char *user_input = NULL; #ifdef XDND char *dropped_thing = NULL; #endif char tmpbuf[TMPBUFSIZE]; int slen; len = strlen(cmdline); olen = len + 1; out = malloc(olen); if (!out) { wwarning(_("out of memory during expansion of \"%s\""), cmdline); return NULL; } *out = 0; ptr = 0; /* input line pointer */ optr = 0; /* output line pointer */ state = S_NORMAL; while (ptr < len) { switch (state) { case S_NORMAL: switch (cmdline[ptr]) { case '\\': state = S_ESCAPE; break; case '%': state = S_OPTION; break; default: state = S_NORMAL; out[optr++] = cmdline[ptr]; break; } break; case S_ESCAPE: switch (cmdline[ptr]) { case 'n': out[optr++] = 10; break; case 'r': out[optr++] = 13; break; case 't': out[optr++] = 9; break; default: out[optr++] = cmdline[ptr]; } state = S_NORMAL; break; case S_OPTION: state = S_NORMAL; switch (cmdline[ptr]) { case 'w': if (scr->focused_window && scr->focused_window->flags.focused) { snprintf(tmpbuf, sizeof(tmpbuf), "0x%x", (unsigned int)scr->focused_window->client_win); slen = strlen(tmpbuf); olen += slen; nout = realloc(out, olen); if (!nout) { wwarning(_("out of memory during expansion of \"%%w\"")); goto error; } out = nout; strcat(out, tmpbuf); optr += slen; } else { out[optr++] = ' '; } break; case 'W': snprintf(tmpbuf, sizeof(tmpbuf), "0x%x", (unsigned int)scr->current_workspace + 1); slen = strlen(tmpbuf); olen += slen; nout = realloc(out, olen); if (!nout) { wwarning(_("out of memory during expansion of \"%%W\"")); goto error; } out = nout; strcat(out, tmpbuf); optr += slen; break; case 'a': case 'A': ptr++; user_input = getuserinput(scr, cmdline, &ptr, cmdline[ptr-1] == 'A'); if (user_input) { slen = strlen(user_input); olen += slen; nout = realloc(out, olen); if (!nout) { wwarning(_("out of memory during expansion of \"%%a\"")); goto error; } out = nout; strcat(out, user_input); optr += slen; } else { /* Not an error, but user has Canceled the dialog box. * This will make the command to not be performed. */ goto error; } break; #ifdef XDND case 'd': if (scr->xdestring) { dropped_thing = wstrdup(scr->xdestring); } if (!dropped_thing) { dropped_thing = get_dnd_selection(scr); } if (!dropped_thing) { scr->flags.dnd_data_convertion_status = 1; goto error; } slen = strlen(dropped_thing); olen += slen; nout = realloc(out, olen); if (!nout) { wwarning(_("out of memory during expansion of \"%%d\"")); goto error; } out = nout; strcat(out, dropped_thing); optr += slen; break; #endif /* XDND */ case 's': if (!selection) { selection = getselection(scr); } if (!selection) { wwarning(_("selection not available")); goto error; } slen = strlen(selection); olen += slen; nout = realloc(out, olen); if (!nout) { wwarning(_("out of memory during expansion of \"%%s\"")); goto error; } out = nout; strcat(out, selection); optr += slen; break; default: out[optr++] = '%'; out[optr++] = cmdline[ptr]; } break; } out[optr] = 0; ptr++; } if (selection) XFree(selection); return out; error: wfree(out); if (selection) XFree(selection); return NULL; } void ParseWindowName(WMPropList *value, char **winstance, char **wclass, const char *where) { char *name; *winstance = *wclass = NULL; if (!WMIsPLString(value)) { wwarning(_("bad window name value in %s state info"), where); return; } name = WMGetFromPLString(value); if (!name || strlen(name) == 0) { wwarning(_("bad window name value in %s state info"), where); return; } UnescapeWM_CLASS(name, winstance, wclass); } #if 0 static char *keysymToString(KeySym keysym, unsigned int state) { XKeyEvent kev; char *buf = wmalloc(20); int count; kev.display = dpy; kev.type = KeyPress; kev.send_event = False; kev.window = DefaultRootWindow(dpy); kev.root = DefaultRootWindow(dpy); kev.same_screen = True; kev.subwindow = kev.root; kev.serial = 0x12344321; kev.time = CurrentTime; kev.state = state; kev.keycode = XKeysymToKeycode(dpy, keysym); count = XLookupString(&kev, buf, 19, NULL, NULL); buf[count] = 0; return buf; } #endif char *GetShortcutString(const char *shortcut) { char *buffer = NULL; char *k; int modmask = 0; /* KeySym ksym; */ int control = 0; char *tmp, *text; tmp = text = wstrdup(shortcut); /* get modifiers */ while ((k = strchr(text, '+')) != NULL) { int mod; *k = 0; mod = wXModifierFromKey(text); if (mod < 0) { return wstrdup("bug"); } modmask |= mod; if (strcasecmp(text, "Meta") == 0) { buffer = wstrappend(buffer, "M+"); } else if (strcasecmp(text, "Alt") == 0) { buffer = wstrappend(buffer, "A+"); } else if (strcasecmp(text, "Shift") == 0) { buffer = wstrappend(buffer, "Sh+"); } else if (strcasecmp(text, "Mod1") == 0) { buffer = wstrappend(buffer, "M1+"); } else if (strcasecmp(text, "Mod2") == 0) { buffer = wstrappend(buffer, "M2+"); } else if (strcasecmp(text, "Mod3") == 0) { buffer = wstrappend(buffer, "M3+"); } else if (strcasecmp(text, "Mod4") == 0) { buffer = wstrappend(buffer, "M4+"); } else if (strcasecmp(text, "Mod5") == 0) { buffer = wstrappend(buffer, "M5+"); } else if (strcasecmp(text, "Control") == 0) { control = 1; } else { buffer = wstrappend(buffer, text); } text = k + 1; } if (control) { buffer = wstrappend(buffer, "^"); } buffer = wstrappend(buffer, text); /* get key */ /* ksym = XStringToKeysym(text); tmp = keysymToString(ksym, modmask); puts(tmp); buffer = wstrappend(buffer, tmp); */ wfree(tmp); return buffer; } char *GetShortcutKey(WShortKey key) { char *tmp = NULL; char *k = XKeysymToString(XkbKeycodeToKeysym(dpy, key.keycode, 0, 0)); if (!k) return NULL; char **m = wPreferences.modifier_labels; if (key.modifier & ControlMask) tmp = wstrappend(tmp, m[1] ? m[1] : "Ctrl+"); if (key.modifier & ShiftMask) tmp = wstrappend(tmp, m[0] ? m[0] : "Shift+"); if (key.modifier & Mod1Mask) tmp = wstrappend(tmp, m[2] ? m[2] : "Mod1+"); if (key.modifier & Mod2Mask) tmp = wstrappend(tmp, m[3] ? m[3] : "Mod2+"); if (key.modifier & Mod3Mask) tmp = wstrappend(tmp, m[4] ? m[4] : "Mod3+"); if (key.modifier & Mod4Mask) tmp = wstrappend(tmp, m[5] ? m[5] : "Mod4+"); if (key.modifier & Mod5Mask) tmp = wstrappend(tmp, m[6] ? m[6] : "Mod5+"); tmp = wstrappend(tmp, k); return GetShortcutString(tmp); } char *EscapeWM_CLASS(const char *name, const char *class) { char *ret; char *ename = NULL, *eclass = NULL; int i, j, l; if (!name && !class) return NULL; if (name) { l = strlen(name); ename = wmalloc(l * 2 + 1); j = 0; for (i = 0; i < l; i++) { if (name[i] == '\\') { ename[j++] = '\\'; } else if (name[i] == '.') { ename[j++] = '\\'; } ename[j++] = name[i]; } ename[j] = 0; } if (class) { l = strlen(class); eclass = wmalloc(l * 2 + 1); j = 0; for (i = 0; i < l; i++) { if (class[i] == '\\') { eclass[j++] = '\\'; } else if (class[i] == '.') { eclass[j++] = '\\'; } eclass[j++] = class[i]; } eclass[j] = 0; } if (ename && eclass) { int len = strlen(ename) + strlen(eclass) + 4; ret = wmalloc(len); snprintf(ret, len, "%s.%s", ename, eclass); wfree(ename); wfree(eclass); } else if (ename) { ret = wstrdup(ename); wfree(ename); } else { ret = wstrdup(eclass); wfree(eclass); } return ret; } static void UnescapeWM_CLASS(const char *str, char **name, char **class) { int i, j, k, dot; j = strlen(str); *name = wmalloc(j); **name = 0; *class = wmalloc(j); **class = 0; /* separate string in 2 parts */ dot = -1; for (i = 0; i < j; i++) { if (str[i] == '\\') { i++; continue; } else if (str[i] == '.') { dot = i; break; } } /* unescape strings */ for (i = 0, k = 0; i < dot; i++) { if (str[i] == '\\') { continue; } else { (*name)[k++] = str[i]; } } (*name)[k] = 0; for (i = dot + 1, k = 0; i < j; i++) { if (str[i] == '\\') { continue; } else { (*class)[k++] = str[i]; } } (*class)[k] = 0; if (!*name) { wfree(*name); *name = NULL; } if (!*class) { wfree(*class); *class = NULL; } } void SendHelperMessage(WScreen *scr, char type, int workspace, const char *msg) { char *buffer; int len; int i; char buf[16]; if (!scr->flags.backimage_helper_launched) { return; } len = (msg ? strlen(msg) : 0) + (workspace >= 0 ? 4 : 0) + 1; buffer = wmalloc(len + 5); snprintf(buf, sizeof(buf), "%4i", len); memcpy(buffer, buf, 4); buffer[4] = type; i = 5; if (workspace >= 0) { snprintf(buf, sizeof(buf), "%4i", workspace); memcpy(&buffer[i], buf, 4); i += 4; buffer[i] = 0; } if (msg) strcpy(&buffer[i], msg); if (write(scr->helper_fd, buffer, len + 4) < 0) { werror(_("could not send message to background image helper")); } wfree(buffer); } Bool UpdateDomainFile(WDDomain * domain) { struct stat stbuf; char path[PATH_MAX]; WMPropList *shared_dict, *dict; Bool result, freeDict = False; dict = domain->dictionary; if (WMIsPLDictionary(domain->dictionary)) { /* retrieve global system dictionary */ snprintf(path, sizeof(path), "%s/WindowMaker/%s", SYSCONFDIR, domain->domain_name); if (stat(path, &stbuf) >= 0) { shared_dict = WMReadPropListFromFile(path); if (shared_dict) { if (WMIsPLDictionary(shared_dict)) { freeDict = True; dict = WMDeepCopyPropList(domain->dictionary); WMSubtractPLDictionaries(dict, shared_dict, True); } WMReleasePropList(shared_dict); } } } result = WMWritePropListToFile(dict, domain->path); if (freeDict) { WMReleasePropList(dict); } return result; } char *StrConcatDot(const char *a, const char *b) { int len; char *str; if (!a) a = ""; if (!b) b = ""; len = strlen(a) + strlen(b) + 4; str = wmalloc(len); snprintf(str, len, "%s.%s", a, b); return str; } static char *getCommandForWindow(Window win, int elements) { char **argv, *command = NULL; int argc; if (XGetCommand(dpy, win, &argv, &argc)) { if (argc > 0 && argv != NULL) { if (elements == 0) elements = argc; command = wtokenjoin(argv, WMIN(argc, elements)); if (command[0] == 0) { wfree(command); command = NULL; } } if (argv) { XFreeStringList(argv); } } return command; } /* Free result when done */ char *GetCommandForWindow(Window win) { return getCommandForWindow(win, 0); } WindowMaker-0.95.5/src/texture.c0000644000175000017500000003531512214432632013423 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include "WindowMaker.h" #include "texture.h" #include "window.h" #include "misc.h" static void bevelImage(RImage * image, int relief); static RImage * get_texture_image(WScreen *scr, const char *pixmap_file); WTexSolid *wTextureMakeSolid(WScreen * scr, XColor * color) { WTexSolid *texture; int gcm; XGCValues gcv; texture = wmalloc(sizeof(WTexture)); texture->type = WTEX_SOLID; texture->subtype = 0; XAllocColor(dpy, scr->w_colormap, color); texture->normal = *color; if (color->red == 0 && color->blue == 0 && color->green == 0) { texture->light.red = 0xb6da; texture->light.green = 0xb6da; texture->light.blue = 0xb6da; texture->dim.red = 0x6185; texture->dim.green = 0x6185; texture->dim.blue = 0x6185; } else { RColor rgb; RHSVColor hsv, hsv2; int v; rgb.red = color->red >> 8; rgb.green = color->green >> 8; rgb.blue = color->blue >> 8; RRGBtoHSV(&rgb, &hsv); RHSVtoRGB(&hsv, &rgb); hsv2 = hsv; v = hsv.value * 16 / 10; hsv.value = (v > 255 ? 255 : v); RHSVtoRGB(&hsv, &rgb); texture->light.red = rgb.red << 8; texture->light.green = rgb.green << 8; texture->light.blue = rgb.blue << 8; hsv2.value = hsv2.value / 2; RHSVtoRGB(&hsv2, &rgb); texture->dim.red = rgb.red << 8; texture->dim.green = rgb.green << 8; texture->dim.blue = rgb.blue << 8; } texture->dark.red = 0; texture->dark.green = 0; texture->dark.blue = 0; XAllocColor(dpy, scr->w_colormap, &texture->light); XAllocColor(dpy, scr->w_colormap, &texture->dim); XAllocColor(dpy, scr->w_colormap, &texture->dark); gcm = GCForeground | GCBackground | GCGraphicsExposures; gcv.graphics_exposures = False; gcv.background = gcv.foreground = texture->light.pixel; texture->light_gc = XCreateGC(dpy, scr->w_win, gcm, &gcv); gcv.background = gcv.foreground = texture->dim.pixel; texture->dim_gc = XCreateGC(dpy, scr->w_win, gcm, &gcv); gcv.background = gcv.foreground = texture->dark.pixel; texture->dark_gc = XCreateGC(dpy, scr->w_win, gcm, &gcv); gcv.background = gcv.foreground = color->pixel; texture->normal_gc = XCreateGC(dpy, scr->w_win, gcm, &gcv); return texture; } static int dummyErrorHandler(Display * foo, XErrorEvent * bar) { return 0; } void wTextureDestroy(WScreen * scr, WTexture * texture) { int i; int count = 0; unsigned long colors[8]; /* * some stupid servers don't like white or black being freed... */ #define CANFREE(c) (c!=scr->black_pixel && c!=scr->white_pixel && c!=0) switch (texture->any.type) { case WTEX_SOLID: XFreeGC(dpy, texture->solid.light_gc); XFreeGC(dpy, texture->solid.dark_gc); XFreeGC(dpy, texture->solid.dim_gc); if (CANFREE(texture->solid.light.pixel)) colors[count++] = texture->solid.light.pixel; if (CANFREE(texture->solid.dim.pixel)) colors[count++] = texture->solid.dim.pixel; if (CANFREE(texture->solid.dark.pixel)) colors[count++] = texture->solid.dark.pixel; break; case WTEX_PIXMAP: RReleaseImage(texture->pixmap.pixmap); break; case WTEX_MHGRADIENT: case WTEX_MVGRADIENT: case WTEX_MDGRADIENT: for (i = 0; texture->mgradient.colors[i] != NULL; i++) { wfree(texture->mgradient.colors[i]); } wfree(texture->mgradient.colors); break; case WTEX_THGRADIENT: case WTEX_TVGRADIENT: case WTEX_TDGRADIENT: RReleaseImage(texture->tgradient.pixmap); break; } if (CANFREE(texture->any.color.pixel)) colors[count++] = texture->any.color.pixel; if (count > 0) { XErrorHandler oldhandler; /* ignore error from buggy servers that don't know how * to do reference counting for colors. */ XSync(dpy, 0); oldhandler = XSetErrorHandler(dummyErrorHandler); XFreeColors(dpy, scr->w_colormap, colors, count, 0); XSync(dpy, 0); XSetErrorHandler(oldhandler); } XFreeGC(dpy, texture->any.gc); wfree(texture); #undef CANFREE } WTexGradient *wTextureMakeGradient(WScreen *scr, int style, const RColor *from, const RColor *to) { WTexGradient *texture; XGCValues gcv; texture = wmalloc(sizeof(WTexture)); texture->type = style; texture->subtype = 0; texture->color1 = *from; texture->color2 = *to; texture->normal.red = (from->red + to->red) << 7; texture->normal.green = (from->green + to->green) << 7; texture->normal.blue = (from->blue + to->blue) << 7; XAllocColor(dpy, scr->w_colormap, &texture->normal); gcv.background = gcv.foreground = texture->normal.pixel; gcv.graphics_exposures = False; texture->normal_gc = XCreateGC(dpy, scr->w_win, GCForeground | GCBackground | GCGraphicsExposures, &gcv); return texture; } WTexIGradient *wTextureMakeIGradient(WScreen *scr, int thickness1, const RColor colors1[2], int thickness2, const RColor colors2[2]) { WTexIGradient *texture; XGCValues gcv; int i; texture = wmalloc(sizeof(WTexture)); texture->type = WTEX_IGRADIENT; for (i = 0; i < 2; i++) { texture->colors1[i] = colors1[i]; texture->colors2[i] = colors2[i]; } texture->thickness1 = thickness1; texture->thickness2 = thickness2; if (thickness1 >= thickness2) { texture->normal.red = (colors1[0].red + colors1[1].red) << 7; texture->normal.green = (colors1[0].green + colors1[1].green) << 7; texture->normal.blue = (colors1[0].blue + colors1[1].blue) << 7; } else { texture->normal.red = (colors2[0].red + colors2[1].red) << 7; texture->normal.green = (colors2[0].green + colors2[1].green) << 7; texture->normal.blue = (colors2[0].blue + colors2[1].blue) << 7; } XAllocColor(dpy, scr->w_colormap, &texture->normal); gcv.background = gcv.foreground = texture->normal.pixel; gcv.graphics_exposures = False; texture->normal_gc = XCreateGC(dpy, scr->w_win, GCForeground | GCBackground | GCGraphicsExposures, &gcv); return texture; } WTexMGradient *wTextureMakeMGradient(WScreen * scr, int style, RColor ** colors) { WTexMGradient *texture; XGCValues gcv; int i; texture = wmalloc(sizeof(WTexture)); texture->type = style; texture->subtype = 0; i = 0; while (colors[i] != NULL) i++; i--; texture->normal.red = (colors[0]->red << 8); texture->normal.green = (colors[0]->green << 8); texture->normal.blue = (colors[0]->blue << 8); texture->colors = colors; XAllocColor(dpy, scr->w_colormap, &texture->normal); gcv.background = gcv.foreground = texture->normal.pixel; gcv.graphics_exposures = False; texture->normal_gc = XCreateGC(dpy, scr->w_win, GCForeground | GCBackground | GCGraphicsExposures, &gcv); return texture; } WTexPixmap *wTextureMakePixmap(WScreen *scr, int style, const char *pixmap_file, XColor *color) { WTexPixmap *texture; XGCValues gcv; RImage *image; image = get_texture_image(scr, pixmap_file); if (!image) return NULL; texture = wmalloc(sizeof(WTexture)); texture->type = WTEX_PIXMAP; texture->subtype = style; texture->normal = *color; XAllocColor(dpy, scr->w_colormap, &texture->normal); gcv.background = gcv.foreground = texture->normal.pixel; gcv.graphics_exposures = False; texture->normal_gc = XCreateGC(dpy, scr->w_win, GCForeground | GCBackground | GCGraphicsExposures, &gcv); texture->pixmap = image; return texture; } WTexTGradient *wTextureMakeTGradient(WScreen *scr, int style, const RColor *from, const RColor *to, const char *pixmap_file, int opacity) { WTexTGradient *texture; XGCValues gcv; RImage *image; image = get_texture_image(scr, pixmap_file); if (!image) return NULL; texture = wmalloc(sizeof(WTexture)); texture->type = style; texture->opacity = opacity; texture->color1 = *from; texture->color2 = *to; texture->normal.red = (from->red + to->red) << 7; texture->normal.green = (from->green + to->green) << 7; texture->normal.blue = (from->blue + to->blue) << 7; XAllocColor(dpy, scr->w_colormap, &texture->normal); gcv.background = gcv.foreground = texture->normal.pixel; gcv.graphics_exposures = False; texture->normal_gc = XCreateGC(dpy, scr->w_win, GCForeground | GCBackground | GCGraphicsExposures, &gcv); texture->pixmap = image; return texture; } static RImage * get_texture_image(WScreen *scr, const char *pixmap_file) { char *file; RImage *image; file = FindImage(wPreferences.pixmap_path, pixmap_file); if (!file) { wwarning(_("image file \"%s\" used as texture could not be found."), pixmap_file); return NULL; } image = RLoadImage(scr->rcontext, file, 0); if (!image) { wwarning(_("could not load texture pixmap \"%s\":%s"), file, RMessageForError(RErrorCode)); wfree(file); return NULL; } wfree(file); return image; } RImage *wTextureRenderImage(WTexture * texture, int width, int height, int relief) { RImage *image = NULL; RColor color1; int d; int subtype; switch (texture->any.type) { case WTEX_SOLID: image = RCreateImage(width, height, False); color1.red = texture->solid.normal.red >> 8; color1.green = texture->solid.normal.green >> 8; color1.blue = texture->solid.normal.blue >> 8; color1.alpha = 255; RClearImage(image, &color1); break; case WTEX_PIXMAP: if (texture->pixmap.subtype == WTP_TILE) { image = RMakeTiledImage(texture->pixmap.pixmap, width, height); } else if (texture->pixmap.subtype == WTP_CENTER) { color1.red = texture->pixmap.normal.red >> 8; color1.green = texture->pixmap.normal.green >> 8; color1.blue = texture->pixmap.normal.blue >> 8; color1.alpha = 255; image = RMakeCenteredImage(texture->pixmap.pixmap, width, height, &color1); } else { image = RScaleImage(texture->pixmap.pixmap, width, height); } break; case WTEX_IGRADIENT: image = RRenderInterwovenGradient(width, height, texture->igradient.colors1, texture->igradient.thickness1, texture->igradient.colors2, texture->igradient.thickness2); break; case WTEX_HGRADIENT: subtype = RGRD_HORIZONTAL; goto render_gradient; case WTEX_VGRADIENT: subtype = RGRD_VERTICAL; goto render_gradient; case WTEX_DGRADIENT: subtype = RGRD_DIAGONAL; render_gradient: image = RRenderGradient(width, height, &texture->gradient.color1, &texture->gradient.color2, subtype); break; case WTEX_MHGRADIENT: subtype = RGRD_HORIZONTAL; goto render_mgradient; case WTEX_MVGRADIENT: subtype = RGRD_VERTICAL; goto render_mgradient; case WTEX_MDGRADIENT: subtype = RGRD_DIAGONAL; render_mgradient: image = RRenderMultiGradient(width, height, &(texture->mgradient.colors[1]), subtype); break; case WTEX_THGRADIENT: subtype = RGRD_HORIZONTAL; goto render_tgradient; case WTEX_TVGRADIENT: subtype = RGRD_VERTICAL; goto render_tgradient; case WTEX_TDGRADIENT: subtype = RGRD_DIAGONAL; render_tgradient: { RImage *grad; image = RMakeTiledImage(texture->tgradient.pixmap, width, height); if (!image) break; grad = RRenderGradient(width, height, &texture->tgradient.color1, &texture->tgradient.color2, subtype); if (!grad) { RReleaseImage(image); image = NULL; break; } RCombineImagesWithOpaqueness(image, grad, texture->tgradient.opacity); RReleaseImage(grad); } break; default: puts("ERROR in wTextureRenderImage()"); image = NULL; break; } if (!image) { RColor gray; wwarning(_("could not render texture: %s"), RMessageForError(RErrorCode)); image = RCreateImage(width, height, False); if (image == NULL) { wwarning(_("could not allocate image buffer")); return NULL; } gray.red = 190; gray.green = 190; gray.blue = 190; gray.alpha = 255; RClearImage(image, &gray); } /* render bevel */ switch (relief) { case WREL_ICON: d = RBEV_RAISED3; break; case WREL_RAISED: d = RBEV_RAISED2; break; case WREL_SUNKEN: d = RBEV_SUNKEN; break; case WREL_FLAT: d = 0; break; case WREL_MENUENTRY: d = -WREL_MENUENTRY; break; default: d = 0; } if (d > 0) { RBevelImage(image, d); } else if (d < 0) { bevelImage(image, -d); } return image; } static void bevelImage(RImage * image, int relief) { int width = image->width; int height = image->height; RColor color; switch (relief) { case WREL_MENUENTRY: color.red = color.green = color.blue = 80; color.alpha = 0; /**/ ROperateLine(image, RAddOperation, 1, 0, width - 2, 0, &color); /**/ ROperateLine(image, RAddOperation, 0, 0, 0, height - 1, &color); color.red = color.green = color.blue = 40; color.alpha = 0; ROperateLine(image, RSubtractOperation, width - 1, 0, width - 1, height - 1, &color); /**/ ROperateLine(image, RSubtractOperation, 1, height - 2, width - 2, height - 2, &color); color.red = color.green = color.blue = 0; color.alpha = 255; RDrawLine(image, 0, height - 1, width - 1, height - 1, &color); /**/ break; } } void wDrawBevel(Drawable d, unsigned width, unsigned height, WTexSolid * texture, int relief) { GC light, dim, dark; XSegment segs[4]; if (relief == WREL_FLAT) return; light = texture->light_gc; dim = texture->dim_gc; dark = texture->dark_gc; switch (relief) { case WREL_FLAT: return; case WREL_MENUENTRY: case WREL_RAISED: case WREL_ICON: segs[0].x1 = 1; segs[0].x2 = width - 2; segs[0].y2 = segs[0].y1 = height - 2; segs[1].x1 = width - 2; segs[1].y1 = 1; segs[1].x2 = width - 2; segs[1].y2 = height - 2; if (wPreferences.new_style == TS_NEXT) { XDrawSegments(dpy, d, dark, segs, 2); } else { XDrawSegments(dpy, d, dim, segs, 2); } segs[0].x1 = 0; segs[0].x2 = width - 1; segs[0].y2 = segs[0].y1 = height - 1; segs[1].x1 = segs[1].x2 = width - 1; segs[1].y1 = 0; segs[1].y2 = height - 1; if (wPreferences.new_style == TS_NEXT) { XDrawSegments(dpy, d, light, segs, 2); } else { XDrawSegments(dpy, d, dark, segs, 2); } segs[0].x1 = segs[0].y1 = segs[0].y2 = 0; segs[0].x2 = width - 2; segs[1].x1 = segs[1].y1 = 0; segs[1].x2 = 0; segs[1].y2 = height - 2; if (wPreferences.new_style == TS_NEXT) { XDrawSegments(dpy, d, dark, segs, 2); } else { XDrawSegments(dpy, d, light, segs, 2); } if (relief == WREL_ICON) { segs[0].x1 = segs[0].y1 = segs[0].y2 = 1; segs[0].x2 = width - 2; segs[1].x1 = segs[1].y1 = 1; segs[1].x2 = 1; segs[1].y2 = height - 2; XDrawSegments(dpy, d, light, segs, 2); } break; } } WindowMaker-0.95.5/src/window.h0000644000175000017500000003047612214432632013242 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMWINDOW_H_ #define WMWINDOW_H_ #include #include "wconfig.h" #include "GNUstep.h" #include "texture.h" #include "menu.h" #include "application.h" /* not defined in my X11 headers */ #ifndef UrgencyHint #define UrgencyHint (1L << 8) #endif #define BORDER_TOP 1 #define BORDER_BOTTOM 2 #define BORDER_LEFT 4 #define BORDER_RIGHT 8 #define BORDER_ALL (1|2|4|8) #define CLIENT_EVENTS (StructureNotifyMask | PropertyChangeMask\ | EnterWindowMask | LeaveWindowMask | ColormapChangeMask \ | FocusChangeMask | VisibilityChangeMask) typedef enum { WFM_PASSIVE, WFM_NO_INPUT, WFM_LOCALLY_ACTIVE, WFM_GLOBALLY_ACTIVE } FocusMode; /* * window attribute flags. * * Note: attributes that should apply to the application as a * whole should only access the flags from app->main_window_desc->window_flags * This is to make sure that the application doesn't have many different * values for the same option. For example, imagine xfoo, which has * foo.bar as leader and it a child window named foo.baz. If you set * StartHidden YES for foo.bar and NO for foo.baz we must *always* guarantee * that the value that will be used will be that of the leader foo.bar. * The attributes inspector must always save application wide options * in the name of the leader window, not the child. * */ /* * All flags must have their default values = 0 * * New flag scheme: * * user_flags, defined_flags * client_flags * * if defined window_flag then window_flag else client_flag * */ #define WFLAGP(wwin, FLAG) ((wwin)->defined_user_flags.FLAG \ ? (wwin)->user_flags.FLAG \ : (wwin)->client_flags.FLAG) #define WSETUFLAG(wwin, FLAG, VAL) (wwin)->user_flags.FLAG = (VAL),\ (wwin)->defined_user_flags.FLAG = 1 typedef struct { /* OpenStep */ unsigned int no_titlebar:1; /* draw titlebar? */ unsigned int no_resizable:1; unsigned int no_closable:1; unsigned int no_miniaturizable:1; unsigned int no_border:1; /* 1 pixel border around window */ #ifdef XKB_BUTTON_HINT unsigned int no_language_button:1; #endif unsigned int no_movable:1; /* decorations */ unsigned int no_resizebar:1; /* draw the bottom handle? */ unsigned int no_close_button:1; /* draw a close button? */ unsigned int no_miniaturize_button:1; /* draw an iconify button? */ unsigned int broken_close:1; /* is the close button broken? */ /* ours */ unsigned int kill_close:1; /* can't send WM_DELETE_WINDOW */ unsigned int no_shadeable:1; unsigned int omnipresent:1; unsigned int skip_window_list:1; unsigned int skip_switchpanel:1; unsigned int floating:1; /* put in WMFloatingLevel */ unsigned int sunken:1; /* put in WMSunkenLevel */ unsigned int no_bind_keys:1; /* intercept wm kbd binds * while window is focused */ unsigned int no_bind_mouse:1; /* intercept mouse events * on client area while window * is focused */ unsigned int no_hide_others:1; /* hide window when doing hideothers */ unsigned int no_appicon:1; /* make app icon */ unsigned int shared_appicon:1; unsigned int dont_move_off:1; unsigned int no_focusable:1; unsigned int focus_across_wksp:1; /* let wmaker switch workspace to follow * a focus request */ unsigned int always_user_icon:1; /* ignore client IconPixmap or * IconWindow */ unsigned int start_miniaturized:1; unsigned int start_hidden:1; unsigned int start_maximized:1; unsigned int dont_save_session:1; /* do not save app's state in session */ unsigned int full_maximize:1; /* * emulate_app_icon must be automatically disabled for apps that can * generate their own appicons and for apps that have no_appicon=1 */ unsigned int emulate_appicon:1; } WWindowAttributes; /* * Window manager protocols that both the client as we understand. */ typedef struct { unsigned int TAKE_FOCUS:1; unsigned int DELETE_WINDOW:1; unsigned int SAVE_YOURSELF:1; /* WindowMaker specific */ unsigned int MINIATURIZE_WINDOW:1; } WProtocols; /* * Structure used for storing fake window group information */ typedef struct WFakeGroupLeader { char *identifier; Window leader; Window origLeader; int retainCount; } WFakeGroupLeader; /* * Stores client window information. Each client window has it's * structure created when it's being first mapped. */ typedef struct WWindow { struct WWindow *prev; /* window focus list */ struct WWindow *next; WScreen *screen_ptr; /* pointer to the screen structure */ WWindowAttributes user_flags; /* window attribute flags set by user */ WWindowAttributes defined_user_flags; /* mask for user_flags */ WWindowAttributes client_flags; /* window attribute flags set by app * initialized with global defaults */ struct InspectorPanel *inspector; /* pointer to attribute editor panel */ struct WFrameWindow *frame; /* the frame window */ int frame_x, frame_y; /* position of the frame in root*/ struct { int x, y; unsigned int width, height; /* original geometry of the window */ } old_geometry; /* (before things like maximize) */ struct { int x, y; unsigned int width, height; /* original geometry of the window */ } bfs_geometry; /* (before fullscreen) */ int maximus_x; /* size after Maximusizing */ int maximus_y; /* client window info */ short old_border_width; /* original border width of client_win*/ Window client_win; /* the window we're managing */ WObjDescriptor client_descriptor; /* dummy descriptor for client */ struct { int x, y; /* position of *client* relative * to root */ unsigned int width, height; /* size of the client window */ } client; XSizeHints *normal_hints; /* WM_NORMAL_HINTS */ XWMHints *wm_hints; /* WM_HINTS (optional) */ char *wm_instance; /* instance of WM_CLASS */ char *wm_class; /* class of WM_CLASS */ GNUstepWMAttributes *wm_gnustep_attr; /* GNUstep window attributes */ int state; /* state as in ICCCM */ Window transient_for; /* WM_TRANSIENT_FOR */ WFakeGroupLeader *fake_group; /* Fake group leader for grouping into * a single appicon */ Window group_id; /* the leader window of the group */ Window client_leader; /* WM_CLIENT_LEADER if not * internal_window */ Window main_window; /* main window for the application */ Window orig_main_window; /* original main window of application. * used for the shared appicon thing */ int cmap_window_no; Window *cmap_windows; /* protocols */ WProtocols protocols; /* accepted WM_PROTOCOLS */ FocusMode focus_mode; /* type of keyboard input focus */ long event_mask; /* the event mask thats selected */ /* state flags */ struct { unsigned int mapped:1; unsigned int focused:1; unsigned int miniaturized:1; unsigned int hidden:1; unsigned int shaded:1; unsigned int maximized:7; unsigned int old_maximized:7; unsigned int fullscreen:1; unsigned int omnipresent:1; unsigned int semi_focused:1; /* window type flags */ unsigned int urgent:1; /* if wm_hints says this is urgent */ #ifdef SHAPE unsigned int shaped:1; #endif /* info flags */ unsigned int is_gnustep:1; /* 1 if the window belongs to a GNUstep * app */ unsigned int is_dockapp:1; /* 1 if the window belongs to a DockApp */ unsigned int icon_moved:1; /* icon for this window was moved * by the user */ 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 obscured:1; /* window is obscured */ unsigned int net_skip_pager:1; unsigned int net_handle_icon:1; unsigned int net_show_desktop:1; unsigned int net_has_title:1; /* use netwm version of WM_NAME */ } flags; /* state of the window */ struct WIcon *icon; /* Window icon when miminized * else is NULL! */ int icon_x, icon_y; /* position of the icon */ int icon_w, icon_h; RImage *net_icon_image; /* Window Image */ Atom type; } WWindow; #define HAS_TITLEBAR(w) (!(WFLAGP((w), no_titlebar) || (w)->flags.fullscreen)) #define HAS_RESIZEBAR(w) (!(WFLAGP((w), no_resizebar) || (w)->flags.fullscreen)) #define HAS_BORDER(w) (!(WFLAGP((w), no_border) || (w)->flags.fullscreen)) #define IS_MOVABLE(w) (!(WFLAGP((w), no_movable) || (w)->flags.fullscreen)) #define IS_RESIZABLE(w) (!(WFLAGP((w), no_resizable) || (w)->flags.fullscreen)) #define IS_OMNIPRESENT(w) ((w)->flags.omnipresent | WFLAGP(w, omnipresent)) #define WINDOW_LEVEL(w) ((w)->frame->core->stacking->window_level) /* * Changes to this must update wWindowSaveState/getSavedState */ typedef struct WSavedState { int workspace; int miniaturized; int shaded; int hidden; int maximized; int x; /* original geometry of the */ int y; /* window if it's maximized */ unsigned int w; unsigned int h; unsigned window_shortcuts; /* mask like 1< #include #ifdef SHAPE #include #endif #ifdef KEEP_XKB_LOCK_STATUS #include #endif /* KEEP_XKB_LOCK_STATUS */ #include #include #include #include #include /* For getting mouse wheel mappings from WINGs */ #include #include "WindowMaker.h" #include "GNUstep.h" #include "wcore.h" #include "framewin.h" #include "texture.h" #include "window.h" #include "winspector.h" #include "icon.h" #include "properties.h" #include "actions.h" #include "client.h" #include "colormap.h" #include "keybind.h" #include "stacking.h" #include "defaults.h" #include "workspace.h" #include "xinerama.h" #include "appmenu.h" #include "appicon.h" #include "superfluous.h" #include "rootmenu.h" #include "placement.h" #include "misc.h" #include "startup.h" #include "winmenu.h" #include "osdep.h" #ifdef MWM_HINTS # include "motif.h" #endif #include "wmspec.h" #define MOD_MASK wPreferences.modifier_mask /****** Global Variables ******/ extern WShortKey wKeyBindings[WKBD_LAST]; #ifdef SHAPE extern Bool wShapeSupported; #endif /* contexts */ extern XContext wWinContext; /* protocol atoms */ extern Atom _XA_WM_DELETE_WINDOW; extern Atom _XA_GNUSTEP_WM_MINIATURIZE_WINDOW; extern Atom _XA_WINDOWMAKER_STATE; extern Time LastTimestamp; /***** Local Stuff *****/ static WWindowState *windowState = NULL; static FocusMode getFocusMode(WWindow *wwin); static int getSavedState(Window window, WSavedState **state); static void setupGNUstepHints(WWindow *wwin, GNUstepWMAttributes *gs_hints); /* frame window (during window grabs) */ static void frameMouseDown(WObjDescriptor *desc, XEvent *event); /* close button */ static void windowCloseClick(WCoreWindow *sender, void *data, XEvent *event); static void windowCloseDblClick(WCoreWindow *sender, void *data, XEvent *event); /* iconify button */ static void windowIconifyClick(WCoreWindow *sender, void *data, XEvent *event); #ifdef XKB_BUTTON_HINT static void windowLanguageClick(WCoreWindow *sender, void *data, XEvent *event); #endif static void titlebarMouseDown(WCoreWindow *sender, void *data, XEvent *event); static void titlebarDblClick(WCoreWindow *sender, void *data, XEvent *event); static void resizebarMouseDown(WCoreWindow *sender, void *data, XEvent *event); static void release_wwindowstate(WWindowState *wstate); /****** Notification Observers ******/ static void appearanceObserver(void *self, WMNotification * notif) { WWindow *wwin = (WWindow *) self; uintptr_t flags = (uintptr_t)WMGetNotificationClientData(notif); if (!wwin->frame || (!wwin->frame->titlebar && !wwin->frame->resizebar)) return; if (flags & WFontSettings) { wWindowConfigureBorders(wwin); if (wwin->flags.shaded) { wFrameWindowResize(wwin->frame, wwin->frame->core->width, wwin->frame->top_width - 1); wwin->client.y = wwin->frame_y - wwin->client.height + wwin->frame->top_width; wWindowSynthConfigureNotify(wwin); } } if (flags & WTextureSettings) wwin->frame->flags.need_texture_remake = 1; if (flags & (WTextureSettings | WColorSettings)) { if (wwin->frame->titlebar) XClearWindow(dpy, wwin->frame->titlebar->window); wFrameWindowPaint(wwin->frame); } } /* Return the WWindow associated with a given (Xlib) Window. */ WWindow *wWindowFor(Window window) { WObjDescriptor *desc; if (window == None) return NULL; if (XFindContext(dpy, window, wWinContext, (XPointer *) & desc) == XCNOENT) return NULL; if (desc->parent_type == WCLASS_WINDOW) return desc->parent; else if (desc->parent_type == WCLASS_FRAME) { WFrameWindow *frame = (WFrameWindow *) desc->parent; if (frame->flags.is_client_window_frame) return frame->child; } return NULL; } WWindow *wWindowCreate(void) { WWindow *wwin; wwin = wmalloc(sizeof(WWindow)); wretain(wwin); wwin->client_descriptor.handle_mousedown = frameMouseDown; wwin->client_descriptor.parent = wwin; wwin->client_descriptor.self = wwin; wwin->client_descriptor.parent_type = WCLASS_WINDOW; return wwin; } void wWindowDestroy(WWindow *wwin) { int i; if (wwin->screen_ptr->cmap_window == wwin) wwin->screen_ptr->cmap_window = NULL; WMRemoveNotificationObserver(wwin); wwin->flags.destroyed = 1; for (i = 0; i < MAX_WINDOW_SHORTCUTS; i++) { if (!wwin->screen_ptr->shortcutWindows[i]) continue; WMRemoveFromArray(wwin->screen_ptr->shortcutWindows[i], wwin); if (!WMGetArrayItemCount(wwin->screen_ptr->shortcutWindows[i])) { WMFreeArray(wwin->screen_ptr->shortcutWindows[i]); wwin->screen_ptr->shortcutWindows[i] = NULL; } } if (wwin->fake_group && wwin->fake_group->retainCount > 0) { wwin->fake_group->retainCount--; if (wwin->fake_group->retainCount == 0 && wwin->fake_group->leader != None) { XDestroyWindow(dpy, wwin->fake_group->leader); wwin->fake_group->leader = None; wwin->fake_group->origLeader = None; XFlush(dpy); } } if (wwin->normal_hints) XFree(wwin->normal_hints); if (wwin->wm_hints) XFree(wwin->wm_hints); if (wwin->wm_instance) XFree(wwin->wm_instance); if (wwin->wm_class) XFree(wwin->wm_class); if (wwin->wm_gnustep_attr) wfree(wwin->wm_gnustep_attr); if (wwin->cmap_windows) XFree(wwin->cmap_windows); XDeleteContext(dpy, wwin->client_win, wWinContext); if (wwin->frame) wFrameWindowDestroy(wwin->frame); if (wwin->icon) { RemoveFromStackList(wwin->icon->core); wIconDestroy(wwin->icon); if (wPreferences.auto_arrange_icons) wArrangeIcons(wwin->screen_ptr, True); } if (wwin->net_icon_image) RReleaseImage(wwin->net_icon_image); wrelease(wwin); } static void setupGNUstepHints(WWindow *wwin, GNUstepWMAttributes *gs_hints) { if (gs_hints->flags & GSWindowStyleAttr) { if (gs_hints->window_style == WMBorderlessWindowMask) { wwin->client_flags.no_border = 1; wwin->client_flags.no_titlebar = 1; wwin->client_flags.no_closable = 1; wwin->client_flags.no_miniaturizable = 1; wwin->client_flags.no_resizable = 1; wwin->client_flags.no_close_button = 1; wwin->client_flags.no_miniaturize_button = 1; wwin->client_flags.no_resizebar = 1; } else { wwin->client_flags.no_close_button = ((gs_hints->window_style & WMClosableWindowMask) ? 0 : 1); wwin->client_flags.no_closable = ((gs_hints->window_style & WMClosableWindowMask) ? 0 : 1); wwin->client_flags.no_miniaturize_button = ((gs_hints->window_style & WMMiniaturizableWindowMask) ? 0 : 1); wwin->client_flags.no_miniaturizable = wwin->client_flags.no_miniaturize_button; wwin->client_flags.no_resizebar = ((gs_hints->window_style & WMResizableWindowMask) ? 0 : 1); wwin->client_flags.no_resizable = wwin->client_flags.no_resizebar; /* these attributes supposedly imply in the existence * of a titlebar */ if (gs_hints->window_style & (WMResizableWindowMask | WMClosableWindowMask | WMMiniaturizableWindowMask)) { wwin->client_flags.no_titlebar = 0; } else { wwin->client_flags.no_titlebar = ((gs_hints->window_style & WMTitledWindowMask) ? 0 : 1); } } } else { /* setup the defaults */ wwin->client_flags.no_border = 0; wwin->client_flags.no_titlebar = 0; wwin->client_flags.no_closable = 0; wwin->client_flags.no_miniaturizable = 0; wwin->client_flags.no_resizable = 0; wwin->client_flags.no_close_button = 0; wwin->client_flags.no_miniaturize_button = 0; wwin->client_flags.no_resizebar = 0; } if (gs_hints->extra_flags & GSNoApplicationIconFlag) wwin->client_flags.no_appicon = 1; } void wWindowSetupInitialAttributes(WWindow *wwin, int *level, int *workspace) { WScreen *scr = wwin->screen_ptr; /* sets global default stuff */ wDefaultFillAttributes(wwin->wm_instance, wwin->wm_class, &wwin->client_flags, NULL, True); /* * Decoration setting is done in this precedence (lower to higher) * - use global default in the resource database * - guess some settings * - use GNUstep/external window attributes * - set hints specified for the app in the resource DB * */ WSETUFLAG(wwin, broken_close, 0); if (wwin->protocols.DELETE_WINDOW) WSETUFLAG(wwin, kill_close, 0); else WSETUFLAG(wwin, kill_close, 1); /* transients can't be iconified or maximized */ if (wwin->transient_for != None && wwin->transient_for != scr->root_win) { WSETUFLAG(wwin, no_miniaturizable, 1); WSETUFLAG(wwin, no_miniaturize_button, 1); } /* if the window can't be resized, remove the resizebar */ if (wwin->normal_hints->flags & (PMinSize | PMaxSize) && (wwin->normal_hints->min_width == wwin->normal_hints->max_width) && (wwin->normal_hints->min_height == wwin->normal_hints->max_height)) { WSETUFLAG(wwin, no_resizable, 1); WSETUFLAG(wwin, no_resizebar, 1); } /* set GNUstep window attributes */ if (wwin->wm_gnustep_attr) { setupGNUstepHints(wwin, wwin->wm_gnustep_attr); if (wwin->wm_gnustep_attr->flags & GSWindowLevelAttr) { *level = wwin->wm_gnustep_attr->window_level; /* * INT_MIN is the only illegal window level. */ if (*level == INT_MIN) *level = INT_MIN + 1; } else { /* setup defaults */ *level = WMNormalLevel; } } else { int tmp_workspace = -1; int tmp_level = INT_MIN; /* INT_MIN is never used by the window levels */ #ifdef MWM_HINTS wMWMCheckClientHints(wwin); #endif /* MWM_HINTS */ wNETWMCheckClientHints(wwin, &tmp_level, &tmp_workspace); /* window levels are between INT_MIN+1 and INT_MAX, so if we still * have INT_MIN that means that no window level was requested. -Dan */ if (tmp_level == INT_MIN) { if (WFLAGP(wwin, floating)) *level = WMFloatingLevel; else if (WFLAGP(wwin, sunken)) *level = WMSunkenLevel; else *level = WMNormalLevel; } else { *level = tmp_level; } if (wwin->transient_for != None && wwin->transient_for != scr->root_win) { WWindow *transientOwner = wWindowFor(wwin->transient_for); if (transientOwner) { int ownerLevel = transientOwner->frame->core->stacking->window_level; if (ownerLevel > *level) *level = ownerLevel; } } if (tmp_workspace >= 0) *workspace = tmp_workspace % scr->workspace_count; } /* * Set attributes specified only for that window/class. * This might do duplicate work with the 1st wDefaultFillAttributes(). */ wDefaultFillAttributes(wwin->wm_instance, wwin->wm_class, &wwin->user_flags, &wwin->defined_user_flags, False); /* * Sanity checks for attributes that depend on other attributes */ if (wwin->user_flags.no_appicon && wwin->defined_user_flags.no_appicon) wwin->user_flags.emulate_appicon = 0; if (wwin->main_window != None) { WApplication *wapp = wApplicationOf(wwin->main_window); if (wapp && !wapp->flags.emulated) wwin->user_flags.emulate_appicon = 0; } if (wwin->transient_for != None && wwin->transient_for != wwin->screen_ptr->root_win) wwin->user_flags.emulate_appicon = 0; if (wwin->user_flags.sunken && wwin->defined_user_flags.sunken && wwin->user_flags.floating && wwin->defined_user_flags.floating) wwin->user_flags.sunken = 0; WSETUFLAG(wwin, no_shadeable, WFLAGP(wwin, no_titlebar)); /* windows that have takefocus=False shouldn't take focus at all */ if (wwin->focus_mode == WFM_NO_INPUT) wwin->client_flags.no_focusable = 1; } Bool wWindowObscuresWindow(WWindow *wwin, WWindow *obscured) { int w1, h1, w2, h2; w1 = wwin->frame->core->width; h1 = wwin->frame->core->height; w2 = obscured->frame->core->width; h2 = obscured->frame->core->height; if (!IS_OMNIPRESENT(wwin) && !IS_OMNIPRESENT(obscured) && wwin->frame->workspace != obscured->frame->workspace) return False; if (wwin->frame_x + w1 < obscured->frame_x || wwin->frame_y + h1 < obscured->frame_y || wwin->frame_x > obscured->frame_x + w2 || wwin->frame_y > obscured->frame_y + h2) return False; return True; } static void fixLeaderProperties(WWindow *wwin) { XClassHint *classHint; XWMHints *hints, *clientHints; XWindowAttributes attr; Window leaders[2], window; char **argv, *command; int argc, i, pid; Bool haveCommand; classHint = XAllocClassHint(); clientHints = XGetWMHints(dpy, wwin->client_win); pid = wNETWMGetPidForWindow(wwin->client_win); if (pid > 0) haveCommand = GetCommandForPid(pid, &argv, &argc); else haveCommand = False; leaders[0] = wwin->client_leader; leaders[1] = wwin->group_id; if (haveCommand) { command = GetCommandForWindow(wwin->client_win); if (command) wfree(command); /* command already set. nothing to do. */ else XSetCommand(dpy, wwin->client_win, argv, argc); } for (i = 0; i < 2; i++) { window = leaders[i]; if (window) { if (XGetClassHint(dpy, window, classHint) == 0) { classHint->res_name = wwin->wm_instance; classHint->res_class = wwin->wm_class; XSetClassHint(dpy, window, classHint); } hints = XGetWMHints(dpy, window); if (hints) { XFree(hints); } else if (clientHints) { /* set window group leader to self */ clientHints->window_group = window; clientHints->flags |= WindowGroupHint; XSetWMHints(dpy, window, clientHints); } if (haveCommand) { command = GetCommandForWindow(window); if (command) wfree(command); /* command already set. nothing to do. */ else XSetCommand(dpy, window, argv, argc); } /* Make sure we get notification when this window is destroyed */ if (XGetWindowAttributes(dpy, window, &attr)) XSelectInput(dpy, window, attr.your_event_mask | StructureNotifyMask | PropertyChangeMask); } } XFree(classHint); if (clientHints) XFree(clientHints); if (haveCommand) wfree(argv); } static Window createFakeWindowGroupLeader(WScreen *scr, Window win, char *instance, char *class) { XClassHint *classHint; XWMHints *hints; Window leader; int argc; char **argv; leader = XCreateSimpleWindow(dpy, scr->root_win, 10, 10, 10, 10, 0, 0, 0); /* set class hint */ classHint = XAllocClassHint(); classHint->res_name = instance; classHint->res_class = class; XSetClassHint(dpy, leader, classHint); XFree(classHint); /* inherit these from the original leader if available */ hints = XGetWMHints(dpy, win); if (!hints) { hints = XAllocWMHints(); hints->flags = 0; } /* set window group leader to self */ hints->window_group = leader; hints->flags |= WindowGroupHint; XSetWMHints(dpy, leader, hints); XFree(hints); if (XGetCommand(dpy, win, &argv, &argc) != 0 && argc > 0) { XSetCommand(dpy, leader, argv, argc); XFreeStringList(argv); } return leader; } static int matchIdentifier(const void *item, const void *cdata) { return (strcmp(((WFakeGroupLeader *) item)->identifier, (char *)cdata) == 0); } /* *---------------------------------------------------------------- * wManageWindow-- * reparents the window and allocates a descriptor for it. * Window manager hints and other hints are fetched to configure * the window decoration attributes and others. User preferences * for the window are used if available, to configure window * decorations and some behaviour. * If in startup, windows that are override redirect, * unmapped and never were managed and are Withdrawn are not * managed. * * Returns: * the new window descriptor * * Side effects: * The window is reparented and appropriate notification * is done to the client. Input mask for the window is setup. * The window descriptor is also associated with various window * contexts and inserted in the head of the window list. * Event handler contexts are associated for some objects * (buttons, titlebar and resizebar) * *---------------------------------------------------------------- */ WWindow *wManageWindow(WScreen *scr, Window window) { WWindow *wwin; int x, y; unsigned width, height; XWindowAttributes wattribs; XSetWindowAttributes attribs; WWindowState *win_state; WWindow *transientOwner = NULL; int window_level; int wm_state; int foo; int workspace = -1; char *title; Bool withdraw = False; Bool raise = False; /* mutex. */ XGrabServer(dpy); XSync(dpy, False); /* make sure the window is still there */ if (!XGetWindowAttributes(dpy, window, &wattribs)) { XUngrabServer(dpy); return NULL; } /* if it's an override-redirect, ignore it */ if (wattribs.override_redirect) { XUngrabServer(dpy); return NULL; } wm_state = PropGetWindowState(window); /* if it's startup and the window is unmapped, don't manage it */ if (scr->flags.startup && wm_state < 0 && wattribs.map_state == IsUnmapped) { XUngrabServer(dpy); return NULL; } wwin = wWindowCreate(); title = wNETWMGetWindowName(window); if (title) wwin->flags.net_has_title = 1; else if (!wFetchName(dpy, window, &title)) title = NULL; XSaveContext(dpy, window, wWinContext, (XPointer) & wwin->client_descriptor); #ifdef SHAPE if (wShapeSupported) { int junk; unsigned int ujunk; int b_shaped; XShapeSelectInput(dpy, window, ShapeNotifyMask); XShapeQueryExtents(dpy, window, &b_shaped, &junk, &junk, &ujunk, &ujunk, &junk, &junk, &junk, &ujunk, &ujunk); wwin->flags.shaped = b_shaped; } #endif /* Get hints and other information in properties */ PropGetWMClass(window, &wwin->wm_class, &wwin->wm_instance); /* setup descriptor */ wwin->client_win = window; wwin->screen_ptr = scr; 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; XChangeWindowAttributes(dpy, window, CWEventMask | CWDontPropagate | CWSaveUnder, &attribs); XSetWindowBorderWidth(dpy, window, 0); /* get hints from GNUstep app */ if (wwin->wm_class != NULL && strcmp(wwin->wm_class, "GNUstep") == 0) wwin->flags.is_gnustep = 1; if (!PropGetGNUstepWMAttr(window, &wwin->wm_gnustep_attr)) wwin->wm_gnustep_attr = NULL; if (wwin->wm_class != NULL && strcmp(wwin->wm_class, "DockApp") == 0) { wwin->flags.is_dockapp = 1; withdraw = True; } wwin->client_leader = PropGetClientLeader(window); if (wwin->client_leader != None) wwin->main_window = wwin->client_leader; wwin->wm_hints = XGetWMHints(dpy, window); if (wwin->wm_hints) { if (wwin->wm_hints->flags & StateHint) { if (wwin->wm_hints->initial_state == IconicState) { wwin->flags.miniaturized = 1; } else if (wwin->wm_hints->initial_state == WithdrawnState) { wwin->flags.is_dockapp = 1; withdraw = True; } } if (wwin->wm_hints->flags & WindowGroupHint) { wwin->group_id = wwin->wm_hints->window_group; /* window_group has priority over CLIENT_LEADER */ wwin->main_window = wwin->group_id; } else { wwin->group_id = None; } if (wwin->wm_hints->flags & UrgencyHint) { wwin->flags.urgent = 1; wAppBounceWhileUrgent(wApplicationOf(wwin->main_window)); } } else { wwin->group_id = None; } PropGetProtocols(window, &wwin->protocols); if (!XGetTransientForHint(dpy, window, &wwin->transient_for)) { wwin->transient_for = None; } else { if (wwin->transient_for == None || wwin->transient_for == window) { wwin->transient_for = scr->root_win; } else { transientOwner = wWindowFor(wwin->transient_for); if (transientOwner && transientOwner->main_window != None) wwin->main_window = transientOwner->main_window; } } /* guess the focus mode */ wwin->focus_mode = getFocusMode(wwin); /* get geometry stuff */ wClientGetNormalHints(wwin, &wattribs, True, &x, &y, &width, &height); /* get colormap windows */ GetColormapWindows(wwin); /* * Setup the decoration/window attributes and * geometry */ wWindowSetupInitialAttributes(wwin, &window_level, &workspace); /* Make broken apps behave as a nice app. */ if (WFLAGP(wwin, emulate_appicon)) wwin->main_window = wwin->client_win; fixLeaderProperties(wwin); wwin->orig_main_window = wwin->main_window; if (wwin->flags.is_gnustep) WSETUFLAG(wwin, shared_appicon, 0); if (wwin->main_window) { extern Atom _XA_WINDOWMAKER_MENU; XTextProperty text_prop; if (XGetTextProperty(dpy, wwin->main_window, &text_prop, _XA_WINDOWMAKER_MENU)) WSETUFLAG(wwin, shared_appicon, 0); } if (wwin->flags.is_dockapp) WSETUFLAG(wwin, shared_appicon, 0); if (wwin->main_window) { WApplication *app = wApplicationOf(wwin->main_window); if (app && app->app_icon) WSETUFLAG(wwin, shared_appicon, 0); } if (!withdraw && wwin->main_window && WFLAGP(wwin, shared_appicon)) { char *buffer, *instance, *class; WFakeGroupLeader *fPtr; int index; #define ADEQUATE(x) ((x)!=None && (x)!=wwin->client_win && (x)!=fPtr->leader) /* // only enter here if PropGetWMClass() succeds */ PropGetWMClass(wwin->main_window, &class, &instance); buffer = StrConcatDot(instance, class); index = WMFindInArray(scr->fakeGroupLeaders, matchIdentifier, (void *)buffer); if (index != WANotFound) { fPtr = WMGetFromArray(scr->fakeGroupLeaders, index); if (fPtr->retainCount == 0) fPtr->leader = createFakeWindowGroupLeader(scr, wwin->main_window, instance, class); fPtr->retainCount++; if (fPtr->origLeader == None) { if (ADEQUATE(wwin->main_window)) { fPtr->retainCount++; fPtr->origLeader = wwin->main_window; } } wwin->fake_group = fPtr; wwin->main_window = fPtr->leader; wfree(buffer); } else { fPtr = (WFakeGroupLeader *) wmalloc(sizeof(WFakeGroupLeader)); fPtr->identifier = buffer; fPtr->leader = createFakeWindowGroupLeader(scr, wwin->main_window, instance, class); fPtr->origLeader = None; fPtr->retainCount = 1; WMAddToArray(scr->fakeGroupLeaders, fPtr); if (ADEQUATE(wwin->main_window)) { fPtr->retainCount++; fPtr->origLeader = wwin->main_window; } wwin->fake_group = fPtr; wwin->main_window = fPtr->leader; } if (instance) free(instance); if (class) free(class); #undef ADEQUATE } /* * Setup the initial state of the window */ if (WFLAGP(wwin, start_miniaturized) && !WFLAGP(wwin, no_miniaturizable)) wwin->flags.miniaturized = 1; if (WFLAGP(wwin, start_maximized) && IS_RESIZABLE(wwin)) wwin->flags.maximized = MAX_VERTICAL | MAX_HORIZONTAL; wNETWMCheckInitialClientState(wwin); /* apply previous state if it exists and we're in startup */ if (scr->flags.startup && wm_state >= 0) { if (wm_state == IconicState) wwin->flags.miniaturized = 1; else if (wm_state == WithdrawnState) withdraw = True; } /* if there is a saved state (from file), restore it */ win_state = NULL; if (wwin->main_window != None) win_state = (WWindowState *) wWindowGetSavedState(wwin->main_window); else win_state = (WWindowState *) wWindowGetSavedState(window); if (win_state && !withdraw) { if (win_state->state->hidden > 0) wwin->flags.hidden = win_state->state->hidden; if (win_state->state->shaded > 0 && !WFLAGP(wwin, no_shadeable)) wwin->flags.shaded = win_state->state->shaded; if (win_state->state->miniaturized > 0 && !WFLAGP(wwin, no_miniaturizable)) wwin->flags.miniaturized = win_state->state->miniaturized; if (!IS_OMNIPRESENT(wwin)) { int w = wDefaultGetStartWorkspace(scr, wwin->wm_instance, wwin->wm_class); if (w < 0 || w >= scr->workspace_count) { workspace = win_state->state->workspace; if (workspace >= scr->workspace_count) workspace = scr->current_workspace; } else { workspace = w; } } else { workspace = scr->current_workspace; } } /* if we're restarting, restore saved state (from hints). * This will overwrite previous */ { WSavedState *wstate; if (getSavedState(window, &wstate)) { wwin->flags.shaded = wstate->shaded; wwin->flags.hidden = wstate->hidden; wwin->flags.miniaturized = wstate->miniaturized; wwin->flags.maximized = wstate->maximized; if (wwin->flags.maximized) { wwin->old_geometry.x = wstate->x; wwin->old_geometry.y = wstate->y; wwin->old_geometry.width = wstate->w; wwin->old_geometry.height = wstate->h; } workspace = wstate->workspace; } else { wstate = NULL; } /* restore window shortcut */ if (wstate != NULL || win_state != NULL) { unsigned mask = 0; if (win_state != NULL) mask = win_state->state->window_shortcuts; if (wstate != NULL && mask == 0) mask = wstate->window_shortcuts; if (mask > 0) { int i; for (i = 0; i < MAX_WINDOW_SHORTCUTS; i++) { if (mask & (1 << i)) { if (!scr->shortcutWindows[i]) scr->shortcutWindows[i] = WMCreateArray(4); WMAddToArray(scr->shortcutWindows[i], wwin); } } } } if (wstate != NULL) wfree(wstate); } /* don't let transients start miniaturized if their owners are not */ if (transientOwner && !transientOwner->flags.miniaturized && wwin->flags.miniaturized && !withdraw) { wwin->flags.miniaturized = 0; if (wwin->wm_hints) wwin->wm_hints->initial_state = NormalState; } /* set workspace on which the window starts */ if (workspace >= 0) { if (workspace > scr->workspace_count - 1) workspace = workspace % scr->workspace_count; } else { int w; w = wDefaultGetStartWorkspace(scr, wwin->wm_instance, wwin->wm_class); if (w >= 0 && w < scr->workspace_count && !(IS_OMNIPRESENT(wwin))) { workspace = w; } else { if (wPreferences.open_transients_with_parent && transientOwner) workspace = transientOwner->frame->workspace; else workspace = scr->current_workspace; } } /* setup window geometry */ if (win_state && win_state->state->w > 0) { width = win_state->state->w; height = win_state->state->h; } wWindowConstrainSize(wwin, &width, &height); /* do not ask for window placement if the window is * transient, during startup, if the initial workspace is another one * or if the window wants to start iconic. * If geometry was saved, restore it. */ { Bool dontBring = False; if (win_state && win_state->state->w > 0) { x = win_state->state->x; y = win_state->state->y; } else if ((wwin->transient_for == None || wPreferences.window_placement != WPM_MANUAL) && !scr->flags.startup && workspace == scr->current_workspace && !wwin->flags.miniaturized && !wwin->flags.maximized && !(wwin->normal_hints->flags & (USPosition | PPosition))) { if (transientOwner && transientOwner->flags.mapped) { int offs = WMAX(20, 2 * transientOwner->frame->top_width); WMRect rect; int head; x = transientOwner->frame_x + abs((transientOwner->frame->core->width - width) / 2) + offs; y = transientOwner->frame_y + abs((transientOwner->frame->core->height - height) / 3) + offs; /* limit transient windows to be inside their parent's head */ rect.pos.x = transientOwner->frame_x; rect.pos.y = transientOwner->frame_y; rect.size.width = transientOwner->frame->core->width; rect.size.height = transientOwner->frame->core->height; head = wGetHeadForRect(scr, rect); rect = wGetRectForHead(scr, head); if (x < rect.pos.x) x = rect.pos.x; else if (x + width > rect.pos.x + rect.size.width) x = rect.pos.x + rect.size.width - width; if (y < rect.pos.y) y = rect.pos.y; else if (y + height > rect.pos.y + rect.size.height) y = rect.pos.y + rect.size.height - height; } else { PlaceWindow(wwin, &x, &y, width, height); } if (wPreferences.window_placement == WPM_MANUAL) dontBring = True; } else if (scr->xine_info.count && (wwin->normal_hints->flags & PPosition)) { int head, flags; WMRect rect; int reposition = 0; /* Make spash screens come out in the center of a head * trouble is that most splashies never get here * they are managed trough atoms but god knows where. * Dan, do you know ? -peter * * Most of them are not managed, they have set * OverrideRedirect, which means we can't do anything about * them. -alfredo */ { /* xinerama checks for: across head and dead space */ rect.pos.x = x; rect.pos.y = y; rect.size.width = width; rect.size.height = height; head = wGetRectPlacementInfo(scr, rect, &flags); if (flags & XFLAG_DEAD) reposition = 1; if (flags & XFLAG_MULTIPLE) reposition = 2; } switch (reposition) { case 1: head = wGetHeadForPointerLocation(scr); rect = wGetRectForHead(scr, head); x = rect.pos.x + (x * rect.size.width) / scr->scr_width; y = rect.pos.y + (y * rect.size.height) / scr->scr_height; break; case 2: rect = wGetRectForHead(scr, head); if (x < rect.pos.x) x = rect.pos.x; else if (x + width > rect.pos.x + rect.size.width) x = rect.pos.x + rect.size.width - width; if (y < rect.pos.y) y = rect.pos.y; else if (y + height > rect.pos.y + rect.size.height) y = rect.pos.y + rect.size.height - height; break; default: break; } } if (WFLAGP(wwin, dont_move_off) && dontBring) wScreenBringInside(scr, &x, &y, width, height); } wNETWMPositionSplash(wwin, &x, &y, width, height); if (wwin->flags.urgent) { if (!IS_OMNIPRESENT(wwin)) wwin->flags.omnipresent ^= 1; } /* Create frame, borders and do reparenting */ foo = WFF_LEFT_BUTTON | WFF_RIGHT_BUTTON; #ifdef XKB_BUTTON_HINT if (wPreferences.modelock) foo |= WFF_LANGUAGE_BUTTON; #endif if (HAS_TITLEBAR(wwin)) foo |= WFF_TITLEBAR; if (HAS_RESIZEBAR(wwin)) foo |= WFF_RESIZEBAR; if (HAS_BORDER(wwin)) foo |= WFF_BORDER; wwin->frame = wFrameWindowCreate(scr, window_level, x, y, width, height, &wPreferences.window_title_clearance, &wPreferences.window_title_min_height, &wPreferences.window_title_max_height, foo, scr->window_title_texture, scr->resizebar_texture, scr->window_title_color, &scr->title_font, wattribs.depth, wattribs.visual, wattribs.colormap); wwin->frame->flags.is_client_window_frame = 1; wwin->frame->flags.justification = wPreferences.title_justification; /* setup button images */ wWindowUpdateButtonImages(wwin); /* hide unused buttons */ foo = 0; if (WFLAGP(wwin, no_close_button)) foo |= WFF_RIGHT_BUTTON; if (WFLAGP(wwin, no_miniaturize_button)) foo |= WFF_LEFT_BUTTON; #ifdef XKB_BUTTON_HINT if (WFLAGP(wwin, no_language_button) || WFLAGP(wwin, no_focusable)) foo |= WFF_LANGUAGE_BUTTON; #endif if (foo != 0) wFrameWindowHideButton(wwin->frame, foo); wwin->frame->child = wwin; wwin->frame->workspace = workspace; wwin->frame->on_click_left = windowIconifyClick; #ifdef XKB_BUTTON_HINT if (wPreferences.modelock) wwin->frame->on_click_language = windowLanguageClick; #endif wwin->frame->on_click_right = windowCloseClick; wwin->frame->on_dblclick_right = windowCloseDblClick; wwin->frame->on_mousedown_titlebar = titlebarMouseDown; wwin->frame->on_dblclick_titlebar = titlebarDblClick; 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; wClientGetGravityOffsets(wwin, &gx, &gy); /* if gravity is to the south, account for the border sizes */ 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 * related variables (frame_x,frame_y) */ 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) { WApplication *app; WWindow *leader; /* Leader windows do not necessary set themselves as leaders. * If this is the case, point the leader of this window to * itself */ leader = wWindowFor(wwin->main_window); if (leader && leader->main_window == None) leader->main_window = leader->client_win; app = wApplicationCreate(wwin); if (app) { app->last_workspace = workspace; /* Do application specific stuff, like setting application * wide attributes. */ if (wwin->flags.hidden) { /* if the window was set to hidden because it was hidden * in a previous incarnation and that state was restored */ app->flags.hidden = 1; } else if (app->flags.hidden) { if (WFLAGP(app->main_window_desc, start_hidden)) { wwin->flags.hidden = 1; } else { wUnhideApplication(app, False, False); raise = True; } } wAppBounce(app); } } /* setup the frame descriptor */ wwin->frame->core->descriptor.handle_mousedown = frameMouseDown; wwin->frame->core->descriptor.parent = wwin; wwin->frame->core->descriptor.parent_type = WCLASS_WINDOW; /* don't let windows go away if we die */ XAddToSaveSet(dpy, 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)) && !wwin->flags.hidden && !withdraw) { /* 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. */ if (wwin->wm_hints && (wwin->wm_hints->flags & StateHint)) wClientSetState(wwin, wwin->wm_hints->initial_state, None); else wClientSetState(wwin, NormalState, None); if (wPreferences.superfluous && !wPreferences.no_animations && !scr->flags.startup && (wwin->transient_for == None || wwin->transient_for == scr->root_win) && /* * The brain damaged idiotic non-click to focus modes will * have trouble with this because: * * 1. window is created and mapped by the client * 2. window is mapped by wmaker in small size * 3. window is animated to grow to normal size * 4. this function returns to normal event loop * 5. eventually, the EnterNotify event that would trigger * the window focusing (if the mouse is over that window) * will be processed by wmaker. * But since this event will be rather delayed * (step 3 has a large delay) the time when the event ocurred * and when it is processed, the client that owns that window * will reject the XSetInputFocus() for it. */ (wPreferences.focus_mode == WKF_CLICK || wPreferences.auto_focus)) DoWindowBirth(wwin); wWindowMap(wwin); } /* setup stacking descriptor */ if (transientOwner) wwin->frame->core->stacking->child_of = transientOwner->frame->core; else wwin->frame->core->stacking->child_of = NULL; if (!scr->focused_window) { /* first window on the list */ wwin->next = NULL; wwin->prev = NULL; scr->focused_window = wwin; } else { WWindow *tmp; /* add window at beginning of focus window list */ tmp = scr->focused_window; while (tmp->prev) tmp = tmp->prev; tmp->prev = wwin; wwin->next = tmp; wwin->prev = NULL; } /* raise is set to true if we un-hid the app when this window was born. * we raise, else old windows of this app will be above this new one. */ if (raise) wRaiseFrame(wwin->frame->core); /* Update name must come after WApplication stuff is done */ wWindowUpdateName(wwin, title); if (title) XFree(title); XUngrabServer(dpy); /* Final preparations before window is ready to go */ wFrameWindowChangeState(wwin->frame, WS_UNFOCUSED); if (!wwin->flags.miniaturized && workspace == scr->current_workspace && !wwin->flags.hidden) { if (((transientOwner && transientOwner->flags.focused) || wPreferences.auto_focus) && !WFLAGP(wwin, no_focusable)) { /* only auto_focus if on same screen as mouse * (and same head for xinerama mode) * TODO: make it an option */ /*TODO add checking the head of the window, is it available? */ short same_screen = 0, same_head = 1; int foo; unsigned int bar; Window dummy; if (XQueryPointer(dpy, scr->root_win, &dummy, &dummy, &foo, &foo, &foo, &foo, &bar) != False) same_screen = 1; if (same_screen == 1 && same_head == 1) wSetFocusTo(scr, wwin); } } wWindowResetMouseGrabs(wwin); if (!WFLAGP(wwin, no_bind_keys)) wWindowSetKeyGrabs(wwin); WMPostNotificationName(WMNManaged, wwin, NULL); wColormapInstallForWindow(scr, scr->cmap_window); /* Setup Notification Observers */ WMAddNotificationObserver(appearanceObserver, wwin, WNWindowAppearanceSettingsChanged, wwin); /* Cleanup temporary stuff */ if (win_state) wWindowDeleteSavedState(win_state); /* If the window must be withdrawed, then do it now. * Must do some optimization, 'though */ if (withdraw) { wwin->flags.mapped = 0; wClientSetState(wwin, WithdrawnState, None); wUnmanageWindow(wwin, True, False); wwin = NULL; } return wwin; } WWindow *wManageInternalWindow(WScreen *scr, Window window, Window owner, const char *title, int x, int y, int width, int height) { WWindow *wwin; int foo; wwin = wWindowCreate(); WMAddNotificationObserver(appearanceObserver, wwin, WNWindowAppearanceSettingsChanged, wwin); wwin->flags.internal_window = 1; WSETUFLAG(wwin, omnipresent, 1); WSETUFLAG(wwin, no_shadeable, 1); WSETUFLAG(wwin, no_resizable, 1); WSETUFLAG(wwin, no_miniaturizable, 1); wwin->focus_mode = WFM_PASSIVE; wwin->client_win = window; wwin->screen_ptr = scr; wwin->transient_for = owner; wwin->client.x = x; wwin->client.y = y; wwin->client.width = width; wwin->client.height = height; wwin->frame_x = wwin->client.x; wwin->frame_y = wwin->client.y; foo = WFF_RIGHT_BUTTON | WFF_BORDER; foo |= WFF_TITLEBAR; #ifdef XKB_BUTTON_HINT foo |= WFF_LANGUAGE_BUTTON; #endif wwin->frame = wFrameWindowCreate(scr, WMFloatingLevel, wwin->frame_x, wwin->frame_y, width, height, &wPreferences.window_title_clearance, &wPreferences.window_title_min_height, &wPreferences.window_title_max_height, foo, scr->window_title_texture, scr->resizebar_texture, scr->window_title_color, &scr->title_font, scr->w_depth, scr->w_visual, scr->w_colormap); XSaveContext(dpy, window, wWinContext, (XPointer) & wwin->client_descriptor); wwin->frame->flags.is_client_window_frame = 1; wwin->frame->flags.justification = wPreferences.title_justification; wFrameWindowChangeTitle(wwin->frame, title); /* setup button images */ wWindowUpdateButtonImages(wwin); /* hide buttons */ wFrameWindowHideButton(wwin->frame, WFF_RIGHT_BUTTON); wwin->frame->child = wwin; wwin->frame->workspace = wwin->screen_ptr->current_workspace; #ifdef XKB_BUTTON_HINT if (wPreferences.modelock) wwin->frame->on_click_language = windowLanguageClick; #endif wwin->frame->on_click_right = windowCloseClick; wwin->frame->on_mousedown_titlebar = titlebarMouseDown; wwin->frame->on_dblclick_titlebar = titlebarDblClick; wwin->frame->on_mousedown_resizebar = resizebarMouseDown; wwin->client.y += wwin->frame->top_width; XReparentWindow(dpy, wwin->client_win, wwin->frame->core->window, 0, wwin->frame->top_width); wWindowConfigure(wwin, wwin->frame_x, wwin->frame_y, wwin->client.width, wwin->client.height); /* setup the frame descriptor */ wwin->frame->core->descriptor.handle_mousedown = frameMouseDown; wwin->frame->core->descriptor.parent = wwin; wwin->frame->core->descriptor.parent_type = WCLASS_WINDOW; XLowerWindow(dpy, window); XMapSubwindows(dpy, wwin->frame->core->window); /* setup stacking descriptor */ if (wwin->transient_for != None && wwin->transient_for != scr->root_win) { WWindow *tmp; tmp = wWindowFor(wwin->transient_for); if (tmp) wwin->frame->core->stacking->child_of = tmp->frame->core; } else { wwin->frame->core->stacking->child_of = NULL; } if (!scr->focused_window) { /* first window on the list */ wwin->next = NULL; wwin->prev = NULL; scr->focused_window = wwin; } else { WWindow *tmp; /* add window at beginning of focus window list */ tmp = scr->focused_window; while (tmp->prev) tmp = tmp->prev; tmp->prev = wwin; wwin->next = tmp; wwin->prev = NULL; } if (wwin->flags.is_gnustep == 0) wFrameWindowChangeState(wwin->frame, WS_UNFOCUSED); /* if (wPreferences.auto_focus) */ wSetFocusTo(scr, wwin); wWindowResetMouseGrabs(wwin); wWindowSetKeyGrabs(wwin); return wwin; } /* *---------------------------------------------------------------------- * wUnmanageWindow-- * Removes the frame window from a window and destroys all data * related to it. The window will be reparented back to the root window * if restore is True. * * Side effects: * Everything related to the window is destroyed and the window * is removed from the window lists. Focus is set to the previous on the * window list. *---------------------------------------------------------------------- */ void wUnmanageWindow(WWindow *wwin, Bool restore, Bool destroyed) { WCoreWindow *frame = wwin->frame->core; WWindow *owner = NULL; WWindow *newFocusedWindow = NULL; int wasFocused; WScreen *scr = wwin->screen_ptr; /* First close attribute editor window if open */ if (wwin->flags.inspector_open) wCloseInspectorForWindow(wwin); /* Close window menu if it's open for this window */ if (wwin->flags.menu_open_for_me) CloseWindowMenu(scr); if (!destroyed) { if (!wwin->flags.internal_window) XRemoveFromSaveSet(dpy, wwin->client_win); /* If this is a leader window, we still need to listen for * DestroyNotify and PropertyNotify. */ if (wApplicationOf(wwin->client_win)) XSelectInput(dpy, wwin->client_win, StructureNotifyMask | PropertyChangeMask); else XSelectInput(dpy, wwin->client_win, NoEventMask); XUngrabButton(dpy, AnyButton, AnyModifier, wwin->client_win); XUngrabKey(dpy, AnyKey, AnyModifier, wwin->client_win); } XUnmapWindow(dpy, frame->window); XUnmapWindow(dpy, wwin->client_win); /* deselect window */ wSelectWindow(wwin, False); /* remove all pending events on window */ /* I think this only matters for autoraise */ if (wPreferences.raise_delay) WMDeleteTimerWithClientData(wwin->frame->core); XFlush(dpy); /* reparent the window back to the root */ if (restore) wClientRestore(wwin); if (wwin->transient_for != scr->root_win) { owner = wWindowFor(wwin->transient_for); if (owner) { if (!owner->flags.semi_focused) owner = NULL; else owner->flags.semi_focused = 0; } } wasFocused = wwin->flags.focused; /* remove from window focus list */ if (!wwin->prev && !wwin->next) { /* was the only window */ scr->focused_window = NULL; newFocusedWindow = NULL; } else { WWindow *tmp; if (wwin->prev) wwin->prev->next = wwin->next; if (wwin->next) wwin->next->prev = wwin->prev; else { scr->focused_window = wwin->prev; scr->focused_window->next = NULL; } if (wPreferences.focus_mode == WKF_CLICK) { /* if in click to focus mode and the window * was a transient, focus the owner window */ tmp = NULL; if (wPreferences.focus_mode == WKF_CLICK) { tmp = wWindowFor(wwin->transient_for); if (tmp && (!tmp->flags.mapped || WFLAGP(tmp, no_focusable))) { tmp = NULL; } } /* otherwise, focus the next one in the focus list */ if (!tmp) { tmp = scr->focused_window; while (tmp) { /* look for one in the window list first */ if (!WFLAGP(tmp, no_focusable) && !WFLAGP(tmp, skip_window_list) && (tmp->flags.mapped || tmp->flags.shaded)) break; tmp = tmp->prev; } if (!tmp) { /* if unsuccessful, choose any focusable window */ tmp = scr->focused_window; while (tmp) { if (!WFLAGP(tmp, no_focusable) && (tmp->flags.mapped || tmp->flags.shaded)) break; tmp = tmp->prev; } } } newFocusedWindow = tmp; } else if (wPreferences.focus_mode == WKF_SLOPPY) { unsigned int mask; int foo; Window bar, win; /* This is to let the root window get the keyboard input * if Sloppy focus mode and no other window get focus. * This way keybindings will not freeze. */ tmp = NULL; if (XQueryPointer(dpy, scr->root_win, &bar, &win, &foo, &foo, &foo, &foo, &mask)) tmp = wWindowFor(win); if (tmp == wwin) tmp = NULL; newFocusedWindow = tmp; } else { newFocusedWindow = NULL; } } if (!wwin->flags.internal_window) WMPostNotificationName(WMNUnmanaged, wwin, NULL); if (wasFocused) { if (newFocusedWindow != owner && owner) { if (wwin->flags.is_gnustep == 0) wFrameWindowChangeState(owner->frame, WS_UNFOCUSED); } wSetFocusTo(scr, newFocusedWindow); } /* Close menu and unhighlight */ WApplication *oapp = wApplicationOf(wwin->main_window); WApplication *napp = scr->focused_window ? wApplicationOf(scr->focused_window->main_window) : NULL; if (oapp && oapp != napp) { wAppMenuUnmap(oapp->menu); if (wPreferences.highlight_active_app) wApplicationDeactivate(oapp); } wNETCleanupFrameExtents(wwin); wWindowDestroy(wwin); XFlush(dpy); } void 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) XkbLockGroup(dpy, XkbUseCoreKbd, wwin->frame->languagemode); #endif /* KEEP_XKB_LOCK_STATUS */ wwin->flags.semi_focused = 0; if (wwin->flags.is_gnustep == 0) wFrameWindowChangeState(wwin->frame, WS_FOCUSED); wwin->flags.focused = 1; wWindowResetMouseGrabs(wwin); WMPostNotificationName(WMNChangedFocus, wwin, (void *)True); if (owin == wwin || !owin) return; nowner = wWindowFor(wwin->transient_for); /* new window is a transient for the old window */ if (nowner == owin) { owin->flags.semi_focused = 1; wWindowUnfocus(nowner); return; } oowner = wWindowFor(owin->transient_for); /* new window is owner of old window */ if (wwin == oowner) { wWindowUnfocus(owin); return; } if (!nowner) { wWindowUnfocus(owin); return; } /* new window has same owner of old window */ if (oowner == nowner) { /* prevent unfocusing of owner */ oowner->flags.semi_focused = 0; wWindowUnfocus(owin); oowner->flags.semi_focused = 1; return; } /* nowner != NULL && oowner != nowner */ nowner->flags.semi_focused = 1; wWindowUnfocus(nowner); wWindowUnfocus(owin); } void wWindowUnfocus(WWindow *wwin) { CloseWindowMenu(wwin->screen_ptr); if (wwin->flags.is_gnustep == 0) wFrameWindowChangeState(wwin->frame, wwin->flags.semi_focused ? WS_PFOCUSED : WS_UNFOCUSED); if (wwin->transient_for != None && wwin->transient_for != wwin->screen_ptr->root_win) { WWindow *owner; owner = wWindowFor(wwin->transient_for); if (owner && owner->flags.semi_focused) { owner->flags.semi_focused = 0; if (owner->flags.mapped || owner->flags.shaded) { wWindowUnfocus(owner); wFrameWindowPaint(owner->frame); } } } wwin->flags.focused = 0; wWindowResetMouseGrabs(wwin); WMPostNotificationName(WMNChangedFocus, wwin, (void *)False); } void wWindowUpdateName(WWindow *wwin, const char *newTitle) { const char *title; if (!wwin->frame) return; if (!newTitle) title = DEF_WINDOW_TITLE; /* the hint was removed */ else title = newTitle; if (wFrameWindowChangeTitle(wwin->frame, title)) WMPostNotificationName(WMNChangedName, wwin, NULL); } /* *---------------------------------------------------------------------- * * wWindowConstrainSize-- * Constrains size for the client window, taking the maximal size, * window resize increments and other size hints into account. * * Returns: * The closest size to what was given that the client window can * have. * *---------------------------------------------------------------------- */ void wWindowConstrainSize(WWindow *wwin, unsigned int *nwidth, unsigned int *nheight) { int width = (int)*nwidth; int height = (int)*nheight; int winc = 1; int hinc = 1; int minW = 1, minH = 1; int maxW = wwin->screen_ptr->scr_width * 2; int maxH = wwin->screen_ptr->scr_height * 2; int minAX = -1, minAY = -1; int maxAX = -1, maxAY = -1; int baseW = 0; int baseH = 0; if (wwin->normal_hints) { winc = wwin->normal_hints->width_inc; hinc = wwin->normal_hints->height_inc; minW = wwin->normal_hints->min_width; minH = wwin->normal_hints->min_height; maxW = wwin->normal_hints->max_width; maxH = wwin->normal_hints->max_height; if (wwin->normal_hints->flags & PAspect) { minAX = wwin->normal_hints->min_aspect.x; minAY = wwin->normal_hints->min_aspect.y; maxAX = wwin->normal_hints->max_aspect.x; maxAY = wwin->normal_hints->max_aspect.y; } baseW = wwin->normal_hints->base_width; baseH = wwin->normal_hints->base_height; } if (width < minW) width = minW; if (height < minH) height = minH; if (width > maxW) width = maxW; if (height > maxH) height = maxH; /* aspect ratio code borrowed from olwm */ if (minAX > 0) { /* adjust max aspect ratio */ if (!(maxAX == 1 && maxAY == 1) && width * maxAY > height * maxAX) { if (maxAX > maxAY) { height = (width * maxAY) / maxAX; if (height > maxH) { height = maxH; width = (height * maxAX) / maxAY; } } else { width = (height * maxAX) / maxAY; if (width > maxW) { width = maxW; height = (width * maxAY) / maxAX; } } } /* adjust min aspect ratio */ if (!(minAX == 1 && minAY == 1) && width * minAY < height * minAX) { if (minAX > minAY) { height = (width * minAY) / minAX; if (height < minH) { height = minH; width = (height * minAX) / minAY; } } else { width = (height * minAX) / minAY; if (width < minW) { width = minW; height = (width * minAY) / minAX; } } } } if (baseW != 0) width = (((width - baseW) / winc) * winc) + baseW; else width = (((width - minW) / winc) * winc) + minW; if (baseH != 0) height = (((height - baseH) / hinc) * hinc) + baseH; else height = (((height - minH) / hinc) * hinc) + minH; /* broken stupid apps may cause preposterous values for these.. */ if (width > 0) *nwidth = width; if (height > 0) *nheight = height; } void wWindowCropSize(WWindow *wwin, unsigned int maxW, unsigned int maxH, unsigned int *width, unsigned int *height) { int baseW = 0, baseH = 0; int winc = 1, hinc = 1; if (wwin->normal_hints) { baseW = wwin->normal_hints->base_width; baseH = wwin->normal_hints->base_height; winc = wwin->normal_hints->width_inc; hinc = wwin->normal_hints->height_inc; } if (*width > maxW) *width = maxW - (maxW - baseW) % winc; if (*height > maxH) *height = maxH - (maxH - baseH) % hinc; } void wWindowChangeWorkspace(WWindow *wwin, int workspace) { WScreen *scr = wwin->screen_ptr; WApplication *wapp; int unmap = 0; if (workspace >= scr->workspace_count || workspace < 0 || workspace == wwin->frame->workspace) return; if (workspace != scr->current_workspace) { /* Sent to other workspace. Unmap window */ 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; if (wwin->flags.miniaturized) { if (wwin->icon) { 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.miniaturized && !wPreferences.sticky_icons) { if (wwin->icon) { XMapWindow(dpy, wwin->icon->core->window); wwin->icon->mapped = 1; } } else if (!wwin->flags.mapped && !(wwin->flags.miniaturized || wwin->flags.hidden)) { wWindowMap(wwin); } } if (!IS_OMNIPRESENT(wwin)) { int oldWorkspace = wwin->frame->workspace; wwin->frame->workspace = workspace; WMPostNotificationName(WMNChangedWorkspace, wwin, (void *)(uintptr_t) oldWorkspace); } if (unmap) wWindowUnmap(wwin); } void wWindowChangeWorkspaceRelative(WWindow *wwin, int amount) { WScreen *scr = wwin->screen_ptr; int w = scr->current_workspace + amount; if (amount < 0) { if (w >= 0) { wWindowChangeWorkspace(wwin, w); } else if (wPreferences.ws_cycle) { wWindowChangeWorkspace(wwin, scr->workspace_count + w); } } else if (amount > 0) { if (w < scr->workspace_count) { wWindowChangeWorkspace(wwin, w); } else if (wPreferences.ws_advance) { int workspace = WMIN(w, MAX_WORKSPACES - 1); wWorkspaceMake(scr, workspace); wWindowChangeWorkspace(wwin, workspace); } else if (wPreferences.ws_cycle) { wWindowChangeWorkspace(wwin, w % scr->workspace_count); } } } void wWindowSynthConfigureNotify(WWindow *wwin) { XEvent sevent; sevent.type = ConfigureNotify; sevent.xconfigure.display = dpy; sevent.xconfigure.event = wwin->client_win; sevent.xconfigure.window = wwin->client_win; sevent.xconfigure.x = wwin->client.x; sevent.xconfigure.y = wwin->client.y; sevent.xconfigure.width = wwin->client.width; sevent.xconfigure.height = wwin->client.height; sevent.xconfigure.border_width = wwin->old_border_width; if (HAS_TITLEBAR(wwin) && wwin->frame->titlebar) sevent.xconfigure.above = wwin->frame->titlebar->window; else sevent.xconfigure.above = None; sevent.xconfigure.override_redirect = False; XSendEvent(dpy, wwin->client_win, False, StructureNotifyMask, &sevent); XFlush(dpy); } /* *---------------------------------------------------------------------- * wWindowConfigure() * * req_x, req_y: new requested positions for the frame * req_width, req_height: new requested sizes for the client * * Configures the frame, decorations and client window to the specified * geometry, whose validity is not checked -- wWindowConstrainSize() * must be used for that. * The size parameters are for the client window, but the position is * for the frame. * The client window receives a ConfigureNotify event, according * to what ICCCM says. * * Returns: * None * * Side effects: * Window size and position are changed and client window receives * a ConfigureNotify event. *---------------------------------------------------------------------- */ void wWindowConfigure(WWindow *wwin, int req_x, int req_y, int req_width, int req_height) { int synth_notify = False; int resize; resize = (req_width != wwin->client.width || req_height != wwin->client.height); /* * if the window is being moved but not resized then * send a synthetic ConfigureNotify */ if ((req_x != wwin->frame_x || req_y != wwin->frame_y) && !resize) synth_notify = True; if (WFLAGP(wwin, dont_move_off)) wScreenBringInside(wwin->screen_ptr, &req_x, &req_y, req_width, req_height); if (resize) { if (req_width < MIN_WINDOW_SIZE) req_width = MIN_WINDOW_SIZE; if (req_height < MIN_WINDOW_SIZE) req_height = MIN_WINDOW_SIZE; /* If growing, resize inner part before frame, * if shrinking, resize frame before. * This will prevent the frame (that can have a different color) * to be exposed, causing flicker */ if (req_height > wwin->frame->core->height || req_width > wwin->frame->core->width) XResizeWindow(dpy, wwin->client_win, req_width, req_height); if (wwin->flags.shaded) { wFrameWindowConfigure(wwin->frame, req_x, req_y, req_width, wwin->frame->core->height); wwin->old_geometry.height = req_height; } else { int h; h = req_height + wwin->frame->top_width + wwin->frame->bottom_width; wFrameWindowConfigure(wwin->frame, req_x, req_y, req_width, h); } if (!(req_height > wwin->frame->core->height || req_width > wwin->frame->core->width)) XResizeWindow(dpy, wwin->client_win, req_width, req_height); wwin->client.x = req_x; wwin->client.y = req_y + wwin->frame->top_width; wwin->client.width = req_width; wwin->client.height = req_height; } else { wwin->client.x = req_x; wwin->client.y = req_y + wwin->frame->top_width; XMoveWindow(dpy, wwin->frame->core->window, req_x, req_y); } wwin->frame_x = req_x; wwin->frame_y = req_y; if (HAS_BORDER(wwin)) { wwin->client.x += wwin->screen_ptr->frame_border_width; wwin->client.y += wwin->screen_ptr->frame_border_width; } #ifdef SHAPE if (wShapeSupported && wwin->flags.shaped && resize) wWindowSetShape(wwin); #endif if (synth_notify) wWindowSynthConfigureNotify(wwin); wNETFrameExtents(wwin); XFlush(dpy); } /* req_x, req_y: new position of the frame */ void wWindowMove(WWindow *wwin, int req_x, int req_y) { #ifdef CONFIGURE_WINDOW_WHILE_MOVING int synth_notify = False; /* Send a synthetic ConfigureNotify event for every window movement. */ if ((req_x != wwin->frame_x || req_y != wwin->frame_y)) synth_notify = True; #else /* A single synthetic ConfigureNotify event is sent at the end of * a completed (opaque) movement in moveres.c */ #endif if (WFLAGP(wwin, dont_move_off)) wScreenBringInside(wwin->screen_ptr, &req_x, &req_y, wwin->frame->core->width, wwin->frame->core->height); wwin->client.x = req_x; wwin->client.y = req_y + wwin->frame->top_width; if (HAS_BORDER(wwin)) { wwin->client.x += wwin->screen_ptr->frame_border_width; wwin->client.y += wwin->screen_ptr->frame_border_width; } XMoveWindow(dpy, wwin->frame->core->window, req_x, req_y); wwin->frame_x = req_x; wwin->frame_y = req_y; #ifdef CONFIGURE_WINDOW_WHILE_MOVING if (synth_notify) wWindowSynthConfigureNotify(wwin); #endif } void wWindowUpdateButtonImages(WWindow *wwin) { WScreen *scr = wwin->screen_ptr; Pixmap pixmap, mask; WFrameWindow *fwin = wwin->frame; if (!HAS_TITLEBAR(wwin)) return; /* miniaturize button */ if (!WFLAGP(wwin, no_miniaturize_button)) { if (wwin->wm_gnustep_attr && wwin->wm_gnustep_attr->flags & GSMiniaturizePixmapAttr) { pixmap = wwin->wm_gnustep_attr->miniaturize_pixmap; if (wwin->wm_gnustep_attr->flags & GSMiniaturizeMaskAttr) mask = wwin->wm_gnustep_attr->miniaturize_mask; else mask = None; if (fwin->lbutton_image && (fwin->lbutton_image->image != pixmap || fwin->lbutton_image->mask != mask)) { wPixmapDestroy(fwin->lbutton_image); fwin->lbutton_image = NULL; } if (!fwin->lbutton_image) { fwin->lbutton_image = wPixmapCreate(scr, pixmap, mask); fwin->lbutton_image->client_owned = 1; fwin->lbutton_image->client_owned_mask = 1; } } else { if (fwin->lbutton_image && !fwin->lbutton_image->shared) wPixmapDestroy(fwin->lbutton_image); fwin->lbutton_image = scr->b_pixmaps[WBUT_ICONIFY]; } } #ifdef XKB_BUTTON_HINT if (!WFLAGP(wwin, no_language_button)) { if (fwin->languagebutton_image && !fwin->languagebutton_image->shared) wPixmapDestroy(fwin->languagebutton_image); fwin->languagebutton_image = scr->b_pixmaps[WBUT_XKBGROUP1 + fwin->languagemode]; } #endif /* close button */ /* redefine WFLAGP to MGFLAGP to allow broken close operation */ #define MGFLAGP(wwin, FLAG) (wwin)->client_flags.FLAG if (!WFLAGP(wwin, no_close_button)) { if (wwin->wm_gnustep_attr && wwin->wm_gnustep_attr->flags & GSClosePixmapAttr) { pixmap = wwin->wm_gnustep_attr->close_pixmap; if (wwin->wm_gnustep_attr->flags & GSCloseMaskAttr) mask = wwin->wm_gnustep_attr->close_mask; else mask = None; if (fwin->rbutton_image && (fwin->rbutton_image->image != pixmap || fwin->rbutton_image->mask != mask)) { wPixmapDestroy(fwin->rbutton_image); fwin->rbutton_image = NULL; } if (!fwin->rbutton_image) { fwin->rbutton_image = wPixmapCreate(scr, pixmap, mask); fwin->rbutton_image->client_owned = 1; fwin->rbutton_image->client_owned_mask = 1; } } else if (WFLAGP(wwin, kill_close)) { if (fwin->rbutton_image && !fwin->rbutton_image->shared) wPixmapDestroy(fwin->rbutton_image); fwin->rbutton_image = scr->b_pixmaps[WBUT_KILL]; } else if (MGFLAGP(wwin, broken_close)) { if (fwin->rbutton_image && !fwin->rbutton_image->shared) wPixmapDestroy(fwin->rbutton_image); fwin->rbutton_image = scr->b_pixmaps[WBUT_BROKENCLOSE]; } else { if (fwin->rbutton_image && !fwin->rbutton_image->shared) wPixmapDestroy(fwin->rbutton_image); fwin->rbutton_image = scr->b_pixmaps[WBUT_CLOSE]; } } /* force buttons to be redrawn */ fwin->flags.need_texture_change = 1; wFrameWindowPaint(fwin); } /* *--------------------------------------------------------------------------- * wWindowConfigureBorders-- * Update window border configuration according to attribute flags. * *--------------------------------------------------------------------------- */ void wWindowConfigureBorders(WWindow *wwin) { if (wwin->frame) { int flags; int newy, oldh; flags = WFF_LEFT_BUTTON | WFF_RIGHT_BUTTON; #ifdef XKB_BUTTON_HINT if (wPreferences.modelock) flags |= WFF_LANGUAGE_BUTTON; #endif if (HAS_TITLEBAR(wwin)) flags |= WFF_TITLEBAR; if (HAS_RESIZEBAR(wwin) && IS_RESIZABLE(wwin)) flags |= WFF_RESIZEBAR; if (HAS_BORDER(wwin)) flags |= WFF_BORDER; if (wwin->flags.shaded) flags |= WFF_IS_SHADED; if (wwin->flags.selected) flags |= WFF_SELECTED; 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) flags |= WFF_LEFT_BUTTON; #ifdef XKB_BUTTON_HINT if (!WFLAGP(wwin, no_language_button) && wwin->frame->flags.hide_language_button) flags |= WFF_LANGUAGE_BUTTON; #endif if (!WFLAGP(wwin, no_close_button) && wwin->frame->flags.hide_right_button) flags |= WFF_RIGHT_BUTTON; if (flags != 0) { wWindowUpdateButtonImages(wwin); wFrameWindowShowButton(wwin->frame, flags); } flags = 0; if (WFLAGP(wwin, no_miniaturize_button) && !wwin->frame->flags.hide_left_button) flags |= WFF_LEFT_BUTTON; #ifdef XKB_BUTTON_HINT if (WFLAGP(wwin, no_language_button) && !wwin->frame->flags.hide_language_button) flags |= WFF_LANGUAGE_BUTTON; #endif if (WFLAGP(wwin, no_close_button) && !wwin->frame->flags.hide_right_button) flags |= WFF_RIGHT_BUTTON; if (flags != 0) wFrameWindowHideButton(wwin->frame, flags); #ifdef SHAPE if (wShapeSupported && wwin->flags.shaped) wWindowSetShape(wwin); #endif } } void wWindowSaveState(WWindow * wwin) { long data[10]; int i; memset(data, 0, sizeof(long) * 10); data[0] = wwin->frame->workspace; data[1] = wwin->flags.miniaturized; data[2] = wwin->flags.shaded; data[3] = wwin->flags.hidden; data[4] = wwin->flags.maximized; if (wwin->flags.maximized == 0) { data[5] = wwin->frame_x; data[6] = wwin->frame_y; data[7] = wwin->frame->core->width; data[8] = wwin->frame->core->height; } else { data[5] = wwin->old_geometry.x; data[6] = wwin->old_geometry.y; data[7] = wwin->old_geometry.width; data[8] = wwin->old_geometry.height; } for (i = 0; i < MAX_WINDOW_SHORTCUTS; i++) { if (wwin->screen_ptr->shortcutWindows[i] && WMCountInArray(wwin->screen_ptr->shortcutWindows[i], wwin)) data[9] |= 1 << i; } XChangeProperty(dpy, wwin->client_win, _XA_WINDOWMAKER_STATE, _XA_WINDOWMAKER_STATE, 32, PropModeReplace, (unsigned char *)data, 10); } static int getSavedState(Window window, WSavedState ** state) { Atom type_ret; int fmt_ret; unsigned long nitems_ret; unsigned long bytes_after_ret; long *data; if (XGetWindowProperty(dpy, window, _XA_WINDOWMAKER_STATE, 0, 10, True, _XA_WINDOWMAKER_STATE, &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret, (unsigned char **)&data) != Success || !data || nitems_ret < 10) return 0; *state = wmalloc(sizeof(WSavedState)); (*state)->workspace = data[0]; (*state)->miniaturized = data[1]; (*state)->shaded = data[2]; (*state)->hidden = data[3]; (*state)->maximized = data[4]; (*state)->x = data[5]; (*state)->y = data[6]; (*state)->w = data[7]; (*state)->h = data[8]; (*state)->window_shortcuts = data[9]; XFree(data); if (*state && type_ret == _XA_WINDOWMAKER_STATE) return 1; else return 0; } #ifdef SHAPE void wWindowClearShape(WWindow * wwin) { XShapeCombineMask(dpy, wwin->frame->core->window, ShapeBounding, 0, wwin->frame->top_width, None, ShapeSet); XFlush(dpy); } void wWindowSetShape(WWindow * wwin) { XRectangle rect[2]; int count; #ifdef OPTIMIZE_SHAPE XRectangle *rects; XRectangle *urec; int ordering; /* only shape is the client's */ if (!HAS_TITLEBAR(wwin) && !HAS_RESIZEBAR(wwin)) goto alt_code; /* Get array of rectangles describing the shape mask */ rects = XShapeGetRectangles(dpy, wwin->client_win, ShapeBounding, &count, &ordering); if (!rects) goto alt_code; urec = malloc(sizeof(XRectangle) * (count + 2)); if (!urec) { XFree(rects); goto alt_code; } /* insert our decoration rectangles in the rect list */ memcpy(urec, rects, sizeof(XRectangle) * count); XFree(rects); if (HAS_TITLEBAR(wwin)) { urec[count].x = -1; urec[count].y = -1 - wwin->frame->top_width; urec[count].width = wwin->frame->core->width + 2; urec[count].height = wwin->frame->top_width + 1; count++; } if (HAS_RESIZEBAR(wwin)) { urec[count].x = -1; urec[count].y = wwin->frame->core->height - wwin->frame->bottom_width - wwin->frame->top_width; urec[count].width = wwin->frame->core->width + 2; urec[count].height = wwin->frame->bottom_width + 1; count++; } /* shape our frame window */ XShapeCombineRectangles(dpy, wwin->frame->core->window, ShapeBounding, 0, wwin->frame->top_width, urec, count, ShapeSet, Unsorted); XFlush(dpy); wfree(urec); return; alt_code: #endif /* OPTIMIZE_SHAPE */ count = 0; if (HAS_TITLEBAR(wwin)) { rect[count].x = -1; rect[count].y = -1; rect[count].width = wwin->frame->core->width + 2; rect[count].height = wwin->frame->top_width + 1; count++; } if (HAS_RESIZEBAR(wwin)) { rect[count].x = -1; rect[count].y = wwin->frame->core->height - wwin->frame->bottom_width; rect[count].width = wwin->frame->core->width + 2; rect[count].height = wwin->frame->bottom_width + 1; count++; } if (count > 0) { XShapeCombineRectangles(dpy, wwin->frame->core->window, ShapeBounding, 0, 0, rect, count, ShapeSet, Unsorted); } XShapeCombineShape(dpy, wwin->frame->core->window, ShapeBounding, 0, wwin->frame->top_width, wwin->client_win, ShapeBounding, (count > 0 ? ShapeUnion : ShapeSet)); XFlush(dpy); } #endif /* SHAPE */ /* ====================================================================== */ static FocusMode getFocusMode(WWindow * wwin) { FocusMode mode; if ((wwin->wm_hints) && (wwin->wm_hints->flags & InputHint)) { if (wwin->wm_hints->input == True) { if (wwin->protocols.TAKE_FOCUS) mode = WFM_LOCALLY_ACTIVE; else mode = WFM_PASSIVE; } else { if (wwin->protocols.TAKE_FOCUS) mode = WFM_GLOBALLY_ACTIVE; else mode = WFM_NO_INPUT; } } else { mode = WFM_PASSIVE; } return mode; } void wWindowSetKeyGrabs(WWindow * wwin) { int i; WShortKey *key; for (i = 0; i < WKBD_LAST; i++) { key = &wKeyBindings[i]; if (key->keycode == 0) continue; if (key->modifier != AnyModifier) { XGrabKey(dpy, key->keycode, key->modifier | LockMask, wwin->frame->core->window, True, GrabModeAsync, GrabModeAsync); #ifdef NUMLOCK_HACK /* Also grab all modifier combinations possible that include, * LockMask, ScrollLockMask and NumLockMask, so that keygrabs * work even if the NumLock/ScrollLock key is on. */ wHackedGrabKey(key->keycode, key->modifier, wwin->frame->core->window, True, GrabModeAsync, GrabModeAsync); #endif } XGrabKey(dpy, key->keycode, key->modifier, wwin->frame->core->window, True, GrabModeAsync, GrabModeAsync); } wRootMenuBindShortcuts(wwin->frame->core->window); } void wWindowResetMouseGrabs(WWindow * wwin) { /* Mouse grabs can't be done on the client window because of * ICCCM and because clients that try to do the same will crash. * * But there is a problem wich makes tbar buttons of unfocused * windows not usable as the click goes to the frame window instead * of the button itself. Must figure a way to fix that. */ XUngrabButton(dpy, AnyButton, AnyModifier, wwin->client_win); if (!WFLAGP(wwin, no_bind_mouse)) { /* grabs for Meta+drag */ wHackedGrabButton(AnyButton, MOD_MASK, wwin->client_win, True, ButtonPressMask | ButtonReleaseMask, GrabModeSync, GrabModeAsync, None, None); /* for CTRL+Wheel to Scroll Horiz, we have to grab CTRL as well * but we only grab it for Button4 and Button 5 since a lot of apps * use CTRL+Button1-3 for app related functionality */ if (wPreferences.resize_increment > 0) { wHackedGrabButton(Button4, ControlMask, wwin->client_win, True, ButtonPressMask | ButtonReleaseMask, GrabModeSync, GrabModeAsync, None, None); wHackedGrabButton(Button5, ControlMask, wwin->client_win, True, ButtonPressMask | ButtonReleaseMask, GrabModeSync, GrabModeAsync, None, None); wHackedGrabButton(Button4, MOD_MASK | ControlMask, wwin->client_win, True, ButtonPressMask | ButtonReleaseMask, GrabModeSync, GrabModeAsync, None, None); wHackedGrabButton(Button5, MOD_MASK | ControlMask, wwin->client_win, True, ButtonPressMask | ButtonReleaseMask, GrabModeSync, GrabModeAsync, None, None); } } if (!wwin->flags.focused && !WFLAGP(wwin, no_focusable) && !wwin->flags.is_gnustep) { /* the passive grabs to focus the window */ /* if (wPreferences.focus_mode == WKF_CLICK) */ XGrabButton(dpy, AnyButton, AnyModifier, wwin->client_win, True, ButtonPressMask | ButtonReleaseMask, GrabModeSync, GrabModeAsync, None, None); } XFlush(dpy); } void wWindowUpdateGNUstepAttr(WWindow * wwin, GNUstepWMAttributes * attr) { if (attr->flags & GSExtraFlagsAttr) { if (MGFLAGP(wwin, broken_close) != (attr->extra_flags & GSDocumentEditedFlag)) { wwin->client_flags.broken_close = !MGFLAGP(wwin, broken_close); wWindowUpdateButtonImages(wwin); } } } WMagicNumber wWindowAddSavedState(const char *instance, const char *class, const char *command, pid_t pid, WSavedState * state) { WWindowState *wstate; wstate = malloc(sizeof(WWindowState)); if (!wstate) return NULL; memset(wstate, 0, sizeof(WWindowState)); wstate->pid = pid; if (instance) wstate->instance = wstrdup(instance); if (class) wstate->class = wstrdup(class); if (command) wstate->command = wstrdup(command); wstate->state = state; wstate->next = windowState; windowState = wstate; return wstate; } #define SAME(x, y) (((x) && (y) && !strcmp((x), (y))) || (!(x) && !(y))) WMagicNumber wWindowGetSavedState(Window win) { char *instance, *class, *command = NULL; WWindowState *wstate = windowState; if (!wstate) return NULL; command = GetCommandForWindow(win); if (!command) return NULL; if (PropGetWMClass(win, &class, &instance)) { while (wstate) { if (SAME(instance, wstate->instance) && SAME(class, wstate->class) && SAME(command, wstate->command)) { break; } wstate = wstate->next; } } else { wstate = NULL; } if (command) wfree(command); if (instance) free(instance); if (class) free(class); return wstate; } void wWindowDeleteSavedState(WMagicNumber id) { WWindowState *tmp, *wstate = (WWindowState *) id; if (!wstate || !windowState) return; tmp = windowState; if (tmp == wstate) { windowState = wstate->next; release_wwindowstate(wstate); } else { while (tmp->next) { if (tmp->next == wstate) { tmp->next = wstate->next; release_wwindowstate(wstate); break; } tmp = tmp->next; } } } void wWindowDeleteSavedStatesForPID(pid_t pid) { WWindowState *tmp, *wstate; if (!windowState) return; tmp = windowState; if (tmp->pid == pid) { wstate = windowState; windowState = tmp->next; release_wwindowstate(wstate); } else { while (tmp->next) { if (tmp->next->pid == pid) { wstate = tmp->next; tmp->next = wstate->next; release_wwindowstate(wstate); break; } tmp = tmp->next; } } } static void release_wwindowstate(WWindowState *wstate) { if (wstate->instance) wfree(wstate->instance); if (wstate->class) wfree(wstate->class); if (wstate->command) wfree(wstate->command); wfree(wstate->state); wfree(wstate); } void wWindowSetOmnipresent(WWindow *wwin, Bool flag) { if (wwin->flags.omnipresent == flag) return; wwin->flags.omnipresent = flag; WMPostNotificationName(WMNChangedState, wwin, "omnipresent"); } static void resizebarMouseDown(WCoreWindow *sender, void *data, XEvent *event) { WWindow *wwin = data; #ifndef NUMLOCK_HACK if ((event->xbutton.state & ValidModMask) != (event->xbutton.state & ~LockMask)) { wwarning(_("The NumLock, ScrollLock or similar key seems to be turned on. " "Turn it off or some mouse actions and keyboard shortcuts will not work.")); } #endif event->xbutton.state &= ValidModMask; CloseWindowMenu(wwin->screen_ptr); if (wPreferences.focus_mode == WKF_CLICK && !(event->xbutton.state & ControlMask) && !WFLAGP(wwin, no_focusable)) { wSetFocusTo(wwin->screen_ptr, wwin); } if (event->xbutton.button == Button1) wRaiseFrame(wwin->frame->core); if (event->xbutton.window != wwin->frame->resizebar->window) { if (XGrabPointer(dpy, wwin->frame->resizebar->window, True, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime) != GrabSuccess) { return; } } if (event->xbutton.state & MOD_MASK) { /* move the window */ wMouseMoveWindow(wwin, event); XUngrabPointer(dpy, CurrentTime); } else { wMouseResizeWindow(wwin, event); XUngrabPointer(dpy, CurrentTime); } } static void titlebarDblClick(WCoreWindow *sender, void *data, XEvent *event) { WWindow *wwin = data; event->xbutton.state &= ValidModMask; if (event->xbutton.button == Button1) { if (event->xbutton.state == 0) { if (!WFLAGP(wwin, no_shadeable)) { /* shade window */ if (wwin->flags.shaded) wUnshadeWindow(wwin); else wShadeWindow(wwin); } } else { int dir = 0; if (event->xbutton.state & ControlMask) dir |= MAX_VERTICAL; if (event->xbutton.state & ShiftMask) { dir |= MAX_HORIZONTAL; if (!(event->xbutton.state & ControlMask)) wSelectWindow(wwin, !wwin->flags.selected); } /* maximize window */ if (dir != 0 && IS_RESIZABLE(wwin)) { int ndir = dir ^ wwin->flags.maximized; if (ndir != 0) wMaximizeWindow(wwin, ndir); else wUnmaximizeWindow(wwin); } } } else if (event->xbutton.button == Button3) { if (event->xbutton.state & MOD_MASK) wHideOtherApplications(wwin); } else if (event->xbutton.button == Button2) { wSelectWindow(wwin, !wwin->flags.selected); } else if (event->xbutton.button == W_getconf_mouseWheelUp()) { wShadeWindow(wwin); } else if (event->xbutton.button == W_getconf_mouseWheelDown()) { wUnshadeWindow(wwin); } } static void frameMouseDown(WObjDescriptor *desc, XEvent *event) { WWindow *wwin = desc->parent; unsigned int new_width, w_scale; unsigned int new_height, h_scale; unsigned int resize_width_increment = 0; unsigned int resize_height_increment = 0; if (wwin->normal_hints) { w_scale = (wPreferences.resize_increment + wwin->normal_hints->width_inc - 1) / wwin->normal_hints->width_inc; h_scale = (wPreferences.resize_increment + wwin->normal_hints->height_inc - 1) / wwin->normal_hints->height_inc; resize_width_increment = wwin->normal_hints->width_inc * w_scale; resize_height_increment = wwin->normal_hints->height_inc * h_scale; } if (resize_width_increment <= 1 && resize_height_increment <= 1) { resize_width_increment = wPreferences.resize_increment; resize_height_increment = wPreferences.resize_increment; } event->xbutton.state &= ValidModMask; CloseWindowMenu(wwin->screen_ptr); if (!(event->xbutton.state & ControlMask) && !WFLAGP(wwin, no_focusable)) wSetFocusTo(wwin->screen_ptr, wwin); if (event->xbutton.button == Button1) wRaiseFrame(wwin->frame->core); if (event->xbutton.state & ControlMask) { if (event->xbutton.button == Button4) { new_width = wwin->client.width - resize_width_increment; wWindowConstrainSize(wwin, &new_width, &wwin->client.height); wWindowConfigure(wwin, wwin->frame_x, wwin->frame_y, new_width, wwin->client.height); } if (event->xbutton.button == Button5) { new_width = wwin->client.width + resize_width_increment; wWindowConstrainSize(wwin, &new_width, &wwin->client.height); wWindowConfigure(wwin, wwin->frame_x, wwin->frame_y, new_width, wwin->client.height); } } if (event->xbutton.state & MOD_MASK) { /* move the window */ if (XGrabPointer(dpy, wwin->client_win, False, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime) != GrabSuccess) { return; } if (event->xbutton.button == Button3) { wMouseResizeWindow(wwin, event); } else if (event->xbutton.button == Button4) { new_height = wwin->client.height - resize_height_increment; wWindowConstrainSize(wwin, &wwin->client.width, &new_height); wWindowConfigure(wwin, wwin->frame_x, wwin->frame_y, wwin->client.width, new_height); } else if (event->xbutton.button == Button5) { new_height = wwin->client.height + resize_height_increment; wWindowConstrainSize(wwin, &wwin->client.width, &new_height); wWindowConfigure(wwin, wwin->frame_x, wwin->frame_y, wwin->client.width, new_height); } else if (event->xbutton.button == Button1 || event->xbutton.button == Button2) { wMouseMoveWindow(wwin, event); } XUngrabPointer(dpy, CurrentTime); } } static void titlebarMouseDown(WCoreWindow *sender, void *data, XEvent *event) { WWindow *wwin = (WWindow *) data; #ifndef NUMLOCK_HACK if ((event->xbutton.state & ValidModMask) != (event->xbutton.state & ~LockMask)) wwarning(_("The NumLock, ScrollLock or similar key seems to be turned on. " "Turn it off or some mouse actions and keyboard shortcuts will not work.")); #endif event->xbutton.state &= ValidModMask; CloseWindowMenu(wwin->screen_ptr); if (wPreferences.focus_mode == WKF_CLICK && !(event->xbutton.state & ControlMask) && !WFLAGP(wwin, no_focusable)) wSetFocusTo(wwin->screen_ptr, wwin); if (event->xbutton.button == Button1 || event->xbutton.button == Button2) { if (event->xbutton.button == Button1) { if (event->xbutton.state & MOD_MASK) wLowerFrame(wwin->frame->core); else wRaiseFrame(wwin->frame->core); } if ((event->xbutton.state & ShiftMask) && !(event->xbutton.state & ControlMask)) { wSelectWindow(wwin, !wwin->flags.selected); return; } if (event->xbutton.window != wwin->frame->titlebar->window && XGrabPointer(dpy, wwin->frame->titlebar->window, False, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime) != GrabSuccess) { return; } /* move the window */ wMouseMoveWindow(wwin, event); XUngrabPointer(dpy, CurrentTime); } else if (event->xbutton.button == Button3 && event->xbutton.state == 0 && !wwin->flags.internal_window && !WCHECK_STATE(WSTATE_MODAL)) { WObjDescriptor *desc; if (event->xbutton.window != wwin->frame->titlebar->window && XGrabPointer(dpy, wwin->frame->titlebar->window, False, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime) != GrabSuccess) { return; } OpenWindowMenu(wwin, event->xbutton.x_root, wwin->frame_y + wwin->frame->top_width, False); /* allow drag select */ desc = &wwin->screen_ptr->window_menu->menu->descriptor; event->xany.send_event = True; (*desc->handle_mousedown) (desc, event); XUngrabPointer(dpy, CurrentTime); } } static void windowCloseClick(WCoreWindow *sender, void *data, XEvent *event) { WWindow *wwin = data; event->xbutton.state &= ValidModMask; CloseWindowMenu(wwin->screen_ptr); if (event->xbutton.button < Button1 || event->xbutton.button > Button3) return; /* if control-click, kill the client */ if (event->xbutton.state & ControlMask) { wClientKill(wwin); } else { if (wwin->protocols.DELETE_WINDOW && event->xbutton.state == 0) { /* send delete message */ wClientSendProtocol(wwin, _XA_WM_DELETE_WINDOW, LastTimestamp); } } } static void windowCloseDblClick(WCoreWindow *sender, void *data, XEvent *event) { WWindow *wwin = data; CloseWindowMenu(wwin->screen_ptr); if (event->xbutton.button < Button1 || event->xbutton.button > Button3) return; /* send delete message */ if (wwin->protocols.DELETE_WINDOW) wClientSendProtocol(wwin, _XA_WM_DELETE_WINDOW, LastTimestamp); else wClientKill(wwin); } #ifdef XKB_BUTTON_HINT static void windowLanguageClick(WCoreWindow *sender, void *data, XEvent *event) { WWindow *wwin = data; WFrameWindow *fwin = wwin->frame; WScreen *scr = fwin->screen_ptr; int tl; if (event->xbutton.button != Button1 && event->xbutton.button != Button3) return; tl = wwin->frame->languagemode; wwin->frame->languagemode = wwin->frame->last_languagemode; wwin->frame->last_languagemode = tl; wSetFocusTo(scr, wwin); wwin->frame->languagebutton_image = wwin->frame->screen_ptr->b_pixmaps[WBUT_XKBGROUP1 + wwin->frame->languagemode]; wFrameWindowUpdateLanguageButton(wwin->frame); if (event->xbutton.button == Button3) return; wRaiseFrame(fwin->core); } #endif static void windowIconifyClick(WCoreWindow *sender, void *data, XEvent *event) { WWindow *wwin = data; event->xbutton.state &= ValidModMask; CloseWindowMenu(wwin->screen_ptr); if (event->xbutton.button < Button1 || event->xbutton.button > Button3) return; if (wwin->protocols.MINIATURIZE_WINDOW && event->xbutton.state == 0) { wClientSendProtocol(wwin, _XA_GNUSTEP_WM_MINIATURIZE_WINDOW, LastTimestamp); } else { WApplication *wapp; if ((event->xbutton.state & ControlMask) || (event->xbutton.button == Button3)) { wapp = wApplicationOf(wwin->main_window); if (wapp && !WFLAGP(wwin, no_appicon)) wHideApplication(wapp); } else if (event->xbutton.state == 0) { wIconifyWindow(wwin); } } } WindowMaker-0.95.5/src/framewin.h0000644000175000017500000001264612214432632013542 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMFRAMEWINDOW_H_ #define WMFRAMEWINDOW_H_ #include "wcore.h" #include "pixmap.h" #define BORDER_TOP 1 #define BORDER_BOTTOM 2 #define BORDER_LEFT 4 #define BORDER_RIGHT 8 #define BORDER_ALL (1|2|4|8) #define WFF_TITLEBAR (1<<0) #define WFF_LEFT_BUTTON (1<<1) #define WFF_RIGHT_BUTTON (1<<2) #define WFF_RESIZEBAR (1<<3) #define WFF_BORDER (1<<4) #define WFF_SINGLE_STATE (1<<5) #ifdef XKB_BUTTON_HINT #define WFF_LANGUAGE_BUTTON (1<<6) #endif #define WFF_SELECTED (1<<7) #define WFF_IS_SHADED (1<<16) typedef struct WFrameWindow { WScreen *screen_ptr; /* pointer to the screen structure */ WCoreWindow *core; WCoreWindow *titlebar; /* the titlebar */ WCoreWindow *left_button; /* miniaturize button */ #ifdef XKB_BUTTON_HINT WCoreWindow *language_button; #endif WCoreWindow *right_button; /* close button */ short workspace; /* workspace that the window occupies */ short top_width; int *title_clearance; int *title_min_height; int *title_max_height; short bottom_width; short resizebar_corner_width; WCoreWindow *resizebar; /* bottom resizebar */ Pixmap title_back[3]; /* focused, unfocused, pfocused */ Pixmap resizebar_back[3]; /* any, None, None */ Pixmap lbutton_back[3]; Pixmap rbutton_back[3]; #ifdef XKB_BUTTON_HINT Pixmap languagebutton_back[3]; #endif WPixmap *lbutton_image; WPixmap *rbutton_image; #ifdef XKB_BUTTON_HINT WPixmap *languagebutton_image; #endif union WTexture **title_texture; union WTexture **resizebar_texture; WMColor **title_color; WMFont **font; char *title; /* window name (title) */ #ifdef KEEP_XKB_LOCK_STATUS int languagemode; int last_languagemode; #endif /* KEEP_XKB_LOCK_STATUS */ /* thing that uses this frame. passed as data to callbacks */ void *child; /* callbacks */ void (*on_click_left)(WCoreWindow *sender, void *data, XEvent *event); #ifdef XKB_BUTTON_HINT void (*on_click_language)(WCoreWindow *sender, void *data, XEvent *event); #endif void (*on_click_right)(WCoreWindow *sender, void *data, XEvent *event); void (*on_dblclick_right)(WCoreWindow *sender, void *data, XEvent *event); void (*on_mousedown_titlebar)(WCoreWindow *sender, void *data, XEvent *event); void (*on_dblclick_titlebar)(WCoreWindow *sender, void *data, XEvent *event); void (*on_mousedown_resizebar)(WCoreWindow *sender, void *data, XEvent *event); struct { unsigned int state:2; /* 3 possible states */ unsigned int justification:2; unsigned int titlebar:1; unsigned int resizebar:1; unsigned int left_button:1; unsigned int right_button:1; #ifdef XKB_BUTTON_HINT unsigned int language_button:1; #endif unsigned int need_texture_remake:1; unsigned int single_texture:1; unsigned int hide_left_button:1; unsigned int hide_right_button:1; #ifdef XKB_BUTTON_HINT unsigned int hide_language_button:1; #endif unsigned int need_texture_change:1; unsigned int lbutton_dont_fit:1; unsigned int rbutton_dont_fit:1; #ifdef XKB_BUTTON_HINT unsigned int languagebutton_dont_fit:1; #endif unsigned int repaint_only_titlebar:1; unsigned int repaint_only_resizebar:1; unsigned int is_client_window_frame:1; unsigned int incomplete_title:1; } flags; int depth; Visual *visual; Colormap colormap; unsigned long *border_pixel; unsigned long *selected_border_pixel; } WFrameWindow; WFrameWindow* wFrameWindowCreate(WScreen *scr, int wlevel, int x, int y, int width, int height, int *clearance, int *title_min, int *title_max, int flags, union WTexture **title_texture, union WTexture **resize_texture, WMColor **color, WMFont **font, int depth, Visual *visual, Colormap colormap); void wFrameWindowUpdateBorders(WFrameWindow *fwin, int flags); void wFrameWindowDestroy(WFrameWindow *fwin); void wFrameWindowChangeState(WFrameWindow *fwin, int state); void wFrameWindowPaint(WFrameWindow *fwin); void wFrameWindowConfigure(WFrameWindow *fwin, int x, int y, int width, int height); void wFrameWindowResize(WFrameWindow *fwin, int width, int height); void wFrameWindowShowButton(WFrameWindow *fwin, int flags); void wFrameWindowHideButton(WFrameWindow *fwin, int flags); int wFrameWindowChangeTitle(WFrameWindow *fwin, const char *new_title); #ifdef XKB_BUTTON_HINT void wFrameWindowUpdateLanguageButton(WFrameWindow *fwin); #endif #endif WindowMaker-0.95.5/src/osdep.h0000644000175000017500000000163412214432632013037 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMOSDEP_H_ #define WMOSDEP_H_ Bool GetCommandForPid(int pid, char ***argv, int *argc); #endif WindowMaker-0.95.5/src/appmenu.c0000644000175000017500000001610112214432632013360 00000000000000/* appmenu.c- application defined menu * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include #include "WindowMaker.h" #include "menu.h" #include "actions.h" #include "appmenu.h" #include "framewin.h" /******** Global Variables **********/ extern Atom _XA_WINDOWMAKER_MENU; extern Time LastTimestamp; typedef struct { short code; short tag; Window window; } WAppMenuData; enum { wmBeginMenu = 1, wmEndMenu = 2, wmNormalItem = 10, wmDoubleItem = 11, wmSubmenuItem = 12 }; enum { wmSelectItem = 1 }; static void sendMessage(Window window, int what, int tag) { XEvent event; event.xclient.type = ClientMessage; event.xclient.message_type = _XA_WINDOWMAKER_MENU; event.xclient.format = 32; event.xclient.display = dpy; event.xclient.window = window; event.xclient.data.l[0] = LastTimestamp; event.xclient.data.l[1] = what; event.xclient.data.l[2] = tag; event.xclient.data.l[3] = 0; XSendEvent(dpy, window, False, NoEventMask, &event); XFlush(dpy); } static void notifyClient(WMenu * menu, WMenuEntry * entry) { WAppMenuData *data = entry->clientdata; sendMessage(data->window, wmSelectItem, data->tag); } static WMenu *parseMenuCommand(WScreen * scr, Window win, char **slist, int count, int *index) { WMenu *menu; int command; int code, pos; char title[300]; char rtext[300]; if (strlen(slist[*index]) > sizeof(title) - 1) { wwarning("appmenu: menu command size exceeded in window %lx", win); return NULL; } if (sscanf(slist[*index], "%i %i %n", &command, &code, &pos) < 2 || command != wmBeginMenu) { wwarning("appmenu: bad menu entry \"%s\" in window %lx", slist[*index], win); return NULL; } strcpy(title, &slist[*index][pos]); menu = wMenuCreateForApp(scr, title, *index == 1); if (!menu) return NULL; *index += 1; while (*index < count) { int ecode, etag, enab; if (sscanf(slist[*index], "%i", &command) != 1) { wMenuDestroy(menu, True); wwarning("appmenu: bad menu entry \"%s\" in window %lx", slist[*index], win); return NULL; } if (command == wmEndMenu) { *index += 1; break; } else if (command == wmNormalItem || command == wmDoubleItem) { WAppMenuData *data; WMenuEntry *entry; if (command == wmNormalItem) { if (sscanf(slist[*index], "%i %i %i %i %n", &command, &ecode, &etag, &enab, &pos) != 4 || ecode != code) { wMenuDestroy(menu, True); wwarning("appmenu: bad menu entry \"%s\" in window %lx", slist[*index], win); return NULL; } strcpy(title, &slist[*index][pos]); rtext[0] = 0; } else { if (sscanf(slist[*index], "%i %i %i %i %s %n", &command, &ecode, &etag, &enab, rtext, &pos) != 5 || ecode != code) { wMenuDestroy(menu, True); wwarning("appmenu: bad menu entry \"%s\" in window %lx", slist[*index], win); return NULL; } strcpy(title, &slist[*index][pos]); } if (!(data = malloc(sizeof(WAppMenuData)))) { wwarning("appmenu: out of memory making menu for window %lx", win); wMenuDestroy(menu, True); return NULL; } data->code = code; data->tag = etag; data->window = win; entry = wMenuAddCallback(menu, title, notifyClient, data); if (!entry) { wMenuDestroy(menu, True); wwarning("appmenu: out of memory creating menu for window %lx", win); free(data); return NULL; } if (rtext[0] != 0) entry->rtext = wstrdup(rtext); else entry->rtext = NULL; entry->free_cdata = free; *index += 1; } else if (command == wmSubmenuItem) { int ncode; WMenuEntry *entry; WMenu *submenu; if (sscanf(slist[*index], "%i %i %i %i %i %n", &command, &ecode, &etag, &enab, &ncode, &pos) != 5 || ecode != code) { wMenuDestroy(menu, True); wwarning("appmenu: bad menu entry \"%s\" in window %lx", slist[*index], win); return NULL; } strcpy(title, &slist[*index][pos]); *index += 1; submenu = parseMenuCommand(scr, win, slist, count, index); entry = wMenuAddCallback(menu, title, NULL, NULL); if (!entry) { wMenuDestroy(menu, True); wMenuDestroy(submenu, True); wwarning("appmenu: out of memory creating menu for window %lx", win); return NULL; } wMenuEntrySetCascade(menu, entry, submenu); } else { wMenuDestroy(menu, True); wwarning("appmenu: bad menu entry \"%s\" in window %lx", slist[*index], win); return NULL; } } return menu; } WMenu *wAppMenuGet(WScreen * scr, Window window) { XTextProperty text_prop; int count, i; char **slist; WMenu *menu; if (!XGetTextProperty(dpy, window, &text_prop, _XA_WINDOWMAKER_MENU)) { return NULL; } if (!XTextPropertyToStringList(&text_prop, &slist, &count) || count < 1) { XFree(text_prop.value); return NULL; } XFree(text_prop.value); if (strcmp(slist[0], "WMMenu 0") != 0) { wwarning("appmenu: unknown version of WMMenu in window %lx: %s", window, slist[0]); XFreeStringList(slist); return NULL; } i = 1; menu = parseMenuCommand(scr, window, slist, count, &i); if (menu) menu->parent = NULL; XFreeStringList(slist); return menu; } void wAppMenuDestroy(WMenu * menu) { if (menu) wMenuDestroy(menu, True); } static void mapmenus(WMenu * menu) { int i; if (menu->flags.mapped) XMapWindow(dpy, menu->frame->core->window); if (menu->brother->flags.mapped) XMapWindow(dpy, menu->brother->frame->core->window); for (i = 0; i < menu->cascade_no; i++) { if (menu->cascades[i]) mapmenus(menu->cascades[i]); } } void wAppMenuMap(WMenu * menu, WWindow * wwin) { if (!menu) return; if (!menu->flags.mapped) { wMenuMap(menu); } if (wwin && (wPreferences.focus_mode != WKF_CLICK)) { int x, min; min = 20; /* Keep at least 20 pixels visible */ if (wwin->frame_x > min) { x = wwin->frame_x - menu->frame->core->width; } else { x = min - menu->frame->core->width; } wMenuMove(menu, x, wwin->frame_y, True); } mapmenus(menu); } static void unmapmenus(WMenu * menu) { int i; if (menu->flags.mapped) XUnmapWindow(dpy, menu->frame->core->window); if (menu->brother->flags.mapped) XUnmapWindow(dpy, menu->brother->frame->core->window); for (i = 0; i < menu->cascade_no; i++) { if (menu->cascades[i]) unmapmenus(menu->cascades[i]); } } void wAppMenuUnmap(WMenu * menu) { if (menu) unmapmenus(menu); } WindowMaker-0.95.5/src/osdep_linux.c0000644000175000017500000000337712214432632014257 00000000000000 #include #include #include #include #include #include #include #include #include #include "wconfig.h" #include "osdep.h" #define RETRY( x ) do { \ x; \ } while (errno == EINTR); /* * copy argc and argv for an existing process identified by `pid' * into suitable storage given in ***argv and *argc. * * subsequent calls use the same static area for argv and argc. * * returns 0 for failure, in which case argc := 0 and argv := NULL * returns 1 for success */ Bool GetCommandForPid(int pid, char ***argv, int *argc) { static char buf[_POSIX_ARG_MAX]; int fd, i, j; ssize_t count; *argv = NULL; *argc = 0; /* cmdline is a flattened series of null-terminated strings */ snprintf(buf, sizeof(buf), "/proc/%d/cmdline", pid); while (1) { /* not switching this to stdio yet, as this does not need * to be portable, and i'm lazy */ if ((fd = open(buf, O_RDONLY)) != -1) break; if (errno == EINTR) continue; return False; } while (1) { if ((count = read(fd, buf, sizeof(buf))) != -1) break; if (errno == EINTR) continue; RETRY( close(fd) ) return False; } RETRY( close(fd) ) /* count args */ for (i = 0; i < count; i++) if (buf[i] == '\0') (*argc)++; if (*argc == 0) return False; *argv = (char **)wmalloc(sizeof(char *) * (*argc + 1 /* term. null ptr */)); (*argv)[0] = buf; /* go through buf, set argv[$next] to the beginning of each string */ for (i = 0, j = 1; i < count; i++) { if (buf[i] != '\0') continue; if (i < count - 1) (*argv)[j++] = &buf[i + 1]; if (j == *argc) break; } /* the list of arguments must be terminated by a null pointer */ (*argv)[j] = NULL; return True; } WindowMaker-0.95.5/src/cycling.c0000644000175000017500000001733612214432632013356 00000000000000/* cycling.c- window cycling * * Window Maker window manager * * Copyright (c) 2000-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include "WindowMaker.h" #include "GNUstep.h" #include "screen.h" #include "window.h" #include "framewin.h" #include "keybind.h" #include "actions.h" #include "stacking.h" #include "cycling.h" #include "xinerama.h" #include "switchpanel.h" /* Globals */ extern WShortKey wKeyBindings[WKBD_LAST]; static void raiseWindow(WSwitchPanel * swpanel, WWindow * wwin) { Window swwin = wSwitchPanelGetWindow(swpanel); if (wwin->flags.mapped) { if (swwin != None) { Window win[2]; win[0] = swwin; win[1] = wwin->frame->core->window; XRestackWindows(dpy, win, 2); } else XRaiseWindow(dpy, wwin->frame->core->window); } } static WWindow *change_focus_and_raise(WWindow *newFocused, WWindow *oldFocused, WSwitchPanel *swpanel, WScreen *scr, Bool esc_cancel) { if (!newFocused) return oldFocused; wWindowFocus(newFocused, oldFocused); oldFocused = newFocused; if (wPreferences.circ_raise) { CommitStacking(scr); if (!esc_cancel) raiseWindow(swpanel, newFocused); } return oldFocused; } void StartWindozeCycle(WWindow * wwin, XEvent * event, Bool next, Bool class_only) { XModifierKeymap *keymap = NULL; WSwitchPanel *swpanel = NULL; WScreen *scr = wScreenForRootWindow(event->xkey.root); KeyCode leftKey = XKeysymToKeycode(dpy, XK_Left); KeyCode rightKey = XKeysymToKeycode(dpy, XK_Right); KeyCode homeKey = XKeysymToKeycode(dpy, XK_Home); KeyCode endKey = XKeysymToKeycode(dpy, XK_End); KeyCode shiftLKey = XKeysymToKeycode(dpy, XK_Shift_L); KeyCode shiftRKey = XKeysymToKeycode(dpy, XK_Shift_R); KeyCode escapeKey = XKeysymToKeycode(dpy, XK_Escape); KeyCode returnKey = XKeysymToKeycode(dpy, XK_Return); Bool esc_cancel = False; Bool somethingElse = False; Bool done = False; Bool hasModifier; int modifiers; WWindow *newFocused; WWindow *oldFocused; XEvent ev; if (!wwin) return; if (next) { if (class_only) hasModifier = (wKeyBindings[WKBD_GROUPNEXT].modifier != 0); else hasModifier = (wKeyBindings[WKBD_FOCUSNEXT].modifier != 0); } else { if (class_only) hasModifier = (wKeyBindings[WKBD_GROUPPREV].modifier != 0); else hasModifier = (wKeyBindings[WKBD_FOCUSPREV].modifier != 0); } if (hasModifier) { keymap = XGetModifierMapping(dpy); XGrabKeyboard(dpy, scr->root_win, False, GrabModeAsync, GrabModeAsync, CurrentTime); } scr->flags.doing_alt_tab = 1; swpanel = wInitSwitchPanel(scr, wwin, class_only); oldFocused = wwin; if (swpanel) { if (wwin->flags.mapped && !wPreferences.panel_only_open) newFocused = wSwitchPanelSelectNext(swpanel, !next, True, False); else newFocused = wSwitchPanelSelectFirst(swpanel, False); oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr, False); } else { if (wwin->frame->workspace == scr->current_workspace) newFocused = wwin; else newFocused = NULL; } while (hasModifier && !done) { int i; WMMaskEvent(dpy, KeyPressMask | KeyReleaseMask | ExposureMask | PointerMotionMask | ButtonReleaseMask | EnterWindowMask, &ev); /* ignore CapsLock */ modifiers = ev.xkey.state & ValidModMask; if (!swpanel) break; switch (ev.type) { case KeyPress: if ((wKeyBindings[WKBD_FOCUSNEXT].keycode == ev.xkey.keycode && wKeyBindings[WKBD_FOCUSNEXT].modifier == modifiers) || (wKeyBindings[WKBD_GROUPNEXT].keycode == ev.xkey.keycode && wKeyBindings[WKBD_GROUPNEXT].modifier == modifiers) || ev.xkey.keycode == rightKey) { newFocused = wSwitchPanelSelectNext(swpanel, False, ev.xkey.keycode != rightKey, (!class_only && wKeyBindings[WKBD_GROUPNEXT].keycode == ev.xkey.keycode && wKeyBindings[WKBD_GROUPNEXT].modifier == modifiers)); oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr, False); } else if ((wKeyBindings[WKBD_FOCUSPREV].keycode == ev.xkey.keycode && wKeyBindings[WKBD_FOCUSPREV].modifier == modifiers) || (wKeyBindings[WKBD_GROUPPREV].keycode == ev.xkey.keycode && wKeyBindings[WKBD_GROUPPREV].modifier == modifiers) || ev.xkey.keycode == leftKey) { newFocused = wSwitchPanelSelectNext(swpanel, True, ev.xkey.keycode != leftKey, (!class_only && wKeyBindings[WKBD_GROUPPREV].keycode == ev.xkey.keycode && wKeyBindings[WKBD_GROUPPREV].modifier == modifiers)); oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr, False); } else if (ev.xkey.keycode == homeKey || ev.xkey.keycode == endKey) { newFocused = wSwitchPanelSelectFirst(swpanel, ev.xkey.keycode != homeKey); oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr, False); } else if (ev.xkey.keycode == escapeKey) { /* Focus the first window of the swpanel, despite the 'False' */ newFocused = wSwitchPanelSelectFirst(swpanel, False); oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr, True); esc_cancel = True; done = True; } else if (ev.xkey.keycode == returnKey) { /* Close the switchpanel without eating the keypress */ done = True; } else if (ev.xkey.keycode != shiftLKey && ev.xkey.keycode != shiftRKey) { somethingElse = True; done = True; } break; case KeyRelease: if (ev.xkey.keycode == shiftLKey || ev.xkey.keycode == shiftRKey) if (wPreferences.strict_windoze_cycle) break; if (ev.xkey.keycode == XK_Return) break; for (i = 0; i < 8 * keymap->max_keypermod; i++) { int mask = 1 << (i / keymap->max_keypermod); if (keymap->modifiermap[i] == ev.xkey.keycode && ((wKeyBindings[WKBD_FOCUSNEXT].modifier & mask) || (wKeyBindings[WKBD_FOCUSPREV].modifier & mask) || (wKeyBindings[WKBD_GROUPNEXT].modifier & mask) || (wKeyBindings[WKBD_GROUPPREV].modifier & mask))) { done = True; break; } } break; case EnterNotify: /* ignore unwanted EnterNotify's */ break; case LeaveNotify: case MotionNotify: case ButtonRelease: { WWindow *tmp; tmp = wSwitchPanelHandleEvent(swpanel, &ev); if (tmp) { newFocused = tmp; oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr, False); if (ev.type == ButtonRelease) done = True; } } break; default: WMHandleEvent(&ev); break; } } if (keymap) XFreeModifiermap(keymap); if (hasModifier) { XUngrabKeyboard(dpy, CurrentTime); } if (swpanel) wSwitchPanelDestroy(swpanel); if (newFocused && !esc_cancel) { wRaiseFrame(newFocused->frame->core); CommitStacking(scr); if (!newFocused->flags.mapped) wMakeWindowVisible(newFocused); wSetFocusTo(scr, newFocused); } scr->flags.doing_alt_tab = 0; if (somethingElse) WMHandleEvent(&ev); } WindowMaker-0.95.5/src/xdnd.c0000644000175000017500000002036212214432632012654 00000000000000/* Many part of code are ripped of an example from JX's site */ #include "wconfig.h" #ifdef XDND #include #include "WindowMaker.h" #include "window.h" #include "dock.h" #include "xdnd.h" #include "motif.h" #include "workspace.h" #include #include #include #define XDND_VERSION 3L Atom _XA_XdndAware; Atom _XA_XdndEnter; Atom _XA_XdndLeave; Atom _XA_XdndDrop; Atom _XA_XdndPosition; Atom _XA_XdndStatus; Atom _XA_XdndActionCopy; Atom _XA_XdndSelection; Atom _XA_XdndFinished; Atom _XA_WINDOWMAKER_XDNDEXCHANGE; /* Atom _XA_MOTIF_DRAG_RECEIVER_INFO; Atom _XA_MOTIF_DRAG_AND_DROP_MESSAGE; */ Atom atom_support; void wXDNDInitializeAtoms() { _XA_XdndAware = XInternAtom(dpy, "XdndAware", False); _XA_XdndEnter = XInternAtom(dpy, "XdndEnter", False); _XA_XdndLeave = XInternAtom(dpy, "XdndLeave", False); _XA_XdndDrop = XInternAtom(dpy, "XdndDrop", False); _XA_XdndPosition = XInternAtom(dpy, "XdndPosition", False); _XA_XdndStatus = XInternAtom(dpy, "XdndStatus", False); _XA_XdndActionCopy = XInternAtom(dpy, "XdndActionCopy", False); _XA_XdndSelection = XInternAtom(dpy, "XdndSelection", False); _XA_XdndFinished = XInternAtom(dpy, "XdndFinished", False); _XA_WINDOWMAKER_XDNDEXCHANGE = XInternAtom(dpy, "_WINDOWMAKER_XDNDEXCHANGE", False); /* _XA_MOTIF_DRAG_RECEIVER_INFO = XInternAtom(dpy, "_MOTIF_DRAG_RECEIVER_INFO",False); _XA_MOTIF_DRAG_AND_DROP_MESSAGE = XInternAtom(dpy, "_MOTIF_DRAG_AND_DROP_MESSAGE", False); */ } void wXDNDMakeAwareness(Window window) { long int xdnd_version = 3; /* MotifDragReceiverInfo info; */ XChangeProperty(dpy, window, _XA_XdndAware, XA_ATOM, 32, PropModeAppend, (char *)&xdnd_version, 1); /*** MOTIF *** info.byte_order = '\0'; info.protocol_version = 0; info.protocol_style = XmDRAG_DYNAMIC; info.proxy_window = 0; info.num_drop_sites = 0; info.total_size = sizeof(info); XChangeProperty (dpy, window, _XA_MOTIF_DRAG_RECEIVER_INFO, _XA_MOTIF_DRAG_RECEIVER_INFO, 8, PropModeReplace, (unsigned char *)&info, sizeof (info)); */ } Bool wXDNDProcessSelection(XEvent * event) { WScreen *scr = wScreenForWindow(event->xselection.requestor); char *retain; Atom ret_type; int ret_format; unsigned long ret_item; unsigned long remain_byte; char *delme; XEvent xevent; Window selowner = XGetSelectionOwner(dpy, _XA_XdndSelection); WMArray *items; XGetWindowProperty(dpy, event->xselection.requestor, _XA_WINDOWMAKER_XDNDEXCHANGE, 0, 65536, True, atom_support, &ret_type, &ret_format, &ret_item, &remain_byte, (unsigned char **)&delme); if (delme) { scr->xdestring = delme; } /*send finished */ memset(&xevent, 0, sizeof(xevent)); xevent.xany.type = ClientMessage; xevent.xany.display = dpy; xevent.xclient.window = selowner; xevent.xclient.message_type = _XA_XdndFinished; xevent.xclient.format = 32; XDND_FINISHED_TARGET_WIN(&xevent) = event->xselection.requestor; XSendEvent(dpy, selowner, 0, 0, &xevent); /*process dropping */ if (scr->xdestring) { WMArrayIterator iter; int length, str_size; int total_size = 0; char *tmp; items = WMCreateArray(4); retain = wstrdup(scr->xdestring); XFree(scr->xdestring); /* since xdestring was created by Xlib */ length = strlen(retain); /* search in string */ while (length--) { if (retain[length] == '\r') { /* useless char, nuke it */ retain[length] = 0; } if (retain[length] == '\n') { str_size = strlen(&retain[length + 1]); if (str_size) { WMAddToArray(items, wstrdup(&retain[length + 1])); total_size += str_size + 3; /* reserve for " \"\"" */ /* this is nonsense -- if (length) WMAppendArray(items, WMCreateArray(1)); */ } retain[length] = 0; } } /* final one */ WMAddToArray(items, wstrdup(retain)); total_size += strlen(retain) + 3; wfree(retain); /* now pack new string */ scr->xdestring = wmalloc(total_size); scr->xdestring[0] = 0; /* empty string */ WM_ETARETI_ARRAY(items, tmp, iter) { if (!strncmp(tmp, "file:", 5)) { /* add more 2 chars while removing 5 is harmless */ strcat(scr->xdestring, " \""); strcat(scr->xdestring, &tmp[5]); strcat(scr->xdestring, "\""); } else { /* unsupport object, still need more " ? tell ]d */ strcat(scr->xdestring, &tmp[5]); } wfree(tmp); } WMFreeArray(items); wDockReceiveDNDDrop(scr, event); /* printf("free "); puts(scr->xdestring); */ wfree(scr->xdestring); /* this xdestring is not from Xlib (no XFree) */ } return True; } Bool isAwareXDND(Window window) { Atom actual; int format; unsigned long count, remaining; unsigned char *data = 0; if (!window) return False; XGetWindowProperty(dpy, window, _XA_XdndAware, 0, 0x8000000L, False, XA_ATOM, &actual, &format, &count, &remaining, &data); if (actual != XA_ATOM || format != 32 || count == 0 || !data) { if (data) XFree(data); return False; } if (data) XFree(data); return True; } Bool acceptXDND(Window window) { WScreen *scr = wScreenForWindow(window); WDock *dock; int icon_pos, i; icon_pos = -1; if ((dock = scr->dock) != NULL) { for (i = 0; i < dock->max_icons; i++) { if (dock->icon_array[i] && dock->icon_array[i]->icon->core->window == window) { icon_pos = i; break; } } } if (icon_pos < 0 && (dock = scr->workspaces[scr->current_workspace]->clip) != NULL) { for (i = 0; i < dock->max_icons; i++) { if (dock->icon_array[i] && dock->icon_array[i]->icon->core->window == window) { icon_pos = i; break; } } } if (icon_pos < 0) return False; if (!dock) return False; if (isAwareXDND(dock->icon_array[icon_pos]->icon->icon_win)) return False; if (dock->icon_array[icon_pos]->dnd_command != NULL) return True; return False; } Bool wXDNDProcessClientMessage(XClientMessageEvent * event) { /* test */ { char *name = XGetAtomName(dpy, event->message_type); /* printf("Get %s\n",name); */ XFree(name); } /* if (event->message_type == _XA_MOTIF_DRAG_AND_DROP_MESSAGE) { printf("motif dnd msg %d\n",event->data.b[0]); if (event->data.b[0] == XmDROP_START){ unsigned x_root, y_root, flags; unsigned char reason; unsigned long timestamp; Atom atom; Window source_window; MotifDragInitiatorInfo *initiator_info; Atom ret_type; int ret_format; unsigned long ret_item; unsigned long remain_byte; reason = event->data.b[0]; flags = event->data.s[1]; timestamp = event->data.l[1]; x_root = event->data.s[4]; y_root = event->data.s[5]; atom = event->data.l[3]; source_window = event->data.l[4]; XGetWindowProperty(dpy, source_window, atom, 0, sizeof(*initiator_info), True, atom_support, &ret_type, &ret_format, &ret_item, &remain_byte, (unsigned char **)&initiator_info); } } else */ if (event->message_type == _XA_XdndEnter) { if ((event->data.l[1] & 1) == 0) { atom_support = event->data.l[2]; } /* else puts("enter more than 3 types"); */ return True; } else if (event->message_type == _XA_XdndLeave) { return True; } else if (event->message_type == _XA_XdndDrop) { if (event->data.l[0] == XGetSelectionOwner(dpy, _XA_XdndSelection)) { XConvertSelection(dpy, _XA_XdndSelection, atom_support, _XA_WINDOWMAKER_XDNDEXCHANGE, event->window, CurrentTime); } else { puts("wierd selection owner? QT?"); XConvertSelection(dpy, _XA_XdndSelection, atom_support, _XA_WINDOWMAKER_XDNDEXCHANGE, event->window, CurrentTime); } return True; } else if (event->message_type == _XA_XdndPosition) { XEvent xevent; Window srcwin = event->data.l[0]; if (atom_support != XInternAtom(dpy, "text/uri-list", False)) { return True; } { memset(&xevent, 0, sizeof(xevent)); xevent.xany.type = ClientMessage; xevent.xany.display = dpy; xevent.xclient.window = srcwin; xevent.xclient.message_type = _XA_XdndStatus; xevent.xclient.format = 32; XDND_STATUS_TARGET_WIN(&xevent) = event->window; XDND_STATUS_WILL_ACCEPT_SET(&xevent, acceptXDND(event->window)); XDND_STATUS_WANT_POSITION_SET(&xevent, True); XDND_STATUS_RECT_SET(&xevent, 0, 0, 1024, 768); XDND_STATUS_ACTION(&xevent) = _XA_XdndActionCopy; XSendEvent(dpy, srcwin, 0, 0, &xevent); } return True; } return False; } #endif WindowMaker-0.95.5/src/startup.h0000644000175000017500000000253412214432632013427 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 2013 Window Maker Team * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMSTARTUP_H #define WMSTARTUP_H void StartUp(Bool defaultScreenOnly); void wHackedGrabButton(unsigned int button, unsigned int modifiers, Window grab_window, Bool owner_events, unsigned int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor); #ifdef NUMLOCK_HACK void wHackedGrabKey(int keycode, unsigned int modifiers, Window grab_window, Bool owner_events, int pointer_mode, int keyboard_mode); #endif #endif /* WMSTARTUP_H */ WindowMaker-0.95.5/src/colormap.h0000644000175000017500000000177412214432632013546 00000000000000/* * Window Maker window manager * * Copyright (c) 2000-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMCOLORMAP_H #define WMCOLORMAP_H void wColormapInstallForWindow(WScreen *scr, WWindow *wwin); void wColormapAllowClientInstallation(WScreen * scr, Bool starting); #endif /* WMCOLORMAP_H */ WindowMaker-0.95.5/src/misc.h0000644000175000017500000000363212214432632012660 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 2013 Window Maker Team * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMMISC_H_ #define WMMISC_H_ #include "defaults.h" #include "keybind.h" #include "appicon.h" Bool wFetchName(Display *dpy, Window win, char **winname); Bool wGetIconName(Display *dpy, Window win, char **iconname); Bool UpdateDomainFile(WDDomain * domain); void move_window(Window win, int from_x, int from_y, int to_x, int to_y); void SlideWindow(Window win, int from_x, int from_y, int to_x, int to_y); void SlideWindows(Window *wins[], int n, int from_x, int from_y, int to_x, int to_y); void ParseWindowName(WMPropList *value, char **winstance, char **wclass, const char *where); void SendHelperMessage(WScreen *scr, char type, int workspace, const char *msg); char *ShrinkString(WMFont *font, const char *string, int width); char *FindImage(const char *paths, const char *file); char *ExpandOptions(WScreen * scr, const char *cmdline); char *GetShortcutString(const char *text); char *GetShortcutKey(WShortKey key); char *EscapeWM_CLASS(const char *name, const char *class); char *StrConcatDot(const char *a, const char *b); char *GetCommandForWindow(Window win); #endif WindowMaker-0.95.5/src/motif.h0000644000175000017500000000166712214432632013051 00000000000000/* motif.h-- stuff for support for mwm hints * * Window Maker window manager * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMMWM_H_ #define WMMWM_H_ void wMWMCheckClientHints(WWindow *wwin); #endif WindowMaker-0.95.5/src/application.c0000644000175000017500000001243112214432632014220 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include "WindowMaker.h" #include "menu.h" #include "window.h" #ifdef USER_MENU #include "usermenu.h" #endif /* USER_MENU */ #include "appicon.h" #include "application.h" #include "appmenu.h" #include "properties.h" #include "workspace.h" #include "dock.h" #include "defaults.h" /******** Global variables ********/ extern XContext wAppWinContext; extern XContext wWinContext; /******** Local variables ********/ static WWindow *makeMainWindow(WScreen * scr, Window window) { WWindow *wwin; XWindowAttributes attr; if (!XGetWindowAttributes(dpy, window, &attr)) return NULL; wwin = wWindowCreate(); wwin->screen_ptr = scr; wwin->client_win = window; wwin->main_window = window; wwin->wm_hints = XGetWMHints(dpy, window); PropGetWMClass(window, &wwin->wm_class, &wwin->wm_instance); wDefaultFillAttributes(wwin->wm_instance, wwin->wm_class, &wwin->user_flags, &wwin->defined_user_flags, True); XSelectInput(dpy, window, attr.your_event_mask | PropertyChangeMask | StructureNotifyMask); return wwin; } WApplication *wApplicationOf(Window window) { WApplication *wapp; if (window == None) return NULL; if (XFindContext(dpy, window, wAppWinContext, (XPointer *) & wapp) != XCSUCCESS) return NULL; return wapp; } WApplication *wApplicationCreate(WWindow * wwin) { WScreen *scr = wwin->screen_ptr; Window main_window = wwin->main_window; WApplication *wapp; WWindow *leader; if (main_window == None || main_window == scr->root_win) return NULL; { Window root; int foo; unsigned int bar; /* check if the window is valid */ if (!XGetGeometry(dpy, main_window, &root, &foo, &foo, &bar, &bar, &bar, &bar)) return NULL; } wapp = wApplicationOf(main_window); if (wapp) { wapp->refcount++; if (wapp->app_icon && wapp->app_icon->docked && wapp->app_icon->relaunching && wapp->main_window_desc->fake_group) wDockFinishLaunch(wapp->app_icon->dock, wapp->app_icon); return wapp; } wapp = wmalloc(sizeof(WApplication)); wapp->refcount = 1; wapp->last_focused = NULL; wapp->urgent_bounce_timer = NULL; wapp->last_workspace = 0; wapp->main_window = main_window; wapp->main_window_desc = makeMainWindow(scr, main_window); if (!wapp->main_window_desc) { wfree(wapp); return NULL; } wapp->main_window_desc->fake_group = wwin->fake_group; wapp->main_window_desc->net_icon_image = RRetainImage(wwin->net_icon_image); leader = wWindowFor(main_window); if (leader) leader->main_window = main_window; wapp->menu = wAppMenuGet(scr, main_window); #ifdef USER_MENU if (!wapp->menu) wapp->menu = wUserMenuGet(scr, wapp->main_window_desc); #endif /* Set application wide attributes from the leader */ wapp->flags.hidden = WFLAGP(wapp->main_window_desc, start_hidden); wapp->flags.emulated = WFLAGP(wapp->main_window_desc, emulate_appicon); /* application descriptor */ XSaveContext(dpy, main_window, wAppWinContext, (XPointer) wapp); create_appicon_for_application(wapp, wwin); return wapp; } void wApplicationDestroy(WApplication * wapp) { WWindow *wwin; WScreen *scr; if (!wapp) return; wapp->refcount--; if (wapp->refcount > 0) return; if (wapp->urgent_bounce_timer) { WMDeleteTimerHandler(wapp->urgent_bounce_timer); wapp->urgent_bounce_timer = NULL; } if (wapp->flags.bouncing) { /* event.c:handleDestroyNotify forced this destroy and thereby overlooked the bounce callback */ wapp->refcount = 1; return; } scr = wapp->main_window_desc->screen_ptr; if (wapp == scr->wapp_list) { if (wapp->next) wapp->next->prev = NULL; scr->wapp_list = wapp->next; } else { if (wapp->next) wapp->next->prev = wapp->prev; if (wapp->prev) wapp->prev->next = wapp->next; } XDeleteContext(dpy, wapp->main_window, wAppWinContext); wAppMenuDestroy(wapp->menu); /* Remove application icon */ removeAppIconFor(wapp); wwin = wWindowFor(wapp->main_window_desc->client_win); wWindowDestroy(wapp->main_window_desc); if (wwin) { /* undelete client window context that was deleted in * wWindowDestroy */ XSaveContext(dpy, wwin->client_win, wWinContext, (XPointer) & wwin->client_descriptor); } wfree(wapp); } void wApplicationActivate(WApplication *wapp) { if (wapp->app_icon) { wIconSetHighlited(wapp->app_icon->icon, True); wAppIconPaint(wapp->app_icon); } } void wApplicationDeactivate(WApplication *wapp) { if (wapp->app_icon) { wIconSetHighlited(wapp->app_icon->icon, False); wAppIconPaint(wapp->app_icon); } } WindowMaker-0.95.5/src/dockedapp.c0000644000175000017500000003076412214432632013660 00000000000000/* dockedapp.c- docked application settings panel * * Window Maker window manager * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include "WindowMaker.h" #include "window.h" #include "icon.h" #include "appicon.h" #include "dock.h" #include "dockedapp.h" #include "dialog.h" #include "misc.h" #include "defaults.h" #include "framewin.h" #include "xinerama.h" static void updateCommand(WAppIcon * icon, char *command) { if (icon->command) wfree(icon->command); if (command && (command[0] == 0 || (command[0] == '-' && command[1] == 0))) { wfree(command); command = NULL; } icon->command = command; if (!icon->wm_class && !icon->wm_instance && icon->command && strlen(icon->command) > 0) { icon->forced_dock = 1; } } static void updatePasteCommand(WAppIcon * icon, char *command) { if (icon->paste_command) wfree(icon->paste_command); if (command && (command[0] == 0 || (command[0] == '-' && command[1] == 0))) { wfree(command); command = NULL; } icon->paste_command = command; } #ifdef XDND static void updateDNDCommand(WAppIcon * icon, char *command) { if (icon->dnd_command) wfree(icon->dnd_command); if (command && (command[0] == 0 || (command[0] == '-' && command[1] == 0))) { wfree(command); command = NULL; } icon->dnd_command = command; } #endif /* XDND */ static void updateSettingsPanelIcon(AppSettingsPanel * panel) { char *file; file = WMGetTextFieldText(panel->iconField); if (!file) WMSetLabelImage(panel->iconLabel, NULL); else { char *path; path = FindImage(wPreferences.icon_path, file); if (!path) { wwarning(_("could not find icon %s, used in a docked application"), file); wfree(file); WMSetLabelImage(panel->iconLabel, NULL); return; } else { WMPixmap *pixmap; RColor color; color.red = 0xae; color.green = 0xaa; color.blue = 0xae; color.alpha = 0; pixmap = WMCreateBlendedPixmapFromFile(WMWidgetScreen(panel->win), path, &color); if (!pixmap) { WMSetLabelImage(panel->iconLabel, NULL); } else { WMSetLabelImage(panel->iconLabel, pixmap); WMReleasePixmap(pixmap); } } wfree(file); wfree(path); } } static void chooseIconCallback(WMWidget * self, void *clientData) { char *file; AppSettingsPanel *panel = (AppSettingsPanel *) clientData; int result; panel->choosingIcon = 1; WMSetButtonEnabled(panel->browseBtn, False); result = wIconChooserDialog(panel->wwin->screen_ptr, &file, panel->editedIcon->wm_instance, panel->editedIcon->wm_class); panel->choosingIcon = 0; if (!panel->destroyed) { if (result) { WMSetTextFieldText(panel->iconField, file); wfree(file); updateSettingsPanelIcon(panel); } WMSetButtonEnabled(panel->browseBtn, True); } else { /* kluge for the case, the user asked to close the panel before * the icon chooser */ DestroyDockAppSettingsPanel(panel); } } static void panelBtnCallback(WMWidget * self, void *data) { WMButton *btn = self; AppSettingsPanel *panel = (AppSettingsPanel *) data; char *text; int done = 1; if (panel->okBtn == btn) { text = WMGetTextFieldText(panel->iconField); if (text[0] == 0) { wfree(text); text = NULL; } if (!wIconChangeImageFile(panel->editedIcon->icon, text)) { char *buf; int len = strlen(text) + 64; buf = wmalloc(len); snprintf(buf, len, _("Could not open specified icon file: %s"), text); if (wMessageDialog(panel->wwin->screen_ptr, _("Error"), buf, _("OK"), _("Ignore"), NULL) == WAPRDefault) { if (text) wfree(text); wfree(buf); return; } wfree(buf); } else { WAppIcon *aicon = panel->editedIcon; // Cf dock.c:dockIconPaint(WAppIcon *aicon)? if (aicon == aicon->icon->core->screen_ptr->clip_icon) wClipIconPaint(aicon); else if (wIsADrawer(aicon->icon->core->screen_ptr, aicon)) wDrawerIconPaint(aicon); else wAppIconPaint(aicon); wDefaultChangeIcon(panel->wwin->screen_ptr, aicon->wm_instance, aicon->wm_class, text); } if (text) wfree(text); /* cannot free text from this, because it will be not be duplicated * in updateCommand */ text = WMGetTextFieldText(panel->commandField); if (text[0] == 0) { wfree(text); text = NULL; } updateCommand(panel->editedIcon, text); #ifdef XDND /* cannot free text from this, because it will be not be duplicated * in updateDNDCommand */ text = WMGetTextFieldText(panel->dndCommandField); updateDNDCommand(panel->editedIcon, text); #endif text = WMGetTextFieldText(panel->pasteCommandField); updatePasteCommand(panel->editedIcon, text); panel->editedIcon->auto_launch = WMGetButtonSelected(panel->autoLaunchBtn); panel->editedIcon->lock = WMGetButtonSelected(panel->lockBtn); } if (done) DestroyDockAppSettingsPanel(panel); } #define PWIDTH 295 #define PHEIGHT 430 void ShowDockAppSettingsPanel(WAppIcon * aicon) { AppSettingsPanel *panel; WScreen *scr = aicon->icon->core->screen_ptr; Window parent; WMFont *font; int x, y; WMBox *vbox; panel = wmalloc(sizeof(AppSettingsPanel)); panel->editedIcon = aicon; aicon->panel = panel; aicon->editing = 1; panel->win = WMCreateWindow(scr->wmscreen, "applicationSettings"); WMResizeWidget(panel->win, PWIDTH, PHEIGHT); panel->iconLabel = WMCreateLabel(panel->win); WMResizeWidget(panel->iconLabel, 64, 64); WMMoveWidget(panel->iconLabel, 10, 10); WMSetLabelImagePosition(panel->iconLabel, WIPImageOnly); panel->nameLabel = WMCreateLabel(panel->win); WMResizeWidget(panel->nameLabel, 190, 18); WMMoveWidget(panel->nameLabel, 80, 35); WMSetLabelTextAlignment(panel->nameLabel, WALeft); font = WMBoldSystemFontOfSize(scr->wmscreen, 14); WMSetLabelFont(panel->nameLabel, font); WMReleaseFont(font); if (aicon->wm_class && strcmp(aicon->wm_class, "DockApp") == 0) WMSetLabelText(panel->nameLabel, aicon->wm_instance); else WMSetLabelText(panel->nameLabel, aicon->wm_class); vbox = WMCreateBox(panel->win); WMResizeWidget(vbox, PWIDTH - 20, PHEIGHT - 84 - 10); WMMoveWidget(vbox, 10, 84); panel->autoLaunchBtn = WMCreateSwitchButton(vbox); WMAddBoxSubview(vbox, WMWidgetView(panel->autoLaunchBtn), False, True, 20, 20, 2); WMSetButtonText(panel->autoLaunchBtn, _("Start when Window Maker is started")); WMSetButtonSelected(panel->autoLaunchBtn, aicon->auto_launch); panel->lockBtn = WMCreateSwitchButton(vbox); WMAddBoxSubview(vbox, WMWidgetView(panel->lockBtn), False, True, 20, 20, 5); WMSetButtonText(panel->lockBtn, _("Lock (prevent accidental removal)")); WMSetButtonSelected(panel->lockBtn, aicon->lock); panel->commandFrame = WMCreateFrame(vbox); WMSetFrameTitle(panel->commandFrame, _("Application path and arguments")); WMAddBoxSubview(vbox, WMWidgetView(panel->commandFrame), False, True, 50, 50, 5); panel->commandField = WMCreateTextField(panel->commandFrame); WMResizeWidget(panel->commandField, 256, 20); WMMoveWidget(panel->commandField, 10, 20); WMSetTextFieldText(panel->commandField, aicon->command); WMMapSubwidgets(panel->commandFrame); panel->pasteCommandFrame = WMCreateFrame(vbox); WMSetFrameTitle(panel->pasteCommandFrame, _("Command for middle-click launch")); WMAddBoxSubview(vbox, WMWidgetView(panel->pasteCommandFrame), False, True, 70, 70, 5); panel->pasteCommandField = WMCreateTextField(panel->pasteCommandFrame); WMResizeWidget(panel->pasteCommandField, 256, 20); WMMoveWidget(panel->pasteCommandField, 10, 20); panel->pasteCommandLabel = WMCreateLabel(panel->pasteCommandFrame); WMResizeWidget(panel->pasteCommandLabel, 256, 18); WMMoveWidget(panel->pasteCommandLabel, 10, 45); WMSetTextFieldText(panel->pasteCommandField, aicon->paste_command); WMSetLabelText(panel->pasteCommandLabel, _("%s will be replaced with current selection")); WMMapSubwidgets(panel->pasteCommandFrame); panel->dndCommandFrame = WMCreateFrame(vbox); WMSetFrameTitle(panel->dndCommandFrame, _("Command for files dropped with DND")); WMAddBoxSubview(vbox, WMWidgetView(panel->dndCommandFrame), False, True, 70, 70, 5); panel->dndCommandField = WMCreateTextField(panel->dndCommandFrame); WMResizeWidget(panel->dndCommandField, 256, 20); WMMoveWidget(panel->dndCommandField, 10, 20); panel->dndCommandLabel = WMCreateLabel(panel->dndCommandFrame); WMResizeWidget(panel->dndCommandLabel, 256, 18); WMMoveWidget(panel->dndCommandLabel, 10, 45); #ifdef XDND WMSetTextFieldText(panel->dndCommandField, aicon->dnd_command); WMSetLabelText(panel->dndCommandLabel, _("%d will be replaced with the file name")); #else WMSetTextFieldEditable(panel->dndCommandField, False); WMSetLabelText(panel->dndCommandLabel, _("DND support was not compiled in")); #endif WMMapSubwidgets(panel->dndCommandFrame); panel->iconFrame = WMCreateFrame(vbox); WMSetFrameTitle(panel->iconFrame, _("Icon Image")); WMAddBoxSubview(vbox, WMWidgetView(panel->iconFrame), False, True, 50, 50, 10); panel->iconField = WMCreateTextField(panel->iconFrame); WMResizeWidget(panel->iconField, 176, 20); WMMoveWidget(panel->iconField, 10, 20); WMSetTextFieldText(panel->iconField, wDefaultGetIconFile(aicon->wm_instance, aicon->wm_class, False)); panel->browseBtn = WMCreateCommandButton(panel->iconFrame); WMResizeWidget(panel->browseBtn, 70, 24); WMMoveWidget(panel->browseBtn, 195, 18); WMSetButtonText(panel->browseBtn, _("Browse...")); WMSetButtonAction(panel->browseBtn, chooseIconCallback, panel); { WMBox *hbox; hbox = WMCreateBox(vbox); WMSetBoxHorizontal(hbox, True); WMAddBoxSubview(vbox, WMWidgetView(hbox), False, True, 24, 24, 0); panel->okBtn = WMCreateCommandButton(hbox); WMSetButtonText(panel->okBtn, _("OK")); WMSetButtonAction(panel->okBtn, panelBtnCallback, panel); WMAddBoxSubviewAtEnd(hbox, WMWidgetView(panel->okBtn), False, True, 80, 80, 0); panel->cancelBtn = WMCreateCommandButton(hbox); WMSetButtonText(panel->cancelBtn, _("Cancel")); WMSetButtonAction(panel->cancelBtn, panelBtnCallback, panel); WMAddBoxSubviewAtEnd(hbox, WMWidgetView(panel->cancelBtn), False, True, 80, 80, 5); WMMapSubwidgets(hbox); } WMRealizeWidget(panel->win); WMMapSubwidgets(panel->win); WMMapSubwidgets(vbox); WMMapSubwidgets(panel->iconFrame); updateSettingsPanelIcon(panel); parent = XCreateSimpleWindow(dpy, scr->root_win, 0, 0, PWIDTH, PHEIGHT, 0, 0, 0); XSelectInput(dpy, parent, KeyPressMask | KeyReleaseMask); XReparentWindow(dpy, WMWidgetXID(panel->win), parent, 0, 0); /* * make things relative to head */ { WMRect rect = wGetRectForHead(scr, wGetHeadForPointerLocation(scr)); y = aicon->y_pos; if (y < 0) y = 0; else if (y + PHEIGHT > rect.pos.y + rect.size.height) y = rect.pos.y + rect.size.height - PHEIGHT - 30; if (aicon->dock && aicon->dock->type == WM_DOCK) { if (aicon->dock->on_right_side) x = rect.pos.x + rect.size.width / 2; else x = rect.pos.x + rect.size.width / 2 - PWIDTH - 2; } else { x = rect.pos.x + (rect.size.width - PWIDTH) / 2; } } panel->wwin = wManageInternalWindow(scr, parent, None, _("Docked Application Settings"), x, y, PWIDTH, PHEIGHT); panel->wwin->client_leader = WMWidgetXID(panel->win); panel->parent = parent; WMMapWidget(panel->win); wWindowMap(panel->wwin); } void DestroyDockAppSettingsPanel(AppSettingsPanel * panel) { if (!panel->destroyed) { XUnmapWindow(dpy, panel->wwin->client_win); XReparentWindow(dpy, panel->wwin->client_win, panel->wwin->screen_ptr->root_win, 0, 0); wUnmanageWindow(panel->wwin, False, False); } panel->destroyed = 1; /* * kluge. If we destroy the panel before the icon chooser is closed, * we will crash when it does close, trying to access something in the * destroyed panel. Could use wretain()/wrelease() in the panel, * but it is not working for some reason. */ if (panel->choosingIcon) return; WMDestroyWidget(panel->win); XDestroyWindow(dpy, panel->parent); panel->editedIcon->panel = NULL; panel->editedIcon->editing = 0; wfree(panel); } WindowMaker-0.95.5/src/workspace.h0000644000175000017500000000321312214432632013716 00000000000000/* workspace.c- Workspace management * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMWORKSPACE_H_ #define WMWORKSPACE_H_ typedef struct WWorkspace { char *name; struct WDock *clip; } WWorkspace; void wWorkspaceMake(WScreen *scr, int count); int wWorkspaceNew(WScreen *scr); int wGetWorkspaceNumber(WScreen *scr, const char *value); Bool wWorkspaceDelete(WScreen *scr, int workspace); void wWorkspaceChange(WScreen *scr, int workspace); void wWorkspaceForceChange(WScreen *scr, int workspace); WMenu *wWorkspaceMenuMake(WScreen *scr, Bool titled); void wWorkspaceMenuUpdate(WScreen *scr, WMenu *menu); void wWorkspaceMenuEdit(WScreen *scr); void wWorkspaceSaveState(WScreen *scr, WMPropList *old_state); void wWorkspaceRestoreState(WScreen *scr); void wWorkspaceRename(WScreen *scr, int workspace, const char *name); void wWorkspaceRelativeChange(WScreen *scr, int amount); #endif WindowMaker-0.95.5/src/switchmenu.h0000644000175000017500000000211112214432632014102 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 2013 Window Maker Team * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMSWITCHMENU_H #define WMSWITCHMENU_H void UpdateSwitchMenu(WScreen *scr, WWindow *wwin, int action); void OpenSwitchMenu(WScreen *scr, int x, int y, int keyboard); void InitializeSwitchMenu(void); #endif /* WMSWITCHMENU_H */ WindowMaker-0.95.5/src/superfluous.h0000644000175000017500000000202012214432632014307 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMSUPERFLUOUS_H #define WMSUPERFLUOUS_H #include "dock.h" void DoKaboom(WScreen *scr, Window win, int x, int y); Pixmap MakeGhostIcon(WScreen *scr, Drawable drawable); void DoWindowBirth(WWindow *wwin); #endif WindowMaker-0.95.5/src/texture.h0000644000175000017500000001102312214432632013416 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMTEXTURE_H_ #define WMTEXTURE_H_ #include "screen.h" #include "wcore.h" /* texture relief */ #define WREL_RAISED 0 #define WREL_SUNKEN 1 #define WREL_FLAT 2 #define WREL_ICON 4 #define WREL_MENUENTRY 6 /* texture types */ #define WREL_BORDER_MASK 1 #define WTEX_SOLID ((1<<1)|WREL_BORDER_MASK) #define WTEX_HGRADIENT ((1<<2)|WREL_BORDER_MASK) #define WTEX_VGRADIENT ((1<<3)|WREL_BORDER_MASK) #define WTEX_DGRADIENT ((1<<4)|WREL_BORDER_MASK) #define WTEX_MHGRADIENT ((1<<5)|WREL_BORDER_MASK) #define WTEX_MVGRADIENT ((1<<6)|WREL_BORDER_MASK) #define WTEX_MDGRADIENT ((1<<7)|WREL_BORDER_MASK) #define WTEX_IGRADIENT ((1<<8)|WREL_BORDER_MASK) #define WTEX_PIXMAP (1<<10) #define WTEX_THGRADIENT ((1<<11)|WREL_BORDER_MASK) #define WTEX_TVGRADIENT ((1<<12)|WREL_BORDER_MASK) #define WTEX_TDGRADIENT ((1<<13)|WREL_BORDER_MASK) #define WTEX_FUNCTION ((1<<14)|WREL_BORDER_MASK) /* pixmap subtypes */ #define WTP_TILE 2 #define WTP_SCALE 4 #define WTP_CENTER 6 typedef struct { short type; /* type of texture */ char subtype; /* subtype of the texture */ XColor color; /* default background color */ GC gc; /* gc for the background color */ } WTexAny; typedef struct WTexSolid { short type; char subtype; XColor normal; GC normal_gc; GC light_gc; GC dim_gc; GC dark_gc; XColor light; XColor dim; XColor dark; } WTexSolid; typedef struct WTexGradient { short type; char subtype; XColor normal; GC normal_gc; RColor color1; RColor color2; } WTexGradient; typedef struct WTexMGradient { short type; char subtype; XColor normal; GC normal_gc; RColor **colors; } WTexMGradient; typedef struct WTexIGradient { short type; char dummy; XColor normal; GC normal_gc; RColor colors1[2]; RColor colors2[2]; int thickness1; int thickness2; } WTexIGradient; typedef struct WTexPixmap { short type; char subtype; XColor normal; GC normal_gc; struct RImage *pixmap; } WTexPixmap; typedef struct WTexTGradient { short type; char subtype; XColor normal; GC normal_gc; RColor color1; RColor color2; struct RImage *pixmap; int opacity; } WTexTGradient; typedef struct WTexFunction { short type; char subtype; XColor normal; GC normal_gc; void *handle; RImage *(*render) (int, char**, int, int, int); int argc; char **argv; } WTexFunction; typedef union WTexture { WTexAny any; WTexSolid solid; WTexGradient gradient; WTexIGradient igradient; WTexMGradient mgradient; WTexPixmap pixmap; WTexTGradient tgradient; WTexFunction function; } WTexture; WTexSolid *wTextureMakeSolid(WScreen*, XColor*); WTexGradient *wTextureMakeGradient(WScreen*, int, const RColor*, const RColor*); WTexMGradient *wTextureMakeMGradient(WScreen*, int, RColor**); WTexTGradient *wTextureMakeTGradient(WScreen*, int, const RColor*, const RColor*, const char *, int); WTexIGradient *wTextureMakeIGradient(WScreen*, int, const RColor[], int, const RColor[]); WTexPixmap *wTextureMakePixmap(WScreen *scr, int style, const char *pixmap_file, XColor *color); void wTextureDestroy(WScreen*, WTexture*); void wTexturePaint(WTexture *, Pixmap *, WCoreWindow*, int, int); void wTextureRender(WScreen*, WTexture*, Pixmap*, int, int, int); struct RImage *wTextureRenderImage(WTexture*, int, int, int); void wTexturePaintTitlebar(struct WWindow *wwin, WTexture *texture, Pixmap *tdata, int repaint); #define FREE_PIXMAP(p) if ((p)!=None) XFreePixmap(dpy, (p)), (p)=None void wDrawBevel(Drawable d, unsigned width, unsigned height, WTexSolid *texture, int relief); #endif WindowMaker-0.95.5/src/framewin.c0000644000175000017500000012507212214432632013533 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #ifdef KEEP_XKB_LOCK_STATUS #include #endif /* KEEP_XKB_LOCK_STATUS */ #include #include #include #include "WindowMaker.h" #include "GNUstep.h" #include "texture.h" #include "resources.h" #include "screen.h" #include "wcore.h" #include "window.h" #include "framewin.h" #include "stacking.h" #include "misc.h" #include "event.h" #define DBLCLICK_TIME wPreferences.dblclick_time static void handleExpose(WObjDescriptor * desc, XEvent * event); static void handleButtonExpose(WObjDescriptor * desc, XEvent * event); static void buttonMouseDown(WObjDescriptor * desc, XEvent * event); static void titlebarMouseDown(WObjDescriptor * desc, XEvent * event); static void resizebarMouseDown(WObjDescriptor * desc, XEvent * event); static void checkTitleSize(WFrameWindow * fwin); static void paintButton(WCoreWindow * button, WTexture * texture, unsigned long color, WPixmap * image, int pushed); static void updateTitlebar(WFrameWindow * fwin); static void allocFrameBorderPixel(Colormap colormap, const char *color_name, unsigned long **pixel); static void allocFrameBorderPixel(Colormap colormap, const char *color_name, unsigned long **pixel) { XColor xcol; *pixel = NULL; if (! wGetColorForColormap(colormap, color_name, &xcol)) return; *pixel = wmalloc(sizeof(unsigned long)); if (*pixel) **pixel = xcol.pixel; } WFrameWindow *wFrameWindowCreate(WScreen * scr, int wlevel, int x, int y, int width, int height, int *clearance, int *title_min, int *title_max, int flags, WTexture ** title_texture, WTexture ** resize_texture, WMColor ** color, WMFont ** font, int depth, Visual *visual, Colormap colormap) { WFrameWindow *fwin; fwin = wmalloc(sizeof(WFrameWindow)); fwin->screen_ptr = scr; fwin->flags.single_texture = (flags & WFF_SINGLE_STATE) ? 1 : 0; fwin->title_texture = title_texture; fwin->resizebar_texture = resize_texture; fwin->title_color = color; fwin->title_clearance = clearance; fwin->title_min_height = title_min; fwin->title_max_height = title_max; fwin->font = font; #ifdef KEEP_XKB_LOCK_STATUS fwin->languagemode = XkbGroup1Index; fwin->last_languagemode = XkbGroup2Index; #endif fwin->depth = depth; fwin->visual = visual; fwin->colormap = colormap; fwin->core = wCoreCreateTopLevel(scr, x, y, width, height, (flags & WFF_BORDER) ? scr->frame_border_width : 0, fwin->depth, fwin->visual, fwin->colormap, scr->frame_border_pixel); /* setup stacking information */ fwin->core->stacking = wmalloc(sizeof(WStacking)); fwin->core->stacking->above = NULL; fwin->core->stacking->under = NULL; fwin->core->stacking->child_of = NULL; fwin->core->stacking->window_level = wlevel; AddToStackList(fwin->core); wFrameWindowUpdateBorders(fwin, flags); return fwin; } void wFrameWindowUpdateBorders(WFrameWindow * fwin, int flags) { int theight; int bsize; int width, height; int i; WScreen *scr = fwin->screen_ptr; width = fwin->core->width; if (flags & WFF_IS_SHADED) height = -1; else height = fwin->core->height - fwin->top_width - fwin->bottom_width; if (flags & WFF_TITLEBAR) { theight = WMFontHeight(*fwin->font) + (*fwin->title_clearance + TITLEBAR_EXTEND_SPACE) * 2; if (theight > *fwin->title_max_height) theight = *fwin->title_max_height; if (theight < *fwin->title_min_height) theight = *fwin->title_min_height; } else { theight = 0; } if (wPreferences.new_style == TS_NEW) { bsize = theight; } else if (wPreferences.new_style == TS_OLD) { bsize = theight - 7; } else { bsize = theight - 8; } if (fwin->titlebar) { /* if we had a titlebar and is requesting for one, * check if the size has changed and resize it */ if (flags & WFF_TITLEBAR) { fwin->top_width = theight; fwin->flags.need_texture_remake = 1; if (wPreferences.new_style == TS_NEW) { if (fwin->left_button) wCoreConfigure(fwin->left_button, 0, 0, bsize, bsize); #ifdef XKB_BUTTON_HINT if (fwin->language_button) { if (fwin->flags.hide_left_button || !fwin->left_button || fwin->flags.lbutton_dont_fit) wCoreConfigure(fwin->language_button, 0, 0, bsize, bsize); else wCoreConfigure(fwin->language_button, bsize, 0, bsize, bsize); } #endif if (fwin->right_button) wCoreConfigure(fwin->right_button, width - bsize + 1, 0, bsize, bsize); } else { /* !new_style */ if (fwin->left_button) wCoreConfigure(fwin->left_button, 3, (theight - bsize) / 2, bsize, bsize); #ifdef XKB_BUTTON_HINT if (fwin->language_button) wCoreConfigure(fwin->language_button, 6 + bsize, (theight - bsize) / 2, bsize, bsize); #endif if (fwin->right_button) wCoreConfigure(fwin->right_button, width - bsize - 3, (theight - bsize) / 2, bsize, bsize); } updateTitlebar(fwin); } else { /* we had a titlebar, but now we don't need it anymore */ for (i = 0; i < (fwin->flags.single_texture ? 1 : 3); i++) { FREE_PIXMAP(fwin->title_back[i]); if (wPreferences.new_style == TS_NEW) { FREE_PIXMAP(fwin->lbutton_back[i]); FREE_PIXMAP(fwin->rbutton_back[i]); #ifdef XKB_BUTTON_HINT FREE_PIXMAP(fwin->languagebutton_back[i]); #endif } } if (fwin->left_button) wCoreDestroy(fwin->left_button); fwin->left_button = NULL; #ifdef XKB_BUTTON_HINT if (fwin->language_button) wCoreDestroy(fwin->language_button); fwin->language_button = NULL; #endif if (fwin->right_button) wCoreDestroy(fwin->right_button); fwin->right_button = NULL; wCoreDestroy(fwin->titlebar); fwin->titlebar = NULL; fwin->top_width = 0; } } else { /* if we didn't have a titlebar and are being requested for * one, create it */ if (flags & WFF_TITLEBAR) { fwin->top_width = theight; fwin->flags.titlebar = 1; fwin->titlebar = wCoreCreate(fwin->core, 0, 0, width + 1, theight); if (flags & WFF_LEFT_BUTTON) { fwin->flags.left_button = 1; if (wPreferences.new_style == TS_NEW) { fwin->left_button = wCoreCreate(fwin->core, 0, 0, bsize, bsize); if (width < theight * 4) fwin->flags.lbutton_dont_fit = 1; else XMapRaised(dpy, fwin->left_button->window); } else if (wPreferences.new_style == TS_OLD) { fwin->left_button = wCoreCreate(fwin->titlebar, 3, (theight - bsize) / 2, bsize, bsize); XSetWindowBackground(dpy, fwin->left_button->window, scr->widget_texture->normal.pixel); if (width < theight * 3) fwin->flags.lbutton_dont_fit = 1; else XMapRaised(dpy, fwin->left_button->window); } else { fwin->left_button = wCoreCreate(fwin->titlebar, 3, (theight-bsize)/2, bsize, bsize); XSetWindowBackground(dpy, fwin->left_button->window, scr->widget_texture->dark.pixel); if (width < theight * 3) fwin->flags.lbutton_dont_fit = 1; else XMapRaised(dpy, fwin->left_button->window); } } #ifdef XKB_BUTTON_HINT if (flags & WFF_LANGUAGE_BUTTON) { fwin->flags.language_button = 1; if (wPreferences.new_style == TS_NEW) { fwin->language_button = wCoreCreate(fwin->core, bsize, 0, bsize, bsize); if (width < theight * 4) fwin->flags.languagebutton_dont_fit = 1; else XMapRaised(dpy, fwin->language_button->window); } else { fwin->language_button = wCoreCreate(fwin->titlebar, bsize + 6, (theight - bsize) / 2, bsize, bsize); XSetWindowBackground(dpy, fwin->language_button->window, scr->widget_texture->normal.pixel); if (width < theight * 3) fwin->flags.languagebutton_dont_fit = 1; else XMapRaised(dpy, fwin->language_button->window); } } #endif if (flags & WFF_RIGHT_BUTTON) { fwin->flags.right_button = 1; if (wPreferences.new_style == TS_NEW) { fwin->right_button = wCoreCreate(fwin->core, width - bsize + 1, 0, bsize, bsize); } else if (wPreferences.new_style == TS_OLD) { fwin->right_button = wCoreCreate(fwin->titlebar, width - bsize - 3, (theight - bsize) / 2, bsize, bsize); XSetWindowBackground(dpy, fwin->right_button->window, scr->widget_texture->normal.pixel); } else { fwin->right_button = wCoreCreate(fwin->titlebar, width-bsize-3, (theight-bsize)/2, bsize, bsize); XSetWindowBackground(dpy, fwin->right_button->window, scr->widget_texture->dark.pixel); } if (width < theight * 2) fwin->flags.rbutton_dont_fit = 1; else XMapRaised(dpy, fwin->right_button->window); } if (wPreferences.new_style == TS_NEW) updateTitlebar(fwin); XMapRaised(dpy, fwin->titlebar->window); fwin->flags.need_texture_remake = 1; } } checkTitleSize(fwin); if (flags & WFF_RESIZEBAR) { fwin->bottom_width = RESIZEBAR_HEIGHT; if (!fwin->resizebar) { fwin->flags.resizebar = 1; fwin->resizebar = wCoreCreate(fwin->core, 0, height + fwin->top_width, width, RESIZEBAR_HEIGHT); fwin->resizebar_corner_width = RESIZEBAR_CORNER_WIDTH; if (width < RESIZEBAR_CORNER_WIDTH * 2 + RESIZEBAR_MIN_WIDTH) { fwin->resizebar_corner_width = (width - RESIZEBAR_MIN_WIDTH) / 2; if (fwin->resizebar_corner_width < 0) fwin->resizebar_corner_width = 0; } XMapWindow(dpy, fwin->resizebar->window); XLowerWindow(dpy, fwin->resizebar->window); fwin->flags.need_texture_remake = 1; } else { if (height + fwin->top_width + fwin->bottom_width != fwin->core->height) wCoreConfigure(fwin->resizebar, 0, height + fwin->top_width, width, RESIZEBAR_HEIGHT); } } else { fwin->bottom_width = 0; if (fwin->resizebar) { fwin->bottom_width = 0; wCoreDestroy(fwin->resizebar); fwin->resizebar = NULL; } } 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); if (flags & WFF_BORDER) XSetWindowBorderWidth(dpy, fwin->core->window, scr->frame_border_width); else XSetWindowBorderWidth(dpy, fwin->core->window, 0); /* setup object descriptors */ if (fwin->titlebar) { fwin->titlebar->descriptor.handle_expose = handleExpose; fwin->titlebar->descriptor.parent = fwin; fwin->titlebar->descriptor.parent_type = WCLASS_FRAME; fwin->titlebar->descriptor.handle_mousedown = titlebarMouseDown; } if (fwin->resizebar) { fwin->resizebar->descriptor.handle_expose = handleExpose; fwin->resizebar->descriptor.parent = fwin; fwin->resizebar->descriptor.parent_type = WCLASS_FRAME; fwin->resizebar->descriptor.handle_mousedown = resizebarMouseDown; } if (fwin->left_button) { fwin->left_button->descriptor.handle_expose = handleButtonExpose; fwin->left_button->descriptor.parent = fwin; fwin->left_button->descriptor.parent_type = WCLASS_FRAME; fwin->left_button->descriptor.handle_mousedown = buttonMouseDown; } #ifdef XKB_BUTTON_HINT if (fwin->language_button) { fwin->language_button->descriptor.handle_expose = handleButtonExpose; fwin->language_button->descriptor.parent = fwin; fwin->language_button->descriptor.parent_type = WCLASS_FRAME; fwin->language_button->descriptor.handle_mousedown = buttonMouseDown; } #endif if (fwin->right_button) { fwin->right_button->descriptor.parent = fwin; fwin->right_button->descriptor.parent_type = WCLASS_FRAME; fwin->right_button->descriptor.handle_expose = handleButtonExpose; fwin->right_button->descriptor.handle_mousedown = buttonMouseDown; } checkTitleSize(fwin); allocFrameBorderPixel(fwin->colormap, WMGetColorRGBDescription(scr->frame_border_color), &fwin->border_pixel); allocFrameBorderPixel(fwin->colormap, WMGetColorRGBDescription(scr->frame_selected_border_color), &fwin->selected_border_pixel); if (flags & WFF_SELECTED) { if (fwin->selected_border_pixel) XSetWindowBorder(dpy, fwin->core->window, *fwin->selected_border_pixel); } else { if (fwin->border_pixel) XSetWindowBorder(dpy, fwin->core->window, *fwin->border_pixel); } } void wFrameWindowDestroy(WFrameWindow * fwin) { int i; if (fwin->left_button) wCoreDestroy(fwin->left_button); #ifdef XKB_BUTTON_HINT if (fwin->language_button) wCoreDestroy(fwin->language_button); #endif if (fwin->right_button) wCoreDestroy(fwin->right_button); if (fwin->resizebar) wCoreDestroy(fwin->resizebar); if (fwin->titlebar) wCoreDestroy(fwin->titlebar); RemoveFromStackList(fwin->core); wCoreDestroy(fwin->core); if (fwin->title) wfree(fwin->title); for (i = 0; i < (fwin->flags.single_texture ? 1 : 3); i++) { FREE_PIXMAP(fwin->title_back[i]); if (wPreferences.new_style == TS_NEW) { FREE_PIXMAP(fwin->lbutton_back[i]); #ifdef XKB_BUTTON_HINT FREE_PIXMAP(fwin->languagebutton_back[i]); #endif FREE_PIXMAP(fwin->rbutton_back[i]); } } wfree(fwin); } void wFrameWindowChangeState(WFrameWindow * fwin, int state) { if (fwin->flags.state == state) return; fwin->flags.state = state; fwin->flags.need_texture_change = 1; wFrameWindowPaint(fwin); } static void updateTitlebar(WFrameWindow * fwin) { int x, w; int theight; theight = WMFontHeight(*fwin->font) + (*fwin->title_clearance + TITLEBAR_EXTEND_SPACE) * 2; if (theight > *fwin->title_max_height) theight = *fwin->title_max_height; if (theight < *fwin->title_min_height) theight = *fwin->title_min_height; x = 0; w = fwin->core->width + 1; if (wPreferences.new_style == TS_NEW) { if (fwin->flags.hide_left_button || !fwin->left_button || fwin->flags.lbutton_dont_fit) { x = 0; #ifdef XKB_BUTTON_HINT if (fwin->language_button) wCoreConfigure(fwin->language_button, 0, 0, fwin->language_button->width, fwin->language_button->width); #endif } else { #ifdef XKB_BUTTON_HINT if (fwin->language_button) wCoreConfigure(fwin->language_button, fwin->left_button->width, 0, fwin->language_button->width, fwin->language_button->width); #endif x = fwin->left_button->width; w -= fwin->left_button->width; } #ifdef XKB_BUTTON_HINT if (fwin->flags.hide_language_button || !fwin->language_button || fwin->flags.languagebutton_dont_fit) { } else { x += fwin->language_button->width; w -= fwin->language_button->width; } #endif } #ifdef XKB_BUTTON_HINT else { int bsize = theight - 7; if (fwin->flags.hide_left_button || !fwin->left_button || fwin->flags.lbutton_dont_fit) { if (fwin->language_button) wCoreConfigure(fwin->language_button, 3, (theight - bsize) / 2, fwin->language_button->width, fwin->language_button->width); } else { if (fwin->language_button) wCoreConfigure(fwin->language_button, 6 + fwin->left_button->width, (theight - bsize) / 2, fwin->language_button->width, fwin->language_button->width); } } #endif if (wPreferences.new_style == TS_NEW) { if (!fwin->flags.hide_right_button && fwin->right_button && !fwin->flags.rbutton_dont_fit) w -= fwin->right_button->width; } if (wPreferences.new_style == TS_NEW || fwin->titlebar->width != w) fwin->flags.need_texture_remake = 1; wCoreConfigure(fwin->titlebar, x, 0, w, theight); } void wFrameWindowHideButton(WFrameWindow * fwin, int flags) { if ((flags & WFF_RIGHT_BUTTON) && fwin->right_button) { XUnmapWindow(dpy, fwin->right_button->window); fwin->flags.hide_right_button = 1; } if ((flags & WFF_LEFT_BUTTON) && fwin->left_button) { XUnmapWindow(dpy, fwin->left_button->window); fwin->flags.hide_left_button = 1; } #ifdef XKB_BUTTON_HINT if ((flags & WFF_LANGUAGE_BUTTON) && fwin->language_button) { XUnmapWindow(dpy, fwin->language_button->window); fwin->flags.hide_language_button = 1; } #endif if (fwin->titlebar) { if (wPreferences.new_style == TS_NEW) { updateTitlebar(fwin); } else { #ifdef XKB_BUTTON_HINT updateTitlebar(fwin); #else XClearWindow(dpy, fwin->titlebar->window); wFrameWindowPaint(fwin); #endif } checkTitleSize(fwin); } } void wFrameWindowShowButton(WFrameWindow * fwin, int flags) { if ((flags & WFF_RIGHT_BUTTON) && fwin->right_button && fwin->flags.hide_right_button) { if (!fwin->flags.rbutton_dont_fit) XMapWindow(dpy, fwin->right_button->window); fwin->flags.hide_right_button = 0; } #ifdef XKB_BUTTON_HINT if ((flags & WFF_LANGUAGE_BUTTON) && fwin->language_button && fwin->flags.hide_language_button) { if (!fwin->flags.languagebutton_dont_fit) XMapWindow(dpy, fwin->language_button->window); fwin->flags.hide_language_button = 0; } #endif if ((flags & WFF_LEFT_BUTTON) && fwin->left_button && fwin->flags.hide_left_button) { if (!fwin->flags.lbutton_dont_fit) XMapWindow(dpy, fwin->left_button->window); fwin->flags.hide_left_button = 0; } if (fwin->titlebar) { if (wPreferences.new_style == TS_NEW) { updateTitlebar(fwin); } else { XClearWindow(dpy, fwin->titlebar->window); wFrameWindowPaint(fwin); } checkTitleSize(fwin); } } static void #ifdef XKB_BUTTON_HINT renderTexture(WScreen * scr, WTexture * texture, int width, int height, int bwidth, int bheight, int left, int language, int right, Pixmap * title, Pixmap * lbutton, Pixmap * languagebutton, Pixmap * rbutton) #else renderTexture(WScreen * scr, WTexture * texture, int width, int height, int bwidth, int bheight, int left, int right, Pixmap * title, Pixmap * lbutton, Pixmap * rbutton) #endif { RImage *img; RImage *limg, *rimg, *mimg; #ifdef XKB_BUTTON_HINT RImage *timg; #endif int x, w; *title = None; *lbutton = None; *rbutton = None; #ifdef XKB_BUTTON_HINT *languagebutton = None; #endif img = wTextureRenderImage(texture, width, height, WREL_FLAT); if (!img) { wwarning(_("could not render texture: %s"), RMessageForError(RErrorCode)); return; } if (wPreferences.new_style == TS_NEW) { if (left) limg = RGetSubImage(img, 0, 0, bwidth, bheight); else limg = NULL; x = 0; w = img->width; #ifdef XKB_BUTTON_HINT if (language) timg = RGetSubImage(img, bwidth * left, 0, bwidth, bheight); else timg = NULL; #endif if (limg) { RBevelImage(limg, RBEV_RAISED2); if (!RConvertImage(scr->rcontext, limg, lbutton)) wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode)); x += limg->width; w -= limg->width; RReleaseImage(limg); } #ifdef XKB_BUTTON_HINT if (timg) { RBevelImage(timg, RBEV_RAISED2); if (!RConvertImage(scr->rcontext, timg, languagebutton)) wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode)); x += timg->width; w -= timg->width; RReleaseImage(timg); } #endif if (right) rimg = RGetSubImage(img, width - bwidth, 0, bwidth, bheight); else rimg = NULL; if (rimg) { RBevelImage(rimg, RBEV_RAISED2); if (!RConvertImage(scr->rcontext, rimg, rbutton)) wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode)); w -= rimg->width; RReleaseImage(rimg); } if (w != width) { mimg = RGetSubImage(img, x, 0, w, img->height); RBevelImage(mimg, RBEV_RAISED2); if (!RConvertImage(scr->rcontext, mimg, title)) wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode)); RReleaseImage(mimg); } else { RBevelImage(img, RBEV_RAISED2); if (!RConvertImage(scr->rcontext, img, title)) wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode)); } } else { RBevelImage(img, RBEV_RAISED2); if (!RConvertImage(scr->rcontext, img, title)) wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode)); } RReleaseImage(img); } static void renderResizebarTexture(WScreen * scr, WTexture * texture, int width, int height, int cwidth, Pixmap * pmap) { RImage *img; RColor light; RColor dark; *pmap = None; img = wTextureRenderImage(texture, width, height, WREL_FLAT); if (!img) { wwarning(_("could not render texture: %s"), RMessageForError(RErrorCode)); return; } light.alpha = 0; light.red = light.green = light.blue = 80; dark.alpha = 0; dark.red = dark.green = dark.blue = 40; ROperateLine(img, RSubtractOperation, 0, 0, width - 1, 0, &dark); ROperateLine(img, RAddOperation, 0, 1, width - 1, 1, &light); ROperateLine(img, RSubtractOperation, cwidth, 2, cwidth, height - 1, &dark); ROperateLine(img, RAddOperation, cwidth + 1, 2, cwidth + 1, height - 1, &light); if (width > 1) ROperateLine(img, RSubtractOperation, width - cwidth - 2, 2, width - cwidth - 2, height - 1, &dark); ROperateLine(img, RAddOperation, width - cwidth - 1, 2, width - cwidth - 1, height - 1, &light); #ifdef SHADOW_RESIZEBAR ROperateLine(img, RAddOperation, 0, 1, 0, height - 1, &light); ROperateLine(img, RSubtractOperation, width - 1, 1, width - 1, height - 1, &dark); ROperateLine(img, RSubtractOperation, 0, height - 1, width - 1, height - 1, &dark); #endif /* SHADOW_RESIZEBAR */ if (!RConvertImage(scr->rcontext, img, pmap)) wwarning(_("error rendering image: %s"), RMessageForError(RErrorCode)); RReleaseImage(img); } static void updateTexture(WFrameWindow * fwin) { int i; unsigned long pixel; i = fwin->flags.state; if (fwin->titlebar) { if (fwin->title_texture[i]->any.type != WTEX_SOLID) { XSetWindowBackgroundPixmap(dpy, fwin->titlebar->window, fwin->title_back[i]); if (wPreferences.new_style == TS_NEW) { if (fwin->left_button && fwin->lbutton_back[i]) XSetWindowBackgroundPixmap(dpy, fwin->left_button->window, fwin->lbutton_back[i]); #ifdef XKB_BUTTON_HINT if (fwin->language_button && fwin->languagebutton_back[i]) XSetWindowBackgroundPixmap(dpy, fwin->language_button->window, fwin->languagebutton_back[i]); #endif if (fwin->right_button && fwin->rbutton_back[i]) XSetWindowBackgroundPixmap(dpy, fwin->right_button->window, fwin->rbutton_back[i]); } } else { pixel = fwin->title_texture[i]->solid.normal.pixel; XSetWindowBackground(dpy, fwin->titlebar->window, pixel); if (wPreferences.new_style == TS_NEW) { if (fwin->left_button) XSetWindowBackground(dpy, fwin->left_button->window, pixel); #ifdef XKB_BUTTON_HINT if (fwin->language_button) XSetWindowBackground(dpy, fwin->language_button->window, pixel); #endif if (fwin->right_button) XSetWindowBackground(dpy, fwin->right_button->window, pixel); } } XClearWindow(dpy, fwin->titlebar->window); if (fwin->left_button) { XClearWindow(dpy, fwin->left_button->window); handleButtonExpose(&fwin->left_button->descriptor, NULL); } #ifdef XKB_BUTTON_HINT if (fwin->language_button) { XClearWindow(dpy, fwin->language_button->window); handleButtonExpose(&fwin->language_button->descriptor, NULL); } #endif if (fwin->right_button) { XClearWindow(dpy, fwin->right_button->window); handleButtonExpose(&fwin->right_button->descriptor, NULL); } } } static void remakeTexture(WFrameWindow * fwin, int state) { Pixmap pmap, lpmap, rpmap; #ifdef XKB_BUTTON_HINT Pixmap tpmap; #endif if (fwin->title_texture[state] && fwin->titlebar) { FREE_PIXMAP(fwin->title_back[state]); if (wPreferences.new_style == TS_NEW) { FREE_PIXMAP(fwin->lbutton_back[state]); FREE_PIXMAP(fwin->rbutton_back[state]); #ifdef XKB_BUTTON_HINT FREE_PIXMAP(fwin->languagebutton_back[state]); #endif } if (fwin->title_texture[state]->any.type != WTEX_SOLID) { int left, right; int width; #ifdef XKB_BUTTON_HINT int language; #endif /* eventually surrounded by if new_style */ left = fwin->left_button && !fwin->flags.hide_left_button && !fwin->flags.lbutton_dont_fit; #ifdef XKB_BUTTON_HINT language = fwin->language_button && !fwin->flags.hide_language_button && !fwin->flags.languagebutton_dont_fit; #endif right = fwin->right_button && !fwin->flags.hide_right_button && !fwin->flags.rbutton_dont_fit; width = fwin->core->width + 1; #ifdef XKB_BUTTON_HINT renderTexture(fwin->screen_ptr, fwin->title_texture[state], width, fwin->titlebar->height, fwin->titlebar->height, fwin->titlebar->height, left, language, right, &pmap, &lpmap, &tpmap, &rpmap); #else renderTexture(fwin->screen_ptr, fwin->title_texture[state], width, fwin->titlebar->height, fwin->titlebar->height, fwin->titlebar->height, left, right, &pmap, &lpmap, &rpmap); #endif fwin->title_back[state] = pmap; if (wPreferences.new_style == TS_NEW) { fwin->lbutton_back[state] = lpmap; fwin->rbutton_back[state] = rpmap; #ifdef XKB_BUTTON_HINT fwin->languagebutton_back[state] = tpmap; #endif } } } if (fwin->resizebar_texture && fwin->resizebar_texture[0] && fwin->resizebar && state == 0) { FREE_PIXMAP(fwin->resizebar_back[0]); if (fwin->resizebar_texture[0]->any.type != WTEX_SOLID) { renderResizebarTexture(fwin->screen_ptr, fwin->resizebar_texture[0], fwin->resizebar->width, fwin->resizebar->height, fwin->resizebar_corner_width, &pmap); fwin->resizebar_back[0] = pmap; } /* this part should be in updateTexture() */ if (fwin->resizebar_texture[0]->any.type != WTEX_SOLID) XSetWindowBackgroundPixmap(dpy, fwin->resizebar->window, fwin->resizebar_back[0]); else XSetWindowBackground(dpy, fwin->resizebar->window, fwin->resizebar_texture[0]->solid.normal.pixel); XClearWindow(dpy, fwin->resizebar->window); } } void wFrameWindowPaint(WFrameWindow * fwin) { WScreen *scr = fwin->screen_ptr; int state; state = fwin->flags.state; if (fwin->flags.is_client_window_frame) fwin->flags.justification = wPreferences.title_justification; if (fwin->flags.need_texture_remake) { int i; fwin->flags.need_texture_remake = 0; fwin->flags.need_texture_change = 0; if (fwin->flags.single_texture) { remakeTexture(fwin, 0); updateTexture(fwin); } else { /* first render the texture for the current state... */ remakeTexture(fwin, state); /* ... and paint it */ updateTexture(fwin); for (i = 0; i < 3; i++) { if (i != state) remakeTexture(fwin, i); } } } if (fwin->flags.need_texture_change) { fwin->flags.need_texture_change = 0; updateTexture(fwin); } if (fwin->titlebar && !fwin->flags.repaint_only_resizebar && fwin->title_texture[state]->any.type == WTEX_SOLID) { wDrawBevel(fwin->titlebar->window, fwin->titlebar->width, fwin->titlebar->height, (WTexSolid *) fwin->title_texture[state], WREL_RAISED); } if (fwin->resizebar && !fwin->flags.repaint_only_titlebar && fwin->resizebar_texture[0]->any.type == WTEX_SOLID) { Window win; int w, h; int cw; GC light_gc, dim_gc; WTexSolid *texture = (WTexSolid *) fwin->resizebar_texture[0]; w = fwin->resizebar->width; h = fwin->resizebar->height; cw = fwin->resizebar_corner_width; light_gc = texture->light_gc; dim_gc = texture->dim_gc; win = fwin->resizebar->window; XDrawLine(dpy, win, dim_gc, 0, 0, w, 0); XDrawLine(dpy, win, light_gc, 0, 1, w, 1); XDrawLine(dpy, win, dim_gc, cw, 2, cw, h); XDrawLine(dpy, win, light_gc, cw + 1, 2, cw + 1, h); XDrawLine(dpy, win, dim_gc, w - cw - 2, 2, w - cw - 2, h); XDrawLine(dpy, win, light_gc, w - cw - 1, 2, w - cw - 1, h); #ifdef SHADOW_RESIZEBAR XDrawLine(dpy, win, light_gc, 0, 1, 0, h - 1); XDrawLine(dpy, win, dim_gc, w - 1, 2, w - 1, h - 1); XDrawLine(dpy, win, dim_gc, 1, h - 1, cw, h - 1); XDrawLine(dpy, win, dim_gc, cw + 2, h - 1, w - cw - 2, h - 1); XDrawLine(dpy, win, dim_gc, w - cw, h - 1, w - 1, h - 1); #endif /* SHADOW_RESIZEBAR */ } if (fwin->titlebar && !fwin->flags.repaint_only_resizebar) { int x, y, w, h; int lofs = 6, rofs = 6; int titlelen; int allButtons = 1; if (!wPreferences.new_style == TS_NEW) { if (fwin->left_button && !fwin->flags.hide_left_button && !fwin->flags.lbutton_dont_fit) lofs += fwin->left_button->width + 3; else allButtons = 0; #ifdef XKB_BUTTON_HINT if (fwin->language_button && !fwin->flags.hide_language_button && !fwin->flags.languagebutton_dont_fit) lofs += fwin->language_button->width; else allButtons = 0; #endif if (fwin->right_button && !fwin->flags.hide_right_button && !fwin->flags.rbutton_dont_fit) rofs += fwin->right_button->width + 3; else allButtons = 0; } #ifdef XKB_BUTTON_HINT fwin->languagebutton_image = scr->b_pixmaps[WBUT_XKBGROUP1 + fwin->languagemode]; #endif if (fwin->title) { Drawable buf; char *title; title = ShrinkString(*fwin->font, fwin->title, fwin->titlebar->width - lofs - rofs); titlelen = strlen(title); w = WMWidthOfString(*fwin->font, title, titlelen); switch (fwin->flags.justification) { case WTJ_LEFT: x = lofs; break; case WTJ_RIGHT: x = fwin->titlebar->width - w - rofs; break; default: if (!allButtons) x = lofs + (fwin->titlebar->width - w - lofs - rofs) / 2; else x = (fwin->titlebar->width - w) / 2; break; } y = *fwin->title_clearance + TITLEBAR_EXTEND_SPACE; h = WMFontHeight(*fwin->font); if (y*2 + h > *fwin->title_max_height) y = (*fwin->title_max_height - h) / 2; if (y*2 + h < *fwin->title_min_height) y = (*fwin->title_min_height - h) / 2; /* We use a w+2 buffer to have an extra pixel on the left and * another one on the right. This is because for some odd reason, * sometimes when using AA fonts (when libfreetype2 is compiled * with bytecode interpreter turned off), some fonts are drawn * starting from x = -1 not from 0 as requested. Observed with * capital A letter on the bold 'trebuchet ms' font. -Dan */ buf = XCreatePixmap(dpy, fwin->titlebar->window, w + 2, h, scr->w_depth); XSetClipMask(dpy, scr->copy_gc, None); if (fwin->title_texture[state]->any.type != WTEX_SOLID) { XCopyArea(dpy, fwin->title_back[state], buf, scr->copy_gc, x - 1, y, w + 2, h, 0, 0); } else { XSetForeground(dpy, scr->copy_gc, fwin->title_texture[state]->solid.normal.pixel); XFillRectangle(dpy, buf, scr->copy_gc, 0, 0, w + 2, h); } /*XDrawRectangle(dpy, buf, WMColorGC(scr->white),1,0,w,h-1); */ WMDrawString(scr->wmscreen, buf, fwin->title_color[state], *fwin->font, 1, 0, title, titlelen); XCopyArea(dpy, buf, fwin->titlebar->window, scr->copy_gc, 0, 0, w + 2, h, x - 1, y); XFreePixmap(dpy, buf); wfree(title); } if (fwin->left_button) handleButtonExpose(&fwin->left_button->descriptor, NULL); if (fwin->right_button) handleButtonExpose(&fwin->right_button->descriptor, NULL); #ifdef XKB_BUTTON_HINT if (fwin->language_button) handleButtonExpose(&fwin->language_button->descriptor, NULL); #endif } } static void reconfigure(WFrameWindow * fwin, int x, int y, int width, int height, Bool dontMove) { int k = (wPreferences.new_style == TS_NEW ? 4 : 3); int resizedHorizontally = 0; if (dontMove) XResizeWindow(dpy, fwin->core->window, width, height); else XMoveResizeWindow(dpy, fwin->core->window, x, y, width, height); if (fwin->core->width != width) { fwin->flags.need_texture_remake = 1; resizedHorizontally = 1; } fwin->core->width = width; fwin->core->height = height; if (fwin->titlebar && resizedHorizontally) { /* Check if the titlebar is wide enough to hold the buttons. * Temporarily remove them if can't */ if (fwin->left_button) { if (width < fwin->top_width * k && !fwin->flags.lbutton_dont_fit) { if (!fwin->flags.hide_left_button) XUnmapWindow(dpy, fwin->left_button->window); fwin->flags.lbutton_dont_fit = 1; } else if (width >= fwin->top_width * k && fwin->flags.lbutton_dont_fit) { if (!fwin->flags.hide_left_button) XMapWindow(dpy, fwin->left_button->window); fwin->flags.lbutton_dont_fit = 0; } } #ifdef XKB_BUTTON_HINT if (fwin->language_button) { if (width < fwin->top_width * k && !fwin->flags.languagebutton_dont_fit) { if (!fwin->flags.hide_language_button) XUnmapWindow(dpy, fwin->language_button->window); fwin->flags.languagebutton_dont_fit = 1; } else if (width >= fwin->top_width * k && fwin->flags.languagebutton_dont_fit) { if (!fwin->flags.hide_language_button) XMapWindow(dpy, fwin->language_button->window); fwin->flags.languagebutton_dont_fit = 0; } } #endif if (fwin->right_button) { if (width < fwin->top_width * 2 && !fwin->flags.rbutton_dont_fit) { if (!fwin->flags.hide_right_button) XUnmapWindow(dpy, fwin->right_button->window); fwin->flags.rbutton_dont_fit = 1; } else if (width >= fwin->top_width * 2 && fwin->flags.rbutton_dont_fit) { if (!fwin->flags.hide_right_button) XMapWindow(dpy, fwin->right_button->window); fwin->flags.rbutton_dont_fit = 0; } } if (wPreferences.new_style == TS_NEW) { if (fwin->right_button) XMoveWindow(dpy, fwin->right_button->window, width - fwin->right_button->width + 1, 0); } else { if (fwin->right_button) XMoveWindow(dpy, fwin->right_button->window, width - fwin->right_button->width - 3, (fwin->titlebar->height - fwin->right_button->height) / 2); } updateTitlebar(fwin); checkTitleSize(fwin); } if (fwin->resizebar) { wCoreConfigure(fwin->resizebar, 0, fwin->core->height - fwin->resizebar->height, fwin->core->width, fwin->resizebar->height); fwin->resizebar_corner_width = RESIZEBAR_CORNER_WIDTH; if (fwin->core->width < RESIZEBAR_CORNER_WIDTH * 2 + RESIZEBAR_MIN_WIDTH) fwin->resizebar_corner_width = fwin->core->width / 2; } } void wFrameWindowConfigure(WFrameWindow * fwin, int x, int y, int width, int height) { reconfigure(fwin, x, y, width, height, False); } void wFrameWindowResize(WFrameWindow * fwin, int width, int height) { reconfigure(fwin, 0, 0, width, height, True); } int wFrameWindowChangeTitle(WFrameWindow *fwin, const char *new_title) { /* check if the title is the same as before */ if (fwin->title) { if (new_title && (strcmp(fwin->title, new_title) == 0)) return 0; } else { if (!new_title) return 0; } if (fwin->title) wfree(fwin->title); fwin->title = wstrdup(new_title); if (fwin->titlebar) { XClearWindow(dpy, fwin->titlebar->window); wFrameWindowPaint(fwin); } checkTitleSize(fwin); return 1; } #ifdef XKB_BUTTON_HINT void wFrameWindowUpdateLanguageButton(WFrameWindow * fwin) { paintButton(fwin->language_button, fwin->title_texture[fwin->flags.state], WMColorPixel(fwin->title_color[fwin->flags.state]), fwin->languagebutton_image, True); } #endif /* XKB_BUTTON_HINT */ /*********************************************************************/ static void handleExpose(WObjDescriptor * desc, XEvent * event) { WFrameWindow *fwin = (WFrameWindow *) desc->parent; if (fwin->titlebar && fwin->titlebar->window == event->xexpose.window) fwin->flags.repaint_only_titlebar = 1; if (fwin->resizebar && fwin->resizebar->window == event->xexpose.window) fwin->flags.repaint_only_resizebar = 1; wFrameWindowPaint(fwin); fwin->flags.repaint_only_titlebar = 0; fwin->flags.repaint_only_resizebar = 0; } static void checkTitleSize(WFrameWindow * fwin) { int width; if (!fwin->title) { fwin->flags.incomplete_title = 0; return; } if (!fwin->titlebar) { fwin->flags.incomplete_title = 1; return; } else { width = fwin->titlebar->width - 6 - 6; } if (!wPreferences.new_style == TS_NEW) { if (fwin->left_button && !fwin->flags.hide_left_button && !fwin->flags.lbutton_dont_fit) width -= fwin->left_button->width + 3; #ifdef XKB_BUTTON_HINT if (fwin->language_button && !fwin->flags.hide_language_button && !fwin->flags.languagebutton_dont_fit) width -= fwin->language_button->width + 3; #endif if (fwin->right_button && !fwin->flags.hide_right_button && !fwin->flags.rbutton_dont_fit) width -= fwin->right_button->width + 3; } if (WMWidthOfString(*fwin->font, fwin->title, strlen(fwin->title)) > width) fwin->flags.incomplete_title = 1; else fwin->flags.incomplete_title = 0; } static void paintButton(WCoreWindow * button, WTexture * texture, unsigned long color, WPixmap * image, int pushed) { WScreen *scr = button->screen_ptr; GC copy_gc = scr->copy_gc; int x = 0, y = 0, d = 0; int left = 0, width = 0; /* setup stuff according to the state */ if (pushed) { if (image) { if (image->width >= image->height * 2) { /* the image contains 2 pictures: the second is for the * pushed state */ width = image->width / 2; left = image->width / 2; } else { width = image->width; } } XSetClipMask(dpy, copy_gc, None); if (wPreferences.new_style == TS_NEXT) XSetForeground(dpy, copy_gc, scr->black_pixel); else XSetForeground(dpy, copy_gc, scr->white_pixel); d = 1; if (wPreferences.new_style == TS_NEW) { XFillRectangle(dpy, button->window, copy_gc, 0, 0, button->width - 1, button->height - 1); XSetForeground(dpy, copy_gc, scr->black_pixel); XDrawRectangle(dpy, button->window, copy_gc, 0, 0, button->width - 1, button->height - 1); } else if (wPreferences.new_style == TS_OLD) { XFillRectangle(dpy, button->window, copy_gc, 0, 0, button->width, button->height); XSetForeground(dpy, copy_gc, scr->black_pixel); XDrawRectangle(dpy, button->window, copy_gc, 0, 0, button->width, button->height); } else { XFillRectangle(dpy, button->window, copy_gc, 0, 0, button->width-3, button->height-3); XSetForeground(dpy, copy_gc, scr->black_pixel); XDrawRectangle(dpy, button->window, copy_gc, 0, 0, button->width-3, button->height-3); } } else { XClearWindow(dpy, button->window); if (image) { if (image->width >= image->height * 2) width = image->width / 2; else width = image->width; } d = 0; if (wPreferences.new_style == TS_NEW) { if (texture->any.type == WTEX_SOLID || pushed) wDrawBevel(button->window, button->width, button->height, (WTexSolid *) texture, WREL_RAISED); } else { wDrawBevel(button->window, button->width, button->height, scr->widget_texture, WREL_RAISED); } } if (image) { /* display image */ XSetClipMask(dpy, copy_gc, image->mask); x = (button->width - width) / 2 + d; y = (button->height - image->height) / 2 + d; XSetClipOrigin(dpy, copy_gc, x - left, y); if (!wPreferences.new_style == TS_NEW) { XSetForeground(dpy, copy_gc, scr->black_pixel); if (!pushed) { if (image->depth == 1) XCopyPlane(dpy, image->image, button->window, copy_gc, left, 0, width, image->height, x, y, 1); else XCopyArea(dpy, image->image, button->window, copy_gc, left, 0, width, image->height, x, y); } else { if (wPreferences.new_style == TS_OLD) { XSetForeground(dpy, copy_gc, scr->dark_pixel); XFillRectangle(dpy, button->window, copy_gc, 0, 0, button->width, button->height); } else { XSetForeground(dpy, copy_gc, scr->black_pixel); XCopyArea(dpy, image->image, button->window, copy_gc, left, 0, width, image->height, x, y); } } } else { if (pushed) { XSetForeground(dpy, copy_gc, scr->black_pixel); } else { XSetForeground(dpy, copy_gc, color); XSetBackground(dpy, copy_gc, texture->any.color.pixel); } XFillRectangle(dpy, button->window, copy_gc, 0, 0, button->width, button->height); } } } static void handleButtonExpose(WObjDescriptor * desc, XEvent * event) { WFrameWindow *fwin = (WFrameWindow *) desc->parent; WCoreWindow *button = (WCoreWindow *) desc->self; #ifdef XKB_BUTTON_HINT if (button == fwin->language_button) { if (wPreferences.modelock) paintButton(button, fwin->title_texture[fwin->flags.state], WMColorPixel(fwin->title_color[fwin->flags.state]), fwin->languagebutton_image, False); } else #endif if (button == fwin->left_button) paintButton(button, fwin->title_texture[fwin->flags.state], WMColorPixel(fwin->title_color[fwin->flags.state]), fwin->lbutton_image, False); else paintButton(button, fwin->title_texture[fwin->flags.state], WMColorPixel(fwin->title_color[fwin->flags.state]), fwin->rbutton_image, False); } static void titlebarMouseDown(WObjDescriptor * desc, XEvent * event) { WFrameWindow *fwin = desc->parent; WCoreWindow *titlebar = desc->self; if (IsDoubleClick(fwin->core->screen_ptr, event)) { if (fwin->on_dblclick_titlebar) (*fwin->on_dblclick_titlebar) (titlebar, fwin->child, event); } else { if (fwin->on_mousedown_titlebar) (*fwin->on_mousedown_titlebar) (titlebar, fwin->child, event); } } static void resizebarMouseDown(WObjDescriptor * desc, XEvent * event) { WFrameWindow *fwin = desc->parent; WCoreWindow *resizebar = desc->self; if (fwin->on_mousedown_resizebar) (*fwin->on_mousedown_resizebar) (resizebar, fwin->child, event); } static void buttonMouseDown(WObjDescriptor * desc, XEvent * event) { WFrameWindow *fwin = desc->parent; WCoreWindow *button = desc->self; WPixmap *image; XEvent ev; int done = 0, execute = 1; WTexture *texture; unsigned long pixel; int clickButton = event->xbutton.button; if (IsDoubleClick(fwin->core->screen_ptr, event)) { if (button == fwin->right_button && fwin->on_dblclick_right) (*fwin->on_dblclick_right) (button, fwin->child, event); return; } if (button == fwin->left_button) image = fwin->lbutton_image; else image = fwin->rbutton_image; #ifdef XKB_BUTTON_HINT if (button == fwin->language_button) { if (!wPreferences.modelock) return; image = fwin->languagebutton_image; } #endif pixel = WMColorPixel(fwin->title_color[fwin->flags.state]); texture = fwin->title_texture[fwin->flags.state]; paintButton(button, texture, pixel, image, True); while (!done) { WMMaskEvent(dpy, LeaveWindowMask | EnterWindowMask | ButtonReleaseMask | ButtonPressMask | ExposureMask, &ev); switch (ev.type) { case LeaveNotify: execute = 0; paintButton(button, texture, pixel, image, False); break; case EnterNotify: execute = 1; paintButton(button, texture, pixel, image, True); break; case ButtonPress: break; case ButtonRelease: if (ev.xbutton.button == clickButton) done = 1; break; default: WMHandleEvent(&ev); } } paintButton(button, texture, pixel, image, False); if (execute) { if (button == fwin->left_button) { if (fwin->on_click_left) (*fwin->on_click_left) (button, fwin->child, &ev); } else if (button == fwin->right_button) { if (fwin->on_click_right) (*fwin->on_click_right) (button, fwin->child, &ev); } #ifdef XKB_BUTTON_HINT else if (button == fwin->language_button) { if (fwin->on_click_language) (*fwin->on_click_language) (button, fwin->child, &ev); } #endif } } WindowMaker-0.95.5/src/osdep_darwin.c0000644000175000017500000000415112214432632014373 00000000000000 #include #include #include #include #include #include #include "wconfig.h" #include "osdep.h" /* * copy argc and argv for an existing process identified by `pid' * into suitable storage given in ***argv and *argc. * * subsequent calls use the same static area for argv and argc. * * returns 0 for failure, in which case argc := 0 and argv := NULL * returns 1 for success */ Bool GetCommandForPid(int pid, char ***argv, int *argc) #ifdef KERN_PROCARGS2 { int j, mib[4]; unsigned int i, idx; size_t count; static char *args = NULL; static int argmax = 0; *argv = NULL; *argc = 0; /* the system-wide limit */ if (argmax == 0) { /* it hopefully doesn't change at runtime *g* */ mib[0] = CTL_KERN; mib[1] = KERN_ARGMAX; mib[2] = 0; mib[3] = 0; count = sizeof(argmax); if (sysctl(mib, 2, &argmax, &count, NULL, 0) == -1) return False; } /* if argmax is still 0, something went very seriously wrong */ assert(argmax > 0); /* space for args; no need to free before returning even on errors */ if (args == NULL) args = (char *)wmalloc(argmax); /* get process args */ mib[0] = CTL_KERN; mib[1] = KERN_PROCARGS2; mib[2] = pid; count = argmax; if (sysctl(mib, 3, args, &count, NULL, 0) == -1 || count == 0) return False; /* get argc, skip */ memcpy(argc, args, sizeof(*argc)); idx = sizeof(*argc); while (args[idx++] != '\0') /* skip execname */ ; while (args[idx] == '\0') /* padding too */ idx++; /* args[idx] is at at begininng of args now */ *argv = (char **)wmalloc(sizeof(char *) * (*argc + 1 /* term. null ptr */)); (*argv)[0] = args + idx; /* go through args, set argv[$next] to the beginning of each string */ for (i = 0, j = 1; i < count - idx /* do not overrun */; i++) { if (args[idx + i] != '\0') continue; if (args[idx + i] == '\0') (*argv)[j++] = &args[idx + i + 1]; if (j == *argc) break; } /* the list of arguments must be terminated by a null pointer */ (*argv)[j] = NULL; return True; } #else /* !KERN_PROCARGS2 */ { *argv = NULL; *argc = 0; return False; } #endif WindowMaker-0.95.5/src/dialog.h0000644000175000017500000000315112214432632013160 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMDIALOG_H_ #define WMDIALOG_H_ enum { WMAbort=0, WMRestart, WMStartAlternate }; int wMessageDialog(WScreen *scr, const char *title, const char *message, const char *defBtn, const char *altBtn, const char *othBtn); int wAdvancedInputDialog(WScreen *scr, const char *title, const char *message, const char *name, char **text); int wInputDialog(WScreen *scr, const char *title, const char *message, char **text); int wExitDialog(WScreen *scr, const char *title, const char *message, const char *defBtn, const char *altBtn, const char *othBtn); Bool wIconChooserDialog(WScreen *scr, char **file, const char *instance, const char *class); void wShowInfoPanel(WScreen *scr); void wShowLegalPanel(WScreen *scr); int wShowCrashingDialogPanel(int whatSig); #endif WindowMaker-0.95.5/src/workspace.c0000644000175000017500000006165612214432632013730 00000000000000/* workspace.c- Workspace management * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #ifdef SHAPE #include #endif #include #include #include #include #include #include #include #include #include "WindowMaker.h" #include "framewin.h" #include "window.h" #include "icon.h" #include "misc.h" #include "menu.h" #include "application.h" #include "dock.h" #include "actions.h" #include "workspace.h" #include "appicon.h" #include "wmspec.h" #include "xinerama.h" #include "event.h" #define MC_NEW 0 #define MC_DESTROY_LAST 1 #define MC_LAST_USED 2 /* index of the first workspace menu entry */ #define MC_WORKSPACE1 3 #define MAX_SHORTCUT_LENGTH 32 #define WORKSPACE_NAME_DISPLAY_PADDING 32 extern int ignore_wks_change; extern XContext wVEdgeContext; extern WShortKey wKeyBindings[WKBD_LAST]; static WMPropList *dWorkspaces = NULL; static WMPropList *dClip, *dName; static void make_keys(void) { if (dWorkspaces != NULL) return; dWorkspaces = WMCreatePLString("Workspaces"); dName = WMCreatePLString("Name"); dClip = WMCreatePLString("Clip"); } void wWorkspaceMake(WScreen * scr, int count) { while (count > 0) { wWorkspaceNew(scr); count--; } } int wWorkspaceNew(WScreen *scr) { WWorkspace *wspace, **list; int i; if (scr->workspace_count < MAX_WORKSPACES) { scr->workspace_count++; wspace = wmalloc(sizeof(WWorkspace)); wspace->name = NULL; wspace->clip = NULL; if (!wspace->name) { wspace->name = wmalloc(strlen(_("Workspace %i")) + 8); sprintf(wspace->name, _("Workspace %i"), scr->workspace_count); } if (!wPreferences.flags.noclip) wspace->clip = wDockCreate(scr, WM_CLIP, NULL); list = wmalloc(sizeof(WWorkspace *) * scr->workspace_count); for (i = 0; i < scr->workspace_count - 1; i++) list[i] = scr->workspaces[i]; list[i] = wspace; if (scr->workspaces) wfree(scr->workspaces); scr->workspaces = list; wWorkspaceMenuUpdate(scr, scr->workspace_menu); wWorkspaceMenuUpdate(scr, scr->clip_ws_menu); wNETWMUpdateDesktop(scr); WMPostNotificationName(WMNWorkspaceCreated, scr, (void *)(uintptr_t) (scr->workspace_count - 1)); XFlush(dpy); return scr->workspace_count - 1; } return -1; } Bool wWorkspaceDelete(WScreen * scr, int workspace) { WWindow *tmp; WWorkspace **list; int i, j; if (workspace <= 0) return False; /* verify if workspace is in use by some window */ tmp = scr->focused_window; while (tmp) { if (!IS_OMNIPRESENT(tmp) && tmp->frame->workspace == workspace) return False; tmp = tmp->prev; } if (!wPreferences.flags.noclip) { wDockDestroy(scr->workspaces[workspace]->clip); scr->workspaces[workspace]->clip = NULL; } list = wmalloc(sizeof(WWorkspace *) * (scr->workspace_count - 1)); j = 0; for (i = 0; i < scr->workspace_count; i++) { if (i != workspace) { list[j++] = scr->workspaces[i]; } else { if (scr->workspaces[i]->name) wfree(scr->workspaces[i]->name); wfree(scr->workspaces[i]); } } wfree(scr->workspaces); scr->workspaces = list; scr->workspace_count--; /* update menu */ wWorkspaceMenuUpdate(scr, scr->workspace_menu); /* clip workspace menu */ wWorkspaceMenuUpdate(scr, scr->clip_ws_menu); /* update also window menu */ if (scr->workspace_submenu) { WMenu *menu = scr->workspace_submenu; i = menu->entry_no; while (i > scr->workspace_count) wMenuRemoveItem(menu, --i); wMenuRealize(menu); } /* and clip menu */ if (scr->clip_submenu) { WMenu *menu = scr->clip_submenu; i = menu->entry_no; while (i > scr->workspace_count) wMenuRemoveItem(menu, --i); wMenuRealize(menu); } wNETWMUpdateDesktop(scr); WMPostNotificationName(WMNWorkspaceDestroyed, scr, (void *)(uintptr_t) (scr->workspace_count - 1)); if (scr->current_workspace >= scr->workspace_count) wWorkspaceChange(scr, scr->workspace_count - 1); if (scr->last_workspace >= scr->workspace_count) scr->last_workspace = 0; return True; } typedef struct WorkspaceNameData { int count; RImage *back; RImage *text; time_t timeout; } WorkspaceNameData; static void hideWorkspaceName(void *data) { WScreen *scr = (WScreen *) data; if (!scr->workspace_name_data || scr->workspace_name_data->count == 0 || time(NULL) > scr->workspace_name_data->timeout) { XUnmapWindow(dpy, scr->workspace_name); if (scr->workspace_name_data) { RReleaseImage(scr->workspace_name_data->back); RReleaseImage(scr->workspace_name_data->text); wfree(scr->workspace_name_data); scr->workspace_name_data = NULL; } scr->workspace_name_timer = NULL; } else { RImage *img = RCloneImage(scr->workspace_name_data->back); Pixmap pix; scr->workspace_name_timer = WMAddTimerHandler(WORKSPACE_NAME_FADE_DELAY, hideWorkspaceName, scr); RCombineImagesWithOpaqueness(img, scr->workspace_name_data->text, scr->workspace_name_data->count * 255 / 10); RConvertImage(scr->rcontext, img, &pix); RReleaseImage(img); XSetWindowBackgroundPixmap(dpy, scr->workspace_name, pix); XClearWindow(dpy, scr->workspace_name); XFreePixmap(dpy, pix); XFlush(dpy); scr->workspace_name_data->count--; } } static void showWorkspaceName(WScreen * scr, int workspace) { WorkspaceNameData *data; RXImage *ximg; Pixmap text, mask; int w, h; int px, py; char *name = scr->workspaces[workspace]->name; int len = strlen(name); int x, y; #ifdef XINERAMA int head; WMRect rect; int xx, yy; #endif if (wPreferences.workspace_name_display_position == WD_NONE || scr->workspace_count < 2) { return; } if (scr->workspace_name_timer) { WMDeleteTimerHandler(scr->workspace_name_timer); XUnmapWindow(dpy, scr->workspace_name); XFlush(dpy); } scr->workspace_name_timer = WMAddTimerHandler(WORKSPACE_NAME_DELAY, hideWorkspaceName, scr); if (scr->workspace_name_data) { RReleaseImage(scr->workspace_name_data->back); RReleaseImage(scr->workspace_name_data->text); wfree(scr->workspace_name_data); } data = wmalloc(sizeof(WorkspaceNameData)); data->back = NULL; w = WMWidthOfString(scr->workspace_name_font, name, len); h = WMFontHeight(scr->workspace_name_font); #ifdef XINERAMA head = wGetHeadForPointerLocation(scr); rect = wGetRectForHead(scr, head); if (scr->xine_info.count) { xx = rect.pos.x + (scr->xine_info.screens[head].size.width - (w + 4)) / 2; yy = rect.pos.y + (scr->xine_info.screens[head].size.height - (h + 4)) / 2; } else { xx = (scr->scr_width - (w + 4)) / 2; yy = (scr->scr_height - (h + 4)) / 2; } #endif switch (wPreferences.workspace_name_display_position) { case WD_TOP: #ifdef XINERAMA px = xx; #else px = (scr->scr_width - (w + 4)) / 2; #endif py = WORKSPACE_NAME_DISPLAY_PADDING; break; case WD_BOTTOM: #ifdef XINERAMA px = xx; #else px = (scr->scr_width - (w + 4)) / 2; #endif py = scr->scr_height - (h + 4 + WORKSPACE_NAME_DISPLAY_PADDING); break; case WD_TOPLEFT: px = WORKSPACE_NAME_DISPLAY_PADDING; py = WORKSPACE_NAME_DISPLAY_PADDING; break; case WD_TOPRIGHT: px = scr->scr_width - (w + 4 + WORKSPACE_NAME_DISPLAY_PADDING); py = WORKSPACE_NAME_DISPLAY_PADDING; break; case WD_BOTTOMLEFT: px = WORKSPACE_NAME_DISPLAY_PADDING; py = scr->scr_height - (h + 4 + WORKSPACE_NAME_DISPLAY_PADDING); break; case WD_BOTTOMRIGHT: px = scr->scr_width - (w + 4 + WORKSPACE_NAME_DISPLAY_PADDING); py = scr->scr_height - (h + 4 + WORKSPACE_NAME_DISPLAY_PADDING); break; case WD_CENTER: default: #ifdef XINERAMA px = xx; py = yy; #else px = (scr->scr_width - (w + 4)) / 2; py = (scr->scr_height - (h + 4)) / 2; #endif break; } XResizeWindow(dpy, scr->workspace_name, w + 4, h + 4); XMoveWindow(dpy, scr->workspace_name, px, py); text = XCreatePixmap(dpy, scr->w_win, w + 4, h + 4, scr->w_depth); mask = XCreatePixmap(dpy, scr->w_win, w + 4, h + 4, 1); /*XSetForeground(dpy, scr->mono_gc, 0); XFillRectangle(dpy, mask, scr->mono_gc, 0, 0, w+4, h+4); */ XFillRectangle(dpy, text, WMColorGC(scr->black), 0, 0, w + 4, h + 4); for (x = 0; x <= 4; x++) { for (y = 0; y <= 4; y++) { WMDrawString(scr->wmscreen, text, scr->white, scr->workspace_name_font, x, y, name, len); } } XSetForeground(dpy, scr->mono_gc, 1); XSetBackground(dpy, scr->mono_gc, 0); XCopyPlane(dpy, text, mask, scr->mono_gc, 0, 0, w + 4, h + 4, 0, 0, 1 << (scr->w_depth - 1)); /*XSetForeground(dpy, scr->mono_gc, 1); */ XSetBackground(dpy, scr->mono_gc, 1); XFillRectangle(dpy, text, WMColorGC(scr->black), 0, 0, w + 4, h + 4); WMDrawString(scr->wmscreen, text, scr->white, scr->workspace_name_font, 2, 2, name, len); #ifdef SHAPE XShapeCombineMask(dpy, scr->workspace_name, ShapeBounding, 0, 0, mask, ShapeSet); #endif XSetWindowBackgroundPixmap(dpy, scr->workspace_name, text); XClearWindow(dpy, scr->workspace_name); data->text = RCreateImageFromDrawable(scr->rcontext, text, None); XFreePixmap(dpy, text); XFreePixmap(dpy, mask); if (!data->text) { XMapRaised(dpy, scr->workspace_name); XFlush(dpy); goto erro; } ximg = RGetXImage(scr->rcontext, scr->root_win, px, py, data->text->width, data->text->height); if (!ximg || !ximg->image) { goto erro; } XMapRaised(dpy, scr->workspace_name); XFlush(dpy); data->back = RCreateImageFromXImage(scr->rcontext, ximg->image, NULL); RDestroyXImage(scr->rcontext, ximg); if (!data->back) { goto erro; } data->count = 10; /* set a timeout for the effect */ data->timeout = time(NULL) + 2 + (WORKSPACE_NAME_DELAY + WORKSPACE_NAME_FADE_DELAY * data->count) / 1000; scr->workspace_name_data = data; return; erro: if (scr->workspace_name_timer) WMDeleteTimerHandler(scr->workspace_name_timer); if (data->text) RReleaseImage(data->text); if (data->back) RReleaseImage(data->back); wfree(data); scr->workspace_name_data = NULL; scr->workspace_name_timer = WMAddTimerHandler(WORKSPACE_NAME_DELAY + 10 * WORKSPACE_NAME_FADE_DELAY, hideWorkspaceName, scr); } void wWorkspaceChange(WScreen *scr, int workspace) { if (scr->flags.startup || scr->flags.startup2 || scr->flags.ignore_focus_events) return; if (workspace != scr->current_workspace) wWorkspaceForceChange(scr, workspace); } void wWorkspaceRelativeChange(WScreen * scr, int amount) { int w; /* While the deiconify animation is going on the window is * still "flying" to its final position and we don't want to * change workspace before the animation finishes, otherwise * the window will land in the new workspace */ if (ignore_wks_change) return; w = scr->current_workspace + amount; if (amount < 0) { if (w >= 0) { wWorkspaceChange(scr, w); } else if (wPreferences.ws_cycle) { wWorkspaceChange(scr, scr->workspace_count + w); } } else if (amount > 0) { if (w < scr->workspace_count) { wWorkspaceChange(scr, w); } else if (wPreferences.ws_advance) { wWorkspaceChange(scr, WMIN(w, MAX_WORKSPACES - 1)); } else if (wPreferences.ws_cycle) { wWorkspaceChange(scr, w % scr->workspace_count); } } } void wWorkspaceForceChange(WScreen * scr, int workspace) { WWindow *tmp, *foc = NULL, *foc2 = NULL; WWindow **toUnmap; int toUnmapSize, toUnmapCount; if (workspace >= MAX_WORKSPACES || workspace < 0) return; SendHelperMessage(scr, 'C', workspace + 1, NULL); if (workspace > scr->workspace_count - 1) { wWorkspaceMake(scr, workspace - scr->workspace_count + 1); } wClipUpdateForWorkspaceChange(scr, workspace); scr->last_workspace = scr->current_workspace; scr->current_workspace = workspace; wWorkspaceMenuUpdate(scr, scr->workspace_menu); wWorkspaceMenuUpdate(scr, scr->clip_ws_menu); toUnmapSize = 16; toUnmapCount = 0; toUnmap = wmalloc(toUnmapSize * sizeof(WWindow *)); if ((tmp = scr->focused_window) != NULL) { if ((IS_OMNIPRESENT(tmp) && (tmp->flags.mapped || tmp->flags.shaded) && !WFLAGP(tmp, no_focusable)) || tmp->flags.changing_workspace) { foc = tmp; } /* foc2 = tmp; will fix annoyance with gnome panel * but will create annoyance for every other application */ while (tmp) { if (tmp->frame->workspace != workspace && !tmp->flags.selected) { /* unmap windows not on this workspace */ if ((tmp->flags.mapped || tmp->flags.shaded) && !IS_OMNIPRESENT(tmp) && !tmp->flags.changing_workspace) { if (toUnmapCount == toUnmapSize) { toUnmapSize *= 2; toUnmap = wrealloc(toUnmap, toUnmapSize * sizeof(WWindow *)); } toUnmap[toUnmapCount++] = tmp; } /* also unmap miniwindows not on this workspace */ if (!wPreferences.sticky_icons && tmp->flags.miniaturized && tmp->icon && !IS_OMNIPRESENT(tmp)) { XUnmapWindow(dpy, tmp->icon->core->window); tmp->icon->mapped = 0; } /* update current workspace of omnipresent windows */ if (IS_OMNIPRESENT(tmp)) { WApplication *wapp = wApplicationOf(tmp->main_window); tmp->frame->workspace = workspace; if (wapp) { wapp->last_workspace = workspace; } if (!foc2 && (tmp->flags.mapped || tmp->flags.shaded)) { foc2 = tmp; } } } else { /* change selected windows' workspace */ if (tmp->flags.selected) { wWindowChangeWorkspace(tmp, workspace); if (!tmp->flags.miniaturized && !foc) { foc = tmp; } } else { if (!tmp->flags.hidden) { if (!(tmp->flags.mapped || tmp->flags.miniaturized)) { /* remap windows that are on this workspace */ wWindowMap(tmp); if (!foc && !WFLAGP(tmp, no_focusable)) { foc = tmp; } } /* Also map miniwindow if not omnipresent */ if (!wPreferences.sticky_icons && tmp->flags.miniaturized && !IS_OMNIPRESENT(tmp) && tmp->icon) { tmp->icon->mapped = 1; XMapWindow(dpy, tmp->icon->core->window); } } } } tmp = tmp->prev; } while (toUnmapCount > 0) { wWindowUnmap(toUnmap[--toUnmapCount]); } wfree(toUnmap); /* Gobble up events unleashed by our mapping & unmapping. * These may trigger various grab-initiated focus & * crossing events. However, we don't care about them, * and ignore their focus implications altogether to avoid * flicker. */ scr->flags.ignore_focus_events = 1; ProcessPendingEvents(); scr->flags.ignore_focus_events = 0; if (!foc) foc = foc2; if (scr->focused_window->flags.mapped && !foc) { foc = scr->focused_window; } if (wPreferences.focus_mode == WKF_CLICK) { wSetFocusTo(scr, foc); } else { unsigned int mask; int foo; Window bar, win; WWindow *tmp; tmp = NULL; if (XQueryPointer(dpy, scr->root_win, &bar, &win, &foo, &foo, &foo, &foo, &mask)) { tmp = wWindowFor(win); } /* If there's a window under the pointer, focus it. * (we ate all other focus events above, so it's * certainly not focused). Otherwise focus last * focused, or the root (depending on sloppiness) */ if (!tmp && wPreferences.focus_mode == WKF_SLOPPY) { wSetFocusTo(scr, foc); } else { wSetFocusTo(scr, tmp); } } } /* We need to always arrange icons when changing workspace, even if * no autoarrange icons, because else the icons in different workspaces * can be superposed. * This can be avoided if appicons are also workspace specific. */ if (!wPreferences.sticky_icons) wArrangeIcons(scr, False); if (scr->dock) wAppIconPaint(scr->dock->icon_array[0]); if (!wPreferences.flags.noclip && (scr->workspaces[workspace]->clip->auto_collapse || scr->workspaces[workspace]->clip->auto_raise_lower)) { /* to handle enter notify. This will also */ XUnmapWindow(dpy, scr->clip_icon->icon->core->window); XMapWindow(dpy, scr->clip_icon->icon->core->window); } else if (scr->clip_icon != NULL) { wClipIconPaint(scr->clip_icon); } wScreenUpdateUsableArea(scr); wNETWMUpdateDesktop(scr); showWorkspaceName(scr, workspace); WMPostNotificationName(WMNWorkspaceChanged, scr, (void *)(uintptr_t) workspace); /* XSync(dpy, False); */ } static void switchWSCommand(WMenu * menu, WMenuEntry * entry) { wWorkspaceChange(menu->frame->screen_ptr, (long)entry->clientdata); } static void lastWSCommand(WMenu * menu, WMenuEntry * entry) { wWorkspaceChange(menu->frame->screen_ptr, menu->frame->screen_ptr->last_workspace); } static void deleteWSCommand(WMenu * menu, WMenuEntry * entry) { wWorkspaceDelete(menu->frame->screen_ptr, menu->frame->screen_ptr->workspace_count - 1); } static void newWSCommand(WMenu *menu, WMenuEntry *foo) { int ws; ws = wWorkspaceNew(menu->frame->screen_ptr); /* autochange workspace */ if (ws >= 0) wWorkspaceChange(menu->frame->screen_ptr, ws); } void wWorkspaceRename(WScreen *scr, int workspace, const char *name) { char buf[MAX_WORKSPACENAME_WIDTH + 1]; char *tmp; if (workspace >= scr->workspace_count) return; /* trim white spaces */ tmp = wtrimspace(name); if (strlen(tmp) == 0) { snprintf(buf, sizeof(buf), _("Workspace %i"), workspace + 1); } else { strncpy(buf, tmp, MAX_WORKSPACENAME_WIDTH); } buf[MAX_WORKSPACENAME_WIDTH] = 0; wfree(tmp); /* update workspace */ wfree(scr->workspaces[workspace]->name); scr->workspaces[workspace]->name = wstrdup(buf); if (scr->clip_ws_menu) { if (strcmp(scr->clip_ws_menu->entries[workspace + MC_WORKSPACE1]->text, buf) != 0) { wfree(scr->clip_ws_menu->entries[workspace + MC_WORKSPACE1]->text); scr->clip_ws_menu->entries[workspace + MC_WORKSPACE1]->text = wstrdup(buf); wMenuRealize(scr->clip_ws_menu); } } if (scr->workspace_menu) { if (strcmp(scr->workspace_menu->entries[workspace + MC_WORKSPACE1]->text, buf) != 0) { wfree(scr->workspace_menu->entries[workspace + MC_WORKSPACE1]->text); scr->workspace_menu->entries[workspace + MC_WORKSPACE1]->text = wstrdup(buf); wMenuRealize(scr->workspace_menu); } } if (scr->clip_icon) wClipIconPaint(scr->clip_icon); WMPostNotificationName(WMNWorkspaceNameChanged, scr, (void *)(uintptr_t) workspace); } /* callback for when menu entry is edited */ static void onMenuEntryEdited(WMenu * menu, WMenuEntry * entry) { char *tmp; tmp = entry->text; wWorkspaceRename(menu->frame->screen_ptr, (long)entry->clientdata, tmp); } WMenu *wWorkspaceMenuMake(WScreen * scr, Bool titled) { WMenu *wsmenu; WMenuEntry *entry; wsmenu = wMenuCreate(scr, titled ? _("Workspaces") : NULL, False); if (!wsmenu) { wwarning(_("could not create Workspace menu")); return NULL; } /* callback to be called when an entry is edited */ wsmenu->on_edit = onMenuEntryEdited; wMenuAddCallback(wsmenu, _("New"), newWSCommand, NULL); wMenuAddCallback(wsmenu, _("Destroy Last"), deleteWSCommand, NULL); entry = wMenuAddCallback(wsmenu, _("Last Used"), lastWSCommand, NULL); entry->rtext = GetShortcutKey(wKeyBindings[WKBD_LASTWORKSPACE]); return wsmenu; } void wWorkspaceMenuUpdate(WScreen * scr, WMenu * menu) { int i; long ws; char title[MAX_WORKSPACENAME_WIDTH + 1]; WMenuEntry *entry; int tmp; if (!menu) return; if (menu->entry_no < scr->workspace_count + MC_WORKSPACE1) { /* new workspace(s) added */ i = scr->workspace_count - (menu->entry_no - MC_WORKSPACE1); ws = menu->entry_no - MC_WORKSPACE1; while (i > 0) { wstrlcpy(title, scr->workspaces[ws]->name, MAX_WORKSPACENAME_WIDTH); entry = wMenuAddCallback(menu, title, switchWSCommand, (void *)ws); entry->flags.indicator = 1; entry->flags.editable = 1; i--; ws++; } } else if (menu->entry_no > scr->workspace_count + MC_WORKSPACE1) { /* removed workspace(s) */ for (i = menu->entry_no - 1; i >= scr->workspace_count + MC_WORKSPACE1; i--) { wMenuRemoveItem(menu, i); } } for (i = 0; i < scr->workspace_count; i++) { /* workspace shortcut labels */ if (i / 10 == scr->current_workspace / 10) menu->entries[i + MC_WORKSPACE1]->rtext = GetShortcutKey(wKeyBindings[WKBD_WORKSPACE1 + (i % 10)]); else menu->entries[i + MC_WORKSPACE1]->rtext = NULL; menu->entries[i + MC_WORKSPACE1]->flags.indicator_on = 0; } menu->entries[scr->current_workspace + MC_WORKSPACE1]->flags.indicator_on = 1; wMenuRealize(menu); /* don't let user destroy current workspace */ if (scr->current_workspace == scr->workspace_count - 1) { wMenuSetEnabled(menu, MC_DESTROY_LAST, False); } else { wMenuSetEnabled(menu, MC_DESTROY_LAST, True); } /* back to last workspace */ if (scr->workspace_count && scr->last_workspace != scr->current_workspace) wMenuSetEnabled(menu, MC_LAST_USED, True); else wMenuSetEnabled(menu, MC_LAST_USED, False); tmp = menu->frame->top_width + 5; /* if menu got unreachable, bring it to a visible place */ if (menu->frame_x < tmp - (int)menu->frame->core->width) wMenuMove(menu, tmp - (int)menu->frame->core->width, menu->frame_y, False); wMenuPaint(menu); } void wWorkspaceSaveState(WScreen * scr, WMPropList * old_state) { WMPropList *parr, *pstr, *wks_state, *old_wks_state, *foo, *bar; int i; make_keys(); old_wks_state = WMGetFromPLDictionary(old_state, dWorkspaces); parr = WMCreatePLArray(NULL); for (i = 0; i < scr->workspace_count; i++) { pstr = WMCreatePLString(scr->workspaces[i]->name); wks_state = WMCreatePLDictionary(dName, pstr, NULL); WMReleasePropList(pstr); if (!wPreferences.flags.noclip) { pstr = wClipSaveWorkspaceState(scr, i); WMPutInPLDictionary(wks_state, dClip, pstr); WMReleasePropList(pstr); } else if (old_wks_state != NULL) { if ((foo = WMGetFromPLArray(old_wks_state, i)) != NULL) { if ((bar = WMGetFromPLDictionary(foo, dClip)) != NULL) { WMPutInPLDictionary(wks_state, dClip, bar); } } } WMAddToPLArray(parr, wks_state); WMReleasePropList(wks_state); } WMPutInPLDictionary(scr->session_state, dWorkspaces, parr); WMReleasePropList(parr); } void wWorkspaceRestoreState(WScreen *scr) { WMPropList *parr, *pstr, *wks_state, *clip_state; int i, j; make_keys(); if (scr->session_state == NULL) return; parr = WMGetFromPLDictionary(scr->session_state, dWorkspaces); if (!parr) return; for (i = 0; i < WMIN(WMGetPropListItemCount(parr), MAX_WORKSPACES); i++) { wks_state = WMGetFromPLArray(parr, i); if (WMIsPLDictionary(wks_state)) pstr = WMGetFromPLDictionary(wks_state, dName); else pstr = wks_state; if (i >= scr->workspace_count) wWorkspaceNew(scr); if (scr->workspace_menu) { wfree(scr->workspace_menu->entries[i + MC_WORKSPACE1]->text); scr->workspace_menu->entries[i + MC_WORKSPACE1]->text = wstrdup(WMGetFromPLString(pstr)); scr->workspace_menu->flags.realized = 0; } wfree(scr->workspaces[i]->name); scr->workspaces[i]->name = wstrdup(WMGetFromPLString(pstr)); if (!wPreferences.flags.noclip) { int added_omnipresent_icons = 0; clip_state = WMGetFromPLDictionary(wks_state, dClip); if (scr->workspaces[i]->clip) wDockDestroy(scr->workspaces[i]->clip); scr->workspaces[i]->clip = wDockRestoreState(scr, clip_state, WM_CLIP); if (i > 0) wDockHideIcons(scr->workspaces[i]->clip); /* We set the global icons here, because scr->workspaces[i]->clip * was not valid in wDockRestoreState(). * There we only set icon->omnipresent to know which icons we * need to set here. */ for (j = 0; j < scr->workspaces[i]->clip->max_icons; j++) { WAppIcon *aicon = scr->workspaces[i]->clip->icon_array[j]; int k; if (!aicon || !aicon->omnipresent) continue; aicon->omnipresent = 0; if (wClipMakeIconOmnipresent(aicon, True) != WO_SUCCESS) continue; if (i == 0) continue; /* Move this appicon from workspace i to workspace 0 */ scr->workspaces[i]->clip->icon_array[j] = NULL; scr->workspaces[i]->clip->icon_count--; added_omnipresent_icons++; /* If there are too many omnipresent appicons, we are in trouble */ assert(scr->workspaces[0]->clip->icon_count + added_omnipresent_icons <= scr->workspaces[0]->clip->max_icons); /* Find first free spot on workspace 0 */ for (k = 0; k < scr->workspaces[0]->clip->max_icons; k++) if (scr->workspaces[0]->clip->icon_array[k] == NULL) break; scr->workspaces[0]->clip->icon_array[k] = aicon; aicon->dock = scr->workspaces[0]->clip; } scr->workspaces[0]->clip->icon_count += added_omnipresent_icons; } WMPostNotificationName(WMNWorkspaceNameChanged, scr, (void *)(uintptr_t) i); } } /* Returns the workspace number for a given workspace name */ int wGetWorkspaceNumber(WScreen *scr, const char *value) { int w, i; if (sscanf(value, "%i", &w) != 1) { w = -1; for (i = 0; i < scr->workspace_count; i++) { if (strcmp(scr->workspaces[i]->name, value) == 0) { w = i; break; } } } else { w--; } return w; } WindowMaker-0.95.5/src/colormap.c0000644000175000017500000000565012214432632013536 00000000000000/* colormap.c - colormap handling code * * Window Maker window manager * * Copyright (c) 1998-2003 Alfredo K. Kojima * * This code slightly based on fvwm code, * Copyright (c) Rob Nation and others * but completely rewritten. * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include "WindowMaker.h" #include #include "window.h" #include "framewin.h" #include "colormap.h" void wColormapInstallForWindow(WScreen * scr, WWindow * wwin) { int i; XWindowAttributes attributes; int done = 0; Window xwin = None; if (wwin) { xwin = wwin->client_win; } else { xwin = scr->root_win; } scr->cmap_window = wwin; if (scr->root_colormap_install_count > 0) { scr->original_cmap_window = wwin; return; } /* install colormap for all windows of the client */ if (wwin && wwin->cmap_window_no > 0 && wwin->cmap_windows) { for (i = wwin->cmap_window_no - 1; i >= 0; i--) { Window w; w = wwin->cmap_windows[i]; if (w == wwin->client_win) done = 1; XGetWindowAttributes(dpy, w, &attributes); if (attributes.colormap == None) attributes.colormap = scr->colormap; if (scr->current_colormap != attributes.colormap) { scr->current_colormap = attributes.colormap; /* * ICCCM 2.0: some client requested permission * to install colormaps by itself and we granted. * So, we can't install any colormaps. */ if (!scr->flags.colormap_stuff_blocked) XInstallColormap(dpy, attributes.colormap); } } } if (!done) { attributes.colormap = None; if (xwin != None) XGetWindowAttributes(dpy, xwin, &attributes); if (attributes.colormap == None) attributes.colormap = scr->colormap; if (scr->current_colormap != attributes.colormap) { scr->current_colormap = attributes.colormap; if (!scr->flags.colormap_stuff_blocked) XInstallColormap(dpy, attributes.colormap); } } XSync(dpy, False); } void wColormapAllowClientInstallation(WScreen * scr, Bool starting) { scr->flags.colormap_stuff_blocked = starting; /* * Client stopped managing the colormap stuff. Restore the colormap * that would be installed if the client did not request colormap * stuff. */ if (!starting) { XInstallColormap(dpy, scr->current_colormap); XSync(dpy, False); } } WindowMaker-0.95.5/src/properties.h0000644000175000017500000000300212214432632014110 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMPROPERTIES_H_ #define WMPROPERTIES_H_ #include "GNUstep.h" unsigned char* PropGetCheckProperty(Window window, Atom hint, Atom type, int format, int count, int *retCount); int PropGetWindowState(Window window); int PropGetNormalHints(Window window, XSizeHints *size_hints, int *pre_iccm); void PropGetProtocols(Window window, WProtocols *prots); int PropGetWMClass(Window window, char **wm_class, char **wm_instance); int PropGetGNUstepWMAttr(Window window, GNUstepWMAttributes **attr); void PropSetWMakerProtocols(Window root); void PropCleanUp(Window root); void PropSetIconTileHint(WScreen *scr, RImage *image); Window PropGetClientLeader(Window window); #endif WindowMaker-0.95.5/src/xutil.h0000644000175000017500000000201412214432632013063 00000000000000/* xutil.h * * Copyright (c) 1998 scottc * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _WM_XUTIL_H_ #define _WM_XUTIL_H_ void FormatXError(Display *dpy, XErrorEvent *error, char *buffer, int size); void RequestSelection(Display *dpy, Window requestor, Time timestamp); char *GetSelection(Display *dpy, Window requestor); #endif WindowMaker-0.95.5/src/motif.c0000644000175000017500000001127312214432632013036 00000000000000/* motif.c-- stuff for support for mwm hints * * Window Maker window manager * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #ifdef MWM_HINTS #include #include #include #include #include #include "WindowMaker.h" #include "framewin.h" #include "window.h" #include "properties.h" #include "icon.h" #include "client.h" #include "motif.h" /* Motif window hints */ #define MWM_HINTS_FUNCTIONS (1L << 0) #define MWM_HINTS_DECORATIONS (1L << 1) /* bit definitions for MwmHints.functions */ #define MWM_FUNC_ALL (1L << 0) #define MWM_FUNC_RESIZE (1L << 1) #define MWM_FUNC_MOVE (1L << 2) #define MWM_FUNC_MINIMIZE (1L << 3) #define MWM_FUNC_MAXIMIZE (1L << 4) #define MWM_FUNC_CLOSE (1L << 5) /* bit definitions for MwmHints.decorations */ #define MWM_DECOR_ALL (1L << 0) #define MWM_DECOR_BORDER (1L << 1) #define MWM_DECOR_RESIZEH (1L << 2) #define MWM_DECOR_TITLE (1L << 3) #define MWM_DECOR_MENU (1L << 4) #define MWM_DECOR_MINIMIZE (1L << 5) #define MWM_DECOR_MAXIMIZE (1L << 6) /* Motif window hints */ typedef struct { long flags; long functions; long decorations; long inputMode; long unknown; } MWMHints; static Atom _XA_MOTIF_WM_HINTS; static void setupMWMHints(WWindow *wwin, MWMHints *mwm_hints) { /* * We will ignore all decoration hints that have an equivalent as * functions, because wmaker does not distinguish decoration hints */ if (mwm_hints->flags & MWM_HINTS_DECORATIONS) { WSETUFLAG(wwin, no_titlebar, 1); WSETUFLAG(wwin, no_close_button, 1); WSETUFLAG(wwin, no_miniaturize_button, 1); WSETUFLAG(wwin, no_resizebar, 1); if (mwm_hints->decorations & MWM_DECOR_ALL) { WSETUFLAG(wwin, no_titlebar, 0); WSETUFLAG(wwin, no_close_button, 0); WSETUFLAG(wwin, no_closable, 0); WSETUFLAG(wwin, no_miniaturize_button, 0); WSETUFLAG(wwin, no_miniaturizable, 0); WSETUFLAG(wwin, no_resizebar, 0); WSETUFLAG(wwin, no_resizable, 0); } if (mwm_hints->decorations & MWM_DECOR_RESIZEH) WSETUFLAG(wwin, no_resizebar, 0); if (mwm_hints->decorations & MWM_DECOR_TITLE) { WSETUFLAG(wwin, no_titlebar, 0); WSETUFLAG(wwin, no_close_button, 0); WSETUFLAG(wwin, no_closable, 0); } if (mwm_hints->decorations & MWM_DECOR_MINIMIZE) { WSETUFLAG(wwin, no_miniaturize_button, 0); WSETUFLAG(wwin, no_miniaturizable, 0); } } if (mwm_hints->flags & MWM_HINTS_FUNCTIONS) { WSETUFLAG(wwin, no_closable, 1); WSETUFLAG(wwin, no_miniaturizable, 1); WSETUFLAG(wwin, no_resizable, 1); if (mwm_hints->functions & MWM_FUNC_ALL) { WSETUFLAG(wwin, no_closable, 0); WSETUFLAG(wwin, no_miniaturizable, 0); WSETUFLAG(wwin, no_resizable, 0); } if (mwm_hints->functions & MWM_FUNC_RESIZE) WSETUFLAG(wwin, no_resizable, 0); if (mwm_hints->functions & MWM_FUNC_MINIMIZE) WSETUFLAG(wwin, no_miniaturizable, 0); if (mwm_hints->functions & MWM_FUNC_MAXIMIZE) { /* a window must be resizable to be maximizable */ WSETUFLAG(wwin, no_resizable, 0); } if (mwm_hints->functions & MWM_FUNC_CLOSE) WSETUFLAG(wwin, no_closable, 0); } } static int getMWMHints(Window window, MWMHints *mwmhints) { unsigned long *data; int count; if (!_XA_MOTIF_WM_HINTS) _XA_MOTIF_WM_HINTS = XInternAtom(dpy, "_MOTIF_WM_HINTS", False); data = (unsigned long *)PropGetCheckProperty(window, _XA_MOTIF_WM_HINTS, _XA_MOTIF_WM_HINTS, 32, 0, &count); if (!data) return 0; mwmhints->flags = 0; if (count >= 4) { mwmhints->flags = data[0]; mwmhints->functions = data[1]; mwmhints->decorations = data[2]; mwmhints->inputMode = data[3]; if (count > 5) mwmhints->unknown = data[4]; } XFree(data); return 1; } void wMWMCheckClientHints(WWindow *wwin) { MWMHints hints; if (getMWMHints(wwin->client_win, &hints)) setupMWMHints(wwin, &hints); } #endif /* MWM_HINTS */ WindowMaker-0.95.5/src/xinerama.h0000644000175000017500000000334712214432632013534 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2001 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _WMXINERAMA_H_ #define _WMXINERAMA_H_ #include "appicon.h" #include "screen.h" #include "window.h" #include void wInitXinerama(WScreen *scr); #define wXineramaHeads(scr) ((scr)->xine_info.count ? (scr)->xine_info.count : 1) #define XFLAG_NONE 0x00 #define XFLAG_DEAD 0x01 #define XFLAG_MULTIPLE 0x02 #define XFLAG_PARTIAL 0x04 int wGetRectPlacementInfo(WScreen *scr, WMRect rect, int *flags); int wGetHeadForRect(WScreen *scr, WMRect rect); int wGetHeadForWindow(WWindow *wwin); int wGetHeadForPoint(WScreen *scr, WMPoint point); int wGetHeadForPointerLocation(WScreen *scr); WMRect wGetRectForHead(WScreen *scr, int head); WArea wGetUsableAreaForHead(WScreen *scr, int head, WArea *totalAreaPtr, Bool noicons); WMPoint wGetPointToCenterRectInHead(WScreen *scr, int head, int width, int height); Bool wWindowTouchesHead(WWindow *wwin, int head); Bool wAppIconTouchesHead(WAppIcon *aicon, int head); #endif WindowMaker-0.95.5/src/xdnd.h0000644000175000017500000000463512214432632012666 00000000000000#ifndef _XDND_H_ #define _XDND_H_ void wXDNDInitializeAtoms(); Bool wXDNDProcessSelection(XEvent *event); Bool wXDNDProcessClientMessage(XClientMessageEvent *event); void wXDNDMakeAwareness(Window window); /* header was ripped from xdnd's example on its page */ #define XDND_THREE 3 #define XDND_ENTER_SOURCE_WIN(e) ((e)->xclient.data.l[0]) #define XDND_ENTER_THREE_TYPES(e) (((e)->xclient.data.l[1] & 0x1UL) == 0) #define XDND_ENTER_THREE_TYPES_SET(e,b) (e)->xclient.data.l[1] = ((e)->xclient.data.l[1] & ~0x1UL) | (((b) == 0) ? 0 : 0x1UL) #define XDND_ENTER_VERSION(e) ((e)->xclient.data.l[1] >> 24) #define XDND_ENTER_VERSION_SET(e,v) (e)->xclient.data.l[1] = ((e)->xclient.data.l[1] & ~(0xFF << 24)) | ((v) << 24) #define XDND_ENTER_TYPE(e,i) ((e)->xclient.data.l[2 + i]) /* i => (0, 1, 2) */ /* XdndPosition */ #define XDND_POSITION_SOURCE_WIN(e) ((e)->xclient.data.l[0]) #define XDND_POSITION_ROOT_X(e) ((e)->xclient.data.l[2] >> 16) #define XDND_POSITION_ROOT_Y(e) ((e)->xclient.data.l[2] & 0xFFFFUL) #define XDND_POSITION_ROOT_SET(e,x,y) (e)->xclient.data.l[2] = ((x) << 16) | ((y) & 0xFFFFUL) #define XDND_POSITION_TIME(e) ((e)->xclient.data.l[3]) #define XDND_POSITION_ACTION(e) ((e)->xclient.data.l[4]) /* XdndStatus */ #define XDND_STATUS_TARGET_WIN(e) ((e)->xclient.data.l[0]) #define XDND_STATUS_WILL_ACCEPT(e) ((e)->xclient.data.l[1] & 0x1L) #define XDND_STATUS_WILL_ACCEPT_SET(e,b) (e)->xclient.data.l[1] = ((e)->xclient.data.l[1] & ~0x1UL) | (((b) == 0) ? 0 : 0x1UL) #define XDND_STATUS_WANT_POSITION(e) ((e)->xclient.data.l[1] & 0x2UL) #define XDND_STATUS_WANT_POSITION_SET(e,b) (e)->xclient.data.l[1] = ((e)->xclient.data.l[1] & ~0x2UL) | (((b) == 0) ? 0 : 0x2UL) #define XDND_STATUS_RECT_X(e) ((e)->xclient.data.l[2] >> 16) #define XDND_STATUS_RECT_Y(e) ((e)->xclient.data.l[2] & 0xFFFFL) #define XDND_STATUS_RECT_WIDTH(e) ((e)->xclient.data.l[3] >> 16) #define XDND_STATUS_RECT_HEIGHT(e) ((e)->xclient.data.l[3] & 0xFFFFL) #define XDND_STATUS_RECT_SET(e,x,y,w,h) {(e)->xclient.data.l[2] = ((x) << 16) | ((y) & 0xFFFFUL); (e)->xclient.data.l[3] = ((w) << 16) | ((h) & 0xFFFFUL); } #define XDND_STATUS_ACTION(e) ((e)->xclient.data.l[4]) /* XdndLeave */ #define XDND_LEAVE_SOURCE_WIN(e) ((e)->xclient.data.l[0]) /* XdndDrop */ #define XDND_DROP_SOURCE_WIN(e) ((e)->xclient.data.l[0]) #define XDND_DROP_TIME(e) ((e)->xclient.data.l[2]) /* XdndFinished */ #define XDND_FINISHED_TARGET_WIN(e) ((e)->xclient.data.l[0]) #endif WindowMaker-0.95.5/src/moveres.c0000644000175000017500000017353512214432632013412 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include "WindowMaker.h" #include "framewin.h" #include "window.h" #include "client.h" #include "icon.h" #include "dock.h" #include "actions.h" #include "workspace.h" #include "placement.h" #include "geomview.h" #include "screen.h" #include "xinerama.h" #include /* How many different types of geometry/position display thingies are there? */ #define NUM_DISPLAYS 5 #define LEFT 1 #define RIGHT 2 #define HORIZONTAL (LEFT|RIGHT) #define UP 4 #define DOWN 8 #define VERTICAL (UP|DOWN) /* True if window currently has a border. This also includes borderless * windows which are currently selected */ #define HAS_BORDER_WITH_SELECT(w) ((w)->flags.selected || HAS_BORDER(w)) /****** Global Variables ******/ extern Cursor wCursor[WCUR_LAST]; /* *---------------------------------------------------------------------- * checkMouseSamplingRate- * For lowering the mouse motion sampling rate for machines where * it's too high (SGIs). If it returns False then the event should be * ignored. *---------------------------------------------------------------------- */ static Bool checkMouseSamplingRate(XEvent * ev) { static Time previousMotion = 0; if (ev->type == MotionNotify) { if (ev->xmotion.time - previousMotion < DELAY_BETWEEN_MOUSE_SAMPLING) { return False; } else { previousMotion = ev->xmotion.time; } } return True; } /* *---------------------------------------------------------------------- * moveGeometryDisplayCentered * * routine that moves the geometry/position window on scr so it is * centered over the given coordinates (x,y). Also the window position * is clamped so it stays on the screen at all times. *---------------------------------------------------------------------- */ static void moveGeometryDisplayCentered(WScreen * scr, int x, int y) { unsigned int w = WMWidgetWidth(scr->gview); unsigned int h = WMWidgetHeight(scr->gview); int x1 = 0, y1 = 0, x2 = scr->scr_width, y2 = scr->scr_height; x -= w / 2; y -= h / 2; /* dead area check */ if (scr->xine_info.count) { WMRect rect; int head, flags; rect.pos.x = x; rect.pos.y = y; rect.size.width = w; rect.size.height = h; head = wGetRectPlacementInfo(scr, rect, &flags); if (flags & (XFLAG_DEAD | XFLAG_PARTIAL)) { rect = wGetRectForHead(scr, head); x1 = rect.pos.x; y1 = rect.pos.y; x2 = x1 + rect.size.width; y2 = y1 + rect.size.height; } } if (x < x1 + 1) x = x1 + 1; else if (x > (x2 - w)) x = x2 - w; if (y < y1 + 1) y = y1 + 1; else if (y > (y2 - h)) y = y2 - h; WMMoveWidget(scr->gview, x, y); } static void showPosition(WWindow * wwin, int x, int y) { WScreen *scr = wwin->screen_ptr; if (wPreferences.move_display == WDIS_NEW) { #if 0 int width = wwin->frame->core->width; int height = wwin->frame->core->height; GC lgc = scr->line_gc; XSetForeground(dpy, lgc, scr->line_pixel); sprintf(num, "%i", x); XDrawLine(dpy, scr->root_win, lgc, 0, y - 1, scr->scr_width, y - 1); XDrawLine(dpy, scr->root_win, lgc, 0, y + height + 2, scr->scr_width, y + height + 2); XDrawLine(dpy, scr->root_win, lgc, x - 1, 0, x - 1, scr->scr_height); XDrawLine(dpy, scr->root_win, lgc, x + width + 2, 0, x + width + 2, scr->scr_height); #endif } else { WSetGeometryViewShownPosition(scr->gview, x, y); } } static void cyclePositionDisplay(WWindow * wwin, int x, int y, int w, int h) { WScreen *scr = wwin->screen_ptr; WMRect rect; wPreferences.move_display++; wPreferences.move_display %= NUM_DISPLAYS; if (wPreferences.move_display == WDIS_NEW) { wPreferences.move_display++; wPreferences.move_display %= NUM_DISPLAYS; } if (wPreferences.move_display == WDIS_NONE) { WMUnmapWidget(scr->gview); } else { if (wPreferences.move_display == WDIS_CENTER) { rect = wGetRectForHead(scr, wGetHeadForWindow(wwin)); moveGeometryDisplayCentered(scr, rect.pos.x + rect.size.width / 2, rect.pos.y + rect.size.height / 2); } else if (wPreferences.move_display == WDIS_TOPLEFT) { rect = wGetRectForHead(scr, wGetHeadForWindow(wwin)); moveGeometryDisplayCentered(scr, rect.pos.x + 1, rect.pos.y + 1); } else if (wPreferences.move_display == WDIS_FRAME_CENTER) { moveGeometryDisplayCentered(scr, x + w / 2, y + h / 2); } WMMapWidget(scr->gview); } } static void mapPositionDisplay(WWindow * wwin, int x, int y, int w, int h) { WScreen *scr = wwin->screen_ptr; WMRect rect; if (wPreferences.move_display == WDIS_NEW || wPreferences.move_display == WDIS_NONE) { return; } else if (wPreferences.move_display == WDIS_CENTER) { rect = wGetRectForHead(scr, wGetHeadForWindow(wwin)); moveGeometryDisplayCentered(scr, rect.pos.x + rect.size.width / 2, rect.pos.y + rect.size.height / 2); } else if (wPreferences.move_display == WDIS_TOPLEFT) { rect = wGetRectForHead(scr, wGetHeadForWindow(wwin)); moveGeometryDisplayCentered(scr, rect.pos.x + 1, rect.pos.y + 1); } else if (wPreferences.move_display == WDIS_FRAME_CENTER) { moveGeometryDisplayCentered(scr, x + w / 2, y + h / 2); } WMMapWidget(scr->gview); WSetGeometryViewShownPosition(scr->gview, x, y); } static void showGeometry(WWindow * wwin, int x1, int y1, int x2, int y2, int direction) { WScreen *scr = wwin->screen_ptr; Window root = scr->root_win; GC gc = scr->line_gc; int ty, by, my, x, y, mx, s; char num[16]; XSegment segment[4]; int fw, fh; /* This seems necessary for some odd reason (too lazy to write x1-1 and * x2-1 everywhere below in the code). But why only for x? */ x1--; x2--; if (HAS_BORDER_WITH_SELECT(wwin)) { x1 += scr->frame_border_width; x2 += scr->frame_border_width; y1 += scr->frame_border_width; y2 += scr->frame_border_width; } ty = y1 + wwin->frame->top_width; by = y2 - wwin->frame->bottom_width; if (wPreferences.size_display == WDIS_NEW) { fw = XTextWidth(scr->tech_draw_font, "8888", 4); fh = scr->tech_draw_font->ascent + scr->tech_draw_font->descent; XSetForeground(dpy, gc, scr->line_pixel); /* vertical geometry */ if (((direction & LEFT) && (x2 < scr->scr_width - fw)) || (x1 < fw)) { x = x2; s = -15; } else { x = x1; s = 15; } my = (ty + by) / 2; /* top arrow & end bar */ segment[0].x1 = x - (s + 6); segment[0].y1 = ty; segment[0].x2 = x - (s - 10); segment[0].y2 = ty; /* arrowhead */ segment[1].x1 = x - (s - 2); segment[1].y1 = ty + 1; segment[1].x2 = x - (s - 5); segment[1].y2 = ty + 7; segment[2].x1 = x - (s - 2); segment[2].y1 = ty + 1; segment[2].x2 = x - (s + 1); segment[2].y2 = ty + 7; /* line */ segment[3].x1 = x - (s - 2); segment[3].y1 = ty + 1; segment[3].x2 = x - (s - 2); segment[3].y2 = my - fh / 2 - 1; XDrawSegments(dpy, root, gc, segment, 4); /* bottom arrow & end bar */ segment[0].y1 = by; segment[0].y2 = by; /* arrowhead */ segment[1].y1 = by - 1; segment[1].y2 = by - 7; segment[2].y1 = by - 1; segment[2].y2 = by - 7; /* line */ segment[3].y1 = my + fh / 2 + 2; segment[3].y2 = by - 1; XDrawSegments(dpy, root, gc, segment, 4); snprintf(num, sizeof(num), "%i", (by - ty - wwin->normal_hints->base_height) / wwin->normal_hints->height_inc); fw = XTextWidth(scr->tech_draw_font, num, strlen(num)); /* Display the height. */ XSetFont(dpy, gc, scr->tech_draw_font->fid); XDrawString(dpy, root, gc, x - s + 3 - fw / 2, my + scr->tech_draw_font->ascent - fh / 2 + 1, num, strlen(num)); /* horizontal geometry */ if (y1 < 15) { y = y2; s = -15; } else { y = y1; s = 15; } mx = x1 + (x2 - x1) / 2; snprintf(num, sizeof(num), "%i", (x2 - x1 - wwin->normal_hints->base_width) / wwin->normal_hints->width_inc); fw = XTextWidth(scr->tech_draw_font, num, strlen(num)); /* left arrow & end bar */ segment[0].x1 = x1; segment[0].y1 = y - (s + 6); segment[0].x2 = x1; segment[0].y2 = y - (s - 10); /* arrowhead */ segment[1].x1 = x1 + 7; segment[1].y1 = y - (s + 1); segment[1].x2 = x1 + 1; segment[1].y2 = y - (s - 2); segment[2].x1 = x1 + 1; segment[2].y1 = y - (s - 2); segment[2].x2 = x1 + 7; segment[2].y2 = y - (s - 5); /* line */ segment[3].x1 = x1 + 1; segment[3].y1 = y - (s - 2); segment[3].x2 = mx - fw / 2 - 2; segment[3].y2 = y - (s - 2); XDrawSegments(dpy, root, gc, segment, 4); /* right arrow & end bar */ segment[0].x1 = x2 + 1; segment[0].x2 = x2 + 1; /* arrowhead */ segment[1].x1 = x2 - 6; segment[1].x2 = x2; segment[2].x1 = x2; segment[2].x2 = x2 - 6; /* line */ segment[3].x1 = mx + fw / 2 + 2; segment[3].x2 = x2; XDrawSegments(dpy, root, gc, segment, 4); /* Display the width. */ XDrawString(dpy, root, gc, mx - fw / 2 + 1, y - s + scr->tech_draw_font->ascent - fh / 2 + 1, num, strlen(num)); } else { WSetGeometryViewShownSize(scr->gview, (x2 - x1 - wwin->normal_hints->base_width) / wwin->normal_hints->width_inc, (by - ty - wwin->normal_hints->base_height) / wwin->normal_hints->height_inc); } } static void cycleGeometryDisplay(WWindow * wwin, int x, int y, int w, int h, int dir) { WScreen *scr = wwin->screen_ptr; WMRect rect; wPreferences.size_display++; wPreferences.size_display %= NUM_DISPLAYS; if (wPreferences.size_display == WDIS_NEW || wPreferences.size_display == WDIS_NONE) { WMUnmapWidget(scr->gview); } else { if (wPreferences.size_display == WDIS_CENTER) { rect = wGetRectForHead(scr, wGetHeadForWindow(wwin)); moveGeometryDisplayCentered(scr, rect.pos.x + rect.size.width / 2, rect.pos.y + rect.size.height / 2); } else if (wPreferences.size_display == WDIS_TOPLEFT) { rect = wGetRectForHead(scr, wGetHeadForWindow(wwin)); moveGeometryDisplayCentered(scr, rect.pos.x + 1, rect.pos.y + 1); } else if (wPreferences.size_display == WDIS_FRAME_CENTER) { moveGeometryDisplayCentered(scr, x + w / 2, y + h / 2); } WMMapWidget(scr->gview); showGeometry(wwin, x, y, x + w, y + h, dir); } } static void mapGeometryDisplay(WWindow * wwin, int x, int y, int w, int h) { WScreen *scr = wwin->screen_ptr; WMRect rect; if (wPreferences.size_display == WDIS_NEW || wPreferences.size_display == WDIS_NONE) return; if (wPreferences.size_display == WDIS_CENTER) { rect = wGetRectForHead(scr, wGetHeadForWindow(wwin)); moveGeometryDisplayCentered(scr, rect.pos.x + rect.size.width / 2, rect.pos.y + rect.size.height / 2); } else if (wPreferences.size_display == WDIS_TOPLEFT) { rect = wGetRectForHead(scr, wGetHeadForWindow(wwin)); moveGeometryDisplayCentered(scr, rect.pos.x + 1, rect.pos.y + 1); } else if (wPreferences.size_display == WDIS_FRAME_CENTER) { moveGeometryDisplayCentered(scr, x + w / 2, y + h / 2); } WMMapWidget(scr->gview); showGeometry(wwin, x, y, x + w, y + h, 0); } static void doWindowMove(WWindow * wwin, WMArray * array, int dx, int dy) { WWindow *tmpw; WScreen *scr = wwin->screen_ptr; int x, y; if (!array || !WMGetArrayItemCount(array)) { wWindowMove(wwin, wwin->frame_x + dx, wwin->frame_y + dy); } else { WMArrayIterator iter; WM_ITERATE_ARRAY(array, tmpw, iter) { x = tmpw->frame_x + dx; y = tmpw->frame_y + dy; #if 1 /* XXX: with xinerama patch was #if 0, check this */ /* don't let windows become unreachable */ if (x + (int)tmpw->frame->core->width < 20) x = 20 - (int)tmpw->frame->core->width; else if (x + 20 > scr->scr_width) x = scr->scr_width - 20; if (y + (int)tmpw->frame->core->height < 20) y = 20 - (int)tmpw->frame->core->height; else if (y + 20 > scr->scr_height) y = scr->scr_height - 20; #else wScreenBringInside(scr, &x, &y, (int)tmpw->frame->core->width, (int)tmpw->frame->core->height); #endif wWindowMove(tmpw, x, y); } } } static void drawTransparentFrame(WWindow * wwin, int x, int y, int width, int height) { Window root = wwin->screen_ptr->root_win; GC gc = wwin->screen_ptr->frame_gc; int h = 0; int bottom = 0; if (HAS_BORDER_WITH_SELECT(wwin)) { x += wwin->screen_ptr->frame_border_width; y += wwin->screen_ptr->frame_border_width; } if (HAS_TITLEBAR(wwin) && !wwin->flags.shaded) { h = WMFontHeight(wwin->screen_ptr->title_font) + (wPreferences.window_title_clearance + TITLEBAR_EXTEND_SPACE) * 2; if (h > wPreferences.window_title_max_height) h = wPreferences.window_title_max_height; if (h < wPreferences.window_title_min_height) h = wPreferences.window_title_min_height; } if (HAS_RESIZEBAR(wwin) && !wwin->flags.shaded) { /* Can't use wwin-frame->bottom_width because, in some cases (e.g. interactive placement), frame does not point to anything. */ bottom = RESIZEBAR_HEIGHT; } XDrawRectangle(dpy, root, gc, x - 1, y - 1, width + 1, height + 1); if (h > 0) { XDrawLine(dpy, root, gc, x, y + h - 1, x + width, y + h - 1); } if (bottom > 0) { XDrawLine(dpy, root, gc, x, y + height - bottom, x + width, y + height - bottom); } } static void drawFrames(WWindow * wwin, WMArray * array, int dx, int dy) { WWindow *tmpw; int scr_width = wwin->screen_ptr->scr_width; int scr_height = wwin->screen_ptr->scr_height; int x, y; if (!array) { x = wwin->frame_x + dx; y = wwin->frame_y + dy; drawTransparentFrame(wwin, x, y, wwin->frame->core->width, wwin->frame->core->height); } else { WMArrayIterator iter; WM_ITERATE_ARRAY(array, tmpw, iter) { x = tmpw->frame_x + dx; y = tmpw->frame_y + dy; /* don't let windows become unreachable */ #if 1 /* XXX: was 0 in XINERAMA patch, check */ if (x + (int)tmpw->frame->core->width < 20) x = 20 - (int)tmpw->frame->core->width; else if (x + 20 > scr_width) x = scr_width - 20; if (y + (int)tmpw->frame->core->height < 20) y = 20 - (int)tmpw->frame->core->height; else if (y + 20 > scr_height) y = scr_height - 20; #else wScreenBringInside(wwin->screen_ptr, &x, &y, (int)tmpw->frame->core->width, (int)tmpw->frame->core->height); #endif drawTransparentFrame(tmpw, x, y, tmpw->frame->core->width, tmpw->frame->core->height); } } } static void flushMotion(void) { XEvent ev; XSync(dpy, False); while (XCheckMaskEvent(dpy, ButtonMotionMask, &ev)) ; } static void crossWorkspace(WScreen * scr, WWindow * wwin, int opaque_move, int new_workspace, int rewind) { /* do not let window be unmapped */ if (opaque_move) { wwin->flags.changing_workspace = 1; wWindowChangeWorkspace(wwin, new_workspace); } /* go to new workspace */ wWorkspaceChange(scr, new_workspace); wwin->flags.changing_workspace = 0; if (rewind) XWarpPointer(dpy, None, None, 0, 0, 0, 0, scr->scr_width - 20, 0); else XWarpPointer(dpy, None, None, 0, 0, 0, 0, -(scr->scr_width - 20), 0); flushMotion(); if (!opaque_move) { XGrabPointer(dpy, scr->root_win, True, PointerMotionMask | ButtonReleaseMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, wCursor[WCUR_MOVE], CurrentTime); } } 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 - 1 + \ (HAS_BORDER_WITH_SELECT(w) ? 2*(w)->screen_ptr->frame_border_width : 0)) #define WBOTTOM(w) ((w)->frame_y + (int)(w)->frame->core->height - 1 + \ (HAS_BORDER_WITH_SELECT(w) ? 2*(w)->screen_ptr->frame_border_width : 0)) 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) wfree(data->topList); if (data->leftList) wfree(data->leftList); if (data->rightList) wfree(data->rightList); if (data->bottomList) wfree(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.miniaturized && !tmp->flags.hidden && !tmp->flags.obscured && !WFLAGP(tmp, sunken)) { 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) { 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 + (HAS_BORDER_WITH_SELECT(wwin) ? 2 * wwin->screen_ptr->frame_border_width : 0); data->winHeight = wwin->frame->core->height + (HAS_BORDER_WITH_SELECT(wwin) ? 2 * wwin->screen_ptr->frame_border_width : 0); } 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 attract; hresist = False; vresist = 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 l_edge, r_edge; int edge_l, edge_r; int t_edge, b_edge; int edge_t, edge_b; int resist; resist = WIN_RESISTANCE(wPreferences.edge_resistance); attract = wPreferences.attract; /* horizontal movement: check horizontal edge resistances */ if (dx || dy) { WMRect rect; int i, head; /* window is the leftmost window: check against screen edge */ /* Add inter head resistance 1/2 (if needed) */ head = wGetHeadForPointerLocation(scr); rect = wGetRectForHead(scr, head); l_edge = WMAX(scr->totalUsableArea[head].x1, rect.pos.x); edge_l = l_edge - resist; edge_r = WMIN(scr->totalUsableArea[head].x2, rect.pos.x + rect.size.width); r_edge = edge_r + resist; /* 1 */ if ((data->rightIndex >= 0) && (data->rightIndex <= data->count)) { WWindow *looprw; for (i = data->rightIndex - 1; i >= 0; i--) { looprw = data->rightList[i]; if (!(data->realY > WBOTTOM(looprw) || (data->realY + data->winHeight) < WTOP(looprw))) { if (attract || ((data->realX < (WRIGHT(looprw) + 2)) && dx < 0)) { l_edge = WRIGHT(looprw) + 1; resist = WIN_RESISTANCE(wPreferences.edge_resistance); } break; } } if (attract) { for (i = data->rightIndex; i < data->count; i++) { looprw = data->rightList[i]; if (!(data->realY > WBOTTOM(looprw) || (data->realY + data->winHeight) < WTOP(looprw))) { r_edge = WRIGHT(looprw) + 1; resist = WIN_RESISTANCE(wPreferences.edge_resistance); break; } } } } if ((data->leftIndex >= 0) && (data->leftIndex <= data->count)) { WWindow *looprw; for (i = data->leftIndex - 1; i >= 0; i--) { looprw = data->leftList[i]; if (!(data->realY > WBOTTOM(looprw) || (data->realY + data->winHeight) < WTOP(looprw))) { if (attract || (((data->realX + data->winWidth) > (WLEFT(looprw) - 1)) && dx > 0)) { edge_r = WLEFT(looprw); resist = WIN_RESISTANCE(wPreferences.edge_resistance); } break; } } if (attract) for (i = data->leftIndex; i < data->count; i++) { looprw = data->leftList[i]; if (!(data->realY > WBOTTOM(looprw) || (data->realY + data->winHeight) < WTOP(looprw))) { edge_l = WLEFT(looprw); resist = WIN_RESISTANCE(wPreferences.edge_resistance); break; } } } /* printf("%d %d\n",winL,winR); printf("l_ %d r_ %d _l %d _r %d\n",l_edge,r_edge,edge_l,edge_r); */ if ((winL - l_edge) < (r_edge - winL)) { if (resist > 0) { if ((attract && winL <= l_edge + resist && winL >= l_edge - resist) || (dx < 0 && winL <= l_edge && winL >= l_edge - resist)) { newX = l_edge; hresist = True; } } } else { if (resist > 0 && attract && winL >= r_edge - resist && winL <= r_edge + resist) { newX = r_edge; hresist = True; } } if ((winR - edge_l) < (edge_r - winR)) { if (resist > 0 && attract && winR <= edge_l + resist && winR >= edge_l - resist) { newX = edge_l - data->winWidth; hresist = True; } } else { if (resist > 0) { if ((attract && winR >= edge_r - resist && winR <= edge_r + resist) || (dx > 0 && winR >= edge_r && winR <= edge_r + resist)) { newX = edge_r - data->winWidth; hresist = True; } } } /* VeRT */ /* Add inter head resistance 2/2 (if needed) */ t_edge = WMAX(scr->totalUsableArea[head].y1, rect.pos.y); edge_t = t_edge - resist; edge_b = WMIN(scr->totalUsableArea[head].y2, rect.pos.y + rect.size.height); b_edge = edge_b + resist; if ((data->bottomIndex >= 0) && (data->bottomIndex <= data->count)) { WWindow *looprw; for (i = data->bottomIndex - 1; i >= 0; i--) { looprw = data->bottomList[i]; if (!(data->realX > WRIGHT(looprw) || (data->realX + data->winWidth) < WLEFT(looprw))) { if (attract || ((data->realY < (WBOTTOM(looprw) + 2)) && dy < 0)) { t_edge = WBOTTOM(looprw) + 1; resist = WIN_RESISTANCE(wPreferences.edge_resistance); } break; } } if (attract) { for (i = data->bottomIndex; i < data->count; i++) { looprw = data->bottomList[i]; if (!(data->realX > WRIGHT(looprw) || (data->realX + data->winWidth) < WLEFT(looprw))) { b_edge = WBOTTOM(looprw) + 1; resist = WIN_RESISTANCE(wPreferences.edge_resistance); break; } } } } if ((data->topIndex >= 0) && (data->topIndex <= data->count)) { WWindow *looprw; for (i = data->topIndex - 1; i >= 0; i--) { looprw = data->topList[i]; if (!(data->realX > WRIGHT(looprw) || (data->realX + data->winWidth) < WLEFT(looprw))) { if (attract || (((data->realY + data->winHeight) > (WTOP(looprw) - 1)) && dy > 0)) { edge_b = WTOP(looprw); resist = WIN_RESISTANCE(wPreferences.edge_resistance); } break; } } if (attract) for (i = data->topIndex; i < data->count; i++) { looprw = data->topList[i]; if (!(data->realX > WRIGHT(looprw) || (data->realX + data->winWidth) < WLEFT(looprw))) { edge_t = WTOP(looprw); resist = WIN_RESISTANCE(wPreferences.edge_resistance); break; } } } if ((winT - t_edge) < (b_edge - winT)) { if (resist > 0) { if ((attract && winT <= t_edge + resist && winT >= t_edge - resist) || (dy < 0 && winT <= t_edge && winT >= t_edge - resist)) { newY = t_edge; vresist = True; } } } else { if (resist > 0 && attract && winT >= b_edge - resist && winT <= b_edge + resist) { newY = b_edge; vresist = True; } } if ((winB - edge_t) < (edge_b - winB)) { if (resist > 0 && attract && winB <= edge_t + resist && winB >= edge_t - resist) { newY = edge_t - data->winHeight; vresist = True; } } else { if (resist > 0) { if ((attract && winB >= edge_b - resist && winB <= edge_b + resist) || (dy > 0 && winB >= edge_b && winB <= edge_b + resist)) { newY = edge_b - data->winHeight; vresist = True; } } } } /* END VeRT */ } /* 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 (wPreferences.move_display == WDIS_NEW && !scr->selected_windows) { showPosition(wwin, data->realX, data->realY); } 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); } if (!scr->selected_windows && wPreferences.move_display == WDIS_FRAME_CENTER) { moveGeometryDisplayCentered(scr, newX + data->winWidth / 2, newY + data->winHeight / 2); } if (!opaqueMove) { /* draw frames */ drawFrames(wwin, scr->selected_windows, newX - wwin->frame_x, newY - wwin->frame_y); } if (!scr->selected_windows) { 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; } #define _KS KEY_CONTROL_WINDOW_WEIGHT #define MOVABLE_BIT 0x01 #define RESIZABLE_BIT 0x02 int wKeyboardMoveResizeWindow(WWindow * wwin) { WScreen *scr = wwin->screen_ptr; Window root = scr->root_win; XEvent event; int w = wwin->frame->core->width; int h = wwin->frame->core->height; int scr_width = wwin->screen_ptr->scr_width; int scr_height = wwin->screen_ptr->scr_height; int vert_border = wwin->frame->top_width + wwin->frame->bottom_width; int src_x = wwin->frame_x; int src_y = wwin->frame_y; int original_w = w; int original_h = h; int done, off_x, off_y, ww, wh; int kspeed = _KS; int opaqueMoveResize = wPreferences.opaque_move_resize_keyboard; Time lastTime = 0; KeyCode shiftl, shiftr, ctrlmode; KeySym keysym = NoSymbol; int moment = 0; int modes = ((IS_MOVABLE(wwin) ? MOVABLE_BIT : 0) | (IS_RESIZABLE(wwin) ? RESIZABLE_BIT : 0)); int head = ((wPreferences.auto_arrange_icons && wXineramaHeads(scr) > 1) ? wGetHeadForWindow(wwin) : scr->xine_info.primary_head); shiftl = XKeysymToKeycode(dpy, XK_Shift_L); shiftr = XKeysymToKeycode(dpy, XK_Shift_R); ctrlmode = done = off_x = off_y = 0; if (modes == RESIZABLE_BIT) { ctrlmode = 1; } XSync(dpy, False); wusleep(10000); XGrabKeyboard(dpy, root, False, GrabModeAsync, GrabModeAsync, CurrentTime); if (!wwin->flags.selected) { wUnselectWindows(scr); } XGrabServer(dpy); XGrabPointer(dpy, scr->root_win, True, PointerMotionMask | ButtonReleaseMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, wCursor[WCUR_DEFAULT], CurrentTime); if (!opaqueMoveResize) { if (wwin->flags.shaded || scr->selected_windows) { if (scr->selected_windows) drawFrames(wwin, scr->selected_windows, off_x, off_y); else drawTransparentFrame(wwin, src_x + off_x, src_y + off_y, w, h); } else { drawTransparentFrame(wwin, src_x + off_x, src_y + off_y, w, h); } } if ((wwin->flags.shaded || scr->selected_windows) && (!scr->selected_windows)) { mapPositionDisplay(wwin, src_x, src_y, w, h); } ww = w; wh = h; while (1) { /* looper.ox=off_x; looper.oy=off_y; */ do { WMMaskEvent(dpy, KeyPressMask | ButtonReleaseMask | ButtonPressMask | ExposureMask, &event); if (event.type == Expose) { WMHandleEvent(&event); } } while (event.type == Expose); if (!opaqueMoveResize) { if (wwin->flags.shaded || scr->selected_windows) { if (scr->selected_windows) 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 ***/ } else { drawTransparentFrame(wwin, src_x + off_x, src_y + off_y, ww, wh); } } if (ctrlmode) showGeometry(wwin, src_x + off_x, src_y + off_y, src_x + off_x + ww, src_y + off_y + wh, 0); XUngrabServer(dpy); XSync(dpy, False); switch (event.type) { case KeyPress: /* accelerate */ if (event.xkey.time - lastTime > 50) { kspeed /= (1 + (event.xkey.time - lastTime) / 100); } else { if (kspeed < 20) { kspeed++; } } if (kspeed < _KS) kspeed = _KS; lastTime = event.xkey.time; if (modes == (MOVABLE_BIT | RESIZABLE_BIT)) { if ((event.xkey.state & ControlMask) && !wwin->flags.shaded) { ctrlmode = 1; wUnselectWindows(scr); } else { ctrlmode = 0; } } if (event.xkey.keycode == shiftl || event.xkey.keycode == shiftr) { if (ctrlmode) cycleGeometryDisplay(wwin, src_x + off_x, src_y + off_y, ww, wh, 0); else cyclePositionDisplay(wwin, src_x + off_x, src_y + off_y, ww, wh); } else { keysym = XLookupKeysym(&event.xkey, 0); switch (keysym) { case XK_Return: done = 2; break; case XK_Escape: done = 1; break; case XK_Up: #ifdef XK_KP_Up case XK_KP_Up: #endif case XK_k: if (ctrlmode) { if (moment != UP) h = wh; h -= kspeed; moment = UP; if (h < 1) h = 1; } else off_y -= kspeed; break; case XK_Down: #ifdef XK_KP_Down case XK_KP_Down: #endif case XK_j: if (ctrlmode) { if (moment != DOWN) h = wh; h += kspeed; moment = DOWN; } else off_y += kspeed; break; case XK_Left: #ifdef XK_KP_Left case XK_KP_Left: #endif case XK_h: if (ctrlmode) { if (moment != LEFT) w = ww; w -= kspeed; if (w < 1) w = 1; moment = LEFT; } else off_x -= kspeed; break; case XK_Right: #ifdef XK_KP_Right case XK_KP_Right: #endif case XK_l: if (ctrlmode) { if (moment != RIGHT) w = ww; w += kspeed; moment = RIGHT; } else off_x += kspeed; break; } ww = w; wh = h; wh -= vert_border; wWindowConstrainSize(wwin, (unsigned int *)&ww, (unsigned int *)&wh); wh += vert_border; if (wPreferences.ws_cycle) { if (src_x + off_x + ww < 20) { if (!scr->current_workspace) { wWorkspaceChange(scr, scr->workspace_count - 1); } else wWorkspaceChange(scr, scr->current_workspace - 1); off_x += scr_width; } else if (src_x + off_x + 20 > scr_width) { if (scr->current_workspace == scr->workspace_count - 1) { wWorkspaceChange(scr, 0); } else wWorkspaceChange(scr, scr->current_workspace + 1); off_x -= scr_width; } } else { if (src_x + off_x + ww < 20) off_x = 20 - ww - src_x; else if (src_x + off_x + 20 > scr_width) off_x = scr_width - 20 - src_x; } if (src_y + off_y + wh < 20) { off_y = 20 - wh - src_y; } else if (src_y + off_y + 20 > scr_height) { off_y = scr_height - 20 - src_y; } } break; case ButtonPress: case ButtonRelease: done = 1; break; case Expose: WMHandleEvent(&event); while (XCheckTypedEvent(dpy, Expose, &event)) { WMHandleEvent(&event); } break; default: WMHandleEvent(&event); break; } XGrabServer(dpy); /*xxx */ if (wwin->flags.shaded && !scr->selected_windows) { moveGeometryDisplayCentered(scr, src_x + off_x + w / 2, src_y + off_y + h / 2); } else { if (ctrlmode) { WMUnmapWidget(scr->gview); mapGeometryDisplay(wwin, src_x + off_x, src_y + off_y, ww, wh); } else if (!scr->selected_windows) { WMUnmapWidget(scr->gview); mapPositionDisplay(wwin, src_x + off_x, src_y + off_y, ww, wh); } } if (!opaqueMoveResize) { if (wwin->flags.shaded || scr->selected_windows) { if (scr->selected_windows) drawFrames(wwin, scr->selected_windows, off_x, off_y); else drawTransparentFrame(wwin, src_x + off_x, src_y + off_y, w, h); } else { drawTransparentFrame(wwin, src_x + off_x, src_y + off_y, ww, wh); } } if (ctrlmode) { showGeometry(wwin, src_x + off_x, src_y + off_y, src_x + off_x + ww, src_y + off_y + wh, 0); } else if (!scr->selected_windows) showPosition(wwin, src_x + off_x, src_y + off_y); if (opaqueMoveResize) { XUngrabServer(dpy); wWindowConfigure(wwin, src_x + off_x, src_y + off_y, ww, wh - vert_border); }; if (done) { scr->keymove_tick = 0; /* WMDeleteTimerWithClientData(&looper); */ if (!opaqueMoveResize) {/*ctrlmode=> resize */ if (wwin->flags.shaded || scr->selected_windows) { if (scr->selected_windows) drawFrames(wwin, scr->selected_windows, off_x, off_y); else drawTransparentFrame(wwin, src_x + off_x, src_y + off_y, w, h); } else { drawTransparentFrame(wwin, src_x + off_x, src_y + off_y, ww, wh); } }; if (ctrlmode) { showGeometry(wwin, src_x + off_x, src_y + off_y, src_x + off_x + ww, src_y + off_y + wh, 0); WMUnmapWidget(scr->gview); } else WMUnmapWidget(scr->gview); XUngrabKeyboard(dpy, CurrentTime); XUngrabPointer(dpy, CurrentTime); XUngrabServer(dpy); if (done == 2) { if (wwin->flags.shaded || scr->selected_windows) { if (!scr->selected_windows) { wWindowMove(wwin, src_x + off_x, src_y + off_y); wWindowSynthConfigureNotify(wwin); } else { WMArrayIterator iter; WWindow *foo; doWindowMove(wwin, scr->selected_windows, off_x, off_y); WM_ITERATE_ARRAY(scr->selected_windows, foo, iter) { wWindowSynthConfigureNotify(foo); } } } else { if (ww != original_w) wwin->flags.maximized &= ~(MAX_HORIZONTAL | MAX_TOPHALF | MAX_BOTTOMHALF | MAX_MAXIMUS); if (wh != original_h) wwin->flags.maximized &= ~(MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_MAXIMUS); wWindowConfigure(wwin, src_x + off_x, src_y + off_y, ww, wh - vert_border); wWindowSynthConfigureNotify(wwin); } wWindowChangeWorkspace(wwin, scr->current_workspace); wSetFocusTo(scr, wwin); } if (wPreferences.auto_arrange_icons && wXineramaHeads(scr) > 1 && head != wGetHeadForWindow(wwin)) { wArrangeIcons(scr, True); } update_saved_geometry(wwin); return 1; } } } /* *---------------------------------------------------------------------- * 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) { WScreen *scr = wwin->screen_ptr; XEvent event; Window root = scr->root_win; KeyCode shiftl, shiftr; Bool done = False; int started = 0; int warped = 0; /* This needs not to change while moving, else bad things can happen */ int opaqueMove = wPreferences.opaque_move; MoveData moveData; int head = ((wPreferences.auto_arrange_icons && wXineramaHeads(scr) > 1) ? wGetHeadForWindow(wwin) : scr->xine_info.primary_head); if (!IS_MOVABLE(wwin)) return False; if (wPreferences.opaque_move && !wPreferences.use_saveunders) { XSetWindowAttributes attr; attr.save_under = True; XChangeWindowAttributes(dpy, wwin->frame->core->window, CWSaveUnder, &attr); } 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); } shiftl = XKeysymToKeycode(dpy, XK_Shift_L); shiftr = XKeysymToKeycode(dpy, XK_Shift_R); while (!done) { if (warped) { int junk; Window junkw; /* XWarpPointer() doesn't seem to generate Motion events, so * we've got to simulate them */ XQueryPointer(dpy, root, &junkw, &junkw, &event.xmotion.x_root, &event.xmotion.y_root, &junk, &junk, (unsigned *)&junk); } else { WMMaskEvent(dpy, KeyPressMask | ButtonMotionMask | PointerMotionHintMask | ButtonReleaseMask | ButtonPressMask | ExposureMask, &event); if (event.type == MotionNotify) { /* compress MotionNotify events */ while (XCheckMaskEvent(dpy, ButtonMotionMask, &event)) ; if (!checkMouseSamplingRate(&event)) continue; } } switch (event.type) { case KeyPress: if ((event.xkey.keycode == shiftl || event.xkey.keycode == shiftr) && started && !scr->selected_windows) { if (!opaqueMove) { drawFrames(wwin, scr->selected_windows, moveData.realX - wwin->frame_x, moveData.realY - wwin->frame_y); } if (wPreferences.move_display == WDIS_NEW && !scr->selected_windows) { showPosition(wwin, moveData.realX, moveData.realY); XUngrabServer(dpy); } cyclePositionDisplay(wwin, moveData.realX, moveData.realY, moveData.winWidth, moveData.winHeight); if (wPreferences.move_display == WDIS_NEW && !scr->selected_windows) { XGrabServer(dpy); showPosition(wwin, moveData.realX, moveData.realY); } if (!opaqueMove) { drawFrames(wwin, scr->selected_windows, moveData.realX - wwin->frame_x, moveData.realY - wwin->frame_y); } /*} else { WMHandleEvent(&event); this causes problems needs fixing */ } break; case MotionNotify: if (started) { updateWindowPosition(wwin, &moveData, scr->selected_windows == NULL && wPreferences.edge_resistance > 0, opaqueMove, event.xmotion.x_root, event.xmotion.y_root); if (!warped && !wPreferences.no_autowrap) { int oldWorkspace = scr->current_workspace; if (wPreferences.move_display == WDIS_NEW && !scr->selected_windows) { showPosition(wwin, moveData.realX, moveData.realY); XUngrabServer(dpy); } if (!opaqueMove) { drawFrames(wwin, scr->selected_windows, moveData.realX - wwin->frame_x, moveData.realY - wwin->frame_y); } if (checkWorkspaceChange(wwin, &moveData, opaqueMove)) { if (scr->current_workspace != oldWorkspace && wPreferences.edge_resistance > 0 && scr->selected_windows == NULL) updateMoveData(wwin, &moveData); warped = 1; } if (!opaqueMove) { drawFrames(wwin, scr->selected_windows, moveData.realX - wwin->frame_x, moveData.realY - wwin->frame_y); } if (wPreferences.move_display == WDIS_NEW && !scr->selected_windows) { XSync(dpy, False); showPosition(wwin, moveData.realX, moveData.realY); XGrabServer(dpy); } } else { warped = 0; } } 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, CurrentTime); if (!scr->selected_windows) mapPositionDisplay(wwin, moveData.realX, moveData.realY, moveData.winWidth, moveData.winHeight); if (started && !opaqueMove) drawFrames(wwin, scr->selected_windows, 0, 0); if (!opaqueMove || (wPreferences.move_display == WDIS_NEW && !scr->selected_windows)) { XGrabServer(dpy); if (wPreferences.move_display == WDIS_NEW) showPosition(wwin, moveData.realX, moveData.realY); } } break; case ButtonPress: break; case ButtonRelease: if (event.xbutton.button != ev->xbutton.button) break; if (started) { XEvent e; if (!opaqueMove) { drawFrames(wwin, scr->selected_windows, moveData.realX - wwin->frame_x, moveData.realY - wwin->frame_y); XSync(dpy, 0); 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 (!opaqueMove) { wWindowChangeWorkspace(wwin, scr->current_workspace); wSetFocusTo(scr, wwin); } if (wPreferences.move_display == WDIS_NEW) showPosition(wwin, moveData.realX, moveData.realY); /* discard all enter/leave events that happened until * the time the button was released */ while (XCheckTypedEvent(dpy, EnterNotify, &e)) { if (e.xcrossing.time > event.xbutton.time) { XPutBackEvent(dpy, &e); break; } } while (XCheckTypedEvent(dpy, LeaveNotify, &e)) { if (e.xcrossing.time > event.xbutton.time) { XPutBackEvent(dpy, &e); break; } } if (!scr->selected_windows) { /* get rid of the geometry window */ WMUnmapWidget(scr->gview); } } done = True; break; default: 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, moveData.realX - wwin->frame_x, moveData.realY - wwin->frame_y); } else { WMHandleEvent(&event); } break; } } if (wPreferences.opaque_move && !wPreferences.use_saveunders) { XSetWindowAttributes attr; attr.save_under = False; XChangeWindowAttributes(dpy, wwin->frame->core->window, CWSaveUnder, &attr); } freeMoveData(&moveData); if (started && wPreferences.auto_arrange_icons && wXineramaHeads(scr) > 1 && head != wGetHeadForWindow(wwin)) { wArrangeIcons(scr, True); } if (started) update_saved_geometry(wwin); return started; } #define RESIZEBAR 1 #define HCONSTRAIN 2 static int getResizeDirection(WWindow * wwin, int x, int y, int dx, int dy, int flags) { int w = wwin->frame->core->width - 1; int cw = wwin->frame->resizebar_corner_width; int dir; /* if not resizing through the resizebar */ if (!(flags & RESIZEBAR)) { int xdir = (abs(x) < (wwin->client.width / 2)) ? LEFT : RIGHT; int ydir = (abs(y) < (wwin->client.height / 2)) ? UP : DOWN; if (abs(dx) < 2 || abs(dy) < 2) { if (abs(dy) > abs(dx)) xdir = 0; else ydir = 0; } return (xdir | ydir); } /* window is too narrow. allow diagonal resize */ if (cw * 2 >= w) { int ydir; if (flags & HCONSTRAIN) ydir = 0; else ydir = DOWN; if (x < cw) return (LEFT | ydir); else return (RIGHT | ydir); } /* vertical resize */ if ((x > cw) && (x < w - cw)) return DOWN; if (x < cw) dir = LEFT; else dir = RIGHT; if ((abs(dy) > 0) && !(flags & HCONSTRAIN)) dir |= DOWN; return dir; } void wMouseResizeWindow(WWindow * wwin, XEvent * ev) { XEvent event; WScreen *scr = wwin->screen_ptr; Window root = scr->root_win; int vert_border = wwin->frame->top_width + wwin->frame->bottom_width; int fw = wwin->frame->core->width; int fh = wwin->frame->core->height; int fx = wwin->frame_x; int fy = wwin->frame_y; int is_resizebar = (wwin->frame->resizebar && ev->xany.window == wwin->frame->resizebar->window); int orig_x, orig_y; int started; int dw, dh; int rw = fw, rh = fh; int rx1, ry1, rx2, ry2; int res = 0; KeyCode shiftl, shiftr; int orig_fx = fx; int orig_fy = fy; int orig_fw = fw; int orig_fh = fh; int original_fw = fw; int original_fh = fh; int head = ((wPreferences.auto_arrange_icons && wXineramaHeads(scr) > 1) ? wGetHeadForWindow(wwin) : scr->xine_info.primary_head); int opaqueResize = wPreferences.opaque_resize; if (!IS_RESIZABLE(wwin)) return; if (wwin->flags.shaded) { wwarning("internal error: tryein"); return; } orig_x = ev->xbutton.x_root; orig_y = ev->xbutton.y_root; started = 0; wUnselectWindows(scr); rx1 = fx; rx2 = fx + fw - 1; ry1 = fy; ry2 = fy + fh - 1; shiftl = XKeysymToKeycode(dpy, XK_Shift_L); shiftr = XKeysymToKeycode(dpy, XK_Shift_R); while (1) { WMMaskEvent(dpy, KeyPressMask | ButtonMotionMask | ButtonReleaseMask | PointerMotionHintMask | ButtonPressMask | ExposureMask, &event); if (!checkMouseSamplingRate(&event)) continue; switch (event.type) { case KeyPress: showGeometry(wwin, fx, fy, fx + fw, fy + fh, res); if (!opaqueResize) { if ((event.xkey.keycode == shiftl || event.xkey.keycode == shiftr) && started) { drawTransparentFrame(wwin, fx, fy, fw, fh); cycleGeometryDisplay(wwin, fx, fy, fw, fh, res); drawTransparentFrame(wwin, fx, fy, fw, fh); } }; showGeometry(wwin, fx, fy, fx + fw, fy + fh, res); break; case MotionNotify: if (started) { while (XCheckMaskEvent(dpy, ButtonMotionMask, &event)) ; dw = 0; dh = 0; orig_fx = fx; orig_fy = fy; orig_fw = fw; orig_fh = fh; if (res & LEFT) dw = orig_x - event.xmotion.x_root; else if (res & RIGHT) dw = event.xmotion.x_root - orig_x; if (res & UP) dh = orig_y - event.xmotion.y_root; else if (res & DOWN) dh = event.xmotion.y_root - orig_y; orig_x = event.xmotion.x_root; orig_y = event.xmotion.y_root; rw += dw; rh += dh; fw = rw; fh = rh - vert_border; wWindowConstrainSize(wwin, (unsigned int *)&fw, (unsigned int *)&fh); fh += vert_border; if (res & LEFT) fx = rx2 - fw + 1; else if (res & RIGHT) fx = rx1; if (res & UP) fy = ry2 - fh + 1; else if (res & DOWN) fy = ry1; } else if (abs(orig_x - event.xmotion.x_root) >= MOVE_THRESHOLD || abs(orig_y - event.xmotion.y_root) >= MOVE_THRESHOLD) { int tx, ty; Window junkw; int flags; XTranslateCoordinates(dpy, root, wwin->frame->core->window, orig_x, orig_y, &tx, &ty, &junkw); /* check if resizing through resizebar */ if (is_resizebar) flags = RESIZEBAR; else flags = 0; if (is_resizebar && ((ev->xbutton.state & ShiftMask) || abs(orig_y - event.xmotion.y_root) < HRESIZE_THRESHOLD)) flags |= HCONSTRAIN; res = getResizeDirection(wwin, tx, ty, orig_x - event.xmotion.x_root, orig_y - event.xmotion.y_root, flags); if (res == (UP | LEFT)) XChangeActivePointerGrab(dpy, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, wCursor[WCUR_TOPLEFTRESIZE], CurrentTime); else if (res == (UP | RIGHT)) XChangeActivePointerGrab(dpy, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, wCursor[WCUR_TOPRIGHTRESIZE], CurrentTime); else if (res == (DOWN | LEFT)) XChangeActivePointerGrab(dpy, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, wCursor[WCUR_BOTTOMLEFTRESIZE], CurrentTime); else if (res == (DOWN | RIGHT)) XChangeActivePointerGrab(dpy, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, wCursor[WCUR_BOTTOMRIGHTRESIZE], CurrentTime); else if (res == DOWN || res == UP) XChangeActivePointerGrab(dpy, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, wCursor[WCUR_VERTICALRESIZE], CurrentTime); else if (res & (DOWN | UP)) XChangeActivePointerGrab(dpy, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, wCursor[WCUR_VERTICALRESIZE], CurrentTime); else if (res & (LEFT | RIGHT)) XChangeActivePointerGrab(dpy, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, wCursor[WCUR_HORIZONRESIZE], CurrentTime); XGrabKeyboard(dpy, root, False, GrabModeAsync, GrabModeAsync, CurrentTime); XGrabServer(dpy); /* Draw the resize frame for the first time. */ mapGeometryDisplay(wwin, fx, fy, fw, fh); if (!opaqueResize) drawTransparentFrame(wwin, fx, fy, fw, fh); showGeometry(wwin, fx, fy, fx + fw, fy + fh, res); started = 1; } if (started) { if (!opaqueResize) drawTransparentFrame(wwin, orig_fx, orig_fy, orig_fw, orig_fh); if (wPreferences.size_display == WDIS_FRAME_CENTER) moveGeometryDisplayCentered(scr, fx + fw / 2, fy + fh / 2); if (!opaqueResize) drawTransparentFrame(wwin, fx, fy, fw, fh); if (fh != orig_fh || fw != orig_fw) { if (wPreferences.size_display == WDIS_NEW) showGeometry(wwin, orig_fx, orig_fy, orig_fx + orig_fw, orig_fy + orig_fh, res); showGeometry(wwin, fx, fy, fx + fw, fy + fh, res); } if (opaqueResize) { /* Fist clean the geometry line */ showGeometry(wwin, fx, fy, fx + fw, fy + fh, res); /* Now, continue drawing */ XUngrabServer(dpy); moveGeometryDisplayCentered(scr, fx + fw / 2, fy + fh / 2); wWindowConfigure(wwin, fx, fy, fw, fh - vert_border); showGeometry(wwin, fx, fy, fx + fw, fy + fh, res); }; } break; case ButtonPress: break; case ButtonRelease: if (event.xbutton.button != ev->xbutton.button) break; if (started) { showGeometry(wwin, fx, fy, fx + fw, fy + fh, res); if (!opaqueResize) drawTransparentFrame(wwin, fx, fy, fw, fh); XUngrabKeyboard(dpy, CurrentTime); WMUnmapWidget(scr->gview); XUngrabServer(dpy); if (fw != original_fw) wwin->flags.maximized &= ~(MAX_HORIZONTAL | MAX_TOPHALF | MAX_BOTTOMHALF | MAX_MAXIMUS); if (fh != original_fh) wwin->flags.maximized &= ~(MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_MAXIMUS); wWindowConfigure(wwin, fx, fy, fw, fh - vert_border); wWindowSynthConfigureNotify(wwin); } return; default: WMHandleEvent(&event); } } if (wPreferences.auto_arrange_icons && wXineramaHeads(scr) > 1 && head != wGetHeadForWindow(wwin)) wArrangeIcons(scr, True); } #undef LEFT #undef RIGHT #undef HORIZONTAL #undef UP #undef DOWN #undef VERTICAL #undef HCONSTRAIN #undef RESIZEBAR void wUnselectWindows(WScreen * scr) { WWindow *wwin; if (!scr->selected_windows) return; while (WMGetArrayItemCount(scr->selected_windows)) { wwin = WMGetFromArray(scr->selected_windows, 0); if (wwin->flags.miniaturized && wwin->icon && wwin->icon->selected) wIconSelect(wwin->icon); wSelectWindow(wwin, False); } WMFreeArray(scr->selected_windows); scr->selected_windows = NULL; } static void selectWindowsInside(WScreen * scr, int x1, int y1, int x2, int y2) { WWindow *tmpw; /* select the windows and put them in the selected window list */ tmpw = scr->focused_window; while (tmpw != NULL) { if (!(tmpw->flags.miniaturized || tmpw->flags.hidden)) { if ((tmpw->frame->workspace == scr->current_workspace || IS_OMNIPRESENT(tmpw)) && (tmpw->frame_x >= x1) && (tmpw->frame_y >= y1) && (tmpw->frame->core->width + tmpw->frame_x <= x2) && (tmpw->frame->core->height + tmpw->frame_y <= y2)) { wSelectWindow(tmpw, True); } } tmpw = tmpw->prev; } } void wSelectWindows(WScreen * scr, XEvent * ev) { XEvent event; Window root = scr->root_win; GC gc = scr->frame_gc; int xp = ev->xbutton.x_root; int yp = ev->xbutton.y_root; int w = 0, h = 0; int x = xp, y = yp; if (XGrabPointer(dpy, scr->root_win, False, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, wCursor[WCUR_DEFAULT], CurrentTime) != Success) { return; } XGrabServer(dpy); wUnselectWindows(scr); XDrawRectangle(dpy, root, gc, xp, yp, w, h); while (1) { WMMaskEvent(dpy, ButtonReleaseMask | PointerMotionMask | ButtonPressMask, &event); switch (event.type) { case MotionNotify: XDrawRectangle(dpy, root, gc, x, y, w, h); x = event.xmotion.x_root; if (x < xp) { w = xp - x; } else { w = x - xp; x = xp; } y = event.xmotion.y_root; if (y < yp) { h = yp - y; } else { h = y - yp; y = yp; } XDrawRectangle(dpy, root, gc, x, y, w, h); break; case ButtonPress: break; case ButtonRelease: if (event.xbutton.button != ev->xbutton.button) break; XDrawRectangle(dpy, root, gc, x, y, w, h); XUngrabServer(dpy); XUngrabPointer(dpy, CurrentTime); selectWindowsInside(scr, x, y, x + w, y + h); return; default: WMHandleEvent(&event); break; } } } void InteractivePlaceWindow(WWindow * wwin, int *x_ret, int *y_ret, unsigned width, unsigned height) { WScreen *scr = wwin->screen_ptr; Window root = scr->root_win; int x, y, h = 0; XEvent event; KeyCode shiftl, shiftr; Window junkw; int junk; if (XGrabPointer(dpy, root, True, PointerMotionMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, wCursor[WCUR_DEFAULT], CurrentTime) != Success) { *x_ret = 0; *y_ret = 0; return; } if (HAS_TITLEBAR(wwin)) { h = WMFontHeight(scr->title_font) + (wPreferences.window_title_clearance + TITLEBAR_EXTEND_SPACE) * 2; if (h > wPreferences.window_title_max_height) h = wPreferences.window_title_max_height; if (h < wPreferences.window_title_min_height) h = wPreferences.window_title_min_height; height += h; } if (HAS_RESIZEBAR(wwin)) { height += RESIZEBAR_HEIGHT; } XGrabKeyboard(dpy, root, False, GrabModeAsync, GrabModeAsync, CurrentTime); XQueryPointer(dpy, root, &junkw, &junkw, &x, &y, &junk, &junk, (unsigned *)&junk); mapPositionDisplay(wwin, x - width / 2, y - h / 2, width, height); drawTransparentFrame(wwin, x - width / 2, y - h / 2, width, height); shiftl = XKeysymToKeycode(dpy, XK_Shift_L); shiftr = XKeysymToKeycode(dpy, XK_Shift_R); while (1) { WMMaskEvent(dpy, PointerMotionMask | ButtonPressMask | ExposureMask | KeyPressMask, &event); if (!checkMouseSamplingRate(&event)) continue; switch (event.type) { case KeyPress: if ((event.xkey.keycode == shiftl) || (event.xkey.keycode == shiftr)) { drawTransparentFrame(wwin, x - width / 2, y - h / 2, width, height); cyclePositionDisplay(wwin, x - width / 2, y - h / 2, width, height); drawTransparentFrame(wwin, x - width / 2, y - h / 2, width, height); } break; case MotionNotify: drawTransparentFrame(wwin, x - width / 2, y - h / 2, width, height); x = event.xmotion.x_root; y = event.xmotion.y_root; if (wPreferences.move_display == WDIS_FRAME_CENTER) moveGeometryDisplayCentered(scr, x, y + (height - h) / 2); showPosition(wwin, x - width / 2, y - h / 2); drawTransparentFrame(wwin, x - width / 2, y - h / 2, width, height); break; case ButtonPress: drawTransparentFrame(wwin, x - width / 2, y - h / 2, width, height); XSync(dpy, 0); *x_ret = x - width / 2; *y_ret = y - h / 2; XUngrabPointer(dpy, CurrentTime); XUngrabKeyboard(dpy, CurrentTime); /* get rid of the geometry window */ WMUnmapWidget(scr->gview); return; default: WMHandleEvent(&event); break; } } } WindowMaker-0.95.5/src/xmodifier.h0000644000175000017500000000172412214432632013713 00000000000000/* xmodifier.h * * Sudish Joseph , Sept. 1997 * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _XMODIFIER_H_INCLUDED #define _XMODIFIER_H_INCLUDED void wXModifierInitialize(void); int wXModifierFromKey(const char *key); #endif /* _XMODIFIER_H_INCLUDED */ WindowMaker-0.95.5/src/defaults.h0000644000175000017500000000437312214432632013537 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMDEFAULTS_H_ #define WMDEFAULTS_H_ typedef struct WDDomain { const char *domain_name; WMPropList *dictionary; const char *path; time_t timestamp; } WDDomain; WDDomain * wDefaultsInitDomain(const char *domain, Bool requireDictionary); void wDefaultsMergeGlobalMenus(WDDomain *menuDomain); void wReadDefaults(WScreen *scr, WMPropList *new_dict); void wDefaultUpdateIcons(WScreen *scr); void wReadStaticDefaults(WMPropList *dict); void wDefaultsCheckDomains(void *arg); void wSaveDefaults(WScreen *scr); void wDefaultFillAttributes(const char *instance, const char *class, WWindowAttributes *attr, WWindowAttributes *mask, Bool useGlobalDefault); char *get_default_image_path(void); RImage *get_default_image(WScreen *scr); char *wDefaultGetIconFile(const char *instance, const char *class, Bool default_icon); RImage *get_icon_image(WScreen *scr, const char *winstance, const char *wclass, int max_size); char *get_icon_filename(WScreen *scr, const char *winstance, const char *wclass, const char *command, Bool default_icon); int wDefaultGetStartWorkspace(WScreen *scr, const char *instance, const char *class); void wDefaultChangeIcon(WScreen *scr, const char *instance, const char* class, const char *file); RImage *get_rimage_from_file(WScreen *scr, const char *file_name, int max_size); void wDefaultPurgeInfo(WScreen *scr, const char *instance, const char *class); #endif /* WMDEFAULTS_H_ */ WindowMaker-0.95.5/src/client.h0000644000175000017500000000274412214432632013206 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMCLIENT_H_ #define WMCLIENT_H_ void wClientSetState(WWindow *wwin, int state, Window icon_win); void wClientRestore(WWindow *wwin); void wClientConfigure(WWindow *wwin, XConfigureRequestEvent *xcre); void wClientGetGravityOffsets(WWindow *wwin, int *ofs_x, int *ofs_y); void wClientSendProtocol(WWindow *wwin, Atom protocol, Time time); void wClientKill(WWindow *wwin); void wClientCheckProperty(WWindow *wwin, XPropertyEvent *event); void wClientGetNormalHints(WWindow *wwin, XWindowAttributes *wattribs, Bool geometry, int *x, int *y, unsigned *width, unsigned *height); void GetColormapWindows(WWindow *wwin); #endif WindowMaker-0.95.5/src/shutdown.c0000644000175000017500000001136312214432632013573 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include "WindowMaker.h" #include "window.h" #include "client.h" #include "main.h" #include "properties.h" #include "session.h" #include "winspector.h" #include "wmspec.h" #include "colormap.h" #include "shutdown.h" extern Atom _XA_WM_DELETE_WINDOW; extern Time LastTimestamp; extern int wScreenCount; static void wipeDesktop(WScreen * scr); /* *---------------------------------------------------------------------- * Shutdown- * Exits the window manager cleanly. If mode is WSLogoutMode, * the whole X session will be closed, by killing all clients if * no session manager is running or by asking a shutdown to * it if its present. * *---------------------------------------------------------------------- */ void Shutdown(WShutdownMode mode) { int i; #ifdef HAVE_INOTIFY extern int inotifyFD; #endif switch (mode) { case WSLogoutMode: case WSKillMode: case WSExitMode: /* if there is no session manager, send SAVE_YOURSELF to * the clients */ #ifdef HAVE_INOTIFY close(inotifyFD); #endif for (i = 0; i < wScreenCount; i++) { WScreen *scr; scr = wScreenWithNumber(i); if (scr) { if (scr->helper_pid) kill(scr->helper_pid, SIGKILL); wScreenSaveState(scr); if (mode == WSKillMode) wipeDesktop(scr); else RestoreDesktop(scr); } } ExecExitScript(); Exit(0); break; case WSRestartPreparationMode: for (i = 0; i < wScreenCount; i++) { WScreen *scr; #ifdef HAVE_INOTIFY close(inotifyFD); #endif scr = wScreenWithNumber(i); if (scr) { if (scr->helper_pid) kill(scr->helper_pid, SIGKILL); wScreenSaveState(scr); RestoreDesktop(scr); } } break; } } static void restoreWindows(WMBag * bag, WMBagIterator iter) { WCoreWindow *next; WCoreWindow *core; WWindow *wwin; if (iter == NULL) { core = WMBagFirst(bag, &iter); } else { core = WMBagNext(bag, &iter); } if (core == NULL) return; restoreWindows(bag, iter); /* go to the end of the list */ while (core->stacking->under) core = core->stacking->under; while (core) { next = core->stacking->above; if (core->descriptor.parent_type == WCLASS_WINDOW) { Window window; wwin = core->descriptor.parent; window = wwin->client_win; wUnmanageWindow(wwin, !wwin->flags.internal_window, False); XMapWindow(dpy, window); } core = next; } } /* *---------------------------------------------------------------------- * RestoreDesktop-- * Puts the desktop in a usable state when exiting. * * Side effects: * All frame windows are removed and windows are reparented * back to root. Windows that are outside the screen are * brought to a viable place. * *---------------------------------------------------------------------- */ void RestoreDesktop(WScreen * scr) { if (scr->helper_pid > 0) { kill(scr->helper_pid, SIGTERM); scr->helper_pid = 0; } XGrabServer(dpy); wDestroyInspectorPanels(); /* reparent windows back to the root window, keeping the stacking order */ restoreWindows(scr->stacking_list, NULL); XUngrabServer(dpy); XSetInputFocus(dpy, PointerRoot, RevertToParent, CurrentTime); wColormapInstallForWindow(scr, NULL); PropCleanUp(scr->root_win); wNETWMCleanup(scr); XSync(dpy, 0); } /* *---------------------------------------------------------------------- * wipeDesktop-- * Kills all windows in a screen. Send DeleteWindow to all windows * that support it and KillClient on all windows that don't. * * Side effects: * All managed windows are closed. * * TODO: change to XQueryTree() *---------------------------------------------------------------------- */ static void wipeDesktop(WScreen * scr) { WWindow *wwin; wwin = scr->focused_window; while (wwin) { if (wwin->protocols.DELETE_WINDOW) wClientSendProtocol(wwin, _XA_WM_DELETE_WINDOW, LastTimestamp); else wClientKill(wwin); wwin = wwin->prev; } XSync(dpy, False); } WindowMaker-0.95.5/src/screen.c0000644000175000017500000007237512214432632013211 00000000000000/* screen.c - screen management * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #ifdef SHAPE #include #endif #ifdef KEEP_XKB_LOCK_STATUS #include #endif /* KEEP_XKB_LOCK_STATUS */ #ifdef HAVE_XRANDR #include #endif #include #include "WindowMaker.h" #include "def_pixmaps.h" #include "screen.h" #include "texture.h" #include "pixmap.h" #include "menu.h" #include "window.h" #include "main.h" #include "actions.h" #include "properties.h" #include "dock.h" #include "resources.h" #include "workspace.h" #include "session.h" #include "balloon.h" #include "geomview.h" #include "wmspec.h" #include "rootmenu.h" #include "xinerama.h" #include #include "defaults.h" #define EVENT_MASK (LeaveWindowMask|EnterWindowMask|PropertyChangeMask\ |SubstructureNotifyMask|PointerMotionMask \ |SubstructureRedirectMask|ButtonPressMask|ButtonReleaseMask\ |KeyPressMask|KeyReleaseMask) /**** Global variables ****/ extern Cursor wCursor[WCUR_LAST]; extern Atom _XA_WINDOWMAKER_STATE; extern Atom _XA_WINDOWMAKER_NOTICEBOARD; extern int wScreenCount; #ifdef KEEP_XKB_LOCK_STATUS extern int wXkbSupported; #endif #ifdef HAVE_XRANDR Bool has_randr; int randr_event_base; #endif extern WDDomain *WDWindowMaker; /**** Local ****/ #define STIPPLE_WIDTH 2 #define STIPPLE_HEIGHT 2 static char STIPPLE_DATA[] = { 0x02, 0x01 }; static int CantManageScreen = 0; static WMPropList *dApplications = NULL; static WMPropList *dWorkspace; static WMPropList *dDock; static WMPropList *dClip; static WMPropList *dDrawers = NULL; static void make_keys(void) { if (dApplications != NULL) return; dApplications = WMCreatePLString("Applications"); dWorkspace = WMCreatePLString("Workspace"); dDock = WMCreatePLString("Dock"); dClip = WMCreatePLString("Clip"); dDrawers = WMCreatePLString("Drawers"); } /* *---------------------------------------------------------------------- * alreadyRunningError-- * X error handler used to catch errors when trying to do * XSelectInput() on the root window. These errors probably mean that * there already is some other window manager running. * * Returns: * Nothing, unless something really evil happens... * * Side effects: * CantManageScreen is set to 1; *---------------------------------------------------------------------- */ static int alreadyRunningError(Display * dpy, XErrorEvent * error) { CantManageScreen = 1; return -1; } /* *---------------------------------------------------------------------- * allocButtonPixmaps-- * Allocate pixmaps used on window operation buttons (those in the * titlebar). The pixmaps are linked to the program. If XPM is supported * XPM pixmaps are used otherwise, equivalent bitmaps are used. * * Returns: * Nothing * * Side effects: * Allocates shared pixmaps for the screen. These pixmaps should * not be freed by anybody. *---------------------------------------------------------------------- */ static void allocButtonPixmaps(WScreen * scr) { WPixmap *pix; /* create predefined pixmaps */ if (wPreferences.new_style == TS_NEXT) { pix = wPixmapCreateFromXPMData(scr, NEXT_CLOSE_XPM); } else { pix = wPixmapCreateFromXPMData(scr, PRED_CLOSE_XPM); } if (pix) pix->shared = 1; scr->b_pixmaps[WBUT_CLOSE] = pix; if (wPreferences.new_style == TS_NEXT) { pix = wPixmapCreateFromXPMData(scr, NEXT_BROKEN_CLOSE_XPM); } else { pix = wPixmapCreateFromXPMData(scr, PRED_BROKEN_CLOSE_XPM); } if (pix) pix->shared = 1; scr->b_pixmaps[WBUT_BROKENCLOSE] = pix; if (wPreferences.new_style == TS_NEXT) { pix = wPixmapCreateFromXPMData(scr, NEXT_ICONIFY_XPM); } else { pix = wPixmapCreateFromXPMData(scr, PRED_ICONIFY_XPM); } if (pix) pix->shared = 1; scr->b_pixmaps[WBUT_ICONIFY] = pix; #ifdef XKB_BUTTON_HINT if (wPreferences.new_style == TS_NEXT) { pix = wPixmapCreateFromXPMData(scr, NEXT_XKBGROUP1_XPM); } else { pix = wPixmapCreateFromXPMData(scr, PRED_XKBGROUP1_XPM); } if (pix) pix->shared = 1; scr->b_pixmaps[WBUT_XKBGROUP1] = pix; if (wPreferences.new_style == TS_NEXT) { pix = wPixmapCreateFromXPMData(scr, NEXT_XKBGROUP2_XPM); } else { pix = wPixmapCreateFromXPMData(scr, PRED_XKBGROUP2_XPM); } if (pix) pix->shared = 1; scr->b_pixmaps[WBUT_XKBGROUP2] = pix; if (wPreferences.new_style == TS_NEXT) { pix = wPixmapCreateFromXPMData(scr, NEXT_XKBGROUP3_XPM); } else { pix = wPixmapCreateFromXPMData(scr, PRED_XKBGROUP3_XPM); } if (pix) pix->shared = 1; scr->b_pixmaps[WBUT_XKBGROUP3] = pix; if (wPreferences.new_style == TS_NEXT) { pix = wPixmapCreateFromXPMData(scr, NEXT_XKBGROUP4_XPM); } else { pix = wPixmapCreateFromXPMData(scr, PRED_XKBGROUP4_XPM); } if (pix) pix->shared = 1; scr->b_pixmaps[WBUT_XKBGROUP4] = pix; #endif if (wPreferences.new_style == TS_NEXT) { pix = wPixmapCreateFromXPMData(scr, NEXT_KILL_XPM); } else { pix = wPixmapCreateFromXPMData(scr, PRED_KILL_XPM); } if (pix) pix->shared = 1; scr->b_pixmaps[WBUT_KILL] = pix; } static void draw_dot(WScreen * scr, Drawable d, int x, int y, GC gc) { XSetForeground(dpy, gc, scr->black_pixel); XDrawLine(dpy, d, gc, x, y, x + 1, y); XDrawPoint(dpy, d, gc, x, y + 1); XSetForeground(dpy, gc, scr->white_pixel); XDrawLine(dpy, d, gc, x + 2, y, x + 2, y + 1); XDrawPoint(dpy, d, gc, x + 1, y + 1); } static WPixmap *make3Dots(WScreen * scr) { WPixmap *wpix; GC gc2, gc; XGCValues gcv; Pixmap pix, mask; gc = scr->copy_gc; pix = XCreatePixmap(dpy, scr->w_win, wPreferences.icon_size, wPreferences.icon_size, scr->w_depth); XSetForeground(dpy, gc, scr->black_pixel); XFillRectangle(dpy, pix, gc, 0, 0, wPreferences.icon_size, wPreferences.icon_size); XSetForeground(dpy, gc, scr->white_pixel); draw_dot(scr, pix, 4, wPreferences.icon_size - 6, gc); draw_dot(scr, pix, 9, wPreferences.icon_size - 6, gc); draw_dot(scr, pix, 14, wPreferences.icon_size - 6, gc); mask = XCreatePixmap(dpy, scr->w_win, wPreferences.icon_size, wPreferences.icon_size, 1); gcv.foreground = 0; gcv.graphics_exposures = False; gc2 = XCreateGC(dpy, mask, GCForeground | GCGraphicsExposures, &gcv); XFillRectangle(dpy, mask, gc2, 0, 0, wPreferences.icon_size, wPreferences.icon_size); XSetForeground(dpy, gc2, 1); XFillRectangle(dpy, mask, gc2, 4, wPreferences.icon_size - 6, 3, 2); XFillRectangle(dpy, mask, gc2, 9, wPreferences.icon_size - 6, 3, 2); XFillRectangle(dpy, mask, gc2, 14, wPreferences.icon_size - 6, 3, 2); XFreeGC(dpy, gc2); wpix = wPixmapCreate(scr, pix, mask); wpix->shared = 1; return wpix; } static void allocGCs(WScreen * scr) { XGCValues gcv; XColor color; int gcm; scr->stipple_bitmap = XCreateBitmapFromData(dpy, scr->w_win, STIPPLE_DATA, STIPPLE_WIDTH, STIPPLE_HEIGHT); gcv.stipple = scr->stipple_bitmap; gcv.foreground = scr->white_pixel; gcv.fill_style = FillStippled; gcv.graphics_exposures = False; gcm = GCForeground | GCStipple | GCFillStyle | GCGraphicsExposures; scr->stipple_gc = XCreateGC(dpy, scr->w_win, gcm, &gcv); /* selected icon border GCs */ gcv.function = GXcopy; gcv.foreground = scr->white_pixel; gcv.background = scr->black_pixel; gcv.line_width = 1; gcv.line_style = LineDoubleDash; gcv.fill_style = FillSolid; gcv.dash_offset = 0; gcv.dashes = 4; gcv.graphics_exposures = False; gcm = GCFunction | GCGraphicsExposures; gcm |= GCForeground | GCBackground; gcm |= GCLineWidth | GCLineStyle; gcm |= GCFillStyle; gcm |= GCDashOffset | GCDashList; scr->icon_select_gc = XCreateGC(dpy, scr->w_win, gcm, &gcv); scr->menu_title_color[0] = WMRetainColor(scr->white); /* don't retain scr->black here because we may alter its alpha */ scr->mtext_color = WMCreateRGBColor(scr->wmscreen, 0, 0, 0, True); scr->dtext_color = WMCreateRGBColor(scr->wmscreen, 0, 0, 0, True); /* frame GC */ wGetColor(scr, DEF_FRAME_COLOR, &color); gcv.function = GXxor; /* this will raise the probability of the XORed color being different * of the original color in PseudoColor when not all color cells are * initialized */ if (DefaultVisual(dpy, scr->screen)->class == PseudoColor) gcv.plane_mask = (1 << (scr->depth - 1)) | 1; else gcv.plane_mask = AllPlanes; gcv.foreground = color.pixel; if (gcv.foreground == 0) gcv.foreground = 1; gcv.line_width = DEF_FRAME_THICKNESS; gcv.subwindow_mode = IncludeInferiors; gcv.graphics_exposures = False; scr->frame_gc = XCreateGC(dpy, scr->root_win, GCForeground | GCGraphicsExposures | GCFunction | GCSubwindowMode | GCLineWidth | GCPlaneMask, &gcv); /* line GC */ gcv.foreground = color.pixel; if (gcv.foreground == 0) /* XOR:ing with a zero is not going to be of much use, so in that case, we somewhat arbitrarily xor with 17 instead. */ gcv.foreground = 17; gcv.function = GXxor; gcv.subwindow_mode = IncludeInferiors; gcv.line_width = 1; gcv.cap_style = CapRound; gcv.graphics_exposures = False; gcm = GCForeground | GCFunction | GCSubwindowMode | GCLineWidth | GCCapStyle | GCGraphicsExposures; scr->line_gc = XCreateGC(dpy, scr->root_win, gcm, &gcv); scr->line_pixel = gcv.foreground; /* copy GC */ gcv.foreground = scr->white_pixel; gcv.background = scr->black_pixel; gcv.graphics_exposures = False; scr->copy_gc = XCreateGC(dpy, scr->w_win, GCForeground | GCBackground | GCGraphicsExposures, &gcv); /* misc drawing GC */ gcv.graphics_exposures = False; gcm = GCGraphicsExposures; scr->draw_gc = XCreateGC(dpy, scr->w_win, gcm, &gcv); assert(scr->stipple_bitmap != None); /* mono GC */ scr->mono_gc = XCreateGC(dpy, scr->stipple_bitmap, gcm, &gcv); } static void createPixmaps(WScreen * scr) { WPixmap *pix; /* load pixmaps */ pix = wPixmapCreateFromXBMData(scr, (char *)MENU_RADIO_INDICATOR_XBM_DATA, (char *)MENU_RADIO_INDICATOR_XBM_DATA, MENU_RADIO_INDICATOR_XBM_SIZE, MENU_RADIO_INDICATOR_XBM_SIZE, scr->black_pixel, scr->white_pixel); if (pix != NULL) pix->shared = 1; scr->menu_radio_indicator = pix; pix = wPixmapCreateFromXBMData(scr, (char *)MENU_CHECK_INDICATOR_XBM_DATA, (char *)MENU_CHECK_INDICATOR_XBM_DATA, MENU_CHECK_INDICATOR_XBM_SIZE, MENU_CHECK_INDICATOR_XBM_SIZE, scr->black_pixel, scr->white_pixel); if (pix != NULL) pix->shared = 1; scr->menu_check_indicator = pix; pix = wPixmapCreateFromXBMData(scr, (char *)MENU_MINI_INDICATOR_XBM_DATA, (char *)MENU_MINI_INDICATOR_XBM_DATA, MENU_MINI_INDICATOR_XBM_SIZE, MENU_MINI_INDICATOR_XBM_SIZE, scr->black_pixel, scr->white_pixel); if (pix != NULL) pix->shared = 1; scr->menu_mini_indicator = pix; pix = wPixmapCreateFromXBMData(scr, (char *)MENU_HIDE_INDICATOR_XBM_DATA, (char *)MENU_HIDE_INDICATOR_XBM_DATA, MENU_HIDE_INDICATOR_XBM_SIZE, MENU_HIDE_INDICATOR_XBM_SIZE, scr->black_pixel, scr->white_pixel); if (pix != NULL) pix->shared = 1; scr->menu_hide_indicator = pix; pix = wPixmapCreateFromXBMData(scr, (char *)MENU_SHADE_INDICATOR_XBM_DATA, (char *)MENU_SHADE_INDICATOR_XBM_DATA, MENU_SHADE_INDICATOR_XBM_SIZE, MENU_SHADE_INDICATOR_XBM_SIZE, scr->black_pixel, scr->white_pixel); if (pix != NULL) pix->shared = 1; scr->menu_shade_indicator = pix; create_logo_image(scr); scr->dock_dots = make3Dots(scr); /* titlebar button pixmaps */ allocButtonPixmaps(scr); } void create_logo_image(WScreen *scr) { RImage *image = get_icon_image(scr, "Logo", "WMPanel", wPreferences.icon_size); if (!image) { wwarning(_("could not load logo image for panels: %s"), RMessageForError(RErrorCode)); } else { WMSetApplicationIconImage(scr->wmscreen, image); RReleaseImage(image); } } /* *---------------------------------------------------------------------- * createInternalWindows-- * Creates some windows used internally by the program. One to * receive input focus when no other window can get it and another * to display window geometry information during window resize/move. * * Returns: * Nothing * * Side effects: * Windows are created and some colors are allocated for the * window background. *---------------------------------------------------------------------- */ static void createInternalWindows(WScreen * scr) { int vmask; XSetWindowAttributes attribs; /* InputOnly window to get the focus when no other window can get it */ vmask = CWEventMask | CWOverrideRedirect; attribs.event_mask = KeyPressMask | FocusChangeMask; attribs.override_redirect = True; scr->no_focus_win = XCreateWindow(dpy, scr->root_win, -10, -10, 4, 4, 0, 0, InputOnly, CopyFromParent, vmask, &attribs); XSelectInput(dpy, scr->no_focus_win, KeyPressMask | KeyReleaseMask); XMapWindow(dpy, scr->no_focus_win); XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, CurrentTime); /* shadow window for dock buttons */ vmask = CWBorderPixel | CWBackPixmap | CWBackPixel | CWCursor | CWSaveUnder | CWOverrideRedirect; attribs.border_pixel = scr->black_pixel; attribs.save_under = True; attribs.override_redirect = True; attribs.background_pixmap = None; attribs.background_pixel = scr->white_pixel; attribs.cursor = wCursor[WCUR_DEFAULT]; vmask |= CWColormap; attribs.colormap = scr->w_colormap; scr->dock_shadow = XCreateWindow(dpy, scr->root_win, 0, 0, wPreferences.icon_size, wPreferences.icon_size, 0, scr->w_depth, CopyFromParent, scr->w_visual, vmask, &attribs); /* workspace name */ vmask = CWBackPixel | CWSaveUnder | CWOverrideRedirect | CWColormap | CWBorderPixel; attribs.save_under = True; attribs.override_redirect = True; attribs.colormap = scr->w_colormap; attribs.background_pixel = scr->icon_back_texture->normal.pixel; attribs.border_pixel = 0; /* do not care */ scr->workspace_name = XCreateWindow(dpy, scr->root_win, 0, 0, 10, 10, 0, scr->w_depth, CopyFromParent, scr->w_visual, vmask, &attribs); } /* *---------------------------------------------------------------------- * wScreenInit-- * Initializes the window manager for the given screen and * allocates a WScreen descriptor for it. Many resources are allocated * for the screen and the root window is setup appropriately. * * Returns: * The WScreen descriptor for the screen. * * Side effects: * Many resources are allocated and the IconSize property is * set on the root window. * The program can be aborted if some fatal error occurs. * * TODO: User specifiable visual. *---------------------------------------------------------------------- */ WScreen *wScreenInit(int screen_number) { WScreen *scr; XIconSize icon_size[1]; RContextAttributes rattr; long event_mask; XErrorHandler oldHandler; int i; scr = wmalloc(sizeof(WScreen)); scr->stacking_list = WMCreateTreeBag(); /* initialize globals */ scr->screen = screen_number; scr->root_win = RootWindow(dpy, screen_number); scr->depth = DefaultDepth(dpy, screen_number); scr->colormap = DefaultColormap(dpy, screen_number); scr->scr_width = WidthOfScreen(ScreenOfDisplay(dpy, screen_number)); scr->scr_height = HeightOfScreen(ScreenOfDisplay(dpy, screen_number)); wInitXinerama(scr); scr->usableArea = (WArea *) wmalloc(sizeof(WArea) * wXineramaHeads(scr)); scr->totalUsableArea = (WArea *) wmalloc(sizeof(WArea) * wXineramaHeads(scr)); for (i = 0; i < wXineramaHeads(scr); ++i) { WMRect rect = wGetRectForHead(scr, i); scr->usableArea[i].x1 = scr->totalUsableArea[i].x1 = rect.pos.x; scr->usableArea[i].y1 = scr->totalUsableArea[i].y1 = rect.pos.y; scr->usableArea[i].x2 = scr->totalUsableArea[i].x2 = rect.pos.x + rect.size.width; scr->usableArea[i].y2 = scr->totalUsableArea[i].y2 = rect.pos.y + rect.size.height; } scr->fakeGroupLeaders = WMCreateArray(16); CantManageScreen = 0; oldHandler = XSetErrorHandler((XErrorHandler) alreadyRunningError); event_mask = EVENT_MASK; if (wPreferences.disable_root_mouse) { event_mask &= ~(ButtonPressMask | ButtonReleaseMask); } XSelectInput(dpy, scr->root_win, event_mask); #ifdef KEEP_XKB_LOCK_STATUS /* Only GroupLock doesn't work correctly in my system since right-alt * can change mode while holding it too - ]d */ if (wXkbSupported) { XkbSelectEvents(dpy, XkbUseCoreKbd, XkbStateNotifyMask, XkbStateNotifyMask); } #endif /* KEEP_XKB_LOCK_STATUS */ #ifdef HAVE_XRANDR if (has_randr) XRRSelectInput(dpy, scr->root_win, RRScreenChangeNotifyMask); #endif XSync(dpy, False); XSetErrorHandler(oldHandler); if (CantManageScreen) { wfree(scr); return NULL; } XDefineCursor(dpy, scr->root_win, wCursor[WCUR_ROOT]); /* screen descriptor for raster graphic library */ rattr.flags = RC_RenderMode | RC_ColorsPerChannel | RC_StandardColormap; rattr.render_mode = wPreferences.no_dithering ? RBestMatchRendering : RDitheredRendering; /* if the std colormap stuff works ok, this will be ignored */ rattr.colors_per_channel = wPreferences.cmap_size; if (rattr.colors_per_channel < 2) rattr.colors_per_channel = 2; /* Use standard colormap */ rattr.standard_colormap_mode = RUseStdColormap; if (getWVisualID(screen_number) >= 0) { rattr.flags |= RC_VisualID; rattr.visualid = getWVisualID(screen_number); } scr->rcontext = RCreateContext(dpy, screen_number, &rattr); if (!scr->rcontext && RErrorCode == RERR_STDCMAPFAIL) { wwarning("%s", RMessageForError(RErrorCode)); rattr.flags &= ~RC_StandardColormap; rattr.standard_colormap_mode = RUseStdColormap; scr->rcontext = RCreateContext(dpy, screen_number, &rattr); } if (!scr->rcontext) { wwarning(_("could not initialize graphics library context: %s"), RMessageForError(RErrorCode)); wAbort(False); } else { char **formats; int i = 0; formats = RSupportedFileFormats(); if (formats) { for (i = 0; formats[i] != NULL; i++) { if (strcmp(formats[i], "TIFF") == 0) { scr->flags.supports_tiff = 1; break; } } } } scr->w_win = scr->rcontext->drawable; scr->w_visual = scr->rcontext->visual; scr->w_depth = scr->rcontext->depth; scr->w_colormap = scr->rcontext->cmap; /* create screen descriptor for WINGs */ scr->wmscreen = WMCreateScreenWithRContext(dpy, screen_number, scr->rcontext); if (!scr->wmscreen) { wfatal(_("could not initialize WINGs widget set")); return NULL; } scr->black = WMBlackColor(scr->wmscreen); scr->white = WMWhiteColor(scr->wmscreen); scr->gray = WMGrayColor(scr->wmscreen); scr->darkGray = WMDarkGrayColor(scr->wmscreen); scr->black_pixel = WMColorPixel(scr->black); /*scr->rcontext->black; */ scr->white_pixel = WMColorPixel(scr->white); /*scr->rcontext->white; */ scr->light_pixel = WMColorPixel(scr->gray); scr->dark_pixel = WMColorPixel(scr->darkGray); /* create GCs with default values */ allocGCs(scr); /* for our window manager info notice board. Need to * create before reading the defaults, because it will be used there. */ scr->info_window = XCreateSimpleWindow(dpy, scr->root_win, 0, 0, 10, 10, 0, 0, 0); /* read defaults for this screen */ wReadDefaults(scr, WDWindowMaker->dictionary); { XColor xcol; /* frame boder color */ wGetColor(scr, WMGetColorRGBDescription(scr->frame_border_color), &xcol); scr->frame_border_pixel = xcol.pixel; wGetColor(scr, WMGetColorRGBDescription(scr->frame_selected_border_color), &xcol); scr->frame_selected_border_pixel = xcol.pixel; } createInternalWindows(scr); wNETWMInitStuff(scr); /* create initial workspace */ wWorkspaceNew(scr); /* create shared pixmaps */ createPixmaps(scr); /* set icon sizes we can accept from clients */ icon_size[0].min_width = 8; icon_size[0].min_height = 8; icon_size[0].max_width = wPreferences.icon_size - 4; icon_size[0].max_height = wPreferences.icon_size - 4; icon_size[0].width_inc = 1; icon_size[0].height_inc = 1; XSetIconSizes(dpy, scr->root_win, icon_size, 1); /* setup WindowMaker protocols property in the root window */ PropSetWMakerProtocols(scr->root_win); /* setup our noticeboard */ XChangeProperty(dpy, scr->info_window, _XA_WINDOWMAKER_NOTICEBOARD, XA_WINDOW, 32, PropModeReplace, (unsigned char *)&scr->info_window, 1); XChangeProperty(dpy, scr->root_win, _XA_WINDOWMAKER_NOTICEBOARD, XA_WINDOW, 32, PropModeReplace, (unsigned char *)&scr->info_window, 1); #ifdef BALLOON_TEXT /* initialize balloon text stuff */ wBalloonInitialize(scr); #endif scr->info_text_font = WMBoldSystemFontOfSize(scr->wmscreen, 12); scr->tech_draw_font = XLoadQueryFont(dpy, "-adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*"); if (!scr->tech_draw_font) scr->tech_draw_font = XLoadQueryFont(dpy, "fixed"); scr->gview = WCreateGeometryView(scr->wmscreen); WMRealizeWidget(scr->gview); wScreenUpdateUsableArea(scr); return scr; } void wScreenUpdateUsableArea(WScreen * scr) { /* * scr->totalUsableArea[] will become the usableArea used for Windowplacement, * scr->usableArea[] will be used for iconplacement, hence no iconyard nor * border. */ WArea area; int i, dock_head; unsigned long best_area, tmp_area; unsigned int size, position; dock_head = scr->xine_info.primary_head; best_area = 0; size = wPreferences.workspace_border_size; position = wPreferences.workspace_border_position; if (scr->dock) { WMRect rect; rect.pos.x = scr->dock->x_pos; rect.pos.y = scr->dock->y_pos; rect.size.width = wPreferences.icon_size; rect.size.height = wPreferences.icon_size; dock_head = wGetHeadForRect(scr, rect); } for (i = 0; i < wXineramaHeads(scr); ++i) { WMRect rect = wGetRectForHead(scr, i); scr->totalUsableArea[i].x1 = rect.pos.x; scr->totalUsableArea[i].y1 = rect.pos.y; scr->totalUsableArea[i].x2 = rect.pos.x + rect.size.width; scr->totalUsableArea[i].y2 = rect.pos.y + rect.size.height; if (scr->dock && dock_head == i && (!scr->dock->lowered || wPreferences.no_window_over_dock)) { int offset = wPreferences.icon_size + DOCK_EXTRA_SPACE; if (scr->dock->on_right_side) { scr->totalUsableArea[i].x2 -= offset; } else { scr->totalUsableArea[i].x1 += offset; } } if (wNETWMGetUsableArea(scr, i, &area)) { scr->totalUsableArea[i].x1 = WMAX(scr->totalUsableArea[i].x1, area.x1); scr->totalUsableArea[i].y1 = WMAX(scr->totalUsableArea[i].y1, area.y1); scr->totalUsableArea[i].x2 = WMIN(scr->totalUsableArea[i].x2, area.x2); scr->totalUsableArea[i].y2 = WMIN(scr->totalUsableArea[i].y2, area.y2); } scr->usableArea[i] = scr->totalUsableArea[i]; #if 0 printf("usableArea[%d]: %d %d %d %d\n", i, scr->usableArea[i].x1, scr->usableArea[i].x2, scr->usableArea[i].y1, scr->usableArea[i].y2); #endif if (wPreferences.no_window_over_icons) { if (wPreferences.icon_yard & IY_VERT) { if (wPreferences.icon_yard & IY_RIGHT) { scr->totalUsableArea[i].x2 -= wPreferences.icon_size; } else { scr->totalUsableArea[i].x1 += wPreferences.icon_size; } } else { if (wPreferences.icon_yard & IY_TOP) { scr->totalUsableArea[i].y1 += wPreferences.icon_size; } else { scr->totalUsableArea[i].y2 -= wPreferences.icon_size; } } } if (scr->totalUsableArea[i].x2 - scr->totalUsableArea[i].x1 < rect.size.width / 2) { scr->totalUsableArea[i].x1 = rect.pos.x; scr->totalUsableArea[i].x2 = rect.pos.x + rect.size.width; } if (scr->totalUsableArea[i].y2 - scr->totalUsableArea[i].y1 < rect.size.height / 2) { scr->totalUsableArea[i].y1 = rect.pos.y; scr->totalUsableArea[i].y2 = rect.pos.y + rect.size.height; } tmp_area = (scr->totalUsableArea[i].x2 - scr->totalUsableArea[i].x1) * (scr->totalUsableArea[i].y2 - scr->totalUsableArea[i].y1); if (tmp_area > best_area) { best_area = tmp_area; area = scr->totalUsableArea[i]; } if (size > 0 && position != WB_NONE) { if (position & WB_LEFTRIGHT) { scr->totalUsableArea[i].x1 += size; scr->totalUsableArea[i].x2 -= size; } if (position & WB_TOPBOTTOM) { scr->totalUsableArea[i].y1 += size; scr->totalUsableArea[i].y2 -= size; } } } if (wPreferences.auto_arrange_icons) wArrangeIcons(scr, True); } void wScreenRestoreState(WScreen * scr) { WMPropList *state; char *path; OpenRootMenu(scr, -10000, -10000, False); wMenuUnmap(scr->root_menu); make_keys(); if (wScreenCount == 1) { path = wdefaultspathfordomain("WMState"); } else { char buf[16]; snprintf(buf, sizeof(buf), "WMState.%i", scr->screen); path = wdefaultspathfordomain(buf); } scr->session_state = WMReadPropListFromFile(path); wfree(path); if (!scr->session_state && wScreenCount > 1) { path = wdefaultspathfordomain("WMState"); scr->session_state = WMReadPropListFromFile(path); wfree(path); } if (!scr->session_state) { scr->session_state = WMCreatePLDictionary(NULL, NULL); } if (!wPreferences.flags.nodock) { state = WMGetFromPLDictionary(scr->session_state, dDock); scr->dock = wDockRestoreState(scr, state, WM_DOCK); /* If clip_merged_in_dock, setting scr->clip_icon is done by * wDockRestoreState()->wDockCreate()->mainIconCreate() */ } if (!wPreferences.flags.noclip) { state = WMGetFromPLDictionary(scr->session_state, dClip); scr->clip_icon = wClipRestoreState(scr, state); } if (!wPreferences.flags.nodrawer) { wDrawersRestoreState(scr); } wWorkspaceRestoreState(scr); wScreenUpdateUsableArea(scr); } void wScreenSaveState(WScreen * scr) { WWindow *wwin; char *str; WMPropList *old_state, *foo; make_keys(); /* save state of windows */ wwin = scr->focused_window; while (wwin) { wWindowSaveState(wwin); wwin = wwin->prev; } if (wPreferences.flags.noupdates) return; old_state = scr->session_state; scr->session_state = WMCreatePLDictionary(NULL, NULL); WMPLSetCaseSensitive(True); /* save dock state to file */ if (!wPreferences.flags.nodock) { wDockSaveState(scr, old_state); } else { if ((foo = WMGetFromPLDictionary(old_state, dDock)) != NULL) { WMPutInPLDictionary(scr->session_state, dDock, foo); } } if (!wPreferences.flags.noclip) { wClipSaveState(scr); } else { if ((foo = WMGetFromPLDictionary(old_state, dClip)) != NULL) { WMPutInPLDictionary(scr->session_state, dClip, foo); } } wWorkspaceSaveState(scr, old_state); if (!wPreferences.flags.nodrawer) { wDrawersSaveState(scr); } else { if ((foo = WMGetFromPLDictionary(old_state, dDrawers)) != NULL) { WMPutInPLDictionary(scr->session_state, dDrawers, foo); } } if (wPreferences.save_session_on_exit) { wSessionSaveState(scr); } else { if ((foo = WMGetFromPLDictionary(old_state, dApplications)) != NULL) { WMPutInPLDictionary(scr->session_state, dApplications, foo); } if ((foo = WMGetFromPLDictionary(old_state, dWorkspace)) != NULL) { WMPutInPLDictionary(scr->session_state, dWorkspace, foo); } } /* clean up */ WMPLSetCaseSensitive(False); wMenuSaveState(scr); if (wScreenCount == 1) { str = wdefaultspathfordomain("WMState"); } else { char buf[16]; snprintf(buf, sizeof(buf), "WMState.%i", scr->screen); str = wdefaultspathfordomain(buf); } if (!WMWritePropListToFile(scr->session_state, str)) { werror(_("could not save session state in %s"), str); } wfree(str); WMReleasePropList(old_state); } int wScreenBringInside(WScreen * scr, int *x, int *y, int width, int height) { int moved = 0; int tol_w, tol_h; /* * With respect to the head that contains most of the window. */ int sx1, sy1, sx2, sy2; WMRect rect; int head, flags; rect.pos.x = *x; rect.pos.y = *y; rect.size.width = width; rect.size.height = height; head = wGetRectPlacementInfo(scr, rect, &flags); rect = wGetRectForHead(scr, head); sx1 = rect.pos.x; sy1 = rect.pos.y; sx2 = sx1 + rect.size.width; sy2 = sy1 + rect.size.height; #if 0 /* NOTE: gives funky group movement */ if (flags & XFLAG_MULTIPLE) { /* * since we span multiple heads, pull window totaly inside */ if (*x < sx1) *x = sx1, moved = 1; else if (*x + width > sx2) *x = sx2 - width, moved = 1; if (*y < sy1) *y = sy1, moved = 1; else if (*y + height > sy2) *y = sy2 - height, moved = 1; return moved; } #endif if (width > 20) tol_w = width / 2; else tol_w = 20; if (height > 20) tol_h = height / 2; else tol_h = 20; if (*x + width < sx1 + 10) *x = sx1 - tol_w, moved = 1; else if (*x >= sx2 - 10) *x = sx2 - tol_w - 1, moved = 1; if (*y < sy1 - height + 10) *y = sy1 - tol_h, moved = 1; else if (*y >= sy2 - 10) *y = sy2 - tol_h - 1, moved = 1; return moved; } int wScreenKeepInside(WScreen * scr, int *x, int *y, int width, int height) { int moved = 0; int sx1, sy1, sx2, sy2; WMRect rect; int head; rect.pos.x = *x; rect.pos.y = *y; rect.size.width = width; rect.size.height = height; head = wGetHeadForRect(scr, rect); rect = wGetRectForHead(scr, head); sx1 = rect.pos.x; sy1 = rect.pos.y; sx2 = sx1 + rect.size.width; sy2 = sy1 + rect.size.height; if (*x < sx1) *x = sx1, moved = 1; else if (*x + width > sx2) *x = sx2 - width, moved = 1; if (*y < sy1) *y = sy1, moved = 1; else if (*y + height > sy2) *y = sy2 - height, moved = 1; return moved; } WindowMaker-0.95.5/src/dock.c0000644000175000017500000037710512214432632012651 00000000000000/* dock.c- built-in Dock module for WindowMaker * * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include #include #include #ifndef PATH_MAX #define PATH_MAX DEFAULT_PATH_MAX #endif #include "WindowMaker.h" #include "wcore.h" #include "window.h" #include "icon.h" #include "appicon.h" #include "actions.h" #include "stacking.h" #include "dock.h" #include "dockedapp.h" #include "dialog.h" #include "main.h" #include "properties.h" #include "menu.h" #include "client.h" #include "defaults.h" #include "workspace.h" #include "framewin.h" #include "superfluous.h" #include "xinerama.h" #include "placement.h" #include "misc.h" #include "event.h" /**** Local variables ****/ #define CLIP_REWIND 1 #define CLIP_IDLE 0 #define CLIP_FORWARD 2 /**** Global variables ****/ extern Cursor wCursor[WCUR_LAST]; extern XContext wWinContext; #define MOD_MASK wPreferences.modifier_mask #define ICON_SIZE wPreferences.icon_size /***** Local variables ****/ static WMPropList *dCommand = NULL; static WMPropList *dPasteCommand = NULL; #ifdef XDND /* XXX was OFFIX */ static WMPropList *dDropCommand = NULL; #endif static WMPropList *dAutoLaunch, *dLock; static WMPropList *dName, *dForced, *dBuggyApplication, *dYes, *dNo; static WMPropList *dHost, *dDock, *dClip; static WMPropList *dAutoAttractIcons; static WMPropList *dPosition, *dApplications, *dLowered, *dCollapsed; static WMPropList *dAutoCollapse, *dAutoRaiseLower, *dOmnipresent; static WMPropList *dDrawers = NULL; static void dockIconPaint(WAppIcon *btn); static void iconMouseDown(WObjDescriptor *desc, XEvent *event); static pid_t execCommand(WAppIcon *btn, const char *command, WSavedState *state); static void trackDeadProcess(pid_t pid, unsigned char status, WDock *dock); static int getClipButton(int px, int py); static void toggleLowered(WDock *dock); static void toggleCollapsed(WDock *dock); static void clipIconExpose(WObjDescriptor *desc, XEvent *event); static void clipLeave(WDock *dock); static void handleClipChangeWorkspace(WScreen *scr, XEvent *event); static void clipEnterNotify(WObjDescriptor *desc, XEvent *event); static void clipLeaveNotify(WObjDescriptor *desc, XEvent *event); static void clipAutoCollapse(void *cdata); static void clipAutoExpand(void *cdata); static void launchDockedApplication(WAppIcon *btn, Bool withSelection); static void clipAutoLower(void *cdata); static void clipAutoRaise(void *cdata); static WAppIcon *mainIconCreate(WScreen *scr, int type, const char *name); static void drawerIconExpose(WObjDescriptor *desc, XEvent *event); static void removeDrawerCallback(WMenu *menu, WMenuEntry *entry); static void drawerAppendToChain(WScreen *scr, WDock *drawer); static char *findUniqueName(WScreen *scr, const char *instance_basename); static void addADrawerCallback(WMenu *menu, WMenuEntry *entry); static void swapDrawers(WScreen *scr, int on_right_side, int new_x); static WDock* getDrawer(WScreen *scr, int y_index); static int indexOfHole(WDock *drawer, WAppIcon *moving_aicon, int redocking); static void drawerConsolidateIcons(WDock *drawer); static int onScreen(WScreen *scr, int x, int y); static void make_keys(void) { if (dCommand != NULL) return; dCommand = WMRetainPropList(WMCreatePLString("Command")); dPasteCommand = WMRetainPropList(WMCreatePLString("PasteCommand")); #ifdef XDND dDropCommand = WMRetainPropList(WMCreatePLString("DropCommand")); #endif dLock = WMRetainPropList(WMCreatePLString("Lock")); dAutoLaunch = WMRetainPropList(WMCreatePLString("AutoLaunch")); dName = WMRetainPropList(WMCreatePLString("Name")); dForced = WMRetainPropList(WMCreatePLString("Forced")); dBuggyApplication = WMRetainPropList(WMCreatePLString("BuggyApplication")); dYes = WMRetainPropList(WMCreatePLString("Yes")); dNo = WMRetainPropList(WMCreatePLString("No")); dHost = WMRetainPropList(WMCreatePLString("Host")); dPosition = WMCreatePLString("Position"); dApplications = WMCreatePLString("Applications"); dLowered = WMCreatePLString("Lowered"); dCollapsed = WMCreatePLString("Collapsed"); dAutoCollapse = WMCreatePLString("AutoCollapse"); dAutoRaiseLower = WMCreatePLString("AutoRaiseLower"); dAutoAttractIcons = WMCreatePLString("AutoAttractIcons"); dOmnipresent = WMCreatePLString("Omnipresent"); dDock = WMCreatePLString("Dock"); dClip = WMCreatePLString("Clip"); dDrawers = WMCreatePLString("Drawers"); } static void renameCallback(WMenu *menu, WMenuEntry *entry) { WDock *dock = entry->clientdata; char buffer[128]; int wspace; char *name; assert(entry->clientdata != NULL); wspace = dock->screen_ptr->current_workspace; name = wstrdup(dock->screen_ptr->workspaces[wspace]->name); snprintf(buffer, sizeof(buffer), _("Type the name for workspace %i:"), wspace + 1); if (wInputDialog(dock->screen_ptr, _("Rename Workspace"), buffer, &name)) wWorkspaceRename(dock->screen_ptr, wspace, name); wfree(name); } static void toggleLoweredCallback(WMenu *menu, WMenuEntry *entry) { assert(entry->clientdata != NULL); toggleLowered(entry->clientdata); entry->flags.indicator_on = !(((WDock *) entry->clientdata)->lowered); wMenuPaint(menu); } static int matchWindow(const void *item, const void *cdata) { return (((WFakeGroupLeader *) item)->leader == (Window) cdata); } static void killCallback(WMenu *menu, WMenuEntry *entry) { WScreen *scr = menu->menu->screen_ptr; WAppIcon *icon; WFakeGroupLeader *fPtr; char *buffer, *shortname, **argv; int argc; if (!WCHECK_STATE(WSTATE_NORMAL)) return; assert(entry->clientdata != NULL); icon = (WAppIcon *) entry->clientdata; icon->editing = 1; WCHANGE_STATE(WSTATE_MODAL); /* strip away dir names */ shortname = basename(icon->command); /* separate out command options */ wtokensplit(shortname, &argv, &argc); buffer = wstrconcat(argv[0], _(" will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm.")); if (icon->icon && icon->icon->owner) { fPtr = icon->icon->owner->fake_group; } else { /* is this really necessary? can we kill a non-running dock icon? */ Window win = icon->main_window; int index; index = WMFindInArray(scr->fakeGroupLeaders, matchWindow, (void *)win); if (index != WANotFound) fPtr = WMGetFromArray(scr->fakeGroupLeaders, index); else fPtr = NULL; } if (wPreferences.dont_confirm_kill || wMessageDialog(menu->frame->screen_ptr, _("Kill Application"), buffer, _("Yes"), _("No"), NULL) == WAPRDefault) { if (fPtr != NULL) { WWindow *wwin, *twin; wwin = scr->focused_window; while (wwin) { twin = wwin->prev; if (wwin->fake_group == fPtr) wClientKill(wwin); wwin = twin; } } else if (icon->icon && icon->icon->owner) { wClientKill(icon->icon->owner); } } wfree(buffer); wtokenfree(argv, argc); icon->editing = 0; WCHANGE_STATE(WSTATE_NORMAL); } /* TODO: replace this function with a member of the dock struct */ static int numberOfSelectedIcons(WDock *dock) { WAppIcon *aicon; int i, n; n = 0; for (i = 1; i < dock->max_icons; i++) { aicon = dock->icon_array[i]; if (aicon && aicon->icon->selected) n++; } return n; } static WMArray *getSelected(WDock *dock) { WMArray *ret = WMCreateArray(8); WAppIcon *btn; int i; for (i = 1; i < dock->max_icons; i++) { btn = dock->icon_array[i]; if (btn && btn->icon->selected) WMAddToArray(ret, btn); } return ret; } static void paintClipButtons(WAppIcon *clipIcon, Bool lpushed, Bool rpushed) { Window win = clipIcon->icon->core->window; WScreen *scr = clipIcon->icon->core->screen_ptr; XPoint p[4]; int pt = CLIP_BUTTON_SIZE * ICON_SIZE / 64; int tp = ICON_SIZE - pt; int as = pt - 15; /* 15 = 5+5+5 */ GC gc = scr->draw_gc; /* maybe use WMColorGC() instead here? */ WMColor *color; color = scr->clip_title_color[CLIP_NORMAL]; XSetForeground(dpy, gc, WMColorPixel(color)); if (rpushed) { p[0].x = tp + 1; p[0].y = 1; p[1].x = ICON_SIZE - 2; p[1].y = 1; p[2].x = ICON_SIZE - 2; p[2].y = pt - 1; } else if (lpushed) { p[0].x = 1; p[0].y = tp; p[1].x = pt; p[1].y = ICON_SIZE - 2; p[2].x = 1; p[2].y = ICON_SIZE - 2; } if (lpushed || rpushed) { XSetForeground(dpy, scr->draw_gc, scr->white_pixel); XFillPolygon(dpy, win, scr->draw_gc, p, 3, Convex, CoordModeOrigin); XSetForeground(dpy, scr->draw_gc, scr->black_pixel); } /* top right arrow */ p[0].x = p[3].x = ICON_SIZE - 5 - as; p[0].y = p[3].y = 5; p[1].x = ICON_SIZE - 6; p[1].y = 5; p[2].x = ICON_SIZE - 6; p[2].y = 4 + as; if (rpushed) { XFillPolygon(dpy, win, scr->draw_gc, p, 3, Convex, CoordModeOrigin); XDrawLines(dpy, win, scr->draw_gc, p, 4, CoordModeOrigin); } else { XFillPolygon(dpy, win, gc, p, 3, Convex, CoordModeOrigin); XDrawLines(dpy, win, gc, p, 4, CoordModeOrigin); } /* bottom left arrow */ p[0].x = p[3].x = 5; p[0].y = p[3].y = ICON_SIZE - 5 - as; p[1].x = 5; p[1].y = ICON_SIZE - 6; p[2].x = 4 + as; p[2].y = ICON_SIZE - 6; if (lpushed) { XFillPolygon(dpy, win, scr->draw_gc, p, 3, Convex, CoordModeOrigin); XDrawLines(dpy, win, scr->draw_gc, p, 4, CoordModeOrigin); } else { XFillPolygon(dpy, win, gc, p, 3, Convex, CoordModeOrigin); XDrawLines(dpy, win, gc, p, 4, CoordModeOrigin); } } RImage *wClipMakeTile(WScreen *scr, RImage *normalTile) { RImage *tile = RCloneImage(normalTile); RColor black; RColor dark; RColor light; int pt, tp; int as; pt = CLIP_BUTTON_SIZE * wPreferences.icon_size / 64; tp = wPreferences.icon_size - 1 - pt; as = pt - 15; black.alpha = 255; black.red = black.green = black.blue = 0; dark.alpha = 0; dark.red = dark.green = dark.blue = 60; light.alpha = 0; light.red = light.green = light.blue = 80; /* top right */ ROperateLine(tile, RSubtractOperation, tp, 0, wPreferences.icon_size - 2, pt - 1, &dark); RDrawLine(tile, tp - 1, 0, wPreferences.icon_size - 1, pt + 1, &black); ROperateLine(tile, RAddOperation, tp, 2, wPreferences.icon_size - 3, pt, &light); /* arrow bevel */ ROperateLine(tile, RSubtractOperation, ICON_SIZE - 7 - as, 4, ICON_SIZE - 5, 4, &dark); ROperateLine(tile, RSubtractOperation, ICON_SIZE - 6 - as, 5, ICON_SIZE - 5, 6 + as, &dark); ROperateLine(tile, RAddOperation, ICON_SIZE - 5, 4, ICON_SIZE - 5, 6 + as, &light); /* bottom left */ ROperateLine(tile, RAddOperation, 2, tp + 2, pt - 2, wPreferences.icon_size - 3, &dark); RDrawLine(tile, 0, tp - 1, pt + 1, wPreferences.icon_size - 1, &black); ROperateLine(tile, RSubtractOperation, 0, tp - 2, pt + 1, wPreferences.icon_size - 2, &light); /* arrow bevel */ ROperateLine(tile, RSubtractOperation, 4, ICON_SIZE - 7 - as, 4, ICON_SIZE - 5, &dark); ROperateLine(tile, RSubtractOperation, 5, ICON_SIZE - 6 - as, 6 + as, ICON_SIZE - 5, &dark); ROperateLine(tile, RAddOperation, 4, ICON_SIZE - 5, 6 + as, ICON_SIZE - 5, &light); return tile; } static void omnipresentCallback(WMenu *menu, WMenuEntry *entry) { WAppIcon *clickedIcon = entry->clientdata; WAppIcon *aicon; WDock *dock; WMArray *selectedIcons; WMArrayIterator iter; int failed; assert(entry->clientdata != NULL); dock = clickedIcon->dock; selectedIcons = getSelected(dock); if (!WMGetArrayItemCount(selectedIcons)) WMAddToArray(selectedIcons, clickedIcon); failed = 0; WM_ITERATE_ARRAY(selectedIcons, aicon, iter) { if (wClipMakeIconOmnipresent(aicon, !aicon->omnipresent) == WO_FAILED) failed++; else if (aicon->icon->selected) wIconSelect(aicon->icon); } WMFreeArray(selectedIcons); if (failed > 1) { wMessageDialog(dock->screen_ptr, _("Warning"), _("Some icons cannot be made omnipresent. " "Please make sure that no other icon is " "docked in the same positions on the other " "workspaces and the Clip is not full in " "some workspace."), _("OK"), NULL, NULL); } else if (failed == 1) { wMessageDialog(dock->screen_ptr, _("Warning"), _("Icon cannot be made omnipresent. " "Please make sure that no other icon is " "docked in the same position on the other " "workspaces and the Clip is not full in " "some workspace."), _("OK"), NULL, NULL); } } static void removeIcons(WMArray *icons, WDock *dock) { WAppIcon *aicon; int keepit; WMArrayIterator it; WM_ITERATE_ARRAY(icons, aicon, it) { keepit = aicon->running && wApplicationOf(aicon->main_window); wDockDetach(dock, aicon); if (keepit) { /* XXX: can: aicon->icon == NULL ? */ PlaceIcon(dock->screen_ptr, &aicon->x_pos, &aicon->y_pos, wGetHeadForWindow(aicon->icon->owner)); XMoveWindow(dpy, aicon->icon->core->window, aicon->x_pos, aicon->y_pos); if (!dock->mapped || dock->collapsed) XMapWindow(dpy, aicon->icon->core->window); } } WMFreeArray(icons); if (wPreferences.auto_arrange_icons) wArrangeIcons(dock->screen_ptr, True); } static void removeIconsCallback(WMenu *menu, WMenuEntry *entry) { WAppIcon *clickedIcon = (WAppIcon *) entry->clientdata; WDock *dock; WMArray *selectedIcons; assert(clickedIcon != NULL); dock = clickedIcon->dock; selectedIcons = getSelected(dock); if (WMGetArrayItemCount(selectedIcons)) { if (wMessageDialog(dock->screen_ptr, dock->type == WM_CLIP ? _("Workspace Clip") : _("Drawer"), _("All selected icons will be removed!"), _("OK"), _("Cancel"), NULL) != WAPRDefault) { WMFreeArray(selectedIcons); return; } } else { if (clickedIcon->xindex == 0 && clickedIcon->yindex == 0) { WMFreeArray(selectedIcons); return; } WMAddToArray(selectedIcons, clickedIcon); } removeIcons(selectedIcons, dock); if (dock->type == WM_DRAWER) { drawerConsolidateIcons(dock); } } static void keepIconsCallback(WMenu *menu, WMenuEntry *entry) { WAppIcon *clickedIcon = (WAppIcon *) entry->clientdata; WDock *dock; WAppIcon *aicon; WMArray *selectedIcons; WMArrayIterator it; assert(clickedIcon != NULL); dock = clickedIcon->dock; selectedIcons = getSelected(dock); if (!WMGetArrayItemCount(selectedIcons) && clickedIcon != dock->screen_ptr->clip_icon) { char *command = NULL; if (!clickedIcon->command && !clickedIcon->editing) { clickedIcon->editing = 1; if (wInputDialog(dock->screen_ptr, _("Keep Icon"), _("Type the command used to launch the application"), &command)) { if (command && (command[0] == 0 || (command[0] == '-' && command[1] == 0))) { wfree(command); command = NULL; } clickedIcon->command = command; clickedIcon->editing = 0; } else { clickedIcon->editing = 0; if (command) wfree(command); WMFreeArray(selectedIcons); return; } } WMAddToArray(selectedIcons, clickedIcon); } WM_ITERATE_ARRAY(selectedIcons, aicon, it) { if (aicon->icon->selected) wIconSelect(aicon->icon); if (aicon && aicon->attracted && aicon->command) { aicon->attracted = 0; if (aicon->icon->shadowed) { aicon->icon->shadowed = 0; /* * Update icon pixmap, RImage doesn't change, * so call wIconUpdate is not needed */ update_icon_pixmap(aicon->icon); /* Paint it */ wAppIconPaint(aicon); } } save_appicon(aicon, True); } WMFreeArray(selectedIcons); } static void toggleAutoAttractCallback(WMenu *menu, WMenuEntry *entry) { WDock *dock = (WDock *) entry->clientdata; WScreen *scr = dock->screen_ptr; assert(entry->clientdata != NULL); /* Setting a clip as autoattracting will disable an autoattracting drawer, * and reciprocally. Ask for confirmation? */ #ifdef CONFIRM_AUTOATTRACT_CHANGE if (dock->type == WM_CLIP && scr->attracting_drawer) { if (wMessageDialog(scr, _("Workspace Clip"), _("The drawer that auto-attracted icons so far won't do so anymore!"), _("OK"), _("Cancel"), NULL) != WAPRDefault) return; } else if (dock->type == WM_DRAWER) { /* check if at least one clip already auto attracts icons */ int i, ask_for_confirmation = False; for (i = 0; i < scr->workspace_count; i++) { if (scr->workspaces[ i ]->clip->attract_icons) { ask_for_confirmation = True; break; } } if (ask_for_confirmation) { if (wMessageDialog(scr, _("Drawer"), _("Any clips that auto-attracted icons so far won't do so anymore!"), _("OK"), _("Cancel"), NULL) != WAPRDefault) return; } } #endif dock->attract_icons = !dock->attract_icons; entry->flags.indicator_on = dock->attract_icons; wMenuPaint(menu); if (dock->attract_icons) { if (dock->type == WM_DRAWER) { /* The newly auto-attracting dock is a drawer: disable any clip and * previously attracting drawer */ int i; for (i = 0; i < scr->workspace_count; i++) { scr->workspaces[ i ]->clip->attract_icons = False; /* dock menu will be updated later, when opened */ } if (scr->attracting_drawer != NULL) scr->attracting_drawer->attract_icons = False; scr->attracting_drawer = dock; } else { /* The newly auto-attracting dock is a clip: disable * previously attracting drawer, if applicable */ if (scr->attracting_drawer != NULL) { scr->attracting_drawer->attract_icons = False; /* again, its menu will be updated, later. */ scr->attracting_drawer = NULL; } } } } static void selectCallback(WMenu *menu, WMenuEntry *entry) { WAppIcon *icon = (WAppIcon *) entry->clientdata; assert(icon != NULL); wIconSelect(icon->icon); wMenuPaint(menu); } static void colectIconsCallback(WMenu *menu, WMenuEntry *entry) { WAppIcon *clickedIcon = (WAppIcon *) entry->clientdata; WDock *clip; /* clip... is a WM_CLIP or a WM_DRAWER */ WAppIcon *aicon; int x, y, x_pos, y_pos; Bool update_icon = False; assert(entry->clientdata != NULL); clip = clickedIcon->dock; aicon = clip->screen_ptr->app_icon_list; while (aicon) { if (!aicon->docked && wDockFindFreeSlot(clip, &x, &y)) { x_pos = clip->x_pos + x * ICON_SIZE; y_pos = clip->y_pos + y * ICON_SIZE; if (aicon->x_pos != x_pos || aicon->y_pos != y_pos) move_window(aicon->icon->core->window, aicon->x_pos, aicon->y_pos, x_pos, y_pos); aicon->attracted = 1; if (!aicon->icon->shadowed) { aicon->icon->shadowed = 1; update_icon = True; } wDockAttachIcon(clip, aicon, x, y, update_icon); if (clip->collapsed || !clip->mapped) XUnmapWindow(dpy, aicon->icon->core->window); } aicon = aicon->next; } } static void selectIconsCallback(WMenu *menu, WMenuEntry *entry) { WAppIcon *clickedIcon = (WAppIcon *) entry->clientdata; WDock *dock; WMArray *selectedIcons; WMArrayIterator iter; WAppIcon *btn; int i; assert(clickedIcon != NULL); dock = clickedIcon->dock; selectedIcons = getSelected(dock); if (!WMGetArrayItemCount(selectedIcons)) { for (i = 1; i < dock->max_icons; i++) { btn = dock->icon_array[i]; if (btn && !btn->icon->selected) wIconSelect(btn->icon); } } else { WM_ITERATE_ARRAY(selectedIcons, btn, iter) { wIconSelect(btn->icon); } } WMFreeArray(selectedIcons); wMenuPaint(menu); } static void toggleCollapsedCallback(WMenu *menu, WMenuEntry *entry) { assert(entry->clientdata != NULL); toggleCollapsed(entry->clientdata); entry->flags.indicator_on = ((WDock *) entry->clientdata)->collapsed; wMenuPaint(menu); } static void toggleAutoCollapseCallback(WMenu *menu, WMenuEntry *entry) { WDock *dock; assert(entry->clientdata != NULL); dock = (WDock *) entry->clientdata; dock->auto_collapse = !dock->auto_collapse; entry->flags.indicator_on = ((WDock *) entry->clientdata)->auto_collapse; wMenuPaint(menu); } static void toggleAutoRaiseLower(WDock *dock) { WDrawerChain *dc; dock->auto_raise_lower = !dock->auto_raise_lower; if (dock->type == WM_DOCK) { for (dc = dock->screen_ptr->drawers; dc != NULL; dc = dc->next) { toggleAutoRaiseLower(dc->adrawer); } } } static void toggleAutoRaiseLowerCallback(WMenu *menu, WMenuEntry *entry) { WDock *dock; assert(entry->clientdata != NULL); dock = (WDock *) entry->clientdata; toggleAutoRaiseLower(dock); entry->flags.indicator_on = ((WDock *) entry->clientdata)->auto_raise_lower; wMenuPaint(menu); } static void launchCallback(WMenu *menu, WMenuEntry *entry) { WAppIcon *btn = (WAppIcon *) entry->clientdata; launchDockedApplication(btn, False); } static void settingsCallback(WMenu *menu, WMenuEntry *entry) { WAppIcon *btn = (WAppIcon *) entry->clientdata; if (btn->editing) return; ShowDockAppSettingsPanel(btn); } static void hideCallback(WMenu *menu, WMenuEntry *entry) { WApplication *wapp; WAppIcon *btn = (WAppIcon *) entry->clientdata; wapp = wApplicationOf(btn->icon->owner->main_window); if (wapp->flags.hidden) { wWorkspaceChange(btn->icon->core->screen_ptr, wapp->last_workspace); wUnhideApplication(wapp, False, False); } else { wHideApplication(wapp); } } static void unhideHereCallback(WMenu *menu, WMenuEntry *entry) { WApplication *wapp; WAppIcon *btn = (WAppIcon *) entry->clientdata; wapp = wApplicationOf(btn->icon->owner->main_window); wUnhideApplication(wapp, False, True); } /* Name is only used when type == WM_DRAWER and when restoring a specific * drawer, with a specific name. When creating a drawer, leave name to NULL * and mainIconCreate will find the first unused unique name */ static WAppIcon *mainIconCreate(WScreen *scr, int type, const char *name) { WAppIcon *btn; int x_pos; switch(type) { case WM_CLIP: if (scr->clip_icon) return scr->clip_icon; btn = wAppIconCreateForDock(scr, NULL, "Logo", "WMClip", TILE_CLIP); btn->icon->core->descriptor.handle_expose = clipIconExpose; x_pos = 0; break; case WM_DOCK: default: /* to avoid a warning about btn and x_pos, basically */ btn = wAppIconCreateForDock(scr, NULL, "Logo", "WMDock", TILE_NORMAL); if (wPreferences.flags.clip_merged_in_dock) btn->icon->core->descriptor.handle_expose = clipIconExpose; x_pos = scr->scr_width - ICON_SIZE - DOCK_EXTRA_SPACE; break; case WM_DRAWER: if (name == NULL) name = findUniqueName(scr, "Drawer"); btn = wAppIconCreateForDock(scr, NULL, name, "WMDrawer", TILE_DRAWER); btn->icon->core->descriptor.handle_expose = drawerIconExpose; x_pos = 0; } btn->xindex = 0; btn->yindex = 0; btn->icon->core->descriptor.handle_mousedown = iconMouseDown; btn->icon->core->descriptor.handle_enternotify = clipEnterNotify; btn->icon->core->descriptor.handle_leavenotify = clipLeaveNotify; btn->icon->core->descriptor.parent_type = WCLASS_DOCK_ICON; btn->icon->core->descriptor.parent = btn; XMapWindow(dpy, btn->icon->core->window); btn->x_pos = x_pos; btn->y_pos = 0; btn->docked = 1; if (type == WM_CLIP || (type == WM_DOCK && wPreferences.flags.clip_merged_in_dock)) scr->clip_icon = btn; return btn; } static void switchWSCommand(WMenu *menu, WMenuEntry *entry) { WAppIcon *btn, *icon = (WAppIcon *) entry->clientdata; WScreen *scr = icon->icon->core->screen_ptr; WDock *src, *dest; WMArray *selectedIcons; int x, y; if (entry->order == scr->current_workspace) return; src = icon->dock; dest = scr->workspaces[entry->order]->clip; selectedIcons = getSelected(src); if (WMGetArrayItemCount(selectedIcons)) { WMArrayIterator iter; WM_ITERATE_ARRAY(selectedIcons, btn, iter) { if (wDockFindFreeSlot(dest, &x, &y)) { wDockMoveIconBetweenDocks(src, dest, btn, x, y); XUnmapWindow(dpy, btn->icon->core->window); } } } else if (icon != scr->clip_icon) { if (wDockFindFreeSlot(dest, &x, &y)) { wDockMoveIconBetweenDocks(src, dest, icon, x, y); XUnmapWindow(dpy, icon->icon->core->window); } } WMFreeArray(selectedIcons); } static void launchDockedApplication(WAppIcon *btn, Bool withSelection) { WScreen *scr = btn->icon->core->screen_ptr; if (!btn->launching && ((!withSelection && btn->command != NULL) || (withSelection && btn->paste_command != NULL))) { if (!btn->forced_dock) { btn->relaunching = btn->running; btn->running = 1; } if (btn->wm_instance || btn->wm_class) { WWindowAttributes attr; memset(&attr, 0, sizeof(WWindowAttributes)); wDefaultFillAttributes(btn->wm_instance, btn->wm_class, &attr, NULL, True); if (!attr.no_appicon && !btn->buggy_app) btn->launching = 1; else btn->running = 0; } btn->drop_launch = 0; btn->paste_launch = withSelection; scr->last_dock = btn->dock; btn->pid = execCommand(btn, (withSelection ? btn->paste_command : btn->command), NULL); if (btn->pid > 0) { if (btn->buggy_app) { /* give feedback that the app was launched */ btn->launching = 1; dockIconPaint(btn); btn->launching = 0; WMAddTimerHandler(200, (WMCallback *) dockIconPaint, btn); } else { dockIconPaint(btn); } } else { wwarning(_("could not launch application %s"), btn->command); btn->launching = 0; if (!btn->relaunching) btn->running = 0; } } } static void updateWorkspaceMenu(WMenu *menu, WAppIcon *icon) { WScreen *scr = menu->frame->screen_ptr; char title[MAX_WORKSPACENAME_WIDTH + 1]; int i; if (!menu || !icon) return; for (i = 0; i < scr->workspace_count; i++) { if (i < menu->entry_no) { if (strcmp(menu->entries[i]->text, scr->workspaces[i]->name) != 0) { wfree(menu->entries[i]->text); strcpy(title, scr->workspaces[i]->name); menu->entries[i]->text = wstrdup(title); menu->flags.realized = 0; } menu->entries[i]->clientdata = (void *)icon; } else { strcpy(title, scr->workspaces[i]->name); wMenuAddCallback(menu, title, switchWSCommand, (void *)icon); menu->flags.realized = 0; } if (i == scr->current_workspace) wMenuSetEnabled(menu, i, False); else wMenuSetEnabled(menu, i, True); } if (!menu->flags.realized) wMenuRealize(menu); } static WMenu *makeWorkspaceMenu(WScreen *scr) { WMenu *menu; menu = wMenuCreate(scr, NULL, False); if (!menu) wwarning(_("could not create workspace submenu for Clip menu")); wMenuAddCallback(menu, "", switchWSCommand, (void *)scr->clip_icon); menu->flags.realized = 0; wMenuRealize(menu); return menu; } static void updateClipOptionsMenu(WMenu *menu, WDock *dock) { WMenuEntry *entry; int index = 0; if (!menu || !dock) return; /* keep on top */ entry = menu->entries[index]; entry->flags.indicator_on = !dock->lowered; entry->clientdata = dock; wMenuSetEnabled(menu, index, dock->type == WM_CLIP); /* collapsed */ entry = menu->entries[++index]; entry->flags.indicator_on = dock->collapsed; entry->clientdata = dock; /* auto-collapse */ entry = menu->entries[++index]; entry->flags.indicator_on = dock->auto_collapse; entry->clientdata = dock; /* auto-raise/lower */ entry = menu->entries[++index]; entry->flags.indicator_on = dock->auto_raise_lower; entry->clientdata = dock; wMenuSetEnabled(menu, index, dock->lowered && (dock->type == WM_CLIP)); /* attract icons */ entry = menu->entries[++index]; entry->flags.indicator_on = dock->attract_icons; entry->clientdata = dock; menu->flags.realized = 0; wMenuRealize(menu); } static WMenu *makeClipOptionsMenu(WScreen *scr) { WMenu *menu; WMenuEntry *entry; menu = wMenuCreate(scr, NULL, False); if (!menu) { wwarning(_("could not create options submenu for Clip menu")); return NULL; } entry = wMenuAddCallback(menu, _("Keep on Top"), toggleLoweredCallback, NULL); entry->flags.indicator = 1; entry->flags.indicator_on = 1; entry->flags.indicator_type = MI_CHECK; entry = wMenuAddCallback(menu, _("Collapsed"), toggleCollapsedCallback, NULL); entry->flags.indicator = 1; entry->flags.indicator_on = 1; entry->flags.indicator_type = MI_CHECK; entry = wMenuAddCallback(menu, _("Autocollapse"), toggleAutoCollapseCallback, NULL); entry->flags.indicator = 1; entry->flags.indicator_on = 1; entry->flags.indicator_type = MI_CHECK; entry = wMenuAddCallback(menu, _("Autoraise"), toggleAutoRaiseLowerCallback, NULL); entry->flags.indicator = 1; entry->flags.indicator_on = 1; entry->flags.indicator_type = MI_CHECK; entry = wMenuAddCallback(menu, _("Autoattract Icons"), toggleAutoAttractCallback, NULL); entry->flags.indicator = 1; entry->flags.indicator_on = 1; entry->flags.indicator_type = MI_CHECK; menu->flags.realized = 0; wMenuRealize(menu); return menu; } static void setDockPositionNormalCallback(WMenu *menu, WMenuEntry *entry) { WDock *dock = (WDock *) entry->clientdata; WDrawerChain *dc; if (entry->flags.indicator_on) // already set, nothing to do return; // Do we come from auto raise lower or keep on top? if (dock->auto_raise_lower) { dock->auto_raise_lower = 0; // Only for aesthetic purposes, can be removed when Autoraise status is no longer exposed in drawer option menu for (dc = dock->screen_ptr->drawers; dc != NULL; dc = dc->next) { dc->adrawer->auto_raise_lower = 0; } } else { // Will take care of setting lowered = 0 in drawers toggleLowered(dock); } entry->flags.indicator_on = 1; } static void setDockPositionAutoRaiseLowerCallback(WMenu *menu, WMenuEntry *entry) { WDock *dock = (WDock *) entry->clientdata; WDrawerChain *dc; if (entry->flags.indicator_on) // already set, nothing to do return; // Do we come from normal or keep on top? if (!dock->lowered) { toggleLowered(dock); } dock->auto_raise_lower = 1; // Only for aesthetic purposes, can be removed when Autoraise status is no longer exposed in drawer option menu for (dc = dock->screen_ptr->drawers; dc != NULL; dc = dc->next) { dc->adrawer->auto_raise_lower = 1; } entry->flags.indicator_on = 1; } static void setDockPositionKeepOnTopCallback(WMenu *menu, WMenuEntry *entry) { WDock *dock = (WDock *) entry->clientdata; WDrawerChain *dc; if (entry->flags.indicator_on) // already set, nothing to do return; dock->auto_raise_lower = 0; // Only for aesthetic purposes, can be removed when Autoraise status is no longer exposed in drawer option menu for (dc = dock->screen_ptr->drawers; dc != NULL; dc = dc->next) { dc->adrawer->auto_raise_lower = 0; } toggleLowered(dock); entry->flags.indicator_on = 1; } static void updateDockPositionMenu(WMenu *menu, WDock *dock) { WMenuEntry *entry; int index = 0; assert(menu); assert(dock); /* Normal level */ entry = menu->entries[index++]; entry->flags.indicator_on = (dock->lowered && !dock->auto_raise_lower); entry->clientdata = dock; /* Auto-raise/lower */ entry = menu->entries[index++]; entry->flags.indicator_on = dock->auto_raise_lower; entry->clientdata = dock; /* Keep on top */ entry = menu->entries[index++]; entry->flags.indicator_on = !dock->lowered; entry->clientdata = dock; } static WMenu *makeDockPositionMenu(WScreen *scr) { /* When calling this, the dock is being created, so scr->dock is still not set * Therefore the callbacks' clientdata and the indicators can't be set, * they will be updated when the dock menu is opened. */ WMenu *menu; WMenuEntry *entry; menu = wMenuCreate(scr, NULL, False); if (!menu) { wwarning(_("could not create options submenu for dock position menu")); return NULL; } entry = wMenuAddCallback(menu, _("Normal"), setDockPositionNormalCallback, NULL); entry->flags.indicator = 1; entry->flags.indicator_type = MI_DIAMOND; entry = wMenuAddCallback(menu, _("Auto raise & lower"), setDockPositionAutoRaiseLowerCallback, NULL); entry->flags.indicator = 1; entry->flags.indicator_type = MI_DIAMOND; entry = wMenuAddCallback(menu, _("Keep on Top"), setDockPositionKeepOnTopCallback, NULL); entry->flags.indicator = 1; entry->flags.indicator_type = MI_DIAMOND; menu->flags.realized = 0; wMenuRealize(menu); return menu; } static WMenu *dockMenuCreate(WScreen *scr, int type) { WMenu *menu; WMenuEntry *entry; if (type == WM_CLIP && scr->clip_menu) return scr->clip_menu; if (type == WM_DRAWER && scr->drawer_menu) return scr->drawer_menu; menu = wMenuCreate(scr, NULL, False); if (type == WM_DOCK) { entry = wMenuAddCallback(menu, _("Dock position"), NULL, NULL); if (scr->dock_pos_menu == NULL) scr->dock_pos_menu = makeDockPositionMenu(scr); wMenuEntrySetCascade(menu, entry, scr->dock_pos_menu); if (!wPreferences.flags.nodrawer) { entry = wMenuAddCallback(menu, _("Add a drawer"), addADrawerCallback, NULL); } } else { if (type == WM_CLIP) entry = wMenuAddCallback(menu, _("Clip Options"), NULL, NULL); else /* if (type == WM_DRAWER) */ entry = wMenuAddCallback(menu, _("Drawer options"), NULL, NULL); if (scr->clip_options == NULL) scr->clip_options = makeClipOptionsMenu(scr); wMenuEntrySetCascade(menu, entry, scr->clip_options); /* The same menu is used for the dock and its appicons. If the menu * entry text is different between the two contexts, or if it can * change depending on some state, free the duplicated string (from * wMenuInsertCallback) and use gettext's string */ if (type == WM_CLIP) { entry = wMenuAddCallback(menu, _("Rename Workspace"), renameCallback, NULL); wfree(entry->text); entry->text = _("Rename Workspace"); /* can be: (Toggle) Omnipresent */ } entry = wMenuAddCallback(menu, _("Selected"), selectCallback, NULL); entry->flags.indicator = 1; entry->flags.indicator_on = 1; entry->flags.indicator_type = MI_CHECK; entry = wMenuAddCallback(menu, _("Select All Icons"), selectIconsCallback, NULL); wfree(entry->text); entry->text = _("Select All Icons"); /* can be: Unselect all icons */ entry = wMenuAddCallback(menu, _("Keep Icon"), keepIconsCallback, NULL); wfree(entry->text); entry->text = _("Keep Icon"); /* can be: Keep Icons */ if (type == WM_CLIP) { entry = wMenuAddCallback(menu, _("Move Icon To"), NULL, NULL); wfree(entry->text); entry->text = _("Move Icon To"); /* can be: Move Icons to */ scr->clip_submenu = makeWorkspaceMenu(scr); if (scr->clip_submenu) wMenuEntrySetCascade(menu, entry, scr->clip_submenu); } entry = wMenuAddCallback(menu, _("Remove Icon"), removeIconsCallback, NULL); wfree(entry->text); entry->text = _("Remove Icon"); /* can be: Remove Icons */ wMenuAddCallback(menu, _("Attract Icons"), colectIconsCallback, NULL); } wMenuAddCallback(menu, _("Launch"), launchCallback, NULL); wMenuAddCallback(menu, _("Unhide Here"), unhideHereCallback, NULL); entry = wMenuAddCallback(menu, _("Hide"), hideCallback, NULL); wfree(entry->text); entry->text = _("Hide"); /* can be: Unhide */ wMenuAddCallback(menu, _("Settings..."), settingsCallback, NULL); entry = wMenuAddCallback(menu, _("Kill"), killCallback, NULL); wfree(entry->text); entry->text = _("Kill"); /* can be: Remove drawer */ if (type == WM_CLIP) scr->clip_menu = menu; if (type == WM_DRAWER) scr->drawer_menu = menu; return menu; } WDock *wDockCreate(WScreen *scr, int type, const char *name) { WDock *dock; WAppIcon *btn; make_keys(); dock = wmalloc(sizeof(WDock)); switch (type) { case WM_CLIP: dock->max_icons = DOCK_MAX_ICONS; break; case WM_DRAWER: dock->max_icons = scr->scr_width / wPreferences.icon_size; break; case WM_DOCK: default: dock->max_icons = scr->scr_height / wPreferences.icon_size; } dock->icon_array = wmalloc(sizeof(WAppIcon *) * dock->max_icons); btn = mainIconCreate(scr, type, name); btn->dock = dock; dock->x_pos = btn->x_pos; dock->y_pos = btn->y_pos; dock->screen_ptr = scr; dock->type = type; dock->icon_count = 1; if (type == WM_DRAWER) dock->on_right_side = scr->dock->on_right_side; else dock->on_right_side = 1; dock->collapsed = 0; dock->auto_collapse = 0; dock->auto_collapse_magic = NULL; dock->auto_raise_lower = 0; dock->auto_lower_magic = NULL; dock->auto_raise_magic = NULL; dock->attract_icons = 0; dock->lowered = 1; dock->icon_array[0] = btn; wRaiseFrame(btn->icon->core); XMoveWindow(dpy, btn->icon->core->window, btn->x_pos, btn->y_pos); /* create dock menu */ dock->menu = dockMenuCreate(scr, type); if (type == WM_DRAWER) { drawerAppendToChain(scr, dock); dock->auto_collapse = 1; } return dock; } void wDockDestroy(WDock *dock) { int i; WAppIcon *aicon; for (i = (dock->type == WM_CLIP) ? 1 : 0; i < dock->max_icons; i++) { aicon = dock->icon_array[i]; if (aicon) { int keepit = aicon->running && wApplicationOf(aicon->main_window); wDockDetach(dock, aicon); if (keepit) { /* XXX: can: aicon->icon == NULL ? */ PlaceIcon(dock->screen_ptr, &aicon->x_pos, &aicon->y_pos, wGetHeadForWindow(aicon->icon->owner)); XMoveWindow(dpy, aicon->icon->core->window, aicon->x_pos, aicon->y_pos); if (!dock->mapped || dock->collapsed) XMapWindow(dpy, aicon->icon->core->window); } } } if (wPreferences.auto_arrange_icons) wArrangeIcons(dock->screen_ptr, True); wfree(dock->icon_array); if (dock->menu && dock->type != WM_CLIP) wMenuDestroy(dock->menu, True); if (dock->screen_ptr->last_dock == dock) dock->screen_ptr->last_dock = NULL; wfree(dock); } void wClipIconPaint(WAppIcon *aicon) { WScreen *scr = aicon->icon->core->screen_ptr; WWorkspace *workspace = scr->workspaces[scr->current_workspace]; WMColor *color; Window win = aicon->icon->core->window; int length, nlength; char *ws_name, ws_number[10]; int ty, tx; wIconPaint(aicon->icon); length = strlen(workspace->name); ws_name = wmalloc(length + 1); snprintf(ws_name, length + 1, "%s", workspace->name); snprintf(ws_number, sizeof(ws_number), "%i", scr->current_workspace + 1); nlength = strlen(ws_number); if (wPreferences.flags.noclip || !workspace->clip->collapsed) color = scr->clip_title_color[CLIP_NORMAL]; else color = scr->clip_title_color[CLIP_COLLAPSED]; ty = ICON_SIZE - WMFontHeight(scr->clip_title_font) - 3; tx = CLIP_BUTTON_SIZE * ICON_SIZE / 64; if(wPreferences.show_clip_title) WMDrawString(scr->wmscreen, win, color, scr->clip_title_font, tx, ty, ws_name, length); tx = (ICON_SIZE / 2 - WMWidthOfString(scr->clip_title_font, ws_number, nlength)) / 2; WMDrawString(scr->wmscreen, win, color, scr->clip_title_font, tx, 2, ws_number, nlength); wfree(ws_name); if (aicon->launching) XFillRectangle(dpy, aicon->icon->core->window, scr->stipple_gc, 0, 0, wPreferences.icon_size, wPreferences.icon_size); paintClipButtons(aicon, aicon->dock->lclip_button_pushed, aicon->dock->rclip_button_pushed); } static void clipIconExpose(WObjDescriptor *desc, XEvent *event) { wClipIconPaint(desc->parent); } static void dockIconPaint(WAppIcon *btn) { if (btn == btn->icon->core->screen_ptr->clip_icon) { wClipIconPaint(btn); } else if (wIsADrawer(btn->icon->core->screen_ptr, btn)) { wDrawerIconPaint(btn); } else { wAppIconPaint(btn); save_appicon(btn, True); } } static WMPropList *make_icon_state(WAppIcon *btn) { WMPropList *node = NULL; WMPropList *command, *autolaunch, *lock, *name, *forced; WMPropList *position, *buggy, *omnipresent; char *tmp; char buffer[64]; if (btn) { if (!btn->command) command = WMCreatePLString("-"); else command = WMCreatePLString(btn->command); autolaunch = btn->auto_launch ? dYes : dNo; lock = btn->lock ? dYes : dNo; tmp = EscapeWM_CLASS(btn->wm_instance, btn->wm_class); name = WMCreatePLString(tmp); wfree(tmp); forced = btn->forced_dock ? dYes : dNo; buggy = btn->buggy_app ? dYes : dNo; if (!wPreferences.flags.clip_merged_in_dock && btn == btn->icon->core->screen_ptr->clip_icon) snprintf(buffer, sizeof(buffer), "%i,%i", btn->x_pos, btn->y_pos); else snprintf(buffer, sizeof(buffer), "%hi,%hi", btn->xindex, btn->yindex); position = WMCreatePLString(buffer); node = WMCreatePLDictionary(dCommand, command, dName, name, dAutoLaunch, autolaunch, dLock, lock, dForced, forced, dBuggyApplication, buggy, dPosition, position, NULL); WMReleasePropList(command); WMReleasePropList(name); WMReleasePropList(position); omnipresent = btn->omnipresent ? dYes : dNo; if (btn->dock != btn->icon->core->screen_ptr->dock && (btn->xindex != 0 || btn->yindex != 0)) WMPutInPLDictionary(node, dOmnipresent, omnipresent); #ifdef XDND /* was OFFIX */ if (btn->dnd_command) { command = WMCreatePLString(btn->dnd_command); WMPutInPLDictionary(node, dDropCommand, command); WMReleasePropList(command); } #endif /* XDND */ if (btn->paste_command) { command = WMCreatePLString(btn->paste_command); WMPutInPLDictionary(node, dPasteCommand, command); WMReleasePropList(command); } } return node; } static WMPropList *dockSaveState(WDock *dock) { int i; WMPropList *icon_info; WMPropList *list = NULL, *dock_state = NULL; WMPropList *value, *key; char buffer[256]; list = WMCreatePLArray(NULL); for (i = (dock->type == WM_DOCK ? 0 : 1); i < dock->max_icons; i++) { WAppIcon *btn = dock->icon_array[i]; if (!btn || btn->attracted) continue; if ((icon_info = make_icon_state(dock->icon_array[i]))) { WMAddToPLArray(list, icon_info); WMReleasePropList(icon_info); } } dock_state = WMCreatePLDictionary(dApplications, list, NULL); if (dock->type == WM_DOCK) { snprintf(buffer, sizeof(buffer), "Applications%i", dock->screen_ptr->scr_height); key = WMCreatePLString(buffer); WMPutInPLDictionary(dock_state, key, list); WMReleasePropList(key); snprintf(buffer, sizeof(buffer), "%i,%i", (dock->on_right_side ? -ICON_SIZE : 0), dock->y_pos); value = WMCreatePLString(buffer); WMPutInPLDictionary(dock_state, dPosition, value); WMReleasePropList(value); } WMReleasePropList(list); if (dock->type == WM_CLIP || dock->type == WM_DRAWER) { value = (dock->collapsed ? dYes : dNo); WMPutInPLDictionary(dock_state, dCollapsed, value); value = (dock->auto_collapse ? dYes : dNo); WMPutInPLDictionary(dock_state, dAutoCollapse, value); value = (dock->attract_icons ? dYes : dNo); WMPutInPLDictionary(dock_state, dAutoAttractIcons, value); } if (dock->type == WM_DOCK || dock->type == WM_CLIP) { value = (dock->lowered ? dYes : dNo); WMPutInPLDictionary(dock_state, dLowered, value); value = (dock->auto_raise_lower ? dYes : dNo); WMPutInPLDictionary(dock_state, dAutoRaiseLower, value); } return dock_state; } void wDockSaveState(WScreen *scr, WMPropList *old_state) { WMPropList *dock_state; WMPropList *keys; dock_state = dockSaveState(scr->dock); /* * Copy saved states of docks with different sizes. */ if (old_state) { int i; WMPropList *tmp; keys = WMGetPLDictionaryKeys(old_state); for (i = 0; i < WMGetPropListItemCount(keys); i++) { tmp = WMGetFromPLArray(keys, i); if (strncasecmp(WMGetFromPLString(tmp), "applications", 12) == 0 && !WMGetFromPLDictionary(dock_state, tmp)) { WMPutInPLDictionary(dock_state, tmp, WMGetFromPLDictionary(old_state, tmp)); } } WMReleasePropList(keys); } WMPutInPLDictionary(scr->session_state, dDock, dock_state); WMReleasePropList(dock_state); } void wClipSaveState(WScreen *scr) { WMPropList *clip_state; clip_state = make_icon_state(scr->clip_icon); WMPutInPLDictionary(scr->session_state, dClip, clip_state); WMReleasePropList(clip_state); } WMPropList *wClipSaveWorkspaceState(WScreen *scr, int workspace) { return dockSaveState(scr->workspaces[workspace]->clip); } static Bool getBooleanDockValue(WMPropList *value, WMPropList *key) { if (value) { if (WMIsPLString(value)) { if (strcasecmp(WMGetFromPLString(value), "YES") == 0) return True; } else { wwarning(_("bad value in docked icon state info %s"), WMGetFromPLString(key)); } } return False; } static WAppIcon *restore_icon_state(WScreen *scr, WMPropList *info, int type, int index) { WAppIcon *aicon; WMPropList *cmd, *value; char *wclass, *winstance, *command; cmd = WMGetFromPLDictionary(info, dCommand); if (!cmd || !WMIsPLString(cmd)) return NULL; /* parse window name */ value = WMGetFromPLDictionary(info, dName); if (!value) return NULL; ParseWindowName(value, &winstance, &wclass, "dock"); if (!winstance && !wclass) return NULL; /* get commands */ if (cmd) command = wstrdup(WMGetFromPLString(cmd)); else command = NULL; if (!command || strcmp(command, "-") == 0) { if (command) wfree(command); if (wclass) wfree(wclass); if (winstance) wfree(winstance); return NULL; } aicon = wAppIconCreateForDock(scr, command, winstance, wclass, TILE_NORMAL); if (wclass) wfree(wclass); if (winstance) wfree(winstance); if (command) wfree(command); aicon->icon->core->descriptor.handle_mousedown = iconMouseDown; aicon->icon->core->descriptor.handle_enternotify = clipEnterNotify; aicon->icon->core->descriptor.handle_leavenotify = clipLeaveNotify; aicon->icon->core->descriptor.parent_type = WCLASS_DOCK_ICON; aicon->icon->core->descriptor.parent = aicon; #ifdef XDND /* was OFFIX */ cmd = WMGetFromPLDictionary(info, dDropCommand); if (cmd) aicon->dnd_command = wstrdup(WMGetFromPLString(cmd)); #endif cmd = WMGetFromPLDictionary(info, dPasteCommand); if (cmd) aicon->paste_command = wstrdup(WMGetFromPLString(cmd)); /* check auto launch */ value = WMGetFromPLDictionary(info, dAutoLaunch); aicon->auto_launch = getBooleanDockValue(value, dAutoLaunch); /* check lock */ value = WMGetFromPLDictionary(info, dLock); aicon->lock = getBooleanDockValue(value, dLock); /* check if it wasn't normally docked */ value = WMGetFromPLDictionary(info, dForced); aicon->forced_dock = getBooleanDockValue(value, dForced); /* check if we can rely on the stuff in the app */ value = WMGetFromPLDictionary(info, dBuggyApplication); aicon->buggy_app = getBooleanDockValue(value, dBuggyApplication); /* get position in the dock */ value = WMGetFromPLDictionary(info, dPosition); if (value && WMIsPLString(value)) { if (sscanf(WMGetFromPLString(value), "%hi,%hi", &aicon->xindex, &aicon->yindex) != 2) wwarning(_("bad value in docked icon state info %s"), WMGetFromPLString(dPosition)); /* check position sanity */ /* *Very* incomplete section! */ if (type == WM_DOCK) { aicon->xindex = 0; } } else { aicon->yindex = index; aicon->xindex = 0; } /* check if icon is omnipresent */ value = WMGetFromPLDictionary(info, dOmnipresent); aicon->omnipresent = getBooleanDockValue(value, dOmnipresent); aicon->running = 0; aicon->docked = 1; return aicon; } #define COMPLAIN(key) wwarning(_("bad value in dock state info:%s"), key) WAppIcon *wClipRestoreState(WScreen *scr, WMPropList *clip_state) { WAppIcon *icon; WMPropList *value; icon = mainIconCreate(scr, WM_CLIP, NULL); if (!clip_state) return icon; WMRetainPropList(clip_state); /* restore position */ value = WMGetFromPLDictionary(clip_state, dPosition); if (value) { if (!WMIsPLString(value)) { COMPLAIN("Position"); } else { if (sscanf(WMGetFromPLString(value), "%i,%i", &icon->x_pos, &icon->y_pos) != 2) COMPLAIN("Position"); /* check position sanity */ if (!onScreen(scr, icon->x_pos, icon->y_pos)) wScreenKeepInside(scr, &icon->x_pos, &icon->y_pos, ICON_SIZE, ICON_SIZE); } } #ifdef XDND /* was OFFIX */ value = WMGetFromPLDictionary(clip_state, dDropCommand); if (value && WMIsPLString(value)) icon->dnd_command = wstrdup(WMGetFromPLString(value)); #endif value = WMGetFromPLDictionary(clip_state, dPasteCommand); if (value && WMIsPLString(value)) icon->paste_command = wstrdup(WMGetFromPLString(value)); WMReleasePropList(clip_state); return icon; } WDock *wDockRestoreState(WScreen *scr, WMPropList *dock_state, int type) { WDock *dock; WMPropList *apps; WMPropList *value; WAppIcon *aicon, *old_top; int count, i; dock = wDockCreate(scr, type, NULL); if (!dock_state) return dock; WMRetainPropList(dock_state); /* restore position */ value = WMGetFromPLDictionary(dock_state, dPosition); if (value) { if (!WMIsPLString(value)) { COMPLAIN("Position"); } else { if (sscanf(WMGetFromPLString(value), "%i,%i", &dock->x_pos, &dock->y_pos) != 2) COMPLAIN("Position"); /* check position sanity */ if (!onScreen(scr, dock->x_pos, dock->y_pos)) { int x = dock->x_pos; wScreenKeepInside(scr, &x, &dock->y_pos, ICON_SIZE, ICON_SIZE); } /* Is this needed any more? */ 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 { 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; dock->on_right_side = 1; } } } } /* restore lowered/raised state */ dock->lowered = 0; value = WMGetFromPLDictionary(dock_state, dLowered); if (value) { if (!WMIsPLString(value)) { COMPLAIN("Lowered"); } else { if (strcasecmp(WMGetFromPLString(value), "YES") == 0) dock->lowered = 1; } } /* restore collapsed state */ dock->collapsed = 0; value = WMGetFromPLDictionary(dock_state, dCollapsed); if (value) { if (!WMIsPLString(value)) { COMPLAIN("Collapsed"); } else { if (strcasecmp(WMGetFromPLString(value), "YES") == 0) dock->collapsed = 1; } } /* restore auto-collapsed state */ value = WMGetFromPLDictionary(dock_state, dAutoCollapse); if (value) { if (!WMIsPLString(value)) { COMPLAIN("AutoCollapse"); } else { if (strcasecmp(WMGetFromPLString(value), "YES") == 0) { dock->auto_collapse = 1; dock->collapsed = 1; } } } /* restore auto-raise/lower state */ value = WMGetFromPLDictionary(dock_state, dAutoRaiseLower); if (value) { if (!WMIsPLString(value)) { COMPLAIN("AutoRaiseLower"); } else { if (strcasecmp(WMGetFromPLString(value), "YES") == 0) dock->auto_raise_lower = 1; } } /* restore attract icons state */ dock->attract_icons = 0; value = WMGetFromPLDictionary(dock_state, dAutoAttractIcons); if (value) { if (!WMIsPLString(value)) { COMPLAIN("AutoAttractIcons"); } else { if (strcasecmp(WMGetFromPLString(value), "YES") == 0) dock->attract_icons = 1; } } /* application list */ { WMPropList *tmp; char buffer[64]; /* * When saving, it saves the dock state in * Applications and Applicationsnnn * * When loading, it will first try Applicationsnnn. * If it does not exist, use Applications as default. */ snprintf(buffer, sizeof(buffer), "Applications%i", scr->scr_height); tmp = WMCreatePLString(buffer); apps = WMGetFromPLDictionary(dock_state, tmp); WMReleasePropList(tmp); if (!apps) apps = WMGetFromPLDictionary(dock_state, dApplications); } if (!apps) goto finish; count = WMGetPropListItemCount(apps); if (count == 0) goto finish; old_top = dock->icon_array[0]; /* dock->icon_count is set to 1 when dock is created. * Since Clip is already restored, we want to keep it so for clip, * but for dock we may change the default top tile, so we set it to 0. */ if (type == WM_DOCK) dock->icon_count = 0; for (i = 0; i < count; i++) { if (dock->icon_count >= dock->max_icons) { wwarning(_("there are too many icons stored in dock. Ignoring what doesn't fit")); break; } value = WMGetFromPLArray(apps, i); aicon = restore_icon_state(scr, value, type, dock->icon_count); dock->icon_array[dock->icon_count] = aicon; if (aicon) { aicon->dock = dock; aicon->x_pos = dock->x_pos + (aicon->xindex * ICON_SIZE); aicon->y_pos = dock->y_pos + (aicon->yindex * ICON_SIZE); if (dock->lowered) ChangeStackingLevel(aicon->icon->core, WMNormalLevel); else ChangeStackingLevel(aicon->icon->core, WMDockLevel); wCoreConfigure(aicon->icon->core, aicon->x_pos, aicon->y_pos, 0, 0); if (!dock->collapsed) XMapWindow(dpy, aicon->icon->core->window); wRaiseFrame(aicon->icon->core); dock->icon_count++; } else if (dock->icon_count == 0 && type == WM_DOCK) { dock->icon_count++; } } /* if the first icon is not defined, use the default */ if (dock->icon_array[0] == NULL) { /* update default icon */ old_top->x_pos = dock->x_pos; old_top->y_pos = dock->y_pos; if (dock->lowered) ChangeStackingLevel(old_top->icon->core, WMNormalLevel); else ChangeStackingLevel(old_top->icon->core, WMDockLevel); dock->icon_array[0] = old_top; XMoveWindow(dpy, old_top->icon->core->window, dock->x_pos, dock->y_pos); /* we don't need to increment dock->icon_count here because it was * incremented in the loop above. */ } else if (old_top != dock->icon_array[0]) { if (old_top == scr->clip_icon) // TODO dande: understand the logic scr->clip_icon = dock->icon_array[0]; wAppIconDestroy(old_top); } finish: WMReleasePropList(dock_state); return dock; } void wDockLaunchWithState(WDock *dock, WAppIcon *btn, WSavedState *state) { if (btn && btn->command && !btn->running && !btn->launching) { btn->drop_launch = 0; btn->paste_launch = 0; btn->pid = execCommand(btn, btn->command, state); if (btn->pid > 0) { if (!btn->forced_dock && !btn->buggy_app) { btn->launching = 1; dockIconPaint(btn); } } } else { wfree(state); } } void wDockDoAutoLaunch(WDock *dock, int workspace) { WAppIcon *btn; WSavedState *state; int i; for (i = 0; i < dock->max_icons; i++) { btn = dock->icon_array[i]; if (!btn || !btn->auto_launch) continue; state = wmalloc(sizeof(WSavedState)); state->workspace = workspace; /* TODO: this is klugy and is very difficult to understand * what's going on. Try to clean up */ wDockLaunchWithState(dock, btn, state); } } #ifdef XDND /* was OFFIX */ static WDock *findDock(WScreen *scr, XEvent *event, int *icon_pos) { WDock *dock; int i; *icon_pos = -1; if ((dock = scr->dock) != NULL) { for (i = 0; i < dock->max_icons; i++) { if (dock->icon_array[i] && dock->icon_array[i]->icon->core->window == event->xclient.window) { *icon_pos = i; break; } } } if (*icon_pos < 0 && (dock = scr->workspaces[scr->current_workspace]->clip) != NULL) { for (i = 0; i < dock->max_icons; i++) { if (dock->icon_array[i] && dock->icon_array[i]->icon->core->window == event->xclient.window) { *icon_pos = i; break; } } } if (*icon_pos >= 0) return dock; return NULL; } int wDockReceiveDNDDrop(WScreen *scr, XEvent *event) { WDock *dock; WAppIcon *btn; int icon_pos; dock = findDock(scr, event, &icon_pos); if (!dock) return False; /* * Return True if the drop was on an application icon window. * In this case, let the ClientMessage handler redirect the * message to the app. */ if (dock->icon_array[icon_pos]->icon->icon_win != None) return True; if (dock->icon_array[icon_pos]->dnd_command != NULL) { scr->flags.dnd_data_convertion_status = 0; btn = dock->icon_array[icon_pos]; if (!btn->forced_dock) { btn->relaunching = btn->running; btn->running = 1; } if (btn->wm_instance || btn->wm_class) { WWindowAttributes attr; memset(&attr, 0, sizeof(WWindowAttributes)); wDefaultFillAttributes(btn->wm_instance, btn->wm_class, &attr, NULL, True); if (!attr.no_appicon) btn->launching = 1; else btn->running = 0; } btn->paste_launch = 0; btn->drop_launch = 1; scr->last_dock = dock; btn->pid = execCommand(btn, btn->dnd_command, NULL); if (btn->pid > 0) { dockIconPaint(btn); } else { btn->launching = 0; if (!btn->relaunching) btn->running = 0; } } return False; } #endif /* XDND */ Bool wDockAttachIcon(WDock *dock, WAppIcon *icon, int x, int y, Bool update_icon) { WWindow *wwin; Bool lupdate_icon = False; char *command = NULL; int index; icon->editing = 0; if (update_icon) lupdate_icon = True; if (icon->command == NULL) { /* If icon->owner exists, it means the application is running */ if (icon->icon->owner) { wwin = icon->icon->owner; command = GetCommandForWindow(wwin->client_win); } if (command) { icon->command = command; } else { /* icon->forced_dock = 1; */ if (dock->type != WM_CLIP || !icon->attracted) { icon->editing = 1; if (wInputDialog(dock->screen_ptr, _("Dock Icon"), _("Type the command used to launch the application"), &command)) { if (command && (command[0] == 0 || (command[0] == '-' && command[1] == 0))) { wfree(command); command = NULL; } icon->command = command; icon->editing = 0; } else { icon->editing = 0; if (command) wfree(command); /* If the target is the dock, reject the icon. If * the target is the clip, make it an attracted icon */ if (dock->type == WM_CLIP) { icon->attracted = 1; if (!icon->icon->shadowed) { icon->icon->shadowed = 1; lupdate_icon = True; } } else { return False; } } } } } for (index = 1; index < dock->max_icons; index++) if (dock->icon_array[index] == NULL) break; /* if (index == dock->max_icons) return; */ assert(index < dock->max_icons); dock->icon_array[index] = icon; icon->yindex = y; icon->xindex = x; icon->omnipresent = 0; icon->x_pos = dock->x_pos + x * ICON_SIZE; icon->y_pos = dock->y_pos + y * ICON_SIZE; dock->icon_count++; icon->running = 1; icon->launching = 0; icon->docked = 1; icon->dock = dock; icon->icon->core->descriptor.handle_mousedown = iconMouseDown; icon->icon->core->descriptor.handle_enternotify = clipEnterNotify; icon->icon->core->descriptor.handle_leavenotify = clipLeaveNotify; icon->icon->core->descriptor.parent_type = WCLASS_DOCK_ICON; icon->icon->core->descriptor.parent = icon; MoveInStackListUnder(dock->icon_array[index - 1]->icon->core, icon->icon->core); wAppIconMove(icon, icon->x_pos, icon->y_pos); /* * Update icon pixmap, RImage doesn't change, * so call wIconUpdate is not needed */ if (lupdate_icon) update_icon_pixmap(icon->icon); /* Paint it */ wAppIconPaint(icon); /* Save it */ save_appicon(icon, True); if (wPreferences.auto_arrange_icons) wArrangeIcons(dock->screen_ptr, True); #ifdef XDND /* was OFFIX */ if (icon->command && !icon->dnd_command) { int len = strlen(icon->command) + 8; icon->dnd_command = wmalloc(len); snprintf(icon->dnd_command, len, "%s %%d", icon->command); } #endif if (icon->command && !icon->paste_command) { int len = strlen(icon->command) + 8; icon->paste_command = wmalloc(len); snprintf(icon->paste_command, len, "%s %%s", icon->command); } return True; } void wDockReattachIcon(WDock *dock, WAppIcon *icon, int x, int y) { int index; for (index = 1; index < dock->max_icons; index++) { if (dock->icon_array[index] == icon) break; } assert(index < dock->max_icons); icon->yindex = y; icon->xindex = x; icon->x_pos = dock->x_pos + x * ICON_SIZE; icon->y_pos = dock->y_pos + y * ICON_SIZE; } Bool wDockMoveIconBetweenDocks(WDock *src, WDock *dest, WAppIcon *icon, int x, int y) { WWindow *wwin; char *command = NULL; int index; Bool update_icon = False; if (src == dest) return True; /* No move needed, we're already there */ if (dest == NULL) return False; /* * For the moment we can't do this if we move icons in Clip from one * workspace to other, because if we move two or more icons without * command, the dialog box will not be able to tell us to which of the * moved icons it applies. -Dan */ if ((dest->type == WM_DOCK /*|| dest->keep_attracted */ ) && icon->command == NULL) { /* If icon->owner exists, it means the application is running */ if (icon->icon->owner) { wwin = icon->icon->owner; command = GetCommandForWindow(wwin->client_win); } if (command) { icon->command = command; } else { icon->editing = 1; /* icon->forced_dock = 1; */ if (wInputDialog(src->screen_ptr, _("Dock Icon"), _("Type the command used to launch the application"), &command)) { if (command && (command[0] == 0 || (command[0] == '-' && command[1] == 0))) { wfree(command); command = NULL; } icon->command = command; } else { icon->editing = 0; if (command) wfree(command); return False; } icon->editing = 0; } } if (dest->type == WM_DOCK || dest->type == WM_DRAWER) wClipMakeIconOmnipresent(icon, False); for (index = 1; index < src->max_icons; index++) { if (src->icon_array[index] == icon) break; } assert(index < src->max_icons); src->icon_array[index] = NULL; src->icon_count--; for (index = 1; index < dest->max_icons; index++) { if (dest->icon_array[index] == NULL) break; } assert(index < dest->max_icons); dest->icon_array[index] = icon; icon->dock = dest; /* deselect the icon */ if (icon->icon->selected) wIconSelect(icon->icon); icon->icon->core->descriptor.handle_enternotify = clipEnterNotify; icon->icon->core->descriptor.handle_leavenotify = clipLeaveNotify; /* set it to be kept when moving to dock. * Unless the icon does not have a command set */ if (icon->command && (dest->type == WM_DOCK || dest->type == WM_DRAWER)) { icon->attracted = 0; if (icon->icon->shadowed) { icon->icon->shadowed = 0; update_icon = True; } save_appicon(icon, True); } if (src->auto_collapse || src->auto_raise_lower) clipLeave(src); icon->yindex = y; icon->xindex = x; icon->x_pos = dest->x_pos + x * ICON_SIZE; icon->y_pos = dest->y_pos + y * ICON_SIZE; dest->icon_count++; MoveInStackListUnder(dest->icon_array[index - 1]->icon->core, icon->icon->core); /* * Update icon pixmap, RImage doesn't change, * so call wIconUpdate is not needed */ if (update_icon) update_icon_pixmap(icon->icon); /* Paint it */ wAppIconPaint(icon); return True; } void wDockDetach(WDock *dock, WAppIcon *icon) { int index; Bool update_icon = False; /* make the settings panel be closed */ if (icon->panel) DestroyDockAppSettingsPanel(icon->panel); /* This must be called before icon->dock is set to NULL. * Don't move it. -Dan */ wClipMakeIconOmnipresent(icon, False); icon->docked = 0; icon->dock = NULL; icon->attracted = 0; icon->auto_launch = 0; if (icon->icon->shadowed) { icon->icon->shadowed = 0; update_icon = True; } /* deselect the icon */ if (icon->icon->selected) wIconSelect(icon->icon); if (icon->command) { wfree(icon->command); icon->command = NULL; } #ifdef XDND /* was OFFIX */ if (icon->dnd_command) { wfree(icon->dnd_command); icon->dnd_command = NULL; } #endif if (icon->paste_command) { wfree(icon->paste_command); icon->paste_command = NULL; } for (index = 1; index < dock->max_icons; index++) if (dock->icon_array[index] == icon) break; assert(index < dock->max_icons); dock->icon_array[index] = NULL; icon->yindex = -1; icon->xindex = -1; dock->icon_count--; /* if the dock is not attached to an application or * the application did not set the appropriate hints yet, * destroy the icon */ if (!icon->running || !wApplicationOf(icon->main_window)) { wAppIconDestroy(icon); } else { icon->icon->core->descriptor.handle_mousedown = appIconMouseDown; icon->icon->core->descriptor.handle_enternotify = NULL; icon->icon->core->descriptor.handle_leavenotify = NULL; icon->icon->core->descriptor.parent_type = WCLASS_APPICON; icon->icon->core->descriptor.parent = icon; ChangeStackingLevel(icon->icon->core, NORMAL_ICON_LEVEL); /* * Update icon pixmap, RImage doesn't change, * so call wIconUpdate is not needed */ if (update_icon) update_icon_pixmap(icon->icon); /* Paint it */ wAppIconPaint(icon); if (wPreferences.auto_arrange_icons) wArrangeIcons(dock->screen_ptr, True); } if (dock->auto_collapse || dock->auto_raise_lower) clipLeave(dock); } /* * returns the closest Dock slot index for the passed * coordinates. * * Returns False if icon can't be docked. * * Note: this function should NEVER alter ret_x or ret_y, unless it will * return True. -Dan */ /* Redocking == true means either icon->dock == dock (normal case) * or we are called from handleDockMove for a drawer */ Bool wDockSnapIcon(WDock *dock, WAppIcon *icon, int req_x, int req_y, int *ret_x, int *ret_y, int redocking) { WScreen *scr = dock->screen_ptr; int dx, dy; int ex_x, ex_y; int i, offset = ICON_SIZE / 2; WAppIcon *aicon = NULL; WAppIcon *nicon = NULL; if (wPreferences.flags.noupdates) return False; dx = dock->x_pos; dy = dock->y_pos; /* if the dock is full */ if (!redocking && (dock->icon_count >= dock->max_icons)) return False; /* exact position */ if (req_y < dy) ex_y = (req_y - offset - dy) / ICON_SIZE; else ex_y = (req_y + offset - dy) / ICON_SIZE; if (req_x < dx) ex_x = (req_x - offset - dx) / ICON_SIZE; else ex_x = (req_x + offset - dx) / ICON_SIZE; /* check if the icon is outside the screen boundaries */ if (!onScreen(scr, dx + ex_x * ICON_SIZE, dy + ex_y * ICON_SIZE)) return False; switch (dock->type) { case WM_DOCK: /* We can return False right away if * - we do not come from this dock (which is a WM_DOCK), * - we are not right over it, and * - we are not the main tile of a drawer. * In the latter case, we are called from handleDockMove. */ if (icon->dock != dock && ex_x != 0 && !(icon->dock && icon->dock->type == WM_DRAWER && icon == icon->dock->icon_array[0])) return False; if (!redocking && ex_x != 0) return False; if (getDrawer(scr, ex_y)) /* Return false so that the drawer gets it. */ return False; aicon = NULL; for (i = 0; i < dock->max_icons; i++) { nicon = dock->icon_array[i]; if (nicon && nicon->yindex == ex_y) { aicon = nicon; break; } } if (redocking) { int sig, done, closest; /* Possible cases when redocking: * * icon dragged out of range of any slot -> false * icon dragged on a drawer -> false (to open the drawer) * icon dragged to range of free slot * icon dragged to range of same slot * icon dragged to range of different icon */ if (abs(ex_x) > DOCK_DETTACH_THRESHOLD) return False; if (aicon == icon || !aicon) { *ret_x = 0; *ret_y = ex_y; return True; } /* start looking at the upper slot or lower? */ if (ex_y * ICON_SIZE < (req_y + offset - dy)) sig = 1; else sig = -1; done = 0; /* look for closest free slot */ for (i = 0; i < (DOCK_DETTACH_THRESHOLD + 1) * 2 && !done; i++) { int j; done = 1; closest = sig * (i / 2) + ex_y; /* check if this slot is fully on the screen and not used */ if (onScreen(scr, dx, dy + closest * ICON_SIZE)) { for (j = 0; j < dock->max_icons; j++) { if (dock->icon_array[j] && dock->icon_array[j]->yindex == closest) { /* slot is used by someone else */ if (dock->icon_array[j] != icon) done = 0; break; } } /* slot is used by a drawer */ done = done && !getDrawer(scr, closest); } else // !onScreen done = 0; sig = -sig; } if (done && ((ex_y >= closest && ex_y - closest < DOCK_DETTACH_THRESHOLD + 1) || (ex_y < closest && closest - ex_y <= DOCK_DETTACH_THRESHOLD + 1))) { *ret_x = 0; *ret_y = closest; return True; } } else { /* !redocking */ /* if slot is free and the icon is close enough, return it */ if (!aicon && ex_x == 0) { *ret_x = 0; *ret_y = ex_y; return True; } } break; case WM_CLIP: { int neighbours = 0; int start, stop, k; start = icon->omnipresent ? 0 : scr->current_workspace; stop = icon->omnipresent ? scr->workspace_count : start + 1; aicon = NULL; for (k = start; k < stop; k++) { WDock *tmp = scr->workspaces[k]->clip; if (!tmp) continue; for (i = 0; i < tmp->max_icons; i++) { nicon = tmp->icon_array[i]; if (nicon && nicon->xindex == ex_x && nicon->yindex == ex_y) { aicon = nicon; break; } } if (aicon) break; } for (k = start; k < stop; k++) { WDock *tmp = scr->workspaces[k]->clip; if (!tmp) continue; for (i = 0; i < tmp->max_icons; i++) { nicon = tmp->icon_array[i]; if (nicon && nicon != icon && /* Icon can't be it's own neighbour */ (abs(nicon->xindex - ex_x) <= CLIP_ATTACH_VICINITY && abs(nicon->yindex - ex_y) <= CLIP_ATTACH_VICINITY)) { neighbours = 1; break; } } if (neighbours) break; } if (neighbours && (aicon == NULL || (redocking && aicon == icon))) { *ret_x = ex_x; *ret_y = ex_y; return True; } break; } case WM_DRAWER: { WAppIcon *aicons_to_shift[ dock->icon_count ]; int index_of_hole, j; if (ex_y != 0 || abs(ex_x) - dock->icon_count > DOCK_DETTACH_THRESHOLD || (ex_x < 0 && !dock->on_right_side) || (ex_x > 0 && dock->on_right_side)) { return False; } if (ex_x == 0) ex_x = (dock->on_right_side ? -1 : 1); /* "Reduce" ex_x but keep its sign */ if (redocking) { if (abs(ex_x) > dock->icon_count - 1) /* minus 1: do not take icon_array[0] into account */ ex_x = ex_x * (dock->icon_count - 1) / abs(ex_x); /* don't use *= ! */ } else { if (abs(ex_x) > dock->icon_count) ex_x = ex_x * dock->icon_count / abs(ex_x); } index_of_hole = indexOfHole(dock, icon, redocking); /* Find the appicons between where icon was (index_of_hole) and where * it wants to be (ex_x) and slide them. */ j = 0; for (i = 1; i < dock->max_icons; i++) { if ((aicon = dock->icon_array[ i ]) && aicon != icon && ((ex_x <= aicon->xindex && aicon->xindex < index_of_hole) || (index_of_hole < aicon->xindex && aicon->xindex <= ex_x))) aicons_to_shift[ j++ ] = aicon; } assert(j == abs(ex_x - index_of_hole)); wSlideAppicons(aicons_to_shift, j, (index_of_hole < ex_x)); *ret_x = ex_x; *ret_y = ex_y; return True; } } return False; } static int onScreen(WScreen *scr, int x, int y) { WMRect rect; int flags; rect.pos.x = x; rect.pos.y = y; rect.size.width = rect.size.height = ICON_SIZE; wGetRectPlacementInfo(scr, rect, &flags); return !(flags & (XFLAG_DEAD | XFLAG_PARTIAL)); } /* * returns true if it can find a free slot in the dock, * in which case it changes x_pos and y_pos accordingly. * Else returns false. */ Bool wDockFindFreeSlot(WDock *dock, int *x_pos, int *y_pos) { WScreen *scr = dock->screen_ptr; WAppIcon *btn; WAppIconChain *chain; unsigned char *slot_map; int mwidth; int r; int x, y; int i, done = False; int corner; int sx = 0, ex = scr->scr_width, ey = scr->scr_height; int extra_count = 0; if (dock->type == WM_DRAWER) { if (dock->icon_count >= dock->max_icons) { /* drawer is full */ return False; } *x_pos = dock->icon_count * (dock->on_right_side ? -1 : 1); *y_pos = 0; return True; } if (dock->type == WM_CLIP && dock != scr->workspaces[scr->current_workspace]->clip) extra_count = scr->global_icon_count; /* if the dock is full */ if (dock->icon_count + extra_count >= dock->max_icons) return False; if (!wPreferences.flags.nodock && scr->dock) { if (scr->dock->on_right_side) ex -= ICON_SIZE + DOCK_EXTRA_SPACE; else sx += ICON_SIZE + DOCK_EXTRA_SPACE; } if (ex < dock->x_pos) ex = dock->x_pos; if (sx > dock->x_pos + ICON_SIZE) sx = dock->x_pos + ICON_SIZE; #define C_NONE 0 #define C_NW 1 #define C_NE 2 #define C_SW 3 #define C_SE 4 /* check if clip is in a corner */ if (dock->type == WM_CLIP) { if (dock->x_pos < 1 && dock->y_pos < 1) corner = C_NE; else if (dock->x_pos < 1 && dock->y_pos >= (ey - ICON_SIZE)) corner = C_SE; else if (dock->x_pos >= (ex - ICON_SIZE) && dock->y_pos >= (ey - ICON_SIZE)) corner = C_SW; else if (dock->x_pos >= (ex - ICON_SIZE) && dock->y_pos < 1) corner = C_NW; else corner = C_NONE; } else { corner = C_NONE; } /* If the clip is in the corner, use only slots that are in the border * of the screen */ if (corner != C_NONE) { char *hmap, *vmap; int hcount, vcount; hcount = WMIN(dock->max_icons, scr->scr_width / ICON_SIZE); vcount = WMIN(dock->max_icons, scr->scr_height / ICON_SIZE); hmap = wmalloc(hcount + 1); vmap = wmalloc(vcount + 1); /* mark used positions */ switch (corner) { case C_NE: for (i = 0; i < dock->max_icons; i++) { btn = dock->icon_array[i]; if (!btn) continue; if (btn->xindex == 0 && btn->yindex > 0 && btn->yindex < vcount) vmap[btn->yindex] = 1; else if (btn->yindex == 0 && btn->xindex > 0 && btn->xindex < hcount) hmap[btn->xindex] = 1; } for (chain = scr->global_icons; chain != NULL; chain = chain->next) { btn = chain->aicon; if (btn->xindex == 0 && btn->yindex > 0 && btn->yindex < vcount) vmap[btn->yindex] = 1; else if (btn->yindex == 0 && btn->xindex > 0 && btn->xindex < hcount) hmap[btn->xindex] = 1; } break; case C_NW: for (i = 0; i < dock->max_icons; i++) { btn = dock->icon_array[i]; if (!btn) continue; if (btn->xindex == 0 && btn->yindex > 0 && btn->yindex < vcount) vmap[btn->yindex] = 1; else if (btn->yindex == 0 && btn->xindex < 0 && btn->xindex > -hcount) hmap[-btn->xindex] = 1; } for (chain = scr->global_icons; chain != NULL; chain = chain->next) { btn = chain->aicon; if (btn->xindex == 0 && btn->yindex > 0 && btn->yindex < vcount) vmap[btn->yindex] = 1; else if (btn->yindex == 0 && btn->xindex < 0 && btn->xindex > -hcount) hmap[-btn->xindex] = 1; } break; case C_SE: for (i = 0; i < dock->max_icons; i++) { btn = dock->icon_array[i]; if (!btn) continue; if (btn->xindex == 0 && btn->yindex < 0 && btn->yindex > -vcount) vmap[-btn->yindex] = 1; else if (btn->yindex == 0 && btn->xindex > 0 && btn->xindex < hcount) hmap[btn->xindex] = 1; } for (chain = scr->global_icons; chain != NULL; chain = chain->next) { btn = chain->aicon; if (btn->xindex == 0 && btn->yindex < 0 && btn->yindex > -vcount) vmap[-btn->yindex] = 1; else if (btn->yindex == 0 && btn->xindex > 0 && btn->xindex < hcount) hmap[btn->xindex] = 1; } break; case C_SW: default: for (i = 0; i < dock->max_icons; i++) { btn = dock->icon_array[i]; if (!btn) continue; if (btn->xindex == 0 && btn->yindex < 0 && btn->yindex > -vcount) vmap[-btn->yindex] = 1; else if (btn->yindex == 0 && btn->xindex < 0 && btn->xindex > -hcount) hmap[-btn->xindex] = 1; } for (chain = scr->global_icons; chain != NULL; chain = chain->next) { btn = chain->aicon; if (btn->xindex == 0 && btn->yindex < 0 && btn->yindex > -vcount) vmap[-btn->yindex] = 1; else if (btn->yindex == 0 && btn->xindex < 0 && btn->xindex > -hcount) hmap[-btn->xindex] = 1; } } x = 0; y = 0; done = 0; /* search a vacant slot */ for (i = 1; i < WMAX(vcount, hcount); i++) { if (i < vcount && vmap[i] == 0) { /* found a slot */ x = 0; y = i; done = 1; break; } else if (i < hcount && hmap[i] == 0) { /* found a slot */ x = i; y = 0; done = 1; break; } } wfree(vmap); wfree(hmap); /* If found a slot, translate and return */ if (done) { if (corner == C_NW || corner == C_NE) *y_pos = y; else *y_pos = -y; if (corner == C_NE || corner == C_SE) *x_pos = x; else *x_pos = -x; return True; } /* else, try to find a slot somewhere else */ } /* a map of mwidth x mwidth would be enough if we allowed icons to be * placed outside of screen */ mwidth = (int)ceil(sqrt(dock->max_icons)); /* In the worst case (the clip is in the corner of the screen), * the amount of icons that fit in the clip is smaller. * Double the map to get a safe value. */ mwidth += mwidth; r = (mwidth - 1) / 2; slot_map = wmalloc(mwidth * mwidth); #define XY2OFS(x,y) (WMAX(abs(x),abs(y)) > r) ? 0 : (((y)+r)*(mwidth)+(x)+r) /* mark used slots in the map. If the slot falls outside the map * (for example, when all icons are placed in line), ignore them. */ for (i = 0; i < dock->max_icons; i++) { btn = dock->icon_array[i]; if (btn) slot_map[XY2OFS(btn->xindex, btn->yindex)] = 1; } for (chain = scr->global_icons; chain != NULL; chain = chain->next) slot_map[XY2OFS(chain->aicon->xindex, chain->aicon->yindex)] = 1; /* Find closest slot from the center that is free by scanning the * map from the center to outward in circular passes. * This will not result in a neat layout, but will be optimal * in the sense that there will not be holes left. */ done = 0; for (i = 1; i <= r && !done; i++) { int tx, ty; /* top and bottom parts of the ring */ for (x = -i; x <= i && !done; x++) { tx = dock->x_pos + x * ICON_SIZE; y = -i; ty = dock->y_pos + y * ICON_SIZE; if (slot_map[XY2OFS(x, y)] == 0 && onScreen(scr, tx, ty)) { *x_pos = x; *y_pos = y; done = 1; break; } y = i; ty = dock->y_pos + y * ICON_SIZE; if (slot_map[XY2OFS(x, y)] == 0 && onScreen(scr, tx, ty)) { *x_pos = x; *y_pos = y; done = 1; break; } } /* left and right parts of the ring */ for (y = -i + 1; y <= i - 1; y++) { ty = dock->y_pos + y * ICON_SIZE; x = -i; tx = dock->x_pos + x * ICON_SIZE; if (slot_map[XY2OFS(x, y)] == 0 && onScreen(scr, tx, ty)) { *x_pos = x; *y_pos = y; done = 1; break; } x = i; tx = dock->x_pos + x * ICON_SIZE; if (slot_map[XY2OFS(x, y)] == 0 && onScreen(scr, tx, ty)) { *x_pos = x; *y_pos = y; done = 1; break; } } } wfree(slot_map); #undef XY2OFS return done; } static void moveDock(WDock *dock, int new_x, int new_y) { WAppIcon *btn; WDrawerChain *dc; int i; if (dock->type == WM_DOCK) { for (dc = dock->screen_ptr->drawers; dc != NULL; dc = dc->next) moveDock(dc->adrawer, new_x, dc->adrawer->y_pos - dock->y_pos + new_y); } dock->x_pos = new_x; dock->y_pos = new_y; for (i = 0; i < dock->max_icons; i++) { btn = dock->icon_array[i]; if (btn) { btn->x_pos = new_x + btn->xindex * ICON_SIZE; btn->y_pos = new_y + btn->yindex * ICON_SIZE; XMoveWindow(dpy, btn->icon->core->window, btn->x_pos, btn->y_pos); } } } static void swapDock(WDock *dock) { WScreen *scr = dock->screen_ptr; WAppIcon *btn; int x, i; if (dock->on_right_side) x = dock->x_pos = scr->scr_width - ICON_SIZE - DOCK_EXTRA_SPACE; else x = dock->x_pos = DOCK_EXTRA_SPACE; swapDrawers(scr, dock->on_right_side, x); for (i = 0; i < dock->max_icons; i++) { btn = dock->icon_array[i]; if (btn) { btn->x_pos = x; XMoveWindow(dpy, btn->icon->core->window, btn->x_pos, btn->y_pos); } } wScreenUpdateUsableArea(scr); } static pid_t execCommand(WAppIcon *btn, const char *command, WSavedState *state) { WScreen *scr = btn->icon->core->screen_ptr; pid_t pid; char **argv; int argc; char *cmdline; cmdline = ExpandOptions(scr, command); if (scr->flags.dnd_data_convertion_status || !cmdline) { if (cmdline) wfree(cmdline); if (state) wfree(state); return 0; } wtokensplit(cmdline, &argv, &argc); if (!argc) { if (cmdline) wfree(cmdline); if (state) wfree(state); return 0; } if ((pid = fork()) == 0) { char **args; int i; SetupEnvironment(scr); #ifdef HAVE_SETSID setsid(); #endif args = malloc(sizeof(char *) * (argc + 1)); if (!args) exit(111); for (i = 0; i < argc; i++) args[i] = argv[i]; args[argc] = NULL; execvp(argv[0], args); exit(111); } wtokenfree(argv, argc); if (pid > 0) { if (!state) { state = wmalloc(sizeof(WSavedState)); state->hidden = -1; state->miniaturized = -1; state->shaded = -1; if (btn->dock == scr->dock || btn->dock->type == WM_DRAWER || btn->omnipresent) state->workspace = -1; else state->workspace = scr->current_workspace; } wWindowAddSavedState(btn->wm_instance, btn->wm_class, cmdline, pid, state); wAddDeathHandler(pid, (WDeathHandler *) trackDeadProcess, btn->dock); } else if (state) { wfree(state); } wfree(cmdline); return pid; } void wDockHideIcons(WDock *dock) { int i; if (dock == NULL) return; for (i = 1; i < dock->max_icons; i++) { if (dock->icon_array[i]) XUnmapWindow(dpy, dock->icon_array[i]->icon->core->window); } dock->mapped = 0; dockIconPaint(dock->icon_array[0]); } void wDockShowIcons(WDock *dock) { int i; WAppIcon *btn; if (dock == NULL) return; btn = dock->icon_array[0]; moveDock(dock, btn->x_pos, btn->y_pos); /* Deleting any change in stacking level, this function is now only about mapping icons */ if (!dock->collapsed) { for (i = 1; i < dock->max_icons; i++) { if (dock->icon_array[i]) XMapWindow(dpy, dock->icon_array[i]->icon->core->window); } } dock->mapped = 1; dockIconPaint(btn); } void wDockLower(WDock *dock) { int i; WDrawerChain *dc; if (dock->type == WM_DOCK) { for (dc = dock->screen_ptr->drawers; dc != NULL; dc = dc->next) wDockLower(dc->adrawer); } for (i = 0; i < dock->max_icons; i++) { if (dock->icon_array[i]) wLowerFrame(dock->icon_array[i]->icon->core); } } void wDockRaise(WDock *dock) { int i; WDrawerChain *dc; for (i = dock->max_icons - 1; i >= 0; i--) { if (dock->icon_array[i]) wRaiseFrame(dock->icon_array[i]->icon->core); } if (dock->type == WM_DOCK) { for (dc = dock->screen_ptr->drawers; dc != NULL; dc = dc->next) wDockRaise(dc->adrawer); } } void wDockRaiseLower(WDock *dock) { if (!dock->icon_array[0]->icon->core->stacking->above || (dock->icon_array[0]->icon->core->stacking->window_level != dock->icon_array[0]->icon->core->stacking->above->stacking->window_level)) wDockLower(dock); else wDockRaise(dock); } void wDockFinishLaunch(WDock *dock, WAppIcon *icon) { icon->launching = 0; icon->relaunching = 0; dockIconPaint(icon); } WAppIcon *wDockFindIconForWindow(WDock *dock, Window window) { WAppIcon *icon; int i; for (i = 0; i < dock->max_icons; i++) { icon = dock->icon_array[i]; if (icon && icon->main_window == window) return icon; } return NULL; } void wDockTrackWindowLaunch(WDock *dock, Window window) { WAppIcon *icon; char *wm_class, *wm_instance; int i; Bool firstPass = True; Bool found = False; char *command = NULL; if (!PropGetWMClass(window, &wm_class, &wm_instance) || (!wm_class && !wm_instance)) return; command = GetCommandForWindow(window); retry: for (i = 0; i < dock->max_icons; i++) { icon = dock->icon_array[i]; if (!icon) continue; /* app is already attached to icon */ if (icon->main_window == window) { found = True; break; } if ((icon->wm_instance || icon->wm_class) && (icon->launching || !icon->running)) { if (icon->wm_instance && wm_instance && strcmp(icon->wm_instance, wm_instance) != 0) continue; if (icon->wm_class && wm_class && strcmp(icon->wm_class, wm_class) != 0) continue; if (firstPass && command && strcmp(icon->command, command) != 0) continue; if (!icon->relaunching) { WApplication *wapp; /* Possibly an application that was docked with dockit, * but the user did not update WMState to indicate that * it was docked by force */ wapp = wApplicationOf(window); if (!wapp) { icon->forced_dock = 1; icon->running = 0; } if (!icon->forced_dock) icon->main_window = window; } found = True; if (!wPreferences.no_animations && !icon->launching && !dock->screen_ptr->flags.startup && !dock->collapsed) { WAppIcon *aicon; int x0, y0; icon->launching = 1; dockIconPaint(icon); aicon = wAppIconCreateForDock(dock->screen_ptr, NULL, wm_instance, wm_class, TILE_NORMAL); /* XXX: can: aicon->icon == NULL ? */ PlaceIcon(dock->screen_ptr, &x0, &y0, wGetHeadForWindow(aicon->icon->owner)); wAppIconMove(aicon, x0, y0); /* Should this always be lowered? -Dan */ if (dock->lowered) wLowerFrame(aicon->icon->core); XMapWindow(dpy, aicon->icon->core->window); aicon->launching = 1; wAppIconPaint(aicon); SlideWindow(aicon->icon->core->window, x0, y0, icon->x_pos, icon->y_pos); XUnmapWindow(dpy, aicon->icon->core->window); wAppIconDestroy(aicon); } wDockFinishLaunch(dock, icon); break; } } if (firstPass && !found) { firstPass = False; goto retry; } if (command) wfree(command); if (wm_class) free(wm_class); if (wm_instance) free(wm_instance); } void wClipUpdateForWorkspaceChange(WScreen *scr, int workspace) { if (!wPreferences.flags.noclip) { scr->clip_icon->dock = scr->workspaces[workspace]->clip; if (scr->current_workspace != workspace) { WDock *old_clip = scr->workspaces[scr->current_workspace]->clip; WAppIconChain *chain = scr->global_icons; while (chain) { wDockMoveIconBetweenDocks(chain->aicon->dock, scr->workspaces[workspace]->clip, chain->aicon, chain->aicon->xindex, chain->aicon->yindex); if (scr->workspaces[workspace]->clip->collapsed) XUnmapWindow(dpy, chain->aicon->icon->core->window); chain = chain->next; } wDockHideIcons(old_clip); if (old_clip->auto_raise_lower) { if (old_clip->auto_raise_magic) { WMDeleteTimerHandler(old_clip->auto_raise_magic); old_clip->auto_raise_magic = NULL; } wDockLower(old_clip); } if (old_clip->auto_collapse) { if (old_clip->auto_expand_magic) { WMDeleteTimerHandler(old_clip->auto_expand_magic); old_clip->auto_expand_magic = NULL; } old_clip->collapsed = 1; } wDockShowIcons(scr->workspaces[workspace]->clip); } } } static void trackDeadProcess(pid_t pid, unsigned char status, WDock *dock) { WAppIcon *icon; int i; for (i = 0; i < dock->max_icons; i++) { icon = dock->icon_array[i]; if (!icon) continue; if (icon->launching && icon->pid == pid) { if (!icon->relaunching) { icon->running = 0; icon->main_window = None; } wDockFinishLaunch(dock, icon); icon->pid = 0; if (status == 111) { char msg[PATH_MAX]; char *cmd; #ifdef XDND if (icon->drop_launch) cmd = icon->dnd_command; else #endif if (icon->paste_launch) cmd = icon->paste_command; else cmd = icon->command; snprintf(msg, sizeof(msg), _("Could not execute command \"%s\""), cmd); wMessageDialog(dock->screen_ptr, _("Error"), msg, _("OK"), NULL, NULL); } break; } } } /* This function is called when the dock switches state between * "normal" (including auto-raise/lower) and "keep on top". It is * therefore clearly distinct from wDockLower/Raise, which are called * each time a not-kept-on-top dock is lowered/raised. */ static void toggleLowered(WDock *dock) { WAppIcon *tmp; WDrawerChain *dc; int newlevel, i; if (!dock->lowered) { newlevel = WMNormalLevel; dock->lowered = 1; } else { newlevel = WMDockLevel; dock->lowered = 0; } for (i = 0; i < dock->max_icons; i++) { tmp = dock->icon_array[i]; if (!tmp) continue; ChangeStackingLevel(tmp->icon->core, newlevel); /* When the dock is no longer "on top", explicitly lower it as well. * It saves some CPU cycles (probably) to do it ourselves here * rather than calling wDockLower at the end of toggleLowered */ if (dock->lowered) wLowerFrame(tmp->icon->core); } if (dock->type == WM_DOCK) { for (dc = dock->screen_ptr->drawers; dc != NULL; dc = dc->next) { toggleLowered(dc->adrawer); } wScreenUpdateUsableArea(dock->screen_ptr); } } static void toggleCollapsed(WDock *dock) { if (dock->collapsed) { dock->collapsed = 0; wDockShowIcons(dock); } else { dock->collapsed = 1; wDockHideIcons(dock); } } static void openDockMenu(WDock *dock, WAppIcon *aicon, XEvent *event) { WScreen *scr = dock->screen_ptr; WObjDescriptor *desc; WMenuEntry *entry; WApplication *wapp = NULL; int index = 0; int x_pos; int n_selected; int appIsRunning = aicon->running && aicon->icon && aicon->icon->owner; if (dock->type == WM_DOCK) { /* Dock position menu */ updateDockPositionMenu(scr->dock_pos_menu, dock); dock->menu->flags.realized = 0; if (!wPreferences.flags.nodrawer) { /* add a drawer */ entry = dock->menu->entries[++index]; entry->clientdata = aicon; wMenuSetEnabled(dock->menu, index, True); } } else { /* clip/drawer options */ if (scr->clip_options) updateClipOptionsMenu(scr->clip_options, dock); n_selected = numberOfSelectedIcons(dock); if (dock->type == WM_CLIP) { /* Rename Workspace */ entry = dock->menu->entries[++index]; if (aicon == scr->clip_icon) { entry->callback = renameCallback; entry->clientdata = dock; entry->flags.indicator = 0; entry->text = _("Rename Workspace"); } else { entry->callback = omnipresentCallback; entry->clientdata = aicon; if (n_selected > 0) { entry->flags.indicator = 0; entry->text = _("Toggle Omnipresent"); } else { entry->flags.indicator = 1; entry->flags.indicator_on = aicon->omnipresent; entry->flags.indicator_type = MI_CHECK; entry->text = _("Omnipresent"); } } } /* select/unselect icon */ entry = dock->menu->entries[++index]; entry->clientdata = aicon; entry->flags.indicator_on = aicon->icon->selected; wMenuSetEnabled(dock->menu, index, aicon != scr->clip_icon && !wIsADrawer(scr, aicon)); /* select/unselect all icons */ entry = dock->menu->entries[++index]; entry->clientdata = aicon; if (n_selected > 0) entry->text = _("Unselect All Icons"); else entry->text = _("Select All Icons"); wMenuSetEnabled(dock->menu, index, dock->icon_count > 1); /* keep icon(s) */ entry = dock->menu->entries[++index]; entry->clientdata = aicon; if (n_selected > 1) entry->text = _("Keep Icons"); else entry->text = _("Keep Icon"); wMenuSetEnabled(dock->menu, index, dock->icon_count > 1); if (dock->type == WM_CLIP) { /* this is the workspace submenu part */ entry = dock->menu->entries[++index]; if (n_selected > 1) entry->text = _("Move Icons To"); else entry->text = _("Move Icon To"); if (scr->clip_submenu) updateWorkspaceMenu(scr->clip_submenu, aicon); wMenuSetEnabled(dock->menu, index, !aicon->omnipresent); } /* remove icon(s) */ entry = dock->menu->entries[++index]; entry->clientdata = aicon; if (n_selected > 1) entry->text = _("Remove Icons"); else entry->text = _("Remove Icon"); wMenuSetEnabled(dock->menu, index, dock->icon_count > 1); /* attract icon(s) */ entry = dock->menu->entries[++index]; entry->clientdata = aicon; dock->menu->flags.realized = 0; wMenuRealize(dock->menu); } if (aicon->icon->owner) wapp = wApplicationOf(aicon->icon->owner->main_window); else wapp = NULL; /* launch */ entry = dock->menu->entries[++index]; entry->clientdata = aicon; wMenuSetEnabled(dock->menu, index, aicon->command != NULL); /* unhide here */ entry = dock->menu->entries[++index]; entry->clientdata = aicon; if (wapp && wapp->flags.hidden) entry->text = _("Unhide Here"); else entry->text = _("Bring Here"); wMenuSetEnabled(dock->menu, index, appIsRunning); /* hide */ entry = dock->menu->entries[++index]; entry->clientdata = aicon; if (wapp && wapp->flags.hidden) entry->text = _("Unhide"); else entry->text = _("Hide"); wMenuSetEnabled(dock->menu, index, appIsRunning); /* settings */ entry = dock->menu->entries[++index]; entry->clientdata = aicon; wMenuSetEnabled(dock->menu, index, !aicon->editing && !wPreferences.flags.noupdates); /* kill or remove drawer */ entry = dock->menu->entries[++index]; entry->clientdata = aicon; if (wIsADrawer(scr, aicon)) { entry->callback = removeDrawerCallback; entry->text = _("Remove drawer"); wMenuSetEnabled(dock->menu, index, True); } else { entry->callback = killCallback; entry->text = _("Kill"); wMenuSetEnabled(dock->menu, index, appIsRunning); } if (!dock->menu->flags.realized) wMenuRealize(dock->menu); if (dock->type == WM_CLIP || dock->type == WM_DRAWER) { /*x_pos = event->xbutton.x_root+2; */ x_pos = event->xbutton.x_root - dock->menu->frame->core->width / 2 - 1; if (x_pos < 0) { x_pos = 0; } else if (x_pos + dock->menu->frame->core->width > scr->scr_width - 2) { x_pos = scr->scr_width - dock->menu->frame->core->width - 4; } } else { x_pos = dock->on_right_side ? scr->scr_width - dock->menu->frame->core->width - 3 : 0; } wMenuMapAt(dock->menu, x_pos, event->xbutton.y_root + 2, False); /* allow drag select */ event->xany.send_event = True; desc = &dock->menu->menu->descriptor; (*desc->handle_mousedown) (desc, event); } /******************************************************************/ static void iconDblClick(WObjDescriptor *desc, XEvent *event) { WAppIcon *btn = desc->parent; WDock *dock = btn->dock; WApplication *wapp = NULL; int unhideHere = 0; if (btn->icon->owner && !(event->xbutton.state & ControlMask)) { wapp = wApplicationOf(btn->icon->owner->main_window); assert(wapp != NULL); unhideHere = (event->xbutton.state & ShiftMask); /* go to the last workspace that the user worked on the app */ if (wapp->last_workspace != dock->screen_ptr->current_workspace && !unhideHere) wWorkspaceChange(dock->screen_ptr, wapp->last_workspace); wUnhideApplication(wapp, event->xbutton.button == Button2, unhideHere); if (event->xbutton.state & MOD_MASK) wHideOtherApplications(btn->icon->owner); } else { if (event->xbutton.button == Button1) { if (event->xbutton.state & MOD_MASK) { /* raise/lower dock */ toggleLowered(dock); } else if (btn == dock->screen_ptr->clip_icon) { if (getClipButton(event->xbutton.x, event->xbutton.y) != CLIP_IDLE) handleClipChangeWorkspace(dock->screen_ptr, event); else if (wPreferences.flags.clip_merged_in_dock) { // Is actually the dock if (btn->command) { if (!btn->launching && (!btn->running || (event->xbutton.state & ControlMask))) launchDockedApplication(btn, False); } else { wShowInfoPanel(dock->screen_ptr); } } else toggleCollapsed(dock); } else if (wIsADrawer(dock->screen_ptr, btn)) { toggleCollapsed(dock); } else if (btn->command) { if (!btn->launching && (!btn->running || (event->xbutton.state & ControlMask))) launchDockedApplication(btn, False); } else if (btn->xindex == 0 && btn->yindex == 0 && btn->dock->type == WM_DOCK) { wShowInfoPanel(dock->screen_ptr); } } } } static void handleDockMove(WDock *dock, WAppIcon *aicon, XEvent *event) { WScreen *scr = dock->screen_ptr; int ofs_x = event->xbutton.x, ofs_y = event->xbutton.y; WIcon *icon = aicon->icon; WAppIcon *tmpaicon; WDrawerChain *dc; int x = aicon->x_pos, y = aicon->y_pos;; int shad_x = x, shad_y = y; XEvent ev; int grabbed = 0, done, previously_on_right, now_on_right, previous_x_pos, i; Pixmap ghost = None; int superfluous = wPreferences.superfluous; /* we catch it to avoid problems */ if (XGrabPointer(dpy, aicon->icon->core->window, True, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime) != GrabSuccess) wwarning("pointer grab failed for dock move"); if (dock->type == WM_DRAWER) { Window wins[2]; wins[0] = icon->core->window; wins[1] = scr->dock_shadow; XRestackWindows(dpy, wins, 2); XMoveResizeWindow(dpy, scr->dock_shadow, aicon->x_pos, aicon->y_pos, ICON_SIZE, ICON_SIZE); if (superfluous) { if (icon->pixmap!=None) ghost = MakeGhostIcon(scr, icon->pixmap); else ghost = MakeGhostIcon(scr, icon->core->window); XSetWindowBackgroundPixmap(dpy, scr->dock_shadow, ghost); XClearWindow(dpy, scr->dock_shadow); } XMapWindow(dpy, scr->dock_shadow); } previously_on_right = now_on_right = dock->on_right_side; previous_x_pos = dock->x_pos; done = 0; while (!done) { WMMaskEvent(dpy, PointerMotionMask | ButtonReleaseMask | ButtonPressMask | ButtonMotionMask | ExposureMask | EnterWindowMask, &ev); switch (ev.type) { case Expose: WMHandleEvent(&ev); break; case EnterNotify: /* It means the cursor moved so fast that it entered * something else (if moving slowly, it would have * stayed in the dock that is being moved. Ignore such * "spurious" EnterNotifiy's */ break; case MotionNotify: if (!grabbed) { if (abs(ofs_x - ev.xmotion.x) >= MOVE_THRESHOLD || abs(ofs_y - ev.xmotion.y) >= MOVE_THRESHOLD) { XChangeActivePointerGrab(dpy, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, wCursor[WCUR_MOVE], CurrentTime); grabbed = 1; } break; } switch (dock->type) { case WM_CLIP: x = ev.xmotion.x_root - ofs_x; y = ev.xmotion.y_root - ofs_y; wScreenKeepInside(scr, &x, &y, ICON_SIZE, ICON_SIZE); moveDock(dock, x, y); break; case WM_DOCK: x = ev.xmotion.x_root - ofs_x; y = ev.xmotion.y_root - ofs_y; if (previously_on_right) { now_on_right = (ev.xmotion.x_root >= previous_x_pos - ICON_SIZE); } else { now_on_right = (ev.xmotion.x_root > previous_x_pos + ICON_SIZE * 2); } if (now_on_right != dock->on_right_side) { dock->on_right_side = now_on_right; swapDock(dock); wArrangeIcons(scr, False); } // Also perform the vertical move wScreenKeepInside(scr, &x, &y, ICON_SIZE, ICON_SIZE); moveDock(dock, dock->x_pos, y); if (wPreferences.flags.wrap_appicons_in_dock) { for (i = 0; i < dock->max_icons; i++) { int new_y, new_index, j, ok; if ((tmpaicon = dock->icon_array[i]) == NULL) continue; if (onScreen(scr, tmpaicon->x_pos, tmpaicon->y_pos)) continue; new_y = (tmpaicon->y_pos + ICON_SIZE * dock->max_icons) % (ICON_SIZE * dock->max_icons); new_index = (new_y - dock->y_pos) / ICON_SIZE; if (!onScreen(scr, tmpaicon->x_pos, new_y)) continue; ok = 1; for (j = 0; j < dock->max_icons; j++) { if (dock->icon_array[j] != NULL && dock->icon_array[j]->yindex == new_index) { ok = 0; break; } } if (!ok || getDrawer(scr, new_index) != NULL) continue; wDockReattachIcon(dock, tmpaicon, tmpaicon->xindex, new_index); } for (dc = scr->drawers; dc != NULL; dc = dc->next) { int new_y, new_index, j, ok; tmpaicon = dc->adrawer->icon_array[0]; if (onScreen(scr, tmpaicon->x_pos, tmpaicon->y_pos)) continue; new_y = (tmpaicon->y_pos + ICON_SIZE * dock->max_icons) % (ICON_SIZE * dock->max_icons); new_index = (new_y - dock->y_pos) / ICON_SIZE; if (!onScreen(scr, tmpaicon->x_pos, new_y)) continue; ok = 1; for (j = 0; j < dock->max_icons; j++) { if (dock->icon_array[j] != NULL && dock->icon_array[j]->yindex == new_index) { ok = 0; break; } } if (!ok || getDrawer(scr, new_index) != NULL) continue; moveDock(dc->adrawer, tmpaicon->x_pos, new_y); } } break; case WM_DRAWER: { WDock *real_dock = dock->screen_ptr->dock; Bool snapped; int ix, iy; x = ev.xmotion.x_root - ofs_x; y = ev.xmotion.y_root - ofs_y; snapped = wDockSnapIcon(real_dock, aicon, x, y, &ix, &iy, True); if (snapped) { shad_x = real_dock->x_pos + ix * wPreferences.icon_size; shad_y = real_dock->y_pos + iy * wPreferences.icon_size; XMoveWindow(dpy, scr->dock_shadow, shad_x, shad_y); } moveDock(dock, x, y); break; } } break; case ButtonPress: break; case ButtonRelease: if (ev.xbutton.button != event->xbutton.button) break; XUngrabPointer(dpy, CurrentTime); if (dock->type == WM_DRAWER) { Window *wins[dock->icon_count]; for (i = 0; i < dock->max_icons; i++) { if ((tmpaicon = dock->icon_array[i]) == NULL) continue; wins[ tmpaicon->xindex + (dock->on_right_side ? dock->icon_count - 1 : 0) ] = &tmpaicon->icon->core->window; } SlideWindows(wins, dock->icon_count, (dock->on_right_side ? x - (dock->icon_count - 1) * ICON_SIZE : x), y, (dock->on_right_side ? shad_x - (dock->icon_count - 1) * ICON_SIZE : shad_x), shad_y); XUnmapWindow(dpy, scr->dock_shadow); moveDock(dock, shad_x, shad_y); XResizeWindow(dpy, scr->dock_shadow, ICON_SIZE, ICON_SIZE); } done = 1; break; } } if (superfluous) { if (ghost != None) XFreePixmap(dpy, ghost); XSetWindowBackground(dpy, scr->dock_shadow, scr->white_pixel); } } static int getClipButton(int px, int py) { int pt = (CLIP_BUTTON_SIZE + 2) * ICON_SIZE / 64; if (px < 0 || py < 0 || px >= ICON_SIZE || py >= ICON_SIZE) return CLIP_IDLE; if (py <= pt - ((int)ICON_SIZE - 1 - px)) return CLIP_FORWARD; else if (px <= pt - ((int)ICON_SIZE - 1 - py)) return CLIP_REWIND; return CLIP_IDLE; } static void handleClipChangeWorkspace(WScreen *scr, XEvent *event) { XEvent ev; int done, direction, new_ws; int new_dir; WDock *clip = scr->clip_icon->dock; direction = getClipButton(event->xbutton.x, event->xbutton.y); clip->lclip_button_pushed = direction == CLIP_REWIND; clip->rclip_button_pushed = direction == CLIP_FORWARD; wClipIconPaint(scr->clip_icon); done = 0; while (!done) { WMMaskEvent(dpy, ExposureMask | ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, &ev); switch (ev.type) { case Expose: WMHandleEvent(&ev); break; case MotionNotify: new_dir = getClipButton(ev.xmotion.x, ev.xmotion.y); if (new_dir != direction) { direction = new_dir; clip->lclip_button_pushed = direction == CLIP_REWIND; clip->rclip_button_pushed = direction == CLIP_FORWARD; wClipIconPaint(scr->clip_icon); } break; case ButtonPress: break; case ButtonRelease: if (ev.xbutton.button == event->xbutton.button) done = 1; } } clip->lclip_button_pushed = 0; clip->rclip_button_pushed = 0; new_ws = wPreferences.ws_advance || (event->xbutton.state & ControlMask); if (direction == CLIP_FORWARD) { if (scr->current_workspace < scr->workspace_count - 1) wWorkspaceChange(scr, scr->current_workspace + 1); else if (new_ws && scr->current_workspace < MAX_WORKSPACES - 1) wWorkspaceChange(scr, scr->current_workspace + 1); else if (wPreferences.ws_cycle) wWorkspaceChange(scr, 0); } else if (direction == CLIP_REWIND) { if (scr->current_workspace > 0) wWorkspaceChange(scr, scr->current_workspace - 1); else if (scr->current_workspace == 0 && wPreferences.ws_cycle) wWorkspaceChange(scr, scr->workspace_count - 1); } wClipIconPaint(scr->clip_icon); } static void iconMouseDown(WObjDescriptor *desc, XEvent *event) { WAppIcon *aicon = desc->parent; WDock *dock = aicon->dock; WScreen *scr = aicon->icon->core->screen_ptr; if (aicon->editing || WCHECK_STATE(WSTATE_MODAL)) return; scr->last_dock = dock; if (dock->menu->flags.mapped) wMenuUnmap(dock->menu); if (IsDoubleClick(scr, event)) { /* double-click was not in the main clip icon */ if (dock->type != WM_CLIP || aicon->xindex != 0 || aicon->yindex != 0 || getClipButton(event->xbutton.x, event->xbutton.y) == CLIP_IDLE) { iconDblClick(desc, event); return; } } if (event->xbutton.button == Button1) { if (event->xbutton.state & MOD_MASK) wDockLower(dock); else wDockRaise(dock); if ((event->xbutton.state & ShiftMask) && aicon != scr->clip_icon && dock->type != WM_DOCK) { wIconSelect(aicon->icon); return; } if (aicon->yindex == 0 && aicon->xindex == 0) { if (getClipButton(event->xbutton.x, event->xbutton.y) != CLIP_IDLE && (dock->type == WM_CLIP || (dock->type == WM_DOCK && wPreferences.flags.clip_merged_in_dock))) handleClipChangeWorkspace(scr, event); else handleDockMove(dock, aicon, event); } else { Bool hasMoved = wHandleAppIconMove(aicon, event); if (wPreferences.single_click && !hasMoved) iconDblClick(desc, event); } } else if (event->xbutton.button == Button2 && aicon == scr->clip_icon) { if (!scr->clip_ws_menu) { scr->clip_ws_menu = wWorkspaceMenuMake(scr, False); } if (scr->clip_ws_menu) { WMenu *wsMenu = scr->clip_ws_menu; int xpos; wWorkspaceMenuUpdate(scr, wsMenu); xpos = event->xbutton.x_root - wsMenu->frame->core->width / 2 - 1; if (xpos < 0) { xpos = 0; } else if (xpos + wsMenu->frame->core->width > scr->scr_width - 2) { xpos = scr->scr_width - wsMenu->frame->core->width - 4; } wMenuMapAt(wsMenu, xpos, event->xbutton.y_root + 2, False); desc = &wsMenu->menu->descriptor; event->xany.send_event = True; (*desc->handle_mousedown) (desc, event); } } else if (event->xbutton.button == Button2 && dock->type == WM_CLIP && (event->xbutton.state & ShiftMask) && aicon != scr->clip_icon) { wClipMakeIconOmnipresent(aicon, !aicon->omnipresent); } else if (event->xbutton.button == Button3) { if (event->xbutton.send_event && XGrabPointer(dpy, aicon->icon->core->window, True, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime) != GrabSuccess) { wwarning("pointer grab failed for dockicon menu"); return; } openDockMenu(dock, aicon, event); } else if (event->xbutton.button == Button2) { WAppIcon *btn = desc->parent; if (!btn->launching && (!btn->running || (event->xbutton.state & ControlMask))) launchDockedApplication(btn, True); } } static void clipEnterNotify(WObjDescriptor *desc, XEvent *event) { WAppIcon *btn = (WAppIcon *) desc->parent; WDock *dock, *tmp; WScreen *scr; assert(event->type == EnterNotify); if (desc->parent_type != WCLASS_DOCK_ICON) return; scr = btn->icon->core->screen_ptr; dock = btn->dock; if (dock == NULL) return; /* The auto raise/lower code */ tmp = (dock->type == WM_DRAWER ? scr->dock : dock); if (tmp->auto_lower_magic) { WMDeleteTimerHandler(tmp->auto_lower_magic); tmp->auto_lower_magic = NULL; } if (tmp->auto_raise_lower && !tmp->auto_raise_magic) tmp->auto_raise_magic = WMAddTimerHandler(wPreferences.clip_auto_raise_delay, clipAutoRaise, (void *) tmp); if (dock->type != WM_CLIP && dock->type != WM_DRAWER) return; /* The auto expand/collapse code */ if (dock->auto_collapse_magic) { WMDeleteTimerHandler(dock->auto_collapse_magic); dock->auto_collapse_magic = NULL; } if (dock->auto_collapse && !dock->auto_expand_magic) dock->auto_expand_magic = WMAddTimerHandler(wPreferences.clip_auto_expand_delay, clipAutoExpand, (void *)dock); } static void clipLeave(WDock *dock) { XEvent event; WObjDescriptor *desc = NULL; WDock *tmp; if (dock == NULL) return; if (XCheckTypedEvent(dpy, EnterNotify, &event) != False) { if (XFindContext(dpy, event.xcrossing.window, wWinContext, (XPointer *) & desc) != XCNOENT && desc && desc->parent_type == WCLASS_DOCK_ICON && ((WAppIcon *) desc->parent)->dock == dock) { /* We haven't left the dock/clip/drawer yet */ XPutBackEvent(dpy, &event); return; } XPutBackEvent(dpy, &event); } else { /* We entered a withdrawn window, so we're still in Clip */ return; } tmp = (dock->type == WM_DRAWER ? dock->screen_ptr->dock : dock); if (tmp->auto_raise_magic) { WMDeleteTimerHandler(tmp->auto_raise_magic); tmp->auto_raise_magic = NULL; } if (tmp->auto_raise_lower && !tmp->auto_lower_magic) tmp->auto_lower_magic = WMAddTimerHandler(wPreferences.clip_auto_lower_delay, clipAutoLower, (void *)tmp); if (dock->type != WM_CLIP && dock->type != WM_DRAWER) return; if (dock->auto_expand_magic) { WMDeleteTimerHandler(dock->auto_expand_magic); dock->auto_expand_magic = NULL; } if (dock->auto_collapse && !dock->auto_collapse_magic) dock->auto_collapse_magic = WMAddTimerHandler(wPreferences.clip_auto_collapse_delay, clipAutoCollapse, (void *)dock); } static void clipLeaveNotify(WObjDescriptor *desc, XEvent *event) { WAppIcon *btn = (WAppIcon *) desc->parent; assert(event->type == LeaveNotify); if (desc->parent_type != WCLASS_DOCK_ICON) return; clipLeave(btn->dock); } static void clipAutoCollapse(void *cdata) { WDock *dock = (WDock *) cdata; if (dock->type != WM_CLIP && dock->type != WM_DRAWER) return; if (dock->auto_collapse) { dock->collapsed = 1; wDockHideIcons(dock); } dock->auto_collapse_magic = NULL; } static void clipAutoExpand(void *cdata) { WDock *dock = (WDock *) cdata; if (dock->type != WM_CLIP && dock->type != WM_DRAWER) return; if (dock->auto_collapse) { dock->collapsed = 0; wDockShowIcons(dock); } dock->auto_expand_magic = NULL; } static void clipAutoLower(void *cdata) { WDock *dock = (WDock *) cdata; if (dock->auto_raise_lower) wDockLower(dock); dock->auto_lower_magic = NULL; } static void clipAutoRaise(void *cdata) { WDock *dock = (WDock *) cdata; if (dock->auto_raise_lower) wDockRaise(dock); dock->auto_raise_magic = NULL; } static Bool iconCanBeOmnipresent(WAppIcon *aicon) { WScreen *scr = aicon->icon->core->screen_ptr; WDock *clip; WAppIcon *btn; int i, j; for (i = 0; i < scr->workspace_count; i++) { clip = scr->workspaces[i]->clip; if (clip == aicon->dock) continue; if (clip->icon_count + scr->global_icon_count >= clip->max_icons) return False; /* Clip is full in some workspace */ for (j = 0; j < clip->max_icons; j++) { btn = clip->icon_array[j]; if (btn && btn->xindex == aicon->xindex && btn->yindex == aicon->yindex) return False; } } return True; } int wClipMakeIconOmnipresent(WAppIcon *aicon, int omnipresent) { WScreen *scr = aicon->icon->core->screen_ptr; WAppIconChain *new_entry, *tmp, *tmp1; int status = WO_SUCCESS; if ((scr->dock && aicon->dock == scr->dock) || aicon == scr->clip_icon) return WO_NOT_APPLICABLE; if (aicon->omnipresent == omnipresent) return WO_SUCCESS; if (omnipresent) { if (iconCanBeOmnipresent(aicon)) { aicon->omnipresent = 1; new_entry = wmalloc(sizeof(WAppIconChain)); new_entry->aicon = aicon; new_entry->next = scr->global_icons; scr->global_icons = new_entry; scr->global_icon_count++; } else { aicon->omnipresent = 0; status = WO_FAILED; } } else { aicon->omnipresent = 0; if (aicon == scr->global_icons->aicon) { tmp = scr->global_icons->next; wfree(scr->global_icons); scr->global_icons = tmp; scr->global_icon_count--; } else { tmp = scr->global_icons; while (tmp->next) { if (tmp->next->aicon == aicon) { tmp1 = tmp->next->next; wfree(tmp->next); tmp->next = tmp1; scr->global_icon_count--; break; } tmp = tmp->next; } } } wAppIconPaint(aicon); return status; } static void drawerAppendToChain(WScreen *scr, WDock *drawer) { WDrawerChain **where_to_add; where_to_add = &scr->drawers; while ((*where_to_add) != NULL) { where_to_add = &(*where_to_add)->next; } *where_to_add = wmalloc(sizeof(WDrawerChain)); (*where_to_add)->adrawer = drawer; (*where_to_add)->next = NULL; scr->drawer_count++; } static void drawerRemoveFromChain(WScreen *scr, WDock *drawer) { WDrawerChain *next, **to_remove; to_remove = &scr->drawers; while (True) { if (*to_remove == NULL) { wwarning("The drawer to be removed can not be found."); return; } if ((*to_remove)->adrawer == drawer) break; to_remove = &(*to_remove)->next; } next = (*to_remove)->next; wfree(*to_remove); *to_remove = next; scr->drawer_count--; } /* Don't free the returned string. Duplicate it. */ static char * findUniqueName(WScreen *scr, const char *instance_basename) { static char buffer[128]; WDrawerChain *dc; int i; Bool already_in_use = True; #define UNIQUE_NAME_WATCHDOG 128 for (i = 0; already_in_use && i < UNIQUE_NAME_WATCHDOG; i++) { snprintf(buffer, sizeof buffer, "%s%d", instance_basename, i); already_in_use = False; for (dc = scr->drawers; dc != NULL; dc = dc->next) { if (!strncmp(dc->adrawer->icon_array[0]->wm_instance, buffer, sizeof buffer)) { already_in_use = True; break; } } } if (i == UNIQUE_NAME_WATCHDOG) wwarning("Couldn't find a unique name for drawer in %d attemps.", i); #undef UNIQUE_NAME_WATCHDOG return buffer; } static void drawerIconExpose(WObjDescriptor *desc, XEvent *event) { wDrawerIconPaint((WAppIcon *) desc->parent); } static int addADrawer(WScreen *scr) { int i, y, sig, found_y; WDock *drawer, *dock = scr->dock; WDrawerChain *dc; char can_be_here[2 * dock->max_icons - 1]; if (dock->icon_count + scr->drawer_count >= dock->max_icons) return -1; for (y = -dock->max_icons + 1; y < dock->max_icons; y++) { can_be_here[y + dock->max_icons - 1] = True; } for (i = 0; i < dock->max_icons; i++) { if (dock->icon_array[i] != NULL) can_be_here[dock->icon_array[i]->yindex + dock->max_icons - 1] = False; } for (dc = scr->drawers; dc != NULL; dc = dc->next) { y = (int) ((dc->adrawer->y_pos - dock->y_pos) / ICON_SIZE); can_be_here[y + dock->max_icons - 1] = False; } found_y = False; for (sig = 1; !found_y && sig > -2; sig -= 2) // 1, then -1 { for (y = sig; sig * y < dock->max_icons; y += sig) { if (can_be_here[y + dock->max_icons - 1] && onScreen(scr, dock->x_pos, dock->y_pos + y * ICON_SIZE)) { found_y = True; break; } } } if (!found_y) /* This can happen even when dock->icon_count + scr->drawer_count * < dock->max_icons when the dock is not aligned on an * ICON_SIZE multiple, as some space is lost above and under it */ return -1; drawer = wDockCreate(scr, WM_DRAWER, NULL); drawer->lowered = scr->dock->lowered; drawer->auto_raise_lower = scr->dock->auto_raise_lower; drawer->x_pos = dock->x_pos; drawer->y_pos = dock->y_pos + ICON_SIZE * y; drawer->icon_array[0]->xindex = 0; drawer->icon_array[0]->yindex = 0; drawer->icon_array[0]->x_pos = drawer->x_pos; drawer->icon_array[0]->y_pos = drawer->y_pos; XMoveWindow(dpy, drawer->icon_array[0]->icon->core->window, drawer->icon_array[0]->x_pos, drawer->icon_array[0]->y_pos); return 0; } static void addADrawerCallback(WMenu *menu, WMenuEntry *entry) { assert(entry->clientdata!=NULL); addADrawer(((WAppIcon *) entry->clientdata)->dock->screen_ptr); } static void drawerDestroy(WDock *drawer) { WScreen *scr; int i; WAppIcon *aicon; WMArray *icons; if (drawer == NULL) return; scr = drawer->screen_ptr; /* Note regarding menus: we can't delete any dock/clip/drawer menu, because * that would (attempt to) wfree some memory in gettext library (see menu * entries that have several "versions", such like "Hide" and "Unhide"). */ wDefaultPurgeInfo(scr, drawer->icon_array[0]->wm_instance, drawer->icon_array[0]->wm_class); icons = WMCreateArray(drawer->icon_count - 1); for (i = 1; i < drawer->max_icons; i++) { if (!(aicon = drawer->icon_array[i])) continue; WMAddToArray(icons, aicon); } removeIcons(icons, drawer); if (drawer->auto_collapse_magic) { WMDeleteTimerHandler(drawer->auto_collapse_magic); drawer->auto_collapse_magic = NULL; } if (drawer->auto_lower_magic) { WMDeleteTimerHandler(drawer->auto_lower_magic); drawer->auto_lower_magic = NULL; } wAppIconDestroy(drawer->icon_array[0]); wfree(drawer->icon_array); wfree(drawer); drawerRemoveFromChain(scr, drawer); if (scr->last_dock == drawer) scr->last_dock = NULL; if (scr->attracting_drawer == drawer) scr->attracting_drawer = NULL; } static void removeDrawerCallback(WMenu *menu, WMenuEntry *entry) { WDock *dock = ((WAppIcon*)entry->clientdata)->dock; assert(dock != NULL); if (dock->icon_count > 1) { if (wMessageDialog(dock->screen_ptr, _("Drawer"), _("All icons in this drawer will be detached!"), _("OK"), _("Cancel"), NULL) != WAPRDefault) return; } drawerDestroy(dock); } void wDrawerIconPaint(WAppIcon *dicon) { Window win = dicon->icon->core->window; WScreen *scr = dicon->icon->core->screen_ptr; XPoint p[4]; GC gc = scr->draw_gc; WMColor *color; wIconPaint(dicon->icon); if (!dicon->dock->collapsed) color = scr->clip_title_color[CLIP_NORMAL]; else color = scr->clip_title_color[CLIP_COLLAPSED]; XSetForeground(dpy, gc, WMColorPixel(color)); if (dicon->dock->on_right_side) { p[0].x = p[3].x = 10; p[0].y = p[3].y = ICON_SIZE / 2 - 5; p[1].x = 10; p[1].y = ICON_SIZE / 2 + 5; p[2].x = 5; p[2].y = ICON_SIZE / 2; } else { p[0].x = p[3].x = ICON_SIZE-1 - 10; p[0].y = p[3].y = ICON_SIZE / 2 - 5; p[1].x = ICON_SIZE-1 - 10; p[1].y = ICON_SIZE / 2 + 5; p[2].x = ICON_SIZE-1 - 5; p[2].y = ICON_SIZE / 2; } XFillPolygon(dpy, win, gc, p,3,Convex,CoordModeOrigin); XDrawLines(dpy, win, gc, p,4,CoordModeOrigin); } RImage* wDrawerMakeTile(WScreen *scr, RImage *normalTile) { RImage *tile = RCloneImage(normalTile); RColor dark; RColor light; dark.alpha = 0; dark.red = dark.green = dark.blue = 60; light.alpha = 0; light.red = light.green = light.blue = 80; /* arrow bevel */ if (!scr->dock || scr->dock->on_right_side) { ROperateLine(tile, RSubtractOperation, 11, ICON_SIZE / 2 - 7, 4, ICON_SIZE / 2, &dark); /* / */ ROperateLine(tile, RSubtractOperation, 11, ICON_SIZE / 2 + 7, 4, ICON_SIZE / 2, &dark); /* \ */ ROperateLine(tile, RAddOperation, 11, ICON_SIZE / 2 - 7, 11, ICON_SIZE / 2 + 7, &light); /* | */ } else { ROperateLine(tile, RSubtractOperation, ICON_SIZE-1 - 11, ICON_SIZE / 2 - 7, ICON_SIZE-1 - 4, ICON_SIZE / 2, &dark); /* \ */ ROperateLine(tile, RAddOperation, ICON_SIZE-1 - 11, ICON_SIZE / 2 + 7, ICON_SIZE-1 - 4, ICON_SIZE / 2, &light); /* / */ ROperateLine(tile, RSubtractOperation, ICON_SIZE-1 - 11, ICON_SIZE / 2 - 7, ICON_SIZE-1 - 11, ICON_SIZE / 2 + 7, &dark); /* | */ } return tile; } static void swapDrawer(WDock *drawer, int new_x) { int i; drawer->on_right_side = !drawer->on_right_side; drawer->x_pos = new_x; for (i = 0; i < drawer->max_icons; i++) { WAppIcon *ai; if ((ai = drawer->icon_array[i]) == NULL) continue; ai->xindex *= -1; /* so A B C becomes C B A */ ai->x_pos = new_x + ai->xindex * ICON_SIZE; /* Update drawer's tile */ if (i == 0) { wIconUpdate(ai->icon); wDrawerIconPaint(ai); } XMoveWindow(dpy, ai->icon->core->window, ai->x_pos, ai->y_pos); } } static void swapDrawers(WScreen *scr, int on_right_side, int new_x) { WDrawerChain *dc; if (scr->drawer_tile) { RReleaseImage(scr->drawer_tile); } scr->drawer_tile = wDrawerMakeTile(scr, scr->icon_tile); for (dc = scr->drawers; dc != NULL; dc = dc->next) { swapDrawer(dc->adrawer, new_x); assert(dc->adrawer->on_right_side == on_right_side); } } int wIsADrawer(WScreen *scr, WAppIcon *aicon) { return aicon && aicon->dock && aicon->dock->type == WM_DRAWER && aicon->dock->icon_array[0] == aicon; } static WDock* getDrawer(WScreen *scr, int y_index) { WDrawerChain *dc; for (dc = scr->drawers; dc != NULL; dc = dc->next) { if (dc->adrawer->y_pos - scr->dock->y_pos == y_index * ICON_SIZE) return dc->adrawer; } return NULL; } /* Find the "hole" a moving appicon created when snapped into the * drawer. redocking is a boolean. If the moving appicon comes from the * drawer, drawer->icon_count is correct. If not, redocking is then false and * there are now drawer->icon_count plus one appicons in the drawer. */ static int indexOfHole(WDock *drawer, WAppIcon *moving_aicon, int redocking) { int index_of_hole, i; /* Classic interview question... * * We have n-1 (n = drawer->icon_count-1 or drawer->icon_count, see * redocking) appicons, whose xindex are unique in [1..n]. One is missing: * that's where the ghost of the moving appicon is, that's what the * function should return. * * We compute 1+2+...+n (this sum is equal to n*(n+1)/2), we substract to * this sum the xindex of each of the n-1 appicons, and we get the correct * index! */ if (redocking) { index_of_hole = (drawer->icon_count - 1) * drawer->icon_count / 2; } else { index_of_hole = drawer->icon_count * (drawer->icon_count + 1) / 2; } index_of_hole *= (drawer->on_right_side ? -1 : 1); for (i = 1; i < drawer->max_icons; i++) { if (drawer->icon_array[i] && drawer->icon_array[i] != moving_aicon) index_of_hole -= drawer->icon_array[i]->xindex; } /* wmessage(" Index of the moving appicon is %d (%sredocking)", index_of_hole, (redocking ? "" : "not ")); */ if (abs(index_of_hole) > abs(drawer->icon_count) - (redocking ? 1 : 0)) wwarning(" index_of_hole is too large ! (%d greater than %d)", index_of_hole, abs(drawer->icon_count) - (redocking ? 1 : 0)); if (index_of_hole == 0) wwarning(" index_of_hole == 0 (%sredocking, icon_count == %d)", (redocking ? "" : "not "), drawer->icon_count); return index_of_hole; } void wSlideAppicons(WAppIcon **appicons, int n, int to_the_left) { int i; int leftmost = -1, min_index = 9999, from_x = -1; // leftmost and from_x initialized to avoid warning Window *wins[n]; WAppIcon *aicon; if (n < 1) return; for (i = 0; i < n; i++) { aicon = appicons[i]; aicon->xindex += (to_the_left ? -1 : +1); if (aicon->xindex < min_index) { min_index = aicon->xindex; leftmost = i; from_x = aicon->x_pos; } aicon->x_pos += (to_the_left ? -ICON_SIZE : +ICON_SIZE); } for (i = 0; i < n; i++) { aicon = appicons[i]; wins[aicon->xindex - min_index] = &aicon->icon->core->window; } aicon = appicons[leftmost]; SlideWindows(wins, n, from_x, aicon->y_pos, aicon->x_pos, aicon->y_pos); } void wDrawerFillTheGap(WDock *drawer, WAppIcon *aicon, Bool redocking) { int i, j; int index_of_hole = indexOfHole(drawer, aicon, redocking); WAppIcon *aicons_to_shift[drawer->icon_count]; j = 0; for (i = 0; i < drawer->max_icons; i++) { WAppIcon *ai = drawer->icon_array[i]; if (ai && ai != aicon && abs(ai->xindex) > abs(index_of_hole)) aicons_to_shift[j++] = ai; } if (j != drawer->icon_count - abs(index_of_hole) - (redocking ? 1 : 0)) wwarning("Removing aicon at index %d from %s: j=%d but should be %d", index_of_hole, drawer->icon_array[0]->wm_instance, j, drawer->icon_count - abs(index_of_hole) - (redocking ? 1 : 0)); wSlideAppicons(aicons_to_shift, j, !drawer->on_right_side); } static void drawerConsolidateIcons(WDock *drawer) { WAppIcon *aicons_to_shift[drawer->icon_count]; int maxRemaining = 0; int sum = 0; int i; for (i = 0; i < drawer->max_icons; i++) { WAppIcon *ai = drawer->icon_array[i]; if (ai == NULL) continue; sum += abs(ai->xindex); if (abs(ai->xindex) > maxRemaining) maxRemaining = abs(ai->xindex); } while (sum != maxRemaining * (maxRemaining + 1) / 2) { // while there is a hole WAppIcon *ai; int n; // Look up for the hole at max position int maxDeleted; for (maxDeleted = maxRemaining - 1; maxDeleted > 0; maxDeleted--) { Bool foundAppIconThere = False; for (i = 0; i < drawer->max_icons; i++) { WAppIcon *ai = drawer->icon_array[i]; if (ai == NULL) continue; if (abs(ai->xindex) == maxDeleted) { foundAppIconThere = True; break; } } if (!foundAppIconThere) break; } assert(maxDeleted > 0); // would mean while test is wrong n = 0; for (i = 0; i < drawer->max_icons; i++) { ai = drawer->icon_array[i]; if (ai != NULL && abs(ai->xindex) > maxDeleted) aicons_to_shift[n++] = ai; } assert(n == maxRemaining - maxDeleted); // for the code review ;-) wSlideAppicons(aicons_to_shift, n, !drawer->on_right_side); // Efficient beancounting maxRemaining -= 1; sum -= n; } } /* similar to wDockRestoreState, but a lot a specific stuff too... */ static WDock * drawerRestoreState(WScreen *scr, WMPropList *drawer_state) { WDock *drawer; WMPropList *apps, *value, *dock_state; WAppIcon *aicon; int count, i; if (!drawer_state) return NULL; make_keys(); WMRetainPropList(drawer_state); /* Get the instance name, and create a drawer */ value = WMGetFromPLDictionary(drawer_state, dName); drawer = wDockCreate(scr, WM_DRAWER, WMGetFromPLString(value)); /* restore DnD command and paste command */ #ifdef XDND value = WMGetFromPLDictionary(drawer_state, dDropCommand); if (value && WMIsPLString(value)) drawer->icon_array[0]->dnd_command = wstrdup(WMGetFromPLString(value)); #endif /* XDND */ value = WMGetFromPLDictionary(drawer_state, dPasteCommand); if (value && WMIsPLString(value)) drawer->icon_array[0]->paste_command = wstrdup(WMGetFromPLString(value)); /* restore position */ value = WMGetFromPLDictionary(drawer_state, dPosition); if (!value || !WMIsPLString(value)) COMPLAIN("Position"); else { int x, y, y_index; if (sscanf(WMGetFromPLString(value), "%i,%i", &x, &y) != 2) COMPLAIN("Position"); /* check position sanity */ if (x != scr->dock->x_pos) { x = scr->dock->x_pos; } y_index = (y - scr->dock->y_pos) / ICON_SIZE; if (y_index >= scr->dock->max_icons) { /* Here we should do something more intelligent, since it * can happen even if the user hasn't hand-edited his * G/D/State file (but uses a lower resolution). */ y_index = scr->dock->max_icons - 1; } y = scr->dock->y_pos + y_index * ICON_SIZE; moveDock(drawer, x, y); } /* restore dock properties (applist and others) */ dock_state = WMGetFromPLDictionary(drawer_state, dDock); /* restore lowered/raised state: same as scr->dock, no matter what */ drawer->lowered = scr->dock->lowered; if (!drawer->lowered) ChangeStackingLevel(drawer->icon_array[0]->icon->core, WMDockLevel); else ChangeStackingLevel(drawer->icon_array[0]->icon->core, WMNormalLevel); wRaiseFrame(drawer->icon_array[0]->icon->core); /* restore collapsed state */ drawer->collapsed = 0; value = WMGetFromPLDictionary(dock_state, dCollapsed); if (value && strcasecmp(WMGetFromPLString(value), "YES") == 0) { drawer->collapsed = 1; } /* restore auto-collapsed state */ value = WMGetFromPLDictionary(dock_state, dAutoCollapse); if (value && strcasecmp(WMGetFromPLString(value), "YES") == 0) { drawer->auto_collapse = 1; drawer->collapsed = 1; } else { drawer->auto_collapse = 0; // because wDockCreate sets it (drawers only) } /* restore auto-raise/lower state: same as scr->dock, no matter what */ drawer->auto_raise_lower = scr->dock->auto_raise_lower; /* restore attract icons state */ drawer->attract_icons = 0; value = WMGetFromPLDictionary(dock_state, dAutoAttractIcons); if (value && strcasecmp(WMGetFromPLString(value), "YES") == 0) { drawer->attract_icons = 1; scr->attracting_drawer = drawer; } /* application list */ apps = WMGetFromPLDictionary(dock_state, dApplications); if (!apps) { goto finish; } count = WMGetPropListItemCount(apps); if (count == 0) goto finish; for (i=0; iicon_count >= drawer->max_icons) { wwarning(_("there are too many icons stored in drawer. Ignoring what doesn't fit")); break; } value = WMGetFromPLArray(apps, i); aicon = restore_icon_state(scr, value, WM_DRAWER, drawer->icon_count); drawer->icon_array[drawer->icon_count] = aicon; if (aicon) { aicon->dock = drawer; aicon->x_pos = drawer->x_pos + (aicon->xindex * ICON_SIZE); aicon->y_pos = drawer->y_pos + (aicon->yindex * ICON_SIZE); if (!drawer->lowered) ChangeStackingLevel(aicon->icon->core, WMDockLevel); else ChangeStackingLevel(aicon->icon->core, WMNormalLevel); wCoreConfigure(aicon->icon->core, aicon->x_pos, aicon->y_pos, 0, 0); if (!drawer->collapsed) XMapWindow(dpy, aicon->icon->core->window); wRaiseFrame(aicon->icon->core); drawer->icon_count++; } } finish: WMReleasePropList(drawer_state); return drawer; } /* Same kind of comment than for previous function: this function is * very similar to make_icon_state, but has substential differences as * well. */ static WMPropList *drawerSaveState(WScreen *scr, WDock *drawer) { WMPropList *pstr, *drawer_state; WAppIcon *ai; char buffer[64]; ai = drawer->icon_array[0]; /* Store its name */ pstr = WMCreatePLString(ai->wm_instance); drawer_state = WMCreatePLDictionary(dName, pstr, NULL); /* we need this final NULL */ WMReleasePropList(pstr); /* Store its position */ snprintf(buffer, sizeof(buffer), "%i,%i", ai->x_pos, ai->y_pos); pstr = WMCreatePLString(buffer); WMPutInPLDictionary(drawer_state, dPosition, pstr); WMReleasePropList(pstr); #ifdef XDND /* Store its DnD command */ if (ai->dnd_command) { pstr = WMCreatePLString(ai->dnd_command); WMPutInPLDictionary(drawer_state, dDropCommand, pstr); WMReleasePropList(pstr); } #endif /* XDND */ /* Store its paste command */ if (ai->paste_command) { pstr = WMCreatePLString(ai->paste_command); WMPutInPLDictionary(drawer_state, dPasteCommand, pstr); WMReleasePropList(pstr); } /* Store applications list and other properties */ pstr = dockSaveState(drawer); WMPutInPLDictionary(drawer_state, dDock, pstr); WMReleasePropList(pstr); return drawer_state; } void wDrawersSaveState(WScreen *scr) { WMPropList *all_drawers, *drawer_state; int i; WDrawerChain *dc; make_keys(); all_drawers = WMCreatePLArray(NULL); for (i=0, dc = scr->drawers; i < scr->drawer_count; i++, dc = dc->next) { drawer_state = drawerSaveState(scr, dc->adrawer); WMAddToPLArray(all_drawers, drawer_state); WMReleasePropList(drawer_state); } WMPutInPLDictionary(scr->session_state, dDrawers, all_drawers); WMReleasePropList(all_drawers); } void wDrawersRestoreState(WScreen *scr) { WMPropList *all_drawers, *drawer_state; int i; make_keys(); if (scr->session_state == NULL) return; all_drawers = WMGetFromPLDictionary(scr->session_state, dDrawers); if (!all_drawers) return; for (i = 0; i < WMGetPropListItemCount(all_drawers); i++) { drawer_state = WMGetFromPLArray(all_drawers, i); drawerRestoreState(scr, drawer_state); // Note: scr->drawers was updated when the the drawer was created } } WindowMaker-0.95.5/src/icon.c0000644000175000017500000005472112214432632012655 00000000000000/* icon.c - window icon and dock and appicon parent * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include #include #include #include "WindowMaker.h" #include "wcore.h" #include "texture.h" #include "window.h" #include "icon.h" #include "actions.h" #include "stacking.h" #include "application.h" #include "defaults.h" #include "appicon.h" #include "wmspec.h" #include "misc.h" #include "startup.h" #include "event.h" #include "winmenu.h" /**** Global varianebles ****/ #define MOD_MASK wPreferences.modifier_mask #define CACHE_ICON_PATH "/Library/WindowMaker/CachedPixmaps" #define ICON_BORDER 3 extern Cursor wCursor[WCUR_LAST]; static void miniwindowExpose(WObjDescriptor * desc, XEvent * event); static void miniwindowMouseDown(WObjDescriptor * desc, XEvent * event); static void miniwindowDblClick(WObjDescriptor * desc, XEvent * event); static WIcon *icon_create_core(WScreen *scr, int coord_x, int coord_y); static void set_dockapp_in_icon(WIcon *icon); static void get_rimage_icon_from_icon_win(WIcon *icon); static void get_rimage_icon_from_user_icon(WIcon *icon); static void get_rimage_icon_from_default_icon(WIcon *icon); static void get_rimage_icon_from_x11(WIcon *icon); static void icon_update_pixmap(WIcon *icon, RImage *image); static void unset_icon_image(WIcon *icon); /****** Notification Observers ******/ static void appearanceObserver(void *self, WMNotification *notif) { WIcon *icon = (WIcon *) self; uintptr_t flags = (uintptr_t)WMGetNotificationClientData(notif); if ((flags & WTextureSettings) || (flags & WFontSettings)) { /* If the rimage exists, update the icon, else create it */ if (icon->file_image) update_icon_pixmap(icon); else wIconPaint(icon); } /* so that the appicon expose handlers will paint the appicon specific * stuff */ XClearArea(dpy, icon->core->window, 0, 0, icon->core->width, icon->core->height, True); } static void tileObserver(void *self, WMNotification *notif) { WIcon *icon = (WIcon *) self; update_icon_pixmap(icon); XClearArea(dpy, icon->core->window, 0, 0, 1, 1, True); } /************************************/ static int getSize(Drawable d, unsigned int *w, unsigned int *h, unsigned int *dep) { Window rjunk; int xjunk, yjunk; unsigned int bjunk; return XGetGeometry(dpy, d, &rjunk, &xjunk, &yjunk, w, h, &bjunk, dep); } WIcon *icon_create_for_wwindow(WWindow *wwin) { WScreen *scr = wwin->screen_ptr; WIcon *icon; icon = icon_create_core(scr, wwin->icon_x, wwin->icon_y); icon->owner = wwin; if (wwin->wm_hints && (wwin->wm_hints->flags & IconWindowHint)) { if (wwin->client_win == wwin->main_window) { WApplication *wapp; /* do not let miniwindow steal app-icon's icon window */ wapp = wApplicationOf(wwin->client_win); if (!wapp || wapp->app_icon == NULL) icon->icon_win = wwin->wm_hints->icon_window; } else { icon->icon_win = wwin->wm_hints->icon_window; } } #ifdef NO_MINIWINDOW_TITLES icon->show_title = 0; #else icon->show_title = 1; #endif wIconChangeTitle(icon, wwin); icon->tile_type = TILE_NORMAL; set_icon_image_from_database(icon, wwin->wm_instance, wwin->wm_class, NULL); /* Update the icon, because icon could be NULL */ wIconUpdate(icon); WMAddNotificationObserver(appearanceObserver, icon, WNIconAppearanceSettingsChanged, icon); WMAddNotificationObserver(tileObserver, icon, WNIconTileSettingsChanged, icon); return icon; } WIcon *icon_create_for_dock(WScreen *scr, const char *command, const char *wm_instance, const char *wm_class, int tile) { WIcon *icon; icon = icon_create_core(scr, 0, 0); icon->tile_type = tile; set_icon_image_from_database(icon, wm_instance, wm_class, command); /* Update the icon, because icon could be NULL */ wIconUpdate(icon); WMAddNotificationObserver(appearanceObserver, icon, WNIconAppearanceSettingsChanged, icon); WMAddNotificationObserver(tileObserver, icon, WNIconTileSettingsChanged, icon); return icon; } static WIcon *icon_create_core(WScreen *scr, int coord_x, int coord_y) { WIcon *icon; icon = wmalloc(sizeof(WIcon)); icon->core = wCoreCreateTopLevel(scr, coord_x, coord_y, wPreferences.icon_size, wPreferences.icon_size, 0, scr->w_depth, scr->w_visual, scr->w_colormap, scr->white_pixel); /* will be overriden if this is a application icon */ icon->core->descriptor.handle_mousedown = miniwindowMouseDown; icon->core->descriptor.handle_expose = miniwindowExpose; icon->core->descriptor.parent_type = WCLASS_MINIWINDOW; icon->core->descriptor.parent = icon; icon->core->stacking = wmalloc(sizeof(WStacking)); icon->core->stacking->above = NULL; icon->core->stacking->under = NULL; icon->core->stacking->window_level = NORMAL_ICON_LEVEL; icon->core->stacking->child_of = NULL; /* Icon image */ icon->file = NULL; icon->file_image = NULL; return icon; } void wIconDestroy(WIcon * icon) { WCoreWindow *core = icon->core; WScreen *scr = core->screen_ptr; WMRemoveNotificationObserver(icon); if (icon->handlerID) WMDeleteTimerHandler(icon->handlerID); if (icon->icon_win) { int x = 0, y = 0; if (icon->owner) { x = icon->owner->icon_x; y = icon->owner->icon_y; } XUnmapWindow(dpy, icon->icon_win); XReparentWindow(dpy, icon->icon_win, scr->root_win, x, y); } if (icon->icon_name) XFree(icon->icon_name); if (icon->pixmap) XFreePixmap(dpy, icon->pixmap); unset_icon_image(icon); wCoreDestroy(icon->core); wfree(icon); } static void drawIconTitleBackground(WScreen *scr, Pixmap pixmap, int height) { XFillRectangle(dpy, pixmap, scr->icon_title_texture->normal_gc, 0, 0, wPreferences.icon_size, height + 1); XDrawLine(dpy, pixmap, scr->icon_title_texture->light_gc, 0, 0, wPreferences.icon_size, 0); XDrawLine(dpy, pixmap, scr->icon_title_texture->light_gc, 0, 0, 0, height + 1); XDrawLine(dpy, pixmap, scr->icon_title_texture->dim_gc, wPreferences.icon_size - 1, 0, wPreferences.icon_size - 1, height + 1); } static void icon_update_pixmap(WIcon *icon, RImage *image) { RImage *tile; Pixmap pixmap; int x, y, sx, sy; unsigned w, h; int theight = 0; WScreen *scr = icon->core->screen_ptr; switch (icon->tile_type) { case TILE_NORMAL: tile = RCloneImage(scr->icon_tile); break; case TILE_CLIP: tile = RCloneImage(scr->clip_tile); break; case TILE_DRAWER: tile = RCloneImage(scr->drawer_tile); break; default: /* * The icon has always rigth value, this case is * only to avoid a compiler warning with "tile" * "may be used uninitialized" */ wwarning("Unknown tile type: %d.\n", icon->tile_type); tile = RCloneImage(scr->icon_tile); } if (image) { w = (image->width > wPreferences.icon_size) ? wPreferences.icon_size : image->width; x = (wPreferences.icon_size - w) / 2; sx = (image->width - w) / 2; if (icon->show_title) theight = WMFontHeight(scr->icon_title_font); h = (image->height + theight > wPreferences.icon_size ? wPreferences.icon_size - theight : image->height); y = theight + (wPreferences.icon_size - theight - h) / 2; sy = (image->height - h) / 2; RCombineArea(tile, image, sx, sy, w, h, x, y); } if (icon->shadowed) { RColor color; color.red = scr->icon_back_texture->light.red >> 8; color.green = scr->icon_back_texture->light.green >> 8; color.blue = scr->icon_back_texture->light.blue >> 8; color.alpha = 150; /* about 60% */ RClearImage(tile, &color); } if (icon->highlighted) { RColor color; color.red = color.green = color.blue = 0; color.alpha = 160; RLightImage(tile, &color); } if (!RConvertImage(scr->rcontext, tile, &pixmap)) wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode)); RReleaseImage(tile); /* Draw the icon's title background (without text) */ if (icon->show_title) drawIconTitleBackground(scr, pixmap, theight); icon->pixmap = pixmap; } void wIconChangeTitle(WIcon *icon, WWindow *wwin) { if (!icon || !wwin) return; /* Remove the previous icon title */ if (icon->icon_name != NULL) XFree(icon->icon_name); /* Set the new one, using two methods */ icon->icon_name = wNETWMGetIconName(wwin->client_win); if (!icon->icon_name) wGetIconName(dpy, wwin->client_win, &icon->icon_name); } RImage *wIconValidateIconSize(RImage *icon, int max_size) { RImage *nimage; if (!icon) return NULL; /* We should hold "ICON_BORDER" (~2) pixels to include the icon border */ if (((max_size + ICON_BORDER) < icon->width) || ((max_size + ICON_BORDER) < icon->height)) { if (icon->width > icon->height) nimage = RScaleImage(icon, max_size - ICON_BORDER, (icon->height * (max_size - ICON_BORDER) / icon->width)); else nimage = RScaleImage(icon, (icon->width * (max_size - ICON_BORDER) / icon->height), max_size - ICON_BORDER); RReleaseImage(icon); icon = nimage; } return icon; } Bool wIconChangeImageFile(WIcon *icon, const char *file) { WScreen *scr = icon->core->screen_ptr; char *path; RImage *image = NULL; int error = 0; /* If no new image, don't do nothing */ if (!file) return True; /* Find the new image */ path = FindImage(wPreferences.icon_path, file); if (path) image = get_rimage_from_file(scr, path, wPreferences.icon_size); else error = 1; /* New image! */ if (!error && image) { /* Set the new image */ set_icon_image_from_image(icon, image); icon->file = wstrdup(path); update_icon_pixmap(icon); } else { error = 1; } if (path) wfree(path); return !error; } static char *get_name_for_wwin(WWindow *wwin) { return get_name_for_instance_class(wwin->wm_instance, wwin->wm_class); } char *get_name_for_instance_class(const char *wm_instance, const char *wm_class) { char *suffix; int len; if (wm_class && wm_instance) { len = strlen(wm_class) + strlen(wm_instance) + 2; suffix = wmalloc(len); snprintf(suffix, len, "%s.%s", wm_instance, wm_class); } else if (wm_class) { len = strlen(wm_class) + 1; suffix = wmalloc(len); snprintf(suffix, len, "%s", wm_class); } else if (wm_instance) { len = strlen(wm_instance) + 1; suffix = wmalloc(len); snprintf(suffix, len, "%s", wm_instance); } else { return NULL; } return suffix; } static char *get_icon_cache_path(void) { const char *prefix; char *path; int len, ret; prefix = wusergnusteppath(); len = strlen(prefix) + strlen(CACHE_ICON_PATH) + 2; path = wmalloc(len); snprintf(path, len, "%s%s/", prefix, CACHE_ICON_PATH); /* If the folder exists, exit */ if (access(path, F_OK) == 0) return path; /* Create the folder */ ret = wmkdirhier((const char *) path); /* Exit 1 on success, 0 on failure */ if (ret == 1) return path; /* Fail */ wfree(path); return NULL; } static RImage *get_wwindow_image_from_wmhints(WWindow *wwin, WIcon *icon) { RImage *image = NULL; XWMHints *hints = wwin->wm_hints; if (hints && (hints->flags & IconPixmapHint) && hints->icon_pixmap != None) image = RCreateImageFromDrawable(icon->core->screen_ptr->rcontext, hints->icon_pixmap, (hints->flags & IconMaskHint) ? hints->icon_mask : None); return image; } /* * wIconStore-- * Stores the client supplied icon at CACHE_ICON_PATH * and returns the path for that icon. Returns NULL if there is no * client supplied icon or on failure. * * Side effects: * New directories might be created. */ char *wIconStore(WIcon * icon) { char *path, *dir_path, *file; int len = 0; RImage *image = NULL; WWindow *wwin = icon->owner; if (!wwin) return NULL; dir_path = get_icon_cache_path(); if (!dir_path) return NULL; file = get_name_for_wwin(wwin); if (!file) { wfree(dir_path); return NULL; } len = strlen(dir_path) + strlen(file) + 5; path = wmalloc(len); snprintf(path, len, "%s%s.xpm", dir_path, file); wfree(dir_path); wfree(file); /* If icon exists, exit */ if (access(path, F_OK) == 0) return path; if (wwin->net_icon_image) image = RRetainImage(wwin->net_icon_image); else image = get_wwindow_image_from_wmhints(wwin, icon); if (!image) { wfree(path); return NULL; } if (!RSaveImage(image, path, "XPM")) { wfree(path); path = NULL; } RReleaseImage(image); return path; } static void cycleColor(void *data) { WIcon *icon = (WIcon *) data; WScreen *scr = icon->core->screen_ptr; XGCValues gcv; icon->step--; gcv.dash_offset = icon->step; XChangeGC(dpy, scr->icon_select_gc, GCDashOffset, &gcv); XDrawRectangle(dpy, icon->core->window, scr->icon_select_gc, 0, 0, icon->core->width - 1, icon->core->height - 1); icon->handlerID = WMAddTimerHandler(COLOR_CYCLE_DELAY, cycleColor, icon); } void wIconSetHighlited(WIcon *icon, Bool flag) { if (icon->highlighted == flag) return; icon->highlighted = flag; update_icon_pixmap(icon); } void wIconSelect(WIcon * icon) { WScreen *scr = icon->core->screen_ptr; icon->selected = !icon->selected; if (icon->selected) { icon->step = 0; if (!wPreferences.dont_blink) icon->handlerID = WMAddTimerHandler(10, cycleColor, icon); else XDrawRectangle(dpy, icon->core->window, scr->icon_select_gc, 0, 0, icon->core->width - 1, icon->core->height - 1); } else { if (icon->handlerID) { WMDeleteTimerHandler(icon->handlerID); icon->handlerID = NULL; } XClearArea(dpy, icon->core->window, 0, 0, icon->core->width, icon->core->height, True); } } static void unset_icon_image(WIcon *icon) { if (icon->file) { wfree(icon->file); icon->file = NULL; } if (icon->file_image) { RReleaseImage(icon->file_image); icon->file_image = NULL; } } void set_icon_image_from_image(WIcon *icon, RImage *image) { if (!icon) return; unset_icon_image(icon); icon->file_image = NULL; icon->file_image = image; } void wIconUpdate(WIcon *icon) { WWindow *wwin = NULL; if (icon && icon->owner) wwin = icon->owner; if (wwin && WFLAGP(wwin, always_user_icon)) { /* Forced use user_icon */ get_rimage_icon_from_user_icon(icon); } else if (icon->icon_win != None) { /* Get the Pixmap from the WIcon */ get_rimage_icon_from_icon_win(icon); } else if (wwin && wwin->net_icon_image) { /* Use _NET_WM_ICON icon */ get_rimage_icon_from_x11(icon); } else if (wwin && wwin->wm_hints && (wwin->wm_hints->flags & IconPixmapHint)) { /* Get the Pixmap from the wm_hints, else, from the user */ unset_icon_image(icon); icon->file_image = get_rimage_icon_from_wm_hints(icon); if (!icon->file_image) get_rimage_icon_from_user_icon(icon); } else { /* Get the Pixmap from the user */ get_rimage_icon_from_user_icon(icon); } update_icon_pixmap(icon); } void update_icon_pixmap(WIcon *icon) { if (icon->pixmap != None) XFreePixmap(dpy, icon->pixmap); icon->pixmap = None; /* Create the pixmap */ if (icon->file_image) icon_update_pixmap(icon, icon->file_image); /* If dockapp, put inside the icon */ if (icon->icon_win != None) { /* file_image is NULL, because is docked app */ icon_update_pixmap(icon, NULL); set_dockapp_in_icon(icon); } /* No pixmap, set default background */ if (icon->pixmap != None) XSetWindowBackgroundPixmap(dpy, icon->core->window, icon->pixmap); /* Paint it */ wIconPaint(icon); } static void get_rimage_icon_from_x11(WIcon *icon) { /* Remove the icon image */ unset_icon_image(icon); /* Set the new icon image */ icon->file_image = RRetainImage(icon->owner->net_icon_image); } static void get_rimage_icon_from_user_icon(WIcon *icon) { if (icon->file_image) return; get_rimage_icon_from_default_icon(icon); } static void get_rimage_icon_from_default_icon(WIcon *icon) { WScreen *scr = icon->core->screen_ptr; /* If the icon don't have image, we should use the default image. */ if (!scr->def_icon_rimage) scr->def_icon_rimage = get_default_image(scr); /* Remove the icon image */ unset_icon_image(icon); /* Set the new icon image */ icon->file_image = RRetainImage(scr->def_icon_rimage); } /* Get the RImage from the WIcon of the WWindow */ static void get_rimage_icon_from_icon_win(WIcon *icon) { RImage *image; /* Create the new RImage */ image = get_window_image_from_x11(icon->icon_win); /* Free the icon info */ unset_icon_image(icon); /* Set the new info */ icon->file_image = image; } /* Set the dockapp in the WIcon */ static void set_dockapp_in_icon(WIcon *icon) { XWindowAttributes attr; WScreen *scr = icon->core->screen_ptr; unsigned int w, h, d; /* Reparent the dock application to the icon */ /* We need the application size to center it * and show in the correct position */ getSize(icon->icon_win, &w, &h, &d); /* Set the background pixmap */ XSetWindowBackgroundPixmap(dpy, icon->core->window, scr->icon_tile_pixmap); /* Set the icon border */ XSetWindowBorderWidth(dpy, icon->icon_win, 0); /* Put the dock application in the icon */ XReparentWindow(dpy, icon->icon_win, icon->core->window, (wPreferences.icon_size - w) / 2, (wPreferences.icon_size - h) / 2); /* Show it and save */ XMapWindow(dpy, icon->icon_win); XAddToSaveSet(dpy, icon->icon_win); /* Needed to move the icon clicking on the application part */ if ((XGetWindowAttributes(dpy, icon->icon_win, &attr)) && (attr.all_event_masks & ButtonPressMask)) wHackedGrabButton(Button1, MOD_MASK, icon->core->window, True, ButtonPressMask, GrabModeSync, GrabModeAsync, None, wCursor[WCUR_ARROW]); } /* Get the RImage from the XWindow wm_hints */ RImage *get_rimage_icon_from_wm_hints(WIcon *icon) { RImage *image = NULL; unsigned int w, h, d; WWindow *wwin = icon->owner; if (!getSize(wwin->wm_hints->icon_pixmap, &w, &h, &d)) { icon->owner->wm_hints->flags &= ~IconPixmapHint; return NULL; } image = get_wwindow_image_from_wmhints(wwin, icon); if (!image) return NULL; /* Resize the icon to the wPreferences.icon_size size */ image = wIconValidateIconSize(image, wPreferences.icon_size); return image; } /* This function updates in the screen the icon title */ static void update_icon_title(WIcon *icon) { WScreen *scr = icon->core->screen_ptr; int x, l, w; char *tmp; /* draw the icon title */ if (icon->show_title && icon->icon_name != NULL) { tmp = ShrinkString(scr->icon_title_font, icon->icon_name, wPreferences.icon_size - 4); w = WMWidthOfString(scr->icon_title_font, tmp, l = strlen(tmp)); if (w > icon->core->width - 4) x = (icon->core->width - 4) - w; else x = (icon->core->width - w) / 2; WMDrawString(scr->wmscreen, icon->core->window, scr->icon_title_color, scr->icon_title_font, x, 1, tmp, l); wfree(tmp); } } void wIconPaint(WIcon *icon) { if (!icon || !icon->core || !icon->core->screen_ptr) return; WScreen *scr = icon->core->screen_ptr; XClearWindow(dpy, icon->core->window); update_icon_title(icon); if (icon->selected) XDrawRectangle(dpy, icon->core->window, scr->icon_select_gc, 0, 0, icon->core->width - 1, icon->core->height - 1); } /******************************************************************/ static void miniwindowExpose(WObjDescriptor * desc, XEvent * event) { wIconPaint(desc->parent); } static void miniwindowDblClick(WObjDescriptor * desc, XEvent * event) { WIcon *icon = desc->parent; assert(icon->owner != NULL); wDeiconifyWindow(icon->owner); } static void miniwindowMouseDown(WObjDescriptor * desc, XEvent * event) { WIcon *icon = desc->parent; WWindow *wwin = icon->owner; XEvent ev; int x = wwin->icon_x, y = wwin->icon_y; int dx = event->xbutton.x, dy = event->xbutton.y; int grabbed = 0; int clickButton = event->xbutton.button; Bool hasMoved = False; if (WCHECK_STATE(WSTATE_MODAL)) return; if (IsDoubleClick(icon->core->screen_ptr, event)) { miniwindowDblClick(desc, event); return; } if (event->xbutton.button == Button1) { if (event->xbutton.state & MOD_MASK) wLowerFrame(icon->core); else wRaiseFrame(icon->core); if (event->xbutton.state & ShiftMask) { wIconSelect(icon); wSelectWindow(icon->owner, !wwin->flags.selected); } } else if (event->xbutton.button == Button3) { WObjDescriptor *desc; OpenMiniwindowMenu(wwin, event->xbutton.x_root, event->xbutton.y_root); /* allow drag select of menu */ desc = &wwin->screen_ptr->window_menu->menu->descriptor; event->xbutton.send_event = True; (*desc->handle_mousedown) (desc, event); return; } if (XGrabPointer(dpy, icon->core->window, False, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime) != GrabSuccess) { } while (1) { WMMaskEvent(dpy, PointerMotionMask | ButtonReleaseMask | ButtonPressMask | ButtonMotionMask | ExposureMask, &ev); switch (ev.type) { case Expose: WMHandleEvent(&ev); break; case MotionNotify: hasMoved = True; if (!grabbed) { if (abs(dx - ev.xmotion.x) >= MOVE_THRESHOLD || abs(dy - ev.xmotion.y) >= MOVE_THRESHOLD) { XChangeActivePointerGrab(dpy, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, wCursor[WCUR_MOVE], CurrentTime); grabbed = 1; } else { break; } } x = ev.xmotion.x_root - dx; y = ev.xmotion.y_root - dy; XMoveWindow(dpy, icon->core->window, x, y); break; case ButtonPress: break; case ButtonRelease: if (ev.xbutton.button != clickButton) break; if (wwin->icon_x != x || wwin->icon_y != y) wwin->flags.icon_moved = 1; XMoveWindow(dpy, icon->core->window, x, y); wwin->icon_x = x; wwin->icon_y = y; XUngrabPointer(dpy, CurrentTime); if (wPreferences.auto_arrange_icons) wArrangeIcons(wwin->screen_ptr, True); if (wPreferences.single_click && !hasMoved) miniwindowDblClick(desc, event); return; } } } void set_icon_image_from_database(WIcon *icon, const char *wm_instance, const char *wm_class, const char *command) { char *file = NULL; file = get_icon_filename(icon->core->screen_ptr, wm_instance, wm_class, command, False); if (file) { icon->file = wstrdup(file); icon->file_image = get_rimage_from_file(icon->core->screen_ptr, icon->file, wPreferences.icon_size); wfree(file); } } WindowMaker-0.95.5/src/winmenu.c0000644000175000017500000004314412214432632013404 00000000000000/* winmenu.c - command menu for windows * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include "WindowMaker.h" #include "actions.h" #include "menu.h" #include "main.h" #include "window.h" #include "client.h" #include "application.h" #include "keybind.h" #include "misc.h" #include "framewin.h" #include "workspace.h" #include "winspector.h" #include "dialog.h" #include "stacking.h" #include "icon.h" #include "xinerama.h" #include "winmenu.h" #define MC_MAXIMIZE 0 #define MC_MINIATURIZE 1 #define MC_SHADE 2 #define MC_HIDE 3 #define MC_MOVERESIZE 4 #define MC_SELECT 5 #define MC_DUMMY_MOVETO 6 #define MC_PROPERTIES 7 #define MC_OPTIONS 8 #define MC_SHORTCUT 8 #define MC_RELAUNCH 9 #define MC_CLOSE 10 #define MC_KILL 11 #define WO_KEEP_ON_TOP 0 #define WO_KEEP_AT_BOTTOM 1 #define WO_OMNIPRESENT 2 #define WO_ENTRIES 3 /**** Global data ***/ extern Time LastTimestamp; extern Atom _XA_WM_DELETE_WINDOW; extern Atom _XA_GNUSTEP_WM_MINIATURIZE_WINDOW; extern WShortKey wKeyBindings[WKBD_LAST]; static void updateOptionsMenu(WMenu * menu, WWindow * wwin); static void execWindowOptionCommand(WMenu * menu, WMenuEntry * entry) { WWindow *wwin = (WWindow *) entry->clientdata; switch (entry->order) { case WO_KEEP_ON_TOP: if (wwin->frame->core->stacking->window_level != WMFloatingLevel) ChangeStackingLevel(wwin->frame->core, WMFloatingLevel); else ChangeStackingLevel(wwin->frame->core, WMNormalLevel); break; case WO_KEEP_AT_BOTTOM: if (wwin->frame->core->stacking->window_level != WMSunkenLevel) ChangeStackingLevel(wwin->frame->core, WMSunkenLevel); else ChangeStackingLevel(wwin->frame->core, WMNormalLevel); break; case WO_OMNIPRESENT: wWindowSetOmnipresent(wwin, !wwin->flags.omnipresent); break; } } static void execMenuCommand(WMenu * menu, WMenuEntry * entry) { WWindow *wwin = (WWindow *) entry->clientdata; WApplication *wapp; CloseWindowMenu(menu->frame->screen_ptr); switch (entry->order) { case MC_CLOSE: /* send delete message */ wClientSendProtocol(wwin, _XA_WM_DELETE_WINDOW, LastTimestamp); break; case MC_KILL: wretain(wwin); if (wPreferences.dont_confirm_kill || wMessageDialog(menu->frame->screen_ptr, _("Kill Application"), _ ("This will kill the application.\nAny unsaved changes will be lost.\nPlease confirm."), _("Yes"), _("No"), NULL) == WAPRDefault) { if (!wwin->flags.destroyed) wClientKill(wwin); } wrelease(wwin); break; case MC_MINIATURIZE: if (wwin->flags.miniaturized) { wDeiconifyWindow(wwin); } else { if (wwin->protocols.MINIATURIZE_WINDOW) { wClientSendProtocol(wwin, _XA_GNUSTEP_WM_MINIATURIZE_WINDOW, LastTimestamp); } else { wIconifyWindow(wwin); } } break; case MC_MAXIMIZE: if (wwin->flags.maximized) wUnmaximizeWindow(wwin); else wMaximizeWindow(wwin, MAX_VERTICAL | MAX_HORIZONTAL); break; case MC_SHADE: if (wwin->flags.shaded) wUnshadeWindow(wwin); else wShadeWindow(wwin); break; case MC_SELECT: if (!wwin->flags.miniaturized) wSelectWindow(wwin, !wwin->flags.selected); else wIconSelect(wwin->icon); break; case MC_MOVERESIZE: wKeyboardMoveResizeWindow(wwin); break; case MC_PROPERTIES: wShowInspectorForWindow(wwin); break; case MC_RELAUNCH: (void) RelaunchWindow(wwin); break; case MC_HIDE: wapp = wApplicationOf(wwin->main_window); wHideApplication(wapp); break; } } static void switchWSCommand(WMenu * menu, WMenuEntry * entry) { WWindow *wwin = (WWindow *) entry->clientdata; wSelectWindow(wwin, False); wWindowChangeWorkspace(wwin, entry->order); } static void makeShortcutCommand(WMenu * menu, WMenuEntry * entry) { WWindow *wwin = (WWindow *) entry->clientdata; WScreen *scr = wwin->screen_ptr; int index = entry->order - WO_ENTRIES; if (scr->shortcutWindows[index]) { WMFreeArray(scr->shortcutWindows[index]); scr->shortcutWindows[index] = NULL; } if (wwin->flags.selected && scr->selected_windows) { scr->shortcutWindows[index] = WMDuplicateArray(scr->selected_windows); /*WMRemoveFromArray(scr->shortcutWindows[index], wwin); WMInsertInArray(scr->shortcutWindows[index], 0, wwin); */ } else { scr->shortcutWindows[index] = WMCreateArray(4); WMAddToArray(scr->shortcutWindows[index], wwin); } wSelectWindow(wwin, !wwin->flags.selected); XFlush(dpy); wusleep(3000); wSelectWindow(wwin, !wwin->flags.selected); XFlush(dpy); } static void updateWorkspaceMenu(WMenu * menu) { WScreen *scr = menu->frame->screen_ptr; char title[MAX_WORKSPACENAME_WIDTH + 1]; WMenuEntry *entry; int i; for (i = 0; i < scr->workspace_count; i++) { if (i < menu->entry_no) { entry = menu->entries[i]; if (strcmp(entry->text, scr->workspaces[i]->name) != 0) { wfree(entry->text); strncpy(title, scr->workspaces[i]->name, MAX_WORKSPACENAME_WIDTH); title[MAX_WORKSPACENAME_WIDTH] = 0; menu->entries[i]->text = wstrdup(title); menu->entries[i]->rtext = GetShortcutKey(wKeyBindings[WKBD_MOVE_WORKSPACE1 + i]); menu->flags.realized = 0; } } else { strncpy(title, scr->workspaces[i]->name, MAX_WORKSPACENAME_WIDTH); title[MAX_WORKSPACENAME_WIDTH] = 0; entry = wMenuAddCallback(menu, title, switchWSCommand, NULL); entry->rtext = GetShortcutKey(wKeyBindings[WKBD_MOVE_WORKSPACE1 + i]); menu->flags.realized = 0; } /* workspace shortcut labels */ if (i / 10 == scr->current_workspace / 10) entry->rtext = GetShortcutKey(wKeyBindings[WKBD_MOVE_WORKSPACE1 + (i % 10)]); else entry->rtext = NULL; } if (!menu->flags.realized) wMenuRealize(menu); } static void updateMakeShortcutMenu(WMenu * menu, WWindow * wwin) { WMenu *smenu = menu->cascades[menu->entries[MC_SHORTCUT]->cascade]; int i; char *buffer; int buflen; KeyCode kcode; if (!smenu) return; buflen = strlen(_("Set Shortcut")) + 16; buffer = wmalloc(buflen); for (i = WO_ENTRIES; i < smenu->entry_no; i++) { char *tmp; int shortcutNo = i - WO_ENTRIES; WMenuEntry *entry = smenu->entries[i]; WMArray *shortSelWindows = wwin->screen_ptr->shortcutWindows[shortcutNo]; snprintf(buffer, buflen, "%s %i", _("Set Shortcut"), shortcutNo + 1); if (!shortSelWindows) { entry->flags.indicator_on = 0; } else { entry->flags.indicator_on = 1; if (WMCountInArray(shortSelWindows, wwin)) entry->flags.indicator_type = MI_DIAMOND; else entry->flags.indicator_type = MI_CHECK; } if (strcmp(buffer, entry->text) != 0) { wfree(entry->text); entry->text = wstrdup(buffer); smenu->flags.realized = 0; } kcode = wKeyBindings[WKBD_WINDOW1 + shortcutNo].keycode; if (kcode) { if ((tmp = GetShortcutKey(wKeyBindings[WKBD_WINDOW1 + shortcutNo])) && (!entry->rtext || strcmp(tmp, entry->rtext) != 0)) { if (entry->rtext) wfree(entry->rtext); entry->rtext = tmp; smenu->flags.realized = 0; } wMenuSetEnabled(smenu, i, True); } else { wMenuSetEnabled(smenu, i, False); if (entry->rtext) { wfree(entry->rtext); entry->rtext = NULL; smenu->flags.realized = 0; } } entry->clientdata = wwin; } wfree(buffer); if (!smenu->flags.realized) wMenuRealize(smenu); } static void updateOptionsMenu(WMenu * menu, WWindow * wwin) { WMenu *smenu = menu->cascades[menu->entries[MC_OPTIONS]->cascade]; /* keep on top check */ 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; smenu->entries[WO_OMNIPRESENT]->flags.indicator_on = IS_OMNIPRESENT(wwin); smenu->flags.realized = 0; wMenuRealize(smenu); } static WMenu *makeWorkspaceMenu(WScreen * scr) { WMenu *menu; menu = wMenuCreate(scr, NULL, False); if (!menu) { wwarning(_("could not create submenu for window menu")); return NULL; } updateWorkspaceMenu(menu); return menu; } static WMenu *makeMakeShortcutMenu(WScreen * scr, WMenu * menu) { /* WMenu *menu; */ int i; /* menu = wMenuCreate(scr, NULL, False); if (!menu) { wwarning(_("could not create submenu for window menu")); return NULL; } */ for (i = 0; i < MAX_WINDOW_SHORTCUTS; i++) { WMenuEntry *entry; entry = wMenuAddCallback(menu, "", makeShortcutCommand, NULL); entry->flags.indicator = 1; } return menu; } static WMenu *makeOptionsMenu(WScreen * scr) { WMenu *menu; WMenuEntry *entry; menu = wMenuCreate(scr, NULL, False); if (!menu) { wwarning(_("could not create submenu for window menu")); return NULL; } entry = wMenuAddCallback(menu, _("Keep on top"), execWindowOptionCommand, NULL); entry->flags.indicator = 1; entry->flags.indicator_type = MI_CHECK; entry = wMenuAddCallback(menu, _("Keep at bottom"), execWindowOptionCommand, NULL); entry->flags.indicator = 1; entry->flags.indicator_type = MI_CHECK; entry = wMenuAddCallback(menu, _("Omnipresent"), execWindowOptionCommand, NULL); entry->flags.indicator = 1; entry->flags.indicator_type = MI_CHECK; return menu; } static WMenu *createWindowMenu(WScreen * scr) { WMenu *menu; WMenuEntry *entry; menu = wMenuCreate(scr, NULL, False); /* * 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. */ entry = wMenuAddCallback(menu, _("Maximize"), execMenuCommand, NULL); entry->rtext = GetShortcutKey(wKeyBindings[WKBD_MAXIMIZE]); entry = wMenuAddCallback(menu, _("Miniaturize"), execMenuCommand, NULL); entry->rtext = GetShortcutKey(wKeyBindings[WKBD_MINIATURIZE]); entry = wMenuAddCallback(menu, _("Shade"), execMenuCommand, NULL); entry->rtext = GetShortcutKey(wKeyBindings[WKBD_SHADE]); entry = wMenuAddCallback(menu, _("Hide"), execMenuCommand, NULL); entry->rtext = GetShortcutKey(wKeyBindings[WKBD_HIDE]); entry = wMenuAddCallback(menu, _("Resize/Move"), execMenuCommand, NULL); entry->rtext = GetShortcutKey(wKeyBindings[WKBD_MOVERESIZE]); entry = wMenuAddCallback(menu, _("Select"), execMenuCommand, NULL); entry->rtext = GetShortcutKey(wKeyBindings[WKBD_SELECT]); entry = wMenuAddCallback(menu, _("Move To"), NULL, NULL); scr->workspace_submenu = makeWorkspaceMenu(scr); if (scr->workspace_submenu) wMenuEntrySetCascade(menu, entry, scr->workspace_submenu); entry = wMenuAddCallback(menu, _("Attributes..."), execMenuCommand, NULL); entry = wMenuAddCallback(menu, _("Options"), NULL, NULL); wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr, makeOptionsMenu(scr))); /* entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); */ entry = wMenuAddCallback(menu, _("Launch"), execMenuCommand, NULL); entry->rtext = GetShortcutKey(wKeyBindings[WKBD_RELAUNCH]); entry = wMenuAddCallback(menu, _("Close"), execMenuCommand, NULL); entry->rtext = GetShortcutKey(wKeyBindings[WKBD_CLOSE]); entry = wMenuAddCallback(menu, _("Kill"), execMenuCommand, NULL); return menu; } void CloseWindowMenu(WScreen * scr) { if (scr->window_menu) { if (scr->window_menu->flags.mapped) wMenuUnmap(scr->window_menu); if (scr->window_menu->entries[0]->clientdata) { WWindow *wwin = (WWindow *) scr->window_menu->entries[0]->clientdata; wwin->flags.menu_open_for_me = 0; } scr->window_menu->entries[0]->clientdata = NULL; } } static void updateMenuForWindow(WMenu * menu, WWindow * wwin) { WApplication *wapp = wApplicationOf(wwin->main_window); WScreen *scr = wwin->screen_ptr; int i; updateOptionsMenu(menu, wwin); updateMakeShortcutMenu(menu, wwin); wMenuSetEnabled(menu, MC_HIDE, wapp != NULL && !WFLAGP(wapp->main_window_desc, no_appicon)); wMenuSetEnabled(menu, MC_CLOSE, (wwin->protocols.DELETE_WINDOW && !WFLAGP(wwin, no_closable))); if (wwin->flags.miniaturized) { static char *text = NULL; if (!text) text = _("Deminiaturize"); menu->entries[MC_MINIATURIZE]->text = text; } else { static char *text = NULL; if (!text) text = _("Miniaturize"); menu->entries[MC_MINIATURIZE]->text = text; } wMenuSetEnabled(menu, MC_MINIATURIZE, !WFLAGP(wwin, no_miniaturizable)); if (wwin->flags.maximized) { static char *text = NULL; if (!text) text = _("Unmaximize"); menu->entries[MC_MAXIMIZE]->text = text; } else { static char *text = NULL; if (!text) text = _("Maximize"); menu->entries[MC_MAXIMIZE]->text = text; } wMenuSetEnabled(menu, MC_MAXIMIZE, IS_RESIZABLE(wwin)); wMenuSetEnabled(menu, MC_MOVERESIZE, IS_RESIZABLE(wwin) && !wwin->flags.miniaturized); if (wwin->flags.shaded) { static char *text = NULL; if (!text) text = _("Unshade"); menu->entries[MC_SHADE]->text = text; } else { static char *text = NULL; if (!text) text = _("Shade"); menu->entries[MC_SHADE]->text = text; } wMenuSetEnabled(menu, MC_SHADE, !WFLAGP(wwin, no_shadeable) && !wwin->flags.miniaturized); if (wwin->flags.selected) { static char *text = NULL; if (!text) text = _("Deselect"); menu->entries[MC_SELECT]->text = text; } else { static char *text = NULL; if (!text) text = _("Select"); menu->entries[MC_SELECT]->text = text; } wMenuSetEnabled(menu, MC_DUMMY_MOVETO, !IS_OMNIPRESENT(wwin)); if (!wwin->flags.inspector_open) { wMenuSetEnabled(menu, MC_PROPERTIES, True); } else { wMenuSetEnabled(menu, MC_PROPERTIES, False); } /* set the client data of the entries to the window */ for (i = 0; i < menu->entry_no; i++) { menu->entries[i]->clientdata = wwin; } for (i = 0; i < scr->workspace_submenu->entry_no; i++) { scr->workspace_submenu->entries[i]->clientdata = wwin; if (i == scr->current_workspace) { wMenuSetEnabled(scr->workspace_submenu, i, False); } else { wMenuSetEnabled(scr->workspace_submenu, i, True); } } menu->flags.realized = 0; wMenuRealize(menu); } static WMenu *open_window_menu_core(WWindow *wwin, int x, int y) { WScreen *scr = wwin->screen_ptr; WMenu *menu; wwin->flags.menu_open_for_me = 1; if (!scr->window_menu) { scr->window_menu = createWindowMenu(scr); /* hack to save some memory allocation/deallocation */ wfree(scr->window_menu->entries[MC_MINIATURIZE]->text); wfree(scr->window_menu->entries[MC_MAXIMIZE]->text); wfree(scr->window_menu->entries[MC_SHADE]->text); wfree(scr->window_menu->entries[MC_SELECT]->text); } else { updateWorkspaceMenu(scr->workspace_submenu); } menu = scr->window_menu; if (menu->flags.mapped) { wMenuUnmap(menu); if (menu->entries[0]->clientdata == wwin) return NULL; } updateMenuForWindow(menu, wwin); return menu; } static void prepare_menu_position(WMenu *menu, int x, int y) { WMRect rect; rect = wGetRectForHead(menu->frame->screen_ptr, wGetHeadForPointerLocation(menu->frame->screen_ptr)); if (x < rect.pos.x - menu->frame->core->width / 2) x = rect.pos.x - menu->frame->core->width / 2; if (y < rect.pos.y) y = rect.pos.y; } void OpenWindowMenu(WWindow *wwin, int x, int y, int keyboard) { WMenu *menu; menu = open_window_menu_core(wwin, x, y); if (!menu) return; /* Specific menu position */ x -= menu->frame->core->width / 2; if (x + menu->frame->core->width > wwin->frame_x + wwin->frame->core->width) x = wwin->frame_x + wwin->frame->core->width - menu->frame->core->width; if (x < wwin->frame_x) x = wwin->frame_x; /* Common menu position */ prepare_menu_position(menu, x, y); if (!wwin->flags.internal_window) wMenuMapAt(menu, x, y, keyboard); } void OpenWindowMenu2(WWindow *wwin, int x, int y, int keyboard) { int i; WMenu *menu; WScreen *scr = wwin->screen_ptr; menu = open_window_menu_core(wwin, x, y); if (!menu) return; /* Specific menu position */ for (i = 0; i < scr->workspace_submenu->entry_no; i++) { scr->workspace_submenu->entries[i]->clientdata = wwin; wMenuSetEnabled(scr->workspace_submenu, i, True); } x -= menu->frame->core->width / 2; /* Common menu position */ prepare_menu_position(menu, x, y); if (!wwin->flags.internal_window) wMenuMapAt(menu, x, y, keyboard); } void OpenMiniwindowMenu(WWindow * wwin, int x, int y) { WMenu *menu; menu = open_window_menu_core(wwin, x, y); if (!menu) return; x -= menu->frame->core->width / 2; wMenuMapAt(menu, x, y, False); } void DestroyWindowMenu(WScreen *scr) { if (scr->window_menu) { scr->window_menu->entries[MC_MINIATURIZE]->text = NULL; scr->window_menu->entries[MC_MAXIMIZE]->text = NULL; scr->window_menu->entries[MC_SHADE]->text = NULL; scr->window_menu->entries[MC_SELECT]->text = NULL; wMenuDestroy(scr->window_menu, True); scr->window_menu = NULL; } } WindowMaker-0.95.5/src/winmenu.h0000644000175000017500000000224112214432632013402 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 2013 Window Maker Team * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMWINMENU_H #define WMWINMENU_H void OpenWindowMenu(WWindow *wwin, int x, int y, int keyboard); void OpenWindowMenu2(WWindow *wwin, int x, int y, int keyboard); void OpenMiniwindowMenu(WWindow *wwin, int x, int y); void CloseWindowMenu(WScreen *scr); void DestroyWindowMenu(WScreen *scr); #endif /* WMWINMENU_H */ WindowMaker-0.95.5/src/event.c0000644000175000017500000013326412214432632013046 00000000000000/* event.c- event loop and handling * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #ifdef HAVE_INOTIFY #include #include #endif #include #include #include #include #include #include #include #include #ifdef SHAPE # include #endif #ifdef XDND #include "xdnd.h" #endif #ifdef HAVE_XRANDR #include #endif #ifdef KEEP_XKB_LOCK_STATUS #include #endif /* KEEP_XKB_LOCK_STATUS */ #include "WindowMaker.h" #include "window.h" #include "actions.h" #include "client.h" #include "main.h" #include "cycling.h" #include "keybind.h" #include "application.h" #include "stacking.h" #include "defaults.h" #include "workspace.h" #include "dock.h" #include "framewin.h" #include "properties.h" #include "balloon.h" #include "xinerama.h" #include "wmspec.h" #include "rootmenu.h" #include "colormap.h" #include "screen.h" #include "shutdown.h" #include "misc.h" #include "event.h" #include "winmenu.h" #include "switchmenu.h" /******** Global Variables **********/ extern XContext wWinContext; extern XContext wVEdgeContext; extern Cursor wCursor[WCUR_LAST]; extern WShortKey wKeyBindings[WKBD_LAST]; extern int wScreenCount; extern Time LastTimestamp; extern Time LastFocusChange; #define MOD_MASK wPreferences.modifier_mask extern Atom _XA_WM_COLORMAP_NOTIFY; extern Atom _XA_WM_CHANGE_STATE; extern Atom _XA_WM_DELETE_WINDOW; extern Atom _XA_GNUSTEP_WM_ATTR; extern Atom _XA_GNUSTEP_WM_MINIATURIZE_WINDOW; extern Atom _XA_GNUSTEP_TITLEBAR_STATE; extern Atom _XA_WINDOWMAKER_WM_FUNCTION; extern Atom _XA_WINDOWMAKER_COMMAND; extern Atom _XA_WM_IGNORE_FOCUS_EVENTS; #ifdef SHAPE extern Bool wShapeSupported; extern int wShapeEventBase; #endif #ifdef KEEP_XKB_LOCK_STATUS extern int wXkbEventBase; #endif /************ Local stuff ***********/ static void saveTimestamp(XEvent *event); static void handleColormapNotify(XEvent *event); static void handleMapNotify(XEvent *event); static void handleUnmapNotify(XEvent *event); static void handleButtonPress(XEvent *event); static void handleExpose(XEvent *event); static void handleDestroyNotify(XEvent *event); static void handleConfigureRequest(XEvent *event); static void handleMapRequest(XEvent *event); static void handlePropertyNotify(XEvent *event); static void handleEnterNotify(XEvent *event); static void handleLeaveNotify(XEvent *event); static void handleExtensions(XEvent *event); static void handleClientMessage(XEvent *event); static void handleKeyPress(XEvent *event); static void handleFocusIn(XEvent *event); static void handleMotionNotify(XEvent *event); static void handleVisibilityNotify(XEvent *event); static void handle_inotify_events(int fd, int wd); static void wdelete_death_handler(WMagicNumber id); #ifdef SHAPE static void handleShapeNotify(XEvent *event); #endif #ifdef KEEP_XKB_LOCK_STATUS static void handleXkbIndicatorStateNotify(XEvent *event); #endif /* real dead process handler */ static void handleDeadProcess(void *foo); typedef struct DeadProcesses { pid_t pid; unsigned char exit_status; } DeadProcesses; /* stack of dead processes */ static DeadProcesses deadProcesses[MAX_DEAD_PROCESSES]; static int deadProcessPtr = 0; typedef struct DeathHandler { WDeathHandler *callback; pid_t pid; void *client_data; } DeathHandler; static WMArray *deathHandlers = NULL; WMagicNumber wAddDeathHandler(pid_t pid, WDeathHandler * callback, void *cdata) { DeathHandler *handler; handler = malloc(sizeof(DeathHandler)); if (!handler) return 0; handler->pid = pid; handler->callback = callback; handler->client_data = cdata; if (!deathHandlers) deathHandlers = WMCreateArrayWithDestructor(8, free); WMAddToArray(deathHandlers, handler); return handler; } static void wdelete_death_handler(WMagicNumber id) { DeathHandler *handler = (DeathHandler *) id; if (!handler || !deathHandlers) return; /* array destructor will call free(handler) */ WMRemoveFromArray(deathHandlers, handler); } void DispatchEvent(XEvent * event) { if (deathHandlers) handleDeadProcess(NULL); if (WCHECK_STATE(WSTATE_NEED_EXIT)) { WCHANGE_STATE(WSTATE_EXITING); /* received SIGTERM */ /* * WMHandleEvent() can't be called from anything * executed inside here, or we can get in a infinite * recursive loop. */ Shutdown(WSExitMode); } else if (WCHECK_STATE(WSTATE_NEED_RESTART)) { WCHANGE_STATE(WSTATE_RESTARTING); Shutdown(WSRestartPreparationMode); /* received SIGHUP */ Restart(NULL, True); } else if (WCHECK_STATE(WSTATE_NEED_REREAD)) { WCHANGE_STATE(WSTATE_NORMAL); wDefaultsCheckDomains(NULL); } /* for the case that all that is wanted to be dispatched is * the stuff above */ if (!event) return; saveTimestamp(event); switch (event->type) { case MapRequest: handleMapRequest(event); break; case KeyPress: handleKeyPress(event); break; case MotionNotify: handleMotionNotify(event); break; case ConfigureRequest: handleConfigureRequest(event); break; case DestroyNotify: handleDestroyNotify(event); break; case MapNotify: handleMapNotify(event); break; case UnmapNotify: handleUnmapNotify(event); break; case ButtonPress: handleButtonPress(event); break; case Expose: handleExpose(event); break; case PropertyNotify: handlePropertyNotify(event); break; case EnterNotify: handleEnterNotify(event); break; case LeaveNotify: handleLeaveNotify(event); break; case ClientMessage: handleClientMessage(event); break; case ColormapNotify: handleColormapNotify(event); break; case MappingNotify: if (event->xmapping.request == MappingKeyboard || event->xmapping.request == MappingModifier) XRefreshKeyboardMapping(&event->xmapping); break; case FocusIn: handleFocusIn(event); break; case VisibilityNotify: handleVisibilityNotify(event); break; case ConfigureNotify: #ifdef HAVE_XRANDR if (event->xconfigure.window == DefaultRootWindow(dpy)) XRRUpdateConfiguration(event); #endif break; default: handleExtensions(event); break; } } #ifdef HAVE_INOTIFY /* *---------------------------------------------------------------------- * handle_inotify_events- * Check for inotify events * * Returns: * After reading events for the given file descriptor (fd) and * watch descriptor (wd) * * Side effects: * Calls wDefaultsCheckDomains if config database is updated *---------------------------------------------------------------------- */ /* allow 5 simultaneous events, with path + filenames up to 64 chars */ #define BUFF_SIZE ((sizeof(struct inotify_event) + 64)*5) static void handle_inotify_events(int fd, int wd) { ssize_t eventQLength, i = 0; char buff[BUFF_SIZE] = { 0 }; /* Check config only once per read of the event queue */ int oneShotFlag = 0; /* * Read off the queued events * queue overflow is not checked (IN_Q_OVERFLOW). In practise this should * not occur; the block is on Xevents, but a config file change will normally * occur as a result of an Xevent - so the event queue should never have more than * a few entries before a read(). */ eventQLength = read(fd, buff, BUFF_SIZE); /* check what events occured */ /* Should really check wd here too, but for now we only have one watch! */ while (i < eventQLength) { struct inotify_event *pevent = (struct inotify_event *)&buff[i]; /* * see inotify.h for event types. */ if (pevent->mask & IN_DELETE_SELF) { wwarning(_("the defaults database has been deleted!" " Restart Window Maker to create the database" " with the default settings")); close(fd); } if (pevent->mask & IN_UNMOUNT) { wwarning(_("the unit containing the defaults database has" " been unmounted. Setting --static mode." " Any changes will not be saved.")); close(fd); wPreferences.flags.noupdates = 1; } if ((pevent->mask & IN_MODIFY) && oneShotFlag == 0) { wwarning(_("Inotify: Reading config files in defaults database.")); wDefaultsCheckDomains(NULL); } /* move to next event in the buffer */ i += sizeof(struct inotify_event) + pevent->len; } } #endif /* HAVE_INOTIFY */ /* *---------------------------------------------------------------------- * EventLoop- * Processes X and internal events indefinitely. * * Returns: * Never returns * * Side effects: * The LastTimestamp global variable is updated. * Calls inotifyGetEvents if defaults database changes. *---------------------------------------------------------------------- */ noreturn void EventLoop(void) { XEvent event; #ifdef HAVE_INOTIFY extern int inotifyFD; extern int inotifyWD; struct timeval time; fd_set rfds; int retVal = 0; if (inotifyFD < 0 || inotifyWD < 0) retVal = -1; #endif for (;;) { WMNextEvent(dpy, &event); /* Blocks here */ WMHandleEvent(&event); #ifdef HAVE_INOTIFY if (retVal != -1) { time.tv_sec = 0; time.tv_usec = 0; FD_ZERO(&rfds); FD_SET(inotifyFD, &rfds); /* check for available read data from inotify - don't block! */ retVal = select(inotifyFD + 1, &rfds, NULL, NULL, &time); if (retVal < 0) { /* an error has occured */ wwarning(_("select failed. The inotify instance will be closed." " Changes to the defaults database will require" " a restart to take effect.")); close(inotifyFD); continue; } if (FD_ISSET(inotifyFD, &rfds)) handle_inotify_events(inotifyFD, inotifyWD); } #endif } } /* *---------------------------------------------------------------------- * ProcessPendingEvents -- * Processes the events that are currently pending (at the time * this function is called) in the display's queue. * * Returns: * After the pending events that were present at the function call * are processed. * * Side effects: * Many -- whatever handling events may involve. * *---------------------------------------------------------------------- */ void ProcessPendingEvents(void) { XEvent event; int count; XSync(dpy, False); /* Take a snapshot of the event count in the queue */ count = XPending(dpy); while (count > 0 && XPending(dpy)) { WMNextEvent(dpy, &event); WMHandleEvent(&event); count--; } } Bool 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.window == scr->last_click_window)) { scr->flags.next_click_is_not_double = 1; scr->last_click_time = 0; scr->last_click_window = event->xbutton.window; return True; } return False; } void NotifyDeadProcess(pid_t pid, unsigned char status) { if (deadProcessPtr >= MAX_DEAD_PROCESSES - 1) { wwarning("stack overflow: too many dead processes"); return; } /* stack the process to be handled later, * as this is called from the signal handler */ deadProcesses[deadProcessPtr].pid = pid; deadProcesses[deadProcessPtr].exit_status = status; deadProcessPtr++; } static void handleDeadProcess(void *foo) { DeathHandler *tmp; int i; for (i = 0; i < deadProcessPtr; i++) { wWindowDeleteSavedStatesForPID(deadProcesses[i].pid); } if (!deathHandlers) { deadProcessPtr = 0; return; } /* get the pids on the queue and call handlers */ while (deadProcessPtr > 0) { deadProcessPtr--; for (i = WMGetArrayItemCount(deathHandlers) - 1; i >= 0; i--) { tmp = WMGetFromArray(deathHandlers, i); if (!tmp) continue; if (tmp->pid == deadProcesses[deadProcessPtr].pid) { (*tmp->callback) (tmp->pid, deadProcesses[deadProcessPtr].exit_status, tmp->client_data); wdelete_death_handler(tmp); } } } } static void saveTimestamp(XEvent * event) { /* * Never save CurrentTime as LastTimestamp because CurrentTime * it's not a real timestamp (it's the 0L constant) */ switch (event->type) { case ButtonRelease: case ButtonPress: LastTimestamp = event->xbutton.time; break; case KeyPress: case KeyRelease: LastTimestamp = event->xkey.time; break; case MotionNotify: LastTimestamp = event->xmotion.time; break; case PropertyNotify: LastTimestamp = event->xproperty.time; break; case EnterNotify: case LeaveNotify: LastTimestamp = event->xcrossing.time; break; case SelectionClear: LastTimestamp = event->xselectionclear.time; break; case SelectionRequest: LastTimestamp = event->xselectionrequest.time; break; case SelectionNotify: LastTimestamp = event->xselection.time; #ifdef XDND wXDNDProcessSelection(event); #endif break; } } static int matchWindow(const void *item, const void *cdata) { return (((WFakeGroupLeader *) item)->origLeader == (Window) cdata); } static void handleExtensions(XEvent * event) { #ifdef KEEP_XKB_LOCK_STATUS XkbEvent *xkbevent; xkbevent = (XkbEvent *) event; #endif /*KEEP_XKB_LOCK_STATUS */ #ifdef SHAPE if (wShapeSupported && event->type == (wShapeEventBase + ShapeNotify)) { handleShapeNotify(event); } #endif #ifdef KEEP_XKB_LOCK_STATUS if (wPreferences.modelock && (xkbevent->type == wXkbEventBase)) { handleXkbIndicatorStateNotify(event); } #endif /*KEEP_XKB_LOCK_STATUS */ #ifdef HAVE_XRANDR if (has_randr && event->type == (randr_event_base + RRScreenChangeNotify)) { /* From xrandr man page: "Clients must call back into Xlib using * XRRUpdateConfiguration when screen configuration change notify * events are generated */ XRRUpdateConfiguration(event); WCHANGE_STATE(WSTATE_RESTARTING); Shutdown(WSRestartPreparationMode); Restart(NULL,True); } #endif } static void handleMapRequest(XEvent * ev) { WWindow *wwin; WScreen *scr = NULL; Window window = ev->xmaprequest.window; if ((wwin = wWindowFor(window))) { if (wwin->flags.shaded) { wUnshadeWindow(wwin); } /* deiconify window */ if (wwin->flags.miniaturized) { wDeiconifyWindow(wwin); } else if (wwin->flags.hidden) { WApplication *wapp = wApplicationOf(wwin->main_window); /* go to the last workspace that the user worked on the app */ if (wapp) { wWorkspaceChange(wwin->screen_ptr, wapp->last_workspace); } wUnhideApplication(wapp, False, False); } return; } scr = wScreenForRootWindow(ev->xmaprequest.parent); wwin = wManageWindow(scr, window); /* * This is to let the Dock know that the application it launched * has already been mapped (eg: it has finished launching). * It is not necessary for normally docked apps, but is needed for * apps that were forcedly docked (like with dockit). */ if (scr->last_dock) { if (wwin && wwin->main_window != None && wwin->main_window != window) wDockTrackWindowLaunch(scr->last_dock, wwin->main_window); else wDockTrackWindowLaunch(scr->last_dock, window); } if (wwin) { wClientSetState(wwin, NormalState, None); if (wwin->flags.maximized) { wMaximizeWindow(wwin, wwin->flags.maximized); } if (wwin->flags.shaded) { wwin->flags.shaded = 0; wwin->flags.skip_next_animation = 1; wShadeWindow(wwin); } if (wwin->flags.miniaturized) { wwin->flags.miniaturized = 0; wwin->flags.skip_next_animation = 1; wIconifyWindow(wwin); } if (wwin->flags.fullscreen) { wwin->flags.fullscreen = 0; wFullscreenWindow(wwin); } if (wwin->flags.hidden) { WApplication *wapp = wApplicationOf(wwin->main_window); wwin->flags.hidden = 0; wwin->flags.skip_next_animation = 1; if (wapp) { wHideApplication(wapp); } } } } static void handleDestroyNotify(XEvent * event) { WWindow *wwin; WApplication *app; Window window = event->xdestroywindow.window; WScreen *scr = wScreenForRootWindow(event->xdestroywindow.event); int widx; wwin = wWindowFor(window); if (wwin) { wUnmanageWindow(wwin, False, True); } if (scr != NULL) { while ((widx = WMFindInArray(scr->fakeGroupLeaders, matchWindow, (void *)window)) != WANotFound) { WFakeGroupLeader *fPtr; fPtr = WMGetFromArray(scr->fakeGroupLeaders, widx); if (fPtr->retainCount > 0) { fPtr->retainCount--; if (fPtr->retainCount == 0 && fPtr->leader != None) { XDestroyWindow(dpy, fPtr->leader); fPtr->leader = None; XFlush(dpy); } } fPtr->origLeader = None; } } app = wApplicationOf(window); if (app) { if (window == app->main_window) { app->refcount = 0; wwin = app->main_window_desc->screen_ptr->focused_window; while (wwin) { if (wwin->main_window == window) { wwin->main_window = None; } wwin = wwin->prev; } } wApplicationDestroy(app); } } static void handleExpose(XEvent * event) { WObjDescriptor *desc; XEvent ev; while (XCheckTypedWindowEvent(dpy, event->xexpose.window, Expose, &ev)) ; if (XFindContext(dpy, event->xexpose.window, wWinContext, (XPointer *) & desc) == XCNOENT) { return; } if (desc->handle_expose) { (*desc->handle_expose) (desc, event); } } static void executeButtonAction(WScreen * scr, XEvent * event, int action) { switch (action) { case WA_SELECT_WINDOWS: wUnselectWindows(scr); wSelectWindows(scr, event); break; case WA_OPEN_APPMENU: OpenRootMenu(scr, event->xbutton.x_root, event->xbutton.y_root, False); /* ugly hack */ if (scr->root_menu) { if (scr->root_menu->brother->flags.mapped) event->xbutton.window = scr->root_menu->brother->frame->core->window; else event->xbutton.window = scr->root_menu->frame->core->window; } break; case WA_OPEN_WINLISTMENU: OpenSwitchMenu(scr, event->xbutton.x_root, event->xbutton.y_root, False); if (scr->switch_menu) { if (scr->switch_menu->brother->flags.mapped) event->xbutton.window = scr->switch_menu->brother->frame->core->window; else event->xbutton.window = scr->switch_menu->frame->core->window; } break; default: break; } } /* bindable */ static void handleButtonPress(XEvent * event) { WObjDescriptor *desc; WScreen *scr; scr = wScreenForRootWindow(event->xbutton.root); #ifdef BALLOON_TEXT wBalloonHide(scr); #endif if (event->xbutton.window == scr->root_win) { if (event->xbutton.button == Button1 && wPreferences.mouse_button1 != WA_NONE) { executeButtonAction(scr, event, wPreferences.mouse_button1); } else if (event->xbutton.button == Button2 && wPreferences.mouse_button2 != WA_NONE) { executeButtonAction(scr, event, wPreferences.mouse_button2); } else if (event->xbutton.button == Button3 && wPreferences.mouse_button3 != WA_NONE) { executeButtonAction(scr, event, wPreferences.mouse_button3); } else if (event->xbutton.button == Button4 && wPreferences.mouse_wheel != WA_NONE) { wWorkspaceRelativeChange(scr, 1); } else if (event->xbutton.button == Button5 && wPreferences.mouse_wheel != WA_NONE) { wWorkspaceRelativeChange(scr, -1); } } desc = NULL; if (XFindContext(dpy, event->xbutton.subwindow, wWinContext, (XPointer *) & desc) == XCNOENT) { if (XFindContext(dpy, event->xbutton.window, wWinContext, (XPointer *) & desc) == XCNOENT) { return; } } if (desc->parent_type == WCLASS_WINDOW) { XSync(dpy, 0); if (event->xbutton.state & ( MOD_MASK | ControlMask )) { XAllowEvents(dpy, AsyncPointer, CurrentTime); } else { /* if (wPreferences.focus_mode == WKF_CLICK) { */ if (wPreferences.ignore_focus_click) { XAllowEvents(dpy, AsyncPointer, CurrentTime); } XAllowEvents(dpy, ReplayPointer, CurrentTime); /* } */ } XSync(dpy, 0); } else if (desc->parent_type == WCLASS_APPICON || desc->parent_type == WCLASS_MINIWINDOW || desc->parent_type == WCLASS_DOCK_ICON) { if (event->xbutton.state & MOD_MASK) { XSync(dpy, 0); XAllowEvents(dpy, AsyncPointer, CurrentTime); XSync(dpy, 0); } } 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.window; } } static void handleMapNotify(XEvent * event) { WWindow *wwin; wwin = wWindowFor(event->xmap.event); if (wwin && wwin->client_win == event->xmap.event) { if (wwin->flags.miniaturized) { wDeiconifyWindow(wwin); } else { XGrabServer(dpy); wWindowMap(wwin); wClientSetState(wwin, NormalState, None); XUngrabServer(dpy); } } } static void handleUnmapNotify(XEvent * event) { WWindow *wwin; XEvent ev; Bool withdraw = False; /* only process windows with StructureNotify selected * (ignore SubstructureNotify) */ wwin = wWindowFor(event->xunmap.window); if (!wwin) return; /* 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.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; XSync(dpy, 0); /* check if the window was destroyed */ if (XCheckTypedWindowEvent(dpy, wwin->client_win, DestroyNotify, &ev)) { DispatchEvent(&ev); } else { Bool reparented = False; if (XCheckTypedWindowEvent(dpy, wwin->client_win, ReparentNotify, &ev)) reparented = True; /* withdraw window */ wwin->flags.mapped = 0; if (!reparented) wClientSetState(wwin, WithdrawnState, None); /* if the window was reparented, do not reparent it back to the * root window */ wUnmanageWindow(wwin, !reparented, False); } XUngrabServer(dpy); } static void handleConfigureRequest(XEvent * event) { WWindow *wwin; if (!(wwin = wWindowFor(event->xconfigurerequest.window))) { /* * Configure request for unmapped window */ wClientConfigure(NULL, &(event->xconfigurerequest)); } else { wClientConfigure(wwin, &(event->xconfigurerequest)); } } static void handlePropertyNotify(XEvent * event) { WWindow *wwin; WApplication *wapp; Window jr; int ji; unsigned int ju; wwin = wWindowFor(event->xproperty.window); if (wwin) { if (!XGetGeometry(dpy, wwin->client_win, &jr, &ji, &ji, &ju, &ju, &ju, &ju)) { return; } wClientCheckProperty(wwin, &event->xproperty); } wapp = wApplicationOf(event->xproperty.window); if (wapp) { wClientCheckProperty(wapp->main_window_desc, &event->xproperty); } } static void handleClientMessage(XEvent * event) { WWindow *wwin; WObjDescriptor *desc; /* handle transition from Normal to Iconic state */ if (event->xclient.message_type == _XA_WM_CHANGE_STATE && event->xclient.format == 32 && event->xclient.data.l[0] == IconicState) { wwin = wWindowFor(event->xclient.window); if (!wwin) return; if (!wwin->flags.miniaturized) wIconifyWindow(wwin); } else if (event->xclient.message_type == _XA_WM_COLORMAP_NOTIFY && event->xclient.format == 32) { WScreen *scr = wScreenForRootWindow(event->xclient.window); if (!scr) return; if (event->xclient.data.l[1] == 1) { /* starting */ wColormapAllowClientInstallation(scr, True); } else { /* stopping */ wColormapAllowClientInstallation(scr, False); } } else if (event->xclient.message_type == _XA_WINDOWMAKER_COMMAND) { char *command; size_t len; len = sizeof(event->xclient.data.b) + 1; command = wmalloc(len); strncpy(command, event->xclient.data.b, sizeof(event->xclient.data.b)); if (strncmp(command, "Reconfigure", sizeof("Reconfigure")) == 0) { wwarning(_("Got Reconfigure command")); wDefaultsCheckDomains(NULL); } else { wwarning(_("Got unknown command %s"), command); } wfree(command); } else if (event->xclient.message_type == _XA_WINDOWMAKER_WM_FUNCTION) { WApplication *wapp; int done = 0; wapp = wApplicationOf(event->xclient.window); if (wapp) { switch (event->xclient.data.l[0]) { case WMFHideOtherApplications: wHideOtherApplications(wapp->main_window_desc); done = 1; break; case WMFHideApplication: wHideApplication(wapp); done = 1; break; } } if (!done) { wwin = wWindowFor(event->xclient.window); if (wwin) { switch (event->xclient.data.l[0]) { case WMFHideOtherApplications: wHideOtherApplications(wwin); break; case WMFHideApplication: wHideApplication(wApplicationOf(wwin->main_window)); break; } } } } else if (event->xclient.message_type == _XA_GNUSTEP_WM_ATTR) { wwin = wWindowFor(event->xclient.window); if (!wwin) return; switch (event->xclient.data.l[0]) { case GSWindowLevelAttr: { int level = (int)event->xclient.data.l[1]; if (WINDOW_LEVEL(wwin) != level) { ChangeStackingLevel(wwin->frame->core, level); } } break; } } else if (event->xclient.message_type == _XA_GNUSTEP_TITLEBAR_STATE) { wwin = wWindowFor(event->xclient.window); if (!wwin) return; switch (event->xclient.data.l[0]) { case WMTitleBarNormal: wFrameWindowChangeState(wwin->frame, WS_UNFOCUSED); break; case WMTitleBarMain: wFrameWindowChangeState(wwin->frame, WS_PFOCUSED); break; case WMTitleBarKey: wFrameWindowChangeState(wwin->frame, WS_FOCUSED); break; } } else if (event->xclient.message_type == _XA_WM_IGNORE_FOCUS_EVENTS) { WScreen *scr = wScreenForRootWindow(event->xclient.window); if (!scr) return; scr->flags.ignore_focus_events = event->xclient.data.l[0] ? 1 : 0; } else if (wNETWMProcessClientMessage(&event->xclient)) { /* do nothing */ #ifdef XDND } else if (wXDNDProcessClientMessage(&event->xclient)) { /* do nothing */ #endif /* XDND */ } else { /* * Non-standard thing, but needed by OffiX DND. * For when the icon frame gets a ClientMessage * that should have gone to the icon_window. */ if (XFindContext(dpy, event->xbutton.window, wWinContext, (XPointer *) & desc) != XCNOENT) { struct WIcon *icon = NULL; if (desc->parent_type == WCLASS_MINIWINDOW) { icon = (WIcon *) desc->parent; } else if (desc->parent_type == WCLASS_DOCK_ICON || desc->parent_type == WCLASS_APPICON) { icon = ((WAppIcon *) desc->parent)->icon; } if (icon && (wwin = icon->owner)) { if (wwin->client_win != event->xclient.window) { event->xclient.window = wwin->client_win; XSendEvent(dpy, wwin->client_win, False, NoEventMask, event); } } } } } static void raiseWindow(WScreen * scr) { WWindow *wwin; scr->autoRaiseTimer = NULL; wwin = wWindowFor(scr->autoRaiseWindow); if (!wwin) return; if (!wwin->flags.destroyed && wwin->flags.focused) { wRaiseFrame(wwin->frame->core); /* this is needed or a race condition will occur */ XSync(dpy, False); } } static void handleEnterNotify(XEvent * event) { WWindow *wwin; WObjDescriptor *desc = NULL; XEvent ev; WScreen *scr = wScreenForRootWindow(event->xcrossing.root); if (XCheckTypedWindowEvent(dpy, event->xcrossing.window, LeaveNotify, &ev)) { /* already left the window... */ saveTimestamp(&ev); if (ev.xcrossing.mode == event->xcrossing.mode && ev.xcrossing.detail == event->xcrossing.detail) { return; } } if (XFindContext(dpy, event->xcrossing.window, wWinContext, (XPointer *) & desc) != XCNOENT) { if (desc->handle_enternotify) (*desc->handle_enternotify) (desc, event); } /* enter to window */ wwin = wWindowFor(event->xcrossing.window); if (!wwin) { if (wPreferences.colormap_mode == WCM_POINTER) { wColormapInstallForWindow(scr, NULL); } if (scr->autoRaiseTimer && event->xcrossing.root == event->xcrossing.window) { WMDeleteTimerHandler(scr->autoRaiseTimer); scr->autoRaiseTimer = NULL; } } else { /* set auto raise timer even if in focus-follows-mouse mode * and the event is for the frame window, even if the window * has focus already. useful if you move the pointer from a focused * window to the root window and back pretty fast * * set focus if in focus-follows-mouse mode and the event * is for the frame window and window doesn't have focus yet */ if (wPreferences.focus_mode == WKF_SLOPPY && wwin->frame->core->window == event->xcrossing.window && !scr->flags.doing_alt_tab) { if (!wwin->flags.focused && !WFLAGP(wwin, no_focusable)) wSetFocusTo(scr, wwin); if (scr->autoRaiseTimer) WMDeleteTimerHandler(scr->autoRaiseTimer); scr->autoRaiseTimer = NULL; if (wPreferences.raise_delay && !WFLAGP(wwin, no_focusable)) { scr->autoRaiseWindow = wwin->frame->core->window; scr->autoRaiseTimer = WMAddTimerHandler(wPreferences.raise_delay, (WMCallback *) raiseWindow, scr); } } /* Install colormap for window, if the colormap installation mode * is colormap_follows_mouse */ if (wPreferences.colormap_mode == WCM_POINTER) { if (wwin->client_win == event->xcrossing.window) wColormapInstallForWindow(scr, wwin); else wColormapInstallForWindow(scr, NULL); } } if (event->xcrossing.window == event->xcrossing.root && event->xcrossing.detail == NotifyNormal && event->xcrossing.detail != NotifyInferior && wPreferences.focus_mode != WKF_CLICK) { wSetFocusTo(scr, scr->focused_window); } #ifdef BALLOON_TEXT wBalloonEnteredObject(scr, desc); #endif } static void handleLeaveNotify(XEvent * event) { WObjDescriptor *desc = NULL; if (XFindContext(dpy, event->xcrossing.window, wWinContext, (XPointer *) & desc) != XCNOENT) { if (desc->handle_leavenotify) (*desc->handle_leavenotify) (desc, event); } } #ifdef SHAPE static void handleShapeNotify(XEvent * event) { XShapeEvent *shev = (XShapeEvent *) event; WWindow *wwin; union { XEvent xevent; XShapeEvent xshape; } ev; while (XCheckTypedWindowEvent(dpy, shev->window, event->type, &ev.xevent)) { if (ev.xshape.kind == ShapeBounding) { if (ev.xshape.shaped == shev->shaped) { *shev = ev.xshape; } else { XPutBackEvent(dpy, &ev.xevent); break; } } } wwin = wWindowFor(shev->window); if (!wwin || shev->kind != ShapeBounding) return; if (!shev->shaped && wwin->flags.shaped) { wwin->flags.shaped = 0; wWindowClearShape(wwin); } else if (shev->shaped) { wwin->flags.shaped = 1; wWindowSetShape(wwin); } } #endif /* SHAPE */ #ifdef KEEP_XKB_LOCK_STATUS /* please help ]d if you know what to do */ static void handleXkbIndicatorStateNotify(XEvent *event) { WWindow *wwin; WScreen *scr; XkbStateRec staterec; int i; for (i = 0; i < wScreenCount; i++) { scr = wScreenWithNumber(i); wwin = scr->focused_window; if (wwin && wwin->flags.focused) { XkbGetState(dpy, XkbUseCoreKbd, &staterec); if (wwin->frame->languagemode != staterec.group) { wwin->frame->last_languagemode = wwin->frame->languagemode; wwin->frame->languagemode = staterec.group; } #ifdef XKB_BUTTON_HINT if (wwin->frame->titlebar) { wFrameWindowPaint(wwin->frame); } #endif } } } #endif /*KEEP_XKB_LOCK_STATUS */ static void handleColormapNotify(XEvent * event) { WWindow *wwin; WScreen *scr; Bool reinstall = False; wwin = wWindowFor(event->xcolormap.window); if (!wwin) return; scr = wwin->screen_ptr; do { if (wwin) { if (event->xcolormap.new) { XWindowAttributes attr; XGetWindowAttributes(dpy, wwin->client_win, &attr); if (wwin == scr->cmap_window && wwin->cmap_window_no == 0) scr->current_colormap = attr.colormap; reinstall = True; } else if (event->xcolormap.state == ColormapUninstalled && scr->current_colormap == event->xcolormap.colormap) { /* some bastard app (like XV) removed our colormap */ /* * can't enforce or things like xscreensaver wont work * reinstall = True; */ } else if (event->xcolormap.state == ColormapInstalled && scr->current_colormap == event->xcolormap.colormap) { /* someone has put our colormap back */ reinstall = False; } } } while (XCheckTypedEvent(dpy, ColormapNotify, event) && ((wwin = wWindowFor(event->xcolormap.window)) || 1)); if (reinstall && scr->current_colormap != None) { if (!scr->flags.colormap_stuff_blocked) XInstallColormap(dpy, scr->current_colormap); } } static void handleFocusIn(XEvent * event) { WWindow *wwin; /* * For applications that like stealing the focus. */ while (XCheckTypedEvent(dpy, FocusIn, event)) ; saveTimestamp(event); if (event->xfocus.mode == NotifyUngrab || event->xfocus.mode == NotifyGrab || event->xfocus.detail > NotifyNonlinearVirtual) { return; } wwin = wWindowFor(event->xfocus.window); if (wwin && !wwin->flags.focused) { if (wwin->flags.mapped) wSetFocusTo(wwin->screen_ptr, wwin); else wSetFocusTo(wwin->screen_ptr, NULL); } else if (!wwin) { WScreen *scr = wScreenForWindow(event->xfocus.window); if (scr) wSetFocusTo(scr, NULL); } } static WWindow *windowUnderPointer(WScreen * scr) { unsigned int mask; int foo; Window bar, win; if (XQueryPointer(dpy, scr->root_win, &bar, &win, &foo, &foo, &foo, &foo, &mask)) return wWindowFor(win); return NULL; } static int CheckFullScreenWindowFocused(WScreen * scr) { if (scr->focused_window && scr->focused_window->flags.fullscreen) return 1; else return 0; } static void handleKeyPress(XEvent * event) { WScreen *scr = wScreenForRootWindow(event->xkey.root); WWindow *wwin = scr->focused_window; short i, widx; int modifiers; int command = -1; #ifdef KEEP_XKB_LOCK_STATUS XkbStateRec staterec; #endif /*KEEP_XKB_LOCK_STATUS */ /* ignore CapsLock */ modifiers = event->xkey.state & ValidModMask; for (i = 0; i < WKBD_LAST; i++) { if (wKeyBindings[i].keycode == 0) continue; if (wKeyBindings[i].keycode == event->xkey.keycode && ( /*wKeyBindings[i].modifier==0 || */ wKeyBindings[i].modifier == modifiers)) { command = i; break; } } if (command < 0) { if (!wRootMenuPerformShortcut(event)) { static int dontLoop = 0; if (dontLoop > 10) { wwarning("problem with key event processing code"); return; } dontLoop++; /* if the focused window is an internal window, try redispatching * the event to the managed window, as it can be a WINGs window */ if (wwin && wwin->flags.internal_window && wwin->client_leader != None) { /* client_leader contains the WINGs toplevel */ event->xany.window = wwin->client_leader; WMHandleEvent(event); } dontLoop--; } return; } #define ISMAPPED(w) ((w) && !(w)->flags.miniaturized && ((w)->flags.mapped || (w)->flags.shaded)) #define ISFOCUSED(w) ((w) && (w)->flags.focused) switch (command) { case WKBD_ROOTMENU: /*OpenRootMenu(scr, event->xkey.x_root, event->xkey.y_root, True); */ if (!CheckFullScreenWindowFocused(scr)) { WMRect rect = wGetRectForHead(scr, wGetHeadForPointerLocation(scr)); OpenRootMenu(scr, rect.pos.x + rect.size.width / 2, rect.pos.y + rect.size.height / 2, True); } break; case WKBD_WINDOWLIST: if (!CheckFullScreenWindowFocused(scr)) { WMRect rect = wGetRectForHead(scr, wGetHeadForPointerLocation(scr)); OpenSwitchMenu(scr, rect.pos.x + rect.size.width / 2, rect.pos.y + rect.size.height / 2, True); } break; case WKBD_WINDOWMENU: if (ISMAPPED(wwin) && ISFOCUSED(wwin)) OpenWindowMenu(wwin, wwin->frame_x, wwin->frame_y + wwin->frame->top_width, True); break; case WKBD_MINIMIZEALL: CloseWindowMenu(scr); wHideAll(scr); break; case WKBD_MINIATURIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && !WFLAGP(wwin, no_miniaturizable)) { CloseWindowMenu(scr); if (wwin->protocols.MINIATURIZE_WINDOW) wClientSendProtocol(wwin, _XA_GNUSTEP_WM_MINIATURIZE_WINDOW, event->xbutton.time); else { wIconifyWindow(wwin); } } break; case WKBD_HIDE: if (ISMAPPED(wwin) && ISFOCUSED(wwin)) { WApplication *wapp = wApplicationOf(wwin->main_window); CloseWindowMenu(scr); if (wapp && !WFLAGP(wapp->main_window_desc, no_appicon)) { wHideApplication(wapp); } } break; case WKBD_HIDE_OTHERS: if (ISMAPPED(wwin) && ISFOCUSED(wwin)) { CloseWindowMenu(scr); wHideOtherApplications(wwin); } break; case WKBD_MAXIMIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) { CloseWindowMenu(scr); handleMaximize(wwin, MAX_VERTICAL | MAX_HORIZONTAL | MAX_KEYBOARD); } break; case WKBD_VMAXIMIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) { CloseWindowMenu(scr); handleMaximize(wwin, MAX_VERTICAL | MAX_KEYBOARD); } break; case WKBD_HMAXIMIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) { CloseWindowMenu(scr); handleMaximize(wwin, MAX_HORIZONTAL | MAX_KEYBOARD); } break; case WKBD_LHMAXIMIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) { CloseWindowMenu(scr); handleMaximize(wwin, MAX_VERTICAL | MAX_LEFTHALF | MAX_KEYBOARD); } break; case WKBD_RHMAXIMIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) { CloseWindowMenu(scr); handleMaximize(wwin, MAX_VERTICAL | MAX_RIGHTHALF | MAX_KEYBOARD); } break; case WKBD_THMAXIMIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) { CloseWindowMenu(scr); handleMaximize(wwin, MAX_HORIZONTAL | MAX_TOPHALF | MAX_KEYBOARD); } break; case WKBD_BHMAXIMIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) { CloseWindowMenu(scr); handleMaximize(wwin, MAX_HORIZONTAL | MAX_BOTTOMHALF | MAX_KEYBOARD); } break; case WKBD_LTCMAXIMIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) { CloseWindowMenu(scr); handleMaximize(wwin, MAX_LEFTHALF | MAX_TOPHALF | MAX_KEYBOARD); } break; case WKBD_RTCMAXIMIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) { CloseWindowMenu(scr); handleMaximize(wwin, MAX_RIGHTHALF | MAX_TOPHALF | MAX_KEYBOARD); } break; case WKBD_LBCMAXIMIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) { CloseWindowMenu(scr); handleMaximize(wwin, MAX_LEFTHALF | MAX_BOTTOMHALF | MAX_KEYBOARD); } break; case WKBD_RBCMAXIMIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) { CloseWindowMenu(scr); handleMaximize(wwin, MAX_RIGHTHALF | MAX_BOTTOMHALF | MAX_KEYBOARD); } break; case WKBD_MAXIMUS: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) { CloseWindowMenu(scr); handleMaximize(wwin, MAX_MAXIMUS | MAX_KEYBOARD); } break; case WKBD_RAISE: if (ISMAPPED(wwin) && ISFOCUSED(wwin)) { CloseWindowMenu(scr); wRaiseFrame(wwin->frame->core); } break; case WKBD_LOWER: if (ISMAPPED(wwin) && ISFOCUSED(wwin)) { CloseWindowMenu(scr); wLowerFrame(wwin->frame->core); } break; case WKBD_RAISELOWER: /* raise or lower the window under the pointer, not the * focused one */ wwin = windowUnderPointer(scr); if (wwin) wRaiseLowerFrame(wwin->frame->core); break; case WKBD_SHADE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && !WFLAGP(wwin, no_shadeable)) { if (wwin->flags.shaded) wUnshadeWindow(wwin); else wShadeWindow(wwin); } break; case WKBD_MOVERESIZE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && (IS_RESIZABLE(wwin) || IS_MOVABLE(wwin))) { CloseWindowMenu(scr); wKeyboardMoveResizeWindow(wwin); } break; case WKBD_CLOSE: if (ISMAPPED(wwin) && ISFOCUSED(wwin) && !WFLAGP(wwin, no_closable)) { CloseWindowMenu(scr); if (wwin->protocols.DELETE_WINDOW) wClientSendProtocol(wwin, _XA_WM_DELETE_WINDOW, event->xkey.time); } break; case WKBD_SELECT: if (ISMAPPED(wwin) && ISFOCUSED(wwin)) { wSelectWindow(wwin, !wwin->flags.selected); } break; case WKBD_FOCUSNEXT: StartWindozeCycle(wwin, event, True, False); break; case WKBD_FOCUSPREV: StartWindozeCycle(wwin, event, False, False); break; case WKBD_GROUPNEXT: StartWindozeCycle(wwin, event, True, True); break; case WKBD_GROUPPREV: StartWindozeCycle(wwin, event, False, True); break; case WKBD_WORKSPACE1 ... WKBD_WORKSPACE10: widx = command - WKBD_WORKSPACE1; i = (scr->current_workspace / 10) * 10 + widx; if (wPreferences.ws_advance || i < scr->workspace_count) wWorkspaceChange(scr, i); break; case WKBD_NEXTWORKSPACE: wWorkspaceRelativeChange(scr, 1); break; case WKBD_PREVWORKSPACE: wWorkspaceRelativeChange(scr, -1); break; case WKBD_LASTWORKSPACE: wWorkspaceChange(scr, scr->last_workspace); break; case WKBD_MOVE_WORKSPACE1 ... WKBD_MOVE_WORKSPACE10: widx = command - WKBD_MOVE_WORKSPACE1; i = (scr->current_workspace / 10) * 10 + widx; if (wwin && (wPreferences.ws_advance || i < scr->workspace_count)) wWindowChangeWorkspace(wwin, i); break; case WKBD_MOVE_NEXTWORKSPACE: if (wwin) wWindowChangeWorkspaceRelative(wwin, 1); break; case WKBD_MOVE_PREVWORKSPACE: if (wwin) wWindowChangeWorkspaceRelative(wwin, -1); break; case WKBD_MOVE_LASTWORKSPACE: if (wwin) wWindowChangeWorkspace(wwin, scr->last_workspace); break; case WKBD_MOVE_NEXTWSLAYER: case WKBD_MOVE_PREVWSLAYER: { if (wwin) { int row, column; row = scr->current_workspace / 10; column = scr->current_workspace % 10; if (command == WKBD_MOVE_NEXTWSLAYER) { if ((row + 1) * 10 < scr->workspace_count) wWindowChangeWorkspace(wwin, column + (row + 1) * 10); } else { if (row > 0) wWindowChangeWorkspace(wwin, column + (row - 1) * 10); } } } break; case WKBD_WINDOW1: case WKBD_WINDOW2: case WKBD_WINDOW3: case WKBD_WINDOW4: case WKBD_WINDOW5: case WKBD_WINDOW6: case WKBD_WINDOW7: case WKBD_WINDOW8: case WKBD_WINDOW9: case WKBD_WINDOW10: widx = command - WKBD_WINDOW1; if (scr->shortcutWindows[widx]) { WMArray *list = scr->shortcutWindows[widx]; int cw; int count = WMGetArrayItemCount(list); WWindow *twin; WMArrayIterator iter; WWindow *wwin; wUnselectWindows(scr); cw = scr->current_workspace; WM_ETARETI_ARRAY(list, wwin, iter) { if (count > 1) wWindowChangeWorkspace(wwin, cw); wMakeWindowVisible(wwin); if (count > 1) wSelectWindow(wwin, True); } /* rotate the order of windows, to create a cycling effect */ twin = WMGetFromArray(list, 0); WMDeleteFromArray(list, 0); WMAddToArray(list, twin); } else if (wwin && ISMAPPED(wwin) && ISFOCUSED(wwin)) { if (scr->shortcutWindows[widx]) { WMFreeArray(scr->shortcutWindows[widx]); scr->shortcutWindows[widx] = NULL; } if (wwin->flags.selected && scr->selected_windows) { scr->shortcutWindows[widx] = WMDuplicateArray(scr->selected_windows); /*WMRemoveFromArray(scr->shortcutWindows[index], wwin); WMInsertInArray(scr->shortcutWindows[index], 0, wwin); */ } else { scr->shortcutWindows[widx] = WMCreateArray(4); WMAddToArray(scr->shortcutWindows[widx], wwin); } wSelectWindow(wwin, !wwin->flags.selected); XFlush(dpy); wusleep(3000); wSelectWindow(wwin, !wwin->flags.selected); XFlush(dpy); } else if (scr->selected_windows && WMGetArrayItemCount(scr->selected_windows)) { if (wwin->flags.selected && scr->selected_windows) { if (scr->shortcutWindows[widx]) { WMFreeArray(scr->shortcutWindows[widx]); } scr->shortcutWindows[widx] = WMDuplicateArray(scr->selected_windows); } } break; case WKBD_RELAUNCH: if (ISMAPPED(wwin) && ISFOCUSED(wwin)) (void) RelaunchWindow(wwin); break; case WKBD_SWITCH_SCREEN: if (wScreenCount > 1) { WScreen *scr2; int i; /* find index of this screen */ for (i = 0; i < wScreenCount; i++) { if (wScreenWithNumber(i) == scr) break; } i++; if (i >= wScreenCount) { i = 0; } scr2 = wScreenWithNumber(i); if (scr2) { XWarpPointer(dpy, scr->root_win, scr2->root_win, 0, 0, 0, 0, scr2->scr_width / 2, scr2->scr_height / 2); } } break; case WKBD_NEXTWSLAYER: case WKBD_PREVWSLAYER: { int row, column; row = scr->current_workspace / 10; column = scr->current_workspace % 10; if (command == WKBD_NEXTWSLAYER) { if ((row + 1) * 10 < scr->workspace_count) wWorkspaceChange(scr, column + (row + 1) * 10); } else { if (row > 0) wWorkspaceChange(scr, column + (row - 1) * 10); } } break; case WKBD_CLIPRAISELOWER: if (!wPreferences.flags.noclip) wDockRaiseLower(scr->workspaces[scr->current_workspace]->clip); break; case WKBD_DOCKRAISELOWER: if (!wPreferences.flags.nodock) wDockRaiseLower(scr->dock); break; #ifdef KEEP_XKB_LOCK_STATUS case WKBD_TOGGLE: if (wPreferences.modelock) { /*toggle */ wwin = scr->focused_window; if (wwin && wwin->flags.mapped && wwin->frame->workspace == wwin->screen_ptr->current_workspace && !wwin->flags.miniaturized && !wwin->flags.hidden) { XkbGetState(dpy, XkbUseCoreKbd, &staterec); wwin->frame->languagemode = wwin->frame->last_languagemode; wwin->frame->last_languagemode = staterec.group; XkbLockGroup(dpy, XkbUseCoreKbd, wwin->frame->languagemode); } } break; #endif /* KEEP_XKB_LOCK_STATUS */ } } static void handleMotionNotify(XEvent * event) { WScreen *scr = wScreenForRootWindow(event->xmotion.root); if (wPreferences.scrollable_menus) { WMPoint p = wmkpoint(event->xmotion.x_root, event->xmotion.y_root); WMRect rect = wGetRectForHead(scr, wGetHeadForPoint(scr, p)); if (scr->flags.jump_back_pending || p.x <= (rect.pos.x + 1) || p.x >= (rect.pos.x + rect.size.width - 2) || p.y <= (rect.pos.y + 1) || p.y >= (rect.pos.y + rect.size.height - 2)) { WMenu *menu; menu = wMenuUnderPointer(scr); if (menu != NULL) wMenuScroll(menu, event); } } } static void handleVisibilityNotify(XEvent * event) { WWindow *wwin; wwin = wWindowFor(event->xvisibility.window); if (!wwin) return; wwin->flags.obscured = (event->xvisibility.state == VisibilityFullyObscured); } WindowMaker-0.95.5/src/rootmenu.h0000644000175000017500000000206412214432632013573 00000000000000/* rootmenu.h- user defined menu * * Window Maker window manager * * Copyright (c) 2000-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMROOTMENU_H #define WMROOTMENU_H Bool wRootMenuPerformShortcut(XEvent * event); void wRootMenuBindShortcuts(Window window); void OpenRootMenu(WScreen * scr, int x, int y, int keyboard); #endif /* WMROOTMENU_H */ WindowMaker-0.95.5/src/geomview.c0000644000175000017500000000542612214432632013545 00000000000000 #include #include "geomview.h" struct W_GeometryView { W_Class widgetClass; WMView *view; WMColor *color; WMColor *bgColor; WMFont *font; WMSize textSize; union { struct { int x, y; } pos; struct { unsigned width, height; } size; } data; unsigned showPosition:1; }; static void handleEvents(XEvent * event, void *clientData); static void paint(WGeometryView * gview); WGeometryView *WCreateGeometryView(WMScreen * scr) { WGeometryView *gview; char buffer[64]; static W_Class widgetClass = 0; if (!widgetClass) { widgetClass = W_RegisterUserWidget(); } gview = malloc(sizeof(WGeometryView)); if (!gview) { return NULL; } memset(gview, 0, sizeof(WGeometryView)); gview->widgetClass = widgetClass; gview->view = W_CreateTopView(scr); if (!gview->view) { wfree(gview); return NULL; } gview->view->self = gview; gview->font = WMSystemFontOfSize(scr, 12); if (!gview->font) { W_DestroyView(gview->view); wfree(gview); return NULL; } gview->bgColor = WMCreateRGBColor(scr, 0x3333, 0x6666, 0x9999, True); gview->color = WMWhiteColor(scr); WMCreateEventHandler(gview->view, ExposureMask, handleEvents, gview); snprintf(buffer, sizeof(buffer), "%+05i, %+05i", 0, 0); gview->textSize.width = WMWidthOfString(gview->font, buffer, strlen(buffer)); gview->textSize.height = WMFontHeight(gview->font); WMSetWidgetBackgroundColor(gview, gview->bgColor); W_ResizeView(gview->view, gview->textSize.width + 8, gview->textSize.height + 6); return gview; } void WSetGeometryViewShownPosition(WGeometryView * gview, int x, int y) { gview->showPosition = 1; gview->data.pos.x = x; gview->data.pos.y = y; paint(gview); } void WSetGeometryViewShownSize(WGeometryView * gview, unsigned width, unsigned height) { gview->showPosition = 0; gview->data.size.width = width; gview->data.size.height = height; paint(gview); } static void paint(WGeometryView * gview) { char buffer[64]; if (gview->showPosition) { snprintf(buffer, sizeof(buffer), "%+5i , %+5i ", gview->data.pos.x, gview->data.pos.y); } else { snprintf(buffer, sizeof(buffer), "%+5i x %+5i ", gview->data.size.width, gview->data.size.height); } WMDrawImageString(W_VIEW_SCREEN(gview->view), W_VIEW_DRAWABLE(gview->view), gview->color, gview->bgColor, gview->font, (W_VIEW_WIDTH(gview->view) - gview->textSize.width) / 2, (W_VIEW_HEIGHT(gview->view) - gview->textSize.height) / 2, buffer, strlen(buffer)); W_DrawRelief(W_VIEW_SCREEN(gview->view), W_VIEW_DRAWABLE(gview->view), 0, 0, W_VIEW_WIDTH(gview->view), W_VIEW_HEIGHT(gview->view), WRSimple); } static void handleEvents(XEvent * event, void *clientData) { WGeometryView *gview = (WGeometryView *) clientData; switch (event->type) { case Expose: paint(gview); break; } } WindowMaker-0.95.5/src/wmspec.h0000644000175000017500000000356012214432632013223 00000000000000/* wmspec.h-- support for the wm-spec Hints * * Window Maker window manager * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _WMSPEC_H_ #define _WMSPEC_H_ #include "screen.h" #include "window.h" #include void wNETWMInitStuff(WScreen *scr); void wNETWMCleanup(WScreen *scr); void wNETWMUpdateWorkarea(WScreen *scr, WArea usableArea); Bool wNETWMGetUsableArea(WScreen *scr, int head, WArea *area); void wNETWMCheckInitialClientState(WWindow *wwin); Bool wNETWMProcessClientMessage(XClientMessageEvent *event); void wNETWMCheckClientHints(WWindow *wwin, int *layer, int *workspace); void wNETWMCheckClientHintChange(WWindow *wwin, XPropertyEvent *event); void wNETWMUpdateActions(WWindow *wwin, Bool del); void wNETWMUpdateDesktop(WScreen *scr); void wNETWMPositionSplash(WWindow *wwin, int *x, int *y, int width, int height); int wNETWMGetPidForWindow(Window window); int wNETWMGetCurrentDesktopFromHint(WScreen *scr); char *wNETWMGetIconName(Window window); char *wNETWMGetWindowName(Window window); void wNETFrameExtents(WWindow *wwin); void wNETCleanupFrameExtents(WWindow *wwin); RImage *get_window_image_from_x11(Window window); #endif WindowMaker-0.95.5/src/wconfig.h.in0000644000175000017500000002742712214432632013776 00000000000000/* * wconfig.h- default configuration and definitions + compile time options * * WindowMaker window manager * * Copyright (c) 1997-2003 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., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #ifndef WMCONFIG_H_ #define WMCONFIG_H_ #include "config.h" /*** Change this file (wconfig.h) *after* you ran configure ***/ /* * Comment out the following #defines if you want to disable a feature. * Also check the features you can enable through configure. */ /* If you want animations for iconification, shading, icon arrangement etc. */ #define ANIMATIONS /* support for XDND drop in the Dock. Experimental */ /*#define XDND*/ /* support for Motif window manager (mwm) window hints */ #define MWM_HINTS /* * Undefine BALLOON_TEXT if you don't want balloons for showing extra * information, like window titles that are not fully visible. */ #define BALLOON_TEXT /* * If balloons should be shaped or be simple rectangles. * The X server must support the shape extensions and it's support * must be enabled (default). */ #define SHAPED_BALLOON /* * Turn on a hack to make mouse and keyboard actions work even if * the NumLock or ScrollLock modifiers are turned on. They might * inflict a performance/memory penalty. * * If you're an X expert (knows the implementation of XGrabKey() in X) * and knows that the penalty is small (or not), please tell me. */ #define NUMLOCK_HACK /* * define OPTIMIZE_SHAPE if you want the shape setting code to be optimized * for applications that change their shape frequently (like xdaliclock * -shape), removing flickering. If wmaker and your display are on * different machines and the network connection is slow, it is not * recommended. */ #undef OPTIMIZE_SHAPE /* define CONFIGURE_WINDOW_WHILE_MOVING if you want WindowMaker to send * the synthetic ConfigureNotify event to windows while moving at every * single movement. Default is to send a synthetic ConfigureNotify event * only at the end of window moving, which improves performance. */ #undef CONFIGURE_WINDOW_WHILE_MOVING /* disable/enable workspace indicator in the dock */ #undef WS_INDICATOR /* * define HIDDENDOT if you want a dot to be shown in the application icon * of applications that are hidden. */ #define HIDDENDOT /* * Ignores the PPosition hint from clients. This is needed for some * programs that have buggy implementations of such hint and place * themselves in strange locations. */ #undef IGNORE_PPOSITION /* * The following options WILL NOT BE MADE RUN-TIME. Please do not request. * They will only add unneeded bloat. */ /* * define SHADOW_RESIZEBAR if you want a resizebar with shadows like in * AfterStep, instead of the default Openstep look. * NEXTSTEP 3.3 also does not have these shadows. */ #undef SHADOW_RESIZEBAR #define NORMAL_ICON_KABOOM /* * #define if you want the window creation animation when superfluous * is enabled. */ #undef WINDOW_BIRTH_ZOOM /* * Some of the following options can be configured in the preference files, * but if for some reason they can't, these are their defaults. * * There are also some options that can only be configured here, at compile time. */ /* list of paths to look for the config files, searched in order of appearance */ #define DEF_CONFIG_PATHS "~/GNUstep/Library/WindowMaker:"PKGDATADIR #define DEF_MENU_FILE "menu" /* name of the script to execute at startup */ #define DEF_INIT_SCRIPT "autostart" #define DEF_EXIT_SCRIPT "exitscript" #define DEFAULTS_DIR "Defaults" #ifdef USE_TIFF #define DEF_BUTTON_IMAGES PKGDATADIR"/buttons.tiff" #else #define DEF_BUTTON_IMAGES PKGDATADIR"/buttons.xpm" #endif /* the file of the system wide submenu to be forced into the main menu */ #define GLOBAL_PREAMBLE_MENU_FILE "GlobalMenu.pre" #define GLOBAL_EPILOGUE_MENU_FILE "GlobalMenu.post" /* pixmap path */ #define DEF_PIXMAP_PATHS \ "(\"~/pixmaps\",\"~/GNUstep/Library/WindowMaker/Pixmaps\",\""PIXMAPDIR"\")" #ifdef USER_MENU #define GLOBAL_USER_MENU_PATH PKGDATADIR"/UserMenus" #define DEF_USER_MENU_PATHS \ "~/GNUstep/Library/WindowMaker/UserMenus:"GLOBAL_USER_MENU_PATH #endif /* icon path */ #define DEF_ICON_PATHS \ "(\"~/pixmaps\",\"~/GNUstep/Library/Icons\",\"/usr/include/X11/pixmaps/\",\""PIXMAPDIR"\")" /* window title to use for untitled windows */ #define DEF_WINDOW_TITLE "Untitled" /* default style */ #define DEF_FRAME_COLOR "white" /* default fonts */ #define DEF_TITLE_FONT "\"Trebuchet MS,sans serif:bold:pixelsize=12\"" #define DEF_MENU_TITLE_FONT "\"Trebuchet MS,sans serif:bold:pixelsize=12\"" #define DEF_MENU_ENTRY_FONT "\"Trebuchet MS,sans serif:pixelsize=12\"" #define DEF_ICON_TITLE_FONT "\"Arial,sans serif:pixelsize=9\"" #define DEF_CLIP_TITLE_FONT "\"Verdana:bold:pixelsize=10\"" #define DEF_INFO_TEXT_FONT "\"Trebuchet MS,sans serif:pixelsize=12\"" #define DEF_WORKSPACE_NAME_FONT "\"Trebuchet MS,sans serif:pixelsize=24\"" /* line width of the move/resize frame */ #define DEF_FRAME_THICKNESS 1 #define DEF_WINDOW_TITLE_EXTEND_SPACE "0" #define DEF_MENU_TITLE_EXTEND_SPACE "0" #define DEF_MENU_TEXT_EXTEND_SPACE "0" #define TITLEBAR_EXTEND_SPACE 4 #define DEF_XPM_CLOSENESS 40000 /* default position of application menus */ #define DEF_APPMENU_X 10 #define DEF_APPMENU_Y 10 /* calculate window edge resistance from edge resistance */ #define WIN_RESISTANCE(x) (((x)*20)/30) /* Window level where icons reside */ #define NORMAL_ICON_LEVEL WMNormalLevel /* do not divide main menu and submenu in different tiers, * opposed to OpenStep */ #define SINGLE_MENULEVEL /* max. time to spend doing animations in seconds. If the animation * time exceeds this value, it is immediately finished. Usefull for * moments of high-load. DO NOT set *_DELAY_{Z,T,F} to zero! */ #define MAX_ANIMATION_TIME 1 /* Zoom animation */ #define MINIATURIZE_ANIMATION_FRAMES_Z 7 #define MINIATURIZE_ANIMATION_STEPS_Z 16 #define MINIATURIZE_ANIMATION_DELAY_Z 10000 /* Twist animation */ #define MINIATURIZE_ANIMATION_FRAMES_T 12 #define MINIATURIZE_ANIMATION_STEPS_T 16 #define MINIATURIZE_ANIMATION_DELAY_T 20000 #define MINIATURIZE_ANIMATION_TWIST_T 0.5 /* Flip animation */ #define MINIATURIZE_ANIMATION_FRAMES_F 12 #define MINIATURIZE_ANIMATION_STEPS_F 16 #define MINIATURIZE_ANIMATION_DELAY_F 20000 #define MINIATURIZE_ANIMATION_TWIST_F 0.5 /* delays in ms...*/ #define BALLOON_DELAY 1000 /* ...before balloon is shown */ #define MENU_SELECT_DELAY 200 /* ...for menu item selection hysteresis */ #define MENU_JUMP_BACK_DELAY 400 /* ...for jumpback of scrolled menus */ /* animation speed constants */ #define ICON_SLIDE_SLOWDOWN_UF 1 #define ICON_SLIDE_DELAY_UF 0 #define ICON_SLIDE_STEPS_UF 50 #define ICON_SLIDE_SLOWDOWN_F 3 #define ICON_SLIDE_DELAY_F 0 #define ICON_SLIDE_STEPS_F 50 #define ICON_SLIDE_SLOWDOWN_M 5 #define ICON_SLIDE_DELAY_M 0 #define ICON_SLIDE_STEPS_M 30 #define ICON_SLIDE_SLOWDOWN_S 10 #define ICON_SLIDE_DELAY_S 0 #define ICON_SLIDE_STEPS_S 20 #define ICON_SLIDE_SLOWDOWN_US 20 #define ICON_SLIDE_DELAY_US 1 #define ICON_SLIDE_STEPS_US 10 /* menu scrolling */ #define MENU_SCROLL_STEPS_UF 14 #define MENU_SCROLL_DELAY_UF 1 #define MENU_SCROLL_STEPS_F 10 #define MENU_SCROLL_DELAY_F 5 #define MENU_SCROLL_STEPS_M 6 #define MENU_SCROLL_DELAY_M 5 #define MENU_SCROLL_STEPS_S 4 #define MENU_SCROLL_DELAY_S 6 #define MENU_SCROLL_STEPS_US 1 #define MENU_SCROLL_DELAY_US 8 /* shade animation */ #define SHADE_STEPS_UF 5 #define SHADE_DELAY_UF 0 #define SHADE_STEPS_F 10 #define SHADE_DELAY_F 0 #define SHADE_STEPS_M 15 #define SHADE_DELAY_M 0 #define SHADE_STEPS_S 30 #define SHADE_DELAY_S 0 #define SHADE_STEPS_US 40 #define SHADE_DELAY_US 10 /* workspace name on switch display */ #define WORKSPACE_NAME_FADE_DELAY 30 #define WORKSPACE_NAME_DELAY 400 /* Delay when cycling colors of selected icons. */ #define COLOR_CYCLE_DELAY 200 /* size of the pieces in the undocked icon explosion */ #define ICON_KABOOM_PIECE_SIZE 4 /* * Position increment for smart placement: >= 1 * Raise these values if it's too slow for you */ #define PLACETEST_HSTEP 8 #define PLACETEST_VSTEP 8 #define DOCK_EXTRA_SPACE 0 /* Vicinity in which an icon can be attached to the clip */ #define CLIP_ATTACH_VICINITY 1 #define CLIP_BUTTON_SIZE 23 /* The amount of space (in multiples of the icon size) * a docked icon must be dragged out to detach it */ #define DOCK_DETTACH_THRESHOLD 3 /* Max. number of icons the dock and clip can have */ #define DOCK_MAX_ICONS 32 /* blink interval when invoking a menu item */ #define MENU_BLINK_DELAY 60000 #define MENU_BLINK_COUNT 2 #define CURSOR_BLINK_RATE 300 /* how many pixels to move before dragging windows and other objects */ #define MOVE_THRESHOLD 5 #define HRESIZE_THRESHOLD 3 #define MAX_WORKSPACENAME_WIDTH 64 /* max width of window title in window list */ #define MAX_WINDOWLIST_WIDTH 400 #ifndef HAVE_INOTIFY /* Check defaults database for changes every this many milliseconds */ #define DEFAULTS_CHECK_INTERVAL 2000 #endif #define KEY_CONTROL_WINDOW_WEIGHT 1 /* don't put titles in miniwindows */ #undef NO_MINIWINDOW_TITLES /* for boxes with high mouse sampling rates (SGI) */ #define DELAY_BETWEEN_MOUSE_SAMPLING 10 /* * You should not modify the following values, unless you know * what you're doing. */ /* number of window shortcuts */ #define MAX_WINDOW_SHORTCUTS 10 #define WM_PI 3.14159265358979323846 #define MIN_TITLEFONT_HEIGHT(h) ((h)>14 ? (h) : 14) #define TITLEBAR_HEIGHT 18 /* window's titlebar height */ #define RESIZEBAR_HEIGHT 8 /* height of the resizebar */ #define RESIZEBAR_MIN_WIDTH 20 /* min width of handles-corner_width */ #define RESIZEBAR_CORNER_WIDTH 28 /* width of the corner of resizebars */ #define MENU_INDICATOR_SPACE 12 #define MIN_WINDOW_SIZE 5 /* minimum size for windows */ #define ICON_WIDTH 64 /* size of the icon window */ #define ICON_HEIGHT 64 #define ICON_BORDER_WIDTH 2 #define MAX_ICON_WIDTH 60 /* size of the icon pixmap */ #define MAX_ICON_HEIGHT 48 #define MAX_WORKSPACES 100 #define MAX_MENU_TEXT_LENGTH 512 #define MAX_RESTART_ARGS 16 #define MAX_DEAD_PROCESSES 128 #define MAXLINE 1024 #ifdef _MAX_PATH # define DEFAULT_PATH_MAX _MAX_PATH #else # define DEFAULT_PATH_MAX 512 #endif /* some rules */ #ifndef SHAPE #undef SHAPED_BALLOON #endif #ifdef XKB_MODELOCK #define KEEP_XKB_LOCK_STATUS /* This is a hidden feature. * Choose just one of LANGUAGE_* hints. * Icon can be changed in def_pixmaps.h. * More icons are welcome. */ #define XKB_BUTTON_HINT #undef LANGUAGE_TH #undef LANGUAGE_SK #endif #if defined(HAVE_LIBINTL_H) && defined(I18N) #include #define _(text) gettext(text) /* Use N_() in initializers, it will make xgettext pick * the string up for translation */ #define N_(text) (text) #if defined(MENU_TEXTDOMAIN) #define M_(text) dgettext(MENU_TEXTDOMAIN, text) #else #define M_(text) (text) #endif #else #define _(text) (text) #define N_(text) (text) #define M_(text) (text) #endif #endif /* WMCONFIG_H_ */ WindowMaker-0.95.5/src/usermenu.h0000644000175000017500000000212212214432632013561 00000000000000/* usermenu.h- user defined menu * * Window Maker window manager * * Copyright (c) hmmm... Should I put everybody's name here? * Where's my lawyer?? -- ]d :D * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifdef USER_MENU #ifndef _WUSERMENU_H_ #define _WUSERMENU_H_ WMenu *wUserMenuGet(WScreen *scr, WWindow *wwin); void wUserMenuRefreshInstances(WMenu *menu, WWindow *wwin); #endif #endif /* USER_MENU */ WindowMaker-0.95.5/src/dockedapp.h0000644000175000017500000000316412214432632013657 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMDOCKEDAPP_H_ #define WMDOCKEDAPP_H_ typedef struct _AppSettingsPanel { WMWindow *win; WAppIcon *editedIcon; WWindow *wwin; WMLabel *iconLabel; WMLabel *nameLabel; WMFrame *commandFrame; WMTextField *commandField; WMFrame *dndCommandFrame; WMTextField *dndCommandField; WMLabel *dndCommandLabel; WMFrame *pasteCommandFrame; WMTextField *pasteCommandField; WMLabel *pasteCommandLabel; WMFrame *iconFrame; WMTextField *iconField; WMButton *browseBtn; WMButton *autoLaunchBtn; WMButton *lockBtn; WMButton *okBtn; WMButton *cancelBtn; Window parent; /* kluge */ unsigned int destroyed:1; unsigned int choosingIcon:1; } AppSettingsPanel; void DestroyDockAppSettingsPanel(AppSettingsPanel *panel); void ShowDockAppSettingsPanel(WAppIcon *aicon); #endif WindowMaker-0.95.5/src/pixmap.h0000644000175000017500000000321412214432632013217 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMPIXMAP_H_ #define WMPIXMAP_H_ #include "screen.h" typedef struct WPixmap { Pixmap image; /* icon image */ Pixmap mask; /* icon mask */ int width, height; /* size of pixmap */ int depth; /* depth of pixmap */ unsigned int shared:1; /* if pixmaps should be kept * when structure is freed */ unsigned int client_owned:1; unsigned int client_owned_mask:1; } WPixmap; WPixmap *wPixmapCreate(WScreen *scr, Pixmap image, Pixmap mask); WPixmap *wPixmapCreateFromXPMData(WScreen *scr, char **data); WPixmap *wPixmapCreateFromXBMData(WScreen *scr, char *data, char *mask, int width, int height, unsigned long fg, unsigned long bg); void wPixmapDestroy(WPixmap *pix); #endif WindowMaker-0.95.5/src/menu.h0000644000175000017500000001173612214432632012675 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMMENU_H_ #define WMMENU_H_ #include "wcore.h" #define MI_DIAMOND 0 #define MI_CHECK 1 #define MI_MINIWINDOW 2 #define MI_HIDDEN 3 #define MI_SHADED 4 typedef struct WMenuEntry { int order; char *text; /* entry text */ char *rtext; /* text to show in the right part */ void (*callback)(struct WMenu *menu, struct WMenuEntry *entry); void (*free_cdata)(void *data); /* proc to be used to free clientdata */ void *clientdata; /* data to pass to callback */ int cascade; /* cascade menu index */ #ifdef USER_MENU WMPropList *instances; /* allowed instances */ #endif /* USER_MENU */ struct { unsigned int enabled:1; /* entry is selectable */ unsigned int indicator:1; /* left indicator */ unsigned int indicator_on:1; unsigned int indicator_type:3; unsigned int editable:1; } flags; } WMenuEntry; typedef struct WMenu { struct WMenu *parent; struct WMenu *brother; time_t timestamp; /* for the root menu. Last time * menu was reloaded */ /* decorations */ struct WFrameWindow *frame; WCoreWindow *menu; /* the window menu */ Pixmap menu_texture_data; int frame_x, frame_y; /* position of the frame in root*/ WMenuEntry **entries; /* array of entries. This is shared * by the menu and it's "brother" */ short alloced_entries; /* number of entries allocated in * entry array */ struct WMenu **cascades; /* array of cascades */ short cascade_no; short entry_no; /* number of entries */ short selected_entry; short entry_height; /* height of each entry */ WMHandlerID timer; /* timer for the autoscroll */ void *jump_back; /* jump back data */ /* to be called when some entry is edited */ void (*on_edit)(struct WMenu *menu, struct WMenuEntry *entry); /* to be called when destroyed */ void (*on_destroy)(struct WMenu *menu); struct { unsigned int titled:1; unsigned int realized:1; /* whether the window was configured */ unsigned int app_menu:1; /* this is a application or root menu */ unsigned int mapped:1; /* if menu is already mapped on screen*/ unsigned int buttoned:1; /* if the close button is visible * (menu was torn off) */ unsigned int open_to_left:1; /* direction to open submenus */ unsigned int lowered:1; unsigned int brother:1; /* if this is a copy of the menu*/ unsigned int editing:1; unsigned int jump_back_pending:1; unsigned int inside_handler:1; } flags; } WMenu; void wMenuPaint(WMenu *menu); void wMenuDestroy(WMenu *menu, int recurse); void wMenuRealize(WMenu *menu); WMenuEntry *wMenuInsertCascade(WMenu *menu, int index, const char *text, WMenu *cascade); WMenuEntry *wMenuInsertCallback(WMenu *menu, int index, const char *text, void (*callback)(WMenu *menu, WMenuEntry *entry), void *clientdata); void wMenuEntrySetCascade(WMenu *menu, WMenuEntry *entry, WMenu *cascade); #define wMenuAddCallback(menu, text, callback, data) \ wMenuInsertCallback(menu, -1, text, callback, data) void wMenuRemoveItem(WMenu *menu, int index); WMenu *wMenuCreate(WScreen *screen, const char *title, int main_menu); WMenu *wMenuCreateForApp(WScreen *screen, const char *title, int main_menu); void wMenuMap(WMenu *menu); void wMenuMapAt(WMenu *menu, int x, int y, int keyboard); #define wMenuMapCopyAt(menu, x, y) wMenuMapAt((menu)->brother, (x), (y), False) void wMenuUnmap(WMenu *menu); void wMenuSetEnabled(WMenu *menu, int index, int enable); void wMenuMove(WMenu *menu, int x, int y, int submenus); void wMenuEntryRemoveCascade(WMenu *menu, WMenuEntry *entry); void wMenuScroll(WMenu *menu, XEvent *event); WMenu *wMenuUnderPointer(WScreen *screen); void wMenuSaveState(WScreen *scr); void wMenuRestoreState(WScreen *scr); #endif WindowMaker-0.95.5/src/startup.c0000644000175000017500000006215512214432632013427 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #ifdef __FreeBSD__ #include #endif #include #include #include #include #include #include #ifdef SHAPE #include #endif #ifdef KEEP_XKB_LOCK_STATUS #include #endif #ifdef HAVE_XRANDR #include #endif #include "WindowMaker.h" #include "GNUstep.h" #include "texture.h" #include "screen.h" #include "window.h" #include "actions.h" #include "client.h" #include "main.h" #include "startup.h" #include "dock.h" #include "workspace.h" #include "keybind.h" #include "framewin.h" #include "session.h" #include "defaults.h" #include "properties.h" #include "dialog.h" #include "wmspec.h" #include "event.h" #include "switchmenu.h" #ifdef XDND #include "xdnd.h" #endif #include "xutil.h" /* for SunOS */ #ifndef SA_RESTART # define SA_RESTART 0 #endif /* Just in case, for weirdo systems */ #ifndef SA_NODEFER # define SA_NODEFER 0 #endif /****** Global Variables ******/ extern WDDomain *WDWindowMaker; extern WDDomain *WDRootMenu; extern WDDomain *WDWindowAttributes; extern WShortKey wKeyBindings[WKBD_LAST]; extern int wScreenCount; #ifdef SHAPE extern Bool wShapeSupported; extern int wShapeEventBase; #endif #ifdef KEEP_XKB_LOCK_STATUS extern Bool wXkbSupported; extern int wXkbEventBase; #endif /* contexts */ extern XContext wWinContext; extern XContext wAppWinContext; extern XContext wStackContext; extern XContext wVEdgeContext; /* atoms */ extern Atom _XA_WM_STATE; extern Atom _XA_WM_CHANGE_STATE; extern Atom _XA_WM_PROTOCOLS; extern Atom _XA_WM_TAKE_FOCUS; extern Atom _XA_WM_DELETE_WINDOW; extern Atom _XA_WM_SAVE_YOURSELF; extern Atom _XA_WM_CLIENT_LEADER; extern Atom _XA_WM_COLORMAP_WINDOWS; extern Atom _XA_WM_COLORMAP_NOTIFY; extern Atom _XA_GNUSTEP_WM_ATTR; extern Atom _XA_WINDOWMAKER_MENU; extern Atom _XA_WINDOWMAKER_WM_PROTOCOLS; extern Atom _XA_WINDOWMAKER_STATE; extern Atom _XA_WINDOWMAKER_WM_FUNCTION; extern Atom _XA_WINDOWMAKER_NOTICEBOARD; extern Atom _XA_WINDOWMAKER_COMMAND; extern Atom _XA_WINDOWMAKER_ICON_SIZE; extern Atom _XA_WINDOWMAKER_ICON_TILE; extern Atom _XA_GNUSTEP_WM_MINIATURIZE_WINDOW; extern Atom _XA_GNUSTEP_TITLEBAR_STATE; extern Atom _XA_WM_IGNORE_FOCUS_EVENTS; /* cursors */ extern Cursor wCursor[WCUR_LAST]; #ifndef HAVE_INOTIFY /* special flags */ extern char WDelayedActionSet; #endif /***** Local *****/ static WScreen **wScreen = NULL; static unsigned int _NumLockMask = 0; static unsigned int _ScrollLockMask = 0; static void manageAllWindows(WScreen * scr, int crashed); static int catchXError(Display * dpy, XErrorEvent * error) { char buffer[MAXLINE]; /* ignore some errors */ if (error->resourceid != None && ((error->error_code == BadDrawable && error->request_code == X_GetGeometry) || (error->error_code == BadMatch && (error->request_code == X_SetInputFocus)) || (error->error_code == BadWindow) /* && (error->request_code == X_GetWindowAttributes || error->request_code == X_SetInputFocus || error->request_code == X_ChangeWindowAttributes || error->request_code == X_GetProperty || error->request_code == X_ChangeProperty || error->request_code == X_QueryTree || error->request_code == X_GrabButton || error->request_code == X_UngrabButton || error->request_code == X_SendEvent || error->request_code == X_ConfigureWindow)) */ || (error->request_code == X_InstallColormap))) { return 0; } FormatXError(dpy, error, buffer, MAXLINE); wwarning(_("internal X error: %s"), buffer); return -1; } /* *---------------------------------------------------------------------- * handleXIO- * Handle X shutdowns and other stuff. *---------------------------------------------------------------------- */ static int handleXIO(Display * xio_dpy) { dpy = NULL; Exit(0); return 0; } #ifndef HAVE_INOTIFY /* *---------------------------------------------------------------------- * delayedAction- * Action to be executed after the signal() handler is exited. *---------------------------------------------------------------------- */ static void delayedAction(void *cdata) { if (WDelayedActionSet == 0) return; WDelayedActionSet--; /* * Make the event dispatcher do whatever it needs to do, * including handling zombie processes, restart and exit * signals. */ DispatchEvent(NULL); } #endif /* *---------------------------------------------------------------------- * handleExitSig-- * User generated exit signal handler. *---------------------------------------------------------------------- */ static RETSIGTYPE handleExitSig(int sig) { sigset_t sigs; sigfillset(&sigs); sigprocmask(SIG_BLOCK, &sigs, NULL); if (sig == SIGUSR1) { wwarning("got signal %i - restarting", sig); SIG_WCHANGE_STATE(WSTATE_NEED_RESTART); } else if (sig == SIGUSR2) { wwarning("got signal %i - rereading defaults", sig); SIG_WCHANGE_STATE(WSTATE_NEED_REREAD); } else if (sig == SIGTERM || sig == SIGINT || sig == SIGHUP) { wwarning("got signal %i - exiting...", sig); SIG_WCHANGE_STATE(WSTATE_NEED_EXIT); } sigprocmask(SIG_UNBLOCK, &sigs, NULL); DispatchEvent(NULL); /* Dispatch events imediately. */ } /* Dummy signal handler */ static void dummyHandler(int sig) { } /* *---------------------------------------------------------------------- * handleSig-- * general signal handler. Exits the program gently. *---------------------------------------------------------------------- */ static RETSIGTYPE handleSig(int sig) { wfatal("got signal %i", sig); /* Setting the signal behaviour back to default and then reraising the * signal is a cleaner way to make program exit and core dump than calling * abort(), since it correctly returns from the signal handler and sets * the flags accordingly. -Dan */ if (sig == SIGSEGV || sig == SIGFPE || sig == SIGBUS || sig == SIGILL || sig == SIGABRT) { signal(sig, SIG_DFL); kill(getpid(), sig); return; } wAbort(0); } static RETSIGTYPE buryChild(int foo) { pid_t pid; int status; int save_errno = errno; sigset_t sigs; sigfillset(&sigs); /* Block signals so that NotifyDeadProcess() doesn't get fux0red */ sigprocmask(SIG_BLOCK, &sigs, NULL); /* R.I.P. */ /* If 2 or more kids exit in a small time window, before this handler gets * the chance to get invoked, the SIGCHLD signals will be merged and only * one SIGCHLD signal will be sent to us. We use a while loop to get all * exited child status because we can't count on the number of SIGCHLD * signals to know exactly how many kids have exited. -Dan */ while ((pid = waitpid(-1, &status, WNOHANG)) > 0 || (pid < 0 && errno == EINTR)) { NotifyDeadProcess(pid, WEXITSTATUS(status)); } sigprocmask(SIG_UNBLOCK, &sigs, NULL); errno = save_errno; } static void getOffendingModifiers(void) { int i; XModifierKeymap *modmap; KeyCode nlock, slock; static int mask_table[8] = { ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask }; nlock = XKeysymToKeycode(dpy, XK_Num_Lock); slock = XKeysymToKeycode(dpy, XK_Scroll_Lock); /* * Find out the masks for the NumLock and ScrollLock modifiers, * so that we can bind the grabs for when they are enabled too. */ modmap = XGetModifierMapping(dpy); if (modmap != NULL && modmap->max_keypermod > 0) { for (i = 0; i < 8 * modmap->max_keypermod; i++) { if (modmap->modifiermap[i] == nlock && nlock != 0) _NumLockMask = mask_table[i / modmap->max_keypermod]; else if (modmap->modifiermap[i] == slock && slock != 0) _ScrollLockMask = mask_table[i / modmap->max_keypermod]; } } if (modmap) XFreeModifiermap(modmap); } #ifdef NUMLOCK_HACK void wHackedGrabKey(int keycode, unsigned int modifiers, Window grab_window, Bool owner_events, int pointer_mode, int keyboard_mode) { if (modifiers == AnyModifier) return; /* grab all combinations of the modifier with CapsLock, NumLock and * ScrollLock. How much memory/CPU does such a monstrosity consume * in the server? */ if (_NumLockMask) XGrabKey(dpy, keycode, modifiers | _NumLockMask, grab_window, owner_events, pointer_mode, keyboard_mode); if (_ScrollLockMask) XGrabKey(dpy, keycode, modifiers | _ScrollLockMask, grab_window, owner_events, pointer_mode, keyboard_mode); if (_NumLockMask && _ScrollLockMask) XGrabKey(dpy, keycode, modifiers | _NumLockMask | _ScrollLockMask, grab_window, owner_events, pointer_mode, keyboard_mode); if (_NumLockMask) XGrabKey(dpy, keycode, modifiers | _NumLockMask | LockMask, grab_window, owner_events, pointer_mode, keyboard_mode); if (_ScrollLockMask) XGrabKey(dpy, keycode, modifiers | _ScrollLockMask | LockMask, grab_window, owner_events, pointer_mode, keyboard_mode); if (_NumLockMask && _ScrollLockMask) XGrabKey(dpy, keycode, modifiers | _NumLockMask | _ScrollLockMask | LockMask, grab_window, owner_events, pointer_mode, keyboard_mode); /* phew, I guess that's all, right? */ } #endif void wHackedGrabButton(unsigned int button, unsigned int modifiers, Window grab_window, Bool owner_events, unsigned int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor) { XGrabButton(dpy, button, modifiers, grab_window, owner_events, event_mask, pointer_mode, keyboard_mode, confine_to, cursor); if (modifiers == AnyModifier) return; XGrabButton(dpy, button, modifiers | LockMask, grab_window, owner_events, event_mask, pointer_mode, keyboard_mode, confine_to, cursor); #ifdef NUMLOCK_HACK /* same as above, but for mouse buttons */ if (_NumLockMask) XGrabButton(dpy, button, modifiers | _NumLockMask, grab_window, owner_events, event_mask, pointer_mode, keyboard_mode, confine_to, cursor); if (_ScrollLockMask) XGrabButton(dpy, button, modifiers | _ScrollLockMask, grab_window, owner_events, event_mask, pointer_mode, keyboard_mode, confine_to, cursor); if (_NumLockMask && _ScrollLockMask) XGrabButton(dpy, button, modifiers | _ScrollLockMask | _NumLockMask, grab_window, owner_events, event_mask, pointer_mode, keyboard_mode, confine_to, cursor); if (_NumLockMask) XGrabButton(dpy, button, modifiers | _NumLockMask | LockMask, grab_window, owner_events, event_mask, pointer_mode, keyboard_mode, confine_to, cursor); if (_ScrollLockMask) XGrabButton(dpy, button, modifiers | _ScrollLockMask | LockMask, grab_window, owner_events, event_mask, pointer_mode, keyboard_mode, confine_to, cursor); if (_NumLockMask && _ScrollLockMask) XGrabButton(dpy, button, modifiers | _ScrollLockMask | _NumLockMask | LockMask, grab_window, owner_events, event_mask, pointer_mode, keyboard_mode, confine_to, cursor); #endif /* NUMLOCK_HACK */ } WScreen *wScreenWithNumber(int i) { assert(i < wScreenCount); return wScreen[i]; } WScreen *wScreenForRootWindow(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; i < wScreenCount; i++) if (wScreen[i]->root_win == window) return wScreen[i]; return wScreenForWindow(window); } WScreen *wScreenForWindow(Window window) { XWindowAttributes attr; if (wScreenCount == 1) return wScreen[0]; if (XGetWindowAttributes(dpy, window, &attr)) return wScreenForRootWindow(attr.root); return NULL; } static char *atomNames[] = { "WM_STATE", "WM_CHANGE_STATE", "WM_PROTOCOLS", "WM_TAKE_FOCUS", "WM_DELETE_WINDOW", "WM_SAVE_YOURSELF", "WM_CLIENT_LEADER", "WM_COLORMAP_WINDOWS", "WM_COLORMAP_NOTIFY", "_WINDOWMAKER_MENU", "_WINDOWMAKER_STATE", "_WINDOWMAKER_WM_PROTOCOLS", "_WINDOWMAKER_WM_FUNCTION", "_WINDOWMAKER_NOTICEBOARD", "_WINDOWMAKER_COMMAND", "_WINDOWMAKER_ICON_SIZE", "_WINDOWMAKER_ICON_TILE", GNUSTEP_WM_ATTR_NAME, GNUSTEP_WM_MINIATURIZE_WINDOW, GNUSTEP_TITLEBAR_STATE, "WM_IGNORE_FOCUS_EVENTS" }; /* *---------------------------------------------------------- * StartUp-- * starts the window manager and setup global data. * Called from main() at startup. * * Side effects: * global data declared in main.c is initialized *---------------------------------------------------------- */ void StartUp(Bool defaultScreenOnly) { struct sigaction sig_action; int j, max; #ifdef HAVE_XRANDR int dummy; #endif Atom atom[sizeof(atomNames) / sizeof(atomNames[0])]; /* * Ignore CapsLock in modifiers */ ValidModMask = 0xff & ~LockMask; getOffendingModifiers(); /* * Ignore NumLock and ScrollLock too */ ValidModMask &= ~(_NumLockMask | _ScrollLockMask); memset(&wKeyBindings, 0, sizeof(wKeyBindings)); wWinContext = XUniqueContext(); wAppWinContext = XUniqueContext(); wStackContext = XUniqueContext(); wVEdgeContext = XUniqueContext(); /* _XA_VERSION = XInternAtom(dpy, "VERSION", False); */ #ifdef HAVE_XINTERNATOMS XInternAtoms(dpy, atomNames, sizeof(atomNames) / sizeof(atomNames[0]), False, atom); #else { int i; for (i = 0; i < sizeof(atomNames) / sizeof(atomNames[0]); i++) atom[i] = XInternAtom(dpy, atomNames[i], False); } #endif _XA_WM_STATE = atom[0]; _XA_WM_CHANGE_STATE = atom[1]; _XA_WM_PROTOCOLS = atom[2]; _XA_WM_TAKE_FOCUS = atom[3]; _XA_WM_DELETE_WINDOW = atom[4]; _XA_WM_SAVE_YOURSELF = atom[5]; _XA_WM_CLIENT_LEADER = atom[6]; _XA_WM_COLORMAP_WINDOWS = atom[7]; _XA_WM_COLORMAP_NOTIFY = atom[8]; _XA_WINDOWMAKER_MENU = atom[9]; _XA_WINDOWMAKER_STATE = atom[10]; _XA_WINDOWMAKER_WM_PROTOCOLS = atom[11]; _XA_WINDOWMAKER_WM_FUNCTION = atom[12]; _XA_WINDOWMAKER_NOTICEBOARD = atom[13]; _XA_WINDOWMAKER_COMMAND = atom[14]; _XA_WINDOWMAKER_ICON_SIZE = atom[15]; _XA_WINDOWMAKER_ICON_TILE = atom[16]; _XA_GNUSTEP_WM_ATTR = atom[17]; _XA_GNUSTEP_WM_MINIATURIZE_WINDOW = atom[18]; _XA_GNUSTEP_TITLEBAR_STATE = atom[19]; _XA_WM_IGNORE_FOCUS_EVENTS = atom[20]; #ifdef XDND wXDNDInitializeAtoms(); #endif /* cursors */ wCursor[WCUR_NORMAL] = None; /* inherit from root */ wCursor[WCUR_ROOT] = XCreateFontCursor(dpy, XC_left_ptr); wCursor[WCUR_ARROW] = XCreateFontCursor(dpy, XC_top_left_arrow); wCursor[WCUR_MOVE] = XCreateFontCursor(dpy, XC_fleur); wCursor[WCUR_RESIZE] = XCreateFontCursor(dpy, XC_sizing); wCursor[WCUR_TOPLEFTRESIZE] = XCreateFontCursor(dpy, XC_top_left_corner); wCursor[WCUR_TOPRIGHTRESIZE] = XCreateFontCursor(dpy, XC_top_right_corner); wCursor[WCUR_BOTTOMLEFTRESIZE] = XCreateFontCursor(dpy, XC_bottom_left_corner); wCursor[WCUR_BOTTOMRIGHTRESIZE] = XCreateFontCursor(dpy, XC_bottom_right_corner); wCursor[WCUR_VERTICALRESIZE] = XCreateFontCursor(dpy, XC_sb_v_double_arrow); wCursor[WCUR_HORIZONRESIZE] = XCreateFontCursor(dpy, XC_sb_h_double_arrow); wCursor[WCUR_WAIT] = XCreateFontCursor(dpy, XC_watch); wCursor[WCUR_QUESTION] = XCreateFontCursor(dpy, XC_question_arrow); wCursor[WCUR_TEXT] = XCreateFontCursor(dpy, XC_xterm); /* odd name??? */ wCursor[WCUR_SELECT] = XCreateFontCursor(dpy, XC_cross); Pixmap cur = XCreatePixmap(dpy, DefaultRootWindow(dpy), 16, 16, 1); GC gc = XCreateGC(dpy, cur, 0, NULL); XColor black; memset(&black, 0, sizeof(XColor)); XSetForeground(dpy, gc, 0); XFillRectangle(dpy, cur, gc, 0, 0, 16, 16); XFreeGC(dpy, gc); wCursor[WCUR_EMPTY] = XCreatePixmapCursor(dpy, cur, cur, &black, &black, 0, 0); XFreePixmap(dpy, cur); #ifndef HAVE_INOTIFY /* signal handler stuff that gets called when a signal is caught */ WMAddPersistentTimerHandler(500, delayedAction, NULL); #endif /* emergency exit... */ sig_action.sa_handler = handleSig; sigemptyset(&sig_action.sa_mask); sig_action.sa_flags = SA_RESTART; sigaction(SIGQUIT, &sig_action, NULL); /* instead of catching these, we let the default handler abort the * program. The new monitor process will take appropriate action * when it detects the crash. sigaction(SIGSEGV, &sig_action, NULL); sigaction(SIGBUS, &sig_action, NULL); sigaction(SIGFPE, &sig_action, NULL); sigaction(SIGABRT, &sig_action, NULL); */ sig_action.sa_handler = handleExitSig; /* Here we set SA_RESTART for safety, because SIGUSR1 may not be handled * immediately. -Dan */ sig_action.sa_flags = SA_RESTART; sigaction(SIGTERM, &sig_action, NULL); sigaction(SIGINT, &sig_action, NULL); sigaction(SIGHUP, &sig_action, NULL); sigaction(SIGUSR1, &sig_action, NULL); sigaction(SIGUSR2, &sig_action, NULL); /* ignore dead pipe */ /* Because POSIX mandates that only signal with handlers are reset * accross an exec*(), we do not want to propagate ignoring SIGPIPEs * to children. Hence the dummy handler. * Philippe Troin */ sig_action.sa_handler = &dummyHandler; sig_action.sa_flags = SA_RESTART; sigaction(SIGPIPE, &sig_action, NULL); /* handle dead children */ sig_action.sa_handler = buryChild; sig_action.sa_flags = SA_NOCLDSTOP | SA_RESTART; sigaction(SIGCHLD, &sig_action, NULL); /* Now we unblock all signals, that may have been blocked by the parent * who exec()-ed us. This can happen for example if Window Maker crashes * and restarts itself or another window manager from the signal handler. * In this case, the new proccess inherits the blocked signal mask and * will no longer react to that signal, until unblocked. * This is because the signal handler of the proccess who crashed (parent) * didn't return, and the signal remained blocked. -Dan */ sigfillset(&sig_action.sa_mask); sigprocmask(SIG_UNBLOCK, &sig_action.sa_mask, NULL); /* handle X shutdowns a such */ XSetIOErrorHandler(handleXIO); /* set hook for out event dispatcher in WINGs event dispatcher */ WMHookEventHandler(DispatchEvent); /* initialize defaults stuff */ WDWindowMaker = wDefaultsInitDomain("WindowMaker", True); if (!WDWindowMaker->dictionary) wwarning(_("could not read domain \"%s\" from defaults database"), "WindowMaker"); /* read defaults that don't change until a restart and are * screen independent */ wReadStaticDefaults(WDWindowMaker ? WDWindowMaker->dictionary : NULL); /* check sanity of some values */ if (wPreferences.icon_size < 16) { wwarning(_("icon size is configured to %i, but it's too small. Using 16 instead"), wPreferences.icon_size); wPreferences.icon_size = 16; } /* init other domains */ WDRootMenu = wDefaultsInitDomain("WMRootMenu", False); if (!WDRootMenu->dictionary) wwarning(_("could not read domain \"%s\" from defaults database"), "WMRootMenu"); wDefaultsMergeGlobalMenus(WDRootMenu); WDWindowAttributes = wDefaultsInitDomain("WMWindowAttributes", True); if (!WDWindowAttributes->dictionary) wwarning(_("could not read domain \"%s\" from defaults database"), "WMWindowAttributes"); XSetErrorHandler((XErrorHandler) catchXError); #ifdef SHAPE /* ignore j */ wShapeSupported = XShapeQueryExtension(dpy, &wShapeEventBase, &j); #endif #ifdef HAVE_XRANDR has_randr = XRRQueryExtension(dpy, &randr_event_base, &dummy); #endif #ifdef KEEP_XKB_LOCK_STATUS wXkbSupported = XkbQueryExtension(dpy, NULL, &wXkbEventBase, NULL, NULL, NULL); if (wPreferences.modelock && !wXkbSupported) { wwarning(_("XKB is not supported. KbdModeLock is automatically disabled.")); wPreferences.modelock = 0; } #endif if (defaultScreenOnly) max = 1; else max = ScreenCount(dpy); wScreen = wmalloc(sizeof(WScreen *) * max); wScreenCount = 0; /* manage the screens */ for (j = 0; j < max; j++) { if (defaultScreenOnly || max == 1) { wScreen[wScreenCount] = wScreenInit(DefaultScreen(dpy)); if (!wScreen[wScreenCount]) { wfatal(_("it seems that there is already a window manager running")); Exit(1); } } else { wScreen[wScreenCount] = wScreenInit(j); if (!wScreen[wScreenCount]) { wwarning(_("could not manage screen %i"), j); continue; } } wScreenCount++; } InitializeSwitchMenu(); /* initialize/restore state for the screens */ for (j = 0; j < wScreenCount; j++) { int lastDesktop; lastDesktop = wNETWMGetCurrentDesktopFromHint(wScreen[j]); wScreenRestoreState(wScreen[j]); /* manage all windows that were already here before us */ if (!wPreferences.flags.nodock && wScreen[j]->dock) wScreen[j]->last_dock = wScreen[j]->dock; manageAllWindows(wScreen[j], wPreferences.flags.restarting == 2); /* restore saved menus */ wMenuRestoreState(wScreen[j]); /* If we're not restarting, restore session */ if (wPreferences.flags.restarting == 0 && !wPreferences.flags.norestore) wSessionRestoreState(wScreen[j]); if (!wPreferences.flags.noautolaunch) { /* auto-launch apps */ if (!wPreferences.flags.nodock && wScreen[j]->dock) { wScreen[j]->last_dock = wScreen[j]->dock; wDockDoAutoLaunch(wScreen[j]->dock, 0); } /* auto-launch apps in clip */ if (!wPreferences.flags.noclip) { int i; for (i = 0; i < wScreen[j]->workspace_count; i++) { if (wScreen[j]->workspaces[i]->clip) { wScreen[j]->last_dock = wScreen[j]->workspaces[i]->clip; wDockDoAutoLaunch(wScreen[j]->workspaces[i]->clip, i); } } } /* auto-launch apps in drawers */ if (!wPreferences.flags.nodrawer) { WDrawerChain *dc; for (dc = wScreen[j]->drawers; dc; dc = dc->next) { wScreen[j]->last_dock = dc->adrawer; wDockDoAutoLaunch(dc->adrawer, 0); } } } /* go to workspace where we were before restart */ if (lastDesktop >= 0) wWorkspaceForceChange(wScreen[j], lastDesktop); else wSessionRestoreLastWorkspace(wScreen[j]); } if (wScreenCount == 0) { wfatal(_("could not manage any screen")); Exit(1); } #ifndef HAVE_INOTIFY /* setup defaults file polling */ if (!wPreferences.flags.nopolling && !wPreferences.flags.noupdates) WMAddTimerHandler(3000, wDefaultsCheckDomains, NULL); #endif } static Bool windowInList(Window window, Window * list, int count) { for (; count >= 0; count--) { if (window == list[count]) return True; } return False; } /* *----------------------------------------------------------------------- * manageAllWindows-- * Manages all windows in the screen. * * Notes: * Called when the wm is being started. * No events can be processed while the windows are being * reparented/managed. *----------------------------------------------------------------------- */ static void manageAllWindows(WScreen * scr, int crashRecovery) { Window root, parent; Window *children; unsigned int nchildren; unsigned int i, j; WWindow *wwin; XGrabServer(dpy); XQueryTree(dpy, scr->root_win, &root, &parent, &children, &nchildren); scr->flags.startup = 1; /* first remove all icon windows */ for (i = 0; i < nchildren; i++) { XWMHints *wmhints; if (children[i] == None) continue; wmhints = XGetWMHints(dpy, children[i]); if (wmhints && (wmhints->flags & IconWindowHint)) { for (j = 0; j < nchildren; j++) { if (children[j] == wmhints->icon_window) { XFree(wmhints); wmhints = NULL; children[j] = None; break; } } } if (wmhints) { XFree(wmhints); } } for (i = 0; i < nchildren; i++) { if (children[i] == None) continue; wwin = wManageWindow(scr, children[i]); if (wwin) { /* apply states got from WSavedState */ /* shaded + minimized is not restored correctly */ if (wwin->flags.shaded) { wwin->flags.shaded = 0; wShadeWindow(wwin); } if (wwin->flags.miniaturized && (wwin->transient_for == None || wwin->transient_for == scr->root_win || !windowInList(wwin->transient_for, children, nchildren))) { wwin->flags.skip_next_animation = 1; wwin->flags.miniaturized = 0; wIconifyWindow(wwin); } else { wClientSetState(wwin, NormalState, None); } if (crashRecovery) { int border; border = (!HAS_BORDER(wwin) ? 0 : scr->frame_border_width); wWindowMove(wwin, wwin->frame_x - border, wwin->frame_y - border - (wwin->frame->titlebar ? wwin->frame->titlebar->height : 0)); } } } 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; while (XPending(dpy)) { XEvent ev; WMNextEvent(dpy, &ev); WMHandleEvent(&ev); } scr->last_workspace = 0; wWorkspaceForceChange(scr, 0); if (!wPreferences.flags.noclip) wDockShowIcons(scr->workspaces[scr->current_workspace]->clip); scr->flags.startup2 = 0; } WindowMaker-0.95.5/src/application.h0000644000175000017500000000367612214432632014240 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMAPPLICATION_H_ #define WMAPPLICATION_H_ /* for tracking single application instances */ typedef struct WApplication { struct WApplication *next; struct WApplication *prev; Window main_window; /* ID of the group leader */ struct WWindow *main_window_desc; /* main (leader) window descriptor */ WMenu *menu; /* application menu */ struct WAppIcon *app_icon; int refcount; struct WWindow *last_focused; /* focused window before hide */ int last_workspace; /* last workspace used to work on the * app */ WMHandlerID *urgent_bounce_timer; struct { unsigned int skip_next_animation:1; unsigned int hidden:1; unsigned int emulated:1; unsigned int bouncing:1; } flags; } WApplication; WApplication *wApplicationCreate(struct WWindow *wwin); WApplication *wApplicationOf(Window window); void wApplicationDestroy(WApplication *wapp); void wAppBounce(WApplication *); void wAppBounceWhileUrgent(WApplication *); void wApplicationActivate(WApplication *); void wApplicationDeactivate(WApplication *); #endif WindowMaker-0.95.5/src/monitor.c0000644000175000017500000000667212214432632013416 00000000000000/* monitor.c - monitors the wmaker process * * Window Maker window manager * * Copyright (c) 1997-2004 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #ifdef __FreeBSD__ #include #endif #include #include #include #include "WindowMaker.h" #include "screen.h" #include "window.h" #include "dialog.h" #include "main.h" static int showCrashDialog(int sig) { int crashAction; dpy = XOpenDisplay(NULL); if (dpy) { /* XXX TODO make sure that window states are saved and restored via netwm */ XGrabServer(dpy); crashAction = wShowCrashingDialogPanel(sig); XCloseDisplay(dpy); dpy = NULL; } else { werror(_("cannot open connection for crashing dialog panel. Aborting.")); crashAction = WMAbort; } if (crashAction == WMStartAlternate) { int i; wmessage(_("trying to start alternate window manager...")); for (i = 0; i < WMGetArrayItemCount(wPreferences.fallbackWMs); i++) { Restart(WMGetFromArray(wPreferences.fallbackWMs, i), False); } wfatal(_("failed to start alternate window manager. Aborting.")); return 0; } else if (crashAction == WMAbort) return 0; else return 1; } int MonitorLoop(int argc, char **argv) { pid_t pid, exited; char **child_argv = wmalloc(sizeof(char *) * (argc + 2)); int i, status; time_t last_start; Bool error = False; for (i = 0; i < argc; i++) child_argv[i] = argv[i]; child_argv[i++] = "--for-real"; child_argv[i] = NULL; for (;;) { last_start = time(NULL); /* Start Window Maker */ pid = fork(); if (pid == 0) { execvp(child_argv[0], child_argv); werror(_("Error respawning Window Maker")); exit(1); } else if (pid < 0) { werror(_("Error respawning Window Maker")); exit(1); } do { if ((exited = waitpid(-1, &status, 0)) < 0) { werror(_("Error during monitoring of Window Maker process.")); error = True; break; } } while (exited != pid); if (error) break; child_argv[argc] = "--for-real-"; /* Check if the wmaker process exited due to a crash */ if (WIFSIGNALED(status) && (WTERMSIG(status) == SIGSEGV || WTERMSIG(status) == SIGBUS || WTERMSIG(status) == SIGILL || WTERMSIG(status) == SIGABRT || WTERMSIG(status) == SIGFPE)) { /* If so, we check when was the last restart. * If it was less than 3s ago, it's a bad sign, so we show * the crash panel and ask the user what to do */ if (time(NULL) - last_start < 3) { if (showCrashDialog(WTERMSIG(status)) == 0) { return 1; } } wwarning(_("Window Maker exited due to a crash (signal %i) and will be restarted."), WTERMSIG(status)); } else break; } return 0; } WindowMaker-0.95.5/src/balloon.c0000644000175000017500000003310112214432632013340 00000000000000/* * Window Maker window manager * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #ifdef BALLOON_TEXT #include #include #include #ifdef SHAPED_BALLOON #include #endif #include #include #include #include "WindowMaker.h" #include "screen.h" #include "texture.h" #include "framewin.h" #include "icon.h" #include "appicon.h" #include "workspace.h" #include "balloon.h" typedef struct _WBalloon { Window window; #ifdef SHAPED_BALLOON GC monoGC; #endif int prevType; Window objectWindow; char *text; int h; WMHandlerID timer; Pixmap contents; char mapped; char ignoreTimer; } WBalloon; #define TOP 0 #define BOTTOM 1 #define LEFT 0 #define RIGHT 2 #define TLEFT (TOP|LEFT) #define TRIGHT (TOP|RIGHT) #define BLEFT (BOTTOM|LEFT) #define BRIGHT (BOTTOM|RIGHT) static int countLines(const char *text) { const char *p = text; int h = 1; while (*p) { if (*p == '\n' && p[1] != 0) h++; p++; } return h; } static int getMaxStringWidth(WMFont * font, const char *text) { const char *p = text; const char *pb = p; int pos = 0; int w = 0, wt; while (*p) { if (*p == '\n') { wt = WMWidthOfString(font, pb, pos); if (wt > w) w = wt; pos = 0; pb = p + 1; } else { pos++; } p++; } if (pos > 0) { wt = WMWidthOfString(font, pb, pos); if (wt > w) w = wt; } return w; } static void drawMultiLineString(WMScreen * scr, Pixmap pixmap, WMColor * color, WMFont *font, int x, int y, const char *text, int len) { const char *p = text; const char *pb = p; int l = 0, pos = 0; int height = WMFontHeight(font); while (*p && p - text < len) { if (*p == '\n') { WMDrawString(scr, pixmap, color, font, x, y + l * height, pb, pos); l++; pos = 0; pb = p + 1; } else { pos++; } p++; } if (pos > 0) { WMDrawString(scr, pixmap, color, font, x, y + l * height, pb, pos); } } #ifdef SHAPED_BALLOON #define SPACE 12 static void drawBalloon(WScreen * scr, Pixmap bitmap, Pixmap pix, int x, int y, int w, int h, int side) { GC bgc = scr->balloon->monoGC; GC gc = scr->draw_gc; int rad = h * 3 / 10; XPoint pt[3], ipt[3]; int w1; /* outline */ XSetForeground(dpy, bgc, 1); XFillArc(dpy, bitmap, bgc, x, y, rad, rad, 90 * 64, 90 * 64); XFillArc(dpy, bitmap, bgc, x, y + h - 1 - rad, rad, rad, 180 * 64, 90 * 64); XFillArc(dpy, bitmap, bgc, x + w - 1 - rad, y, rad, rad, 0 * 64, 90 * 64); XFillArc(dpy, bitmap, bgc, x + w - 1 - rad, y + h - 1 - rad, rad, rad, 270 * 64, 90 * 64); XFillRectangle(dpy, bitmap, bgc, x, y + rad / 2, w, h - rad); XFillRectangle(dpy, bitmap, bgc, x + rad / 2, y, w - rad, h); /* interior */ XSetForeground(dpy, gc, scr->white_pixel); XFillArc(dpy, pix, gc, x + 1, y + 1, rad, rad, 90 * 64, 90 * 64); XFillArc(dpy, pix, gc, x + 1, y + h - 2 - rad, rad, rad, 180 * 64, 90 * 64); XFillArc(dpy, pix, gc, x + w - 2 - rad, y + 1, rad, rad, 0 * 64, 90 * 64); XFillArc(dpy, pix, gc, x + w - 2 - rad, y + h - 2 - rad, rad, rad, 270 * 64, 90 * 64); XFillRectangle(dpy, pix, gc, x + 1, y + 1 + rad / 2, w - 2, h - 2 - rad); XFillRectangle(dpy, pix, gc, x + 1 + rad / 2, y + 1, w - 2 - rad, h - 2); if (side & BOTTOM) { pt[0].y = y + h - 1; pt[1].y = y + h - 1 + SPACE; pt[2].y = y + h - 1; ipt[0].y = pt[0].y - 1; ipt[1].y = pt[1].y - 1; ipt[2].y = pt[2].y - 1; } else { pt[0].y = y; pt[1].y = y - SPACE; pt[2].y = y; ipt[0].y = pt[0].y + 1; ipt[1].y = pt[1].y + 1; ipt[2].y = pt[2].y + 1; } /*w1 = WMAX(h, 24); */ w1 = WMAX(h, 21); if (side & RIGHT) { pt[0].x = x + w - w1 + 2 * w1 / 16; pt[1].x = x + w - w1 + 11 * w1 / 16; pt[2].x = x + w - w1 + 7 * w1 / 16; ipt[0].x = x + 1 + w - w1 + 2 * (w1 - 1) / 16; ipt[1].x = x + 1 + w - w1 + 11 * (w1 - 1) / 16; ipt[2].x = x + 1 + w - w1 + 7 * (w1 - 1) / 16; /*ipt[0].x = pt[0].x+1; ipt[1].x = pt[1].x; ipt[2].x = pt[2].x; */ } else { pt[0].x = x + w1 - 2 * w1 / 16; pt[1].x = x + w1 - 11 * w1 / 16; pt[2].x = x + w1 - 7 * w1 / 16; ipt[0].x = x - 1 + w1 - 2 * (w1 - 1) / 16; ipt[1].x = x - 1 + w1 - 11 * (w1 - 1) / 16; ipt[2].x = x - 1 + w1 - 7 * (w1 - 1) / 16; /*ipt[0].x = pt[0].x-1; ipt[1].x = pt[1].x; ipt[2].x = pt[2].x; */ } XFillPolygon(dpy, bitmap, bgc, pt, 3, Convex, CoordModeOrigin); XFillPolygon(dpy, pix, gc, ipt, 3, Convex, CoordModeOrigin); /* fix outline */ XSetForeground(dpy, gc, scr->black_pixel); XDrawLines(dpy, pix, gc, pt, 3, CoordModeOrigin); if (side & RIGHT) { pt[0].x++; pt[2].x--; } else { pt[0].x--; pt[2].x++; } XDrawLines(dpy, pix, gc, pt, 3, CoordModeOrigin); } static Pixmap makePixmap(WScreen * scr, int width, int height, int side, Pixmap * mask) { WBalloon *bal = scr->balloon; Pixmap bitmap; Pixmap pixmap; int x, y; bitmap = XCreatePixmap(dpy, scr->root_win, width + SPACE, height + SPACE, 1); if (!bal->monoGC) { bal->monoGC = XCreateGC(dpy, bitmap, 0, NULL); } XSetForeground(dpy, bal->monoGC, 0); XFillRectangle(dpy, bitmap, bal->monoGC, 0, 0, width + SPACE, height + SPACE); pixmap = XCreatePixmap(dpy, scr->root_win, width + SPACE, height + SPACE, scr->w_depth); XSetForeground(dpy, scr->draw_gc, scr->black_pixel); XFillRectangle(dpy, pixmap, scr->draw_gc, 0, 0, width + SPACE, height + SPACE); if (side & BOTTOM) { y = 0; } else { y = SPACE; } x = 0; drawBalloon(scr, bitmap, pixmap, x, y, width, height, side); *mask = bitmap; return pixmap; } static void showText(WScreen *scr, int x, int y, int h, int w, const char *text) { int width; int height; Pixmap pixmap; Pixmap mask; WMFont *font = scr->info_text_font; int side = 0; int ty; int bx, by; if (scr->balloon->contents) XFreePixmap(dpy, scr->balloon->contents); width = getMaxStringWidth(font, text) + 16; height = countLines(text) * WMFontHeight(font) + 4; if (height < 16) height = 16; if (width < height) width = height; if (x + width > scr->scr_width) { side = RIGHT; bx = x - width + w / 2; if (bx < 0) bx = 0; } else { side = LEFT; bx = x + w / 2; } if (bx + width > scr->scr_width) bx = scr->scr_width - width; if (y - (height + SPACE) < 0) { side |= TOP; by = y + h - 1; ty = SPACE; } else { side |= BOTTOM; by = y - (height + SPACE); ty = 0; } pixmap = makePixmap(scr, width, height, side, &mask); drawMultiLineString(scr->wmscreen, pixmap, scr->black, font, 8, ty + 2, text, strlen(text)); XSetWindowBackgroundPixmap(dpy, scr->balloon->window, pixmap); scr->balloon->contents = pixmap; XResizeWindow(dpy, scr->balloon->window, width, height + SPACE); XShapeCombineMask(dpy, scr->balloon->window, ShapeBounding, 0, 0, mask, ShapeSet); XFreePixmap(dpy, mask); XMoveWindow(dpy, scr->balloon->window, bx, by); XMapRaised(dpy, scr->balloon->window); scr->balloon->mapped = 1; } #else /* !SHAPED_BALLOON */ static void showText(WScreen *scr, int x, int y, int h, int w, const char *text) { int width; int height; Pixmap pixmap; WMFont *font = scr->info_text_font; if (scr->balloon->contents) XFreePixmap(dpy, scr->balloon->contents); width = getMaxStringWidth(font, text) + 8; /*width = WMWidthOfString(font, text, strlen(text))+8; */ height = countLines(text) * WMFontHeight(font) + 4; if (x < 0) x = 0; else if (x + width > scr->scr_width - 1) x = scr->scr_width - width; if (y - height - 2 < 0) { y += h; if (y < 0) y = 0; } else { y -= height + 2; } if (scr->window_title_texture[0]) XSetForeground(dpy, scr->draw_gc, scr->window_title_texture[0]->any.color.pixel); else XSetForeground(dpy, scr->draw_gc, scr->light_pixel); pixmap = XCreatePixmap(dpy, scr->root_win, width, height, scr->w_depth); XFillRectangle(dpy, pixmap, scr->draw_gc, 0, 0, width, height); drawMultiLineString(scr->wmscreen, pixmap, scr->window_title_color[0], font, 4, 2, text, strlen(text)); XResizeWindow(dpy, scr->balloon->window, width, height); XMoveWindow(dpy, scr->balloon->window, x, y); XSetWindowBackgroundPixmap(dpy, scr->balloon->window, pixmap); XClearWindow(dpy, scr->balloon->window); XMapRaised(dpy, scr->balloon->window); scr->balloon->contents = pixmap; scr->balloon->mapped = 1; } #endif /* !SHAPED_BALLOON */ static void showBalloon(WScreen * scr) { int x, y; Window foow; unsigned foo, w; if (scr->balloon) { scr->balloon->timer = NULL; scr->balloon->ignoreTimer = 1; } if (!XGetGeometry(dpy, scr->balloon->objectWindow, &foow, &x, &y, &w, &foo, &foo, &foo)) { scr->balloon->prevType = 0; return; } showText(scr, x, y, scr->balloon->h, w, scr->balloon->text); } static void frameBalloon(WObjDescriptor * object) { WFrameWindow *fwin = (WFrameWindow *) object->parent; WScreen *scr = fwin->core->screen_ptr; if (fwin->titlebar != object->self || !fwin->flags.is_client_window_frame) { wBalloonHide(scr); return; } if (fwin->title && fwin->flags.incomplete_title) { scr->balloon->h = (fwin->titlebar ? fwin->titlebar->height : 0); scr->balloon->text = wstrdup(fwin->title); scr->balloon->objectWindow = fwin->core->window; scr->balloon->timer = WMAddTimerHandler(BALLOON_DELAY, (WMCallback *) showBalloon, scr); } } static void miniwindowBalloon(WObjDescriptor * object) { WIcon *icon = (WIcon *) object->parent; WScreen *scr = icon->core->screen_ptr; if (!icon->icon_name) { wBalloonHide(scr); return; } scr->balloon->h = icon->core->height; scr->balloon->text = wstrdup(icon->icon_name); scr->balloon->objectWindow = icon->core->window; if ((scr->balloon->prevType == object->parent_type || scr->balloon->prevType == WCLASS_APPICON) && scr->balloon->ignoreTimer) { XUnmapWindow(dpy, scr->balloon->window); showBalloon(scr); } else { scr->balloon->timer = WMAddTimerHandler(BALLOON_DELAY, (WMCallback *) showBalloon, scr); } } static void appiconBalloon(WObjDescriptor * object) { WAppIcon *aicon = (WAppIcon *) object->parent; WScreen *scr = aicon->icon->core->screen_ptr; char *tmp; /* Show balloon if it is the Clip and the workspace name is > 5 chars */ if (object->parent == scr->clip_icon) { if (strlen(scr->workspaces[scr->current_workspace]->name) > 5) { scr->balloon->text = wstrdup(scr->workspaces[scr->current_workspace]->name); } else { wBalloonHide(scr); return; } } else if (aicon->command && aicon->wm_class) { int len = strlen(aicon->command) + strlen(aicon->wm_class) + 8; tmp = wmalloc(len); snprintf(tmp, len, "%s\n(%s)", aicon->wm_class, aicon->command); scr->balloon->text = tmp; } else if (aicon->command) { scr->balloon->text = wstrdup(aicon->command); } else if (aicon->wm_class) { scr->balloon->text = wstrdup(aicon->wm_class); } else { wBalloonHide(scr); return; } scr->balloon->h = aicon->icon->core->height - 2; scr->balloon->objectWindow = aicon->icon->core->window; if ((scr->balloon->prevType == object->parent_type || scr->balloon->prevType == WCLASS_MINIWINDOW) && scr->balloon->ignoreTimer) { XUnmapWindow(dpy, scr->balloon->window); showBalloon(scr); } else { scr->balloon->timer = WMAddTimerHandler(BALLOON_DELAY, (WMCallback *) showBalloon, scr); } } void wBalloonInitialize(WScreen * scr) { WBalloon *bal; XSetWindowAttributes attribs; unsigned long vmask; bal = wmalloc(sizeof(WBalloon)); scr->balloon = bal; vmask = CWSaveUnder | CWOverrideRedirect | CWColormap | CWBackPixel | CWBorderPixel; attribs.save_under = True; attribs.override_redirect = True; attribs.colormap = scr->w_colormap; attribs.background_pixel = scr->icon_back_texture->normal.pixel; attribs.border_pixel = 0; /* do not care */ bal->window = XCreateWindow(dpy, scr->root_win, 1, 1, 10, 10, 1, scr->w_depth, CopyFromParent, scr->w_visual, vmask, &attribs); #if 0 /* select EnterNotify to so that the balloon will be unmapped * when the pointer is moved over it */ XSelectInput(dpy, bal->window, EnterWindowMask); #endif } void wBalloonEnteredObject(WScreen * scr, WObjDescriptor * object) { WBalloon *balloon = scr->balloon; if (balloon->timer) { WMDeleteTimerHandler(balloon->timer); balloon->timer = NULL; balloon->ignoreTimer = 0; } if (scr->balloon->text) wfree(scr->balloon->text); scr->balloon->text = NULL; if (!object) { wBalloonHide(scr); balloon->ignoreTimer = 0; return; } switch (object->parent_type) { case WCLASS_FRAME: if (wPreferences.window_balloon) frameBalloon(object); break; case WCLASS_DOCK_ICON: if (wPreferences.appicon_balloon) appiconBalloon(object); break; case WCLASS_MINIWINDOW: if (wPreferences.miniwin_balloon) miniwindowBalloon(object); break; case WCLASS_APPICON: if (wPreferences.appicon_balloon) appiconBalloon(object); break; default: wBalloonHide(scr); break; } scr->balloon->prevType = object->parent_type; } void wBalloonHide(WScreen * scr) { if (scr) { if (scr->balloon->mapped) { XUnmapWindow(dpy, scr->balloon->window); scr->balloon->mapped = 0; } else if (scr->balloon->timer) { WMDeleteTimerHandler(scr->balloon->timer); scr->balloon->timer = NULL; } scr->balloon->prevType = 0; } } #endif WindowMaker-0.95.5/src/session.h0000644000175000017500000000203312214432632013402 00000000000000/* session.h * * Copyright (c) 1999-2003 Alfredo K. Kojima * * Window Maker window manager * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMSESSION_H_ #define WMSESSION_H_ void wSessionSaveState(WScreen *scr); void wSessionClearState(WScreen *scr); void wSessionRestoreState(WScreen *scr); void wSessionRestoreLastWorkspace(WScreen *scr); #endif WindowMaker-0.95.5/src/menu.c0000644000175000017500000017304412214432632012671 00000000000000/* menu.c- generic menu, used for root menu, application menus etc. * * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "wconfig.h" #include #include #include #include #include #include #include #include #include #include "WindowMaker.h" #include "wcore.h" #include "framewin.h" #include "menu.h" #include "actions.h" #include "winmenu.h" #include "stacking.h" #include "xinerama.h" #include "workspace.h" #include "dialog.h" #include "rootmenu.h" #include "switchmenu.h" /****** Global Variables ******/ extern Cursor wCursor[WCUR_LAST]; extern XContext wWinContext; #define MOD_MASK wPreferences.modifier_mask #define MENU_SCROLL_STEP menuScrollParameters[(int)wPreferences.menu_scroll_speed].steps #define MENU_SCROLL_DELAY menuScrollParameters[(int)wPreferences.menu_scroll_speed].delay #define MENUW(m) ((m)->frame->core->width+2*(m)->frame->screen_ptr->frame_border_width) #define MENUH(m) ((m)->frame->core->height+2*(m)->frame->screen_ptr->frame_border_width) /***** Local Stuff ******/ #define WSS_ROOTMENU (1<<0) #define WSS_SWITCHMENU (1<<1) #define WSS_WSMENU (1<<2) static struct { int steps; int delay; } menuScrollParameters[5] = { { MENU_SCROLL_STEPS_UF, MENU_SCROLL_DELAY_UF}, { MENU_SCROLL_STEPS_F, MENU_SCROLL_DELAY_F}, { MENU_SCROLL_STEPS_M, MENU_SCROLL_DELAY_M}, { MENU_SCROLL_STEPS_S, MENU_SCROLL_DELAY_S}, { MENU_SCROLL_STEPS_US, MENU_SCROLL_DELAY_US}}; static void menuMouseDown(WObjDescriptor * desc, XEvent * event); static void menuExpose(WObjDescriptor * desc, XEvent * event); static void menuTitleDoubleClick(WCoreWindow * sender, void *data, XEvent * event); static void menuTitleMouseDown(WCoreWindow * sender, void *data, XEvent * event); static void menuCloseClick(WCoreWindow * sender, void *data, XEvent * event); static void updateTexture(WMenu * menu); static int saveMenuRecurs(WMPropList * menus, WScreen * scr, WMenu * menu); static int restoreMenuRecurs(WScreen *scr, WMPropList *menus, WMenu *menu, const char *path); static void selectEntry(WMenu * menu, int entry_no); static void closeCascade(WMenu * menu); /****** Notification Observers ******/ static void appearanceObserver(void *self, WMNotification * notif) { WMenu *menu = (WMenu *) self; uintptr_t flags = (uintptr_t)WMGetNotificationClientData(notif); if (!menu->flags.realized) return; if (WMGetNotificationName(notif) == WNMenuAppearanceSettingsChanged) { if (flags & WFontSettings) { menu->flags.realized = 0; wMenuRealize(menu); } if (flags & WTextureSettings) { if (!menu->flags.brother) updateTexture(menu); } if (flags & (WTextureSettings | WColorSettings)) { wMenuPaint(menu); } } else if (menu->flags.titled) { if (flags & WFontSettings) { menu->flags.realized = 0; wMenuRealize(menu); } if (flags & WTextureSettings) { menu->frame->flags.need_texture_remake = 1; } if (flags & (WColorSettings | WTextureSettings)) { wFrameWindowPaint(menu->frame); } } } /************************************/ /* *---------------------------------------------------------------------- * wMenuCreate-- * Creates a new empty menu with the specified title. If main_menu * is True, the created menu will be a main menu, which has some special * properties such as being placed over other normal menus. * If title is NULL, the menu will have no titlebar. * * Returns: * The created menu. *---------------------------------------------------------------------- */ WMenu *wMenuCreate(WScreen *screen, const char *title, int main_menu) { WMenu *menu; static int brother = 0; int tmp, flags; menu = wmalloc(sizeof(WMenu)); #ifdef SINGLE_MENULEVEL tmp = WMSubmenuLevel; #else tmp = (main_menu ? WMMainMenuLevel : WMSubmenuLevel); #endif flags = WFF_SINGLE_STATE | WFF_BORDER; if (title) { flags |= WFF_TITLEBAR | WFF_RIGHT_BUTTON; menu->flags.titled = 1; } menu->frame = wFrameWindowCreate(screen, tmp, 8, 2, 1, 1, &wPreferences.menu_title_clearance, &wPreferences.menu_title_min_height, &wPreferences.menu_title_max_height, flags, screen->menu_title_texture, NULL, screen->menu_title_color, &screen->menu_title_font, screen->w_depth, screen->w_visual, screen->w_colormap); menu->frame->core->descriptor.parent = menu; menu->frame->core->descriptor.parent_type = WCLASS_MENU; menu->frame->core->descriptor.handle_mousedown = menuMouseDown; wFrameWindowHideButton(menu->frame, WFF_RIGHT_BUTTON); if (title) { menu->frame->title = wstrdup(title); } menu->frame->flags.justification = WTJ_LEFT; menu->frame->rbutton_image = screen->b_pixmaps[WBUT_CLOSE]; menu->entry_no = 0; menu->alloced_entries = 0; menu->selected_entry = -1; menu->entries = NULL; menu->frame_x = screen->app_menu_x; menu->frame_y = screen->app_menu_y; menu->frame->child = menu; menu->flags.lowered = 0; /* create borders */ if (title) { /* setup object descriptors */ menu->frame->on_mousedown_titlebar = menuTitleMouseDown; menu->frame->on_dblclick_titlebar = menuTitleDoubleClick; } menu->frame->on_click_right = menuCloseClick; menu->menu = wCoreCreate(menu->frame->core, 0, menu->frame->top_width, menu->frame->core->width, 10); menu->menu->descriptor.parent = menu; menu->menu->descriptor.parent_type = WCLASS_MENU; menu->menu->descriptor.handle_expose = menuExpose; menu->menu->descriptor.handle_mousedown = menuMouseDown; menu->menu_texture_data = None; XMapWindow(dpy, menu->menu->window); XFlush(dpy); if (!brother) { brother = 1; menu->brother = wMenuCreate(screen, title, main_menu); brother = 0; menu->brother->flags.brother = 1; menu->brother->brother = menu; } WMAddNotificationObserver(appearanceObserver, menu, WNMenuAppearanceSettingsChanged, menu); WMAddNotificationObserver(appearanceObserver, menu, WNMenuTitleAppearanceSettingsChanged, menu); return menu; } WMenu *wMenuCreateForApp(WScreen *screen, const char *title, int main_menu) { WMenu *menu; menu = wMenuCreate(screen, title, main_menu); if (!menu) return NULL; menu->flags.app_menu = 1; menu->brother->flags.app_menu = 1; return menu; } static void insertEntry(WMenu * menu, WMenuEntry * entry, int index) { int i; for (i = menu->entry_no - 1; i >= index; i--) { menu->entries[i]->order++; menu->entries[i + 1] = menu->entries[i]; } menu->entries[index] = entry; } WMenuEntry *wMenuInsertCallback(WMenu *menu, int index, const char *text, void (*callback) (WMenu * menu, WMenuEntry * entry), void *clientdata) { WMenuEntry *entry; menu->flags.realized = 0; menu->brother->flags.realized = 0; /* reallocate array if it's too small */ if (menu->entry_no >= menu->alloced_entries) { void *tmp; tmp = wrealloc(menu->entries, sizeof(WMenuEntry) * (menu->alloced_entries + 5)); menu->entries = tmp; menu->alloced_entries += 5; menu->brother->entries = tmp; menu->brother->alloced_entries = menu->alloced_entries; } entry = wmalloc(sizeof(WMenuEntry)); entry->flags.enabled = 1; entry->text = wstrdup(text); entry->cascade = -1; entry->clientdata = clientdata; entry->callback = callback; if (index < 0 || index >= menu->entry_no) { entry->order = menu->entry_no; menu->entries[menu->entry_no] = entry; } else { entry->order = index; insertEntry(menu, entry, index); } menu->entry_no++; menu->brother->entry_no = menu->entry_no; return entry; } void wMenuEntrySetCascade(WMenu * menu, WMenuEntry * entry, WMenu * cascade) { WMenu *brother = menu->brother; int i, done; assert(menu->flags.brother == 0); if (entry->cascade >= 0) { menu->flags.realized = 0; brother->flags.realized = 0; } cascade->parent = menu; cascade->brother->parent = brother; done = 0; for (i = 0; i < menu->cascade_no; i++) { if (menu->cascades[i] == NULL) { menu->cascades[i] = cascade; brother->cascades[i] = cascade->brother; done = 1; entry->cascade = i; break; } } if (!done) { entry->cascade = menu->cascade_no; menu->cascades = wrealloc(menu->cascades, sizeof(WMenu) * (menu->cascade_no + 1)); menu->cascades[menu->cascade_no++] = cascade; brother->cascades = wrealloc(brother->cascades, sizeof(WMenu) * (brother->cascade_no + 1)); brother->cascades[brother->cascade_no++] = cascade->brother; } if (menu->flags.lowered) { cascade->flags.lowered = 1; ChangeStackingLevel(cascade->frame->core, WMNormalLevel); cascade->brother->flags.lowered = 1; ChangeStackingLevel(cascade->brother->frame->core, WMNormalLevel); } if (!menu->flags.realized) wMenuRealize(menu); } void wMenuEntryRemoveCascade(WMenu * menu, WMenuEntry * entry) { assert(menu->flags.brother == 0); /* destroy cascade menu */ if (entry->cascade >= 0 && menu->cascades && menu->cascades[entry->cascade] != NULL) { wMenuDestroy(menu->cascades[entry->cascade], True); menu->cascades[entry->cascade] = NULL; menu->brother->cascades[entry->cascade] = NULL; entry->cascade = -1; } } void wMenuRemoveItem(WMenu * menu, int index) { int i; if (menu->flags.brother) { wMenuRemoveItem(menu->brother, index); return; } if (index >= menu->entry_no) return; /* destroy cascade menu */ wMenuEntryRemoveCascade(menu, menu->entries[index]); /* destroy unshared data */ if (menu->entries[index]->text) wfree(menu->entries[index]->text); if (menu->entries[index]->rtext) wfree(menu->entries[index]->rtext); if (menu->entries[index]->free_cdata && menu->entries[index]->clientdata) (*menu->entries[index]->free_cdata) (menu->entries[index]->clientdata); wfree(menu->entries[index]); for (i = index; i < menu->entry_no - 1; i++) { menu->entries[i + 1]->order--; menu->entries[i] = menu->entries[i + 1]; } menu->entry_no--; menu->brother->entry_no--; } static Pixmap renderTexture(WMenu * menu) { RImage *img; Pixmap pix; int i; RColor light; RColor dark; RColor mid; WScreen *scr = menu->menu->screen_ptr; WTexture *texture = scr->menu_item_texture; if (wPreferences.menu_style == MS_NORMAL) { img = wTextureRenderImage(texture, menu->menu->width, menu->entry_height, WREL_MENUENTRY); } else { img = wTextureRenderImage(texture, menu->menu->width, menu->menu->height + 1, WREL_MENUENTRY); } if (!img) { wwarning(_("could not render texture: %s"), RMessageForError(RErrorCode)); return None; } if (wPreferences.menu_style == MS_SINGLE_TEXTURE) { light.alpha = 0; light.red = light.green = light.blue = 80; dark.alpha = 255; dark.red = dark.green = dark.blue = 0; mid.alpha = 0; mid.red = mid.green = mid.blue = 40; for (i = 1; i < menu->entry_no; i++) { ROperateLine(img, RSubtractOperation, 0, i * menu->entry_height - 2, menu->menu->width - 1, i * menu->entry_height - 2, &mid); RDrawLine(img, 0, i * menu->entry_height - 1, menu->menu->width - 1, i * menu->entry_height - 1, &dark); ROperateLine(img, RAddOperation, 0, i * menu->entry_height, menu->menu->width - 1, i * menu->entry_height, &light); } } if (!RConvertImage(scr->rcontext, img, &pix)) { wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode)); } RReleaseImage(img); return pix; } static void updateTexture(WMenu * menu) { WScreen *scr = menu->menu->screen_ptr; /* setup background texture */ if (scr->menu_item_texture->any.type != WTEX_SOLID) { if (!menu->flags.brother) { FREE_PIXMAP(menu->menu_texture_data); menu->menu_texture_data = renderTexture(menu); XSetWindowBackgroundPixmap(dpy, menu->menu->window, menu->menu_texture_data); XClearWindow(dpy, menu->menu->window); XSetWindowBackgroundPixmap(dpy, menu->brother->menu->window, menu->menu_texture_data); XClearWindow(dpy, menu->brother->menu->window); } } else { XSetWindowBackground(dpy, menu->menu->window, scr->menu_item_texture->any.color.pixel); XClearWindow(dpy, menu->menu->window); } } void wMenuRealize(WMenu * menu) { int i; int width, rwidth, mrwidth, mwidth; int theight, twidth, eheight; WScreen *scr = menu->frame->screen_ptr; static int brother_done = 0; int flags; if (!brother_done) { brother_done = 1; wMenuRealize(menu->brother); brother_done = 0; } flags = WFF_SINGLE_STATE | WFF_BORDER; if (menu->flags.titled) flags |= WFF_TITLEBAR | WFF_RIGHT_BUTTON; wFrameWindowUpdateBorders(menu->frame, flags); if (menu->flags.titled) { twidth = WMWidthOfString(scr->menu_title_font, menu->frame->title, strlen(menu->frame->title)); theight = menu->frame->top_width; twidth += theight + (wPreferences.new_style == TS_NEW ? 16 : 8); } else { twidth = 0; theight = 0; } eheight = WMFontHeight(scr->menu_entry_font) + 6 + wPreferences.menu_text_clearance * 2; menu->entry_height = eheight; mrwidth = 0; mwidth = 0; for (i = 0; i < menu->entry_no; i++) { char *text; /* search widest text */ text = menu->entries[i]->text; width = WMWidthOfString(scr->menu_entry_font, text, strlen(text)) + 10; if (menu->entries[i]->flags.indicator) { width += MENU_INDICATOR_SPACE; } if (width > mwidth) mwidth = width; /* search widest text on right */ text = menu->entries[i]->rtext; if (text) rwidth = WMWidthOfString(scr->menu_entry_font, text, strlen(text)) + 10; else if (menu->entries[i]->cascade >= 0) rwidth = 16; else rwidth = 4; if (rwidth > mrwidth) mrwidth = rwidth; } mwidth += mrwidth; if (mwidth < twidth) mwidth = twidth; wCoreConfigure(menu->menu, 0, theight, mwidth, menu->entry_no * eheight - 1); wFrameWindowResize(menu->frame, mwidth, menu->entry_no * eheight - 1 + menu->frame->top_width + menu->frame->bottom_width); updateTexture(menu); menu->flags.realized = 1; if (menu->flags.mapped) wMenuPaint(menu); if (menu->brother->flags.mapped) wMenuPaint(menu->brother); } void wMenuDestroy(WMenu * menu, int recurse) { int i; WMRemoveNotificationObserver(menu); /* remove any pending timers */ if (menu->timer) WMDeleteTimerHandler(menu->timer); menu->timer = NULL; /* call destroy handler */ if (menu->on_destroy) (*menu->on_destroy) (menu); /* Destroy items if this menu own them. If this is the "brother" menu, * leave them alone as it is shared by them. */ if (!menu->flags.brother) { for (i = 0; i < menu->entry_no; i++) { wfree(menu->entries[i]->text); if (menu->entries[i]->rtext) wfree(menu->entries[i]->rtext); #ifdef USER_MENU if (menu->entries[i]->instances) { WMReleasePropList(menu->entries[i]->instances); } #endif /* USER_MENU */ if (menu->entries[i]->free_cdata && menu->entries[i]->clientdata) { (*menu->entries[i]->free_cdata) (menu->entries[i]->clientdata); } wfree(menu->entries[i]); } if (recurse) { for (i = 0; i < menu->cascade_no; i++) { if (menu->cascades[i]) { if (menu->cascades[i]->flags.brother) wMenuDestroy(menu->cascades[i]->brother, recurse); else wMenuDestroy(menu->cascades[i], recurse); } } } if (menu->entries) wfree(menu->entries); } FREE_PIXMAP(menu->menu_texture_data); if (menu->cascades) wfree(menu->cascades); wCoreDestroy(menu->menu); wFrameWindowDestroy(menu->frame); /* destroy copy of this menu */ if (!menu->flags.brother && menu->brother) wMenuDestroy(menu->brother, False); wfree(menu); } #define F_NORMAL 0 #define F_TOP 1 #define F_BOTTOM 2 #define F_NONE 3 static void drawFrame(WScreen * scr, Drawable win, int y, int w, int h, int type) { XSegment segs[2]; int i; i = 0; segs[i].x1 = segs[i].x2 = w - 1; segs[i].y1 = y; segs[i].y2 = y + h - 1; i++; if (type != F_TOP && type != F_NONE) { segs[i].x1 = 1; segs[i].y1 = segs[i].y2 = y + h - 2; segs[i].x2 = w - 1; i++; } XDrawSegments(dpy, win, scr->menu_item_auxtexture->dim_gc, segs, i); i = 0; segs[i].x1 = 0; segs[i].y1 = y; segs[i].x2 = 0; segs[i].y2 = y + h - 1; i++; if (type != F_BOTTOM && type != F_NONE) { segs[i].x1 = 0; segs[i].y1 = y; segs[i].x2 = w - 1; segs[i].y2 = y; i++; } XDrawSegments(dpy, win, scr->menu_item_auxtexture->light_gc, segs, i); if (type != F_TOP && type != F_NONE) XDrawLine(dpy, win, scr->menu_item_auxtexture->dark_gc, 0, y + h - 1, w - 1, y + h - 1); } static void paintEntry(WMenu * menu, int index, int selected) { WScreen *scr = menu->frame->screen_ptr; Window win = menu->menu->window; WMenuEntry *entry = menu->entries[index]; GC light, dim, dark; WMColor *color; int x, y, w, h, tw; int type; if (!menu->flags.realized) return; h = menu->entry_height; w = menu->menu->width; y = index * h; light = scr->menu_item_auxtexture->light_gc; dim = scr->menu_item_auxtexture->dim_gc; dark = scr->menu_item_auxtexture->dark_gc; if (wPreferences.menu_style == MS_FLAT && menu->entry_no > 1) { if (index == 0) type = F_TOP; else if (index == menu->entry_no - 1) type = F_BOTTOM; else type = F_NONE; } else { type = F_NORMAL; } /* paint background */ if (selected) { XFillRectangle(dpy, win, WMColorGC(scr->select_color), 1, y + 1, w - 2, h - 3); if (scr->menu_item_texture->any.type == WTEX_SOLID) drawFrame(scr, win, y, w, h, type); } else { if (scr->menu_item_texture->any.type == WTEX_SOLID) { XClearArea(dpy, win, 0, y + 1, w - 1, h - 3, False); /* draw the frame */ drawFrame(scr, win, y, w, h, type); } else { XClearArea(dpy, win, 0, y, w, h, False); } } if (selected) { if (entry->flags.enabled) color = scr->select_text_color; else color = scr->dtext_color; } else if (!entry->flags.enabled) { color = scr->dtext_color; } else { color = scr->mtext_color; } /* draw text */ x = 5; if (entry->flags.indicator) x += MENU_INDICATOR_SPACE + 2; WMDrawString(scr->wmscreen, win, color, scr->menu_entry_font, x, 3 + y + wPreferences.menu_text_clearance, entry->text, strlen(entry->text)); if (entry->cascade >= 0) { /* draw the cascade indicator */ XDrawLine(dpy, win, dim, w - 11, y + 6, w - 6, y + h / 2 - 1); XDrawLine(dpy, win, light, w - 11, y + h - 8, w - 6, y + h / 2 - 1); XDrawLine(dpy, win, dark, w - 12, y + 6, w - 12, y + h - 8); } /* draw indicator */ if (entry->flags.indicator && entry->flags.indicator_on) { int iw, ih; WPixmap *indicator; switch (entry->flags.indicator_type) { case MI_CHECK: indicator = scr->menu_check_indicator; break; case MI_MINIWINDOW: indicator = scr->menu_mini_indicator; break; case MI_HIDDEN: indicator = scr->menu_hide_indicator; break; case MI_SHADED: indicator = scr->menu_shade_indicator; break; case MI_DIAMOND: default: indicator = scr->menu_radio_indicator; break; } iw = indicator->width; ih = indicator->height; XSetClipMask(dpy, scr->copy_gc, indicator->mask); XSetClipOrigin(dpy, scr->copy_gc, 5, y + (h - ih) / 2); if (selected) { if (entry->flags.enabled) { XSetForeground(dpy, scr->copy_gc, WMColorPixel(scr->select_text_color)); } else { XSetForeground(dpy, scr->copy_gc, WMColorPixel(scr->dtext_color)); } } else { if (entry->flags.enabled) { XSetForeground(dpy, scr->copy_gc, WMColorPixel(scr->mtext_color)); } else { XSetForeground(dpy, scr->copy_gc, WMColorPixel(scr->dtext_color)); } } XFillRectangle(dpy, win, scr->copy_gc, 5, y + (h - ih) / 2, iw, ih); /* XCopyArea(dpy, indicator->image, win, scr->copy_gc, 0, 0, iw, ih, 5, y+(h-ih)/2); */ XSetClipOrigin(dpy, scr->copy_gc, 0, 0); } /* draw right text */ if (entry->rtext && entry->cascade < 0) { tw = WMWidthOfString(scr->menu_entry_font, entry->rtext, strlen(entry->rtext)); WMDrawString(scr->wmscreen, win, color, scr->menu_entry_font, w - 6 - tw, y + 3 + wPreferences.menu_text_clearance, entry->rtext, strlen(entry->rtext)); } } static void move_menus(WMenu * menu, int x, int y) { while (menu->parent) { menu = menu->parent; x -= MENUW(menu); if (!wPreferences.align_menus && menu->selected_entry >= 0) { y -= menu->selected_entry * menu->entry_height; } } wMenuMove(menu, x, y, True); } static void makeVisible(WMenu * menu) { WScreen *scr = menu->frame->screen_ptr; int x1, y1, x2, y2, new_x, new_y; WMRect rect = wGetRectForHead(scr, wGetHeadForPointerLocation(scr)); if (menu->entry_no < 0) return; x1 = menu->frame_x; y1 = menu->frame_y + menu->frame->top_width + menu->selected_entry * menu->entry_height; x2 = x1 + MENUW(menu); y2 = y1 + menu->entry_height; new_x = x1; new_y = y1; if (x1 < rect.pos.x) { new_x = rect.pos.x; } else if (x2 >= rect.pos.x + rect.size.width) { new_x = rect.pos.x + rect.size.width - MENUW(menu) - 1; } if (y1 < rect.pos.y) { new_y = rect.pos.y; } else if (y2 >= rect.pos.y + rect.size.height) { new_y = rect.pos.y + rect.size.height - menu->entry_height - 1; } new_y = new_y - menu->frame->top_width - menu->selected_entry * menu->entry_height; move_menus(menu, new_x, new_y); } static int check_key(WMenu * menu, XKeyEvent * event) { int i, ch, s; char buffer[32]; if (XLookupString(event, buffer, 32, NULL, NULL) < 1) return -1; ch = toupper(buffer[0]); s = (menu->selected_entry >= 0 ? menu->selected_entry + 1 : 0); again: for (i = s; i < menu->entry_no; i++) { if (ch == toupper(menu->entries[i]->text[0])) { return i; } } /* no match. Retry from start, if previous started from a selected entry */ if (s != 0) { s = 0; goto again; } return -1; } static int keyboardMenu(WMenu * menu) { XEvent event; KeySym ksym = NoSymbol; int done = 0; int index; WMenuEntry *entry; int old_pos_x = menu->frame_x; int old_pos_y = menu->frame_y; int new_x = old_pos_x, new_y = old_pos_y; WMRect rect = wGetRectForHead(menu->frame->screen_ptr, wGetHeadForPointerLocation(menu->frame->screen_ptr)); if (menu->flags.editing) return False; XGrabKeyboard(dpy, menu->frame->core->window, True, GrabModeAsync, GrabModeAsync, CurrentTime); if (menu->frame_y + menu->frame->top_width >= rect.pos.y + rect.size.height) new_y = rect.pos.y + rect.size.height - menu->frame->top_width; if (menu->frame_x + MENUW(menu) >= rect.pos.x + rect.size.width) new_x = rect.pos.x + rect.size.width - MENUW(menu) - 1; move_menus(menu, new_x, new_y); while (!done && menu->flags.mapped) { XAllowEvents(dpy, AsyncKeyboard, CurrentTime); WMMaskEvent(dpy, ExposureMask | ButtonMotionMask | ButtonPressMask | ButtonReleaseMask | KeyPressMask | KeyReleaseMask | SubstructureNotifyMask, &event); switch (event.type) { case KeyPress: ksym = XLookupKeysym(&event.xkey, 0); if (wPreferences.vi_key_menus) { switch (ksym) { case XK_h: ksym = XK_Left; break; case XK_j: ksym = XK_Down; break; case XK_k: ksym = XK_Up; break; case XK_l: ksym = XK_Right; break; } } switch (ksym) { case XK_Escape: done = 1; break; case XK_Home: #ifdef XK_KP_Home case XK_KP_Home: #endif selectEntry(menu, 0); makeVisible(menu); break; case XK_End: #ifdef XK_KP_End case XK_KP_End: #endif selectEntry(menu, menu->entry_no - 1); makeVisible(menu); break; case XK_Up: #ifdef XK_KP_Up case XK_KP_Up: #endif if (menu->selected_entry <= 0) selectEntry(menu, menu->entry_no - 1); else selectEntry(menu, menu->selected_entry - 1); makeVisible(menu); break; case XK_Down: #ifdef XK_KP_Down case XK_KP_Down: #endif if (menu->selected_entry < 0) selectEntry(menu, 0); else if (menu->selected_entry == menu->entry_no - 1) selectEntry(menu, 0); else if (menu->selected_entry < menu->entry_no - 1) selectEntry(menu, menu->selected_entry + 1); makeVisible(menu); break; case XK_Right: #ifdef XK_KP_Right case XK_KP_Right: #endif if (menu->selected_entry >= 0) { WMenuEntry *entry; entry = menu->entries[menu->selected_entry]; if (entry->cascade >= 0 && menu->cascades && menu->cascades[entry->cascade]->entry_no > 0) { XUngrabKeyboard(dpy, CurrentTime); selectEntry(menu->cascades[entry->cascade], 0); if (!keyboardMenu(menu->cascades[entry->cascade])) done = 1; XGrabKeyboard(dpy, menu->frame->core->window, True, GrabModeAsync, GrabModeAsync, CurrentTime); } } break; case XK_Left: #ifdef XK_KP_Left case XK_KP_Left: #endif if (menu->parent != NULL && menu->parent->selected_entry >= 0) { selectEntry(menu, -1); move_menus(menu, old_pos_x, old_pos_y); return True; } break; case XK_Return: #ifdef XK_KP_Enter case XK_KP_Enter: #endif done = 2; break; default: index = check_key(menu, &event.xkey); if (index >= 0) { selectEntry(menu, index); } } break; default: if (event.type == ButtonPress) done = 1; WMHandleEvent(&event); } } XUngrabKeyboard(dpy, CurrentTime); if (done == 2 && menu->selected_entry >= 0) { entry = menu->entries[menu->selected_entry]; } else { entry = NULL; } if (entry && entry->callback != NULL && entry->flags.enabled && entry->cascade < 0) { #if (MENU_BLINK_COUNT > 0) int sel = menu->selected_entry; int i; for (i = 0; i < MENU_BLINK_COUNT; i++) { paintEntry(menu, sel, False); XSync(dpy, 0); wusleep(MENU_BLINK_DELAY); paintEntry(menu, sel, True); XSync(dpy, 0); wusleep(MENU_BLINK_DELAY); } #endif selectEntry(menu, -1); if (!menu->flags.buttoned) { wMenuUnmap(menu); move_menus(menu, old_pos_x, old_pos_y); } closeCascade(menu); (*entry->callback) (menu, entry); } else { if (!menu->flags.buttoned) { wMenuUnmap(menu); move_menus(menu, old_pos_x, old_pos_y); } selectEntry(menu, -1); } /* returns True if returning from a submenu to a parent menu, * False if exiting from menu */ return False; } void wMenuMapAt(WMenu * menu, int x, int y, int keyboard) { if (!menu->flags.realized) { menu->flags.realized = 1; wMenuRealize(menu); } if (!menu->flags.mapped) { if (wPreferences.wrap_menus) { WScreen *scr = menu->frame->screen_ptr; WMRect rect = wGetRectForHead(scr, wGetHeadForPointerLocation(scr)); if (x < rect.pos.x) x = rect.pos.x; if (y < rect.pos.y) y = rect.pos.y; if (x + MENUW(menu) > rect.pos.x + rect.size.width) x = rect.pos.x + rect.size.width - MENUW(menu); if (y + MENUH(menu) > rect.pos.y + rect.size.height) y = rect.pos.y + rect.size.height - MENUH(menu); } XMoveWindow(dpy, menu->frame->core->window, x, y); menu->frame_x = x; menu->frame_y = y; XMapWindow(dpy, menu->frame->core->window); wRaiseFrame(menu->frame->core); menu->flags.mapped = 1; } else { selectEntry(menu, 0); } if (keyboard) keyboardMenu(menu); } void wMenuMap(WMenu * menu) { if (!menu->flags.realized) { menu->flags.realized = 1; wMenuRealize(menu); } if (menu->flags.app_menu && menu->parent == NULL) { menu->frame_x = menu->frame->screen_ptr->app_menu_x; menu->frame_y = menu->frame->screen_ptr->app_menu_y; XMoveWindow(dpy, menu->frame->core->window, menu->frame_x, menu->frame_y); } XMapWindow(dpy, menu->frame->core->window); wRaiseFrame(menu->frame->core); menu->flags.mapped = 1; } void wMenuUnmap(WMenu * menu) { int i; XUnmapWindow(dpy, menu->frame->core->window); if (menu->flags.titled && menu->flags.buttoned) { wFrameWindowHideButton(menu->frame, WFF_RIGHT_BUTTON); } menu->flags.buttoned = 0; menu->flags.mapped = 0; menu->flags.open_to_left = 0; for (i = 0; i < menu->cascade_no; i++) { if (menu->cascades[i] != NULL && menu->cascades[i]->flags.mapped && !menu->cascades[i]->flags.buttoned) { wMenuUnmap(menu->cascades[i]); } } menu->selected_entry = -1; } void wMenuPaint(WMenu * menu) { int i; if (!menu->flags.mapped) { return; } /* paint entries */ for (i = 0; i < menu->entry_no; i++) { paintEntry(menu, i, i == menu->selected_entry); } } void wMenuSetEnabled(WMenu * menu, int index, int enable) { if (index >= menu->entry_no) return; menu->entries[index]->flags.enabled = enable; paintEntry(menu, index, index == menu->selected_entry); paintEntry(menu->brother, index, index == menu->selected_entry); } static void selectEntry(WMenu * menu, int entry_no) { WMenuEntry *entry; WMenu *submenu; int old_entry; if (menu->entries == NULL) return; if (entry_no >= menu->entry_no) return; old_entry = menu->selected_entry; menu->selected_entry = entry_no; if (old_entry != entry_no) { /* unselect previous entry */ if (old_entry >= 0) { paintEntry(menu, old_entry, False); entry = menu->entries[old_entry]; /* unmap cascade */ if (entry->cascade >= 0 && menu->cascades) { if (!menu->cascades[entry->cascade]->flags.buttoned) { wMenuUnmap(menu->cascades[entry->cascade]); } } } if (entry_no < 0) { menu->selected_entry = -1; return; } entry = menu->entries[entry_no]; if (entry->cascade >= 0 && menu->cascades && entry->flags.enabled) { /* Callback for when the submenu is opened. */ submenu = menu->cascades[entry->cascade]; if (submenu && submenu->flags.brother) submenu = submenu->brother; if (entry->callback) { /* Only call the callback if the submenu is not yet mapped. */ if (menu->flags.brother) { if (!submenu || !submenu->flags.mapped) (*entry->callback) (menu->brother, entry); } else { if (!submenu || !submenu->flags.buttoned) (*entry->callback) (menu, entry); } } /* the submenu menu might have changed */ submenu = menu->cascades[entry->cascade]; /* map cascade */ if (!submenu->flags.mapped) { int x, y; if (!submenu->flags.realized) wMenuRealize(submenu); if (wPreferences.wrap_menus) { if (menu->flags.open_to_left) submenu->flags.open_to_left = 1; if (submenu->flags.open_to_left) { x = menu->frame_x - MENUW(submenu); if (x < 0) { x = 0; submenu->flags.open_to_left = 0; } } else { x = menu->frame_x + MENUW(menu); if (x + MENUW(submenu) >= menu->frame->screen_ptr->scr_width) { x = menu->frame_x - MENUW(submenu); submenu->flags.open_to_left = 1; } } } else { x = menu->frame_x + MENUW(menu); } if (wPreferences.align_menus) { y = menu->frame_y; } else { y = menu->frame_y + menu->entry_height * entry_no; if (menu->flags.titled) y += menu->frame->top_width; if (menu->cascades[entry->cascade]->flags.titled) y -= menu->cascades[entry->cascade]->frame->top_width; } wMenuMapAt(menu->cascades[entry->cascade], x, y, False); menu->cascades[entry->cascade]->parent = menu; } else { return; } } paintEntry(menu, entry_no, True); } } static WMenu *findMenu(WScreen * scr, int *x_ret, int *y_ret) { WMenu *menu; WObjDescriptor *desc; Window root_ret, win, junk_win; int x, y, wx, wy; unsigned int mask; XQueryPointer(dpy, scr->root_win, &root_ret, &win, &x, &y, &wx, &wy, &mask); if (win == None) return NULL; if (XFindContext(dpy, win, wWinContext, (XPointer *) & desc) == XCNOENT) return NULL; if (desc->parent_type == WCLASS_MENU) { menu = (WMenu *) desc->parent; XTranslateCoordinates(dpy, root_ret, menu->menu->window, wx, wy, x_ret, y_ret, &junk_win); return menu; } return NULL; } static void closeCascade(WMenu * menu) { WMenu *parent = menu->parent; if (menu->flags.brother || (!menu->flags.buttoned && (!menu->flags.app_menu || menu->parent != NULL))) { selectEntry(menu, -1); XSync(dpy, 0); #if (MENU_BLINK_DELAY > 2) wusleep(MENU_BLINK_DELAY / 2); #endif wMenuUnmap(menu); while (parent != NULL && (parent->parent != NULL || !parent->flags.app_menu || parent->flags.brother) && !parent->flags.buttoned) { selectEntry(parent, -1); wMenuUnmap(parent); parent = parent->parent; } if (parent) selectEntry(parent, -1); } } static void closeBrotherCascadesOf(WMenu * menu) { WMenu *tmp; int i; for (i = 0; i < menu->cascade_no; i++) { if (menu->cascades[i]->flags.brother) { tmp = menu->cascades[i]; } else { tmp = menu->cascades[i]->brother; } if (tmp->flags.mapped) { selectEntry(tmp->parent, -1); closeBrotherCascadesOf(tmp); break; } } } #define getEntryAt(menu, x, y) ((y)<0 ? -1 : (y)/(menu->entry_height)) static WMenu *parentMenu(WMenu * menu) { WMenu *parent; WMenuEntry *entry; if (menu->flags.buttoned) return menu; while (menu->parent && menu->parent->flags.mapped) { parent = menu->parent; if (parent->selected_entry < 0) break; entry = parent->entries[parent->selected_entry]; if (!entry->flags.enabled || entry->cascade < 0 || !parent->cascades || parent->cascades[entry->cascade] != menu) break; menu = parent; if (menu->flags.buttoned) break; } return menu; } /* * Will raise the passed menu, if submenu = 0 * If submenu > 0 will also raise all mapped submenus * until the first buttoned one * If submenu < 0 will also raise all mapped parent menus * until the first buttoned one */ static void raiseMenus(WMenu * menu, int submenus) { WMenu *submenu; int i; if (!menu) return; wRaiseFrame(menu->frame->core); if (submenus > 0 && menu->selected_entry >= 0) { i = menu->entries[menu->selected_entry]->cascade; if (i >= 0 && menu->cascades) { submenu = menu->cascades[i]; if (submenu->flags.mapped && !submenu->flags.buttoned) raiseMenus(submenu, submenus); } } if (submenus < 0 && !menu->flags.buttoned && menu->parent && menu->parent->flags.mapped) raiseMenus(menu->parent, submenus); } WMenu *wMenuUnderPointer(WScreen * screen) { WObjDescriptor *desc; Window root_ret, win; int dummy; unsigned int mask; XQueryPointer(dpy, screen->root_win, &root_ret, &win, &dummy, &dummy, &dummy, &dummy, &mask); if (win == None) return NULL; if (XFindContext(dpy, win, wWinContext, (XPointer *) & desc) == XCNOENT) return NULL; if (desc->parent_type == WCLASS_MENU) return (WMenu *) desc->parent; return NULL; } static void getPointerPosition(WScreen * scr, int *x, int *y) { Window root_ret, win; int wx, wy; unsigned int mask; XQueryPointer(dpy, scr->root_win, &root_ret, &win, x, y, &wx, &wy, &mask); } static void getScrollAmount(WMenu * menu, int *hamount, int *vamount) { WScreen *scr = menu->menu->screen_ptr; int menuX1 = menu->frame_x; int menuY1 = menu->frame_y; int menuX2 = menu->frame_x + MENUW(menu); int menuY2 = menu->frame_y + MENUH(menu); int xroot, yroot; WMRect rect = wGetRectForHead(scr, wGetHeadForPointerLocation(scr)); *hamount = 0; *vamount = 0; getPointerPosition(scr, &xroot, &yroot); if (xroot <= (rect.pos.x + 1) && menuX1 < rect.pos.x) { /* scroll to the right */ *hamount = WMIN(MENU_SCROLL_STEP, abs(menuX1)); } else if (xroot >= (rect.pos.x + rect.size.width - 2) && menuX2 > (rect.pos.x + rect.size.width - 1)) { /* scroll to the left */ *hamount = WMIN(MENU_SCROLL_STEP, abs(menuX2 - rect.pos.x - rect.size.width - 1)); if (*hamount == 0) *hamount = 1; *hamount = -*hamount; } if (yroot <= (rect.pos.y + 1) && menuY1 < rect.pos.y) { /* scroll down */ *vamount = WMIN(MENU_SCROLL_STEP, abs(menuY1)); } else if (yroot >= (rect.pos.y + rect.size.height - 2) && menuY2 > (rect.pos.y + rect.size.height - 1)) { /* scroll up */ *vamount = WMIN(MENU_SCROLL_STEP, abs(menuY2 - rect.pos.y - rect.size.height - 2)); *vamount = -*vamount; } } static void dragScrollMenuCallback(void *data) { WMenu *menu = (WMenu *) data; WScreen *scr = menu->menu->screen_ptr; WMenu *parent = parentMenu(menu); int hamount, vamount; int x, y; int newSelectedEntry; getScrollAmount(menu, &hamount, &vamount); if (hamount != 0 || vamount != 0) { wMenuMove(parent, parent->frame_x + hamount, parent->frame_y + vamount, True); if (findMenu(scr, &x, &y)) { newSelectedEntry = getEntryAt(menu, x, y); selectEntry(menu, newSelectedEntry); } else { /* Pointer fell outside of menu. If the selected entry is * not a submenu, unselect it */ if (menu->selected_entry >= 0 && menu->entries[menu->selected_entry]->cascade < 0) selectEntry(menu, -1); newSelectedEntry = 0; } /* paranoid check */ if (newSelectedEntry >= 0) { /* keep scrolling */ menu->timer = WMAddTimerHandler(MENU_SCROLL_DELAY, dragScrollMenuCallback, menu); } else { menu->timer = NULL; } } else { /* don't need to scroll anymore */ menu->timer = NULL; if (findMenu(scr, &x, &y)) { newSelectedEntry = getEntryAt(menu, x, y); selectEntry(menu, newSelectedEntry); } } } static void scrollMenuCallback(void *data) { WMenu *menu = (WMenu *) data; WMenu *parent = parentMenu(menu); int hamount = 0; /* amount to scroll */ int vamount = 0; getScrollAmount(menu, &hamount, &vamount); if (hamount != 0 || vamount != 0) { wMenuMove(parent, parent->frame_x + hamount, parent->frame_y + vamount, True); /* keep scrolling */ menu->timer = WMAddTimerHandler(MENU_SCROLL_DELAY, scrollMenuCallback, menu); } else { /* don't need to scroll anymore */ menu->timer = NULL; } } #define MENU_SCROLL_BORDER 5 static int isPointNearBoder(WMenu * menu, int x, int y) { int menuX1 = menu->frame_x; int menuY1 = menu->frame_y; int menuX2 = menu->frame_x + MENUW(menu); int menuY2 = menu->frame_y + MENUH(menu); int flag = 0; int head = wGetHeadForPoint(menu->frame->screen_ptr, wmkpoint(x, y)); WMRect rect = wGetRectForHead(menu->frame->screen_ptr, head); /* XXX: handle screen joins properly !! */ if (x >= menuX1 && x <= menuX2 && (y < rect.pos.y + MENU_SCROLL_BORDER || y >= rect.pos.y + rect.size.height - MENU_SCROLL_BORDER)) flag = 1; else if (y >= menuY1 && y <= menuY2 && (x < rect.pos.x + MENU_SCROLL_BORDER || x >= rect.pos.x + rect.size.width - MENU_SCROLL_BORDER)) flag = 1; return flag; } typedef struct _delay { WMenu *menu; int ox, oy; } _delay; static void leaving(_delay * dl) { wMenuMove(dl->menu, dl->ox, dl->oy, True); dl->menu->jump_back = NULL; dl->menu->menu->screen_ptr->flags.jump_back_pending = 0; wfree(dl); } void wMenuScroll(WMenu * menu, XEvent * event) { WMenu *smenu; WMenu *omenu = parentMenu(menu); WScreen *scr = menu->frame->screen_ptr; int done = 0; int jump_back = 0; int old_frame_x = omenu->frame_x; int old_frame_y = omenu->frame_y; XEvent ev; if (omenu->jump_back) WMDeleteTimerWithClientData(omenu->jump_back); if (( /*omenu->flags.buttoned && */ !wPreferences.wrap_menus) || omenu->flags.app_menu) { jump_back = 1; } if (!wPreferences.wrap_menus) raiseMenus(omenu, True); else raiseMenus(menu, False); if (!menu->timer) scrollMenuCallback(menu); while (!done) { int x, y, on_border, on_x_edge, on_y_edge, on_title; WMRect rect; WMNextEvent(dpy, &ev); switch (ev.type) { case EnterNotify: WMHandleEvent(&ev); case MotionNotify: x = (ev.type == MotionNotify) ? ev.xmotion.x_root : ev.xcrossing.x_root; y = (ev.type == MotionNotify) ? ev.xmotion.y_root : ev.xcrossing.y_root; /* on_border is != 0 if the pointer is between the menu * and the screen border and is close enough to the border */ on_border = isPointNearBoder(menu, x, y); smenu = wMenuUnderPointer(scr); if ((smenu == NULL && !on_border) || (smenu && parentMenu(smenu) != omenu)) { done = 1; break; } rect = wGetRectForHead(scr, wGetHeadForPoint(scr, wmkpoint(x, y))); on_x_edge = x <= rect.pos.x + 1 || x >= rect.pos.x + rect.size.width - 2; on_y_edge = y <= rect.pos.y + 1 || y >= rect.pos.y + rect.size.height - 2; on_border = on_x_edge || on_y_edge; if (!on_border && !jump_back) { done = 1; break; } if (menu->timer && (smenu != menu || (!on_y_edge && !on_x_edge))) { WMDeleteTimerHandler(menu->timer); menu->timer = NULL; } if (smenu != NULL) menu = smenu; if (!menu->timer) scrollMenuCallback(menu); break; case ButtonPress: /* True if we push on title, or drag the omenu to other position */ on_title = ev.xbutton.x_root >= omenu->frame_x && ev.xbutton.x_root <= omenu->frame_x + MENUW(omenu) && ev.xbutton.y_root >= omenu->frame_y && ev.xbutton.y_root <= omenu->frame_y + omenu->frame->top_width; WMHandleEvent(&ev); smenu = wMenuUnderPointer(scr); if (smenu == NULL || (smenu && smenu->flags.buttoned && smenu != omenu)) done = 1; else if (smenu == omenu && on_title) { jump_back = 0; done = 1; } break; case KeyPress: done = 1; default: WMHandleEvent(&ev); break; } } if (menu->timer) { WMDeleteTimerHandler(menu->timer); menu->timer = NULL; } if (jump_back) { _delay *delayer; if (!omenu->jump_back) { delayer = wmalloc(sizeof(_delay)); delayer->menu = omenu; delayer->ox = old_frame_x; delayer->oy = old_frame_y; omenu->jump_back = delayer; scr->flags.jump_back_pending = 1; } else delayer = omenu->jump_back; WMAddTimerHandler(MENU_JUMP_BACK_DELAY, (WMCallback *) leaving, delayer); } } static void menuExpose(WObjDescriptor * desc, XEvent * event) { wMenuPaint(desc->parent); } typedef struct { int *delayed_select; WMenu *menu; WMHandlerID magic; } delay_data; static void delaySelection(void *data) { delay_data *d = (delay_data *) data; int x, y, entry_no; WMenu *menu; d->magic = NULL; menu = findMenu(d->menu->menu->screen_ptr, &x, &y); if (menu && (d->menu == menu || d->delayed_select)) { entry_no = getEntryAt(menu, x, y); selectEntry(menu, entry_no); } if (d->delayed_select) *(d->delayed_select) = 0; } static void menuMouseDown(WObjDescriptor * desc, XEvent * event) { WWindow *wwin; XButtonEvent *bev = &event->xbutton; WMenu *menu = desc->parent; WMenu *smenu; WScreen *scr = menu->frame->screen_ptr; WMenuEntry *entry = NULL; XEvent ev; int close_on_exit = 0; int done = 0; int delayed_select = 0; int entry_no; int x, y; int prevx, prevy; int old_frame_x = 0; int old_frame_y = 0; delay_data d_data = { NULL, NULL, NULL }; /* Doesn't seem to be needed anymore (if delayed selection handler is * added only if not present). there seem to be no other side effects * from removing this and it is also possible that it was only added * to avoid problems with adding the delayed selection timer handler * multiple times */ /*if (menu->flags.inside_handler) { return; } */ menu->flags.inside_handler = 1; if (!wPreferences.wrap_menus) { smenu = parentMenu(menu); old_frame_x = smenu->frame_x; old_frame_y = smenu->frame_y; } else if (event->xbutton.window == menu->frame->core->window) { /* This is true if the menu was launched with right click on root window */ if (!d_data.magic) { delayed_select = 1; d_data.delayed_select = &delayed_select; d_data.menu = menu; d_data.magic = WMAddTimerHandler(wPreferences.dblclick_time, delaySelection, &d_data); } } wRaiseFrame(menu->frame->core); close_on_exit = (bev->send_event || menu->flags.brother); smenu = findMenu(scr, &x, &y); if (!smenu) { x = -1; y = -1; } else { menu = smenu; } if (menu->flags.editing) { goto byebye; } entry_no = getEntryAt(menu, x, y); if (entry_no >= 0) { entry = menu->entries[entry_no]; if (!close_on_exit && (bev->state & ControlMask) && smenu && entry->flags.editable) { char buffer[128]; char *name; int number = entry_no - 3; /* Entries "New", "Destroy Last" and "Last Used" appear before workspaces */ name = wstrdup(scr->workspaces[number]->name); snprintf(buffer, sizeof(buffer), _("Type the name for workspace %i:"), number + 1); wMenuUnmap(scr->root_menu); if (wInputDialog(scr, _("Rename Workspace"), buffer, &name)) wWorkspaceRename(scr, number, name); if (name) wfree(name); goto byebye; } else if (bev->state & ControlMask) { goto byebye; } if (entry->flags.enabled && entry->cascade >= 0 && menu->cascades) { WMenu *submenu = menu->cascades[entry->cascade]; /* map cascade */ if (submenu->flags.mapped && !submenu->flags.buttoned && menu->selected_entry != entry_no) { wMenuUnmap(submenu); } if (!submenu->flags.mapped && !delayed_select) { selectEntry(menu, entry_no); } else if (!submenu->flags.buttoned) { selectEntry(menu, -1); } } else if (!delayed_select) { if (menu == scr->switch_menu && event->xbutton.button == Button3) { selectEntry(menu, entry_no); OpenWindowMenu2((WWindow *)entry->clientdata, event->xbutton.x_root, event->xbutton.y_root, False); wwin = (WWindow *)entry->clientdata; desc = &wwin->screen_ptr->window_menu->menu->descriptor; event->xany.send_event = True; (*desc->handle_mousedown)(desc, event); XUngrabPointer(dpy, CurrentTime); selectEntry(menu, -1); return; } else { selectEntry(menu, entry_no); } } if (!wPreferences.wrap_menus && !wPreferences.scrollable_menus) { if (!menu->timer) dragScrollMenuCallback(menu); } } prevx = bev->x_root; prevy = bev->y_root; while (!done) { int x, y; XAllowEvents(dpy, AsyncPointer | SyncPointer, CurrentTime); WMMaskEvent(dpy, ExposureMask | ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, &ev); switch (ev.type) { case MotionNotify: smenu = findMenu(scr, &x, &y); if (smenu == NULL) { /* moved mouse out of menu */ if (!delayed_select && d_data.magic) { WMDeleteTimerHandler(d_data.magic); d_data.magic = NULL; } if (menu == NULL || (menu->selected_entry >= 0 && menu->entries[menu->selected_entry]->cascade >= 0)) { prevx = ev.xmotion.x_root; prevy = ev.xmotion.y_root; break; } selectEntry(menu, -1); menu = smenu; prevx = ev.xmotion.x_root; prevy = ev.xmotion.y_root; break; } else if (menu && menu != smenu && (menu->selected_entry < 0 || menu->entries[menu->selected_entry]->cascade < 0)) { selectEntry(menu, -1); if (!delayed_select && d_data.magic) { WMDeleteTimerHandler(d_data.magic); d_data.magic = NULL; } } else { /* hysteresis for item selection */ /* check if the motion was to the side, indicating that * the user may want to cross to a submenu */ if (!delayed_select && menu) { int dx; Bool moved_to_submenu; /* moved to direction of submenu */ dx = abs(prevx - ev.xmotion.x_root); moved_to_submenu = False; if (dx > 0 /* if moved enough to the side */ /* maybe a open submenu */ && menu->selected_entry >= 0 /* moving to the right direction */ && (wPreferences.align_menus || ev.xmotion.y_root >= prevy)) { int index; index = menu->entries[menu->selected_entry]->cascade; if (index >= 0) { if (menu->cascades[index]->frame_x > menu->frame_x) { if (prevx < ev.xmotion.x_root) moved_to_submenu = True; } else { if (prevx > ev.xmotion.x_root) moved_to_submenu = True; } } } if (menu != smenu) { if (d_data.magic) { WMDeleteTimerHandler(d_data.magic); d_data.magic = NULL; } } else if (moved_to_submenu) { /* while we are moving, postpone the selection */ if (d_data.magic) { WMDeleteTimerHandler(d_data.magic); } d_data.delayed_select = NULL; d_data.menu = menu; d_data.magic = WMAddTimerHandler(MENU_SELECT_DELAY, delaySelection, &d_data); prevx = ev.xmotion.x_root; prevy = ev.xmotion.y_root; break; } else { if (d_data.magic) { WMDeleteTimerHandler(d_data.magic); d_data.magic = NULL; } } } } prevx = ev.xmotion.x_root; prevy = ev.xmotion.y_root; if (menu != smenu) { /* pointer crossed menus */ if (menu && menu->timer) { WMDeleteTimerHandler(menu->timer); menu->timer = NULL; } if (smenu) dragScrollMenuCallback(smenu); } menu = smenu; if (!menu->timer) dragScrollMenuCallback(menu); if (!delayed_select) { entry_no = getEntryAt(menu, x, y); if (entry_no >= 0) { entry = menu->entries[entry_no]; if (entry->flags.enabled && entry->cascade >= 0 && menu->cascades) { WMenu *submenu = menu->cascades[entry->cascade]; if (submenu->flags.mapped && !submenu->flags.buttoned && menu->selected_entry != entry_no) { wMenuUnmap(submenu); } } } selectEntry(menu, entry_no); } break; case ButtonPress: break; case ButtonRelease: if (ev.xbutton.button == event->xbutton.button) done = 1; break; case Expose: WMHandleEvent(&ev); break; } } if (menu && menu->timer) { WMDeleteTimerHandler(menu->timer); menu->timer = NULL; } if (d_data.magic != NULL) { WMDeleteTimerHandler(d_data.magic); d_data.magic = NULL; } if (menu && menu->selected_entry >= 0) { entry = menu->entries[menu->selected_entry]; if (entry->callback != NULL && entry->flags.enabled && entry->cascade < 0) { /* blink and erase menu selection */ #if (MENU_BLINK_DELAY > 0) int sel = menu->selected_entry; int i; for (i = 0; i < MENU_BLINK_COUNT; i++) { paintEntry(menu, sel, False); XSync(dpy, 0); wusleep(MENU_BLINK_DELAY); paintEntry(menu, sel, True); XSync(dpy, 0); wusleep(MENU_BLINK_DELAY); } #endif /* unmap the menu, it's parents and call the callback */ if (!menu->flags.buttoned && (!menu->flags.app_menu || menu->parent != NULL)) { closeCascade(menu); } else { selectEntry(menu, -1); } (*entry->callback) (menu, entry); /* If the user double clicks an entry, the entry will * be executed twice, which is not good for things like * the root menu. So, ignore any clicks that were generated * while the entry was being executed */ while (XCheckTypedWindowEvent(dpy, menu->menu->window, ButtonPress, &ev)) ; } else if (entry->callback != NULL && entry->cascade < 0) { selectEntry(menu, -1); } else { if (entry->cascade >= 0 && menu->cascades && menu->cascades[entry->cascade]->flags.brother) { selectEntry(menu, -1); } } } if (((WMenu *) desc->parent)->flags.brother || close_on_exit || !smenu) closeCascade(desc->parent); /* close the cascade windows that should not remain opened */ closeBrotherCascadesOf(desc->parent); if (!wPreferences.wrap_menus) wMenuMove(parentMenu(desc->parent), old_frame_x, old_frame_y, True); byebye: /* Just to be sure in case we skip the 2 above because of a goto byebye */ if (menu && menu->timer) { WMDeleteTimerHandler(menu->timer); menu->timer = NULL; } if (d_data.magic != NULL) { WMDeleteTimerHandler(d_data.magic); d_data.magic = NULL; } ((WMenu *) desc->parent)->flags.inside_handler = 0; } void wMenuMove(WMenu * menu, int x, int y, int submenus) { WMenu *submenu; int i; if (!menu) return; menu->frame_x = x; menu->frame_y = y; XMoveWindow(dpy, menu->frame->core->window, x, y); if (submenus > 0 && menu->selected_entry >= 0) { i = menu->entries[menu->selected_entry]->cascade; if (i >= 0 && menu->cascades) { submenu = menu->cascades[i]; if (submenu->flags.mapped && !submenu->flags.buttoned) { if (wPreferences.align_menus) { wMenuMove(submenu, x + MENUW(menu), y, submenus); } else { wMenuMove(submenu, x + MENUW(menu), y + submenu->entry_height * menu->selected_entry, submenus); } } } } if (submenus < 0 && menu->parent != NULL && menu->parent->flags.mapped && !menu->parent->flags.buttoned) { if (wPreferences.align_menus) { wMenuMove(menu->parent, x - MENUW(menu->parent), y, submenus); } else { wMenuMove(menu->parent, x - MENUW(menu->parent), menu->frame_y - menu->parent->entry_height * menu->parent->selected_entry, submenus); } } } static void changeMenuLevels(WMenu * menu, int lower) { int i; if (!lower) { ChangeStackingLevel(menu->frame->core, (!menu->parent ? WMMainMenuLevel : WMSubmenuLevel)); wRaiseFrame(menu->frame->core); menu->flags.lowered = 0; } else { ChangeStackingLevel(menu->frame->core, WMNormalLevel); wLowerFrame(menu->frame->core); menu->flags.lowered = 1; } for (i = 0; i < menu->cascade_no; i++) { if (menu->cascades[i] && !menu->cascades[i]->flags.buttoned && menu->cascades[i]->flags.lowered != lower) { changeMenuLevels(menu->cascades[i], lower); } } } static void menuTitleDoubleClick(WCoreWindow * sender, void *data, XEvent * event) { WMenu *menu = data; int lower; if (event->xbutton.state & MOD_MASK) { if (menu->flags.lowered) { lower = 0; } else { lower = 1; } changeMenuLevels(menu, lower); } } static void menuTitleMouseDown(WCoreWindow * sender, void *data, XEvent * event) { WMenu *menu = data; WMenu *tmp; XEvent ev; int x = menu->frame_x, y = menu->frame_y; int dx = event->xbutton.x_root, dy = event->xbutton.y_root; int i, lower; Bool started; /* can't touch the menu copy */ if (menu->flags.brother) return; if (event->xbutton.button != Button1 && event->xbutton.button != Button2) return; if (event->xbutton.state & MOD_MASK) { wLowerFrame(menu->frame->core); lower = 1; } else { wRaiseFrame(menu->frame->core); lower = 0; } tmp = menu; /* lower/raise all submenus */ while (1) { if (tmp->selected_entry >= 0 && tmp->cascades && tmp->entries[tmp->selected_entry]->cascade >= 0) { tmp = tmp->cascades[tmp->entries[tmp->selected_entry]->cascade]; if (!tmp || !tmp->flags.mapped) break; if (lower) wLowerFrame(tmp->frame->core); else wRaiseFrame(tmp->frame->core); } else { break; } } /* tear off the menu if it's a root menu or a cascade application menu */ if (!menu->flags.buttoned && !menu->flags.brother && (!menu->flags.app_menu || menu->parent != NULL)) { menu->flags.buttoned = 1; wFrameWindowShowButton(menu->frame, WFF_RIGHT_BUTTON); if (menu->parent) { /* turn off selected menu entry in parent menu */ selectEntry(menu->parent, -1); /* make parent map the copy in place of the original */ for (i = 0; i < menu->parent->cascade_no; i++) { if (menu->parent->cascades[i] == menu) { menu->parent->cascades[i] = menu->brother; break; } } } } started = False; while (1) { WMMaskEvent(dpy, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask | ExposureMask, &ev); switch (ev.type) { case MotionNotify: if (started) { x += ev.xmotion.x_root - dx; y += ev.xmotion.y_root - dy; dx = ev.xmotion.x_root; dy = ev.xmotion.y_root; wMenuMove(menu, x, y, True); } else { if (abs(ev.xmotion.x_root - dx) > 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; case ButtonPress: break; case ButtonRelease: if (ev.xbutton.button != event->xbutton.button) break; XUngrabPointer(dpy, CurrentTime); return; default: WMHandleEvent(&ev); break; } } } /* *---------------------------------------------------------------------- * menuCloseClick-- * Handles mouse click on the close button of menus. The menu is * closed when the button is clicked. * * Side effects: * The closed menu is reinserted at it's parent menus * cascade list. *---------------------------------------------------------------------- */ static void menuCloseClick(WCoreWindow * sender, void *data, XEvent * event) { WMenu *menu = (WMenu *) data; WMenu *parent = menu->parent; int i; if (parent) { for (i = 0; i < parent->cascade_no; i++) { /* find the entry that points to the copy */ if (parent->cascades[i] == menu->brother) { /* make it point to the original */ parent->cascades[i] = menu; menu->parent = parent; break; } } } wMenuUnmap(menu); } static void saveMenuInfo(WMPropList * dict, WMenu * menu, WMPropList * key) { WMPropList *value, *list; char buffer[256]; snprintf(buffer, sizeof(buffer), "%i,%i", menu->frame_x, menu->frame_y); value = WMCreatePLString(buffer); list = WMCreatePLArray(value, NULL); if (menu->flags.lowered) WMAddToPLArray(list, WMCreatePLString("lowered")); WMPutInPLDictionary(dict, key, list); WMReleasePropList(value); WMReleasePropList(list); } void wMenuSaveState(WScreen * scr) { WMPropList *menus, *key; int save_menus = 0; menus = WMCreatePLDictionary(NULL, NULL); if (scr->switch_menu && scr->switch_menu->flags.buttoned) { key = WMCreatePLString("SwitchMenu"); saveMenuInfo(menus, scr->switch_menu, key); WMReleasePropList(key); save_menus = 1; } if (saveMenuRecurs(menus, scr, scr->root_menu)) save_menus = 1; if (scr->workspace_menu && scr->workspace_menu->flags.buttoned) { key = WMCreatePLString("WorkspaceMenu"); saveMenuInfo(menus, scr->workspace_menu, key); WMReleasePropList(key); save_menus = 1; } if (save_menus) { key = WMCreatePLString("Menus"); WMPutInPLDictionary(scr->session_state, key, menus); WMReleasePropList(key); } WMReleasePropList(menus); } static Bool getMenuPath(WMenu * menu, char *buffer, int bufSize) { Bool ok = True; int len = 0; if (!menu->flags.titled || !menu->frame->title[0]) return False; len = strlen(menu->frame->title); if (len >= bufSize) return False; if (menu->parent) { ok = getMenuPath(menu->parent, buffer, bufSize - len - 1); if (!ok) return False; } strcat(buffer, "\\"); strcat(buffer, menu->frame->title); return True; } static Bool saveMenuRecurs(WMPropList * menus, WScreen * scr, WMenu * menu) { WMPropList *key; int save_menus = 0, i; char buffer[512]; Bool ok = True; if (menu->flags.brother) menu = menu->brother; if (menu->flags.buttoned && menu != scr->switch_menu) { buffer[0] = '\0'; ok = getMenuPath(menu, buffer, 510); if (ok) { key = WMCreatePLString(buffer); saveMenuInfo(menus, menu, key); WMReleasePropList(key); save_menus = 1; } } if (ok) { for (i = 0; i < menu->cascade_no; i++) { if (saveMenuRecurs(menus, scr, menu->cascades[i])) save_menus = 1; } } return save_menus; } #define COMPLAIN(key) wwarning(_("bad value in menus state info: %s"), key) static Bool getMenuInfo(WMPropList * info, int *x, int *y, Bool * lowered) { WMPropList *pos; *lowered = False; if (WMIsPLArray(info)) { WMPropList *flags; pos = WMGetFromPLArray(info, 0); flags = WMGetFromPLArray(info, 1); if (flags != NULL && WMIsPLString(flags) && WMGetFromPLString(flags) != NULL && strcmp(WMGetFromPLString(flags), "lowered") == 0) { *lowered = True; } } else { pos = info; } if (pos != NULL && WMIsPLString(pos)) { if (sscanf(WMGetFromPLString(pos), "%i,%i", x, y) != 2) COMPLAIN("Position"); } else { COMPLAIN("(position, flags...)"); return False; } return True; } static int restoreMenu(WScreen * scr, WMPropList * menu, int which) { int x, y; Bool lowered = False; WMenu *pmenu = NULL; if (!menu) return False; if (!getMenuInfo(menu, &x, &y, &lowered)) return False; if (which & WSS_SWITCHMENU) { OpenSwitchMenu(scr, x, y, False); pmenu = scr->switch_menu; } if (pmenu) { int width = MENUW(pmenu); int height = MENUH(pmenu); WMRect rect = wGetRectForHead(scr, wGetHeadForPointerLocation(scr)); if (lowered) { changeMenuLevels(pmenu, True); } if (x < rect.pos.x - width) x = rect.pos.x; if (x > rect.pos.x + rect.size.width) x = rect.pos.x + rect.size.width - width; if (y < rect.pos.y) y = rect.pos.y; if (y > rect.pos.y + rect.size.height) y = rect.pos.y + rect.size.height - height; wMenuMove(pmenu, x, y, True); pmenu->flags.buttoned = 1; wFrameWindowShowButton(pmenu->frame, WFF_RIGHT_BUTTON); return True; } return False; } static int restoreMenuRecurs(WScreen *scr, WMPropList *menus, WMenu *menu, const char *path) { WMPropList *key, *entry; char buffer[512]; int i, x, y, res; Bool lowered; if (strlen(path) + strlen(menu->frame->title) > 510) return False; snprintf(buffer, sizeof(buffer), "%s\\%s", path, menu->frame->title); key = WMCreatePLString(buffer); entry = WMGetFromPLDictionary(menus, key); res = False; if (entry && getMenuInfo(entry, &x, &y, &lowered)) { if (!menu->flags.mapped) { int width = MENUW(menu); int height = MENUH(menu); WMRect rect = wGetRectForHead(scr, wGetHeadForPointerLocation(scr)); wMenuMapAt(menu, x, y, False); if (menu->parent) { /* make parent map the copy in place of the original */ for (i = 0; i < menu->parent->cascade_no; i++) { if (menu->parent->cascades[i] == menu) { menu->parent->cascades[i] = menu->brother; break; } } } if (lowered) { changeMenuLevels(menu, True); } if (x < rect.pos.x - width) x = rect.pos.x; if (x > rect.pos.x + rect.size.width) x = rect.pos.x + rect.size.width - width; if (y < rect.pos.y) y = rect.pos.y; if (y > rect.pos.y + rect.size.height) y = rect.pos.y + rect.size.height - height; wMenuMove(menu, x, y, True); menu->flags.buttoned = 1; wFrameWindowShowButton(menu->frame, WFF_RIGHT_BUTTON); res = True; } } WMReleasePropList(key); for (i = 0; i < menu->cascade_no; i++) { if (restoreMenuRecurs(scr, menus, menu->cascades[i], buffer) != False) res = True; } return res; } void wMenuRestoreState(WScreen * scr) { WMPropList *menus, *menu, *key, *skey; if (!scr->session_state) { return; } key = WMCreatePLString("Menus"); menus = WMGetFromPLDictionary(scr->session_state, key); WMReleasePropList(key); if (!menus) return; /* restore menus */ skey = WMCreatePLString("SwitchMenu"); menu = WMGetFromPLDictionary(menus, skey); WMReleasePropList(skey); restoreMenu(scr, menu, WSS_SWITCHMENU); if (!scr->root_menu) { OpenRootMenu(scr, scr->scr_width * 2, 0, False); wMenuUnmap(scr->root_menu); } restoreMenuRecurs(scr, menus, scr->root_menu, ""); } WindowMaker-0.95.5/src/monitor.h0000644000175000017500000000171012214432632013407 00000000000000/* * Window Maker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 2013 Window Maker Team * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMMONITOR_H #define WMMONITOR_H int MonitorLoop(int argc, char **argv); #endif /* WMMONITOR_H */ WindowMaker-0.95.5/BUGFORM0000644000175000017500000000353412214432632012012 00000000000000 WindowMaker Bug Report Form --------------------------- If you find a bug please fill this form and send it to wmaker-dev@lists.windowmaker.org Please, USE THIS FORM!!! You can also report a bug in the WWW bug tracker at http://bugs.windowmaker.org/projects/wmaker/issues or by sending this report to bugs@windowmaker.org 0. Before reporting this bug I already: [ ] read the NEWS, README and INSTALL files [ ] read the list of already known bugs in the BUGS file [ ] downloaded and tried the latest version of WindowMaker 1. What happened: [ ] could not compile [ ] crashed [ ] configuration option does not work [ ] weird behaviour [ ] cosmetic [ ] some problem with WPrefs [ ] others: ................................... 2. Detailed description of what happened: 3. How to reproduce the bug, if known: 4. Configure time options you specified: [ ] --enable-kanji [ ] --disable-shape [ ] --enable-single-icon [ ] --enable-modelock [ ] Others: ....................... 5. Changes to the src/wconfig.h file: 6. The error occured during: [ ] configuration [ ] compilation [ ] startup [ ] use 7. Changes made to the configuration files, if the error ocurred during use: 8. Error messages output: 9. Fix, if known: 10. Other Notes: Your e-mail address: ................................................. Operating System (run "uname -a"): .................. Version: ....... Distribution (if applicable): ..................... Version:.......... X Server Vendor: ...................... Color Depth: ................. WindowMaker Version (run "wmaker -version"): ......................... 11. backtrace if the bug made Window Maker crash. PLEASE SEND THE BACKTRACE. Your bug report might be of not much use without one. strace/truss outputs are usually not usefull for crashes, so you can skip it. The README file has instructions to make one. WindowMaker-0.95.5/FAQ.I18N0000644000175000017500000000614112214432632011773 00000000000000 If I18N support does not work for you, check these: - the LANG environment variable is set to your locale, and the locale is supported by your OS's locale or X's locale emulation. you can display all supported locales by executing "locale -a" command if it available. and you can check if your locale is supported by X's locale emulation. See "/usr/X11R6/lib/X11/locale/locale.alias" - Check if you're using appropriate fonts for the locale you chose. If you're using a font set that has a different encoding than the one used by Xlib or libc, bad things can happen. Try specifically putting the encoding in the LANG variable, like ru_RU.KOI8-R. Again, see "/usr/X11R6/lib/X11/locale/locale.alias" - if your OS doesn't support any locale or if your OS doesn't support a locale for your language, you can use X Window System's locale emulation feature instead of OS's locale. To use this feature, add this option to the configure, "--with-x-locale". if your OS is commercial one, such as Solaris,IRIX,AIX,..., you perhaps don't have to use X's locale emulation. But if your OS is Linux or NetBSD or .. , it's possible your locale is not supported so far. then use "--with-x-locale". Note: to use X's locale emulation, your Xlib has to be compiled so that the locale emulation is enabled. Linux RedHat5.0's default Xlib is not compiled like that. (RH4.x are ok). Recompiled Xlib for RH5.0 where you can use locale emulation is available here: ftp://ftp.linux.or.jp/pub/RPM/glibc - the fonts you're using support your locale. if your font setting on $HOME/GNUstep/Defaults/WindowMaker is like.. WindowTitleFont = "Trebuchet MS:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS:bold:pixelsize=12"; ...................................................... then you can't display asian language (ja,ko,ch) characters using Trebuchet MS. A font that is guaranteed to work for any language is sans (or sans-serif). sans is not a font itself, but an alias which points to multiple fonts and will load the first in that list that has the ability to show glyphs in your language. If you don't know a font that is suited for you language you can always set all your fonts to something like: "sans:pixelsize=12" However, please note that if your font is something like: "Trebuchet MS,sans serif:pixelsize=12" this will not be able to display asian languages if any of the previous fonts before sans are installed. This is because unlike the proper font pickup that sans guarantees for your language, this construct only allows a font fallback mechanism, which tries all the fonts in the list in order, until it finds one that is available, even if it doesn't support your language. Also you need to change font settings in style files in the "$HOME/Library/WindowMaker/Style" directory. - the LC_CTYPE environment variable is unset or it has the correct value. If you don't know what is the correct value, unset it. WindowMaker-0.95.5/Makefile.am0000644000175000017500000000305312214432632013016 00000000000000## Process this file with automake to produce Makefile.in AUTOMAKE_OPTIONS = BUILT_SOURCES = config-paths.h DISTCLEANFILES = config-paths.h config.h: config-paths.h config-paths.h: Makefile @echo "Generating $@" @echo '/* this is a generated file - do not edit */' > $@ @echo '' >> $@ @echo '/* gettext domain used for menu translations */' >> $@ @if test -z "$(menutextdomain)"; then \ echo '/* #undef MENU_TEXTDOMAIN "$(menutextdomain)" */' >> $@; \ else \ echo '#define MENU_TEXTDOMAIN "$(menutextdomain)"' >> $@; \ fi @echo '' >> $@ @echo '/* define an extra path for pixmaps */' >> $@ @echo '#define PIXMAPDIR "$(pixmapdir)"' >> $@ @echo '' >> $@ @echo '/* where shared data is stored */' >> $@ @echo '#define PKGDATADIR "$(datadir)/WindowMaker"' >> $@ @echo '' >> $@ @echo '/* where the configuration is stored */' >> $@ @echo '#define SYSCONFDIR "$(sysconfdir)"' >> $@ ACLOCAL_AMFLAGS = -I m4 SUBDIRS = wrlib WINGs src util po WindowMaker wmlib WPrefs.app doc test EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N INSTALL \ INSTALL-WMAKER README.definable-cursor \ The-perfect-Window-Maker-patch.txt \ README COPYING.WTFPL autogen.sh if USE_LCOV coverage-reset: find . -type f -name '*.gcda' -exec rm -f '{}' ';' lcov --directory . --zerocounters coverage: rm -rf coverage @lcov_output_directory@ -mkdir -p coverage @lcov_output_directory@ lcov --compat-libtool --capture --directory . --output-file coverage/coverage.info genhtml --output-directory @lcov_output_directory@ coverage/coverage.info .PHONY: coverage-reset coverage endif WindowMaker-0.95.5/po/0000755000175000017500000000000012214434643011463 500000000000000WindowMaker-0.95.5/po/ca.po0000644000175000017500000016173212214432632012334 00000000000000# Catalan messages for Window Maker. # Copyright (C) 2003 Ernest Adrogué . # This file is distributed under the terms of the GNU General Public License. # # Version history: # WM-ver author email date # 0.80.2 Ernest Adrogué eadrogue@gmx.net 23 Feb 2003 # CVS-20030914 Ernest Adrogué eadrogue@gmx.net 15 Set 2003 # msgid "" msgstr "" "Project-Id-Version: windowmaker CVS-20030914\n" "POT-Creation-Date: 2003-09-16 22:59+0200\n" "PO-Revision-Date: 2003-09-16 23:13+0200\n" "Last-Translator: Ernest Adrogué \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:415 ../src/dialog.c:295 ../src/dock.c:3361 #: ../src/dockedapp.c:231 ../src/main.c:273 ../src/rootmenu.c:1854 #: ../src/winspector.c:389 ../src/winspector.c:406 msgid "Error" msgstr "Error" #: ../src/appicon.c:416 msgid "Could not open specified icon file" msgstr "No s'ha pogut obrir l'icona especificada" #: ../src/appicon.c:417 ../src/dialog.c:192 ../src/dialog.c:295 #: ../src/dialog.c:724 ../src/dialog.c:1780 ../src/dock.c:533 #: ../src/dock.c:541 ../src/dock.c:565 ../src/dock.c:3362 #: ../src/dockedapp.c:232 ../src/dockedapp.c:427 ../src/main.c:273 #: ../src/rootmenu.c:1858 ../src/winspector.c:390 ../src/winspector.c:407 msgid "OK" msgstr "D'acord" #: ../src/appicon.c:445 ../src/dock.c:262 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " es finalitzarà forçosament.\n" "Els canvis que no hagueu salvat es perdràn.\n" "Voleu continuar?" #: ../src/appicon.c:453 ../src/dock.c:281 ../src/winmenu.c:125 msgid "Kill Application" msgstr "Finalitza l'aplicació" #: ../src/appicon.c:454 ../src/dock.c:282 ../src/winmenu.c:127 msgid "Yes" msgstr "Sí" #: ../src/appicon.c:454 ../src/dock.c:282 ../src/winmenu.c:127 msgid "No" msgstr "No" #: ../src/appicon.c:484 ../src/dock.c:1186 ../src/dock.c:3527 msgid "Unhide Here" msgstr "Mostra aquí" #: ../src/appicon.c:485 ../src/appicon.c:510 ../src/dock.c:1188 #: ../src/dock.c:1190 ../src/dock.c:3539 ../src/winmenu.c:467 msgid "Hide" msgstr "Amaga" #: ../src/appicon.c:486 msgid "Set Icon..." msgstr "Assigna icona..." #: ../src/appicon.c:487 ../src/dock.c:1194 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 ../src/winmenu.c:522 msgid "Kill" msgstr "Finalitza" #: ../src/appicon.c:508 ../src/dock.c:3537 msgid "Unhide" msgstr "Mostra" #: ../src/application.c:398 #, c-format msgid "recreating missing icon '%s'" msgstr "s'està recreant l'icona desapareguda '%s'" #: ../src/defaults.c:921 ../src/defaults.c:1082 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "El domini \"%s\" (%s) de la configuració global està malmès!" #: ../src/defaults.c:926 #, c-format msgid "could not load domain %s from global defaults database" msgstr "no s'ha pogut carregar el domini \"%s\" de la configuració global" #: ../src/defaults.c:977 ../src/defaults.c:992 #, c-format msgid "invalid global menu file %s" msgstr "el fitxer global de menú %s no és vàlid" #: ../src/defaults.c:1020 ../src/startup.c:884 ../src/startup.c:902 #: ../src/startup.c:909 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "no s'ha pogut llegir el domini \"%s\" de la configuració" #: ../src/defaults.c:1066 ../src/defaults.c:1171 ../src/defaults.c:1212 #: ../src/defaults.c:1268 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "El domini \"%s\" (%s) de la configuració està malmès!" #: ../src/defaults.c:1071 ../src/defaults.c:1191 ../src/defaults.c:1248 #: ../src/defaults.c:1278 ../src/menureader.c:397 #, c-format msgid "could not load domain %s from user defaults database" msgstr "no s'ha pogut carregar el domini \"%s\" de la configuració de l'usuari" #: ../src/defaults.c:1101 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "no s'ha pogut carregar el domini \"%s\" de la configuració global (%s)" #: ../src/defaults.c:1238 ../src/screen.c:425 #, c-format msgid "could not load logo image for panels: %s" msgstr "no s'ha pogut carregar el logotip pels panells: %s" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1487 ../src/defaults.c:1629 ../src/defaults.c:1741 #: ../src/defaults.c:2220 ../src/defaults.c:2237 ../src/defaults.c:2282 #: ../src/defaults.c:2329 ../src/defaults.c:2802 ../src/wdefaults.c:571 #: ../src/wdefaults.c:607 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "El format de l'opció \"%s\" no és correcte. Hauria de ser %s." #: ../src/defaults.c:1489 ../src/defaults.c:1570 ../src/defaults.c:1602 #: ../src/defaults.c:1634 ../src/defaults.c:1647 ../src/defaults.c:1662 #: ../src/defaults.c:1676 ../src/defaults.c:1746 ../src/defaults.c:1758 #: ../src/defaults.c:2225 ../src/defaults.c:2242 ../src/defaults.c:2255 #: ../src/defaults.c:2287 ../src/defaults.c:2303 ../src/defaults.c:2334 #: ../src/defaults.c:2421 ../src/defaults.c:2807 ../src/defaults.c:2818 #, c-format msgid "using default \"%s\" instead" msgstr "s'usa el valor per omissió \"%s\"" #: ../src/defaults.c:1520 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "" "el valor de l'opció \"%s\" no és correcte. Els valors possibles són: %s" #: ../src/defaults.c:1565 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "\"%s\" a l'opció \"%s\" no es pot convertir a valor booleà" #: ../src/defaults.c:1599 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "\"%s\" a l'opció \"%s\" no es pot convertir a enter" #: ../src/defaults.c:1642 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "El nombre d'elements de la matriu a l'opció \"%s\" no és correcte." #: ../src/defaults.c:1657 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "" "El valor de l'opció \"%s\" no és correcte. Hauria de ser \"Coordinate\"." #: ../src/defaults.c:1672 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "la matriu de l'opció \"%s\" no es pot convertir a enters." #: ../src/defaults.c:1870 ../src/defaults.c:1902 ../src/defaults.c:1918 #: ../src/defaults.c:1947 ../src/defaults.c:1970 ../src/defaults.c:2023 #: ../src/defaults.c:2063 ../src/defaults.c:2101 ../src/defaults.c:2117 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" no és un nom de color vàlid" #: ../src/defaults.c:1883 ../src/defaults.c:1935 msgid "bad number of arguments in gradient specification" msgstr "nombre d'arguments incorrecte a la definició del degradat" #: ../src/defaults.c:1996 msgid "too few arguments in multicolor gradient specification" msgstr "falten arguments a la definició del degradat multicolor" #: ../src/defaults.c:2090 msgid "bad number of arguments in textured gradient specification" msgstr "nombre d'arguments incorrecte a la definició de degradat amb textura" #: ../src/defaults.c:2133 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "" "l'opacitat \"%s\" a la textura \"tgradient\" és incorrecte. Ha de ser " "[0...255]" #: ../src/defaults.c:2193 #, c-format msgid "could not initialize library %s" msgstr "no s'ha pogut inicialitzar la biblioteca %s" #: ../src/defaults.c:2196 #, c-format msgid "could not find function %s::%s" msgstr "no s'ha trobat la rutina %s::%s" #: ../src/defaults.c:2203 #, c-format msgid "invalid texture type %s" msgstr "el tipus de textura \"%s\" no és vàlid" #: ../src/defaults.c:2250 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Error de definició de textura a l'opció \"%s\"" #: ../src/defaults.c:2299 msgid "Wrong type for workspace background. Should be a texture type." msgstr "" "El tipus de fons de l'àrea de treball no és vàlid. Ha de ser un tipus de " "textura." #: ../src/defaults.c:2347 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "" "El tipus de fons de l'àrea de treball %i no és vàlid. Ha de ser una textura." #: ../src/defaults.c:2389 msgid "could not load any usable font!!!" msgstr "no s'ha pogut carregar cap tipus de lletra usable !!!" #: ../src/defaults.c:2416 #, c-format msgid "could not get color for key \"%s\"" msgstr "no s'ha pogut obtenir el color de l'opció \"%s\"" #: ../src/defaults.c:2474 ../src/rootmenu.c:531 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s: el modificador de tecla \"%s\" no és vàlid" #: ../src/defaults.c:2486 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: el vincle de tecla kbd \"%s\" no és vàlid" #: ../src/defaults.c:2493 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s: tecla no vàlida en el vincle \"%s\"" #: ../src/defaults.c:2518 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: el modificador de tecla \"%s\" no és vàlid" #: ../src/defaults.c:2550 #, c-format msgid "could not load image in option %s: %s" msgstr "no s'ha pogut carregar l'imatge de l'opció %s: %s" #: ../src/defaults.c:2667 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "no s'ha pogut obrir fitxer de mapa de bits \"%s\"" #: ../src/defaults.c:2670 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" no és un fitxer de mapa de bits vàlid" #: ../src/defaults.c:2673 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "s'ha esgotat la memòria mentre es llegia el mapa de bits \"%s\"" #: ../src/defaults.c:2712 ../src/defaults.c:2745 msgid "bad number of arguments in cursor specification" msgstr "nombre d'arguments incorrecte en la definició del cursor" #: ../src/defaults.c:2728 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "el nom de cursor \"%s\" és desconegut" #: ../src/defaults.c:2755 ../src/defaults.c:2767 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "no s'ha trobat el mapa de bits \"%s\" pel cursor" #: ../src/defaults.c:2814 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Error de definició de cursor a l'opció \"%s\"" #: ../src/defaults.c:2899 msgid "could not render texture for icon background" msgstr "no s'ha pogut dibuixar la textura de fons de l'icona" # desa la sessió (hi ha poc espai) eac #: ../src/dialog.c:147 msgid "Save workspace state" msgstr "Desar la sessió actual" #: ../src/dialog.c:192 ../src/dialog.c:731 ../src/dock.c:565 #: ../src/dockedapp.c:432 ../src/rootmenu.c:198 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 msgid "Cancel" msgstr "Cancel·la" #: ../src/dialog.c:290 msgid "Could not open directory " msgstr "No s'ha pogut obrir el directori" #: ../src/dialog.c:345 msgid "Could not load image file " msgstr "No s'ha pogut carregar la imatge" #: ../src/dialog.c:658 msgid "Directories" msgstr "Directoris" #: ../src/dialog.c:667 msgid "Icons" msgstr "Icones" #: ../src/dialog.c:700 msgid "Preview" msgstr "Visualitza" #: ../src/dialog.c:713 msgid "File Name:" msgstr "Nom del fitxer:" #: ../src/dialog.c:737 msgid "Choose File" msgstr "Trieu un fitxer" #: ../src/dialog.c:756 ../src/dialog.c:758 msgid "Icon Chooser" msgstr "Selecció d'icona" #: ../src/dialog.c:1192 ../src/dialog.c:1301 #, c-format msgid "Version %s" msgstr "Versió %s" #: ../src/dialog.c:1299 msgid "Window Manager for X" msgstr "Gestor de finestres per a X" #: ../src/dialog.c:1323 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Dispositiu de visualització 0x%x: %s %ibpp " #: ../src/dialog.c:1331 msgid "(32 thousand colors)\n" msgstr "(trenta-dos mil colors)\n" #: ../src/dialog.c:1334 msgid "(64 thousand colors)\n" msgstr "(seixanta-quatre mil colors)\n" #: ../src/dialog.c:1338 msgid "(16 million colors)\n" msgstr "(16 milions de colors)\n" #: ../src/dialog.c:1341 #, c-format msgid "(%d colors)\n" msgstr "(%d colors)\n" #: ../src/dialog.c:1351 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "Memòria assignada total: %i KB. Memòria en ús: %i KB.\n" #: ../src/dialog.c:1358 msgid "Supported image formats: " msgstr "Formats d'imatge suportats: " #: ../src/dialog.c:1365 msgid "" "\n" "Additional support for: " msgstr "" "\n" "Suport adicional per: " #: ../src/dialog.c:1388 msgid " and " msgstr " i " #: ../src/dialog.c:1398 msgid "" "\n" "Sound disabled" msgstr "" "\n" "Efectes de so deshabilitats" #: ../src/dialog.c:1400 msgid "" "\n" "Sound enabled" msgstr "" "\n" "Efectes de so habilitats" #: ../src/dialog.c:1404 msgid "; Antialiased text" msgstr "; Text allisat" #: ../src/dialog.c:1433 msgid "Info" msgstr "Informació" #: ../src/dialog.c:1457 msgid "Merry Christmas!" msgstr "Bon Nadal!" #: ../src/dialog.c:1527 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" " Window Maker és programari lliure; el podeu redistribuïr i/o modificar " "sota els termes de la Llicència Pública General GNU tal com ha estat " "publicada per la Free Software Foundation; ja sigui la versió 2 d'aquesta " "llicència o qualsevol altra versió posterior, a la vostra elecció.\n" "\n" " Window Maker es distribueix amb l'esperança que sigui útil, però SENSE " "CAP MENA DE GARANTIA; ni tan sols amb la garantía implícita de " "COMERCIABILITAT o ADEQUACIÓ A UN PROPÃ’SIT DETERMINAT. Vegeu la Llicència " "Pública General GNU per a més detalls.\n" "\n" " Haurieu d'haver rebut una còpia de Llicència Pública General GNU " "juntament amb aquest programa; en cas contrari demaneu-la a la Free Software " "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, E.U.A. " #: ../src/dialog.c:1551 msgid "Legal" msgstr "Legal" #: ../src/dialog.c:1703 ../src/startup.c:394 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "" "no s'ha pogut obrir una connexió per a un quadre de diàleg d'errors crítics. " "S'avorta." #: ../src/dialog.c:1729 msgid "Fatal error" msgstr "Error fatal" #: ../src/dialog.c:1740 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker ha rebut un senyal %i\n" "(%s)." #: ../src/dialog.c:1743 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker ha rebut un senyal %i." #: ../src/dialog.c:1752 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " Aquest error fatal probablement ha estat causat per un \"bug\". Si us plau, " "ompliu el formulari d'error inclòs i envieu-lo a l'adreça bugs@windowmaker." "org." #: ../src/dialog.c:1761 msgid "What do you want to do now?" msgstr "Què voleu fer ara?" #: ../src/dialog.c:1767 msgid "Select action" msgstr "Escolliu una acció" #: ../src/dialog.c:1768 msgid "Abort and leave a core file" msgstr "Avorta i deixa una imatge del nucli" #: ../src/dialog.c:1769 msgid "Restart Window Maker" msgstr "Reinicia Window Maker" #: ../src/dialog.c:1770 msgid "Start alternate window manager" msgstr "Inicia un altre gestor de finestres" #: ../src/dialog.c:1948 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop environment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" "Window Maker és part del projecte GNUstep.\n" "El projecte GNUstep aspira a crear una\n" "implementació lliure de l'especificació\n" "OpenStep(tm), un marc de treball orientat\n" "a objectes per crear aplicacions gràfiques\n" "avançades i multiplataforma. Adicionalment\n" "es crearà un entorn d'usuari i un entorn de\n" "desenvolupament. Per a més informació sobre\n" "GNUstep, si us plau, visiteu: www.gnustep.org" #: ../src/dialog.c:1971 msgid "About GNUstep" msgstr "Quant a GNUstep" #: ../src/dock.c:211 #, c-format msgid "Type the name for workspace %i:" msgstr "Nom per a l'àrea de treball %i:" #: ../src/dock.c:212 ../src/dock.c:1150 ../src/dock.c:1153 ../src/dock.c:3445 msgid "Rename Workspace" msgstr "Reanomena l'àrea" #: ../src/dock.c:527 ../src/dock.c:535 msgid "Warning" msgstr "Atenció" #: ../src/dock.c:528 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Algunes icones no s'han pogut fer omnipresents. Si us plau, assegureu-vos " "que cap altra icona no estigui ancorada en la mateixa posició a altres àrees " "de treball i que el Clip no estigui plè." #: ../src/dock.c:536 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "L'icona no s'ha pogut fer omnipresent. Si us plau, assegureu-vos que cap " "altra icona no estigui ancorada en la mateixa posició a altres àrees de " "treball i que el Clip no estigui plè." #: ../src/dock.c:563 msgid "Workspace Clip" msgstr "Clip de l'àrea de treball" #: ../src/dock.c:564 msgid "All selected icons will be removed!" msgstr "Totes les icones seleccionades seran eliminades!" #: ../src/dock.c:616 ../src/dock.c:1165 ../src/dock.c:1167 ../src/dock.c:3481 msgid "Keep Icon" msgstr "Deixa l'icona" #: ../src/dock.c:617 ../src/dock.c:2157 ../src/dock.c:2298 msgid "Type the command used to launch the application" msgstr "Entreu les ordres per executar l'aplicació" #: ../src/dock.c:973 #, c-format msgid "could not launch application %s\n" msgstr "no s'ha pogut executar l'aplicació %s\n" #: ../src/dock.c:1028 msgid "could not create workspace submenu for Clip menu" msgstr "no s'ha pogut crear el submenú d'àrea en el menú del Clip" #: ../src/dock.c:1087 msgid "could not create options submenu for Clip menu" msgstr "no s'ha pogut crear el submenú d'opcions en el menú del Clip" #: ../src/dock.c:1091 ../src/dock.c:1139 msgid "Keep on Top" msgstr "Sempre en primer plà" #: ../src/dock.c:1097 msgid "Collapsed" msgstr "Col·lapsat" #: ../src/dock.c:1103 msgid "Autocollapse" msgstr "Autocol·lapsa" #: ../src/dock.c:1109 msgid "Autoraise" msgstr "Autoeleva" #: ../src/dock.c:1115 msgid "Autoattract Icons" msgstr "Autoatreu les icones" #: ../src/dock.c:1145 msgid "Clip Options" msgstr "Opcions del Clip" #: ../src/dock.c:1155 msgid "Selected" msgstr "Seleccionada" # totes les icones? (el menú queda massa ample) eac #: ../src/dock.c:1160 ../src/dock.c:1163 ../src/dock.c:3472 msgid "Select All Icons" msgstr "Selecciona totes" #: ../src/dock.c:1169 ../src/dock.c:1171 ../src/dock.c:3489 msgid "Move Icon To" msgstr "Mou l'icona a" #: ../src/dock.c:1176 ../src/dock.c:1179 ../src/dock.c:3500 msgid "Remove Icon" msgstr "Elimina l'icona" #: ../src/dock.c:1181 msgid "Attract Icons" msgstr "Atreu les icones" #: ../src/dock.c:1184 msgid "Launch" msgstr "Executa" #: ../src/dock.c:1192 msgid "Settings..." msgstr "Configuració..." #: ../src/dock.c:1558 ../src/dock.c:1665 #, c-format msgid "bad value in docked icon state info %s" msgstr "valor no vàlid a l'informació d'estat de l'icona ancorada \"%s\"" #: ../src/dock.c:1673 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "valor no vàlid a l'icona ancorada a la posició %i,%i" #: ../src/dock.c:1693 #, c-format msgid "bad value in dock state info:%s" msgstr "valor no vàlid a l'informació d'estat del moll: %s" #: ../src/dock.c:1939 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "hi ha massa icones ancorades al moll. S'ignoren les que no hi caben" #. icon->forced_dock = 1; #: ../src/dock.c:2156 ../src/dock.c:2297 msgid "Dock Icon" msgstr "Ancora l'icona" #: ../src/dock.c:3359 #, c-format msgid "Could not execute command \"%s\"" msgstr "No s'ha pogut executar l'ordre \"%s\"" #: ../src/dock.c:3451 msgid "Toggle Omnipresent" msgstr "Omnipresència" #: ../src/dock.c:3456 ../src/kwm.c:639 ../src/winmenu.c:420 #: ../src/winspector.c:1375 msgid "Omnipresent" msgstr "Omnipresent" # totes les icones? (menú massa ample) eac #: ../src/dock.c:3470 msgid "Unselect All Icons" msgstr "Deselecciona totes" #: ../src/dock.c:3479 msgid "Keep Icons" msgstr "Deixa les icones" #: ../src/dock.c:3487 msgid "Move Icons To" msgstr "Mou les icones a" #: ../src/dock.c:3498 msgid "Remove Icons" msgstr "Elimina les icones" #: ../src/dock.c:3529 ../src/kwm.c:645 msgid "Bring Here" msgstr "Porta aquí" #: ../src/dockedapp.c:150 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "no s'ha trobat l'icona \"%s\", usada per una aplicació ancorada" #: ../src/dockedapp.c:230 #, c-format msgid "Could not open specified icon file: %s" msgstr "No s'ha pogut obrir l'icona especificada: %s" #: ../src/dockedapp.c:232 msgid "Ignore" msgstr "Ignora" #: ../src/dockedapp.c:334 msgid "Start when Window Maker is started" msgstr "Executar quan s'inicia Window Maker" #: ../src/dockedapp.c:341 msgid "Lock (prevent accidental removal)" msgstr "Bloquejar (impedeix que es pugui eliminar)" #: ../src/dockedapp.c:345 msgid "Application path and arguments" msgstr "Ubicació i arguments de l'aplicació" #: ../src/dockedapp.c:358 msgid "Command for middle-click launch" msgstr "Ordre per a l'execució amb el botó del mig" #: ../src/dockedapp.c:372 #, c-format msgid "%s will be replaced with current selection" msgstr "%s es substituirà amb el text seleccionat" #: ../src/dockedapp.c:377 msgid "Command for files dropped with DND" msgstr "Ordre per a l'execució amb fitxers deixats anar" #: ../src/dockedapp.c:391 #, c-format msgid "%d will be replaced with the file name" msgstr "%d es substituirà amb el nom del fitxer" #: ../src/dockedapp.c:395 msgid "DND support was not compiled in" msgstr "No s'ha compilat suport per DND" #: ../src/dockedapp.c:400 msgid "Icon Image" msgstr "Icona" #: ../src/dockedapp.c:414 ../src/winspector.c:1513 msgid "Browse..." msgstr "Vés a..." #: ../src/dockedapp.c:475 msgid "Docked Application Settings" msgstr "Configuració de l'aplicació ancorada" #: ../src/framewin.c:647 ../src/framewin.c:742 ../src/menu.c:456 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "no s'ha pogut dibuixar la textura: %s" #: ../src/framewin.c:670 ../src/framewin.c:681 ../src/framewin.c:697 #: ../src/framewin.c:708 ../src/framewin.c:715 ../src/framewin.c:722 #: ../src/icon.c:350 ../src/menu.c:485 #, c-format msgid "error rendering image:%s" msgstr "error dibuixant l'imatge: %s" #: ../src/framewin.c:775 #, c-format msgid "error rendering image: %s" msgstr "error dibuixant l'imatge: %s" #: ../src/gnome.c:217 ../src/gnome.c:344 ../src/gnome.c:402 msgid "out of memory while updating GNOME hints" msgstr "memòria esgotada quan s'actualitzaven les pistes de GNOME" #: ../src/icon.c:229 ../src/wdefaults.c:443 #, c-format msgid "error loading image file \"%s\": %s" msgstr "error en carregar el fitxer d'imatge \"%s\": %s" #: ../src/icon.c:493 ../src/icon.c:502 #, c-format msgid "could not create directory %s" msgstr "no s'ha pogut crear el directori %s" #: ../src/icon.c:769 #, c-format msgid "could not find default icon \"%s\"" msgstr "no s'ha trobat l'icona per omissió \"%s\"" #: ../src/icon.c:775 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "no s'ha pogut carregar l'icona per omissió \"%s\": %s" #. #. * 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/kwm.c:635 ../src/winmenu.c:443 ../src/winmenu.c:585 msgid "Maximize" msgstr "Maximitza" #: ../src/kwm.c:636 ../src/winmenu.c:580 msgid "Unmaximize" msgstr "Desmaximitza" #: ../src/kwm.c:637 ../src/winmenu.c:451 ../src/winmenu.c:571 msgid "Miniaturize" msgstr "Miniaturitza" #: ../src/kwm.c:638 ../src/winmenu.c:566 msgid "Deminiaturize" msgstr "Desminiaturitza" #: ../src/kwm.c:640 msgid "Not Omnipresent" msgstr "No omnipresent" #: ../src/kwm.c:641 msgid "Move" msgstr "Mou" #: ../src/kwm.c:642 msgid "Resize" msgstr "Redimensiona" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/kwm.c:643 ../src/rootmenu.c:248 ../src/winmenu.c:515 msgid "Close" msgstr "Tanca" #: ../src/kwm.c:644 ../src/winmenu.c:499 msgid "Move To" msgstr "Mou a" #: ../src/kwm.c:1111 msgid "%a(Run Command,Type the command to run:)" msgstr "%a(Executar,Entreu les ordres a executar:)" #: ../src/main.c:222 msgid "failed to restart Window Maker." msgstr "no s'ha pogut reiniciar Window Maker." #: ../src/main.c:225 #, c-format msgid "could not exec %s" msgstr "no s'ha pogut executar %s" #: ../src/main.c:271 msgid "Could not execute command: " msgstr "No s'ha pogut executar l'ordre: " #: ../src/main.c:428 #, c-format msgid "%s aborted.\n" msgstr "%s avortat.\n" #: ../src/main.c:439 #, c-format msgid "Usage: %s [options]\n" msgstr "Mode d'ús: %s [opcions}\n" #: ../src/main.c:440 msgid "The Window Maker window manager for the X window system" msgstr "El gestor de finestres Window Maker pel sistema de finestres X" #: ../src/main.c:442 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tpantalla a utilitzar" #: ../src/main.c:444 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp\t\tomet el preprocessament dels fitxers de configuració" #: ../src/main.c:446 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tno obre el Moll d'aplicacions" #: ../src/main.c:447 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tno obre el Clip" #: ../src/main.c:448 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tno executa aplicacions automàticament" #: ../src/main.c:449 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tno restaura la sessió desada" #: ../src/main.c:451 msgid " --locale locale\tlocale to use" msgstr " --locale local\tlocal a utilitzar" #: ../src/main.c:453 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" " --create-stdcmap\tcrea un mapa de colors estàndard pels dispositius " "PseudoColor" #: ../src/main.c:454 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tdispositiu de visualualització a utilitzar" #: ../src/main.c:455 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tno actualitza ni desa la configuració" #: ../src/main.c:456 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr "" " --no-polling\t\tno comprova periòdicament si ha canviat la configuració" #: ../src/main.c:458 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\thabilita el mode de pantalla sincronitzat" #: ../src/main.c:460 msgid " --version\t\tprint version and exit" msgstr " --version\t\tmostra la versió i surt" #: ../src/main.c:461 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tmostra aquesta ajuda" #: ../src/main.c:474 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "no s'ha trobat el directori d'usuari GNUstep (%s).\n" "Assegureu-vos que heu instal·lat Window Maker correctament i executeu wmaker." "inst" #: ../src/main.c:479 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "no s'ha trobat el directori d'usuari GNUstep (%s)." #: ../src/main.c:482 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "S'ha produït un error quan es creava el directori GNUstep, si us plau " "assegureu-vos que heu instal·lat Window Maker correctament i executeu wmaker." "inst" #: ../src/main.c:485 #, c-format msgid "%s directory created with default configuration." msgstr "s'ha creat el directori %s amb la configuració per omissió." #: ../src/main.c:505 ../src/main.c:510 #, c-format msgid "%s:could not execute initialization script" msgstr "%s: no s'ha pogut executar l'script s'inicialització" #: ../src/main.c:530 ../src/main.c:535 #, c-format msgid "%s:could not execute exit script" msgstr "%s: no s'ha pogut executar l'script de sortida" #: ../src/main.c:663 ../src/main.c:671 ../src/main.c:679 ../src/main.c:699 #, c-format msgid "too few arguments for %s" msgstr "falten arguments per a %s" #: ../src/main.c:683 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "valor de visualid incorrecte: \"%s\"" #: ../src/main.c:707 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: l'argument '%s' no és vàlid\n" #: ../src/main.c:708 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Proveu '%s --help' per a més informació\n" #: ../src/main.c:739 msgid "X server does not support locale" msgstr "el servidor X no suporta el local" #: ../src/main.c:743 msgid "cannot set locale modifiers" msgstr "no s'han pogut establir els modificadors del local" #: ../src/main.c:759 #, c-format msgid "could not open display \"%s\"" msgstr "no s'ha pogut obrir la pantalla \"%s\"" #: ../src/menu.c:1266 msgid "could not grab keyboard" msgstr "no s'ha detectat cap teclat" #: ../src/menu.c:2607 #, c-format msgid "bad value in menus state info:%s" msgstr "valor incorrecte en l'informació d'estat dels menus: %s" #: ../src/menureader.c:264 ../src/rootmenu.c:738 #, c-format msgid "%s:could not stat menu" msgstr "%s: no s'ha pogut determinar l'estat del menú" #: ../src/menureader.c:341 ../src/menureader.c:380 #, c-format msgid "could not stat() menu file '%s'" msgstr "no s'ha pogut determinar l'estat del fitxer '%s'" #: ../src/menureader.c:416 #, c-format msgid "could not find menu file '%s' referenced in WMRootMenu" msgstr "no s'ha trobat el fitxer de menú '%s' esmentat a WMRootMenu" #: ../src/menureader.c:423 #, c-format msgid "could not find any usable menu files. Please check '%s'" msgstr "no s'ha trobat cap fitxer de menú usable. Si us plau, comproveu '%s'" #: ../src/menureader.c:438 ../src/rootmenu.c:1674 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "com que el menú esmentat a WMRootMenu no existeix, s'usa el menú per omissió " "\"%s\"" #: ../src/menureader.c:457 #, c-format msgid "" "invalid content in menu file '%s'.\n" "It should either be a property list menu or the path to the file, enclosed " "in \"." msgstr "" "el contingut del fitxer de menú \"%s\" no és vàlid.\n" "Hauria de contenir una llista de propietats o bé l'ubicació d'un fitxer " "entre \"cometes\"." #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "no s'ha pogut establir el valor de %s per cpp" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "no s'ha trobat l'informació de compte de l'UID %i" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "el sistema està mal configurat. HOSTNAME definit com a %s" #: ../src/misc.c:132 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "el sistema està mal configurat. HOST definit com a %s" #: ../src/misc.c:630 msgid "Program Arguments" msgstr "Arguments del programa" #: ../src/misc.c:631 msgid "Enter command arguments:" msgstr "Entreu els arguments del programa:" #: ../src/misc.c:724 msgid "unable to get dropped data from DND drop" msgstr "no s'han pogut obtenir les dades DND" #: ../src/misc.c:732 msgid "error getting dropped data from DND drop" msgstr "error mentre s'obtenien les dades DND" #: ../src/misc.c:738 msgid "out of memory while getting data from DND drop" msgstr "memòria exhaurida quan s'obtenien dades DND" #: ../src/misc.c:783 ../src/misc.c:923 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "memòria exhaurida durant l'expansió de \"%s\"" #: ../src/misc.c:837 msgid "out of memory during expansion of \"%w\"" msgstr "memòria exhaurida durant l'expansió de \"%w\"" #: ../src/misc.c:855 msgid "out of memory during expansion of \"%W\"" msgstr "memòria exhaurida durant l'expansió de \"%W\"" #: ../src/misc.c:871 msgid "out of memory during expansion of \"%a\"" msgstr "memòria exhaurida durant l'expansió de \"%a\"" #: ../src/misc.c:902 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "memòria exhaurida durant l'expansió de \"%d\"" #: ../src/misc.c:916 msgid "selection not available" msgstr "selecció no disponible" #: ../src/misc.c:960 ../src/misc.c:966 #, c-format msgid "bad window name value in %s state info" msgstr "nom de finestra incorrecte en l'informació d'estat de %s" #: ../src/misc.c:1205 msgid "could not send message to background image helper" msgstr "no s'ha pogut enviar un missatge al programa auxiliar d'imatge de fons" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "" "no s'ha pogut carregar el fitxer de màscara \"%s\". No s'usarà cap màscara" #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "no s'ha pogut analitzar el nom de color \"%s\"" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "no s'ha pogut assignar memòria pel color \"%s\"" #: ../src/rootmenu.c:196 ../src/rootmenu.c:198 msgid "Exit" msgstr "Surt" #: ../src/rootmenu.c:197 msgid "Exit window manager?" msgstr "Voleu sortir del gestor de finestres?" #: ../src/rootmenu.c:245 msgid "Close X session" msgstr "Tanca la sessió X" #: ../src/rootmenu.c:246 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "Voleu tancar la sessió del sistema de finestres?\n" "Això podria tancar aplicacions obertes amb dades no desades." #: ../src/rootmenu.c:261 msgid "Kill X session" msgstr "Finalitza la sessió X" #: ../src/rootmenu.c:262 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Voleu finalitzar la sessió del sistema de finestres?\n" "(es tancaràn totes les aplicacions)" #: ../src/rootmenu.c:544 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s: de vincle de tecla \"%s\" a l'entrada \"%s\" no és vàlid" #: ../src/rootmenu.c:552 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s: tecla no vàlida en el vincle \"%s\" a l'entrada %s" #: ../src/rootmenu.c:605 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: cometes '\"' desaparellades en el fitxer de menú" #: ../src/rootmenu.c:655 #, c-format msgid "%s: missing command" msgstr "%s: falta l'ordre d'execució" #: ../src/rootmenu.c:687 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "l'especificació OPEN_MENU no és vàlida: %s" #: ../src/rootmenu.c:746 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s: no s'ha pogut determinar l'estat del menú: %s" #: ../src/rootmenu.c:764 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "sobren paràmetres a l'especificació OPEN_MENU: %s" #: ../src/rootmenu.c:808 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Hi ha més d'una instrucció WORKSPACE_MENU en el menú d'aplicacions. Sols " "n'hi pot haver una." #: ../src/rootmenu.c:842 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "Hi ha més d'una instrucció WINDOWS_MENU en el menú d'aplicacions. Sols n'hi " "pot haver una." #: ../src/rootmenu.c:847 msgid "Window List" msgstr "Llista de finestres" #: ../src/rootmenu.c:876 ../src/rootmenu.c:894 ../src/rootmenu.c:904 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s: falta un paràmetre a l'ordre de menú \"%s\"" #: ../src/rootmenu.c:972 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s: ordre desconeguda \"%s\" a la configuració del menú." #: ../src/rootmenu.c:980 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s: no s'ha pogut afegir el vincle de l'entrada \"%s\"" #: ../src/rootmenu.c:1117 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "" "%s: s'ha excedit la longitud màxima de línia en la configuració del menú: %s" #: ../src/rootmenu.c:1139 ../src/rootmenu.c:1232 ../src/rootmenu.c:1336 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s: falta una ordre a la configuració del menú: %s" #: ../src/rootmenu.c:1169 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s: error de sintaxi en el fitxer de menú: falta la declaració \"END\"" #: ../src/rootmenu.c:1198 ../src/rootmenu.c:1300 msgid "could not make arguments for menu file preprocessor" msgstr "" "no s'han pogut crear els arguments pel preprocessador del fitxer de menú" #: ../src/rootmenu.c:1205 ../src/rootmenu.c:1308 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s: no s'ha pogut obrir/preprocessar el fitxer de menú" #: ../src/rootmenu.c:1217 ../src/rootmenu.c:1321 #, c-format msgid "%s:could not open menu file" msgstr "%s: no s'ha pogut obrir el fitxer de menú" #: ../src/rootmenu.c:1244 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s: el fitxer de menú no és vàlid. Falta l'ordre \"MENU\"" #: ../src/rootmenu.c:1253 msgid "error reading preprocessed menu data" msgstr "error mentre es llegien les dades del menú preprocessades" #: ../src/rootmenu.c:1348 #, c-format msgid "%s:no title given for the root menu" msgstr "%s: no hi ha cap títol especificat pel menú arrel" #: ../src/rootmenu.c:1439 ../src/rootmenu.c:1512 ../src/rootmenu.c:1553 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "memòria exhaurida mentre es construia el menú de directori %s" #: ../src/rootmenu.c:1449 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "" "%s: no s'ha pogut obtenir l'estat del fitxer \"%s\" pel menú de directori" #: ../src/rootmenu.c:1607 msgid "Commands" msgstr "Ordres" #: ../src/rootmenu.c:1610 msgid "Restart" msgstr "Reinicia" #: ../src/rootmenu.c:1611 msgid "Exit..." msgstr "Surt..." #: ../src/rootmenu.c:1656 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "no s'ha trobat el fitxer de menú \"%s\" esmentat a WMRootMenu" #: ../src/rootmenu.c:1663 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "no s'ha pogut accedir al menú \"%s\" esmentat a WMRootMenu" #: ../src/rootmenu.c:1697 ../src/rootmenu.c:1773 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s: error de format a la configuració del menú arrel \"%s\"" #: ../src/rootmenu.c:1855 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "No s'ha pogut carregar el menú d'aplicacions. Feu un cop d'ull als missatges " "de la consola per tenir una descripció detallada dels errors." #: ../src/screen.c:715 #, c-format msgid "could not initialize graphics library context: %s" msgstr "no s'ha pogut inicialitzar el context de la biblioteca gràfica: %s" #: ../src/screen.c:743 msgid "could not initialize WINGs widget set" msgstr "no s'ha pogut inicialitzar el conjunt d'elements WINGs" #: ../src/screen.c:1252 #, c-format msgid "could not save session state in %s" msgstr "no s'ha pogut desar l'estat de la sessió a %s" #: ../src/session.c:183 ../src/wdefaults.c:589 ../src/winspector.c:454 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "no s'ha pogut convertir \"%s\" a un valor booleà" #: ../src/session.c:1023 msgid "out of memory while saving session state" msgstr "memòria exhaurida mentre es desava l'estat de la sessió" #: ../src/session.c:1106 msgid "end of memory while saving session state" msgstr "memòria exhaurida mentre es desava l'estat de la sessió" #. 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:1244 msgid "connection to the session manager was lost" msgstr "s'ha perdut la connexió amb el gestor de sessions" #: ../src/stacking.c:79 msgid "could not get window list!!" msgstr "no s'ha pogut obtenir la llista de finestres !!" #: ../src/startup.c:202 #, c-format msgid "internal X error: %s\n" msgstr "error intern de X: %s\n" #: ../src/startup.c:260 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "s'ha rebut un senyal %i (%s) - reiniciant\n" #: ../src/startup.c:262 #, c-format msgid "got signal %i - restarting\n" msgstr "s'ha rebut un senyal %i - reiniciant\n" #: ../src/startup.c:272 #, c-format msgid "got signal %i (%s) - rereading defaults\n" msgstr "s'ha rebut un senyal %i (%s) - re-llegint els valors per omissió\n" #: ../src/startup.c:274 #, c-format msgid "got signal %i - rereading defaults\n" msgstr "s'ha rebut un senyal %i - re-llegint els valors per omissió\n" #: ../src/startup.c:284 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "s'ha rebut un senyal %i (%s) - sortint...\n" #: ../src/startup.c:286 #, c-format msgid "got signal %i - exiting...\n" msgstr "s'ha rebut un senyal %i - sortint...\n" #: ../src/startup.c:329 #, c-format msgid "got signal %i (%s)\n" msgstr "s'ha rebut un senyal %i (%s)\n" #: ../src/startup.c:331 #, c-format msgid "got signal %i\n" msgstr "s'ha rebut un senyal %i\n" #: ../src/startup.c:342 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "" "error fatal mentre s'intentava arreglar una situació post-crítica. S'avorta " "immediatament." #. we try to restart Window Maker #: ../src/startup.c:406 msgid "trying to restart Window Maker..." msgstr "s'està intentant reiniciar Window Maker..." #: ../src/startup.c:411 msgid "trying to start alternate window manager..." msgstr "s'està intentant iniciar un gestor de finestres alternatiu..." #: ../src/startup.c:417 msgid "failed to start alternate window manager. Aborting." msgstr "no s'ha pogut iniciar cap gestor de finestres alternatiu. S'avorta." #: ../src/startup.c:419 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" "s'ha produït un error fatal, probablement a causa d'un \"bug\". Si us plau, " "ompliu el formulari d'error inclòs i envieu-lo." #: ../src/startup.c:894 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "" "la mida de les icones està establerta en %i, però és massa petita. S'usarà " "el valor 16.\n" #: ../src/startup.c:923 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "" "XKB no està suportat. KbdModeLock ha estat deshabilitada automàticament." #: ../src/startup.c:942 msgid "it seems that there is already a window manager running" msgstr "sembla que ja hi ha un gestor de finestres funcionant" #: ../src/startup.c:948 #, c-format msgid "could not manage screen %i" msgstr "no s'ha pogut controlar la pantalla %i" #: ../src/startup.c:1020 msgid "could not manage any screen" msgstr "no s'ha pogut controlar cap pantalla" #: ../src/switchmenu.c:145 msgid "Windows" msgstr "Finestres" #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "el fitxer d'imatge \"%s\" usat com a textura no s'ha trobat." #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "no s'ha pogut carregar el fitxer de mapa de bits \"%s\": %s" # error a l'original #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "no s'ha pogut obrir la biblioteca \"%s\"." #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "no s'ha trobat la rutina \"%s\" a la biblioteca \"%s\"" #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "aquest sistema no suporta funcions de textura." #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "no s'ha pogut assignar memòria pel buffer d'imatge" #: ../src/wdefaults.c:437 #, c-format msgid "could not find icon file \"%s\"" msgstr "no s'ha trobat el fitxer d'icona \"%s\"" #: ../src/window.c:3026 ../src/window.c:3167 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 "" "sembla que la tecla BloqNum, BloqDespl o una similar està activada.\n" "Desactiveu-la o algunes accions del ratolí o vincles de tecla no funcionaran." #: ../src/winmenu.c:126 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Això finalitzarà l'aplicació.\n" "Els canvis no desats es perdràn.\n" "Voleu continuar?" #: ../src/winmenu.c:274 ../src/winmenu.c:283 msgid "Set Shortcut" msgstr "Assigna al vincle" #: ../src/winmenu.c:361 ../src/winmenu.c:406 msgid "could not create submenu for window menu" msgstr "no s'ha pogut crear el submenú en el menú de finestra" #: ../src/winmenu.c:410 msgid "Keep on top" msgstr "Sempre en primer plà" #: ../src/winmenu.c:415 msgid "Keep at bottom" msgstr "Sempre en últim plà" #: ../src/winmenu.c:459 ../src/winmenu.c:602 msgid "Shade" msgstr "Ombreja" #: ../src/winmenu.c:475 msgid "Hide Others" msgstr "Amaga altres" #: ../src/winmenu.c:483 msgid "Resize/Move" msgstr "Mou o canvia de mida" #: ../src/winmenu.c:491 msgid "Select" msgstr "Selecciona" #: ../src/winmenu.c:504 msgid "Attributes..." msgstr "Propietats..." #: ../src/winmenu.c:506 msgid "Options" msgstr "Opcions" #: ../src/winmenu.c:597 msgid "Unshade" msgstr "Desombreja" #: ../src/winspector.c:387 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "No s'ha trobat l'icona \"%s\" especificada per aquesta finestra" #: ../src/winspector.c:404 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "No s'ha pogut obrir l'icona especificada \"%s\": %s" #: ../src/winspector.c:1121 #, c-format msgid "Inspecting %s.%s" msgstr "Propietats de %s.%s" #: ../src/winspector.c:1147 msgid "Click in the window you wish to inspect." msgstr "Feu clic sobre la finestra que volgueu inspeccionar." #: ../src/winspector.c:1186 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "La configuració s'aplicarà a totes les\n" "finestres que tinguin la propietat\n" "WM_CLASS igual que la seleccionada." #: ../src/winspector.c:1215 msgid "Save" msgstr "Desa" #: ../src/winspector.c:1223 msgid "Apply" msgstr "Aplica" #: ../src/winspector.c:1229 msgid "Reload" msgstr "Rellegeix" #: ../src/winspector.c:1238 ../src/winspector.c:1248 msgid "Window Specification" msgstr "Especificació de la finestra" #: ../src/winspector.c:1239 msgid "Window Attributes" msgstr "Atributs de la finestra" #: ../src/winspector.c:1240 msgid "Advanced Options" msgstr "Opcions avançades" #: ../src/winspector.c:1241 msgid "Icon and Initial Workspace" msgstr "Icona i àrea de treball inicial" #: ../src/winspector.c:1242 msgid "Application Specific" msgstr "Específics de l'aplicació" #: ../src/winspector.c:1256 msgid "Defaults for all windows" msgstr "Per omissió a totes les finestres" #: ../src/winspector.c:1310 msgid "Select window" msgstr "Seleccionar una finestra" #: ../src/winspector.c:1324 msgid "Attributes" msgstr "Atributs" #: ../src/winspector.c:1335 msgid "Disable titlebar" msgstr "Deshabilitar la barra de títol" #: ../src/winspector.c:1337 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Treu la barra de títol d'aquesta finestra.\n" "Per accedir al menú de finestra un cop hagi\n" "desaparegut la barra de títol premeu Control-Esc\n" "(o bé el vincle equivalent, si heu canviat la\n" "configuració per omissió)." #: ../src/winspector.c:1344 msgid "Disable resizebar" msgstr "Deshabilitar la barra inferior" #: ../src/winspector.c:1346 msgid "Remove the resizebar of this window." msgstr "Treu la barra inferior d'aquesta finestra." #: ../src/winspector.c:1349 msgid "Disable close button" msgstr "Deshabilitar el botó de tancar" #: ../src/winspector.c:1351 msgid "Remove the `close window' button of this window." msgstr "Treu el botó per tancar la finestra d'aquesta finestra." #: ../src/winspector.c:1354 msgid "Disable miniaturize button" msgstr "Deshabilitar el botó de miniaturitzar" #: ../src/winspector.c:1356 msgid "Remove the `miniaturize window' button of the window." msgstr "Treu el botó per miniaturitzar la finestra d'aquesta finestra." #: ../src/winspector.c:1359 msgid "Disable border" msgstr "Deshabilitar el marc" #: ../src/winspector.c:1361 msgid "Remove the 1 pixel black border around the window." msgstr "" "Elimina el marc negre d'un píxel de\n" "gruix del voltant d'aquesta finestra." #: ../src/winspector.c:1364 msgid "Keep on top (floating)" msgstr "Sempre en primer plà (flotant)" #: ../src/winspector.c:1366 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "Manté aquesta finestra per sobre les\n" "altres, impedint que la cobreixin." #: ../src/winspector.c:1370 msgid "Keep at bottom (sunken)" msgstr "Sempre en últim plà (enfonsada)" #: ../src/winspector.c:1372 msgid "Keep the window under all other windows." msgstr "Manté la finestra per sota totes les altres." #: ../src/winspector.c:1377 msgid "Make window present in all workspaces." msgstr "Fa la finestra present a totes les àrees de treball." #: ../src/winspector.c:1380 msgid "Start miniaturized" msgstr "Començar miniaturitzada" #: ../src/winspector.c:1382 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "Fa que la finestra es miniaturitzi automàticament\n" "tan bon punt aparegui per primer cop." #: ../src/winspector.c:1386 msgid "Start maximized" msgstr "Començar maximitzada" #: ../src/winspector.c:1388 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "Fa que la finestra es maximitzi automàticament\n" "tan bon punt aparegui per primer cop." #: ../src/winspector.c:1392 msgid "Full screen maximization" msgstr "Maximització a pantalla completa" #: ../src/winspector.c:1394 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Fa que la finestra ocupi tot l'espai de la pantalla\n" "quan es maximitza. La barra de títol i la barra\n" "inferior es desplaçaran fora la pantalla." #: ../src/winspector.c:1411 msgid "Advanced" msgstr "Opcions avançades" #: ../src/winspector.c:1428 msgid "Do not bind keyboard shortcuts" msgstr "Deshabilitar els vincles de tecla" #: ../src/winspector.c:1430 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Deshabilita els vincles de tecla de Window Maker quan\n" "aquesta finestra està enfocada. D'aquesta manera la\n" "finestrà rebrà totes les tecles independentment de la\n" "configuració de Window Maker." #: ../src/winspector.c:1436 msgid "Do not bind mouse clicks" msgstr "Deshabilitar els vincles del ratolí" #: ../src/winspector.c:1438 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Deshabilita els vincles i accions de ratolí de\n" "Window Maker, com ara Alt+arrossegar, en aquesta\n" "finestra (si Alt és el modificador que heu configurat)." #: ../src/winspector.c:1443 msgid "Do not show in the window list" msgstr "No mostrar a la llista de finestres" #: ../src/winspector.c:1445 msgid "Do not list the window in the window list menu." msgstr "No mostra aquesta finestra a la llista de finestres." #: ../src/winspector.c:1448 msgid "Do not let it take focus" msgstr "Sempre desenfocada" #: ../src/winspector.c:1450 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "No permet mai que s'enfoqui aquesta finestra." #: ../src/winspector.c:1454 msgid "Keep inside screen" msgstr "Mantenir a dins de la pantalla" #: ../src/winspector.c:1456 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "No permet moure la finestra completament fora la\n" "pantalla. Per compatibiltat amb algun \"bug\".\n" #: ../src/winspector.c:1460 msgid "Ignore 'Hide Others'" msgstr "Ignorar l'ordre \"Amagar altres\"" #: ../src/winspector.c:1462 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "No amaga aquesta finestra quan s'executa\n" "l'instrucció \"Amagar altres\"." #: ../src/winspector.c:1466 msgid "Ignore 'Save Session'" msgstr "Ignorar l'ordre \"Desar la sessió\"" #: ../src/winspector.c:1468 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "No inclou aquesta aplicació quan és desa l'estat\n" "de la sessió i per tant no es reinicia junt amb\n" "les altres aplicacions quan s'inicia Window Maker\n" "per pròxima vegada." #: ../src/winspector.c:1474 msgid "Emulate application icon" msgstr "Emular l'icona d'aplicació" #: ../src/winspector.c:1476 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Actua com si aquesta aplicació proporcionés l'informació\n" "necessària per què Window Maker pugui crear una icona\n" "d'aplicació que es pugui ancorar. " #: ../src/winspector.c:1482 msgid "Disable language button" msgstr "Deshabilitar el botó de llenguatge" #: ../src/winspector.c:1484 msgid "Remove the `toggle language' button of the window." msgstr "Treu el botó de canvi d'idioma de la finestra." #: ../src/winspector.c:1501 msgid "Miniwindow Image" msgstr "Imatge de la finestra en miniatura" #: ../src/winspector.c:1528 msgid "Icon filename:" msgstr "Fitxer d'icona:" # "Ignora l'icona facilitada pel client" no hi cap. eac #: ../src/winspector.c:1541 msgid "Ignore client supplied icon" msgstr "Ignorar la facilitada pel client" #: ../src/winspector.c:1548 msgid "Initial Workspace" msgstr "Àrea de treball inicial" #: ../src/winspector.c:1550 msgid "The workspace to place the window when it'sfirst shown." msgstr "Àrea de treball on posar la finestra quan apareix per primer cop." #: ../src/winspector.c:1556 msgid "Nowhere in particular" msgstr "Cap en particular" #: ../src/winspector.c:1574 msgid "Application Attributes" msgstr "Atributs de l'aplicació" #: ../src/winspector.c:1585 msgid "Start hidden" msgstr "Iniciar amagada" #: ../src/winspector.c:1587 msgid "Automatically hide application when it's started." msgstr "Amaga l'aplicació automàticament quan s'inicia." #: ../src/winspector.c:1590 msgid "No application icon" msgstr "Deshabilitar l'icona d'aplicació" #: ../src/winspector.c:1592 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Deshabilita l'icona d'aplicació per a l'aplicació.\n" "Tingueu en compte que sense icona d'aplicació no la\n" "podreu ancorar més, i que les icones que estiguin\n" "ancorades actualment deixaran de funcionar correctament." #: ../src/winspector.c:1598 msgid "Shared application icon" msgstr "Icona d'aplicació compartida" #: ../src/winspector.c:1600 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "Usa una única icona d'aplicació per a totes les\n" "instàncies d'aquesta aplicació.\n" # wm hints? #: ../src/wmspec.c:277 msgid "out of memory while updating wm hints" msgstr "memòria esgotada quan s'actualitzaven les pistes wm" #: ../src/workspace.c:105 ../src/workspace.c:106 ../src/workspace.c:902 #, c-format msgid "Workspace %i" msgstr "Àrea de treball %i" #: ../src/workspace.c:952 msgid "Workspaces" msgstr "Àrees de treball" #: ../src/workspace.c:954 msgid "could not create Workspace menu" msgstr "no s'ha pogut crear el menú de l'àrea de treball" #: ../src/workspace.c:961 msgid "New" msgstr "Nou" #: ../src/workspace.c:962 msgid "Destroy Last" msgstr "Destrueix l'últim" WindowMaker-0.95.5/po/gl.po0000644000175000017500000014217112214432632012347 00000000000000# Galician translation of WindowMaker. # Copyright (C) 1997 Xose Vazquez Perez # Copyright (C) 2000 Jesús Bravo Ãlvarez # Xose Vazquez Perez , 1997 # Jesús Bravo Ãlvarez , 2000 # # Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas # colaborar connosco, podes atopar máis información en http://trasno.gpul.org # msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.62.1\n" "POT-Creation-Date: 2000-05-10 12:55+0200\n" "PO-Revision-Date: 2000-10-15 17:57+0200\n" "Last-Translator: Jesús Bravo Ãlvarez \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:550 ../src/dialog.c:230 ../src/dock.c:3291 #: ../src/dockedapp.c:211 ../src/main.c:254 ../src/rootmenu.c:1765 #: ../src/winspector.c:383 ../src/winspector.c:399 msgid "Error" msgstr "Erro" #: ../src/appicon.c:551 msgid "Could not open specified icon file" msgstr "Non foi posible abri-lo ficheiro de icona especificado" #: ../src/appicon.c:552 ../src/dialog.c:122 ../src/dialog.c:230 #: ../src/dialog.c:574 ../src/dialog.c:1591 ../src/dock.c:515 #: ../src/dock.c:523 ../src/dock.c:547 ../src/dock.c:3292 #: ../src/dockedapp.c:212 ../src/dockedapp.c:370 ../src/main.c:254 #: ../src/rootmenu.c:1769 ../src/winspector.c:384 ../src/winspector.c:400 msgid "OK" msgstr "Aceptar" #: ../src/appicon.c:579 ../src/dock.c:277 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " pecharase forzosamente.\n" "Perderanse tódolos cambios non gardados.\n" "Confírmeo." #: ../src/appicon.c:585 ../src/dock.c:282 ../src/winmenu.c:125 msgid "Kill Application" msgstr "Matar Aplicación" #: ../src/appicon.c:586 ../src/dock.c:283 ../src/winmenu.c:127 msgid "Yes" msgstr "Si" #: ../src/appicon.c:586 ../src/dock.c:283 ../src/winmenu.c:127 msgid "No" msgstr "Non" #: ../src/appicon.c:604 ../src/dock.c:1159 ../src/dock.c:3463 msgid "Unhide Here" msgstr "Amosar Aquí" #: ../src/appicon.c:605 ../src/appicon.c:630 ../src/dock.c:1161 #: ../src/dock.c:1163 ../src/dock.c:3475 ../src/winmenu.c:469 msgid "Hide" msgstr "Agochar" #: ../src/appicon.c:606 msgid "Set Icon..." msgstr "Establecer Icona..." #: ../src/appicon.c:607 ../src/dock.c:1167 ../src/rootmenu.c:226 #: ../src/rootmenu.c:240 ../src/winmenu.c:516 msgid "Kill" msgstr "Matar" #: ../src/appicon.c:628 ../src/dock.c:3473 msgid "Unhide" msgstr "Amosar" #: ../src/defaults.c:910 ../src/startup.c:820 ../src/startup.c:838 #: ../src/startup.c:844 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "" "non foi posible le-lo dominio \"%s\" da base de datos de predeterminados" #: ../src/defaults.c:956 ../src/defaults.c:1081 ../src/defaults.c:1120 #: ../src/defaults.c:1150 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "¡O dominio %s (%s) da base de datos de predeterminados está corrupto!" #: ../src/defaults.c:961 ../src/defaults.c:1102 ../src/defaults.c:1133 #: ../src/defaults.c:1159 #, c-format msgid "could not load domain %s from user defaults database" msgstr "" "non foi posible carga-lo dominio %s da base de datos de predeterminados do " "usuario" #: ../src/defaults.c:972 ../src/defaults.c:1066 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "" "¡O dominio %s (%s) da base de datos global de predeterminados está corrupto!" #: ../src/defaults.c:991 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "" "non foi posible carga-lo dominio %s da base de datos de predeterminados " "global (%s)" #: ../src/defaults.c:1071 #, c-format msgid "could not load domain %s from global defaults database" msgstr "" "non foi posible carga-lo dominio %s da base de datos de predeterminados " "global" #: ../src/defaults.c:1401 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "valor de opción erróneo para a clave \"%s\". Debería ser un de %s" #: ../src/defaults.c:1446 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "non se pode converter \"%s\" a booleano para a clave \"%s\"" #: ../src/defaults.c:1451 ../src/defaults.c:1483 ../src/defaults.c:1515 #: ../src/defaults.c:1528 ../src/defaults.c:1543 ../src/defaults.c:1557 #: ../src/defaults.c:1627 ../src/defaults.c:1639 ../src/defaults.c:2045 #: ../src/defaults.c:2062 ../src/defaults.c:2075 ../src/defaults.c:2165 #: ../src/defaults.c:2181 ../src/defaults.c:2212 ../src/defaults.c:2299 #: ../src/defaults.c:2707 ../src/defaults.c:2720 #, c-format msgid "using default \"%s\" instead" msgstr "usando \"%s\" por defecto no seu lugar" #: ../src/defaults.c:1480 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "non se pode converter \"%s\" a enteiro para a clave \"%s\"" #: ../src/defaults.c:1510 ../src/defaults.c:1622 ../src/defaults.c:2040 #: ../src/defaults.c:2057 ../src/defaults.c:2160 ../src/defaults.c:2207 #: ../src/defaults.c:2701 ../src/wdefaults.c:565 ../src/wdefaults.c:601 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Formato de opción erróneo para a clave \"%s\". Debería ser %s." #: ../src/defaults.c:1523 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Número de elementos incorrecto no array para a clave \"%s\"." #: ../src/defaults.c:1538 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Valor erróneo para a clave \"%s\". Deberían ser Coordenadas." #: ../src/defaults.c:1553 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "non se pode converte-lo array a enteiros para \"%s\"." #: ../src/defaults.c:1749 ../src/defaults.c:1781 ../src/defaults.c:1797 #: ../src/defaults.c:1843 ../src/defaults.c:1883 ../src/defaults.c:1921 #: ../src/defaults.c:1937 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" non un nome de cor válido" #: ../src/defaults.c:1762 msgid "bad number of arguments in gradient specification" msgstr "número de argumentos erróneo na especificación de gradiente" #: ../src/defaults.c:1816 msgid "too few arguments in multicolor gradient specification" msgstr "poucos argumentos na especificación de gradiente multi-cor" #: ../src/defaults.c:1910 msgid "bad number of arguments in textured gradient specification" msgstr "" "número de argumentos erróneo na especificación de gradiente con textura" #: ../src/defaults.c:1953 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "" "valor de opacidade erróneo para a textura tgradient \"%s\". Debería ser " "[0..255]" #: ../src/defaults.c:2013 #, c-format msgid "could not initialize library %s" msgstr "non foi posible inicializa-la librería %s" #: ../src/defaults.c:2016 #, c-format msgid "could not find function %s::%s" msgstr "non foi posible atopa-la función %s::%s" #: ../src/defaults.c:2023 #, c-format msgid "invalid texture type %s" msgstr "tipo de textura %s non válido" #: ../src/defaults.c:2070 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Erro na especificación de textura para a clave \"%s\"" #: ../src/defaults.c:2177 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Tipo de fondo da área de traballo erróneo. Debería ser unha textura." #: ../src/defaults.c:2225 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "" "Tipo do fondo da área de traballo %i erróneo. Debería ser unha textura." #: ../src/defaults.c:2267 msgid "could not load any usable font!!!" msgstr "¡¡¡non foi posible cargar ningunha fonte usable!!!" #: ../src/defaults.c:2294 #, c-format msgid "could not get color for key \"%s\"" msgstr "non foi posible obte-la cor para a clave \"%s\"" #: ../src/defaults.c:2352 ../src/rootmenu.c:492 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s:modificador de tecla inválido \"%s\"" #: ../src/defaults.c:2364 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:especificación non válida de atallo de teclado \"%s\"" #: ../src/defaults.c:2371 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s:tecla non válida no atallo de teclado \"%s\"" #: ../src/defaults.c:2396 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: tecla de modificador %s non válida" #: ../src/defaults.c:2428 #, c-format msgid "could not load image in option %s: %s" msgstr "non foi posible carga-la imaxe na opción %s: %s" #: ../src/defaults.c:2547 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "falla ó abri-lo ficheiro de mapa de bits \"%s\"" #: ../src/defaults.c:2550 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" non é un ficheiro de bitmap válido" #: ../src/defaults.c:2553 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "memoria esgotada ó ler o ficheiro de bitmap \"%s\"" #: ../src/defaults.c:2597 ../src/defaults.c:2639 msgid "bad number of arguments in cursor specification" msgstr "número de argumentos erróneo na especificación do cursor" #: ../src/defaults.c:2617 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "o nome de cursor incorporado \"%s\" é descoñecido" #: ../src/defaults.c:2651 ../src/defaults.c:2665 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "non foi posible atopa-lo ficheiro de bitmap \"%s\" do cursor" #: ../src/defaults.c:2715 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Erro na especificación de cursor para a clave \"%s\"" #: ../src/defaults.c:2805 msgid "could not render texture for icon background" msgstr "non foi posible renderiza-la textura para o fondo da icona" #: ../src/dialog.c:122 ../src/dialog.c:581 ../src/dock.c:547 #: ../src/dockedapp.c:376 ../src/rootmenu.c:188 ../src/rootmenu.c:226 #: ../src/rootmenu.c:240 msgid "Cancel" msgstr "Cancelar" #: ../src/dialog.c:225 msgid "Could not open directory " msgstr "Non foi posible abri-lo directorio " #: ../src/dialog.c:280 msgid "Could not load image file " msgstr "Non foi posible carga-lo ficheiro de imaxe " #: ../src/dialog.c:509 msgid "Directories" msgstr "Directorios" #: ../src/dialog.c:518 msgid "Icons" msgstr "Iconas" #: ../src/dialog.c:551 msgid "Preview" msgstr "Previsualización" #: ../src/dialog.c:564 msgid "File Name:" msgstr "Nome de Ficheiro:" #: ../src/dialog.c:587 msgid "Choose File" msgstr "Escoller Ficheiro" #: ../src/dialog.c:604 ../src/dialog.c:606 msgid "Icon Chooser" msgstr "Escolledor de Iconas" #: ../src/dialog.c:1515 ../src/startup.c:328 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "non se pode abri-la conexión para o diálogo de erro grave. Abortando." #: ../src/dialog.c:1541 msgid "Fatal error" msgstr "Erro grave" #: ../src/dialog.c:1552 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "O Window Maker recibiu un sinal %i\n" "(%s)." #: ../src/dialog.c:1555 #, c-format msgid "Window Maker received signal %i." msgstr "O Window Maker recibiu un sinal %i." #: ../src/dialog.c:1564 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " Este erro grave ocorreu probablemente por mor dun erro do programa. Por " "favor, encha a BUGFORM incluída (en inglés) e envíea a bugs@windowmaker.info." #: ../src/dialog.c:1572 msgid "What do you want to do now?" msgstr "¿Que quere facer agora?" #: ../src/dialog.c:1578 msgid "Select action" msgstr "Seleccionar a acción" #: ../src/dialog.c:1579 msgid "Abort and leave a core file" msgstr "Abortar e deixar un ficheiro core" #: ../src/dialog.c:1580 msgid "Restart Window Maker" msgstr "Reiniciar Window Maker" #: ../src/dialog.c:1581 msgid "Start alternate window manager" msgstr "Executar outro xestor de fiestras" #: ../src/dock.c:213 #, c-format msgid "Type the name for workspace %i:" msgstr "Escriba o nome para a área de traballo %i:" #: ../src/dock.c:214 ../src/dock.c:1123 ../src/dock.c:1126 ../src/dock.c:3381 msgid "Rename Workspace" msgstr "Renomear Ãrea de Traballo" #: ../src/dock.c:509 ../src/dock.c:517 msgid "Warning" msgstr "Aviso" #: ../src/dock.c:510 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Algunhas iconas non se poden facer omnipresentes. Asegúrese de que ningunha " "outra icona está na mesma posición nas outras áreas de traballo e que o Clip " "non está cheo nalgunha delas." #: ../src/dock.c:518 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "A icona non se pode facer omnipresente. Asegúrese de que ningunha outra " "icona está na mesma posición nas outras áreas de traballo e que o Clip non " "está cheo nalgunha delas." #: ../src/dock.c:545 msgid "Workspace Clip" msgstr "Clip" #: ../src/dock.c:546 msgid "All selected icons will be removed!" msgstr "¡Tódalas iconas seleccionadas serán eliminadas!" #: ../src/dock.c:597 ../src/dock.c:1138 ../src/dock.c:1140 ../src/dock.c:3417 msgid "Keep Icon" msgstr "Manter Icona" #: ../src/dock.c:598 ../src/dock.c:2120 ../src/dock.c:2254 msgid "Type the command used to launch the application" msgstr "Escriba o comando usado para executa-la aplicación" #: ../src/dock.c:949 #, c-format msgid "could not launch application %s\n" msgstr "non foi posible lanza-la aplicación %s\n" #: ../src/dock.c:1004 msgid "could not create workspace submenu for Clip menu" msgstr "" "non foi posible crear o submenú de área de traballo para o menú do Clip" #: ../src/dock.c:1027 ../src/dock.c:1070 ../src/dock.c:1115 ../src/dock.c:3361 msgid "Keep on Top" msgstr "Manter por Riba" #: ../src/dock.c:1029 ../src/dock.c:3363 msgid "Allow Lowering" msgstr "Permitir Baixar de Capa" #: ../src/dock.c:1066 msgid "could not create options submenu for Clip menu" msgstr "non foi posible crear o submenú de opcións para o menú do Clip" #: ../src/dock.c:1073 msgid "Collapsed" msgstr "Encollido" #: ../src/dock.c:1079 msgid "AutoCollapse" msgstr "Encoller Automaticamente" #: ../src/dock.c:1085 msgid "AutoRaiseLower" msgstr "Levantar/Baixar Automaticamente" #: ../src/dock.c:1091 msgid "AutoAttract Icons" msgstr "Atraer Iconas Automaticamente" #: ../src/dock.c:1118 msgid "Clip Options" msgstr "Opcións do Clip" #: ../src/dock.c:1128 msgid "Selected" msgstr "Seleccionada" #: ../src/dock.c:1133 ../src/dock.c:1136 ../src/dock.c:3408 msgid "Select All Icons" msgstr "Seleccionar Tódalas Iconas" #: ../src/dock.c:1142 ../src/dock.c:1144 ../src/dock.c:3425 msgid "Move Icon To" msgstr "Mover Icona Para" #: ../src/dock.c:1149 ../src/dock.c:1152 ../src/dock.c:3436 msgid "Remove Icon" msgstr "Borrar Icona" #: ../src/dock.c:1154 msgid "Attract Icons" msgstr "Atraer Iconas" #: ../src/dock.c:1157 msgid "Launch" msgstr "Lanzar" #: ../src/dock.c:1165 msgid "Settings..." msgstr "Preferencias..." #: ../src/dock.c:1524 ../src/dock.c:1627 #, c-format msgid "bad value in docked icon state info %s" msgstr "valor erróneo %s na información do estado da icona do dock" #: ../src/dock.c:1635 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "valor erróneo na icona da posición %i,%i no dock" #: ../src/dock.c:1887 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "hai demasiadas iconas no dock. Ignorando o que non caiba" #. icon->forced_dock = 1; #: ../src/dock.c:2119 ../src/dock.c:2253 msgid "Dock Icon" msgstr "Poñer Icona no Dock" #: ../src/dock.c:3284 ../src/dock.c:3288 #, c-format msgid "Could not execute command \"%s\"" msgstr "Non foi posible executa-lo comando \"%s\"" #: ../src/dock.c:3387 msgid "Toggle Omnipresent" msgstr "Trocar Omnipresente" #: ../src/dock.c:3392 ../src/winmenu.c:421 ../src/winspector.c:1380 msgid "Omnipresent" msgstr "Omnipresente" #: ../src/dock.c:3406 msgid "Unselect All Icons" msgstr "Deseleccionar Tódalas Iconas" #: ../src/dock.c:3415 msgid "Keep Icons" msgstr "Manter Iconas" #: ../src/dock.c:3423 msgid "Move Icons To" msgstr "Mover Iconas Para" #: ../src/dock.c:3434 msgid "Remove Icons" msgstr "Borrar Iconas" #: ../src/dock.c:3465 msgid "Bring Here" msgstr "Traer para Aquí" #: ../src/dockedapp.c:131 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "non foi posible atopa-la icona %s, usada nunha aplicación do dock" #: ../src/dockedapp.c:210 #, c-format msgid "Could not open specified icon file: %s" msgstr "Non foi posible abri-lo ficheiro de icona especificado: %s" #: ../src/dockedapp.c:212 msgid "Ignore" msgstr "Ignorar" #: ../src/dockedapp.c:305 msgid "Start when WindowMaker is started" msgstr "Iniciar cando se execute o WindowMaker" #: ../src/dockedapp.c:312 msgid "Lock (prevent accidental removal)" msgstr "Bloquear (evita eliminacións accidentais)" #: ../src/dockedapp.c:318 msgid "Application path and arguments" msgstr "Camiño e argumentos da aplicación" #: ../src/dockedapp.c:329 msgid "Command for files dropped with DND" msgstr "Comando para os ficheiros soltados con DND" #: ../src/dockedapp.c:341 #, c-format msgid "%d will be replaced with the file name" msgstr "%d será substituído polo nome do ficheiro" #: ../src/dockedapp.c:345 msgid "DND support was not compiled in" msgstr "Non se compilou con soporte para Arrastrar e Soltar" #: ../src/dockedapp.c:351 msgid "Icon Image" msgstr "Imaxe da Icona" #: ../src/dockedapp.c:363 ../src/winspector.c:1518 msgid "Browse..." msgstr "Explorar..." #: ../src/dockedapp.c:408 msgid "Docked Application Settings" msgstr "Opcións das Aplicacións do Dock" #: ../src/framewin.c:655 ../src/framewin.c:750 ../src/menu.c:458 #: ../src/texture.c:549 #, c-format msgid "could not render texture: %s" msgstr "non foi posible renderiza-la textura: %s" #: ../src/framewin.c:678 ../src/framewin.c:689 ../src/framewin.c:705 #: ../src/framewin.c:716 ../src/framewin.c:723 ../src/framewin.c:730 #: ../src/icon.c:350 ../src/menu.c:487 #, c-format msgid "error rendering image:%s" msgstr "erro renderizando a imaxe:%s" #: ../src/framewin.c:783 #, c-format msgid "error rendering image: %s" msgstr "erro renderizando a imaxe: %s" #: ../src/icon.c:229 ../src/wdefaults.c:435 #, c-format msgid "error loading image file \"%s\": %s" msgstr "erro cargando o ficheiro de imaxe \"%s\": %s" #: ../src/icon.c:488 ../src/icon.c:497 #, c-format msgid "could not create directory %s" msgstr "non foi posible crea-lo directorio %s" #: ../src/icon.c:764 #, c-format msgid "could not find default icon \"%s\"" msgstr "non foi posible atopa-la icona por defecto \"%s\"" #: ../src/icon.c:770 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "non foi posible atopa-la icona por defecto \"%s\":%s" #: ../src/main.c:204 msgid "failed to restart Window Maker." msgstr "fallo ó reiniciar Window Maker." #: ../src/main.c:207 #, c-format msgid "could not exec %s" msgstr "non foi posible executar %s" #: ../src/main.c:252 msgid "Could not execute command: " msgstr "Non foi posible executa-lo comando: " #: ../src/main.c:409 #, c-format msgid "%s aborted.\n" msgstr "%s abortado.\n" #: ../src/main.c:420 #, c-format msgid "Usage: %s [options]\n" msgstr "Uso: %s [opcións]\n" #: ../src/main.c:421 msgid "The Window Maker window manager for the X window system" msgstr "O xestor de fiestras Window Maker para o sistema X window" #: ../src/main.c:423 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tpantalla a usar" #: ../src/main.c:425 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr "" " --no-cpp \t\tdesactiva-lo preprocesamento dos ficheiros de configuración" #: ../src/main.c:427 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tnon usa-la aplicación Dock" #: ../src/main.c:428 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tnon abri-lo Clip do escritorio" #: ../src/main.c:429 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tnon lanzar aplicacións automaticamente" #: ../src/main.c:430 msgid " --dont-restore\tdo not restore saved session" msgstr " --dont-restore\tnon restaura-la sesión gardada" #: ../src/main.c:432 msgid " --locale locale\t\tlocale to use" msgstr " --locale locale\t\tlocale a utilizar" #: ../src/main.c:434 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tid do visual a usar" #: ../src/main.c:435 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tnon actualizar ou gardar configuracións" #: ../src/main.c:437 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tactivar modo de visualización sincronizado" #: ../src/main.c:439 msgid " --version\t\tprint version and exit" msgstr " --version\t\tescribi-la versión e saír" #: ../src/main.c:440 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tamosar esta mensaxe" #: ../src/main.c:452 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "non foi posible atopa-lo directorio de usuario de GNUstep (%s).\n" "Asegúrese de que instalou Window Maker correctamente e execute wmaker.inst" #: ../src/main.c:473 ../src/main.c:478 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:non foi posible executa-lo script de inicialización" #: ../src/main.c:498 ../src/main.c:503 #, c-format msgid "%s:could not execute exit script" msgstr "%s:non foi posible executa-lo script de saída" #: ../src/main.c:619 ../src/main.c:626 ../src/main.c:634 ../src/main.c:650 #, c-format msgid "too few arguments for %s" msgstr "poucos argumentos para %s" #: ../src/main.c:638 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "valor erróneo para o visualid: \"%s\"" #: ../src/main.c:658 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: argumento '%s' non válido\n" #: ../src/main.c:659 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Probe '%s --help' para máis información\n" #: ../src/main.c:690 msgid "X server does not support locale" msgstr "o servidor de X non soporta locale" #: ../src/main.c:694 msgid "cannot set locale modifiers" msgstr "non é posible variar os modificadores locale" #: ../src/main.c:710 #, c-format msgid "could not open display \"%s\"" msgstr "non se pode abri-la pantalla \"%s\"" #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "non foi posible defini-lo valor de %s para o cpp" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "non foi posible obte-la entrada do passwd do UID %i" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "o seu equipo está desconfigurado. HOSTNAME está posto a %s" #: ../src/misc.c:132 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "o seu equipo está desconfigurado. HOST está posto a %s" #: ../src/misc.c:753 msgid "selection timed-out" msgstr "selección fóra de tempo" #: ../src/misc.c:769 msgid "Program Arguments" msgstr "Argumentos do Programa" #: ../src/misc.c:770 msgid "Enter command arguments:" msgstr "Introduza os argumentos do programa:" #: ../src/misc.c:863 msgid "unable to get dropped data from DND drop" msgstr "non é posible obte-los datos soltados dun DND" #: ../src/misc.c:871 msgid "error getting dropped data from DND drop" msgstr "erro obtendo os datos soltados dun DND" #: ../src/misc.c:877 msgid "out of memory while getting data from DND drop" msgstr "memoria esgotada ó obte-los datos soltados dun DND" #: ../src/misc.c:922 ../src/misc.c:1062 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "memoria esgotada durante a expansión de \"%s\"" #: ../src/misc.c:976 msgid "out of memory during expansion of \"%w\"" msgstr "memoria esgotada durante a expansión de \"%w\"" #: ../src/misc.c:994 msgid "out of memory during expansion of \"%W\"" msgstr "memoria esgotada durante a expansión de \"%W\"" #: ../src/misc.c:1010 msgid "out of memory during expansion of \"%a\"" msgstr "memoria esgotada durante a expansión de \"%a\"" #: ../src/misc.c:1041 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "memoria esgotada durante a expansión de \"%d\"" #: ../src/misc.c:1055 msgid "selection not available" msgstr "selección non dispoñible" # %s é "dock" ou "session" (sen traducir) #: ../src/misc.c:1127 ../src/misc.c:1133 #, c-format msgid "bad window name value in %s state info" msgstr "valor do nome de fiestra erróneo na información de estado de \"%s\"" #: ../src/misc.c:1401 msgid "could not send message to background image helper" msgstr "non foi posible envia-la mensaxe ó xestor de imaxes de fondo" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "" "non foi posible carga-lo ficheiro de máscara \"%s\". Non se usará mascara" #: ../src/proplist.c:180 msgid "unterminated string" msgstr "cadea sen rematar" #: ../src/proplist.c:247 msgid "unterminated array" msgstr "array sen rematar" #: ../src/proplist.c:256 msgid "missing , in array or unterminated array" msgstr "falta unha , no array, ou array sen rematar" #: ../src/proplist.c:267 msgid "could not get array element" msgstr "non foi posible obte-lo elemento do array" #: ../src/proplist.c:297 msgid "unterminated dictionary" msgstr "diccionario sen rematar" #: ../src/proplist.c:315 msgid "missing dictionary key" msgstr "falta unha clave de diccionario" #: ../src/proplist.c:317 msgid "missing dictionary entry key or unterminated dictionary" msgstr "" "falta a clave nunha entrada de diccionario, ou diccionario non rematado" #: ../src/proplist.c:323 msgid "error arsing dictionary key" msgstr "erro analizando a clave de diccionario" #: ../src/proplist.c:332 msgid "missing = in dictionary entry" msgstr "falta un = na entrada de diccionario" #: ../src/proplist.c:351 msgid "missing ; in dictionary entry" msgstr "falta un ; na entrada de diccionario" #: ../src/proplist.c:432 msgid "" "was expecting a string, dictionary, data or array. If it's a string, try " "enclosing it with \"." msgstr "" "agardábase unha cadea, diccionario, datos ou array. Se é unha cadea, probe " "a poñela entre \"." #: ../src/proplist.c:434 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "" "Non se permiten os comentarios nos ficheiros de dominio do WindowMaker." #: ../src/proplist.c:453 #, c-format msgid "could not open domain file %s" msgstr "non foi posible abri-lo ficheiro de dominio %s" #: ../src/proplist.c:466 msgid "extra data after end of file" msgstr "datos de máis trala fin do ficheiro" #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "non foi posible analiza-la cor \"%s\"" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "non foi posible asigna-la cor \"%s\"" #: ../src/rootmenu.c:186 ../src/rootmenu.c:188 msgid "Exit" msgstr "Saír" #: ../src/rootmenu.c:187 msgid "Exit window manager?" msgstr "¿Saír do xestor de fiestras?" #: ../src/rootmenu.c:223 msgid "Close X session" msgstr "Pecha-la sesión X" #: ../src/rootmenu.c:224 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "¿Pecha-la sesión do Sistema de Fiestras?\n" "Isto podería pecha-las aplicacións con datos sen gardar." #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/rootmenu.c:226 ../src/winmenu.c:509 msgid "Close" msgstr "Pechar" #: ../src/rootmenu.c:237 msgid "Kill X session" msgstr "Pecha-la sesión X" #: ../src/rootmenu.c:238 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "¿Mata-la sesión do Sistema de Fiestras?\n" "(tódalas aplicacións serán pechadas)" #: ../src/rootmenu.c:505 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:especificación \"%s\" de atallo de teclado non válida na entrada %s" #: ../src/rootmenu.c:513 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:tecla inválida no atallo \"%s\" na entrada %s" #: ../src/rootmenu.c:566 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: '\"' desparelladas no ficheiro de menú" #: ../src/rootmenu.c:616 #, c-format msgid "%s: missing command" msgstr "%s: falta o comando" #: ../src/rootmenu.c:648 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "especificación OPEN_MENU inválida: %s" #: ../src/rootmenu.c:696 #, c-format msgid "%s:could not stat menu" msgstr "%s:non foi posible facer stat do menú" #: ../src/rootmenu.c:704 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:non foi posible facer stat do menú:%s" #: ../src/rootmenu.c:722 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "demasiados parámetros en OPEN_MENU: %s" #: ../src/rootmenu.c:758 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Hai máis dun comando WORKSPACE_MENU no menú de aplicacións. Só se permite un." #: ../src/rootmenu.c:787 ../src/rootmenu.c:805 ../src/rootmenu.c:815 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:falta algún parámetro no comando de menú \"%s\"" #: ../src/rootmenu.c:879 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:comando \"%s\" descoñecido na configuración do menú." #: ../src/rootmenu.c:887 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:non se pode engadi-lo atallo para a entrada \"%s\"" #: ../src/rootmenu.c:1024 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:excedeuse o tamaño máximo de liña na configuración do menú: %s" #: ../src/rootmenu.c:1046 ../src/rootmenu.c:1138 ../src/rootmenu.c:1239 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:falta o comando na configuración do menú: %s" #: ../src/rootmenu.c:1076 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:erro de sintaxe no ficheiro de menú: Declaración END omitida" #: ../src/rootmenu.c:1105 ../src/rootmenu.c:1204 msgid "could not make arguments for menu file preprocessor" msgstr "" "non foi posible crea-los argumentos para o preprocesador de ficheiros de menú" #: ../src/rootmenu.c:1111 ../src/rootmenu.c:1211 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s:non foi posible abrir/preprocesar ficheiro de menú" #: ../src/rootmenu.c:1123 ../src/rootmenu.c:1224 #, c-format msgid "%s:could not open menu file" msgstr "%s:non foi posible abri-lo ficheiro de menú" #: ../src/rootmenu.c:1150 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:ficheiro de menú inválido. Falla o comando MENU" #: ../src/rootmenu.c:1159 msgid "error reading preprocessed menu data" msgstr "erro lendo os datos de menú preprocesados" #: ../src/rootmenu.c:1251 #, c-format msgid "%s:no title given for the root menu" msgstr "%s:non se indicou ningún título para a fiestra raíz" #: ../src/rootmenu.c:1341 ../src/rootmenu.c:1416 ../src/rootmenu.c:1459 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "memoria esgotada ó construí-lo menú do directorio %s" #: ../src/rootmenu.c:1351 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:non foi posible facer stat do ficheiro \"%s\" no directorio de menú" #: ../src/rootmenu.c:1513 msgid "Commands" msgstr "Comandos" #: ../src/rootmenu.c:1516 msgid "Restart" msgstr "Reiniciar" #: ../src/rootmenu.c:1517 msgid "Exit..." msgstr "Saír..." #: ../src/rootmenu.c:1562 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "non se atopou o ficheiro de menú \"%s\" referido en WMRootMenu" #: ../src/rootmenu.c:1569 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "non foi posible acceder ó menú \"%s\" referido en WMRootMenu" #: ../src/rootmenu.c:1580 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "usando o ficheiro de menú por defecto \"%s\" xa que o referido en WMRootMenu " "non se atopou " #: ../src/rootmenu.c:1603 ../src/rootmenu.c:1679 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:erro de formato na configuración do menú raíz \"%s\"" #: ../src/rootmenu.c:1766 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Non foi posible carga-lo menú de aplicacións. Mire a saída da consola para " "unha descrición detallada dos erros." #: ../src/screen.c:460 #, c-format msgid "could not load logo image for panels: %s" msgstr "non foi posible carga-la imaxe do logo para os paneis: %s" #: ../src/screen.c:464 #, c-format msgid "error making logo image for panel:%s" msgstr "erro creando a imaxe do logo para o panel:%s" #: ../src/screen.c:745 #, c-format msgid "could not initialize graphics library context: %s" msgstr "non foi posible inicializa-lo contexto da biblioteca gráfica: %s" #: ../src/screen.c:776 msgid "could not do initialization of WINGs widget set" msgstr "non foi posible inicializa-lo conxunto de widgets WINGs" #: ../src/screen.c:1128 #, c-format msgid "could not save session state in %s" msgstr "non foi posible garda-lo estado da sesión en %s" #: ../src/session.c:183 ../src/wdefaults.c:583 ../src/winspector.c:447 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "non se pode converter \"%s\" a booleano" #: ../src/session.c:1023 msgid "out of memory while saving session state" msgstr "memoria esgotada ó garda-lo estado da sesión" #: ../src/session.c:1114 msgid "end of memory while saving session state" msgstr "memoria esgotada ó garda-lo estado da sesión" #. 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:1248 msgid "connection to the session manager was lost" msgstr "perdeuse a conexión ó xestor de sesión" #: ../src/stacking.c:73 msgid "could not get window list!!" msgstr "¡¡non foi posible obte-la lista de fiestras!!" #: ../src/startup.c:197 #, c-format msgid "internal X error: %s\n" msgstr "erro interno das X: %s\n" #: ../src/startup.c:262 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "recibiuse o sinal %i (%s) - reiniciando\n" #: ../src/startup.c:264 #, c-format msgid "got signal %i - restarting\n" msgstr "recibiuse o sinal %i - reiniciando\n" #: ../src/startup.c:278 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "recibiuse o sinal %i (%s) - saíndo...\n" #: ../src/startup.c:280 #, c-format msgid "got signal %i - exiting...\n" msgstr "recibiuse o sinal %i - saíndo...\n" #: ../src/startup.c:293 #, c-format msgid "got signal %i (%s)\n" msgstr "recibiuse o sinal %i (%s)\n" #: ../src/startup.c:295 #, c-format msgid "got signal %i\n" msgstr "recibiuse o sinal %i\n" #: ../src/startup.c:306 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "" "erro grave ó tentar facer limpeza despois dun crash. Abortando " "inmediatamente." #. we try to restart Window Maker #: ../src/startup.c:340 msgid "trying to restart Window Maker..." msgstr "tentando reiniciar o Window Maker..." #: ../src/startup.c:345 msgid "trying to start alternate window manager..." msgstr "tentando iniciar outro xestor de fiestras..." #: ../src/startup.c:350 msgid "failed to start alternate window manager. Aborting." msgstr "fallou o inicio dun xestor de fiestras alternativo. Abortando." #: ../src/startup.c:352 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" "ocorreu un erro moi grave, probablemente por mor dun erro de programación. " "Por favor, encha a BUGFORM incluída (en inglés) e infórmeo." #: ../src/startup.c:830 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "" "o tamaño da icona está configuraco a %i, pero é pequeno de máis. Usando 16 " "no seu lugar\n" #: ../src/startup.c:858 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "non se soporta XKB. KbdModeLock está desactivado automaticamente." #: ../src/startup.c:877 msgid "it seems that there is already a window manager running" msgstr "semella que xa hai un xestor de fiestras a se executar" #: ../src/startup.c:883 #, c-format msgid "could not manage screen %i" msgstr "non foi posible xestiona-la pantalla %i" #: ../src/startup.c:944 msgid "could not manage any screen" msgstr "non foi posible xestionar ningunha pantalla" #: ../src/switchmenu.c:114 msgid "Windows" msgstr "Fiestras" #: ../src/texture.c:290 ../src/texture.c:334 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "non se atopou o ficheiro de imaxe \"%s\" usado como textura." #: ../src/texture.c:296 ../src/texture.c:340 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "non foi posible carga-lo pixmap de textura \"%s\":%s" #: ../src/texture.c:400 #, c-format msgid "library \"%s\" cound not be opened." msgstr "non foi posible abri-la biblioteca \"%s\"." #: ../src/texture.c:409 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "non se atopou a función \"%s\" na biblioteca \"%s\"" #: ../src/texture.c:416 msgid "function textures not supported on this system, sorry." msgstr "as texturas non están soportadas neste sistema." #: ../src/wdefaults.c:429 #, c-format msgid "could not find icon file \"%s\"" msgstr "non foi posible atopa-lo ficheiro de icona \"%s\"" #: ../src/window.c:2715 ../src/window.c:2849 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 "" "semella que a tecla BloqNum, BloqDespr ou outra similar está activada.\n" "Desactívea ou algunhas accións do rato e atallos de teclado non funcionarán." #: ../src/winmenu.c:126 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Isto matará a aplicación.\n" "Perderanse tódolos cambios non gardados.\n" "Confírmeo." #: ../src/winmenu.c:275 ../src/winmenu.c:283 msgid "Set Shortcut" msgstr "Definir Atallo" #: ../src/winmenu.c:361 ../src/winmenu.c:407 msgid "could not create submenu for window menu" msgstr "non foi posible crear un submenú para o menú de fiestra" #: ../src/winmenu.c:411 msgid "Keep on top" msgstr "Manter por riba" #: ../src/winmenu.c:416 msgid "Keep at bottom" msgstr "Manter embaixo" #. #. * 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:444 ../src/winmenu.c:579 msgid "Maximize" msgstr "Maximizar" #: ../src/winmenu.c:452 ../src/winmenu.c:565 msgid "Miniaturize" msgstr "Miniaturizar" #: ../src/winmenu.c:461 ../src/winmenu.c:596 msgid "Shade" msgstr "Enrolar" #: ../src/winmenu.c:477 msgid "Resize/Move" msgstr "Redimensionar/Mover" #: ../src/winmenu.c:485 msgid "Select" msgstr "Seleccionar" #: ../src/winmenu.c:493 msgid "Move To" msgstr "Mover Para" #: ../src/winmenu.c:498 msgid "Attributes..." msgstr "Atributos..." #: ../src/winmenu.c:500 msgid "Options" msgstr "Opcións" #: ../src/winmenu.c:560 msgid "Deminiaturize" msgstr "Desminiaturizar" #: ../src/winmenu.c:574 msgid "Unmaximize" msgstr "Desmaximizar" #: ../src/winmenu.c:591 msgid "Unshade" msgstr "Desenrolar" #: ../src/winspector.c:381 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Non se atopou a icona \"%s\" especificada para esta fiestra" #: ../src/winspector.c:397 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Non se atopou a icona \"%s\" especificada:%s" #: ../src/winspector.c:1221 msgid "Save" msgstr "Gardar" #: ../src/winspector.c:1229 msgid "Apply" msgstr "Aplicar" #: ../src/winspector.c:1235 msgid "Reload" msgstr "Recargar" #: ../src/winspector.c:1244 ../src/winspector.c:1254 msgid "Window Specification" msgstr "Especificación de Fiestra" #: ../src/winspector.c:1245 msgid "Window Attributes" msgstr "Atributos da Fiestra" #: ../src/winspector.c:1246 msgid "Advanced Options" msgstr "Opcións Avanzadas" #: ../src/winspector.c:1247 msgid "Icon and Initial Workspace" msgstr "Icona e Ãrea de Traballo Inicial" #: ../src/winspector.c:1248 msgid "Application Specific" msgstr "Específico de Aplicación" #: ../src/winspector.c:1262 msgid "Defaults for all windows" msgstr "Predeterminados para tódalas fiestras" #: ../src/winspector.c:1316 msgid "Select Window" msgstr "Seleccionar Fiestra" #: ../src/winspector.c:1329 msgid "Attributes" msgstr "Atributos" #: ../src/winspector.c:1340 msgid "Disable Titlebar" msgstr "Desactivar Barra de Título" #: ../src/winspector.c:1342 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Eliminar a barra de título desta fiestra.\n" "Para acceder ó menú de comandos dunha fiestra sen\n" "a barra de título, prema Control+Esc (ou o atallo\n" "equivalente, se mudou as opcións por omisión)." #: ../src/winspector.c:1349 msgid "Disable Resizebar" msgstr "Desactivar Barra de Redimensionamento" #: ../src/winspector.c:1351 msgid "Remove the resizebar of this window." msgstr "Eliminar a barra de redimensionamento desta fiestra." #: ../src/winspector.c:1354 msgid "Disable Close Button" msgstr "Desactivar o Botón de Pechar" #: ../src/winspector.c:1356 msgid "Remove the `close window' button of this window." msgstr "Quitar o botón de `pechar fiestra' desta fiestra." #: ../src/winspector.c:1359 msgid "Disable Miniaturize Button" msgstr "Desactivar o Botón de Miniaturizar" #: ../src/winspector.c:1361 msgid "Remove the `miniaturize window' button of the window." msgstr "Quitar o botón de `miniaturizar fiestra' da fiestra." #: ../src/winspector.c:1364 msgid "Disable Border" msgstr "Desactivar Bordo" #: ../src/winspector.c:1366 msgid "Remove the 1 pixel black border around the window." msgstr "Quitar o bordo negro de 1 punto arredor da fiestra." #: ../src/winspector.c:1369 msgid "Keep on Top / Floating" msgstr "Manter por Riba / Flotando" #: ../src/winspector.c:1371 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "Manter a fiestra por riba das outras, non deixando\n" "que a cubran." #: ../src/winspector.c:1375 msgid "Keep at Bottom / Sunken" msgstr "Manter Embaixo / Afundida" #: ../src/winspector.c:1377 msgid "Keep the window under all other windows." msgstr "Manter a fiestra baixo as outras." #: ../src/winspector.c:1382 msgid "Make window occupy all workspaces." msgstr "Facer que a fiestra ocupe tódalas áreas de traballo." #: ../src/winspector.c:1385 msgid "Start Miniaturized" msgstr "Iniciar Miniaturizada" #: ../src/winspector.c:1387 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "Facer que a fiestra sexa miniaturizada automaticamente\n" "ó amosala por primeira vez." #: ../src/winspector.c:1391 msgid "Start Maximized" msgstr "Iniciar Maximizada" #: ../src/winspector.c:1393 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "Facer que a fiestra sexa maximizada automaticamente\n" "ó amosala por primeira vez." #: ../src/winspector.c:1397 msgid "Skip Window List" msgstr "Ignorar Lista de Fiestras" #: ../src/winspector.c:1399 msgid "Do not list the window in the window list menu." msgstr "Non lista-la fiestra no menú de lista de fiestras." #: ../src/winspector.c:1414 msgid "Advanced" msgstr "Avanzado" #: ../src/winspector.c:1431 msgid "Ignore HideOthers" msgstr "Ignorar HideOthers" #: ../src/winspector.c:1433 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "Non agocha-la fiestra cando se emita o\n" "comando `HideOthers'." #: ../src/winspector.c:1437 msgid "Don't Bind Keyboard Shortcuts" msgstr "Desactivar Atallos de Teclado" #: ../src/winspector.c:1439 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Desactivar os atallos de teclado do Window Maker\n" "cando esta fiestra estea enfocada. Isto permitirá\n" "que a fiestra reciba tódalas combinacións de teclas\n" "independentemente da configuración dos atallos." #: ../src/winspector.c:1445 msgid "Don't Bind Mouse Clicks" msgstr "Desactivar Clics do Rato" #: ../src/winspector.c:1447 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Desactivar as accións do rato, como `Alt'+arrastrar\n" "na fiestra (cando alt é o modificador que configurou)." #: ../src/winspector.c:1452 msgid "Keep Inside Screen" msgstr "Manter dentro da Pantalla" #: ../src/winspector.c:1454 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Non permitir que a fiestra se mova completamente\n" "fóra da pantalla. Para compatibilidade con erros.\n" #: ../src/winspector.c:1458 msgid "Don't Let It Take Focus" msgstr "Non deixar que colla o Foco" #: ../src/winspector.c:1460 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "Non deixar que a fiestra colla o foco do teclado ó\n" "premer nela." #: ../src/winspector.c:1464 msgid "Don't Save Session" msgstr "Non Gardar Sesión" #: ../src/winspector.c:1466 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Non garda-la aplicación asociada no estado da\n" "sesión, de xeito que non se execute canda as\n" "outras aplicacións ó iniciar o Window Maker." #: ../src/winspector.c:1472 msgid "Emulate Application Icon" msgstr "Emular Icona da Aplicación" #: ../src/winspector.c:1474 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Facer que esta fiestra actúe como unha aplicación que\n" "fornece a información suficiente para que o Window Maker\n" "poida crear unha icona de aplicación no dock." #: ../src/winspector.c:1479 msgid "Full Screen Maximization" msgstr "Maximización en Pantalla Completa" #: ../src/winspector.c:1481 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Facer que a fiestra use todo o espacio da pantalla ó\n" "maximizala. A barra do título e a de redimensionamento\n" "irán para fóra da pantalla." #: ../src/winspector.c:1487 msgid "Disable Language Button" msgstr "Desactivar Botón de Lingua" #: ../src/winspector.c:1489 msgid "Remove the `toggle language' button of the window." msgstr "Quitar da fiestra o botón de `trocar lingua'." #: ../src/winspector.c:1506 msgid "Miniwindow Image" msgstr "Imaxe para a Fiestra Minimizada" #: ../src/winspector.c:1525 msgid "Update" msgstr "Actualizar" #: ../src/winspector.c:1540 msgid "Icon File Name:" msgstr "Nome do Ficheiro da Icona:" #: ../src/winspector.c:1552 msgid "Ignore client supplied icon" msgstr "Ignora-la icona fornecida polo cliente" #: ../src/winspector.c:1559 msgid "Initial Workspace" msgstr "Area de Traballo Inicial" #: ../src/winspector.c:1561 msgid "The workspace to place the window when it'sfirst shown." msgstr "" "A área de traballo na que coloca-la fiestra ó amosala por primeira vez." #: ../src/winspector.c:1567 msgid "Nowhere in particular" msgstr "Ningures en particular" #: ../src/winspector.c:1585 msgid "Application Wide" msgstr "Para a Aplicación" #: ../src/winspector.c:1596 msgid "Start Hidden" msgstr "Iniciar Agochada" #: ../src/winspector.c:1598 msgid "Automatically hide application when it's started." msgstr "Agochar automaticamente a aplicación cando se inicie." #: ../src/winspector.c:1601 msgid "No Application Icon" msgstr "Sen Icona de Aplicación" #: ../src/winspector.c:1603 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Desactiva-la icona de aplicación. Teña en conta\n" "que xa non poderá poñela no dock, e que as iconas\n" "que xa estean no dock deixarán de funcionar\n" "correctamente." #: ../src/workspace.c:110 ../src/workspace.c:111 ../src/workspace.c:806 #, c-format msgid "Workspace %i" msgstr "Ãrea de Traballo %i" #: ../src/workspace.c:863 msgid "Workspaces" msgstr "Areas de Traballo" #: ../src/workspace.c:865 msgid "could not create Workspace menu" msgstr "non foi posible crear o menu da Ãrea de Traballo" #: ../src/workspace.c:872 msgid "New" msgstr "Nova" #: ../src/workspace.c:873 msgid "Destroy Last" msgstr "Destruír Derradeira" #: ../src/xutil.c:228 msgid "invalid data in selection" msgstr "datos non válidos na selección" WindowMaker-0.95.5/po/README0000644000175000017500000001200412214432632012254 00000000000000Translated Message Catalog Files ================================ All files are now in UTF-8. File Language Note Current Maintainer ------------------------------------------------------------------------------ ja.po Japanese 1 ABE Shige MANOME Tomonori Takeo Hashimoto pt.po Portuguese Eliphas Levy Theodoro de.po German Torsten Marek Bernd Eggert Matthias Warkus Guido Scholz es.po Spanish Quique Raul Benito Garcia ko.po Korean 1,2 Byeong-Chan Kim sv.po Swedish John Forgoil cs.po Czech 3 Jiri Hnidek nl.po Dutch Roeland Mertens gl.po Galician Xose Vazquez Perez fr.po French Bastien Nocera Jean-Francois BIGNOLLES Antoine Hulin it.po Italian Michele Campeotto ru.po Russian Alexey Vyskubov Michael Sobolev tr.po Turkish F. Kagan Gurkaynak fi.po Finnish Ville Hautamaki Ramin Miraftabi Tomi Kajala hr.po Croatian 3 Toni Bilic el.po Greek Nikolaos Papagrigoriou pl.po Polish Piotr Dembiñski ro.po Romanian Andrei Vuta da.po Danish Birger Langkjer zh_TW.Big5.po Chinese Li Wei Jih zh_CN.po Chinese Wang Jian sk.po Slovak Jan 'judas' Tomka Milan Hromada bg.po Bulgarian Slavei Karadjov Anton Zinoviev hu.po Hungarian HORVATH Szabolcs et.po Estonian Ivar Smolin ms.po Malay Hasbullah Bin Pit (sebol) be.po Belarusian Ihar Viarheichyk ca.po Catalan Ernest Adrogué bs.po Bosnian Ahmet Mulalic hy.po Armenian Norayr Chilignaryan Some translations are based on previous translations by other people. The history of translations can be found in the po files. If you want to update a translation that's maintained by someone else please please please contact the original maintainer first. It's for your own good. Notes ----- 1. Multibyte character support must be enabled in WindowMaker. 2. WindowMaker must also be started from a terminal program that can display the messages in that language, like xterm that supports Korean characters. 3. Uses iso8859-2 character set. If you want to translate WindowMaker messages to some other language: 1 - type make WindowMaker.pot 2 - translate WindowMaker.pot like: msgid "%s aborted.\n" msgstr "%s abortado.\n" where msgid is the original message and msgstr is the translated message. PLEASE DO NOT TOUCH THE msgid LINES. The info pages for gettext has more detailed information on how to do translations. 3 - (maintainer only) put the locale name in configure.ac, in the list of supported locales Then rename the WindowMake.pot file to the language code with a .po extension, reconfigure WindowMaker and run make install. To update an already translated message file use the msgmerge command. As in: msgmerge pt.po WindowMaker.pot > pt.po.new If you use an older version of gettext, the command is tupdate, instead of msgmerge. Notes: - if you think an error message is too obscure just ask me about it. - you don't need to translate every single word. Some words/expressions are easier to understand in the original English form than in our native languages. - some strings used in dialog panels and other GUI parts are limited by the size of the widget. Unfortunately, the only way to verify that is by trial and error. - you can use characters other than standard ASCII, if needed. Keep in mind that if error messages that are output to stdout (instead of in a GUI dialog) is translated using some character set different than ASCII, it will require that the terminal from where wmaker is launched be able to display such characters. For example, if you translate _all_ messages to greek, you'll need to run wmaker from a xterm that can display greek. - if you update a translation of someone else, please contact the current maintainer, so that we don't have duplicate work. Also put a "history" log in the top of the file, like: # # Portuguese Message Catalog # # Version Maintainer # Original Joe Shmoe # 0.17.5 Joao da Silva # You may also want to translate the menu definition file. Send the translated files to me, so that I can include them in the next distribution. -- Alfredo Kojima WindowMaker-0.95.5/po/be.po0000644000175000017500000020221512214432632012327 00000000000000# Messages for Window Maker # Copyright (C) 2002 Free Software Foundation, Inc. # Text below is in CP1251 encoding. # Ihar Viarheichyk , 2002. # msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.80.0\n" "POT-Creation-Date: 2002-08-11 19:48+0300\n" "PO-Revision-Date: 2002-10-17 19:02+0300\n" "Last-Translator: Ihar Viarheichyk \n" "Language-Team: Belarusian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:426 ../src/dialog.c:304 ../src/dock.c:3326 #: ../src/dockedapp.c:230 ../src/main.c:273 ../src/rootmenu.c:1854 #: ../src/winspector.c:389 ../src/winspector.c:406 msgid "Error" msgstr "Памылка" #: ../src/appicon.c:427 msgid "Could not open specified icon file" msgstr "Ðемагчыма адкрыць файл иконкі" #: ../src/appicon.c:428 ../src/dialog.c:201 ../src/dialog.c:304 #: ../src/dialog.c:751 ../src/dialog.c:1850 ../src/dock.c:526 #: ../src/dock.c:534 ../src/dock.c:558 ../src/dock.c:3327 #: ../src/dockedapp.c:231 ../src/dockedapp.c:426 ../src/main.c:273 #: ../src/rootmenu.c:1858 ../src/winspector.c:390 ../src/winspector.c:407 msgid "OK" msgstr "OK" #: ../src/appicon.c:456 ../src/dock.c:264 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " будзе прымуÑова закрыта.\n" "ÐÐµÐ·Ð°Ñ…Ð°Ð²Ð°Ð½Ñ‹Ñ Ð·Ð¼ÐµÐ½Ñ‹ будуць Ñтрачаны.\n" "Пацвердзце." #: ../src/appicon.c:464 ../src/dock.c:283 ../src/winmenu.c:125 msgid "Kill Application" msgstr "ПрымуÑова закрыць праграму" #: ../src/appicon.c:465 ../src/dock.c:284 ../src/winmenu.c:127 msgid "Yes" msgstr "Так" #: ../src/appicon.c:465 ../src/dock.c:284 ../src/winmenu.c:127 msgid "No" msgstr "Ðе" #: ../src/appicon.c:495 ../src/dock.c:1178 ../src/dock.c:3492 msgid "Unhide Here" msgstr "Схаваць тут" #: ../src/appicon.c:496 ../src/appicon.c:521 ../src/dock.c:1180 #: ../src/dock.c:1182 ../src/dock.c:3504 ../src/winmenu.c:465 msgid "Hide" msgstr "Схаваць" #: ../src/appicon.c:497 msgid "Set Icon..." msgstr "Задаць іконку..." #: ../src/appicon.c:498 ../src/dock.c:1186 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 ../src/winmenu.c:520 msgid "Kill" msgstr "Закрыць прымуÑова" #: ../src/appicon.c:519 ../src/dock.c:3502 msgid "Unhide" msgstr "Паказаць" #: ../src/application.c:398 #, c-format msgid "recreating missing icon '%s'" msgstr "Ñтвараю адÑутнічаючу іконку '%s'" #: ../src/defaults.c:922 ../src/defaults.c:1011 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Дамен %s (%s) агульнай базы Ñтандартных параметраў пашкоджаны" #: ../src/defaults.c:927 #, c-format msgid "could not load domain %s from global defaults database" msgstr "немагчыма загрузіць дамен %s з агульнай базы Ñтандартных параметраў" #: ../src/defaults.c:949 ../src/startup.c:884 ../src/startup.c:902 #: ../src/startup.c:908 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "немагчыма загрузіць дамен %s з базы Ñтандартных параметраў" #: ../src/defaults.c:995 ../src/defaults.c:1099 ../src/defaults.c:1140 #: ../src/defaults.c:1196 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Дамен %s (%s) базы Ñтандартных параметраў пашкоджаны" #: ../src/defaults.c:1000 ../src/defaults.c:1119 ../src/defaults.c:1176 #: ../src/defaults.c:1205 ../src/menureader.c:397 #, c-format msgid "could not load domain %s from user defaults database" msgstr "немагчыма загрузіць дамен %s базы Ñтандартных параметраў карыÑтальніка" #: ../src/defaults.c:1030 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "немагчыма загрузіць дамен %s з агульнай базы Ñтандартных параметраў (%s)" #: ../src/defaults.c:1166 ../src/screen.c:460 #, c-format msgid "could not load logo image for panels: %s" msgstr "немагчыма загрузіць выÑву лагатыпу панÑлей: %s" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1414 ../src/defaults.c:1556 ../src/defaults.c:1668 #: ../src/defaults.c:2147 ../src/defaults.c:2164 ../src/defaults.c:2209 #: ../src/defaults.c:2256 ../src/defaults.c:2729 ../src/wdefaults.c:571 #: ../src/wdefaults.c:607 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Памылковы фармат параметру Ð´Ð·ÐµÐ»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\". Павінен быць %s." #: ../src/defaults.c:1416 ../src/defaults.c:1497 ../src/defaults.c:1529 #: ../src/defaults.c:1561 ../src/defaults.c:1574 ../src/defaults.c:1589 #: ../src/defaults.c:1603 ../src/defaults.c:1673 ../src/defaults.c:1685 #: ../src/defaults.c:2152 ../src/defaults.c:2169 ../src/defaults.c:2182 #: ../src/defaults.c:2214 ../src/defaults.c:2230 ../src/defaults.c:2261 #: ../src/defaults.c:2348 ../src/defaults.c:2734 ../src/defaults.c:2745 #, c-format msgid "using default \"%s\" instead" msgstr "будзе ужыта Ñтандартнае значÑнне \"%s\"" #: ../src/defaults.c:1447 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "дрÑннае значÑнне Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\". Павінна быць адно з %s" #: ../src/defaults.c:1492 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "немагчыма прывеÑці \"%s\" да тыпу boolean Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\"" #: ../src/defaults.c:1526 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "немагчыма прывеÑці \"%s\" да тыпу integer Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\"" #: ../src/defaults.c:1569 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "ÐÐµÐ´Ð°Ð¿ÑƒÑˆÑ‡Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð»ÑŒÐºÐ°Ñць Ñлементаў у маÑіве Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\"." #: ../src/defaults.c:1584 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "ДрÑннае значÑнне Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\". Павинна быць Coordinate." #: ../src/defaults.c:1599 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "немагчыма Ñканвертаваць маÑÑ–Ñž да цÑлых Ð´Ð»Ñ \"%s\"" #: ../src/defaults.c:1797 ../src/defaults.c:1829 ../src/defaults.c:1845 #: ../src/defaults.c:1874 ../src/defaults.c:1897 ../src/defaults.c:1950 #: ../src/defaults.c:1990 ../src/defaults.c:2028 ../src/defaults.c:2044 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" не дапушчальнае Ñ–Ð¼Ñ Ð´Ð»Ñ ÐºÐ¾Ð»ÐµÑ€Ð°" #: ../src/defaults.c:1810 ../src/defaults.c:1862 msgid "bad number of arguments in gradient specification" msgstr "неадпаведны лік агрументаў у Ñпецыфікацыі градыенту" #: ../src/defaults.c:1923 msgid "too few arguments in multicolor gradient specification" msgstr "замала аргументаў у Ñпецыфікацыі шматкалÑровага градыенту" #: ../src/defaults.c:2017 msgid "bad number of arguments in textured gradient specification" msgstr "неадпаведны лік аргументаў у Ñпецыфікацыі Ñ‚ÑкÑтурнага градыенту" #: ../src/defaults.c:2060 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "дрÑннае значÑнне непразрыÑтаÑці Ð´Ð»Ñ Ð³Ñ€Ð°Ð´Ñ‹ÐµÑ‚Ð½Ð°Ð¹ Ñ‚ÑкÑтуры \"%s\"." "Павінна быць [0..255]" #: ../src/defaults.c:2120 #, c-format msgid "could not initialize library %s" msgstr "немагчыма ініцыÑлізаваць бібліÑÑ‚Ñку %s" #: ../src/defaults.c:2123 #, c-format msgid "could not find function %s::%s" msgstr "немагчыма знайÑці функцыю %s::%s" #: ../src/defaults.c:2130 #, c-format msgid "invalid texture type %s" msgstr "дрÑнны тып Ñ‚ÑкÑтуры %s" #: ../src/defaults.c:2177 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Памылка Ñž Ñпецыфікацыі Ñ‚ÑкÑтуры з ключом \"%s\"" #: ../src/defaults.c:2226 msgid "Wrong type for workspace background. Should be a texture type." msgstr "ДрÑнны тып фона працамеÑца. Павінен быць Ñ‚ÑкÑтурай" #: ../src/defaults.c:2274 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "ДрÑнны тып фона працамеÑца %i. Павінен быць Ñ‚ÑкÑтурай." #: ../src/defaults.c:2316 msgid "could not load any usable font!!!" msgstr "немагчыма загрузіць аніÑкі падыходзÑчы шрыфт!!!" #: ../src/defaults.c:2343 #, c-format msgid "could not get color for key \"%s\"" msgstr "немагчыма знайÑці колер Ð´Ð·ÐµÐ»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\"" #: ../src/defaults.c:2401 ../src/rootmenu.c:526 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s: дрÑнны клавіÑтурны мадыфікатар \"%s\"" #: ../src/defaults.c:2413 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: дрÑÐ½Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ñ‹Ñ„Ñ–ÐºÐ°Ñ†Ñ‹Ñ Ð³Ð°Ñ€Ð°Ñ‡Ð°Ð¹ клавішы \"%s\"" #: ../src/defaults.c:2420 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s: дрÑÐ½Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ñ‹Ñ„Ñ–ÐºÐ°Ñ†Ñ‹Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÑ‹ \"%s\"" #: ../src/defaults.c:2445 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: недапушчальны клавіÑтурны мадыфікатар %s" #: ../src/defaults.c:2477 #, c-format msgid "could not load image in option %s: %s" msgstr "немагчыма загрузіць выÑву Ð´Ð»Ñ %s: %s" #: ../src/defaults.c:2594 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "немагчыма адкрыць bitmap файл \"%s\"" #: ../src/defaults.c:2597 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" не з'ÑўлÑецца карÑктным файлам выÑвы" #: ../src/defaults.c:2600 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "не хапае памÑці Ð´Ð»Ñ Ñ‡Ñ‹Ñ‚Ð°Ð½Ð½Ñ bitmap файлу\"%s\"" #: ../src/defaults.c:2639 ../src/defaults.c:2672 msgid "bad number of arguments in cursor specification" msgstr "неадпаведны лік агрументаў у Ñпецыфікацыі курÑора" #: ../src/defaults.c:2655 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "невÑдомае Ñ–Ð¼Ñ Ñтандартнага курÑору \"%s\"" #: ../src/defaults.c:2682 ../src/defaults.c:2694 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "немагчыма знайÑці файл з выÑвай курÑора \"%s\"" #: ../src/defaults.c:2741 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Памылка Ñž Ñпецыфікацыі курÑору Ð´Ð·ÐµÐ»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\"" #: ../src/defaults.c:2826 msgid "could not render texture for icon background" msgstr "немагчыма згенераваць Ñ‚ÑкÑтуру Ð´Ð»Ñ Ñ„Ð¾Ð½Ñƒ іконкі" #: ../src/dialog.c:157 msgid "Save workspace state" msgstr "Захаваць Ñтан працамеÑца" #: ../src/dialog.c:201 ../src/dialog.c:758 ../src/dock.c:558 #: ../src/dockedapp.c:431 ../src/rootmenu.c:198 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 msgid "Cancel" msgstr "Ðдмена" #: ../src/dialog.c:299 msgid "Could not open directory " msgstr "Ðемагчыма адкрыць каталаг " #: ../src/dialog.c:354 msgid "Could not load image file " msgstr "Ðемагчыма загрузіць файл выÑвы " #: ../src/dialog.c:685 msgid "Directories" msgstr "Каталагі" #: ../src/dialog.c:694 msgid "Icons" msgstr "Іконкі" #: ../src/dialog.c:727 msgid "Preview" msgstr "ПраглÑд" #: ../src/dialog.c:740 msgid "File Name:" msgstr "Ð†Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°:" #: ../src/dialog.c:764 msgid "Choose File" msgstr "Выбар файла" #: ../src/dialog.c:783 ../src/dialog.c:785 msgid "Icon Chooser" msgstr "Выбар іконкі" #: ../src/dialog.c:1265 ../src/dialog.c:1375 #, c-format msgid "Version %s" msgstr "ВерÑÑ–Ñ %s" #: ../src/dialog.c:1372 msgid "Window Manager for X" msgstr "Ваконны менеджар Ð´Ð»Ñ X" #: ../src/dialog.c:1397 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "ВідÑарÑжым 0x%x: %s %i бітаў на пікÑел" #: ../src/dialog.c:1405 msgid "(32 thousand colors)\n" msgstr "(32 тыÑÑчы колераў)\n" #: ../src/dialog.c:1408 msgid "(64 thousand colors)\n" msgstr "(64 тыÑÑчы колераў)\n" #: ../src/dialog.c:1412 msgid "(16 million colors)\n" msgstr "(16 мільёнаў колераў)\n" #: ../src/dialog.c:1415 #, c-format msgid "(%d colors)\n" msgstr "(%d колераў)\n" #: ../src/dialog.c:1425 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "ЗарÑзервавана памÑці: %i кБ. ВыкарыÑтоўваецца: %i кБ.\n" #: ../src/dialog.c:1432 msgid "Supported image formats: " msgstr "ÐŸÐ°Ð´Ñ‚Ñ€Ñ‹Ð¼Ð»Ñ–Ð²Ð°ÐµÐ¼Ñ‹Ñ Ð³Ñ€Ð°Ñ„Ñ–Ñ‡Ð½Ñ‹Ñ Ñ„Ð°Ñ€Ð¼Ð°Ñ‚Ñ‹: " #: ../src/dialog.c:1439 msgid "" "\n" "Additional support for: " msgstr "" "\n" "Дадаткова падтрымліваецца: " #: ../src/dialog.c:1462 msgid " and " msgstr " Ñ– " #: ../src/dialog.c:1472 msgid "" "\n" "Sound disabled" msgstr "" "\n" "Звук забаронены" #: ../src/dialog.c:1474 msgid "" "\n" "Sound enabled" msgstr "" "\n" "Звук дазволены" #: ../src/dialog.c:1503 msgid "Info" msgstr "ІнфармацыÑ" #: ../src/dialog.c:1527 msgid "Merry Christmas!" msgstr "Ð’ÑÑелых КалÑд!" #: ../src/dialog.c:1597 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" " Window Maker з'ÑўлÑецца Ñвабодным праграмным\n" "забеÑпÑчÑннем Ñ– раÑпаўÑюджваецца на ўмовах ліцÑнзі\n" "GPL верÑÑ–Ñ– 2 ці вышÑй ад Free Software Foundation.\n" "\n" " Window Maker раÑпаўÑюджваецца з наздеÑй што можа быць\n" "карыÑны, але без уÑÑлÑкіх гарантый. ПадрабÑзную інфармацыю\n" "глÑдзіце Ñž GNU General Public License.\n" "\n" " ÐšÐ¾Ð¿Ñ–Ñ GNU GPL раÑпаўÑюджваецца разам з гÑтай\n" "праграмай. Калі вы атрымалі гÑтую праграму без копіі\n" "ліцÑнзіі, звÑрніціÑÑ Ñž Free Software Foundation, Inc.,\n" "51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA." #: ../src/dialog.c:1621 msgid "Legal" msgstr "ЛіцÑнзіÑ" #: ../src/dialog.c:1773 ../src/startup.c:394 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "немагчыма ÑžÑталÑваць злучÑнне Ñž вакне крытычнай памылкі. Выхад." #: ../src/dialog.c:1799 msgid "Fatal error" msgstr "ÐšÑ€Ñ‹Ñ‚Ñ‹Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°" #: ../src/dialog.c:1810 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker атрымаў Ñігнал %i\n" "(%s)." #: ../src/dialog.c:1813 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker атрымаў Ñігнал %i." #: ../src/dialog.c:1822 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " ГÑты крытычны збой магчыма вызваны памылкамі Ñž WindowMaker." "Дашліце запоўненае паведамленне аб памылке (BUGFORM) на bugs@windowmaker.info" #: ../src/dialog.c:1831 msgid "What do you want to do now?" msgstr "Што вы збіраецеÑÑŒ зараз рабіць?" #: ../src/dialog.c:1837 msgid "Select action" msgstr "Выберыце дзеÑнне" #: ../src/dialog.c:1838 msgid "Abort and leave a core file" msgstr "Завершыць працу пакінуўшы core-файл" #: ../src/dialog.c:1839 msgid "Restart Window Maker" msgstr "ПеразапуÑціць Window Maker" #: ../src/dialog.c:1840 msgid "Start alternate window manager" msgstr "ЗапуÑціць іншы ваконны менеджар" #: ../src/dialog.c:2018 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop environment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" "Window Maker з'ÑўлÑецца чаÑткай праекту GNUstep.\n" "МÑта GNUstep - ÑтварÑнне Ñвабоднай Ñ€Ñалізацыі\n" "Ñпецыфікацый OpenStep(tm) - аб'ектна-арыентаванага\n" "аÑÑÑ€Ð¾Ð´Ð´Ð·Ñ Ð´Ð»Ñ ÑтварÑÐ½Ð½Ñ Ð³Ñ€Ð°Ñ„Ñ–Ñ‡Ð½Ñ‹Ñ… шматплатформенных\n" "даÑтаÑаваннÑÑž. Ðа базе гÑтага аÑÑÑ€Ð¾Ð´Ð´Ð·Ñ Ñ‚Ð°ÐºÑама\n" "Ñтвараецца аÑÑроддзе карыÑтальніка. Большь інфармацыі\n" "можна знайÑці на Ñайце GNUstep: www.gnustep.org" #: ../src/dialog.c:2041 msgid "About GNUstep" msgstr "Ðб GNUstep" #: ../src/dock.c:213 #, c-format msgid "Type the name for workspace %i:" msgstr "Задайце Ñ–Ð¼Ñ Ð¿Ñ€Ð°Ñ†Ð°Ð¼ÐµÑца %i:" #: ../src/dock.c:214 ../src/dock.c:1142 ../src/dock.c:1145 ../src/dock.c:3410 msgid "Rename Workspace" msgstr "Перайменаваць працамеÑца" #: ../src/dock.c:520 ../src/dock.c:528 msgid "Warning" msgstr "Увага" #: ../src/dock.c:521 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "ÐÐµÐºÐ°Ñ‚Ð¾Ñ€Ñ‹Ñ Ñ–ÐºÐ¾Ð½ÐºÑ– Ð½Ñ Ð¼Ð¾Ð³ÑƒÑ†ÑŒ быць бачнымі на ÑžÑÑ–Ñ… працамеÑцах. ÐапÑўна " "Ð½ÐµÐ¹ÐºÐ°Ñ Ñ–ÐºÐ¾Ð½ÐºÐ° задакавана Ñž той жа пазіцыі на іншым працамеÑцы ці ÑкрÑпка " "аднаго працамеÑца перапоўнена." #: ../src/dock.c:529 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "ГÑту іконку нельга зрабіць прыÑутнічаючай на ÑžÑÑ–Ñ… працамеÑцах. ÐапÑўна " "Ð½ÐµÐ¹ÐºÐ°Ñ Ñ–ÐºÐ¾Ð½ÐºÐ° задакавана Ñž той жа пазіцыі на іншым працамеÑцы ці ÑкрÑпка " "аднаго працамеÑца перапоўнена." #: ../src/dock.c:556 msgid "Workspace Clip" msgstr "СкрÑпка працамеÑца" #: ../src/dock.c:557 msgid "All selected icons will be removed!" msgstr "УÑе Ð°Ð±Ñ€Ð°Ð½Ñ‹Ñ Ñ–ÐºÐ¾Ð½ÐºÑ– будуць выдалены!" #: ../src/dock.c:608 ../src/dock.c:1157 ../src/dock.c:1159 ../src/dock.c:3446 msgid "Keep Icon" msgstr "Трымаць іконку" #: ../src/dock.c:609 ../src/dock.c:2138 ../src/dock.c:2279 msgid "Type the command used to launch the application" msgstr "Каманда Ð´Ð·ÐµÐ»Ñ Ð·Ð°Ð¿ÑƒÑку праграмы" #: ../src/dock.c:965 #, c-format msgid "could not launch application %s\n" msgstr "немагчыма запуÑціць праграму %s\n" #: ../src/dock.c:1020 msgid "could not create workspace submenu for Clip menu" msgstr "немагчыма Ñтварыць падменю працамеÑца Ð´Ð»Ñ Ð¼ÐµÐ½ÑŽ ÑкрÑпкі" #: ../src/dock.c:1079 msgid "could not create options submenu for Clip menu" msgstr "немагчыма Ñтварыць падменю параметраў Ð´Ð»Ñ Ð¼ÐµÐ½ÑŽ ÑкрÑпкі" #: ../src/dock.c:1083 ../src/dock.c:1131 msgid "Keep on Top" msgstr "Трымаць зверху" #: ../src/dock.c:1089 msgid "Collapsed" msgstr "Звёрнуты" #: ../src/dock.c:1095 msgid "Autocollapse" msgstr "Зварачвацца аўтаматычна" #: ../src/dock.c:1101 msgid "Autoraise" msgstr "ÐўтаўÑплыцце" #: ../src/dock.c:1107 msgid "Autoattract Icons" msgstr "ПрыцÑгваць іконкі" #: ../src/dock.c:1137 msgid "Clip Options" msgstr "Параметры ÑкрÑпкі" #: ../src/dock.c:1147 msgid "Selected" msgstr "ÐбранаÑ" #: ../src/dock.c:1152 ../src/dock.c:1155 ../src/dock.c:3437 msgid "Select All Icons" msgstr "Ðбраць уÑе іконкі" #: ../src/dock.c:1161 ../src/dock.c:1163 ../src/dock.c:3454 msgid "Move Icon To" msgstr "ПеранеÑці іконку на" #: ../src/dock.c:1168 ../src/dock.c:1171 ../src/dock.c:3465 msgid "Remove Icon" msgstr "Выдаліць іконку" #: ../src/dock.c:1173 msgid "Attract Icons" msgstr "ПрыцÑгваць іконкі" #: ../src/dock.c:1176 msgid "Launch" msgstr "ЗапуÑціць" #: ../src/dock.c:1184 msgid "Settings..." msgstr "ÐаÑтройкі" #: ../src/dock.c:1549 ../src/dock.c:1656 #, c-format msgid "bad value in docked icon state info %s" msgstr "дрÑннае значÑнне інфармацыі аб Ñтане задакаванай іконкі %s" #: ../src/dock.c:1664 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "дрÑннае значÑнне пазіцыі задакаванай іконкі %i,%i" #: ../src/dock.c:1684 #, c-format msgid "bad value in dock state info:%s" msgstr "дрÑннае значÑнне інфармацыі аб Ñтане дока %s" #: ../src/dock.c:1920 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "зашмат іконак задакавана. Ð›Ñ–ÑˆÐ½Ñ–Ñ Ð±ÑƒÐ´ÑƒÑ†ÑŒ ігнараваны" #. icon->forced_dock = 1; #: ../src/dock.c:2137 ../src/dock.c:2278 msgid "Dock Icon" msgstr "Задакаваць іконку" #: ../src/dock.c:3324 #, c-format msgid "Could not execute command \"%s\"" msgstr "Ðемагчыма выканаць каманду \"%s\"" #: ../src/dock.c:3416 msgid "Toggle Omnipresent" msgstr "Інвертаваць прыÑутнаÑць" #: ../src/dock.c:3421 ../src/kwm.c:637 ../src/winmenu.c:418 #: ../src/winspector.c:1375 msgid "Omnipresent" msgstr "Ðа ÑžÑÑ–Ñ… працамеÑцах" #: ../src/dock.c:3435 msgid "Unselect All Icons" msgstr "ЗнÑць вылучÑнне з уÑÑ–Ñ… іконак" #: ../src/dock.c:3444 msgid "Keep Icons" msgstr "Трымаць іконкі" #: ../src/dock.c:3452 msgid "Move Icons To" msgstr "ПеранеÑці іконкі на" #: ../src/dock.c:3463 msgid "Remove Icons" msgstr "Выдаліць іконкі" #: ../src/dock.c:3494 ../src/kwm.c:643 msgid "Bring Here" msgstr "ПеранеÑці Ñюды" #: ../src/dockedapp.c:149 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "немагчыма знайÑці іконку %s Ð´Ð»Ñ Ð´Ð°ÐºÐ°Ð²Ð°Ð½Ð°Ð¹ праграмы" #: ../src/dockedapp.c:229 #, c-format msgid "Could not open specified icon file: %s" msgstr "Ðемагчыма адкрыць азначаны файл іконкі: %s" #: ../src/dockedapp.c:231 msgid "Ignore" msgstr "Ігнараваць" #: ../src/dockedapp.c:333 msgid "Start when Window Maker is started" msgstr "ЗапуÑкаць пры Ñтарце Window Maker" #: ../src/dockedapp.c:340 msgid "Lock (prevent accidental removal)" msgstr "Заблакаваць ад нежаданага выдаленнÑ" #: ../src/dockedapp.c:344 msgid "Application path and arguments" msgstr "Ð†Ð¼Ñ Ñ– аргументы праграмы" #: ../src/dockedapp.c:357 msgid "Command for middle-click launch" msgstr "Каманда Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку Ð¿Ñ ÑÑÑ€ÑднÑй кнопцы" #: ../src/dockedapp.c:371 #, c-format msgid "%s will be replaced with current selection" msgstr "%s заменіцца бÑгучым selection" #: ../src/dockedapp.c:376 msgid "Command for files dropped with DND" msgstr "Каманда Ð´Ð»Ñ Ð¿ÐµÑ€Ð°Ð½ÐµÑеных файлаў" #: ../src/dockedapp.c:390 #, c-format msgid "%d will be replaced with the file name" msgstr "%d аменiцца імём файла" #: ../src/dockedapp.c:394 msgid "DND support was not compiled in" msgstr "Падтрымка DND не была абрана Ð¿Ð°Ñ‡Ð´Ñ‡Ð°Ñ Ð·Ð±Ð¾Ñ€ÐºÑ–" #: ../src/dockedapp.c:399 msgid "Icon Image" msgstr "Ð’Ñ‹Ñва іконкі" #: ../src/dockedapp.c:413 ../src/winspector.c:1513 msgid "Browse..." msgstr "Выбар..." #: ../src/dockedapp.c:466 msgid "Docked Application Settings" msgstr "Параметры дакаванай праграмы" #: ../src/framewin.c:649 ../src/framewin.c:744 ../src/menu.c:456 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "немагчыма згенераваць Ñ‚ÑкÑтуру: %s" #: ../src/framewin.c:672 ../src/framewin.c:683 ../src/framewin.c:699 #: ../src/framewin.c:710 ../src/framewin.c:717 ../src/framewin.c:724 #: ../src/icon.c:350 ../src/menu.c:485 #, c-format msgid "error rendering image:%s" msgstr "памылка адлюÑÑ‚Ñ€Ð°Ð²Ð°Ð½Ð½Ñ Ð²Ñ‹Ñвы:%s" #: ../src/framewin.c:777 #, c-format msgid "error rendering image: %s" msgstr "памылка адлюÑÑ‚Ñ€Ð°Ð²Ð°Ð½Ð½Ñ Ð²Ñ‹Ñвы: %s" #: ../src/gnome.c:216 ../src/gnome.c:343 ../src/gnome.c:401 msgid "out of memory while updating GNOME hints" msgstr "не хапіла памÑці Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð°Ð±Ð½Ð¾ÑžÐ»ÐµÐ½Ð½Ñ Ð¿Ð°Ð´ÐºÐ°Ð·Ð°Ðº GNOME" #: ../src/icon.c:229 ../src/wdefaults.c:443 #, c-format msgid "error loading image file \"%s\": %s" msgstr "памылка загрузкі файла выÑвы \"%s\": %s" #: ../src/icon.c:493 ../src/icon.c:502 #, c-format msgid "could not create directory %s" msgstr "немагчыма Ñтварыць каталаг %s" #: ../src/icon.c:769 #, c-format msgid "could not find default icon \"%s\"" msgstr "немагчыма знайÑці Ñтандартную іконку \"%s\"" #: ../src/icon.c:775 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "немагчыма знайÑці Ñтандартную іконку \"%s\":%s" #. #. * 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/kwm.c:633 ../src/winmenu.c:441 ../src/winmenu.c:583 msgid "Maximize" msgstr "МакÑімізаваць" #: ../src/kwm.c:634 ../src/winmenu.c:578 msgid "Unmaximize" msgstr "ДÑмакÑімізаваць" #: ../src/kwm.c:635 ../src/winmenu.c:449 ../src/winmenu.c:569 msgid "Miniaturize" msgstr "Мінімізаваць" #: ../src/kwm.c:636 ../src/winmenu.c:564 msgid "Deminiaturize" msgstr "ДÑмінімізаваць" #: ../src/kwm.c:638 msgid "Not Omnipresent" msgstr "Толькі на гÑтым працамеÑцы" #: ../src/kwm.c:639 msgid "Move" msgstr "ПеранеÑці" #: ../src/kwm.c:640 msgid "Resize" msgstr "ЗмÑніць памер" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/kwm.c:641 ../src/rootmenu.c:248 ../src/winmenu.c:513 msgid "Close" msgstr "Закрыць" #: ../src/kwm.c:642 ../src/winmenu.c:497 msgid "Move To" msgstr "ПеранеÑці на" #: ../src/kwm.c:1096 msgid "%a(Run Command,Type the command to run:)" msgstr "%a(Выканаць каманду:)" #: ../src/main.c:222 msgid "failed to restart Window Maker." msgstr "немагчыма перазапуÑціць Window Maker." #: ../src/main.c:225 #, c-format msgid "could not exec %s" msgstr "немагчыма выканаць %s" #: ../src/main.c:271 msgid "Could not execute command: " msgstr "Ðемагчыма выканаць каманду: " #: ../src/main.c:428 #, c-format msgid "%s aborted.\n" msgstr "%s завершана з-за памылкі.\n" #: ../src/main.c:439 #, c-format msgid "Usage: %s [options]\n" msgstr "ВыкарыÑтанне: %s [параметры]\n" #: ../src/main.c:440 msgid "The Window Maker window manager for the X window system" msgstr "Window Maker - ваконны менеджар Ð´Ð»Ñ ÑÑ–ÑÑ‚Ñмы X window" #: ../src/main.c:442 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tвыкарыÑтоўваць дадзены дыÑплей" #: ../src/main.c:444 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tзабароніць прÑпрацÑÑÑінг канфігурацыйных фацлаў" #: ../src/main.c:446 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tзабароніць док" #: ../src/main.c:447 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tзабароніць ÑкрÑпку" #: ../src/main.c:448 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tзабароніць аўтазапуÑк праграм" #: ../src/main.c:449 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tне узнаўлÑць захаванцю ÑеÑÑ–ÑŽ" #: ../src/main.c:451 msgid " --locale locale\tlocale to use" msgstr " --locale locale\tвыкарыÑтоўваць дадзеную лакаль" #: ../src/main.c:453 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" " --create-stdcmap\tгенераваць Ñтандартную карту колераў Ð´Ð»Ñ PseudoColor" #: ../src/main.c:454 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tвыкарыÑтроўваць дадзены відÑарÑжым" #: ../src/main.c:455 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tне захоўваць Ñ– не абнаўлÑць канфігурацыю" #: ../src/main.c:456 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr " --no-polling\t\tзабароніць перыÑдычную праверку змен у канфігурацыі" #: ../src/main.c:458 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tÑінхронны Ñ€Ñжым Ð´Ð»Ñ Ð³Ñ€Ð°Ñ„Ñ–ÐºÑ–" #: ../src/main.c:460 msgid " --version\t\tprint version and exit" msgstr " --version\t\tпаказаць верÑÑ–ÑŽ ды выйÑці" #: ../src/main.c:461 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tпаказаць гÑты Ñ‚ÑкÑÑ‚" #: ../src/main.c:474 #, 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:479 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "немагчыма знайÑці карыÑтальніцкі каталаг GNUstep (%s)." #: ../src/main.c:482 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "Памылка Ð¿Ð°Ð´Ñ‡Ð°Ñ ÑтварÑÐ½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð°Ð³Ð° GNUstep. Праверце, што Window Maker" "уÑталÑваны карÑктна Ñ– запуÑціце wmaker.inst" #: ../src/main.c:485 #, c-format msgid "%s directory created with default configuration." msgstr "Ñтвораны каталаг %s Ñа Ñтандартнай канфігурацыÑй." #: ../src/main.c:505 ../src/main.c:510 #, c-format msgid "%s:could not execute initialization script" msgstr "%s: немагчыма выканаць ініцыÑлізацыйны Ñкрыпт" #: ../src/main.c:530 ../src/main.c:535 #, c-format msgid "%s:could not execute exit script" msgstr "%s:немагчыма выканаць Ñкрыпт па выхадзе" #: ../src/main.c:663 ../src/main.c:671 ../src/main.c:679 ../src/main.c:699 #, c-format msgid "too few arguments for %s" msgstr "замала аргументаў Ð´Ð»Ñ %s" #: ../src/main.c:683 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "дрÑннае значÑнне ідÑнтыфікатара відÑарÑжыму: \"%s\"" #: ../src/main.c:707 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: дрÑнны аргумент '%s'\n" #: ../src/main.c:708 #, c-format msgid "Try '%s --help' for more information\n" msgstr "%s --help можа даць больш інфармацыі\n" #: ../src/main.c:739 msgid "X server does not support locale" msgstr "X-Ñервер не падтрымлівае лакалі" #: ../src/main.c:743 msgid "cannot set locale modifiers" msgstr "немагчыма задаць мадыфікатары лакалі" #: ../src/main.c:759 #, c-format msgid "could not open display \"%s\"" msgstr "немагчыма адкрыць дыÑплей \"%s\"" #: ../src/menu.c:1264 msgid "could not grab keyboard" msgstr "немагчыма захапіць клавіÑтуру" #: ../src/menu.c:2578 #, c-format msgid "bad value in menus state info:%s" msgstr "дрÑннае значÑнне інфармацыі аб Ñтане меню:%s" #: ../src/menureader.c:264 ../src/rootmenu.c:733 #, c-format msgid "%s:could not stat menu" msgstr "%s: немагчыма атрымаць інфармацыю аб меню" #: ../src/menureader.c:341 ../src/menureader.c:380 #, c-format msgid "could not stat() menu file '%s'" msgstr "немагчыма выканаць stat() на файл меню '%s'" #: ../src/menureader.c:416 #, c-format msgid "could not find menu file '%s' referenced in WMRootMenu" msgstr "немагчыма знайÑці файл меню '%s' на Ñкі Ñ‘Ñць ÑпаÑылка Ñž WMRootMenu" #: ../src/menureader.c:423 #, c-format msgid "could not find any usable menu files. Please check '%s'" msgstr "немагчыма знайÑці ніÑкіх файлаў меню. Калі лаÑка, праверце '%s'" #: ../src/menureader.c:438 ../src/rootmenu.c:1668 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "будзе ўжыты Ñтандартны файл меню \"%s\" бо меню на Ñкое ÑпаÑылаецца " "WMRootMenu Ð½Ñ Ð·Ð½Ð¾Ð¹Ð´Ð·ÐµÐ½Ð°" #: ../src/menureader.c:457 #, c-format msgid "" "invalid content in menu file '%s'.\n" "It should either be a property list menu or the path to the file, enclosed " "in \"." msgstr "" "ДрÑнны Ñклад файла менб '%s'.\n" "Павінны быць або меню Ñа ÑпіÑу ўлаÑціваÑцÑÑž, або шлÑÑ… да файла, заключаны " "Ñž двукоÑÑÑ– \"" #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "немагчыма задаць значÑнне %s Ð´Ð»Ñ cpp" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "немагчыма атрымаць пароль Ð´Ð»Ñ UID %i" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "ваша машына дрÑнна Ñканфігуравана. HOSTNAME уÑтаноўлена Ñž %s" #: ../src/misc.c:132 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "ваша машына дрÑнна Ñканфігуравана. HOST уÑтаноўлена Ñž %s" #: ../src/misc.c:630 msgid "Program Arguments" msgstr "Ðргументы праграмы" #: ../src/misc.c:631 msgid "Enter command arguments:" msgstr "Задайце агрументы праграмы:" #: ../src/misc.c:724 msgid "unable to get dropped data from DND drop" msgstr "немагчыма атрымаць Ð´Ð°Ð·Ð´ÐµÐ½Ñ‹Ñ Ð¿ÐµÑ€Ð°Ð½ÐµÑÐµÐ½Ñ‹Ñ Ð· DND" #: ../src/misc.c:732 msgid "error getting dropped data from DND drop" msgstr "памылка Ð°Ñ‚Ñ€Ñ‹Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð·Ð´ÐµÐ½Ñ‹Ñ… перанеÑеных з DND" #: ../src/misc.c:738 msgid "out of memory while getting data from DND drop" msgstr "не хапае памÑці Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð°Ñ‚Ñ€Ñ‹Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð·Ð´ÐµÐ½Ñ‹Ñ… перанеÑеных з DND" #: ../src/misc.c:783 ../src/misc.c:923 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "не хапае памÑці каб выканаць \"%s\"" #: ../src/misc.c:837 msgid "out of memory during expansion of \"%w\"" msgstr "не хапіла памÑці Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð¿Ð°Ð´Ñтаноўкі \"%w\"" #: ../src/misc.c:855 msgid "out of memory during expansion of \"%W\"" msgstr "не хапіла памÑці Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð¿Ð°Ð´Ñтаноўкі \"%W\"" #: ../src/misc.c:871 msgid "out of memory during expansion of \"%a\"" msgstr "не хапіла памÑці Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð¿Ð°Ð´Ñтаноўкі \"%a\"" #: ../src/misc.c:902 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "не хапіла памÑці Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð¿Ð°Ð´Ñтаноўкі \"%d\"" #: ../src/misc.c:916 msgid "selection not available" msgstr "вылучÑнне недаÑтупна" #: ../src/misc.c:972 ../src/misc.c:978 #, c-format msgid "bad window name value in %s state info" msgstr "дрÑннае Ñ–Ð¼Ñ Ð²Ð°ÐºÐ½Ð° Ñž інфармацыі аб Ñтане %s" #: ../src/misc.c:1235 msgid "could not send message to background image helper" msgstr "немагчыма даÑлаць паведамленне да фонавага апрацоўшчыка выÑÑž" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "немагчыма загрузіць файл бітавай маÑкі \"%s\". МаÑка Ð½Ñ Ð±ÑƒÐ´Ð·Ðµ ужывацца" #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "немагчыма апрацаваць колер \"%s\"" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "немагчыма вылучыць меÑца Ð´Ð»Ñ ÐºÐ¾Ð»ÐµÑ€Ð° \"%s\"" #: ../src/rootmenu.c:196 ../src/rootmenu.c:198 msgid "Exit" msgstr "Выхад" #: ../src/rootmenu.c:197 msgid "Exit window manager?" msgstr "Выйці з ваконнага менеджара?" #: ../src/rootmenu.c:245 msgid "Close X session" msgstr "Закрыць X-ÑеÑÑ–ÑŽ" #: ../src/rootmenu.c:246 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "Закрыць ÑеÑÑ–ÑŽ Ñž Window System?\n" "Пры гÑтым будуць закрыты праграмы з незахаванымі зменамі." #: ../src/rootmenu.c:261 msgid "Kill X session" msgstr "ПрымуÑова закрыць X-ÑеÑÑ–ÑŽ" #: ../src/rootmenu.c:262 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Завершыць прымуÑова ÑеÑÑ–ÑŽ Window System?\n" "(уÑе праграмы будуць завершаны)" #: ../src/rootmenu.c:539 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s: дрÑÐ½Ð½Ð°Ñ ÐºÐ°Ð¼Ð±Ñ–Ð½Ð°Ñ†Ñ‹Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ \"%s\" Ð´Ð»Ñ Ñлемента %s" #: ../src/rootmenu.c:547 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s: дрÑÐ½Ð½Ð°Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ° Ñž камбінацыі \"%s\" Ð´Ð»Ñ Ñлемента %s" #: ../src/rootmenu.c:600 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: двукоÑÑе \" Ð½Ñ Ð¼Ð°Ðµ пары Ñž файле меню" #: ../src/rootmenu.c:650 #, c-format msgid "%s: missing command" msgstr "%s: адÑутнічае каманда" #: ../src/rootmenu.c:682 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "дрÑÐ½Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ñ‹Ñ„Ñ–ÐºÐ°Ñ†Ñ‹Ñ OPEN_MENU: %s" #: ../src/rootmenu.c:741 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s: немагчыма атрымаць інфармацыю аб меню:%s" #: ../src/rootmenu.c:759 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "зашмат параметраў у OPEN_MENU: %s" #: ../src/rootmenu.c:803 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Меню праграм мае некалькі каманд WORKSPACE_MENU. ДазвалÑецца толькі адна." #: ../src/rootmenu.c:837 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "Меню праграм мае некалькі каманд WINDOWS_MENU. ДазвалÑецца толькі адна." #: ../src/rootmenu.c:842 msgid "Window List" msgstr "CÐ¿Ñ–Ñ Ð²Ð°ÐºÐ¾Ð½" #: ../src/rootmenu.c:871 ../src/rootmenu.c:889 ../src/rootmenu.c:899 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:адÑутнічае параметр Ð´Ð»Ñ ÐºÐ°Ð¼Ð°Ð½Ð´Ñ‹ меню \"%s\"" #: ../src/rootmenu.c:967 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:невÑÐ´Ð¾Ð¼Ð°Ñ ÐºÐ°Ð¼Ð°Ð½Ð´Ð° \"%s\" у канфігурацыі меню." #: ../src/rootmenu.c:975 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:немагчыма задаць камбінацыю клавіш Ð´Ð»Ñ \"%s\"" #: ../src/rootmenu.c:1112 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:перавышана макÑÑ–Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°ÑžÐ¶Ñ‹Ð½Ñ Ñтракі Ñž канфігурацыі меню: %s" #: ../src/rootmenu.c:1134 ../src/rootmenu.c:1227 ../src/rootmenu.c:1330 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:адÑутнічае каманда Ñž канфігурацыі меню :%s" #: ../src/rootmenu.c:1164 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s: ÑінтакÑÑ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° Ñž файле меню: адÑутнічае END" #: ../src/rootmenu.c:1193 ../src/rootmenu.c:1294 msgid "could not make arguments for menu file preprocessor" msgstr "немагчыма Ñтварыць агрументы Ð´Ð»Ñ Ð¿Ñ€ÑпрацÑÑара меню" #: ../src/rootmenu.c:1200 ../src/rootmenu.c:1302 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s: немагчыма адкрыць ці апрацаваць файл меню" #: ../src/rootmenu.c:1212 ../src/rootmenu.c:1315 #, c-format msgid "%s:could not open menu file" msgstr "%s: немагчыма адкрыць файл меню" #: ../src/rootmenu.c:1239 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s: дрÑнны файл меню. ÐдÑутнічае каманда MENU" #: ../src/rootmenu.c:1248 msgid "error reading preprocessed menu data" msgstr "памылка Ñ‡Ñ‹Ñ‚Ð°Ð½Ð½Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð°Ð²Ð°Ð½Ñ‹Ñ… дадзеных меню" #: ../src/rootmenu.c:1342 #, c-format msgid "%s:no title given for the root menu" msgstr "%s: у галоўнага меню нÑма загалоўка" #: ../src/rootmenu.c:1433 ../src/rootmenu.c:1506 ../src/rootmenu.c:1547 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "не хапіла памÑці каб пабудаваць меню каталагаў %s" #: ../src/rootmenu.c:1443 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:немагчыма атрымаць інфармацыю аб файле \"%s\" у каталаге меню" #: ../src/rootmenu.c:1601 msgid "Commands" msgstr "Каманды" #: ../src/rootmenu.c:1604 msgid "Restart" msgstr "ПеразапуÑк" #: ../src/rootmenu.c:1605 msgid "Exit..." msgstr "Выхад..." #: ../src/rootmenu.c:1650 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "немагчыма знайÑці файл меню \"%s\" на Ñкі ÑпаÑылаецца WMRootMenu" #: ../src/rootmenu.c:1657 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "нÑма доÑтупу да файла меню \"%s\" на Ñкі ÑпаÑылаецца WMRootMenu" #: ../src/rootmenu.c:1691 ../src/rootmenu.c:1767 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s: памылковы фармат канфігурацыі галоўнага меню \"%s\"" #: ../src/rootmenu.c:1855 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Ðемагчыма загрузіць меню праграм. ГлÑдзіце падрабÑзнаÑці Ñž вывадзе на канÑоль." #: ../src/screen.c:747 #, c-format msgid "could not initialize graphics library context: %s" msgstr "немагчыма ініцыÑлізаваць кантÑкÑÑ‚ графічнай бібліÑÑ‚Ñкі: %s" #: ../src/screen.c:778 msgid "could not do initialization of WINGs widget set" msgstr "немагчыма ініцыÑлізаваць бібліÑÑ‚Ñку віджÑтаў WINGs" #: ../src/screen.c:1144 #, c-format msgid "could not save session state in %s" msgstr "немагчыма захаваць Ñтан ÑеÑÑ–Ñ– Ñž %s" #: ../src/session.c:183 ../src/wdefaults.c:589 ../src/winspector.c:454 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "немагчыма Ñканвертаваць \"%s\" да boolean" #: ../src/session.c:1023 msgid "out of memory while saving session state" msgstr "не хапіла памÑці каб захаваць Ñтан ÑеÑÑ–Ñ–" #: ../src/session.c:1106 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:1244 msgid "connection to the session manager was lost" msgstr "згублена злучÑнне з менеджарам ÑеÑій" #: ../src/stacking.c:79 msgid "could not get window list!!" msgstr "немагчыма атрымаць ÑÐ¿Ñ–Ñ Ð²Ð°ÐºÐ¾Ð½!!" #: ../src/startup.c:202 #, c-format msgid "internal X error: %s\n" msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° X:%s\n" #: ../src/startup.c:260 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "атрыманы Ñігнал %i (%s) - перазапуÑк\n" #: ../src/startup.c:262 #, c-format msgid "got signal %i - restarting\n" msgstr "атрыманы Ñігнал %i - перазапуÑк\n" #: ../src/startup.c:272 #, c-format msgid "got signal %i (%s) - rereading defaults\n" msgstr "атрыманы Ñігнал %i(%s) - перачытваю Ñтандартную канфігурацыю\n" #: ../src/startup.c:274 #, c-format msgid "got signal %i - rereading defaults\n" msgstr "атрыманы Ñігнал %i - перачытваю Ñтандартную канфігурацыю\n" #: ../src/startup.c:284 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "атрыманы Ñігнал %i (%s) - выхад...\n" #: ../src/startup.c:286 #, c-format msgid "got signal %i - exiting...\n" msgstr "атрыманы Ñігнал %i - выхад...\n" #: ../src/startup.c:329 #, c-format msgid "got signal %i (%s)\n" msgstr "атрыманы Ñігнал %i (%s)\n" #: ../src/startup.c:331 #, c-format msgid "got signal %i\n" msgstr "атрыманы Ñігнал %i\n" #: ../src/startup.c:342 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "" "ÐºÑ€Ñ‹Ñ‚Ñ‹Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– крытычнай памылкі. ТÑрміновы выхад." #. we try to restart Window Maker #: ../src/startup.c:406 msgid "trying to restart Window Maker..." msgstr "Ñпроба перазапуÑціць Window Maker..." #: ../src/startup.c:411 msgid "trying to start alternate window manager..." msgstr "Ñпроба запуÑціць іншы ваконны менеджар..." #: ../src/startup.c:417 msgid "failed to start alternate window manager. Aborting." msgstr "не магчыма запуÑціць іншы ваконны менеджар. Выхад." #: ../src/startup.c:419 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" " ГÑты крытычны збой магчыма вызваны памылкамі Ñž WindowMaker." "Дашліце нам запоўненае паведамленне аб памылке (BUGFORM)" #: ../src/startup.c:894 #, 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:922 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "XKB не падтрымліваецца. KbdModeLock аўтаматычна забаронены." #: ../src/startup.c:941 msgid "it seems that there is already a window manager running" msgstr "здаецца нейкі іншы ваконны менеджар ужо працуе" #: ../src/startup.c:947 #, c-format msgid "could not manage screen %i" msgstr "немагчыма кіраваць Ñкранам %i" #: ../src/startup.c:1015 msgid "could not manage any screen" msgstr "немагчыма кіраваць ніводным Ñкранам" #: ../src/switchmenu.c:137 msgid "Windows" msgstr "Вокны" #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "немагчыма знайÑці файл выÑвы Ð´Ð»Ñ Ñ‚ÑкÑтуры \"%s\"" #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "немагчыма загрузіць выÑву Ñ‚ÑкÑтуры \"%s:%s\"" #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "немагчыма адкрыць бібліÑÑ‚Ñку \"%s\"" #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "немагчыма знайÑці функцыю \"%s\" y бібліÑÑ‚Ñцы \"%s\"" #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "гÑта ÑÑ–ÑÑ‚Ñма не падтрымлівае працÑÐ´ÑƒÑ€Ð½Ñ‹Ñ Ñ‚ÑкÑтуры." #: ../src/texture.c:598 msgid "could not allocatÑŒ image buffer" msgstr "немагчыма вылучыць памÑць пад буфер выÑвы" #: ../src/wdefaults.c:437 #, c-format msgid "could not find icon file \"%s\"" msgstr "немагчыма адкрыць файл іконкі \"%s\"" #: ../src/window.c:2942 ../src/window.c:3081 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:126 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "УÑе праграмы будуць прымуÑова завершаны.\n" "ÐÐµÐ·Ð°Ñ…Ð°Ð²Ð°Ð½Ñ‹Ñ Ð·Ð¼Ñненні будуць Ñтрачаны.\n" "Пацвердзце калі лаÑка." #: ../src/winmenu.c:272 ../src/winmenu.c:281 msgid "Set Shortcut" msgstr "Задаць камбінацыю клавіш" #: ../src/winmenu.c:359 ../src/winmenu.c:404 msgid "could not create submenu for window menu" msgstr "немагчыма Ñтварыць падменю Ð´Ð»Ñ Ð²Ð°ÐºÐ¾Ð½Ð½Ð°Ð³Ð° меню" #: ../src/winmenu.c:408 msgid "Keep on top" msgstr "Трымаць над уÑімі" #: ../src/winmenu.c:413 msgid "Keep at bottom" msgstr "Трымаць пад уÑімі" #: ../src/winmenu.c:457 ../src/winmenu.c:600 msgid "Shade" msgstr "Зкруціць" #: ../src/winmenu.c:473 msgid "Hide Others" msgstr "Схаваць іншыÑ" #: ../src/winmenu.c:481 msgid "Resize/Move" msgstr "ЗмÑніць памер/перанеÑці" #: ../src/winmenu.c:489 msgid "Select" msgstr "Ðбраць" #: ../src/winmenu.c:502 msgid "Attributes..." msgstr "Ðтрыбуты..." #: ../src/winmenu.c:504 msgid "Options" msgstr "Параметры" #: ../src/winmenu.c:595 msgid "Unshade" msgstr "Разкруціць" #: ../src/winspector.c:387 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Ðемагчыма знайÑці азначаную Ð´Ð»Ñ Ð³Ñтага вакна іконку \"%s\"" #: ../src/winspector.c:404 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Ðемагчыма адкрыць азначаную іконку \"%s\":%s" #: ../src/winspector.c:1121 #, c-format msgid "Inspecting %s.%s" msgstr "ÐглÑд %s.%s" #: ../src/winspector.c:1147 msgid "Click in the window you wish to inspect." msgstr "З дапамогай мышкі абÑрыце вакно Ð´Ð»Ñ Ð°Ð³Ð»Ñду." #: ../src/winspector.c:1186 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "ПаÑÐ»Ñ Ð·Ð°Ñ…Ð°Ð²Ð°Ð½Ð½Ñ Ð³ÑÑ‚Ð°Ñ ÐºÐ°Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ‹Ñ\n" "будзе ўжывацца Ð´Ð»Ñ ÑžÑÑ–Ñ… вакон,\n" "ÑÐºÑ–Ñ Ð¼Ð°ÑŽÑ†ÑŒ вышÑй азначаную\n" "ўлаÑціваÑць WM_CLASS." #: ../src/winspector.c:1215 msgid "Save" msgstr "Захаваць" #: ../src/winspector.c:1223 msgid "Apply" msgstr "Ужыць" #: ../src/winspector.c:1229 msgid "Reload" msgstr "Ðдкаціць" #: ../src/winspector.c:1238 ../src/winspector.c:1248 msgid "Window Specification" msgstr "Ð¡Ð¿ÐµÑ†Ñ‹Ñ„Ñ–ÐºÐ°Ñ†Ñ‹Ñ Ð²Ð°ÐºÐ½Ð°" #: ../src/winspector.c:1239 msgid "Window Attributes" msgstr "Ðтрыбуты вакна" #: ../src/winspector.c:1240 msgid "Advanced Options" msgstr "ПраÑÑƒÐ½ÑƒÑ‚Ñ‹Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹" #: ../src/winspector.c:1241 msgid "Icon and Initial Workspace" msgstr "Іконка Ñ– пачатковае працамеÑца" #: ../src/winspector.c:1242 msgid "Application Specific" msgstr "Ð¡Ð¿ÐµÑ†Ñ‹Ñ„Ñ–Ñ‡Ð½Ñ‹Ñ Ð½Ð°Ñтройкі" #: ../src/winspector.c:1256 msgid "Defaults for all windows" msgstr "Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ñ‹Ñ Ð½Ð°Ñтройкі Ð´Ð»Ñ ÑžÑÑ–Ñ… вакон" #: ../src/winspector.c:1310 msgid "Select window" msgstr "Ðбраць вакно" #: ../src/winspector.c:1324 msgid "Attributes" msgstr "Ðтрыбуты" #: ../src/winspector.c:1335 msgid "Disable titlebar" msgstr "Забароніць загаловак" #: ../src/winspector.c:1337 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Ðе паказваць загаловак Ð´Ð»Ñ Ð³Ñтага вакна.\n" "Меню вакна без загалоўка можа быць вызвана\n" "па Control-Esc ці Ñквівалентнай камбінацыÑй,\n" "калі ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ñ‹Ñ Ð½Ð°Ñтройкі былі зменены." #: ../src/winspector.c:1344 msgid "Disable resizebar" msgstr "Забароніць рамку памеру" #: ../src/winspector.c:1346 msgid "Remove the resizebar of this window." msgstr "Ðе паказваць рамку змены памеру Ð´Ð»Ñ Ð²Ð°ÐºÐ½Ð°" #: ../src/winspector.c:1349 msgid "Disable close button" msgstr "Забароніць кнопку закрыццÑ" #: ../src/winspector.c:1351 msgid "Remove the `close window' button of this window." msgstr "Ðе паказваць кнопку Ð·Ð°ÐºÑ€Ñ‹Ñ†Ñ†Ñ Ð²Ð°ÐºÐ½Ð°" #: ../src/winspector.c:1354 msgid "Disable miniaturize button" msgstr "Забароніць кнопку мінімізацыі" #: ../src/winspector.c:1356 msgid "Remove the `miniaturize window' button of the window." msgstr "Ðе паказваць кнопку мінімізацыі Ð´Ð»Ñ Ð²Ð°ÐºÐ½Ð°" #: ../src/winspector.c:1359 msgid "Disable border" msgstr "Забароніць рамку" #: ../src/winspector.c:1361 msgid "Remove the 1 pixel black border around the window." msgstr "Ðе паказваць вузкую чорную рамку Ð´Ð»Ñ Ð²Ð°ÐºÐ½Ð°." #: ../src/winspector.c:1364 msgid "Keep on top (floating)" msgstr "Трымаць над уÑімі" #: ../src/winspector.c:1366 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "Трымаць вакно над уÑімі вокнамі, не дазвалÑючы\n" "ім Ñго перакрываць." #: ../src/winspector.c:1370 msgid "Keep at bottom (sunken)" msgstr "Трымаць пад уÑімі" #: ../src/winspector.c:1372 msgid "Keep the window under all other windows." msgstr "Трымаць вакно пад уÑімі іншымі вокнамі." #: ../src/winspector.c:1377 msgid "Make window present in all workspaces." msgstr "Вакно прыÑутнічае ва ÑžÑÑ–Ñ… працамеÑцах." #: ../src/winspector.c:1380 msgid "Start miniaturized" msgstr "ЗапуÑкаць мінімізаваным" #: ../src/winspector.c:1382 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "Мінімізаваць вакно пры першым з'Ñўленні на Ñкране." #: ../src/winspector.c:1386 msgid "Start maximized" msgstr "ЗапуÑкаць макÑімізаваным" #: ../src/winspector.c:1388 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "МакÑімізаваць вакно пры першым з'Ñўленні на Ñкране." #: ../src/winspector.c:1392 msgid "Full screen maximization" msgstr "МакÑімізаваць на ўвеÑÑŒ Ñкран" #: ../src/winspector.c:1394 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "МакÑімізаванае вакно будзе займаць увеÑÑŒ Ñкран.\n" "Загаловак Ñ– рамка змÑÐ½ÐµÐ½Ð½Ñ Ð¿Ð°Ð¼ÐµÑ€Ñƒ будуць за межамі Ñкрану." #: ../src/winspector.c:1411 msgid "Advanced" msgstr "ПраÑÑƒÐ½ÑƒÑ‚Ñ‹Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹" #: ../src/winspector.c:1428 msgid "Do not bind keyboard shortcuts" msgstr "Ðе перахопліваць Ñвае клавішы" #: ../src/winspector.c:1430 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Ðе перахопліваць клавіÑÑ‚ÑƒÑ€Ð½Ñ‹Ñ ÐºÐ°Ð¼Ð±Ñ–Ð½Ð°Ñ†Ñ‹Ñ– Window Maker\n" "калі гÑтае вакно валодае фокуÑам. ДазвалÑе вакну атрымліваць\n" "уÑе клавіÑÑ‚ÑƒÑ€Ð½Ñ‹Ñ ÐºÐ°Ð¼Ð±Ñ–Ð½Ð°Ñ†Ñ‹Ñ–, нават тыÑ, што выкарыÑтоўваюцца\n" "Ñž Window Maker" #: ../src/winspector.c:1436 msgid "Do not bind mouse clicks" msgstr "Ðе перахопліваць падзеі мышы" #: ../src/winspector.c:1438 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Ðе перахопліваць паздеі ад мышы, Ñ‚Ð°ÐºÑ–Ñ Ñк\n" "перацÑгванне вакна з дапамогай Alt, у гÑтым вакне." #: ../src/winspector.c:1443 msgid "Do not show in the window list" msgstr "Ðе паказваць у ÑпіÑе вакон" #: ../src/winspector.c:1445 msgid "Do not list the window in the window list menu." msgstr "Ðе паказваць вакно Ñž меню ÑпіÑа вакон." #: ../src/winspector.c:1448 msgid "Do not let it take focus" msgstr "Ðе атрымліваць фокуÑ" #: ../src/winspector.c:1450 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "Ðе дазвалÑць вакну атрымліваць фокуÑ." #: ../src/winspector.c:1454 msgid "Keep inside screen" msgstr "Трымаць у межах Ñкрану" #: ../src/winspector.c:1456 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Ðе дазвалÑць пераноÑіць вакно за межы Ñкрану.\n" "Толькі Ð´Ð·ÐµÐ»Ñ ÑумÑÑцімаÑці.\n" #: ../src/winspector.c:1460 msgid "Ignore 'Hide Others'" msgstr "Ігнараваць 'Схаваць іншыÑ'" #: ../src/winspector.c:1462 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "Ðе хаваць вакно калі вызвана\n" "каманда 'Схаваць іншыÑ'" #: ../src/winspector.c:1466 msgid "Ignore 'Save Session'" msgstr "Ігнараваць 'Захаваць ÑеÑÑ–ÑŽ'" #: ../src/winspector.c:1468 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Ðе захоўваць інфармацыю аб праграме Ñž Ñтане\n" "ÑеÑÑ–Ñ–, так што Ñна не будзе запуÑкацца разам\n" "з іншымі праграмамі пры запуÑке Window Maker" #: ../src/winspector.c:1474 msgid "Emulate application icon" msgstr "ЭмулÑваць іконку праграмы" #: ../src/winspector.c:1476 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "ПрымуÑіць вакно дзейнічаць Ñк праграму, ÑкаÑ\n" "забÑÑпечвае Window Maker неабходнай інфармацыÑй\n" "Ð´Ð»Ñ ÑтварÑÐ½Ð½Ñ Ñ–ÐºÐ¾Ð½ÐºÑ– праграмы." #: ../src/winspector.c:1482 msgid "Disable language button" msgstr "Забароніць кнопук мовы" #: ../src/winspector.c:1484 msgid "Remove the `toggle language' button of the window." msgstr "Ðе паказваць кнопку выбара мовы Ð´Ð»Ñ Ð²Ð°ÐºÐ½Ð°" #: ../src/winspector.c:1501 msgid "Miniwindow Image" msgstr "Ð’Ñ‹Ñва мінівакна" #: ../src/winspector.c:1528 msgid "Icon filename:" msgstr "Ð†Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° іконкі:" #: ../src/winspector.c:1541 msgid "Ignore client supplied icon" msgstr "Ігнараваць кліентÑкую іконку" #: ../src/winspector.c:1548 msgid "Initial Workspace" msgstr "Пачатковае працамеÑца" #: ../src/winspector.c:1550 msgid "The workspace to place the window when it'sfirst shown." msgstr "ПрацамеÑца Ñž Ñкім будзе адкрывацца вакно па запуÑку" #: ../src/winspector.c:1556 msgid "Nowhere in particular" msgstr "Дзе заўгодна" #: ../src/winspector.c:1574 msgid "Application Attributes" msgstr "Ðтрыбуты праграмы" #: ../src/winspector.c:1585 msgid "Start hidden" msgstr "ЗапуÑкаць Ñхаваным" #: ../src/winspector.c:1587 msgid "Automatically hide application when it's started." msgstr "Ðўтаматычна хаваць праграму пры запуÑку" #: ../src/winspector.c:1590 msgid "No application icon" msgstr "Забароніць іконку праграмы" #: ../src/winspector.c:1592 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Забароніць іконку праграмы. Пры гÑтым Ñго\n" "нельга будзе задакаваць, а ўжо Ð·Ð°Ð´Ð°ÐºÐ°Ð²Ð°Ð½Ñ‹Ñ Ñ–ÐºÐ¾Ð½ÐºÑ–\n" "гÑтай праграмы будуць працаваць некарÑктна." #: ../src/winspector.c:1598 msgid "Shared application icon" msgstr "ПадзÑлÑÐµÐ¼Ð°Ñ Ñ–ÐºÐ¾Ð½ÐºÐ° праграмы" #: ../src/winspector.c:1600 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "ВыкарыÑтоўваць адзіную іконку праграмы длÑ\n" "ÑžÑÑ–Ñ… ÑкзÑмплÑраў гÑтай праграмы.\n" #: ../src/wmspec.c:277 msgid "out of memory while updating wm hints" msgstr "не хапіла памÑці Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð°Ð±Ð½Ð¾ÑžÐ»ÐµÐ½Ð½Ñ Ð¿Ð°Ð´ÐºÐ°Ð·Ð°Ðº" #: ../src/workspace.c:107 ../src/workspace.c:108 ../src/workspace.c:893 #, c-format msgid "Workspace %i" msgstr "ПрацамеÑца %i" #: ../src/workspace.c:943 msgid "Workspaces" msgstr "ПрацамеÑцы" #: ../src/workspace.c:945 msgid "could not create Workspace menu" msgstr "немагчыма Ñтварыць меню працамеÑца" #: ../src/workspace.c:952 msgid "New" msgstr "Стварыць" #: ../src/workspace.c:953 msgid "Destroy Last" msgstr "Знішчыць апоешнÑе" WindowMaker-0.95.5/po/tr.po0000644000175000017500000006677212214432632012406 00000000000000msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.65.1\n" "PO-Revision-Date: 1998-03-12 18:29:09+EET\n" "Last-Translator: KGF \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../src/appicon.c:542 ../src/dialog.c:273 ../src/dialog.c:329 ../src/dock.c:262 ../src/dock.c:3106 ../src/rootmenu.c:162 ../src/winspector.c:269 ../src/winspector.c:277 msgid "Error" msgstr "Hata" #: ../src/appicon.c:543 ../src/dock.c:263 ../src/winspector.c:278 msgid "Could not open specified icon file" msgstr "Beliritilen simge dosyası açılamadı" #: ../src/appicon.c:563 ../src/dock.c:508 ../src/winmenu.c:83 msgid "Kill Application" msgstr "Uygulamayı sonlandır" #: ../src/appicon.c:564 ../src/dock.c:509 ../src/winmenu.c:84 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Bu iÅŸlem uygulamayı sonlandıracaktır.\n" "Yaptığınız deÄŸiÅŸiklikleri kaybedebilirsiniz.\n" "Lütfen onaylayın." #: ../src/appicon.c:580 ../src/dock.c:1140 msgid "Unhide Here" msgstr "Burada göster" #: ../src/appicon.c:581 ../src/dock.c:1138 msgid "(Un)Hide" msgstr "Sakla/Göster" #: ../src/appicon.c:582 msgid "Set Icon..." msgstr "Simge belirle" #: ../src/appicon.c:583 ../src/dock.c:1142 ../src/winmenu.c:245 msgid "Kill" msgstr "Yok et" #: ../src/defaults.c:552 ../src/screen.c:465 ../src/screen.c:544 ../src/screen.c:550 msgid "could not read domain \"%s\" from defaults database" msgstr "Öntanımlar veritabınından domain \"%s\" okunamadı" #: ../src/defaults.c:1027 msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "\"%s\", \"%s\" anahtarı için ikili bir deÄŸere dönüştürülemedi" #: ../src/defaults.c:1032 ../src/defaults.c:1065 ../src/defaults.c:1097 ../src/defaults.c:1110 ../src/defaults.c:1125 ../src/defaults.c:1140 ../src/defaults.c:1211 ../src/defaults.c:1223 ../src/defaults.c:1277 ../src/defaults.c:1321 ../src/defaults.c:1363 ../src/defaults.c:1409 ../src/defaults.c:1628 ../src/defaults.c:1642 ../src/defaults.c:1675 ../src/defaults.c:1687 ../src/defaults.c:1699 ../src/defaults.c:1723 ../src/defaults.c:1741 ../src/defaults.c:1754 ../src/defaults.c:1767 ../src/defaults.c:1802 ../src/defaults.c:1840 ../src/defaults.c:1904 msgid "using default \"%s\" instead" msgstr "öntanımlı \"%s\" kullanılıyor" #: ../src/defaults.c:1062 msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "\"%s\", \"%s\" anahtarı için tamsayıya dönüştürülemedi" #: ../src/defaults.c:1092 ../src/defaults.c:1206 ../src/defaults.c:1623 ../src/defaults.c:1670 ../src/wdefaults.c:537 ../src/wdefaults.c:573 msgid "Wrong option format for key \"%s\". Should be %s." msgstr "\"%s\" anahtarı için yanlış seçenek biçimi. %s olmalıydı." #: ../src/defaults.c:1105 msgid "Incorrect number of elements in array for key \"%s\"." msgstr "\"%s\" anahtarı dizisinin eleman sayısı yanlış." #: ../src/defaults.c:1120 msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "\"%s\" anahtarı için yanlış deÄŸer. Coordinate olmalıydı." #: ../src/defaults.c:1135 msgid "can't convert array to integers for \"%s\"." msgstr " \"%s\" için dizi tamsayılara dönüştürülemiyor." #: ../src/defaults.c:1272 msgid "Invalid focus mode \"%s\". Should be Manual, Auto or Sloppy." msgstr "Geçersiz focus kipi \"%s\". Manual, Auto veya Sloppy olmalıydı." #: ../src/defaults.c:1315 msgid "Invalid window placement mode \"%s\". Should be Auto, Cascade, Random or Manual." msgstr "Geçersiz pencere yerleÅŸtirme kipi \"%s\". Auto, Cascade, Random veya Manual olmalıydı." #: ../src/defaults.c:1357 msgid "Invalid geometry display type \"%s\". Should be Center, Corner, Floating or Line." msgstr "Geçersiz geometri görüntüleme kipi \"%s\". Center, Corner, Floating veya Line olmalıydı." #: ../src/defaults.c:1404 msgid "Invalid speed \"%s\". Should be UltraFast, Fast, Medium, Slow or UltraSlow." msgstr "Geçersiz hız \"%s\". UltraFast, Fast, Medium, Slow veya UltraSlow. olmalıydı" #: ../src/defaults.c:1470 ../src/defaults.c:1501 ../src/defaults.c:1513 ../src/defaults.c:1554 ../src/defaults.c:1590 msgid "\"%s\" is not a valid color name" msgstr "\"%s\" geçerli bir renk ismi deÄŸil" #: ../src/defaults.c:1482 msgid "bad number of arguments in gradient specification" msgstr "renk geçiÅŸi tanımında seçenek sayısı yanlış" #: ../src/defaults.c:1528 msgid "too few arguments in multicolor gradient specification" msgstr "çok renkli geçiÅŸ tanımında az parametre var." #: ../src/defaults.c:1637 msgid "Error in texture specification for key \"%s\"" msgstr "\"%s\" anahtarı için hatalı desen tanımı" #: ../src/defaults.c:1683 ../src/defaults.c:1719 msgid "Too few elements in array for key \"WorkspaceBack\"." msgstr "\"WorkspaceBack\" anahtarı dizini için çok az birim tanımlanmış" #: ../src/defaults.c:1695 msgid "Wrong type for workspace background. Should be Texture." msgstr "Çalışma alanı arkaplanı için yanlış kip. Texture olmalıydı." #: ../src/defaults.c:1737 msgid "Cannot get color entry for key \"WorkspaceBack\"." msgstr "\"WorkspaceBack\" için renk deÄŸeri bulunamıyor." #: ../src/defaults.c:1749 msgid "key \"WorkspaceBack\" has invalid color \"%s\"" msgstr "\"WorkspaceBack\" anahtarı geçersiz \"%s\" rengini kullanıyor" #: ../src/defaults.c:1763 msgid "Cannot get file entry for key \"WorkspaceBack\"." msgstr "\"WorkspaceBack\" anahtarı için dosya deÄŸeri okunamıyor" #: ../src/defaults.c:1779 msgid "could not run \"%s\"" msgstr "\"%s\" çalıştırılamadı" #: ../src/defaults.c:1785 msgid "could not find background image \"%s\"" msgstr "Arkaplan görüntüsü \"%s\" bulunamadı" #: ../src/defaults.c:1798 msgid "Error in texture specification for key \"WorkspaceBack\"" msgstr "\"WorkspaceBack\" anahtarı için geçersiz desen tanımı" #: ../src/defaults.c:1835 msgid "Invalid justification type \"%s\". Should be Left, Center or Right" msgstr "Geçersiz hizalama tipi \"%s\". Left, Center veya Right olmalıydı" #: ../src/defaults.c:1869 msgid "could not load any usable font" msgstr "Kullanılabilecek bir yazı tipi bulunamadı." #: ../src/defaults.c:1899 msgid "could not get color for key \"%s\"" msgstr "\"%s\" anahtarı için renk bulunamadı" #: ../src/defaults.c:1958 msgid "invalid key modifier \"%s\"" msgstr "Geçersiz anahtar ek bilgisi \"%s\"" #: ../src/defaults.c:1970 msgid "invalid kbd shortcut specification \"%s\"" msgstr "Geçersiz kısayol tanımlaması \"%s\"" #: ../src/defaults.c:1976 msgid "invalid key in shortcut \"%s\"" msgstr "kısayol içinde geçersiz tuÅŸ \"%s\"" #: ../src/defaults.c:2070 msgid "could not render texture for icon background" msgstr "simge arkaplanı için desen çizilemedi" #: ../src/defaults.c:2416 msgid "could not render texture for workspace background" msgstr "Çalışma alanı arkaplanı için desen hesaplanamadı" #: ../src/dialog.c:81 ../src/dialog.c:93 ../src/dialog.c:176 ../src/dialog.c:504 ../src/dock.c:377 msgid "OK" msgstr "Peki" #: ../src/dialog.c:81 ../src/dialog.c:86 ../src/dialog.c:176 ../src/dialog.c:511 ../src/dock.c:383 msgid "Cancel" msgstr "Vazgeç" #: ../src/dialog.c:86 ../src/rootmenu.c:203 msgid "Exit" msgstr "Çıkış" #: ../src/dialog.c:98 msgid "Yes" msgstr "Evet" #: ../src/dialog.c:98 msgid "No" msgstr "Hayır" #: ../src/dialog.c:268 msgid "Could not open directory " msgstr "Dizin açılamadı" #: ../src/dialog.c:324 msgid "Could not load image file " msgstr "Görüntü dosyası yüklenemedi" #: ../src/dialog.c:450 msgid "Directories" msgstr "Dizinler" #: ../src/dialog.c:459 msgid "Icons" msgstr "Simgeler" #: ../src/dialog.c:494 msgid "File Name:" msgstr "Dosya İsmi:" #: ../src/dialog.c:517 msgid "Choose File" msgstr "Dosya Seçimi" #: ../src/dialog.c:527 msgid "Icon Chooser" msgstr "Simge Seçimi" #: ../src/dock.c:318 msgid "Command Arguments" msgstr "Komut parametreleri" #: ../src/dock.c:329 msgid "Command for files dropped by DND" msgstr "DND tarafından bırakılan dosyalar için komut" #: ../src/dock.c:341 msgid "%d will be replaced with the file name" msgstr "%d dosya ismi ile deÄŸiÅŸtirilecektir" #: ../src/dock.c:345 msgid "DND support was not compiled in" msgstr "DND desteÄŸi eklenmemiÅŸ." #: ../src/dock.c:351 msgid "Icon" msgstr "Simge" #: ../src/dock.c:363 ../src/winspector.c:1154 msgid "Browse..." msgstr "Tara..." #: ../src/dock.c:371 msgid "Launch this application automatically" msgstr "Bu uygulamayı otomatik baÅŸlat" #: ../src/dock.c:397 msgid "Docked Application Settings" msgstr "DemirlenmiÅŸ Uygulama Seçenekleri" #: ../src/dock.c:553 msgid "Workspace Clip" msgstr "Çalışma Alanı Atacı" #: ../src/dock.c:554 msgid "All selected icons will be removed!" msgstr "Tüm seçilen simgeler silinecek!" #: ../src/dock.c:601 msgid "Keep Icon" msgstr "Simgeyi tut" #: ../src/dock.c:602 ../src/dock.c:2076 ../src/dock.c:2192 msgid "Type the command used to launch the application" msgstr "Uygulamayı çalıştıracak komutu girin" #: ../src/dock.c:998 msgid "could not create workspace submenu for Clip menu" msgstr "Ataç menüsü altında çalışma alanı alt menüsü yaratılamadıo" #: ../src/dock.c:1056 msgid "could not create options submenu for Clip menu" msgstr "Ataç menüsü için seçenekler alt menüsü yaratılamadı" #: ../src/dock.c:1058 msgid "Floating Clip" msgstr "Görünür Ataç" #: ../src/dock.c:1064 msgid "Collapsed" msgstr "Toplanmış" #: ../src/dock.c:1070 msgid "AutoCollapse" msgstr "KendiliÄŸinden Topla" #: ../src/dock.c:1076 msgid "AutoAttract Icons" msgstr "Simgeleri Çek" #: ../src/dock.c:1082 msgid "Keep Attracted Icons" msgstr "Çekilen simgeleri tut" #: ../src/dock.c:1106 msgid "Floating Dock" msgstr "Simge Limanı" #: ../src/dock.c:1112 msgid "Clip Options" msgstr "Ataç Seçenekleri" #: ../src/dock.c:1117 msgid "(Un)Select Icon" msgstr "Simge Seç(me)" #: ../src/dock.c:1119 msgid "(Un)Select All Icons" msgstr "Tüm Simgeleri Seç(me)" #: ../src/dock.c:1122 msgid "Keep Icon(s)" msgstr "Simgeleri Tut" #: ../src/dock.c:1124 msgid "Move Icon(s) To" msgstr "Simgeleri Taşı" #: ../src/dock.c:1129 msgid "Remove Icon(s)" msgstr "Simgeleri Kaldır" #: ../src/dock.c:1131 msgid "Attract Icons" msgstr "Sİmgeleri çek" #: ../src/dock.c:1134 msgid "Launch" msgstr "Çalıştır" #: ../src/dock.c:1136 msgid "Settings..." msgstr "Seçenekler.." #: ../src/dock.c:1586 ../src/dock.c:1600 ../src/dock.c:1609 msgid "bad value in docked icon state info %s" msgstr "demirlenmiÅŸ simge durumunda yanlış deÄŸer %s" #: ../src/dock.c:1617 msgid "bad value in docked icon position %i,%i" msgstr "demirlenmiÅŸ simge konumunda yanlış deÄŸer %i,%i" #: ../src/dock.c:1846 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "Limana demirlenmiÅŸ çok fazla simge var. Sığmayanlarla ilgilenmiyorum" #: ../src/dock.c:2075 ../src/dock.c:2191 msgid "Dock Icon" msgstr "Liman Simgesi" #: ../src/dock.c:3099 ../src/dock.c:3103 msgid "Could not execute command \"%s\"" msgstr "\"%s\" komutu çalıştırılamadı" #: ../src/event.c:429 msgid "stack overflow: too many dead processes" msgstr "yığın taÅŸması: Çok fazla ölü süreç." #: ../src/framewin.c:515 msgid "could not render gradient: %s" msgstr "%s renk geçisi hesaplanamadı" #: ../src/framewin.c:531 ../src/framewin.c:546 ../src/framewin.c:557 ../src/framewin.c:564 ../src/framewin.c:571 ../src/icon.c:282 ../src/texture.c:503 msgid "error rendering image:%s" msgstr "%s görüntüsünün hesaplanmasında hata" #: ../src/icon.c:562 msgid "could not find default icon \"%s\"" msgstr "öntanımlı simge \"%s\" bulunamadı" #: ../src/icon.c:569 msgid "could not load default icon \"%s\"" msgstr "öntanımlı simge \"%s\"yüklenemedi" #: ../src/main.c:163 msgid "Restart failed!!!" msgstr "Yeniden baÅŸlatma iÅŸlemi baÅŸarısız!" #: ../src/main.c:178 msgid "%s aborted.\n" msgstr "%s iÅŸleminden vazgeçildi.\n" #: ../src/main.c:189 msgid "usage: %s [-options]\n" msgstr "Kullanım: %s [-Seçenekler]\n" #: ../src/main.c:190 msgid "options:" msgstr "Seçenekler:" #: ../src/main.c:192 msgid " -nocpp \t\tdisable preprocessing of configuration files" msgstr " -nocpp \t\tYapılandırma dosyalarının öniÅŸlemesini durdur " #: ../src/main.c:194 msgid " -nodock\t\tdo not open the application Dock" msgstr " -nodock\t\tSimge Limanını çalıştırma" #: ../src/main.c:195 msgid " -noclip\t\tdo not open the workspace Clip" msgstr " -noclip\t\tçalışma alanı atacını çalıştırma" #. #. puts(_(" -locale locale locale to use")); #. #: ../src/main.c:199 msgid " -visualid visualid\tvisual id of visual to use" msgstr " -visualid visualid\tkullanılacak visual ID" #: ../src/main.c:200 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tkullanılacak ekran" #: ../src/main.c:201 msgid " -version\t\tprint version and exit" msgstr " -version\t\tsadece sürüm sayısını yaz ve çık" #: ../src/main.c:216 msgid "could not determine home directory" msgstr "kullanıcı dizini belirlenemedi" #: ../src/main.c:226 msgid "" "could not find user GNUstep directory.\n" "Make sure you have installed WindowMaker correctly and run wmaker.inst" msgstr "" "kullanıcı GNUstep dizini bulunamadı.\n" "WindowMaker'in doÄŸru kurulduÄŸundan emin olun ve wmaker.inst komutunu çalıştırın" #: ../src/main.c:246 msgid "%s:could not execute initialization script" msgstr "%s:yapılandırma betiÄŸi çalıştırılamadı" #: ../src/main.c:303 ../src/main.c:310 ../src/main.c:317 msgid "too few arguments for %s" msgstr "%s için çok az seçenek" #: ../src/main.c:321 msgid "bad value for visualid: \"%s\"" msgstr "visual ID için kötü deÄŸer:\"%s\"" #: ../src/main.c:366 msgid "X server does not support locale" msgstr "X sunucusu dil desteÄŸi vermiyor." #: ../src/main.c:369 msgid "cannot set locale modifiers" msgstr "Dil ayarlamaları yapılamadı." #: ../src/main.c:383 msgid "could not open display \"%s\"" msgstr "\"%s\"ekranı açılamadı" #: ../src/menu.c:281 msgid "wrealloc() failed while trying to add menu item" msgstr "Menü oluÅŸtururken wrealloc() hatası." #: ../src/misc.c:69 msgid "could not define value for %s for cpp" msgstr "ÖniÅŸlemci için %s deÄŸeri tanımlanamadı" #: ../src/misc.c:99 msgid "could not get password entry for UID %i" msgstr "%i Kullanıcı kimliÄŸi için parola bilgisi alınamadı" #: ../src/misc.c:123 msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "makinanızın yapılandırmasında hata var. HOSTNAME deÄŸeri %s" #: ../src/misc.c:129 msgid "your machine is misconfigured. HOST is set to %s" msgstr "makinanızın yapılandırmasında hata var. HOST deÄŸeri %s" #: ../src/misc.c:700 msgid "selection timed-out" msgstr "seçim zamanı bitti" #: ../src/misc.c:714 msgid "Program Arguments" msgstr "Yazılım Parametreleri" #: ../src/misc.c:733 msgid "Enter command arguments:" msgstr "Komut parametlerini girin:" #: ../src/misc.c:754 msgid "unable to get dropped data from DND drop" msgstr "DND drop iÅŸleminden veri okunanamadı" #: ../src/misc.c:762 msgid "error getting dropped data from DND drop" msgstr "DND drop iÅŸleminde hata oluÅŸtu" #: ../src/misc.c:768 msgid "out of memory while getting data from DND drop" msgstr "DND drop iÅŸlemi sırasında bellek bitti" #: ../src/misc.c:812 ../src/misc.c:931 msgid "out of memory during expansion of \"%s\"" msgstr "\"%s\" açılırken bellek bitti" #: ../src/misc.c:866 msgid "out of memory during expansion of \"%w\"" msgstr "\"%w\" açılırken bellek bitti" #: ../src/misc.c:885 msgid "out of memory during expansion of \"%a\"" msgstr "\"%a\" açılırken bellek bitti" #: ../src/misc.c:907 msgid "out of memory during expansion of \"%d\"" msgstr "\"%d\" açılırken bellek bitti" #: ../src/misc.c:919 msgid "selection not available" msgstr "seçilmiÅŸ bir ÅŸey yok" #: ../src/misc.c:997 ../src/misc.c:1003 msgid "bad window name value in %s state info" msgstr "%s durum bilgisinde kötü pencere ismi" #: ../src/pixmap.c:235 msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "\"%s\" bitmap dosyası yüklenemedi. Onsuz çalışıyorum." #: ../src/resources.c:71 msgid "The following character sets are missing:" msgstr "Belirtilen yazı türleri bulunamadı:" #: ../src/resources.c:75 msgid "The string \"%s\" will be used in place" msgstr "Bulunmayan sembol için \"%s\" kullanılacak." #: ../src/resources.c:77 msgid "of any characters from those sets." msgstr "(tüm bulunamayan karakterler için)." #: ../src/resources.c:80 msgid "could not create font set %s. Trying fixed" msgstr "%s yazıtipi yaratılamıyor. Fixed deniyorum" #: ../src/resources.c:97 msgid "could not load font %s. Trying fixed" msgstr "%S yazıtipi yüklenemedi. Fİxed deniyorum" #: ../src/resources.c:135 msgid "could not parse color \"%s\"" msgstr "\"%s\" rengi yorumlanamadı" #: ../src/resources.c:139 msgid "could not allocate color \"%s\"" msgstr "\"%s\" rengi ayrılamadı" #: ../src/rootmenu.c:160 msgid "Program \"%s\" not found or cannot be executed." msgstr "\"%s\" programı bulunamadı ya da çalıştırılamadı" #: ../src/rootmenu.c:204 msgid "Exit window manager?" msgstr "Pencere Denetçisinden çıkmak mı istiyorsunuz ?" #: ../src/rootmenu.c:224 msgid "Close X session" msgstr "Oturumu kapat" #: ../src/rootmenu.c:225 msgid "" "Close Window System session?\n" "(all applications will be closed)" msgstr "" "Oturumu kapatayım mı?\n" "(Tüm uygulamalar durdurulacaktır)" #: ../src/rootmenu.c:227 msgid "Exiting...\n" msgstr "Çıkıyorum..\n" #: ../src/rootmenu.c:407 msgid "%s:invalid key modifier \"%s\"" msgstr "" #: ../src/rootmenu.c:421 msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "" #: ../src/rootmenu.c:429 msgid "%s:invalid key in shortcut \"%s\"" msgstr "" #: ../src/rootmenu.c:482 msgid "%s: unmatched '\"' in menu file" msgstr "%s: menü dosyasında '\"' eÅŸlemem hatası" #: ../src/rootmenu.c:531 msgid "%s: missing command" msgstr "%s: eksik komut" #: ../src/rootmenu.c:564 msgid "invalid OPEN_MENU specification: %s" msgstr "geçersiz OPEN_MENU tanımı: %s" #: ../src/rootmenu.c:629 msgid "%s:could not stat menu" msgstr "%s:menüye eriÅŸilemedi" #: ../src/rootmenu.c:637 msgid "%s:could not stat menu :%s" msgstr "%s:menüye eriÅŸilemedi :%s" #: ../src/rootmenu.c:655 msgid "too many parameters in OPEN_MENU: %s" msgstr "OPEN?MENU için fazla parametre: %s" #: ../src/rootmenu.c:714 ../src/rootmenu.c:737 msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:menü komutu \"%s\" için eksik parametre" #: ../src/rootmenu.c:794 msgid "%s:unknown command \"%s\" in menu config." msgstr "%s: menü yapılandırmasında anlaşılamayan komut \"%s\"" #: ../src/rootmenu.c:802 msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s: \"%s\" giriÅŸi için kısayol eklenemiyor" #: ../src/rootmenu.c:934 msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:menü yapılandırmasında satır boyu sınırı açıldı: %s" #: ../src/rootmenu.c:956 ../src/rootmenu.c:1048 ../src/rootmenu.c:1146 msgid "%s:missing command in menu config: %s" msgstr "%s: menü yapılandırmasında eksik komut: %s" #: ../src/rootmenu.c:986 msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s: menü dosyasında hata: END tanımı bulunamıyor" #: ../src/rootmenu.c:1015 ../src/rootmenu.c:1111 msgid "could not make arguments for menu file preprocessor" msgstr "menü dosyası öniÅŸlemcisi için argüman hazırlanamadı" #: ../src/rootmenu.c:1021 ../src/rootmenu.c:1118 msgid "%s:could not open/preprocess menu file" msgstr "%s:menü dosyası açılamadı/iÅŸlenemedi" #: ../src/rootmenu.c:1033 ../src/rootmenu.c:1131 msgid "%s:could not open menu file" msgstr "%s: menü dosyası açılamadı" #: ../src/rootmenu.c:1060 msgid "%s:invalid menu file" msgstr "%s:geçersiz menü dosyası" #: ../src/rootmenu.c:1158 msgid "%s:no title given for the root menu" msgstr "%s:ana menü için baÅŸlık verilmemiÅŸ" #: ../src/rootmenu.c:1212 ../src/rootmenu.c:1275 ../src/rootmenu.c:1319 msgid "out of memory while constructing directory menu %s" msgstr "dizin menüsü yaratılırken bellek bitti" #: ../src/rootmenu.c:1222 msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s: menü dizinindeki \"%s\" dosyasına eriÅŸilemedi" #: ../src/rootmenu.c:1368 msgid "Commands" msgstr "Komutlar" #: ../src/rootmenu.c:1370 msgid "Exit..." msgstr "Çıkış..." #: ../src/rootmenu.c:1404 msgid "%s:could not find menu file \"%s\"" msgstr "%s:menü dosyası \"%s\" bulunamadı" #: ../src/rootmenu.c:1410 msgid "%s:could not stat menu \"%s\"" msgstr "%s: \"%s\" menüsüne eriÅŸilemedi" #: ../src/rootmenu.c:1434 ../src/rootmenu.c:1481 msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:ana menü yapılandırmasında biçim hatası \"%s\"" #: ../src/screen.c:110 msgid "it seems that there already is a window manager running" msgstr "galiba baÅŸka bir pencere denetçisi çalışıyor" #: ../src/screen.c:346 msgid "could not load logo image for panels" msgstr "paneller için logo görüntüsü yüklenemedi" #: ../src/screen.c:349 msgid "error making logo image for panel:%s" msgstr "panel için logo görüntüsü yaratılırken hata oluÅŸtu:%s" #: ../src/screen.c:510 msgid "could not initialize graphics library context: %s" msgstr "grafik kitaplığı ile ilgili sorun: %s" #: ../src/session.c:113 ../src/wdefaults.c:555 ../src/winspector.c:323 msgid "can't convert \"%s\" to boolean" msgstr "\"%s\" ikili düzene çevrilemedi" #: ../src/stacking.c:88 msgid "could not get window list!!" msgstr "pencere dökümü alınamadı" #: ../src/startup.c:149 msgid "internal X error: %s\n" msgstr "dahili X hatası: %s\n" #: ../src/startup.c:189 msgid "got signal %i (%s) - restarting\n" msgstr "%i (%s) iÅŸareti alındı, yeniden baÅŸlatılıyor\n" #: ../src/startup.c:191 msgid "got signal %i - restarting\n" msgstr "%i iÅŸareti alındı, yeniden baÅŸlatılıyor\n" #: ../src/startup.c:198 msgid "%s: Received signal SIGTERM. Exiting..." msgstr "%s: SIGTERM iÅŸareti alındı. Çıkılıyor.." #: ../src/startup.c:207 msgid "got signal %i (%s)\n" msgstr "%i (%s) iÅŸareti alındı.\n" #: ../src/startup.c:209 msgid "got signal %i\n" msgstr "%i iÅŸareti alındı.\n" #. restart another window manager so that the X session doesn't #. * go to space #: ../src/startup.c:218 msgid "trying to start alternative window manager..." msgstr "alternatif pencere denetçisi çalıştırılıyor" #: ../src/switchmenu.c:124 msgid "Windows" msgstr "Pencereler" #: ../src/texture.c:260 msgid "image file \"%s\" used as texture could not be found." msgstr "Desen olarak kullanılan \"%s\" dosyası bulunamıyor" #: ../src/texture.c:266 msgid "could not load texture pixmap \"%s\":%s" msgstr "desen pixmap dosyası \"%s\" yüklenemiyor:%s" #: ../src/texture.c:362 ../src/texture.c:499 msgid "could not render texture: %s" msgstr "desen hesaplanamadı:%s" #: ../src/wdefaults.c:387 msgid "could not find icon file \"%s\"" msgstr "simge dosyası \"%s\" bulunamadı" #: ../src/winmenu.c:179 msgid "could not create workspace submenu for window menu" msgstr "pencere menüsü için çalışma alanı altmenüsü yaratılamadı" #: ../src/winmenu.c:201 msgid "(Un)Maximize" msgstr "Ekranı kapla" #: ../src/winmenu.c:202 msgid "Miniaturize" msgstr "Küçült" #: ../src/winmenu.c:211 msgid "(Un)Shade" msgstr "Katla/Aç" #: ../src/winmenu.c:219 msgid "Hide" msgstr "Sakla" #: ../src/winmenu.c:227 msgid "Hide Others" msgstr "DiÄŸerlerini Sakla" #: ../src/winmenu.c:229 msgid "Select" msgstr "Seç" #: ../src/winmenu.c:231 msgid "Move To" msgstr "Aktar" #: ../src/winmenu.c:236 msgid "Attributes..." msgstr "Özellikler..." #: ../src/winmenu.c:238 msgid "Close" msgstr "Kapat" #: ../src/winspector.c:270 msgid "Could not find specified icon file" msgstr "Belirtilen simge dosyası bulunamadı" #: ../src/winspector.c:928 msgid "not enough memory to open window inspector panel" msgstr "pencere inceleme paneli için yeterli bellek yok" #: ../src/winspector.c:955 msgid "Save" msgstr "Sakla" #: ../src/winspector.c:961 msgid "Apply" msgstr "Uygula" #: ../src/winspector.c:967 msgid "Revert" msgstr "Geri al" #: ../src/winspector.c:976 ../src/winspector.c:984 msgid "Window Specification" msgstr "Pencere Tanımları" #: ../src/winspector.c:977 msgid "Window Attributes" msgstr "Pencere Özellikleri" #: ../src/winspector.c:978 msgid "Advanced Options" msgstr "İleri Seçenekler" #: ../src/winspector.c:979 msgid "Icon and Initial Workspace" msgstr "Simge ve Kullanıcı alanı" #: ../src/winspector.c:980 msgid "Application Specific" msgstr "Uygulamaya Özgü" #: ../src/winspector.c:1019 msgid "Defaults for all windows" msgstr "Tüm pencereler için öntanım" #: ../src/winspector.c:1027 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 "" "Bu yapılandırma kaydedildiÄŸinde \n" "WM_CLASS özelliÄŸini yukarıda seçili bulunan ismine ayarlamış tüm\n" "penceleri etkileyecektir.." #: ../src/winspector.c:1034 msgid "Attributes" msgstr "Özellikler" #: ../src/winspector.c:1044 msgid "Disable titlebar" msgstr "BaÅŸlık satırını kaldır" #: ../src/winspector.c:1048 msgid "Disable resizebar" msgstr "Boyutlandırma satırını kaldır" #: ../src/winspector.c:1052 msgid "Disable close button" msgstr "Kapatma tuÅŸunu kaldır" #: ../src/winspector.c:1056 msgid "Disable miniaturize button" msgstr "SimgeleÅŸtir tulunu kaldır" #: ../src/winspector.c:1060 msgid "Keep on top" msgstr "En üstte tut" #: ../src/winspector.c:1064 msgid "Omnipresent" msgstr "Her zaman bulunsun" #: ../src/winspector.c:1068 msgid "Start Miniaturized" msgstr "Simge halinde çalışşın" #: ../src/winspector.c:1072 msgid "Skip window list" msgstr "Pencere listesine ekleme" #: ../src/winspector.c:1086 msgid "Advanced" msgstr "İleri" #: ../src/winspector.c:1096 msgid "Ignore HideOthers" msgstr "HideOthers tan etkilenme" #: ../src/winspector.c:1100 msgid "Don't bind keyboard shortcuts" msgstr "Kısayolları baÄŸlama" #: ../src/winspector.c:1104 msgid "Don't bind mouse clicks" msgstr "Fare tıklamalarını baÄŸlama" #: ../src/winspector.c:1108 msgid "Keep inside screen" msgstr "Ekran içinde tut" #: ../src/winspector.c:1112 msgid "No application icon" msgstr "Uygulama simgesi ekleme" #: ../src/winspector.c:1116 msgid "Don't let it take focus" msgstr "Focus almasına izin verme" #: ../src/winspector.c:1120 msgid "Don't Save Session" msgstr "Oturumu kaydetme" #: ../src/winspector.c:1135 msgid "Enable the \"Don't bind...\" options to allow the application to receive all mouse or keyboard events." msgstr "\"..baÄŸlama\" seçeneklerini seçerek, uygulamanızın tüm fare ve klavye olaylarını yakalamasını saÄŸlayın. " #: ../src/winspector.c:1142 msgid "Miniwindow Image" msgstr "Minipencere görüntüsü" #: ../src/winspector.c:1160 msgid "Update" msgstr "Güncelle" #: ../src/winspector.c:1165 msgid "Icon file name:" msgstr "Simge dosya ismi:" #: ../src/winspector.c:1175 msgid "Ignore client supplied icon" msgstr "Uygulamanın simgesini gözardı et" #: ../src/winspector.c:1181 msgid "Initial Workspace" msgstr "BaÅŸlama çalışma alanı" #: ../src/winspector.c:1188 msgid "Nowhere in particular" msgstr "Herhangi bir yerde" #: ../src/winspector.c:1219 msgid "Application Wide" msgstr "Uygulama Çapında" #: ../src/winspector.c:1229 msgid "Start Hidden" msgstr "Saklı BaÅŸlat" #: ../src/workspace.c:89 ../src/workspace.c:90 ../src/workspace.c:418 msgid "Workspace %i" msgstr "Çalışma alanı %i" #: ../src/workspace.c:442 msgid "Workspaces" msgstr "Çalışma Alanları" #: ../src/workspace.c:444 msgid "could not create Workspace menu" msgstr "Çalışma Alanı menüsü yaratılamadı" #: ../src/workspace.c:451 msgid "New" msgstr "Yeni" #: ../src/workspace.c:452 msgid "Destroy Last" msgstr "Sonucuyu sil" #: ../src/xutil.c:220 msgid "invalid data in selection" msgstr "Seçimde geçersiz veri" WindowMaker-0.95.5/po/zh_CN.po0000644000175000017500000013017012214432632012742 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) 1999 Free Software Foundation, Inc. # Created By : Wang Jian , 1999.4 # msgid "" msgstr "" "Project-Id-Version: Window Maker-0.60.0\n" "POT-Creation-Date: 1999-06-17 00:08+0800\n" "PO-Revision-Date: 1999-07-05 21:30+0800\n" "Last-Translator: Wang Jian \n" "Language-Team: chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Translator: Wang Jian \n" #: ../src/appicon.c:570 ../src/dialog.c:223 ../src/dock.c:3301 #: ../src/dockedapp.c:210 ../src/dockedapp.c:251 ../src/rootmenu.c:1754 #: ../src/winspector.c:290 ../src/winspector.c:306 msgid "Error" msgstr "错误" #: ../src/appicon.c:571 msgid "Could not open specified icon file" msgstr "ä¸èƒ½æ‰“开指定的图标文件" #: ../src/appicon.c:572 ../src/dialog.c:122 ../src/dialog.c:223 #: ../src/dialog.c:460 ../src/dialog.c:1477 ../src/dock.c:514 #: ../src/dock.c:522 ../src/dock.c:545 ../src/dock.c:3302 #: ../src/dockedapp.c:211 ../src/dockedapp.c:257 ../src/dockedapp.c:371 #: ../src/rootmenu.c:1758 ../src/winspector.c:291 ../src/winspector.c:307 msgid "OK" msgstr "确定" #: ../src/appicon.c:599 ../src/dock.c:278 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "将会被强行中止.\n" "没有ä¿å­˜çš„修改会丢失.\n" "请确定." #: ../src/appicon.c:605 ../src/dock.c:283 ../src/winmenu.c:125 msgid "Kill Application" msgstr "强行中止程åº" #: ../src/appicon.c:606 ../src/dock.c:284 ../src/winmenu.c:127 msgid "Yes" msgstr "是" #: ../src/appicon.c:606 ../src/dock.c:284 ../src/winmenu.c:127 msgid "No" msgstr "å¦" #: ../src/appicon.c:624 ../src/dock.c:1196 msgid "Unhide Here" msgstr "显示" #: ../src/appicon.c:625 ../src/appicon.c:650 ../src/dock.c:1198 #: ../src/dock.c:1200 ../src/dock.c:3468 ../src/dock.c:3470 #: ../src/winmenu.c:465 msgid "Hide" msgstr "éšè—" #: ../src/appicon.c:626 msgid "Set Icon..." msgstr "设置图标..." #: ../src/appicon.c:627 ../src/dock.c:1204 ../src/rootmenu.c:228 #: ../src/rootmenu.c:242 ../src/winmenu.c:512 msgid "Kill" msgstr "强行中止" #: ../src/appicon.c:648 ../src/dock.c:3466 msgid "Unhide" msgstr "显示" #: ../src/defaults.c:836 ../src/startup.c:767 ../src/startup.c:785 #: ../src/startup.c:791 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "ä¸èƒ½ä»Žé»˜è®¤çš„æ•°æ®åº“中读å–域 \"%s\"" #: ../src/defaults.c:882 ../src/defaults.c:1007 ../src/defaults.c:1046 #: ../src/defaults.c:1076 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "默认数æ®åº“中的域 %s (%s)的数æ®å·²ç»æŸå!" #: ../src/defaults.c:887 ../src/defaults.c:1028 ../src/defaults.c:1059 #: ../src/defaults.c:1085 #, c-format msgid "could not load domain %s from user defaults database" msgstr "ä¸èƒ½ä»Žç”¨æˆ·çš„默认数æ®åº“中载入域 %s" #: ../src/defaults.c:898 ../src/defaults.c:992 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "全局数æ®åº“中的域 %s (%s)的数æ®å·²ç»æŸå!" #: ../src/defaults.c:917 ../src/defaults.c:997 #, c-format msgid "could not load domain %s from global defaults database" msgstr "ä¸èƒ½ä»Žå…¨å±€æ•°æ®åº“中载入域 %s" #: ../src/defaults.c:1305 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "使用的关键字\"%s\"çš„å€¼ä¸æ­£ç¡®.应该是%s之一" #: ../src/defaults.c:1352 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "ä¸èƒ½æŠŠå…³é”®å­—\"%s\"的值\"%s\"转化æˆå¸ƒå°”值" #: ../src/defaults.c:1357 ../src/defaults.c:1391 ../src/defaults.c:1423 #: ../src/defaults.c:1436 ../src/defaults.c:1451 ../src/defaults.c:1465 #: ../src/defaults.c:1537 ../src/defaults.c:1549 ../src/defaults.c:1955 #: ../src/defaults.c:1972 ../src/defaults.c:1985 ../src/defaults.c:2018 #: ../src/defaults.c:2034 ../src/defaults.c:2065 ../src/defaults.c:2155 #, c-format msgid "using default \"%s\" instead" msgstr "使用默认的\"%s\"" #: ../src/defaults.c:1388 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "ä¸èƒ½æŠŠå…³é”®å­—\"%s\"的值\"%s\"è½¬åŒ–æˆæ•´æ•°å€¼" #: ../src/defaults.c:1418 ../src/defaults.c:1532 ../src/defaults.c:1950 #: ../src/defaults.c:1967 ../src/defaults.c:2013 ../src/defaults.c:2060 #: ../src/wdefaults.c:557 ../src/wdefaults.c:593 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "关键字\"%s\"的值格å¼ä¸æ­£ç¡®.应该是%s." #: ../src/defaults.c:1431 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "关键字\"%s\"的值中数组的元素数目ä¸å¯¹." #: ../src/defaults.c:1446 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "关键字\"%s\"çš„å€¼ä¸æ­£ç¡®.åº”è¯¥æ˜¯åæ ‡." #: ../src/defaults.c:1461 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "ä¸èƒ½æŠŠ\"%s\"的数组转化为整数值." #: ../src/defaults.c:1659 ../src/defaults.c:1691 ../src/defaults.c:1707 #: ../src/defaults.c:1753 ../src/defaults.c:1793 ../src/defaults.c:1831 #: ../src/defaults.c:1847 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\"䏿˜¯æœ‰æ•ˆçš„颜色å" #: ../src/defaults.c:1672 msgid "bad number of arguments in gradient specification" msgstr "åœ¨è¿‡æ¸¡è‰²è®¾ç½®ä¸­çš„å‚æ•°ä¸ªæ•°ä¸æ­£ç¡®" #: ../src/defaults.c:1726 msgid "too few arguments in multicolor gradient specification" msgstr "åœ¨å¤šé¢œè‰²è¿‡æ¸¡è‰²è®¾ç½®ä¸­å‚æ•°è¿‡å°‘" #: ../src/defaults.c:1820 msgid "bad number of arguments in textured gradient specification" msgstr "在纹ç†è¿‡æ¸¡è‰²è®¾ç½®ä¸­çš„傿•°ä¸ªæ•°ä¸æ­£ç¡®" #: ../src/defaults.c:1863 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "纹ç†è¿‡æ¸¡è‰²çš„纹ç†\"%s\"çš„ä¸é€æ˜Žå€¼ä¸æ­£ç¡®.应该是[0..255]" #: ../src/defaults.c:1923 #, c-format msgid "could not initialize library %s" msgstr "ä¸èƒ½åˆå§‹åŒ–库: %s" #: ../src/defaults.c:1926 #, c-format msgid "could not find function %s::%s" msgstr "找ä¸åˆ°å‡½æ•° %s::%s" #: ../src/defaults.c:1933 #, c-format msgid "invalid texture type %s" msgstr "无效的纹ç†ç±»åž‹ %s" #: ../src/defaults.c:1980 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "关键值\"%s\"的纹ç†è®¾ç½®ä¸æ­£ç¡®" #: ../src/defaults.c:2030 msgid "Wrong type for workspace background. Should be a texture type." msgstr "å·¥ä½œåŒºèƒŒæ™¯çš„ç±»åž‹ä¸æ­£ç¡®.应该是纹ç†ç±»åž‹." #: ../src/defaults.c:2078 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "工作区 %i çš„èƒŒæ™¯ç±»åž‹ä¸æ­£ç¡®.应该是纹ç†å›¾." #: ../src/defaults.c:2122 msgid "could not load any usable font!!!" msgstr "ä¸èƒ½è½½å…¥ä»»ä½•å¯ç”¨çš„字体!!!" #: ../src/defaults.c:2150 #, c-format msgid "could not get color for key \"%s\"" msgstr "ä¸èƒ½ç»™å…³é”®å€¼\"%s\"分é…到颜色" #: ../src/defaults.c:2210 ../src/rootmenu.c:494 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s:无效的键修饰符\"%s\"" #: ../src/defaults.c:2222 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:无效的快æ·é”®è®¾ç½®\"%s\"" #: ../src/defaults.c:2229 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s:在快æ·é”®\"%s\"中有无效的键" #: ../src/defaults.c:2255 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: 修饰键 %s 无效" #: ../src/defaults.c:2289 #, c-format msgid "could not load image in option %s: %s" msgstr "ä¸èƒ½è½½å…¥é€‰é¡¹\"%s\" 中的图åƒ: %s" #: ../src/defaults.c:2371 msgid "could not render texture for icon background" msgstr "ä¸èƒ½ç»™å›¾æ ‡èƒŒæ™¯ç»˜åˆ¶çº¹ç†" #: ../src/dialog.c:122 ../src/dialog.c:467 ../src/dock.c:545 #: ../src/dockedapp.c:377 ../src/rootmenu.c:190 ../src/rootmenu.c:228 #: ../src/rootmenu.c:242 msgid "Cancel" msgstr "å–æ¶ˆ" #: ../src/dialog.c:218 msgid "Could not open directory " msgstr "ä¸èƒ½æ‰“开目录 " #: ../src/dialog.c:271 msgid "Could not load image file " msgstr "ä¸èƒ½è½½å…¥å›¾åƒæ–‡ä»¶ " #: ../src/dialog.c:403 msgid "Directories" msgstr "目录" #: ../src/dialog.c:412 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/dialog.c:1401 ../src/startup.c:325 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "ä¸èƒ½ä¸ºé€€å‡ºå¯¹è¯æ¡†æ‰“开连接.中止." #: ../src/dialog.c:1427 msgid "Fatal error" msgstr "致命错误" #: ../src/dialog.c:1438 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Makeræ”¶åˆ°ä¿¡å· %i\n" "(%s)." #: ../src/dialog.c:1441 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker收到信å·%i." #: ../src/dialog.c:1450 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" "å‘生一个致命错误,也许是因为一个 bug.请填写好软件中包å«çš„ BUGFORM å¹¶å‘" "bugs@windowmaker.info 报告 bug." #: ../src/dialog.c:1458 msgid "What do you want to do now?" msgstr "你现在想åšä»€ä¹ˆ?" #: ../src/dialog.c:1464 msgid "Select action" msgstr "选择动作" #: ../src/dialog.c:1465 msgid "Abort and leave a core file" msgstr "中止并产生 core 文件" #: ../src/dialog.c:1466 msgid "Restart Window Maker" msgstr "釿–°å¯åЍ WindowMaker" #: ../src/dialog.c:1467 msgid "Start alternate window manager" msgstr "使用备用的窗å£ç®¡ç†å™¨" #: ../src/dock.c:212 #, c-format msgid "Type the name for workspace %i:" msgstr "输入工作区 %i çš„åå­—:" #: ../src/dock.c:213 ../src/dock.c:1160 ../src/dock.c:1163 ../src/dock.c:3384 msgid "Rename Workspace" msgstr "釿–°å‘½å工作区" #: ../src/dock.c:508 ../src/dock.c:516 msgid "Warning" msgstr "警告" #: ../src/dock.c:509 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "一些图标ä¸èƒ½æ”¾åœ¨æ‰€æœ‰çš„工作空间里. 请确定在其它工作空间" "的相åŒä½ç½®ä¸Šæ²¡æœ‰å…¶å®ƒçš„图标,并且在所有的工作空间里" "夹å­éƒ½æ²¡æœ‰è£…满." #: ../src/dock.c:517 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "图标ä¸èƒ½æ”¾åœ¨æ‰€æœ‰çš„工作空间里.请确定在其它工作空间" "的相åŒä½ç½®ä¸Šæ²¡æœ‰å…¶å®ƒçš„图标,并且在所有的工作空间里" "夹å­éƒ½æ²¡æœ‰è£…满." #: ../src/dock.c:543 msgid "Workspace Clip" msgstr "工作区夹å­" #: ../src/dock.c:544 msgid "All selected icons will be removed!" msgstr "所有选中的图标会被删除!" #: ../src/dock.c:591 ../src/dock.c:1175 ../src/dock.c:1177 ../src/dock.c:3420 msgid "Keep Icon" msgstr "ä¿ç•™å›¾æ ‡" #: ../src/dock.c:592 ../src/dock.c:2130 ../src/dock.c:2264 msgid "Type the command used to launch the application" msgstr "输入å¯åŠ¨ç¨‹åºæ‰€ä½¿ç”¨çš„命令" #: ../src/dock.c:973 #, c-format msgid "could not launch application %s\n" msgstr "ä¸èƒ½å¯åŠ¨ç¨‹åº %s\n" #: ../src/dock.c:1028 msgid "could not create workspace submenu for Clip menu" msgstr "ä¸èƒ½ä¸ºå¤¹å­èœå•建立工作区å­èœå•" #: ../src/dock.c:1091 msgid "could not create options submenu for Clip menu" msgstr "ä¸èƒ½ä¸ºå¤¹å­èœå•建立选项å­èœå•" #: ../src/dock.c:1095 msgid "Keep on Top" msgstr "ä¿æŒåœ¨æœ€ä¸Š" #: ../src/dock.c:1101 msgid "Collapsed" msgstr "已打开" #: ../src/dock.c:1107 msgid "AutoCollapse" msgstr "自动打开" #: ../src/dock.c:1113 msgid "AutoRaiseLower" msgstr "自动放å‰å’Œæ”¾åŽ" #: ../src/dock.c:1119 msgid "AutoAttract Icons" msgstr "自动å¸é™„图标" #: ../src/dock.c:1125 msgid "Keep Attracted Icons" msgstr "ä¿ç•™å¸é™„的图标" #: ../src/dock.c:1149 ../src/winmenu.c:407 msgid "Keep on top" msgstr "ä¿æŒåœ¨æœ€ä¸Š" #: ../src/dock.c:1155 msgid "Clip Options" msgstr "夹å­é€‰é¡¹" #: ../src/dock.c:1165 msgid "Selected" msgstr "选中" #: ../src/dock.c:1170 ../src/dock.c:1173 ../src/dock.c:3411 msgid "Select All Icons" msgstr "选择所有图标" #: ../src/dock.c:1179 ../src/dock.c:1181 ../src/dock.c:3428 msgid "Move Icon To" msgstr "把图标移动到" #: ../src/dock.c:1186 ../src/dock.c:1189 ../src/dock.c:3439 msgid "Remove Icon" msgstr "删除图标" #: ../src/dock.c:1191 msgid "Attract Icons" msgstr "å¸é™„图标" #: ../src/dock.c:1194 msgid "Launch" msgstr "å¯åЍ" #: ../src/dock.c:1202 msgid "Settings..." msgstr "设置..." #: ../src/dock.c:1595 ../src/dock.c:1609 ../src/dock.c:1623 ../src/dock.c:1633 #: ../src/dock.c:1658 #, c-format msgid "bad value in docked icon state info %s" msgstr "嵌入图标的状æ€ä¿¡æ¯ %s çš„å€¼ä¸æ­£ç¡®" #: ../src/dock.c:1641 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "嵌入图标的ä½ç½® %i,%i 值错误" #: ../src/dock.c:1897 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "在嵌入器中有太多的图标.忽略ä¸èƒ½æ”¾å…¥çš„图标" #. icon->forced_dock = 1; #: ../src/dock.c:2129 ../src/dock.c:2263 msgid "Dock Icon" msgstr "嵌入图标" #: ../src/dock.c:3294 ../src/dock.c:3298 #, c-format msgid "Could not execute command \"%s\"" msgstr "ä¸èƒ½æ‰§è¡Œå‘½ä»¤\"%s\"" #: ../src/dock.c:3390 msgid "Toggle Omnipresent" msgstr "切æ¢å­˜åœ¨æ‰€æœ‰å·¥ä½œåŒº" #: ../src/dock.c:3395 ../src/winmenu.c:417 ../src/winspector.c:1197 msgid "Omnipresent" msgstr "存在所有工作区" #: ../src/dock.c:3409 msgid "Unselect All Icons" msgstr "å–æ¶ˆé€‰æ‹©æ‰€æœ‰å›¾æ ‡" #: ../src/dock.c:3418 msgid "Keep Icons" msgstr "ä¿ç•™å›¾æ ‡" #: ../src/dock.c:3426 msgid "Move Icons To" msgstr "把图标移动到" #: ../src/dock.c:3437 msgid "Remove Icons" msgstr "删除图标" #: ../src/dockedapp.c:130 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "找ä¸åˆ°åœ¨åµŒå…¥è¿è¡Œçš„程åºä¸­ä½¿ç”¨çš„图标 %s" #: ../src/dockedapp.c:209 #, c-format msgid "Could not open specified icon file: %s" msgstr "ä¸èƒ½æ‰“开指定的图标文件: %s" #: ../src/dockedapp.c:211 msgid "Ignore" msgstr "忽略" #: ../src/dockedapp.c:252 msgid "" "Sorry, icon cannot be made omnipresent. Please make sure that no other icon " "is docked in the same position on the other workspaces, and the Clip is not " "full in some workspace, then try again." msgstr "" "对ä¸èµ·, 图标ä¸èƒ½è®¾ä¸ºå­˜åœ¨æ‰€æœ‰çš„工作区. 请确定在其他工作区的相åŒä½ç½®" "处没有其他的嵌入图标, 并且在所有的工作区中, 夹å­ä¸æ˜¯æ»¡çš„. ç„¶åŽå¯ä»¥" "é‡è¯•." #: ../src/dockedapp.c:313 msgid "Start when WindowMaker is started" msgstr "在 WindowMaker å¯åŠ¨æ—¶å¯åЍ" #: ../src/dockedapp.c:319 msgid "Application path and arguments" msgstr "程åºè·¯å¾„å’Œå‚æ•°" #: ../src/dockedapp.c:330 msgid "Command for files dropped with DND" msgstr "用DND拖放的文件的处ç†å‘½ä»¤" #: ../src/dockedapp.c:342 #, c-format msgid "%d will be replaced with the file name" msgstr "%d 将被替æ¢ä¸ºæŒ‡å®šçš„æ–‡ä»¶å" #: ../src/dockedapp.c:346 msgid "DND support was not compiled in" msgstr "没有编译进对 DND 的支æŒ" #: ../src/dockedapp.c:352 msgid "Icon Image" msgstr "图标图åƒ" #: ../src/dockedapp.c:364 ../src/winspector.c:1333 msgid "Browse..." msgstr "æµè§ˆ..." #: ../src/dockedapp.c:409 msgid "Docked Application Settings" msgstr "嵌入程åºçš„设置" #: ../src/framewin.c:642 ../src/framewin.c:737 ../src/menu.c:467 #: ../src/texture.c:549 #, c-format msgid "could not render texture: %s" msgstr "ä¸èƒ½ç»˜åˆ¶çº¹ç†: %s" #: ../src/framewin.c:665 ../src/framewin.c:676 ../src/framewin.c:692 #: ../src/framewin.c:703 ../src/framewin.c:710 ../src/framewin.c:717 #: ../src/icon.c:350 ../src/menu.c:496 #, c-format msgid "error rendering image:%s" msgstr "æ˜¾ç¤ºå›¾åƒæ—¶å‡ºé”™:%s" #: ../src/framewin.c:770 #, c-format msgid "error rendering image: %s" msgstr "æ˜¾ç¤ºå›¾åƒæ—¶å‡ºé”™: %s" #: ../src/icon.c:229 ../src/wdefaults.c:427 #, c-format msgid "error loading image file \"%s\": %s" msgstr "è½½å…¥å›¾åƒæ–‡ä»¶\"%s\"时出错: %s" #: ../src/icon.c:477 ../src/icon.c:486 #, c-format msgid "could not create directory %s" msgstr "ä¸èƒ½å»ºç«‹ç›®å½• %s" #: ../src/icon.c:753 #, c-format msgid "could not find default icon \"%s\"" msgstr "找ä¸åˆ°é»˜è®¤çš„图标\"%s\"" #: ../src/icon.c:759 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "ä¸èƒ½è½½å…¥é»˜è®¤å›¾æ ‡\"%s\":%s" #: ../src/main.c:193 msgid "failed to restart Window Maker." msgstr "ä¸èƒ½é‡æ–°å¯åЍWindow Maker." #: ../src/main.c:196 #, c-format msgid "could not exec %s" msgstr "ä¸èƒ½æ‰§è¡Œ %s" #: ../src/main.c:245 #, c-format msgid "%s aborted.\n" msgstr "%s 中止.\n" #: ../src/main.c:256 #, c-format msgid "Usage: %s [options]\n" msgstr "用法: %s [选项]\n" #: ../src/main.c:257 msgid "The Window Maker window manager for the X window system" msgstr "X 窗å£ç³»ç»Ÿçš„ Window Maker 窗å£ç®¡ç†å™¨" #: ../src/main.c:259 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tè¦ä½¿ç”¨çš„æ˜¾ç¤ºæœåС噍" #: ../src/main.c:261 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tç¦æ­¢å¯¹é…置文件的预处ç†" #: ../src/main.c:263 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\t䏿‰“开程åºåµŒå…¥å™¨" #: ../src/main.c:264 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\t䏿‰“开工作区夹å­" #. #. puts(_(" --locale locale locale to use")); #. #: ../src/main.c:268 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tè¦ä½¿ç”¨çš„ visual çš„ visual id" #: ../src/main.c:269 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\t䏿›´æ–°æˆ–ä¿å­˜é…ç½®" #: ../src/main.c:271 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tæ‰“å¼€åŒæ­¥æ˜¾ç¤ºæ¨¡å¼" #: ../src/main.c:273 msgid " --version\t\tprint version and exit" msgstr " --version\t\t显示版本信æ¯ç„¶åŽé€€å‡º" #: ../src/main.c:274 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\t显示这个信æ¯" #: ../src/main.c:286 #, 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" #: ../src/main.c:307 ../src/main.c:312 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:ä¸èƒ½æ‰§è¡Œåˆå§‹åŒ–脚本" #: ../src/main.c:332 ../src/main.c:337 #, c-format msgid "%s:could not execute exit script" msgstr "%s:ä¸èƒ½æ‰§è¡Œé€€å‡ºè„šæœ¬" #: ../src/main.c:410 ../src/main.c:417 ../src/main.c:425 ../src/main.c:441 #, c-format msgid "too few arguments for %s" msgstr "%s çš„å‚æ•°å¤ªå°‘" #: ../src/main.c:429 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "visualid çš„å€¼ä¸æ­£ç¡®: \"%s\"" #: ../src/main.c:449 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: æ— æ•ˆå‚æ•° '%s'\n" #: ../src/main.c:450 #, c-format msgid "Try '%s --help' for more information\n" msgstr "用 '%s --help' 得到更多信æ¯\n" #: ../src/main.c:493 msgid "X server does not support locale" msgstr "X æœåС噍䏿”¯æŒåœ°åŒºè®¾ç½®" #: ../src/main.c:496 msgid "cannot set locale modifiers" msgstr "ä¸èƒ½è®¾ç½®åœ°åŒºè®¾ç½®ä¿®é¥°ç¬¦" #: ../src/main.c:513 #, c-format msgid "could not open display \"%s\"" msgstr "ä¸èƒ½æ‰“开显示æœåС噍 \"%s\"" #: ../src/menu.c:303 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:749 msgid "selection timed-out" msgstr "文字选择超时" #: ../src/misc.c:765 msgid "Program Arguments" msgstr "程åºå‚æ•°" #: ../src/misc.c:766 msgid "Enter command arguments:" msgstr "è¾“å…¥å‘½ä»¤å‚æ•°:" #: ../src/misc.c:859 msgid "unable to get dropped data from DND drop" msgstr "ä¸èƒ½ä»Ž DND 拖放中æå–拖放的数æ®" #: ../src/misc.c:867 msgid "error getting dropped data from DND drop" msgstr "从 DND 拖放中æå–æ‹–æ”¾æ•°æ®æ—¶å‘生错误" #: ../src/misc.c:873 msgid "out of memory while getting data from DND drop" msgstr "从 DND 拖放中æå–æ‹–æ”¾æ•°æ®æ—¶å†…å­˜ä¸è¶³" #: ../src/misc.c:918 ../src/misc.c:1058 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "在展开\"%s\"时内存ä¸è¶³" #: ../src/misc.c:972 msgid "out of memory during expansion of \"%w\"" msgstr "在展开\"%w\"时内存ä¸è¶³" #: ../src/misc.c:990 msgid "out of memory during expansion of \"%W\"" msgstr "在展开\"%W\"时内存ä¸è¶³" #: ../src/misc.c:1006 msgid "out of memory during expansion of \"%a\"" msgstr "在展开\"%a\"时内存ä¸è¶³" #: ../src/misc.c:1037 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "在展开\"%d\"时内存ä¸è¶³" #: ../src/misc.c:1051 msgid "selection not available" msgstr "文本选择ä¸å¯ç”¨" #: ../src/misc.c:1123 ../src/misc.c:1129 #, c-format msgid "bad window name value in %s state info" msgstr "在 %s 状æ€ä¿¡æ¯ä¸­çª—å£åå­—é”™" #: ../src/misc.c:1384 msgid "could not send message to background image helper" msgstr "ä¸èƒ½å‘逿¶ˆæ¯åˆ°èƒŒæ™¯å›¾åƒè¾…助程åº" #: ../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. If it's a string, try " "enclosing it with \"." msgstr "需è¦ä¸€ä¸ªå­—符串,å­—å…¸,æ•°æ®æˆ–者数组.如果它是个字符串,试用\"æ¥æ‹¬èµ·å®ƒ." #: ../src/proplist.c:434 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "在 WindowMaker 拥有的域文件里ä¸èƒ½æœ‰æ³¨é‡Š." #: ../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:44 #, c-format msgid "could not parse color \"%s\"" msgstr "ä¸èƒ½åˆ†æžé¢œè‰²\"%s\"" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "ä¸èƒ½åˆ†é…颜色\"%s\"" #: ../src/rootmenu.c:188 ../src/rootmenu.c:190 msgid "Exit" msgstr "退出" #: ../src/rootmenu.c:189 msgid "Exit window manager?" msgstr "退出窗å£ç®¡ç†å™¨?" #: ../src/rootmenu.c:225 msgid "Close X session" msgstr "关闭 X 会è¯" #: ../src/rootmenu.c:226 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:228 ../src/winmenu.c:505 msgid "Close" msgstr "关闭" #: ../src/rootmenu.c:239 msgid "Kill X session" msgstr "中止 X 会è¯" #: ../src/rootmenu.c:240 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "强行结æŸçª—å£ç³»ç»Ÿä¼šè¯?\n" "(所有的程åºä¼šè¢«å…³é—­)" #: ../src/rootmenu.c:507 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:å…¥å£%s的快æ·é”®\"%s\"是无效的" #: ../src/rootmenu.c:515 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:å…¥å£ %s 的快æ·é”®\"%s\"嫿œ‰æ— æ•ˆé”®" #: ../src/rootmenu.c:568 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: èœå•文件中'\"'未é…对" #: ../src/rootmenu.c:618 #, c-format msgid "%s: missing command" msgstr "%s: 缺少命令" #: ../src/rootmenu.c:651 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "无效的 OPEN_MENU 定义: %s" #: ../src/rootmenu.c:699 #, c-format msgid "%s:could not stat menu" msgstr "%s:ä¸èƒ½å¯åЍèœå•" #: ../src/rootmenu.c:707 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:ä¸èƒ½å¯åЍèœå•:%s" #: ../src/rootmenu.c:725 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "OPEN_MENU æœ‰å¤ªå¤šçš„å‚æ•°: %s" #: ../src/rootmenu.c:761 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "在应用程åºèœå•中有多个'WORKSPACE_MENU'命令.åªå…许有一个." #: ../src/rootmenu.c:790 ../src/rootmenu.c:808 ../src/rootmenu.c:818 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:缺少èœå•命令\"%s\"çš„å‚æ•°" #: ../src/rootmenu.c:882 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:在èœå•é…置中有未知的命令\"%s\"." #: ../src/rootmenu.c:890 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:ä¸èƒ½ç»™å…¥å£\"%s\"æ·»åŠ å¿«æ·æ–¹å¼" #: ../src/rootmenu.c:1027 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:在èœå•é…置中超过了最大行长度: %s" #: ../src/rootmenu.c:1049 ../src/rootmenu.c:1141 ../src/rootmenu.c:1242 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:在èœå•é…置中缺少命令: %s" #: ../src/rootmenu.c:1079 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:èœå•文件语法错误:没有'END'声明" #: ../src/rootmenu.c:1108 ../src/rootmenu.c:1207 msgid "could not make arguments for menu file preprocessor" msgstr "ä¸èƒ½ç»™èœå•文件预处ç†å™¨æä¾›å‚æ•°" #: ../src/rootmenu.c:1114 ../src/rootmenu.c:1214 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s:ä¸èƒ½æ‰“开或预处ç†èœå•文件" #: ../src/rootmenu.c:1126 ../src/rootmenu.c:1227 #, c-format msgid "%s:could not open menu file" msgstr "%s:ä¸èƒ½æ‰“å¼€èœå•文件" #: ../src/rootmenu.c:1153 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:无效的èœå•文件. 缺少'MENU'命令" #: ../src/rootmenu.c:1162 msgid "error reading preprocessed menu data" msgstr "在读å–预处ç†åŽçš„èœå•æ•°æ®æ—¶å‡ºé”™" #: ../src/rootmenu.c:1254 #, c-format msgid "%s:no title given for the root menu" msgstr "%s:没有给出根窗å£èœå•的标题" #: ../src/rootmenu.c:1337 ../src/rootmenu.c:1404 ../src/rootmenu.c:1448 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "在构造目录èœå•%s时内存ä¸è¶³" #: ../src/rootmenu.c:1347 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:ä¸èƒ½æŸ¥çœ‹èœå•目录中的文件\"%s\"" #: ../src/rootmenu.c:1502 msgid "Commands" msgstr "命令" #: ../src/rootmenu.c:1505 msgid "Restart" msgstr "釿–°å¯åЍ" #: ../src/rootmenu.c:1506 msgid "Exit..." msgstr "退出..." #: ../src/rootmenu.c:1551 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "找ä¸åˆ°åœ¨'WMRootMenu'中引用的èœå•文件\"%s\"" #: ../src/rootmenu.c:1558 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "ä¸èƒ½å­˜å–在'WMRootMenu'中引用的èœå• \"%s\"" #: ../src/rootmenu.c:1569 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "当找ä¸åˆ°åœ¨'WMRootMenu'中引用的èœå•时试用默认èœå•\"%s\"" #: ../src/rootmenu.c:1592 ../src/rootmenu.c:1668 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:根窗å£èœå•é…ç½®\"%s\"æ ¼å¼é”™è¯¯" #: ../src/rootmenu.c:1755 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "ä¸èƒ½è½½å…¥åº”用程åºèœå•.请在控制å°è¾“出中查看错误的详细说明" #: ../src/screen.c:459 #, c-format msgid "could not load logo image for panels: %s" msgstr "ä¸èƒ½è½½å…¥é¢æ¿ä½¿ç”¨çš„æ ‡å¿—图åƒ: %s" #: ../src/screen.c:463 #, c-format msgid "error making logo image for panel:%s" msgstr "åˆ›å»ºé¢æ¿ä½¿ç”¨çš„æ ‡å¿—å›¾åƒæ—¶å‡ºé”™:%s" #: ../src/screen.c:751 #, c-format msgid "could not initialize graphics library context: %s" msgstr "ä¸èƒ½åˆå§‹åŒ–图形库上下文: %s" #: ../src/screen.c:782 msgid "could not do initialization of WINGs widget set" msgstr "ä¸èƒ½åˆå§‹åŒ–'WINGs'的构件集" #: ../src/screen.c:1114 #, c-format msgid "could not save session state in %s" msgstr "ä¸èƒ½åœ¨%s中ä¿å­˜ä¼šè¯çš„状æ€" #: ../src/session.c:182 ../src/wdefaults.c:575 ../src/winspector.c:354 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "ä¸èƒ½æŠŠ\"%s\"转化为布尔值" #: ../src/session.c:981 msgid "out of memory while saving session state" msgstr "在ä¿å­˜ä¼šè¯çŠ¶æ€æ—¶å†…å­˜ä¸è¶³" #: ../src/session.c:1072 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:1206 msgid "connection to the session manager was lost" msgstr "到会è¯ç®¡ç†å™¨çš„连接中断" #: ../src/stacking.c:73 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:259 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "æ”¶åˆ°ä¿¡å· %i (%s) - æ­£åœ¨é‡æ–°å¯åЍ\n" #: ../src/startup.c:261 #, 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:303 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "在试图åšå´©æºƒåŽå¤„ç†æ—¶å´©æºƒ.ç«‹å³ä¸­æ­¢." #. we try to restart Window Maker #: ../src/startup.c:337 msgid "trying to restart Window Maker..." msgstr "正在å°è¯•釿–°å¯åЍ Window Maker..." #: ../src/startup.c:342 msgid "trying to start alternate window manager..." msgstr "正在å°è¯•å¯åŠ¨å…¶ä»–çš„çª—å£ç®¡ç†å™¨..." #: ../src/startup.c:347 msgid "failed to start alternate window manager. Aborting." msgstr "无法å¯åŠ¨æ›¿ä»£çš„çª—å£ç®¡ç†å™¨.中止." #: ../src/startup.c:349 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" "å‘生一个致命错误,也许是因为一个 bug.请填写好软件中包å«çš„ BUGFORM 并报告 bug." #: ../src/startup.c:777 #, 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:805 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "䏿”¯æŒ XKB. 自动关闭 KbdModeLock 功能." #: ../src/startup.c:824 msgid "it seems that there is already a window manager running" msgstr "看起æ¥å·²ç»æœ‰çª—å£ç®¡ç†å™¨åœ¨è¿è¡Œäº†" #: ../src/startup.c:830 #, c-format msgid "could not manage screen %i" msgstr "ä¸èƒ½ç®¡ç†å±å¹• %i" #: ../src/startup.c:890 msgid "could not manage any screen" msgstr "ä¸èƒ½ç®¡ç†ä»»ä½•å±å¹•" #: ../src/switchmenu.c:114 msgid "Windows" msgstr "窗å£" #: ../src/texture.c:290 ../src/texture.c:334 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "找ä¸åˆ°è¢«ç”¨æ¥ä½œä¸ºçº¹ç†çš„æ–‡ä»¶\"%s\"." #: ../src/texture.c:296 ../src/texture.c:340 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "ä¸èƒ½è½½å…¥çº¹ç†ä½å›¾\"%s\":%s" #: ../src/texture.c:400 #, c-format msgid "library \"%s\" cound not be opened." msgstr "ä¸èƒ½æ‰“开库\"%s\"." #: ../src/texture.c:409 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "没有在库\"%s\"中找到函数\"%s\"" #: ../src/texture.c:416 msgid "function textures not supported on this system, sorry." msgstr "在这个系统中没有对函索纹ç†åŠŸèƒ½çš„æ”¯æŒ." #: ../src/wdefaults.c:421 #, c-format msgid "could not find icon file \"%s\"" msgstr "找ä¸åˆ°å›¾æ ‡æ–‡ä»¶\"%s\"" #: ../src/window.c:2607 ../src/window.c:2741 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:126 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "这会强行中止指定的程åº.\n" "没有ä¿å­˜çš„修改会丢失.\n" "请确定." #: ../src/winmenu.c:269 ../src/winmenu.c:277 msgid "Set Shortcut" msgstr "设置快æ·é”®" #: ../src/winmenu.c:357 ../src/winmenu.c:403 msgid "could not create submenu for window menu" msgstr "ä¸èƒ½ä¸ºçª—å£èœå•建立å­èœå•" #: ../src/winmenu.c:412 msgid "Keep at bottom" 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:440 ../src/winmenu.c:575 msgid "Maximize" msgstr "最大化" #: ../src/winmenu.c:448 ../src/winmenu.c:561 msgid "Miniaturize" msgstr "最å°åŒ–" #: ../src/winmenu.c:457 ../src/winmenu.c:592 msgid "Shade" msgstr "å·èµ·" #: ../src/winmenu.c:473 msgid "Resize/Move" msgstr "调整大å°/移动" #: ../src/winmenu.c:481 msgid "Select" msgstr "选择" #: ../src/winmenu.c:489 msgid "Move To" msgstr "移到" #: ../src/winmenu.c:494 msgid "Attributes..." msgstr "属性..." #: ../src/winmenu.c:496 msgid "Options" msgstr "选项" #: ../src/winmenu.c:556 msgid "Deminiaturize" msgstr "æ¢å¤å¤§å°" #: ../src/winmenu.c:570 msgid "Unmaximize" msgstr "æ¢å¤å¤§å°" #: ../src/winmenu.c:587 msgid "Unshade" msgstr "æ¢å¤" #: ../src/winspector.c:288 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "找ä¸åˆ°ç»™çª—壿Œ‡å®šçš„图标\"%s\"" #: ../src/winspector.c:304 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "ä¸èƒ½æ‰“开指定的图标\"%s\":%s" #: ../src/winspector.c:1052 msgid "Save" msgstr "ä¿å­˜" #: ../src/winspector.c:1060 msgid "Apply" msgstr "应用" #: ../src/winspector.c:1066 msgid "Reload" msgstr "釿–°è½½å…¥" #: ../src/winspector.c:1075 ../src/winspector.c:1085 msgid "Window Specification" msgstr "窗å£è§„æ ¼" #: ../src/winspector.c:1076 msgid "Window Attributes" msgstr "窗å£å±žæ€§" #: ../src/winspector.c:1077 msgid "Advanced Options" msgstr "高级选项" #: ../src/winspector.c:1078 msgid "Icon and Initial Workspace" msgstr "图标和åˆå§‹å·¥ä½œåŒº" #: ../src/winspector.c:1079 msgid "Application Specific" msgstr "应用细节" #: ../src/winspector.c:1093 msgid "Defaults for all windows" msgstr "所有窗å£ä½¿ç”¨çš„默认值" #: ../src/winspector.c:1144 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" "上é¢é€‰ä¸­çš„å字的所有窗å£" #: ../src/winspector.c:1151 msgid "Attributes" msgstr "属性" #: ../src/winspector.c:1162 msgid "Disable Titlebar" msgstr "ä¸ä½¿ç”¨æ ‡é¢˜è¡Œ" #: ../src/winspector.c:1164 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "去掉这个窗å£çš„æ ‡é¢˜è¡Œ.\n" "如果è¦ä½¿ç”¨æ²¡æœ‰æ ‡é¢˜è¡Œçš„窗å£çš„窗å£å‘½ä»¤\n" "èœå•,按下 Control+Esc (如果你改å˜äº†\n" "默认设置, 那么使用相åŒåŠŸèƒ½çš„\n" "çš„å¿«æ·æ–¹å¼" #: ../src/winspector.c:1171 msgid "Disable Resizebar" msgstr "䏿˜¾ç¤ºè°ƒæ•´å¤§å°è¾¹æ¡†" #: ../src/winspector.c:1173 msgid "Remove the resizebar of this window." msgstr "去掉这个窗å£çš„调整大å°è¾¹æ¡†." #: ../src/winspector.c:1176 msgid "Disable Close Button" msgstr "䏿˜¾ç¤ºå…³é—­æŒ‰é’®" #: ../src/winspector.c:1178 msgid "Remove the `close window' button of this window." msgstr "去掉这个窗å£çš„`关闭窗å£'按钮." #: ../src/winspector.c:1181 msgid "Disable Miniaturize Button" msgstr "䏿˜¾ç¤ºæœ€å°åŒ–按钮" #: ../src/winspector.c:1183 msgid "Remove the `miniaturize window' button of the window." msgstr "去掉这个窗å£çš„`最å°åŒ–窗å£'按钮." #: ../src/winspector.c:1186 msgid "Keep on Top / Floating" msgstr "ä¿æŒåœ¨ä¸Š/浮动" #: ../src/winspector.c:1188 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "ä¿æŒè¿™ä¸ªçª—å£åœ¨å…¶ä»–窗å£ä¹‹ä¸Š, ä¸å…许它们覆盖\n" "这个窗å£." #: ../src/winspector.c:1192 msgid "Keep at Bottom / Sunken" msgstr "ä¿æŒåœ¨ä¸‹/埋没" #: ../src/winspector.c:1194 msgid "Keep the window under all other windows." msgstr "ä¿æŒè¿™ä¸ªçª—å£åœ¨å…¶ä»–窗å£ä¹‹ä¸‹." #: ../src/winspector.c:1199 msgid "Make window occupy all workspaces." msgstr "让窗å£å æ®æ‰€æœ‰çš„工作空间." #: ../src/winspector.c:1202 msgid "Start Miniaturized" msgstr "å¯åŠ¨æ—¶æœ€å°åŒ–" #: ../src/winspector.c:1204 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "当窗å£ç¬¬ä¸€æ¬¡å‡ºçŽ°æ—¶, 自动地使它最å°åŒ–." #: ../src/winspector.c:1208 msgid "Start Maximized" msgstr "å¯åŠ¨æ—¶æœ€å¤§åŒ–" #: ../src/winspector.c:1210 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "当窗å£ç¬¬ä¸€æ¬¡å‡ºçŽ°æ—¶, 自动地使它最大化." #: ../src/winspector.c:1214 msgid "Skip Window List" msgstr "跳过窗å£åˆ—表" #: ../src/winspector.c:1216 msgid "Do not list the window in the window list menu." msgstr "ä¸åœ¨çª—å£åˆ—表èœå•中列出这个窗å£." #: ../src/winspector.c:1231 msgid "Advanced" msgstr "高级" #: ../src/winspector.c:1246 msgid "Ignore HideOthers" msgstr "忽略'éšè—å…¶ä»–'选项" #: ../src/winspector.c:1248 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "在执行`éšè—å…¶ä»–'命令时, ä¸éšè—这个窗å£" #: ../src/winspector.c:1252 msgid "Don't Bind Keyboard Shortcuts" msgstr "ä¸å…³è”å¿«æ·é”®" #: ../src/winspector.c:1254 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "åœ¨ç„¦ç‚¹åœ¨è¿™ä¸ªçª—å£æ—¶, ä¸å…³è” Window Maker\n" "çš„é”®ç›˜å¿«æ·æ–¹å¼. 这样就å…è®¸è¿™ä¸ªçª—å£æŽ¥æ”¶\n" "所有的键组åˆ, 而ä¸ç®¡å¿«æ·æ–¹å¼æ˜¯æ€Žæ ·çš„." #: ../src/winspector.c:1260 msgid "Don't Bind Mouse Clicks" msgstr "ä¸å…³è”鼠标点击" #: ../src/winspector.c:1262 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "ä¸å…³è”鼠标动作, 比如, 在窗å£ä¸­ä½¿ç”¨ `Alt'+拖动\n" "(当 Alt 是你é…置的修饰键时)." #: ../src/winspector.c:1267 msgid "Keep Inside Screen" msgstr "ä¿æŒåœ¨å±å¹•内" #: ../src/winspector.c:1269 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "ä¸å…è®¸çª—å£æŠŠè‡ªå·±å®Œå…¨ç§»åŠ¨åˆ°å±å¹•之外. 这是为了\n" "兼容æŸäº›ç¼ºé™·.\n" #: ../src/winspector.c:1273 msgid "Don't Let It Take Focus" msgstr "ä¸å…许å–得焦点" #: ../src/winspector.c:1275 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "当在窗å£ä¸Šç‚¹å‡»æ—¶, ä¸å…许它å–得键盘输入焦点." #: ../src/winspector.c:1279 msgid "Don't Save Session" msgstr "ä¸ä¿å­˜ä¼šè¯" #: ../src/winspector.c:1281 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "ä¸ä¿å­˜åœ¨ä¼šè¯çжæ€ä¸­ç›¸å…³è”的应用, 这样在 Window\n" "Maker å¯åŠ¨çš„æ—¶å€™, ä¸ä¼šé‡æ–°å¯åŠ¨å®ƒå’Œå…¶ä»–çš„åº”ç”¨\n." #: ../src/winspector.c:1287 msgid "Emulate Application Icon" msgstr "模拟程åºå›¾æ ‡" #: ../src/winspector.c:1289 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "使这个窗å£èƒ½å¤Ÿç»™ Window Maker æä¾›è¶³å¤Ÿçš„ä¿¡æ¯\n" "以建立å¯åµŒå…¥çš„应用程åºå›¾æ ‡." #: ../src/winspector.c:1294 msgid "Full Screen Maximization" msgstr "最大化到满å±å¹•" #: ../src/winspector.c:1296 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "åœ¨çª—å£æœ€å¤§åŒ–æ—¶, 让窗å£ä½¿ç”¨æ•´ä¸ªçš„å±å¹•空间.\n" "标题行和调整大å°è¾¹æ¡†ä¼šåœ¨å±å¹•外." #: ../src/winspector.c:1302 msgid "Disable Language Button" msgstr "䏿˜¾ç¤ºè¯­è¨€æŒ‰é’®" #: ../src/winspector.c:1304 msgid "Remove the `toggle language' button of the window." msgstr "去掉窗å£çš„`切æ¢è¯­è¨€'按钮." #: ../src/winspector.c:1321 msgid "Miniwindow Image" msgstr "å°çª—å£å›¾åƒ" #: ../src/winspector.c:1340 msgid "Update" msgstr "æ›´æ–°" #: ../src/winspector.c:1355 msgid "Icon File Name:" msgstr "图标文件å:" #: ../src/winspector.c:1367 msgid "Ignore client supplied icon" msgstr "忽略程åºå†…建的图标" #: ../src/winspector.c:1374 msgid "Initial Workspace" msgstr "åˆå§‹å·¥ä½œåŒº" #: ../src/winspector.c:1376 msgid "The workspace to place the window when it'sfirst shown." msgstr "窗å£ç¬¬ä¸€æ¬¡å‡ºçŽ°æ—¶æ”¾ç½®çš„å·¥ä½œç©ºé—´." #: ../src/winspector.c:1382 msgid "Nowhere in particular" msgstr "无特别处ç†" #: ../src/winspector.c:1400 msgid "Application Wide" msgstr "全部应用" #: ../src/winspector.c:1411 msgid "Start Hidden" msgstr "å¯åЍåŽéšè—" #: ../src/winspector.c:1413 msgid "Automatically hide application when it's started." msgstr "当程åºå¯åЍåŽè‡ªåЍéšè—." #: ../src/winspector.c:1416 msgid "No Application Icon" msgstr "没有程åºå›¾æ ‡" #: ../src/winspector.c:1418 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "ä¸ä½¿ç”¨åº”用程åºçš„图标.\n" "注æ„,ä½ ä¸èƒ½å†æŠŠå®ƒåµŒå…¥,\n" "并且已ç»åµŒå…¥çš„图标ä¸èƒ½\n" "正确的工作." #: ../src/workspace.c:107 ../src/workspace.c:108 ../src/workspace.c:703 #, c-format msgid "Workspace %i" msgstr "工作区 %i" #: ../src/workspace.c:760 msgid "Workspaces" msgstr "工作区" #: ../src/workspace.c:762 msgid "could not create Workspace menu" msgstr "ä¸èƒ½å»ºç«‹å·¥ä½œåŒºèœå•" #: ../src/workspace.c:769 msgid "New" msgstr "新建" #: ../src/workspace.c:770 msgid "Destroy Last" msgstr "去掉最åŽä¸€ä¸ª" #: ../src/xutil.c:228 msgid "invalid data in selection" msgstr "文本选择中有无效数æ®" WindowMaker-0.95.5/po/Makefile.in0000644000175000017500000003147012214434561013454 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = po DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ nlsdir = $(NLSDIR) CATALOGS = @MOFILES@ CLEANFILES = $(CATALOGS) WindowMaker.pot # Please keep this sorted in alphabetic order! EXTRA_DIST = be.po bg.po bs.po ca.po cs.po da.po de.po el.po es.po et.po \ fi.po fr.po gl.po hr.po hu.po hy.po it.po ja.po ko.po ms.po nl.po \ no.po pl.po pt.po ro.po ru.po sk.po sv.po tr.po zh_CN.po zh_TW.po POTFILES = \ $(top_builddir)/src/appicon.c \ $(top_builddir)/src/application.c \ $(top_builddir)/src/defaults.c \ $(top_builddir)/src/dialog.c \ $(top_builddir)/src/dock.c \ $(top_builddir)/src/dockedapp.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/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/switchpanel.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/wmspec.c \ $(top_builddir)/src/workspace.c SUFFIXES = .po .mo all: all-am .SUFFIXES: .SUFFIXES: .po .mo $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu po/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu po/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-data-local \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am .po.mo: msgfmt -c -o $@ $< all-local: $(CATALOGS) WindowMaker.pot: $(POTFILES) xgettext --default-domain=WindowMaker \ --add-comments --keyword=_ --keyword=N_ $(POTFILES) if cmp -s WindowMaker.po WindowMaker.pot; then \ rm -f WindowMaker.po; \ else \ mv -f WindowMaker.po WindowMaker.pot; \ fi install-data-local: $(CATALOGS) $(mkinstalldirs) $(DESTDIR)$(nlsdir) chmod 755 $(DESTDIR)$(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_DATA) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/WindowMaker.mo; \ fi; \ done # 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. .NOEXPORT: WindowMaker-0.95.5/po/da.po0000644000175000017500000020703012214432632012325 00000000000000# Window Maker 0.80.0 fordansket # Copyright (C) 1999 Free Software Foundation, Inc. # Birger Langkjer , 1999. # msgid "" msgstr "" "Project-Id-Version: Window Maker 0.60.0\n" "POT-Creation-Date: 2002-02-17 19:22+0100\n" "PO-Revision-Date: 2002-02-20 20:56+0100\n" "Last-Translator: Birger Langkjer \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" # ../src/appicon.c:572 ../src/dialog.c:223 ../src/dock.c:3362 # ../src/dockedapp.c:210 ../src/dockedapp.c:251 ../src/misc.c:1406 # ../src/rootmenu.c:1764 ../src/winspector.c:290 ../src/winspector.c:306 #: ../src/appicon.c:426 ../src/dialog.c:282 ../src/dock.c:3325 #: ../src/dockedapp.c:230 ../src/main.c:273 ../src/rootmenu.c:1853 #: ../src/winspector.c:389 ../src/winspector.c:406 msgid "Error" msgstr "Fejl" # ../src/appicon.c:573 #: ../src/appicon.c:427 msgid "Could not open specified icon file" msgstr "Kunne ikke Ã¥bne specificeret ikonfil" # ../src/appicon.c:574 ../src/dialog.c:122 ../src/dialog.c:223 # ../src/dialog.c:460 ../src/dialog.c:1477 ../src/dock.c:515 # ../src/dock.c:523 ../src/dock.c:547 ../src/dock.c:3363 # ../src/dockedapp.c:211 ../src/dockedapp.c:257 ../src/dockedapp.c:371 # ../src/misc.c:1406 ../src/rootmenu.c:1768 ../src/winspector.c:291 # ../src/winspector.c:307 #: ../src/appicon.c:428 ../src/dialog.c:179 ../src/dialog.c:282 #: ../src/dialog.c:729 ../src/dialog.c:1818 ../src/dock.c:526 #: ../src/dock.c:534 ../src/dock.c:558 ../src/dock.c:3326 #: ../src/dockedapp.c:231 ../src/dockedapp.c:426 ../src/main.c:273 #: ../src/rootmenu.c:1857 ../src/winspector.c:390 ../src/winspector.c:407 msgid "OK" msgstr "OK" # ../src/appicon.c:601 ../src/dock.c:277 #: ../src/appicon.c:456 ../src/dock.c:264 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " vil blive brat afsluttet.\n" "Alle ugemte data bliver tabt.\n" "Bekræft venligst." # ../src/appicon.c:607 ../src/dock.c:282 ../src/winmenu.c:125 #: ../src/appicon.c:464 ../src/dock.c:283 ../src/winmenu.c:125 msgid "Kill Application" msgstr "Dræb program" # ../src/appicon.c:608 ../src/dock.c:283 ../src/winmenu.c:127 #: ../src/appicon.c:465 ../src/dock.c:284 ../src/winmenu.c:127 msgid "Yes" msgstr "Ja" # ../src/appicon.c:608 ../src/dock.c:283 ../src/winmenu.c:127 #: ../src/appicon.c:465 ../src/dock.c:284 ../src/winmenu.c:127 msgid "No" msgstr "Nej" # ../src/appicon.c:626 ../src/dock.c:1205 #: ../src/appicon.c:495 ../src/dock.c:1177 ../src/dock.c:3491 msgid "Unhide Here" msgstr "Vis igen her" # ../src/appicon.c:627 ../src/appicon.c:652 ../src/dock.c:1207 # ../src/dock.c:1209 ../src/dock.c:3529 ../src/dock.c:3531 # ../src/winmenu.c:465 #: ../src/appicon.c:496 ../src/appicon.c:521 ../src/dock.c:1179 #: ../src/dock.c:1181 ../src/dock.c:3503 ../src/winmenu.c:465 msgid "Hide" msgstr "Skjul" # ../src/appicon.c:628 #: ../src/appicon.c:497 msgid "Set Icon..." msgstr "Vælg ikon..." # ../src/appicon.c:629 ../src/dock.c:1213 ../src/rootmenu.c:227 # ../src/rootmenu.c:241 ../src/winmenu.c:512 #: ../src/appicon.c:498 ../src/dock.c:1185 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 ../src/winmenu.c:520 msgid "Kill" msgstr "Dræb" # ../src/appicon.c:650 ../src/dock.c:3527 #: ../src/appicon.c:519 ../src/dock.c:3501 msgid "Unhide" msgstr "Vis igen" #: ../src/application.c:398 #, c-format msgid "recreating missing icon '%s'" msgstr "genskaber manglende ikon '%s'" # ../src/defaults.c:907 ../src/defaults.c:1001 #: ../src/defaults.c:922 ../src/defaults.c:1011 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Domænet %s (%s) i den globale standard-database er ødelagt!" # ../src/defaults.c:1006 #: ../src/defaults.c:927 #, c-format msgid "could not load domain %s from global defaults database" msgstr "kunne ikke indlæse domænet %s fra den globale standard-database" # ../src/defaults.c:845 ../src/startup.c:767 ../src/startup.c:785 # ../src/startup.c:791 #: ../src/defaults.c:949 ../src/startup.c:884 ../src/startup.c:902 #: ../src/startup.c:908 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "kunne ikke læse domænet \"%s\" fra standard-databasen" # ../src/defaults.c:891 ../src/defaults.c:1016 ../src/defaults.c:1055 # ../src/defaults.c:1085 #: ../src/defaults.c:995 ../src/defaults.c:1099 ../src/defaults.c:1140 #: ../src/defaults.c:1196 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Domænet %s (%s) i standard-databasen er ødelagt!" # ../src/defaults.c:896 ../src/defaults.c:1037 ../src/defaults.c:1068 # ../src/defaults.c:1094 #: ../src/defaults.c:1000 ../src/defaults.c:1119 ../src/defaults.c:1176 #: ../src/defaults.c:1205 ../src/menureader.c:397 #, c-format msgid "could not load domain %s from user defaults database" msgstr "kunne ikke indlæse domænet \"%s\" fra bruger-standard-database" # ../src/defaults.c:926 #: ../src/defaults.c:1030 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "kunne ikke indlæse domænet %s fra den globale standard-database (%s)" # ../src/screen.c:459 #: ../src/defaults.c:1166 ../src/screen.c:458 #, c-format msgid "could not load logo image for panels: %s" msgstr "kunne ikke indlæse logobillede for panelerne: %s" # ../src/defaults.c:1445 ../src/defaults.c:1559 ../src/defaults.c:1977 # ../src/defaults.c:1994 ../src/defaults.c:2097 ../src/defaults.c:2144 # ../src/wdefaults.c:560 ../src/wdefaults.c:596 #. --------------------------- Local ----------------------- #: ../src/defaults.c:1414 ../src/defaults.c:1556 ../src/defaults.c:1668 #: ../src/defaults.c:2147 ../src/defaults.c:2164 ../src/defaults.c:2209 #: ../src/defaults.c:2256 ../src/defaults.c:2729 ../src/wdefaults.c:571 #: ../src/wdefaults.c:607 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Forkert konfigurationsformat for tast \"%s\". Skulle have været %s." # ../src/defaults.c:1384 ../src/defaults.c:1418 ../src/defaults.c:1450 # ../src/defaults.c:1463 ../src/defaults.c:1478 ../src/defaults.c:1492 # ../src/defaults.c:1564 ../src/defaults.c:1576 ../src/defaults.c:1982 # ../src/defaults.c:1999 ../src/defaults.c:2012 ../src/defaults.c:2102 # ../src/defaults.c:2118 ../src/defaults.c:2149 ../src/defaults.c:2239 #: ../src/defaults.c:1416 ../src/defaults.c:1497 ../src/defaults.c:1529 #: ../src/defaults.c:1561 ../src/defaults.c:1574 ../src/defaults.c:1589 #: ../src/defaults.c:1603 ../src/defaults.c:1673 ../src/defaults.c:1685 #: ../src/defaults.c:2152 ../src/defaults.c:2169 ../src/defaults.c:2182 #: ../src/defaults.c:2214 ../src/defaults.c:2230 ../src/defaults.c:2261 #: ../src/defaults.c:2348 ../src/defaults.c:2734 ../src/defaults.c:2745 #, c-format msgid "using default \"%s\" instead" msgstr "bruger standard \"%s\" istedet" # ../src/defaults.c:1332 #: ../src/defaults.c:1447 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "forkert konfigurationsværdi for tast \"%s\". Skulle have været %s." # ../src/defaults.c:1379 #: ../src/defaults.c:1492 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "kan ikke konvertere \"%s\" til boolsk værdi for tast \"%s\"" # ../src/defaults.c:1415 #: ../src/defaults.c:1526 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "kan ikke konvertere \"%s\" til heltalsværdi for tast \"%s\"" # ../src/defaults.c:1458 #: ../src/defaults.c:1569 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Forkert antal elementer i array for tast \"%s\"." # ../src/defaults.c:1473 #: ../src/defaults.c:1584 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Forkert værdi for tast \"%s\". Burde være Coordinate." # ../src/defaults.c:1488 #: ../src/defaults.c:1599 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "kan ikke konvertere array til heltal for \"%s\"." # ../src/defaults.c:1686 ../src/defaults.c:1718 ../src/defaults.c:1734 # ../src/defaults.c:1780 ../src/defaults.c:1820 ../src/defaults.c:1858 # ../src/defaults.c:1874 #: ../src/defaults.c:1797 ../src/defaults.c:1829 ../src/defaults.c:1845 #: ../src/defaults.c:1874 ../src/defaults.c:1897 ../src/defaults.c:1950 #: ../src/defaults.c:1990 ../src/defaults.c:2028 ../src/defaults.c:2044 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" er et ugyldigt farvenavn" # ../src/defaults.c:1699 #: ../src/defaults.c:1810 ../src/defaults.c:1862 msgid "bad number of arguments in gradient specification" msgstr "forkert antal argumenter i definition af farveovergang" # ../src/defaults.c:1753 #: ../src/defaults.c:1923 msgid "too few arguments in multicolor gradient specification" msgstr "for fÃ¥ argumenter i definition af flerfarve-farveovergang" # ../src/defaults.c:1847 #: ../src/defaults.c:2017 msgid "bad number of arguments in textured gradient specification" msgstr "forkert antal argumenter i definition af tekstur-farveovergang" # ../src/defaults.c:1890 #: ../src/defaults.c:2060 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "" "forkert gennemsigtighedsværdi for tgradient-tekstur \"%s\". Burde være " "[0..255]" # ../src/defaults.c:1950 #: ../src/defaults.c:2120 #, c-format msgid "could not initialize library %s" msgstr "kunne ikke opstarte biblitek %s" # ../src/defaults.c:1953 #: ../src/defaults.c:2123 #, c-format msgid "could not find function %s::%s" msgstr "kunne ikke finde funktion %s::%s" # ../src/defaults.c:1960 #: ../src/defaults.c:2130 #, c-format msgid "invalid texture type %s" msgstr "ugyldig teksturtype %s" # ../src/defaults.c:2007 #: ../src/defaults.c:2177 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Fejl i teksturspecifikation for tast \"%s\"" # ../src/defaults.c:2114 #: ../src/defaults.c:2226 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Forkert type baggrund for arbejdsbord. Bør være en tekstur." # ../src/defaults.c:2162 #: ../src/defaults.c:2274 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "Forkert type baggrund for arbejdsbord %i. Bør være en tekstur." # ../src/defaults.c:2206 #: ../src/defaults.c:2316 msgid "could not load any usable font!!!" msgstr "ingen brugbare fonte fundet!!!" # ../src/defaults.c:2234 #: ../src/defaults.c:2343 #, c-format msgid "could not get color for key \"%s\"" msgstr "kunne ikke finde farve for tast \"%s\"" # ../src/defaults.c:2294 ../src/rootmenu.c:493 #: ../src/defaults.c:2401 ../src/rootmenu.c:526 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s: ugyldigt tasteargument \"%s\"" # ../src/defaults.c:2306 #: ../src/defaults.c:2413 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:ugyldig tastaturgenvej \"%s\"" # ../src/defaults.c:2313 #: ../src/defaults.c:2420 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s:ugyldig tast i tastaturgenvej \"%s\"" # ../src/defaults.c:2339 #: ../src/defaults.c:2445 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: modificeringstast %s er ugyldig" # ../src/defaults.c:2373 #: ../src/defaults.c:2477 #, c-format msgid "could not load image in option %s: %s" msgstr "kunne ikke indlæse billede i konfiguration %s: %s" # ../src/proplist.c:453 #: ../src/defaults.c:2594 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "kunne ikke Ã¥bne bitmapfil %s" # ../src/defaults.c:1686 ../src/defaults.c:1718 ../src/defaults.c:1734 # ../src/defaults.c:1780 ../src/defaults.c:1820 ../src/defaults.c:1858 # ../src/defaults.c:1874 #: ../src/defaults.c:2597 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" er en ugyldig bitmapfil" # ../src/misc.c:919 ../src/misc.c:1059 #: ../src/defaults.c:2600 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "løb tør for hukommelse under læsning af bitmapfil \"%s\"" # ../src/defaults.c:1699 #: ../src/defaults.c:2639 ../src/defaults.c:2672 msgid "bad number of arguments in cursor specification" msgstr "forkert antal argumenter i markørspecifikation" #: ../src/defaults.c:2655 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "ukendt indbygget markørnavn \"%s\"" # ../src/wdefaults.c:424 #: ../src/defaults.c:2682 ../src/defaults.c:2694 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "kunne ikke finde markørbitmapfil \"%s\"" # ../src/defaults.c:2007 #: ../src/defaults.c:2741 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Fejl i markørspecifikation for tast \"%s\"" # ../src/defaults.c:2455 #: ../src/defaults.c:2826 msgid "could not render texture for icon background" msgstr "kunne ikke lave tekstur for ikonbaggrund" # ../src/dock.c:212 ../src/dock.c:1169 ../src/dock.c:1172 ../src/dock.c:3445 #: ../src/dialog.c:135 msgid "Save workspace state" msgstr "Gem arbejdsbords status" # ../src/dialog.c:122 ../src/dialog.c:467 ../src/dock.c:547 # ../src/dockedapp.c:377 ../src/rootmenu.c:189 ../src/rootmenu.c:227 # ../src/rootmenu.c:241 #: ../src/dialog.c:179 ../src/dialog.c:736 ../src/dock.c:558 #: ../src/dockedapp.c:431 ../src/rootmenu.c:198 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 msgid "Cancel" msgstr "Annullér" # ../src/dialog.c:218 #: ../src/dialog.c:277 msgid "Could not open directory " msgstr "Kunne ikke Ã¥bne mappe " # ../src/dialog.c:271 #: ../src/dialog.c:332 msgid "Could not load image file " msgstr "Kunne ikke indlæse billedfil " # ../src/dialog.c:403 #: ../src/dialog.c:663 msgid "Directories" msgstr "Mapper" # ../src/dialog.c:412 #: ../src/dialog.c:672 msgid "Icons" msgstr "Ikoner" #: ../src/dialog.c:705 msgid "Preview" msgstr "Eksempel" # ../src/dialog.c:450 #: ../src/dialog.c:718 msgid "File Name:" msgstr "Filnavn:" # ../src/dialog.c:473 #: ../src/dialog.c:742 msgid "Choose File" msgstr "Vælg fil" # ../src/dialog.c:490 ../src/dialog.c:492 #: ../src/dialog.c:760 ../src/dialog.c:762 msgid "Icon Chooser" msgstr "Ikonvælger" #: ../src/dialog.c:1241 ../src/dialog.c:1351 #, c-format msgid "Version %s" msgstr "Version %s" # ../src/rootmenu.c:188 #: ../src/dialog.c:1348 msgid "Window Manager for X" msgstr "VindueshÃ¥ndtering for X" #: ../src/dialog.c:1373 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Bruger visual 0x%x: %s %ibpp " #: ../src/dialog.c:1381 msgid "(32 thousand colors)\n" msgstr "(32 tusind farver)\n" #: ../src/dialog.c:1384 msgid "(64 thousand colors)\n" msgstr "(64 tusind farver)\n" #: ../src/dialog.c:1388 msgid "(16 million colors)\n" msgstr "(16 millioner farver)\n" #: ../src/dialog.c:1391 #, c-format msgid "(%d colors)\n" msgstr "(%d farver)\n" #: ../src/dialog.c:1401 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "Total tildelt hukommelse: %i kB. Total hukommelse i brug: %i kB.\n" #: ../src/dialog.c:1408 msgid "Supported image formats: " msgstr "Understøttede billedformater: " #: ../src/dialog.c:1415 msgid "" "\n" "Additional support for: " msgstr "\nYderligere understøttelse af: " #: ../src/dialog.c:1438 msgid " and " msgstr " og " #: ../src/dialog.c:1448 msgid "" "\n" "Sound disabled" msgstr "\nLyd slÃ¥et fra" #: ../src/dialog.c:1450 msgid "" "\n" "Sound enabled" msgstr "\nLyd slÃ¥et til" # ../src/dockedapp.c:211 #: ../src/dialog.c:1476 msgid "Info" msgstr "Info" #: ../src/dialog.c:1499 msgid "Merry Christmas!" msgstr "Glædelig jul!" #: ../src/dialog.c:1569 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" #: ../src/dialog.c:1590 msgid "Legal" msgstr "Jura" # ../src/dialog.c:1401 ../src/startup.c:325 #: ../src/dialog.c:1741 ../src/startup.c:394 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "kan ikke Ã¥bne forbindelse til dialogboks der er gÃ¥et ned. Afbryder." # ../src/dialog.c:1427 #: ../src/dialog.c:1767 msgid "Fatal error" msgstr "Fatal fejl" # ../src/dialog.c:1438 #: ../src/dialog.c:1778 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker modtog signal %i\n" "(%s)." # ../src/dialog.c:1441 #: ../src/dialog.c:1781 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker modtog signal %i" # ../src/dialog.c:1450 #: ../src/dialog.c:1790 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" "en fatal fejl er opstÃ¥et, sikkert pga. en bug. Udfyld venligst den vedlagte " "BUGFORM og indberet det til bugs@windowmaker.info." # ../src/dialog.c:1458 #: ../src/dialog.c:1799 msgid "What do you want to do now?" msgstr "Hvad vil du nu?" # ../src/dialog.c:1464 #: ../src/dialog.c:1805 msgid "Select action" msgstr "Vælg handling" # ../src/dialog.c:1465 #: ../src/dialog.c:1806 msgid "Abort and leave a core file" msgstr "Afbryd og lav en core-fil" # ../src/dialog.c:1466 #: ../src/dialog.c:1807 msgid "Restart Window Maker" msgstr "Genstart Window Maker" # ../src/dialog.c:1467 #: ../src/dialog.c:1808 msgid "Start alternate window manager" msgstr "Start alternativ vindueshÃ¥ndtering" #: ../src/dialog.c:1986 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop enviroment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" #: ../src/dialog.c:2006 msgid "About GNUstep" msgstr "Om GNUstep" # ../src/dock.c:211 #: ../src/dock.c:213 #, c-format msgid "Type the name for workspace %i:" msgstr "Indtast navn for arbejdsbord %i:" # ../src/dock.c:212 ../src/dock.c:1169 ../src/dock.c:1172 ../src/dock.c:3445 #: ../src/dock.c:214 ../src/dock.c:1141 ../src/dock.c:1144 ../src/dock.c:3409 msgid "Rename Workspace" msgstr "Omdøb arbejdsbord" # ../src/dock.c:509 ../src/dock.c:517 #: ../src/dock.c:520 ../src/dock.c:528 msgid "Warning" msgstr "Advarsel" # ../src/dock.c:510 #: ../src/dock.c:521 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Nogle ikoner kan ikke være pÃ¥ alle arbejdsborde. Se til at ingen andre " "ikoner er indfældet pÃ¥ samme sted pÃ¥ de andre arbejdsborde og at clip'en " "ikke er fuld pÃ¥ noget arbejdsbord." # ../src/dock.c:518 #: ../src/dock.c:529 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "Ikonen kan ikke være pÃ¥ alle arbejdsborde. Se til at ingen anden ikon er " "indfældet pÃ¥ samme sted pÃ¥ de andre arbejdsborde og at clip'en ikke er fuld " "pÃ¥ noget arbejdsbord." # ../src/dock.c:545 #: ../src/dock.c:556 msgid "Workspace Clip" msgstr "Arbejdsbordsclip" # ../src/dock.c:546 #: ../src/dock.c:557 msgid "All selected icons will be removed!" msgstr "Alle markerede ikoner vil blive fjernet!" # ../src/dock.c:598 ../src/dock.c:1184 ../src/dock.c:1186 ../src/dock.c:3481 #: ../src/dock.c:608 ../src/dock.c:1156 ../src/dock.c:1158 ../src/dock.c:3445 msgid "Keep Icon" msgstr "Behold ikon" # ../src/dock.c:599 ../src/dock.c:2191 ../src/dock.c:2325 #: ../src/dock.c:609 ../src/dock.c:2137 ../src/dock.c:2278 msgid "Type the command used to launch the application" msgstr "Indtast kommandoen der starter programmet" # ../src/dock.c:982 #: ../src/dock.c:965 #, c-format msgid "could not launch application %s\n" msgstr "kunne ikke starte program %s\n" # ../src/dock.c:1037 #: ../src/dock.c:1020 msgid "could not create workspace submenu for Clip menu" msgstr "kunne ikke lave arbejdsbordsundermenu for clipmenu" # ../src/dock.c:1100 #: ../src/dock.c:1078 msgid "could not create options submenu for Clip menu" msgstr "kunne ikke lave konfigurationsundermenu for clipmenu" # ../src/dock.c:1104 #: ../src/dock.c:1082 ../src/dock.c:1130 msgid "Keep on Top" msgstr "Altid øverst" # ../src/dock.c:1110 #: ../src/dock.c:1088 msgid "Collapsed" msgstr "Sammenfoldet" # ../src/dock.c:1116 #: ../src/dock.c:1094 msgid "Autocollapse" msgstr "Autosammenfold" # ../src/dock.c:1122 #: ../src/dock.c:1100 msgid "Autoraise" msgstr "Autoløft" # ../src/dock.c:1128 #: ../src/dock.c:1106 msgid "Autoattract Icons" msgstr "Tiltræk ikoner" # ../src/dock.c:1164 #: ../src/dock.c:1136 msgid "Clip Options" msgstr "Clipkonfiguration" # ../src/dock.c:1174 #: ../src/dock.c:1146 msgid "Selected" msgstr "Valgt" # ../src/dock.c:1179 ../src/dock.c:1182 ../src/dock.c:3472 #: ../src/dock.c:1151 ../src/dock.c:1154 ../src/dock.c:3436 msgid "Select All Icons" msgstr "Vælg alle ikoner" # ../src/dock.c:1188 ../src/dock.c:1190 ../src/dock.c:3489 #: ../src/dock.c:1160 ../src/dock.c:1162 ../src/dock.c:3453 msgid "Move Icon To" msgstr "Flyt ikon til" # ../src/dock.c:1195 ../src/dock.c:1198 ../src/dock.c:3500 #: ../src/dock.c:1167 ../src/dock.c:1170 ../src/dock.c:3464 msgid "Remove Icon" msgstr "Fjern ikon" # ../src/dock.c:1200 #: ../src/dock.c:1172 msgid "Attract Icons" msgstr "Tiltræk ikoner" # ../src/dock.c:1203 #: ../src/dock.c:1175 msgid "Launch" msgstr "Kør" # ../src/dock.c:1211 #: ../src/dock.c:1183 msgid "Settings..." msgstr "Indstillinger..." # ../src/dock.c:1635 ../src/dock.c:1649 ../src/dock.c:1663 ../src/dock.c:1673 # ../src/dock.c:1698 #: ../src/dock.c:1548 ../src/dock.c:1655 #, c-format msgid "bad value in docked icon state info %s" msgstr "forkert værdi i indfældet ikonstatusinfo %s" # ../src/dock.c:1681 #: ../src/dock.c:1663 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "forkert værdi i indfældet ikonplacering %i,%i" # ../src/dock.c:1635 ../src/dock.c:1649 ../src/dock.c:1663 ../src/dock.c:1673 # ../src/dock.c:1698 #: ../src/dock.c:1683 #, c-format msgid "bad value in dock state info:%s" msgstr "forkert værdi i indfældet ikon-statusinfo:%s" # ../src/dock.c:1958 #: ../src/dock.c:1919 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "der er for mange ikoner i dokken. Ignorerer dem der ikke er plads til" # ../src/dock.c:2190 ../src/dock.c:2324 #. icon->forced_dock = 1; #: ../src/dock.c:2136 ../src/dock.c:2277 msgid "Dock Icon" msgstr "Indfæld ikon" # ../src/dock.c:3355 ../src/dock.c:3359 #: ../src/dock.c:3323 #, c-format msgid "Could not execute command \"%s\"" msgstr "Kunne ikke udføre kommando \"%s\"" # ../src/dock.c:3451 #: ../src/dock.c:3415 msgid "Toggle Omnipresent" msgstr "PÃ¥ alle arbejdsborde" # ../src/dock.c:3456 ../src/winmenu.c:417 ../src/winspector.c:1215 #: ../src/dock.c:3420 ../src/kwm.c:637 ../src/winmenu.c:418 #: ../src/winspector.c:1377 msgid "Omnipresent" msgstr "PÃ¥ alle arbejdsborde" # ../src/dock.c:3470 #: ../src/dock.c:3434 msgid "Unselect All Icons" msgstr "Fravælg alle ikoner" # ../src/dock.c:3479 #: ../src/dock.c:3443 msgid "Keep Icons" msgstr "Behold ikoner" # ../src/dock.c:3487 #: ../src/dock.c:3451 msgid "Move Icons To" msgstr "Flyt ikoner til" # ../src/dock.c:3498 #: ../src/dock.c:3462 msgid "Remove Icons" msgstr "Fjern ikoner" #: ../src/dock.c:3493 ../src/kwm.c:643 msgid "Bring Here" msgstr "Placér her" # ../src/dockedapp.c:130 #: ../src/dockedapp.c:149 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "kunne ikke finde ikon %s, som bruges i et indfældet program" # ../src/dockedapp.c:209 #: ../src/dockedapp.c:229 #, c-format msgid "Could not open specified icon file: %s" msgstr "Kunne ikke Ã¥bne angivet ikonfil: %s" # ../src/dockedapp.c:211 #: ../src/dockedapp.c:231 msgid "Ignore" msgstr "Ignorer" # ../src/dockedapp.c:313 #: ../src/dockedapp.c:333 msgid "Start when Window Maker is started" msgstr "Start samtidig med Window Maker" #: ../src/dockedapp.c:340 msgid "Lock (prevent accidental removal)" msgstr "LÃ¥s (forhindr fjernelse ved uheld)" # ../src/dockedapp.c:319 #: ../src/dockedapp.c:344 msgid "Application path and arguments" msgstr "Programsøgesti og argumenter" #: ../src/dockedapp.c:357 msgid "Command for middle-click launch" msgstr "Kommando for klik med midterknap" # ../src/dockedapp.c:342 #: ../src/dockedapp.c:371 #, c-format msgid "%s will be replaced with current selection" msgstr "%s bliver erstattet med nuværende markering" # ../src/dockedapp.c:330 #: ../src/dockedapp.c:376 msgid "Command for files dropped with DND" msgstr "\"Træk og slip\"-kommando" # ../src/dockedapp.c:342 #: ../src/dockedapp.c:390 #, c-format msgid "%d will be replaced with the file name" msgstr "%d bliver erstattet med filnavnet" # ../src/dockedapp.c:346 #: ../src/dockedapp.c:394 msgid "DND support was not compiled in" msgstr "DND understøttelse blev ikke kompileret ind" # ../src/dockedapp.c:352 #: ../src/dockedapp.c:399 msgid "Icon Image" msgstr "Ikonfil" # ../src/dockedapp.c:364 ../src/winspector.c:1351 #: ../src/dockedapp.c:413 ../src/winspector.c:1515 msgid "Browse..." msgstr "Find..." # ../src/dockedapp.c:409 #: ../src/dockedapp.c:466 msgid "Docked Application Settings" msgstr "Indfældet programs indstillinger" # ../src/framewin.c:649 ../src/framewin.c:744 ../src/menu.c:471 # ../src/texture.c:549 #: ../src/framewin.c:649 ../src/framewin.c:744 ../src/menu.c:456 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "kunne ikke lave tekstur: %s" # ../src/framewin.c:672 ../src/framewin.c:683 ../src/framewin.c:699 # ../src/framewin.c:710 ../src/framewin.c:717 ../src/framewin.c:724 # ../src/icon.c:350 ../src/menu.c:500 #: ../src/framewin.c:672 ../src/framewin.c:683 ../src/framewin.c:699 #: ../src/framewin.c:710 ../src/framewin.c:717 ../src/framewin.c:724 #: ../src/icon.c:350 ../src/menu.c:485 #, c-format msgid "error rendering image:%s" msgstr "fejl i tegning af billede:%s" # ../src/framewin.c:777 #: ../src/framewin.c:777 #, c-format msgid "error rendering image: %s" msgstr "fejl i tegning af billede: %s" # ../src/session.c:980 #: ../src/gnome.c:216 ../src/gnome.c:343 ../src/gnome.c:401 msgid "out of memory while updating GNOME hints" msgstr "løb tør for hukommelse da GNOME hints blev opdateret" # ../src/icon.c:229 ../src/wdefaults.c:430 #: ../src/icon.c:229 ../src/wdefaults.c:443 #, c-format msgid "error loading image file \"%s\": %s" msgstr "fejl ved Ã¥bning af billedfil \"%s\": %s" # ../src/icon.c:477 ../src/icon.c:486 #: ../src/icon.c:491 ../src/icon.c:500 #, c-format msgid "could not create directory %s" msgstr "kunne ikke oprette mappe %s" # ../src/icon.c:753 #: ../src/icon.c:767 #, c-format msgid "could not find default icon \"%s\"" msgstr "kunne ikke finde standardikon \"%s\"" # ../src/icon.c:759 #: ../src/icon.c:773 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "kunne ikke indlæse standardikon \"%s\":%s" # ../src/winmenu.c:440 ../src/winmenu.c:575 #. #. * 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/kwm.c:633 ../src/winmenu.c:441 ../src/winmenu.c:583 msgid "Maximize" msgstr "Maksimér" # ../src/winmenu.c:570 #: ../src/kwm.c:634 ../src/winmenu.c:578 msgid "Unmaximize" msgstr "Afmaksimér" # ../src/winmenu.c:448 ../src/winmenu.c:561 #: ../src/kwm.c:635 ../src/winmenu.c:449 ../src/winmenu.c:569 msgid "Miniaturize" msgstr "Minimér" # ../src/winmenu.c:556 #: ../src/kwm.c:636 ../src/winmenu.c:564 msgid "Deminiaturize" msgstr "Afminimér" # ../src/dock.c:3456 ../src/winmenu.c:417 ../src/winspector.c:1215 #: ../src/kwm.c:638 msgid "Not Omnipresent" msgstr "Ikke overalt" # ../src/winmenu.c:489 #: ../src/kwm.c:639 msgid "Move" msgstr "Flyt" # ../src/winmenu.c:473 #: ../src/kwm.c:640 msgid "Resize" msgstr "Ændr størrelse" # ../src/rootmenu.c:227 ../src/winmenu.c:505 #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/kwm.c:641 ../src/rootmenu.c:248 ../src/winmenu.c:513 msgid "Close" msgstr "Luk" # ../src/winmenu.c:489 #: ../src/kwm.c:642 ../src/winmenu.c:497 msgid "Move To" msgstr "Flyt til" #: ../src/kwm.c:1096 msgid "%a(Run Command,Type the command to run:)" msgstr "%a(Kør kommando,Indtast kommando at køre:)" # ../src/main.c:193 #: ../src/main.c:222 msgid "failed to restart Window Maker." msgstr "kunne ikke genstarte Window Maker." # ../src/main.c:196 #: ../src/main.c:225 #, c-format msgid "could not exec %s" msgstr "kunne ikke udføre %s" # ../src/misc.c:1404 #: ../src/main.c:271 msgid "Could not execute command: " msgstr "Kunne ikke udføre kommando: " # ../src/main.c:245 #: ../src/main.c:428 #, c-format msgid "%s aborted.\n" msgstr "%s afbrudt.\n" # ../src/main.c:256 #: ../src/main.c:439 #, c-format msgid "Usage: %s [options]\n" msgstr "Brug: %s [muligheder]\n" # ../src/main.c:257 #: ../src/main.c:440 msgid "The Window Maker window manager for the X window system" msgstr "Window Maker vindueshÃ¥ndtering til X window systemet" # ../src/main.c:259 #: ../src/main.c:442 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tskærm som skal bruges" # ../src/main.c:261 #: ../src/main.c:444 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tundlad forbehandling af konfigurationsfiler" # ../src/main.c:263 #: ../src/main.c:446 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tÃ¥bn ikke programdokken" # ../src/main.c:264 #: ../src/main.c:447 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tÃ¥bn ikke arbejdsbordsclippen" # ../src/dock.c:982 #: ../src/main.c:448 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tautostart ikke programmer" #: ../src/main.c:449 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tgendan ikke gemt session" # ../src/main.c:266 #: ../src/main.c:451 msgid " --locale locale\tlocale to use" msgstr " --locale lokalitet\tlokalitet at bruge" #: ../src/main.c:453 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" # ../src/main.c:268 #: ../src/main.c:454 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tvisuel id af visual som skal bruges" # ../src/main.c:269 #: ../src/main.c:455 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\thverken updatér eller gem konfigurationer" # ../src/main.c:269 #: ../src/main.c:456 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr " --no-polling\t\ttjek ikke regelmæssigt efter opdateret konfiguration" # ../src/main.c:271 #: ../src/main.c:458 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tstart synkronskærmtilstand" # ../src/main.c:273 #: ../src/main.c:460 msgid " --version\t\tprint version and exit" msgstr " --version\t\tvis version og afslut" # ../src/main.c:274 #: ../src/main.c:461 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tvis denne besked" # ../src/main.c:286 #: ../src/main.c:474 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "kunne ikke finde brugerens GNUstep mappe (%s).\n" "Har du installeret Window Maker korrekt og kørt wmaker.inst?" # ../src/icon.c:477 ../src/icon.c:486 #: ../src/main.c:479 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "kunne ikke finde brugerens GNUstep mappe (%s)." # ../src/main.c:286 #: ../src/main.c:482 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "Der opstod en fejl ved oprettelse af GNUstep mappen, sørg venligst for at du har installeret Window Maker korrekt og kør wmaker.inst" #: ../src/main.c:485 #, c-format msgid "%s directory created with default configuration." msgstr "%s mappe oprettet med standard konfiguration." # ../src/main.c:307 ../src/main.c:312 #: ../src/main.c:505 ../src/main.c:510 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:kunne ikke køre autostart-skript" # ../src/main.c:332 ../src/main.c:337 #: ../src/main.c:530 ../src/main.c:535 #, c-format msgid "%s:could not execute exit script" msgstr "%s:kunne ikke køre exit-skript" # ../src/main.c:452 ../src/main.c:459 ../src/main.c:467 ../src/main.c:483 #: ../src/main.c:663 ../src/main.c:671 ../src/main.c:679 ../src/main.c:699 #, c-format msgid "too few arguments for %s" msgstr "for fÃ¥ argumenter til %s" # ../src/main.c:471 #: ../src/main.c:683 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "forkert værdi for visualid: \"%s\"" # ../src/main.c:491 #: ../src/main.c:707 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: ugyldigt argument '%s'\n" # ../src/main.c:492 #: ../src/main.c:708 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Prøv '%s --help' for at fÃ¥ mere information\n" # ../src/main.c:535 #: ../src/main.c:739 msgid "X server does not support locale" msgstr "X-server understøtter ikke lokale" # ../src/main.c:538 #: ../src/main.c:743 msgid "cannot set locale modifiers" msgstr "kan ikke sætte lokalemodificeringer" # ../src/main.c:555 #: ../src/main.c:759 #, c-format msgid "could not open display \"%s\"" msgstr "kunne ikke Ã¥bne skærm \"%s\"" # ../src/icon.c:477 ../src/icon.c:486 #: ../src/menu.c:1255 msgid "could not grab keyboard" msgstr "kunne ikke opsnappe tastatur" # ../src/dock.c:1635 ../src/dock.c:1649 ../src/dock.c:1663 ../src/dock.c:1673 # ../src/dock.c:1698 #: ../src/menu.c:2569 #, c-format msgid "bad value in menus state info:%s" msgstr "forkert værdi i menustatusinfo:%s" # ../src/rootmenu.c:699 #: ../src/menureader.c:264 ../src/rootmenu.c:733 #, c-format msgid "%s:could not stat menu" msgstr "%s:kunne ikke undersøge menu" # ../src/rootmenu.c:707 #: ../src/menureader.c:341 ../src/menureader.c:380 #, c-format msgid "could not stat() menu file '%s'" msgstr "kunne ikke stat()'e menufilen '%s'" # ../src/rootmenu.c:1561 #: ../src/menureader.c:416 #, c-format msgid "could not find menu file '%s' referenced in WMRootMenu" msgstr "kunne ikke finde menufilen '%s' angivet i WMRootMenu" #: ../src/menureader.c:423 #, c-format msgid "could not find any usable menu files. Please check '%s'" msgstr "kunne ikke finde nogen anvendelige menufiler. Undersøg venligst '%s'" # ../src/rootmenu.c:1579 #: ../src/menureader.c:438 ../src/rootmenu.c:1667 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "bruger standardmenufil \"%s\" da menuen angivet i WMRootMenu ikke fandtes " #: ../src/menureader.c:457 #, c-format msgid "" "invalid content in menu file '%s'.\n" "It should either be a property list menu or the path to the file, enclosed " "in \"." msgstr "" "ugyldigt indhold i menufilen '%s'.\n" "Det skal enten være en egenskabslistemenu eller stien til filen indkapslet i \"" # ../src/misc.c:71 #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "kunne ikke definere værdi for %s i cpp" # ../src/misc.c:101 #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "kunne ikke finde adgangskodelinje for UID %i" # ../src/misc.c:126 #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "din maskine er sat forkert op. HOSTNAME er sat til %s" # ../src/misc.c:132 #: ../src/misc.c:132 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "din maskine er sat forkert op. HOST er sat til %s" # ../src/misc.c:766 #: ../src/misc.c:630 msgid "Program Arguments" msgstr "Programargumenter" # ../src/misc.c:767 #: ../src/misc.c:631 msgid "Enter command arguments:" msgstr "Indtast kommandoargumenter:" # ../src/misc.c:860 #: ../src/misc.c:724 msgid "unable to get dropped data from DND drop" msgstr "kan ikke modtage data fra DND-slip" # ../src/misc.c:868 #: ../src/misc.c:732 msgid "error getting dropped data from DND drop" msgstr "fejl i modtagelse af data fra DND-slip" # ../src/misc.c:874 #: ../src/misc.c:738 msgid "out of memory while getting data from DND drop" msgstr "løb tør for hukommelse mens data blev hentet fra DND-slip" # ../src/misc.c:919 ../src/misc.c:1059 #: ../src/misc.c:783 ../src/misc.c:923 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "løb tør for hukommelse under udvidelse af \"%s\"" # ../src/misc.c:973 #: ../src/misc.c:837 msgid "out of memory during expansion of \"%w\"" msgstr "løb tør for hukommelse under udvidelse af \"%w\"" # ../src/misc.c:991 #: ../src/misc.c:855 msgid "out of memory during expansion of \"%W\"" msgstr "løb tør for hukommelse under udvidelse af \"%W\"" # ../src/misc.c:1007 #: ../src/misc.c:871 msgid "out of memory during expansion of \"%a\"" msgstr "løb tør for hukommelse under udvidelse af \"%a\"" # ../src/misc.c:1038 #: ../src/misc.c:902 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "løb tør for hukommelse under udvidelse af \"%d\"" # ../src/misc.c:1052 #: ../src/misc.c:916 msgid "selection not available" msgstr "markering ikke tilgængelig" # ../src/misc.c:1124 ../src/misc.c:1130 #: ../src/misc.c:972 ../src/misc.c:978 #, c-format msgid "bad window name value in %s state info" msgstr "ugyldig værdi for vinduesnavn i %s statusinfo" # ../src/misc.c:1385 #: ../src/misc.c:1235 msgid "could not send message to background image helper" msgstr "kunne ikke sende besked til baggrundsbilledehjælper" # ../src/pixmap.c:235 #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "kunne ikke indlæse bitmapfil \"%s\". Vil ikke bruge maske" # ../src/resources.c:44 #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "\"%s\" er en ugyldig farve" # ../src/resources.c:48 #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "kunne ikke tildele farve \"%s\"" # ../src/rootmenu.c:187 ../src/rootmenu.c:189 #: ../src/rootmenu.c:196 ../src/rootmenu.c:198 msgid "Exit" msgstr "Afslut" # ../src/rootmenu.c:188 #: ../src/rootmenu.c:197 msgid "Exit window manager?" msgstr "Afslut vindueshÃ¥ndtering?" # ../src/rootmenu.c:224 #: ../src/rootmenu.c:245 msgid "Close X session" msgstr "Luk X-session" # ../src/rootmenu.c:225 #: ../src/rootmenu.c:246 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "Luk Window System session?\n" "Kan medføre datatab i Ã¥bne programmer med ugemt data." # ../src/rootmenu.c:238 #: ../src/rootmenu.c:261 msgid "Kill X session" msgstr "Dræb X-session" # ../src/rootmenu.c:239 #: ../src/rootmenu.c:262 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Dræb Window System session?\n" "(alle programmer bliver lukket)" # ../src/rootmenu.c:506 #: ../src/rootmenu.c:539 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:ugyldig tastaturgenvej \"%s\" i linje %s" # ../src/rootmenu.c:514 #: ../src/rootmenu.c:547 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:ugyldig tast i genvej \"%s\" i linje %s" # ../src/rootmenu.c:567 #: ../src/rootmenu.c:600 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: ingen matchende '\"' i menufilen" # ../src/rootmenu.c:617 #: ../src/rootmenu.c:650 #, c-format msgid "%s: missing command" msgstr "%s: manglende kommando" # ../src/rootmenu.c:651 #: ../src/rootmenu.c:682 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "ugyldig OPEN_MENU specifikation: %s" # ../src/rootmenu.c:707 #: ../src/rootmenu.c:741 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:kunne ikke undersøge menu:%s" # ../src/rootmenu.c:725 #: ../src/rootmenu.c:759 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "for mange parametre i OPEN_MENU: %s" # ../src/rootmenu.c:761 #: ../src/rootmenu.c:803 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Der er mere end én WORKSPACE_MENU kommando i applikationsmenuen. Kun én er " "tilladt." # ../src/rootmenu.c:761 #: ../src/rootmenu.c:837 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "Der er mere end én WORKSPACE_MENU kommando i applikationsmenuen. Kun én er tilladt." # ../src/winspector.c:1232 #: ../src/rootmenu.c:842 msgid "Window List" msgstr "Vinduesliste" # ../src/rootmenu.c:790 ../src/rootmenu.c:808 ../src/rootmenu.c:818 #: ../src/rootmenu.c:871 ../src/rootmenu.c:889 ../src/rootmenu.c:899 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:manglende parameter for menukommando \"%s\"" # ../src/rootmenu.c:882 #: ../src/rootmenu.c:967 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:ukendt kommando \"%s\" i menukonfig" # ../src/rootmenu.c:890 #: ../src/rootmenu.c:975 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:kan ikke tilføje genvej for linje \"%s\"" # ../src/rootmenu.c:1027 #: ../src/rootmenu.c:1112 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:maksimal linjestørrelse overskredet i menukonfig: %s" # ../src/rootmenu.c:1049 ../src/rootmenu.c:1141 ../src/rootmenu.c:1242 #: ../src/rootmenu.c:1134 ../src/rootmenu.c:1227 ../src/rootmenu.c:1329 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:manglende kommando i menukonfig: %s" # ../src/rootmenu.c:1079 #: ../src/rootmenu.c:1164 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:syntaksfejl i menufil:END deklaration mangler" # ../src/rootmenu.c:1108 ../src/rootmenu.c:1207 #: ../src/rootmenu.c:1193 ../src/rootmenu.c:1293 msgid "could not make arguments for menu file preprocessor" msgstr "kunne ikke skabe argumenter for menufilforbehandler" # ../src/rootmenu.c:1114 ../src/rootmenu.c:1214 #: ../src/rootmenu.c:1200 ../src/rootmenu.c:1301 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s:kunne ikke Ã¥bne/forbehandle menufil" # ../src/rootmenu.c:1126 ../src/rootmenu.c:1227 #: ../src/rootmenu.c:1212 ../src/rootmenu.c:1314 #, c-format msgid "%s:could not open menu file" msgstr "%s:kunne ikke Ã¥bne menufil" # ../src/rootmenu.c:1153 #: ../src/rootmenu.c:1239 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:ugyldig menufil. MENU-kommando mangler" # ../src/rootmenu.c:1162 #: ../src/rootmenu.c:1248 msgid "error reading preprocessed menu data" msgstr "kunne ikke indlæse forbehandlet menudata" # ../src/rootmenu.c:1254 #: ../src/rootmenu.c:1341 #, c-format msgid "%s:no title given for the root menu" msgstr "%s:ingen titel angivet for rodmenuen" # ../src/rootmenu.c:1344 ../src/rootmenu.c:1417 ../src/rootmenu.c:1458 #: ../src/rootmenu.c:1432 ../src/rootmenu.c:1505 ../src/rootmenu.c:1546 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "løb tør for memory mens mappemenu %s blev lavet" # ../src/rootmenu.c:1354 #: ../src/rootmenu.c:1442 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s: kunne ikke undersøge fil \"%s\" i menumappen" # ../src/rootmenu.c:1512 #: ../src/rootmenu.c:1600 msgid "Commands" msgstr "Kommandoer" # ../src/rootmenu.c:1515 #: ../src/rootmenu.c:1603 msgid "Restart" msgstr "Genstart" # ../src/rootmenu.c:1516 #: ../src/rootmenu.c:1604 msgid "Exit..." msgstr "Afslut..." # ../src/rootmenu.c:1561 #: ../src/rootmenu.c:1649 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "kunne ikke Ã¥bne menufil \"%s\" angivet i WMRootMenu" # ../src/rootmenu.c:1568 #: ../src/rootmenu.c:1656 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "kunne ikke Ã¥bne menu \"%s\" angivet i WMRootMenu" # ../src/rootmenu.c:1602 ../src/rootmenu.c:1678 #: ../src/rootmenu.c:1690 ../src/rootmenu.c:1766 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:formateringsfejl i konfiguration af hovedmenu \"%s\"" # ../src/rootmenu.c:1765 #: ../src/rootmenu.c:1854 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Applikationsmenuen kunne ikke indlæses. Læs kommandolinjens uddata for en " "detaljeret beskrivelse af fejlen(e)" # ../src/screen.c:751 #: ../src/screen.c:740 #, c-format msgid "could not initialize graphics library context: %s" msgstr "kunne ikke opstarte grafikbibliotek: %s" # ../src/screen.c:782 #: ../src/screen.c:771 msgid "could not do initialization of WINGs widget set" msgstr "kunne ikke opstarte WINGs widgetsæt" # ../src/screen.c:1115 #: ../src/screen.c:1137 #, c-format msgid "could not save session state in %s" msgstr "kunne ikke gemme sessionsstatus i %s" # ../src/session.c:181 ../src/wdefaults.c:578 ../src/winspector.c:354 #: ../src/session.c:183 ../src/wdefaults.c:589 ../src/winspector.c:454 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "kan ikke konvertere \"%s\" til boolsk værdi" # ../src/session.c:980 #: ../src/session.c:1023 msgid "out of memory while saving session state" msgstr "løb tør for hukommelse mens sessionsstatus blev gemt" # ../src/session.c:1071 #: ../src/session.c:1106 msgid "end of memory while saving session state" msgstr "ikke mere hukommelse mens sessionsstatus blev gemt" # ../src/session.c:1205 #. 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:1244 msgid "connection to the session manager was lost" msgstr "forbindelse til sessionshÃ¥ndteringen forsvandt" # ../src/stacking.c:73 #: ../src/stacking.c:79 msgid "could not get window list!!" msgstr "kunne ikke fÃ¥ vinduesliste!!" # ../src/startup.c:194 #: ../src/startup.c:202 #, c-format msgid "internal X error: %s\n" msgstr "intern X-fejl: %s\n" # ../src/startup.c:259 #: ../src/startup.c:260 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "fik signal %i (%s) - genstarter\n" # ../src/startup.c:261 #: ../src/startup.c:262 #, c-format msgid "got signal %i - restarting\n" msgstr "fik signal %i - genstarter\n" # ../src/startup.c:259 #: ../src/startup.c:272 #, c-format msgid "got signal %i (%s) - rereading defaults\n" msgstr "fik signal %i (%s) - genindlæser standard\n" # ../src/startup.c:261 #: ../src/startup.c:274 #, c-format msgid "got signal %i - rereading defaults\n" msgstr "fik signal %i - genindlæser standard\n" # ../src/startup.c:275 #: ../src/startup.c:284 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "fik signal %i (%s) - afslutter...\n" # ../src/startup.c:277 #: ../src/startup.c:286 #, c-format msgid "got signal %i - exiting...\n" msgstr "fik signal %i - afslutter...\n" # ../src/startup.c:290 #: ../src/startup.c:329 #, c-format msgid "got signal %i (%s)\n" msgstr "fik signal %i (%s)\n" # ../src/startup.c:292 #: ../src/startup.c:331 #, c-format msgid "got signal %i\n" msgstr "fik signal %i\n" # ../src/startup.c:303 #: ../src/startup.c:342 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "gik ned under forsøg at rydde op efter crash. Afbryder med det samme." # ../src/startup.c:337 #. we try to restart Window Maker #: ../src/startup.c:406 msgid "trying to restart Window Maker..." msgstr "prøver at genstarte Window Maker..." # ../src/startup.c:342 #: ../src/startup.c:411 msgid "trying to start alternate window manager..." msgstr "prøver at starte alternativ vindueshÃ¥ndtering..." # ../src/startup.c:347 #: ../src/startup.c:417 msgid "failed to start alternate window manager. Aborting." msgstr "det lykkedes ikke at starte alternativ vindueshÃ¥ndtering. Afbryder." # ../src/startup.c:349 #: ../src/startup.c:419 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" "en fatal fejl er opstÃ¥et, sikkert pga. en bug. Udfyld venligst den vedlagte " "BUGFORM og indberet det." # ../src/startup.c:777 #: ../src/startup.c:894 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "ikonstørrelse er sat til %i, men det er for lidt. Bruger 16 istedet\n" # ../src/startup.c:805 #: ../src/startup.c:922 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "XKB er ikke understøttet. KbdModeLock er slÃ¥et fra." # ../src/startup.c:824 #: ../src/startup.c:941 msgid "it seems that there is already a window manager running" msgstr "det ser ud til at der kører en vindueshÃ¥ndtering i forvejen" # ../src/startup.c:830 #: ../src/startup.c:947 #, c-format msgid "could not manage screen %i" msgstr "kunne ikke hÃ¥ndtere skærm %i" # ../src/startup.c:890 #: ../src/startup.c:1015 msgid "could not manage any screen" msgstr "kunne ikke hÃ¥ndtere nogen skærm" # ../src/switchmenu.c:114 #: ../src/switchmenu.c:137 msgid "Windows" msgstr "Vinduer" # ../src/texture.c:290 ../src/texture.c:334 #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "billedfil \"%s\" som er brugt som tekstur, fandtes ikke." # ../src/texture.c:296 ../src/texture.c:340 #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "kunne ikke indlæse teksturpixmap \"%s\":%s" # ../src/texture.c:400 #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "bibliotek \"%s\" kunne ikke Ã¥bnes." # ../src/texture.c:409 #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "funktion \"%s\" fandtes ikke i bibliotek \"%s\"" # ../src/texture.c:416 #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "teksturfunktionen er ikke understøttet af dette system, desværre." # ../src/dialog.c:271 #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "kunne ikke tildele billedmellemlager" # ../src/wdefaults.c:424 #: ../src/wdefaults.c:437 #, c-format msgid "could not find icon file \"%s\"" msgstr "kunne ikke finde ikonfil \"%s\"" # ../src/window.c:2638 ../src/window.c:2772 #: ../src/window.c:2934 ../src/window.c:3073 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 eller en lignende tast er trykket ind.\n" "Tryk den ud eller visse musefunktioner og tastaturgenveje vil ikke fungere." # ../src/winmenu.c:126 #: ../src/winmenu.c:126 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Dette vil lukke programmet.\n" "Alle ugemte data bliver slettet.\n" "Bekræft venligst." # ../src/winmenu.c:271 ../src/winmenu.c:279 #: ../src/winmenu.c:272 ../src/winmenu.c:281 msgid "Set Shortcut" msgstr "Angiv genvej" # ../src/winmenu.c:357 ../src/winmenu.c:403 #: ../src/winmenu.c:359 ../src/winmenu.c:404 msgid "could not create submenu for window menu" msgstr "kunne ikke lave undermenu for vinduesmenu" # ../src/dock.c:1158 ../src/winmenu.c:407 #: ../src/winmenu.c:408 msgid "Keep on top" msgstr "Altid øverst" # ../src/winmenu.c:412 #: ../src/winmenu.c:413 msgid "Keep at bottom" msgstr "Altid nederst" # ../src/winmenu.c:457 ../src/winmenu.c:592 #: ../src/winmenu.c:457 ../src/winmenu.c:600 msgid "Shade" msgstr "Rul op" # ../src/winspector.c:1264 #: ../src/winmenu.c:473 msgid "Hide Others" msgstr "Skjul andre" # ../src/winmenu.c:473 #: ../src/winmenu.c:481 msgid "Resize/Move" msgstr "Ændre størrelse/Flyt" # ../src/winmenu.c:481 #: ../src/winmenu.c:489 msgid "Select" msgstr "Vælg" # ../src/winmenu.c:494 #: ../src/winmenu.c:502 msgid "Attributes..." msgstr "Attributter..." # ../src/winmenu.c:496 #: ../src/winmenu.c:504 msgid "Options" msgstr "Indstillinger" # ../src/winmenu.c:587 #: ../src/winmenu.c:595 msgid "Unshade" msgstr "Rul ned" # ../src/winspector.c:288 #: ../src/winspector.c:387 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Kunne ikke finde ikon \"%s\" specificeret for dette vindue" # ../src/winspector.c:304 #: ../src/winspector.c:404 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Kunne ikke finde specificeret ikon \"%s\":%s" #: ../src/winspector.c:1123 #, c-format msgid "Inspecting %s.%s" msgstr "Inspicerer %s.%s" #: ../src/winspector.c:1149 msgid "Click in the window you wish to inspect." msgstr "Klik pÃ¥ det vindue, du vil inspicere." # ../src/winspector.c:1162 #: ../src/winspector.c:1188 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "Denne konfiguration vil gælde for\n" "alle vinduer, hvis WM_CLASS egenskab\n" "er sat til det valgte ovenstÃ¥ende\n" "navn, nÃ¥r den er gemt." # ../src/winspector.c:1064 #: ../src/winspector.c:1217 msgid "Save" msgstr "Gem" # ../src/winspector.c:1072 #: ../src/winspector.c:1225 msgid "Apply" msgstr "Anvend" # ../src/winspector.c:1078 #: ../src/winspector.c:1231 msgid "Reload" msgstr "Genindlæs" # ../src/winspector.c:1087 ../src/winspector.c:1097 #: ../src/winspector.c:1240 ../src/winspector.c:1250 msgid "Window Specification" msgstr "Vinduesspecifikation" # ../src/winspector.c:1088 #: ../src/winspector.c:1241 msgid "Window Attributes" msgstr "Vinduesattributter" # ../src/winspector.c:1089 #: ../src/winspector.c:1242 msgid "Advanced Options" msgstr "Udvidede indstillinger" # ../src/winspector.c:1090 #: ../src/winspector.c:1243 msgid "Icon and Initial Workspace" msgstr "Ikon og første arbejdsbord" # ../src/winspector.c:1091 #: ../src/winspector.c:1244 msgid "Application Specific" msgstr "Specifikt for program" # ../src/winspector.c:1105 #: ../src/winspector.c:1258 msgid "Defaults for all windows" msgstr "Standard for alle vinduer" # ../src/dialog.c:1464 #: ../src/winspector.c:1312 msgid "Select window" msgstr "Vælg vindue" # ../src/winspector.c:1169 #: ../src/winspector.c:1326 msgid "Attributes" msgstr "Attributter" # ../src/winspector.c:1180 #: ../src/winspector.c:1337 msgid "Disable titlebar" msgstr "Fjern titellinje" # ../src/winspector.c:1182 #: ../src/winspector.c:1339 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Fjern dette vindues titellinje.\n" "For at komme til et vindues kommandomenu\n" "uden titellinjen, tryk Control+Esc (eller\n" "den korrekte genvej, hvis du har ændret i\n" "standardindstillingerne)." # ../src/winspector.c:1189 #: ../src/winspector.c:1346 msgid "Disable resizebar" msgstr "Fjern bundlinje" # ../src/winspector.c:1191 #: ../src/winspector.c:1348 msgid "Remove the resizebar of this window." msgstr "Fjern dette vindues bundlinje." # ../src/winspector.c:1194 #: ../src/winspector.c:1351 msgid "Disable close button" msgstr "Fjern lukkeknap" # ../src/winspector.c:1196 #: ../src/winspector.c:1353 msgid "Remove the `close window' button of this window." msgstr "Fjern dette vindues 'luk vindue'-knap." # ../src/winspector.c:1199 #: ../src/winspector.c:1356 msgid "Disable miniaturize button" msgstr "Fjern minimeringsknap" # ../src/winspector.c:1201 #: ../src/winspector.c:1358 msgid "Remove the `miniaturize window' button of the window." msgstr "Fjern dette vindues `minimér vindue' knap." # ../src/winspector.c:1180 #: ../src/winspector.c:1361 msgid "Disable border" msgstr "Fjern kantlinje" # ../src/winspector.c:1191 #: ../src/winspector.c:1363 msgid "Remove the 1 pixel black border around the window." msgstr "Fjern den tynde sorte kant omkring vinduet." # ../src/winspector.c:1204 #: ../src/winspector.c:1366 msgid "Keep on top (floating)" msgstr "Altid øverst (flydende)" # ../src/winspector.c:1206 #: ../src/winspector.c:1368 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "Placér dette vindue ovenover andre vinduer,\n" "og lad dem ikke dække over det." # ../src/winspector.c:1210 #: ../src/winspector.c:1372 msgid "Keep at bottom (sunken)" msgstr "Altid nederst (sunket)" # ../src/winspector.c:1212 #: ../src/winspector.c:1374 msgid "Keep the window under all other windows." msgstr "Placér dette vindue under alle andre vinduer." # ../src/winspector.c:1217 #: ../src/winspector.c:1379 msgid "Make window present in all workspaces." msgstr "Dette vindue skal ses pÃ¥ alle arbejdsborde." # ../src/winspector.c:1220 #: ../src/winspector.c:1382 msgid "Start miniaturized" msgstr "Start minimeret" # ../src/winspector.c:1222 #: ../src/winspector.c:1384 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "Dette vindue skal automatisk være minimeret, nÃ¥r det\n" "vises første gang." # ../src/winspector.c:1226 #: ../src/winspector.c:1388 msgid "Start maximized" msgstr "Start maksimeret" # ../src/winspector.c:1228 #: ../src/winspector.c:1390 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "Dette vindue skal automatisk være maksimeret, nÃ¥r det\n" "vises første gang." # ../src/winspector.c:1312 #: ../src/winspector.c:1394 msgid "Full screen maximization" msgstr "Fyld hele skærmen" # ../src/winspector.c:1314 #: ../src/winspector.c:1396 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Lad dette vindue bruge hele skærmen, nÃ¥r det er\n" "maksimeret. Titellinjen og bundlinjen vil blive\n" "flyttet udenfor skærmen." # ../src/winspector.c:1249 #: ../src/winspector.c:1413 msgid "Advanced" msgstr "Udvidet" # ../src/winspector.c:1270 #: ../src/winspector.c:1430 msgid "Do not bind keyboard shortcuts" msgstr "Tastaturgenveje gælder ikke" # ../src/winspector.c:1272 #: ../src/winspector.c:1432 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Window Makers tastaturgenveje gælder ikke, nÃ¥r\n" "dette vindue er i fokus. Dette tillader vinduet\n" "at modtage alle tastekombinationer, uanset hvilke\n" "tastaturgenveje du har valgt for Window Maker." # ../src/winspector.c:1278 #: ../src/winspector.c:1438 msgid "Do not bind mouse clicks" msgstr "Museklik gælder ikke" # ../src/winspector.c:1280 #: ../src/winspector.c:1440 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Musehandlinger sÃ¥som 'Alt'+træk gælder ikke for dette\n" "vindue (hvis du har valgt Alt som modificeringstast)." # ../src/winspector.c:1234 #: ../src/winspector.c:1445 msgid "Do not show in the window list" msgstr "Vis ikke vindueslisten." # ../src/winspector.c:1234 #: ../src/winspector.c:1447 msgid "Do not list the window in the window list menu." msgstr "Vis ikke dette vindue i vindueslistemenuen." # ../src/winspector.c:1291 #: ../src/winspector.c:1450 msgid "Do not let it take focus" msgstr "MÃ¥ ikke fÃ¥ fokus" # ../src/winspector.c:1293 #: ../src/winspector.c:1452 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "Dette vindue mÃ¥ ikke fÃ¥ tastaturfokus, nÃ¥r du\n" "klikker pÃ¥ det." # ../src/winspector.c:1285 #: ../src/winspector.c:1456 msgid "Keep inside screen" msgstr "Hold indenfor skærmen" # ../src/winspector.c:1287 #: ../src/winspector.c:1458 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Dette vindue mÃ¥ ikke flytte sig selv helt udenfor\n" "skærmen, af hensyn til fejlbehæftede programmer.\n" # ../src/winspector.c:1264 #: ../src/winspector.c:1462 msgid "Ignore 'Hide Others'" msgstr "Ignorér 'Skjul andre'" # ../src/winspector.c:1266 #: ../src/winspector.c:1464 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "Skjul ikke dette vindue, nÃ¥r du bruger\n" "'Skjul andre' kommandoen." # ../src/winspector.c:1297 #: ../src/winspector.c:1468 msgid "Ignore 'Save Session'" msgstr "Ignorér 'Gem session'" # ../src/winspector.c:1299 #: ../src/winspector.c:1470 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Gem ikke det associerede program i\n" "sessionsstatus, sÃ¥ den ikke bliver genstartet\n" "sammen med andre programmer, nÃ¥r Window Maker\n" "starter." # ../src/winspector.c:1305 #: ../src/winspector.c:1476 msgid "Emulate application icon" msgstr "Emulér programikon" # ../src/winspector.c:1307 #: ../src/winspector.c:1478 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Lad dette vindue fungere som et program, der giver\n" "tilstrækkelig information til Window Maker til at\n" "lave en programikon, som kan indfældes i dokken." # ../src/winspector.c:1320 #: ../src/winspector.c:1484 msgid "Disable language button" msgstr "Brug ikke sprogknap" # ../src/winspector.c:1322 #: ../src/winspector.c:1486 msgid "Remove the `toggle language' button of the window." msgstr "Fjern vinduets `toggle language' knap." # ../src/winspector.c:1339 #: ../src/winspector.c:1503 msgid "Miniwindow Image" msgstr "Miniaturebillede" # ../src/winspector.c:1373 #: ../src/winspector.c:1530 msgid "Icon filename:" msgstr "Ikonfilnavn:" # ../src/winspector.c:1385 #: ../src/winspector.c:1543 msgid "Ignore client supplied icon" msgstr "Ignorér programmets egen ikon" # ../src/winspector.c:1392 #: ../src/winspector.c:1550 msgid "Initial Workspace" msgstr "Første arbejdsbord" # ../src/winspector.c:1394 #: ../src/winspector.c:1552 msgid "The workspace to place the window when it'sfirst shown." msgstr "Hvilket arbejdsbord vinduet først skal dukke op pÃ¥." # ../src/winspector.c:1400 #: ../src/winspector.c:1558 msgid "Nowhere in particular" msgstr "Intet specielt sted" # ../src/winspector.c:1418 #: ../src/winspector.c:1576 msgid "Application Attributes" msgstr "Programattributter" # ../src/winspector.c:1429 #: ../src/winspector.c:1587 msgid "Start hidden" msgstr "Start skjult" # ../src/winspector.c:1431 #: ../src/winspector.c:1589 msgid "Automatically hide application when it's started." msgstr "Skjul automatisk programmet, nÃ¥r det starter." # ../src/winspector.c:1434 #: ../src/winspector.c:1592 msgid "No application icon" msgstr "Ingen programikon" # ../src/winspector.c:1436 #: ../src/winspector.c:1594 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Ingen programikon for dette program. Bemærk at du\n" "ikke længere vil kunne indfælde det i dokken, og\n" "alle ikoner for programmet som allerede er indfældet\n" "vil ikke længere fungere ordentligt." # ../src/winspector.c:1305 #: ../src/winspector.c:1600 msgid "Shared application icon" msgstr "Fælles programikon" #: ../src/winspector.c:1602 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "Brug et enkelt fælles programikon, hver gang dette\n" "program forekommer.\n" # ../src/session.c:980 #: ../src/wmspec.c:277 msgid "out of memory while updating wm hints" msgstr "løb tør for hukommelse mens vinduehÃ¥ndteringshints blev opdateret" # ../src/workspace.c:107 ../src/workspace.c:108 ../src/workspace.c:707 #: ../src/workspace.c:107 ../src/workspace.c:108 ../src/workspace.c:893 #, c-format msgid "Workspace %i" msgstr "Arbejdsbord %i" # ../src/workspace.c:764 #: ../src/workspace.c:943 msgid "Workspaces" msgstr "Arbejdsborde" # ../src/workspace.c:766 #: ../src/workspace.c:945 msgid "could not create Workspace menu" msgstr "kunne ikke lave arbejdsbordsmenu" # ../src/workspace.c:773 #: ../src/workspace.c:952 msgid "New" msgstr "Ny" # ../src/workspace.c:774 #: ../src/workspace.c:953 msgid "Destroy Last" msgstr "Fjern sidste" #~ msgid "Allow Lowering" #~ msgstr "Tillad skjul" # ../src/misc.c:750 #~ msgid "selection timed-out" #~ msgstr "tiden løb ud for udvalg" # ../src/proplist.c:180 #~ msgid "unterminated string" #~ msgstr "uafsluttet tekststreng" # ../src/proplist.c:247 #~ msgid "unterminated array" #~ msgstr "uafsluttet array" # ../src/proplist.c:256 #~ msgid "missing , in array or unterminated array" #~ msgstr "mangler, i array eller uafsluttet array" # ../src/proplist.c:267 #~ msgid "could not get array element" #~ msgstr "kunne ikke skaffe array element" # ../src/proplist.c:297 #~ msgid "unterminated dictionary" #~ msgstr "uafsluttet ordbog" # ../src/proplist.c:315 #~ msgid "missing dictionary key" #~ msgstr "manglende ordbogstast" # ../src/proplist.c:317 #~ msgid "missing dictionary entry key or unterminated dictionary" #~ msgstr "manglende ordbogslinjetast eller uafsluttet ordbog" # ../src/proplist.c:323 #~ msgid "error parsing dictionary key" #~ msgstr "kunne ikke behandle ordbogstast" # ../src/proplist.c:332 #~ msgid "missing = in dictionary entry" #~ msgstr "manglende = i ordbogslinje" # ../src/proplist.c:351 #~ msgid "missing ; in dictionary entry" #~ msgstr "manglende ; i ordbogslinje" # ../src/proplist.c:432 #~ msgid "" #~ "was expecting a string, dictionary, data or array. If it's a string, try " #~ "enclosing it with \"." #~ msgstr "" #~ "forventede en tekststreng, ordbog, data eller array. Hvis det er en " #~ "streng, prøv at afslutte den med \"." # ../src/proplist.c:434 #~ msgid "Comments are not allowed inside WindowMaker owned domain files." #~ msgstr "Kommentarer er ikke tilladt inden i WindowMakers domænefiler." # ../src/proplist.c:453 #~ msgid "could not open domain file %s" #~ msgstr "kunne ikke Ã¥bne domænefil %s" # ../src/proplist.c:466 #~ msgid "extra data after end of file" #~ msgstr "ekstra data efter filens slutning" # ../src/screen.c:463 #~ msgid "error making logo image for panel:%s" #~ msgstr "kunne ikke lave logobillede for panel:%s" # ../src/winspector.c:1358 #~ msgid "Update" #~ msgstr "Opdatér" # ../src/xutil.c:228 #~ msgid "invalid data in selection" #~ msgstr "ugyldigt data i markering" # ../src/dock.c:1134 #~ msgid "Keep Attracted Icons" #~ msgstr "Behold tiltrukkede ikoner" # ../src/dockedapp.c:252 #~ msgid "" #~ "Sorry, icon cannot be made omnipresent. Please make sure that no other " #~ "icon is docked in the same position on the other workspaces, and the Clip " #~ "is not full in some workspace, then try again." #~ msgstr "" #~ "Ikonen kan ikke være pÃ¥ alle arbejdsborde. Se til at ingen anden ikon er " #~ "indfældet pÃ¥ samme sted pÃ¥ de andre arbejdsborde og at Clip'en ikke er " #~ "fuld pÃ¥ noget arbejdsbord, og prøv igen." # ../src/menu.c:307 #~ msgid "wrealloc() failed while trying to add menu item" #~ msgstr "wrealloc() fejlede under opbygningning af menuen" #~ msgid "(Un)Select Icon" #~ msgstr "(Fra)Vælg ikon" #~ msgid "Keep Icon(s)" #~ msgstr "Behold ikon(er)" #~ msgid "The following character sets are missing in %s:" #~ msgstr "Følgende tegnsæt mangler %s:" #~ msgid "The string \"%s\" will be used in place" #~ msgstr "Tekststrengen \"%s\" vil blive brugt i stedetfor" #~ msgid "of any characters from those sets." #~ msgstr "for tegn fra disse tegnsæt." #~ msgid "could not create font set %s. Trying fixed" #~ msgstr "kunne ikke skabe font sæt %s. Prøver standard" #~ msgid "could not load font %s. Trying fixed" #~ msgstr "kunne ikke indlæse font %s. Prøver standard" WindowMaker-0.95.5/po/hr.po0000644000175000017500000010700412214432632012352 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: 0.80.2\n" "PO-Revision-Date: 1998-08-18 16:28:19+0200\n" "Last-Translator: Toni Bilić \n" "Language-Team: Croatian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:509 ../src/dialog.c:215 ../src/dialog.c:271 ../src/dock.c:2953 ../src/dockedapp.c:206 ../src/winspector.c:279 ../src/winspector.c:295 msgid "Error" msgstr "GreÅ¡ka" #: ../src/appicon.c:510 msgid "Could not open specified icon file" msgstr "Ne mogu ovoriti navedenu ikonu" #: ../src/appicon.c:511 ../src/dialog.c:114 ../src/dialog.c:215 ../src/dialog.c:271 ../src/dialog.c:451 ../src/dock.c:420 ../src/dock.c:2954 ../src/dockedapp.c:206 ../src/dockedapp.c:350 ../src/winspector.c:280 ../src/winspector.c:296 msgid "OK" msgstr "U redu" #: ../src/appicon.c:532 ../src/dock.c:268 ../src/winmenu.c:85 msgid "Kill Application" msgstr "Ubij Aplikaciju" #: ../src/appicon.c:533 ../src/dock.c:269 ../src/winmenu.c:86 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Ovo će ubiti aplikaciju.\n" "Promjene koje nisu snimljene bit će izgubljene.\n" "Molim potvrdite." #: ../src/appicon.c:534 ../src/dock.c:270 ../src/winmenu.c:87 msgid "Yes" msgstr "Da" #: ../src/appicon.c:534 ../src/dock.c:270 ../src/winmenu.c:87 msgid "No" msgstr "Ne" #: ../src/appicon.c:548 ../src/dock.c:1030 msgid "Unhide Here" msgstr "Pokaži ovdje" #: ../src/appicon.c:549 ../src/dock.c:1032 msgid "(Un)Hide" msgstr "Otkrij/Sakrij" #: ../src/appicon.c:550 msgid "Set Icon..." msgstr "Postavi ikonu..." #: ../src/appicon.c:551 ../src/dock.c:1036 ../src/winmenu.c:342 msgid "Kill" msgstr "Ubij" #: ../src/defaults.c:690 ../src/startup.c:686 ../src/startup.c:704 ../src/startup.c:710 msgid "could not read domain \"%s\" from defaults database" msgstr "ne mogu proÄitati domenu \"%s\" iz baze postavki" #: ../src/defaults.c:736 ../src/defaults.c:860 ../src/defaults.c:899 ../src/defaults.c:929 msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Domena %s (%s) baze postavki je neÄitljiva" #: ../src/defaults.c:741 ../src/defaults.c:881 ../src/defaults.c:912 ../src/defaults.c:938 msgid "could not load domain %s from user defaults database" msgstr "ne mogu proÄitati domenu %s iz korisnikove baze postavki" #: ../src/defaults.c:752 ../src/defaults.c:845 msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Domena %s (%s) globalne baze postavki je neÄitljiva" #: ../src/defaults.c:771 ../src/defaults.c:850 msgid "could not load domain %s from global defaults database" msgstr "ne mogu uÄitati domenu %s iz globalne baze postavki" #: ../src/defaults.c:1240 msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "kriva vrijednost opcije za kjluÄ \"%s\". Trebala bi biti jedna od %s" #: ../src/defaults.c:1287 msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "ne mogu konvertirati \"%s\" u logiÄki izraz za \"%s\"" #: ../src/defaults.c:1292 ../src/defaults.c:1326 ../src/defaults.c:1358 ../src/defaults.c:1371 ../src/defaults.c:1386 ../src/defaults.c:1401 ../src/defaults.c:1472 ../src/defaults.c:1484 ../src/defaults.c:1739 ../src/defaults.c:1753 ../src/defaults.c:1791 ../src/defaults.c:1803 ../src/defaults.c:1815 ../src/defaults.c:1838 ../src/defaults.c:1865 ../src/defaults.c:1878 ../src/defaults.c:1891 ../src/defaults.c:1921 ../src/defaults.c:1962 ../src/defaults.c:1974 ../src/defaults.c:1986 ../src/defaults.c:2012 ../src/defaults.c:2032 ../src/defaults.c:2045 ../src/defaults.c:2060 ../src/defaults.c:2099 ../src/defaults.c:2164 msgid "using default \"%s\" instead" msgstr "umjesto toga koristim default \"%s\"" #: ../src/defaults.c:1323 msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "ne mogu konvertirati \"%s\" u integer za \"%s\"" #: ../src/defaults.c:1353 ../src/defaults.c:1467 ../src/defaults.c:1734 ../src/defaults.c:1786 ../src/defaults.c:1957 ../src/wdefaults.c:544 ../src/wdefaults.c:580 msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Krivi format opcije za \"%s\". Trebao bi biti %s" #: ../src/defaults.c:1366 msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Krivi broj elemenata u nizu za \"%s\"" #: ../src/defaults.c:1381 msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Kriva vrijednost za \"%s\". Trebale bi biti koordinate." #: ../src/defaults.c:1396 msgid "can't convert array to integers for \"%s\"." msgstr "ne mogu konvertirati niz u integere za \"%s\"." #: ../src/defaults.c:1580 ../src/defaults.c:1611 ../src/defaults.c:1623 ../src/defaults.c:1665 ../src/defaults.c:1705 msgid "\"%s\" is not a valid color name" msgstr "\"%s\"je krivo ime za boju" #: ../src/defaults.c:1592 msgid "bad number of arguments in gradient specification" msgstr "krivi broj argumenata u specifikaciji gradacije" #: ../src/defaults.c:1638 msgid "too few arguments in multicolor gradient specification" msgstr "premalo argumenata u specifikaciji viÅ¡ebojne gradacije" #: ../src/defaults.c:1748 msgid "Error in texture specification for key \"%s\"" msgstr "GreÅ¡ka u specifikaciji teksture za \"%s\"" #: ../src/defaults.c:1799 ../src/defaults.c:1834 ../src/defaults.c:1970 ../src/defaults.c:2008 msgid "Too few elements in array for key \"WorkspaceBack\"." msgstr "Premalo elemenata u nizu za \"WorkspaceBack\"." #: ../src/defaults.c:1811 ../src/defaults.c:1982 msgid "Wrong type for workspace background. Should be Texture." msgstr "Krivi tip za pozadinu radnog prostora. Trebala bi biti tekstura." #: ../src/defaults.c:1861 ../src/defaults.c:2028 msgid "Cannot get color entry for key \"WorkspaceBack\"." msgstr "Ne mogu uzeti boju za \"WorkspaceBack\"." #: ../src/defaults.c:1873 ../src/defaults.c:2040 msgid "key \"WorkspaceBack\" has invalid color \"%s\"" msgstr "\"WorkspaceBack\" ima pogreÅ¡nu boju \"%s\"" #: ../src/defaults.c:1887 ../src/defaults.c:2056 msgid "Cannot get file entry for key \"WorkspaceBack\"." msgstr "Ne mogu uzeti datoteÄni zapis za \"WorkspaceBack\"." #: ../src/defaults.c:1900 ../src/defaults.c:2081 msgid "could not find background image \"%s\"" msgstr "ne mogu naći sliku za pozadinu \"%s\"" #: ../src/defaults.c:1917 ../src/defaults.c:2095 msgid "Error in texture specification for key \"WorkspaceBack\"" msgstr "GreÅ¡ka u specifikaciji teksture za \"WorkspaceBack\"" #: ../src/defaults.c:2076 msgid "could not run \"%s\"" msgstr "ne mogu pokrenuti \"%s\"" #: ../src/defaults.c:2129 msgid "could not load any usable font" msgstr "ne mogu uÄitati nijedan iskoristivi font" #: ../src/defaults.c:2159 msgid "could not get color for key \"%s\"" msgstr "ne mogu uzeti boju za \"%s\"" #: ../src/defaults.c:2218 ../src/rootmenu.c:440 msgid "%s:invalid key modifier \"%s\"" msgstr "%s:krivi modifier \"%s\"" #: ../src/defaults.c:2230 msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: kriva specifikacija kbd kratice \"%s\"" #: ../src/defaults.c:2237 msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s krivi kljuÄ u kratici \"%s\"" #: ../src/defaults.c:2263 msgid "%s: modifier key %s is not valid" msgstr "%s: krivi modifier kljuÄ %s " #: ../src/defaults.c:2339 msgid "could not render texture for icon background" msgstr "ne mogu renderirati teksturu za pozadinu ikone" #: ../src/defaults.c:2695 msgid "background texture rendering was unsuccessfull" msgstr "neuspjeÅ¡no rednriranje teksure za pozadinu" #: ../src/defaults.c:2722 msgid "could not load image %s for option %s:%s\n" msgstr "ne mogu uÄitati image %s za opciju %s:%s\n" #: ../src/defaults.c:2738 msgid "could not spawn texture rendering subprocess for option" msgstr "" #: ../src/defaults.c:2792 ../src/defaults.c:2880 msgid "could not render texture for workspace background" msgstr "ne mogu renderirati teksturu za pozadinu radnog prostora" #: ../src/dialog.c:114 ../src/dialog.c:458 ../src/dock.c:420 ../src/dockedapp.c:356 ../src/rootmenu.c:207 ../src/rootmenu.c:236 msgid "Cancel" msgstr "Otkaži" #: ../src/dialog.c:210 msgid "Could not open directory " msgstr "Ne mogu otvoriti direktorij " #: ../src/dialog.c:266 msgid "Could not load image file " msgstr "Ne mogu uÄitati image datoteku " #: ../src/dialog.c:395 msgid "Directories" msgstr "Direktoriji" #: ../src/dialog.c:404 msgid "Icons" msgstr "Ikone" #: ../src/dialog.c:441 msgid "File Name:" msgstr "Datoteka:" #: ../src/dialog.c:464 msgid "Choose File" msgstr "Izaberi datoteku" #: ../src/dialog.c:474 msgid "Icon Chooser" msgstr "BiraÄ ikona" #: ../src/dock.c:209 msgid "Type the name for workspace %i:" msgstr "UpiÅ¡i ime za radni prostor %i:" #: ../src/dock.c:210 ../src/dock.c:1009 msgid "Rename Workspace" msgstr "Promjeni ime radnom prostoru" #: ../src/dock.c:418 msgid "Workspace Clip" msgstr "Clip radnog prostora" #: ../src/dock.c:419 msgid "All selected icons will be removed!" msgstr "Sve odabrane ikone će biti uklonjene!" #: ../src/dock.c:469 msgid "Keep Icon" msgstr "Zadrži ikonu" #: ../src/dock.c:470 ../src/dock.c:1924 ../src/dock.c:2046 msgid "Type the command used to launch the application" msgstr "UpiÅ¡i naredbu za pokretanje aplikacije" #: ../src/dock.c:833 msgid "could not launch application %s\n" msgstr "ne mogu pokrenuti %s\n" #: ../src/dock.c:888 msgid "could not create workspace submenu for Clip menu" msgstr "ne mogu napraviti podizbornik radnog prostora za Clip meni" #: ../src/dock.c:946 msgid "could not create options submenu for Clip menu" msgstr "ne mogu napraviti podizbornik opcija za izbornik Clip-a" #: ../src/dock.c:950 ../src/dock.c:998 ../src/winspector.c:1097 msgid "Keep on top" msgstr "Drži na vrhu" #: ../src/dock.c:956 msgid "Collapsed" msgstr "SruÅ¡en" #: ../src/dock.c:962 msgid "AutoCollapse" msgstr "AutoRuÅ¡anje" #: ../src/dock.c:968 msgid "AutoAttract Icons" msgstr "AutoPrivlaÄenje ikona" #: ../src/dock.c:974 msgid "Keep Attracted Icons" msgstr "Zadrži privuÄene ikone" #: ../src/dock.c:1004 msgid "Clip Options" msgstr "Opcije clipa" #: ../src/dock.c:1011 msgid "(Un)Select Icon" msgstr "(De)Selektiraj ikonu" #: ../src/dock.c:1013 msgid "(Un)Select All Icons" msgstr "(De)Selektiraj sve ikone" #: ../src/dock.c:1016 msgid "Keep Icon(s)" msgstr "Zadrži ikonu(e)" #: ../src/dock.c:1018 msgid "Move Icon(s) To" msgstr "Stavi ikonu(e) na" #: ../src/dock.c:1023 msgid "Remove Icon(s)" msgstr "Makni ikonu(e)" #: ../src/dock.c:1025 msgid "Attract Icons" msgstr "Privuci ikone" #: ../src/dock.c:1028 msgid "Launch" msgstr "Pokreni" #: ../src/dock.c:1034 msgid "Settings..." msgstr "Postavke..." #: ../src/dock.c:1416 ../src/dock.c:1430 ../src/dock.c:1444 ../src/dock.c:1454 msgid "bad value in docked icon state info %s" msgstr "kriva vrijednost u dockiranom info stanju ikone %s" #: ../src/dock.c:1462 msgid "bad value in docked icon position %i,%i" msgstr "kriva vrijednost u dockiranoj poziciji ikone %i,%i" #: ../src/dock.c:1691 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "previÅ¡e je ikona stavljeno na dock. Zanemarujem ono Å¡to ne stane" #. icon->forced_dock = 1; #: ../src/dock.c:1923 ../src/dock.c:2045 msgid "Dock Icon" msgstr "Stavi ikonu na dock" #: ../src/dock.c:2946 ../src/dock.c:2950 msgid "Could not execute command \"%s\"" msgstr "Ne mogu izvrÅ¡iti naredbu \"%s\"" #: ../src/dockedapp.c:128 msgid "could not find icon %s, used in a docked application" msgstr "ne mogu naći ikonu %s, za dockiranu aplikaciju" #: ../src/dockedapp.c:205 msgid "Could not open specified icon file:%s" msgstr "Ne mogu otvoriti navedenu ikonu:%s" #: ../src/dockedapp.c:291 msgid "Start when WindowMaker is started" msgstr "Pokreni kada se pokrene WindowMaker" #: ../src/dockedapp.c:298 msgid "Application path and arguments" msgstr "Staze i argumenti aplikacije" #: ../src/dockedapp.c:309 msgid "Command for files dropped with DND" msgstr "Naredba za datoteke spuÅ¡tene DND-om" #: ../src/dockedapp.c:321 msgid "%d will be replaced with the file name" msgstr "%d će biti zamjenjeno imenom datoteke" #: ../src/dockedapp.c:325 msgid "DND support was not compiled in" msgstr "PodrÅ¡ka za DND nije ukompajlirana" #: ../src/dockedapp.c:331 msgid "Icon Image" msgstr "Ikona" #: ../src/dockedapp.c:343 ../src/winspector.c:1191 msgid "Browse..." msgstr "Potraži..." #: ../src/dockedapp.c:388 msgid "Docked Application Settings" msgstr "Postavke dockirane aplikacije" #: ../src/event.c:372 msgid "stack overflow: too many dead processes" msgstr "stack overflow: previÅ¡e mrtvih procesa" #: ../src/framewin.c:526 msgid "could not render gradient: %s" msgstr "ne mogu rednderiradi gradaciju: %s" #: ../src/framewin.c:542 ../src/framewin.c:557 ../src/framewin.c:568 ../src/framewin.c:575 ../src/framewin.c:582 ../src/icon.c:296 ../src/texture.c:492 msgid "error rendering image:%s" msgstr "greÅ¡ka pri rednderiranju slike: %s" #: ../src/icon.c:182 ../src/wdefaults.c:402 msgid "error loading image file \"%s\": %s" msgstr "greÅ¡ka pri uÄitavanju image datoteke \"%s\": %s" #: ../src/icon.c:428 ../src/icon.c:437 msgid "could not create directory %s" msgstr "ne mogu kreirati direktorij %s" #: ../src/icon.c:702 msgid "could not find default icon \"%s\"" msgstr "ne mogu naći glavnu ikonu \"%s\"" #: ../src/icon.c:708 msgid "could not load default icon \"%s\":%s" msgstr "ne mogu uÄitati glavnu ikonu \"%s\":%s" #: ../src/main.c:186 msgid "could not exec window manager" msgstr "ne mogu pokrenuti window manager" #: ../src/main.c:187 msgid "Restart failed!!!" msgstr "Ponovno startanje nije uspjelo!!!" #: ../src/main.c:234 msgid "%s aborted.\n" msgstr "%s se sruÅ¡io.\n" #: ../src/main.c:245 msgid "usage: %s [-options]\n" msgstr "upotreba: %s [-opcije]\n" #: ../src/main.c:246 msgid "options:" msgstr "opcije:" #: ../src/main.c:248 msgid " -nocpp \t\tdisable preprocessing of configuration files" msgstr " -nocpp \t\tonemogući preprocesiranje konfiguracijskih datoteka" #: ../src/main.c:250 msgid " -nodock\t\tdo not open the application Dock" msgstr " -nodock\t\tne otvaraj Dock aplikaciju" #: ../src/main.c:251 msgid " -noclip\t\tdo not open the workspace Clip" msgstr " -noclip\t\tne otvaraj Clip radnih prostora" #: ../src/main.c:255 msgid " -visualid visualid\tvisual id of visual to use" msgstr " -visualid visualid\tvisual id of visual to use" #: ../src/main.c:256 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tdisplay za koriÅ¡tenje" #: ../src/main.c:257 msgid " -version\t\tprint version and exit" msgstr " -version\t\tispiÅ¡i verziju i izaÄ‘i" #: ../src/main.c:269 msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "Ne mogu naći korisniÄki GNUstep direktorij (%s).\n" "Provjerite da li ste pravilno instalirali Window Maker i pokrenuli wmaker.inst" #: ../src/main.c:291 msgid "%s:could not execute initialization script" msgstr "%s:ne mogu izvrÅ¡iri inicijalizacijsku skriptu" #: ../src/main.c:310 msgid "%s:could not execute exit script" msgstr "%s:ne mogu izvrÅ¡iti izlaznu skriptu" #: ../src/main.c:367 ../src/main.c:374 ../src/main.c:381 msgid "too few arguments for %s" msgstr "premalo argumenata za %s" #: ../src/main.c:385 msgid "bad value for visualid: \"%s\"" msgstr "kriva vrijednost za visualid: \"%s\"" #: ../src/main.c:426 msgid "X server does not support locale" msgstr "X server ne podržava locale" #: ../src/main.c:429 msgid "cannot set locale modifiers" msgstr "ne mogu postaviti loacale modifiers" #: ../src/main.c:446 msgid "could not open display \"%s\"" msgstr "ne mogu otvoriti display \"%s\"" #: ../src/menu.c:285 msgid "wrealloc() failed while trying to add menu item" msgstr "wrealloc() pao pokuÅ¡avajući dodati postavku u izbornik" #: ../src/misc.c:71 msgid "could not define value for %s for cpp" msgstr "ne mogu definirati vrijednost za %s za cpp" #: ../src/misc.c:101 msgid "could not get password entry for UID %i" msgstr "ne mogu uzeti password zapis za UID %i" #: ../src/misc.c:125 msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "vaÅ¡a maÅ¡ina je krivo konfigurirana. HOSTNAME je postavljen na %s" #: ../src/misc.c:131 msgid "your machine is misconfigured. HOST is set to %s" msgstr "vaÅ¡a maÅ¡ina je krivo konfigurirana. HOST je postavljen na %s" #: ../src/misc.c:773 msgid "selection timed-out" msgstr "vrijeme za odabir isteklo" #: ../src/misc.c:788 msgid "Program Arguments" msgstr "Argumenti programa" #: ../src/misc.c:807 msgid "Enter command arguments:" msgstr "UpiÅ¡i argumente naredbe:" #: ../src/misc.c:833 msgid "unable to get dropped data from DND drop" msgstr "ne mogu uzeti spuÅ¡tene podatke od DND spuÅ¡tanja" #: ../src/misc.c:841 msgid "error getting dropped data from DND drop" msgstr "greÅ¡ka pri uzimanju spuÅ¡tenih podataka od DND spuÅ¡tanja" #: ../src/misc.c:847 msgid "out of memory while getting data from DND drop" msgstr "iskoriÅ¡tena sva memorija pri uzimanju podataka od DND spuÅ¡tanja" #: ../src/misc.c:891 ../src/misc.c:1011 msgid "out of memory during expansion of \"%s\"" msgstr "iskoriÅ¡tena sva memorija za vrijeme Å¡irenja \"%s\"" #: ../src/misc.c:945 msgid "out of memory during expansion of \"%w\"" msgstr "iskoriÅ¡tena sva memorija za vrijeme Å¡irenja \"%w\"" #: ../src/misc.c:964 msgid "out of memory during expansion of \"%a\"" msgstr "iskoriÅ¡tena sva memorija za vrijeme Å¡irenja \"%a\"" #: ../src/misc.c:990 msgid "out of memory during expansion of \"%d\"" msgstr "iskoriÅ¡tena sva memorija za vrijeme Å¡irenja \"%d\"" #: ../src/misc.c:1004 msgid "selection not available" msgstr "odabir nije dostupan" #: ../src/misc.c:1076 ../src/misc.c:1082 msgid "bad window name value in %s state info" msgstr "kriva vrijednost imena za prozor u %s u info stanju" #: ../src/pixmap.c:235 msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "ne mogu uÄitati bitmap datoteku \"%s\" za mask. Neću koristiti mask." #: ../src/proplist.c:180 msgid "unterminated string" msgstr "nezavrÅ¡en string" #: ../src/proplist.c:247 msgid "unterminated array" msgstr "nezavrÅ¡en niz" #: ../src/proplist.c:256 msgid "missing , in array or unterminated array" msgstr "nedostaje , u nizu ili nezavrÅ¡en niz" #: ../src/proplist.c:267 msgid "could not get array element" msgstr "ne mogu uzeti element niza" #: ../src/proplist.c:297 msgid "unterminated dictionary" msgstr "ne zavrÅ¡en rijeÄnik" #: ../src/proplist.c:315 msgid "missing dictionary key" msgstr "nedostaje kljuÄ rijeÄnika" #: ../src/proplist.c:317 msgid "missing dictionary entry key or unterminated dictionary" msgstr "nedostaje kljuÄ rijeÄnika ili nezavrÅ¡en niz" #: ../src/proplist.c:323 msgid "error parsing dictionary key" msgstr "greÅ¡ka pri parsiranju kljuÄa rijeÄnika" #: ../src/proplist.c:332 msgid "missing = in dictionary entry" msgstr "nedostaje = u rijeÄniÄkom zapisu" #: ../src/proplist.c:351 msgid "missing ; in dictionary entry" msgstr "nedostaje ; u rijeÄniÄkom zapisu" #: ../src/proplist.c:432 msgid "was expecting a string, dictionary, data or array." msgstr "je oÄekivao string, rijeÄnik, podatak ili niz." #: ../src/proplist.c:434 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "Komentari nisu dozvoljeni unutar WindowMaker owned datoteka." #: ../src/proplist.c:453 msgid "could not open domain file %s" msgstr "ne mogu otvoriti domain datoteku %s" #: ../src/proplist.c:466 msgid "extra data after end of file" msgstr "viÅ¡ak podataka nakon kraja datoteke" #: ../src/resources.c:71 msgid "The following character sets are missing in %s:" msgstr "Sljedeći character setovi nedostaju u %s:" #: ../src/resources.c:76 msgid "The string \"%s\" will be used in place" msgstr "String \"%s\"će biti koriÅ¡ten na mjestu" #: ../src/resources.c:78 msgid "of any characters from those sets." msgstr "od bilo kojih znakova iz tih setova" #: ../src/resources.c:81 msgid "could not create font set %s. Trying fixed" msgstr "ne mogu napraviti font set %s. Probat ću fixed" #: ../src/resources.c:98 msgid "could not load font %s. Trying fixed" msgstr "ne mogu uÄitati font %s. Probat ću fixed" #: ../src/resources.c:136 msgid "could not parse color \"%s\"" msgstr "ne mogu parsirati boju \"%s\"" #: ../src/resources.c:140 msgid "could not allocate color \"%s\"" msgstr "ne mogu alocirati boju \"%s\"" #: ../src/rootmenu.c:205 ../src/rootmenu.c:207 ../src/rootmenu.c:236 msgid "Exit" msgstr "Izlaz" #: ../src/rootmenu.c:206 msgid "Exit window manager?" msgstr "Izlaz iz window managera?" #: ../src/rootmenu.c:234 msgid "Close X session" msgstr "Zatvori X session" #: ../src/rootmenu.c:235 msgid "" "Close Window System session?\n" "(all applications will be closed)" msgstr "" "Zatvoriti Window System session?\n" "(sve aplikacije će biti zatvorene)" #: ../src/rootmenu.c:454 msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:kriva specifikacija za kbd kraticu \"%s\" za zapis %s" #: ../src/rootmenu.c:462 msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:krivi kljuÄ u kratici \"%s\" za zapis %s" #: ../src/rootmenu.c:515 msgid "%s: unmatched '\"' in menu file" msgstr "%s: unmatched '\" u datoteci izbornika" #: ../src/rootmenu.c:565 msgid "%s: missing command" msgstr "%s: nedostaje naredba" #: ../src/rootmenu.c:598 msgid "invalid OPEN_MENU specification: %s" msgstr "kriva OPEN_MENU specifikacija: %s" #: ../src/rootmenu.c:663 msgid "%s:could not stat menu" msgstr "%s:ne mogu statirati izbornik" #: ../src/rootmenu.c:671 msgid "%s:could not stat menu :%s" msgstr "%s:ne mogu statirati izbornik: %s" #: ../src/rootmenu.c:689 msgid "too many parameters in OPEN_MENU: %s" msgstr "previÅ¡e parametara u OPEN_MENU: %s" #: ../src/rootmenu.c:725 msgid "There are more than one WORKSPACE_MENU commands in the applications menu. Only one is allowed." msgstr "Ima viÅ¡e nego jedna WORKSPACE_MENU naredba u izborniku aplikacija. Smije biti samo jedna." #: ../src/rootmenu.c:754 ../src/rootmenu.c:772 msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:nedostaje parametar za naredbu izbornika \"%s\"" #: ../src/rootmenu.c:835 msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:nepoznata naredba \"%s\" u konfiguraciji izbornika" #: ../src/rootmenu.c:843 msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:ne mogu dodati kraticu za zapis \"%s\"" #: ../src/rootmenu.c:980 msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s prekoraÄena maksimalna veliÄina linije u konfiguraciji izbornika: %s" #: ../src/rootmenu.c:1002 ../src/rootmenu.c:1094 ../src/rootmenu.c:1195 msgid "%s:missing command in menu config: %s" msgstr "%s:nedostaje naredba u konfiguraciji izbornika: %s" #: ../src/rootmenu.c:1032 msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:greÅ¡ka u sintaksi u datoteci izbornika: nedostaje deklaracija END" #: ../src/rootmenu.c:1061 ../src/rootmenu.c:1160 msgid "could not make arguments for menu file preprocessor" msgstr "ne mogu napraviti argumente za preprocesor datoteke izbornika" #: ../src/rootmenu.c:1067 ../src/rootmenu.c:1167 msgid "%s:could not open/preprocess menu file" msgstr "%s:ne mogu otvoriti/preprocesirati datoteku izbornika" #: ../src/rootmenu.c:1079 ../src/rootmenu.c:1180 msgid "%s:could not open menu file" msgstr "%s: ne mogu otvoriti datoteku izbornika" #: ../src/rootmenu.c:1106 msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:kriva datoteka izbornika. Nedostaje MENU naredba" #: ../src/rootmenu.c:1115 msgid "error reading preprocessed menu data" msgstr "greÅ¡ka pri Äitanju preprocesiranih podataka za izbornik" #: ../src/rootmenu.c:1207 msgid "%s:no title given for the root menu" msgstr "%s:nije naveden naslov za root izbornik" #: ../src/rootmenu.c:1261 ../src/rootmenu.c:1324 ../src/rootmenu.c:1368 msgid "out of memory while constructing directory menu %s" msgstr "iskoriÅ¡tena sva memorija prilikom konstruiranja direktorij izbornika %s" #: ../src/rootmenu.c:1271 msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:ne mogu statirati datoteku \"%s\" u izbornik direktoriju" #: ../src/rootmenu.c:1417 msgid "Commands" msgstr "Naredbe" #: ../src/rootmenu.c:1419 msgid "Exit..." msgstr "Izlaz" #: ../src/rootmenu.c:1486 msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "ne mogu naći datoteku izbornika \"%s\" naveden u WMRootMenu datoteci" #: ../src/rootmenu.c:1493 msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "ne mogu pristupiti datoteci izbornika \"%s\" navedenoj u WMRootMenu" #: ../src/rootmenu.c:1521 ../src/rootmenu.c:1576 msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:greÅ¡ka u formatu u konfiguraciji root izbornika \"%s\"" #: ../src/screen.c:412 msgid "could not load logo image for panels" msgstr "ne mogu uÄitati logo image za panele" #: ../src/screen.c:415 msgid "error making logo image for panel:%s" msgstr "greÅ¡ka pri kreiranju logo imagea za panel:%s" #: ../src/screen.c:594 msgid "could not initialize graphics library context: %s" msgstr "ne mogu inicijalizirati sadržaj grafiÄke biblioteke: %s" #: ../src/session.c:113 ../src/wdefaults.c:562 ../src/winspector.c:343 msgid "can't convert \"%s\" to boolean" msgstr "ne mogu konvertirati \"%s\" u logiÄki izraz" #: ../src/stacking.c:88 msgid "could not get window list!!" msgstr "ne mogu uzeti listu prozora!!" #: ../src/startup.c:188 msgid "internal X error: %s\n" msgstr "interna X greÅ¡ka: %s\n" #: ../src/startup.c:251 msgid "got signal %i (%s) - restarting\n" msgstr "dobio sam signal %i (%s) - ponovno startam\n" #: ../src/startup.c:253 msgid "got signal %i - restarting\n" msgstr "primio signal %i - ponovno startam\n" #: ../src/startup.c:267 msgid "%s: Received signal SIGTERM. Exiting..." msgstr "%s: Primio signal SIGTERM. Izlazim..." #: ../src/startup.c:279 msgid "got signal %i (%s)\n" msgstr "primio signal %i (%s)\n" #: ../src/startup.c:281 msgid "got signal %i\n" msgstr "primio signal %i\n" #: ../src/startup.c:286 msgid "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "sruÅ¡io se dok sam pokuÅ¡avao Äistiti. Prekidam odmah." #. restart another window manager so that the X session doesn't #. * go to space #: ../src/startup.c:297 msgid "trying to start alternative window manager..." msgstr "pokuÅ¡avam startati drugi window manager" #: ../src/startup.c:696 msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "veliÄina ikone je konfigurirana ba %i, ali je premala. Umjetsto toga koristim 16\n" #: ../src/startup.c:740 msgid "it seems that there already is a window manager running" msgstr "Äini se da je već pokrenut window manager" #: ../src/startup.c:746 msgid "could not manage screen %i" msgstr "ne mogu upravljati ekranom %i" #: ../src/startup.c:802 msgid "could not manage any screen" msgstr "ne mogu upravljati nijednim ekranom" #: ../src/switchmenu.c:112 msgid "Windows" msgstr "Lista prozora" #: ../src/texture.c:267 msgid "image file \"%s\" used as texture could not be found." msgstr "ne mogu naći image datoteku \"%s\" koja se koristi kao tekstura." #: ../src/texture.c:273 msgid "could not load texture pixmap \"%s\":%s" msgstr "ne mogu uÄitati teksturni pixmap \"%s\":%s" #: ../src/texture.c:377 ../src/texture.c:488 msgid "could not render texture: %s" msgstr "ne mogu renderirati teksturu: %s" #: ../src/wdefaults.c:396 msgid "could not find icon file \"%s\"" msgstr "ne mogu naći ikonu \"%s\"" #: ../src/window.c:2261 ../src/window.c:2404 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 "" "Äini se da su NumLock, ScrollLock ili sliÄni kljuÄevi ukljuÄeni.\n" "IskljuÄite ih ili neke akcije s miÅ¡om i tastaturom neće raditi." #: ../src/winmenu.c:192 ../src/winmenu.c:199 msgid "Shortcut" msgstr "Kratica" #: ../src/winmenu.c:242 ../src/winmenu.c:258 msgid "could not create submenu for window menu" msgstr "ne mogu kreirati podizbornik za izornik prozora" #. #. * 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:284 msgid "(Un)Maximize" msgstr "(De)Maksimiziraj" #: ../src/winmenu.c:292 msgid "Miniaturize" msgstr "Minimiziraj" #: ../src/winmenu.c:301 msgid "(Un)Shade" msgstr "(Un)Shade" #: ../src/winmenu.c:309 msgid "Hide" msgstr "Sakrij" #: ../src/winmenu.c:317 msgid "Select" msgstr "Odaberi" #: ../src/winmenu.c:325 msgid "Move To" msgstr "Stavi na" #: ../src/winmenu.c:330 msgid "Attributes..." msgstr "Atributi..." #: ../src/winmenu.c:332 msgid "Select Shortcut" msgstr "Odaberi kratici" #: ../src/winmenu.c:335 msgid "Close" msgstr "Zatvori" #: ../src/winspector.c:277 msgid "Could not find icon \"%s\" specified for this window" msgstr "Ne mogu naći ikonu \"%s\" dodjeljenu ovom prozoru" #: ../src/winspector.c:293 msgid "Could not open specified icon \"%s\":%s" msgstr "Ne mogu otvoriti navedenu ikonu \"%s\":%s" #: ../src/winspector.c:989 msgid "Save" msgstr "Snimi" #: ../src/winspector.c:995 msgid "Apply" msgstr "Primjeni" #: ../src/winspector.c:1001 msgid "Revert" msgstr "Vrati" #: ../src/winspector.c:1010 ../src/winspector.c:1020 msgid "Window Specification" msgstr "Specifikacija prozora" #: ../src/winspector.c:1011 msgid "Window Attributes" msgstr "Atributi prozora" #: ../src/winspector.c:1012 msgid "Advanced Options" msgstr "Napredne opcije" #: ../src/winspector.c:1013 msgid "Icon and Initial Workspace" msgstr "Ikona i poÄetna radni prostor" #: ../src/winspector.c:1014 msgid "Application Specific" msgstr "SpecifiÄno za aplikaciju" #: ../src/winspector.c:1028 msgid "Defaults for all windows" msgstr "Defaults za sve prozore" #: ../src/winspector.c:1064 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 "" "Kada bude snimljeno, konfiguracija će\n" "biti primjenjena na sve prozore koji\n" "imaju svoju WM_CLASS postavku\n" "postavljenu na gore navedeno ime." #: ../src/winspector.c:1071 msgid "Attributes" msgstr "Atributi" #: ../src/winspector.c:1081 msgid "Disable titlebar" msgstr "Onemogući titlebar" #: ../src/winspector.c:1085 msgid "Disable resizebar" msgstr "Onemogući resizebar" #: ../src/winspector.c:1089 msgid "Disable close button" msgstr "Bez dugmeta za zatvaranje" #: ../src/winspector.c:1093 msgid "Disable miniaturize button" msgstr "Bez dugmeta za minimiziranje" #: ../src/winspector.c:1101 msgid "Omnipresent" msgstr "SvugdjePrisutan" #: ../src/winspector.c:1105 msgid "Start Miniaturized" msgstr "Pokreni minimizirano" #: ../src/winspector.c:1109 msgid "Skip window list" msgstr "PreskoÄi listu prozora" #: ../src/winspector.c:1123 msgid "Advanced" msgstr "Napredno" #: ../src/winspector.c:1133 msgid "Ignore HideOthers" msgstr "Ignoriraj SakrijOstale" #: ../src/winspector.c:1137 msgid "Don't bind keyboard shortcuts" msgstr "Ne primjenjuj kbd kratice" #: ../src/winspector.c:1141 msgid "Don't bind mouse clicks" msgstr "Ne primjenjuj klikove miÅ¡a" #: ../src/winspector.c:1145 msgid "Keep inside screen" msgstr "Drži unutar ekrana" #: ../src/winspector.c:1149 msgid "Don't let it take focus" msgstr "Ne daj da uzme fokus" #: ../src/winspector.c:1153 msgid "Don't Save Session" msgstr "Ne snimaj sessiju" #: ../src/winspector.c:1157 msgid "Emulate Application Icon" msgstr "Emulirati aplikacijsku ikonu" #: ../src/winspector.c:1172 msgid "Enable the \"Don't bind...\" options to allow the application to receive all mouse or keyboard events." msgstr "Omogući \"Ne primjenjuj...\" opcije da bi dopustio aplikaciji da primi sve miÅ¡ ili tastaturne dogaÄ‘aje." #: ../src/winspector.c:1179 msgid "Miniwindow Image" msgstr "Miniwindow Image" #: ../src/winspector.c:1198 msgid "Update" msgstr "Update" #: ../src/winspector.c:1213 msgid "Icon file name:" msgstr "Ime ikone:" #: ../src/winspector.c:1225 msgid "Ignore client supplied icon" msgstr "Zanemari ponuÄ‘enu ikonu" #: ../src/winspector.c:1232 msgid "Initial Workspace" msgstr "PoÄetni randi prostor" #: ../src/winspector.c:1237 msgid "Nowhere in particular" msgstr "Nigdje posebno" #: ../src/winspector.c:1271 msgid "Application Wide" msgstr "Preko cijele aplikacije" #: ../src/winspector.c:1281 msgid "Start Hidden" msgstr "Pokreni skriveno" #: ../src/winspector.c:1285 msgid "No application icon" msgstr "Nema ikone za aplikaciju" #: ../src/workspace.c:89 ../src/workspace.c:90 ../src/workspace.c:423 msgid "Workspace %i" msgstr "Radni prostor %i" #: ../src/workspace.c:471 msgid "Workspaces" msgstr "Radni prostori" #: ../src/workspace.c:473 msgid "could not create Workspace menu" msgstr "ne mogu kreirati izbornik Radnog prostora" #: ../src/workspace.c:480 msgid "New" msgstr "Novi" #: ../src/workspace.c:481 msgid "Destroy Last" msgstr "UniÅ¡ti zadnju" #: ../src/xutil.c:228 msgid "invalid data in selection" msgstr "krivi podaci u odabiru" # msgid "could not create workspace submenu for window menu" # msgstr "ne mogu kreirati radni prostor podizbornik za prozor izbornik" # # msgid "Floating Dock" # msgstr "Plutajući dock" # # msgid "Program \"%s\" not found or cannot be executed." # msgstr "Program \"%s\" ne može biti naÄ‘en ili izvrÅ¡en." # # msgid "Invalid justification type \"%s\". Should be Left, Center or Right" # msgstr "PogreÅ¡an tip poravnanja \"%s\". Trebao bi biti Left, Center ili Right" # # msgid "Invalid colormap focus mode \"%s\". Should be Manual or Auto." # msgstr "PogreÅ¡ni colormap fokus mod \"%s\". Trebao bi biti Manual ili Auto." # # msgid "Invalid geometry display type \"%s\". Should be Center, Corner, Floating or Line." # msgstr "PogreÅ¡ni tip geometry prikaza \"%s\". Trebao bi biti Center, Corner, Floating ili Line." # # msgid "Invalid window placement mode \"%s\". Should be Auto, Cascade, Random or Manual." # msgstr "PogreÅ¡ni window placement mod \"%s\". Trebao bi biti Auto, Cascade, Random ili Manual." # # msgid "Invalid focus mode \"%s\". Should be Manual, Auto or Sloppy." # msgstr "PogreÅ¡ni fokus mod \"%s\". Trebao bi biti Manual, Auto ili Sloppy." # # msgid "Invalid mouse button \"%s\". Should be Left, Middle, Right or Button1 through Button5" # msgstr "PogreÅ¡no dugme miÅ¡a \"%s\". Trebalo bi biti Left, Middle, Right ili Button1 do Button5." # # msgid "Invalid iconification style \"%s\". Should be Zoom, Twist, Flip or None" # msgstr "Krivi stil ikonifikacije \"%s\". Trebao bi biti Zoom, Twist, Flip ili None" # # msgid "Invalid speed \"%s\". Should be UltraFast, Fast, Medium, Slow or UltraSlow." # msgstr "PogreÅ¡na brzina \"%s\". Trebala bi biti UltraFast, Fast, Medium, Slow ili UltraSlow." # # msgid "Floating Clip" # msgstr "Plutajući Clip" # # msgid "Invalid icon Position \"%s\". Should be one of blv, blh, brv, brh, tlv, tlh, trv, trh" # msgstr "Kriva pozicija ikone \"%s\". Trebala bi biti: blv, blh, brv, brh, tlv, tlh, trv ili trh" # # msgid "" # "could not find user GNUstep directory.\n" # "Make sure you have installed WindowMaker correctly and run wmaker.inst" # msgstr "" # "ne mogu naći korisnikov GNUstep direktorij.\n" # "Provjerite da li ste ispravno instalirali WinowMaker i pokrenite wmaker.inst" # # msgid "Hide Others" # msgstr "Sakrij ostale" # # msgid "Exiting...\n" # msgstr "Izlazim...\n" # # msgid "%s:could not find menu file \"%s\"" # msgstr "%s:ne mogu naći datoteku izbornika \"%s\"" # # msgid "%s:could not access menu \"%s\"" # msgstr "%s:ne mogu pristupiti izborniku \"%s\"" # # msgid "invalid kbd shortcut specification \"%s\"" # msgstr "pogreÅ¡na specifikacija kbd kratice \"%s\"" # # msgid "invalid key modifier \"%s\"" # msgstr "pogreÅ¡ni modifier \"%s\"" # # msgid "Could not find icon file specified for this window" # msgstr "Ne mogu naći ikonu specificiranu za ovaj prozor" # # msgid "could not load clip tile image" # msgstr "ne mogu uÄitati image za pozadinu clipa" # # msgid "invalid key in shortcut \"%s\"" # msgstr "krivi kljuÄ u kratici \"%s\"" # # msgid "not enough memory to open window inspector panel" # msgstr "premalo memorije za otvaranje window inspector panela" # WindowMaker-0.95.5/po/hy.po0000644000175000017500000012165212214432632012366 00000000000000# WindowMaker armenian translation. # Copyright (C) 2008 Norayr Chilingaryan # This file is distributed under the same license as the Windowmaker package. # Norayr Chilingaryan , 2008. # msgid "" msgstr "" "Project-Id-Version: WindowMaker\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-14 18:25+0000\n" "PO-Revision-Date: 2008-09-28 02:48+0400\n" "Last-Translator: Norayr Chilingaryan \n" "Language-Team: Armenian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:415 #: ../src/dialog.c:295 #: ../src/dock.c:3335 #: ../src/dockedapp.c:231 #: ../src/main.c:271 #: ../src/rootmenu.c:1854 #: ../src/winspector.c:394 #: ../src/winspector.c:411 msgid "Error" msgstr "ÕÕ­Õ¡Õ¬" #: ../src/appicon.c:416 msgid "Could not open specified icon file" msgstr "Õ€Õ¶Õ¡Ö€Õ¡Õ¾Õ¸Ö€ Õ¹Õ§ Õ¢Õ¡ÖÕ¥Õ¬ ÕºÕ¡Õ¿Õ¯Õ¥Ö€Õ¡Õ¯Õ¨" #: ../src/appicon.c:417 #: ../src/dialog.c:192 #: ../src/dialog.c:295 #: ../src/dialog.c:725 #: ../src/dialog.c:1797 #: ../src/dock.c:515 #: ../src/dock.c:523 #: ../src/dock.c:547 #: ../src/dock.c:3336 #: ../src/dockedapp.c:232 #: ../src/dockedapp.c:427 #: ../src/main.c:271 #: ../src/rootmenu.c:1858 #: ../src/winspector.c:395 #: ../src/winspector.c:412 msgid "OK" msgstr "Ô¼Õ¡Õ¾" #: ../src/appicon.c:445 #: ../src/dock.c:244 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" #: ../src/appicon.c:453 #: ../src/dock.c:263 #: ../src/winmenu.c:124 msgid "Kill Application" msgstr "Õ“Õ¡Õ¯Õ¥Õ¬ Õ®Ö€Õ¡Õ£Õ«Ö€Õ¨" #: ../src/appicon.c:454 #: ../src/dock.c:264 #: ../src/winmenu.c:126 msgid "Yes" msgstr "Ô±ÕµÕ¸" #: ../src/appicon.c:454 #: ../src/dock.c:264 #: ../src/winmenu.c:126 msgid "No" msgstr "ÕˆÕ¹" #: ../src/appicon.c:484 #: ../src/dock.c:1168 #: ../src/dock.c:3501 msgid "Unhide Here" msgstr "Ô²Õ¡ÖÕ¥Õ¬ Õ¡ÕµÕ½Õ¿Õ¥Õ²" #: ../src/appicon.c:485 #: ../src/appicon.c:510 #: ../src/dock.c:1170 #: ../src/dock.c:1172 #: ../src/dock.c:3513 #: ../src/winmenu.c:461 msgid "Hide" msgstr "Ô¹Õ¡Ö„ÖÕ¶Õ¥Õ¬" #: ../src/appicon.c:486 msgid "Set Icon..." msgstr "Õ†Õ·Õ¥Õ¬ պատկերակը․․․" #: ../src/appicon.c:487 #: ../src/dock.c:1176 #: ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 #: ../src/winmenu.c:508 msgid "Kill" msgstr "ÕÕºÕ¡Õ¶Õ¥Õ¬" #: ../src/appicon.c:508 #: ../src/dock.c:3511 msgid "Unhide" msgstr "Ô²Õ¡ÖÕ¥Õ¬" #: ../src/application.c:405 #, c-format msgid "recreating missing icon '%s'" msgstr "" #: ../src/defaults.c:930 #: ../src/defaults.c:1148 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "" #: ../src/defaults.c:935 #, c-format msgid "could not load domain %s from global defaults database" msgstr "" #: ../src/defaults.c:1034 #: ../src/defaults.c:1049 #, c-format msgid "invalid global menu file %s" msgstr "" #: ../src/defaults.c:1077 #: ../src/startup.c:761 #: ../src/startup.c:779 #: ../src/startup.c:786 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "" #: ../src/defaults.c:1123 #: ../src/defaults.c:1237 #: ../src/defaults.c:1278 #: ../src/defaults.c:1334 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "" #: ../src/defaults.c:1137 #: ../src/defaults.c:1257 #: ../src/defaults.c:1314 #: ../src/defaults.c:1344 #, c-format msgid "could not load domain %s from user defaults database" msgstr "" #: ../src/defaults.c:1167 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "" #: ../src/defaults.c:1304 #: ../src/screen.c:419 #, c-format msgid "could not load logo image for panels: %s" msgstr "" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1553 #: ../src/defaults.c:1692 #: ../src/defaults.c:1812 #: ../src/defaults.c:2290 #: ../src/defaults.c:2307 #: ../src/defaults.c:2352 #: ../src/defaults.c:2399 #: ../src/defaults.c:2872 #: ../src/wdefaults.c:571 #: ../src/wdefaults.c:604 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "" #: ../src/defaults.c:1555 #: ../src/defaults.c:1636 #: ../src/defaults.c:1666 #: ../src/defaults.c:1697 #: ../src/defaults.c:1710 #: ../src/defaults.c:1725 #: ../src/defaults.c:1739 #: ../src/defaults.c:1817 #: ../src/defaults.c:1829 #: ../src/defaults.c:2295 #: ../src/defaults.c:2312 #: ../src/defaults.c:2325 #: ../src/defaults.c:2357 #: ../src/defaults.c:2373 #: ../src/defaults.c:2404 #: ../src/defaults.c:2491 #: ../src/defaults.c:2877 #: ../src/defaults.c:2888 #, c-format msgid "using default \"%s\" instead" msgstr "" #: ../src/defaults.c:1586 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "" #: ../src/defaults.c:1631 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "" #: ../src/defaults.c:1663 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "" #: ../src/defaults.c:1705 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "" #: ../src/defaults.c:1720 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "" #: ../src/defaults.c:1735 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "" #: ../src/defaults.c:1940 #: ../src/defaults.c:1972 #: ../src/defaults.c:1988 #: ../src/defaults.c:2017 #: ../src/defaults.c:2040 #: ../src/defaults.c:2093 #: ../src/defaults.c:2133 #: ../src/defaults.c:2171 #: ../src/defaults.c:2187 #, c-format msgid "\"%s\" is not a valid color name" msgstr "" #: ../src/defaults.c:1953 #: ../src/defaults.c:2005 msgid "bad number of arguments in gradient specification" msgstr "" #: ../src/defaults.c:2066 msgid "too few arguments in multicolor gradient specification" msgstr "" #: ../src/defaults.c:2160 msgid "bad number of arguments in textured gradient specification" msgstr "" #: ../src/defaults.c:2203 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "" #: ../src/defaults.c:2263 #, c-format msgid "could not initialize library %s" msgstr "" #: ../src/defaults.c:2266 #, c-format msgid "could not find function %s::%s" msgstr "" #: ../src/defaults.c:2273 #, c-format msgid "invalid texture type %s" msgstr "" #: ../src/defaults.c:2320 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "" #: ../src/defaults.c:2369 msgid "Wrong type for workspace background. Should be a texture type." msgstr "" #: ../src/defaults.c:2417 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "" #: ../src/defaults.c:2459 msgid "could not load any usable font!!!" msgstr "Õ°Õ¶Õ¡Ö€Õ¡Õ¸Ö€ Õ¹Õ§ Õ¢Õ¥Õ¼Õ¶Õ¥Õ¬ Õ¸Õ¹ Õ´Õ« Õ¿Õ¡Õ¼Õ¡Õ¿Õ¥Õ½Õ¡Õ¯" #: ../src/defaults.c:2486 #, c-format msgid "could not get color for key \"%s\"" msgstr "" #: ../src/defaults.c:2544 #: ../src/rootmenu.c:531 #, c-format msgid "%s: invalid key modifier \"%s\"" msgstr "" #: ../src/defaults.c:2556 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "" #: ../src/defaults.c:2563 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "" #: ../src/defaults.c:2588 #, c-format msgid "%s: modifier key %s is not valid" msgstr "" #: ../src/defaults.c:2620 #, c-format msgid "could not load image in option %s: %s" msgstr "" #: ../src/defaults.c:2737 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "" #: ../src/defaults.c:2740 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "" #: ../src/defaults.c:2743 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "" #: ../src/defaults.c:2782 #: ../src/defaults.c:2815 msgid "bad number of arguments in cursor specification" msgstr "" #: ../src/defaults.c:2798 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "" #: ../src/defaults.c:2825 #: ../src/defaults.c:2837 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "" #: ../src/defaults.c:2884 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "" #: ../src/defaults.c:2969 msgid "could not render texture for icon background" msgstr "" #: ../src/defaults.c:3597 #: ../src/defaults.c:3672 #, c-format msgid "Invalid arguments for option \"%s\"" msgstr "" #: ../src/defaults.c:3604 #: ../src/defaults.c:3679 #, c-format msgid "Could not find image \"%s\" for option \"%s\"" msgstr "" #: ../src/defaults.c:3610 #: ../src/defaults.c:3687 #, c-format msgid "Could not load image \"%s\" for option \"%s\"" msgstr "" #: ../src/defaults.c:3622 msgid "Invalid split sizes for SwitchPanel back image." msgstr "" #: ../src/defaults.c:3695 #, c-format msgid "Invalid number of arguments for option \"%s\"" msgstr "" #: ../src/dialog.c:147 msgid "Save workspace state" msgstr "Õ€Õ«Õ·Õ¥Õ¬ Õ¡Õ·Õ­Õ¡Õ¿Õ¡Õ¿Õ¡Ö€Õ¡Õ®Ö„Õ¶Õ¥Ö€Õ« Õ¾Õ«Õ³Õ¡Õ¯Õ¨" #: ../src/dialog.c:192 #: ../src/dialog.c:732 #: ../src/dock.c:547 #: ../src/dockedapp.c:432 #: ../src/rootmenu.c:198 #: ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 msgid "Cancel" msgstr "Õ€Ö€Õ¡ÕªÕ¡Ö€Õ¾Õ¥Õ¬" #: ../src/dialog.c:290 msgid "Could not open directory " msgstr "Õ€Õ¶Õ¡Ö€Õ¡Õ¾Õ¸Ö€ Õ¹Õ§ Õ¢Õ¡ÖÕ¥Õ¬ ÕºÕ¡Õ¶Õ¡Õ¯Õ¨" #: ../src/dialog.c:345 msgid "Could not load image file " msgstr "Õ€Õ¶Õ¡Ö€Õ¡Õ¾Õ¸Ö€ Õ¹Õ§ Õ¢Õ¡ÖÕ¥Õ¬ Ö†Õ¡ÕµÕ¬Õ¨" #: ../src/dialog.c:659 msgid "Directories" msgstr "ÕŠÕ¡Õ¶Õ¡Õ¯Õ¶Õ¥Ö€" #: ../src/dialog.c:668 msgid "Icons" msgstr "ÕŠÕ¡Õ¿Õ¯Õ¥Ö€Õ¡Õ¯Õ¶Õ¥Ö€" #: ../src/dialog.c:701 msgid "Preview" msgstr "Õ†Õ¡Õ­Õ¶Õ¡Õ¯Õ¡Õ¶ Õ¿Õ¥Õ½Ö„" #: ../src/dialog.c:714 msgid "File Name:" msgstr "Õ–Õ¡ÕµÕ¬Õ« Õ¡Õ¶Õ¸Ö‚Õ¶Õ¨" #: ../src/dialog.c:738 msgid "Choose File" msgstr "Ô¸Õ¶Õ¿Ö€Õ¥Õ¬ Ö†Õ¡ÕµÕ¬Õ¨" #: ../src/dialog.c:757 #: ../src/dialog.c:759 msgid "Icon Chooser" msgstr "ÕŠÕ¡Õ¿Õ¯Õ¥Ö€Õ¡Õ¯Õ« Õ¨Õ¶Õ¿Ö€Õ«Õ¹" #: ../src/dialog.c:1197 #: ../src/dialog.c:1305 #, c-format msgid "Version %s" msgstr "ÕÕ¡Ö€Õ¢Õ¥Ö€Õ¡Õ¯ %s" #: ../src/dialog.c:1303 msgid "Window Manager for X" msgstr "X ÕºÕ¡Õ¿Õ¸Ö‚Õ°Õ¡Õ¶Õ¶Õ¥Ö€Õ« Õ²Õ¥Õ¯Õ¡Õ¾Õ¡Ö€" #: ../src/dialog.c:1326 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "" #: ../src/dialog.c:1334 msgid "(32 thousand colors)\n" msgstr "(32 Õ°Õ¡Õ¦Õ¡Ö€ Õ£Õ¸Ö‚ÕµÕ¶)\n" #: ../src/dialog.c:1337 msgid "(64 thousand colors)\n" msgstr "(64 Õ°Õ¡Õ¦Õ¡Ö€ Õ£Õ¸Ö‚ÕµÕ¶)\n" #: ../src/dialog.c:1341 msgid "(16 million colors)\n" msgstr "(16 Õ´Õ«Õ¬Õ«Õ¸Õ¶ Õ£Õ¸Ö‚ÕµÕ¶)\n" #: ../src/dialog.c:1344 #, c-format msgid "(%d colors)\n" msgstr "(%d Õ£Õ¸Ö‚ÕµÕ¶)\n" #: ../src/dialog.c:1354 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "Ô¸Õ¶Õ¤Õ°Õ¡Õ¶Õ¸Ö‚Ö€ Õ°Õ¡Õ¿Õ¯Õ¡ÖÕ¾Õ¡Õ® Õ°Õ«Õ·Õ¸Õ²Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨Õ %i Õ¯Õ¢. Ô¸Õ¶Õ¤Õ°Õ¡Õ¶Õ¸Ö‚Ö€ Ö…Õ£Õ¿Õ¡Õ£Õ¸Ö€Õ®Õ¾Õ¸Õ² Õ°Õ«Õ·Õ¸Õ²Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨Õ %i Õ¯Õ¢.\n" #: ../src/dialog.c:1361 msgid "Supported image formats: " msgstr "Ô¿Õ«Ö€Õ¡Õ¼Õ¥Õ¬Õ« ÕºÕ¡Õ¿Õ¯Õ¥Ö€Õ¡ÕµÕ«Õ¶ Õ¸Ö€Õ´Õ¡Õ¿Õ¶Õ¥Ö€Õ¨" #: ../src/dialog.c:1368 msgid "" "\n" "Additional support for: " msgstr "" #: ../src/dialog.c:1385 msgid " and " msgstr " Ö‡ " #: ../src/dialog.c:1395 msgid "" "\n" "Sound disabled" msgstr "" "\n" "ÕÕ¡ÕµÕ¶Õ¨ Õ¡Õ¶Õ»Õ¡Õ¿Õ¡Õ® Õ§" #: ../src/dialog.c:1397 msgid "" "\n" "Sound enabled" msgstr "" "\n" "ÕÕ¡ÕµÕ¶Õ¨ Õ´Õ«Õ¡ÖÖ€Õ¡Õ® Õ§" #: ../src/dialog.c:1402 msgid ", VirtualDesktop enabled" msgstr ", ÕŽÕ«Ö€Õ¿Õ¸Ö‚Õ¡Õ¬ Õ¿Õ¡Ö€Õ¡Õ®Ö„Õ¨ Õ´Õ«Õ¡ÖÖ€Õ¡Õ® Õ§" #: ../src/dialog.c:1404 msgid ", VirtualDesktop disabled" msgstr ", ÕŽÕ«Ö€Õ¿Õ¸Ö‚Õ¡Õ¬ Õ¿Õ¡Ö€Õ¡Õ®Ö„Õ¨ Õ¡Õ¶Õ»Õ¡Õ¿Õ¾Õ¡Õ® Õ§" #: ../src/dialog.c:1408 msgid "\n" msgstr "\n" #: ../src/dialog.c:1410 msgid "Solaris " msgstr "ÕÕ¸Õ¬Õ¡Ö€Õ«Õ½" #: ../src/dialog.c:1412 msgid "Xinerama: " msgstr "Õ”Õ½Õ«Õ¶Õ¥Ö€Õ¡Õ´Õ¡Õ" #: ../src/dialog.c:1446 msgid "Info" msgstr "ÕÕ¥Õ¼Õ¶Õ¡Ö€Õ¯" #: ../src/dialog.c:1470 msgid "Merry Christmas!" msgstr "Õ‡Õ¶Õ¸Ö€Õ°Õ¡Õ¾Õ¸Ö€ ÕÕ¸Ö‚Ö€Õ¢ Ô¾Õ¶Õ¸Ö‚Õ¶Õ¤" #: ../src/dialog.c:1540 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" " Window Maker-Õ¨ Õ¡Õ¦Õ¡Õ¿ Õ®Ö€Õ¡Õ£Õ«Ö€ Õ§; Õ¤Õ¸Ö‚Ö„ Õ¯Õ¡Ö€Õ¸Õ² Õ¥Ö„ ÖƒÕ¸ÖƒÕ¸Õ­Õ¥Õ¬ Ö‡/Õ¯Õ¡Õ´\n" "Õ¿Õ¡Ö€Õ¡Õ®Õ¥Õ¬ Õ¡ÕµÕ¶ Õ¨Õ½Õ¿ Ô±Õ¦Õ¡Õ¿ Ô¾Ö€Õ¡Ö€Õ£Õ¥Ö€Õ« Õ€Õ«Õ´Õ¶Õ¡Õ¤Ö€Õ¡Õ´Õ« (Free Software Foundation)\n" "Õ¯Õ¸Õ²Õ´Õ«Ö Õ´Õ·Õ¡Õ¯Õ¾Õ¡Õ® GNU General Public License Õ¡Ö€Õ¿Õ¸Õ¶Õ¡Õ£Ö€Õ« 2-Ö€Õ¤ \n" "Õ¯Õ¡Õ´ (Õ¨Õ½Õ¿ ÕÕ¥Ö€ ÖÕ¡Õ¶Õ¯Õ¸Ö‚Õ©ÕµÕ¡Õ¶) ÕµÕ¸Ö‚Ö€Õ¡Ö„Õ¡Õ¶Õ¹ÕµÕ¸Ö‚Ö€ Õ°Õ¥Õ¿Õ¡Õ£Õ¡ Õ¿Õ¡Ö€Õ¢Õ¥Ö€Õ¡Õ¯Õ«.\n" "\n" " Window Maker-Õ¨ Õ¿Õ¡Ö€Õ¡Õ®Õ¾Õ¸Ö‚Õ´ Õ§ Õ¡ÕµÕ¶ Õ°Õ¸Ö‚ÕµÕ½Õ¸Õ¾, Õ¸Ö€ Ö…Õ£Õ¿Õ¡Õ¯Õ¡Ö€ Õ¯Õ¬Õ«Õ¶Õ«,\n" "Õ¢Õ¡ÕµÖ Ô±ÕŒÔ±Õ†Õ‘ ÕˆÕÔµÕŽÔ· ÔµÕÔ±Õ‡Ô½Ô»Õ”Ô»; Õ¶Õ¸Ö‚ÕµÕ¶Õ«Õ½Õ¯ Õ¡Ö€Õ¡Õ¶Ö \n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." #: ../src/dialog.c:1564 msgid "Legal" msgstr "Ô»Ö€Õ¡Õ¾Õ¡Õ¯Õ¡Õ¶" #: ../src/dialog.c:1720 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "" #: ../src/dialog.c:1746 msgid "Fatal error" msgstr "Õ–Õ¡Õ¿Õ¡Õ¬ Õ½Õ­Õ¡Õ¬" #: ../src/dialog.c:1757 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker-Õ¨ Õ½Õ¿Õ¡ÖÕ¥Õ¬ Õ§ Õ½Õ«Õ£Õ¶Ö„Õ¬ %i\n" "(%s)." #: ../src/dialog.c:1760 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker-Õ¨ Õ¨Õ¶Õ¤Õ°Õ¸Ö‚Õ¶Õ¥Õ¬ Õ§ %i Õ¡Õ¦Õ¤Õ¡Õ¶Õ·Õ¡Õ¶Õ¨" #: ../src/dialog.c:1769 msgid " This fatal error occured probably due to a bug. Please fill the included BUGFORM and report it to bugs@windowmaker.org." msgstr "" #: ../src/dialog.c:1778 msgid "What do you want to do now?" msgstr "Õ€Õ«Õ´Õ¡ Õ«ÕžÕ¶Õ¹ Õ¡Õ¶Õ¥Õ¶Ö„" #: ../src/dialog.c:1784 msgid "Select action" msgstr "Ô¸Õ¶Õ¿Ö€Õ¥Ö„ Õ£Õ¸Ö€Õ®Õ¸Õ²Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶" #: ../src/dialog.c:1785 msgid "Abort and leave a core file" msgstr "" #: ../src/dialog.c:1786 msgid "Restart Window Maker" msgstr "ÕŽÕ¥Ö€Õ¡Õ¢Õ¥Õ¼Õ¶Õ¥Õ¬ Window Maker-Õ¨" #: ../src/dialog.c:1787 msgid "Start alternate window manager" msgstr "Õ„Õ«Õ¡ÖÕ¶Õ¥Õ¬ Õ¡ÕµÕ¬ ÕºÕ¡Õ¿Õ¸Ö‚Õ°Õ¡Õ¶Õ¡ÕµÕ«Õ¶ Õ²Õ¥Õ¯Õ¡Õ¾Õ¡Ö€Õ«Õ¹" #: ../src/dialog.c:1965 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop enviroment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" #: ../src/dialog.c:1988 msgid "About GNUstep" msgstr "GNUstep Õ®Ö€Õ¡Õ£Õ« Õ´Õ¡Õ½Õ«Õ¶" #: ../src/dock.c:193 #, c-format msgid "Type the name for workspace %i:" msgstr "" #: ../src/dock.c:194 #: ../src/dock.c:1132 #: ../src/dock.c:1135 #: ../src/dock.c:3419 msgid "Rename Workspace" msgstr "ÕŽÕ¥Ö€Õ¡Õ¶Õ¾Õ¡Õ¶Õ¥Õ¬ Õ¡Õ·Õ­Õ¡Õ¿Õ¡Õ½Õ¥Õ²Õ¡Õ¶Õ¨" #: ../src/dock.c:509 #: ../src/dock.c:517 msgid "Warning" msgstr "Ô¶Õ£Õ¸Ö‚Õ·Õ¡ÖÕ¸Ö‚Õ´" #: ../src/dock.c:510 msgid "Some icons cannot be made omnipresent. Please make sure that no other icon is docked in the same positions on the other workspaces and the Clip is not full in some workspace." msgstr "" #: ../src/dock.c:518 msgid "Icon cannot be made omnipresent. Please make sure that no other icon is docked in the same position on the other workspaces and the Clip is not full in some workspace." msgstr "" #: ../src/dock.c:545 msgid "Workspace Clip" msgstr "Ô±Õ·Õ­Õ¡Õ¿Õ¡Õ½Õ¥Õ²Õ¡Õ¶Õ« Ô±Õ´Ö€Õ¡Õ¯Õ¨" #: ../src/dock.c:546 msgid "All selected icons will be removed!" msgstr "Ô²Õ¸Õ¬Õ¸Ö€ Õ¨Õ¶Õ¿Ö€Õ¾Õ¡Õ® ÕºÕ¡Õ¿Õ¯Õ¥Ö€Õ¡Õ¯Õ¶Õ¥Ö€Õ¨ Õ°Õ¥Õ¼Õ¡ÖÕ¾Õ¥Õ¬Õ¸Ö‚ Õ§Õ¶" #: ../src/dock.c:598 #: ../src/dock.c:1147 #: ../src/dock.c:1149 #: ../src/dock.c:3455 msgid "Keep Icon" msgstr "ÕŠÕ¡Õ°Õ¥Õ¬ ÕŠÕ¡Õ¿Õ¯Õ¥Ö€Õ¡Õ¯Õ¨" #: ../src/dock.c:599 #: ../src/dock.c:2139 #: ../src/dock.c:2276 msgid "Type the command used to launch the application" msgstr "Õ†Õ¥Ö€Õ´Õ¸Ö‚Õ®Õ¥Ö„ Õ®Ö€Õ¡Õ£Õ«Ö€Õ¨ Õ¡Õ·Õ­Õ¡Õ¿Õ¡ÖÕ¶Õ¸Õ² Õ°Ö€Õ¡Õ´Õ¡Õ¶Õ¨" #: ../src/dock.c:954 #, c-format msgid "could not launch application %s\n" msgstr "Õ°Õ¶Õ¡Ö€Õ¡Õ¾Õ¸Ö€ Õ¹Õ§ Õ¡Õ·Õ­Õ¡Õ¿Õ¡ÖÕ¶Õ¥Õ¬ %s Õ®Ö€Õ¡Õ£Õ«Ö€Õ¨\n" #: ../src/dock.c:1010 msgid "could not create workspace submenu for Clip menu" msgstr "" #: ../src/dock.c:1069 msgid "could not create options submenu for Clip menu" msgstr "" #: ../src/dock.c:1073 #: ../src/dock.c:1121 msgid "Keep on Top" msgstr "ÕŠÕ¡Õ°Õ¥Õ¬ Õ¾Õ¥Ö€Ö‡Õ«Ö" #: ../src/dock.c:1079 msgid "Collapsed" msgstr "" #: ../src/dock.c:1085 msgid "Autocollapse" msgstr "" #: ../src/dock.c:1091 msgid "Autoraise" msgstr "" #: ../src/dock.c:1097 msgid "Autoattract Icons" msgstr "" #: ../src/dock.c:1127 msgid "Clip Options" msgstr "" #: ../src/dock.c:1137 msgid "Selected" msgstr "Ô¸Õ¶Õ¿Ö€Õ¾Õ¡Õ®" #: ../src/dock.c:1142 #: ../src/dock.c:1145 #: ../src/dock.c:3446 msgid "Select All Icons" msgstr "Ô¸Õ¶Õ¿Ö€Õ¥Õ¬ Õ¢Õ¸Õ¬Õ¸Ö€ ÕºÕ¡Õ¿Õ¯Õ¥Ö€Õ¡Õ¯Õ¶Õ¥Ö€Õ¨" #: ../src/dock.c:1151 #: ../src/dock.c:1153 #: ../src/dock.c:3463 msgid "Move Icon To" msgstr "ÕÕ¥Õ²Õ¡Õ·Õ¡Ö€ÕªÕ¥Õ¬ ÕŠÕ¡Õ¿Õ¯Õ¥Ö€Õ¡Õ¯Õ¨" #: ../src/dock.c:1158 #: ../src/dock.c:1161 #: ../src/dock.c:3474 msgid "Remove Icon" msgstr "Õ€Õ¥Õ¼Õ¡ÖÕ¶Õ¥Õ¬ ÕŠÕ¡Õ¿Õ¯Õ¥Ö€Õ¡Õ¯Õ¨" #: ../src/dock.c:1163 msgid "Attract Icons" msgstr "" #: ../src/dock.c:1166 msgid "Launch" msgstr "Ô±Õ·Õ­Õ¡Õ¿Õ¡ÖÕ¶Õ¥Õ¬" #: ../src/dock.c:1174 msgid "Settings..." msgstr "Հատկություններ․․․" #: ../src/dock.c:1538 #: ../src/dock.c:1645 #, c-format msgid "bad value in docked icon state info %s" msgstr "" #: ../src/dock.c:1653 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "" #: ../src/dock.c:1673 #, c-format msgid "bad value in dock state info:%s" msgstr "" #: ../src/dock.c:1923 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "" #. icon->forced_dock = 1; #: ../src/dock.c:2138 #: ../src/dock.c:2275 msgid "Dock Icon" msgstr "" #: ../src/dock.c:3333 #, c-format msgid "Could not execute command \"%s\"" msgstr "" #: ../src/dock.c:3425 msgid "Toggle Omnipresent" msgstr "" #: ../src/dock.c:3430 #: ../src/winmenu.c:414 #: ../src/winspector.c:1383 msgid "Omnipresent" msgstr "" #: ../src/dock.c:3444 msgid "Unselect All Icons" msgstr "" #: ../src/dock.c:3453 msgid "Keep Icons" msgstr "ÕŠÕ¡Õ°Õ¥Õ¬ ÕŠÕ¡Õ¿Õ¯Õ¥Ö€Õ¡Õ¯Õ¶Õ¥Ö€Õ¨" #: ../src/dock.c:3461 msgid "Move Icons To" msgstr "ÕÕ¥Õ²Õ¡Õ·Õ¡Ö€ÕªÕ¥Õ¬ ÕŠÕ¡Õ¿Õ¯Õ¥Ö€Õ¡Õ¯Õ¶Õ¥Ö€Õ¨" #: ../src/dock.c:3472 msgid "Remove Icons" msgstr "Õ€Õ¥Õ¼Õ¡ÖÕ¶Õ¥Õ¬ ÕŠÕ¡Õ¿Õ¯Õ¥Ö€Õ¡Õ¯Õ¶Õ¥Ö€Õ¨" #: ../src/dock.c:3503 msgid "Bring Here" msgstr "Ô²Õ¥Ö€Õ¥Õ¬ Ô±ÕµÕ½Õ¿Õ¥Õ²" #: ../src/dockedapp.c:150 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "" #: ../src/dockedapp.c:230 #, c-format msgid "Could not open specified icon file: %s" msgstr "" #: ../src/dockedapp.c:232 msgid "Ignore" msgstr "Ô±Õ¶Õ¿Õ¥Õ½Õ¥Õ¬" #: ../src/dockedapp.c:334 msgid "Start when Window Maker is started" msgstr "Ô±Õ·Õ­Õ¡Õ¿Õ¡ÖÕ¶Õ¥Õ¬ Õ¥Ö€Õ¢ Window Maker-Õ¨ Õ¢Õ¥Õ¼Õ¶Õ¾Õ¸Ö‚Õ´ Õ§" #: ../src/dockedapp.c:341 msgid "Lock (prevent accidental removal)" msgstr "ÕŠÕ¡Õ°Õ¥Õ¬ (Õ¯Õ¡Õ¶Õ­Õ¥Õ¬ ÕºÕ¡Õ¿Õ¡Õ°Õ¡Õ¯Õ¡Õ¶ Õ°Õ¥Õ¼Õ¡ÖÕ¸Ö‚Õ´Õ¨)" #: ../src/dockedapp.c:345 msgid "Application path and arguments" msgstr "" #: ../src/dockedapp.c:358 msgid "Command for middle-click launch" msgstr "" #: ../src/dockedapp.c:372 #, c-format msgid "%s will be replaced with current selection" msgstr "" #: ../src/dockedapp.c:377 msgid "Command for files dropped with DND" msgstr "" #: ../src/dockedapp.c:391 #, c-format msgid "%d will be replaced with the file name" msgstr "" #: ../src/dockedapp.c:395 msgid "DND support was not compiled in" msgstr "" #: ../src/dockedapp.c:400 msgid "Icon Image" msgstr "" #: ../src/dockedapp.c:414 #: ../src/winspector.c:1521 msgid "Browse..." msgstr "" #: ../src/dockedapp.c:475 msgid "Docked Application Settings" msgstr "" #: ../src/framewin.c:647 #: ../src/framewin.c:742 #: ../src/menu.c:463 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "" #: ../src/framewin.c:670 #: ../src/framewin.c:681 #: ../src/framewin.c:697 #: ../src/framewin.c:708 #: ../src/framewin.c:715 #: ../src/framewin.c:722 #: ../src/icon.c:360 #: ../src/menu.c:492 #, c-format msgid "error rendering image:%s" msgstr "" #: ../src/framewin.c:775 #, c-format msgid "error rendering image: %s" msgstr "" #: ../src/icon.c:239 #: ../src/wdefaults.c:443 #, c-format msgid "error loading image file \"%s\": %s" msgstr "" #: ../src/icon.c:503 #: ../src/icon.c:512 #, c-format msgid "could not create directory %s" msgstr "" #: ../src/icon.c:782 #, c-format msgid "could not find default icon \"%s\"" msgstr "" #: ../src/icon.c:788 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "" #: ../src/main.c:220 msgid "failed to restart Window Maker." msgstr "Window Maker Õ¾Õ¥Ö€Õ¡Õ¢Õ¥Õ¼Õ¶Õ¸Ö‚Õ´Õ¨ Õ­Õ¡ÖƒÕ¡Õ¶Õ¾Õ¥Ö" #: ../src/main.c:223 #, c-format msgid "could not exec %s" msgstr "Õ°Õ¶Õ¡Ö€Õ¡Õ¾Õ¸Ö€ Õ¹Õ§ Õ¡Õ·Õ­Õ¡Õ¿Õ¡ÖÕ¶Õ¥Õ¬ %s" #: ../src/main.c:269 msgid "Could not execute command: " msgstr "Õ€Õ¶Õ¡Ö€Õ¡Õ¾Õ¸Ö€ Õ¹Õ§ Õ¡Õ·Õ­Õ¡Õ¿Õ¡ÖÕ¶Õ¥Õ¬ Õ°Ö€Õ¡Õ´Õ¡Õ¶Õ¨Õ" #: ../src/main.c:426 #, c-format msgid "%s aborted.\n" msgstr "" #: ../src/main.c:437 #, c-format msgid "Usage: %s [options]\n" msgstr "" #: ../src/main.c:438 msgid "The Window Maker window manager for the X window system" msgstr "" #: ../src/main.c:440 msgid " -display host:dpy\tdisplay to use" msgstr "" #: ../src/main.c:442 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr "" #: ../src/main.c:444 msgid " --no-dock\t\tdo not open the application Dock" msgstr "" #: ../src/main.c:445 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr "" #: ../src/main.c:446 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr "" #: ../src/main.c:447 msgid " --dont-restore\t\tdo not restore saved session" msgstr "" #: ../src/main.c:449 msgid " --locale locale\tlocale to use" msgstr "" #: ../src/main.c:451 msgid " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" #: ../src/main.c:452 msgid " --visual-id visualid\tvisual id of visual to use" msgstr "" #: ../src/main.c:453 msgid " --static\t\tdo not update or save configurations" msgstr "" #: ../src/main.c:454 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr "" #: ../src/main.c:456 msgid " --synchronous\t\tturn on synchronous display mode" msgstr "" #: ../src/main.c:458 msgid " --version\t\tprint version and exit" msgstr "" #: ../src/main.c:459 msgid " --help\t\t\tshow this message" msgstr "" #: ../src/main.c:473 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" #: ../src/main.c:478 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "" #: ../src/main.c:481 msgid "There was an error while creating GNUstep directory, please make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" #: ../src/main.c:484 #, c-format msgid "%s directory created with default configuration." msgstr "" #: ../src/main.c:506 #: ../src/main.c:511 #, c-format msgid "%s:could not execute initialization script" msgstr "" #: ../src/main.c:533 #: ../src/main.c:538 #, c-format msgid "%s:could not execute exit script" msgstr "" #: ../src/main.c:622 #: ../src/main.c:722 #: ../src/main.c:730 #: ../src/main.c:738 #: ../src/main.c:758 #, c-format msgid "too few arguments for %s" msgstr "" #: ../src/main.c:742 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "" #: ../src/main.c:766 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "" #: ../src/main.c:767 #, c-format msgid "Try '%s --help' for more information\n" msgstr "" #: ../src/main.c:802 msgid "X server does not support locale" msgstr "" #: ../src/main.c:806 msgid "cannot set locale modifiers" msgstr "" #: ../src/main.c:822 #, c-format msgid "could not open display \"%s\"" msgstr "" #: ../src/menu.c:1276 msgid "could not grab keyboard" msgstr "" #: ../src/menu.c:2615 #, c-format msgid "bad value in menus state info: %s" msgstr "" #: ../src/misc.c:65 #, c-format msgid "could not define value for %s for cpp" msgstr "" #: ../src/misc.c:95 #, c-format msgid "could not get password entry for UID %i" msgstr "" #: ../src/misc.c:120 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "" #: ../src/misc.c:621 msgid "Program Arguments" msgstr "" #: ../src/misc.c:622 msgid "Enter command arguments:" msgstr "Õ†Õ¥Ö€Õ´Õ¸Ö‚Õ®Õ¥Ö„ Õ°Ö€Õ¡Õ´Õ¡Õ¶Õ¡ÕµÕ«Õ¶ Õ¿Õ¸Õ²Õ« Õ°Õ¡Õ¿Õ¯Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€Õ¨" #: ../src/misc.c:736 #: ../src/misc.c:874 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "" #: ../src/misc.c:790 msgid "out of memory during expansion of \"%w\"" msgstr "" #: ../src/misc.c:808 msgid "out of memory during expansion of \"%W\"" msgstr "" #: ../src/misc.c:824 #, c-format msgid "out of memory during expansion of \"%a\"" msgstr "" #: ../src/misc.c:853 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "" #: ../src/misc.c:867 msgid "selection not available" msgstr "Õ¨Õ¶Õ¿Ö€Õ¾Õ¡Õ®Õ¨ Õ£Õ¸ÕµÕ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶ Õ¹Õ¸Ö‚Õ¶Õ«" #: ../src/misc.c:911 #: ../src/misc.c:917 #, c-format msgid "bad window name value in %s state info" msgstr "" #: ../src/misc.c:1156 msgid "could not send message to background image helper" msgstr "" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "" #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "" #: ../src/rootmenu.c:196 #: ../src/rootmenu.c:198 msgid "Exit" msgstr "ÔµÕ¬Ö„" #: ../src/rootmenu.c:197 msgid "Exit window manager?" msgstr "Ô´Õ¸Ö‚Ö€Õ½ Õ£Õ¡Õ¬Õž" #: ../src/rootmenu.c:245 msgid "Close X session" msgstr "Õ“Õ¡Õ¯Õ¥Õ¬ X Õ¶Õ«Õ½Õ¿Õ¨" #: ../src/rootmenu.c:246 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/rootmenu.c:248 #: ../src/winmenu.c:501 msgid "Close" msgstr "Õ“Õ¡Õ¯Õ¥Õ¬" #: ../src/rootmenu.c:261 msgid "Kill X session" msgstr "ÕÕ¿Õ«ÕºÕ¸Õ²Õ¡Õ¢Õ¡Ö€ Õ¨Õ¶Õ¤Õ°Õ¡Õ¿Õ¥Õ¬ X Õ¶Õ«Õ½Õ¿Õ¨" #: ../src/rootmenu.c:262 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "ÕÕ¿Õ«ÕºÕ¸Õ²Õ¡Õ¢Õ¡Ö€ Õ¨Õ¶Õ¤Õ°Õ¡Õ¿Õ¥ÕžÕ¬ Õ¶Õ«Õ½Õ¿Õ¨\n" "(Õ¢Õ¸Õ¬Õ¸Ö€ Õ®Ö€Õ¡Õ£Ö€Õ¥Ö€Õ¨ Õ¯ÖƒÕ¡Õ¯Õ¾Õ¥Õ¶)" #: ../src/rootmenu.c:544 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "" #: ../src/rootmenu.c:552 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "" #: ../src/rootmenu.c:605 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "" #: ../src/rootmenu.c:655 #, c-format msgid "%s: missing command" msgstr "" #: ../src/rootmenu.c:687 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "" #: ../src/rootmenu.c:738 #, c-format msgid "%s:could not stat menu" msgstr "" #: ../src/rootmenu.c:746 #, c-format msgid "%s:could not stat menu:%s" msgstr "" #: ../src/rootmenu.c:764 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "" #: ../src/rootmenu.c:808 msgid "There are more than one WORKSPACE_MENU commands in the applications menu. Only one is allowed." msgstr "" #: ../src/rootmenu.c:842 msgid "There are more than one WINDOWS_MENU commands in the applications menu. Only one is allowed." msgstr "" #: ../src/rootmenu.c:847 msgid "Window List" msgstr "" #: ../src/rootmenu.c:876 #: ../src/rootmenu.c:894 #: ../src/rootmenu.c:904 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "" #: ../src/rootmenu.c:972 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "" #: ../src/rootmenu.c:980 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "" #: ../src/rootmenu.c:1117 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "" #: ../src/rootmenu.c:1139 #: ../src/rootmenu.c:1232 #: ../src/rootmenu.c:1336 #, c-format msgid "%s:missing command in menu config: %s" msgstr "" #: ../src/rootmenu.c:1169 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "" #: ../src/rootmenu.c:1198 #: ../src/rootmenu.c:1300 msgid "could not make arguments for menu file preprocessor" msgstr "" #: ../src/rootmenu.c:1205 #: ../src/rootmenu.c:1308 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "" #: ../src/rootmenu.c:1217 #: ../src/rootmenu.c:1321 #, c-format msgid "%s:could not open menu file" msgstr "" #: ../src/rootmenu.c:1244 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "" #: ../src/rootmenu.c:1253 msgid "error reading preprocessed menu data" msgstr "" #: ../src/rootmenu.c:1348 #, c-format msgid "%s:no title given for the root menu" msgstr "" #: ../src/rootmenu.c:1439 #: ../src/rootmenu.c:1512 #: ../src/rootmenu.c:1553 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "" #: ../src/rootmenu.c:1449 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "" #: ../src/rootmenu.c:1607 msgid "Commands" msgstr "Õ€Ö€Õ¡Õ´Õ¡Õ¶Õ¶Õ¥Ö€" #: ../src/rootmenu.c:1610 msgid "Restart" msgstr "ÕŽÕ¥Ö€Õ¡Õ¢Õ¥Õ¼Õ¶Õ¸Ö‚Õ´" #: ../src/rootmenu.c:1611 msgid "Exit..." msgstr "ÔµÕ¬Ö„" #: ../src/rootmenu.c:1656 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "" #: ../src/rootmenu.c:1663 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "" #: ../src/rootmenu.c:1674 #, c-format msgid "using default menu file \"%s\" as the menu referenced in WMRootMenu could not be found " msgstr "" #: ../src/rootmenu.c:1697 #: ../src/rootmenu.c:1773 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "" #: ../src/rootmenu.c:1855 msgid "The applications menu could not be loaded. Look at the console output for a detailed description of the errors." msgstr "" #: ../src/screen.c:709 #, c-format msgid "could not initialize graphics library context: %s" msgstr "" #: ../src/screen.c:737 msgid "could not initialize WINGs widget set" msgstr "" #: ../src/screen.c:1146 #, c-format msgid "could not save session state in %s" msgstr "" #: ../src/session.c:183 #: ../src/wdefaults.c:589 #: ../src/winspector.c:459 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "" #: ../src/session.c:1018 msgid "out of memory while saving session state" msgstr "" #: ../src/session.c:1101 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:1239 msgid "connection to the session manager was lost" msgstr "" #: ../src/stacking.c:81 msgid "could not get window list!!" msgstr "" #: ../src/startup.c:194 #, c-format msgid "internal X error: %s\n" msgstr "" #: ../src/startup.c:771 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "" #: ../src/startup.c:800 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "" #: ../src/startup.c:819 msgid "it seems that there is already a window manager running" msgstr "" #: ../src/startup.c:825 #, c-format msgid "could not manage screen %i" msgstr "" #: ../src/startup.c:884 msgid "could not manage any screen" msgstr "" #: ../src/switchmenu.c:145 msgid "Windows" msgstr "ÕŠÕ¡Õ¿Õ¸Ö‚Õ°Õ¡Õ¶Õ¶Õ¥Ö€" #: ../src/texture.c:329 #: ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "" #: ../src/texture.c:335 #: ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "" #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "" #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "" #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "" #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "" #: ../src/wdefaults.c:437 #, c-format msgid "could not find icon file \"%s\"" msgstr "" #: ../src/window.c:3041 #: ../src/window.c:3182 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 "" #: ../src/winmenu.c:125 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" #: ../src/winmenu.c:268 #: ../src/winmenu.c:277 msgid "Set Shortcut" msgstr "" #: ../src/winmenu.c:355 #: ../src/winmenu.c:400 msgid "could not create submenu for window menu" msgstr "" #: ../src/winmenu.c:404 msgid "Keep on top" msgstr "ÕŠÕ¡Õ°Õ¥Õ¬ Õ¾Õ¥Ö€Ö‡Õ¨" #: ../src/winmenu.c:409 msgid "Keep at bottom" 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:437 #: ../src/winmenu.c:571 msgid "Maximize" msgstr "Õ„Õ¥Õ®Õ¡ÖÕ¶Õ¥Õ¬" #: ../src/winmenu.c:445 #: ../src/winmenu.c:557 msgid "Miniaturize" msgstr "Õ“Õ¸Ö„Ö€Õ¡ÖÕ¶Õ¥Õ¬" #: ../src/winmenu.c:453 #: ../src/winmenu.c:588 msgid "Shade" msgstr "" #: ../src/winmenu.c:469 msgid "Resize/Move" msgstr "Õ“Õ¸ÖƒÕ¸Õ­Õ¥Õ¬" #: ../src/winmenu.c:477 msgid "Select" msgstr "Ô¸Õ¶Õ¿Ö€Õ¥Õ¬" #: ../src/winmenu.c:485 msgid "Move To" msgstr "ÕÕ¥Õ²Õ¡ÖƒÕ¸Õ­Õ¥Õ¬" #: ../src/winmenu.c:490 msgid "Attributes..." msgstr "" #: ../src/winmenu.c:492 msgid "Options" msgstr "Õ€Õ¡Õ¿Õ¯Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€" #: ../src/winmenu.c:552 msgid "Deminiaturize" msgstr "" #: ../src/winmenu.c:566 msgid "Unmaximize" msgstr "" #: ../src/winmenu.c:583 msgid "Unshade" msgstr "" #: ../src/winspector.c:392 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "" #: ../src/winspector.c:409 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "" #: ../src/winspector.c:1129 #, c-format msgid "Inspecting %s.%s" msgstr "" #: ../src/winspector.c:1155 msgid "Click in the window you wish to inspect." msgstr "" #: ../src/winspector.c:1194 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" #: ../src/winspector.c:1223 msgid "Save" msgstr "ÕŠÕ¡Õ°Õ¥Õ¬" #: ../src/winspector.c:1231 msgid "Apply" msgstr "Ô¿Õ«Ö€Õ¡Õ¼Õ¥Õ¬" #: ../src/winspector.c:1237 msgid "Reload" msgstr "" #: ../src/winspector.c:1246 #: ../src/winspector.c:1256 msgid "Window Specification" msgstr "" #: ../src/winspector.c:1247 msgid "Window Attributes" msgstr "" #: ../src/winspector.c:1248 msgid "Advanced Options" msgstr "" #: ../src/winspector.c:1249 msgid "Icon and Initial Workspace" msgstr "" #: ../src/winspector.c:1250 msgid "Application Specific" msgstr "" #: ../src/winspector.c:1264 msgid "Defaults for all windows" msgstr "" #: ../src/winspector.c:1318 msgid "Select window" msgstr "Ô¸Õ¶Õ¿Ö€Õ¥Õ¬ ÕºÕ¡Õ¿Õ¸Ö‚Õ°Õ¡Õ¶Õ¨" #: ../src/winspector.c:1332 msgid "Attributes" msgstr "" #: ../src/winspector.c:1343 msgid "Disable titlebar" msgstr "" #: ../src/winspector.c:1345 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" #: ../src/winspector.c:1352 msgid "Disable resizebar" msgstr "" #: ../src/winspector.c:1354 msgid "Remove the resizebar of this window." msgstr "" #: ../src/winspector.c:1357 msgid "Disable close button" msgstr "" #: ../src/winspector.c:1359 msgid "Remove the `close window' button of this window." msgstr "" #: ../src/winspector.c:1362 msgid "Disable miniaturize button" msgstr "" #: ../src/winspector.c:1364 msgid "Remove the `miniaturize window' button of the window." msgstr "" #: ../src/winspector.c:1367 msgid "Disable border" msgstr "" #: ../src/winspector.c:1369 msgid "Remove the 1 pixel black border around the window." msgstr "" #: ../src/winspector.c:1372 msgid "Keep on top (floating)" msgstr "" #: ../src/winspector.c:1374 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" #: ../src/winspector.c:1378 msgid "Keep at bottom (sunken)" msgstr "" #: ../src/winspector.c:1380 msgid "Keep the window under all other windows." msgstr "" #: ../src/winspector.c:1385 msgid "Make window present in all workspaces." msgstr "" #: ../src/winspector.c:1388 msgid "Start miniaturized" msgstr "" #: ../src/winspector.c:1390 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" #: ../src/winspector.c:1394 msgid "Start maximized" msgstr "" #: ../src/winspector.c:1396 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" #: ../src/winspector.c:1400 msgid "Full screen maximization" msgstr "" #: ../src/winspector.c:1402 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" #: ../src/winspector.c:1419 msgid "Advanced" msgstr "" #: ../src/winspector.c:1436 msgid "Do not bind keyboard shortcuts" msgstr "" #: ../src/winspector.c:1438 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" #: ../src/winspector.c:1444 msgid "Do not bind mouse clicks" msgstr "" #: ../src/winspector.c:1446 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you have\n" "configured)." msgstr "" #: ../src/winspector.c:1451 msgid "Do not show in the window list" msgstr "" #: ../src/winspector.c:1453 msgid "Do not list the window in the window list menu." msgstr "" #: ../src/winspector.c:1456 msgid "Do not let it take focus" msgstr "" #: ../src/winspector.c:1458 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" #: ../src/winspector.c:1462 msgid "Keep inside screen" msgstr "" #: ../src/winspector.c:1464 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" #: ../src/winspector.c:1468 msgid "Ignore 'Hide Others'" msgstr "" #: ../src/winspector.c:1470 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" #: ../src/winspector.c:1474 msgid "Ignore 'Save Session'" msgstr "" #: ../src/winspector.c:1476 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" #: ../src/winspector.c:1482 msgid "Emulate application icon" msgstr "" #: ../src/winspector.c:1484 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" #: ../src/winspector.c:1490 msgid "Disable language button" msgstr "" #: ../src/winspector.c:1492 msgid "Remove the `toggle language' button of the window." msgstr "" #: ../src/winspector.c:1509 msgid "Miniwindow Image" msgstr "" #: ../src/winspector.c:1536 msgid "Icon filename:" msgstr "" #: ../src/winspector.c:1549 msgid "Ignore client supplied icon" msgstr "" #: ../src/winspector.c:1556 msgid "Initial Workspace" msgstr "" #: ../src/winspector.c:1558 msgid "The workspace to place the window when it'sfirst shown." msgstr "" #: ../src/winspector.c:1564 msgid "Nowhere in particular" msgstr "" #: ../src/winspector.c:1582 msgid "Application Attributes" msgstr "" #: ../src/winspector.c:1593 msgid "Start hidden" msgstr "Ô±Õ·Õ­Õ¡Õ¿Õ¡ÖÕ¶Õ¥Õ¬ Õ¡Õ¶Õ¿Õ¥Õ½Õ¡Õ¶Õ¥Õ¬Õ«" #: ../src/winspector.c:1595 msgid "Automatically hide application when it's started." msgstr "Ô±Õ¾Õ¿Õ¸Õ´Õ¡Õ¿ Õ©Õ¡Õ¯ÖÕ¶Õ¥Õ¬ Õ®Ö€Õ¡Õ£Õ«Ö€Õ¨" #: ../src/winspector.c:1598 msgid "No application icon" msgstr "Ô±Õ¼Õ¡Õ¶Ö ÕºÕ¡Õ¿Õ¯Õ¥Ö€Õ¡Õ¯Õ«" #: ../src/winspector.c:1600 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" #: ../src/winspector.c:1606 msgid "Shared application icon" msgstr "" #: ../src/winspector.c:1608 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" #: ../src/workspace.c:103 #: ../src/workspace.c:104 #: ../src/workspace.c:1302 #, c-format msgid "Workspace %i" msgstr "Ô±Õ·Õ­Õ¡Õ¿Õ¡Õ½Õ¥Õ²Õ¡Õ¶ %i" #: ../src/workspace.c:1352 msgid "Workspaces" msgstr "Ô±Õ·Õ­Õ¡Õ¿Õ¡Õ½Õ¥Õ²Õ¡Õ¶Õ¶Õ¥Ö€Õ¨" #: ../src/workspace.c:1354 msgid "could not create Workspace menu" msgstr "" #: ../src/workspace.c:1361 msgid "New" msgstr "Õ†Õ¸Ö€" #: ../src/workspace.c:1362 msgid "Destroy Last" msgstr "" WindowMaker-0.95.5/po/fi.po0000644000175000017500000015472612214432632012354 00000000000000# Finnish translation of Window Maker # Copyright (C) 1998 Free Software Foundation, Inc. # Ramin Miraftabi , # Ville Hautamäki , 1998. # # Updates: Tomi Kajala , 1999-2001 # Still more: Pauli Virtanen , 2000 # msgid "" msgstr "" "Project-Id-Version: Window Maker 0.64.0\n" "POT-Creation-Date: 2001-09-03 16:15+0300\n" "PO-Revision-Date: 2001-09-03 21:56+03:00\n" "Last-Translator: Tomi Kajala \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../src/appicon.c:542 ../src/dialog.c:224 ../src/dock.c:3244 #: ../src/dockedapp.c:212 ../src/main.c:256 ../src/rootmenu.c:1815 #: ../src/winspector.c:388 ../src/winspector.c:405 msgid "Error" msgstr "Virhe" #: ../src/appicon.c:543 msgid "Could not open specified icon file" msgstr "Määritellyn kuvaketiedoston avaus ei onnistunut" #: ../src/appicon.c:544 ../src/dialog.c:121 ../src/dialog.c:224 #: ../src/dialog.c:672 ../src/dialog.c:1735 ../src/dock.c:493 #: ../src/dock.c:501 ../src/dock.c:525 ../src/dock.c:3245 #: ../src/dockedapp.c:213 ../src/dockedapp.c:371 ../src/main.c:256 #: ../src/rootmenu.c:1819 ../src/winspector.c:389 ../src/winspector.c:406 msgid "OK" msgstr "OK" #: ../src/appicon.c:571 ../src/dock.c:256 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " suljetaan väkisin.\n" "Kaikki tallentamattomat muutokset katoavat.\n" "Vahvista." #: ../src/appicon.c:577 ../src/dock.c:261 ../src/winmenu.c:128 msgid "Kill Application" msgstr "Tapa sovellus" #: ../src/appicon.c:578 ../src/dock.c:262 ../src/winmenu.c:130 msgid "Yes" msgstr "Kyllä" #: ../src/appicon.c:578 ../src/dock.c:262 ../src/winmenu.c:130 msgid "No" msgstr "Ei" #: ../src/appicon.c:596 ../src/dock.c:1139 ../src/dock.c:3410 msgid "Unhide Here" msgstr "Tuo näkyviin täällä" #: ../src/appicon.c:597 ../src/appicon.c:623 ../src/dock.c:1141 #: ../src/dock.c:1143 ../src/dock.c:3422 ../src/winmenu.c:465 msgid "Hide" msgstr "Piilota" #: ../src/appicon.c:598 ../src/appicon.c:629 msgid "Collapse" msgstr "Häivytä" #: ../src/appicon.c:599 msgid "Set Icon..." msgstr "Valitse kuvake..." #: ../src/appicon.c:600 ../src/dock.c:1147 ../src/rootmenu.c:223 #: ../src/rootmenu.c:237 ../src/winmenu.c:512 msgid "Kill" msgstr "Tapa" #: ../src/appicon.c:621 ../src/dock.c:3420 msgid "Unhide" msgstr "Tuo näkyviin" #: ../src/appicon.c:627 msgid "Uncollapse" msgstr "Häivytys pois" #: ../src/defaults.c:917 ../src/startup.c:890 ../src/startup.c:908 #: ../src/startup.c:914 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "tiedon \"%s\" luku oletustietokannasta ei onnistunut" #: ../src/defaults.c:963 ../src/defaults.c:1088 ../src/defaults.c:1127 #: ../src/defaults.c:1173 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Oletustietokannan kenttä %s (%s) on vioittunut!" #: ../src/defaults.c:968 ../src/defaults.c:1109 ../src/defaults.c:1156 #: ../src/defaults.c:1182 #, c-format msgid "could not load domain %s from user defaults database" msgstr "arvon %s lataaminen käyttäjän oletustietokannasta ei onnistu" #: ../src/defaults.c:979 ../src/defaults.c:1073 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Globaalin oletustietokannan arvo %s (%s) on vioittunut!" #: ../src/defaults.c:998 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "arvon %s lataus globaalista oletustietokannasta (%s) ei onnistu" #: ../src/defaults.c:1078 #, c-format msgid "could not load domain %s from global defaults database" msgstr "arvon %s lataus globaalista oletustietokannasta ei onnistu" #: ../src/defaults.c:1146 ../src/screen.c:458 #, c-format msgid "could not load logo image for panels: %s" msgstr "paneelien %s logo-kuvaa ei voitu ladata" #: ../src/defaults.c:1424 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "avaimella \"%s\" on väärä optioarvo. Pitäisi olla joku näistä: %s" #: ../src/defaults.c:1469 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "\"%s\":n muunto boolean-muotoon avaimelle \"%s\" ei onnistu" #: ../src/defaults.c:1474 ../src/defaults.c:1506 ../src/defaults.c:1538 #: ../src/defaults.c:1551 ../src/defaults.c:1566 ../src/defaults.c:1580 #: ../src/defaults.c:1650 ../src/defaults.c:1662 ../src/defaults.c:2129 #: ../src/defaults.c:2146 ../src/defaults.c:2159 ../src/defaults.c:2191 #: ../src/defaults.c:2207 ../src/defaults.c:2238 ../src/defaults.c:2325 #: ../src/defaults.c:2713 ../src/defaults.c:2724 #, c-format msgid "using default \"%s\" instead" msgstr "käytetään sen sijaan oletusarvoa \"%s\"" #: ../src/defaults.c:1503 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "\"%s\":n muuntaminen kokonaisluvuksi avaimelle \"%s\" ei onnistu" #: ../src/defaults.c:1533 ../src/defaults.c:1645 ../src/defaults.c:2124 #: ../src/defaults.c:2141 ../src/defaults.c:2186 ../src/defaults.c:2233 #: ../src/defaults.c:2708 ../src/wdefaults.c:570 ../src/wdefaults.c:606 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Avaimella \"%s\" on väärä optiomuoto. Pitäisi olla %s." #: ../src/defaults.c:1546 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Taulukossa on väärä määrä alkioita avaimelle \"%s\"." #: ../src/defaults.c:1561 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Avaimella \"%s\" on väärä arvo. Pitäisi olla koordinaatti." #: ../src/defaults.c:1576 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "taulukkoa ei voida muuntaa kokonaisluvuiksi \"%s\":lle." #: ../src/defaults.c:1774 ../src/defaults.c:1806 ../src/defaults.c:1822 #: ../src/defaults.c:1851 ../src/defaults.c:1874 ../src/defaults.c:1927 #: ../src/defaults.c:1967 ../src/defaults.c:2005 ../src/defaults.c:2021 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" ei ole sallittu värin nimi" #: ../src/defaults.c:1787 ../src/defaults.c:1839 msgid "bad number of arguments in gradient specification" msgstr "virheellinen määrä argumentteja liukuvärin määritelmässä" #: ../src/defaults.c:1900 msgid "too few arguments in multicolor gradient specification" msgstr "liian vähän argumentteja monivärisen liukuvärin määritelmässä" #: ../src/defaults.c:1994 msgid "bad number of arguments in textured gradient specification" msgstr "virheellinen määrä argumentteja liukuväritetyn kuvion määritelmässä" #: ../src/defaults.c:2037 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "väärä peittävyysarvo kuvioliukuvärille \"%s\". Pitäisi olla [0..255]" #: ../src/defaults.c:2097 #, c-format msgid "could not initialize library %s" msgstr "kirjaston %s alustus epäonnistui" #: ../src/defaults.c:2100 #, c-format msgid "could not find function %s::%s" msgstr "funktiota %s::%s ei löydy" #: ../src/defaults.c:2107 #, c-format msgid "invalid texture type %s" msgstr "virheellinen kuviotyyppi %s" #: ../src/defaults.c:2154 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Virhe kuviomääritelmässä avaimelle \"%s\"" #: ../src/defaults.c:2203 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Väärä tyyppi työtilan taustakuvaksi. Pitäisi olla kuviotyyppi." #: ../src/defaults.c:2251 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "Väärä tyyppi työtilan %i taustakuvaksi. Pitäisi olla kuvio." #: ../src/defaults.c:2293 msgid "could not load any usable font!!!" msgstr "minkään käyttökelpoisen fontin lataaminen ei onnistunut!!!" #: ../src/defaults.c:2320 #, c-format msgid "could not get color for key \"%s\"" msgstr "en löytänyt avainta \"%s\" vastaavaa väriä" #: ../src/defaults.c:2378 ../src/rootmenu.c:491 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s: virheellinen avainmääre \"%s\"" #: ../src/defaults.c:2390 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: virheellinen näppäinpikavalinnan määrittely \"%s\"" #: ../src/defaults.c:2397 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s: epäkelpo näppäin pikavalinnassa \"%s\"" #: ../src/defaults.c:2422 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: muunnosnäppäin %s ei ole voimassa" #: ../src/defaults.c:2454 #, c-format msgid "could not load image in option %s: %s" msgstr "optioon %s: %s liittyvän kuvan lataus ei onnistunut" #: ../src/defaults.c:2573 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "bittikarttatiedoston \"%s\" lataus epäonnistui" #: ../src/defaults.c:2576 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" ei ole kelvollinen bittikarttatiedosto" #: ../src/defaults.c:2579 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "muisti loppui luettaessa bittikarttatiedostoa \"%s\"" #: ../src/defaults.c:2618 ../src/defaults.c:2651 msgid "bad number of arguments in cursor specification" msgstr "kohdistinmääritelmässä on virheellinen määrä argumentteja" #: ../src/defaults.c:2634 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "tuntematon sisäänrakennettu kohdistinnimi \"%s\"" #: ../src/defaults.c:2661 ../src/defaults.c:2673 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "kohdistinbittikarttatiedostoa \"%s\" ei löytynyt" #: ../src/defaults.c:2720 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Virhe avaimen \"%s\" kohdistinmääritelmässä" #: ../src/defaults.c:2807 msgid "could not render texture for icon background" msgstr "kuvion piirto kuvakkeen taustalle ei onnistu" #: ../src/dialog.c:121 ../src/dialog.c:679 ../src/dock.c:525 #: ../src/dockedapp.c:377 ../src/rootmenu.c:185 ../src/rootmenu.c:223 #: ../src/rootmenu.c:237 msgid "Cancel" msgstr "Peruuta" #: ../src/dialog.c:219 msgid "Could not open directory " msgstr "Ei voi avata hakemistoa " #: ../src/dialog.c:274 msgid "Could not load image file " msgstr "Ei voi avata kuvatiedostoa " #: ../src/dialog.c:606 msgid "Directories" msgstr "Hakemistot" #: ../src/dialog.c:615 msgid "Icons" msgstr "Kuvakkeet" #: ../src/dialog.c:648 msgid "Preview" msgstr "Esikatselu" #: ../src/dialog.c:661 msgid "File Name:" msgstr "Tiedosto:" #: ../src/dialog.c:685 msgid "Choose File" msgstr "Valitse tiedosto" #: ../src/dialog.c:703 ../src/dialog.c:705 msgid "Icon Chooser" msgstr "Kuvakkeen valitsin" #: ../src/dialog.c:1162 ../src/dialog.c:1272 #, c-format msgid "Version %s" msgstr "Versio %s" #: ../src/dialog.c:1269 msgid "Window Manager for X" msgstr "Ikkunamanageri X:ään" #: ../src/dialog.c:1292 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "" #: ../src/dialog.c:1300 msgid "(32 thousand colors)\n" msgstr "(32 000 väriä)\n" #: ../src/dialog.c:1303 msgid "(64 thousand colors)\n" msgstr "(64 000 väriä)\n" #: ../src/dialog.c:1307 msgid "(16 million colors)\n" msgstr "(16 miljoonaa väriä)\n" #: ../src/dialog.c:1310 #, c-format msgid "(%d colors)\n" msgstr "(%d väriä)\n" #: ../src/dialog.c:1320 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "Muistia varattu yhteensä %i kt. Muistia käytössä yhteensä %i kt.\n" #: ../src/dialog.c:1327 msgid "Supported image formats: " msgstr "Tuetut kuvamuodot: " #: ../src/dialog.c:1334 msgid "" "\n" "Additional support for: " msgstr "" #: ../src/dialog.c:1357 msgid " and " msgstr " ja " #: ../src/dialog.c:1367 msgid "" "\n" "Sound disabled" msgstr "\nÄäni pois" #: ../src/dialog.c:1369 msgid "" "\n" "Sound enabled" msgstr "\nÄäni päällä" #: ../src/dialog.c:1393 msgid "Info" msgstr "Info" #: ../src/dialog.c:1416 msgid "Merry X'mas!" msgstr "" #: ../src/dialog.c:1486 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" " Window Maker on vapaa ohjelmisto; voit jakaa sitä edelleen ja/tai\n" "muokata sitä Free Software Foundationin julkaiseman GNU General Public\n" "Licensen (version 2 tai halutessasi jonkin myöhemmän version) ehtojen\n" "mukaisesti.\n" "\n" "\n" " Window Makeria jaetaan siinä toivossa, että siitä on hyötyä,\n" "mutta ILMAN MITÄÄN TAKUUTA; siihen ei sisälly edes epäsuoraa\n" "takuuta siitä, että se SOVELTUISI MARKKINOITAVAKSI tai SOPISI\n" "JOHONKIN TIETTYYN TARKOITUKSEEN. Katso tarkempia tietoja GNU\n" "General Public Licensestä.\n" "\n" "\n" " Tämän ohjelman mukana pitäisi tulla kopio GNU General Public\n" "Licensestä. Jos näin ei ole, ilmoita siitä osoitteeseen Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." #: ../src/dialog.c:1507 msgid "Legal" msgstr "Käyttöehdot" #: ../src/dialog.c:1658 ../src/startup.c:388 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "yhteyden avaus kaatumis-valintapaneeliin ei onnistunut. Keskeytetään." #: ../src/dialog.c:1684 msgid "Fatal error" msgstr "Vakava virhe" #: ../src/dialog.c:1695 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker vastaanotti signaalin %i\n" "(%s)." #: ../src/dialog.c:1698 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker vastaanotti signaalin %i." #: ../src/dialog.c:1707 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " Tämä vakava virhe tapahtui luultavasti bugin johdosta. Ole hyvä ja täytä " "oheinen bugi-kaavake ja lähetä se osoitteeseen bugs@windowmaker.info." #: ../src/dialog.c:1716 msgid "What do you want to do now?" msgstr "Mitä haluat nyt tehdä?" #: ../src/dialog.c:1722 msgid "Select action" msgstr "Valitse toiminta" #: ../src/dialog.c:1723 msgid "Abort and leave a core file" msgstr "Keskeytä ja kirjoita core-tiedosto" #: ../src/dialog.c:1724 msgid "Restart Window Maker" msgstr "Käynnistä Window Maker uudelleen" #: ../src/dialog.c:1725 msgid "Start alternate window manager" msgstr "Käynnistä vaihtoehtoinen ikkunamanageri" #: ../src/dialog.c:1903 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop environment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" "Window Maker on osa GNUstep-projektia.\n" "GNUstep-projektin tarkoituksena on luoda vapaa\n" "toteutus OpenStep(tm)-määrittelystä, joka on\n" "olio-orientoitunut kehys kehittyneiden\n" "graafisten, monilla alustoilla toimivien\n" "sovellusten luontiin. Kehyksen päälle tullaan\n" "lisäksi luomaan kehitys- ja käyttäjätyöpöytä-\n" "ympäristö. Saat GNUstepistä lisää tietoa\n" "osoitteesta www.gnustep.org" #: ../src/dialog.c:1923 msgid "About GNUstep" msgstr "Tietoa GNUstepistä" #: ../src/dock.c:213 #, c-format msgid "Type the name for workspace %i:" msgstr "Kirjoita nimi työtilalle %i:" #: ../src/dock.c:214 ../src/dock.c:1103 ../src/dock.c:1106 ../src/dock.c:3328 msgid "Rename Workspace" msgstr "Vaihda työtilan nimi" #: ../src/dock.c:487 ../src/dock.c:495 msgid "Warning" msgstr "Varoitus" #: ../src/dock.c:488 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Eräitä kuvakkeita saada kaikkialla näkyviksi. Varmista, ettei toisia " "ikoneita ole telakoitu samoihin paikkoihin muissa työtiloissa ja ettei " "Liitin ole täynnä jossain työtilassa." #: ../src/dock.c:496 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "Kuvaketta ei saada kaikkialla näkyväksi. Varmista, ettei toista ikonia ole " "telakoitu samaan kohtaan muissa työtiloissa ja ettei Liitin ole täynnä " "jossain työtilassa." #: ../src/dock.c:523 msgid "Workspace Clip" msgstr "Työtilan Liitin" #: ../src/dock.c:524 msgid "All selected icons will be removed!" msgstr "Kaikki valitut kuvakkeet poistetaan!" #: ../src/dock.c:575 ../src/dock.c:1118 ../src/dock.c:1120 ../src/dock.c:3364 msgid "Keep Icon" msgstr "Pidä kuvake" #: ../src/dock.c:576 ../src/dock.c:2083 ../src/dock.c:2218 msgid "Type the command used to launch the application" msgstr "Kirjoita komento, jolla ohjelma käynnistetään" #: ../src/dock.c:927 #, c-format msgid "could not launch application %s\n" msgstr "sovelluksen %s käynnistys ei onnistu\n" #: ../src/dock.c:982 msgid "could not create workspace submenu for Clip menu" msgstr "Liittimen valikkoon ei voitu luoda työtila-alivalikkoa" #: ../src/dock.c:1040 msgid "could not create options submenu for Clip menu" msgstr "Liittimen valikkoon ei voitu luoda asetukset-alivalikkoa" #: ../src/dock.c:1044 ../src/dock.c:1092 msgid "Keep on Top" msgstr "Pidä päällimmäisenä" #: ../src/dock.c:1050 msgid "Collapsed" msgstr "Häivytetty" #: ../src/dock.c:1056 msgid "Autocollapse" msgstr "Automaattinen häivytys" #: ../src/dock.c:1062 msgid "Autoraise" msgstr "Nosta automaattisesti" #: ../src/dock.c:1068 msgid "Autoattract Icons" msgstr "Kerää kuvakkeet automaattisesti" #: ../src/dock.c:1098 msgid "Clip Options" msgstr "Liittimen asetukset" #: ../src/dock.c:1108 msgid "Selected" msgstr "Valittu" #: ../src/dock.c:1113 ../src/dock.c:1116 ../src/dock.c:3355 msgid "Select All Icons" msgstr "Valitse kaikki kuvakkeet" #: ../src/dock.c:1122 ../src/dock.c:1124 ../src/dock.c:3372 msgid "Move Icon To" msgstr "Siirrä kuvake tilaan" #: ../src/dock.c:1129 ../src/dock.c:1132 ../src/dock.c:3383 msgid "Remove Icon" msgstr "Poista kuvake" #: ../src/dock.c:1134 msgid "Attract Icons" msgstr "Kerää kuvakkeet" #: ../src/dock.c:1137 msgid "Launch" msgstr "Käynnistä" #: ../src/dock.c:1145 msgid "Settings..." msgstr "Asetukset..." #: ../src/dock.c:1504 ../src/dock.c:1607 #, c-format msgid "bad value in docked icon state info %s" msgstr "virheellinen arvo telakoidun kuvakkeen tilatiedossa %s " #: ../src/dock.c:1615 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "virheellinen arvo telakoidun kuvakkeen paikassa %i,%i" #: ../src/dock.c:1867 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "Telakassa on liikaa kuvakkeita. Jätän huomiotta ne, jotka eivät mahdu." #. icon->forced_dock = 1; #: ../src/dock.c:2082 ../src/dock.c:2217 msgid "Dock Icon" msgstr "Telakoi kuvake" #: ../src/dock.c:3237 ../src/dock.c:3241 #, c-format msgid "Could not execute command \"%s\"" msgstr "Komennon \"%s\" suoritus ei onnistunut" #: ../src/dock.c:3334 msgid "Toggle Omnipresent" msgstr "Näkyvyys kaikkialla päälle/pois" #: ../src/dock.c:3339 ../src/winmenu.c:417 ../src/winspector.c:1395 msgid "Omnipresent" msgstr "Näkyvissä kaikkialla" #: ../src/dock.c:3353 msgid "Unselect All Icons" msgstr "Kaikkien kuvakkeiden valinta pois" #: ../src/dock.c:3362 msgid "Keep Icons" msgstr "Pidä kuvakkeet" #: ../src/dock.c:3370 msgid "Move Icons To" msgstr "Siirrä kuvakkeet ->" #: ../src/dock.c:3381 msgid "Remove Icons" msgstr "Poista kuvakkeet" #: ../src/dock.c:3412 msgid "Bring Here" msgstr "Tuo tänne" #: ../src/dockedapp.c:131 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "telakoidussa sovelluksessa käytettävää kuvaketta %s ei löydy" #: ../src/dockedapp.c:211 #, c-format msgid "Could not open specified icon file: %s" msgstr "Määritellyn kuvaketiedoston %s avaus ei onnistu" #: ../src/dockedapp.c:213 msgid "Ignore" msgstr "Jätä huomiotta" #: ../src/dockedapp.c:306 msgid "Start when Window Maker is started" msgstr "Käynnistä, kun WMaker käynnistetään" #: ../src/dockedapp.c:313 msgid "Lock (prevent accidental removal)" msgstr "Lukitse (estä tahaton poisto)" #: ../src/dockedapp.c:319 msgid "Application path and arguments" msgstr "Sovelluksen polku ja argumentit" #: ../src/dockedapp.c:330 msgid "Command for files dropped with DND" msgstr "Komento tiedostoille, jotka vedetään ja tiputetaan" #: ../src/dockedapp.c:342 #, c-format msgid "%d will be replaced with the file name" msgstr "%d korvataan tiedoston nimellä" #: ../src/dockedapp.c:346 msgid "DND support was not compiled in" msgstr "vedä ja tiputa -tukea ei käännetty mukaan" #: ../src/dockedapp.c:352 msgid "Icon Image" msgstr "Kuvake" #: ../src/dockedapp.c:364 ../src/winspector.c:1533 msgid "Browse..." msgstr "Selaa..." #: ../src/dockedapp.c:409 msgid "Docked Application Settings" msgstr "Telakoidun ohjelman asetukset" #: ../src/framewin.c:649 ../src/framewin.c:744 ../src/menu.c:456 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "kuviota %s ei voitu piirtää" #: ../src/framewin.c:672 ../src/framewin.c:683 ../src/framewin.c:699 #: ../src/framewin.c:710 ../src/framewin.c:717 ../src/framewin.c:724 #: ../src/icon.c:350 ../src/menu.c:485 #, c-format msgid "error rendering image:%s" msgstr "virhe piirrettäessä kuvaa:%s" #: ../src/framewin.c:777 #, c-format msgid "error rendering image: %s" msgstr "virhe piirrettäessä kuvaa: %s" #: ../src/icon.c:229 ../src/wdefaults.c:440 #, c-format msgid "error loading image file \"%s\": %s" msgstr "virhe ladattaessa kuvaa \"%s\": %s" #: ../src/icon.c:491 ../src/icon.c:500 #, c-format msgid "could not create directory %s" msgstr "hakemiston %s luonti ei onnistunut" #: ../src/icon.c:767 #, c-format msgid "could not find default icon \"%s\"" msgstr "Oletuskuvaketta \"%s\" ei löydy" #: ../src/icon.c:773 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "oletuskuvakkeen \"%s\":%s lataus ei onnistu" #: ../src/main.c:205 msgid "failed to restart Window Maker." msgstr "Window Makerin uudelleenkäynnistys epäonnistui." #: ../src/main.c:208 #, c-format msgid "could not exec %s" msgstr "%s:n suoritus ei onnistunut" #: ../src/main.c:254 msgid "Could not execute command: " msgstr "Seuraavan komennon suoritus epäonnistui: " #: ../src/main.c:411 #, c-format msgid "%s aborted.\n" msgstr "%s keskeytetty.\n" #: ../src/main.c:422 #, c-format msgid "Usage: %s [options]\n" msgstr "käyttö: %s [optiot]\n" #: ../src/main.c:423 msgid "The Window Maker window manager for the X window system" msgstr "Window Maker -ikkunamanageri X-ikkunointijärjestelmälle" #: ../src/main.c:425 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tkäytettävä näyttö" #: ../src/main.c:427 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tkonfiguraatiotiedostojen esiprosessointi pois käytöstä" #: ../src/main.c:429 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tälä avaa sovellustelakkaa" #: ../src/main.c:430 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tälä avaa työtilaliitintä" #: ../src/main.c:431 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tälä käynnistä sovelluksia automaattisesti" #: ../src/main.c:432 msgid " --dont-restore\t\tdo not restore saved session" msgstr "--dont-restore\t\tälä palauta tallennettua istuntoa" #: ../src/main.c:434 msgid " --locale locale\tlocale to use" msgstr " --locale locale\tkäytettävä maa-asetus" #: ../src/main.c:436 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" #: ../src/main.c:437 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tkäytettävän visualin id" #: ../src/main.c:438 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tälä päivitä tai tallenna asetuksia" #: ../src/main.c:439 #, fuzzy msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr " --static\t\tälä päivitä tai tallenna asetuksia" #: ../src/main.c:441 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tsynkroninen näyttötila päälle" #: ../src/main.c:443 msgid " --version\t\tprint version and exit" msgstr " --version\t\ttulosta versio ja poistu" #: ../src/main.c:444 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tnäytä tämä viesti" #: ../src/main.c:456 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "käyttäjän GNUstep-hakemistoa (%s) ei löydy.\n" "Tarkista, että olet asentanut Window Makerin oikein ja ajanut komennon " "wmaker.inst" #: ../src/main.c:477 ../src/main.c:482 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:ei voi suorittaa alustusskriptiä" #: ../src/main.c:502 ../src/main.c:507 #, c-format msgid "%s:could not execute exit script" msgstr "%s:lopetusskriptin suoritus ei onnistu" #: ../src/main.c:623 ../src/main.c:631 ../src/main.c:639 ../src/main.c:659 #, c-format msgid "too few arguments for %s" msgstr "liian vähän argumentteja %s:lle" #: ../src/main.c:643 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "väärä arvo visualid:lle: \"%s\"" #: ../src/main.c:667 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: virheellinen argumentti '%s'\n" #: ../src/main.c:668 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Saat lisätietoa kirjoittamalla '%s --help'\n" #: ../src/main.c:699 msgid "X server does not support locale" msgstr "X-palvelin ei tue maa-asetusta" #: ../src/main.c:703 msgid "cannot set locale modifiers" msgstr "maa-asetus-määreiden asetus ei onnistu" #: ../src/main.c:719 #, c-format msgid "could not open display \"%s\"" msgstr "näytön \"%s\" avaus ei onnistu" #: ../src/menu.c:1255 #, fuzzy msgid "could not grab keyboard" msgstr "hakemiston %s luonti ei onnistunut" #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "ei voitu määritellä arvoa %s cpp:lle" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "käyttäjän, jonka UID on %i, salasanamerkintää ei saatu" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "koneesi on konfiguroity väärin. HOSTNAME on asetettu arvoon %s" #: ../src/misc.c:132 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "koneesi on konfiguroity väärin. HOST on asetettu arvoon %s" #: ../src/misc.c:626 msgid "Program Arguments" msgstr "Ohjelman argumentit" #: ../src/misc.c:627 msgid "Enter command arguments:" msgstr "Syötä komentoriviargumentit:" #: ../src/misc.c:720 msgid "unable to get dropped data from DND drop" msgstr "vedä ja tiputa -datan saanti ei onnistunut" #: ../src/misc.c:728 msgid "error getting dropped data from DND drop" msgstr "virhe vedä ja tiputa -datan vastaanotossa" #: ../src/misc.c:734 msgid "out of memory while getting data from DND drop" msgstr "muisti loppui vastaanotettaessa vedä ja tiputa -dataa" #: ../src/misc.c:779 ../src/misc.c:919 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "muisti loppui \"%s\":n lavennuksen aikana" #: ../src/misc.c:833 msgid "out of memory during expansion of \"%w\"" msgstr "muisti loppui \"%w\":n lavennuksen aikana" #: ../src/misc.c:851 msgid "out of memory during expansion of \"%W\"" msgstr "muisti loppui \"%W\":n lavennuksen aikana" #: ../src/misc.c:867 msgid "out of memory during expansion of \"%a\"" msgstr "muisti loppui \"%a\":n lavennuksen aikana" #: ../src/misc.c:898 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "muisti loppui \"%d\":n lavennuksen aikana" #: ../src/misc.c:912 msgid "selection not available" msgstr "valintaa ei ole saatavilla" #: ../src/misc.c:985 ../src/misc.c:991 #, c-format msgid "bad window name value in %s state info" msgstr "virheellinen ikkunan nimi tilatiedossa %s" #: ../src/misc.c:1248 msgid "could not send message to background image helper" msgstr "viestin lähetys taustakuva-apurille epäonnistui" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "maski-bittikarttatiedostoa \"%s\" ei voitu ladata. Maskia ei käytetä" #: ../src/proplist.c:180 msgid "unterminated string" msgstr "terminoimaton merkkijono" #: ../src/proplist.c:247 msgid "unterminated array" msgstr "terminoimaton taulukko" #: ../src/proplist.c:256 msgid "missing , in array or unterminated array" msgstr "taulukosta puuttuu pilkku tai taulukkoa ei ole terminoitu" #: ../src/proplist.c:267 msgid "could not get array element" msgstr "taulukon alkiota ei saatu" #: ../src/proplist.c:297 msgid "unterminated dictionary" msgstr "terminoimaton hakemisto" #: ../src/proplist.c:315 msgid "missing dictionary key" msgstr "hakemistoavain puuttuu" #: ../src/proplist.c:317 msgid "missing dictionary entry key or unterminated dictionary" msgstr "sanakirja-avain puuttuu tai sanakirjaa ei ole terminoitu" #: ../src/proplist.c:323 msgid "error parsing dictionary key" msgstr "virhe sanakirja-avainta jäsennettäessä" #: ../src/proplist.c:332 msgid "missing = in dictionary entry" msgstr "sanakirjamerkinnästä puuttuu =" #: ../src/proplist.c:351 msgid "missing ; in dictionary entry" msgstr "Sanakirjamerkinnästä puuttuu ;" #: ../src/proplist.c:432 msgid "" "was expecting a string, dictionary, data or array. If it's a string, try " "enclosing it with \"." msgstr "" "odotettiin merkkijonoa, sanakirjaa, dataa tai taulukkoa. Jos kyseessä on " "merkkijono, kokeile laittaa se lainausmerkkeihin." #: ../src/proplist.c:434 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "" "Kommentit eivät ole sallittuja Window Makerille kuuluvissa tiedostoissa." #: ../src/proplist.c:453 #, c-format msgid "could not open domain file %s" msgstr "domain-tiedoston %s avaus ei onnistunut" #: ../src/proplist.c:466 msgid "extra data after end of file" msgstr "ylimääräistä dataa tiedoston lopun perässä" #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "värin \"%s\" jäsennys ei onnistunut" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "värin \"%s\" varaus ei onnistunut" #: ../src/rootmenu.c:183 ../src/rootmenu.c:185 msgid "Exit" msgstr "Poistu" #: ../src/rootmenu.c:184 msgid "Exit window manager?" msgstr "Poistutaanko ikkunamanagerista?" #: ../src/rootmenu.c:220 msgid "Close X session" msgstr "Sulje X-istunto" #: ../src/rootmenu.c:221 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "Suljetaanko ikkunointijärjestelmän istunto?\n" "Tallentamatonta tietoa sisältävät sovellukset saattavat sulkeutua." #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/rootmenu.c:223 ../src/winmenu.c:505 msgid "Close" msgstr "Sulje" #: ../src/rootmenu.c:234 msgid "Kill X session" msgstr "Sulje X-istunto" #: ../src/rootmenu.c:235 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Tapetaanko ikkunointijärjestelmän istunto?\n" "(kaikki ohjelmat suljetaan)" #: ../src/rootmenu.c:504 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s: virheellinen näppäinpikavalinnan määrittely \"%s\" merkinnälle %s" #: ../src/rootmenu.c:512 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s: vääränlainen näppäin pikavalinnassa \"%s\" merkinnälle %s" #: ../src/rootmenu.c:565 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: valikkotiedostosta ei löydy paria merkille '\"'" #: ../src/rootmenu.c:615 #, c-format msgid "%s: missing command" msgstr "%s: puuttuva komento" #: ../src/rootmenu.c:647 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "virheellinen OPEN_MENU-määritelmä: %s" #: ../src/rootmenu.c:695 #, c-format msgid "%s:could not stat menu" msgstr "" #: ../src/rootmenu.c:703 #, c-format msgid "%s:could not stat menu:%s" msgstr "" #: ../src/rootmenu.c:721 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "liian monta parametria OPEN_MENUssa: %s" #: ../src/rootmenu.c:765 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Sovellusvalikossa on enemmän kuin yksi WORKSPACE_MENU-komento. Vain yksi on " "sallittu." #: ../src/rootmenu.c:799 #, fuzzy msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "Sovellusvalikossa on enemmän kuin yksi WORKSPACE_MENU-komento. Vain yksi on " "sallittu." #: ../src/rootmenu.c:804 #, fuzzy msgid "Window List" msgstr "Älä näytä ikkunaluettelossa" #: ../src/rootmenu.c:833 ../src/rootmenu.c:851 ../src/rootmenu.c:861 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s: puuttuva parametri valikkokomennolla \"%s\"" #: ../src/rootmenu.c:929 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s: tuntematon komento \"%s\" valikkomääritelmässä." #: ../src/rootmenu.c:937 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s: kohdalle \"%s\" ei voida lisätä pikavalintaa" #: ../src/rootmenu.c:1074 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s: rivin maksimipituus ylitetty valikkomääritelmässä: %s" #: ../src/rootmenu.c:1096 ../src/rootmenu.c:1189 ../src/rootmenu.c:1291 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s: komento puuttuu valikkomääritelmässä: %s" #: ../src/rootmenu.c:1126 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s: virhe valikkotiedoston syntaksissa: END-määre puuttuu" #: ../src/rootmenu.c:1155 ../src/rootmenu.c:1255 msgid "could not make arguments for menu file preprocessor" msgstr "ei voitu tehdä argumentteja valikkotiedoston esikäsittelijälle" #: ../src/rootmenu.c:1162 ../src/rootmenu.c:1263 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s: valikkotiedostoa ei voitu avata/esikäsitellä" #: ../src/rootmenu.c:1174 ../src/rootmenu.c:1276 #, c-format msgid "%s:could not open menu file" msgstr "%s: valikkotiedoston avaus ei onnistunut" #: ../src/rootmenu.c:1201 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:virheellinen valikkotiedosto. MENU-komento puuttuu." #: ../src/rootmenu.c:1210 msgid "error reading preprocessed menu data" msgstr "virhe luettaessa esikäsiteltyä valikkodataa" #: ../src/rootmenu.c:1303 #, c-format msgid "%s:no title given for the root menu" msgstr "%s: juurivalikolle ei ole annettu nimeä" #: ../src/rootmenu.c:1394 ../src/rootmenu.c:1467 ../src/rootmenu.c:1508 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "muisti loppui luotaessa hakemistovalikkoa %s" #: ../src/rootmenu.c:1404 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s: tiedostolta \"%s\" ei saatu stat-tietoja valikkohakemistossa" #: ../src/rootmenu.c:1562 msgid "Commands" msgstr "Komennot" #: ../src/rootmenu.c:1565 msgid "Restart" msgstr "Käynnistä uudelleen" #: ../src/rootmenu.c:1566 msgid "Exit..." msgstr "Poistu..." #: ../src/rootmenu.c:1611 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "WMRootMenussa mainittua valikkotiedostoa \"%s\" ei löydy" #: ../src/rootmenu.c:1618 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "WMRootMenussa mainittua valikkoa \"%s\" ei saada käyttöön" #: ../src/rootmenu.c:1629 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "käytetään oletusvalikkoa \"%s\", koska WMRootMenussa mainittua valikkoa ei " "löydy" #: ../src/rootmenu.c:1652 ../src/rootmenu.c:1728 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s: muotoiluvirhe juurivalikon määrittelyssä \"%s\"" #: ../src/rootmenu.c:1816 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Sovellusvalikkoa ei voitu ladata. Saat virheistä tarkan kuvauksen katsomalla " "konsolitulostetta." #: ../src/screen.c:740 #, c-format msgid "could not initialize graphics library context: %s" msgstr "grafiikkakirjastokontekstin %s alustus ei onnistunut" #: ../src/screen.c:771 msgid "could not do initialization of WINGs widget set" msgstr "WINGs-widget-setin alustus ei onnistunut" #: ../src/screen.c:1135 #, c-format msgid "could not save session state in %s" msgstr "istunnon tilan tallennus -> %s ei onnistunut" #: ../src/session.c:183 ../src/wdefaults.c:588 ../src/winspector.c:453 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "\"%s\":ää ei voida muuttaa boolean-tyyppiseksi" #: ../src/session.c:1021 msgid "out of memory while saving session state" msgstr "muisti loppui istunnon tilaa tallennettaessa" #: ../src/session.c:1112 msgid "end of memory while saving session state" msgstr "muisti loppui istunnon tilaa tallennettaessa" #. 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:1250 msgid "connection to the session manager was lost" msgstr "yhteys istunnon manageriin menetettiin" #: ../src/stacking.c:73 msgid "could not get window list!!" msgstr "ikkunaluetteloa ei saatu!!" #: ../src/startup.c:202 #, c-format msgid "internal X error: %s\n" msgstr "sisäinen X-virhe: %s\n" #: ../src/startup.c:260 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "vastaanotettiin signaali %i (%s) - käynnistetään uudelleen\n" #: ../src/startup.c:262 #, c-format msgid "got signal %i - restarting\n" msgstr "vastaanotettiin signaali %i - käynnistetään uudelleen\n" #: ../src/startup.c:272 #, fuzzy, c-format msgid "got signal %i (%s) - rereading defaults\n" msgstr "vastaanotettiin signaali %i (%s) - käynnistetään uudelleen\n" #: ../src/startup.c:274 #, fuzzy, c-format msgid "got signal %i - rereading defaults\n" msgstr "vastaanotettiin signaali %i - käynnistetään uudelleen\n" #: ../src/startup.c:284 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "vastaanotettiin signaali %i (%s) - poistutaan...\n" #: ../src/startup.c:286 #, c-format msgid "got signal %i - exiting...\n" msgstr "vastaanotettiin signaali %i - poistutaan...\n" #: ../src/startup.c:322 #, c-format msgid "got signal %i (%s)\n" msgstr "vastaanotettiin signaali %i (%s)\n" #: ../src/startup.c:324 #, c-format msgid "got signal %i\n" msgstr "vastaanotettiin signaali %i\n" #: ../src/startup.c:335 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "" "kaatui, kun yritettiin tehdä kaatumisen jälkeistä siivousta. Keskeytetään " "välittömästi." #. we try to restart Window Maker #: ../src/startup.c:400 msgid "trying to restart Window Maker..." msgstr "yritetään käynnistää Window Maker uudelleen..." #: ../src/startup.c:405 msgid "trying to start alternate window manager..." msgstr "yritetään käynnistää vaihtoehtoista ikkunamanageria..." #: ../src/startup.c:410 msgid "failed to start alternate window manager. Aborting." msgstr "vaihtoehtoisen ikkunamanagerin käynnistys epäonnistui. Keskeytetään." #: ../src/startup.c:412 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" "vakava virhe on tapahtunut - luultavasti bugin johdosta. Ole hyvä ja täytä " "oheinen bugi-kaavake ja lähetä se." #: ../src/startup.c:900 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "" "kuvakkeiden kooksi on säädetty %i, mutta se on liian pieni. Käytetään sen " "sijaan kokoa 16.\n" #: ../src/startup.c:928 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "XKB:tä ei tueta. KbdModeLockin käyttö estetään automaattisesti." #: ../src/startup.c:947 msgid "it seems that there is already a window manager running" msgstr "näyttää siltä, että jokin ikkunamanageri on jo käynnissä" #: ../src/startup.c:953 #, c-format msgid "could not manage screen %i" msgstr "ruudun %i käsittely ei onnistu" #: ../src/startup.c:1021 msgid "could not manage any screen" msgstr "minkään ruudun käsittely ei onnistu" #: ../src/switchmenu.c:114 msgid "Windows" msgstr "Ikkunat" #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "kuviona käytettyä kuvatiedostoa \"%s\" ei löydy." #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "kuvio-kuvakarttaa \"%s\":%s ei löydy" #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "kirjaston \"%s\" avaus ei onnistunut." #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "funktiota \"%s\" ei löytynyt kirjastosta \"%s\"" #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "tämä järjestelmä ei valitettavasti tue kuviofunktioita." #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "Kuvapuskurin varaus epäonnistui" #: ../src/wdefaults.c:434 #, c-format msgid "could not find icon file \"%s\"" msgstr "kuvaketiedostoa \"%s\" ei löytynyt" #: ../src/window.c:2825 ../src/window.c:2960 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 tai muu samantapainen näppäin näyttää olevan päällä.\n" "Laita se pois, tai jotkut hiiritoiminnot ja näppäinpikavalinnat eivät toimi." #: ../src/winmenu.c:129 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Tämä sulkee ohjelman väkisin.\n" "Kaikki tallentamattomat muutokset menetetään.\n" "Vahvista." #: ../src/winmenu.c:271 ../src/winmenu.c:280 msgid "Set Shortcut" msgstr "Aseta pikavalinta" #: ../src/winmenu.c:358 ../src/winmenu.c:403 msgid "could not create submenu for window menu" msgstr "ikkunavalikkoon ei voitu luoda alivalikkoa" #: ../src/winmenu.c:407 msgid "Keep on top" msgstr "Pidä päällimmäisenä" #: ../src/winmenu.c:412 msgid "Keep at bottom" msgstr "Pidä alimmaisena" #. #. * 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:440 ../src/winmenu.c:575 msgid "Maximize" msgstr "Suurenna" #: ../src/winmenu.c:448 ../src/winmenu.c:561 msgid "Miniaturize" msgstr "Pienennä" #: ../src/winmenu.c:457 ../src/winmenu.c:592 msgid "Shade" msgstr "Vain otsikkopalkki" #: ../src/winmenu.c:473 msgid "Resize/Move" msgstr "Muuta kokoa/Siirrä" #: ../src/winmenu.c:481 msgid "Select" msgstr "Valitse" #: ../src/winmenu.c:489 msgid "Move To" msgstr "Siirrä työtilaan" #: ../src/winmenu.c:494 msgid "Attributes..." msgstr "Ominaisuudet..." #: ../src/winmenu.c:496 msgid "Options" msgstr "Valintoja" #: ../src/winmenu.c:556 msgid "Deminiaturize" msgstr "Peruuta pienennys" #: ../src/winmenu.c:570 msgid "Unmaximize" msgstr "Peruuta suurennus" #: ../src/winmenu.c:587 msgid "Unshade" msgstr "Myös sisältö" #: ../src/winspector.c:386 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Tälle ikkunalle määriteltyä kuvaketta \"%s\" ei löytynyt" #: ../src/winspector.c:403 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Ei voinut avata määriteltyä kuvaketta \"%s\":%s" #: ../src/winspector.c:1141 #, c-format msgid "Inspecting %s.%s" msgstr "" #: ../src/winspector.c:1167 msgid "Click in the window you wish to inspect." msgstr "Paina ikkunaa, jota haluat tarkastella." #: ../src/winspector.c:1206 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "Kun asetukset tallennetaan, ne\n" "vaikuttavat kaikkiin ikkunoihin,\n" "joiden WM_CLASS-ominaisuus on asetettu\n" "yllä valituksi nimeksi." #: ../src/winspector.c:1235 msgid "Save" msgstr "Tallenna" #: ../src/winspector.c:1243 msgid "Apply" msgstr "Toteuta" #: ../src/winspector.c:1249 msgid "Reload" msgstr "Lataa uudelleen" #: ../src/winspector.c:1258 ../src/winspector.c:1268 msgid "Window Specification" msgstr "Ikkunan määrittely" #: ../src/winspector.c:1259 msgid "Window Attributes" msgstr "Ikkunan ominaisuudet" #: ../src/winspector.c:1260 msgid "Advanced Options" msgstr "Tarkemmat asetukset" #: ../src/winspector.c:1261 msgid "Icon and Initial Workspace" msgstr "Kuvake ja alustava työtila" #: ../src/winspector.c:1262 msgid "Application Specific" msgstr "Sovelluskohtaiset" #: ../src/winspector.c:1276 msgid "Defaults for all windows" msgstr "Kaikkien ikkunoiden oletusarvot" #: ../src/winspector.c:1330 #, fuzzy msgid "Select window" msgstr "Valitse ikkuna" #: ../src/winspector.c:1344 msgid "Attributes" msgstr "Ominaisuudet" #: ../src/winspector.c:1355 #, fuzzy msgid "Disable titlebar" msgstr "Ei otsikkopalkkia" #: ../src/winspector.c:1357 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Poista tämän ikkunan otsikkopalkki. Pääset\n" "otsikkopalkittoman ikkunan komentovalikkoon\n" "painamalla Control+Esc (tai vastaavaa\n" "pikavalintaa, jos muutit oletusasetuksia)." #: ../src/winspector.c:1364 #, fuzzy msgid "Disable resizebar" msgstr "Ei koonsäätöpalkkia" #: ../src/winspector.c:1366 msgid "Remove the resizebar of this window." msgstr "Poista tämän ikkunan koonsäätöpalkki." #: ../src/winspector.c:1369 #, fuzzy msgid "Disable close button" msgstr "Ei sulje-painiketta" #: ../src/winspector.c:1371 msgid "Remove the `close window' button of this window." msgstr "Poista tämän ikkunan 'sulje ikkuna'-painike." #: ../src/winspector.c:1374 #, fuzzy msgid "Disable miniaturize button" msgstr "Ei pienennyspainiketta" #: ../src/winspector.c:1376 msgid "Remove the `miniaturize window' button of the window." msgstr "Poista tämän ikkunan 'pienennä ikkuna'-painike." #: ../src/winspector.c:1379 #, fuzzy msgid "Disable border" msgstr "Ei reunaa" #: ../src/winspector.c:1381 msgid "Remove the 1 pixel black border around the window." msgstr "Poista ikkunan ympäriltä 1 pikselin levyinen musta reuna." #: ../src/winspector.c:1384 #, fuzzy msgid "Keep on top (floating)" msgstr "Pidä päällimmäisenä" #: ../src/winspector.c:1386 #, fuzzy msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "Pidä ikkuna muiden ikkunoiden päällä;\n" "älä anna niiden peittää sitä." #: ../src/winspector.c:1390 #, fuzzy msgid "Keep at bottom (sunken)" msgstr "Pidä pohjimmaisena" #: ../src/winspector.c:1392 msgid "Keep the window under all other windows." msgstr "Pidä ikkuna kaikkien muiden ikkunoiden alla." #: ../src/winspector.c:1397 #, fuzzy msgid "Make window present in all workspaces." msgstr "Näytä ikkuna kaikissa työtiloissa." #: ../src/winspector.c:1400 #, fuzzy msgid "Start miniaturized" msgstr "Käynnistä pienennettynä" #: ../src/winspector.c:1402 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "Pienennä ikkuna automaattisesti, kun se näytetään\n" "ensimmäisen kerran." #: ../src/winspector.c:1406 #, fuzzy msgid "Start maximized" msgstr "Käynnistä suurennettuna" #: ../src/winspector.c:1408 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "Suurenna ikkuna automaattisesti, kun se näytetään\n" "ensimmäisen kerran." #: ../src/winspector.c:1412 #, fuzzy msgid "Full screen maximization" msgstr "Kokoruudun suurennus" #: ../src/winspector.c:1414 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Aseta ikkuna käyttämään koko ruutualaa, kun se on\n" "suurennettu. Otsikko- ja koonmuutospalkki siirretään\n" "ruudun ulkopuolelle." #: ../src/winspector.c:1431 msgid "Advanced" msgstr "Tarkemmat asetukset" #: ../src/winspector.c:1448 #, fuzzy msgid "Do not bind keyboard shortcuts" msgstr "Älä sido näppäinpikavalintoja" #: ../src/winspector.c:1450 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Älä sido Window Makerin näppäinpikavalintoja, kun\n" "tämä ikkuna on aktiivinen. Tämä sallii ikkunan\n" "vastaanottaa kaikki näppäinyhdistelmät pika-\n" "valinta-asetuksistasi riippumatta." #: ../src/winspector.c:1456 #, fuzzy msgid "Do not bind mouse clicks" msgstr "Älä sido hiiren napautuksia" #: ../src/winspector.c:1458 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Älä sido ikkunassa hiiritoimintoja kuten\n" "'Alt'-siirtoja (kun alt on määrittelemäsi modifier)." #: ../src/winspector.c:1463 #, fuzzy msgid "Do not show in the window list" msgstr "Älä näytä kyseistä ikkunaa ikkunalista-valikossa." #: ../src/winspector.c:1465 msgid "Do not list the window in the window list menu." msgstr "Älä näytä kyseistä ikkunaa ikkunalista-valikossa." #: ../src/winspector.c:1468 #, fuzzy msgid "Do not let it take focus" msgstr "Älä anna syöttökohdistusta" #: ../src/winspector.c:1470 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "Älä anna ikkunalle syöttökohdistusta,\n" "kun napautat hiirellä sen alueella." #: ../src/winspector.c:1474 #, fuzzy msgid "Keep inside screen" msgstr "Pidä näyttöalueella" #: ../src/winspector.c:1476 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Älä anna ikkunan siirtyä kokonaan ruudun\n" "ulkopuolelle. Bugi-yhteensopivuuden takia.\n" #: ../src/winspector.c:1480 #, fuzzy msgid "Ignore 'Hide Others'" msgstr "Älä välitä PiilotaMuut-komennosta" #: ../src/winspector.c:1482 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "Älä piilota ikkunaa, kun annetaan\n" "'Piilota muut'-komento." #: ../src/winspector.c:1486 #, fuzzy msgid "Ignore 'Save Session'" msgstr "Älä tallenna istuntoa" #: ../src/winspector.c:1488 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Älä tallenna ks. sovellusta istunnon tilaan,\n" "jotta sitä ei käynnistetä uudelleen muiden\n" "sovellusten kanssa, kun Window Maker\n" "käynnistyy." #: ../src/winspector.c:1494 #, fuzzy msgid "Emulate application icon" msgstr "Matki sovelluskuvaketta" #: ../src/winspector.c:1496 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Laita tämä ikkuna käyttäytymään sovelluksena, joka\n" "tarjoaa Window Makerille tarpeeksi informaatiota, jotta\n" "voidaan luoda telakoituva sovelluskuvake." #: ../src/winspector.c:1502 #, fuzzy msgid "Disable language button" msgstr "Älä käytä kieli-painiketta" #: ../src/winspector.c:1504 msgid "Remove the `toggle language' button of the window." msgstr "Poista ikkunan 'vaihda kieltä'-painike." #: ../src/winspector.c:1521 msgid "Miniwindow Image" msgstr "Kuvake" #: ../src/winspector.c:1548 #, fuzzy msgid "Icon filename:" msgstr "Kuvakkeen tiedostonimi:" #: ../src/winspector.c:1561 msgid "Ignore client supplied icon" msgstr "Älä käytä sovelluksen antamaa" #: ../src/winspector.c:1568 msgid "Initial Workspace" msgstr "Työtila käynnistettäessä" #: ../src/winspector.c:1570 msgid "The workspace to place the window when it'sfirst shown." msgstr "" "Työtila, johon ikkuna sijoitetaan, kun se näytetään ensimmäisen kerran." #: ../src/winspector.c:1576 msgid "Nowhere in particular" msgstr "Ei erityistä tilaa" #: ../src/winspector.c:1594 #, fuzzy msgid "Application Attributes" msgstr "Sovelluksenlaajuinen" #: ../src/winspector.c:1605 #, fuzzy msgid "Start hidden" msgstr "Käynnistä piilotettuna" #: ../src/winspector.c:1607 msgid "Automatically hide application when it's started." msgstr "Piilota sovellus automaattisesti, kun se käynnistetään." #: ../src/winspector.c:1610 #, fuzzy msgid "No application icon" msgstr "Ei sovelluskuvaketta" #: ../src/winspector.c:1612 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Poista sovelluksen sovelluskuvake. Huomaa, että et\n" "voi enää telakoida sitä, ja jo telakoidut kuvakkeet\n" "lakkaavat toimimasta oikein." #: ../src/winspector.c:1618 msgid "Collapse application icons" msgstr "Häivytä sovelluskuvakkeet" #: ../src/winspector.c:1620 msgid "" "Collapse application icons from other instances\n" "of this application into one.\n" msgstr "" "Häivytä tämän sovelluksen muiden esiintymien\n" "sovellusikonit yhdeksi.\n" #: ../src/workspace.c:110 ../src/workspace.c:111 ../src/workspace.c:897 #, c-format msgid "Workspace %i" msgstr "Työtila %i" #: ../src/workspace.c:954 msgid "Workspaces" msgstr "Työtilat" #: ../src/workspace.c:956 msgid "could not create Workspace menu" msgstr "Työtilavalikon luonti ei onnistunut" #: ../src/workspace.c:963 msgid "New" msgstr "Uusi" #: ../src/workspace.c:964 msgid "Destroy Last" msgstr "Tuhoa viimeinen" #~ msgid "Sound" #~ msgstr "Ääni" #~ msgid "Allow Lowering" #~ msgstr "Salli peittyminen" #~ msgid "error making logo image for panel:%s" #~ msgstr "virhe paneelin %s logon luonnissa" #~ msgid "selection timed-out" #~ msgstr "valinta on vanhentunut" #~ msgid "Update" #~ msgstr "Päivitä" #~ msgid "invalid data in selection" #~ msgstr "virheellistä dataa valinnassa" WindowMaker-0.95.5/po/et.po0000644000175000017500000014354112214432632012357 00000000000000# Window Makeri eesti keele tõlge. # Estonian translation of Window Maker. # # Copyright (C) 2000, 2001, 2005, 2013 Free Software Foundation, Inc. # Ivar Smolin , 2000, 2001, 2005, 2013 # msgid "" msgstr "" "Project-Id-Version: Window Maker 0.95.4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-06-15 15:58+0300\n" "PO-Revision-Date: 2013-06-18 18:09+0300\n" "Last-Translator: Ivar Smolin \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:373 ../src/dialog.c:563 ../src/dock.c:3023 #: ../src/dockedapp.c:207 ../src/main.c:348 ../src/rootmenu.c:1646 #: ../src/winspector.c:351 ../src/winspector.c:367 msgid "Error" msgstr "Viga" #: ../src/appicon.c:374 msgid "Could not open specified icon file" msgstr "Kirjeldatud ikoonifaili pole võimalik avada" #: ../src/appicon.c:374 ../src/dialog.c:405 ../src/dialog.c:466 #: ../src/dialog.c:563 ../src/dialog.c:968 ../src/dialog.c:1599 #: ../src/dock.c:442 ../src/dock.c:449 ../src/dock.c:471 ../src/dock.c:3023 #: ../src/dockedapp.c:208 ../src/dockedapp.c:377 ../src/main.c:348 #: ../src/rootmenu.c:1649 ../src/winspector.c:351 ../src/winspector.c:367 msgid "OK" msgstr "Olgu" #: ../src/appicon.c:404 ../src/dock.c:220 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " suletakse jõuga.\n" "Kõik salvestamata andmed lähevad kaotsi.\n" "Kas soovid seda teha?" #: ../src/appicon.c:411 ../src/dock.c:238 ../src/winmenu.c:120 msgid "Kill Application" msgstr "Programmi kõrvaldamine" #: ../src/appicon.c:412 ../src/dock.c:239 ../src/winmenu.c:123 msgid "Yes" msgstr "Jah" #: ../src/appicon.c:412 ../src/dock.c:239 ../src/winmenu.c:123 msgid "No" msgstr "Ei" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/appicon.c:437 ../src/dock.c:1033 ../src/winmenu.c:462 msgid "Launch" msgstr "Käivita programm" #: ../src/appicon.c:438 ../src/dock.c:1035 ../src/dock.c:3180 msgid "Unhide Here" msgstr "Too siia töölauale" #: ../src/appicon.c:439 ../src/appicon.c:462 ../src/dock.c:1037 #: ../src/dock.c:1039 ../src/dock.c:3192 ../src/winmenu.c:438 msgid "Hide" msgstr "Peida" #: ../src/appicon.c:440 msgid "Set Icon..." msgstr "Ikooni määramine..." #: ../src/appicon.c:441 ../src/dock.c:1043 ../src/rootmenu.c:223 #: ../src/winmenu.c:468 msgid "Kill" msgstr "Kõrvalda" #: ../src/appicon.c:460 ../src/dock.c:3190 msgid "Unhide" msgstr "Too nähtavale" #: ../src/application.c:364 #, c-format msgid "recreating missing icon '%s'" msgstr "puuduva ikooni '%s' uuestiloomine" #: ../src/defaults.c:725 ../src/defaults.c:840 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Üldiste vaikeväärtuste andmebaasi domeen %s (%s) on rikutud!" #: ../src/defaults.c:729 #, c-format msgid "could not load domain %s from global defaults database" msgstr "" "domeeni %s pole võimalik globaalsete vaikeväärtuste andmebaasist laadida" #: ../src/defaults.c:774 ../src/defaults.c:788 #, c-format msgid "invalid global menu file %s" msgstr "vigane globaalmenüü fail %s" #: ../src/defaults.c:826 ../src/defaults.c:917 ../src/defaults.c:956 #: ../src/defaults.c:1006 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Vaikeväärtuste andmebaasi domeen %s (%s) on rikutud!" #: ../src/defaults.c:830 ../src/defaults.c:939 ../src/defaults.c:992 #: ../src/defaults.c:1016 #, c-format msgid "could not load domain %s from user defaults database" msgstr "domeeni %s pole võimalik kasutaja vaikeväärtuste andmebaasist lugeda" #: ../src/defaults.c:859 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "" "domeeni %s pole võimalik üldisest vaikeväärtuste andmebaasist (%s) laadida" #: ../src/defaults.c:982 ../src/screen.c:408 #, c-format msgid "could not load logo image for panels: %s" msgstr "paneelidele pole logopilti võimalik laadida: %s" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1178 ../src/defaults.c:1301 ../src/defaults.c:1387 #: ../src/defaults.c:1792 ../src/defaults.c:1808 ../src/defaults.c:1849 #: ../src/defaults.c:1894 ../src/defaults.c:2301 ../src/wdefaults.c:532 #: ../src/wdefaults.c:561 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Vigane vorming võtmele \"%s\". Peaks olema %s." #: ../src/defaults.c:1180 ../src/defaults.c:1253 ../src/defaults.c:1278 #: ../src/defaults.c:1305 ../src/defaults.c:1317 ../src/defaults.c:1331 #: ../src/defaults.c:1345 ../src/defaults.c:1391 ../src/defaults.c:1403 #: ../src/defaults.c:1796 ../src/defaults.c:1813 ../src/defaults.c:1825 #: ../src/defaults.c:1854 ../src/defaults.c:1870 ../src/defaults.c:1899 #: ../src/defaults.c:1978 ../src/defaults.c:2306 ../src/defaults.c:2317 #, c-format msgid "using default \"%s\" instead" msgstr "selle asemel kasutatakse vaikimisi \"%s\"" #: ../src/defaults.c:1207 #, c-format msgid "wrong option value for key \"%s\"; got \"%s\", should be one of %s." msgstr "" "vigane valikuväärtus võtmele \"%s\". Väärtuseks on \"%s\", kuid see peab " "olema üks väärtustest %s." #: ../src/defaults.c:1249 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "" "väärtust \"%s\" pole võimalik võtme \"%s\" loogikaväärtuseks teisendada" #: ../src/defaults.c:1276 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "" "väärtust \"%s\" pole võimalik võtme \"%s\" täisarvuliseks väärtuseks " "teisendada" #: ../src/defaults.c:1313 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Vigane massiivi elementide arv võtmele \"%s\"." #: ../src/defaults.c:1327 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Vale väärtus võtmele \"%s\". Peaks olema koordinaat." #: ../src/defaults.c:1341 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "väärtust pole võimalik \"%s\" täisarvude massiiviks teisendada." #: ../src/defaults.c:1506 ../src/defaults.c:1536 ../src/defaults.c:1552 #: ../src/defaults.c:1581 ../src/defaults.c:1603 ../src/defaults.c:1654 #: ../src/defaults.c:1693 ../src/defaults.c:1730 ../src/defaults.c:1746 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" pole korrektne värvi nimetus" #: ../src/defaults.c:1518 ../src/defaults.c:1569 msgid "bad number of arguments in gradient specification" msgstr "vigane argumentide arv hajusülemineku kirjelduses" #: ../src/defaults.c:1627 msgid "too few arguments in multicolor gradient specification" msgstr "liiga vähe argumente mitmevärvilise hajusülemineku kirjelduses" #: ../src/defaults.c:1719 msgid "bad number of arguments in textured gradient specification" msgstr "vigane argumentide arv tekstuuriga hajusülemineku kirjelduses" #: ../src/defaults.c:1762 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "" "vigane tumeduse väärtus tgradient tekstuurile \"%s\". Peaks olema [0..255]" #: ../src/defaults.c:1779 #, c-format msgid "invalid texture type %s" msgstr "vigane tekstuuri tüüp %s" #: ../src/defaults.c:1821 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Viga võtme \"%s\" tekstuuri kirjelduses" #: ../src/defaults.c:1866 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Vigane töölaua tausta tüüp. Peaks olema tekstuur-tüüpi." #: ../src/defaults.c:1912 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "Vigane töölaua %i tausta tüüp. Peaks olema tekstuur-tüüpi." #: ../src/defaults.c:1951 msgid "could not load any usable font!!!" msgstr "ei õnnestu laadida ühtki kasutuskõlblikku kirjatüüpi!!!" #: ../src/defaults.c:1974 #, c-format msgid "could not get color for key \"%s\"" msgstr "võtmele \"%s\" pole võimali värvi hankida" #: ../src/defaults.c:2026 ../src/rootmenu.c:432 #, c-format msgid "%s: invalid key modifier \"%s\"" msgstr "%s: vigane võtmemuutja \"%s\"" #: ../src/defaults.c:2038 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: vigane kiirklahvi kirjeldus \"%s\"" #: ../src/defaults.c:2044 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s: vigane võti kiirklahvile \"%s\"" #: ../src/defaults.c:2066 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: muuteklahv %s on vigane" #: ../src/defaults.c:2173 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "pildifaili \"%s\" pole võimalik avada" #: ../src/defaults.c:2176 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" ei ole korrektne pildifail" #: ../src/defaults.c:2179 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "pildifaili \"%s\" lugemisel lõppes mälu" #: ../src/defaults.c:2217 ../src/defaults.c:2250 msgid "bad number of arguments in cursor specification" msgstr "vigane argumentide arv kursori kirjelduses" #: ../src/defaults.c:2233 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "tundmatu sisseehitatud kursori nimi: \"%s\"" #: ../src/defaults.c:2260 ../src/defaults.c:2272 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "kursori pildifaili \"%s\" pole võimalik leida" #: ../src/defaults.c:2313 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Viga võtme \"%s\" kursori kirjelduses" #: ../src/defaults.c:2378 msgid "could not render texture for icon background" msgstr "tekstuuri pole võimalik ikooni taustapildiks renderdada" #: ../src/defaults.c:2892 ../src/defaults.c:2961 #, c-format msgid "Invalid arguments for option \"%s\"" msgstr "Vigased argumendid võtmele \"%s\"" #: ../src/defaults.c:2898 ../src/defaults.c:2967 #, c-format msgid "Could not find image \"%s\" for option \"%s\"" msgstr "Pilti \"%s\" pole võtmele \"%s\" võimalik leida" #: ../src/defaults.c:2903 ../src/defaults.c:2975 #, c-format msgid "Could not load image \"%s\" for option \"%s\"" msgstr "Pilti \"%s\" pole võtmele \"%s\" võimalik laadida" #: ../src/defaults.c:2913 msgid "Invalid split sizes for SwitchPanel back image." msgstr "" #: ../src/defaults.c:2982 #, c-format msgid "Invalid number of arguments for option \"%s\"" msgstr "Vigane argumentide arv võtmele \"%s\"" #: ../src/defaults.c:2997 #, c-format msgid "Value for option \"%s\" must be an array of 7 strings" msgstr "Võtme \"%s\" väärtus peab olema seitsmest stringist koosnev massiiv" #: ../src/defaults.c:3011 #, c-format msgid "Invalid argument for option \"%s\" item %d" msgstr "Vigane argument võtme \"%s\" %d. kirjele" #: ../src/dialog.c:126 msgid "Save workspace state" msgstr "Töölaua olek salvestatakse" #: ../src/dialog.c:405 ../src/dialog.c:466 ../src/dialog.c:975 #: ../src/dock.c:471 ../src/dockedapp.c:382 ../src/rootmenu.c:180 #: ../src/rootmenu.c:223 msgid "Cancel" msgstr "Loobu" #: ../src/dialog.c:558 msgid "Could not open directory " msgstr "Pole võimalik avada kataloogi " #: ../src/dialog.c:608 msgid "Could not load image file " msgstr "Pole võimalik avada pildifaili " #: ../src/dialog.c:902 msgid "Directories" msgstr "Kataloogid" #: ../src/dialog.c:911 msgid "Icons" msgstr "Ikoonid" #: ../src/dialog.c:944 msgid "Preview" msgstr "Eelvaade" #: ../src/dialog.c:957 msgid "File Name:" msgstr "Faili nimi:" #: ../src/dialog.c:981 msgid "Choose File" msgstr "Vali fail" #: ../src/dialog.c:1000 ../src/dialog.c:1002 msgid "Icon Chooser" msgstr "Ikoonivalik" #: ../src/dialog.c:1182 msgid "Window Manager for X" msgstr "X-i aknahaldur" #: ../src/dialog.c:1184 #, c-format msgid "Version %s" msgstr "Versioon %s" #: ../src/dialog.c:1205 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Kasutatakse visuaali 0x%x: %s %ibpp " #: ../src/dialog.c:1212 msgid "(32 thousand colors)\n" msgstr "(32 tuhat värvi)\n" #: ../src/dialog.c:1215 msgid "(64 thousand colors)\n" msgstr "(64 tuhat värvi)\n" #: ../src/dialog.c:1219 msgid "(16 million colors)\n" msgstr "(16 miljonit värvi)\n" #: ../src/dialog.c:1222 #, c-format msgid "(%d colors)\n" msgstr "(%d värvi)\n" #: ../src/dialog.c:1231 #, c-format msgid "Total memory allocated: %i kB (in use: %i kB).\n" msgstr "Kogu eraldatud mälu: %i kB (kasutusel: %i kB).\n" #: ../src/dialog.c:1238 msgid "Supported image formats: " msgstr "Toetatud pildivormingud: " #: ../src/dialog.c:1245 msgid "" "\n" "Additional support for: WMSPEC" msgstr "" "\n" "Lisaks on toetatud: WMSPEC" #: ../src/dialog.c:1251 msgid "\n" msgstr "\n" #: ../src/dialog.c:1253 msgid "Solaris " msgstr "Solaris " #: ../src/dialog.c:1255 msgid "Xinerama: " msgstr "Xinerama: " #: ../src/dialog.c:1287 msgid "Info" msgstr "Andmed" #: ../src/dialog.c:1363 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" "02110-1301 USA." msgstr "" " Window Maker on vaba tarkvara. Te võite seda edasi\n" "levitada ja/või muuta vastavalt GNU Üldise Avaliku Litsentsi\n" "tingimustele, nagu need on Vaba Tarkvara Fondi poolt\n" "avaldatud; kas Litsentsi versioon number 2 või (vastavalt\n" "Teie valikule) ükskõik milline hilisem versioon.\n" "\n" "Seda programmi levitatakse lootuses, et see on kasulik, kuid\n" "ILMA IGASUGUSE GARANTIITA; isegi KESKMISE/TAVALISE KVALITEEDI\n" "GARANTIITA või SOBIVUSELE TEATUD KINDLAKS EESMÄRGIKS.\n" "Üksikasjade suhtes vaata GNU Üldist Avalikku Litsentsi.\n" "\n" "Te peaks olema saanud GNU Üldise Avaliku Litsentsi koopia\n" "koos selle programmiga, kui ei, siis kontakteeruge Free\n" "Software Foundation'iga järgneval aadressil: 51 Franklin\n" "Street, Fifth Floor, Boston, MA 02110-1301 USA." #: ../src/dialog.c:1387 msgid "Legal" msgstr "Litsentsiandmed" #: ../src/dialog.c:1529 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "krahhidialoogi paneeliga pole võimalik ühendust luua. Annan alla." #: ../src/dialog.c:1555 msgid "Fatal error" msgstr "Fataalviga" #: ../src/dialog.c:1565 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker võttis vastu signaali %i." #: ../src/dialog.c:1573 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " See fataalviga on arvatavasti põhjustatud programmi enese veast. Palun " "täida kaasasolev vigadest teatamise vorm (BUGFORM) ja saada see aadressil " "bugs@windowmaker.info." #: ../src/dialog.c:1580 msgid "What do you want to do now?" msgstr "Mida sa nüüd soovid teha?" #: ../src/dialog.c:1586 msgid "Select action" msgstr "Tegevuse valimine" #: ../src/dialog.c:1587 msgid "Abort and leave a core file" msgstr "Töö lõpetamine ja mälutõmmise salvestan" #: ../src/dialog.c:1588 msgid "Restart Window Maker" msgstr "Window Makeri taaskäivitamine" #: ../src/dialog.c:1589 msgid "Start alternate window manager" msgstr "Alternatiivse aknahalduri käivitamine" #: ../src/dock.c:170 ../src/menu.c:1768 #, c-format msgid "Type the name for workspace %i:" msgstr "Sisesta töölaua %i nimi:" #: ../src/dock.c:171 ../src/dock.c:1002 ../src/dock.c:1004 ../src/dock.c:3099 #: ../src/menu.c:1772 msgid "Rename Workspace" msgstr "Töölaua ümbernimetamine" #: ../src/dock.c:437 ../src/dock.c:444 msgid "Warning" msgstr "Hoiatus" #: ../src/dock.c:438 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Mõningaid ikoone pole võimalik kõikidel töölaudadel nähtavaks teha. Veendu, " "et teistel töölaudadel ei ole ükski ikoon dokitud samale positsioonile ja " "Klamber ei ole mõnel töölaual täis." #: ../src/dock.c:445 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "Ikooni ei ole võimalik kõikidel töölaudadel nähtavaks teha. Veendu, et " "teistel töölaudadel ei ole ükski ikoon dokitud samale positsioonile ja " "Klamber ei ole mõnel töölaual täis." #: ../src/dock.c:469 msgid "Workspace Clip" msgstr "Töölaua Klamber" #: ../src/dock.c:470 msgid "All selected icons will be removed!" msgstr "Kõik valitud ikoonid eemaldatakse!" #: ../src/dock.c:520 ../src/dock.c:1015 ../src/dock.c:1017 ../src/dock.c:3135 msgid "Keep Icon" msgstr "Hoia ikooni" #: ../src/dock.c:521 ../src/dock.c:1900 ../src/dock.c:2031 msgid "Type the command used to launch the application" msgstr "Tipi korraldus, mida kasutada rakenduse käivitamiseks" #: ../src/dock.c:841 #, c-format msgid "could not launch application %s" msgstr "rakendust %s pole võimalik käivitada" #: ../src/dock.c:892 msgid "could not create workspace submenu for Clip menu" msgstr "ei õnnestu luua klambrimenüüle töölaua alammenüüd" #: ../src/dock.c:947 msgid "could not create options submenu for Clip menu" msgstr "ei õnnestu luua klambrimenüüle valikute alammenüüd" #: ../src/dock.c:951 ../src/dock.c:992 msgid "Keep on Top" msgstr "Hoia esiplaanil" #: ../src/dock.c:956 msgid "Collapsed" msgstr "Ahendatud" #: ../src/dock.c:961 msgid "Autocollapse" msgstr "Automaatselt ahenev" #: ../src/dock.c:966 msgid "Autoraise" msgstr "Automaatselt esile tõusev" #: ../src/dock.c:971 msgid "Autoattract Icons" msgstr "Ikoonide automaatne külgehaakimine" #: ../src/dock.c:997 msgid "Clip Options" msgstr "Klambri valikud" #: ../src/dock.c:1006 msgid "Selected" msgstr "Valitud" #: ../src/dock.c:1011 ../src/dock.c:1013 ../src/dock.c:3126 msgid "Select All Icons" msgstr "Vali kõik ikoonid" #: ../src/dock.c:1019 ../src/dock.c:1021 ../src/dock.c:3143 msgid "Move Icon To" msgstr "Teisalda ikoon->" #: ../src/dock.c:1026 ../src/dock.c:1028 ../src/dock.c:3154 msgid "Remove Icon" msgstr "Eemalda ikoon" #: ../src/dock.c:1030 msgid "Attract Icons" msgstr "Haagi ikoonid külge" #: ../src/dock.c:1041 msgid "Settings..." msgstr "Sätted..." #: ../src/dock.c:1357 ../src/dock.c:1457 #, c-format msgid "bad value in docked icon state info %s" msgstr "vigane väärtus dokitud ikooni olekuinfos %s " #: ../src/dock.c:1464 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "vigane väärtus dokitud ikooni asukohal %i,%i" #: ../src/dock.c:1483 #, c-format msgid "bad value in dock state info:%s" msgstr "vigane väärtus doki olekuinfos:%s" #: ../src/dock.c:1700 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "" "dokki on salvestatud liiga palju ikoone. Eiran neid, mida ei suuda hallata" #. icon->forced_dock = 1; #: ../src/dock.c:1899 ../src/dock.c:2030 msgid "Dock Icon" msgstr "Dokin ikooni" #: ../src/dock.c:3021 #, c-format msgid "Could not execute command \"%s\"" msgstr "Ei õnnestu täita korraldust \"%s\"" #: ../src/dock.c:3105 msgid "Toggle Omnipresent" msgstr "Näita/ära näita kõigil töölaudadel" #: ../src/dock.c:3110 ../src/winmenu.c:411 ../src/winspector.c:1300 msgid "Omnipresent" msgstr "Nähtav kõigil töölaudadel" #: ../src/dock.c:3124 msgid "Unselect All Icons" msgstr "Tühista ikoonivalik" #: ../src/dock.c:3133 msgid "Keep Icons" msgstr "Hoia ikoone" #: ../src/dock.c:3141 msgid "Move Icons To" msgstr "Teisalda ikoonid->" #: ../src/dock.c:3152 msgid "Remove Icons" msgstr "Eemalda ikoonid" #: ../src/dock.c:3182 msgid "Bring Here" msgstr "Too siia" #: ../src/dockedapp.c:133 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "ei leia dokitud rakenduses kasutatavat ikooni %s" #: ../src/dockedapp.c:206 #, c-format msgid "Could not open specified icon file: %s" msgstr "Ei õnnestu avada määratud ikoonifaili: %s" #: ../src/dockedapp.c:208 msgid "Ignore" msgstr "Eira" #: ../src/dockedapp.c:299 msgid "Start when Window Maker is started" msgstr "Käivitada koos Window Makeriga" #: ../src/dockedapp.c:304 msgid "Lock (prevent accidental removal)" msgstr "Lukustatud (ei saa kogemata kustutada)" #: ../src/dockedapp.c:308 msgid "Application path and arguments" msgstr "Rakenduse rada ja argumendid" #: ../src/dockedapp.c:319 msgid "Command for middle-click launch" msgstr "Keskmise nupu korraldus" #: ../src/dockedapp.c:331 #, c-format msgid "%s will be replaced with current selection" msgstr "%s asendatakse käesoleva valikuga" #: ../src/dockedapp.c:335 msgid "Command for files dropped with DND" msgstr "Korraldus DND abil saadetud failidele" #: ../src/dockedapp.c:347 #, c-format msgid "%d will be replaced with the file name" msgstr "%d asendatakse failinimega" #: ../src/dockedapp.c:350 msgid "DND support was not compiled in" msgstr "DND tugi pole sisse kompileeritud" #: ../src/dockedapp.c:355 msgid "Icon Image" msgstr "Ikooni pilt" #: ../src/dockedapp.c:366 ../src/winspector.c:1448 msgid "Browse..." msgstr "Sirvi..." #: ../src/dockedapp.c:424 msgid "Docked Application Settings" msgstr "Dokitud rakenduse sätted" #: ../src/framewin.c:633 ../src/framewin.c:725 ../src/menu.c:412 #: ../src/texture.c:450 #, c-format msgid "could not render texture: %s" msgstr "tekstuuri pole võimalik renderdada: %s" #: ../src/framewin.c:656 ../src/framewin.c:666 ../src/framewin.c:682 #: ../src/framewin.c:693 ../src/framewin.c:700 ../src/framewin.c:707 #: ../src/icon.c:321 ../src/menu.c:439 #, c-format msgid "error rendering image:%s" msgstr "viga pildi renderdamisel:%s" #: ../src/framewin.c:753 #, c-format msgid "error rendering image: %s" msgstr "viga pildi renderdamisel: %s" #: ../src/icon.c:167 ../src/wdefaults.c:424 #, c-format msgid "error loading image file \"%s\": %s" msgstr "viga pildifaili \"%s\" laadimisel: %s" #: ../src/icon.c:429 ../src/icon.c:438 #, c-format msgid "could not create directory %s" msgstr "kataloogi %s pole võimalik luua" #: ../src/icon.c:609 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "vaikimisi kasutatavat ikooni \"%s\" pole võimalik laadida:%s" #: ../src/icon.c:613 #, c-format msgid "could not find default icon \"%s\"" msgstr "vaikimisi kasutatavat ikooni \"%s\" pole võimalik leida" #: ../src/main.c:305 msgid "failed to restart Window Maker." msgstr "Tõrge Window Makeri taaskäivitamisel." #: ../src/main.c:308 #, c-format msgid "could not exec %s" msgstr "%s pole võimalik käivitada" #: ../src/main.c:346 msgid "Could not execute command: " msgstr "Korraldust pole võimalik käivitada : " #: ../src/main.c:481 #, c-format msgid "%s aborted.\n" msgstr "%s katkestatud.\n" #: ../src/main.c:490 #, c-format msgid "Usage: %s [options]\n" msgstr "Kasutamine: %s [võtmed]\n" #: ../src/main.c:491 msgid "The Window Maker window manager for the X window system" msgstr "Window Maker on X window systemi aknahaldur" #: ../src/main.c:493 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tkasutatava kuva määramine" #: ../src/main.c:495 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tseadistusfailide eeltöötluse keelamine" #: ../src/main.c:497 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\trakenduste doki avamise keelamine" #: ../src/main.c:498 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\ttöölaua klambri avamise keelamine" #: ../src/main.c:499 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\trakenduste automaatse käivitamise keelamine" #: ../src/main.c:500 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\tsalvestatud seansi taastamise keelamine" #: ../src/main.c:502 msgid " --locale locale\tlocale to use" msgstr " --locale locale\t\tkasutatava lokaadi määramine" #: ../src/main.c:504 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" " --create-stdcmap\tstandardse värvikaardi vihje loomine PseudoColor " "visuaalile" #: ../src/main.c:505 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tkasutatava visuaali id" #: ../src/main.c:506 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tseadistusi ei salvestata ega uuendata" #: ../src/main.c:508 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr " --no-polling\t\tümberseadistustuste korrapärase kontrolli keelamine" #: ../src/main.c:510 msgid " --version\t\tprint version and exit" msgstr " --version\t\tversiooninumbri väljastamine ja programmi töö lõpetamine" #: ../src/main.c:511 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tselle teate näitamine" #: ../src/main.c:521 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "kasutaja GNUstep kataloogi (%s) pole võimalik leida." #: ../src/main.c:524 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "Viga GNUstep kataloogi loomise käigus. Palun veendu, et Window Maker on " "korrektselt paigaldatud ja käivita wmaker.inst" #: ../src/main.c:527 #, c-format msgid "%s directory created with default configuration." msgstr "%s kataloog loodi vaikimisi seadistusega" #: ../src/main.c:545 msgid "" "could not initialise an inotify instance. Changes to the defaults database " "will require a restart to take effect. Check your kernel!" msgstr "" "inotify instantsi pole võimalik lähtestada. Vaikeväärtuste andmebaasi " "muutuste rakendamiseks on vaja programm taaskäivitada. Kontrolli oma " "kernelit!" #: ../src/main.c:556 #, c-format msgid "" "could not add an inotify watch on path %s.Changes to the defaults database " "will require a restart to take effect." msgstr "" "rajale %s pole võimalik inotify jälgijat määrata. Vaikeväärtuste andmebaasi " "muutuste rakendamiseks on vaja programm taaskäivitada." #: ../src/main.c:578 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:lähtestamisskripti pole võimalik käivitada" #: ../src/main.c:596 #, c-format msgid "%s:could not execute exit script" msgstr "%s:lõpetamisskripti pole võimalik käivitada" #: ../src/main.c:634 ../src/main.c:711 ../src/main.c:718 ../src/main.c:725 #, c-format msgid "too few arguments for %s" msgstr "liiga vähe argumente %s jaoks" #: ../src/main.c:729 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "vigane visualid väärtus: \"%s\"" #: ../src/main.c:742 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: vigane argument '%s'\n" #: ../src/main.c:743 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Täiendava teabe saamiseks proovi kasutada '%s --help'\n" #: ../src/main.c:786 msgid "X server does not support locale" msgstr "X server ei toeta lokaliseerimist" #: ../src/main.c:790 msgid "cannot set locale modifiers" msgstr "lokaadimuujaid pole võimalik määrata" #: ../src/main.c:806 #, c-format msgid "could not open display \"%s\"" msgstr "kuva \"%s\" pole võimalik avada" #: ../src/menu.c:2341 #, c-format msgid "bad value in menus state info: %s" msgstr "vigane väärtus menüüde olekuandmetes:%s" #: ../src/misc.c:57 #, c-format msgid "could not define value for %s for cpp" msgstr "%s väärtust pole võimalik cpp jaoks kirjedada" #: ../src/misc.c:82 #, c-format msgid "could not get password entry for UID %i" msgstr "UID %i paroolikirjet pole võimalik leida" #: ../src/misc.c:104 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "Teie masin on seadistamata. HOSTNAME väärtus on %s" #: ../src/misc.c:109 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "Teie masin on seadistamata. HOST väärtus on %s" #: ../src/misc.c:557 ../src/misc.c:562 msgid "Program Arguments" msgstr "Programmi argumendid" #: ../src/misc.c:558 ../src/misc.c:563 msgid "Enter command arguments:" msgstr "Sisesta käsu argumendid:" #: ../src/misc.c:607 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "mälu lõppes \"%s\" laiendamise käigus" #: ../src/misc.c:660 #, c-format msgid "out of memory during expansion of \"%%w\"" msgstr "mälu lõppes \"%%w\" laiendamise käigus" #: ../src/misc.c:677 #, c-format msgid "out of memory during expansion of \"%%W\"" msgstr "mälu lõppes \"%%W\" laiendamise käigus" #: ../src/misc.c:694 #, c-format msgid "out of memory during expansion of \"%%a\"" msgstr "mälu lõppes \"%%a\" laiendamise käigus" #: ../src/misc.c:723 #, c-format msgid "out of memory during expansion of \"%%d\"" msgstr "mälu lõppes \"%%d\" laiendamise käigus" #: ../src/misc.c:737 msgid "selection not available" msgstr "valik ei ole kättesaadav" #: ../src/misc.c:744 #, c-format msgid "out of memory during expansion of \"%%s\"" msgstr "mälu lõppes \"%%s\" laiendamise käigus" #: ../src/misc.c:779 ../src/misc.c:785 #, c-format msgid "bad window name value in %s state info" msgstr "vigane akna nimi %s olekuandmetes" #: ../src/misc.c:1013 msgid "could not send message to background image helper" msgstr "taustapildi abiprogrammile pole võimalik teadet saata" #: ../src/resources.c:41 #, c-format msgid "could not parse color \"%s\"" msgstr "värvi \"%s\" pole võimalik analüüsida" #: ../src/resources.c:45 #, c-format msgid "could not allocate color \"%s\"" msgstr "värvi \"%s\" pole võimalik eraldada" #: ../src/rootmenu.c:179 ../src/rootmenu.c:180 msgid "Exit" msgstr "Lõpeta" #: ../src/rootmenu.c:180 msgid "Exit window manager?" msgstr "Kas lõpetada aknahalduri töö?" #: ../src/rootmenu.c:221 msgid "Kill X session" msgstr "X-seansi kõrvaldamine" #: ../src/rootmenu.c:222 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Kas kõrvaldada X-seanss?\n" "(kõik rakendused suletakse)" #: ../src/rootmenu.c:445 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:vigane kiirklahvi kirjeldus \"%s\" kirjele %s" #: ../src/rootmenu.c:453 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s: vigane klahv kiirkorralduses \"%s\" kirjele %s" #: ../src/rootmenu.c:487 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: ebamäärane '\"' menüüfailis" #: ../src/rootmenu.c:536 #, c-format msgid "%s: missing command" msgstr "%s: puuduv korraldus" #: ../src/rootmenu.c:586 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "vigane OPEN_MENU kirjeldus: %s" #: ../src/rootmenu.c:643 #, c-format msgid "%s:could not stat menu" msgstr "%s:menüü rekvisiite pole võimalik tuvastada" #: ../src/rootmenu.c:651 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:menüü rekvisiite pole võimalik tuvastada:%s" #: ../src/rootmenu.c:667 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "liiga palju OPEN_MENU parameetreid: %s" #: ../src/rootmenu.c:709 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Rakenduste menüüs on mitu WORKSPACE_MENU korraldust. Lubatud on ainult üks." #: ../src/rootmenu.c:740 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "Rakenduste menüüs on mitu WINDOWS_MENU korraldust. Lubatud on ainult üks." #: ../src/rootmenu.c:745 msgid "Window List" msgstr "Akende nimekiri" #: ../src/rootmenu.c:772 ../src/rootmenu.c:789 ../src/rootmenu.c:797 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:menüükorraldusel \"%s\" puuduvad parameetrid" #: ../src/rootmenu.c:861 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:menüü seadistuses on tundmatu käsk \"%s\"." #: ../src/rootmenu.c:868 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:kiirkorraldust pole võimalik kirjele \"%s\" lisada" #: ../src/rootmenu.c:978 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:menüü seadistustes on suurim rea pikkus ületatud: %s" #: ../src/rootmenu.c:998 ../src/rootmenu.c:1073 ../src/rootmenu.c:1158 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:menüü seadistuses puudub korraldus: %s" #: ../src/rootmenu.c:1025 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:menüüfaili süntaksi viga: puudub lõputunnus END" #: ../src/rootmenu.c:1047 ../src/rootmenu.c:1132 msgid "could not make arguments for menu file preprocessor" msgstr "menüüfaili eeltöötlejale pole võimalik argumente luua" #: ../src/rootmenu.c:1053 ../src/rootmenu.c:1139 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s:menüüfaili pole võimalik avada või eeltöödelda" #: ../src/rootmenu.c:1064 ../src/rootmenu.c:1149 #, c-format msgid "%s:could not open menu file" msgstr "%s:menüüfaili pole võimalik avada" #: ../src/rootmenu.c:1084 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:vigane menüüfail. Puudub MENU käsk" #: ../src/rootmenu.c:1093 msgid "error reading preprocessed menu data" msgstr "viga eeltöödeldud menüüandmete lugemisel" #: ../src/rootmenu.c:1169 #, c-format msgid "%s:no title given for the root menu" msgstr "%s:juurmenüü pealkiri on puudu" #: ../src/rootmenu.c:1251 ../src/rootmenu.c:1323 ../src/rootmenu.c:1362 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "menüü %s loomise käigus lõppes mälu" #: ../src/rootmenu.c:1260 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:faili \"%s\" rekvisiite pole menüükataloogist võimalik lugeda" #: ../src/rootmenu.c:1412 msgid "Commands" msgstr "Korraldused" #: ../src/rootmenu.c:1415 msgid "Restart" msgstr "Taaskäivitamine" #: ../src/rootmenu.c:1416 msgid "Exit..." msgstr "Lõpetamine..." #: ../src/rootmenu.c:1455 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "WMRootMenu poolt viidatud menüüfaili \"%s\" pole võimalik leida" #: ../src/rootmenu.c:1461 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "WMRootMenu poolt viidatud menüüle \"%s\" pole võimalik ligi pääseda" #: ../src/rootmenu.c:1473 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "WMRootMenu poolt viidatud vaikimisi kasutatavat menüüfaili \"%s\" pole " "võimalik leida" #: ../src/rootmenu.c:1496 ../src/rootmenu.c:1570 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:vormingu viga juurmenüü seadistuses \"%s\"" #: ../src/rootmenu.c:1647 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Rakenduste menüüd pole võimalik lugeda. Põhjalikuma vigade kirjelduse " "lugemiseks vaata konsooliväljundit." #: ../src/screen.c:617 #, c-format msgid "could not initialize graphics library context: %s" msgstr "graafikateegi konteksti pole võimalik lähtestada: %s" #: ../src/screen.c:643 msgid "could not initialize WINGs widget set" msgstr "WINGs vidinakomplekti pole võimalik lähtestada" #: ../src/screen.c:938 #, c-format msgid "could not save session state in %s" msgstr "seansi olekut %s pole võimalik salvestada" #: ../src/session.c:151 ../src/wdefaults.c:548 ../src/winspector.c:410 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "väärtust \"%s\" pole võimalik tõeväärtuseks teisendada" #: ../src/stacking.c:75 msgid "could not get window list!!" msgstr "akende nimekirja pole võimalik saada!!" #: ../src/startup.c:177 #, c-format msgid "internal X error: %s" msgstr "sisemine X-i viga: %s" #: ../src/startup.c:671 ../src/startup.c:687 ../src/startup.c:693 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "domeeni \"%s\" pole võimalik vaikeväärtuste andmebaasist lugeda" #: ../src/startup.c:679 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16 instead" msgstr "" "ikooni suuruseks on määratud %i, kuid see on liiga väike. Kasutatakse " "suurust 16" #: ../src/startup.c:709 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "Puudub XKB tugi. KbdModeLock on automaatselt keelatud." #: ../src/startup.c:728 msgid "it seems that there is already a window manager running" msgstr "paistab, et mingi aknahaldur juba töötab" #: ../src/startup.c:734 #, c-format msgid "could not manage screen %i" msgstr "ekraani %i pole võimalik hallata" #: ../src/startup.c:790 msgid "could not manage any screen" msgstr "ühtegi ekraani pole võimalik hallata" #: ../src/switchmenu.c:129 msgid "Windows" msgstr "Aknad" #: ../src/texture.c:327 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "tekstuuriks kasutatavat pildifaili \"%s\" pole võimalik leida." #: ../src/texture.c:332 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "tekstuuri pildifaili \"%s\" pole võimalik laadida:%s" #: ../src/texture.c:454 msgid "could not allocate image buffer" msgstr "pildipuhvrit pole võimalik eraldada" #: ../src/wdefaults.c:418 #, c-format msgid "could not find icon file \"%s\"" msgstr "ikoonifaili \"%s\" pole võimalik leida" #: ../src/window.c:2692 ../src/window.c:2848 msgid "" "The NumLock, ScrollLock or similar key seems to be turned on. Turn it off or " "some mouse actions and keyboard shortcuts will not work." msgstr "" "Klahvid NumLock, ScrollLock (või sarnased) näivad olevat sisse lülitatud.\n" "Lülita need välja või muidu ei pruugi mõned hiiretoimingud ja klaviatuuri\n" "kiirkorraldused töötada." #: ../src/winmenu.c:122 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Programm suletakse jõuga.\n" "Kõik salvestamata andmed lähevad kaotsi.\n" "Kas soovid seda teha?" #: ../src/winmenu.c:276 ../src/winmenu.c:285 msgid "Set Shortcut" msgstr "Määra kiirkorraldus" #: ../src/winmenu.c:359 ../src/winmenu.c:399 msgid "could not create submenu for window menu" msgstr "ei õnnestu luua aknamenüü alammenüüd" #: ../src/winmenu.c:403 msgid "Keep on top" msgstr "Hoia esiplaanil" #: ../src/winmenu.c:407 msgid "Keep at bottom" msgstr "Hoia tagaplaanil" #. #. * 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:429 ../src/winmenu.c:527 msgid "Maximize" msgstr "Maksimeeri" #: ../src/winmenu.c:432 ../src/winmenu.c:511 msgid "Miniaturize" msgstr "Minimeeri" #: ../src/winmenu.c:435 ../src/winmenu.c:545 msgid "Shade" msgstr "Keri kokku" #: ../src/winmenu.c:441 msgid "Resize/Move" msgstr "Muuda suurust/liiguta" #: ../src/winmenu.c:444 msgid "Select" msgstr "Vali" #: ../src/winmenu.c:447 msgid "Move To" msgstr "Teisalda" #: ../src/winmenu.c:452 msgid "Attributes..." msgstr "Rekvisiidid..." #: ../src/winmenu.c:454 msgid "Options" msgstr "Valikud" #: ../src/winmenu.c:465 msgid "Close" msgstr "Sulge" #: ../src/winmenu.c:505 msgid "Deminiaturize" msgstr "Ava aken" #: ../src/winmenu.c:521 msgid "Unmaximize" msgstr "Taasta suurus" #: ../src/winmenu.c:539 msgid "Unshade" msgstr "Keri lahti" #: ../src/winspector.c:350 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Selle akna jaoks määratud ikooni \"%s\" pole võimalik leida" #: ../src/winspector.c:365 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Kirjeldatud ikooni \"%s\" pole võimalik avada:%s" #: ../src/winspector.c:1065 #, c-format msgid "Inspecting %s.%s" msgstr "%s.%s vaatlemine" #: ../src/winspector.c:1088 msgid "Click in the window you wish to inspect." msgstr "Kliki aknale, mida soovid vaadelda." #: ../src/winspector.c:1120 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "Seadistuste salvestamisel laieneb see\n" "kõigile akendele, mille WM_CLASS\n" "omadus on üks ülalloetletud nimedest." #: ../src/winspector.c:1145 msgid "Save" msgstr "Salvesta" #: ../src/winspector.c:1153 msgid "Apply" msgstr "Rakenda" #: ../src/winspector.c:1159 msgid "Reload" msgstr "Taasta" #: ../src/winspector.c:1168 ../src/winspector.c:1178 msgid "Window Specification" msgstr "Akna kirjeldus" #: ../src/winspector.c:1169 msgid "Window Attributes" msgstr "Akna rekvisiidid" #: ../src/winspector.c:1170 msgid "Advanced Options" msgstr "Laiendatud valikud" #: ../src/winspector.c:1171 msgid "Icon and Initial Workspace" msgstr "Ikoon ja töölaud" #: ../src/winspector.c:1172 msgid "Application Specific" msgstr "Rakendusele omane" #: ../src/winspector.c:1185 msgid "Defaults for all windows" msgstr "Vaikimisi kõigile akendele" #: ../src/winspector.c:1238 msgid "Select window" msgstr "Vali aken" #: ../src/winspector.c:1251 msgid "Attributes" msgstr "Rekvisiidid" #: ../src/winspector.c:1262 msgid "Disable titlebar" msgstr "Tiitliriba on peidus" #: ../src/winspector.c:1264 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Aknalt tiitliriba eemaldamine. Ilma\n" "tiitliribata akna parameetreid saab\n" "muuta,vajutadades Control+Esc (või kui\n" "juhtklahve on muudetud, siis sellele\n" "vastavat klahvikombinatsiooni)." #: ../src/winspector.c:1270 msgid "Disable resizebar" msgstr "Suuruse muutmise riba on peidus" #: ../src/winspector.c:1272 msgid "Remove the resizebar of this window." msgstr "Akna suuruse muutmise riba eemaldamine sellelt aknalt." #: ../src/winspector.c:1275 msgid "Disable close button" msgstr "Sulgemisnupp on peidus" #: ../src/winspector.c:1277 msgid "Remove the `close window' button of this window." msgstr "Akna sulgemisnupu eemaldamine selle akna tiitliribalt." #: ../src/winspector.c:1280 msgid "Disable miniaturize button" msgstr "Minimeerimisnupp on peidus" #: ../src/winspector.c:1282 msgid "Remove the `miniaturize window' button of the window." msgstr "Akna minimeerimisnupu eemaldamine selle akna tiitliribalt." #: ../src/winspector.c:1285 msgid "Disable border" msgstr "Raam on peidus" #: ../src/winspector.c:1287 msgid "Remove the 1 pixel black border around the window." msgstr "Akna ümbert ühepikslise musta raami eemaldamine." #: ../src/winspector.c:1290 msgid "Keep on top (floating)" msgstr "Aken hoitakse esiplaanil (ujuv)" #: ../src/winspector.c:1292 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "Akna hoidmine teiste akende peal." #: ../src/winspector.c:1295 msgid "Keep at bottom (sunken)" msgstr "Aken hoitakse tagaplaanil (uputatud)" #: ../src/winspector.c:1297 msgid "Keep the window under all other windows." msgstr "Akna hoidmine kõigi teiste akende all." #: ../src/winspector.c:1302 msgid "Make window present in all workspaces." msgstr "Aken on nähtav kõigil töölaudadel." #: ../src/winspector.c:1305 msgid "Start miniaturized" msgstr "Käivitatakse minimeerituna" #: ../src/winspector.c:1307 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "Akna automaatne minimeerimine selle\n" "esmasel näitamisel." #: ../src/winspector.c:1310 msgid "Start maximized" msgstr "Käivitatakse maksimeerituna" #: ../src/winspector.c:1312 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "Akna automaatne maksimeerimine selle\n" "esmasel näitamisel." #: ../src/winspector.c:1315 msgid "Full screen maximization" msgstr "Maksimeeritakse üle kogu ekraani" #: ../src/winspector.c:1317 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Akna suurendamise lubamine kogu ekraani ulatuses.\n" "Akna tiitliriba ja suuruse muutmise riba jäävad\n" "siis väljaspoole ekraani piirkonda." #: ../src/winspector.c:1333 msgid "Advanced" msgstr "Laiendatud võimalused" #: ../src/winspector.c:1350 msgid "Do not bind keyboard shortcuts" msgstr "Kiirklahvidele ei reageerita" #: ../src/winspector.c:1352 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Fookuses oleval aknal keelatakse reageerimine\n" "Window Makeri kiirklahvidele. See võimaldab\n" "aknal vastu võtta kõiki klaviatuurilt tulevaid\n" "koode." #: ../src/winspector.c:1358 msgid "Do not bind mouse clicks" msgstr "Hiirevajutustele ei reageerita" #: ../src/winspector.c:1360 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you have\n" "configured)." msgstr "" "Aknal keelatakse reageerimast hiiretoimingutele.\n" "Näiteks `Alt'+lohistamine (kui alt on määratud\n" "muuteklahviks)." #: ../src/winspector.c:1364 msgid "Do not show in the window list" msgstr "Akende nimekirjas ei näidata" #: ../src/winspector.c:1366 msgid "Do not list the window in the window list menu." msgstr "Akna nime ei näidata akende nimekirjas." #: ../src/winspector.c:1369 msgid "Do not show in the switch panel" msgstr "Aknavahetuse paneelil ei näidata" #: ../src/winspector.c:1371 msgid "Do not include in switchpanel while alternating windows." msgstr "Akende vahetamisel ei näidata aknavahetuse paneelil." #: ../src/winspector.c:1374 msgid "Do not let it take focus" msgstr "Akna fokuseerimine keelatud" #: ../src/winspector.c:1376 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "Akna fokuseerimine on keelatud. Aknale ei\n" "mõju klaviatuurilt saabuvad vajutused." #: ../src/winspector.c:1379 msgid "Keep inside screen" msgstr "Hoitakse ekraani alal" #: ../src/winspector.c:1381 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Aknent ei saa väljaspoole ekraani pinda liigutada.\n" #: ../src/winspector.c:1385 msgid "Ignore 'Hide Others'" msgstr "Eiratakse käsku 'Peida teised aknad'" #: ../src/winspector.c:1387 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "Käsu \"Peida teised aknad\" korral\n" "akent ei peideta." #: ../src/winspector.c:1390 msgid "Ignore 'Save Session'" msgstr "Seansi salvestamist eiratakse" #: ../src/winspector.c:1392 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Akna andmeid ei salvestata seansi andmetesse\n" "ja seetõttu ei käivitata rakendust koos seansi\n" "koosseisu kuuluvate akendega." #: ../src/winspector.c:1397 msgid "Emulate application icon" msgstr "Rakenduse ikooni emuleeritakse" #: ../src/winspector.c:1399 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Aknale luuakse dokitava rakenduse ikoon, mille alusel\n" "Window Maker on suuteline rakenduse oma ikooni looma." #: ../src/winspector.c:1404 msgid "Focus across workspaces" msgstr "Fokuseeritav kõigilt töölaudadelt" #: ../src/winspector.c:1406 msgid "" "Allow Window Maker to switch workspace to satisfy\n" "a focus request (annoying)." msgstr "" "Lubab Window Makeril akna fokuseerimispäringu korral\n" "lülituda akna töölauale (võib osutuda tüütuks)." #: ../src/winspector.c:1410 msgid "Do not let it be minimized" msgstr "Akna minimeerimine keelatud" #: ../src/winspector.c:1412 msgid "" "Do not let the window of this application be\n" "minimized.\n" msgstr "" "Selle rakenduse akena minimeerimise keelamine.\n" #: ../src/winspector.c:1417 msgid "Disable language button" msgstr "Keelenupp on peidus" #: ../src/winspector.c:1419 msgid "Remove the `toggle language' button of the window." msgstr "" "Keele sisse- ja väljalülitamise\n" "nupu eemaldamine akna tiitliribalt." #: ../src/winspector.c:1436 msgid "Miniwindow Image" msgstr "Pisiakna pilt" #: ../src/winspector.c:1463 msgid "Icon filename:" msgstr "Ikoonifaili nimi:" #: ../src/winspector.c:1474 msgid "Ignore client supplied icon" msgstr "Kliendi enda ikooni eiratakse" #: ../src/winspector.c:1480 msgid "Initial Workspace" msgstr "Töölaud, millel käivitatakse" #: ../src/winspector.c:1482 msgid "The workspace to place the window when it'sfirst shown." msgstr "Töölaua nimi, mille peal akent esimest korda näidatakse." #: ../src/winspector.c:1488 msgid "Nowhere in particular" msgstr "Ei oma tähtsust" #: ../src/winspector.c:1505 msgid "Application Attributes" msgstr "Rakenduse rekvisiidid" #: ../src/winspector.c:1516 msgid "Start hidden" msgstr "Käivitatakse peidetuna" #: ../src/winspector.c:1518 msgid "Automatically hide application when it's started." msgstr "Akna peitmine rakenduse käivitamise hetkel." #: ../src/winspector.c:1521 msgid "No application icon" msgstr "Rakenduse ikoon on peidus" #: ../src/winspector.c:1523 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Rakenduse ikooni keelamine. Sel juhul pole\n" "rakendust võimalik dokkida ja kõik selle\n" "rakenduse juba dokitud ikoonid ei toimi enam\n" "korrektselt." #: ../src/winspector.c:1529 msgid "Shared application icon" msgstr "Rakenduse ikoon on jagatud" #: ../src/winspector.c:1531 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "Ühe jagatud ikooni kasutamine kõigi\n" "rakenduse instantside jaoks.\n" #: ../src/workspace.c:93 ../src/workspace.c:94 ../src/workspace.c:660 #, c-format msgid "Workspace %i" msgstr "Töölaud %i" #: ../src/workspace.c:705 msgid "Workspaces" msgstr "Töölauad" #: ../src/workspace.c:707 msgid "could not create Workspace menu" msgstr "töölaua menüüd pole võimalik luua" #: ../src/workspace.c:714 msgid "New" msgstr "Uus" #: ../src/workspace.c:715 msgid "Destroy Last" msgstr "Eemalda viimane" WindowMaker-0.95.5/po/nl.po0000644000175000017500000003240012214432632012347 00000000000000msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.65.1\n" "POT-Creation-Date: 1997-06-02 18:29:09-0300\n" "PO-Revision-Date: 1997-06-02 18:29:09-0300\n" "Last-Translator: Roeland Mertens \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../main.c:147 msgid "Restart failed!!!" msgstr "Herstarten gefaald!!!" #: ../main.c:162 msgid "%s aborted.\n" msgstr "%s afgebroken.\n" #: ../main.c:170 msgid "usage: %s [-options]\n" msgstr "gebruik: %s [-opties]\n" #: ../main.c:171 msgid "options:" msgstr "opties" #: ../main.c:173 msgid " -nocpp \t\tdisable preprocessing of configuration files" msgstr " -nocpp \t\tafzetten voorverwerking van de configuratie bestanden" #: ../main.c:176 msgid " -nodock\t\tdo not open the application Dock" msgstr " -nodock\t\tOpen de applicatie Dock niet!" #: ../main.c:178 msgid " -locale locale\t\tlocale to use" msgstr " -locale locale\t\tlocale te gebruiken" #: ../main.c:179 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tscherm te gebruiken" #: ../main.c:180 msgid " -version\t\tprint version and exit" msgstr " -version\t\tversie afdrukken en afsluiten" #: ../main.c:234 msgid "cannot set locale %s" msgstr "kan locale %s niet instellen" #: ../main.c:235 msgid "falling back to C locale" msgstr "teruggrijpen naar C locale" #: ../main.c:263 msgid "X server does not support locale" msgstr "X server ondersteunt geen locale" #: ../main.c:266 msgid "cannot set locale modifiers" msgstr "kan locale niet instellen" #: ../main.c:276 msgid "could not open display %s" msgstr "kan scherm %s niet openen" #: ../event.c:230 msgid "stack overflow: too many dead processes" msgstr "stapel overflow: te veel dode processen" #: ../startup.c:137 msgid "internal X error: %s\n" msgstr "interne X fout: %s\n" #: ../startup.c:152 msgid "got signal %i (%s)\n" msgstr "kreeg signaal %i (%s)\n" #: ../startup.c:154 msgid "got signal %i\n" msgstr "kreeg signaal %i\n" #: ../texture.c:317 ../texture.c:327 msgid "unsupported visual/depth for gradients" msgstr "niet ondersteund scherm/diepte voor gradienten" #: ../menu.c:231 msgid "wrealloc() failed while trying to add menu item" msgstr "wrealloc() gefaald tijdens toevoegen menukeuze" #: ../pixmap.c:211 msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "kon mask bitmap bestand niet laden \"%s\".Zal mask niet gebruiken" #: ../image.c:183 ../image.c:889 ../pixmap.c:261 msgid "could not load XPM file \"%s\"" msgstr "kon XPM bestand niet laden \"%s\"" #: ../pixmap.c:264 msgid "cannot load \"%s\": XPM support not compiled in" msgstr "kon \"%s\" niet laden : XPM ondersteuning niet ingecompileerd" #: ../pixmap.c:271 msgid "could not load XBM file \"%s\"" msgstr "kon XBM bestand niet laden \"%s\"" #: ../image.c:196 ../pixmap.c:275 msgid "can't identify image file \"%s\"" msgstr "kon image bestand niet identificeren \"%s\"" #: ../image.c:200 ../pixmap.c:279 msgid "unknown image format in \"%s\"" msgstr "onbekend image formaat in \"%s\"" #: ../image.c:65 ../image.c:494 msgid "can't load pixmap file \"%s\". Size too weird" msgstr "kon pixmap bestand \"%s\" niet laden. Grootte te raar" #: ../image.c:83 ../image.c:746 ../image.c:768 msgid "virtual memory exhausted during pixmap load. Not fatal..." msgstr "virtueel geheugen uitgeput tijdens laden pixmap.Niet fataal..." #: ../image.c:100 ../image.c:510 msgid "virtual memory exhausted. Continuing..." msgstr "virtueel geheugen uitgeput. Voortdoen..." #: ../image.c:186 msgid "cannot load \"%s\": XPM format not supported" msgstr "kan \"%s\" niet laden: XPM formaat niet ondersteund" #. XPM #: ../image.c:191 msgid "can't convert XBM file \"%s\" to internal format" msgstr "kan XBM bestand \"%s\" niet converteren naar intern formaat" #: ../image.c:556 ../image.c:562 ../image.c:581 msgid "virtual memory exhausted during XPM load." msgstr "virtueel geheugen uitgeput tijdens laden XPM" #: ../image.c:712 ../image.c:855 msgid "could not convert image \"%s\" to internal format" msgstr "kon image \"%s\" niet converteren naar intern formaat" #: ../image.c:901 msgid "can't load \"%s\": unknown image format" msgstr "kon \"%s\" niet laden : onbekend image formaat" #: ../screen.c:83 msgid "it seems that there already is a window manager running" msgstr "waarschijnelijk draait er al een window manager" #: ../screen.c:234 ../screen.c:344 msgid "could not parse color %s" msgstr "kon kleur %s niet parsen" #: ../screen.c:289 msgid "The following character sets are missing:" msgstr "De volgende karaktersets ontbreken" #: ../screen.c:293 msgid "The string \"%s\" will be used in place" msgstr "De string \"%s\" zal gebruikt in plaats" #: ../screen.c:295 msgid "of any characters from those sets." msgstr "van enige karakters van die sets" #: ../screen.c:298 msgid "could not create font set %s. Using fixed" msgstr "kon font set %s niet aanmaken. Fixed wordt gebruikt" #: ../screen.c:305 msgid "could not load any usable font set" msgstr "kon geen bruikbare font set laden" #: ../screen.c:315 msgid "could not load font %s. Using fixed" msgstr "kon font %s niet laden.Fixed wordt gebruikt" #: ../screen.c:318 msgid "could not load any usable font" msgstr "kon geen bruikbare font laden" #: ../screen.c:439 msgid "Gradient texture not supported for your display (PseudoColor %ibpp)" msgstr "Gradiente texturen niet ondersteund voor uw scherm (Pseudokleur %ibpp)" #: ../screen.c:442 msgid "You must enable dithering to be able to use gradients with this display" msgstr "U moet dithering aanzetten om gradienten te kunnen gebruiken met dit scherm" #: ../screen.c:456 msgid "Gradient texture available only for PseudoColor and TrueColor displays" msgstr "Gradienten enkel beschikbaar voor Pseudokleur en Truecolor schermen" #: ../screen.c:478 msgid "could not allocate texture" msgstr "kon textuur niet toewijzen" #: ../screen.c:1058 msgid "colormap size value(s) too large" msgstr "maat kleurenmap waarden te groot" #: ../dialog.c:208 ../rootmenu.c:108 msgid "Exit" msgstr "Stoppen" #: ../rootmenu.c:109 msgid "Exit window manager?" msgstr "Stoppen window manager?" #: ../rootmenu.c:128 msgid "Close X session" msgstr "Stoppen X sessie" #: ../rootmenu.c:129 msgid "" "Close Window System session?\n" "(all applications will be closed)" msgstr "" "Afsluiten Window system sessie?\n" "(alle applicaties zullen afgesloten worden)" #: ../rootmenu.c:217 ../rootmenu.c:314 ../rootmenu.c:496 msgid "Switch to %i" msgstr "Overspringen naar %i" #: ../rootmenu.c:283 msgid "out of memory to store menu commands. Nuking it." msgstr "geheugen te kort om menu commando's op te slaan.Nuke het" #: ../rootmenu.c:303 msgid "Workspaces" msgstr "Werkplaats" #: ../rootmenu.c:305 msgid "could not create Workspace menu" msgstr "kon Werkplaats menu niet aanmaken" #: ../rootmenu.c:308 msgid "New" msgstr "Nieuw" #: ../rootmenu.c:309 msgid "Destroy Last" msgstr "Vernietig Laatste" #: ../rootmenu.c:350 msgid "missing command in menu config: %s" msgstr "commando in menu configuratie ontbreekt : %s" #: ../rootmenu.c:390 msgid "menu can only have one WORKSPACE_MENU" msgstr "menu kan maar een WORKSPACE_MENU hebben" #: ../rootmenu.c:406 msgid "unknown command \"%s\" in menu config." msgstr "onbekend commando \"%s\" in menu configuratie" #: ../rootmenu.c:410 msgid "syntax error in menu config. END declaration missing" msgstr "syntax fout in menu configurate. END declaratie ontbreekt" #: ../rootmenu.c:435 msgid "syntax error in menu config. %s" msgstr "syntax fout in menu configuratie. %s" #: ../rootmenu.c:443 msgid "no title given for the root menu" msgstr "geen title gegeven voor basis menu" #: ../rootmenu.c:455 msgid "Commands" msgstr "Commando's" #: ../rootmenu.c:456 msgid "Exit..." msgstr "Afsluiten" #: ../rootmenu.c:573 msgid "could not stat menu configuration file \"%s\"" msgstr "kon menu configuratie bestand \"%s\" niet statten" #: ../rootmenu.c:578 msgid "no read permision to menu configuration file" msgstr "geen lees permissie voor menu configuratie bestand" #: ../rootmenu.c:595 msgid "could not make arguments for menu file preprocessor" msgstr "kon geen argumenten voor de menu bestand voorverwerker maken" #: ../rootmenu.c:603 msgid "could not open menu configuration preprocessor" msgstr "kon de menu configuratie voorverwerker niet starten" #: ../rootmenu.c:613 msgid "couldn't open menu configuration file \"%s\"" msgstr "kon het menu configuratie bestand niet openen \"%s\"" #: ../dock.c:689 ../rootmenu.c:646 msgid "Error" msgstr "Fout" #: ../rootmenu.c:647 msgid "" "Could not read menu configuration\n" "(see console log for details)" msgstr "" "Kon menu configuratie niet lezen\n" "(zie console log for details)" #: ../dialog.c:196 msgid "OK " msgstr "OK" #: ../dialog.c:210 msgid "Cancel" msgstr "" #: ../resource.c:297 ../resource.c:359 ../resource.c:368 ../resource.c:497 ../resource.c:521 ../resource.c:530 ../resource.c:555 msgid "%s: syntax error in line \"%s\"" msgstr "%s: syntax fout op lijn \"%s\"" #: ../resource.c:309 msgid "%s: invalid window attribute specification in \"%s\"" msgstr "%s: ongeldig window attribuut specificate in \"%s\"" #: ../resource.c:336 msgid "%s: unknown attribute in line \"%s\"" msgstr "%s: onbekend attribuut op lijn \"%s\"" #: ../resource.c:416 ../resource.c:425 ../resource.c:437 msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:ongeldig toestenbord snelkoppeling specificatie \"%s\"" #: ../resource.c:477 msgid "%s: expected section identifier but got %s" msgstr "%s: verwachtte sectie identificator maar kreeg %s" #: ../resource.c:510 msgid "%s: unknown option in line \"%s\"" msgstr "%s: onbekende optie op lijn \"%s\"" #: ../resource.c:559 msgid "%s: invalid colormap size in line \"%s\"" msgstr "%s: ongeldige kleurenmap grootte op lijn \"%s\"" #: ../resource.c:579 msgid "%s: invalid geometry display type \"%s\". Shouldbe center, corner, floating or line" msgstr "%s: ongeldige geometrie scherm type \"%s\". Zou center, corner, floating of line moeten zijn" #: ../resource.c:601 msgid "%s: invalid focus mode \"%s.\" Should be manual, auto or semiauto" msgstr "%s: ongeldig focus mode \"%s.\" Zou manual, auto of semiauto moeten zijn" #: ../resource.c:619 msgid "%s: invalid window placement mode \"%s\". Should be auto, cascade or manual" msgstr "%s: ongeldig window plaatsingsmode \"%s\". Zou auto, cascade of manueel moeten zijn" #: ../resource.c:639 msgid "%s: invalid texture type \"%s\" Should be solid, dgradient, vgradient or hgradient" msgstr "%s: ongeldig textuur type \"%s\" Zou solid, dgradient, vgradient of hgradient moeten zijn" #: ../resource.c:666 msgid "%s: invalid gradient spec. \"%s\"" msgstr "%s: ongeldig gradient spec. \"%s\"" #: ../resource.c:685 msgid "%s: invalid coordinate \"%s\"" msgstr "%s: ongeldige coordinaat \"%s\"" #: ../resource.c:701 msgid "%s: invalid justification type \"%s\". Should be left, center or right" msgstr "%s: ongeldig uitlijningstype \"%s\". Zou left, center of right moeten zijn" #: ../resource.c:731 msgid "could not make arguments for preference file preprocessor" msgstr "kon geen argumenten maken voor de voorkeursbestand voorverwerker" #: ../resource.c:737 msgid "could not open preference file preprocessor" msgstr "kon voorkeursbestand voorverwerker niet openen" #: ../resource.c:744 msgid "could not open configuration file: \"%s\"" msgstr "kon configuratie bestand: \"%s\" niet openen" #: ../resource.c:791 msgid "could not find default icon \"%s\"" msgstr "kon standaard icoon \"%s\" niet vinden" #: ../resource.c:797 msgid "could not find a preference file (%s) in \"%s\"" msgstr "kon voorkeursbestand (%s) niet vinden in \"%s\"" #: ../resource.c:805 msgid "could not find icon background \"%s\"" msgstr "kon icoon achtergrond \"%s\" niet vinden" #: ../raster.c:183 msgid "invalid dither colormap size specification.disabling" msgstr "ongeldig dither kleurenmap grootte specificatie.Uitgeschakeld" #: ../raster.c:193 msgid "Could not build PseudoColor color table\n" msgstr "Kon pseudokleur kleurentafel niet aanmaken\n" #: ../misc.c:50 msgid "could not define value for %s for cpp" msgstr "kon geen waarde voor %s definieeren voor cpp" #: ../misc.c:80 msgid "could not get password entry for UID %i" msgstr "kon geen paswoord vermelding vinden voor UID %i" #: ../appmenu.c:114 msgid "appmenu:could not create menu" msgstr "appmenu: kon menu niet aanmaken" #: ../appmenu.c:145 msgid "appmenu:could not create menu entry" msgstr "appmenu: kon menukeuze niet aanmaken" #: ../stacking.c:89 ../stacking.c:148 msgid "could not get window list!!" msgstr "kon geen windowlijst krijgen!!" #: ../switchmenu.c:109 msgid "Windows" msgstr "Windows" #: ../dock.c:171 msgid "could not open file \"%s\" to save Dock state" msgstr "kon bestand \"%s\" niet openen om de Dock status op te slaan" #: ../dock.c:687 msgid "Could not execute program \"%s\"" msgstr "Kon program \"%s\" niet uitvoeren" #: ../winmenu.c:119 msgid "(Un)Maximize" msgstr "(Niet)Maximale grootte" #: ../winmenu.c:126 msgid "Miniaturize" msgstr "Verkleinen" #: ../winmenu.c:133 msgid "(Un)Shade" msgstr "(Geen)Shaduw" #: ../winmenu.c:140 msgid "Hide" msgstr "Verstoppen" #: ../winmenu.c:146 msgid "Hide Others" msgstr "Andere verstoppen" #: ../winmenu.c:149 msgid "Close" msgstr "Sluiten" #: ../winmenu.c:156 msgid "Kill" msgstr "Afmaken" #: ../generic/error.c:46 msgid " fatal error: " msgstr " fatale fout: " #: ../generic/error.c:72 msgid " warning: " msgstr " waarschuwing: " WindowMaker-0.95.5/po/Makefile.am0000644000175000017500000000401012214432632013426 00000000000000nlsdir = $(NLSDIR) CATALOGS = @MOFILES@ CLEANFILES = $(CATALOGS) WindowMaker.pot # Please keep this sorted in alphabetic order! EXTRA_DIST = be.po bg.po bs.po ca.po cs.po da.po de.po el.po es.po et.po \ fi.po fr.po gl.po hr.po hu.po hy.po it.po ja.po ko.po ms.po nl.po \ no.po pl.po pt.po ro.po ru.po sk.po sv.po tr.po zh_CN.po zh_TW.po POTFILES = \ $(top_builddir)/src/appicon.c \ $(top_builddir)/src/application.c \ $(top_builddir)/src/defaults.c \ $(top_builddir)/src/dialog.c \ $(top_builddir)/src/dock.c \ $(top_builddir)/src/dockedapp.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/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/switchpanel.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/wmspec.c \ $(top_builddir)/src/workspace.c SUFFIXES = .po .mo .po.mo: msgfmt -c -o $@ $< all-local: $(CATALOGS) WindowMaker.pot: $(POTFILES) xgettext --default-domain=WindowMaker \ --add-comments --keyword=_ --keyword=N_ $(POTFILES) if cmp -s WindowMaker.po WindowMaker.pot; then \ rm -f WindowMaker.po; \ else \ mv -f WindowMaker.po WindowMaker.pot; \ fi install-data-local: $(CATALOGS) $(mkinstalldirs) $(DESTDIR)$(nlsdir) chmod 755 $(DESTDIR)$(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_DATA) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/WindowMaker.mo; \ fi; \ done WindowMaker-0.95.5/po/sk.po0000644000175000017500000015764112214432632012372 00000000000000# Slovak messages for WindowMaker # (C) 2001 Jan "judas" Tomka # # Original translation by Jan "judas" Tomka on Jan 20 2001 # Currently maintained by Jan "judas" Tomka # # Revision history: # WM-ver author email date # 0.63.1 Jan "judas" Tomka Jan 28 2001 # 0.64.0 Jan "judas" Tomka Feb 22 2001 # 0.65.1 Jan "judas" Tomka Aug 08 2001 # 0.70.0 Jan "judas" Tomka Oct 15 2001 # 0.70.1 Jan "judas" Tomka Nov 02 2001 # 0.80.0 Jan "judas" Tomka Dec 20 2001 # 0.80.2 Jan "judas" Tomka Jan 31 2004 # msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.80.2\n" "POT-Creation-Date: 2004-01-31 18:25+0100\n" "PO-Revision-Date: 2001-12-20 03:53+0100\n" "Last-Translator: Jan \"judas\" Tomka \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:415 ../src/dialog.c:295 ../src/dock.c:3361 #: ../src/dockedapp.c:231 ../src/main.c:273 ../src/rootmenu.c:1854 #: ../src/winspector.c:389 ../src/winspector.c:406 msgid "Error" msgstr "Chyba" #: ../src/appicon.c:416 msgid "Could not open specified icon file" msgstr "Nemožno otvoriÅ¥ daný súbor s ikonou" #: ../src/appicon.c:417 ../src/dialog.c:192 ../src/dialog.c:295 #: ../src/dialog.c:724 ../src/dialog.c:1780 ../src/dock.c:533 #: ../src/dock.c:541 ../src/dock.c:565 ../src/dock.c:3362 #: ../src/dockedapp.c:232 ../src/dockedapp.c:427 ../src/main.c:273 #: ../src/rootmenu.c:1858 ../src/winspector.c:390 ../src/winspector.c:407 msgid "OK" msgstr "OK" #: ../src/appicon.c:445 ../src/dock.c:262 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " bude nútene ukonÄená.\n" "VÅ¡etky neuložené zmeny sa stratia.\n" "Prosím, potvrÄte." #: ../src/appicon.c:453 ../src/dock.c:281 ../src/winmenu.c:125 msgid "Kill Application" msgstr "ZabiÅ¥ aplikáciu" #: ../src/appicon.c:454 ../src/dock.c:282 ../src/winmenu.c:127 msgid "Yes" msgstr "Ãno" #: ../src/appicon.c:454 ../src/dock.c:282 ../src/winmenu.c:127 msgid "No" msgstr "Nie" #: ../src/appicon.c:484 ../src/dock.c:1186 ../src/dock.c:3527 msgid "Unhide Here" msgstr "OdhaliÅ¥ tu" #: ../src/appicon.c:485 ../src/appicon.c:510 ../src/dock.c:1188 #: ../src/dock.c:1190 ../src/dock.c:3539 ../src/winmenu.c:467 msgid "Hide" msgstr "SkryÅ¥" #: ../src/appicon.c:486 msgid "Set Icon..." msgstr "ZmeniÅ¥ ikonu..." #: ../src/appicon.c:487 ../src/dock.c:1194 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 ../src/winmenu.c:522 msgid "Kill" msgstr "ZabiÅ¥" #: ../src/appicon.c:508 ../src/dock.c:3537 msgid "Unhide" msgstr "OdhaliÅ¥" #: ../src/application.c:398 #, c-format msgid "recreating missing icon '%s'" msgstr "znovu sa vytvára chýbajúca ikona '%s'" #: ../src/defaults.c:921 ../src/defaults.c:1082 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "" "Doména %s (%s) v globálnej databáze implicitných nastavení je poÅ¡kodená!" #: ../src/defaults.c:926 #, c-format msgid "could not load domain %s from global defaults database" msgstr "nemožno naÄítaÅ¥ doménu %s z globálnej databázy implicitných nastavení" #: ../src/defaults.c:977 ../src/defaults.c:992 #, c-format msgid "invalid global menu file %s" msgstr "chybný globálny súbor s menu %s" #: ../src/defaults.c:1020 ../src/startup.c:884 ../src/startup.c:902 #: ../src/startup.c:909 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "nemožno naÄítaÅ¥ doménu \"%s\" z databázy implicitných nastavení" #: ../src/defaults.c:1066 ../src/defaults.c:1171 ../src/defaults.c:1212 #: ../src/defaults.c:1268 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Doména %s (%s) v databáze implicitných nastavení je poÅ¡kodená!" #: ../src/defaults.c:1071 ../src/defaults.c:1191 ../src/defaults.c:1248 #: ../src/defaults.c:1278 ../src/menureader.c:397 #, c-format msgid "could not load domain %s from user defaults database" msgstr "" "nemožno naÄítaÅ¥ doménu %s z uživateľskej databázy implicitných nastavení" #: ../src/defaults.c:1101 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "" "nemožno naÄítaÅ¥ doménu %s z globálnej databázy implicitných nastavení (%s)" #: ../src/defaults.c:1238 ../src/screen.c:425 #, c-format msgid "could not load logo image for panels: %s" msgstr "nemožno naÄítaÅ¥ obrázok s logom pre panely: %s" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1487 ../src/defaults.c:1629 ../src/defaults.c:1741 #: ../src/defaults.c:2220 ../src/defaults.c:2237 ../src/defaults.c:2282 #: ../src/defaults.c:2329 ../src/defaults.c:2802 ../src/wdefaults.c:571 #: ../src/wdefaults.c:607 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Chybný formát voľby kľúÄa \"%s\". Má byÅ¥ %s." #: ../src/defaults.c:1489 ../src/defaults.c:1570 ../src/defaults.c:1602 #: ../src/defaults.c:1634 ../src/defaults.c:1647 ../src/defaults.c:1662 #: ../src/defaults.c:1676 ../src/defaults.c:1746 ../src/defaults.c:1758 #: ../src/defaults.c:2225 ../src/defaults.c:2242 ../src/defaults.c:2255 #: ../src/defaults.c:2287 ../src/defaults.c:2303 ../src/defaults.c:2334 #: ../src/defaults.c:2421 ../src/defaults.c:2807 ../src/defaults.c:2818 #, c-format msgid "using default \"%s\" instead" msgstr "použitá implicitná \"%s\"" #: ../src/defaults.c:1520 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "chybná hodnota kľúÄa \"%s\". Má býť jedna z %s" #: ../src/defaults.c:1565 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "nemožno previesÅ¥ \"%s\" na boolean pre kÄ¾ÃºÄ \"%s\"" #: ../src/defaults.c:1599 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "nemožno previesÅ¥ \"%s\" na integer pre kÄ¾ÃºÄ \"%s\"" #: ../src/defaults.c:1642 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Nesprávny poÄet prvkov v poli kľúÄa \"%s\"." #: ../src/defaults.c:1657 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Chybná hodnota kľúÄa \"%s\". Má byÅ¥ Coordinate." #: ../src/defaults.c:1672 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "nemožno previesÅ¥ pole integery pre \"%s\"." #: ../src/defaults.c:1870 ../src/defaults.c:1902 ../src/defaults.c:1918 #: ../src/defaults.c:1947 ../src/defaults.c:1970 ../src/defaults.c:2023 #: ../src/defaults.c:2063 ../src/defaults.c:2101 ../src/defaults.c:2117 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" nie je akceptovateľné meno farby" #: ../src/defaults.c:1883 ../src/defaults.c:1935 msgid "bad number of arguments in gradient specification" msgstr "chybný poÄet argumetov v definícii prechodu farieb" #: ../src/defaults.c:1996 msgid "too few arguments in multicolor gradient specification" msgstr "nedostatok argumentov v definícii prechodu viacerých farieb" #: ../src/defaults.c:2090 msgid "bad number of arguments in textured gradient specification" msgstr "chybný poÄet argumetov v definícii prechodu textúr" #: ../src/defaults.c:2133 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "" "chybná hodnota nepriehľadnosti pre textúry prechodu \"%s\". Má byÅ¥ [0..255]" #: ../src/defaults.c:2193 #, c-format msgid "could not initialize library %s" msgstr "nemožno inicializovaÅ¥ knižnicu %s" #: ../src/defaults.c:2196 #, c-format msgid "could not find function %s::%s" msgstr "nemožno nájsÅ¥ funkciu %s::%s" #: ../src/defaults.c:2203 #, c-format msgid "invalid texture type %s" msgstr "chybný typ textúry %s" #: ../src/defaults.c:2250 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Chyba v definícii textúry kľúÄa \"%s\"" #: ../src/defaults.c:2299 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Chybný typ pozadia pracovnej plochy. Má byÅ¥ textúra." #: ../src/defaults.c:2347 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "Chybný typ pozadia pracovnej plochy %i. Má byÅ¥ textúra." #: ../src/defaults.c:2389 msgid "could not load any usable font!!!" msgstr "nemožno naÄítaÅ¥ žiadny použiteľný font!!!" #: ../src/defaults.c:2416 #, c-format msgid "could not get color for key \"%s\"" msgstr "nemožno získaÅ¥ farbu kľúÄa \"%s\"" #: ../src/defaults.c:2474 ../src/rootmenu.c:531 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s:chybný klávesový modifikátor \"%s\"" #: ../src/defaults.c:2486 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:chybná definícia klávesovej skratky \"%s\"" #: ../src/defaults.c:2493 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s:nesprávna klávesa v klávesovej skratke \"%s\"" #: ../src/defaults.c:2518 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: nesprávny klávesový modifikátor %s" #: ../src/defaults.c:2550 #, c-format msgid "could not load image in option %s: %s" msgstr "nemožno naÄítaÅ¥ obrázok vo voľbe %s: %s" #: ../src/defaults.c:2667 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "nepodarilo sa otvoriÅ¥ bitmapový súbor \"%s\"" #: ../src/defaults.c:2670 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" nie je podporovaný bitmapový súbor" #: ../src/defaults.c:2673 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "nedostatok pamäti pre naÄítanie bitmapového súboru \"%s\"" #: ../src/defaults.c:2712 ../src/defaults.c:2745 msgid "bad number of arguments in cursor specification" msgstr "chybný poÄet argumetov v Å¡pecifikácii kurzoru" # fixme! builtin! #: ../src/defaults.c:2728 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "neznáme meno vstavaného kurzoru \"%s\"" #: ../src/defaults.c:2755 ../src/defaults.c:2767 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "nemožno nájsÅ¥ súbor s kurzorom \"%s\"" #: ../src/defaults.c:2814 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Chyba v definícii kurzoru pre kÄ¾ÃºÄ \"%s\"" # info: nebolo by lepÅ¡ie spracovaÅ¥? asi nie... #: ../src/defaults.c:2899 msgid "could not render texture for icon background" msgstr "nemožno renderovaÅ¥ textúru pozadia ikon" #: ../src/dialog.c:147 msgid "Save workspace state" msgstr "UložiÅ¥ stav pracovných plôch" #: ../src/dialog.c:192 ../src/dialog.c:731 ../src/dock.c:565 #: ../src/dockedapp.c:432 ../src/rootmenu.c:198 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 msgid "Cancel" msgstr "ZruÅ¡iÅ¥" #: ../src/dialog.c:290 msgid "Could not open directory " msgstr "Nemožno otvoriÅ¥ adresár " #: ../src/dialog.c:345 msgid "Could not load image file " msgstr "Nemožno naÄítaÅ¥ súbor s obrázkom " #: ../src/dialog.c:658 msgid "Directories" msgstr "Adresáre" #: ../src/dialog.c:667 msgid "Icons" msgstr "Ikony" #: ../src/dialog.c:700 msgid "Preview" msgstr "Náhľad" #: ../src/dialog.c:713 msgid "File Name:" msgstr "Súbor:" #: ../src/dialog.c:737 msgid "Choose File" msgstr "Vyberte súbor" #: ../src/dialog.c:756 ../src/dialog.c:758 msgid "Icon Chooser" msgstr "Výber ikony" #: ../src/dialog.c:1192 ../src/dialog.c:1301 #, c-format msgid "Version %s" msgstr "Verzia %s" #: ../src/dialog.c:1299 msgid "Window Manager for X" msgstr "Manažér okien pre X" #: ../src/dialog.c:1323 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Režim zobrazenia 0x%x: %s %ibpp " #: ../src/dialog.c:1331 msgid "(32 thousand colors)\n" msgstr "(32 tisíc farieb)\n" #: ../src/dialog.c:1334 msgid "(64 thousand colors)\n" msgstr "(64 tisíc farieb)\n" #: ../src/dialog.c:1338 msgid "(16 million colors)\n" msgstr "(16 miliónov farieb)\n" #: ../src/dialog.c:1341 #, c-format msgid "(%d colors)\n" msgstr "(%d farby)\n" #: ../src/dialog.c:1351 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "Alokovaná pamäť spolu: %i kB. Využívaná pamäť spolu: %i kB.\n" #: ../src/dialog.c:1358 msgid "Supported image formats: " msgstr "Podpora grafických formátov: " #: ../src/dialog.c:1365 msgid "" "\n" "Additional support for: " msgstr "" "\n" "ÄŽalÅ¡ia podpora pre: " #: ../src/dialog.c:1388 msgid " and " msgstr " a " #: ../src/dialog.c:1398 msgid "" "\n" "Sound disabled" msgstr "" "\n" "Zvuk vypnutý" #: ../src/dialog.c:1400 msgid "" "\n" "Sound enabled" msgstr "" "\n" "Zvuk povolený" #: ../src/dialog.c:1404 msgid "; Antialiased text" msgstr "; Antialiasovaný text" #: ../src/dialog.c:1433 msgid "Info" msgstr "Info" #: ../src/dialog.c:1457 msgid "Merry Christmas!" msgstr "Šťastné a veselé!" #: ../src/dialog.c:1527 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" " Tento program je free software; môžete ho rozÅ¡irovaÅ¥ a/alebo \n" "modifikovaÅ¥ v súlade s GNU General Public License, ktorú publikuje\n" "Free Software Foundation; buÄ verziou 2 licencie, alebo\n" "ktoroukoľvek neskorÅ¡ou verziou.\n" "\n" "\n" "Tento program je rozÅ¡irovaný vo viere, že bude užitoÄný,\n" "ale bez AKEJKOĽVEK ZÃRUKY; aj bez záruky PREDAJNOSTI\n" "alebo SPÔSOBILOSTI PRE DANà CIEĽ. Pre bližšie informácie\n" "viÄ GNU General Public License\n" "\n" "\n" "Kópiu GNU General Public License by ste mali obdržaÅ¥ \n" "spolu s týmto programom; ak nie, píšte na Free Software Foundation,\n" " Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,\n" "USA." #: ../src/dialog.c:1551 msgid "Legal" msgstr "Licencia" #: ../src/dialog.c:1703 ../src/startup.c:394 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "nemožno otvoriÅ¥ spojenie pre padajúci dialógový panel. UkonÄené." #: ../src/dialog.c:1729 msgid "Fatal error" msgstr "Fatálna chyba" #: ../src/dialog.c:1740 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker prijal signál %i\n" "(%s)." #: ../src/dialog.c:1743 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker prijal signál %i." #: ../src/dialog.c:1752 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" "Táto fatálna chyba sa vyskytla\n" "pravdepodobne kvôli chybe vo Window Makery.\n" "Prosím vyplňte priložený BUGFORM a\n" "poÅ¡lite ho na bugs@windowmaker.info." #: ../src/dialog.c:1761 msgid "What do you want to do now?" msgstr "ÄŒo chcete urobiÅ¥?" #: ../src/dialog.c:1767 msgid "Select action" msgstr "Vyberte ÄinnosÅ¥" #: ../src/dialog.c:1768 msgid "Abort and leave a core file" msgstr "SkonÄiÅ¥ a vytvoriÅ¥ súbor core" #: ../src/dialog.c:1769 msgid "Restart Window Maker" msgstr "ReÅ¡tartovaÅ¥ Window Maker" #: ../src/dialog.c:1770 msgid "Start alternate window manager" msgstr "SpustiÅ¥ alternatívny manažér okien" #: ../src/dialog.c:1948 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop environment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" "Window Maker je súÄasÅ¥ou projektu GNUstep.\n" "Cieľom projektu GNUstep je vytvoriÅ¥ free\n" "implementáciu Å¡pecifikácie OpenStep(tm),\n" "Äo je objektovo orientovaný základ pre\n" "tvorbu pokroÄilých, multiplatformových\n" "aplikácií. NavyÅ¡e, na tomto základe bude\n" "postavené vývojové a užívateľské prostredie.\n" "Viac informácií o projekte GNUstep možno\n" "získaÅ¥ na adrese www.gnustep.org" #: ../src/dialog.c:1971 msgid "About GNUstep" msgstr "O projekte GNUstep" #: ../src/dock.c:211 #, c-format msgid "Type the name for workspace %i:" msgstr "Zadajte meno pre pracovnú plochu %i:" #: ../src/dock.c:212 ../src/dock.c:1150 ../src/dock.c:1153 ../src/dock.c:3445 msgid "Rename Workspace" msgstr "PremenovaÅ¥ plochu" #: ../src/dock.c:527 ../src/dock.c:535 msgid "Warning" msgstr "Varovanie" #: ../src/dock.c:528 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Niektoré ikony nemôžu byÅ¥ umiestnené na vÅ¡etkých plochách.\n" "UbezpeÄte sa, že iné ikony nie sú umiestnené v rovnakej\n" "pozícii na ostatných plochách a Spinka nie je na žiadnej\n" "ploche zaplnená." #: ../src/dock.c:536 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "Ikona nemôže byÅ¥ umiestňená na vÅ¡etkých plochách.\n" "UbezpeÄte sa, že iné ikony nie sú umiestnené v\n" "rovnakej pozícii na ostatných plochách a Spinka\n" "nie je na žiadnej ploche zaplnená." #: ../src/dock.c:563 msgid "Workspace Clip" msgstr "Spinka" #: ../src/dock.c:564 msgid "All selected icons will be removed!" msgstr "VÅ¡etky oznaÄené ikony budú odstránené!" #: ../src/dock.c:616 ../src/dock.c:1165 ../src/dock.c:1167 ../src/dock.c:3481 msgid "Keep Icon" msgstr "PonechaÅ¥ ikonu" #: ../src/dock.c:617 ../src/dock.c:2157 ../src/dock.c:2298 msgid "Type the command used to launch the application" msgstr "Zadajte príkaz, ktorý spustí aplikáciu" #: ../src/dock.c:973 #, c-format msgid "could not launch application %s\n" msgstr "nemožno spustiÅ¥ aplikáciu %s\n" #: ../src/dock.c:1028 msgid "could not create workspace submenu for Clip menu" msgstr "v menu Spinky nemožno vytvoriÅ¥ submenu pracovnej plochy" #: ../src/dock.c:1087 msgid "could not create options submenu for Clip menu" msgstr "v menu Spinky nemožno vytvoriÅ¥ submenu volieb" #: ../src/dock.c:1091 ../src/dock.c:1139 msgid "Keep on Top" msgstr "Vždy navrchu" #: ../src/dock.c:1097 msgid "Collapsed" msgstr "Zvinuté" #: ../src/dock.c:1103 msgid "Autocollapse" msgstr "Automaticky zvinúť" #: ../src/dock.c:1109 msgid "Autoraise" msgstr "Auto navrchu/naspodu" #: ../src/dock.c:1115 msgid "Autoattract Icons" msgstr "Vždy pritiahnuÅ¥ ikony" #: ../src/dock.c:1145 msgid "Clip Options" msgstr "Voľby Spinky" #: ../src/dock.c:1155 msgid "Selected" msgstr "Vybraná" #: ../src/dock.c:1160 ../src/dock.c:1163 ../src/dock.c:3472 msgid "Select All Icons" msgstr "VybraÅ¥ vÅ¡etky ikony" #: ../src/dock.c:1169 ../src/dock.c:1171 ../src/dock.c:3489 msgid "Move Icon To" msgstr "Presunúť ikonu na" #: ../src/dock.c:1176 ../src/dock.c:1179 ../src/dock.c:3500 msgid "Remove Icon" msgstr "OdstrániÅ¥ ikonu" #: ../src/dock.c:1181 msgid "Attract Icons" msgstr "PritiahnuÅ¥ ikony" #: ../src/dock.c:1184 msgid "Launch" msgstr "SpustiÅ¥" #: ../src/dock.c:1192 msgid "Settings..." msgstr "Nastavenia..." #: ../src/dock.c:1558 ../src/dock.c:1665 #, c-format msgid "bad value in docked icon state info %s" msgstr "chybná hodnota v informácii o stave ukotvenej ikony %s" #: ../src/dock.c:1673 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "chybná hodnota umiestnenia ukotvenej ikony %i,%i" #: ../src/dock.c:1693 #, c-format msgid "bad value in dock state info:%s" msgstr "chybná hodnota v informácii o stave docku:%s" #: ../src/dock.c:1939 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "v Doku je príliÅ¡ veľa ikon. PrebytoÄné budú ignorované." #. icon->forced_dock = 1; #: ../src/dock.c:2156 ../src/dock.c:2297 msgid "Dock Icon" msgstr "UkotviÅ¥ ikonu" #: ../src/dock.c:3359 #, c-format msgid "Could not execute command \"%s\"" msgstr "Nemožno vykonaÅ¥ príkaz \"%s\"" #: ../src/dock.c:3451 msgid "Toggle Omnipresent" msgstr "Prepnúť Na vÅ¡etkých plochách" #: ../src/dock.c:3456 ../src/kwm.c:639 ../src/winmenu.c:420 #: ../src/winspector.c:1375 msgid "Omnipresent" msgstr "Na vÅ¡etkých plochách" #: ../src/dock.c:3470 msgid "Unselect All Icons" msgstr "OdznaÄit vÅ¡etky ikony" #: ../src/dock.c:3479 msgid "Keep Icons" msgstr "PonechaÅ¥ ikony" #: ../src/dock.c:3487 msgid "Move Icons To" msgstr "Presunúť ikony na" #: ../src/dock.c:3498 msgid "Remove Icons" msgstr "OdstrániÅ¥ ikony" #: ../src/dock.c:3529 ../src/kwm.c:645 msgid "Bring Here" msgstr "PreniesÅ¥ sem" #: ../src/dockedapp.c:150 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "nemôžno nájsÅ¥ ikonu %s ukotvenej aplikácie" #: ../src/dockedapp.c:230 #, c-format msgid "Could not open specified icon file: %s" msgstr "Nemôžno otvoriÅ¥ daný súbor s ikonou: %s" #: ../src/dockedapp.c:232 msgid "Ignore" msgstr "IgnorovaÅ¥" #: ../src/dockedapp.c:334 msgid "Start when Window Maker is started" msgstr "SpustiÅ¥ pri Å¡tarte WindowMakeru" #: ../src/dockedapp.c:341 msgid "Lock (prevent accidental removal)" msgstr "ChrániÅ¥ pred náhodným odstránením" #: ../src/dockedapp.c:345 msgid "Application path and arguments" msgstr "Umiestnenie a argumenty aplikácie" #: ../src/dockedapp.c:358 msgid "Command for middle-click launch" msgstr "Príkaz pre stredné tlaÄítko" #: ../src/dockedapp.c:372 #, c-format msgid "%s will be replaced with current selection" msgstr "%s sa nahradí aktuálnym výberom" #: ../src/dockedapp.c:377 msgid "Command for files dropped with DND" msgstr "Príkaz pre položené súbory (DND)" #: ../src/dockedapp.c:391 #, c-format msgid "%d will be replaced with the file name" msgstr "%d sa nahradí menom súboru" #: ../src/dockedapp.c:395 msgid "DND support was not compiled in" msgstr "Podpora DND nebola skompilovaná" #: ../src/dockedapp.c:400 msgid "Icon Image" msgstr "Ikona" #: ../src/dockedapp.c:414 ../src/winspector.c:1513 msgid "Browse..." msgstr "HľadaÅ¥..." #: ../src/dockedapp.c:475 msgid "Docked Application Settings" msgstr "Nastavenia aplikácie v Doku" #: ../src/framewin.c:647 ../src/framewin.c:742 ../src/menu.c:456 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "nemožno renderovaÅ¥ textúru: %s" #: ../src/framewin.c:670 ../src/framewin.c:681 ../src/framewin.c:697 #: ../src/framewin.c:708 ../src/framewin.c:715 ../src/framewin.c:722 #: ../src/icon.c:350 ../src/menu.c:485 #, c-format msgid "error rendering image:%s" msgstr "chyba pri renderovaní obrázku:%s" #: ../src/framewin.c:775 #, c-format msgid "error rendering image: %s" msgstr "chyba pri renderovaní obrázku: %s" #: ../src/gnome.c:217 ../src/gnome.c:344 ../src/gnome.c:402 msgid "out of memory while updating GNOME hints" msgstr "nedostatok pamäti pri obnovovaní príznakov GNOME" #: ../src/icon.c:229 ../src/wdefaults.c:443 #, c-format msgid "error loading image file \"%s\": %s" msgstr "chyba pri Äítaní obrázku zo súboru \"%s\": %s" #: ../src/icon.c:493 ../src/icon.c:502 #, c-format msgid "could not create directory %s" msgstr "nemožno vytvoriÅ¥ adresár %s" #: ../src/icon.c:769 #, c-format msgid "could not find default icon \"%s\"" msgstr "nemožno nájsÅ¥ implicitnú ikonu \"%s\"" #: ../src/icon.c:775 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "nemožno naÄítaÅ¥ implicitnú ikonu \"%s\":%s" #. #. * 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/kwm.c:635 ../src/winmenu.c:443 ../src/winmenu.c:585 msgid "Maximize" msgstr "MaximalizovaÅ¥" #: ../src/kwm.c:636 ../src/winmenu.c:580 msgid "Unmaximize" msgstr "DemaximalizovaÅ¥" #: ../src/kwm.c:637 ../src/winmenu.c:451 ../src/winmenu.c:571 msgid "Miniaturize" msgstr "MinimalizovaÅ¥" # info: s týmito dvomi sú dosÅ¥ dobré haluÅ¡ky. Nemôžem tam daÅ¥ windowsácke # obnoviÅ¥, lebo ak by sme minimalizovali maximalizované okno, mali by # sme v menu dve rovnaké položky. Äo sa mám obesiÅ¥?! #: ../src/kwm.c:638 ../src/winmenu.c:566 msgid "Deminiaturize" msgstr "DeminimalizovaÅ¥" #: ../src/kwm.c:640 msgid "Not Omnipresent" msgstr "Nie na vÅ¡etkých plochách" #: ../src/kwm.c:641 msgid "Move" msgstr "Presunúť" #: ../src/kwm.c:642 msgid "Resize" msgstr "VeľkosÅ¥" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/kwm.c:643 ../src/rootmenu.c:248 ../src/winmenu.c:515 msgid "Close" msgstr "ZatvoriÅ¥" #: ../src/kwm.c:644 ../src/winmenu.c:499 msgid "Move To" msgstr "PremiestniÅ¥ na" #: ../src/kwm.c:1111 #, c-format msgid "%a(Run Command,Type the command to run:)" msgstr "%a(SpustiÅ¥,Zadajte príkaz:)" #: ../src/main.c:222 msgid "failed to restart Window Maker." msgstr "nepodarilo sa reÅ¡tartovaÅ¥ Window Maker." #: ../src/main.c:225 #, c-format msgid "could not exec %s" msgstr "nemožno vykonaÅ¥ %s" #: ../src/main.c:271 msgid "Could not execute command: " msgstr "Nemožno vykonaÅ¥ príkaz: " #: ../src/main.c:428 #, c-format msgid "%s aborted.\n" msgstr "%s zruÅ¡ený.\n" #: ../src/main.c:439 #, c-format msgid "Usage: %s [options]\n" msgstr "Použitie: %s [voľby]\n" #: ../src/main.c:440 msgid "The Window Maker window manager for the X window system" msgstr "Správca okien Window Maker pre X window system" #: ../src/main.c:442 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tpoužiÅ¥ daný display" #: ../src/main.c:444 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tzakázaÅ¥ preprocessing konfiguraÄných súborov" #: ../src/main.c:446 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tneotváraÅ¥ Dok aplikácií" #: ../src/main.c:447 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tneotváraÅ¥ Spinku pracovných plôch" #: ../src/main.c:448 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tnespúšťaÅ¥ automaticky aplikácie" #: ../src/main.c:449 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tneobnovovaÅ¥ uložené sedenie" #: ../src/main.c:451 msgid " --locale locale\tlocale to use" msgstr " --locale locale\tpoužiÅ¥ dané miestne nastavenia" #: ../src/main.c:453 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" " --create-stdcmap\tvytvoriÅ¥ Å¡tandardnú mapu farieb v režimoch PseudoColor" #: ../src/main.c:454 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tÄíslo obrazového režimu" #: ../src/main.c:455 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tneobnovovaÅ¥ ani neukladaÅ¥ nastavenia" #: ../src/main.c:456 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr " --no-polling\t\tnekontrolovaÅ¥ pravidelne zmenu konfigurácie" #: ../src/main.c:458 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tzapnúť režim synchrónneho zobrazovania" #: ../src/main.c:460 msgid " --version\t\tprint version and exit" msgstr " --version\t\tvypíše verziu a ukonÄí sa" #: ../src/main.c:461 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tvypíše tento text" #: ../src/main.c:474 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "nemožno nájsÅ¥ uživateľov adresár GNUstep (%s).\n" "Uistite se, že Window Maker je správne nainÅ¡talovaný a spustite wmaker.inst" #: ../src/main.c:479 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "nemožno nájsÅ¥ užívateľov GNUstep adresár (%s)." #: ../src/main.c:482 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "Pri vytváraní GNUstep adresára doÅ¡lo k chybe. Prosím, uistite sa, Äi je " "Window Maker správne nainÅ¡talovaný a spustite wmaker.inst" #: ../src/main.c:485 #, c-format msgid "%s directory created with default configuration." msgstr "adresár %s vytvorený so Å¡tandardnou konfiguráciou." #: ../src/main.c:505 ../src/main.c:510 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:nemožno vykonaÅ¥ inicializaÄný skript" #: ../src/main.c:530 ../src/main.c:535 #, c-format msgid "%s:could not execute exit script" msgstr "%s:nemožno vykonaÅ¥ závereÄný skript" #: ../src/main.c:663 ../src/main.c:671 ../src/main.c:679 ../src/main.c:699 #, c-format msgid "too few arguments for %s" msgstr "málo argumetov pre %s" #: ../src/main.c:683 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "chybná hodnota obrazového režimu (visualid): \"%s\"" #: ../src/main.c:707 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: nesprávny argument '%s'\n" #: ../src/main.c:708 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Príkaz '%s --help' poskytne bližšie informácie\n" #: ../src/main.c:739 msgid "X server does not support locale" msgstr "X server nepodporuje miestne nastavenia" #: ../src/main.c:743 msgid "cannot set locale modifiers" msgstr "nemožno nastaviÅ¥ modifikátory miestnych nastavení" #: ../src/main.c:759 #, c-format msgid "could not open display \"%s\"" msgstr "nemožno otvoriÅ¥ display \"%s\"" # fixme! grab po slovensky. #: ../src/menu.c:1266 msgid "could not grab keyboard" msgstr "nemožno grabovaÅ¥ klávesnicu" #: ../src/menu.c:2607 #, c-format msgid "bad value in menus state info:%s" msgstr "chybná hodnota v informácii o stave menu:%s" #: ../src/menureader.c:264 ../src/rootmenu.c:738 #, c-format msgid "%s:could not stat menu" msgstr "%s:nemožno získaÅ¥ atribúty súboru s menu" #: ../src/menureader.c:341 ../src/menureader.c:380 #, c-format msgid "could not stat() menu file '%s'" msgstr "nemožno získaÅ¥ atribúty súboru s menu '%s'" #: ../src/menureader.c:416 #, c-format msgid "could not find menu file '%s' referenced in WMRootMenu" msgstr "nemožno nájsÅ¥ súbor s menu '%s', urÄený vo WMRootMenu" #: ../src/menureader.c:423 #, c-format msgid "could not find any usable menu files. Please check '%s'" msgstr "nemožno nájsÅ¥ žiadne použiteľné menu. Prosím, skontrolujte '%s'" #: ../src/menureader.c:438 ../src/rootmenu.c:1674 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "použitý implicitný súbor s menu \"%s\", keÄže nemožno nájsÅ¥ menu urÄené vo " "WMRootMenu " #: ../src/menureader.c:457 #, c-format msgid "" "invalid content in menu file '%s'.\n" "It should either be a property list menu or the path to the file, enclosed " "in \"." msgstr "" "nesprávny obsah súboru s menu '%s'.\n" "Mal by obsahovaÅ¥ buÄ property list alebo cestu k súboru uzavretú medzi \"." #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "nemožno urÄiÅ¥ hodnotu %s pre cpp" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "nemožno získaÅ¥ informácie o užívateľovi s UID %i" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "váš systém nie je správne nakonfigurovaný. HOSTNAME má hodnotu %s" #: ../src/misc.c:132 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "váš systém nie je správne nakonfigurovaný. HOST má hodnotu %s" #: ../src/misc.c:630 msgid "Program Arguments" msgstr "Argumenty programu" #: ../src/misc.c:631 msgid "Enter command arguments:" msgstr "Zadajte argumenty príkazu:" #: ../src/misc.c:724 msgid "unable to get dropped data from DND drop" msgstr "nemožno získat položené dáta DND operácie drop" #: ../src/misc.c:732 msgid "error getting dropped data from DND drop" msgstr "chyba pri získavaní položených dát DND operácie drop" #: ../src/misc.c:738 msgid "out of memory while getting data from DND drop" msgstr "nedostatok pamäti pri Äítaní dát DND operácie drop" # fix me! jednoducho schmatne nejaký reÅ¥azec a parsuje a expanduje a ...neviem # nó! robí to aj printf, keÄ mu tam Å¡ibnete "\t\"No nazdar!\"\n" #: ../src/misc.c:783 ../src/misc.c:923 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "nedostatok pamäti pri nahradzovaní \"%s\"" #: ../src/misc.c:837 msgid "out of memory during expansion of \"%w\"" msgstr "nedostatok pamäti pri nahradzovaní \"%w\"" #: ../src/misc.c:855 msgid "out of memory during expansion of \"%W\"" msgstr "nedostatok pamäti pri nahradzovaní \"%W\"" #: ../src/misc.c:871 #, c-format msgid "out of memory during expansion of \"%a\"" msgstr "nedostatok pamäti pri nahradzovaní \"%a\"" #: ../src/misc.c:902 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "nedostatok pamäti pri nahradzovaní \"%d\"" #: ../src/misc.c:916 msgid "selection not available" msgstr "výber nie je dostupný" #: ../src/misc.c:960 ../src/misc.c:966 #, c-format msgid "bad window name value in %s state info" msgstr "chybná hodnota názvu okna v informácii o stave %s" # fix me!: pomocníkovi obrázku pozadia (ktorého nájdete na 3 poschodí, Ä.d 32) #: ../src/misc.c:1205 msgid "could not send message to background image helper" msgstr "nemožno poslaÅ¥ správu umiestňovaÄu pozadia" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "nemožno naÄítaÅ¥ súbor masky \"%s\". Maska sa nepoužije" # fix me! nie parsovaÅ¥ #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "nemožno spracovaÅ¥ farby \"%s\"" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "nemožno alokovaÅ¥ farbu \"%s\"" # fix me! fix me! fix me! fix me! fix me! #: ../src/rootmenu.c:196 ../src/rootmenu.c:198 msgid "Exit" msgstr "Koniec" #: ../src/rootmenu.c:197 msgid "Exit window manager?" msgstr "UkonÄiÅ¥ manažér okien?" #: ../src/rootmenu.c:245 msgid "Close X session" msgstr "UkonÄit sedenie X systému" #: ../src/rootmenu.c:246 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "UkonÄiÅ¥ sedenie systému okien?\n" "Núteným ukonÄením aplikacií môže dôjsÅ¥ k strate dát." #: ../src/rootmenu.c:261 msgid "Kill X session" msgstr "ZabiÅ¥ sedenie X systému" #: ../src/rootmenu.c:262 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Nútene ukonÄit sedenie systému okien?\n" "(vÅ¡etky aplikácie budú ukonÄené)" #: ../src/rootmenu.c:544 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:chybná klávesová skratka \"%s\" položky %s" #: ../src/rootmenu.c:552 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:chybná klávesa v klávesovej skratke \"%s\" položky %s" #: ../src/rootmenu.c:605 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: nepriradené '\"' v súbore s menu" #: ../src/rootmenu.c:655 #, c-format msgid "%s: missing command" msgstr "%s: chýbajúci príkaz" #: ../src/rootmenu.c:687 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "chybne zadaný príkaz OPEN_MENU: %s" #: ../src/rootmenu.c:746 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:nemožno získaÅ¥ atribúty súboru s menu:%s" #: ../src/rootmenu.c:764 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "priveľa parametrov pre príkaz OPEN_MENU: %s" #: ../src/rootmenu.c:808 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "V aplikaÄnom menu je viac než jeden príkaz WORKSPACE_MENU. Povolený je len " "jeden." #: ../src/rootmenu.c:842 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "V aplikaÄnom menu je viac než jeden príkaz WORKSPACE_MENU. Povolený je len " "jeden." #: ../src/rootmenu.c:847 msgid "Window List" msgstr "Okná" #: ../src/rootmenu.c:876 ../src/rootmenu.c:894 ../src/rootmenu.c:904 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:chýbajúci parameter pre príkaz menu \"%s\"" #: ../src/rootmenu.c:972 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:neznámy príkaz \"%s\" v konfigurácii menu." #: ../src/rootmenu.c:980 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:nemožno priradiÅ¥ klávesovú skratku položke \"%s\"" #: ../src/rootmenu.c:1117 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:prekroÄená maximálna dĺžka riadku v konfigurácii menu: %s" #: ../src/rootmenu.c:1139 ../src/rootmenu.c:1232 ../src/rootmenu.c:1336 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:chýbajúci príkaz v konfigurácii menu: %s" #: ../src/rootmenu.c:1169 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:syntaktická chyba v súbore s menu: chýbajúci príkaz END" #: ../src/rootmenu.c:1198 ../src/rootmenu.c:1300 msgid "could not make arguments for menu file preprocessor" msgstr "nemožno vytvoriÅ¥ argumety pre preprocesor súboru s menu" # fix me! predspracovaÅ¥ je oniÄom #: ../src/rootmenu.c:1205 ../src/rootmenu.c:1308 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s:nemožno otvoriÅ¥ alebo predspracovaÅ¥ súbor s menu" #: ../src/rootmenu.c:1217 ../src/rootmenu.c:1321 #, c-format msgid "%s:could not open menu file" msgstr "%s:nemožno otvoriÅ¥ súbor s menu" #: ../src/rootmenu.c:1244 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:syntaktická chyba v súbore s menu: chýbajúci príkaz MENU" #: ../src/rootmenu.c:1253 msgid "error reading preprocessed menu data" msgstr "chyba pri Äítaní dát predspracovaného menu" #: ../src/rootmenu.c:1348 #, c-format msgid "%s:no title given for the root menu" msgstr "%s:hlavné menu nemá urÄený názov" #: ../src/rootmenu.c:1439 ../src/rootmenu.c:1512 ../src/rootmenu.c:1553 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "nedostatok pamäti pri vytváraní adresárového menu %s" #: ../src/rootmenu.c:1449 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:nemožno získaÅ¥ atribúty súboru \"%s\" v adresári menu" #: ../src/rootmenu.c:1607 msgid "Commands" msgstr "Príkazy" #: ../src/rootmenu.c:1610 msgid "Restart" msgstr "ReÅ¡tart" #: ../src/rootmenu.c:1611 msgid "Exit..." msgstr "Koniec..." #: ../src/rootmenu.c:1656 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "nemožno nájsÅ¥ súbor s menu \"%s\", urÄený vo WMRootMenu" #: ../src/rootmenu.c:1663 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "nemožno pristúpiÅ¥ k menu \"%s\", urÄenom vo WMRootMenu" #: ../src/rootmenu.c:1697 ../src/rootmenu.c:1773 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:chybný formát v konfigurácii hlavného menu \"%s\"" #: ../src/rootmenu.c:1855 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Nemožno naÄítaÅ¥ menu aplikácií. Detailný popis chýb nájdete na výstupe " "konzoly." #: ../src/screen.c:715 #, c-format msgid "could not initialize graphics library context: %s" msgstr "nemožno inicializovaÅ¥ kontext grafickej knižnice: %s" #: ../src/screen.c:743 msgid "could not initialize WINGs widget set" msgstr "nemožno inicializovaÅ¥ sadu widgetov WINGs" #: ../src/screen.c:1252 #, c-format msgid "could not save session state in %s" msgstr "nemožno uložit sedenie do %s" #: ../src/session.c:183 ../src/wdefaults.c:589 ../src/winspector.c:454 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "nemožno previesÅ¥ \"%s\" na boolean" #: ../src/session.c:1023 msgid "out of memory while saving session state" msgstr "nedostatok pamäti pri ukladaní sedenia" #: ../src/session.c:1106 msgid "end of memory while saving session state" msgstr "nedostatok pamäti pri ukladaní sedenia" #. 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:1244 msgid "connection to the session manager was lost" msgstr "spojenie so správcom sedení sa stratilo" #: ../src/stacking.c:79 msgid "could not get window list!!" msgstr "nemožno získaÅ¥ zoznam okien!!!" #: ../src/startup.c:202 #, c-format msgid "internal X error: %s\n" msgstr "interná chyba X systému: %s\n" #: ../src/startup.c:260 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "prijatý signál %i (%s) - reÅ¡tart\n" #: ../src/startup.c:262 #, c-format msgid "got signal %i - restarting\n" msgstr "prijatý signál %i - reÅ¡tart\n" #: ../src/startup.c:272 #, c-format msgid "got signal %i (%s) - rereading defaults\n" msgstr "prijatý signál %i (%s) - znovunaÄítanie nastavení\n" #: ../src/startup.c:274 #, c-format msgid "got signal %i - rereading defaults\n" msgstr "prijatý signál %i - znovunaÄítanie nastavení\n" #: ../src/startup.c:284 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "prijatý signál %i (%s) - koniec...\n" #: ../src/startup.c:286 #, c-format msgid "got signal %i - exiting...\n" msgstr "prijatý signál %i - koniec...\n" #: ../src/startup.c:329 #, c-format msgid "got signal %i (%s)\n" msgstr "prijatý signál %i (%s)\n" #: ../src/startup.c:331 #, c-format msgid "got signal %i\n" msgstr "signál %i\n" # fix me! ak vieÅ¡ #: ../src/startup.c:342 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "" "havária pri pokuse uprataÅ¥ po predchádzajúcej havárii. Okamžitý koniec." #. we try to restart Window Maker #: ../src/startup.c:406 msgid "trying to restart Window Maker..." msgstr "reÅ¡tart Window Makeru..." #: ../src/startup.c:411 msgid "trying to start alternate window manager..." msgstr "spustenie alternatívneho manažéru okien..." #: ../src/startup.c:417 msgid "failed to start alternate window manager. Aborting." msgstr "nepodarilo sa spustiÅ¥ alternatívny manažér okien. Koniec." #: ../src/startup.c:419 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" "fatálna chyba nastala pravdepodobne v dôsledku chyby vo Window Makery. " "Prosím, vyplňte a poÅ¡lite priložený BUGFORM." #: ../src/startup.c:894 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "veľkosÅ¥ ikony je nastavená na %i, ale to je málo. Použje sa 16\n" #: ../src/startup.c:923 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "" "rozšírenie XKB nie je podporované. KbdModeLock je automaticky zakázaný." #: ../src/startup.c:942 msgid "it seems that there is already a window manager running" msgstr "zdá sa, že manažér okien už beží" #: ../src/startup.c:948 #, c-format msgid "could not manage screen %i" msgstr "nemožno spravovaÅ¥ obrazovku %i" #: ../src/startup.c:1020 msgid "could not manage any screen" msgstr "nemožno spravovaÅ¥ žiadnu obrazovku" #: ../src/switchmenu.c:145 msgid "Windows" msgstr "Okná" #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "súbor s obrázkom \"%s\" použitým ako textúra nemožno nájsÅ¥." #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "nemožno naÄítaÅ¥ textúru \"%s\":%s" # fix you! cound? #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "nemožno otvoriÅ¥ knižnicu \"%s\"." #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "funkciu \"%s\" nemožno nájsÅ¥ v knižnici \"%s\"" #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "funkÄné textúry na tomto systéme nie sú podporované." #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "nemožno alokovaÅ¥ pamäť pre obrázok" #: ../src/wdefaults.c:437 #, c-format msgid "could not find icon file \"%s\"" msgstr "nemožno nájsÅ¥ súbor s ikonou \"%s\"" #: ../src/window.c:3026 ../src/window.c:3167 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 alebo podobná klávesa je zrejme zapnutá.\n" "Vypnite ju, lebo niektoré akcie myÅ¡i a klávesové skratky nebudú fungovaÅ¥." #: ../src/winmenu.c:126 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Aplikácia bude nútene ukonÄená.\n" "Akékoľvek zmeny budú stratené.\n" "Prosím potvrÄte." #: ../src/winmenu.c:274 ../src/winmenu.c:283 msgid "Set Shortcut" msgstr "NastaviÅ¥ skratku" #: ../src/winmenu.c:361 ../src/winmenu.c:406 msgid "could not create submenu for window menu" msgstr "nemožno vytvoriÅ¥ submenu pre menu okna" #: ../src/winmenu.c:410 msgid "Keep on top" msgstr "Vždy navrchu" #: ../src/winmenu.c:415 msgid "Keep at bottom" msgstr "Vždy naspodu" #: ../src/winmenu.c:459 ../src/winmenu.c:602 msgid "Shade" msgstr "ZrolovaÅ¥" #: ../src/winmenu.c:475 msgid "Hide Others" msgstr "SkryÅ¥ ostatné" #: ../src/winmenu.c:483 msgid "Resize/Move" msgstr "VeľkosÅ¥/Presun" #: ../src/winmenu.c:491 msgid "Select" msgstr "VybraÅ¥" #: ../src/winmenu.c:504 msgid "Attributes..." msgstr "Nastavenia..." #: ../src/winmenu.c:506 msgid "Options" msgstr "Možnosti" #: ../src/winmenu.c:597 msgid "Unshade" msgstr "VyrolovaÅ¥" #: ../src/winspector.c:387 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Nemožno nájsÅ¥ ikonu \"%s\" nastavenú pre toto okno." #: ../src/winspector.c:404 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Nemožno otvoriÅ¥ danú ikonu \"%s\":%s" #: ../src/winspector.c:1121 #, c-format msgid "Inspecting %s.%s" msgstr "Atribúty %s.%s" #: ../src/winspector.c:1147 msgid "Click in the window you wish to inspect." msgstr "" "Kliknite na okno,\n" "ktorého vlastnosti chcete upraviÅ¥." #: ../src/winspector.c:1186 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "Konfigurácia bude použitá pre vÅ¡etky\n" "okná, ktoré majú vlastnosÅ¥ WM_CLASS\n" "nastavenú na hodnotu uvedenú vyššie." #: ../src/winspector.c:1215 msgid "Save" msgstr "UložiÅ¥" #: ../src/winspector.c:1223 msgid "Apply" msgstr "PoužiÅ¥" #: ../src/winspector.c:1229 msgid "Reload" msgstr "ObnoviÅ¥" #: ../src/winspector.c:1238 ../src/winspector.c:1248 msgid "Window Specification" msgstr "UrÄenie okna" #: ../src/winspector.c:1239 msgid "Window Attributes" msgstr "Nastavenia okna" #: ../src/winspector.c:1240 msgid "Advanced Options" msgstr "Rozšírené možnosti" #: ../src/winspector.c:1241 msgid "Icon and Initial Workspace" msgstr "Ikona a poÄiatoÄná plocha" #: ../src/winspector.c:1242 msgid "Application Specific" msgstr "Å pecifické pre aplikáciu" #: ../src/winspector.c:1256 msgid "Defaults for all windows" msgstr "Implicitné pre vÅ¡etky okná" #: ../src/winspector.c:1310 msgid "Select window" msgstr "VybraÅ¥ okno" #: ../src/winspector.c:1324 msgid "Attributes" msgstr "Nastavenia" #: ../src/winspector.c:1335 msgid "Disable titlebar" msgstr "OdstrániÅ¥ hornú liÅ¡tu" #: ../src/winspector.c:1337 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "OdstrániÅ¥ hornú liÅ¡tu tohto okna. Prístup k\n" "príkazom menu okna bez hornej liÅ¡ty umožňuje\n" "kombinácia kláves Control+Esc (alebo iná\n" "klávesová skratka, ak ste zmenili implicitné\n" "nastavenia)." #: ../src/winspector.c:1344 msgid "Disable resizebar" msgstr "OdstrániÅ¥ spodnú liÅ¡tu" #: ../src/winspector.c:1346 msgid "Remove the resizebar of this window." msgstr "" "OdstrániÅ¥ spodnú liÅ¡tu tohto okna,\n" "ktorá slúži na zmenu veľkosti okna." #: ../src/winspector.c:1349 msgid "Disable close button" msgstr "OdstrániÅ¥ tlaÄidlo ZatvoriÅ¥" #: ../src/winspector.c:1351 msgid "Remove the `close window' button of this window." msgstr "OdstrániÅ¥ z tohto okna tlaÄidlo ZatvoriÅ¥ okno." #: ../src/winspector.c:1354 msgid "Disable miniaturize button" msgstr "OdstrániÅ¥ tlaÄidlo MinimalizovaÅ¥" #: ../src/winspector.c:1356 msgid "Remove the `miniaturize window' button of the window." msgstr "OdstrániÅ¥ z tohto okna tlaÄidlo MinimalizovaÅ¥ okno." #: ../src/winspector.c:1359 msgid "Disable border" msgstr "OdstrániÅ¥ okraj" #: ../src/winspector.c:1361 msgid "Remove the 1 pixel black border around the window." msgstr "OdstrániÅ¥ Äierny okraj (hrubý 1 bod) okolo okna" #: ../src/winspector.c:1364 msgid "Keep on top (floating)" msgstr "Vždy navrchu" #: ../src/winspector.c:1366 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "DržaÅ¥ okno vždy nad ostatnými,\n" "a nedovoliÅ¥, aby ho prekryli." #: ../src/winspector.c:1370 msgid "Keep at bottom (sunken)" msgstr "Vždy naspodu" #: ../src/winspector.c:1372 msgid "Keep the window under all other windows." msgstr "DržaÅ¥ okno pod vÅ¡etkými ostatnými." #: ../src/winspector.c:1377 msgid "Make window present in all workspaces." msgstr "ZobrazovaÅ¥ okno na vÅ¡etkých plochách." #: ../src/winspector.c:1380 msgid "Start miniaturized" msgstr "SpustiÅ¥ minimalizované" #: ../src/winspector.c:1382 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "Automaticky minimalizovaÅ¥ okno pri jeho prvom zobrazení." #: ../src/winspector.c:1386 msgid "Start maximized" msgstr "SpustiÅ¥ maximalizované" #: ../src/winspector.c:1388 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "Automaticky maximalizovaÅ¥ okno pri jeho prvom zobrazení." #: ../src/winspector.c:1392 msgid "Full screen maximization" msgstr "MaximalizovaÅ¥ na celú obrazovku" #: ../src/winspector.c:1394 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "PoužiÅ¥ pri maximalizácii celú plochu obrazovky.\n" "Horná a spodná liÅ¡ta budú mimo obrazovky." #: ../src/winspector.c:1411 msgid "Advanced" msgstr "Rozšírené" #: ../src/winspector.c:1428 msgid "Do not bind keyboard shortcuts" msgstr "IgnorovaÅ¥ klávesové skratky" #: ../src/winspector.c:1430 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "IgnorovaÅ¥ klávesové skratky Window Makeru, keÄ\n" "je okno zamerané. To umožní oknu prijímaÅ¥ vÅ¡etky\n" "kombinácie kláves bez ohľadu na vaÅ¡e nastavenia\n" "klávesových skratiek." #: ../src/winspector.c:1436 msgid "Do not bind mouse clicks" msgstr "IgnorovaÅ¥ akcie myÅ¡i" #: ../src/winspector.c:1438 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "IgnorovaÅ¥ akcie myÅ¡i ako napr. Alt+Å¥ahanie\n" "v okne (ak je Alt váš nastavený modifikátor)." #: ../src/winspector.c:1443 msgid "Do not show in the window list" msgstr "NezobrazovaÅ¥ v zozname okien" #: ../src/winspector.c:1445 msgid "Do not list the window in the window list menu." msgstr "NezaradiÅ¥ okno do menu Okná." #: ../src/winspector.c:1448 msgid "Do not let it take focus" msgstr "ZakázaÅ¥ aktivovanie" #: ../src/winspector.c:1450 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "ZakázaÅ¥ oknu aktivovanie pri kliknutí\n" "alebo prechode myÅ¡ou nad ním." #: ../src/winspector.c:1454 msgid "Keep inside screen" msgstr "Vždy vnútri obrazovky" #: ../src/winspector.c:1456 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "NedovoliÅ¥ presunutie celého okna mimo obrazovky.\n" #: ../src/winspector.c:1460 msgid "Ignore 'Hide Others'" msgstr "IgnorovaÅ¥ SkryÅ¥ ostatné" #: ../src/winspector.c:1462 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "NeskrývaÅ¥ okno pri príkaze SkryÅ¥ ostatné" #: ../src/winspector.c:1466 msgid "Ignore 'Save Session'" msgstr "IgnorovaÅ¥ UložiÅ¥ sedenie" #: ../src/winspector.c:1468 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "NeukladaÅ¥ prísluÅ¡nú aplikáciu pri ukladaní\n" "sedenia, takže tá nebude automaticky spustená\n" "pri ÄalÅ¡om Å¡tarte Window Makeru." #: ../src/winspector.c:1474 msgid "Emulate application icon" msgstr "EmulovaÅ¥ ikonu aplikácie" #: ../src/winspector.c:1476 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "UmožniÅ¥ tomuto oknu správaÅ¥ sa ako aplikácia, ktorá\n" "Window Makeru poskytuje dostatok informácií na\n" "vytvorenie ukotviteľnej ikony aplikácie." #: ../src/winspector.c:1482 msgid "Disable language button" msgstr "OdstrániÅ¥ tlaÄidlo Jazyk" #: ../src/winspector.c:1484 msgid "Remove the `toggle language' button of the window." msgstr "OdstrániÅ¥ z okna tlaÄidlo Prepínanie jazykov." #: ../src/winspector.c:1501 msgid "Miniwindow Image" msgstr "Ikona miniokna" #: ../src/winspector.c:1528 msgid "Icon filename:" msgstr "Súbor ikony:" #: ../src/winspector.c:1541 msgid "Ignore client supplied icon" msgstr "" "IgnorovaÅ¥ ikonu poskytnutú\n" "klientom" #: ../src/winspector.c:1548 msgid "Initial Workspace" msgstr "PoÄiatoÄná plocha" #: ../src/winspector.c:1550 msgid "The workspace to place the window when it'sfirst shown." msgstr "Plocha, na ktorú sa umiestni okno pri prvom zobrazení." #: ../src/winspector.c:1556 msgid "Nowhere in particular" msgstr "Ľubovoľná" #: ../src/winspector.c:1574 msgid "Application Attributes" msgstr "Aplikácia" #: ../src/winspector.c:1585 msgid "Start hidden" msgstr "Pri Å¡tarte skryÅ¥" #: ../src/winspector.c:1587 msgid "Automatically hide application when it's started." msgstr "Automaticky skryÅ¥ aplikáciu pri Å¡tarte." #: ../src/winspector.c:1590 msgid "No application icon" msgstr "ZakázaÅ¥ ikonu aplikácie" #: ../src/winspector.c:1592 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "ZakázaÅ¥ ikonu aplikácie. Nebudete ju môcÅ¥\n" "ukotviÅ¥ a ikony, ktoré sú už ukotvené\n" "prestanú správne fungovaÅ¥." #: ../src/winspector.c:1598 msgid "Shared application icon" msgstr "ZdieľaÅ¥ ikonu aplikácie" #: ../src/winspector.c:1600 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "PoužiÅ¥ jedinú zdieľanú ikonu aplikácie pre\n" "vÅ¡etky inÅ¡tancie tejto aplikácie.\n" #: ../src/wmspec.c:277 msgid "out of memory while updating wm hints" msgstr "nedostatok pamäti pri obnovovaní príznakov wm" #: ../src/workspace.c:105 ../src/workspace.c:106 ../src/workspace.c:902 #, c-format msgid "Workspace %i" msgstr "Plocha %i" #: ../src/workspace.c:952 msgid "Workspaces" msgstr "Pracovné plochy" #: ../src/workspace.c:954 msgid "could not create Workspace menu" msgstr "nemožno vytvoriÅ¥ menu Pracovné plochy" #: ../src/workspace.c:961 msgid "New" msgstr "Nová" #: ../src/workspace.c:962 msgid "Destroy Last" msgstr "OdstrániÅ¥ poslednú" WindowMaker-0.95.5/po/ro.po0000644000175000017500000003152612214432632012366 00000000000000# Romanian message file for WindowMaker # msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.65.1\n" "PO-Revision-Date: 1998-09-08 22:00:00-0300\n" "Last-Translator: AndreiVuta(gigi_man@manag.pub.ro)\n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../main.c:147 msgid "Restart failed!!!" msgstr "Reinitializare esuata" #: ../main.c:162 msgid "%s aborted.\n" msgstr "%s intrerupta.\n" #: ../main.c:170 msgid "usage: %s [-options]\n" msgstr "folosire: %s [-optiunii]\n" #: ../main.c:171 msgid "options:" msgstr "optiuni:" #: ../main.c:173 msgid " -nocpp \t\tdisable preprocessing of configuration files" msgstr " -nocpp \t\tterminarea preprocesarii fisierelor de configurare" #: ../main.c:176 msgid " -nodock\t\tdo not open the application Dock" msgstr " -nodock\t\tnu folositi aplicatia Dock" #: ../main.c:178 msgid " -locale locale\t\tlocale to use" msgstr "" #: ../main.c:179 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tconsola de folosire" #: ../main.c:180 msgid " -version\t\tprint version and exit" msgstr " -version\t\ttipareste nr. versiunii si iesi" #: ../main.c:234 msgid "cannot set locale %s" msgstr "" #: ../main.c:235 msgid "falling back to C locale" msgstr "" #: ../main.c:263 msgid "X server does not support locale" msgstr "X-serverul nu suporta local" #: ../main.c:266 msgid "cannot set locale modifiers" msgstr "" #: ../main.c:276 msgid "could not open display %s" msgstr "display-ul \"%s\" nu se poate deschide" #: ../event.c:230 msgid "stack overflow: too many dead processes" msgstr "stack inundat: prea multe procese moarte" #: ../startup.c:137 msgid "internal X error: %s\n" msgstr "eroare interna X: %s\n" #: ../startup.c:152 msgid "got signal %i (%s)\n" msgstr "" #: ../startup.c:154 msgid "got signal %i\n" msgstr "" #: ../texture.c:317 ../texture.c:327 msgid "unsupported visual/depth for gradients" msgstr "visual/depth nesuportata de gradienti" #: ../menu.c:231 msgid "wrealloc() failed while trying to add menu item" msgstr "" #: ../pixmap.c:211 msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "nu se poate incarca bitmap-ul \"%s\".Nu folositi mask." #: ../image.c:183 ../image.c:889 ../pixmap.c:261 msgid "could not load XPM file \"%s\"" msgstr "nu se poate incarca fisierul XPM \"%s\" ." #: ../pixmap.c:264 msgid "cannot load \"%s\": XPM support not compiled in" msgstr "\"%s\" Suportul XPM nu este compilat" #: ../pixmap.c:271 msgid "could not load XBM file \"%s\"" msgstr "fisierul XBM \"%s\" nu se poate incarca " #: ../image.c:196 ../pixmap.c:275 msgid "can't identify image file \"%s\"" msgstr "fisierul grafic \"%s\" nu poate fi identificat" #: ../image.c:200 ../pixmap.c:279 msgid "unknown image format in \"%s\"" msgstr "format grafic necunoscut in \"%s\"" #: ../image.c:65 ../image.c:494 msgid "can't load pixmap file \"%s\". Size too weird" msgstr "fisierul pixmap \"%s\" nu se poate incarca. Dimensiuni ciudate" #: ../image.c:83 ../image.c:746 ../image.c:768 msgid "virtual memory exhausted during pixmap load. Not fatal..." msgstr "memoria virtuala facuta zob la incarcarea PXM.Nu e fatal..." #: ../image.c:100 ../image.c:510 msgid "virtual memory exhausted. Continuing..." msgstr "memoria virtuala terminata.Continuare..." #: ../image.c:186 msgid "cannot load \"%s\": XPM format not supported" msgstr "\"%s\" nu se poate incarca. Formatul XPM nu e suportat" #. XPM #: ../image.c:191 msgid "can't convert XBM file \"%s\" to internal format" msgstr "fisierul XBM \"%s\" nu poate fi convertit in format intern" #: ../image.c:556 ../image.c:562 ../image.c:581 msgid "virtual memory exhausted during XPM load." msgstr "memoria virtuala a murit la incarcarea XPM-urilor" #: ../image.c:712 ../image.c:855 msgid "could not convert image \"%s\" to internal format" msgstr "imaginea \"%s\" nu poate fi convertita la formatul intern " #: ../image.c:901 msgid "can't load \"%s\": unknown image format" msgstr "\"%s\" nu poate fi incarcat: formatul imaginii necunoscut" #: ../screen.c:83 msgid "it seems that there already is a window manager running" msgstr "se pare ca un alt WM e in executie" #: ../screen.c:234 ../screen.c:344 msgid "could not parse color %s" msgstr "nu e posibila decodificarea culorii %s" #: ../screen.c:289 msgid "The following character sets are missing:" msgstr "" #: ../screen.c:293 msgid "The string \"%s\" will be used in place" msgstr "" #: ../screen.c:295 msgid "of any characters from those sets." msgstr "" #: ../screen.c:298 msgid "could not create font set %s. Using fixed" msgstr "" #: ../screen.c:305 msgid "could not load any usable font set" msgstr "" #: ../screen.c:315 msgid "could not load font %s. Using fixed" msgstr "fontul nu poate fi incarcat %s.Se foloseste fixed" #: ../screen.c:318 msgid "could not load any usable font" msgstr "nu poate fi incarcat nici un font" #: ../screen.c:439 msgid "Gradient texture not supported for your display (PseudoColor %ibpp)" msgstr "Textura gradientului nu e suportata de monitor (PseudoColor %ibpp)" #: ../screen.c:442 msgid "You must enable dithering to be able to use gradients with this display" msgstr "Trebuie activat dithering-ul pt folosirea gradientilor cu acest monitor" #: ../screen.c:456 msgid "Gradient texture available only for PseudoColor and TrueColor displays" msgstr "Textura gradientilor e disponibila numai pentru PseudoColor si TrueColor" #: ../screen.c:478 msgid "could not allocate texture" msgstr "textura nu poate fi alocata" #: ../screen.c:1058 msgid "colormap size value(s) too large" msgstr "valorile pt. dimensiunile mapei de culori sunt prea mari" #: ../dialog.c:208 ../rootmenu.c:108 msgid "Exit" msgstr "Iesire" #: ../rootmenu.c:109 msgid "Exit window manager?" msgstr "Iesire WindowManager?" #: ../rootmenu.c:128 msgid "Close X session" msgstr "Inchidere sesiune X" #: ../rootmenu.c:129 msgid "" "Close Window System session?\n" "(all applications will be closed)" msgstr "" "Inchidere sesiune Window System?\n" "(toate aplicatiile vor fi inchise)" #: ../rootmenu.c:217 ../rootmenu.c:314 ../rootmenu.c:496 msgid "Switch to %i" msgstr "Mutare catre a %i" #: ../rootmenu.c:283 msgid "out of memory to store menu commands. Nuking it." msgstr "Memorie prea putina pt.inreg. comenzilor meniului. " #: ../rootmenu.c:303 msgid "Workspace" msgstr "" #: ../rootmenu.c:305 msgid "could not create Workspace menu" msgstr " Meniul Workspace nu poate fi creat" #: ../rootmenu.c:308 msgid "New" msgstr "Nou" #: ../rootmenu.c:309 msgid "Destroy Last" msgstr "Distrugerea ultimului" #: ../rootmenu.c:350 msgid "missing command in menu config: %s" msgstr "lipseste comanda din configurarea meniului: %s" #: ../rootmenu.c:390 msgid "menu can only have one WORKSPACE_MENU" msgstr "meniul nu poate avea decit un WORKSPACE_MENU " #: ../rootmenu.c:406 msgid "unknown command \"%s\" in menu config." msgstr "comanda necunoscuta \"%s\" in configuratia meniului." #: ../rootmenu.c:410 msgid "syntax error in menu config. END declaration missing" msgstr "eroare de sintaxa in configurarea meniului.Lipseste END" #: ../rootmenu.c:435 msgid "syntax error in menu config. %s" msgstr "eroare de sintaxa in configuratia meniului: %s" #: ../rootmenu.c:443 msgid "no title given for the root menu" msgstr "lipseste titlul meniului din root" #: ../rootmenu.c:455 msgid "Commands" msgstr "Comenzi" #: ../rootmenu.c:456 msgid "Exit..." msgstr "Iesire..." #: ../rootmenu.c:573 msgid "could not stat menu configuration file \"%s\"" msgstr "fisierul de configurare nu poate fi accesat \"%s\"" #: ../rootmenu.c:578 msgid "no read permision to menu configuration file" msgstr "meniul de configurare nu poate fi citit" #: ../rootmenu.c:595 msgid "could not make arguments for menu file preprocessor" msgstr "nu se pot construi argumente pt. meniul fisierului preprocessor" #: ../rootmenu.c:603 msgid "could not open menu configuration preprocessor" msgstr "meniul de configurare preprocessor nu poate fi deschis" #: ../rootmenu.c:613 msgid "couldn't open menu configuration file \"%s\"" msgstr "meniul fisierului de configurare \"%s\" nu poate fi deschis" #: ../dock.c:689 ../rootmenu.c:646 msgid "Error" msgstr "Eroare" #: ../rootmenu.c:647 msgid "" "Could not read menu configuration\n" "(see console log for details)" msgstr "" "Configuratia meniului nu poate fi citita\n" "(vezi console log pt. detalii)" #: ../dialog.c:196 msgid "OK " msgstr "" #: ../dialog.c:210 msgid "Cancel" msgstr "Anulare" #: ../resource.c:297 ../resource.c:359 ../resource.c:368 ../resource.c:497 ../resource.c:521 ../resource.c:530 ../resource.c:555 msgid "%s: syntax error in line \"%s\"" msgstr "%s: eroare de sintaxa in linia \"%s\"" #: ../resource.c:309 msgid "%s: invalid window attribute specification in \"%s\"" msgstr "%s: specificarea atributelor ferestrei invalida in \"%s\"" #: ../resource.c:336 msgid "%s: unknown attribute in line \"%s\"" msgstr "%s: atribut invalid in linia \"%s\"" #: ../resource.c:416 ../resource.c:425 ../resource.c:437 msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:specificarea shortcut-ului tastaturii invalid \"%s\"" #: ../resource.c:477 msgid "%s: expected section identifier but got %s" msgstr "%s: %s este asteptat identificatorul de sectiune" #: ../resource.c:510 msgid "%s: unknown option in line \"%s\"" msgstr "%s: optiune necunoscuta in linia \"%s\"" #: ../resource.c:559 msgid "%s: invalid colormap size in line \"%s\"" msgstr "%s: dimensiuni invalide ale hartii de culori in linia \"%s\"" #: ../resource.c:579 msgid "%s: invalid geometry display type \"%s\". Shouldbe center, corner, floating or line" msgstr "%s: tip de geometrie a monitorului invalid \"%s\". Valori permise: center, corner, floating sau line" #: ../resource.c:601 msgid "%s: invalid focus mode \"%s.\" Should be manual, auto or semiauto" msgstr "%s: mod de focalizare invalid \"%s.\" Valori permise: manual, auto sau semiauto" #: ../resource.c:619 msgid "%s: invalid window placement mode \"%s\". Should be auto, cascade or manual" msgstr "%s: modo al plasarii ferestrei invalid \"%s\". Valori permise: auto, cascade sau manual" #: ../resource.c:639 msgid "%s: invalid texture type \"%s\" Should be solid, dgradient, vgradient or hgradient" msgstr "%s: tip de textura invalid \"%s\" Valori permise: solid, dgradient, vgradient sau hgradient" #: ../resource.c:666 msgid "%s: invalid gradient spec. \"%s\"" msgstr "%s: specificarea gradientului invalida \"%s\"" #: ../resource.c:685 msgid "%s: invalid coordinate \"%s\"" msgstr "%s: coordonata invalida \"%s\"" #: ../resource.c:701 msgid "%s: invalid justification type \"%s\". Should be left, center or right" msgstr "%s: tipul de justificare invalid \"%s\". Valori permise: left, center sau right" #: ../resource.c:731 msgid "could not make arguments for preference file preprocessor" msgstr "nu se pot crea argumente pt. fisierul de configurare preprocesor" #: ../resource.c:737 msgid "could not open preference file preprocessor" msgstr "nu se poate deschide fisierul de configurare preprocesor" #: ../resource.c:744 msgid "could not open configuration file: \"%s\"" msgstr "nu se poate deschide fisierul de configurare: \"%s\"" #: ../resource.c:791 msgid "could not find default icon \"%s\"" msgstr "imposibil de gasit icon-ul predefinit \"%s\" " #: ../resource.c:797 msgid "could not find a preference file (%s) in \"%s\"" msgstr "fisierul de configurare (%s) nu se gaseste in \"%s\"" #: ../resource.c:805 msgid "could not find icon background \"%s\"" msgstr "nu se poate gasi icon-ul de bakground \"%s\" " #: ../raster.c:183 msgid "invalid dither colormap size specification.disabling" msgstr "specificarea marimii hartii de culori e invalida. Dezactivare" #: ../raster.c:193 msgid "Could not build PseudoColor color table\n" msgstr "Nu e posibila crearea PseudoColor\n" #: ../misc.c:50 msgid "could not define value for %s for cpp" msgstr "" #: ../misc.c:80 msgid "could not get password entry for UID %i" msgstr "" #: ../appmenu.c:114 msgid "appmenu:could not create menu" msgstr "" #: ../appmenu.c:145 msgid "appmenu:could not create menu entry" msgstr "" #: ../stacking.c:89 ../stacking.c:148 msgid "could not get window list!!" msgstr "" #: ../switchmenu.c:109 msgid "Windows" msgstr "Ferestre" #: ../dock.c:171 msgid "could not open file \"%s\" to save Dock state" msgstr "e' fisierul \"%s\" nu se poate deschide pt. salvarea starii Dock-ului" #: ../dock.c:687 msgid "Could not execute program \"%s\"" msgstr "Nu se poate executa programul \"%s\" " #: ../winmenu.c:119 msgid "(Un)Maximize" msgstr "(De)Maximizeaza" #: ../winmenu.c:126 msgid "Miniaturize" msgstr "Miniaturizeaza" #: ../winmenu.c:133 msgid "(Un)Shade" msgstr "(Des)Acopera??" #: ../winmenu.c:140 msgid "Hide" msgstr "Ascunde" #: ../winmenu.c:146 msgid "Hide Others" msgstr "Ascunde Celelalte" #: ../winmenu.c:149 msgid "Close" msgstr "Inchide" #: ../winmenu.c:156 msgid "Kill" msgstr "Omoara" #: ../generic/error.c:46 msgid " fatal error: " msgstr " eroare fatala: " #: ../generic/error.c:72 msgid " warning: " msgstr " avertisment: " WindowMaker-0.95.5/po/bg.po0000644000175000017500000026571212214432632012344 00000000000000# Message catalog for Window Maker. # Copyright (C) 2000,2001,2003 Free Software Foundation, Inc. # Boris Jordanov , 2000 # Bojidar Ivanov , 2000 # Slavei G. Karadjov , 2000 # Lyubomir Sotirov , 2000 # Anton Zinoviev , 2000, 2001, 2003 msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.64.0\n" "POT-Creation-Date: 2003-02-09 13:00+0200\n" "PO-Revision-Date: 2003-02-09 14:21+0200\n" "Last-Translator: Anton Zinoviev \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" # ../src/appicon.c:550 ../src/dialog.c:230 ../src/dock.c:3291 # ../src/dockedapp.c:211 ../src/main.c:254 ../src/rootmenu.c:1765 # ../src/winspector.c:383 ../src/winspector.c:399 #: ../src/appicon.c:426 ../src/dialog.c:304 ../src/dock.c:3326 #: ../src/dockedapp.c:230 ../src/main.c:273 ../src/rootmenu.c:1854 #: ../src/winspector.c:389 ../src/winspector.c:406 msgid "Error" msgstr "Грешка" # ../src/appicon.c:551 #: ../src/appicon.c:427 msgid "Could not open specified icon file" msgstr "Файлът Ñ Ð¸ÐºÐ¾Ð½ÐºÐ°Ñ‚Ð° не може да бъде зареден" # ../src/appicon.c:552 ../src/dialog.c:122 ../src/dialog.c:230 # ../src/dialog.c:574 ../src/dialog.c:1591 ../src/dock.c:515 # ../src/dock.c:523 ../src/dock.c:547 ../src/dock.c:3292 # ../src/dockedapp.c:212 ../src/dockedapp.c:370 ../src/main.c:254 # ../src/rootmenu.c:1769 ../src/winspector.c:384 ../src/winspector.c:400 #: ../src/appicon.c:428 ../src/dialog.c:201 ../src/dialog.c:304 #: ../src/dialog.c:751 ../src/dialog.c:1850 ../src/dock.c:526 #: ../src/dock.c:534 ../src/dock.c:558 ../src/dock.c:3327 #: ../src/dockedapp.c:231 ../src/dockedapp.c:426 ../src/main.c:273 #: ../src/rootmenu.c:1858 ../src/winspector.c:390 ../src/winspector.c:407 msgid "OK" msgstr "Приемам" # За да бъде без род замених "ще бъде затворена" на "ще Ñе затвори". # "Запазена" е по-точен превод на "save" - не вÑичко запазено е запиÑано # във файл. (Ð.З.) # ../src/appicon.c:579 ../src/dock.c:277 #: ../src/appicon.c:456 ../src/dock.c:264 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " ще Ñе затвори принудително.\n" "Ð’ÑÑка информациÑ, коÑто не е запазена ще бъде загубена.\n" "ÐаиÑтина ли желаете това?" # # ../src/appicon.c:585 ../src/dock.c:282 ../src/winmenu.c:125 #: ../src/appicon.c:464 ../src/dock.c:283 ../src/winmenu.c:125 msgid "Kill Application" msgstr "Убиване на приложение" # ../src/appicon.c:586 ../src/dock.c:283 ../src/winmenu.c:127 #: ../src/appicon.c:465 ../src/dock.c:284 ../src/winmenu.c:127 msgid "Yes" msgstr "Да" # ../src/appicon.c:586 ../src/dock.c:283 ../src/winmenu.c:127 #: ../src/appicon.c:465 ../src/dock.c:284 ../src/winmenu.c:127 msgid "No" msgstr "Ðе" # ../src/appicon.c:604 ../src/dock.c:1159 ../src/dock.c:3463 #: ../src/appicon.c:495 ../src/dock.c:1178 ../src/dock.c:3492 msgid "Unhide Here" msgstr "Покажи" # ../src/appicon.c:605 ../src/appicon.c:630 ../src/dock.c:1161 # ../src/dock.c:1163 ../src/dock.c:3475 ../src/winmenu.c:469 #: ../src/appicon.c:496 ../src/appicon.c:521 ../src/dock.c:1180 #: ../src/dock.c:1182 ../src/dock.c:3504 ../src/winmenu.c:465 msgid "Hide" msgstr "Скрий" # Може би "поÑтави" вмеÑто "прибави"? (Ð.З.) # ../src/appicon.c:606 #: ../src/appicon.c:497 msgid "Set Icon..." msgstr "ПоÑтави иконка..." # ../src/appicon.c:607 ../src/dock.c:1167 ../src/rootmenu.c:226 # ../src/rootmenu.c:240 ../src/winmenu.c:516 #: ../src/appicon.c:498 ../src/dock.c:1186 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 ../src/winmenu.c:520 msgid "Kill" msgstr "Убий" # ../src/appicon.c:628 ../src/dock.c:3473 #: ../src/appicon.c:519 ../src/dock.c:3502 msgid "Unhide" msgstr "Покажи" #: ../src/application.c:398 #, c-format msgid "recreating missing icon '%s'" msgstr "повторно Ñъздаване на липÑваща иконка \"%s\"" # ../src/defaults.c:972 ../src/defaults.c:1066 #: ../src/defaults.c:922 ../src/defaults.c:1011 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "ОблаÑтта %s (%s) от глобалната база данни Ñ Ð½Ð°Ñтройки е повредена!" # ../src/defaults.c:1071 #: ../src/defaults.c:927 #, c-format msgid "could not load domain %s from global defaults database" msgstr "облаÑтта %s от глобалната база данни не може да бъде заредена" # [ start translation # Translated by: Boris Jordanov # # Според мен defaults database значи не подразбиращата Ñе база данни, а # базата данни Ñ Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð±Ð¸Ñ€Ð°Ð½Ð¸Ñ, Ñ‚.е. Ñ Ð½Ð°Ñтройки. Съответно и # по-нататък изрази като "базата от данни Ñ Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð±Ð¸Ñ€Ð°Ñ‰Ð¸ Ñе # потребителÑки наÑтройки" Ñъм заменÑл на "потребителÑката база данни Ñ # наÑтройки". (Ð.З.) # # И аз така го разбирам, но нÑкак не ми дойде правилно звучащ израз :) # (Б.Й.) # # ОтноÑно "Dock" аз лично предпочитам "Док" (Б.Й.) # # Изрази от вида "да бъде прочетена" тук и по-нататък Ñъм заменил на "да # Ñе прочете" единÑтвено за краткоÑÑ‚ -- при нÑкои шрифтове по-дългиÑÑ‚ # изказ прави проблеми. (Ð.З.) # # Ðко ÑъображениÑта за краткоÑÑ‚ Ñа наиÑтина наложителни - ОК, но "да Ñе # прочете" звучи не ÑъвÑем едноÑмиÑлено: "да Ñе прочете" Ñама? или "да # бъде прочетена" - от нÑкого, процеÑ, програма? Дали в момента не пиша # безÑмиÑлици ?!?! (Б.Й.) # # ПоувлÑкох Ñе. Това тук Ñа конзолни ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ ÑъображениÑта за # краткоÑÑ‚ не важат. (Ð.З.) # ../src/defaults.c:910 ../src/startup.c:820 ../src/startup.c:838 # ../src/startup.c:844 #: ../src/defaults.c:949 ../src/startup.c:884 ../src/startup.c:902 #: ../src/startup.c:908 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "облаÑтта \"%s\" не може да бъде прочетена от базата данни Ñ Ð½Ð°Ñтройки" # ../src/defaults.c:956 ../src/defaults.c:1081 ../src/defaults.c:1120 # ../src/defaults.c:1150 #: ../src/defaults.c:995 ../src/defaults.c:1099 ../src/defaults.c:1140 #: ../src/defaults.c:1196 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "ОблаÑтта %s (%s) от базата данни Ñ Ð½Ð°Ñтройки е повредена!" # ../src/defaults.c:961 ../src/defaults.c:1102 ../src/defaults.c:1133 # ../src/defaults.c:1159 #: ../src/defaults.c:1000 ../src/defaults.c:1119 ../src/defaults.c:1176 #: ../src/defaults.c:1205 #, c-format msgid "could not load domain %s from user defaults database" msgstr "" "облаÑтта %s от потребителÑката база данни Ñ Ð½Ð°Ñтройки не може да бъде " "заредена." # ../src/defaults.c:991 #: ../src/defaults.c:1030 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "облаÑтта %s от глобалната база данни %s не може да бъде заредена" # ../src/screen.c:460 #: ../src/defaults.c:1166 ../src/screen.c:460 #, c-format msgid "could not load logo image for panels: %s" msgstr "картинката %s ÑÑŠÑ Ð·Ð½Ð°Ðº за панели не може да зареди" # ../src/defaults.c:1510 ../src/defaults.c:1622 ../src/defaults.c:2040 # ../src/defaults.c:2057 ../src/defaults.c:2160 ../src/defaults.c:2207 # ../src/defaults.c:2701 ../src/wdefaults.c:565 ../src/wdefaults.c:601 #. --------------------------- Local ----------------------- #: ../src/defaults.c:1414 ../src/defaults.c:1556 ../src/defaults.c:1668 #: ../src/defaults.c:2147 ../src/defaults.c:2164 ../src/defaults.c:2209 #: ../src/defaults.c:2256 ../src/defaults.c:2729 ../src/wdefaults.c:571 #: ../src/wdefaults.c:607 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Ðеправилен формат на параметъра на ключа \"%s\". ТрÑбва да бъде %s." # ../src/defaults.c:1451 ../src/defaults.c:1483 ../src/defaults.c:1515 # ../src/defaults.c:1528 ../src/defaults.c:1543 ../src/defaults.c:1557 # ../src/defaults.c:1627 ../src/defaults.c:1639 ../src/defaults.c:2045 # ../src/defaults.c:2062 ../src/defaults.c:2075 ../src/defaults.c:2165 # ../src/defaults.c:2181 ../src/defaults.c:2212 ../src/defaults.c:2299 # ../src/defaults.c:2707 ../src/defaults.c:2720 #: ../src/defaults.c:1416 ../src/defaults.c:1497 ../src/defaults.c:1529 #: ../src/defaults.c:1561 ../src/defaults.c:1574 ../src/defaults.c:1589 #: ../src/defaults.c:1603 ../src/defaults.c:1673 ../src/defaults.c:1685 #: ../src/defaults.c:2152 ../src/defaults.c:2169 ../src/defaults.c:2182 #: ../src/defaults.c:2214 ../src/defaults.c:2230 ../src/defaults.c:2261 #: ../src/defaults.c:2348 ../src/defaults.c:2734 ../src/defaults.c:2745 #, c-format msgid "using default \"%s\" instead" msgstr "вмеÑто това по подразбиране Ñе използва \"%s\"" # ../src/defaults.c:1401 #: ../src/defaults.c:1447 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "" "неправилна ÑтойноÑÑ‚ за ключа \"%s\". ТрÑбва да бъде една от Ñледните: %s" # ../src/defaults.c:1446 #: ../src/defaults.c:1492 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "не може да Ñе преобразува \"%s\" в булева ÑтойноÑÑ‚ за ключa \"%s\"" # ../src/defaults.c:1480 #: ../src/defaults.c:1526 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "не може да Ñе преобразува \"%s\" в цÑло чиÑло за ключа \"%s\"" # ../src/defaults.c:1523 #: ../src/defaults.c:1569 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Ðеправилен брой елементи в маÑива за ключa \"%s\"." # ../src/defaults.c:1538 #: ../src/defaults.c:1584 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Ðеправилна ÑтойноÑÑ‚ за ключа \"%s\". ТрÑбва да бъде Coordinate." # ../src/defaults.c:1553 #: ../src/defaults.c:1599 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "маÑивът не може да Ñе преобразува в целочиÑлени ÑтойноÑти за \"%s\"." # ../src/defaults.c:1749 ../src/defaults.c:1781 ../src/defaults.c:1797 # ../src/defaults.c:1843 ../src/defaults.c:1883 ../src/defaults.c:1921 # ../src/defaults.c:1937 #: ../src/defaults.c:1797 ../src/defaults.c:1829 ../src/defaults.c:1845 #: ../src/defaults.c:1874 ../src/defaults.c:1897 ../src/defaults.c:1950 #: ../src/defaults.c:1990 ../src/defaults.c:2028 ../src/defaults.c:2044 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" не е валидно име на цвÑÑ‚" # ../src/defaults.c:1762 #: ../src/defaults.c:1810 ../src/defaults.c:1862 msgid "bad number of arguments in gradient specification" msgstr "неправилен брой аргументи при определÑне на градиент" # ../src/defaults.c:1816 #: ../src/defaults.c:1923 msgid "too few arguments in multicolor gradient specification" msgstr "недоÑтатъчно аргументи при определÑне на многоцветен градиент" # ../src/defaults.c:1910 #: ../src/defaults.c:2017 msgid "bad number of arguments in textured gradient specification" msgstr "неправилен брой аргументи при определÑне на градиент Ñ Ñ‚ÐµÐºÑтура" # ../src/defaults.c:1953 #: ../src/defaults.c:2060 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "" "неправилна ÑтойноÑÑ‚ на прозрачноÑÑ‚ \"%s\" за текÑтурата на градиент. ТрÑбва " "да бъде от 0 до 255" # ../src/defaults.c:2013 #: ../src/defaults.c:2120 #, c-format msgid "could not initialize library %s" msgstr "библиотеката %s не може да бъде инициализирана" # ../src/defaults.c:2016 #: ../src/defaults.c:2123 #, c-format msgid "could not find function %s::%s" msgstr "функциÑта %s::%s не може да бъде открита" # ../src/defaults.c:2023 #: ../src/defaults.c:2130 #, c-format msgid "invalid texture type %s" msgstr "неправилен тип текÑтура (%s)" # ../src/defaults.c:2070 #: ../src/defaults.c:2177 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Грешка при определÑне на текÑтура за ключа \"%s\"" # ../src/defaults.c:2177 #: ../src/defaults.c:2226 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Ðеправилен тип фон за работно мÑÑто. ТрÑбва да бъде вид текÑтура." # ../src/defaults.c:2225 #: ../src/defaults.c:2274 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "Ðеправилен тип фон за работно мÑÑто %i. ТрÑбва да бъде текÑтура." # Translated by: Boris Jordanov # [ end translation # ../src/defaults.c:2267 #: ../src/defaults.c:2316 msgid "could not load any usable font!!!" msgstr "не може да Ñе зареди никой използваем шрифт!!!" # ../src/defaults.c:2294 #: ../src/defaults.c:2343 #, c-format msgid "could not get color for key \"%s\"" msgstr "не може да Ñе определи цвÑÑ‚ за ключа \"%s\"" # ../src/defaults.c:2352 ../src/rootmenu.c:492 #: ../src/defaults.c:2401 ../src/rootmenu.c:526 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s: неправилен клавишен модификатор \"%s\"" # # ../src/defaults.c:2364 #: ../src/defaults.c:2413 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: определена е недопуÑтима клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ \"%s\"" # # ../src/defaults.c:2371 #: ../src/defaults.c:2420 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s: недопуÑтим клавиш в комбинациÑта \"%s\"" # ../src/defaults.c:2396 #: ../src/defaults.c:2445 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: модификаторът %s не е извеÑтен" # ../src/defaults.c:2428 #: ../src/defaults.c:2477 #, c-format msgid "could not load image in option %s: %s" msgstr "не може да бъде заредено изображението от параметъра %s: %s" # ../src/defaults.c:2547 #: ../src/defaults.c:2594 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "неуÑпешно зареждането на файла Ñ ÐºÐ°Ñ€Ñ‚Ð¸Ð½ÐºÐ° \"%s\"" # ../src/defaults.c:2550 #: ../src/defaults.c:2597 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" не е валидно име на файл Ñ ÐºÐ°Ñ€Ñ‚Ð¸Ð½ÐºÐ°" # ../src/defaults.c:2553 #: ../src/defaults.c:2600 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "изчерпване на паметта при четене на картинката \"%s\"" # ../src/defaults.c:2597 ../src/defaults.c:2639 #: ../src/defaults.c:2639 ../src/defaults.c:2672 msgid "bad number of arguments in cursor specification" msgstr "неправилен брой аргументи при определÑне на курÑор" # ../src/defaults.c:2617 #: ../src/defaults.c:2655 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "непознато име на вграден курÑор \"%s\"" # ../src/defaults.c:2651 ../src/defaults.c:2665 #: ../src/defaults.c:2682 ../src/defaults.c:2694 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "не може да Ñе открие картинката за курÑор \"%s\"" # ../src/defaults.c:2715 #: ../src/defaults.c:2741 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Грешка при определÑне на курÑор в ключа \"%s\"" # ../src/defaults.c:2805 #: ../src/defaults.c:2826 msgid "could not render texture for icon background" msgstr "текÑтурата за фон не може да бъде изобразена" #: ../src/dialog.c:157 msgid "Save workspace state" msgstr "Да Ñе запази ÑÑŠÑтоÑнието" # ../src/dialog.c:122 ../src/dialog.c:581 ../src/dock.c:547 # ../src/dockedapp.c:376 ../src/rootmenu.c:188 ../src/rootmenu.c:226 # ../src/rootmenu.c:240 #: ../src/dialog.c:201 ../src/dialog.c:758 ../src/dock.c:558 #: ../src/dockedapp.c:431 ../src/rootmenu.c:198 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 msgid "Cancel" msgstr "ОтменÑм" # # ../src/dialog.c:225 #: ../src/dialog.c:299 msgid "Could not open directory " msgstr "Ðе може да бъде отворена директориÑта " # ../src/dialog.c:280 #: ../src/dialog.c:354 msgid "Could not load image file " msgstr "Ðе може да бъде зареден файл Ñ ÐºÐ°Ñ€Ñ‚Ð¸Ð½ÐºÐ° " # ../src/dialog.c:509 #: ../src/dialog.c:685 msgid "Directories" msgstr "Директории" # ../src/dialog.c:518 #: ../src/dialog.c:694 msgid "Icons" msgstr "Иконки" # ../src/dialog.c:551 #: ../src/dialog.c:727 msgid "Preview" msgstr "Преглед" # # ../src/dialog.c:564 #: ../src/dialog.c:740 msgid "File Name:" msgstr "Файл:" # ../src/dialog.c:587 #: ../src/dialog.c:764 msgid "Choose File" msgstr "Избор на файл" # ../src/dialog.c:604 ../src/dialog.c:606 #: ../src/dialog.c:783 ../src/dialog.c:785 msgid "Icon Chooser" msgstr "Избор на иконка" #: ../src/dialog.c:1265 ../src/dialog.c:1375 #, c-format msgid "Version %s" msgstr "ВерÑÐ¸Ñ %s" #: ../src/dialog.c:1372 msgid "Window Manager for X" msgstr "ÐдминиÑтратор на прозорци" #: ../src/dialog.c:1397 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Използва Ñе видеорежим 0x%x: %s %i байта/пикÑел " #: ../src/dialog.c:1405 msgid "(32 thousand colors)\n" msgstr "(32 хилÑди цвÑта)\n" #: ../src/dialog.c:1408 msgid "(64 thousand colors)\n" msgstr "(64 хилÑди цвÑта)\n" #: ../src/dialog.c:1412 msgid "(16 million colors)\n" msgstr "(16 милиона цвÑта)\n" #: ../src/dialog.c:1415 #, c-format msgid "(%d colors)\n" msgstr "(%d цвÑта)\n" #: ../src/dialog.c:1425 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "Заделена памет: %i KB. УпотребÑвана памет: %i KB.\n" #: ../src/dialog.c:1432 msgid "Supported image formats: " msgstr "Поддържани графични формати: " #: ../src/dialog.c:1439 msgid "" "\n" "Additional support for: " msgstr "" "\n" "Допълнителна поддръжка за: " #: ../src/dialog.c:1462 msgid " and " msgstr " и " #: ../src/dialog.c:1472 msgid "" "\n" "Sound disabled" msgstr "\nОзвучаването е изключено" #: ../src/dialog.c:1474 msgid "" "\n" "Sound enabled" msgstr "\nОзвучаването е включено" # ../src/dockedapp.c:212 #: ../src/dialog.c:1503 msgid "Info" msgstr "ИнформациÑ" #: ../src/dialog.c:1527 msgid "Merry Christmas!" msgstr "ВеÑела Коледа!" #: ../src/dialog.c:1597 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" " Уиндоу Мейкър е Ñвободен Ñофтуер; може да го разпроÑтранÑвате и/или\n" "изменÑте ÑъглаÑно уÑловиÑта на ОÑновната общодоÑтъпна Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Ð“ÐУ,\n" "както Ñ‚Ñ Ðµ публикувана от Free Software Foundation, или верÑÐ¸Ñ 2 на\n" "лицензиÑта, или (ако желаете) ÐºÐ¾Ñ Ð´Ð° е Ñледваща верÑиÑ.\n" "\n" " Уиндоу Мейкър Ñе разпроÑтранÑва Ñ Ð½Ð°Ð´ÐµÐ¶Ð´Ð°Ñ‚Ð°, че ще бъде полезен, но\n" "БЕЗ ÐИКÐКВИ ГÐРÐÐЦИИ, без дори подразбиращата Ñе Ð³Ð°Ñ€Ð°Ð½Ñ†Ð¸Ñ Ð·Ð°\n" "ПОЛЕЗÐОСТ или ПРИГОДÐОСТ ЗРÐЯКÐКВРЦЕЛ. Вижте ОÑновната\n" "общодоÑтъпна Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Ð“ÐУ за повече подробноÑти.\n" "\n" " Би трÑбвало а Ñте получили копие на ОÑновната общодоÑтъпна\n" "Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Ð“ÐУ (GNU General Public License) заедно Ñ Ñ‚Ð°Ð·Ð¸ програма; в\n" "противен Ñлучай пишете до Free Software Foundation, Inc., 51 Franklin St,\n" "Fifth Floor, Boston, MA 02110-1301, USA." #: ../src/dialog.c:1621 msgid "Legal" msgstr "Право" # ../src/dialog.c:1515 ../src/startup.c:328 #: ../src/dialog.c:1773 ../src/startup.c:394 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "" "не може да Ñе оÑъщеÑтви връзка Ñ Ð¿Ð°Ð½ÐµÐ»Ð° за авариен диалог. ПрекратÑване на " "работата." # ../src/dialog.c:1541 #: ../src/dialog.c:1799 msgid "Fatal error" msgstr "Критична грешка" # ../src/dialog.c:1552 #: ../src/dialog.c:1810 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Уиндоу Мейкър получи Ñигнал %i\n" "(%s)." # ../src/dialog.c:1555 #: ../src/dialog.c:1813 #, c-format msgid "Window Maker received signal %i." msgstr "Уиндоу Мейкър получи Ñигнал %i." # ../src/dialog.c:1564 #: ../src/dialog.c:1822 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "Възникналата критична грешка вероÑтно Ñе дължи на програмен дефект. ÐœÐ¾Ð»Ñ Ð¿Ð¾Ð¿ÑŠÐ»Ð½ÐµÑ‚Ðµ формулÑра от файла BUGFORM и го изпратете на Ð°Ð´Ñ€ÐµÑ bugs@windowmaker.info." # ../src/dialog.c:1572 #: ../src/dialog.c:1831 msgid "What do you want to do now?" msgstr "Какво да Ñе прави Ñега?" # ../src/dialog.c:1578 #: ../src/dialog.c:1837 msgid "Select action" msgstr "Избор на дейÑтвие" # ../src/dialog.c:1579 #: ../src/dialog.c:1838 msgid "Abort and leave a core file" msgstr "ПрекъÑни и оÑтави core-файл" # ../src/dialog.c:1580 #: ../src/dialog.c:1839 msgid "Restart Window Maker" msgstr "РеÑтартирай Уиндоу Мейкър" # ../src/dialog.c:1581 #: ../src/dialog.c:1840 msgid "Start alternate window manager" msgstr "Стартирай друг админиÑтратор на прозорците" #: ../src/dialog.c:2018 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop environment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" "Уиндоу Мейкър е чаÑÑ‚ от проекта ГÐУÑтеп.\n" "Проектът ГÐУÑтеп има за цел да Ñъздаде Ñвободна\n" "Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° Ñтандарта OpenStepâ„¢, предÑтавлÑващ\n" "обектноориентирана Ñреда за Ñъздаване на разно-\n" "образни графични и мултиплатформени приложениÑ.\n" "Ðа тази оÑнова ще бъде Ñъздадена и интегрирана\n" "потребителÑка Ñреда. За повече информациÑ\n" "отноÑно ГÐУÑтеп, Ð¼Ð¾Ð»Ñ Ð¿Ð¾Ñетете www.gnustep.org" #: ../src/dialog.c:2041 msgid "About GNUstep" msgstr "ОтноÑно ГÐУÑтеп" # Смених "задайте" на "изберете" от ÑтилиÑтични ÑÑŠÐ¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ (Ð.З.) # ../src/dock.c:213 #: ../src/dock.c:213 #, c-format msgid "Type the name for workspace %i:" msgstr "Изберете име за работно мÑÑто %i:" # Тук Workspace не е преведено, защото Ñтава много дълго и не Ñе побира.(Ð.З.) # ../src/dock.c:214 ../src/dock.c:1123 ../src/dock.c:1126 ../src/dock.c:3381 #: ../src/dock.c:214 ../src/dock.c:1142 ../src/dock.c:1145 ../src/dock.c:3410 msgid "Rename Workspace" msgstr "Преименуване" # ../src/dock.c:509 ../src/dock.c:517 #: ../src/dock.c:520 ../src/dock.c:528 msgid "Warning" msgstr "Внимание!" # ../src/dock.c:510 #: ../src/dock.c:521 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "ÐÑкои иконки не може да Ñе направÑÑ‚ вездеÑъщни. МолÑ, убедете Ñе, че Ð½Ð¸ÐºÐ¾Ñ " "друга иконка не е Ñкачена на Ñъщото мÑÑто в другите работни меÑта и че " "Кламерът не е пълен в нÑкое работно мÑÑто." # "вездеÑъщни" - "вÑеприÑÑŠÑтващи", "вÑеприÑÑŠÑтвени"? Прекалено дълги думички. (Б.Й.) # ../src/dock.c:518 #: ../src/dock.c:529 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "Иконката не може да Ñе направи вездеÑъщна. ÐœÐ¾Ð»Ñ ÑƒÐ±ÐµÐ´ÐµÑ‚Ðµ Ñе, че Ð½Ð¸ÐºÐ¾Ñ Ð´Ñ€ÑƒÐ³Ð° иконка не е Ñкачена на Ñъщото мÑÑто в нÑкое друго работно мÑÑто и че Кламерът не е препълнен в нÑкое работно мÑÑто." # ../src/dock.c:545 #: ../src/dock.c:556 msgid "Workspace Clip" msgstr "Кламер" # ../src/dock.c:546 #: ../src/dock.c:557 msgid "All selected icons will be removed!" msgstr "Ð’Ñички маркирани иконки ще бъдат отÑтранени!" # ../src/dock.c:597 ../src/dock.c:1138 ../src/dock.c:1140 ../src/dock.c:3417 #: ../src/dock.c:608 ../src/dock.c:1157 ../src/dock.c:1159 ../src/dock.c:3446 msgid "Keep Icon" msgstr "Запази иконката" # # ../src/dock.c:598 ../src/dock.c:2120 ../src/dock.c:2254 #: ../src/dock.c:609 ../src/dock.c:2138 ../src/dock.c:2279 msgid "Type the command used to launch the application" msgstr "Въведете командата за Ñтартиране на приложението" # # ../src/dock.c:949 #: ../src/dock.c:965 #, c-format msgid "could not launch application %s\n" msgstr "не може да Ñе Ñтартира приложението %s\n" # ../src/dock.c:1004 #: ../src/dock.c:1020 msgid "could not create workspace submenu for Clip menu" msgstr "не може да Ñе направи подменю Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð½Ð¸Ñ‚Ðµ меÑта в менюто на Кламер" # ../src/dock.c:1066 #: ../src/dock.c:1079 msgid "could not create options submenu for Clip menu" msgstr "не може да Ñе направи подменю за наÑтройки в менюто на Кламер" # ../src/dock.c:1027 ../src/dock.c:1070 ../src/dock.c:1115 ../src/dock.c:3361 #: ../src/dock.c:1083 ../src/dock.c:1131 msgid "Keep on Top" msgstr "Винаги отгоре" # ../src/dock.c:1073 #: ../src/dock.c:1089 msgid "Collapsed" msgstr "Свит" # ../src/dock.c:1079 #: ../src/dock.c:1095 msgid "Autocollapse" msgstr "Да Ñе Ñвива автоматично" # ../src/dock.c:1085 #: ../src/dock.c:1101 msgid "Autoraise" msgstr "Да изплува автоматично" # ../src/dock.c:1091 #: ../src/dock.c:1107 msgid "Autoattract Icons" msgstr "Да привлича иконките" # ../src/dock.c:1118 #: ../src/dock.c:1137 msgid "Clip Options" msgstr "ÐŸÑ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð·Ð° Кламер" # ../src/dock.c:1128 #: ../src/dock.c:1147 msgid "Selected" msgstr "Маркирай Ñ" # ../src/dock.c:1133 ../src/dock.c:1136 ../src/dock.c:3408 #: ../src/dock.c:1152 ../src/dock.c:1155 ../src/dock.c:3437 msgid "Select All Icons" msgstr "Маркирай вÑички иконки" # ../src/dock.c:1142 ../src/dock.c:1144 ../src/dock.c:3425 #: ../src/dock.c:1161 ../src/dock.c:1163 ../src/dock.c:3454 msgid "Move Icon To" msgstr "ПремеÑти иконката в" # ../src/dock.c:1149 ../src/dock.c:1152 ../src/dock.c:3436 #: ../src/dock.c:1168 ../src/dock.c:1171 ../src/dock.c:3465 msgid "Remove Icon" msgstr "Махни иконката" # ../src/dock.c:1154 #: ../src/dock.c:1173 msgid "Attract Icons" msgstr "Привлечи иконките" # ../src/dock.c:1157 #: ../src/dock.c:1176 msgid "Launch" msgstr "Стартирай" # ../src/dock.c:1165 #: ../src/dock.c:1184 msgid "Settings..." msgstr "ÐаÑтройки..." # ../src/dock.c:1524 ../src/dock.c:1627 #: ../src/dock.c:1549 ../src/dock.c:1656 #, c-format msgid "bad value in docked icon state info %s" msgstr "неправилна ÑтойноÑÑ‚ за ÑÑŠÑтоÑние на Ñкачена иконка %s" # ../src/dock.c:1635 #: ../src/dock.c:1664 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "неправилно меÑтоположение %i,%i на Ñкачена иконка" # ../src/dock.c:1524 ../src/dock.c:1627 #: ../src/dock.c:1684 #, c-format msgid "bad value in dock state info:%s" msgstr "неправилна ÑтойноÑÑ‚ за ÑÑŠÑтоÑние на Дока: %s" # ../src/dock.c:1887 #: ../src/dock.c:1920 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "има твърде много иконки в Дока и нÑкои не Ñе побират в работното мÑÑто" # ../src/dock.c:2119 ../src/dock.c:2253 #. icon->forced_dock = 1; #: ../src/dock.c:2137 ../src/dock.c:2278 msgid "Dock Icon" msgstr "Скачване на иконка" # ../src/dock.c:3284 ../src/dock.c:3288 #: ../src/dock.c:3324 #, c-format msgid "Could not execute command \"%s\"" msgstr "Ðе може да Ñе изпълни командата \"%s\"" # ../src/dock.c:3387 #: ../src/dock.c:3416 msgid "Toggle Omnipresent" msgstr "Смени вездеÑъщноÑтта" # Изненада: "omnipresent" Ñе използва както за иконка, така и за прозорец. # Затова не може нито "вездеÑъщен", нито "вездеÑъщна" и Ñъм използвал # безличното "вездеÑъщноÑÑ‚". (Ð.З.) # ../src/dock.c:3392 ../src/winmenu.c:421 ../src/winspector.c:1380 #: ../src/dock.c:3421 ../src/kwm.c:637 ../src/winmenu.c:418 #: ../src/winspector.c:1375 msgid "Omnipresent" msgstr "ВездеÑъщноÑÑ‚" # ../src/dock.c:3406 #: ../src/dock.c:3435 msgid "Unselect All Icons" msgstr "Размаркирай иконките" # ../src/dock.c:3415 #: ../src/dock.c:3444 msgid "Keep Icons" msgstr "Запази иконките" # ../src/dock.c:3423 #: ../src/dock.c:3452 msgid "Move Icons To" msgstr "ПремеÑти иконките в" # ../src/dock.c:3434 #: ../src/dock.c:3463 msgid "Remove Icons" msgstr "ОтÑтрани иконките" # ../src/dock.c:3465 #: ../src/dock.c:3494 ../src/kwm.c:643 msgid "Bring Here" msgstr "ДонеÑи тук" # ../src/dockedapp.c:131 #: ../src/dockedapp.c:149 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "иконката %s, използвана от приложението, не може да бъде открита" # # ../src/dockedapp.c:210 #: ../src/dockedapp.c:229 #, c-format msgid "Could not open specified icon file: %s" msgstr "Иконката \"%s\" не може да бъде заредена" # ../src/dockedapp.c:212 #: ../src/dockedapp.c:231 msgid "Ignore" msgstr "ПропуÑни" # ../src/dockedapp.c:305 #: ../src/dockedapp.c:333 msgid "Start when Window Maker is started" msgstr "Да Ñе Ñтартира автоматично в началото" # ../src/dockedapp.c:312 #: ../src/dockedapp.c:340 msgid "Lock (prevent accidental removal)" msgstr "Да Ñе предпазва от неволно махане" # # ../src/dockedapp.c:318 #: ../src/dockedapp.c:344 msgid "Application path and arguments" msgstr "Път към приложението и аргументи" #: ../src/dockedapp.c:357 msgid "Command for middle-click launch" msgstr "Команда за пуÑкане ÑÑŠÑ Ñреден бутон" # ../src/dockedapp.c:341 #: ../src/dockedapp.c:371 #, c-format msgid "%s will be replaced with current selection" msgstr "%s ще бъде заменено Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¸Ð·Ð±Ð¾Ñ€" # ../src/dockedapp.c:329 #: ../src/dockedapp.c:376 msgid "Command for files dropped with DND" msgstr "Команда за пуÑнати файлове" # ../src/dockedapp.c:341 #: ../src/dockedapp.c:390 #, c-format msgid "%d will be replaced with the file name" msgstr "%d ще Ñе Ð·Ð°Ð¼ÐµÐ½Ñ Ñ Ð¸Ð¼ÐµÑ‚Ð¾ на файла" # ../src/dockedapp.c:345 #: ../src/dockedapp.c:394 msgid "DND support was not compiled in" msgstr "поддръжката за DND не е компилирана" # ../src/dockedapp.c:351 #: ../src/dockedapp.c:399 msgid "Icon Image" msgstr "Иконка" # ../src/dockedapp.c:363 ../src/winspector.c:1518 #: ../src/dockedapp.c:413 ../src/winspector.c:1513 msgid "Browse..." msgstr "Избери..." # # ../src/dockedapp.c:408 #: ../src/dockedapp.c:466 msgid "Docked Application Settings" msgstr "ÐаÑтройки за Ñкачено приложение" # ../src/framewin.c:655 ../src/framewin.c:750 ../src/menu.c:458 # ../src/texture.c:549 #: ../src/framewin.c:649 ../src/framewin.c:744 ../src/menu.c:456 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "текÑтурата %s не може да бъде изобразена" # ../src/framewin.c:678 ../src/framewin.c:689 ../src/framewin.c:705 # ../src/framewin.c:716 ../src/framewin.c:723 ../src/framewin.c:730 # ../src/icon.c:350 ../src/menu.c:487 #: ../src/framewin.c:672 ../src/framewin.c:683 ../src/framewin.c:699 #: ../src/framewin.c:710 ../src/framewin.c:717 ../src/framewin.c:724 #: ../src/icon.c:350 ../src/menu.c:485 #, c-format msgid "error rendering image:%s" msgstr "грешка при изобразÑване на %s" # ../src/framewin.c:783 #: ../src/framewin.c:777 #, c-format msgid "error rendering image: %s" msgstr "грешка при изобразÑване на %s" # ../src/session.c:1023 #: ../src/gnome.c:216 ../src/gnome.c:343 ../src/gnome.c:401 msgid "out of memory while updating GNOME hints" msgstr "изчерпана памет при актуализиране на GNOME hints" # ../src/icon.c:229 ../src/wdefaults.c:435 #: ../src/icon.c:229 ../src/wdefaults.c:443 #, c-format msgid "error loading image file \"%s\": %s" msgstr "грешка при зареждане на файла Ñ ÐºÐ°Ñ€Ñ‚Ð¸Ð½ÐºÐ° \"%s\": %s" # # ../src/icon.c:488 ../src/icon.c:497 #: ../src/icon.c:493 ../src/icon.c:502 #, c-format msgid "could not create directory %s" msgstr "не може да Ñе Ñъздаде Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s" # ../src/icon.c:764 #: ../src/icon.c:769 #, c-format msgid "could not find default icon \"%s\"" msgstr "не може да Ñе зареди подразбиращата Ñе иконка \"%s\"" # ../src/icon.c:770 #: ../src/icon.c:775 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "не може да Ñе зареди подразбиращата Ñе иконка (\"%s\"): %s" # ../src/winmenu.c:444 ../src/winmenu.c:579 #. #. * 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/kwm.c:633 ../src/winmenu.c:441 ../src/winmenu.c:583 msgid "Maximize" msgstr "МакÑимизирай" # ../src/winmenu.c:574 #: ../src/kwm.c:634 ../src/winmenu.c:578 msgid "Unmaximize" msgstr "Ðамали" # ../src/winmenu.c:452 ../src/winmenu.c:565 #: ../src/kwm.c:635 ../src/winmenu.c:449 ../src/winmenu.c:569 msgid "Miniaturize" msgstr "Минимизирай" # ../src/winmenu.c:560 #: ../src/kwm.c:636 ../src/winmenu.c:564 msgid "Deminiaturize" msgstr "Уголеми" # Изненада: "omnipresent" Ñе използва както за иконка, така и за прозорец. # Затова не може нито "вездеÑъщен", нито "вездеÑъщна" и Ñъм използвал # безличното "вездеÑъщноÑÑ‚". (Ð.З.) # ../src/dock.c:3392 ../src/winmenu.c:421 ../src/winspector.c:1380 #: ../src/kwm.c:638 msgid "Not Omnipresent" msgstr "Ðе вездеÑъщен" # ../src/winmenu.c:493 #: ../src/kwm.c:639 msgid "Move" msgstr "ПремеÑтвÐ°Ð½Ðµ" # ../src/winmenu.c:477 #: ../src/kwm.c:640 msgid "Resize" msgstr "ПреоразмерÑване" # ../src/rootmenu.c:226 ../src/winmenu.c:509 #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/kwm.c:641 ../src/rootmenu.c:248 ../src/winmenu.c:513 msgid "Close" msgstr "Затвори" # ../src/winmenu.c:493 #: ../src/kwm.c:642 ../src/winmenu.c:497 msgid "Move To" msgstr "ПремеÑти на..." #: ../src/kwm.c:1096 msgid "%a(Run Command,Type the command to run:)" msgstr "%a(Изпълни команда,Въведете командата, коÑто да Ñе изпълни:)" # ../src/main.c:204 #: ../src/main.c:222 msgid "failed to restart Window Maker." msgstr "реÑтартирането на Уиндоу Мейкър бе неуÑпешно." # ../src/main.c:207 #: ../src/main.c:225 #, c-format msgid "could not exec %s" msgstr "не може да Ñе изпълни %s" # ../src/main.c:252 #: ../src/main.c:271 msgid "Could not execute command: " msgstr "Ðе може да Ñе изпълни командата " # ../src/main.c:409 #: ../src/main.c:428 #, c-format msgid "%s aborted.\n" msgstr "%s е прекъÑнато аварийно.\n" # ../src/main.c:420 #: ../src/main.c:439 #, c-format msgid "Usage: %s [options]\n" msgstr "Употреба: %s [опции]\n" # ../src/main.c:421 #: ../src/main.c:440 msgid "The Window Maker window manager for the X window system" msgstr "Уиндоу Мейкър -- админиÑтратор на прозорците за X Window" # ../src/main.c:423 #: ../src/main.c:442 msgid " -display host:dpy\tdisplay to use" msgstr " -display хоÑÑ‚:диÑплей\tдиÑплей да Ñе използва" # "предпроцеÑорна"? - "предварителна" миÑÐ»Ñ Ðµ по-добре (Б.Й.) # ../src/main.c:425 #: ../src/main.c:444 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tбез предварителна обработка на конфигурационните файлове" # ../src/main.c:427 #: ../src/main.c:446 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tбез Дока за приложениÑ" # ../src/main.c:428 #: ../src/main.c:447 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tбез Кламера за работните меÑта" # # ../src/main.c:429 #: ../src/main.c:448 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tда не Ñе изпълнÑват приложениÑта" #: ../src/main.c:449 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\tда не Ñе възÑтановÑва запазената ÑеÑиÑ" # "локала" - "локализациÑ" (Б.Й.) #: ../src/main.c:451 msgid " --locale locale\tlocale to use" msgstr " --locale локал \t\tда Ñе използва локалът<" #: ../src/main.c:453 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr " --create-stdcmap\tда Ñе Ñъздаде Ñтандартен colormap hint при PseudoColor" # ../src/main.c:434 #: ../src/main.c:454 msgid " --visual-id visualid\tvisual id of visual to use" msgstr "" " --visual-id visualid\tизползвай поÑÐ¾Ñ‡ÐµÐ½Ð¸Ñ Ñ†Ð²ÐµÑ‚Ð¾Ð²Ð¸ ÐºÐ»Ð°Ñ Ð½Ð° изображението" # ../src/main.c:435 #: ../src/main.c:455 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tне обновÑвай и не запазвай конфигурациите" #: ../src/main.c:456 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr "" " --no-polling\tда не Ñе проверÑва перманентно за промени в конфигурациÑта." # ../src/main.c:437 #: ../src/main.c:458 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tвключи Ñинхронен режим за извеждане" # ../src/main.c:439 #: ../src/main.c:460 msgid " --version\t\tprint version and exit" msgstr " --version\t\tотпечатва верÑиÑта и изход" # ../src/main.c:440 #: ../src/main.c:461 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tпоказва това Ñъобщение" # ../src/main.c:452 #: ../src/main.c:474 #, 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" "Уверете Ñе, че Уиндоу Мейкър е инÑталиран правилно и Ñтартирайте wmaker.inst" # # ../src/icon.c:488 ../src/icon.c:497 #: ../src/main.c:479 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "не може да Ñе Ñъздаде потребителÑката Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ GNUstep (%s)" # ../src/main.c:452 #: ../src/main.c:482 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "Получи Ñе грешка при Ñъздаване на потребителÑката Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ GNUstep (%s).\n" "Уверете Ñе, че Уиндоу Мейкър е инÑталиран правилно и Ñтартирайте wmaker.inst" #: ../src/main.c:485 #, c-format msgid "%s directory created with default configuration." msgstr "Ñъздадена Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s ÑÑŠÑ Ñтандартните наÑтройки." # [ start translation # Translated by: Boris Jordanov # ../src/main.c:473 ../src/main.c:478 #: ../src/main.c:505 ../src/main.c:510 #, c-format msgid "%s:could not execute initialization script" msgstr "%s: не може да бъде изпълнена инициализиращата процедура" # ../src/main.c:498 ../src/main.c:503 #: ../src/main.c:528 ../src/main.c:533 #, c-format msgid "%s:could not execute exit script" msgstr "%s: не може да бъде изпълнена процедурата за изход" # Translated by: Boris Jordanov # [ end translation # ../src/main.c:619 ../src/main.c:626 ../src/main.c:634 ../src/main.c:650 #: ../src/main.c:661 ../src/main.c:669 ../src/main.c:677 ../src/main.c:697 #, c-format msgid "too few arguments for %s" msgstr "твърде малко аргументи за %s" # ../src/main.c:638 #: ../src/main.c:681 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "неправилна ÑтойноÑÑ‚ на visualid: \"%s\"" # # ../src/main.c:658 #: ../src/main.c:705 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: неправилен аргумент \"%s\"\n" # ../src/main.c:659 #: ../src/main.c:706 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Пробвайте \"%s --help\" за повече информациÑ\n" # Ðе Ñъм убеден, но може би тук 'locale' значи не локализациÑ, а конкретниÑÑ‚ използван локал (напр bg_BG). (Ð.З.) # ../src/main.c:690 #: ../src/main.c:737 msgid "X server does not support locale" msgstr "Локалът не Ñе поддържа от X Ñървъра" # Пак не ми е ÑÑно за какво точно Ñтава Ð²ÑŠÐ¿Ñ€Ð¾Ñ Ð¸ за да не възникнат # Ð½ÐµÐ´Ð¾Ñ€Ð°Ð·ÑƒÐ¼ÐµÐ½Ð¸Ñ Ð·Ð°Ð¼ÐµÐ½Ð¸Ñ… 'параметри на локализациÑта' Ñ Ð¿Ð¾-буквалното # 'модификатори на локала'. (Ð.З.) # ../src/main.c:694 #: ../src/main.c:741 msgid "cannot set locale modifiers" msgstr "не може да Ñе зададат модификатори на локала" # ../src/main.c:710 #: ../src/main.c:757 #, c-format msgid "could not open display \"%s\"" msgstr "не е доÑтъпен диÑÐ¿Ð»ÐµÑ \"%s\"" # #: ../src/menu.c:1264 msgid "could not grab keyboard" msgstr "не може да Ñе монополизира клавиатурата" # ../src/dock.c:1524 ../src/dock.c:1627 #: ../src/menu.c:2578 #, c-format msgid "bad value in menus state info:%s" msgstr "неправилна ÑтойноÑÑ‚ за ÑÑŠÑтоÑние меню %s" # Translated by: Boris Jordanov # [ end translation #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "не може да Ñе дефинира ÑтойноÑÑ‚ за %s за cpp" # Има ли ÑмиÑъл UID да Ñе замени Ñ "номер", в ÑмиÑъл "... за Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ # Ñ Ð½Ð¾Ð¼ÐµÑ€(UID) "? (Б.Й.) # ../src/misc.c:101 #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "от /etc/passwd не може да Ñе получи Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ñ Ð½Ð¾Ð¼ÐµÑ€ (UID) %i" # ../src/misc.c:126 #: ../src/misc.c:158 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "ÑиÑтемата Ви е конфигурирана неправилно. Като HOSTNAME е поÑочено %s" # ../src/misc.c:132 #: ../src/misc.c:164 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "ÑиÑтемата Ви е конфигурирана неправилно. Като HOST е поÑочено %s" # ../src/misc.c:769 #: ../src/misc.c:656 msgid "Program Arguments" msgstr "Ðргументи на програмата" # ../src/misc.c:770 #: ../src/misc.c:657 msgid "Enter command arguments:" msgstr "Въведете аргументи за програмата:" # [ start translation # Translated by: Boris Jordanov # # "пуÑнати" или "ÑпуÑнати"? да преведем ли DND? Или да бъде # "... пуÑнати ÑÑŠÑ(Ñлед, чрез) завлачване (изтеглÑне)" или нещо от Ñорта # (Б.Й.) # ../src/misc.c:863 #: ../src/misc.c:750 msgid "unable to get dropped data from DND drop" msgstr "невъзможноÑÑ‚ да Ñе получат данните пуÑнати чрез DND" # ../src/misc.c:871 #: ../src/misc.c:758 msgid "error getting dropped data from DND drop" msgstr "грешка при получаване на данните ÑпуÑнати чрез DND" # ../src/misc.c:877 #: ../src/misc.c:764 msgid "out of memory while getting data from DND drop" msgstr "изчерпване на паметта при опит за получаване на данни от DND операциÑ" # ../src/misc.c:922 ../src/misc.c:1062 #: ../src/misc.c:809 ../src/misc.c:949 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "изчерпване на паметта при разширÑване на \"%s\"" # ../src/misc.c:976 #: ../src/misc.c:863 msgid "out of memory during expansion of \"%w\"" msgstr "изчерпване на паметта при разширÑване на \"%w\"" # ../src/misc.c:994 #: ../src/misc.c:881 msgid "out of memory during expansion of \"%W\"" msgstr "изчерпване на паметта при разширÑване на \"%W\"" # ../src/misc.c:1010 #: ../src/misc.c:897 msgid "out of memory during expansion of \"%a\"" msgstr "изчерпване на паметта при разширÑване на \"%a\"" # ../src/misc.c:1041 #: ../src/misc.c:928 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "изчерпване на паметта при разширÑване на \"%d\"" # Translated by: Boris Jordanov # [ end translation # ../src/misc.c:1055 #: ../src/misc.c:942 msgid "selection not available" msgstr "нищо не е избрано (маркирано)" # ../src/misc.c:1127 ../src/misc.c:1133 #: ../src/misc.c:998 ../src/misc.c:1004 #, c-format msgid "bad window name value in %s state info" msgstr "неправилно име на прозорец в информациата за ÑÑŠÑтоÑнието на Дока -- %s" # "...помощника за изобразÑване на фона" ? (Б.Й.) (вмеÑто "помощника за # изображение на фон") # ../src/misc.c:1401 #: ../src/misc.c:1261 msgid "could not send message to background image helper" msgstr "не може да Ñе изпрати Ñъобщение на помощника за изобразÑване на фона" # ../src/pixmap.c:235 #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "" "не може да Ñе зареди раÑтерна маÑка от файла \"%s\". МаÑка нÑма да Ñе " "използва" # ../src/resources.c:44 #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "не може да Ñе направи разбор на цвÑÑ‚: \"%s\"" # ../src/resources.c:48 #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "не може да Ñе задели цвÑÑ‚ \"%s\"" # ../src/rootmenu.c:186 ../src/rootmenu.c:188 #: ../src/rootmenu.c:196 ../src/rootmenu.c:198 msgid "Exit" msgstr "Изход" # ../src/rootmenu.c:187 #: ../src/rootmenu.c:197 msgid "Exit window manager?" msgstr "Да Ñе излезе ли от админиÑтратора на прозорци?" # ../src/rootmenu.c:223 #: ../src/rootmenu.c:245 msgid "Close X session" msgstr "Край на работата" # ВмеÑто "да Ñе затвори ли" много по-добре би било "да Ñе прекрати ли", но за # Ñъжаление това води до ÐºÐ¾Ð»Ð¸Ð·Ð¸Ñ Ð¿Ð¾Ñ€Ð°Ð´Ð¸ двойната употреба на "Close" от # Ñледващата ÑÑ‚Ð°Ñ‚Ð¸Ñ - "close the session" и "close a window". (Ð.З.) # Ð "Да Ñе приключи ли ÑеÑиÑта Ñ Ð³Ñ€Ð°Ñ„Ð¸Ñ‡Ð½Ð°Ñ‚Ð° Ñреда?"? # Изобщо "приключи" вмеÑто "убие" там, където е възможно? (Б.Й.) # Ðе върви "приключи прозореца". (Ð.З.) # ../src/rootmenu.c:224 #: ../src/rootmenu.c:246 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "Да Ñе затвори ли ÑеÑиÑта Ñ Ð³Ñ€Ð°Ñ„Ð¸Ñ‡Ð½Ð°Ñ‚Ð° Ñреда?\n" "Ðезапазените данни от приложениÑта може да Ñе загубÑÑ‚." # И тук не може "прекратÑване", този път заради бутона "Kill", който Ñъщо # Ñе използва на много меÑта и затова трÑбва да Ñе преведе като "Убий". (Ð.З.) # ../src/rootmenu.c:237 #: ../src/rootmenu.c:261 msgid "Kill X session" msgstr "Убиване на ÑеÑиÑта" # ../src/rootmenu.c:238 #: ../src/rootmenu.c:262 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Да Ñе убие ли ÑеÑиÑта Ñ Ð³Ñ€Ð°Ñ„Ð¸Ñ‡Ð½Ð°Ñ‚Ð° Ñреда?\n" "(Ð’Ñички Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ‰Ðµ бъдат затворени.)" # ../src/rootmenu.c:505 #: ../src/rootmenu.c:539 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s: определена е невÑрна клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ \"%s\" за Ð·Ð°Ð¿Ð¸Ñ %s" # ../src/rootmenu.c:513 #: ../src/rootmenu.c:547 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s: Ñгрешен клавиш в клавишната ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ \"%s\" за Ð·Ð°Ð¿Ð¸Ñ \"%s\"" # ../src/rootmenu.c:566 #: ../src/rootmenu.c:600 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: кавичка без нейна Ñъответна във файла за меню" # ../src/rootmenu.c:616 #: ../src/rootmenu.c:650 #, c-format msgid "%s: missing command" msgstr "%s: липÑваща команда" # ../src/rootmenu.c:648 #: ../src/rootmenu.c:682 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "невÑрно определÑне на OPEN_MENU: %s" # ../src/rootmenu.c:696 #: ../src/rootmenu.c:733 #, c-format msgid "%s:could not stat menu" msgstr "%s: не може да Ñе получи меню" # ../src/rootmenu.c:704 #: ../src/rootmenu.c:741 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s: не може да Ñе получи меню: %s" # ../src/rootmenu.c:722 #: ../src/rootmenu.c:759 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "твърде много параметри в OPEN_MENU: %s" # ../src/rootmenu.c:758 #: ../src/rootmenu.c:803 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Ð’ менюто има повече от една команда WORKSPACE_MENU. ДопуÑтима е Ñамо една." # ../src/rootmenu.c:758 #: ../src/rootmenu.c:837 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "Ð’ менюто на приложениÑта има повече от една команда WORKSPACE_MENU. ДопуÑтима е Ñамо една." #: ../src/rootmenu.c:842 msgid "Window List" msgstr "СпиÑък на прозорците" # ../src/rootmenu.c:787 ../src/rootmenu.c:805 ../src/rootmenu.c:815 #: ../src/rootmenu.c:871 ../src/rootmenu.c:889 ../src/rootmenu.c:899 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s: липÑващ параметър за командата за меню \"%s\"" # ../src/rootmenu.c:879 #: ../src/rootmenu.c:967 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s: непозната команда \"%s\" в конфигурациÑта на менюто." # ../src/rootmenu.c:887 #: ../src/rootmenu.c:975 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s: не може да Ñе добави клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð·Ð° командата \"%s\"" # ../src/rootmenu.c:1024 #: ../src/rootmenu.c:1112 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s: конфигурациÑта на меню %s надхвърли макÑималната дължина на ред" # ../src/rootmenu.c:1046 ../src/rootmenu.c:1138 ../src/rootmenu.c:1239 #: ../src/rootmenu.c:1134 ../src/rootmenu.c:1227 ../src/rootmenu.c:1330 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s: липÑваща команда в конфигурациÑта на меню: %s" # ../src/rootmenu.c:1076 #: ../src/rootmenu.c:1164 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s: Ñинтактична грешка при определÑне на меню: липÑва Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ END" # ../src/rootmenu.c:1105 ../src/rootmenu.c:1204 #: ../src/rootmenu.c:1193 ../src/rootmenu.c:1294 msgid "could not make arguments for menu file preprocessor" msgstr "не може да Ñе положат аргументи за предпроцеÑора на файла меню" # ../src/rootmenu.c:1111 ../src/rootmenu.c:1211 #: ../src/rootmenu.c:1200 ../src/rootmenu.c:1302 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s: не може да Ñе отвори/обработи от предпроцеÑора файлът меню" # ../src/rootmenu.c:1123 ../src/rootmenu.c:1224 #: ../src/rootmenu.c:1212 ../src/rootmenu.c:1315 #, c-format msgid "%s:could not open menu file" msgstr "%s: не може да Ñе отвори файлът меню" # ../src/rootmenu.c:1150 #: ../src/rootmenu.c:1239 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s: Ñгрешен файл меню: липÑва командата MENU" # ../src/rootmenu.c:1159 #: ../src/rootmenu.c:1248 msgid "error reading preprocessed menu data" msgstr "грешка при четене на обработените данни за меню" # ../src/rootmenu.c:1251 #: ../src/rootmenu.c:1342 #, c-format msgid "%s:no title given for the root menu" msgstr "%s: не е дадено заглавие за главното меню" # [ start translation # Translated by: Boris Jordanov # ??????? # ../src/rootmenu.c:1341 ../src/rootmenu.c:1416 ../src/rootmenu.c:1459 #: ../src/rootmenu.c:1433 ../src/rootmenu.c:1506 ../src/rootmenu.c:1547 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "изчерпване на паметта при Ñъздаване на директорното меню %s" # ../src/rootmenu.c:1351 #: ../src/rootmenu.c:1443 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "" "%s:не може да получи параметрите на файла \"%s\" в директориÑта на менюто" # Translated by: Boris Jordanov - 10x Antoby # [ end translation # ../src/rootmenu.c:1513 #: ../src/rootmenu.c:1601 msgid "Commands" msgstr "Команди" # ../src/rootmenu.c:1516 #: ../src/rootmenu.c:1604 msgid "Restart" msgstr "РеÑтартиране" # ../src/rootmenu.c:1517 #: ../src/rootmenu.c:1605 msgid "Exit..." msgstr "Изход..." # [ Start Lyubo] # ../src/rootmenu.c:1562 #: ../src/rootmenu.c:1650 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "меню файлът \"%s\", поÑочен в WMRootMenu, не може да бъде открит" # ../src/rootmenu.c:1569 #: ../src/rootmenu.c:1657 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "" "доÑтъпът до меню \"%s\", поÑочено в WMRootMenu, не може да бъде оÑъщеÑтвен" # ## variant [mislia po-dobur, no ne bukvalen] # "използвам меню файл по подразбиране \"%s\", тъй като указаниÑÑ‚ в WMRootMenu, не може " # "да бъде открит " # ../src/rootmenu.c:1580 #: ../src/rootmenu.c:1668 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "по подразбиране Ñе използва меню файл \"%s\", тъй като менюто, поÑочено в " "WMRootMenu, не може да бъде открито " #: ../src/rootmenu.c:1691 ../src/rootmenu.c:1767 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:Ñинтактична грешка в конфигурациÑта на главното меню \"%s\"" # tuk triabva po smisul # ^Това е от Любо # Замених "менюто Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ" на "менюто на приложениÑта", защото на другите # меÑта е преведено така. (Ð.З.) #: ../src/rootmenu.c:1855 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Менюто на приложениÑта не може да бъде заредено. Подробна Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° " "грешките ще бъде изведена на конзолата" # :::>>>>> - 'context'? # ^Това е от Любо # Щом не е ÑÑно какво е "context", може и без него. (Ð.З.) # ../src/screen.c:745 #: ../src/screen.c:747 #, c-format msgid "could not initialize graphics library context: %s" msgstr "ÐеуÑпешна Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° контекÑта на графичната библиотека: %s" # Беше така поради неуÑтановен превод на "widget set": # [набора | групата] от [приÑпоÑÐ¾Ð±Ð»ÐµÐ½Ð¸Ñ | помощни програми | инÑтрументи] # WINGs не може да бъде инициализиран # Значи ще минем и без "widget set". (Ð.З.): # ../src/screen.c:776 #: ../src/screen.c:778 msgid "could not do initialization of WINGs widget set" msgstr "неуÑпешна Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° библиотеката WINGs" # ../src/screen.c:1128 #: ../src/screen.c:1144 #, c-format msgid "could not save session state in %s" msgstr "ÑÑŠÑтоÑнието на ÑеÑиÑта не може да Ñе запише в %s" # ../src/session.c:183 ../src/wdefaults.c:583 ../src/winspector.c:447 #: ../src/session.c:183 ../src/wdefaults.c:589 ../src/winspector.c:454 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "не може да Ñе преобразува \"%s\" в булева ÑтойноÑÑ‚" # ../src/session.c:1023 #: ../src/session.c:1023 msgid "out of memory while saving session state" msgstr "не доÑтигна памет при запиÑване ÑÑŠÑтоÑнието на ÑеÑиÑта" # :::>>>> - ne razbiram smisula na 'end of memory' # ../src/session.c:1114 #: ../src/session.c:1106 msgid "end of memory while saving session state" msgstr "изчерпване на паметта при запиÑване ÑÑŠÑтоÑнието на ÑеанÑа" # (Б.Й.) # ../src/session.c:1248 #. 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:1244 msgid "connection to the session manager was lost" msgstr "връзката Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора на ÑеÑиÑта Ñе загуби" # ../src/stacking.c:73 #: ../src/stacking.c:79 msgid "could not get window list!!" msgstr "ÑпиÑъкът Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ñ†Ð¸Ñ‚Ðµ не може да бъде извлечен!!" # ../src/startup.c:197 #: ../src/startup.c:202 #, c-format msgid "internal X error: %s\n" msgstr "грешка в X Ñървъра: %s\n" # ../src/startup.c:262 #: ../src/startup.c:260 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "получен Ñигнал %i (%s) - реÑтартиране\n" # ../src/startup.c:264 #: ../src/startup.c:262 #, c-format msgid "got signal %i - restarting\n" msgstr "получен Ñигнал %i - реÑтартиране\n" # ../src/startup.c:262 #: ../src/startup.c:272 #, c-format msgid "got signal %i (%s) - rereading defaults\n" msgstr "получен Ñигнал %i (%s) - ÑтойноÑтите по подразбиране Ñе препрочитат\n" #: ../src/startup.c:274 #, c-format msgid "got signal %i - rereading defaults\n" msgstr "получен Ñигнал %i - ÑтойноÑтите по подразбиране Ñе препрочитат.\n" # ../src/startup.c:278 #: ../src/startup.c:284 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "получен Ñигнал %i (%s) - изход...\n" # ../src/startup.c:280 #: ../src/startup.c:286 #, c-format msgid "got signal %i - exiting...\n" msgstr "получен Ñигнал %i - изход...\n" # ../src/startup.c:293 #: ../src/startup.c:329 #, c-format msgid "got signal %i (%s)\n" msgstr "получен Ñигнал %i (%s)\n" # ../src/startup.c:295 #: ../src/startup.c:331 #, c-format msgid "got signal %i\n" msgstr "получен Ñигнал %i\n" # ../src/startup.c:306 #: ../src/startup.c:342 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "Ñрив при опит за Ñлед-аварийно почиÑтване. Ðезабавно прекратÑване." # ../src/startup.c:340 #. we try to restart Window Maker #: ../src/startup.c:406 msgid "trying to restart Window Maker..." msgstr "опит за реÑтартиране Уиндоу Мейкър..." # ../src/startup.c:345 #: ../src/startup.c:411 msgid "trying to start alternate window manager..." msgstr "опит за Ñтартиране на друг админиÑтратор на прозорците..." # ../src/startup.c:350 #: ../src/startup.c:417 msgid "failed to start alternate window manager. Aborting." msgstr "" "неуÑпешен опит за Ñтартиране на друг админиÑтратор на прозорците. Край на " "работата." # ../src/startup.c:352 #: ../src/startup.c:419 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "възникна критична грешка, вероÑтно дължаща Ñе на програмен дефект. ÐœÐ¾Ð»Ñ Ð¿Ð¾Ð¿ÑŠÐ»Ð½ÐµÑ‚Ðµ формулÑра от файла BUGFORM и ни уведомете " # ../src/startup.c:830 #: ../src/startup.c:894 #, 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:858 #: ../src/startup.c:922 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "" "Тъй като X-Ñървърът не поддържа XKB, то KbdModeLock е забранен автоматично." # ../src/startup.c:877 #: ../src/startup.c:941 msgid "it seems that there is already a window manager running" msgstr "изглежда вече има Ñтартиран админиÑтратор на прозорците" # [End Lyubo] # ../src/startup.c:883 #: ../src/startup.c:947 #, c-format msgid "could not manage screen %i" msgstr "не може да Ñе управлÑва екран %i" # ../src/startup.c:944 #: ../src/startup.c:1015 msgid "could not manage any screen" msgstr "не може да Ñе управлÑва който и да е екран" # ../src/switchmenu.c:114 #: ../src/switchmenu.c:137 msgid "Windows" msgstr "Прозорци" # ../src/texture.c:290 ../src/texture.c:334 #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "картинката \"%s\" използвана като текÑтура не може да бъде открита." # ../src/texture.c:296 ../src/texture.c:340 #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "не може да Ñе зареди картинката Ñ Ñ‚ÐµÐºÑтура \"%s\": %s" # ../src/texture.c:400 #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "библиотеката \"%s\" не може да бъде отворена." # ../src/texture.c:409 #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "функциÑта \"%s\" не приÑÑŠÑтва в библиотеката \"%s\"" # ../src/texture.c:416 #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "за Ñъжаление текÑтурните функции не Ñе поддържат от тази ÑиÑтема." # ../src/dialog.c:280 #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "Ðе може да Ñе запази буфер за файл Ñ ÐºÐ°Ñ€Ñ‚Ð¸Ð½ÐºÐ° " # ../src/wdefaults.c:429 #: ../src/wdefaults.c:437 #, c-format msgid "could not find icon file \"%s\"" msgstr "не може да Ñе открие иконката \"%s\"" # ../src/window.c:2715 ../src/window.c:2849 #: ../src/window.c:2942 ../src/window.c:3081 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:126 #: ../src/winmenu.c:126 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Това ще убие приложението.\n" "Ð’ÑÑка информациÑ, коÑто не е запазена, ще Ñе загуби.\n" "ÐаиÑтина ли желаете това?" # ../src/winmenu.c:275 ../src/winmenu.c:283 #: ../src/winmenu.c:272 ../src/winmenu.c:281 msgid "Set Shortcut" msgstr "ПоÑтави бърз клавиш" # ../src/winmenu.c:361 ../src/winmenu.c:407 #: ../src/winmenu.c:359 ../src/winmenu.c:404 msgid "could not create submenu for window menu" msgstr "не може да Ñе Ñъздаде подменю за менюто на прозорците" # ../src/winmenu.c:411 #: ../src/winmenu.c:408 msgid "Keep on top" msgstr "Винаги най-отгоре" # ../src/winmenu.c:416 #: ../src/winmenu.c:413 msgid "Keep at bottom" msgstr "Винаги най-отдолу" # Hide означава вÑички прозорци да Ñе ÑкриÑÑ‚. Shade значи да Ñе оÑтави видима # Ñамо заглавната лента на прозореца. И понеже на другите меÑта "hide" е # превеждано като "Ñкрий", то тук промених "Скрий" на "ЗаÑенчи". (Ð.З.) # ../src/winmenu.c:461 ../src/winmenu.c:596 #: ../src/winmenu.c:457 ../src/winmenu.c:600 msgid "Shade" msgstr "Свий" # За по-кратко "другите" вмеÑто "оÑтаналите". (Ð.З.) # ../src/winspector.c:1431 #: ../src/winmenu.c:473 msgid "Hide Others" msgstr "Скрий другите" # ../src/winmenu.c:477 #: ../src/winmenu.c:481 msgid "Resize/Move" msgstr "Oразмери/ПремеÑти" # ../src/winmenu.c:485 #: ../src/winmenu.c:489 msgid "Select" msgstr "Избери" # ../src/winmenu.c:498 #: ../src/winmenu.c:502 msgid "Attributes..." msgstr "СвойÑтва..." # ../src/winmenu.c:500 #: ../src/winmenu.c:504 msgid "Options" msgstr "ПредпочитаниÑ" # Може би обратното на "заÑенчи" е "огрей"? (Ð.З.) # ../src/winmenu.c:591 #: ../src/winmenu.c:595 msgid "Unshade" msgstr "Развий" # ../src/winspector.c:381 #: ../src/winspector.c:387 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Иконката \"%s\", определена за прозорец, не може да бъде открита" # Доколкото мога да разбера от winspector.c, Ñамо първото %s Ñъдържа името # на иконката. (Ð.З.) # ../src/winspector.c:397 #: ../src/winspector.c:404 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Иконката \"%s\" не може да бъде заредена: %s" #: ../src/winspector.c:1121 #, c-format msgid "Inspecting %s.%s" msgstr "ИнÑпектира Ñе %s.%s" #: ../src/winspector.c:1147 msgid "Click in the window you wish to inspect." msgstr "Щракнете върху прозореца, който желаете да инÑпектирате." #: ../src/winspector.c:1186 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "Когато бъде запазена, тази наÑтройка\n" "ще Ñе отнаÑÑ Ð´Ð¾ вÑички прозорци,\n" "чието ÑвойÑтво WM_CLASS има\n" "поÑочената по-горе ÑтойноÑÑ‚." # ../src/winspector.c:1221 #: ../src/winspector.c:1215 msgid "Save" msgstr "Запиши" # ../src/winspector.c:1229 #: ../src/winspector.c:1223 msgid "Apply" msgstr "Приложи" # ../src/winspector.c:1235 #: ../src/winspector.c:1229 msgid "Reload" msgstr "Презареди" # Тук Ñе определÑÑ‚ не характериÑтики на прозореца, а Ñе Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ñ‚Ð¾Ñ‡Ð½Ð¾ към # кои прозорци да Ñе прилага тази наÑтройка. Затова измених "ХарактериÑтики # на прозореца" на "За кои прозорци?" -- като че ли е по-ÑÑно от Ð±ÑƒÐºÐ²Ð°Ð»Ð½Ð¸Ñ # превод "OпределÑне на прозорец". (Ð.З.) # ../src/winspector.c:1244 ../src/winspector.c:1254 #: ../src/winspector.c:1238 ../src/winspector.c:1248 msgid "Window Specification" msgstr "За кои прозорци" # ../src/winspector.c:1245 #: ../src/winspector.c:1239 msgid "Window Attributes" msgstr "СвойÑтва на прозореца" # ../src/winspector.c:1246 #: ../src/winspector.c:1240 msgid "Advanced Options" msgstr "Варианти за напреднали потребители" # ../src/winspector.c:1247 #: ../src/winspector.c:1241 msgid "Icon and Initial Workspace" msgstr "Иконка и начално работно мÑÑто" # Като че ли за потребителите ще бъде по-ÑÑно ако вмеÑто буквалното "Специфично # за приложението" използваме "Ðтрибути на приложението"? (Ð.З.) # ../src/winspector.c:1248 #: ../src/winspector.c:1242 msgid "Application Specific" msgstr "СвойÑтва на приложението" # "Подразбиращо Ñе за вÑички прозорци" е много дълго и не Ñе побира. # Затова го Ñъкратих. (Ð.З.) # ../src/winspector.c:1262 #: ../src/winspector.c:1256 msgid "Defaults for all windows" msgstr "За вÑички прозорци" # ../src/winspector.c:1316 #: ../src/winspector.c:1310 msgid "Select window" msgstr "Избор на прозорец" # ../src/winspector.c:1329 #: ../src/winspector.c:1324 msgid "Attributes" msgstr "СвойÑтва" # Tук Ñи позволÑвам отклонение: вмеÑто "Забрани" -- "Без", защото по-нататък # "Забрани бутона за минимизиране" е много дълго и не Ñе побира. (Ð.З.) # ../src/winspector.c:1340 #: ../src/winspector.c:1335 msgid "Disable titlebar" msgstr "Без заглавна ивица" # ../src/winspector.c:1342 #: ../src/winspector.c:1337 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Да Ñе махне заглавната ивица на този прозорец.\n" "За да Ñе доÑтигне менюто Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ‡Ð½Ð¸ команди за\n" "прозорец без заглавна ивица, натиÑнете Control+Esc\n" "(или еквивалентна клавишна комбинациÑ, ако Ñте\n" "променили Ñтандартната наÑтройка)." # ../src/winspector.c:1349 #: ../src/winspector.c:1344 msgid "Disable resizebar" msgstr "Без ивицата за оразмерÑване" # ../src/winspector.c:1351 #: ../src/winspector.c:1346 msgid "Remove the resizebar of this window." msgstr "" "Маха ивицата за оразмерÑване\n" "на този прозорец." # ../src/winspector.c:1354 #: ../src/winspector.c:1349 msgid "Disable close button" msgstr "Без бутона за затварÑне" # ../src/winspector.c:1356 #: ../src/winspector.c:1351 msgid "Remove the `close window' button of this window." msgstr "" "Маха бутона за затварÑне\n" "от този прозорец." # ../src/winspector.c:1359 #: ../src/winspector.c:1354 msgid "Disable miniaturize button" msgstr "Без бутона за минимизиране" # ../src/winspector.c:1361 #: ../src/winspector.c:1356 msgid "Remove the `miniaturize window' button of the window." msgstr "" "Маха бутона за минимизиране\n" "от този прозорец." # Tук Ñи позволÑвам отклонение: вмеÑто "Забрани" -- "Без", защото по-нататък # "Забрани бутона за минимизиране" е много дълго и не Ñе побира. (Ð.З.) # ../src/winspector.c:1364 #: ../src/winspector.c:1359 msgid "Disable border" msgstr "Без рамка" # ../src/winspector.c:1366 #: ../src/winspector.c:1361 msgid "Remove the 1 pixel black border around the window." msgstr "" "Маха черната рамка ÑÑŠÑ ÑˆÐ¸Ñ€Ð¸Ð½Ð°\n" "1 пикÑел около този прозорец." # ../src/winspector.c:1369 #: ../src/winspector.c:1364 msgid "Keep on top (floating)" msgstr "Винаги отгоре (плаващ)" # ../src/winspector.c:1371 #: ../src/winspector.c:1366 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "Държи прозореца над оÑтаналите прозорци,\n" "като не позволÑва те да го закриÑÑ‚." # ../src/winspector.c:1375 #: ../src/winspector.c:1370 msgid "Keep at bottom (sunken)" msgstr "Винаги отдолу (потопен)" # ../src/winspector.c:1377 #: ../src/winspector.c:1372 msgid "Keep the window under all other windows." msgstr "" "Държи прозореца под вÑички\n" "оÑтанали прозорци." # ../src/winspector.c:1382 #: ../src/winspector.c:1377 msgid "Make window present in all workspaces." msgstr "" "Прави прозореца да приÑÑŠÑтва\n" "на вÑички работни меÑта." # ../src/winspector.c:1385 #: ../src/winspector.c:1380 msgid "Start miniaturized" msgstr "Да Ñе Ñтартира минимизиран" # ../src/winspector.c:1387 #: ../src/winspector.c:1382 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "Минимизира прозореца при вÑÑко\n" "негово първо поÑвÑване." # ../src/winspector.c:1391 #: ../src/winspector.c:1386 msgid "Start maximized" msgstr "Да Ñе Ñтартира макÑимизиран" # ../src/winspector.c:1393 #: ../src/winspector.c:1388 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "МакÑимизира прозореца при вÑÑко\n" "негово първо поÑвÑване." # ../src/winspector.c:1479 #: ../src/winspector.c:1392 msgid "Full screen maximization" msgstr "МакÑимизиране на цÑл екран" # ../src/winspector.c:1481 #: ../src/winspector.c:1394 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Прави прозореца да използва цÑлото мÑÑто на екрана при\n" "макÑимизациÑ. Заглавната ивица и ивицата за оразмерÑване\n" "ще бъдат изкарани извън екрана." # ../src/winspector.c:1414 #: ../src/winspector.c:1411 msgid "Advanced" msgstr "За напреднали" # ../src/winspector.c:1437 #: ../src/winspector.c:1428 msgid "Do not bind keyboard shortcuts" msgstr "Да не Ñе прихващат бързи клавиши" # ../src/winspector.c:1439 #: ../src/winspector.c:1430 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Уиндоу Мейкър нÑма да прихваща Ñпециалните клавишни\n" "комбинации, когато този прозорец е на фокуÑ. Това дава\n" "възможноÑÑ‚ на прозореца да получава вÑички клавишни\n" "комбинации, незавиÑимо как Ñте ги конфигурирали." # ÐÑма мÑÑто да Ñе преведе и "clicks". (Ð.З.) # ../src/winspector.c:1445 #: ../src/winspector.c:1436 msgid "Do not bind mouse clicks" msgstr "Да не Ñе прихваща мишката" # ../src/winspector.c:1447 #: ../src/winspector.c:1438 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Да не Ñе прихващат дейÑÑ‚Ð²Ð¸Ñ Ñ Ð¼Ð¸ÑˆÐºÐ°Ñ‚Ð°\n" "(напр. Alt+влачене) в прозореца." # ../src/winspector.c:1399 #: ../src/winspector.c:1443 msgid "Do not show in the window list" msgstr "Извън ÑпиÑъка на прозорците" # ../src/winspector.c:1399 #: ../src/winspector.c:1445 msgid "Do not list the window in the window list menu." msgstr "" "Прозорецът нÑма да бъде включен\n" "в менюто на ÑпиÑъка Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ñ†Ð¸Ñ‚Ðµ." # "Ðе му позволÑвай да вземе фокуÑ" е много дълго. (Ð.З.) # ../src/winspector.c:1458 #: ../src/winspector.c:1448 msgid "Do not let it take focus" msgstr "Да не получава фокуÑ" # ../src/winspector.c:1460 #: ../src/winspector.c:1450 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "Ðе позволÑва на прозореца да получи клавиатурниÑ\n" "фокуÑ, когато щтракнете върху него." # ../src/winspector.c:1452 #: ../src/winspector.c:1454 msgid "Keep inside screen" msgstr "Винаги в рамките на екрана" # ../src/winspector.c:1454 #: ../src/winspector.c:1456 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Ðе позволÑва на прозореца да бъде\n" "премеÑтен изцÑло извън екрана.\n" # За по-кратко "другите" вмеÑто "оÑтаналите". (Ð.З.) # ../src/winspector.c:1431 #: ../src/winspector.c:1460 msgid "Ignore 'Hide Others'" msgstr "Да Ñе игнорира \"Скрий другите\"" # ../src/winspector.c:1433 #: ../src/winspector.c:1462 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "Ðе Ñкрива прозореца при получаване на\n" "командата \"Скрий другите\"." # ../src/winspector.c:1464 #: ../src/winspector.c:1466 msgid "Ignore 'Save Session'" msgstr "Да не Ñе запиÑва в ÑеÑиÑта" # ../src/winspector.c:1466 #: ../src/winspector.c:1468 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Ðе запазва Ñъответното приложение в ÑÑŠÑтоÑнието\n" "на ÑеÑиÑта, така че то нÑма да бъде реÑтартирано\n" "от админиÑтратора на ÑеÑиÑта заедно Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ‚Ðµ\n" "Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ Ñтартиране на Уиндоу Мейкър." # [ Start translation # Translated from English by (-:Stinger®:-) # Преведено от ÐнглийÑки от (-:Stinger®:-) # corrected 31.03.2000 21:16 local time by Slaff # updated .......... # # Съкратих "на приложение", защото нÑма мÑÑто (Ð.З.) # ../src/winspector.c:1472 #: ../src/winspector.c:1474 msgid "Emulate application icon" msgstr "Да Ñе емулира иконка на приложението" # ../src/winspector.c:1474 #: ../src/winspector.c:1476 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Прави този прозорец да Ñе държи като приложение, което\n" "дава доÑтатъчно Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° Уиндоу Мейкър, че да може\n" "да Ñе направи иконка на приложението, коÑто може да\n" "Ñе Ñкачва на дока." # ../src/winspector.c:1487 #: ../src/winspector.c:1482 msgid "Disable language button" msgstr "Без бутон КИР/ЛÐТ" # ../src/winspector.c:1489 #: ../src/winspector.c:1484 msgid "Remove the `toggle language' button of the window." msgstr "Маха бутона КИР/ЛÐТ от прозореца." # ../src/winspector.c:1506 #: ../src/winspector.c:1501 msgid "Miniwindow Image" msgstr "Изглед на минипрозорчето" # ../src/winspector.c:1540 #: ../src/winspector.c:1528 msgid "Icon filename:" msgstr "Файл за иконката:" # ../src/winspector.c:1552 #: ../src/winspector.c:1541 msgid "Ignore client supplied icon" msgstr "Да Ñе игнорира клиентÑката иконка" # ../src/winspector.c:1559 #: ../src/winspector.c:1548 msgid "Initial Workspace" msgstr "Ðачално работно мÑÑто" # ../src/winspector.c:1561 #: ../src/winspector.c:1550 msgid "The workspace to place the window when it'sfirst shown." msgstr "" "Работното мÑÑто, където да Ñе помеÑти\n" "прозореца при първото му поÑвÑване." # никъде по-Ñпециално # ../src/winspector.c:1567 #: ../src/winspector.c:1556 msgid "Nowhere in particular" msgstr "Ðикъде по-Ñпециално" # ../src/winspector.c:1585 #: ../src/winspector.c:1574 msgid "Application Attributes" msgstr "СвойÑтва на приложението" # ../src/winspector.c:1596 #: ../src/winspector.c:1585 msgid "Start hidden" msgstr "Да Ñе Ñтартира Ñкрито" # ../src/winspector.c:1598 #: ../src/winspector.c:1587 msgid "Automatically hide application when it's started." msgstr "Ðвтоматично Ñкрива приложението при Ñтартиране." # ../src/winspector.c:1601 #: ../src/winspector.c:1590 msgid "No application icon" msgstr "Без иконка на приложението" # ../src/winspector.c:1603 #: ../src/winspector.c:1592 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "ЗабранÑва иконката на това приложение.\n" "Забележете, че повече нÑма да може да го Ñкачвате\n" "на дока, а вÑички иконки на това приложение,\n" "които вече Ñа Ñкачени, ще преÑтанат да работÑÑ‚\n" "правилно." # ../src/winspector.c:1601 #: ../src/winspector.c:1598 msgid "Shared application icon" msgstr "Споделена иконка на приложението" #: ../src/winspector.c:1600 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "Събира вÑички иконки на различни \n" "екземлÑри на това приложение в една.\n" # ../src/workspace.c:110 ../src/workspace.c:111 ../src/workspace.c:806 #: ../src/workspace.c:107 ../src/workspace.c:108 ../src/workspace.c:894 #, c-format msgid "Workspace %i" msgstr "Работно мÑÑто %i" # ../src/workspace.c:863 #: ../src/workspace.c:944 msgid "Workspaces" msgstr "Работни меÑта" # ../src/workspace.c:865 #: ../src/workspace.c:946 msgid "could not create Workspace menu" msgstr "не може да Ñе направи меню на работните меÑта" # ../src/workspace.c:872 #: ../src/workspace.c:953 msgid "New" msgstr "Ðово" # ../src/workspace.c:873 #: ../src/workspace.c:954 msgid "Destroy Last" msgstr "Унищожи поÑледното" #~ msgid "Sound" #~ msgstr "Звук" # ../src/dock.c:1029 ../src/dock.c:3363 #~ msgid "Allow Lowering" #~ msgstr "ПозволÑва понижаване" # ../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 "липÑващ ключ на речник" # continue from here # ../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. If it's a string, try " #~ "enclosing it with \"." #~ msgstr "" #~ "очакваше Ñе низ, речник, данни или маÑив. Ðко това е низ пробвайте да го " #~ "оградите Ñ Ð´Ð²Ð¾Ð¹Ð½Ð¸ кавички (\")." # ../src/proplist.c:466 #~ msgid "extra data after end of file" #~ msgstr "излишни данни Ñлед ÐºÑ€Ð°Ñ Ð½Ð° файла" # ../src/screen.c:464 #~ msgid "error making logo image for panel:%s" #~ msgstr "грешка при подготовка на логото за панела: %s" # ../src/winspector.c:1525 #~ msgid "Update" #~ msgstr "Обнови" # ../src/xutil.c:228 #~ msgid "invalid data in selection" #~ msgstr "неправилни данни в избора" #~ msgid "Keep Attracted Icons" #~ msgstr "Задържай привлечените иконки" # [ start translation # Translated by: Boris Jordanov #~ msgid "wrealloc() failed while trying to add menu item" #~ msgstr "неуÑпех при опит за добавÑне на подточка в меню" WindowMaker-0.95.5/po/zh_TW.po0000644000175000017500000015270312214432632013002 00000000000000# Window Maker PO file for Traditional Chinese. # Copyright (C) 1999-2001 Free Software Foundation, Inc. # Li Wei Jih , 1999, 2005. # Minor modifications by Anthony Fok , 2001. msgid "" msgstr "" "Project-Id-Version: Window Maker-0.91.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-01-06 09:28+0800\n" "PO-Revision-Date: 2005-01-11 17:45+0800\n" "Last-Translator: Li Wei Jih \n" "Language-Team: chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../src/appicon.c:415 ../src/dialog.c:295 ../src/dock.c:3335 #: ../src/dockedapp.c:231 ../src/main.c:271 ../src/rootmenu.c:1854 #: ../src/winspector.c:394 ../src/winspector.c:411 msgid "Error" msgstr "錯誤" #: ../src/appicon.c:416 msgid "Could not open specified icon file" msgstr "無法開啟指定的圖示檔" #: ../src/appicon.c:417 ../src/dialog.c:192 ../src/dialog.c:295 #: ../src/dialog.c:725 ../src/dialog.c:1796 ../src/dock.c:515 #: ../src/dock.c:523 ../src/dock.c:547 ../src/dock.c:3336 #: ../src/dockedapp.c:232 ../src/dockedapp.c:427 ../src/main.c:271 #: ../src/rootmenu.c:1858 ../src/winspector.c:395 ../src/winspector.c:412 msgid "OK" msgstr "確定" #: ../src/appicon.c:445 ../src/dock.c:244 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " æœƒè¢«å¼·è¿«çµæŸã€‚\n" "任何未儲存的改變將會éºå¤±ã€‚\n" "請確èªã€‚" #: ../src/appicon.c:453 ../src/dock.c:263 ../src/winmenu.c:124 msgid "Kill Application" msgstr "çµæŸæ‡‰ç”¨ç¨‹å¼" #: ../src/appicon.c:454 ../src/dock.c:264 ../src/winmenu.c:126 msgid "Yes" msgstr "是" #: ../src/appicon.c:454 ../src/dock.c:264 ../src/winmenu.c:126 msgid "No" msgstr "å¦" #: ../src/appicon.c:484 ../src/dock.c:1168 ../src/dock.c:3501 msgid "Unhide Here" msgstr "在此顯ç¾" #: ../src/appicon.c:485 ../src/appicon.c:510 ../src/dock.c:1170 #: ../src/dock.c:1172 ../src/dock.c:3513 ../src/winmenu.c:461 msgid "Hide" msgstr "éš±è—" #: ../src/appicon.c:486 msgid "Set Icon..." msgstr "設定圖示..." #: ../src/appicon.c:487 ../src/dock.c:1176 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 ../src/winmenu.c:508 msgid "Kill" msgstr "çµæŸ" #: ../src/appicon.c:508 ../src/dock.c:3511 msgid "Unhide" msgstr "顯ç¾" #: ../src/application.c:405 #, c-format msgid "recreating missing icon '%s'" msgstr "é‡å»ºéºå¤±çš„圖示 '%s'" #: ../src/defaults.c:933 ../src/defaults.c:1095 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "æ•´é«”é è¨­è³‡æ–™åº«çš„定義域 %s (%s) å·²æå£žï¼" #: ../src/defaults.c:938 #, c-format msgid "could not load domain %s from global defaults database" msgstr "無法從整體é è¨­è³‡æ–™åº«è¼‰å…¥å®šç¾©åŸŸ %s" #: ../src/defaults.c:990 ../src/defaults.c:1005 #, c-format msgid "invalid global menu file %s" msgstr "全域é¸å–®æª”案 %s 無效" #: ../src/defaults.c:1033 ../src/startup.c:762 ../src/startup.c:780 #: ../src/startup.c:787 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "無法從é è¨­è³‡æ–™åº«è®€å–定義域 \"%s\"" #: ../src/defaults.c:1079 ../src/defaults.c:1184 ../src/defaults.c:1225 #: ../src/defaults.c:1281 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "é è¨­è³‡æ–™åº«çš„定義域 %s (%s) å·²æå£žï¼" #: ../src/defaults.c:1084 ../src/defaults.c:1204 ../src/defaults.c:1261 #: ../src/defaults.c:1291 #, c-format msgid "could not load domain %s from user defaults database" msgstr "無法從使用者é è¨­è³‡æ–™åº«è¼‰å…¥å®šç¾©åŸŸ %s" #: ../src/defaults.c:1114 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "無法從整體é è¨­è³‡æ–™åº« (%2$s) 載入定義域 %1$s" #: ../src/defaults.c:1251 ../src/screen.c:419 #, c-format msgid "could not load logo image for panels: %s" msgstr "ç„¡æ³•è¼‰å…¥é¢æ¿çš„æ¨™è­˜å½±åƒ: %s" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1500 ../src/defaults.c:1639 ../src/defaults.c:1765 #: ../src/defaults.c:2243 ../src/defaults.c:2260 ../src/defaults.c:2305 #: ../src/defaults.c:2352 ../src/defaults.c:2825 ../src/wdefaults.c:571 #: ../src/wdefaults.c:604 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "key \"%s\" çš„é¸é …æ ¼å¼éŒ¯èª¤ã€‚應為 %s。" #: ../src/defaults.c:1502 ../src/defaults.c:1583 ../src/defaults.c:1613 #: ../src/defaults.c:1644 ../src/defaults.c:1657 ../src/defaults.c:1672 #: ../src/defaults.c:1686 ../src/defaults.c:1770 ../src/defaults.c:1782 #: ../src/defaults.c:2248 ../src/defaults.c:2265 ../src/defaults.c:2278 #: ../src/defaults.c:2310 ../src/defaults.c:2326 ../src/defaults.c:2357 #: ../src/defaults.c:2444 ../src/defaults.c:2830 ../src/defaults.c:2841 #, c-format msgid "using default \"%s\" instead" msgstr "改用é è¨­ \"%s\"" #: ../src/defaults.c:1533 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "key \"%s\" çš„é¸é …值錯誤。應為 %s " #: ../src/defaults.c:1578 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "ç„¡æ³•è½‰æ› key \"%2$s\" çš„ \"%1$s\" æˆç‚º boolean" #: ../src/defaults.c:1610 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "ç„¡æ³•è½‰æ› key \"%2$s\" çš„ \"%1$s\" æˆç‚ºæ•´æ•¸" #: ../src/defaults.c:1652 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "key \"%s\" 的陣列元素數目錯誤。" #: ../src/defaults.c:1667 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "key \"%s\" 的值錯誤。應為座標。" #: ../src/defaults.c:1682 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "無法為 \"%s\" 轉æ›é™£åˆ—æˆç‚ºæ•´æ•¸ã€‚" #: ../src/defaults.c:1715 #, c-format msgid "Wrong value for key \"%s\". Should be an array." msgstr "key \"%s\" 的值錯誤。應為陣列。" #: ../src/defaults.c:1893 ../src/defaults.c:1925 ../src/defaults.c:1941 #: ../src/defaults.c:1970 ../src/defaults.c:1993 ../src/defaults.c:2046 #: ../src/defaults.c:2086 ../src/defaults.c:2124 ../src/defaults.c:2140 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" 䏿˜¯æœ‰æ•ˆçš„é¡è‰²å" #: ../src/defaults.c:1906 ../src/defaults.c:1958 msgid "bad number of arguments in gradient specification" msgstr "æ¼¸å±¤è¦æ ¼ä¸­å¼•數數目錯誤" #: ../src/defaults.c:2019 msgid "too few arguments in multicolor gradient specification" msgstr "å¤šè‰²æ¼¸å±¤è¦æ ¼ä¸­å¼•數太少" #: ../src/defaults.c:2113 msgid "bad number of arguments in textured gradient specification" msgstr "æè³ªæ¼¸å±¤è¦æ ¼ä¸­å¼•數數目錯誤" #: ../src/defaults.c:2156 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "漸層 (tgradient) æè³ª \"%s\" ä¸é€æ˜Žå€¼éŒ¯èª¤ã€‚應該是 [0..255]" #: ../src/defaults.c:2216 #, c-format msgid "could not initialize library %s" msgstr "無法啟始函å¼åº«: %s" #: ../src/defaults.c:2219 #, c-format msgid "could not find function %s::%s" msgstr "找ä¸åˆ°å‡½å¼ %s::%s" #: ../src/defaults.c:2226 #, c-format msgid "invalid texture type %s" msgstr "æè³ªåž‹æ…‹ %s 無效" #: ../src/defaults.c:2273 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "key \"%s\" çš„æè³ªè¦æ ¼éŒ¯èª¤" #: ../src/defaults.c:2322 msgid "Wrong type for workspace background. Should be a texture type." msgstr "工作å€èƒŒæ™¯åž‹æ…‹éŒ¯èª¤ã€‚應為æè³ªåž‹æ…‹ã€‚" #: ../src/defaults.c:2370 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "å·¥ä½œå€ %i 背景型態錯誤。應為æè³ªã€‚" #: ../src/defaults.c:2412 msgid "could not load any usable font!!!" msgstr "無法載入任何å¯ç”¨å­—åž‹!!!" #: ../src/defaults.c:2439 #, c-format msgid "could not get color for key \"%s\"" msgstr "無法å–å¾— key \"%s\" 的色彩" #: ../src/defaults.c:2497 ../src/rootmenu.c:531 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s: éµä¿®æ­£ \"%s\" 無效" #: ../src/defaults.c:2509 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: éµç›¤æ·å¾‘è¦æ ¼ \"%s\" 無效" #: ../src/defaults.c:2516 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s: æ·å¾‘ \"%s\" çš„éµç„¡æ•ˆ" #: ../src/defaults.c:2541 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: ä¿®æ­£éµ %s 䏿­£ç¢º" #: ../src/defaults.c:2573 #, c-format msgid "could not load image in option %s: %s" msgstr "ç„¡æ³•è¼‰å…¥å½±åƒæ–¼é¸é … %s: %s" #: ../src/defaults.c:2690 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "ç„¡æ³•é–‹å•Ÿæ˜ åƒæª” \"%s\"" #: ../src/defaults.c:2693 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" 䏿˜¯æœ‰æ•ˆçš„æ˜ åƒæª”å" #: ../src/defaults.c:2696 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "讀入 \"%s\" æ˜ åƒæª”時記憶體ä¸è¶³" #: ../src/defaults.c:2735 ../src/defaults.c:2768 msgid "bad number of arguments in cursor specification" msgstr "æ¸¸æ¨™è¦æ ¼ä¸­å¼•數數目錯誤" #: ../src/defaults.c:2751 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "䏿˜Žçš„內建游標å稱 \"%s\"" #: ../src/defaults.c:2778 ../src/defaults.c:2790 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "ç„¡æ³•æ‰¾åˆ°æ¸¸æ¨™æ˜ åƒæª” \"%s\"" #: ../src/defaults.c:2837 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "key \"%s\" çš„æ¸¸æ¨™è¦æ ¼éŒ¯èª¤" #: ../src/defaults.c:2922 msgid "could not render texture for icon background" msgstr "無法表ç¾åœ–示背景的æè³ª" # y, c-format #: ../src/defaults.c:3542 ../src/defaults.c:3617 #, c-format msgid "Invalid arguments for option \"%s\"" msgstr "é¸é … \"%s\"引數無效" #: ../src/defaults.c:3549 ../src/defaults.c:3624 #, c-format msgid "Could not find image \"%s\" for option \"%s\"" msgstr "無法找到é¸é … \"%2$s\"çš„å½±åƒ \"%1$s\"" #: ../src/defaults.c:3555 ../src/defaults.c:3632 #, c-format msgid "Could not load image \"%s\" for option \"%s\"" msgstr "無法載入é¸é … \"%2$s\"çš„å½±åƒ \"%1$s\"" #: ../src/defaults.c:3567 msgid "Invalid split sizes for SwitchPanel back image." msgstr "「切æ›é¢ç‰ˆã€åº•圖的分割大å°ç„¡æ•ˆã€‚" #: ../src/defaults.c:3640 #, c-format msgid "Invalid number of arguments for option \"%s\"" msgstr "é¸é … \"%s\"的引數數目錯誤" #: ../src/dialog.c:147 msgid "Save workspace state" msgstr "儲存工作å€ç‹€æ…‹" #: ../src/dialog.c:192 ../src/dialog.c:732 ../src/dock.c:547 #: ../src/dockedapp.c:432 ../src/rootmenu.c:198 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 msgid "Cancel" msgstr "å–æ¶ˆ" #: ../src/dialog.c:290 msgid "Could not open directory " msgstr "無法開啟目錄" #: ../src/dialog.c:345 msgid "Could not load image file " msgstr "ç„¡æ³•è¼‰å…¥å½±åƒæª”" #: ../src/dialog.c:659 msgid "Directories" msgstr "目錄" #: ../src/dialog.c:668 msgid "Icons" msgstr "圖示" #: ../src/dialog.c:701 msgid "Preview" msgstr "é è¦½" #: ../src/dialog.c:714 msgid "File Name:" msgstr "檔å:" #: ../src/dialog.c:738 msgid "Choose File" msgstr "é¸å–檔案" #: ../src/dialog.c:757 ../src/dialog.c:759 msgid "Icon Chooser" msgstr "圖示é¸å–器" #: ../src/dialog.c:1196 ../src/dialog.c:1304 #, c-format msgid "Version %s" msgstr "版本 %s" #: ../src/dialog.c:1302 msgid "Window Manager for X" msgstr "X 底下的視窗管ç†å“¡" #: ../src/dialog.c:1325 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "使用 visual 0x%x: %s %ibpp " #: ../src/dialog.c:1333 msgid "(32 thousand colors)\n" msgstr "(三è¬äºŒåƒè‰²)\n" #: ../src/dialog.c:1336 msgid "(64 thousand colors)\n" msgstr "(å…­è¬å››åƒè‰²)\n" #: ../src/dialog.c:1340 msgid "(16 million colors)\n" msgstr "(一åƒå…­ç™¾è¬è‰²)\n" #: ../src/dialog.c:1343 #, c-format msgid "(%d colors)\n" msgstr "(%d 色)\n" #: ../src/dialog.c:1353 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "å·²é…置記憶體總計: %i kB。使用中憶體總計: %i kB。\n" #: ../src/dialog.c:1360 msgid "Supported image formats: " msgstr "支æ´å½±åƒæ ¼å¼: " #: ../src/dialog.c:1367 msgid "" "\n" "Additional support for: " msgstr "" "\n" "é¡å¤–支æ´: " #: ../src/dialog.c:1384 msgid " and " msgstr " å’Œ " #: ../src/dialog.c:1394 msgid "" "\n" "Sound disabled" msgstr "" "\n" "音效未啟動" #: ../src/dialog.c:1396 msgid "" "\n" "Sound enabled" msgstr "" "\n" "音效已啟動" #: ../src/dialog.c:1401 msgid ", VirtualDesktop enabled" msgstr ",虛擬桌é¢å·²å•Ÿå‹•" #: ../src/dialog.c:1403 msgid ", VirtualDesktop disabled" msgstr "ï¼Œè™›æ“¬æ¡Œé¢æœªå•Ÿå‹•" #: ../src/dialog.c:1407 msgid "\n" msgstr "\n" #: ../src/dialog.c:1409 msgid "Solaris " msgstr "Solaris " #: ../src/dialog.c:1411 msgid "Xinerama: " msgstr "Xinerama: " #: ../src/dialog.c:1445 msgid "Info" msgstr "資訊" #: ../src/dialog.c:1469 msgid "Merry Christmas!" msgstr "è–誕快樂ï¼" #: ../src/dialog.c:1539 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" #: ../src/dialog.c:1563 msgid "Legal" msgstr "法律" #: ../src/dialog.c:1719 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "無法開啟崩潰å°è©±é¢æ¿çš„連線。放棄中。" #: ../src/dialog.c:1745 msgid "Fatal error" msgstr "åš´é‡éŒ¯èª¤" #: ../src/dialog.c:1756 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker 收到訊號 %i\n" "(%s)." #: ../src/dialog.c:1759 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker 收到訊號 %i。" #: ../src/dialog.c:1768 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" "這個嚴é‡éŒ¯èª¤å¯èƒ½æ˜¯å› ç‚ºç¨‹å¼éŒ¯èª¤æ‰€è‡´ã€‚請填寫附帶的 BUGFORM ä¸¦å‘ " "bugs@windowmaker.info æå‡ºå ±å‘Šã€‚" #: ../src/dialog.c:1777 msgid "What do you want to do now?" msgstr "ä½ ç¾åœ¨è¦åšä»€éº¼ï¼Ÿ" #: ../src/dialog.c:1783 msgid "Select action" msgstr "é¸å–動作" #: ../src/dialog.c:1784 msgid "Abort and leave a core file" msgstr "放棄並留下 core 檔" #: ../src/dialog.c:1785 msgid "Restart Window Maker" msgstr "釿–°å•Ÿå‹• Window Maker" #: ../src/dialog.c:1786 msgid "Start alternate window manager" msgstr "啟動å¦ä¸€å¥—視窗管ç†å“¡" #: ../src/dialog.c:1964 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop environment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" #: ../src/dialog.c:1987 msgid "About GNUstep" msgstr "有關 GNUstep" #: ../src/dock.c:193 #, c-format msgid "Type the name for workspace %i:" msgstr "è¼¸å…¥å·¥ä½œå€ %i å稱:" #: ../src/dock.c:194 ../src/dock.c:1132 ../src/dock.c:1135 ../src/dock.c:3419 msgid "Rename Workspace" msgstr "å·¥ä½œå€æ›´å" #: ../src/dock.c:509 ../src/dock.c:517 msgid "Warning" msgstr "警告" #: ../src/dock.c:510 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "有些圖示無法變æˆç„¡æ‰€ä¸åœ¨ã€‚請確èªç„¡å…¶ä»–圖示åœé åœ¨å…¶ä»–工作å€çš„相åŒä½ç½®" "且æŸäº›å·¥ä½œå€çš„è¿´ç´‹é‡æœªæ»¿ã€‚" #: ../src/dock.c:518 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "圖示無法變æˆç„¡æ‰€ä¸åœ¨ã€‚請確èªç„¡å…¶ä»–圖示åœé åœ¨å…¶ä»–工作å€çš„相åŒä½ç½®" "且æŸäº›å·¥ä½œå€çš„è¿´ç´‹é‡æœªæ»¿ã€‚" #: ../src/dock.c:545 msgid "Workspace Clip" msgstr "工作å€è¿´ç´‹é‡" #: ../src/dock.c:546 msgid "All selected icons will be removed!" msgstr "所有é¸å–的圖示會被刪除ï¼" #: ../src/dock.c:598 ../src/dock.c:1147 ../src/dock.c:1149 ../src/dock.c:3455 msgid "Keep Icon" msgstr "ä¿æŒåœ–示" #: ../src/dock.c:599 ../src/dock.c:2139 ../src/dock.c:2276 msgid "Type the command used to launch the application" msgstr "輸入用來啟動應用程å¼çš„命令" #: ../src/dock.c:954 #, c-format msgid "could not launch application %s\n" msgstr "ç„¡æ³•å•Ÿå‹•æ‡‰ç”¨ç¨‹å¼ %s\n" #: ../src/dock.c:1010 msgid "could not create workspace submenu for Clip menu" msgstr "無法為迴紋é‡é¸å–®å»ºç«‹å·¥ä½œå€å‰¯é¸å–®" #: ../src/dock.c:1069 msgid "could not create options submenu for Clip menu" msgstr "無法為迴紋é‡é¸å–®å»ºç«‹é¸é …副é¸å–®" #: ../src/dock.c:1073 ../src/dock.c:1121 msgid "Keep on Top" msgstr "ä¿æŒåœ¨æœ€ä¸Šå±¤" #: ../src/dock.c:1079 msgid "Collapsed" msgstr "折疊" #: ../src/dock.c:1085 msgid "Autocollapse" msgstr "自動折疊" #: ../src/dock.c:1091 msgid "Autoraise" msgstr "自動å‡é™" #: ../src/dock.c:1097 msgid "Autoattract Icons" msgstr "自動å¸å¼•圖示" #: ../src/dock.c:1127 msgid "Clip Options" msgstr "è¿´ç´‹é‡é¸é …" #: ../src/dock.c:1137 msgid "Selected" msgstr "å·²é¸å–" #: ../src/dock.c:1142 ../src/dock.c:1145 ../src/dock.c:3446 msgid "Select All Icons" msgstr "é¸å–所有圖示" #: ../src/dock.c:1151 ../src/dock.c:1153 ../src/dock.c:3463 msgid "Move Icon To" msgstr "移動圖示至" #: ../src/dock.c:1158 ../src/dock.c:1161 ../src/dock.c:3474 msgid "Remove Icon" msgstr "刪除圖示" #: ../src/dock.c:1163 msgid "Attract Icons" msgstr "å¸å¼•圖示" #: ../src/dock.c:1166 msgid "Launch" msgstr "啟動" #: ../src/dock.c:1174 msgid "Settings..." msgstr "設定..." #: ../src/dock.c:1538 ../src/dock.c:1645 #, c-format msgid "bad value in docked icon state info %s" msgstr "åœé çš„圖示狀態資訊 %s 值䏿­£ç¢º" #: ../src/dock.c:1653 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "åœé çš„圖示ä½ç½® %i,%i 值䏿­£ç¢º" #: ../src/dock.c:1673 #, c-format msgid "bad value in dock state info:%s" msgstr "åœé å€çš„狀態資訊 %s 值䏿­£ç¢º" #: ../src/dock.c:1923 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "太多圖示存放在åœé å€ã€‚忽略ä¸é©ç•¶çš„" #. icon->forced_dock = 1; #: ../src/dock.c:2138 ../src/dock.c:2275 msgid "Dock Icon" msgstr "åœé åœ–示" #: ../src/dock.c:3333 #, c-format msgid "Could not execute command \"%s\"" msgstr "無法執行命令 \"%s\"" #: ../src/dock.c:3425 msgid "Toggle Omnipresent" msgstr "切æ›ç„¡æ‰€ä¸åœ¨" #: ../src/dock.c:3430 ../src/winmenu.c:414 ../src/winspector.c:1383 msgid "Omnipresent" msgstr "無所ä¸åœ¨" #: ../src/dock.c:3444 msgid "Unselect All Icons" msgstr "å–æ¶ˆé¸å–所有圖示" #: ../src/dock.c:3453 msgid "Keep Icons" msgstr "ä¿æŒåœ–示" #: ../src/dock.c:3461 msgid "Move Icons To" msgstr "移動圖示至" #: ../src/dock.c:3472 msgid "Remove Icons" msgstr "刪除圖示" #: ../src/dock.c:3503 msgid "Bring Here" msgstr "帶至這ç†" #: ../src/dockedapp.c:150 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "無法找到圖示 %s,用於åœé çš„æ‡‰ç”¨ç¨‹å¼" #: ../src/dockedapp.c:230 #, c-format msgid "Could not open specified icon file: %s" msgstr "無法開啟指定的圖示檔: %s" #: ../src/dockedapp.c:232 msgid "Ignore" msgstr "忽略" #: ../src/dockedapp.c:334 msgid "Start when Window Maker is started" msgstr "ç•¶ Window Maker 啟動時啟動" #: ../src/dockedapp.c:341 msgid "Lock (prevent accidental removal)" msgstr "鎖定 (防止æ„外刪除)" #: ../src/dockedapp.c:345 msgid "Application path and arguments" msgstr "應用程å¼è·¯å¾‘與引數" #: ../src/dockedapp.c:358 msgid "Command for middle-click launch" msgstr "滑鼠中éµé–‹å•Ÿçš„程å¼" #: ../src/dockedapp.c:372 #, c-format msgid "%s will be replaced with current selection" msgstr "%s 會被目å‰é¸å®šç‰©å–代" #: ../src/dockedapp.c:377 msgid "Command for files dropped with DND" msgstr "DND 放置檔案的命令" #: ../src/dockedapp.c:391 #, c-format msgid "%d will be replaced with the file name" msgstr "%d 會被檔åå–代" #: ../src/dockedapp.c:395 msgid "DND support was not compiled in" msgstr "未編譯入 DND 支æ´" #: ../src/dockedapp.c:400 msgid "Icon Image" msgstr "圖示影åƒ" #: ../src/dockedapp.c:414 ../src/winspector.c:1521 msgid "Browse..." msgstr "ç€è¦½..." #: ../src/dockedapp.c:475 msgid "Docked Application Settings" msgstr "åœé çš„æ‡‰ç”¨ç¨‹å¼è¨­å®š" #: ../src/framewin.c:647 ../src/framewin.c:742 ../src/menu.c:463 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "ç„¡æ³•è¡¨ç¾æè³ª: %s" #: ../src/framewin.c:670 ../src/framewin.c:681 ../src/framewin.c:697 #: ../src/framewin.c:708 ../src/framewin.c:715 ../src/framewin.c:722 #: ../src/icon.c:360 ../src/menu.c:492 #, c-format msgid "error rendering image:%s" msgstr "表ç¾å½±åƒéŒ¯èª¤: %s" #: ../src/framewin.c:775 #, c-format msgid "error rendering image: %s" msgstr "表ç¾å½±åƒéŒ¯èª¤: %s" #: ../src/icon.c:239 ../src/wdefaults.c:443 #, c-format msgid "error loading image file \"%s\": %s" msgstr "è¼‰å…¥å½±åƒæª”錯誤 \"%s\": %s" #: ../src/icon.c:503 ../src/icon.c:512 #, c-format msgid "could not create directory %s" msgstr "無法建立目錄 %s" #: ../src/icon.c:782 #, c-format msgid "could not find default icon \"%s\"" msgstr "無法載入é è¨­åœ–示 \"%s\"" #: ../src/icon.c:788 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "無法載入é è¨­åœ–示 \"%s\":%s" #: ../src/main.c:220 msgid "failed to restart Window Maker." msgstr "釿–°å•Ÿå‹• Window Maker 失敗。" #: ../src/main.c:223 #, c-format msgid "could not exec %s" msgstr "無法執行 %s" #: ../src/main.c:269 msgid "Could not execute command: " msgstr "無法執行命令: " #: ../src/main.c:426 #, c-format msgid "%s aborted.\n" msgstr "%s 放棄。\n" #: ../src/main.c:437 #, c-format msgid "Usage: %s [options]\n" msgstr "使用法: %s [é¸é …]\n" #: ../src/main.c:438 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:440 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tè¦ä½¿ç”¨çš„ display" #: ../src/main.c:442 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tä¸é å…ˆè™•ç†è¨­å®šæª”" #: ../src/main.c:444 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tä¸è¦é–‹å•Ÿç¨‹å¼åœé å€" #: ../src/main.c:445 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tä¸è¦é–‹å•Ÿå·¥ä½œå€è¿´ç´‹é‡" #: ../src/main.c:446 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tä¸è¦è‡ªå‹•啟動應用程å¼" #: ../src/main.c:447 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tä¸è¦å›žå­˜å·²å„²å­˜æ™‚段" #: ../src/main.c:449 msgid " --locale locale\tlocale to use" msgstr " --locale locale\t使用的 locale" #: ../src/main.c:451 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" " --create-stdcmap\t在虛擬色彩畫é¢ä¸­å»ºç«‹æ¨™æº–è‰²å½©å°æ˜ æç¤º" #: ../src/main.c:452 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\t所欲使用的 visual 之 visualid" #: ../src/main.c:453 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tä¸è¦æ›´æ–°æˆ–儲存設定檔" #: ../src/main.c:454 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr " --no-polling\t\tä¸è¦å®šæ™‚檢查設定檔更新" #: ../src/main.c:456 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\té–‹å•ŸåŒæ­¥é¡¯ç¤ºæ¨¡å¼" #: ../src/main.c:458 msgid " --version\t\tprint version and exit" msgstr " --version\t\tå°å‡ºç‰ˆæœ¬ç·¨è™Ÿä¸¦é›¢é–‹" #: ../src/main.c:459 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\t顯示本說明訊æ¯" #: ../src/main.c:473 #, 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" #: ../src/main.c:478 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "無法找到使用者 GNUstep 目錄 (%s)。" #: ../src/main.c:481 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "建立 GNUstep 目錄時發生錯誤,請確定你已正確地安è£" "Window Maker 且執行 wmaker.inst" #: ../src/main.c:484 #, c-format msgid "%s directory created with default configuration." msgstr "%s 目錄已以é è¨­è¨­å®šå»ºç«‹ã€‚" #: ../src/main.c:506 ../src/main.c:511 #, c-format msgid "%s:could not execute initialization script" msgstr "%s: 啟始手稿無法執行" #: ../src/main.c:533 ../src/main.c:538 #, c-format msgid "%s:could not execute exit script" msgstr "%s: 離開手稿無法執行" #: ../src/main.c:622 ../src/main.c:722 ../src/main.c:730 ../src/main.c:738 #: ../src/main.c:758 #, c-format msgid "too few arguments for %s" msgstr "%s 的引數太少" #: ../src/main.c:742 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "visualid çš„å€¼ä¸æ­£ç¢º: \"%s\"" # y, c-format #: ../src/main.c:766 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: 引數 '%s' 無效\n" #: ../src/main.c:767 #, c-format msgid "Try '%s --help' for more information\n" msgstr "試用 '%s --help' 來ç²å¾—更多資訊\n" #: ../src/main.c:802 msgid "X server does not support locale" msgstr "X 伺æœå™¨ä¸æ”¯æ´ locale" #: ../src/main.c:806 msgid "cannot set locale modifiers" msgstr "無法設定 locale modifiers" #: ../src/main.c:822 #, c-format msgid "could not open display \"%s\"" msgstr "無法開啟 display \"%s\"" #: ../src/menu.c:1273 msgid "could not grab keyboard" msgstr "無法抓å–éµç›¤" #: ../src/menu.c:2612 #, c-format msgid "bad value in menus state info:%s" msgstr "é¸å–®çš„狀態資訊 %s 值䏿­£ç¢º" #: ../src/misc.c:65 #, c-format msgid "could not define value for %s for cpp" msgstr "無法定義 cpp çš„ %s 的值" #: ../src/misc.c:95 #, c-format msgid "could not get password entry for UID %i" msgstr "無法å–å¾— UID %i 的密碼記錄" #: ../src/misc.c:120 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "你的機器設定錯誤。HOSTNAME 設為 %s" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "你的機器設定錯誤。HOST 設為 %s" #: ../src/misc.c:621 msgid "Program Arguments" msgstr "程å¼å¼•數" #: ../src/misc.c:622 msgid "Enter command arguments:" msgstr "輸入命令引數:" #: ../src/misc.c:736 ../src/misc.c:874 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "展開 \"%s\" 時記憶體ä¸è¶³" #: ../src/misc.c:790 msgid "out of memory during expansion of \"%w\"" msgstr "展開 \"%w\" 時記憶體ä¸è¶³" # #: ../src/misc.c:808 msgid "out of memory during expansion of \"%W\"" msgstr "展開 \"%W\" 時記憶體ä¸è¶³" #: ../src/misc.c:824 #, c-format msgid "out of memory during expansion of \"%a\"" msgstr "展開 \"%a\" 時記憶體ä¸è¶³" #: ../src/misc.c:853 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "展開 \"%d\" 時記憶體ä¸è¶³" #: ../src/misc.c:867 msgid "selection not available" msgstr "é¸å–ä¸èƒ½ä½¿ç”¨" #: ../src/misc.c:911 ../src/misc.c:917 #, c-format msgid "bad window name value in %s state info" msgstr "%s 狀態資訊中有無效的視窗å稱值" #: ../src/misc.c:1156 msgid "could not send message to background image helper" msgstr "無法傳é€è¨Šæ¯è‡³èƒŒæ™¯å½±åƒåŠ©æ‰‹" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "無法載入é®ç½©ä½å…ƒæ˜ åƒæª” \"%s\"。ä¸ä½¿ç”¨é®ç½©" #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "無法解æžè‰²å½© \"%s\"" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "無法é…置色彩 \"%s\"" #: ../src/rootmenu.c:196 ../src/rootmenu.c:198 msgid "Exit" msgstr "離開" #: ../src/rootmenu.c:197 msgid "Exit window manager?" msgstr "離開視窗管ç†å“¡ï¼Ÿ" #: ../src/rootmenu.c:245 msgid "Close X session" msgstr "關閉 X 視窗系統" #: ../src/rootmenu.c:246 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:248 ../src/winmenu.c:501 msgid "Close" msgstr "關閉" #: ../src/rootmenu.c:261 msgid "Kill X session" msgstr "çµæŸ X 視窗系統" #: ../src/rootmenu.c:262 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "çµæŸè¦–窗系統?\n" "ï¼ˆæ‰€æœ‰æ‡‰ç”¨ç¨‹å¼æœƒè¢«é—œé–‰ï¼‰" #: ../src/rootmenu.c:544 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s: éµç›¤æ·å¾‘è¦æ ¼ \"%s\" 無效 (%s)" #: ../src/rootmenu.c:552 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s: æ·å¾‘ \"%s\" çš„éµç„¡æ•ˆ (%s)" #: ../src/rootmenu.c:605 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: é¸å–®æª”中 '\"' 䏿ˆå°" #: ../src/rootmenu.c:655 #, c-format msgid "%s: missing command" msgstr "%s: 缺少命令" #: ../src/rootmenu.c:687 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "無效的 OPEN_MENU è¦æ ¼: %s" #: ../src/rootmenu.c:738 #, c-format msgid "%s:could not stat menu" msgstr "%s: 無法 stat é¸å–®" #: ../src/rootmenu.c:746 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s: 無法 stat é¸å–®: %s" #: ../src/rootmenu.c:764 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "OPEN_MENU ä¸­æœ‰å¤ªå¤šåƒæ•¸: %s" #: ../src/rootmenu.c:808 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "應用程å¼é¸å–®ä¸­æœ‰è¶…éŽä¸€å€‹ WORKSPACE_MENU 命令。åªå…許有一個。" #: ../src/rootmenu.c:842 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "應用程å¼é¸å–®ä¸­æœ‰è¶…éŽä¸€å€‹ WINDOWS_MENU 命令。åªå…許有一個。" #: ../src/rootmenu.c:847 msgid "Window List" msgstr "視窗清單" #: ../src/rootmenu.c:876 ../src/rootmenu.c:894 ../src/rootmenu.c:904 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s: é¸å–®å‘½ä»¤ \"%s\" ç¼ºå°‘åƒæ•¸" #: ../src/rootmenu.c:972 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s: é¸å–®è¨­å®šä¸­æœ‰ä¸æ˜Žçš„命令 \"%s\"。" #: ../src/rootmenu.c:980 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s: 無法為 \"%s\" 增加æ·å¾‘" #: ../src/rootmenu.c:1117 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s: é¸å–®æª”ä¸­è¶…éŽæœ€å¤§è¡Œæ•¸: %s" #: ../src/rootmenu.c:1139 ../src/rootmenu.c:1232 ../src/rootmenu.c:1336 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s: é¸å–®è¨­å®šä¸­ç¼ºå°‘命令: %s" #: ../src/rootmenu.c:1169 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s: é¸å–®æª”中語法錯誤: 缺少 END 宣告" #: ../src/rootmenu.c:1198 ../src/rootmenu.c:1300 msgid "could not make arguments for menu file preprocessor" msgstr "無法為é¸å–®æª”é å…ˆè™•ç†å™¨ç”¢ç”Ÿå¼•數" #: ../src/rootmenu.c:1205 ../src/rootmenu.c:1308 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s: 無法開啟/é å…ˆè™•ç†é¸å–®æª”" #: ../src/rootmenu.c:1217 ../src/rootmenu.c:1321 #, c-format msgid "%s:could not open menu file" msgstr "%s: 無法開啟é¸å–®æª”" #: ../src/rootmenu.c:1244 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s: 無效的é¸å–®æª”。缺少 MENU 命令" #: ../src/rootmenu.c:1253 msgid "error reading preprocessed menu data" msgstr "é å…ˆè™•ç†é¸å–®è³‡æ–™è®€å–錯誤" #: ../src/rootmenu.c:1348 #, c-format msgid "%s:no title given for the root menu" msgstr "%s: 沒有給主é¸å–®æ¨™é¡Œ" #: ../src/rootmenu.c:1439 ../src/rootmenu.c:1512 ../src/rootmenu.c:1553 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "建立目錄é¸å–® %s 時記憶體ä¸è¶³" #: ../src/rootmenu.c:1449 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s: 無法 stat é¸å–®ç›®éŒ„中檔案 \"%s\"" #: ../src/rootmenu.c:1607 msgid "Commands" msgstr "命令" #: ../src/rootmenu.c:1610 msgid "Restart" msgstr "釿–°å•Ÿå‹•" #: ../src/rootmenu.c:1611 msgid "Exit..." msgstr "離開..." #: ../src/rootmenu.c:1656 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "無法找到 WMRootMenu åƒç…§çš„é¸å–®æª” \"%s\"" #: ../src/rootmenu.c:1663 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "ç„¡æ³•å­˜å– WMRootMenu åƒç…§çš„é¸å–®æª” \"%s\"" #: ../src/rootmenu.c:1674 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "無法找到 WMRootMenu åƒç…§çš„é¸å–®ï¼Œä½¿ç”¨é è¨­é¸å–®æª” \"%s\"" #: ../src/rootmenu.c:1697 ../src/rootmenu.c:1773 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s: 主é¸å–®è¨­å®šä¸­æ ¼å¼éŒ¯èª¤ \"%s\"" #: ../src/rootmenu.c:1855 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "無法載入應用程å¼é¸å–®ã€‚錯誤的詳細æè¿°è«‹æŸ¥çœ‹ä¸»æŽ§å°è¼¸é™¤ã€‚" #: ../src/screen.c:709 #, c-format msgid "could not initialize graphics library context: %s" msgstr "無法啟始圖形函å¼åº«é—œé€£: %s" #: ../src/screen.c:737 msgid "could not initialize WINGs widget set" msgstr "無法啟始 WINGs widget set" #: ../src/screen.c:1144 #, c-format msgid "could not save session state in %s" msgstr "無法在 %s 儲存時段狀態" #: ../src/session.c:183 ../src/wdefaults.c:589 ../src/winspector.c:459 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "ç„¡æ³•è½‰æ› \"%s\" 至 boolean" #: ../src/session.c:1018 msgid "out of memory while saving session state" msgstr "儲存時段狀態時記憶體ä¸è¶³" #: ../src/session.c:1101 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:1239 msgid "connection to the session manager was lost" msgstr "éºå¤±è‡³æ™‚段管ç†å“¡çš„連çµ" #: ../src/stacking.c:81 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:772 #, 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:801 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "æœªæ”¯æ´ XKB。 KbdModeLock 自動失效。" #: ../src/startup.c:820 msgid "it seems that there is already a window manager running" msgstr "似乎已經有視窗管ç†å“¡åœ¨åŸ·è¡Œä¸­" #: ../src/startup.c:826 #, c-format msgid "could not manage screen %i" msgstr "無法管ç†èž¢å¹• %i" #: ../src/startup.c:885 msgid "could not manage any screen" msgstr "無法管ç†ä»»ä½•螢幕" #: ../src/switchmenu.c:145 msgid "Windows" msgstr "視窗" #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "找ä¸åˆ°ä½œç‚ºæè³ªçš„å½±åƒæª” \"%s\"" #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "無法載入æè³ªåœ–åƒ \"%s\":%s" #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "無法開啟函å¼åº« \"%s\"。" #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "在函å¼åº« \"%2$s\" 找ä¸åˆ°å‡½å¼ \"%1$s\"" #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "æ­¤ç³»çµ±ä¸æ”¯æ´æè³ªåŠŸèƒ½ï¼ŒæŠ±æ­‰ã€‚" #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "無法é…置影åƒç·©è¡å€" #: ../src/wdefaults.c:437 #, c-format msgid "could not find icon file \"%s\"" msgstr "無法找到圖示檔 \"%s\"" #: ../src/window.c:3052 ../src/window.c:3193 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:125 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "é€™æ¨£æœƒçµæŸæ‡‰ç”¨ç¨‹å¼ã€‚\n" "任何未儲存的改變將會éºå¤±ã€‚\n" "請確èªã€‚" #: ../src/winmenu.c:268 ../src/winmenu.c:277 msgid "Set Shortcut" msgstr "設定æ·å¾‘" #: ../src/winmenu.c:355 ../src/winmenu.c:400 msgid "could not create submenu for window menu" msgstr "無法為視窗é¸å–®å»ºç«‹å‰¯é¸å–®" #: ../src/winmenu.c:404 msgid "Keep on top" msgstr "ä¿æŒåœ¨æœ€ä¸Šå±¤" #: ../src/winmenu.c:409 msgid "Keep at bottom" 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:437 ../src/winmenu.c:571 msgid "Maximize" msgstr "最大化" #: ../src/winmenu.c:445 ../src/winmenu.c:557 msgid "Miniaturize" msgstr "最å°åŒ–" #: ../src/winmenu.c:453 ../src/winmenu.c:588 msgid "Shade" msgstr "é®è”½" #: ../src/winmenu.c:469 msgid "Resize/Move" msgstr "大å°è®Šæ›´/移動" #: ../src/winmenu.c:477 msgid "Select" msgstr "é¸å–" #: ../src/winmenu.c:485 msgid "Move To" msgstr "移至" #: ../src/winmenu.c:490 msgid "Attributes..." msgstr "屬性..." #: ../src/winmenu.c:492 msgid "Options" msgstr "é¸é …" #: ../src/winmenu.c:552 msgid "Deminiaturize" msgstr "å–æ¶ˆæœ€å°åŒ–" #: ../src/winmenu.c:566 msgid "Unmaximize" msgstr "å–æ¶ˆæœ€å¤§åŒ–" #: ../src/winmenu.c:583 msgid "Unshade" msgstr "å–æ¶ˆé®è”½" #: ../src/winspector.c:392 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "無法找到指定給這個視窗的圖示 \"%s\"" #: ../src/winspector.c:409 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "無法開啟指定的圖示 \"%s\":%s" #: ../src/winspector.c:1129 #, c-format msgid "Inspecting %s.%s" msgstr "檢視 %s.%s" #: ../src/winspector.c:1155 msgid "Click in the window you wish to inspect." msgstr "在你想檢視的視窗按一下。" #: ../src/winspector.c:1194 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "儲存時,設定值會套用至所有\n" "WM_CLASS 特性設為以上é¸å–å稱的視窗。" #: ../src/winspector.c:1223 msgid "Save" msgstr "儲存" #: ../src/winspector.c:1231 msgid "Apply" msgstr "套用" #: ../src/winspector.c:1237 msgid "Reload" msgstr "還原" #: ../src/winspector.c:1246 ../src/winspector.c:1256 msgid "Window Specification" msgstr "è¦–çª—è¦æ ¼" #: ../src/winspector.c:1247 msgid "Window Attributes" msgstr "視窗屬性" #: ../src/winspector.c:1248 msgid "Advanced Options" msgstr "進階é¸é …" #: ../src/winspector.c:1249 msgid "Icon and Initial Workspace" msgstr "圖示與啟始工作å€" #: ../src/winspector.c:1250 msgid "Application Specific" msgstr "應用程示特定" #: ../src/winspector.c:1264 msgid "Defaults for all windows" msgstr "所有視窗é è¨­å€¼" #: ../src/winspector.c:1318 msgid "Select window" msgstr "é¸å–視窗" #: ../src/winspector.c:1332 msgid "Attributes" msgstr "屬性" #: ../src/winspector.c:1343 msgid "Disable titlebar" msgstr "使「標題列ã€å¤±æ•ˆ" #: ../src/winspector.c:1345 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "刪除此視窗的「標題列ã€ã€‚\n" "è¦ä½¿ç”¨ç„¡ã€Œæ¨™é¡Œåˆ—ã€è¦–窗的視窗命令é¸å–®ï¼Œ\n" "按 Control+Esc (æˆ–åŒæ¨£æ•ˆæžœçš„æ·å¾‘ï¼Œ\n" "如果你變更了é è¨­è¨­å®š)。" #: ../src/winspector.c:1352 msgid "Disable resizebar" msgstr "使「大å°è®Šæ›´åˆ—ã€å¤±æ•ˆ" #: ../src/winspector.c:1354 msgid "Remove the resizebar of this window." msgstr "移除此視窗之「大å°è®Šæ›´åˆ—ã€ã€‚" #: ../src/winspector.c:1357 msgid "Disable close button" msgstr "使「關閉按鈕ã€å¤±æ•ˆ" #: ../src/winspector.c:1359 msgid "Remove the `close window' button of this window." msgstr "移除此視窗之「關閉按鈕ã€ã€‚" #: ../src/winspector.c:1362 msgid "Disable miniaturize button" msgstr "使「最å°åŒ–按鈕ã€å¤±æ•ˆ" #: ../src/winspector.c:1364 msgid "Remove the `miniaturize window' button of the window." msgstr "移除此視窗之「最å°åŒ–按鈕ã€ã€‚" #: ../src/winspector.c:1367 msgid "Disable border" msgstr "使「邊框ã€å¤±æ•ˆ" #: ../src/winspector.c:1369 msgid "Remove the 1 pixel black border around the window." msgstr "移除此視窗周åœä¸€å€‹åƒç´ é»‘框。" #: ../src/winspector.c:1372 msgid "Keep on top (floating)" msgstr "ä¿æŒåœ¨æœ€ä¸Šå±¤ (漂浮)" #: ../src/winspector.c:1374 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "ä¿æŒè¦–窗在所有其他視窗之上,ä¸è¨±å®ƒå€‘覆蓋它。" #: ../src/winspector.c:1378 msgid "Keep at bottom (sunken)" msgstr "ä¿æŒåœ¨æœ€ä¸‹å±¤ (下沉)" #: ../src/winspector.c:1380 msgid "Keep the window under all other windows." msgstr "ä¿æŒè¦–窗在所有其他視窗之下。" #: ../src/winspector.c:1385 msgid "Make window present in all workspaces." msgstr "使視窗出ç¾åœ¨æ‰€æœ‰å·¥ä½œå€ã€‚" #: ../src/winspector.c:1388 msgid "Start miniaturized" msgstr "啟動時最å°åŒ–" #: ../src/winspector.c:1390 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "使視窗第一次顯示時自動最å°åŒ–。" #: ../src/winspector.c:1394 msgid "Start maximized" msgstr "啟動時最大化" #: ../src/winspector.c:1396 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "使視窗第一次顯示時自動最大化。" #: ../src/winspector.c:1400 msgid "Full screen maximization" msgstr "全螢幕最大化" #: ../src/winspector.c:1402 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "使視窗最大化時使用整個螢幕空間。\n" "「標題列ã€å’Œã€Œå¤§å°è®Šæ›´åˆ—ã€æœƒè¢«ç§»è‡³èž¢å¹•外。" #: ../src/winspector.c:1419 msgid "Advanced" msgstr "進階" #: ../src/winspector.c:1436 msgid "Do not bind keyboard shortcuts" msgstr "ä¸è¦çµåˆéµç›¤æ·å¾‘" #: ../src/winspector.c:1438 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "ä¸è¦çµåˆéµç›¤æ·å¾‘" "當視窗å–得焦點時ä¸è¦å¾ž Window Maker çµåˆéµç›¤æ·å¾‘。\n" "這會å…許視窗接收所有按éµçµ„åˆï¼Œä¸ç®¡ä½ çš„æ·å¾‘è¨­å®šã€‚" #: ../src/winspector.c:1444 msgid "Do not bind mouse clicks" msgstr "ä¸è¦çµåˆæ»‘鼠按éµ" #: ../src/winspector.c:1446 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "ä¸è¦çµåˆæ»‘鼠動作,例如在視窗中按 `Alt'+拖曳滑鼠\n" "(如果 alt 是你已設定的修正éµ)。" #: ../src/winspector.c:1451 msgid "Do not show in the window list" msgstr "ä¸è¦é¡¯ç¤ºåœ¨è¦–窗清單" #: ../src/winspector.c:1453 msgid "Do not list the window in the window list menu." msgstr "ä¸è¦åœ¨è¦–窗清單列出此視窗。" #: ../src/winspector.c:1456 msgid "Do not let it take focus" msgstr "ä¸è¦è®“它å–得焦點" #: ../src/winspector.c:1458 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "當你在視窗上按滑鼠時ä¸è¦è®“它å–得焦點。" #: ../src/winspector.c:1462 msgid "Keep inside screen" msgstr "ä¿æŒåœ¨èž¢å¹•å…§" #: ../src/winspector.c:1464 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "ä¸å…許視窗將它自己完全移出螢幕外。\n" "為了錯誤相容性。\n" #: ../src/winspector.c:1468 msgid "Ignore 'Hide Others'" msgstr "忽略「隱è—å…¶ä»–ã€" #: ../src/winspector.c:1470 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "當發出「隱è—å…¶ä»–ã€æ™‚ä¸éš±è—視窗。" #: ../src/winspector.c:1474 msgid "Ignore 'Save Session'" msgstr "忽略「儲存時段ã€" #: ../src/winspector.c:1476 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "ä¸è¦åœ¨æ™‚段狀態中存相關應用程å¼ï¼Œ\n" "å¦‚æ­¤å®ƒä¸æœƒåœ¨ Window Maker å•Ÿå‹•æ™‚è¢«ä¸€èµ·é‡æ–°å•Ÿå‹•。" #: ../src/winspector.c:1482 msgid "Emulate application icon" msgstr "模擬應用程å¼åœ–示" #: ../src/winspector.c:1484 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "ä½¿æ­¤è¦–çª—ç•¶ä½œå¯æä¾› Window Maker\n" "足夠資訊建立å¯åœé æ‡‰ç”¨ç¨‹å¼åœ–示的應用程å¼ã€‚" #: ../src/winspector.c:1490 msgid "Disable language button" msgstr "使「語言按鈕ã€å¤±æ•ˆ" #: ../src/winspector.c:1492 msgid "Remove the `toggle language' button of the window." msgstr "刪除視窗的「切æ›èªžè¨€ã€æŒ‰éˆ•。" #: ../src/winspector.c:1509 msgid "Miniwindow Image" msgstr "迷你視窗影åƒ" #: ../src/winspector.c:1536 msgid "Icon filename:" msgstr "圖示檔å:" #: ../src/winspector.c:1549 msgid "Ignore client supplied icon" msgstr "å¿½ç•¥ç¨‹å¼æä¾›çš„åœ–ç¤º" #: ../src/winspector.c:1556 msgid "Initial Workspace" msgstr "啟始工作å€" #: ../src/winspector.c:1558 msgid "The workspace to place the window when it'sfirst shown." msgstr "當第一次顯示時放置視窗的工作å€ã€‚" #: ../src/winspector.c:1564 msgid "Nowhere in particular" msgstr "無特別指定" #: ../src/winspector.c:1582 msgid "Application Attributes" msgstr "應用程å¼å±¬æ€§" #: ../src/winspector.c:1593 msgid "Start hidden" msgstr "啟動時隱è—" #: ../src/winspector.c:1595 msgid "Automatically hide application when it's started." msgstr "ç•¶å•Ÿå‹•æ™‚è‡ªå‹•éš±è—æ‡‰ç”¨ç¨‹å¼ã€‚" #: ../src/winspector.c:1598 msgid "No application icon" msgstr "無應用程å¼åœ–示" #: ../src/winspector.c:1600 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "使應用程å¼çš„æ‡‰ç”¨ç¨‹å¼åœ–示失效。\n" "注æ„,你將無法å†åœé å®ƒï¼Œ\n" "且任何已åœé åœ–ç¤ºå°‡åœæ­¢æ­£å¸¸å·¥ä½œã€‚" #: ../src/winspector.c:1606 msgid "Shared application icon" msgstr "共用的應用程å¼åœ–示" #: ../src/winspector.c:1608 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "使用單一共用應用程å¼åœ–示於\n" "所有此應用程å¼çš„執行個體。\n" #: ../src/workspace.c:103 ../src/workspace.c:104 ../src/workspace.c:1306 #, c-format msgid "Workspace %i" msgstr "å·¥ä½œå€ %i" #: ../src/workspace.c:1356 msgid "Workspaces" msgstr "工作å€" #: ../src/workspace.c:1358 msgid "could not create Workspace menu" msgstr "無法建立工作å€é¸å–®" #: ../src/workspace.c:1365 msgid "New" msgstr "新增工作å€" #: ../src/workspace.c:1366 msgid "Destroy Last" msgstr "刪除最後的工作å€" #~ msgid "unable to get dropped data from DND drop" #~ msgstr "無法從 DND 放置å–得放置資料" #~ msgid "error getting dropped data from DND drop" #~ msgstr "從 DND 放置å–得放置資料錯誤" #~ msgid "out of memory while getting data from DND drop" #~ msgstr "從 DND 放置å–得資料時記憶體ä¸è¶³" #~ msgid "unterminated string" #~ msgstr "字串未終止" #~ msgid "unterminated array" #~ msgstr "陣列未終止" #~ msgid "missing , in array or unterminated array" #~ msgstr "在陣列缺少 , 或陣列未終止" #~ msgid "could not get array element" #~ msgstr "無法å–得陣列元素" #~ msgid "unterminated dictionary" #~ msgstr "字點未終止" #~ msgid "missing dictionary key" #~ msgstr "缺少字典éµ" #~ msgid "missing dictionary entry key or unterminated dictionary" #~ msgstr "ç¼ºå°‘å­—å…¸è¨˜éŒ„éµæˆ–字典未中止" #~ msgid "error parsing dictionary key" #~ msgstr "å­—å…¸éµè§£æžéŒ¯èª¤" #~ msgid "missing = in dictionary entry" #~ msgstr "字典記錄中缺少 = " #~ msgid "missing ; in dictionary entry" #~ msgstr "字典記錄中缺少 ; " #~ msgid "" #~ "was expecting a string, dictionary, data or array. If it's a string, try " #~ "enclosing it with \"." #~ msgstr "è¦æ±‚字串,字典,資料或陣列。如果是字串,請用 \" 號括起來。" #~ msgid "Comments are not allowed inside WindowMaker owned domain files." #~ msgstr "在 WindowMaker 的定義域檔中ä¸å…許註解。" #~ msgid "could not open domain file %s" #~ msgstr "無法開啟定義域檔 %s" #~ msgid "extra data after end of file" #~ msgstr "æª”æ¡ˆçµæŸå¾Œæœ‰é¡å¤–資料" #~ msgid "error making logo image for panel:%s" #~ msgstr "颿¿çš„æ¨™è­˜å½±åƒç”¢ç”ŸéŒ¯èª¤: %s" #~ msgid "got signal %i (%s) - restarting\n" #~ msgstr "收到訊號 %i (%s) - 釿–°å•Ÿå‹•\n" #~ msgid "got signal %i - restarting\n" #~ msgstr "收到訊號 %i - 釿–°å•Ÿå‹•\n" #~ msgid "got signal %i (%s) - rereading defaults\n" #~ msgstr "收到訊號 %i (%s) - é‡è®€é è¨­å€¼\n" #~ msgid "got signal %i - rereading defaults\n" #~ msgstr "收到訊號 %i - é‡è®€é è¨­å€¼\n" #~ msgid "got signal %i (%s) - exiting...\n" #~ msgstr "收到訊號 %i (%s) - 離開中...\n" #~ msgid "got signal %i - exiting...\n" #~ msgstr "收到訊號 %i - 離開中...\n" #~ msgid "got signal %i (%s)\n" #~ msgstr "收到訊號 %i (%s)\n" #~ msgid "got signal %i\n" #~ msgstr "收到訊號 %i\n" #~ msgid "" #~ "crashed while trying to do some post-crash cleanup. Aborting immediatelly." #~ msgstr "å˜—è©¦å´©æ½°å¾Œæ¸…é™¤è™•ç†æ™‚崩潰。直接放棄。" #~ msgid "trying to restart Window Maker..." #~ msgstr "å˜—è©¦é‡æ–°å•Ÿå‹• Window Maker..." #~ msgid "trying to start alternate window manager..." #~ msgstr "嘗試啟動å¦ä¸€å¥—視窗管ç†å“¡..." #~ msgid "failed to start alternate window manager. Aborting." #~ msgstr "å¦ä¸€å¥—視窗管ç†å“¡å•Ÿå‹•失敗。放棄中。" #~ msgid "" #~ "a fatal error has occured, probably due to a bug. Please fill the " #~ "included BUGFORM and report it." #~ msgstr "發生嚴é‡éŒ¯èª¤ï¼Œå¯èƒ½å› ç‚ºç¨‹å¼éŒ¯èª¤ã€‚請填寫 BUGFORM 並æå‡ºå ±å‘Šã€‚" #~ msgid "Keep Attracted Icons" #~ msgstr "ä¿æŒå¸å¼•的圖示" #~ msgid "Keep Icon(s)" #~ msgstr "ä¿æŒåœ–示" #~ msgid "stack overflow: too many dead processes" #~ msgstr "堆疊溢ä½: 太多終止的行程" #~ msgid "could not render gradient: %s" #~ msgstr "ç„¡æ³•è¡¨ç¾æ¼¸å±¤: %s" #~ msgid "could not exec window manager" #~ msgstr "無法執行視窗管ç†å“¡" #~ msgid "Restart failed!!!" #~ msgstr "釿–°å•Ÿå‹•失敗!!!" #~ msgid "wrealloc() failed while trying to add menu item" #~ msgstr "嘗試增加é¸å–®é …目時 wrealloc() 失敗" #~ msgid "selection timed-out" #~ msgstr "é¸å–逾時" #~ msgid "The following character sets are missing in %s:" #~ msgstr "%s 中下列字元集缺少:" #~ msgid "The string \"%s\" will be used in place" #~ msgstr "字串 \"%s\" 會被用來å–代" #~ msgid "of any characters from those sets." #~ msgstr "那些集åˆçš„任何字元。" #~ msgid "could not create font set %s. Trying fixed" #~ msgstr "無法建立字型集 %s。試用 fixed" #~ msgid "could not load font %s. Trying fixed" #~ msgstr "無法載入字型 %s。試用 fixed" #~ msgid "" #~ "Enable the \"Don't bind...\" options to allow the application to receive " #~ "all mouse or keyboard events." #~ msgstr "" #~ "啟動 \"ä¸è¦çµåˆ...\" é¸é …\n" #~ "å…è¨±æ‡‰ç”¨ç¨‹å¼æŽ¥å—æ‰€æœ‰æ»‘鼠或éµç›¤äº‹ä»¶ã€‚" #~ msgid "Update" #~ msgstr "æ›´æ–°" #~ msgid "invalid data in selection" #~ msgstr "é¸å–的資料無效" #~ msgid "Keep Clip On Top" #~ msgstr "ä¿æŒè¿´ç´‹é‡åœ¨æœ€ä¸Šå±¤" # ?? #~ msgid "Keep Dock On Top" #~ msgstr "ä¿æŒåœé å€åœ¨æœ€ä¸Šå±¤" #~ msgid "(Un)Hide" #~ msgstr "éš±è—(還原)" #~ msgid "" #~ "Close Window System session?\n" #~ "(all applications will be closed)" #~ msgstr "" #~ "關閉視窗系統?\n" #~ "ï¼ˆæ‰€æœ‰æ‡‰ç”¨ç¨‹å¼æœƒè¢«é—œé–‰ï¼‰" #~ msgid "%s: Received signal SIGTERM. Exiting..." #~ msgstr "%s: 收到 SIGTERM 訊號。離開..." #~ msgid "(Un)Maximize" #~ msgstr "最大化(還原)" #~ msgid "(Un)Shade" #~ msgstr "é®è”½ï¼ˆé‚„原)" # ?? #~ msgid "Hide Others" #~ msgstr "éš±è—其他視窗" #~ msgid "Revert" #~ msgstr "還原" WindowMaker-0.95.5/po/el.po0000644000175000017500000014022212214432632012340 00000000000000# Hellenic Translations. # Copyright (C) 1999 Free Software Foundation, Inc. # Nikolaos Papagrigoriou , 1998. # # msgid "" msgstr "" "Project-Id-Version: 0.3\n" "POT-Creation-Date: 1998-08-20 01:33+0300\n" "PO-Revision-Date: 1999-09-04 01:39+0300\n" "Last-Translator: Nikolaos Papagrigoriou \n" "Language-Team: Greek\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "**************************\n" "Words from the maintainer in Greek:\n" "Η μετάφÏαση είναι ακόμη σε αÏχικό στάδιο. Τα μυνήματα που εμφανίζονται στην\n" "κονσόλα Ï€Ïος το παÏόν είναι στην αγγλική γλώσσα. Επίσης λόγω του\n" "πεÏιοÏισμένου χώÏου στην εμφάνιση των μυνημάτων, στο γÏαφικό πεÏιβάλλον, δεν\n" "είναι δυνατή η σωστή μετάφÏαση. Πολλές φοÏές χÏησιμοποιοÏνται συντομογÏαφίες.\n" "Θα υπάÏξει στο μέλλον ελληνική σελίδα για τον Window Maker, όπου θα γίνεται\n" "επεξήγηση των ελληνικών ÏŒÏων (Dock=ΜπάÏα, Clip=ΣυνδετήÏας). Η παÏοÏσα \n" "μετάφÏαση έγινε με βάση τον Window Maker 0.60.\n" "**************************\n" "Contact the maintainer for suggestions and corrections\n" #: ../src/appicon.c:570 ../src/dialog.c:223 ../src/dock.c:3301 #: ../src/dockedapp.c:210 ../src/dockedapp.c:251 ../src/rootmenu.c:1754 #: ../src/winspector.c:290 ../src/winspector.c:306 msgid "Error" msgstr "Σφάλμα" #: ../src/appicon.c:571 msgid "Could not open specified icon file" msgstr "Δεν μποÏεί να ανοιχθεί το συγκεκÏιμένο εικονίδιο" #: ../src/appicon.c:572 ../src/dialog.c:122 ../src/dialog.c:223 #: ../src/dialog.c:460 ../src/dialog.c:1477 ../src/dock.c:514 #: ../src/dock.c:522 ../src/dock.c:545 ../src/dock.c:3302 #: ../src/dockedapp.c:211 ../src/dockedapp.c:257 ../src/dockedapp.c:371 #: ../src/rootmenu.c:1758 ../src/winspector.c:291 ../src/winspector.c:307 msgid "OK" msgstr "OK" #: ../src/appicon.c:599 ../src/dock.c:278 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " θα τεÏματισθεί βίαια.\n" "Οι μη σωσμένες αλλαγές θα χαθοÏν.\n" "ΠαÏακαλώ επιβεβαιώστε." #: ../src/appicon.c:605 ../src/dock.c:283 ../src/winmenu.c:125 msgid "Kill Application" msgstr "Θανάτωση ΕφαÏμογής" #: ../src/appicon.c:606 ../src/dock.c:284 ../src/winmenu.c:127 msgid "Yes" msgstr "Îαι" #: ../src/appicon.c:606 ../src/dock.c:284 ../src/winmenu.c:127 msgid "No" msgstr "Όχι" #: ../src/appicon.c:624 ../src/dock.c:1196 msgid "Unhide Here" msgstr "Εμφάνισε Εδώ" #: ../src/appicon.c:625 ../src/appicon.c:650 ../src/dock.c:1198 #: ../src/dock.c:1200 ../src/dock.c:3468 ../src/dock.c:3470 #: ../src/winmenu.c:465 msgid "Hide" msgstr "ΑπόκÏυψη" #: ../src/appicon.c:626 msgid "Set Icon..." msgstr "Εικονίδιο..." #: ../src/appicon.c:627 ../src/dock.c:1204 ../src/rootmenu.c:228 #: ../src/rootmenu.c:242 ../src/winmenu.c:512 msgid "Kill" msgstr "Θανάτωση" #: ../src/appicon.c:648 ../src/dock.c:3466 msgid "Unhide" msgstr "Εμφάνιση" #: ../src/defaults.c:836 ../src/startup.c:767 ../src/startup.c:785 #: ../src/startup.c:791 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "" #: ../src/defaults.c:882 ../src/defaults.c:1007 ../src/defaults.c:1046 #: ../src/defaults.c:1076 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "" #: ../src/defaults.c:887 ../src/defaults.c:1028 ../src/defaults.c:1059 #: ../src/defaults.c:1085 #, c-format msgid "could not load domain %s from user defaults database" msgstr "" #: ../src/defaults.c:898 ../src/defaults.c:992 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "" #: ../src/defaults.c:917 ../src/defaults.c:997 #, c-format msgid "could not load domain %s from global defaults database" msgstr "" #: ../src/defaults.c:1305 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "" #: ../src/defaults.c:1352 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "" #: ../src/defaults.c:1357 ../src/defaults.c:1391 ../src/defaults.c:1423 #: ../src/defaults.c:1436 ../src/defaults.c:1451 ../src/defaults.c:1465 #: ../src/defaults.c:1537 ../src/defaults.c:1549 ../src/defaults.c:1955 #: ../src/defaults.c:1972 ../src/defaults.c:1985 ../src/defaults.c:2018 #: ../src/defaults.c:2034 ../src/defaults.c:2065 ../src/defaults.c:2155 #, c-format msgid "using default \"%s\" instead" msgstr "" #: ../src/defaults.c:1388 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "" #: ../src/defaults.c:1418 ../src/defaults.c:1532 ../src/defaults.c:1950 #: ../src/defaults.c:1967 ../src/defaults.c:2013 ../src/defaults.c:2060 #: ../src/wdefaults.c:557 ../src/wdefaults.c:593 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "" #: ../src/defaults.c:1431 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "" #: ../src/defaults.c:1446 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "" #: ../src/defaults.c:1461 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "" #: ../src/defaults.c:1659 ../src/defaults.c:1691 ../src/defaults.c:1707 #: ../src/defaults.c:1753 ../src/defaults.c:1793 ../src/defaults.c:1831 #: ../src/defaults.c:1847 #, c-format msgid "\"%s\" is not a valid color name" msgstr "το \"%s\" δεν είναι έγκυÏο όνομα χÏώματος" #: ../src/defaults.c:1672 msgid "bad number of arguments in gradient specification" msgstr "λανθασμένος αÏιθμός παÏαμέτÏων στον καθοÏισμό διαβάθμισης χÏώματος" #: ../src/defaults.c:1726 msgid "too few arguments in multicolor gradient specification" msgstr "μικÏός αÏιθμός παÏαμέτÏων στον καθοÏισμό διαβάθμισης χÏώματος" #: ../src/defaults.c:1820 msgid "bad number of arguments in textured gradient specification" msgstr "" #: ../src/defaults.c:1863 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "" #: ../src/defaults.c:1923 #, c-format msgid "could not initialize library %s" msgstr "" #: ../src/defaults.c:1926 #, c-format msgid "could not find function %s::%s" msgstr "" #: ../src/defaults.c:1933 #, c-format msgid "invalid texture type %s" msgstr "" #: ../src/defaults.c:1980 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "" #: ../src/defaults.c:2030 msgid "Wrong type for workspace background. Should be a texture type." msgstr "" #: ../src/defaults.c:2078 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "" #: ../src/defaults.c:2122 msgid "could not load any usable font!!!" msgstr "" #: ../src/defaults.c:2150 #, c-format msgid "could not get color for key \"%s\"" msgstr "" #: ../src/defaults.c:2210 ../src/rootmenu.c:494 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "" #: ../src/defaults.c:2222 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "" #: ../src/defaults.c:2229 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "" #: ../src/defaults.c:2255 #, c-format msgid "%s: modifier key %s is not valid" msgstr "" #: ../src/defaults.c:2289 #, c-format msgid "could not load image in option %s: %s" msgstr "" #: ../src/defaults.c:2371 msgid "could not render texture for icon background" msgstr "" #: ../src/dialog.c:122 ../src/dialog.c:467 ../src/dock.c:545 #: ../src/dockedapp.c:377 ../src/rootmenu.c:190 ../src/rootmenu.c:228 #: ../src/rootmenu.c:242 msgid "Cancel" msgstr "ΆκυÏο" #: ../src/dialog.c:218 msgid "Could not open directory " msgstr "ΑδÏνατο να ανοιχθεί ο κατάλογος " #: ../src/dialog.c:271 msgid "Could not load image file " msgstr "ΑδÏνατη η φόÏτωση της εικόνας " #: ../src/dialog.c:403 msgid "Directories" msgstr "Κατάλογοι" #: ../src/dialog.c:412 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/dialog.c:1401 ../src/startup.c:325 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "" #: ../src/dialog.c:1427 msgid "Fatal error" msgstr "ΟλέθÏιο σφάλμα" #: ../src/dialog.c:1438 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" #: ../src/dialog.c:1441 #, c-format msgid "Window Maker received signal %i." msgstr "" #: ../src/dialog.c:1450 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" #: ../src/dialog.c:1458 msgid "What do you want to do now?" msgstr "Τί επιθυμείτε να μάθετε;" #: ../src/dialog.c:1464 msgid "Select action" msgstr "Επέλεξε ενέÏγεια" #: ../src/dialog.c:1465 msgid "Abort and leave a core file" msgstr "" #: ../src/dialog.c:1466 msgid "Restart Window Maker" msgstr "Επανεκκίνηση του Window Maker" #: ../src/dialog.c:1467 msgid "Start alternate window manager" msgstr "Εκκίνηση ÎµÎ½Î±Î»Î»Î±ÎºÏ„Î¹ÎºÎ¿Ï Î´Î¹Î±Ï‡ÎµÎ¹Ïιστή παÏαθÏÏων" #: ../src/dock.c:212 #, c-format msgid "Type the name for workspace %i:" msgstr "ΓÏάψε το όνομα της επιφάνειας %i:" #: ../src/dock.c:213 ../src/dock.c:1160 ../src/dock.c:1163 ../src/dock.c:3384 msgid "Rename Workspace" msgstr "Όνομα Επιφάνειας" #: ../src/dock.c:508 ../src/dock.c:516 msgid "Warning" msgstr "ΠÏοειδοποίηση" #: ../src/dock.c:509 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Τα συγκεκÏιμένα εικονίδια δεν μποÏοÏν να παÏουσιάζονται σε κάθε επιφάνεια. " "Βεβαιωθείται ότι η θέση που έχουν τα εικονίδια δεν καταλαμβάνεται από κάποια " "εικονίδια σε άλλη επιφάνεια και ότι ο ΣυνδετήÏας δεν είναι πλήÏης σε κάποια " "επιφάνεια." #: ../src/dock.c:517 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "Το συγκεκÏιμένο εικονίδιο δεν μποÏεί να είναι παÏών σε κάθε επιφάνεια. " "Βεβαιωθείται ότι η θέση που έχει το εικονίδιο δεν καταλαμβάνεται από κάποιο " "εικονίδιο σε άλλη επιφάνεια και ότι ο ΣυνδετήÏας δεν είναι πλήÏης σε κάποια " "επιφάνεια." #: ../src/dock.c:543 msgid "Workspace Clip" msgstr "ΣυνδετήÏας Επιφανειών" #: ../src/dock.c:544 msgid "All selected icons will be removed!" msgstr "Όλα τα επιλεγμένα εικονίδια θα εξαλειφθοÏν!" #: ../src/dock.c:591 ../src/dock.c:1175 ../src/dock.c:1177 ../src/dock.c:3420 msgid "Keep Icon" msgstr "ΣυγκÏάτηση Εικονιδίου" #: ../src/dock.c:592 ../src/dock.c:2130 ../src/dock.c:2264 msgid "Type the command used to launch the application" msgstr "ΓÏάψε την εντολή εκτέλεσης της εφαÏμογής" #: ../src/dock.c:973 #, c-format msgid "could not launch application %s\n" msgstr "αδÏνατη η εκτέλεση της εφαÏμογής %s\n" #: ../src/dock.c:1028 msgid "could not create workspace submenu for Clip menu" msgstr "αδÏνατη η δημιουÏγία του Ï…Ï€Î¿Î¼ÎµÎ½Î¿Ï ÎµÏ€Î¹Ï†Î±Î½ÎµÎ¹ÏŽÎ½ στο Î¼ÎµÎ½Î¿Ï Ï„Î¿Ï… ΣυνδετήÏα" #: ../src/dock.c:1091 msgid "could not create options submenu for Clip menu" msgstr "αδÏνατη η δημιουÏγία του Ï…Ï€Î¿Î¼ÎµÎ½Î¿Ï ÎµÏ€Î¹Î»Î¿Î³ÏŽÎ½ στο Î¼ÎµÎ½Î¿Ï Ï„Î¿Ï… ΣυνδετήÏα" #: ../src/dock.c:1095 msgid "Keep on Top" msgstr "Πάντα στο ΠÏοσκήνιο" #: ../src/dock.c:1101 msgid "Collapsed" msgstr "Αναδίπλωση" #: ../src/dock.c:1107 msgid "AutoCollapse" msgstr "Αυτόματη Αναδίπλωση" #: ../src/dock.c:1113 msgid "AutoRaiseLower" msgstr "Αυτόματη Ανάδυση/Î’Ïθιση" #: ../src/dock.c:1119 msgid "AutoAttract Icons" msgstr "Αυτόματη Έλξη Εικονιδίων" #: ../src/dock.c:1125 msgid "Keep Attracted Icons" msgstr "ΣυγκÏάτηση ΕλκοÏμενων Εικονιδίων" #: ../src/dock.c:1149 ../src/winmenu.c:407 msgid "Keep on top" msgstr "Πάντα στο ΠÏοσκήνιο" #: ../src/dock.c:1155 msgid "Clip Options" msgstr "Επιλογές ΣυνδετήÏα" #: ../src/dock.c:1165 msgid "Selected" msgstr "Επιλεγμένο" #: ../src/dock.c:1170 ../src/dock.c:1173 ../src/dock.c:3411 msgid "Select All Icons" msgstr "Επιλογή Παντώς Εικονιδίου" #: ../src/dock.c:1179 ../src/dock.c:1181 ../src/dock.c:3428 msgid "Move Icon To" msgstr "ΜεταφοÏά Εικονιδίου Στην" #: ../src/dock.c:1186 ../src/dock.c:1189 ../src/dock.c:3439 msgid "Remove Icon" msgstr "Εξάλειψη Εικονιδίου" #: ../src/dock.c:1191 msgid "Attract Icons" msgstr "Έλξη Εικονιδίων" #: ../src/dock.c:1194 msgid "Launch" msgstr "Εκτέλεση" #: ../src/dock.c:1202 msgid "Settings..." msgstr "Ρυθμίσεις..." #: ../src/dock.c:1595 ../src/dock.c:1609 ../src/dock.c:1623 ../src/dock.c:1633 #: ../src/dock.c:1658 #, c-format msgid "bad value in docked icon state info %s" msgstr "" #: ../src/dock.c:1641 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "" #: ../src/dock.c:1897 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "υπεÏβολικός αÏιθμός εικονιδίων στην ΜπάÏα. ΑγνοοÏνται όσα δεν χωÏοÏν." #. icon->forced_dock = 1; #: ../src/dock.c:2129 ../src/dock.c:2263 msgid "Dock Icon" msgstr "Απόθεση στην ΜπάÏα" #: ../src/dock.c:3294 ../src/dock.c:3298 #, c-format msgid "Could not execute command \"%s\"" msgstr "ΑδÏνατη η εκτέλεση της εντολής \"%s\"" #: ../src/dock.c:3390 msgid "Toggle Omnipresent" msgstr "ΠαÏών<=>Απών στις Επιφάνειες" #: ../src/dock.c:3395 ../src/winmenu.c:417 ../src/winspector.c:1202 msgid "Omnipresent" msgstr "ΠαÏών σε κάθε επιφάνεια" #: ../src/dock.c:3409 msgid "Unselect All Icons" msgstr "Αποεπιλογή των εικονιδίων" #: ../src/dock.c:3418 msgid "Keep Icons" msgstr "ΣυγκÏάτηση Εικονιδίων" #: ../src/dock.c:3426 msgid "Move Icons To" msgstr "ΜεταφοÏά Εικονιδίων Στην" #: ../src/dock.c:3437 msgid "Remove Icons" msgstr "Εξάλειψη Εικονιδίων" #: ../src/dockedapp.c:130 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "αδÏνατη η εÏÏεση του εικονιδίου %s, που χÏησιμοποιεί μία εφαÏμογή στον ΣυνδετήÏα ή τη ΜπάÏα." #: ../src/dockedapp.c:209 #, c-format msgid "Could not open specified icon file: %s" msgstr "ΑδÏνατη η ανάγνωση το αÏχείο του εικονιδίου:%s" #: ../src/dockedapp.c:211 msgid "Ignore" msgstr "Αγνόηση" #: ../src/dockedapp.c:252 msgid "" "Sorry, icon cannot be made omnipresent. Please make sure that no other icon " "is docked in the same position on the other workspaces, and the Clip is not " "full in some workspace, then try again." msgstr "" "Συγνώμη, αλλά το συγκεκÏιμένο εικονίδιο δεν μποÏεί να είναι παÏών σε κάθε " "επιφάνεια. Βεβαιωθείται ότι η θέση που έχει το εικονίδιο δεν καταλαμβάνεται " "από κάποιο εικονίδιο σε άλλη επιφάνεια και ότι ο ΣυνδετήÏας δεν είναι πλήÏης " "σε κάποια επιφάνεια." #: ../src/dockedapp.c:313 msgid "Start when WindowMaker is started" msgstr "Εκτέλεση με την έναÏξη του Window Maker" #: ../src/dockedapp.c:319 msgid "Application path and arguments" msgstr "ΕφαÏμογή Ï€Ïος εκτέλεση και παÏάμετÏοι" #: ../src/dockedapp.c:330 msgid "Command for files dropped with DND" msgstr "Εντολή για συÏÏόμενα αÏχεία (DND)" #: ../src/dockedapp.c:342 #, c-format msgid "%d will be replaced with the file name" msgstr "το %d αντικαθίσταται με όνομα αÏχείου" #: ../src/dockedapp.c:346 msgid "DND support was not compiled in" msgstr "Δεν έγινε μεταγλώτιση με υποστήÏιξη για DND" #: ../src/dockedapp.c:352 msgid "Icon Image" msgstr "Εικονίδιο" #: ../src/dockedapp.c:364 ../src/winspector.c:1338 msgid "Browse..." msgstr "Ψάξε..." #: ../src/dockedapp.c:409 msgid "Docked Application Settings" msgstr "Ρυθμίσεις ΕφαÏμογής" #: ../src/framewin.c:642 ../src/framewin.c:737 ../src/menu.c:467 #: ../src/texture.c:549 #, c-format msgid "could not render texture: %s" msgstr "" #: ../src/framewin.c:665 ../src/framewin.c:676 ../src/framewin.c:692 #: ../src/framewin.c:703 ../src/framewin.c:710 ../src/framewin.c:717 #: ../src/icon.c:350 ../src/menu.c:496 #, c-format msgid "error rendering image:%s" msgstr "" #: ../src/framewin.c:770 #, c-format msgid "error rendering image: %s" msgstr "" #: ../src/icon.c:229 ../src/wdefaults.c:427 #, c-format msgid "error loading image file \"%s\": %s" msgstr "σφάλμα στην φόÏτωση της εικόνας στο αÏχείο \"%s\": %s" #: ../src/icon.c:477 ../src/icon.c:486 #, c-format msgid "could not create directory %s" msgstr "αδÏνατη η δημιουÏγία του καταλόγου %s" #: ../src/icon.c:753 #, c-format msgid "could not find default icon \"%s\"" msgstr "αδÏνατη η εÏÏεση του Ï€ÏοκαθοÏισμένου εικονιδίου \"%s\"" #: ../src/icon.c:759 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "αδÏνατη η φόÏτωση του Ï€ÏοκαθοÏισμένου εικονιδίου \"%s\":%s" #: ../src/main.c:193 msgid "failed to restart Window Maker." msgstr "απέτυχε η επανεκκίνηση του Window Maker." #: ../src/main.c:196 #, c-format msgid "could not exec %s" msgstr "αδÏνατη η εκτέλεση του %s" #: ../src/main.c:245 #, c-format msgid "%s aborted.\n" msgstr "%s ακυÏώθηκε.\n" #: ../src/main.c:256 #, c-format msgid "Usage: %s [options]\n" msgstr "ΧÏήση: %s [-παÏάμετÏοι]\n" #: ../src/main.c:257 msgid "The Window Maker window manager for the X window system" msgstr "Window Maker, ο διαχειÏιστής παÏαθÏÏων του Συστήματος ΠαÏαθÏÏων X" #: ../src/main.c:259 msgid " -display host:dpy\tdisplay to use" msgstr "" #: ../src/main.c:261 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr "" #: ../src/main.c:263 msgid " --no-dock\t\tdo not open the application Dock" msgstr "" #: ../src/main.c:264 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr "" #. #. puts(_(" --locale locale locale to use")); #. #: ../src/main.c:268 msgid " --visual-id visualid\tvisual id of visual to use" msgstr "" #: ../src/main.c:269 msgid " --static\t\tdo not update or save configurations" msgstr "" #: ../src/main.c:271 msgid " --synchronous\t\tturn on synchronous display mode" msgstr "" #: ../src/main.c:273 msgid " --version\t\tprint version and exit" msgstr "" #: ../src/main.c:274 msgid " --help\t\t\tshow this message" msgstr "" #: ../src/main.c:286 #, 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:307 ../src/main.c:312 #, c-format msgid "%s:could not execute initialization script" msgstr "" #: ../src/main.c:332 ../src/main.c:337 #, c-format msgid "%s:could not execute exit script" msgstr "%s:αδÏνατη η εκτέλεση του script εξόδου" #: ../src/main.c:410 ../src/main.c:417 ../src/main.c:425 ../src/main.c:441 #, c-format msgid "too few arguments for %s" msgstr "μικÏός αÏιθμός παÏαμέτÏων για το %s" #: ../src/main.c:429 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "" #: ../src/main.c:449 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "" #: ../src/main.c:450 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Για πεÏισσότεÏες πληÏοφοÏίες δοκιμάστε '%s --help'\n" #: ../src/main.c:493 msgid "X server does not support locale" msgstr "" #: ../src/main.c:496 msgid "cannot set locale modifiers" msgstr "" #: ../src/main.c:513 #, c-format msgid "could not open display \"%s\"" msgstr "" #: ../src/menu.c:303 msgid "wrealloc() failed while trying to add menu item" msgstr "" #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "" #: ../src/misc.c:125 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "" #: ../src/misc.c:131 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "" #: ../src/misc.c:749 msgid "selection timed-out" msgstr "" #: ../src/misc.c:765 msgid "Program Arguments" msgstr "ΠαÏάμετÏοι ΠÏογÏάμματος" #: ../src/misc.c:766 msgid "Enter command arguments:" msgstr "ΓÏάψε τις παÏαμέτÏους της εντολής:" #: ../src/misc.c:859 msgid "unable to get dropped data from DND drop" msgstr "" #: ../src/misc.c:867 msgid "error getting dropped data from DND drop" msgstr "" #: ../src/misc.c:873 msgid "out of memory while getting data from DND drop" msgstr "" #: ../src/misc.c:918 ../src/misc.c:1058 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "" #: ../src/misc.c:972 msgid "out of memory during expansion of \"%w\"" msgstr "" #: ../src/misc.c:990 msgid "out of memory during expansion of \"%W\"" msgstr "" #: ../src/misc.c:1006 msgid "out of memory during expansion of \"%a\"" msgstr "" #: ../src/misc.c:1037 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "" #: ../src/misc.c:1051 msgid "selection not available" msgstr "επιλογή μη διαθέσιμη" #: ../src/misc.c:1123 ../src/misc.c:1129 #, c-format msgid "bad window name value in %s state info" msgstr "" #: ../src/misc.c:1384 msgid "could not send message to background image helper" msgstr "" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "" #: ../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. If it's a string, try " "enclosing it with \"." msgstr "" #: ../src/proplist.c:434 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "" #: ../src/proplist.c:453 #, c-format msgid "could not open domain file %s" msgstr "" #: ../src/proplist.c:466 msgid "extra data after end of file" msgstr "" #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "" #: ../src/rootmenu.c:188 ../src/rootmenu.c:190 msgid "Exit" msgstr "Έξοδος" #: ../src/rootmenu.c:189 msgid "Exit window manager?" msgstr "Έξοδος από τον Window Maker;" #: ../src/rootmenu.c:225 msgid "Close X session" msgstr "ΤεÏμάτισμός του X session" #: ../src/rootmenu.c:226 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "ΤεÏματισμός του session του παÏαθυÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιβάλλοντος;\n" "(όλες οι εφαÏμογές θα Ï„ÏεÏματιστοÏν)" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/rootmenu.c:228 ../src/winmenu.c:505 msgid "Close" msgstr "Κλείσιμο" #: ../src/rootmenu.c:239 msgid "Kill X session" msgstr "Θανάτωση του X session" #: ../src/rootmenu.c:240 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Θανάτωση του session του παÏαθυÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιβάλλοντος;\n" "(όλες οι εφαÏμογές θα Ï„ÏεÏματιστοÏν)" #: ../src/rootmenu.c:507 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "" #: ../src/rootmenu.c:515 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "" #: ../src/rootmenu.c:568 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "" #: ../src/rootmenu.c:618 #, c-format msgid "%s: missing command" msgstr "%s: απουσία εντολής" #: ../src/rootmenu.c:651 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "" #: ../src/rootmenu.c:699 #, c-format msgid "%s:could not stat menu" msgstr "" #: ../src/rootmenu.c:707 #, c-format msgid "%s:could not stat menu:%s" msgstr "" #: ../src/rootmenu.c:725 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "" #: ../src/rootmenu.c:761 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" #: ../src/rootmenu.c:790 ../src/rootmenu.c:808 ../src/rootmenu.c:818 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "" #: ../src/rootmenu.c:882 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "" #: ../src/rootmenu.c:890 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "" #: ../src/rootmenu.c:1027 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "" #: ../src/rootmenu.c:1049 ../src/rootmenu.c:1141 ../src/rootmenu.c:1242 #, c-format msgid "%s:missing command in menu config: %s" msgstr "" #: ../src/rootmenu.c:1079 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "" #: ../src/rootmenu.c:1108 ../src/rootmenu.c:1207 msgid "could not make arguments for menu file preprocessor" msgstr "" #: ../src/rootmenu.c:1114 ../src/rootmenu.c:1214 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "" #: ../src/rootmenu.c:1126 ../src/rootmenu.c:1227 #, c-format msgid "%s:could not open menu file" msgstr "" #: ../src/rootmenu.c:1153 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "" #: ../src/rootmenu.c:1162 msgid "error reading preprocessed menu data" msgstr "" #: ../src/rootmenu.c:1254 #, c-format msgid "%s:no title given for the root menu" msgstr "%s:δεν δόθηκε τίτλος στο μητÏικό μενοÏ" #: ../src/rootmenu.c:1337 ../src/rootmenu.c:1404 ../src/rootmenu.c:1448 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "" #: ../src/rootmenu.c:1347 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "" #: ../src/rootmenu.c:1502 msgid "Commands" msgstr "Εντολές" #: ../src/rootmenu.c:1505 msgid "Restart" msgstr "Επανεκκίνηση" #: ../src/rootmenu.c:1506 msgid "Exit..." msgstr "Έξοδος..." #: ../src/rootmenu.c:1551 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "" #: ../src/rootmenu.c:1558 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "" #: ../src/rootmenu.c:1569 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" #: ../src/rootmenu.c:1592 ../src/rootmenu.c:1668 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "" #: ../src/rootmenu.c:1755 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Το Î¼ÎµÎ½Î¿Ï Ï„Ï‰Î½ εφαÏμογών είνα αδÏνατο να φοÏτωθεί. Κοιτάξτε στην έξοδο της " "κονσόλας για λεπτομεÏέστεÏη πεÏιγÏαφή του Ï€Ïοβλήματος." #: ../src/screen.c:459 #, c-format msgid "could not load logo image for panels: %s" msgstr "" #: ../src/screen.c:463 #, c-format msgid "error making logo image for panel:%s" msgstr "" #: ../src/screen.c:751 #, c-format msgid "could not initialize graphics library context: %s" msgstr "" #: ../src/screen.c:782 msgid "could not do initialization of WINGs widget set" msgstr "" #: ../src/screen.c:1114 #, c-format msgid "could not save session state in %s" msgstr "" #: ../src/session.c:182 ../src/wdefaults.c:575 ../src/winspector.c:354 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "" #: ../src/session.c:981 msgid "out of memory while saving session state" msgstr "" #: ../src/session.c:1072 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:1206 msgid "connection to the session manager was lost" msgstr "" #: ../src/stacking.c:73 msgid "could not get window list!!" msgstr "" #: ../src/startup.c:194 #, c-format msgid "internal X error: %s\n" msgstr "" #: ../src/startup.c:259 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "" #: ../src/startup.c:261 #, c-format msgid "got signal %i - restarting\n" msgstr "" #: ../src/startup.c:275 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "" #: ../src/startup.c:277 #, c-format msgid "got signal %i - exiting...\n" msgstr "" #: ../src/startup.c:290 #, c-format msgid "got signal %i (%s)\n" msgstr "" #: ../src/startup.c:292 #, c-format msgid "got signal %i\n" msgstr "" #: ../src/startup.c:303 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "" #. we try to restart Window Maker #: ../src/startup.c:337 msgid "trying to restart Window Maker..." msgstr "επιχειÏείται επανεκκίνηση του Window Maker..." #: ../src/startup.c:342 msgid "trying to start alternate window manager..." msgstr "επιχειÏείται εκκίνηση ÎµÎ½Î±Î»Î»Î±ÎºÏ„Î¹ÎºÎ¿Ï Î´Î¹Î±Ï‡ÎµÎ¹Ïιστή παÏαθÏÏων..." #: ../src/startup.c:347 msgid "failed to start alternate window manager. Aborting." msgstr "αποτυχία εκκίνησης ÎµÎ½Î±Î»Î»Î±ÎºÏ„Î¹ÎºÎ¿Ï Î´Î¹Î±Ï‡ÎµÎ¹Ïιστή παÏαθÏÏων. Ματαίωση." #: ../src/startup.c:349 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" #: ../src/startup.c:777 #, 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:805 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "" #: ../src/startup.c:824 msgid "it seems that there is already a window manager running" msgstr "φαίνεται πως κάποιος διαχειÏιστής παÏαθÏÏων ήδη εκτελέιται" #: ../src/startup.c:830 #, c-format msgid "could not manage screen %i" msgstr "" #: ../src/startup.c:890 msgid "could not manage any screen" msgstr "" #: ../src/switchmenu.c:114 msgid "Windows" msgstr "ΠαÏάθυÏα" #: ../src/texture.c:290 ../src/texture.c:334 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "" #: ../src/texture.c:296 ../src/texture.c:340 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "" #: ../src/texture.c:400 #, c-format msgid "library \"%s\" cound not be opened." msgstr "" #: ../src/texture.c:409 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "" #: ../src/texture.c:416 msgid "function textures not supported on this system, sorry." msgstr "" #: ../src/wdefaults.c:421 #, c-format msgid "could not find icon file \"%s\"" msgstr "αδÏνατη η εÏÏεση του αÏχείου εικονιδίου \"%s\"" #: ../src/window.c:2607 ../src/window.c:2741 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 "" #: ../src/winmenu.c:126 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Η εφαÏμογή θα θανατωθεί.\n" "Οι μη σωσμένες αλλαγές θα χαθοÏν.\n" "ΠαÏακαλώ επιβεβαιώστε." #: ../src/winmenu.c:269 ../src/winmenu.c:277 msgid "Set Shortcut" msgstr "Συντόμευση" #: ../src/winmenu.c:357 ../src/winmenu.c:403 msgid "could not create submenu for window menu" msgstr "αδÏνατη η δημιουÏγία Ï…Ï€Î¿Î¼ÎµÎ½Î¿Ï Î³Î¹Î± το Î¼ÎµÎ½Î¿Ï Ï„Ï‰Î½ παÏαθÏÏων" #: ../src/winmenu.c:412 msgid "Keep at bottom" 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:440 ../src/winmenu.c:575 msgid "Maximize" msgstr "Μεγιστοποίηση" #: ../src/winmenu.c:448 ../src/winmenu.c:561 msgid "Miniaturize" msgstr "Ελαχιστοποίηση" #: ../src/winmenu.c:457 ../src/winmenu.c:592 msgid "Shade" msgstr "ΤÏλιξη" #: ../src/winmenu.c:473 msgid "Resize/Move" msgstr "Ανάπλαση/ΜεταφοÏά" #: ../src/winmenu.c:481 msgid "Select" msgstr "Επιλογή" #: ../src/winmenu.c:489 msgid "Move To" msgstr "ΜεταφοÏά Στην" #: ../src/winmenu.c:494 msgid "Attributes..." msgstr "Ιδιότητες..." #: ../src/winmenu.c:496 msgid "Options" msgstr "Επιλογές" #: ../src/winmenu.c:556 msgid "Deminiaturize" msgstr "Αποελαχιστοποίηση" #: ../src/winmenu.c:570 msgid "Unmaximize" msgstr "Απομεγιστοποίηση" #: ../src/winmenu.c:587 msgid "Unshade" msgstr "ΞετÏλιξη" #: ../src/winspector.c:288 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "ΑδÏνατη η εÏÏεση του εικονιδίου \"%s\" που καθοÏίστηκε για το παÏάθυÏο" #: ../src/winspector.c:304 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "ΑδÏνατο να ανοιχθεί το συγκεκÏιμένο εικονίδιο \"%s\":%s" #: ../src/winspector.c:1052 msgid "Save" msgstr "Σώσιμο" #: ../src/winspector.c:1060 msgid "Apply" msgstr "ΕφαÏμογή" #: ../src/winspector.c:1066 msgid "Reload" msgstr "Σβήσιμο" #: ../src/winspector.c:1075 ../src/winspector.c:1085 msgid "Window Specification" msgstr "ΧαÏακτηÏισμός ΠαÏαθÏÏου" #: ../src/winspector.c:1076 msgid "Window Attributes" msgstr "Ιδιότητες ΠαÏαθÏÏου" #: ../src/winspector.c:1077 msgid "Advanced Options" msgstr "ΠÏοχωÏημένες Επιλογές" #: ../src/winspector.c:1078 msgid "Icon and Initial Workspace" msgstr "Εικονίδιο και ΑÏχική Επιφάνεια" #: ../src/winspector.c:1079 msgid "Application Specific" msgstr "Ειδικά Ï€Ïος την ΕφαÏμογή" #: ../src/winspector.c:1093 msgid "Defaults for all windows" msgstr "Εξ' οÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± όλα τα παÏάθυÏα" #: ../src/winspector.c:1149 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" "επιλέχθηκε παÏαπάνω, κατά το σώσιμο." #: ../src/winspector.c:1156 msgid "Attributes" msgstr "Ιδιότητες" #: ../src/winspector.c:1167 msgid "Disable Titlebar" msgstr "ΑφαίÏεση μπάÏας τίτλου" #: ../src/winspector.c:1169 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "ΑφαίÏεση της μπάÏας τίτλου του παÏαθÏÏου.\n" "Για την Ï€Ïοσπέλαση του Î¼ÎµÎ½Î¿Ï ÎµÎ½Ï„Î¿Î»ÏŽÎ½ του \n" "παÏαθÏÏου δίχως την μπάÏα, πιέστε Control+Esc\n" "(ή την αντίστοιχη συντόμευση αν αλλάξατε τις\n" "Ï€ÏοκαθοÏισμένες Ïυθμίαεις)." #: ../src/winspector.c:1176 msgid "Disable Resizebar" msgstr "ΑφαίÏεση μπάÏας αλλαγής μεγέθους" #: ../src/winspector.c:1178 msgid "Remove the resizebar of this window." msgstr "ΑφαίÏεση της μπάÏας αλλαγής μεγέθους του παÏαθÏÏου." #: ../src/winspector.c:1181 msgid "Disable Close Button" msgstr "ΑφαίÏεση ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï ÎºÎ»ÎµÎ¹ÏƒÎ¯Î¼Î±Ï„Î¿Ï‚" #: ../src/winspector.c:1183 msgid "Remove the `close window' button of this window." msgstr "ΑφαίÏεση του ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï ÎºÎ»ÎµÎ¹ÏƒÎ¯Î¼Î±Ï„Î¿Ï‚ του παÏαθÏÏου." #: ../src/winspector.c:1186 msgid "Disable Miniaturize Button" msgstr "ΑφαίÏεση ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï ÎµÎ»Î±Ï‡Î¹ÏƒÏ„Î¿Ï€Î¿Î¯Î·ÏƒÎ·Ï‚" #: ../src/winspector.c:1188 msgid "Remove the `miniaturize window' button of the window." msgstr "ΑφαίÏεση του ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï ÎµÎ»Î±Ï‡Î¹ÏƒÏ„Î¿Ï€Î¿Î¯Î·ÏƒÎ·Ï‚ του παÏαθÏÏου." #: ../src/winspector.c:1191 msgid "Keep on Top / Floating" msgstr "Πάντα στο ΠÏοσκήνιο" #: ../src/winspector.c:1193 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "ΔιατήÏηση του παÏαθÏÏου πάνω από όλα τα άλλα, χωÏίς\n" "να μποÏοÏν άλλα παÏάθυÏα να το καλÏψουςν." #: ../src/winspector.c:1197 msgid "Keep at Bottom / Sunken" msgstr "Πάντα στο ΠαÏασκήνιο" #: ../src/winspector.c:1199 msgid "Keep the window under all other windows." msgstr "ΔιατήÏηση του παÏαθÏÏου κάτω από όλα τα άλλα." #: ../src/winspector.c:1204 msgid "Make window occupy all workspaces." msgstr "ΠαÏουσία του παÏαθÏÏου σε κάθε Επιφάνεια." #: ../src/winspector.c:1207 msgid "Start Miniaturized" msgstr "Εκκίνηση ως Ελαχιστοποιημένο" #: ../src/winspector.c:1209 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "Αυτόματη ελαχιστοποίηση του παÏαθÏÏου όταν\n" "εμφανίζεται για Ï€Ïώτη φοÏά." #: ../src/winspector.c:1213 msgid "Start Maximized" msgstr "Εκκίνηση ως Μεγιστοποιημένο" #: ../src/winspector.c:1215 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "Αυτόματη μεγιστοποίηση του παÏαθÏÏου όταν\n" "εμφανίζεται για Ï€Ïώτη φοÏά." #: ../src/winspector.c:1219 msgid "Skip Window List" msgstr "ΠαÏάλειψη από τη Λίστα ΠαÏαθÏÏων" #: ../src/winspector.c:1221 msgid "Do not list the window in the window list menu." msgstr "Îα μην φαίνεται το παÏάθυÏο στη Λίστα των ΠαÏαθÏÏων" #: ../src/winspector.c:1236 msgid "Advanced" msgstr "ΠÏοχωÏημένες Ιδιότητες" #: ../src/winspector.c:1251 msgid "Ignore HideOthers" msgstr "Αγνόηση στην ΑπόκÏυψη των Άλλων" #: ../src/winspector.c:1253 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "Îα μην κÏÏβεται το παÏάθυÏο όταν εκτελείται\n" "η εντολή 'ΑπόκÏυψη των Άλλων'" #: ../src/winspector.c:1257 msgid "Don't Bind Keyboard Shortcuts" msgstr "Μη δέσμευση των συντομεÏσεων" #: ../src/winspector.c:1259 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Όταν το παÏάθυÏο είναι ενεÏγό κανένας συνδυασμός\n" "πλήκτÏων που έχει καθοÏιστεί από τον Window Maker\n" "δεν δουλεÏει. Δηλαδή, ισχÏουν οι συνδυασμοί πλήκτÏων\n" "που έχουν καθοÏιστεί από την εκτελοÏμενη εφαÏμογή στο\n" "συγκεκÏιμένο παÏάθυÏο." #: ../src/winspector.c:1265 msgid "Don't Bind Mouse Clicks" msgstr "Μη δέσμευση των κλικ ποντικιοÏ" #: ../src/winspector.c:1267 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Îα μην δεσμέυονται οι κινήσεις του ποντικιοÏ,\n" "όπως η 'Alt'+drag, στο παÏάθυÏο." #: ../src/winspector.c:1272 msgid "Keep Inside Screen" msgstr "ΠεÏιοÏισμός εντός της οθόνης" #: ../src/winspector.c:1274 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Îα μην επιτÏέπεται στο παÏάθυÏο να μετακινεί τον\n" "εαυτό του πλήÏως έξω από την οθόνη.\n" #: ../src/winspector.c:1278 msgid "Don't Let It Take Focus" msgstr "Îα μην είναι ποτέ 'ενεÏγό'" #: ../src/winspector.c:1280 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "Îα μην μποÏεί το παÏάθυÏο να γίνει ενεÏγό\n" "όταν κάνει κανείς κλικ επάνω σε αυτό." #: ../src/winspector.c:1284 msgid "Don't Save Session" msgstr "Îα μην σώζεται το Session" #: ../src/winspector.c:1286 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Îα μην αποθηκεÏεται η συγκεκÏιμένη εφαÏμογή στην\n" "εκάστοτε κατάσταση του πεÏιβάλλοντος εÏγασίας\n" "(Session State), έτσι ώστε να μην εκτελείται μαζί με\n" "άλλα Ï€ÏογÏάμματα κατά την εκκίνηση του Window Maker." #: ../src/winspector.c:1292 msgid "Emulate Application Icon" msgstr "Εξομοίωση Εικονιδίου ΕφαÏμογής" #: ../src/winspector.c:1294 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Κάνει το παÏάθυÏο να δÏα ως μία εφαÏμογή που παÏέχει\n" "αÏκετές πληÏοφοÏίες στον Window Maker για την δημιουÏγία\n" "του εικονιδίου της εφαÏμογής, το οποίο μποÏεί να τοποθετηθεί\n" "στην ΜπάÏα ή στον ΣυνδετήÏα." #: ../src/winspector.c:1299 msgid "Full Screen Maximization" msgstr "ΠλήÏης Μεγιστοποίηση" #: ../src/winspector.c:1301 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Κάνει το παÏάθυÏο να χÏησιμοποιήσει όλο το χώÏο της\n" "οθόνης όταν μεγιστοποιείται. Η μπάÏα του τίτλου και\n" "η μπάÏα αλλαγής μεγέθους τοποθετοÏνται εκτός της οθόνης." #: ../src/winspector.c:1307 msgid "Disable Language Button" msgstr "ΑφαίÏεση ÎšÎ¿Ï…Î¼Ï€Î¹Î¿Ï Î“Î»ÏŽÏƒÏƒÎ±Ï‚" #: ../src/winspector.c:1309 msgid "Remove the `toggle language' button of the window." msgstr "ΑφαίÏεση του ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï 'εναλλαγής γλώσσας' του παÏαθÏÏου." #: ../src/winspector.c:1326 msgid "Miniwindow Image" msgstr "Εικόνα Ελαχ/ποιημένου ΠαÏαθÏÏου" #: ../src/winspector.c:1345 msgid "Update" msgstr "Ανανέωση" #: ../src/winspector.c:1360 msgid "Icon File Name:" msgstr "ΑÏχείο εικονιδίου:" #: ../src/winspector.c:1372 msgid "Ignore client supplied icon" msgstr "Αγνόηση εξ' οÏÎ¹ÏƒÎ¼Î¿Ï ÎµÎ¹ÎºÎ¿Î½Î¹Î´Î¯Î¿Ï…" #: ../src/winspector.c:1379 msgid "Initial Workspace" msgstr "ΑÏχική Επιφάνεια" #: ../src/winspector.c:1381 msgid "The workspace to place the window when it'sfirst shown." msgstr "Η επιφάνεια στη οποία θα τοποθετηθεί το παÏάθυÏο\n" "όταν εμφανίζεται για Ï€Ïώτη φοÏά." #: ../src/winspector.c:1387 msgid "Nowhere in particular" msgstr "Πουθενά συγκεκÏιμένα" #: ../src/winspector.c:1405 msgid "Application Wide" msgstr "Άλλες Ιδιότητες" #: ../src/winspector.c:1416 msgid "Start Hidden" msgstr "Εκκίνηση ως ΚÏυμμένο" #: ../src/winspector.c:1418 msgid "Automatically hide application when it's started." msgstr "Αυτόματη απόκÏυψη της εφαÏμογής όταν\n" "εκτελείται για Ï€Ïώτη φοÏά." #: ../src/winspector.c:1421 msgid "No Application Icon" msgstr "ΧωÏίς το εικονίδιο της εφαÏμογής" #: ../src/winspector.c:1423 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "ΑπενεÏγοποίηση του εικονιδίου της εφαÏμογής. Έτσι,\n" "δεν μποÏείται να τοποθετήσετε το εικονίδιο της\n" "εφαÏμογής στην ΜπάÏα ή τον ΣυνδετήÏα και\n" "πιθανότατα είδη τοποθετημένα εικονίδια της εφαÏμογής\n" "στην ΜπάÏα ή τον ΣυνδετήÏα να μην δουλεÏουν σωστά." #: ../src/workspace.c:107 ../src/workspace.c:108 ../src/workspace.c:703 #, c-format msgid "Workspace %i" msgstr "Επιφάνεια %i" #: ../src/workspace.c:760 msgid "Workspaces" msgstr "Επιφάνειες" #: ../src/workspace.c:762 msgid "could not create Workspace menu" msgstr "αδÏνατη η δημιουÏγία του Î¼ÎµÎ½Î¿Ï Î•Ï€Î¹Ï†Î±Î½ÎµÎ¹ÏŽÎ½" #: ../src/workspace.c:769 msgid "New" msgstr "ΔημιουÏγία Επιφάνειας" #: ../src/workspace.c:770 msgid "Destroy Last" msgstr "ΚαταστÏοφή Τελευταίας" #: ../src/xutil.c:228 msgid "invalid data in selection" msgstr "" WindowMaker-0.95.5/po/ja.po0000644000175000017500000015371612214432632012346 00000000000000# Japanese translation of Window Maker message catalog # Copyright (c) 1997, 1998 Alfredo K. Kojima # Yasuyuki Furukawa , 1998 # modified by Jun Nishii # modified by MANOME Tomonori # modified by Takeo Hashimoto # collaborated with members in wmaker-jp-ML and Project Vine # # Last Update: for version 0.95.2 # msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.95.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-02-20 12:42+0900\n" "PO-Revision-Date: 2012-03-01 09:52+ZONE\n" "Last-Translator: Takeo Hashimoto \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:345 ../src/dialog.c:563 ../src/dock.c:3041 #: ../src/dockedapp.c:207 ../src/main.c:348 ../src/rootmenu.c:1701 #: ../src/winspector.c:351 ../src/winspector.c:367 msgid "Error" msgstr "エラー" #: ../src/appicon.c:346 msgid "Could not open specified icon file" msgstr "指定ã®ã‚¢ã‚¤ã‚³ãƒ³ãƒ•ァイルãŒé–‹ã‘ã¾ã›ã‚“" #: ../src/appicon.c:346 ../src/dialog.c:405 ../src/dialog.c:466 #: ../src/dialog.c:563 ../src/dialog.c:969 ../src/dialog.c:1602 #: ../src/dock.c:443 ../src/dock.c:450 ../src/dock.c:472 ../src/dock.c:3041 #: ../src/dockedapp.c:208 ../src/dockedapp.c:378 ../src/main.c:348 #: ../src/rootmenu.c:1704 ../src/winspector.c:351 ../src/winspector.c:367 msgid "OK" msgstr "了解" #: ../src/appicon.c:376 ../src/dock.c:221 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " を強制終了ã•ã›ã¾ã™\n" "ä¿å­˜ã•れã¦ã„ãªã„変更ã¯å…¨ã¦å¤±ã‚れã¾ã™\n" "終了ã•ã›ã¾ã™ã‹ï¼Ÿ " #: ../src/appicon.c:383 ../src/dock.c:239 ../src/winmenu.c:119 msgid "Kill Application" msgstr "アプリケーション強制終了" #: ../src/appicon.c:384 ../src/dock.c:240 ../src/winmenu.c:122 msgid "Yes" msgstr "ã¯ã„" #: ../src/appicon.c:384 ../src/dock.c:240 ../src/winmenu.c:122 msgid "No" msgstr "ã„ã„ãˆ" #: ../src/appicon.c:412 ../src/dock.c:1036 ../src/dock.c:3198 msgid "Unhide Here" msgstr "ã“ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã§å…ƒã«æˆ»ã™" #: ../src/appicon.c:413 ../src/appicon.c:436 ../src/dock.c:1038 #: ../src/dock.c:1040 ../src/dock.c:3210 ../src/winmenu.c:433 msgid "Hide" msgstr "éš ã™" #: ../src/appicon.c:414 msgid "Set Icon..." msgstr "アイコン設定..." #: ../src/appicon.c:415 ../src/dock.c:1044 ../src/rootmenu.c:224 #: ../src/winmenu.c:460 msgid "Kill" msgstr "強制終了" #: ../src/appicon.c:434 ../src/dock.c:3208 msgid "Unhide" msgstr "å…ƒã«æˆ»ã™" #: ../src/application.c:362 #, c-format msgid "recreating missing icon '%s'" msgstr "アイコン '%s' ã®å†ä½œæˆ" #: ../src/defaults.c:711 ../src/defaults.c:835 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "グローãƒãƒ«æ¨™æº–データベースã®ãƒ‰ãƒ¡ã‚¤ãƒ³%s (%s)ãŒãŠã‹ã—ã„ã§ã™!" #: ../src/defaults.c:715 #, c-format msgid "could not load domain %s from global defaults database" msgstr "グローãƒãƒ«æ¨™æº–データベースã‹ã‚‰ãƒ‰ãƒ¡ã‚¤ãƒ³ %s をロードã§ãã¾ã›ã‚“" #: ../src/defaults.c:760 ../src/defaults.c:774 #, c-format msgid "invalid global menu file %s" msgstr "グローãƒãƒ«ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒ•ァイル %s ãŒé–“é•ã£ã¦ã„ã¾ã™" #: ../src/defaults.c:821 ../src/defaults.c:910 ../src/defaults.c:946 #: ../src/defaults.c:996 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "標準データベースã®ãƒ‰ãƒ¡ã‚¤ãƒ³ %s (%s)ãŒãŠã‹ã—ã„ã§ã™!" #: ../src/defaults.c:825 ../src/defaults.c:930 ../src/defaults.c:982 #: ../src/defaults.c:1009 #, c-format msgid "could not load domain %s from user defaults database" msgstr "ユーザ標準データベースã‹ã‚‰ãƒ‰ãƒ¡ã‚¤ãƒ³ %s をロードã§ãã¾ã›ã‚“" #: ../src/defaults.c:854 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "グローãƒãƒ«æ¨™æº–データベース(%s)ã‹ã‚‰ãƒ‰ãƒ¡ã‚¤ãƒ³ %s をロードã§ãã¾ã›ã‚“" #: ../src/defaults.c:972 ../src/screen.c:408 #, c-format msgid "could not load logo image for panels: %s" msgstr "パãƒãƒ«ç”¨ã®ãƒ­ã‚´ç”»åƒ %s ãŒèª­ã¿è¾¼ã‚ã¾ã›ã‚“" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1178 ../src/defaults.c:1301 ../src/defaults.c:1387 #: ../src/defaults.c:1792 ../src/defaults.c:1808 ../src/defaults.c:1849 #: ../src/defaults.c:1894 ../src/defaults.c:2301 ../src/wdefaults.c:541 #: ../src/wdefaults.c:570 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "\"%s\"ã«å¯¾ã™ã‚‹ã‚ªãƒ—ション形å¼ãŒé•ã„ã¾ã™. %såž‹ã«ã—ã¦ä¸‹ã•ã„" #: ../src/defaults.c:1180 ../src/defaults.c:1253 ../src/defaults.c:1278 #: ../src/defaults.c:1305 ../src/defaults.c:1317 ../src/defaults.c:1331 #: ../src/defaults.c:1345 ../src/defaults.c:1391 ../src/defaults.c:1403 #: ../src/defaults.c:1796 ../src/defaults.c:1813 ../src/defaults.c:1825 #: ../src/defaults.c:1854 ../src/defaults.c:1870 ../src/defaults.c:1899 #: ../src/defaults.c:1978 ../src/defaults.c:2306 ../src/defaults.c:2317 #, c-format msgid "using default \"%s\" instead" msgstr "代ã‚ã‚Šã«æ¨™æº–ã®è¨­å®š\"%s\"を使ã„ã¾ã™" #: ../src/defaults.c:1207 #, c-format msgid "wrong option value for key \"%s\"; got \"%s\", should be one of %s." msgstr "キー\"%s\"ã«å¯¾ã™ã‚‹ã‚ªãƒ—ションãŒé•ã„ã¾ã™(\"%s\"). %s ã®ã©ã‚Œã‹ã«ã—ã¦ä¸‹ã•ã„" #: ../src/defaults.c:1249 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "\"%s\"(\"%s\"ã®å¼•æ•°)ã‚’booleanåž‹ã¸å¤‰æ›ã§ãã¾ã›ã‚“" #: ../src/defaults.c:1276 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "\"%s\"(\"%s\"ã®å¼•æ•°)ã‚’æ•´æ•°(integeråž‹)ã¸å¤‰æ›ã§ãã¾ã›ã‚“" #: ../src/defaults.c:1313 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "\"%s\"ã«å¯¾ã™ã‚‹è¦ç´ æ•°ãŒæ­£ã—ãã‚りã¾ã›ã‚“" #: ../src/defaults.c:1327 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "\"%s\"ã«å¯¾ã™ã‚‹æŒ‡å®šãŒä¸æ­£ã§ã™. Coordinateåž‹ã«ã—ã¦ãã ã•ã„" #: ../src/defaults.c:1341 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "\"%s\"ã«å¯¾ã—ã¦æ•´æ•°åˆ—ã¸å¤‰æ›ã§ãã¾ã›ã‚“" #: ../src/defaults.c:1506 ../src/defaults.c:1536 ../src/defaults.c:1552 #: ../src/defaults.c:1581 ../src/defaults.c:1603 ../src/defaults.c:1654 #: ../src/defaults.c:1693 ../src/defaults.c:1730 ../src/defaults.c:1746 #, c-format msgid "\"%s\" is not a valid color name" msgstr "カラーåã®æŒ‡å®š\"%s\"ãŒé–“é•ã£ã¦ã„ã¾ã™" #: ../src/defaults.c:1518 ../src/defaults.c:1569 msgid "bad number of arguments in gradient specification" msgstr "グラデーション指定ã®å¼•æ•°ã®æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™" #: ../src/defaults.c:1627 msgid "too few arguments in multicolor gradient specification" msgstr "マルãƒã‚«ãƒ©ãƒ¼ã®ã‚°ãƒ©ãƒ‡ãƒ¼ã‚·ãƒ§ãƒ³æŒ‡å®šã®å¼•æ•°ãŒè¶³ã‚Šã¾ã›ã‚“" #: ../src/defaults.c:1719 msgid "bad number of arguments in textured gradient specification" msgstr "テクスãƒãƒ£ã®ã‚°ãƒ©ãƒ‡ãƒ¼ã‚·ãƒ§ãƒ³æŒ‡å®šã®å¼•æ•°ã®æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™" #: ../src/defaults.c:1762 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "ä¸é€æ˜Žåº¦ã« %s ã¯æŒ‡å®šã§ãã¾ã›ã‚“. 0 ã‹ã‚‰ 255 ã§æŒ‡å®šã—ã¦ãã ã•ã„" #: ../src/defaults.c:1779 #, c-format msgid "invalid texture type %s" msgstr "テクスãƒãƒ£ã®ã‚¿ã‚¤ãƒ— %s ãŒä¸æ­£ã§ã™" #: ../src/defaults.c:1821 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "`%s'ã«å¯¾ã™ã‚‹ãƒ†ã‚¯ã‚¹ãƒãƒ£ã®æŒ‡å®šã‚¨ãƒ©ãƒ¼ã§ã™" #: ../src/defaults.c:1866 msgid "Wrong type for workspace background. Should be a texture type." msgstr "ワークスペース背景ã®å½¢å¼ãŒé•ã„ã¾ã™. Textureåž‹ã«ã—ã¦ãã ã•ã„" #: ../src/defaults.c:1912 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "ワークスペース %i ã®èƒŒæ™¯ã®å½¢å¼ãŒé•ã„ã¾ã™. Textureåž‹ã«ã—ã¦ãã ã•ã„" #: ../src/defaults.c:1951 msgid "could not load any usable font!!!" msgstr "使用ã§ãるフォントãŒè¦‹å½“ãŸã‚Šã¾ã›ã‚“!!!" #: ../src/defaults.c:1974 #, c-format msgid "could not get color for key \"%s\"" msgstr "\"%s\"ã«å¯¾ã™ã‚‹è‰²ãŒå¾—られã¾ã›ã‚“" #: ../src/defaults.c:2026 ../src/rootmenu.c:438 #, c-format msgid "%s: invalid key modifier \"%s\"" msgstr "%s:ã‚­ãƒ¼ã®æŒ‡å®š\"%s\"ãŒé–“é•ã£ã¦ã„ã¾ã™" #: ../src/defaults.c:2038 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:ショートカット\"%s\"ã®ã‚­ãƒ¼æŒ‡å®šãŒé–“é•ã£ã¦ã„ã¾ã™" #: ../src/defaults.c:2044 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s:ショートカット\"%s\"ã®ã‚­ãƒ¼æŒ‡å®šãŒé–“é•ã£ã¦ã„ã¾ã™" #: ../src/defaults.c:2066 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s:キー%sã®è¨­å®šãŒé©åˆ‡ã§ã‚りã¾ã›ã‚“" #: ../src/defaults.c:2173 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "ビットマップファイル \"%s\" ã‚’é–‹ã‘ã¾ã›ã‚“" #: ../src/defaults.c:2176 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" ã¯æ­£ã—ã„ビットマップファイルã§ã¯ã‚りã¾ã›ã‚“" #: ../src/defaults.c:2179 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "ビットマップファイル \"%s\" を読んã§ã„ã‚‹ã¨ãã«ãƒ¡ãƒ¢ãƒªãŒä¸è¶³ã—ã¾ã—ãŸ" #: ../src/defaults.c:2217 ../src/defaults.c:2250 msgid "bad number of arguments in cursor specification" msgstr "カーソル指定ã®å¼•æ•°ã®æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™" #: ../src/defaults.c:2233 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "\"%s\" ã¨ã„ã†åå‰ã®ã‚«ãƒ¼ã‚½ãƒ«ã¯çµ„ã¿è¾¼ã¾ã‚Œã¦ã¾ã›ã‚“" #: ../src/defaults.c:2260 ../src/defaults.c:2272 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "カーソルビットマップ \"%s\" を見ã¤ã‘られã¾ã›ã‚“" #: ../src/defaults.c:2313 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "\"%s\" ã«å¯¾ã™ã‚‹ã‚«ãƒ¼ã‚½ãƒ«ã®æŒ‡å®šã‚¨ãƒ©ãƒ¼ã§ã™" #: ../src/defaults.c:2378 msgid "could not render texture for icon background" msgstr "アイコン背景ã®ãƒ†ã‚¯ã‚¹ãƒãƒ£ã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" #: ../src/defaults.c:2892 ../src/defaults.c:2961 #, c-format msgid "Invalid arguments for option \"%s\"" msgstr "無効ãªå¼•æ•°ã§ã™ '%s'" #: ../src/defaults.c:2898 ../src/defaults.c:2967 #, c-format msgid "Could not find image \"%s\" for option \"%s\"" msgstr "%s 指定ã§ç”»åƒã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“: %s" #: ../src/defaults.c:2903 ../src/defaults.c:2975 #, c-format msgid "Could not load image \"%s\" for option \"%s\"" msgstr "%s 指定ã§ç”»åƒã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“: %s" #: ../src/defaults.c:2913 msgid "Invalid split sizes for SwitchPanel back image." msgstr "" #: ../src/defaults.c:2982 #, c-format msgid "Invalid number of arguments for option \"%s\"" msgstr "オプション(\"%s\")ã®æŒ‡å®šã®å¼•æ•°ã®æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™" #: ../src/defaults.c:2997 #, c-format msgid "Value for option \"%s\" must be an array of 7 strings" msgstr "" #: ../src/defaults.c:3011 #, c-format msgid "Invalid argument for option \"%s\" item %d" msgstr "" #: ../src/dialog.c:126 msgid "Save workspace state" msgstr "ワークスペースã®çŠ¶æ…‹ä¿å­˜" #: ../src/dialog.c:405 ../src/dialog.c:466 ../src/dialog.c:976 #: ../src/dock.c:472 ../src/dockedapp.c:383 ../src/rootmenu.c:180 #: ../src/rootmenu.c:224 msgid "Cancel" msgstr "キャンセル" #: ../src/dialog.c:558 msgid "Could not open directory " msgstr "ディレクトリを開ã‘ã¾ã›ã‚“" #: ../src/dialog.c:608 msgid "Could not load image file " msgstr "ç”»åƒãƒ•ァイルを読ã¿è¾¼ã‚ã¾ã›ã‚“" #: ../src/dialog.c:903 msgid "Directories" msgstr "ディレクトリ" #: ../src/dialog.c:912 msgid "Icons" msgstr "アイコン" #: ../src/dialog.c:945 msgid "Preview" msgstr "プレビュー" #: ../src/dialog.c:958 msgid "File Name:" msgstr "ファイルå:" #: ../src/dialog.c:982 msgid "Choose File" msgstr "ãƒ•ã‚¡ã‚¤ãƒ«é¸æŠž" #: ../src/dialog.c:1001 ../src/dialog.c:1003 msgid "Icon Chooser" msgstr "ã‚¢ã‚¤ã‚³ãƒ³é¸æŠž" #: ../src/dialog.c:1184 msgid "Window Manager for X" msgstr "Window Manager for X" #: ../src/dialog.c:1186 #, c-format msgid "Version %s" msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s" #: ../src/dialog.c:1207 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Using visual 0x%x: %s %ibpp " #: ../src/dialog.c:1214 msgid "(32 thousand colors)\n" msgstr "(3 万 2 åƒè‰²)\n" #: ../src/dialog.c:1217 msgid "(64 thousand colors)\n" msgstr "(6 万 4 åƒè‰²)\n" #: ../src/dialog.c:1221 msgid "(16 million colors)\n" msgstr "(1,600 万色)\n" #: ../src/dialog.c:1224 #, c-format msgid "(%d colors)\n" msgstr "(%d 色)\n" #: ../src/dialog.c:1233 #, c-format msgid "Total memory allocated: %i kB (in use: %i kB).\n" msgstr "割当メモリ: %i kB. 使用中メモリ: %i kB.\n" #: ../src/dialog.c:1240 msgid "Supported image formats: " msgstr "対応画åƒå½¢å¼: " #: ../src/dialog.c:1247 msgid "" "\n" "Additional support for: WMSPEC" msgstr "" "\n" "拡張対応: " #: ../src/dialog.c:1253 msgid "\n" msgstr "" #: ../src/dialog.c:1255 msgid "Solaris " msgstr "Solaris " #: ../src/dialog.c:1257 msgid "Xinerama: " msgstr "Xinerama: " #: ../src/dialog.c:1289 msgid "Info" msgstr "情報 " #: ../src/dialog.c:1365 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" "02110-1301 USA." msgstr "" #: ../src/dialog.c:1389 msgid "Legal" msgstr "" #: ../src/dialog.c:1532 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "ダイアログãŒå£Šã‚Œã¦æŽ¥ç¶šã§ãã¾ã›ã‚“. 中止ã—ã¾ã™" #: ../src/dialog.c:1558 msgid "Fatal error" msgstr "致命的ãªã‚¨ãƒ©ãƒ¼" #: ../src/dialog.c:1568 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker 㯠シグナル %i ã‚’å—ã‘ã¾ã—ãŸ." #: ../src/dialog.c:1576 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" "ã“ã®è‡´å‘½çš„ãªã‚¨ãƒ©ãƒ¼ã¯ãƒã‚°ã«ã‚ˆã‚‹ã‚‚ã®ã‹ã‚‚ã—れã¾ã›ã‚“. åŒæ¢±ã®ãƒã‚°ãƒ•ォームを使ã£ã¦ " "bugs@windowmaker.info å®›ã¦ã«ãƒ¬ãƒãƒ¼ãƒˆã—ã¦ä¸‹ã•ã„" #: ../src/dialog.c:1583 msgid "What do you want to do now?" msgstr "ã•ã¦, ã©ã†ã—ã¾ã™ã‹?" #: ../src/dialog.c:1589 msgid "Select action" msgstr "é¸ã‚“ã§ãã ã•ã„" #: ../src/dialog.c:1590 msgid "Abort and leave a core file" msgstr "中止ã—㦠core ファイルを残ã™" #: ../src/dialog.c:1591 msgid "Restart Window Maker" msgstr "Window Maker ã‚’å†èµ·å‹•ã™ã‚‹" #: ../src/dialog.c:1592 msgid "Start alternate window manager" msgstr "ã‹ã‚りã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãƒžãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã™ã‚‹" #: ../src/dialog.c:1757 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop environment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" #: ../src/dialog.c:1780 msgid "About GNUstep" msgstr "" #: ../src/dock.c:170 ../src/menu.c:1768 #, c-format msgid "Type the name for workspace %i:" msgstr "ワークスペース%iã®åå‰ã‚’入力ã—ã¦ä¸‹ã•ã„: " #: ../src/dock.c:171 ../src/dock.c:1003 ../src/dock.c:1005 ../src/dock.c:3117 #: ../src/menu.c:1772 msgid "Rename Workspace" msgstr "ワークスペースåã®å¤‰æ›´" #: ../src/dock.c:438 ../src/dock.c:445 msgid "Warning" msgstr "警告" #: ../src/dock.c:439 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "ã„ãã¤ã‹ã®ã‚¢ã‚¤ã‚³ãƒ³ãŒã€Œã©ã“ã§ã‚‚表示ã€ã«ã§ãã¾ã›ã‚“. ä»–ã®ã‚¢ã‚¤ã‚³ãƒ³ãŒé•ã†ãƒ¯ãƒ¼ã‚¯ã‚¹" "ペースã§åŒã˜å ´æ‰€ã«ãƒ‰ãƒƒã‚¯ã•れã¦ã„ãªã„ã“ã¨ã¨, ã©ã“ã‹ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã§ã‚¯ãƒªãƒƒãƒ—" "ãŒã„ã£ã±ã„ã«ãªã£ã¦ã„ãªã„ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„" #: ../src/dock.c:446 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "アイコンを「ã©ã“ã§ã‚‚表示ã€ã«ã§ãã¾ã›ã‚“. ä»–ã®ã‚¢ã‚¤ã‚³ãƒ³ãŒé•ã†ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã§åŒ" "ã˜å ´æ‰€ã«ãƒ‰ãƒƒã‚¯ã•れã¦ã„ãªã„ã“ã¨ã¨, ã©ã“ã‹ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã§ã‚¯ãƒªãƒƒãƒ—ãŒã„ã£ã±ã„" "ã«ãªã£ã¦ã„ãªã„ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„" #: ../src/dock.c:470 msgid "Workspace Clip" msgstr "ワークスペース クリップ" #: ../src/dock.c:471 msgid "All selected icons will be removed!" msgstr "é¸æŠžã•れãŸã‚¢ã‚¤ã‚³ãƒ³å…¨ã¦ãŒå‰Šé™¤ã•れã¾ã™!" #: ../src/dock.c:521 ../src/dock.c:1016 ../src/dock.c:1018 ../src/dock.c:3153 msgid "Keep Icon" msgstr "ã‚¢ã‚¤ã‚³ãƒ³ã‚’ä¿æŒã™ã‚‹" #: ../src/dock.c:522 ../src/dock.c:1910 ../src/dock.c:2041 msgid "Type the command used to launch the application" msgstr "" "ã“ã®ã‚¢ãƒ—リケーションを起動ã™ã‚‹ãŸã‚ã®\n" "コマンドを入力ã—ã¦ãã ã•ã„" #: ../src/dock.c:842 #, c-format msgid "could not launch application %s" msgstr "アプリケーション%sã‚’èµ·å‹•ã§ãã¾ã›ã‚“" #: ../src/dock.c:893 msgid "could not create workspace submenu for Clip menu" msgstr "クリップメニューã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‚µãƒ–メニューãŒä½œæˆã§ãã¾ã›ã‚“" #: ../src/dock.c:948 msgid "could not create options submenu for Clip menu" msgstr "クリップメニューã®ã‚ªãƒ—ションサブメニューãŒä½œæˆã§ãã¾ã›ã‚“" #: ../src/dock.c:952 ../src/dock.c:993 msgid "Keep on Top" msgstr "å¸¸ã«æ‰‹å‰ã«è¡¨ç¤º" #: ../src/dock.c:957 msgid "Collapsed" msgstr "折り畳む" #: ../src/dock.c:962 msgid "Autocollapse" msgstr "è‡ªå‹•çš„ã«æŠ˜ã‚Šç•³ã‚€" #: ../src/dock.c:967 msgid "Autoraise" msgstr "自動的ã«å‰é¢ã«è¡¨ç¤º" #: ../src/dock.c:972 msgid "Autoattract Icons" msgstr "アイコンを自動的ã«å¼•ã寄ã›ã‚‹" #: ../src/dock.c:998 msgid "Clip Options" msgstr "クリップオプション" #: ../src/dock.c:1007 msgid "Selected" msgstr "é¸æŠž" #: ../src/dock.c:1012 ../src/dock.c:1014 ../src/dock.c:3144 msgid "Select All Icons" msgstr "å…¨ã¦ã®ã‚¢ã‚¤ã‚³ãƒ³ã®é¸æŠž" #: ../src/dock.c:1020 ../src/dock.c:1022 ../src/dock.c:3161 msgid "Move Icon To" msgstr "アイコンを移動" #: ../src/dock.c:1027 ../src/dock.c:1029 ../src/dock.c:3172 msgid "Remove Icon" msgstr "アイコンを削除" #: ../src/dock.c:1031 msgid "Attract Icons" msgstr "アイコンを引ã寄ã›ã‚‹" #: ../src/dock.c:1034 msgid "Launch" msgstr "èµ·å‹•" #: ../src/dock.c:1042 msgid "Settings..." msgstr "設定..." #: ../src/dock.c:1366 ../src/dock.c:1466 #, c-format msgid "bad value in docked icon state info %s" msgstr "登録ã•れãŸã‚¢ã‚¤ã‚³ãƒ³ã®æƒ…å ±%sã«ä¸æ­£ãªå†…容ãŒã‚りã¾ã™" #: ../src/dock.c:1473 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "登録ã•れãŸã‚¢ã‚¤ã‚³ãƒ³ã®ä½ç½®(%i, %i)ã¯ä¸æ­£ãªå€¤ã§ã™" #: ../src/dock.c:1492 #, c-format msgid "bad value in dock state info:%s" msgstr "" #: ../src/dock.c:1709 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "登録ã•れãŸã‚¢ã‚¤ã‚³ãƒ³ãŒå¤šã™ãŽã¾ã™. 内容ã®ä¸€éƒ¨ã¯ç„¡åйã«ãªã‚Šã¾ã™" #. icon->forced_dock = 1; #: ../src/dock.c:1909 ../src/dock.c:2040 msgid "Dock Icon" msgstr "ドック登録アイコン" #: ../src/dock.c:3039 #, c-format msgid "Could not execute command \"%s\"" msgstr "コマンド\"%s\"を実行ã§ãã¾ã›ã‚“" #: ../src/dock.c:3123 msgid "Toggle Omnipresent" msgstr "ã©ã“ã§ã‚‚表示" #: ../src/dock.c:3128 ../src/winmenu.c:406 ../src/winspector.c:1302 msgid "Omnipresent" msgstr "ã©ã“ã§ã‚‚表示" #: ../src/dock.c:3142 msgid "Unselect All Icons" msgstr "å…¨ã¦ã®ã‚¢ã‚¤ã‚³ãƒ³ã®é¸æŠžè§£é™¤" #: ../src/dock.c:3151 msgid "Keep Icons" msgstr "ã‚¢ã‚¤ã‚³ãƒ³ã‚’ä¿æŒã™ã‚‹" #: ../src/dock.c:3159 msgid "Move Icons To" msgstr "アイコンを移動" #: ../src/dock.c:3170 msgid "Remove Icons" msgstr "アイコンを削除" #: ../src/dock.c:3200 msgid "Bring Here" msgstr "æŒã£ã¦ãã‚‹" #: ../src/dockedapp.c:133 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "登録ã•れãŸãƒ‰ãƒƒã‚¯ã‚¢ãƒ—リã§ä½¿ã‚れã¦ã„るアイコン %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" #: ../src/dockedapp.c:206 #, c-format msgid "Could not open specified icon file: %s" msgstr "指定ã®ã‚¢ã‚¤ã‚³ãƒ³ãƒ•ァイルãŒé–‹ã‘ã¾ã›ã‚“: %s" #: ../src/dockedapp.c:208 msgid "Ignore" msgstr "無視" #: ../src/dockedapp.c:300 msgid "Start when Window Maker is started" msgstr "Window Maker 起動時ã«ä¸€ç·’ã«èµ·å‹•" #: ../src/dockedapp.c:305 msgid "Lock (prevent accidental removal)" msgstr "ロックã™ã‚‹ (䏿…®ã®ç™»éŒ²è§£é™¤ã‚’予防)" #: ../src/dockedapp.c:309 msgid "Application path and arguments" msgstr "アプリケーションã®ãƒ‘スã¨å¼•æ•°" #: ../src/dockedapp.c:320 msgid "Command for middle-click launch" msgstr "中ボタンクリックã§èµ·å‹•ã•れるコマンド" #: ../src/dockedapp.c:332 #, c-format msgid "%s will be replaced with current selection" msgstr "%s 㯠セレクションã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™" #: ../src/dockedapp.c:336 msgid "Command for files dropped with DND" msgstr "DnD ã§è½ã¨ã•れãŸãƒ•ァイル用ã®ã‚³ãƒžãƒ³ãƒ‰" #: ../src/dockedapp.c:348 #, c-format msgid "%d will be replaced with the file name" msgstr "%d 㯠ファイルåã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™" #: ../src/dockedapp.c:351 msgid "DND support was not compiled in" msgstr "DnD対応ã§ã‚³ãƒ³ãƒ‘イルã•れã¦ã„ã¾ã›ã‚“" #: ../src/dockedapp.c:356 msgid "Icon Image" msgstr "アイコン画åƒ" #: ../src/dockedapp.c:367 ../src/winspector.c:1450 msgid "Browse..." msgstr "å‚ç…§..." #: ../src/dockedapp.c:425 msgid "Docked Application Settings" msgstr "ドックã®ç™»éŒ²ã‚¢ãƒ—リケーション設定" #: ../src/framewin.c:619 ../src/framewin.c:711 ../src/menu.c:412 #: ../src/texture.c:453 #, c-format msgid "could not render texture: %s" msgstr "テクスãƒãƒ£ã‚’レンダリングã§ãã¾ã›ã‚“: %s" #: ../src/framewin.c:642 ../src/framewin.c:652 ../src/framewin.c:668 #: ../src/framewin.c:679 ../src/framewin.c:686 ../src/framewin.c:693 #: ../src/icon.c:330 ../src/menu.c:439 #, c-format msgid "error rendering image:%s" msgstr "ç”»åƒã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã‚¨ãƒ©ãƒ¼: %s" #: ../src/framewin.c:739 #, c-format msgid "error rendering image: %s" msgstr "ç”»åƒã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã‚¨ãƒ©ãƒ¼: %s" #: ../src/icon.c:215 ../src/wdefaults.c:421 #, c-format msgid "error loading image file \"%s\": %s" msgstr "ç”»åƒãƒ•ァイル\"%s\"ã®ãƒ­ãƒ¼ãƒ‰ã‚¨ãƒ©ãƒ¼: %s" #: ../src/icon.c:438 ../src/icon.c:447 #, c-format msgid "could not create directory %s" msgstr "ディレクトリ%sを作æˆã§ãã¾ã›ã‚“" #: ../src/icon.c:696 #, c-format msgid "could not find default icon \"%s\"" msgstr "標準アイコン\"%s\"ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" #: ../src/icon.c:702 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "標準アイコン\"%s\"をロードã§ãã¾ã›ã‚“:%s" #: ../src/main.c:305 msgid "failed to restart Window Maker." msgstr "Window Maker ã®å†èµ·å‹•ã«å¤±æ•—ã—ã¾ã—ãŸ." #: ../src/main.c:308 #, c-format msgid "could not exec %s" msgstr "%s を実行ã§ãã¾ã›ã‚“" #: ../src/main.c:346 msgid "Could not execute command: " msgstr "コマンドを実行ã§ãã¾ã›ã‚“: " #: ../src/main.c:418 #, c-format msgid "%s aborted.\n" msgstr "%s ã¯ä¸­æ–­ã—ã¾ã—ãŸ.\n" #: ../src/main.c:427 #, c-format msgid "Usage: %s [options]\n" msgstr "使用法: %s [オプション]\n" #: ../src/main.c:428 msgid "The Window Maker window manager for the X window system" msgstr "Window Maker -- X ウィンドウシステムã®ãŸã‚ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãƒžãƒãƒ¼ã‚¸ãƒ£" #: ../src/main.c:430 msgid " -display host:dpy\tdisplay to use" msgstr " -display ホスト:ID番å·\tãƒ‡ã‚£ã‚¹ãƒ—ãƒ¬ã‚¤ã®æŒ‡å®š" #: ../src/main.c:432 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\t設定ファイルをプリプロセッサã«ã‹ã‘ãªã„" #: ../src/main.c:434 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tアプリケーション・ドックを開ã‹ãªã„" #: ../src/main.c:435 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tアプリケーション・クリップ(Clip)ã‚’é–‹ã‹ãªã„" #: ../src/main.c:436 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tアプリケーションã®è‡ªå‹•起動を行ã‚ãªã„" #: ../src/main.c:437 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tä¿å­˜ã—ãŸã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’復元ã—ãªã„" #: ../src/main.c:439 msgid " --locale locale\tlocale to use" msgstr " --locale locale\t使用ã™ã‚‹localeã®æŒ‡å®š" #: ../src/main.c:441 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr " --create-stdcmap\t擬似色解åƒåº¦ã«æ¨™æº–カラーマップヒントを作æˆã™ã‚‹" #: ../src/main.c:442 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id ビジュアルID\tビジュアルIDã®æŒ‡å®š" #: ../src/main.c:443 msgid " --static\t\tdo not update or save configurations" msgstr " static\t\tスタティックモードã§èµ·å‹•(設定をä¿å­˜ï¼æ›´æ–°ã—ãªã„)" #: ../src/main.c:445 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr " --no-polling\t\t周期的ã«è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã®æ›´æ–°ã‚’ãƒã‚§ãƒƒã‚¯ã—ãªã„" #: ../src/main.c:447 msgid " --version\t\tprint version and exit" msgstr " --version\t\tãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’表示ã—ã¦ã™ã終了ã™ã‚‹" #: ../src/main.c:448 msgid " --help\t\t\tshow this message" msgstr " --help\t\tã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’表示" #: ../src/main.c:458 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "ユーザã®GNUstepディレクトリ(%s)ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" #: ../src/main.c:461 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "ユーザã®GNUstepディレクトリã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ,\n" "Window MakerãŒæ­£ã—ãインストールã•れã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦, wmaker.instを実行ã—" "ã¦ãã ã•ã„" #: ../src/main.c:464 #, c-format msgid "%s directory created with default configuration." msgstr "デフォルト設定㧠%s ディレクトリãŒä½œæˆã•れã¾ã—ãŸ" #: ../src/main.c:482 msgid "" "could not initialise an inotify instance. Changes to the defaults database " "will require a restart to take effect. Check your kernel!" msgstr "" #: ../src/main.c:493 #, c-format msgid "" "could not add an inotify watch on path %s.Changes to the defaults database " "will require a restart to take effect." msgstr "" #: ../src/main.c:515 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:åˆæœŸåŒ–スクリプトを実行ã§ãã¾ã›ã‚“" #: ../src/main.c:533 #, c-format msgid "%s:could not execute exit script" msgstr "%s:終了スクリプトを実行ã§ãã¾ã›ã‚“" #: ../src/main.c:571 ../src/main.c:648 ../src/main.c:655 ../src/main.c:662 #, c-format msgid "too few arguments for %s" msgstr "%sã«å¯¾ã™ã‚‹å¼•æ•°ãŒè¶³ã‚Šã¾ã›ã‚“" #: ../src/main.c:666 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "ビジュアルIDã®å€¤ãŒä¸æ­£ã§ã™: \"%s\"" #: ../src/main.c:679 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: 無効ãªå¼•æ•°ã§ã™ '%s'\n" #: ../src/main.c:680 #, c-format msgid "Try '%s --help' for more information\n" msgstr "追加情報ã®ãŸã‚ã« '%s --help' を試ã—ã¦ã¿ã¦ãã ã•ã„\n" #: ../src/main.c:723 msgid "X server does not support locale" msgstr "XサーãƒãŒãƒ­ã‚±ãƒ¼ãƒ«æ©Ÿèƒ½ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“" #: ../src/main.c:727 msgid "cannot set locale modifiers" msgstr "ロケールを設定ã§ãã¾ã›ã‚“" #: ../src/main.c:743 #, c-format msgid "could not open display \"%s\"" msgstr "ディスプレイ`%s'ã‚’é–‹ã‘ã¾ã›ã‚“" #: ../src/menu.c:2341 #, c-format msgid "bad value in menus state info: %s" msgstr "ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®æƒ…å ± %s ã«ä¸æ­£ãªå†…容ãŒã‚りã¾ã™" #: ../src/misc.c:57 #, c-format msgid "could not define value for %s for cpp" msgstr "cppã® %sã®å€¤ã‚’定義ã§ãã¾ã›ã‚“" #: ../src/misc.c:82 #, c-format msgid "could not get password entry for UID %i" msgstr "ユーザID %i ã®ãƒ‘スワードエントリを得られã¾ã›ã‚“" #: ../src/misc.c:104 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "ã‚ãªãŸã®ãƒžã‚·ãƒ³ã®è¨­å®šãŒãŠã‹ã—ã„ã§ã™. HOSTNAME ㌠%s ã«è¨­å®šã•れã¦ã„ã¾ã™" #: ../src/misc.c:109 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "ã‚ãªãŸã®ãƒžã‚·ãƒ³ã®è¨­å®šãŒãŠã‹ã—ã„ã§ã™. HOST ㌠%s ã«è¨­å®šã•れã¦ã„ã¾ã™" #: ../src/misc.c:558 ../src/misc.c:563 msgid "Program Arguments" msgstr "プログラム引数" #: ../src/misc.c:559 ../src/misc.c:564 msgid "Enter command arguments:" msgstr "コマンドライン引数を入力ã—ã¦ãã ã•ã„:" #: ../src/misc.c:608 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "\"%s\"ã®å±•開中ã«ãƒ¡ãƒ¢ãƒªãŒä¸è¶³ã—ã¾ã—ãŸ" #: ../src/misc.c:661 #, c-format msgid "out of memory during expansion of \"%%w\"" msgstr "\"%%w\"ã®å±•開中ã«ãƒ¡ãƒ¢ãƒªãŒä¸è¶³ã—ã¾ã—ãŸ" #: ../src/misc.c:678 #, c-format msgid "out of memory during expansion of \"%%W\"" msgstr "\"%%W\"ã®å±•開中ã«ãƒ¡ãƒ¢ãƒªãŒä¸è¶³ã—ã¾ã—ãŸ" #: ../src/misc.c:695 #, c-format msgid "out of memory during expansion of \"%%a\"" msgstr "\"%%a\"ã®å±•開中ã«ãƒ¡ãƒ¢ãƒªãŒä¸è¶³ã—ã¾ã—ãŸ" #: ../src/misc.c:724 #, c-format msgid "out of memory during expansion of \"%%d\"" msgstr "\"%%d\"ã®å±•開中ã«ãƒ¡ãƒ¢ãƒªãŒä¸è¶³ã—ã¾ã—ãŸ" #: ../src/misc.c:738 msgid "selection not available" msgstr "セレクションãŒåˆ©ç”¨ä¸èƒ½" #: ../src/misc.c:745 #, c-format msgid "out of memory during expansion of \"%%s\"" msgstr "\"%%s\"ã®å±•開中ã«ãƒ¡ãƒ¢ãƒªãŒä¸è¶³ã—ã¾ã—ãŸ" #: ../src/misc.c:780 ../src/misc.c:786 #, c-format msgid "bad window name value in %s state info" msgstr "%s ステート情報中ã«ä¸æ­£ãªã‚¦ã‚£ãƒ³ãƒ‰ã‚¦åãŒã‚りã¾ã™" #: ../src/misc.c:1014 msgid "could not send message to background image helper" msgstr "背景イメージヘルパーã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡ã§ãã¾ã›ã‚“" #: ../src/resources.c:41 #, c-format msgid "could not parse color \"%s\"" msgstr "カラー\"%s\"ã®æŒ‡å®šã«èª¤ã‚ŠãŒã‚りã¾ã™" #: ../src/resources.c:45 #, c-format msgid "could not allocate color \"%s\"" msgstr "カラー\"%s\"を予約ã§ãã¾ã›ã‚“" #: ../src/rootmenu.c:179 ../src/rootmenu.c:180 msgid "Exit" msgstr "終了" #: ../src/rootmenu.c:180 msgid "Exit window manager?" msgstr "ウィンドウマãƒãƒ¼ã‚¸ãƒ£ã‚’終了ã—ã¾ã™ã‹?" #: ../src/rootmenu.c:222 msgid "Kill X session" msgstr "Xセッションã®çµ‚了" #: ../src/rootmenu.c:223 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "ウィンドウシステムã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’終了ã—ã¾ã™ã‹?\n" "(å…¨ã¦ã®ã‚¢ãƒ—リケーションãŒé–‰ã˜ã‚‰ã‚Œã¾ã™)" #: ../src/rootmenu.c:451 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:キーボードショートカットã®è¨­å®š\"%s\"ãŒé–“é•ã£ã¦ã„ã¾ã™(%s)" #: ../src/rootmenu.c:459 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:キーボードショートカット\"%s\"ãŒé–“é•ã£ã¦ã„ã¾ã™(%s)" #: ../src/rootmenu.c:493 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: メニューファイル中, '\"'ãŒå¯¾å¿œã—ã¦ã„ã¾ã›ã‚“" #: ../src/rootmenu.c:542 #, c-format msgid "%s: missing command" msgstr "%s: ã‚³ãƒžãƒ³ãƒ‰ã®æŒ‡å®šãŒã‚りã¾ã›ã‚“" #: ../src/rootmenu.c:592 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "OPEN_MENU ã®æŒ‡å®šãŒä¸é©åˆ‡ã§ã™: %s" #: ../src/rootmenu.c:647 #, c-format msgid "%s:could not stat menu" msgstr "%s:メニューをstatã§ãã¾ã›ã‚“" #: ../src/rootmenu.c:655 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:メニューをstatã§ãã¾ã›ã‚“: %s" #: ../src/rootmenu.c:671 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "OPEN_MENU ã®ãƒ‘ラメータãŒå¤šã™ãŽã¾ã™: %s" #: ../src/rootmenu.c:713 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "アプリケーションメニュー中, WORKSPACE_MENU コマンドãŒè¤‡æ•°å­˜åœ¨ã—ã¾ã™. " "定義ã§ãã‚‹ã®ã¯ä¸€å›žã ã‘ã§ã™." #: ../src/rootmenu.c:744 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "アプリケーションメニュー中, WINDOWS_MENU コマンドãŒè¤‡æ•°å­˜åœ¨ã—ã¾ã™. " "定義ã§ãã‚‹ã®ã¯ä¸€å›žã ã‘ã§ã™." #: ../src/rootmenu.c:749 msgid "Window List" msgstr "ウィンドウ一覧" #: ../src/rootmenu.c:776 ../src/rootmenu.c:793 ../src/rootmenu.c:801 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:メニューコマンド\"%s\"ã«å¯¾ã™ã‚‹ãƒ‘ラメータãŒã‚りã¾ã›ã‚“" #: ../src/rootmenu.c:865 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:メニュー設定中, 䏿­£ãªã‚³ãƒžãƒ³ãƒ‰\"%s\"ãŒã‚りã¾ã™." #: ../src/rootmenu.c:872 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:エントリ\"%s\"ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆã‚’登録ã§ãã¾ã›ã‚“" #: ../src/rootmenu.c:1014 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:ãƒ¡ãƒ‹ãƒ¥ãƒ¼è¨­å®šã®æœ€å¤§è¡Œæ•°ã‚’è¶Šãˆã¾ã—ãŸ: %s" #: ../src/rootmenu.c:1035 ../src/rootmenu.c:1120 ../src/rootmenu.c:1214 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:メニュー設定ã«ã‚³ãƒžãƒ³ãƒ‰ã®æŒ‡å®šãŒã‚りã¾ã›ã‚“: %s" #: ../src/rootmenu.c:1062 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒ•ã‚¡ã‚¤ãƒ«ã«æ–‡æ³•エラーãŒã‚りã¾ã™: END ã®è¨˜è¿°ãŒã‚りã¾ã›ã‚“" #: ../src/rootmenu.c:1088 ../src/rootmenu.c:1182 msgid "could not make arguments for menu file preprocessor" msgstr "メニューファイル・プリプロセッサã¸ã®å¼•æ•°ãŒä½œæˆã§ãã¾ã›ã‚“" #: ../src/rootmenu.c:1094 ../src/rootmenu.c:1189 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s:メニューファイルã®ã‚ªãƒ¼ãƒ—ンï¼ãƒ—リプロセスãŒã§ãã¾ã›ã‚“" #: ../src/rootmenu.c:1105 ../src/rootmenu.c:1199 #, c-format msgid "%s:could not open menu file" msgstr "%s:メニューファイルを開ã‘ã¾ã›ã‚“" #: ../src/rootmenu.c:1131 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s: メニューファイルãŒä¸é©å½“ã§ã™. MENU コマンドãŒã‚りã¾ã›ã‚“" #: ../src/rootmenu.c:1139 msgid "error reading preprocessed menu data" msgstr "プリプロセスã•れãŸãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒ‡ãƒ¼ã‚¿ã®èª­ã¿è¾¼ã¿ã«ã‚¨ãƒ©ãƒ¼ãŒèµ·ãã¾ã—ãŸ" #: ../src/rootmenu.c:1225 #, c-format msgid "%s:no title given for the root menu" msgstr "%s:ルートメニューã®ã‚¿ã‚¤ãƒˆãƒ«ãŒã‚りã¾ã›ã‚“" #: ../src/rootmenu.c:1306 ../src/rootmenu.c:1378 ../src/rootmenu.c:1417 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "ディレクトリメニュー%sã®ä½œæˆã®ãŸã‚ã®ãƒ¡ãƒ¢ãƒªãŒä¸è¶³ã—ã¦ã„ã¾ã™" #: ../src/rootmenu.c:1315 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:メニューディレクトリã®ãƒ•ァイル\"%s\"ã‚’statã§ãã¾ã›ã‚“" #: ../src/rootmenu.c:1467 msgid "Commands" msgstr "コマンド" #: ../src/rootmenu.c:1470 msgid "Restart" msgstr "å†èµ·å‹•" #: ../src/rootmenu.c:1471 msgid "Exit..." msgstr "終了..." #: ../src/rootmenu.c:1510 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "WMRootMenuã§å‚ç…§ã—ã¦ã„るメニュー\"%s\"を見ã¤ã‘られã¾ã›ã‚“" #: ../src/rootmenu.c:1516 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "WMRootMenuã§å‚ç…§ã—ã¦ã„るメニュー\"%s\"ã¸ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“" #: ../src/rootmenu.c:1528 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "WMRootMenuã§å‚ç…§ã—ã¦ã„るメニュー見ã¤ã‹ã‚‰ãªã„ã®ã§, デフォルトã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒ•ァイ" "ル \"%s\" を用ã„ã¾ã™" #: ../src/rootmenu.c:1551 ../src/rootmenu.c:1625 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:ルートメニュー設定\"%s\"ã«ãƒ•ォーマットエラーãŒã‚りã¾ã™" #: ../src/rootmenu.c:1702 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "アプリケーションメニューãŒãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“. エラーã®è©³ç´°ã¯ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã¸ã®å‡ºåŠ›" "ã‚’å‚ç…§ã—ã¦ãã ã•ã„" #: ../src/screen.c:685 #, c-format msgid "could not initialize graphics library context: %s" msgstr "ã‚°ãƒ©ãƒ•ã‚£ãƒƒã‚¯ãƒ©ã‚¤ãƒ–ãƒ©ãƒªã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã‚’åˆæœŸåŒ–ã§ãã¾ã›ã‚“: %s" #: ../src/screen.c:711 msgid "could not initialize WINGs widget set" msgstr "WINGs ウィジェットセットã®åˆæœŸåŒ–ãŒã§ãã¾ã›ã‚“" #: ../src/screen.c:1006 #, c-format msgid "could not save session state in %s" msgstr "%s ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³çŠ¶æ…‹ã‚’ä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸ" #: ../src/session.c:151 ../src/wdefaults.c:557 ../src/winspector.c:410 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "\"%s\"ã‚’ booleanåž‹ã«å¤‰æ›ã§ãã¾ã›ã‚“" #: ../src/stacking.c:75 msgid "could not get window list!!" msgstr "ウィンドウ一覧ãŒå¾—られã¾ã›ã‚“!!" #: ../src/startup.c:177 #, c-format msgid "internal X error: %s" msgstr "X 内部エラー: %s" #: ../src/startup.c:672 ../src/startup.c:689 ../src/startup.c:695 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "標準データベースã‹ã‚‰ãƒ‰ãƒ¡ã‚¤ãƒ³\"%s\"を読ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“" #: ../src/startup.c:681 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16 instead" msgstr "" "設定ã•れã¦ã„るアイコンサイズ%iã¯å°ã•ã™ãŽã¾ã™. ã‹ã‚りã«ã‚µã‚¤ã‚º16を用ã„ã¾ã™" #: ../src/startup.c:712 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "XKB ã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“. KbdModeLock ã¯è‡ªå‹•çš„ã«ç„¡åйã«ãªã‚Šã¾ã™" #: ../src/startup.c:731 msgid "it seems that there is already a window manager running" msgstr "æ—¢ã«ä»–ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãƒžãƒãƒ¼ã‚¸ãƒ£ãŒç«‹ã¡ä¸ŠãŒã£ã¦ã„るよã†ã§ã™" #: ../src/startup.c:737 #, c-format msgid "could not manage screen %i" msgstr "スクリーン %iを掌æ¡ã§ãã¾ã›ã‚“" #: ../src/startup.c:794 msgid "could not manage any screen" msgstr "掌æ¡ã§ãるスクリーンãŒã‚りã¾ã›ã‚“" #: ../src/switchmenu.c:129 msgid "Windows" msgstr "ウィンドウ一覧" #: ../src/texture.c:272 ../src/texture.c:310 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "テクスãƒãƒ£ç”¨ç”»åƒãƒ•ァイル\"%s\"ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" #: ../src/texture.c:277 ../src/texture.c:315 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "テクスãƒãƒ£ç”»åƒ\"%s\"をロードã§ãã¾ã›ã‚“:%s" #: ../src/texture.c:457 msgid "could not allocate image buffer" msgstr "ç”»åƒãƒãƒƒãƒ•ァを予約ã§ãã¾ã›ã‚“" #: ../src/wdefaults.c:415 #, c-format msgid "could not find icon file \"%s\"" msgstr "アイコンファイル \"%s\"ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" #: ../src/window.c:2756 ../src/window.c:2914 msgid "" "The NumLock, ScrollLock or similar key seems to be turned on. Turn it off or " "some mouse actions and keyboard shortcuts will not work." msgstr "" "NumLock, ScrollLock ç­‰ã®ã‚­ãƒ¼ãŒONã«ãªã£ã¦ã¾ã›ã‚“ã‹ã­.\n" "マウス機能やキーボードショートカットを正常ã«åˆ©ç”¨ã™ã‚‹ã«ã¯OFFã«åˆ‡æ›¿ãˆã¦ä¸‹ã•ã„" #: ../src/winmenu.c:121 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "ã“ã®ã‚¢ãƒ—リケーションを強制終了ã•ã›ã¾ã™.\n" "ä¿å­˜ã•れã¦ã„ãªã„変更ã¯å…¨ã¦å¤±ã‚れã¾ã™.\n" "終了ã•ã›ã¾ã™ã‹ï¼Ÿ" #: ../src/winmenu.c:271 ../src/winmenu.c:280 msgid "Set Shortcut" msgstr "ショートカット設定" #: ../src/winmenu.c:354 ../src/winmenu.c:394 msgid "could not create submenu for window menu" msgstr "ウィンドウメニューã«ã‚µãƒ–メニューを作れã¾ã›ã‚“" #: ../src/winmenu.c:398 msgid "Keep on top" msgstr "å¸¸ã«æ‰‹å‰ã«è¡¨ç¤º" #: ../src/winmenu.c:402 msgid "Keep at bottom" 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:424 ../src/winmenu.c:519 msgid "Maximize" msgstr "最大化" #: ../src/winmenu.c:427 ../src/winmenu.c:503 msgid "Miniaturize" msgstr "最å°åŒ–" #: ../src/winmenu.c:430 ../src/winmenu.c:537 msgid "Shade" msgstr "シェード" #: ../src/winmenu.c:436 msgid "Resize/Move" msgstr "サイズ変更/移動" #: ../src/winmenu.c:439 msgid "Select" msgstr "é¸æŠž" #: ../src/winmenu.c:442 msgid "Move To" msgstr "移動" #: ../src/winmenu.c:447 msgid "Attributes..." msgstr "属性..." #: ../src/winmenu.c:449 msgid "Options" msgstr "オプション" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/winmenu.c:457 msgid "Close" msgstr "é–‰ã˜ã‚‹" #: ../src/winmenu.c:497 msgid "Deminiaturize" msgstr "最å°åŒ–解除" #: ../src/winmenu.c:513 msgid "Unmaximize" msgstr "最大化解除" #: ../src/winmenu.c:531 msgid "Unshade" msgstr "シェード解除" #: ../src/winspector.c:350 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¸æŒ‡å®šã•れãŸã‚¢ã‚¤ã‚³ãƒ³\"%s\"ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" #: ../src/winspector.c:365 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "指定ã•れãŸã‚¢ã‚¤ã‚³ãƒ³\"%s\"ãŒé–‹ã‘ã¾ã›ã‚“:%s" #: ../src/winspector.c:1067 #, c-format msgid "Inspecting %s.%s" msgstr "属性 ( %s.%s )" #: ../src/winspector.c:1090 msgid "Click in the window you wish to inspect." msgstr "調査対象ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’クリックã—ã¦ãã ã•ã„." #: ../src/winspector.c:1122 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "ã“ã®è¨­å®šãŒä¿å­˜ã•れるã¨, 上ã§\n" "指定ã•れãŸWM_CLASSプロパティを\n" "æŒã¤å…¨ã¦ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã«é©ç”¨ã•れã¾ã™." #: ../src/winspector.c:1147 msgid "Save" msgstr "ä¿å­˜" #: ../src/winspector.c:1155 msgid "Apply" msgstr "é©ç”¨" #: ../src/winspector.c:1161 msgid "Reload" msgstr "å†èª­ã¿è¾¼ã¿" #: ../src/winspector.c:1170 ../src/winspector.c:1180 msgid "Window Specification" msgstr "ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®æŒ‡å®š" #: ../src/winspector.c:1171 msgid "Window Attributes" msgstr "ウィンドウã®å±žæ€§" #: ../src/winspector.c:1172 msgid "Advanced Options" msgstr "ã“ã ã‚りã®è¨­å®š" #: ../src/winspector.c:1173 msgid "Icon and Initial Workspace" msgstr "アイコンã¨ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹" #: ../src/winspector.c:1174 msgid "Application Specific" msgstr "アプリケーション固有ã®è¨­å®š" #: ../src/winspector.c:1187 msgid "Defaults for all windows" msgstr "å…¨ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®æ¨™æº–" #: ../src/winspector.c:1240 msgid "Select window" msgstr "ウィンドウã®é¸æŠž" #: ../src/winspector.c:1253 msgid "Attributes" msgstr "属性" #: ../src/winspector.c:1264 msgid "Disable titlebar" msgstr "タイトルãƒãƒ¼ã‚’表示ã—ãªã„" #: ../src/winspector.c:1266 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®ã‚¿ã‚¤ãƒˆãƒ«ãƒãƒ¼ã‚’表示ã—ãªãã—ã¾ã™.\n" "タイトルãƒãƒ¼ã®ãªã„ウィンドウã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’表示ã™ã‚‹ã«ã¯, \n" "コントロールキー ã¨ ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—ã‚­ãƒ¼ã‚’åŒæ™‚ã«æŠ¼ã—ã¾ã™\n" "(ã¾ãŸã¯, ãれã«ç›¸å½“ã™ã‚‹, ã‚ãªãŸãŒè¨­å®šã—ãŸã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆã‚­ãƒ¼)." #: ../src/winspector.c:1272 msgid "Disable resizebar" msgstr "リサイズãƒãƒ¼ã‚’表示ã—ãªã„" #: ../src/winspector.c:1274 msgid "Remove the resizebar of this window." msgstr "ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®ãƒªã‚µã‚¤ã‚ºãƒãƒ¼ã‚’表示ã—ãªãã—ã¾ã™" #: ../src/winspector.c:1277 msgid "Disable close button" msgstr "クローズボタンを表示ã—ãªã„" #: ../src/winspector.c:1279 msgid "Remove the `close window' button of this window." msgstr "ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®ã‚¯ãƒ­ãƒ¼ã‚ºãƒœã‚¿ãƒ³ã‚’表示ã—ãªãã—ã¾ã™" #: ../src/winspector.c:1282 msgid "Disable miniaturize button" msgstr "最å°åŒ–ボタンを表示ã—ãªã„" #: ../src/winspector.c:1284 msgid "Remove the `miniaturize window' button of the window." msgstr "ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®æœ€å°åŒ–ボタンを表示ã—ãªãã—ã¾ã™" #: ../src/winspector.c:1287 msgid "Disable border" msgstr "境界線を表示ã—ãªã„" #: ../src/winspector.c:1289 msgid "Remove the 1 pixel black border around the window." msgstr "ウィンドウ周囲㮠1ピクセルã®å¢ƒç•Œã‚’表示ã—ãªãã—ã¾ã™" #: ../src/winspector.c:1292 msgid "Keep on top (floating)" msgstr "å¸¸ã«æ‰‹å‰ã«è¡¨ç¤º" #: ../src/winspector.c:1294 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "å¸¸ã«æ‰‹å‰ã«(æµ®ã„ã¦)表示ã•れã¾ã™." #: ../src/winspector.c:1297 msgid "Keep at bottom (sunken)" msgstr "常ã«å¾Œã‚ã«è¡¨ç¤º" #: ../src/winspector.c:1299 msgid "Keep the window under all other windows." msgstr "常ã«å¾Œã‚ã«(沈んã§)表示ã•れã¾ã™." #: ../src/winspector.c:1304 msgid "Make window present in all workspaces." msgstr "å…¨ã¦ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã§è¡¨ç¤ºã—ã¾ã™" #: ../src/winspector.c:1307 msgid "Start miniaturized" msgstr "最å°åŒ–状態ã§èµ·å‹•ã™ã‚‹" #: ../src/winspector.c:1309 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "最åˆã«èµ·å‹•ã•ã‚ŒãŸæ™‚ã«è‡ªå‹•çš„ã«æœ€å°åŒ–ã™ã‚‹ã‚ˆã†ã«ã—ã¾ã™." #: ../src/winspector.c:1312 msgid "Start maximized" msgstr "最大化状態ã§èµ·å‹•ã™ã‚‹" #: ../src/winspector.c:1314 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "最åˆã«èµ·å‹•ã•ã‚ŒãŸæ™‚ã«è‡ªå‹•çš„ã«æœ€å¤§åŒ–ã™ã‚‹ã‚ˆã†ã«ã—ã¾ã™." #: ../src/winspector.c:1317 msgid "Full screen maximization" msgstr "å…¨ç”»é¢æœ€å¤§åŒ–" #: ../src/winspector.c:1319 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "最大化ã—ãŸæ™‚ã«å…¨ç”»é¢ã‚’使用ã™ã‚‹ã‚ˆã†ã«ã—ã¾ã™. \n" "タイトルãƒãƒ¼ã¨ãƒªã‚µã‚¤ã‚ºãƒãƒ¼ã¯ç”»é¢ã®å¤–ã«ã¯ã¿å‡ºã—ã¾ã™." #: ../src/winspector.c:1335 msgid "Advanced" msgstr "上級設定" #: ../src/winspector.c:1352 msgid "Do not bind keyboard shortcuts" msgstr "キーボードã¨é€£å‹•ã—ãªã„" #: ../src/winspector.c:1354 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "ウィンドウãŒãƒ•ォーカスã•れã¦ã„る時㫠Window Maker ã®\n" "ショートカットキーãŒå½±éŸ¿ã—ãªã„よã†ã«ã—ã¾ã™. \n" "ã‚ãªãŸã®è¨­å®šã—ãŸã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆã‚‚影響ã—ãªã„ã®ã§, \n" "å…¨ã¦ã®ã‚­ãƒ¼æ“作をウィンドウã«ä¼ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™." #: ../src/winspector.c:1360 msgid "Do not bind mouse clicks" msgstr "マウスクリックã¨é€£å‹•ã—ãªã„" #: ../src/winspector.c:1362 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you have\n" "configured)." msgstr "" "ウィンドウ内ã§ã®ãƒžã‚¦ã‚¹ã®å‹•作(Alt+ドラッグãªã©)\n" "ãŒå½±éŸ¿ã—ãªã„よã†ã«ã—ã¾ã™." #: ../src/winspector.c:1366 msgid "Do not show in the window list" msgstr "ウィンドウ一覧ã«è¡¨ç¤ºã—ãªã„" #: ../src/winspector.c:1368 msgid "Do not list the window in the window list menu." msgstr "ウィンドウ一覧ã«ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’候補表示ã—ã¾ã›ã‚“." #: ../src/winspector.c:1371 msgid "Do not show in the switch panel" msgstr "ウィンドウ切替ã«è¡¨ç¤ºã—ãªã„" #: ../src/winspector.c:1373 msgid "Do not include in switchpanel while alternating windows." msgstr "ウィンドウ切替ã«ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’表示ã—ã¾ã›ã‚“." #: ../src/winspector.c:1376 msgid "Do not let it take focus" msgstr "フォーカスã—ãªã„" #: ../src/winspector.c:1378 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "ウィンドウをクリックã—ãŸæ™‚ã«ã‚‚キーボードフォーカスを\n" "渡ã•ãªã„よã†ã«ã—ã¾ã™." #: ../src/winspector.c:1381 msgid "Keep inside screen" msgstr "スクリーンã®å†…å´ã«ä¿æŒã™ã‚‹" #: ../src/winspector.c:1383 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "ウィンドウãŒè‡ªèº«ã‚’完全ã«ç”»é¢ã®å¤–ã«ç§»å‹•ã•ã›ã¦ã—ã¾ã‚ãªã„よã†ã«ã—ã¾ã™. \n" "(ãƒã‚°äº’æ›æ€§ã®ãŸã‚)\n" #: ../src/winspector.c:1387 msgid "Ignore 'Hide Others'" msgstr "'ä»–ã‚’éš ã™'を無視ã™ã‚‹" #: ../src/winspector.c:1389 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "'ä»–ã‚’éš ã™'コマンドãŒå®Ÿè¡Œã•れã¦ã‚‚éš ã•ãªã„よã†ã«ã—ã¾ã™." #: ../src/winspector.c:1392 msgid "Ignore 'Save Session'" msgstr "'セッションã®ä¿å­˜'を無視ã™ã‚‹." #: ../src/winspector.c:1394 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "セッションã®çŠ¶æ…‹ã¨ã“ã®ã‚¢ãƒ—リケーションã®é–¢é€£ã‚’ä¿å­˜\n" "ã—ãªã„よã†ã«ã—ã¾ã™. 次㫠Window Maker ãŒèµ·å‹•ã—ãŸæ™‚ã«\n" "ã“ã®ã‚¢ãƒ—リケーションãŒè‡ªå‹•çš„ã«èµ·å‹•ã—ãªã„よã†ã«ãªã‚Šã¾ã™." #: ../src/winspector.c:1399 msgid "Emulate application icon" msgstr "アプリアイコンã®ã‚¨ãƒŸãƒ¥ãƒ¬ãƒ¼ãƒˆ" #: ../src/winspector.c:1401 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãŒãƒ‰ãƒƒã‚¯å¯èƒ½ãªã‚¢ãƒ—リアイコンを\n" "自å‰ã§å‚™ãˆã¦ã„ã‚‹ã‹ã®ã‚ˆã†ã«æŒ¯ã‚‹èˆžã‚ã›ã¾ã™." #: ../src/winspector.c:1406 msgid "Focus across workspaces" msgstr "ワークスペースを跨ã„ã§ã§ã‚‚フォーカスã™ã‚‹" #: ../src/winspector.c:1408 msgid "" "Allow Window Maker to switch workspace to satisfy\n" "a focus request (annoying)." msgstr "" "ãƒ•ã‚©ãƒ¼ã‚«ã‚¹è¦æ±‚ã«å¯¾ã—㦠Window Maker ãŒãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’\n" "切替ãˆã‚‹ã‚ˆã†ã«ã—ã¾ã™ (微妙ã§ã™)." #: ../src/winspector.c:1412 msgid "Do not let it be minimized" msgstr "最å°åŒ–ã—ãªã„" #: ../src/winspector.c:1414 msgid "" "Do not let the window of this application be\n" "minimized.\n" msgstr "" "ã“ã®ã‚¢ãƒ—リケーションã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¯æœ€å°åŒ–ã—ãªã„よã†ã«ã—ã¾ã™.\n" #: ../src/winspector.c:1419 msgid "Disable language button" msgstr "言語ã®åˆ‡æ›¿ãˆã®ç„¡åŠ¹åŒ–" #: ../src/winspector.c:1421 msgid "Remove the `toggle language' button of the window." msgstr "'言語を切り替ãˆã‚‹'ボタンを表示ã—ãªãã—ã¾ã™" #: ../src/winspector.c:1438 msgid "Miniwindow Image" msgstr "ミニウィンドウ画åƒ" #: ../src/winspector.c:1465 msgid "Icon filename:" msgstr "アイコンファイルå:" #: ../src/winspector.c:1476 msgid "Ignore client supplied icon" msgstr "アプリ自å‰ã®ã‚¢ã‚¤ã‚³ãƒ³ã‚’無視" #: ../src/winspector.c:1482 msgid "Initial Workspace" msgstr "起動時ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹" #: ../src/winspector.c:1484 msgid "The workspace to place the window when it'sfirst shown." msgstr "ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãŒèµ·å‹•時ã«å‡ºç¾ã™ã‚‹ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹." #: ../src/winspector.c:1490 msgid "Nowhere in particular" msgstr "ç‰¹ã«æŒ‡å®šã—ãªã„" #: ../src/winspector.c:1507 msgid "Application Attributes" msgstr "アプリケーション属性" #: ../src/winspector.c:1518 msgid "Start hidden" msgstr "起動時ã«éš ã™" #: ../src/winspector.c:1520 msgid "Automatically hide application when it's started." msgstr "アプリケーションã®èµ·å‹•時ã«è‡ªå‹•çš„ã«éš ã‚Œã‚‹ã‚ˆã†ã«ã™ã‚‹." #: ../src/winspector.c:1523 msgid "No application icon" msgstr "アプリアイコンを表示ã—ãªã„" #: ../src/winspector.c:1525 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "ã“ã®ã‚¢ãƒ—リケーションã®ã‚¢ãƒ—リアイコンを無効ã«ã—ã¾ã™.\n" "注æ„: ã™ã‚‹ã¨, ドックやクリップãŒã§ããªããªã‚Šã¾ã™. \n" "ã¾ãŸ, ã™ã§ã«ç™»éŒ²ã•れã¦ã„るドックも正ã—ãå‹•ã‹ãªããªã‚Šã¾ã™." #: ../src/winspector.c:1531 msgid "Shared application icon" msgstr "アプリアイコンを共有" #: ../src/winspector.c:1533 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "åŒã˜ã‚¢ãƒ—リãŒè¤‡æ•°èµ·å‹•ã—ã¦ã„ã‚‹ã¨ã,\n" "アプリアイコンを1ã¤ã«ã¾ã¨ã‚ã¾ã™.\n" #: ../src/workspace.c:93 ../src/workspace.c:94 ../src/workspace.c:660 #, c-format msgid "Workspace %i" msgstr "ワークスペース %i" #: ../src/workspace.c:704 msgid "Workspaces" msgstr "ワークスペースã®è¨­å®š" #: ../src/workspace.c:706 msgid "could not create Workspace menu" msgstr "ワークスペースメニューを作æˆã§ãã¾ã›ã‚“" #: ../src/workspace.c:713 msgid "New" msgstr "æ–°ã—ã„ワークスペースを作æˆ" #: ../src/workspace.c:714 msgid "Destroy Last" msgstr "最後ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’削除" WindowMaker-0.95.5/po/ru.po0000644000175000017500000020026712214432632012374 00000000000000# # Initial translation # August S. Sigov # # Brought up-to-date for 0.17.5 # and maintained up to 0.53.0 by # Alexey Vyskubov # Michael Sobolev # # Modified for 0.70.0 - 0.80.1 by # Andrew W. Nosenko msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.80.1\n" "POT-Creation-Date: 2002-09-12 09:28+0300\n" "PO-Revision-Date: 2002-10-04 08:56+0300\n" "Last-Translator: awn@bcs.zp.ua\n" "Language-Team: Russian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:426 ../src/dialog.c:304 ../src/dock.c:3326 #: ../src/dockedapp.c:230 ../src/main.c:273 ../src/rootmenu.c:1854 #: ../src/winspector.c:389 ../src/winspector.c:406 msgid "Error" msgstr "Ошибка" #: ../src/appicon.c:427 msgid "Could not open specified icon file" msgstr "Ðевозможно открыть указанный файл Ñ Ð¸ÐºÐ¾Ð½ÐºÐ¾Ð¹" #: ../src/appicon.c:428 ../src/dialog.c:201 ../src/dialog.c:304 #: ../src/dialog.c:751 ../src/dialog.c:1850 ../src/dock.c:526 #: ../src/dock.c:534 ../src/dock.c:558 ../src/dock.c:3327 #: ../src/dockedapp.c:231 ../src/dockedapp.c:426 ../src/main.c:273 #: ../src/rootmenu.c:1858 ../src/winspector.c:390 ../src/winspector.c:407 msgid "OK" msgstr "OK" #: ../src/appicon.c:456 ../src/dock.c:264 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " будет форÑированно завершено.\n" "Ð’Ñе неÑохраненные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны.\n" "ПожалуйÑта, подтвердите." # #: ../src/appicon.c:464 ../src/dock.c:283 ../src/winmenu.c:125 msgid "Kill Application" msgstr "Ðварийное завершение" #: ../src/appicon.c:465 ../src/dock.c:284 ../src/winmenu.c:127 msgid "Yes" msgstr "Да" #: ../src/appicon.c:465 ../src/dock.c:284 ../src/winmenu.c:127 msgid "No" msgstr "Ðет" #: ../src/appicon.c:495 ../src/dock.c:1178 ../src/dock.c:3492 msgid "Unhide Here" msgstr "РаÑкрыть здеÑÑŒ" #: ../src/appicon.c:496 ../src/appicon.c:521 ../src/dock.c:1180 #: ../src/dock.c:1182 ../src/dock.c:3504 ../src/winmenu.c:465 msgid "Hide" msgstr "Скрыть" #: ../src/appicon.c:497 msgid "Set Icon..." msgstr "УÑтановить иконку..." #: ../src/appicon.c:498 ../src/dock.c:1186 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 ../src/winmenu.c:520 msgid "Kill" msgstr "Убить" #: ../src/appicon.c:519 ../src/dock.c:3502 msgid "Unhide" msgstr "РаÑкрыть" #: ../src/application.c:398 #, c-format msgid "recreating missing icon '%s'" msgstr "" #: ../src/defaults.c:922 ../src/defaults.c:1011 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Домен %s (%s) в глобальном файле уÑтановок поврежден!" #: ../src/defaults.c:927 #, c-format msgid "could not load domain %s from global defaults database" msgstr "не удалоÑÑŒ загрузить домен %s из глобального файла уÑтановок" #: ../src/defaults.c:949 ../src/startup.c:884 ../src/startup.c:902 #: ../src/startup.c:908 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "не удалоÑÑŒ прочитать значение по умолчанию домена \"%s\"" #: ../src/defaults.c:995 ../src/defaults.c:1099 ../src/defaults.c:1140 #: ../src/defaults.c:1196 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Домен %s (%s) в файле уÑтановок поврежден!" #: ../src/defaults.c:1000 ../src/defaults.c:1119 ../src/defaults.c:1176 #: ../src/defaults.c:1205 #, c-format msgid "could not load domain %s from user defaults database" msgstr "не удалоÑÑŒ загрузить домен \"%s\" из пользовательÑкого файла уÑтановок" #: ../src/defaults.c:1030 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "не удалоÑÑŒ загрузить домен %s из глобального файла уÑтановок (%s)" #: ../src/defaults.c:1166 ../src/screen.c:460 #, c-format msgid "could not load logo image for panels: %s" msgstr "не удалоÑÑŒ загрузить картинку-лого Ð´Ð»Ñ Ð¿Ð°Ð½ÐµÐ»ÐµÐ¹: %s" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1414 ../src/defaults.c:1556 ../src/defaults.c:1668 #: ../src/defaults.c:2147 ../src/defaults.c:2164 ../src/defaults.c:2209 #: ../src/defaults.c:2256 ../src/defaults.c:2729 ../src/wdefaults.c:571 #: ../src/wdefaults.c:607 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Ðеверный формат параметра Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\". Должен быть %s." #: ../src/defaults.c:1416 ../src/defaults.c:1497 ../src/defaults.c:1529 #: ../src/defaults.c:1561 ../src/defaults.c:1574 ../src/defaults.c:1589 #: ../src/defaults.c:1603 ../src/defaults.c:1673 ../src/defaults.c:1685 #: ../src/defaults.c:2152 ../src/defaults.c:2169 ../src/defaults.c:2182 #: ../src/defaults.c:2214 ../src/defaults.c:2230 ../src/defaults.c:2261 #: ../src/defaults.c:2348 ../src/defaults.c:2734 ../src/defaults.c:2745 #, c-format msgid "using default \"%s\" instead" msgstr "иÑпользуем значение по умолчанию (%s)" #: ../src/defaults.c:1447 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "неверное значение Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\". Должно быть одно из %s." #: ../src/defaults.c:1492 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "не удалоÑÑŒ преобразовать \"%s\" в логичеÑкое значение Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\"" #: ../src/defaults.c:1526 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "Ðевозможно преобразовать \"%s\" в целое значение Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\"" #: ../src/defaults.c:1569 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Ðеверное количеÑтво Ñлементов в маÑÑиве Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\"." #: ../src/defaults.c:1584 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Ðеверное значение параметра Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\". Должно быть Coordinate." #: ../src/defaults.c:1599 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "не удалоÑÑŒ преобразовать маÑÑив в набор целых Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ \"%s\"." #: ../src/defaults.c:1797 ../src/defaults.c:1829 ../src/defaults.c:1845 #: ../src/defaults.c:1874 ../src/defaults.c:1897 ../src/defaults.c:1950 #: ../src/defaults.c:1990 ../src/defaults.c:2028 ../src/defaults.c:2044 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" не ÑвлÑетÑÑ Ð¸Ð·Ð²ÐµÑтным названием цвета" #: ../src/defaults.c:1810 ../src/defaults.c:1862 msgid "bad number of arguments in gradient specification" msgstr "неверное количеÑтво аргументов в определении градиента" #: ../src/defaults.c:1923 msgid "too few arguments in multicolor gradient specification" msgstr "Ñлишком мало аргументов в определении многоцветного градиента" #: ../src/defaults.c:2017 msgid "bad number of arguments in textured gradient specification" msgstr "неверное количеÑтво аргументов в определении градиента Ñ Ñ‚ÐµÐºÑтурой" #: ../src/defaults.c:2060 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "" "неверное значение прозрачноÑти Ð´Ð»Ñ t-градиента Ñ Ñ‚ÐµÐºÑтурой \"%s\"; должно " "быть [0..255]" #: ../src/defaults.c:2120 #, c-format msgid "could not initialize library %s" msgstr "не удалоÑÑŒ проинициализировать библиотеку %s" #: ../src/defaults.c:2123 #, c-format msgid "could not find function %s::%s" msgstr "не удалоÑÑŒ найти функцию %s::%s" #: ../src/defaults.c:2130 #, c-format msgid "invalid texture type %s" msgstr "неверный тип текÑтуры (%s)" #: ../src/defaults.c:2177 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Ошибка в определении текÑтуры Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\"" #: ../src/defaults.c:2226 msgid "Wrong type for workspace background. Should be a texture type." msgstr "" "Ðеверный тип Ð´Ð»Ñ Ñ„Ð¾Ð½Ð° Рабочего ПроÑтранÑтва; ожидалоÑÑŒ значение типа " "\"текÑтура\"." #: ../src/defaults.c:2274 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "" "Ðеверный тип Ð´Ð»Ñ Ñ„Ð¾Ð½Ð° Рабочего ПроÑтранÑтва #%i; ожидалоÑÑŒ значение типа " "\"текÑтура\"." #: ../src/defaults.c:2316 msgid "could not load any usable font!!!" msgstr "не удалоÑÑŒ загрузить подходÑщий шрифт!!!" #: ../src/defaults.c:2343 #, c-format msgid "could not get color for key \"%s\"" msgstr "не удалоÑÑŒ определить цвет Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\"" #: ../src/defaults.c:2401 ../src/rootmenu.c:526 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s:неверный модификатор клавиши \"%s\"" # #: ../src/defaults.c:2413 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:недопуÑтимое указание ÑÐ¾Ñ‡ÐµÑ‚Ð°Ð½Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ \"%s\"" # #: ../src/defaults.c:2420 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s:Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° в Ñочетании \"%s\"" #: ../src/defaults.c:2445 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: модификатор %s неизвеÑтен" #: ../src/defaults.c:2477 #, c-format msgid "could not load image in option %s: %s" msgstr "не удалоÑÑŒ загрузить изображение Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° %s: %s" # #: ../src/defaults.c:2594 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "не удалоÑÑŒ открыть bitmap-файл \"%s\"" #: ../src/defaults.c:2597 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" не ÑвлÑетÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ñ‹Ð¼ bitmap-файлом" #: ../src/defaults.c:2600 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "иÑчерпана памÑть во Ð²Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ bitmap-файла \"%s\"" #: ../src/defaults.c:2639 ../src/defaults.c:2672 msgid "bad number of arguments in cursor specification" msgstr "неверное количеÑтво аргументов в определении курÑора" #: ../src/defaults.c:2655 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "неизвеÑтное вÑтроенное Ð¸Ð¼Ñ ÐºÑƒÑ€Ñора \"%s\"" #: ../src/defaults.c:2682 ../src/defaults.c:2694 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "не удалоÑÑŒ найти bitmap-файл Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÐ¼ курÑора \"%s\"" #: ../src/defaults.c:2741 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Ошибка в определении курÑора Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° \"%s\"" #: ../src/defaults.c:2826 msgid "could not render texture for icon background" msgstr "не удалоÑÑŒ подготовить текÑтуру Ð´Ð»Ñ Ñ„Ð¾Ð½Ð° иконки" # #: ../src/dialog.c:157 msgid "Save workspace state" msgstr "" "Сохранить ÑоÑтоÑние\n" "рабочего проÑтранÑтва" #: ../src/dialog.c:201 ../src/dialog.c:758 ../src/dock.c:558 #: ../src/dockedapp.c:431 ../src/rootmenu.c:198 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 msgid "Cancel" msgstr "Отказ" # #: ../src/dialog.c:299 msgid "Could not open directory " msgstr "Ðевозможно открыть каталог " #: ../src/dialog.c:354 msgid "Could not load image file " msgstr "Ðевозможно загрузить файл Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ " #: ../src/dialog.c:685 msgid "Directories" msgstr "Каталоги" #: ../src/dialog.c:694 msgid "Icons" msgstr "Иконки" #: ../src/dialog.c:727 msgid "Preview" msgstr "ПредпроÑмотр" # #: ../src/dialog.c:740 msgid "File Name:" msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°:" #: ../src/dialog.c:764 msgid "Choose File" msgstr "Выберите файл" #: ../src/dialog.c:783 ../src/dialog.c:785 msgid "Icon Chooser" msgstr "Выбор иконки" # intentionally left untranslated #: ../src/dialog.c:1265 ../src/dialog.c:1375 #, c-format msgid "Version %s" msgstr "" # intentionally left untranslated #: ../src/dialog.c:1372 msgid "Window Manager for X" msgstr "" # intentionally left untranslated #: ../src/dialog.c:1397 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "" # intentionally left untranslated #: ../src/dialog.c:1405 msgid "(32 thousand colors)\n" msgstr "" # intentionally left untranslated #: ../src/dialog.c:1408 msgid "(64 thousand colors)\n" msgstr "" # intentionally left untranslated #: ../src/dialog.c:1412 msgid "(16 million colors)\n" msgstr "" # intentionally left untranslated #: ../src/dialog.c:1415 #, c-format msgid "(%d colors)\n" msgstr "" # intentionally left untranslated #: ../src/dialog.c:1425 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "" # intentionally left untranslated #: ../src/dialog.c:1432 msgid "Supported image formats: " msgstr "" # intentionally left untranslated #: ../src/dialog.c:1439 msgid "" "\n" "Additional support for: " msgstr "" # intentionally left untranslated #: ../src/dialog.c:1462 msgid " and " msgstr "" # intentionally left untranslated #: ../src/dialog.c:1472 msgid "" "\n" "Sound disabled" msgstr "" # intentionally left untranslated #: ../src/dialog.c:1474 msgid "" "\n" "Sound enabled" msgstr "" #: ../src/dialog.c:1503 msgid "Info" msgstr "" #: ../src/dialog.c:1527 msgid "Merry Christmas!" msgstr "" #: ../src/dialog.c:1597 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" #: ../src/dialog.c:1621 msgid "Legal" msgstr "" #: ../src/dialog.c:1773 ../src/startup.c:394 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "" "не удалоÑÑŒ открыть Ñоединение к панели аварийного диалога. Завершение работы." #: ../src/dialog.c:1799 msgid "Fatal error" msgstr "КритичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" #: ../src/dialog.c:1810 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker: получен Ñигнал %i\n" "(%s)." #: ../src/dialog.c:1813 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker: получен Ñигнал %i." #: ../src/dialog.c:1822 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " Эта критичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°, возможно, ÑвлÑетÑÑ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¾Ð¼ ошибки в программе. " "ПожалуйÑта, заполните форму в файле BUGFORM и отправьте по адреÑу " "bugs@windowmaker.info." #: ../src/dialog.c:1831 msgid "What do you want to do now?" msgstr "Что делать теперь?" #: ../src/dialog.c:1837 msgid "Select action" msgstr "Укажите дейÑтвие" #: ../src/dialog.c:1838 msgid "Abort and leave a core file" msgstr "Завершить работу, оÑтавив файл core" #: ../src/dialog.c:1839 msgid "Restart Window Maker" msgstr "ПерезапуÑтить Window Maker" #: ../src/dialog.c:1840 msgid "Start alternate window manager" msgstr "ЗапуÑк альтернативного диÑпетчера окон" #: ../src/dialog.c:2018 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop enviroment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" #: ../src/dialog.c:2041 msgid "About GNUstep" msgstr "" #: ../src/dock.c:213 #, c-format msgid "Type the name for workspace %i:" msgstr "Введите Ð¸Ð¼Ñ Ð´Ð»Ñ %i-го рабочего проÑтранÑтва:" # #: ../src/dock.c:214 ../src/dock.c:1142 ../src/dock.c:1145 ../src/dock.c:3410 msgid "Rename Workspace" msgstr "Переименовать проÑтранÑтво" #: ../src/dock.c:520 ../src/dock.c:528 msgid "Warning" msgstr "Предупреждение" #: ../src/dock.c:521 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Ðекоторые иконки не могут быть Ñделаны \"приÑутÑтвующими везде\". " "УбедитеÑÑŒ, что нет иконок, на том же меÑте но на других проÑтранÑтвах, и что " "ни на одном из проÑтранÑтв Скрепка не заполнена до краев." #: ../src/dock.c:529 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "Иконка не может быть Ñделана \"приÑутÑтвующей везде\". УбедитеÑÑŒ, что нет " "других иконок, на том же меÑте но на других проÑтранÑтвах, и что ни на одном " "из проÑтранÑтв Скрепка не заполнена до краев." #: ../src/dock.c:556 msgid "Workspace Clip" msgstr "Скрепка рабочего проÑтранÑтва" #: ../src/dock.c:557 msgid "All selected icons will be removed!" msgstr "Ð’Ñе выделенные иконки будут удалены!" #: ../src/dock.c:608 ../src/dock.c:1157 ../src/dock.c:1159 ../src/dock.c:3446 msgid "Keep Icon" msgstr "Удерживать иконку" # #: ../src/dock.c:609 ../src/dock.c:2138 ../src/dock.c:2279 msgid "Type the command used to launch the application" msgstr "Введите команду, иÑпользуемую Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка приложениÑ" # #: ../src/dock.c:965 #, c-format msgid "could not launch application %s\n" msgstr "не удалоÑÑŒ запуÑтить приложение %s\n" #: ../src/dock.c:1020 msgid "could not create workspace submenu for Clip menu" msgstr "не удалоÑÑŒ Ñоздать подменю рабочих проÑтранÑтв Ð´Ð»Ñ Ð¼ÐµÐ½ÑŽ Скрепки" #: ../src/dock.c:1079 msgid "could not create options submenu for Clip menu" msgstr "не удалоÑÑŒ Ñоздать подменю параметров Ð´Ð»Ñ Ð¼ÐµÐ½ÑŽ Скрепки" #: ../src/dock.c:1083 ../src/dock.c:1131 msgid "Keep on Top" msgstr "Ð’Ñегда наверху" #: ../src/dock.c:1089 msgid "Collapsed" msgstr "Свернуто" #: ../src/dock.c:1095 msgid "Autocollapse" msgstr "ÐвтоматичеÑки Ñворачивать" #: ../src/dock.c:1101 msgid "Autoraise" msgstr "ÐвтоматичеÑки поднимать" #: ../src/dock.c:1107 msgid "Autoattract Icons" msgstr "ÐвтоматичеÑки притÑгивать иконки" #: ../src/dock.c:1137 msgid "Clip Options" msgstr "Параметры Ñкрепки" #: ../src/dock.c:1147 msgid "Selected" msgstr "Выделено" #: ../src/dock.c:1152 ../src/dock.c:1155 ../src/dock.c:3437 msgid "Select All Icons" msgstr "Выделить вÑе иконки" #: ../src/dock.c:1161 ../src/dock.c:1163 ../src/dock.c:3454 msgid "Move Icon To" msgstr "ПеремеÑтить иконку..." #: ../src/dock.c:1168 ../src/dock.c:1171 ../src/dock.c:3465 msgid "Remove Icon" msgstr "Удалить иконку" #: ../src/dock.c:1173 msgid "Attract Icons" msgstr "ПритÑгивать иконки" #: ../src/dock.c:1176 msgid "Launch" msgstr "ЗапуÑтить" #: ../src/dock.c:1184 msgid "Settings..." msgstr "УÑтановки..." #: ../src/dock.c:1549 ../src/dock.c:1656 #, c-format msgid "bad value in docked icon state info %s" msgstr "" "недопуÑтимое значение в информации о ÑоÑтоÑнии пришвартованной иконки: %s" #: ../src/dock.c:1664 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "недопуÑтимое значение в позиции пришвартованной иконки %i,%i" #: ../src/dock.c:1684 #, c-format msgid "bad value in dock state info:%s" msgstr "недопуÑтимое значение в информации о ÑоÑтоÑнии Дока: %s" #: ../src/dock.c:1920 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "Ñлишком много иконок пришвартовано. ЧаÑть иконок не будет выведена." #. icon->forced_dock = 1; #: ../src/dock.c:2137 ../src/dock.c:2278 msgid "Dock Icon" msgstr "Иконка Дока" #: ../src/dock.c:3324 #, c-format msgid "Could not execute command \"%s\"" msgstr "Ðевозможно выполнить команду \"%s\"" #: ../src/dock.c:3416 msgid "Toggle Omnipresent" msgstr "Переключить \"ПриÑутÑтвует везде\"" #: ../src/dock.c:3421 ../src/kwm.c:637 ../src/winmenu.c:418 #: ../src/winspector.c:1375 msgid "Omnipresent" msgstr "ПриÑутÑтвует везде" #: ../src/dock.c:3435 msgid "Unselect All Icons" msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²Ñех иконок" #: ../src/dock.c:3444 msgid "Keep Icons" msgstr "Удерживать иконки" #: ../src/dock.c:3452 msgid "Move Icons To" msgstr "ПеремеÑтить иконки..." #: ../src/dock.c:3463 msgid "Remove Icons" msgstr "Удалить иконки" #: ../src/dock.c:3494 ../src/kwm.c:643 msgid "Bring Here" msgstr "ПереброÑить Ñюда" #: ../src/dockedapp.c:149 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "" "не удалоÑÑŒ найти иконку \"%s\", иÑпользуемую в пришвартованном приложении" # #: ../src/dockedapp.c:229 #, c-format msgid "Could not open specified icon file: %s" msgstr "Ðе удалоÑÑŒ открыть указанный файл иконки: %s" #: ../src/dockedapp.c:231 msgid "Ignore" msgstr "ПропуÑтить" #: ../src/dockedapp.c:333 msgid "Start when Window Maker is started" msgstr "ЗапуÑтить при Ñтарте WindowMaker'а" #: ../src/dockedapp.c:340 msgid "Lock (prevent accidental removal)" msgstr "Заблокировать (от Ñлучайного удалениÑ)" # #: ../src/dockedapp.c:344 msgid "Application path and arguments" msgstr "Путь к приложению и аргументы" #: ../src/dockedapp.c:357 msgid "Command for middle-click launch" msgstr "Команда Ð´Ð»Ñ Ñ‰ÐµÐ»Ñ‡ÐºÐ° Ñредней кнопкой мыши" #: ../src/dockedapp.c:371 #, c-format msgid "%s will be replaced with current selection" msgstr "%s будет заменено текущем выделением" #: ../src/dockedapp.c:376 msgid "Command for files dropped with DND" msgstr "Команда Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð°Ñ‰ÐµÐ½Ð½Ñ‹Ñ… файлов" #: ../src/dockedapp.c:390 #, c-format msgid "%d will be replaced with the file name" msgstr "%d будет заменено на Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" # awn: orig: Поддержка Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð°ÑÐºÐ¸Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… не была включена при компилÑции< #: ../src/dockedapp.c:394 msgid "DND support was not compiled in" msgstr "" "Поддержка \"перетащил-и-броÑил\" (drag-and-drop) не была включена при " "компилÑции" #: ../src/dockedapp.c:399 msgid "Icon Image" msgstr "Изображение иконки" #: ../src/dockedapp.c:413 ../src/winspector.c:1513 msgid "Browse..." msgstr "Выбрать..." # #: ../src/dockedapp.c:466 msgid "Docked Application Settings" msgstr "Параметры пришвартованного приложениÑ" #: ../src/framewin.c:649 ../src/framewin.c:744 ../src/menu.c:456 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "не удалоÑÑŒ подготовить текÑтуру: %s" #: ../src/framewin.c:672 ../src/framewin.c:683 ../src/framewin.c:699 #: ../src/framewin.c:710 ../src/framewin.c:717 ../src/framewin.c:724 #: ../src/icon.c:350 ../src/menu.c:485 #, c-format msgid "error rendering image:%s" msgstr "ошибка при подготовке изображениÑ:%s" #: ../src/framewin.c:777 #, c-format msgid "error rendering image: %s" msgstr "ошибка при подготовке изображениÑ: %s" #: ../src/gnome.c:216 ../src/gnome.c:343 ../src/gnome.c:401 msgid "out of memory while updating GNOME hints" msgstr "иÑчерпана памÑть при обновлении \"намеков\" GNOME (GNOME hints)" #: ../src/icon.c:229 ../src/wdefaults.c:443 #, c-format msgid "error loading image file \"%s\": %s" msgstr "ошибка загрузки файла картинки \"%s\": %s" # #: ../src/icon.c:493 ../src/icon.c:502 #, c-format msgid "could not create directory %s" msgstr "не удалоÑÑŒ Ñоздать каталог %s" #: ../src/icon.c:769 #, c-format msgid "could not find default icon \"%s\"" msgstr "не удалоÑÑŒ найти иконку по умолчанию \"%s\"" #: ../src/icon.c:775 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "не удалоÑÑŒ загрузить иконку по умолчанию \"%s\": %s" #. #. * 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/kwm.c:633 ../src/winmenu.c:441 ../src/winmenu.c:583 msgid "Maximize" msgstr "РаÑпахнуть" #: ../src/kwm.c:634 ../src/winmenu.c:578 msgid "Unmaximize" msgstr "ВоÑÑтановить" #: ../src/kwm.c:635 ../src/winmenu.c:449 ../src/winmenu.c:569 msgid "Miniaturize" msgstr "Свернуть" #: ../src/kwm.c:636 ../src/winmenu.c:564 msgid "Deminiaturize" msgstr "Развернуть" #: ../src/kwm.c:638 msgid "Not Omnipresent" msgstr "ПриÑутÑтвует ÐЕ везде" #: ../src/kwm.c:639 msgid "Move" msgstr "ПеремеÑтить" #: ../src/kwm.c:640 msgid "Resize" msgstr "Изменить размер" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/kwm.c:641 ../src/rootmenu.c:248 ../src/winmenu.c:513 msgid "Close" msgstr "Закрыть" #: ../src/kwm.c:642 ../src/winmenu.c:497 msgid "Move To" msgstr "ПеремеÑтить на рабочее проÑтранÑтво" #: ../src/kwm.c:1096 msgid "%a(Run Command,Type the command to run:)" msgstr "%a(ИÑполнить,Введите команду Ð´Ð»Ñ Ð¸ÑполнениÑ:)" #: ../src/main.c:222 msgid "failed to restart Window Maker." msgstr "не удалоÑÑŒ перезапуÑтить Window Maker." #: ../src/main.c:225 #, c-format msgid "could not exec %s" msgstr "не удалоÑÑŒ выполнить %s" #: ../src/main.c:271 msgid "Could not execute command: " msgstr "Ðе удалоÑÑŒ иÑполнить команду: " #: ../src/main.c:428 #, c-format msgid "%s aborted.\n" msgstr "%s прервано.\n" #: ../src/main.c:439 #, c-format msgid "Usage: %s [options]\n" msgstr "ЗапуÑк: %s [параметры]\n" #: ../src/main.c:440 msgid "The Window Maker window manager for the X window system" msgstr "ДиÑпетчер окон Window Maker Ð´Ð»Ñ ÑиÑтемы X Window" #: ../src/main.c:442 msgid " -display host:dpy\tdisplay to use" msgstr " -display хоÑÑ‚:диÑплей\tиÑпользовать данный диÑплей" #: ../src/main.c:444 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tзапретить предобработку файлов наÑтройки" #: ../src/main.c:446 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tне открывать Док приложений" #: ../src/main.c:447 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tне открывать Скрепку Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹" # #: ../src/main.c:448 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tзапретить автоматичеÑкий запуÑк приложений" #: ../src/main.c:449 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tне воÑÑтанавливать Ñохраненный ÑеанÑ" #: ../src/main.c:451 msgid " --locale locale\tlocale to use" msgstr "" #: ../src/main.c:453 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" " --create-stdcmap\tÑоздать Ñтандартную цветовую палитру в клаÑÑе\n" "\t\t\tÐ¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ `PseudoColor'" #: ../src/main.c:454 msgid " --visual-id visualid\tvisual id of visual to use" msgstr "" " --visual-id visualid\tиÑпользовать указанный цветовой клаÑÑ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ" #: ../src/main.c:455 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tне обновлÑть и не ÑохранÑть конфигурацию" #: ../src/main.c:456 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr "" "--no-polling\t\tзапретить периодичеÑкую проверку конфигурации\n" " на изменениÑ" #: ../src/main.c:458 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tвключить Ñинхронный режим вывода" #: ../src/main.c:460 msgid " --version\t\tprint version and exit" msgstr " --version\t\tвывеÑти номер верÑии и выйти" #: ../src/main.c:461 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tвывеÑти Ñтот текÑÑ‚" #: ../src/main.c:474 #, 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" # #: ../src/main.c:479 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "не удалоÑÑŒ найти пользовательÑкий GNUstep каталог (%s)." #: ../src/main.c:482 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "Во Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑкого каталога GNUstep произошла ошибка,\n" "пожалуйÑта, убедитеÑÑŒ, что Window Maker был уÑтановлен правильно\n" "и запуÑтите wmaker.inst" #: ../src/main.c:485 #, c-format msgid "%s directory created with default configuration." msgstr "каталог %s Ñоздан Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸ÐµÐ¹ по умолчанию." #: ../src/main.c:505 ../src/main.c:510 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:не удалоÑÑŒ выполнить Ñценарий инициализации" #: ../src/main.c:530 ../src/main.c:535 #, c-format msgid "%s:could not execute exit script" msgstr "%s:не удалоÑÑŒ выполнить Ñценарий Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹" #: ../src/main.c:663 ../src/main.c:671 ../src/main.c:679 ../src/main.c:699 #, c-format msgid "too few arguments for %s" msgstr "Ñлишком мало аргументов Ð´Ð»Ñ %s" #: ../src/main.c:683 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "ошибочное значение Ð´Ð»Ñ visualid: \"%s\"" # #: ../src/main.c:707 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: неверный аргумент \"%s\"\n" #: ../src/main.c:708 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Попробуйте '%s --help' Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации\n" #: ../src/main.c:739 msgid "X server does not support locale" msgstr "X Ñервер не поддерживает локализацию" #: ../src/main.c:743 msgid "cannot set locale modifiers" msgstr "не удалоÑÑŒ уÑтановить параметры локализации" #: ../src/main.c:759 #, c-format msgid "could not open display \"%s\"" msgstr "не удалоÑÑŒ открыть диÑплей \"%s\"" # #: ../src/menu.c:1264 msgid "could not grab keyboard" msgstr "не удалоÑÑŒ захватить клавиатуру" #: ../src/menu.c:2578 #, c-format msgid "bad value in menus state info:%s" msgstr "недопуÑтимое значение в информации о ÑоÑтоÑнии меню: %s" #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "не удалоÑÑŒ определить Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ %s Ð´Ð»Ñ cpp" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "не удалоÑÑŒ получить информацию о пользователе Ð´Ð»Ñ UID %i" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "Ваша ÑиÑтема наÑтроена неверно. ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ HOSTNAME уÑтановлена в %s" #: ../src/misc.c:132 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "Ваша ÑиÑтема наÑтроена неверно. ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ HOST уÑтановлена в %s" #: ../src/misc.c:630 msgid "Program Arguments" msgstr "Ðргументы Программы" #: ../src/misc.c:631 msgid "Enter command arguments:" msgstr "Введите аргументы команды:" #: ../src/misc.c:724 msgid "unable to get dropped data from DND drop" msgstr "не удалоÑÑŒ получить перетащенные данные" #: ../src/misc.c:732 msgid "error getting dropped data from DND drop" msgstr "ошибка при получении данных от DND drop" #: ../src/misc.c:738 msgid "out of memory while getting data from DND drop" msgstr "иÑчерпана памÑть при получении данных от DND drop" #: ../src/misc.c:783 ../src/misc.c:923 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "иÑчерпана памÑть во Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ \"%s\"" #: ../src/misc.c:837 msgid "out of memory during expansion of \"%w\"" msgstr "иÑчерпана памÑть во Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ \"%w\"" #: ../src/misc.c:855 msgid "out of memory during expansion of \"%W\"" msgstr "иÑчерпана памÑть во Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ \"%W\"" #: ../src/misc.c:871 msgid "out of memory during expansion of \"%a\"" msgstr "иÑчерпана памÑть во Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ \"%a\"" #: ../src/misc.c:902 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "иÑчерпана памÑть во Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ \"%d\"" #: ../src/misc.c:916 msgid "selection not available" msgstr "нет выделениÑ" #: ../src/misc.c:972 ../src/misc.c:978 #, c-format msgid "bad window name value in %s state info" msgstr "неверное значение имени окна в информации о ÑоÑтоÑнии длÑ: %s" #: ../src/misc.c:1235 msgid "could not send message to background image helper" msgstr "не удалоÑÑŒ поÑлать Ñообщение приложению фонового изображениÑ" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "не удалоÑÑŒ загрузить файл маÑки \"%s\". МаÑка не будет иÑпользована." #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "не удалоÑÑŒ определить цвет \"%s\"" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "не удалоÑÑŒ зарезервировать цвет \"%s\"" #: ../src/rootmenu.c:196 ../src/rootmenu.c:198 msgid "Exit" msgstr "Выход" #: ../src/rootmenu.c:197 msgid "Exit window manager?" msgstr "Выйти из диÑпетчера окон?" #: ../src/rootmenu.c:245 msgid "Close X session" msgstr "Завершить ÑÐµÐ°Ð½Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹" #: ../src/rootmenu.c:246 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "Закрыть ÑÐµÐ°Ð½Ñ ÐžÐºÐ¾Ð½Ð½Ð¾Ð¹ СиÑтемы?\n" "Это может аварийно завершить Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ Ð½ÐµÑохраненной информацией." #: ../src/rootmenu.c:261 msgid "Kill X session" msgstr "Ðварийное завершение ÑеанÑа работы" #: ../src/rootmenu.c:262 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Закрыть ÑÐµÐ°Ð½Ñ ÐžÐºÐ¾Ð½Ð½Ð¾Ð¹ СиÑтемы?\n" "(вÑе Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ завершены)" #: ../src/rootmenu.c:539 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:неверное указание комбинации клавиш \"%s\" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи %s" #: ../src/rootmenu.c:547 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° в комбинации \"%s\" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи %s" #: ../src/rootmenu.c:600 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: Ð½ÐµÐ¿Ð°Ñ€Ð½Ð°Ñ '\"' в файле меню" #: ../src/rootmenu.c:650 #, c-format msgid "%s: missing command" msgstr "%s: отÑутÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°" #: ../src/rootmenu.c:682 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ OPEN_MENU: %s" #: ../src/rootmenu.c:733 #, c-format msgid "%s:could not stat menu" msgstr "%s:не удалоÑÑŒ получить меню" #: ../src/rootmenu.c:741 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:не удалоÑÑŒ получить информацию о меню:%s" #: ../src/rootmenu.c:759 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "Ñлишком много параметров Ð´Ð»Ñ OPEN_MENU: %s" #: ../src/rootmenu.c:803 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Ð’ меню приложений приÑутÑтвует больше одной команды WORKSPACE_MENU. " "ДопуÑтима только одна." #: ../src/rootmenu.c:837 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "Ð’ меню приложений приÑутÑтвует больше одной команды WINDOWS_MENU. ДопуÑтима " "только одна." #: ../src/rootmenu.c:842 msgid "Window List" msgstr "СпиÑок окон" #: ../src/rootmenu.c:871 ../src/rootmenu.c:889 ../src/rootmenu.c:899 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:недоÑтающий параметр Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ меню \"%s\"" #: ../src/rootmenu.c:967 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:неизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° \"%s\" в наÑтройке меню" #: ../src/rootmenu.c:975 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:не удалоÑÑŒ добавить комбинацию клавиш Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ \"%s\"" #: ../src/rootmenu.c:1112 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:превышен макÑимальный размер Ñтроки в наÑтройке меню: %s" #: ../src/rootmenu.c:1134 ../src/rootmenu.c:1227 ../src/rootmenu.c:1330 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:отÑутÑтвует команда в наÑтройке меню: %s" #: ../src/rootmenu.c:1164 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:ÑинтакÑичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в файле меню: отÑутÑтвует END" #: ../src/rootmenu.c:1193 ../src/rootmenu.c:1294 msgid "could not make arguments for menu file preprocessor" msgstr "не удалоÑÑŒ подÑтавить аргументы Ð´Ð»Ñ Ð¿Ñ€ÐµÐ¿Ñ€Ð¾Ñ†ÐµÑÑора файла меню" #: ../src/rootmenu.c:1200 ../src/rootmenu.c:1302 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s:не удалоÑÑŒ открыть/предобработать файл меню" #: ../src/rootmenu.c:1212 ../src/rootmenu.c:1315 #, c-format msgid "%s:could not open menu file" msgstr "%s:не удалоÑÑŒ открыть файл меню" #: ../src/rootmenu.c:1239 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:файл меню неверен. ОтÑутÑтвует команда MENU" #: ../src/rootmenu.c:1248 msgid "error reading preprocessed menu data" msgstr "ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð½Ñ‹Ñ… данных меню" #: ../src/rootmenu.c:1342 #, c-format msgid "%s:no title given for the root menu" msgstr "%s: не задан заголовок корневого меню" #: ../src/rootmenu.c:1433 ../src/rootmenu.c:1506 ../src/rootmenu.c:1547 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "иÑчерпана памÑть при Ñоздании каталога меню %s" #: ../src/rootmenu.c:1443 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:нет информации о файле \"%s\" в каталоге меню" #: ../src/rootmenu.c:1601 msgid "Commands" msgstr "Команды" #: ../src/rootmenu.c:1604 msgid "Restart" msgstr "ПерезапуÑк" #: ../src/rootmenu.c:1605 msgid "Exit..." msgstr "Выход..." #: ../src/rootmenu.c:1650 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "не удалоÑÑŒ найти файл меню \"%s\", указанный в WMRootMenu" #: ../src/rootmenu.c:1657 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "не удалоÑÑŒ прочитать меню \"%s\", указанное в WMRootMenu" #: ../src/rootmenu.c:1668 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "меню, указанное в файле WMRootMenu, не найдено, иÑпользуетÑÑ Ð¼ÐµÐ½ÑŽ по умолчанию (%s) " #: ../src/rootmenu.c:1691 ../src/rootmenu.c:1767 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:ошибка формата в наÑтройке корневого меню \"%s\"" #: ../src/rootmenu.c:1855 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Ðе удалоÑÑŒ загрузить меню приложений. Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð½Ð° конÑоли Ñодержат " "подробное опиÑание проблемы" #: ../src/screen.c:747 #, c-format msgid "could not initialize graphics library context: %s" msgstr "не удалоÑÑŒ проинициализировать графичеÑкую библиотеку: %s" #: ../src/screen.c:778 msgid "could not do initialization of WINGs widget set" msgstr "не удалоÑÑŒ инициализировать библиотеку WINGs" #: ../src/screen.c:1144 #, c-format msgid "could not save session state in %s" msgstr "не удалоÑÑŒ Ñохранить ÑоÑтоÑÐ½Ð¸Ñ ÑеанÑа в %s" #: ../src/session.c:183 ../src/wdefaults.c:589 ../src/winspector.c:454 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "не удалоÑÑŒ преобразовать \"%s\" в булевÑкую величину" #: ../src/session.c:1023 msgid "out of memory while saving session state" msgstr "иÑчерпана памÑть при Ñохранении ÑоÑтоÑÐ½Ð¸Ñ ÑеанÑа" #: ../src/session.c:1106 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:1244 msgid "connection to the session manager was lost" msgstr "потерÑно Ñоединение Ñ Ð´Ð¸Ñпетчером ÑеÑÑий" #: ../src/stacking.c:79 msgid "could not get window list!!" msgstr "не удалоÑÑŒ получить ÑпиÑок окон!!!" #: ../src/startup.c:202 #, c-format msgid "internal X error: %s\n" msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° X Ñервера: %s\n" #: ../src/startup.c:260 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "получен Ñигнал %i (%s) -- перезапуÑк\n" #: ../src/startup.c:262 #, c-format msgid "got signal %i - restarting\n" msgstr "получен Ñигнал %i - перезапуÑк\n" #: ../src/startup.c:272 #, c-format msgid "got signal %i (%s) - rereading defaults\n" msgstr "получен Ñигнал %i (%s) -- повторное чтение значений по умолчанию\n" #: ../src/startup.c:274 #, c-format msgid "got signal %i - rereading defaults\n" msgstr "получен Ñигнал %i -- повторное чтение значений по умолчанию\n" #: ../src/startup.c:284 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "получен Ñигнал %i (%s) -- завершение работы...\n" #: ../src/startup.c:286 #, c-format msgid "got signal %i - exiting...\n" msgstr "получен Ñигнал %i -- завершение работы...\n" #: ../src/startup.c:329 #, c-format msgid "got signal %i (%s)\n" msgstr "получен Ñигнал %i (%s)\n" #: ../src/startup.c:331 #, c-format msgid "got signal %i\n" msgstr "получен Ñигнал %i\n" #: ../src/startup.c:342 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "" "критичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° во Ð²Ñ€ÐµÐ¼Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле Ñерьезной ошибки. " "ÐЕМЕДЛЕÐÐОЕ завершение работы." #. we try to restart Window Maker #: ../src/startup.c:406 msgid "trying to restart Window Maker..." msgstr "попытка перезапуÑтить Window Maker..." #: ../src/startup.c:411 msgid "trying to start alternate window manager..." msgstr "попытка запуÑка альтернативного диÑпетчера окон..." #: ../src/startup.c:417 msgid "failed to start alternate window manager. Aborting." msgstr "не удалоÑÑŒ запуÑтить альтернативный диÑпетчер окон. Отказ." #: ../src/startup.c:419 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" "возникла критичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Возможно, Ñто результат ошибки в программе. " "ПожалуйÑта, заполните форму в файле BUGFORM и отправьте его автору." #: ../src/startup.c:894 #, 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:922 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "" #: ../src/startup.c:941 msgid "it seems that there is already a window manager running" msgstr "похоже, что активен другой диÑпетчер окон" #: ../src/startup.c:947 #, c-format msgid "could not manage screen %i" msgstr "не удаетÑÑ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñть Ñкраном %i" #: ../src/startup.c:1015 msgid "could not manage any screen" msgstr "не удаетÑÑ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñть каким-либо Ñкраном" #: ../src/switchmenu.c:137 msgid "Windows" msgstr "СпиÑок окон" #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "файл текÑтуры \"%s\" не найден." #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "не удалоÑÑŒ загрузить раÑтровый риÑунок Ñ Ñ‚ÐµÐºÑтурой \"%s\": %s" #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "не удалоÑÑŒ открыть библиотеку \"%s\"." #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ \"%s\" отÑутÑтвует в библиотеке \"%s\"" #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "функциональные текÑтуры не поддерживаютÑÑ Ñтой ÑиÑтемой." #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "не удалоÑÑŒ размеÑтить буфер изображениÑ" #: ../src/wdefaults.c:437 #, c-format msgid "could not find icon file \"%s\"" msgstr "не удалоÑÑŒ найти файл иконки \"%s\"" #: ../src/window.c:2942 ../src/window.c:3081 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:126 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Это форÑированно завершит приложение.\n" "Ð’Ñе неÑохраненные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны.\n" "ПожалуйÑта, подтвердите." #: ../src/winmenu.c:272 ../src/winmenu.c:281 msgid "Set Shortcut" msgstr "УÑтановить комбинацию клавиш" #: ../src/winmenu.c:359 ../src/winmenu.c:404 msgid "could not create submenu for window menu" msgstr "не удалоÑÑŒ Ñоздать подменю Ð´Ð»Ñ Ð¼ÐµÐ½ÑŽ окна" #: ../src/winmenu.c:408 msgid "Keep on top" msgstr "Ð’Ñегда наверху" #: ../src/winmenu.c:413 msgid "Keep at bottom" msgstr "Ð’Ñегда внизу" #: ../src/winmenu.c:457 ../src/winmenu.c:600 msgid "Shade" msgstr "Ð’Ñ‚Ñнуть" #: ../src/winmenu.c:473 msgid "Hide Others" msgstr "Скрыть оÑтальные" #: ../src/winmenu.c:481 msgid "Resize/Move" msgstr "Изменить размер/перемеÑтить" #: ../src/winmenu.c:489 msgid "Select" msgstr "Выделить" #: ../src/winmenu.c:502 msgid "Attributes..." msgstr "СвойÑтва..." #: ../src/winmenu.c:504 msgid "Options" msgstr "Параметры" #: ../src/winmenu.c:595 msgid "Unshade" msgstr "ВоÑÑтановить" #: ../src/winspector.c:387 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Ðевозможно найти файл иконки \"%s\", указанный Ð´Ð»Ñ Ñтого окна" #: ../src/winspector.c:404 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Ðевозможно открыть указанную иконку \"%s\": %s" #: ../src/winspector.c:1121 #, c-format msgid "Inspecting %s.%s" msgstr "" #: ../src/winspector.c:1147 msgid "Click in the window you wish to inspect." msgstr "" #: ../src/winspector.c:1186 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "Ð”Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ применена\n" "ко вÑем окнам, у которых атрибут\n" "WM_CLASS уÑтановлен в выбранное Вами\n" "значение, а затем Ñохранена." #: ../src/winspector.c:1215 msgid "Save" msgstr "Сохранить" #: ../src/winspector.c:1223 msgid "Apply" msgstr "Применить" #: ../src/winspector.c:1229 msgid "Reload" msgstr "Перечитать" #: ../src/winspector.c:1238 ../src/winspector.c:1248 msgid "Window Specification" msgstr "Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¾ÐºÐ½Ð°" #: ../src/winspector.c:1239 msgid "Window Attributes" msgstr "Ðтрибуты окна" #: ../src/winspector.c:1240 msgid "Advanced Options" msgstr "Дополнительные параметры" #: ../src/winspector.c:1241 msgid "Icon and Initial Workspace" msgstr "ИÑходное рабочее проÑтранÑтво" #: ../src/winspector.c:1242 msgid "Application Specific" msgstr "СвойÑтва приложениÑ" #: ../src/winspector.c:1256 msgid "Defaults for all windows" msgstr "Ð’Ñе окна" #: ../src/winspector.c:1310 msgid "Select window" msgstr "Выбрать окно" #: ../src/winspector.c:1324 msgid "Attributes" msgstr "СвойÑтва" #: ../src/winspector.c:1335 msgid "Disable titlebar" msgstr "Отключить заголовок" #: ../src/winspector.c:1337 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Убрать заголовок у Ñтого окна.\n" "Ð”Ð»Ñ Ð´Ð¾Ñтупа к меню команд окна у окна без заголовка,\n" "иÑпользуйте Control+Esc (или Ñквивалентную комбинацию\n" "клавиш, еÑли вы изменили наÑтройки по умолчанию)." # awn: "Отключить линейку Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð°" было бы правильнее, но не # помещаетÑÑ #: ../src/winspector.c:1344 msgid "Disable resizebar" msgstr "Отключить рамку Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð°" #: ../src/winspector.c:1346 msgid "Remove the resizebar of this window." msgstr "Убрать рамку Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° у Ñтого окна." #: ../src/winspector.c:1349 msgid "Disable close button" msgstr "Убрать кнопку закрытиÑ" #: ../src/winspector.c:1351 msgid "Remove the `close window' button of this window." msgstr "Убрать кнопку `закрыть окно' у Ñтого окна." #: ../src/winspector.c:1354 msgid "Disable miniaturize button" msgstr "Убрать кнопку `Ñвернуть в иконку'" #: ../src/winspector.c:1356 msgid "Remove the `miniaturize window' button of the window." msgstr "Убрать кнопку `Ñвернуть в иконку' у Ñтого окна." #: ../src/winspector.c:1359 msgid "Disable border" msgstr "Убрать рамку" #: ../src/winspector.c:1361 msgid "Remove the 1 pixel black border around the window." msgstr "Убрать 1-точечную черную рамку вокруг окна." #: ../src/winspector.c:1364 msgid "Keep on top (floating)" msgstr "Удерживать окно Ñверху" #: ../src/winspector.c:1366 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "Удерживать окно над другими окнами,\n" "не позволÑÑ Ð¸Ð¼ перекрывать его." #: ../src/winspector.c:1370 msgid "Keep at bottom (sunken)" msgstr "Удерживать окно Ñнизу" #: ../src/winspector.c:1372 msgid "Keep the window under all other windows." msgstr "Удерживать окно под вÑеми другими окнами" #: ../src/winspector.c:1377 msgid "Make window present in all workspaces." msgstr "Сделать окно приÑутÑтвующим на вÑех рабочих проÑтранÑтвах" #: ../src/winspector.c:1380 msgid "Start miniaturized" msgstr "ЗапуÑк в Ñвернутом ÑоÑтоÑнии" #: ../src/winspector.c:1382 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "ÐвтоматичеÑки Ñворачивать окно в иконку при первом\n" "его поÑвлении." #: ../src/winspector.c:1386 msgid "Start maximized" msgstr "ЗапуÑк в раÑпахнутом ÑоÑтоÑнии" #: ../src/winspector.c:1388 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "ÐвтоматичеÑки раÑпахивать окно при первом его поÑвлении." #: ../src/winspector.c:1392 msgid "Full screen maximization" msgstr "РаÑпахнуть на веÑÑŒ Ñкран" #: ../src/winspector.c:1394 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Когда окно раÑпахиваетÑÑ -- иÑпользовать вÑе доÑтупное\n" "Ñкранное проÑтранÑтво. Заголовок окна и рамка\n" "Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° выноÑÑÑ‚ÑÑ Ð·Ð° пределы Ñкрана." #: ../src/winspector.c:1411 msgid "Advanced" msgstr "Дополнительно" #: ../src/winspector.c:1428 msgid "Do not bind keyboard shortcuts" msgstr "Ðе проверÑть ÑÐ¾Ñ‡ÐµÑ‚Ð°Ð½Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ" #: ../src/winspector.c:1430 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Ðе перехватывать и не проверÑть ÑÐ¾Ñ‡ÐµÑ‚Ð°Ð½Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ,\n" "адреÑованные Ñтому окну. Это позволÑет\n" "приложению получать вÑе ÑÐ¾Ñ‡ÐµÑ‚Ð°Ð½Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ,\n" "даже еÑли они ÑвлÑÑŽÑ‚ÑÑ \"горÑчими клавишами\"\n" "Window Maker'а." #: ../src/winspector.c:1436 msgid "Do not bind mouse clicks" msgstr "Ðе проверÑть щелчки мыши" #: ../src/winspector.c:1438 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" #: ../src/winspector.c:1443 msgid "Do not show in the window list" msgstr "Ðе показывать в ÑпиÑке окон" #: ../src/winspector.c:1445 msgid "Do not list the window in the window list menu." msgstr "Ðе показывать окно в ÑпиÑке окон." #: ../src/winspector.c:1448 msgid "Do not let it take focus" msgstr "Ðе давать Ñ„Ð¾ÐºÑƒÑ Ð²Ð²Ð¾Ð´Ð°" #: ../src/winspector.c:1450 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "Ðе давать окну Ñ„Ð¾ÐºÑƒÑ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð½Ð¾Ð³Ð¾ ввода, даже еÑли вы\n" "щелкните на нем." #: ../src/winspector.c:1454 msgid "Keep inside screen" msgstr "Удерживать внутри Ñкрана" #: ../src/winspector.c:1456 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Ðе позволÑть окну уходить целиком за пределы Ñкрана\n" "Ð”Ð»Ñ ÑовмеÑтимоÑти Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°Ð¼Ð¸.\n" #: ../src/winspector.c:1460 msgid "Ignore 'Hide Others'" msgstr "Игнорировать \"Скрыть оÑтальные\"" #: ../src/winspector.c:1462 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "Ðе Ñкрывать окно при иÑполнении\n" "команды \"Скрыть оÑтальные\"." #: ../src/winspector.c:1466 msgid "Ignore 'Save Session'" msgstr "Игнорировать \"Сохранить ÑеанÑ\"" #: ../src/winspector.c:1468 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" # #: ../src/winspector.c:1474 msgid "Emulate application icon" msgstr "Эмулировать иконку приложениÑ" #: ../src/winspector.c:1476 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "ЗаÑтавлÑет Window Maker обращатьÑÑ Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÐ¼ так,\n" "как еÑли бы оно предоÑтавлÑло доÑтаточно информации\n" "Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ÐºÐ¾Ð½ÐºÐ¸ пришвартованного приложениÑ." #: ../src/winspector.c:1482 msgid "Disable language button" msgstr "" #: ../src/winspector.c:1484 msgid "Remove the `toggle language' button of the window." msgstr "" #: ../src/winspector.c:1501 msgid "Miniwindow Image" msgstr "Миниатюрное изображение" #: ../src/winspector.c:1528 msgid "Icon filename:" msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° иконки:" #: ../src/winspector.c:1541 msgid "Ignore client supplied icon" msgstr "Игнорировать внутреннюю иконку приложениÑ" #: ../src/winspector.c:1548 msgid "Initial Workspace" msgstr "Ðачальное рабочее проÑтранÑтво" #: ../src/winspector.c:1550 msgid "The workspace to place the window when it'sfirst shown." msgstr "" "Рабочее проÑтранÑтво, на которое помещать окно,\n" "когда оно открываетÑÑ Ð² первый раз." #: ../src/winspector.c:1556 msgid "Nowhere in particular" msgstr "Где угодно" #: ../src/winspector.c:1574 msgid "Application Attributes" msgstr "СвойÑтва приложениÑ" #: ../src/winspector.c:1585 msgid "Start hidden" msgstr "ЗапуÑкать Ñкрытым" #: ../src/winspector.c:1587 msgid "Automatically hide application when it's started." msgstr "" "ÐвтоматичеÑки Ñкрывать приложение\n" "Ñразу поÑле его запуÑка." #: ../src/winspector.c:1590 msgid "No application icon" msgstr "Ðе показывать иконку" #: ../src/winspector.c:1592 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" #: ../src/winspector.c:1598 msgid "Shared application icon" msgstr "СовмеÑтно иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð¸ÐºÐ¾Ð½ÐºÐ°" #: ../src/winspector.c:1600 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "ИÑпользовать общую иконку Ð´Ð»Ñ Ð²Ñех ÑкземплÑров\n" "Ñтого приложениÑ.\n" #: ../src/workspace.c:107 ../src/workspace.c:108 ../src/workspace.c:893 #, c-format msgid "Workspace %i" msgstr "Рабочее проÑтранÑтво %i" #: ../src/workspace.c:943 msgid "Workspaces" msgstr "Рабочие проÑтранÑтва" #: ../src/workspace.c:945 msgid "could not create Workspace menu" msgstr "Ðевозможно Ñоздать меню Рабочих ПроÑтранÑтв" #: ../src/workspace.c:952 msgid "New" msgstr "Создать" #: ../src/workspace.c:953 msgid "Destroy Last" msgstr "Удалить поÑледнее" WindowMaker-0.95.5/po/pl.po0000644000175000017500000011100312214432632012346 00000000000000# Pre-translation has bean done using PePeSza v0.6 # get your own copy of PePeSza from http://www.ids.pl/~pkollegu/pepesza.html # # Window Maker Polish translation. # Copyright (C) 1999 Free Software Foundation, Inc. # Piotr DembiÅ„ski , 1998. # msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.80.2\n" "POT-Creation-Date: 1999-01-24 14:05+0100\n" "PO-Revision-Date: 2003-04-15 20:21+0200\n" "Last-Translator: Piotr DembiÅ„ski \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\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 "Błąd" #: ../src/appicon.c:510 msgid "Could not open specified icon file" 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 #: ../src/dock.c:3060 ../src/dockedapp.c:206 ../src/dockedapp.c:350 #: ../src/winspector.c:284 ../src/winspector.c:300 msgid "OK" msgstr "OK" #: ../src/appicon.c:532 ../src/dock.c:272 ../src/winmenu.c:123 msgid "Kill Application" msgstr "Zabij AplikacjÄ™" #: ../src/appicon.c:533 ../src/dock.c:273 ../src/winmenu.c:124 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 "Tak" #: ../src/appicon.c:534 ../src/dock.c:274 ../src/winmenu.c:125 msgid "No" msgstr "Nie" #: ../src/appicon.c:548 ../src/dock.c:1065 msgid "Unhide Here" msgstr "Odkryj Tutaj" #: ../src/appicon.c:549 ../src/appicon.c:574 ../src/winmenu.c:441 msgid "Hide" msgstr "Ukryj" #: ../src/appicon.c:550 msgid "Set Icon..." 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 "Zabij" #: ../src/appicon.c:572 msgid "Unhide" 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 "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 "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 "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 "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 "nie można zaÅ‚adować domeny %s z globalnej bazy danych" #: ../src/defaults.c:1266 #, c-format, fuzzy msgid "wrong option value for key \"%s\". Should be one of %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 "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 #: ../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 #, c-format msgid "using default \"%s\" instead" msgstr "używam domyÅ›lnego \"%s\"" #: ../src/defaults.c:1349 #, c-format msgid "can't convert \"%s\" to integer for key \"%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 "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 "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 "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 "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\" nie jest wÅ‚aÅ›ciwÄ… nazwÄ… koloru" #: ../src/defaults.c:1632 msgid "bad number of arguments in gradient specification" msgstr "niewÅ‚aÅ›ciwa liczba argumentów w okreÅ›leniu gradientu" #: ../src/defaults.c:1686 msgid "too few arguments in multicolor gradient specification" 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 "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 "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 "niewÅ‚aÅ›ciwy typ tekstury %s" #: ../src/defaults.c:1883 #, c-format msgid "Error in texture specification for key \"%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 "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 "NiewÅ‚aÅ›ciwy typ tÅ‚a pulpitu %i. Powinna być tekstura." #: ../src/defaults.c:2006 msgid "could not load any usable font!!!" msgstr "nie można zaÅ‚adować żadnego fontu!!!" #: ../src/defaults.c:2036 #, c-format msgid "could not get color for key \"%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:niewÅ‚aÅ›ciwy modyfikator klucza \"%s\"" #: ../src/defaults.c:2107 #, c-format msgid "%s:invalid kbd shortcut specification \"%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:niewÅ‚aÅ›ciwy klawisz w skrócie \"%s\"" #: ../src/defaults.c:2140 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: klawisz zmiany %s nie jest wÅ‚aÅ›ciwy" #: ../src/defaults.c:2216 msgid "could not render texture for icon background" 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 "Anuluj" #: ../src/dialog.c:211 msgid "Could not open directory " msgstr "Nie można otworzyć katalogu " #: ../src/dialog.c:267 msgid "Could not load image file " msgstr "Nie można zaÅ‚adować pliku z obrazkiem " #: ../src/dialog.c:404 msgid "Directories" msgstr "Katalogi" #: ../src/dialog.c:413 msgid "Icons" msgstr "Ikony" #: ../src/dialog.c:450 msgid "File Name:" msgstr "Nazwa Pliku:" #: ../src/dialog.c:473 msgid "Choose File" msgstr "Wybierz Plik" #: ../src/dialog.c:483 msgid "Icon Chooser" msgstr "Katalog Ikon" #: ../src/dock.c:213 #, c-format msgid "Type the name for workspace %i:" msgstr "Wpisz nazwÄ™ dla pulpitu %i:" #: ../src/dock.c:214 ../src/dock.c:1044 msgid "Rename Workspace" msgstr "ZmieÅ„ NazwÄ™ Pulpitu" #: ../src/dock.c:422 msgid "Workspace Clip" msgstr "Spinacz Pulpitu" #: ../src/dock.c:423 msgid "All selected icons will be removed!" msgstr "Wszystkie zaznaczone ikony zostanÄ… usuniÄ™te!" #: ../src/dock.c:470 msgid "Keep Icon" 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 "Wpisz polecenie używane do odpalenia aplikacji" #: ../src/dock.c:857 #, c-format msgid "could not launch application %s\n" msgstr "nie można odpalić aplikacji %s\n" #: ../src/dock.c:912 msgid "could not create workspace submenu for Clip menu" msgstr "nie można stworzyć podmenu pulpitu dla menu Spinacza" #: ../src/dock.c:975 msgid "could not create options submenu for Clip menu" 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 "Trzymaj na wierzchu" #: ../src/dock.c:985 msgid "Collapsed" msgstr "ZwiniÄ™ty" #: ../src/dock.c:991 msgid "AutoCollapse" msgstr "AutoZwiniÄ™ty" #: ../src/dock.c:997 msgid "AutoRaiseLower" msgstr "AutoPodnieÅ›Opuść" #: ../src/dock.c:1003 msgid "AutoAttract Icons" msgstr "Automatyczne WyÅ‚apywanie Ikon" #: ../src/dock.c:1009 msgid "Keep Attracted Icons" msgstr "Trzymaj WyÅ‚apane Ikony" #: ../src/dock.c:1039 msgid "Clip Options" msgstr "Opcje Spinacza" #: ../src/dock.c:1046 msgid "(Un)Select Icon" msgstr "(Od)Zaznacz IkonÄ™" #: ../src/dock.c:1048 msgid "(Un)Select All Icons" msgstr "(Od)Zaznacz Wszystkie Ikony" #: ../src/dock.c:1051 msgid "Keep Icon(s)" msgstr "Trzymaj IkonÄ™(y)" #: ../src/dock.c:1053 msgid "Move Icon(s) To" msgstr "PrzenieÅ› IkonÄ™(y) Do" #: ../src/dock.c:1058 msgid "Remove Icon(s)" msgstr "UsuÅ„ IkonÄ™(y)" #: ../src/dock.c:1060 msgid "Attract Icons" msgstr "WyÅ‚ap Ikony" #: ../src/dock.c:1063 msgid "Launch" msgstr "Odpal" #: ../src/dock.c:1067 msgid "(Un)Hide" msgstr "(Nie)Ukryj" #: ../src/dock.c:1069 msgid "Settings..." 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 "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 "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 "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 "Ikona Doku" #: ../src/dock.c:3052 ../src/dock.c:3056 #, c-format msgid "Could not execute command \"%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 "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 "Nie można otworzyć okreÅ›lonego pliku z ikonÄ…:%s" #: ../src/dockedapp.c:291 msgid "Start when WindowMaker is started" msgstr "Wystartować podczas startu WindowMakera" #: ../src/dockedapp.c:298 msgid "Application path and arguments" msgstr "Åšcieżka do aplikacji i argumenty" #: ../src/dockedapp.c:309 msgid "Command for files dropped with DND" 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 zostanie zastÄ…pione nazwÄ… pliku" #: ../src/dockedapp.c:325 msgid "DND support was not compiled in" msgstr "nie wkompilowano wspomagania DND" #: ../src/dockedapp.c:331 msgid "Icon Image" msgstr "Obrazek Ikony" #: ../src/dockedapp.c:343 ../src/winspector.c:1235 msgid "Browse..." msgstr "PrzeglÄ…daj..." #: ../src/dockedapp.c:388 msgid "Docked Application Settings" msgstr "Ustawienia Zadokowanej Aplikacji" #: ../src/event.c:350 msgid "stack overflow: too many dead processes" msgstr "przepeÅ‚nienie stosu: zbyt wiele martwych procesów" #: ../src/framewin.c:485 #, c-format msgid "could not render gradient: %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 "błąd podczas pokazywania obrazka:%s" #: ../src/icon.c:182 ../src/wdefaults.c:411 #, c-format msgid "error loading image file \"%s\": %s" msgstr "błąd podczas Å‚adowania pliku z obrazkiem \"%s\": %s" #: ../src/icon.c:430 ../src/icon.c:439 #, c-format msgid "could not create directory %s" msgstr "nie można utworzyć katalogu %s" #: ../src/icon.c:706 #, c-format msgid "could not find default icon \"%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 "nie można zaÅ‚adować domyÅ›lnej ikony \"%s\":%s" #: ../src/main.c:194 msgid "could not exec window manager" msgstr "nie można wykonać programu menedżera okien" #: ../src/main.c:195 msgid "Restart failed!!!" msgstr "Restart siÄ™ nie powiódÅ‚!!!" #: ../src/main.c:242 #, c-format msgid "%s aborted.\n" msgstr "%s zaniechany.\n" #: ../src/main.c:253 #, c-format msgid "usage: %s [-options]\n" msgstr "skÅ‚adnia: %s [-options]\n" #: ../src/main.c:254 msgid "options:" msgstr "opcje:" #: ../src/main.c:256 msgid " -nocpp \t\tdisable preprocessing of configuration files" 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\tbez Doku z aplikacjami" #: ../src/main.c:259 msgid " -noclip\t\tdo not open the workspace Clip" 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\tidentyfikator używanej palety" #: ../src/main.c:264 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tużywany panel graficzny" #: ../src/main.c:265 msgid " -static\t\tdo not update or save configurations" msgstr " -static\t\tnie zapisuj ani odÅ›wieżaj ustawieÅ„" #: ../src/main.c:266 msgid " -version\t\tprint version and exit" 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).\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:nie można wykonać skryptu inicjalizacji" #: ../src/main.c:314 #, c-format msgid "%s:could not execute exit script" 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 "zbyt maÅ‚o argumentów dla %s" #: ../src/main.c:386 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "zÅ‚a wartość id palety: \"%s\"" #: ../src/main.c:444 msgid "X server does not support locale" msgstr "Serwer X nie wspiera locale" #: ../src/main.c:447 msgid "cannot set locale modifiers" msgstr "nie można ustawić modyfikatorów locale" #: ../src/main.c:464 #, c-format msgid "could not open display \"%s\"" msgstr "nie można otworzyć panelu graficznego \"%s\"" #: ../src/menu.c:285 msgid "wrealloc() failed while trying to add menu item" 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 "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 "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 "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 "twój komputer jest źle skonfigurowany. HOST jest ustawiony na %s" #: ../src/misc.c:773 msgid "selection timed-out" msgstr "zaznaczenie straciÅ‚o ważność" #: ../src/misc.c:788 msgid "Program Arguments" msgstr "Argumenty Programu" #: ../src/misc.c:789 msgid "Enter command arguments:" msgstr "Wprowadź argumenty programu:" #: ../src/misc.c:884 msgid "unable to get dropped data from 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 "błąd podczas brania upuszczonych danych protokoÅ‚u DND" #: ../src/misc.c:898 msgid "out of memory while getting data from 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 "wyczerpano pamięć podczas rozwijania \"%s\"" #: ../src/misc.c:996 msgid "out of memory during expansion of \"%w\"" msgstr "wyczerpano pamięć podczas rozwijania \"%w\"" #: ../src/misc.c:1015 msgid "out of memory during expansion of \"%a\"" msgstr "wyczerpano pamięć podczas rozwijania \"%a\"" #: ../src/misc.c:1041 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "wyczerpano pamięć podczas rozwijania \"%d\"" #: ../src/misc.c:1055 msgid "selection not available" msgstr "zaznaczenie niedostÄ™pne" #: ../src/misc.c:1127 ../src/misc.c:1133 #, c-format msgid "bad window name value in %s state info" 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 "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 "nie można zaÅ‚adować bitmapy z maskÄ… \"%s\". Maska nie zostanie użyta" #: ../src/proplist.c:180 msgid "unterminated string" msgstr "nie zakoÅ„czony Å‚aÅ„cuch" #: ../src/proplist.c:247 msgid "unterminated array" msgstr "nie zakoÅ„czona tablica" #: ../src/proplist.c:256 msgid "missing , in array or unterminated array" msgstr "brakujÄ…cy, w tablicy lub nie zakoÅ„czonej tablicy" #: ../src/proplist.c:267 msgid "could not get array element" msgstr "nie można wziąć elementu tablicy" #: ../src/proplist.c:297 msgid "unterminated dictionary" msgstr "nie zakoÅ„czony sÅ‚ownik" #: ../src/proplist.c:315 msgid "missing dictionary key" msgstr "brakujÄ…cy klucz sÅ‚ownika" #: ../src/proplist.c:317 msgid "missing dictionary entry key or unterminated dictionary" msgstr "brakujÄ…cy wpis sÅ‚ownika lub nie zakoÅ„czony sÅ‚ownik" #: ../src/proplist.c:323 msgid "error parsing dictionary key" msgstr "błąd podczas przetwarzania klucza sÅ‚ownika" #: ../src/proplist.c:332 msgid "missing = in dictionary entry" msgstr "brakujÄ…cy znak = we wpisie sÅ‚ownika" #: ../src/proplist.c:351 msgid "missing ; in dictionary entry" msgstr "brakujÄ…cy znak ; we wpisie sÅ‚ownika" #: ../src/proplist.c:432 msgid "was expecting a string, dictionary, data or array." msgstr "oczekiwano Å‚aÅ„cucha, sÅ‚ownika, danych lub tablicy." #: ../src/proplist.c:434 msgid "Comments are not allowed inside WindowMaker owned domain files." 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 "nie można otworzyć pliku domeny %s" #: ../src/proplist.c:466 msgid "extra data after end of file" msgstr "nadmiarowe dane poza koÅ„cem pliku" #: ../src/resources.c:71 #, c-format msgid "The following character sets are missing in %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 "ÅaÅ„cuch \"%s\" zostanie użyty w miejscu" #: ../src/resources.c:78 msgid "of any characters from those sets." msgstr "dowolnego znaku z tych zbiorów." #: ../src/resources.c:81 #, c-format msgid "could not create font set %s. Trying 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 "nie można zaÅ‚adować czcionki %s. PróbujÄ™ fixed" #: ../src/resources.c:136 #, c-format msgid "could not parse color \"%s\"" msgstr "nie można przetworzyć koloru \"%s\"" #: ../src/resources.c:140 #, c-format msgid "could not allocate color \"%s\"" msgstr "nie można zaalokować koloru \"%s\"" #: ../src/rootmenu.c:185 ../src/rootmenu.c:187 msgid "Exit" msgstr "ZakoÅ„cz" #: ../src/rootmenu.c:186 msgid "Exit window manager?" msgstr "Czy opuÅ›cić menedżera okien?" #: ../src/rootmenu.c:222 msgid "Close X session" msgstr "Zamknij sesjÄ™ X" #: ../src/rootmenu.c:223 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); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/rootmenu.c:225 ../src/winmenu.c:481 msgid "Close" msgstr "Zamknij" #: ../src/rootmenu.c:236 msgid "Kill X session" msgstr "Zamknij sesjÄ™ X Window" #: ../src/rootmenu.c:237 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: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: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: nie zakoÅ„czone '\"' w pliku menu" #: ../src/rootmenu.c:574 #, c-format msgid "%s: missing command" msgstr "%s: brakujÄ…ce polecenie" #: ../src/rootmenu.c:607 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "niewÅ‚aÅ›ciwe okreÅ›lenie OPEN_MENU: %s" #: ../src/rootmenu.c:680 #, c-format msgid "%s:could not stat menu" msgstr "%s:niezrozumiaÅ‚e menu" #: ../src/rootmenu.c:688 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:niezrozumiaÅ‚e menu:%s" #: ../src/rootmenu.c:706 #, c-format msgid "too many parameters in 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 "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:brakujÄ…cy parametr w poleceniu menu \"%s\"" #: ../src/rootmenu.c:852 #, c-format msgid "%s:unknown command \"%s\" in menu config." 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: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: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: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: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 "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: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:nie można otworzyć pliku menu" #: ../src/rootmenu.c:1123 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:niewÅ‚aÅ›ciwy plik menu. Brak polecenia MENU" #: ../src/rootmenu.c:1132 msgid "error reading preprocessed menu data" msgstr "błąd podczas czytania przetworzonego menu" #: ../src/rootmenu.c:1224 #, c-format msgid "%s:no title given for the root menu" 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 "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:nie można znaleźć pliku \"%s\" w katalogu menu" #: ../src/rootmenu.c:1472 msgid "Commands" msgstr "Polecenia" #: ../src/rootmenu.c:1475 msgid "Restart" msgstr "Restart" #: ../src/rootmenu.c:1476 msgid "Exit..." msgstr "Koniec..." #: ../src/rootmenu.c:1549 #, c-format msgid "could not find menu file \"%s\" referenced in 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 "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 "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:błąd formatowania w ustawieniach menu głównego \"%s\"" #: ../src/screen.c:423 msgid "could not load logo image for panels" 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 "błąd podczas tworzenia obrazka logo dla panelu:%s" #: ../src/screen.c:612 #, c-format msgid "could not initialize graphics library context: %s" msgstr "nie można zainicjalizować graficznego kontekstu biblioteki: %s" #: ../src/screen.c:644 msgid "could not do initialization of WINGs widget set" msgstr "nie można zainicjalizować biblioteki WINGs" #: ../src/screen.c:961 #, c-format msgid "could not save session state in %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 "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 "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 #. * 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 "stracono połączenie z zarzÄ…dcÄ… sesji" #: ../src/stacking.c:72 msgid "could not get window list!!" msgstr "nie można wziąć listy okien!!" #: ../src/startup.c:194 #, c-format msgid "internal X error: %s\n" msgstr "wewnÄ™trzny błąd X: %s\n" #: ../src/startup.c:257 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "zÅ‚apano wygnaÅ‚ %i (%s) - ponowne uruchamianie\n" #: ../src/startup.c:259 #, c-format msgid "got signal %i - restarting\n" msgstr "zÅ‚apano sygnaÅ‚ %i - ponowne uruchamianie\n" #: ../src/startup.c:273 #, c-format msgid "%s: Received signal SIGTERM. Exiting..." msgstr "%s: Otrzymano sygnaÅ‚ SIGTERM. KoÅ„czenie..." #: ../src/startup.c:285 #, c-format msgid "got signal %i (%s)\n" msgstr "zÅ‚apano sygnaÅ‚ %i (%s)\n" #: ../src/startup.c:287 #, c-format msgid "got signal %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 "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 "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 "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 "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 "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 "nie mogÄ™ uzyskać kontroli nad ekranem %i" #: ../src/startup.c:820 msgid "could not manage any screen" msgstr "nie mogÄ™ uzyskać kontroli nad ekranem" #: ../src/switchmenu.c:114 msgid "Windows" msgstr "Okna" #: ../src/texture.c:274 ../src/texture.c:318 #, c-format msgid "image file \"%s\" used as texture could not be found." 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 "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 "nie można pokazać tekstury: %s" #: ../src/wdefaults.c:405 #, c-format msgid "could not find icon file \"%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.\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 "Ustaw Skrót" #: ../src/winmenu.c:333 ../src/winmenu.c:379 msgid "could not create submenu for window menu" msgstr "nie można utworzyć podmenu dla menu okien" #: ../src/winmenu.c:388 msgid "Keep at bottom" msgstr "Trzymaj na dole" #: ../src/winmenu.c:393 ../src/winspector.c:1141 msgid "Omnipresent" msgstr "Zawsze widoczny" #. #. * 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 "PowiÄ™ksz" #: ../src/winmenu.c:424 ../src/winmenu.c:537 msgid "Miniaturize" msgstr "Pomniejsz" #: ../src/winmenu.c:433 ../src/winmenu.c:565 msgid "Shade" msgstr "ZwiÅ„" #: ../src/winmenu.c:449 msgid "Resize/Move" msgstr "ZmieÅ„ Rozmiar/PozycjÄ™" #: ../src/winmenu.c:457 msgid "Select" msgstr "Zaznacz" #: ../src/winmenu.c:465 msgid "Move To" msgstr "PrzenieÅ› Do" #: ../src/winmenu.c:470 msgid "Attributes..." msgstr "Atrybuty..." #: ../src/winmenu.c:472 msgid "Options" msgstr "Ustawienia" #: ../src/winmenu.c:532 msgid "Deminiaturize" msgstr "Odwróć Pomniejszenie" #: ../src/winmenu.c:546 msgid "Unmaximize" msgstr "Odwróć PowiÄ™kszenie" #: ../src/winmenu.c:560 msgid "Unshade" msgstr "RozwiÅ„" #: ../src/winspector.c:281 #, c-format msgid "Could not find icon \"%s\" specified for this window" 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 "Nie można otworzyć okreÅ›lonej ikony \"%s\":%s" #: ../src/winspector.c:1016 msgid "Save" msgstr "Zachowaj" #: ../src/winspector.c:1024 msgid "Apply" msgstr "Zastosuj" #: ../src/winspector.c:1030 msgid "Reload" msgstr "ZaÅ‚aduj Ponownie" #: ../src/winspector.c:1039 ../src/winspector.c:1049 msgid "Window Specification" msgstr "OkreÅ›lenie Okna" #: ../src/winspector.c:1040 msgid "Window Attributes" msgstr "Atrybuty Okna" #: ../src/winspector.c:1041 msgid "Advanced Options" msgstr "Opcje Zaawansowane" #: ../src/winspector.c:1042 msgid "Icon and Initial Workspace" msgstr "Ikona i PoczÄ…tkowy Pulpit" #: ../src/winspector.c:1043 msgid "Application Specific" msgstr "WÅ‚aÅ›ciwe dla Aplikacji" #: ../src/winspector.c:1057 msgid "Defaults for all windows" msgstr "DomyÅ›lne dla wszystkich okien" #: ../src/winspector.c:1100 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 "Atrybuty" #: ../src/winspector.c:1117 msgid "Disable titlebar" msgstr "Wyłącz pasek tytuÅ‚owy" #: ../src/winspector.c:1121 msgid "Disable resizebar" msgstr "Wyłącz pasek zmiany rozmiaru" #: ../src/winspector.c:1125 msgid "Disable close button" msgstr "Wyłącz przycisk zamkniÄ™cia" #: ../src/winspector.c:1129 msgid "Disable miniaturize button" msgstr "Wyłącz przycisk pomniejszenia" #: ../src/winspector.c:1133 msgid "Keep on top / floating" msgstr "Trzymaj na wierzchu / pÅ‚ywajÄ…cy" #: ../src/winspector.c:1137 msgid "Keep at bottom / sunken" msgstr "Trzymaj na dnie / zatopiony" #: ../src/winspector.c:1145 msgid "Start Miniaturized" msgstr "Wystartuj Pomniejszony" #: ../src/winspector.c:1149 msgid "Start Maximized" msgstr "Uruchom PowiÄ™kszony" #: ../src/winspector.c:1153 msgid "Skip window list" msgstr "Przeskocz w liÅ›cie okien" #: ../src/winspector.c:1167 msgid "Advanced" msgstr "Zaawansowane" #: ../src/winspector.c:1177 msgid "Ignore HideOthers" msgstr "Zignoruj UkryjInne" #: ../src/winspector.c:1181 msgid "Don't bind keyboard shortcuts" msgstr "Nie stosuj skrótów klawiaturowych" #: ../src/winspector.c:1185 msgid "Don't bind mouse clicks" msgstr "Nie stosuj kliknięć myszÄ…" #: ../src/winspector.c:1189 msgid "Keep inside screen" msgstr "Trzymaj wewnÄ…trz ekranu" #: ../src/winspector.c:1193 msgid "Don't let it take focus" msgstr "Nie pozwól być aktywnym oknem" #: ../src/winspector.c:1197 msgid "Don't Save Session" msgstr "Nie Zachowuj Sesji" #: ../src/winspector.c:1201 msgid "Emulate Application Icon" 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 "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 "Obrazek Miniokna" #: ../src/winspector.c:1242 msgid "Update" msgstr "Odnów" #: ../src/winspector.c:1257 msgid "Icon file name:" msgstr "Nazwa pliku z ikonÄ…:" #: ../src/winspector.c:1269 msgid "Ignore client supplied icon" msgstr "Ignoruj ikonÄ™ dostarczonÄ… przez klienta" #: ../src/winspector.c:1276 msgid "Initial Workspace" msgstr "PoczÄ…tkowy Pulpit" #: ../src/winspector.c:1281 msgid "Nowhere in particular" msgstr "Nigdzie w szczególnoÅ›ci" #: ../src/winspector.c:1315 msgid "Application Wide" msgstr "W CaÅ‚ej Aplikacji" #: ../src/winspector.c:1325 msgid "Start Hidden" msgstr "Wystartuj Ukryty" #: ../src/winspector.c:1329 msgid "No application icon" msgstr "Brak ikony aplikacji" #: ../src/workspace.c:102 ../src/workspace.c:103 ../src/workspace.c:472 #, c-format msgid "Workspace %i" msgstr "Pulpit %i" #: ../src/workspace.c:529 msgid "Workspaces" msgstr "Pulpity" #: ../src/workspace.c:531 msgid "could not create Workspace menu" msgstr "nie można stworzyć menu Pulpitu" #: ../src/workspace.c:538 msgid "New" msgstr "Nowy" #: ../src/workspace.c:539 msgid "Destroy Last" msgstr "Zniszcz Ostatni" #: ../src/xutil.c:228 msgid "invalid data in selection" msgstr "niewÅ‚aÅ›ciwe dane w zaznaczeniu" WindowMaker-0.95.5/po/hu.po0000644000175000017500000013465212214432632012366 00000000000000# Hungarian translation of Window Maker # Copyright (C) 1998-2000 Free Software Foundation, Inc. # Horvath Szabolcs # thanks to magyar@lists.linux.hu. # msgid "" msgstr "" "Project-Id-Version: Window Maker 0.61.1\n" "POT-Creation-Date: 2000-07-12 08:32+0300\n" "PO-Revision-Date: 2000-07-27 19:50-0100\n" "Last-Translator: Horvath Szabolcs \n" "Language-Team: Hungarian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:570 ../src/dialog.c:223 ../src/dock.c:3301 ../src/dockedapp.c:210 ../src/dockedapp.c:251 ../src/rootmenu.c:1754 ../src/winspector.c:290 ../src/winspector.c:306 msgid "Error" msgstr "Hiba" #: ../src/appicon.c:571 msgid "Could not open specified icon file" msgstr "Nem található a megadott ikon fájl!" #: ../src/appicon.c:572 ../src/dialog.c:122 ../src/dialog.c:223 ../src/dialog.c:460 ../src/dialog.c:1477 ../src/dock.c:514 ../src/dock.c:522 ../src/dock.c:545 ../src/dock.c:3302 ../src/dockedapp.c:211 ../src/dockedapp.c:257 ../src/dockedapp.c:371 ../src/rootmenu.c:1758 ../src/winspector.c:291 ../src/winspector.c:307 msgid "OK" msgstr "OK" #: ../src/appicon.c:599 ../src/dock.c:278 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " be lesz zárva.\n" "Minden el nem mentett információ elveszik.\n" "ErÅ‘sítsd meg." #: ../src/appicon.c:605 ../src/dock.c:283 ../src/winmenu.c:125 msgid "Kill Application" msgstr "Alkalmazás kilövése" #: ../src/appicon.c:606 ../src/dock.c:284 ../src/winmenu.c:127 msgid "Yes" msgstr "OK" #: ../src/appicon.c:606 ../src/dock.c:284 ../src/winmenu.c:127 msgid "No" msgstr "Mégsem" #: ../src/appicon.c:624 ../src/dock.c:1196 msgid "Unhide Here" msgstr "ElÅ‘térbe rak" #: ../src/appicon.c:625 ../src/appicon.c:650 ../src/dock.c:1198 ../src/dock.c:1200 ../src/dock.c:3468 ../src/dock.c:3470 ../src/winmenu.c:465 msgid "Hide" msgstr "Elrejt" #: ../src/appicon.c:626 msgid "Set Icon..." msgstr "Ikon..." #: ../src/appicon.c:627 ../src/dock.c:1204 ../src/rootmenu.c:228 ../src/rootmenu.c:242 ../src/winmenu.c:512 msgid "Kill" msgstr "Kilövés" #: ../src/appicon.c:648 ../src/dock.c:3466 msgid "Unhide" msgstr "ElÅ‘térbe rak" #: ../src/defaults.c:836 ../src/startup.c:767 ../src/startup.c:785 ../src/startup.c:791 msgid "could not read domain \"%s\" from defaults database" msgstr "Az alapértelmezett adatbázisból a \"%s\" domain nem olvasható." #: ../src/defaults.c:882 ../src/defaults.c:1007 ../src/defaults.c:1046 ../src/defaults.c:1076 msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "A %s (%s) domain adatbázisa nem megfelelÅ‘ formátumú!" #: ../src/defaults.c:887 ../src/defaults.c:1028 ../src/defaults.c:1059 ../src/defaults.c:1085 msgid "could not load domain %s from user defaults database" msgstr "A felhasználói adatbázisból nem tölthetÅ‘ be a %s domain." #: ../src/defaults.c:898 ../src/defaults.c:992 msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Az alapértelmezett adatbázisból a %s (%s) domain megsérült." #: ../src/defaults.c:917 ../src/defaults.c:997 msgid "could not load domain %s from global defaults database" msgstr "Az alapértelmezett adatbázisból a %s domaint nem lehet betölteni." #: ../src/defaults.c:1305 msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "rossz érték a következÅ‘ kulcshoz: \"%s\". Válassz ezek közül egyet: %s." #: ../src/defaults.c:1352 msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "a következÅ‘ adatot nem tudom logikai értékké alakítani: \"%s\". Ehhez a kulcshoz: \"%s\"" #: ../src/defaults.c:1357 ../src/defaults.c:1391 ../src/defaults.c:1423 ../src/defaults.c:1436 ../src/defaults.c:1451 ../src/defaults.c:1465 ../src/defaults.c:1537 ../src/defaults.c:1549 ../src/defaults.c:1955 ../src/defaults.c:1972 ../src/defaults.c:1985 ../src/defaults.c:2018 ../src/defaults.c:2034 ../src/defaults.c:2065 ../src/defaults.c:2155 msgid "using default \"%s\" instead" msgstr "az alapbeállítást \"%s\" használom helyette" #: ../src/defaults.c:1388 msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "a következÅ‘ adatot nem tudom egész típusúvá alakítani: \"%s\". Ehhez a kulcshoz: \"%s\"" #: ../src/defaults.c:1418 ../src/defaults.c:1532 ../src/defaults.c:1950 ../src/defaults.c:1967 ../src/defaults.c:2013 ../src/defaults.c:2060 ../src/wdefaults.c:557 ../src/wdefaults.c:593 msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Hibás formátum a következÅ‘ kulcsnál: \"%s\". Valami ilyesminek kellene lennie: %s." #: ../src/defaults.c:1431 msgid "Incorrect number of elements in array for key \"%s\"." msgstr "A \"%s\" kulcshoz tartozó tömbben helytelen számú elem található." #: ../src/defaults.c:1446 msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Rossz értéket adtál meg ennek a kulcsnak: \"%s\". Koordinátának kellene lennie." #: ../src/defaults.c:1461 msgid "can't convert array to integers for \"%s\"." msgstr "nem tudom a tömböt számokká konvertálni: \"%s\"." #: ../src/defaults.c:1659 ../src/defaults.c:1691 ../src/defaults.c:1707 ../src/defaults.c:1753 ../src/defaults.c:1793 ../src/defaults.c:1831 ../src/defaults.c:1847 msgid "\"%s\" is not a valid color name" msgstr "Ilyen szín nincs: \"%s\"!" #: ../src/defaults.c:1672 msgid "bad number of arguments in gradient specification" msgstr "nem megfelelÅ‘ számú paraméter az összetevÅ‘k leírásában " #: ../src/defaults.c:1726 msgid "too few arguments in multicolor gradient specification" msgstr "Elégtelen változómeghatározás a színátmenet-leírásban." #: ../src/defaults.c:1820 msgid "bad number of arguments in textured gradient specification" msgstr "nem megfelelÅ‘ számú paraméter a mintázott színátmenet-leírásban." #: ../src/defaults.c:1863 msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "Rossz érték a tgradient minta áttetszÅ‘ségénél: \"%s\". 0..255 közötti értéknek kell lennie." #: ../src/defaults.c:1923 msgid "could not initialize library %s" msgstr "A %s könyvtárat nem tudom kezdőállapotba hozni." #: ../src/defaults.c:1926 msgid "could not find function %s::%s" msgstr "A %s::%s függvény nem található." #. TEXTURE_PLUGIN #: ../src/defaults.c:1933 msgid "invalid texture type %s" msgstr "Érvénytelen minta típus: %s" #: ../src/defaults.c:1980 msgid "Error in texture specification for key \"%s\"" msgstr "A \"%s\" kulcsnál hiba van a minta leírásában." #: ../src/defaults.c:2030 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Rossz típust adtál meg a munkafelület hátterének. Minta típusnak kellene lennie." #: ../src/defaults.c:2078 msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "Rossz típust adtál meg a %i. számú munkafelület hátterének. Mintának kellene lennie." #: ../src/defaults.c:2122 msgid "could not load any usable font!!!" msgstr "Egyetlen használható fontot sem tudok betölteni!!" #: ../src/defaults.c:2150 msgid "could not get color for key \"%s\"" msgstr "a \"%s\" kulcshoz tartozó színt nem találom" #: ../src/defaults.c:2210 ../src/rootmenu.c:494 msgid "%s:invalid key modifier \"%s\"" msgstr "%s: érvénytelen billentyű-módosító \"%s\"" #: ../src/defaults.c:2222 msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: érvénytelen gyorsbillentyű-leírás \"%s\"" #: ../src/defaults.c:2229 msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s: érvénytelen billentyű a \"%s\" gyorsbillentyűben" #: ../src/defaults.c:2255 msgid "%s: modifier key %s is not valid" msgstr "%s: a %s módosító billentyű érvénytelen" #: ../src/defaults.c:2289 msgid "could not load image in option %s: %s" msgstr "a kép nem betölthetÅ‘ a %s értékénél: %s" #: ../src/defaults.c:2371 msgid "could not render texture for icon background" msgstr "nem alakítható a minta háttérikonná." #: ../src/dialog.c:122 ../src/dialog.c:467 ../src/dock.c:545 ../src/dockedapp.c:377 ../src/rootmenu.c:190 ../src/rootmenu.c:228 ../src/rootmenu.c:242 msgid "Cancel" msgstr "Mégsem" #: ../src/dialog.c:218 msgid "Could not open directory " msgstr "A könyvtár nem nyitható meg " #: ../src/dialog.c:271 msgid "Could not load image file " msgstr "A kép nem lehet betölteni " #: ../src/dialog.c:403 msgid "Directories" msgstr "Könyvtárak" #: ../src/dialog.c:412 msgid "Icons" msgstr "Ikonok" #: ../src/dialog.c:450 msgid "File Name:" msgstr "Fájlnév:" #: ../src/dialog.c:473 msgid "Choose File" msgstr "Válassz fájlt" #: ../src/dialog.c:490 ../src/dialog.c:492 msgid "Icon Chooser" msgstr "Ikon választó" #: ../src/dialog.c:1401 ../src/startup.c:325 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "az ütközÅ‘ dialógus panelhez nem tudok kapcsolatot nyitni. Megszakítom." #: ../src/dialog.c:1427 msgid "Fatal error" msgstr "Végzetes hiba" #: ../src/dialog.c:1438 msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "A WindowMaker egy %i jelzést vett.\n" "(%s)" #: ../src/dialog.c:1441 msgid "Window Maker received signal %i." msgstr "Window Maker egy %i jelzést vett." #: ../src/dialog.c:1450 msgid " This fatal error occured probably due to a bug. Please fill the included BUGFORM and report it to bugs@windowmaker.info." msgstr " Ezt a végzetes hibát valószínűleg egy programozási hiba okozta. Légy szíves töltsd ki a mellékelt BUG-kérdőívet és küldd el a bugs@windowmaker.info e-mail címre. Köszi!" #: ../src/dialog.c:1458 msgid "What do you want to do now?" msgstr "Mit szeretnél most csinálni?" #: ../src/dialog.c:1464 msgid "Select action" msgstr "Válassz ezek közül" #: ../src/dialog.c:1465 msgid "Abort and leave a core file" msgstr "Megszakít (core fájl keletkezik)" #: ../src/dialog.c:1466 msgid "Restart Window Maker" msgstr "Window Maker újraindítása" #: ../src/dialog.c:1467 msgid "Start alternate window manager" msgstr "Másik ablakkezelÅ‘ indítása" #: ../src/dock.c:212 msgid "Type the name for workspace %i:" msgstr "Ird be a %i. munkafelület nevét:" #: ../src/dock.c:213 ../src/dock.c:1160 ../src/dock.c:1163 ../src/dock.c:3384 msgid "Rename Workspace" msgstr "Ãtnevezés" #: ../src/dock.c:508 ../src/dock.c:516 msgid "Warning" msgstr "Figyelmeztetés" #: ../src/dock.c:509 msgid "Some icons cannot be made omnipresent. Please make sure that no other icon is docked in the same positions on the other workspaces and the Clip is not full in some workspace." msgstr "Néhány ikont lehetetlen mindig láthatóvá tenni. GyÅ‘zödj meg róla, hogy nincs-e másik ikon rögzítve ugyanebben a pozícióban másik munkafelületen vagy a Kapocs nincs-e megtelve valahol." #: ../src/dock.c:517 msgid "Icon cannot be made omnipresent. Please make sure that no other icon is docked in the same position on the other workspaces and the Clip is not full in some workspace." msgstr "Ez az ikont lehetetlen mindig láthatóvá tenni. GyÅ‘zödj meg róla, hogy nincs-e másik ikon rögzítve ugyanebben a pozícióban másik munkafelületen vagy a Kapocs nincs-e megtelve valahol." #: ../src/dock.c:543 msgid "Workspace Clip" msgstr "Munkafelület kapocs" #: ../src/dock.c:544 msgid "All selected icons will be removed!" msgstr "Minden kijelölt ikon el lesz távolítva!" #: ../src/dock.c:591 ../src/dock.c:1175 ../src/dock.c:1177 ../src/dock.c:3420 msgid "Keep Icon" msgstr "Ikon megtartása" #: ../src/dock.c:592 ../src/dock.c:2130 ../src/dock.c:2264 msgid "Type the command used to launch the application" msgstr "Ãrd be a parancsot, amivel az alkalmazás indul" #: ../src/dock.c:973 msgid "could not launch application %s\n" msgstr "Az %s alkalmazást nem tudom futtatni\n" #: ../src/dock.c:1028 msgid "could not create workspace submenu for Clip menu" msgstr "a Kapocs menühöz nem tudok munkafelület almenüt létrehozni" #: ../src/dock.c:1091 msgid "could not create options submenu for Clip menu" msgstr "a Kapocs menühöz nem tudok opciók almenüt létrehozni" #: ../src/dock.c:1095 msgid "Keep on Top" msgstr "Mindig felül" #: ../src/dock.c:1101 msgid "Collapsed" msgstr "Ikonok behúzása" #: ../src/dock.c:1107 msgid "AutoCollapse" msgstr "Automatikus behúzás" #: ../src/dock.c:1113 msgid "AutoRaiseLower" msgstr "Automatikus elÅ‘térbe/háttérbe rakás" #: ../src/dock.c:1119 msgid "AutoAttract Icons" msgstr "Automatikusan vonzódnak az ikonok" #: ../src/dock.c:1125 msgid "Keep Attracted Icons" msgstr "A vonzott ikonok megtartása" #: ../src/dock.c:1149 ../src/winmenu.c:407 msgid "Keep on top" msgstr "Mindig felül" #: ../src/dock.c:1155 msgid "Clip Options" msgstr "Kapocs beállítások" #: ../src/dock.c:1165 msgid "Selected" msgstr "Kijelölt" #: ../src/dock.c:1170 ../src/dock.c:1173 ../src/dock.c:3411 msgid "Select All Icons" msgstr "Minden ikon kijelölése" #: ../src/dock.c:1179 ../src/dock.c:1181 ../src/dock.c:3428 msgid "Move Icon To" msgstr "Ikon mozgatása" #: ../src/dock.c:1186 ../src/dock.c:1189 ../src/dock.c:3439 msgid "Remove Icon" msgstr "Ikon törlése" #: ../src/dock.c:1191 msgid "Attract Icons" msgstr "Az ikonok vonzódnak" #: ../src/dock.c:1194 msgid "Launch" msgstr "Indítás" #: ../src/dock.c:1202 msgid "Settings..." msgstr "Beállítások..." #: ../src/dock.c:1595 ../src/dock.c:1609 ../src/dock.c:1623 ../src/dock.c:1633 ../src/dock.c:1658 msgid "bad value in docked icon state info %s" msgstr "rossz érték a dokkolt ikon állapot-információjánál: %s" #: ../src/dock.c:1641 msgid "bad value in docked icon position %i,%i" msgstr "rossz érték a dokkolt ikon pozícíójánál: %i, %i" #: ../src/dock.c:1897 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "túl sok ikon van a dokkban tárolva. Figyelmen kívűl hagyom, ami nem fér ki" #. icon->forced_dock = 1; #: ../src/dock.c:2129 ../src/dock.c:2263 msgid "Dock Icon" msgstr "Rögzített ikon" #: ../src/dock.c:3294 ../src/dock.c:3298 msgid "Could not execute command \"%s\"" msgstr "A \"%s\" parancsot nem tudom végrehajtani" #: ../src/dock.c:3390 msgid "Toggle Omnipresent" msgstr "Mindig látható mód ki/be" #: ../src/dock.c:3395 ../src/winmenu.c:417 ../src/winspector.c:1197 msgid "Omnipresent" msgstr "Mindig látható" #: ../src/dock.c:3409 msgid "Unselect All Icons" msgstr "Az ikonok kijelölésének megszüntetése" #: ../src/dock.c:3418 msgid "Keep Icons" msgstr "Ikonok megtartása" #: ../src/dock.c:3426 msgid "Move Icons To" msgstr "Ikonok mozgatása" #: ../src/dock.c:3437 msgid "Remove Icons" msgstr "Ikonok törlése" #: ../src/dockedapp.c:130 msgid "could not find icon %s, used in a docked application" msgstr "a %s ikont nem találom (egy rögzített alkalmazás használná)" #: ../src/dockedapp.c:209 msgid "Could not open specified icon file: %s" msgstr "A következÅ‘ ikon-fájlt nem tudom megnyitni: %s" #: ../src/dockedapp.c:211 msgid "Ignore" msgstr "Figyelmen kívűl hagy" #: ../src/dockedapp.c:252 msgid "Sorry, icon cannot be made omnipresent. Please make sure that no other icon is docked in the same position on the other workspaces, and the Clip is not full in some workspace, then try again." msgstr "Bocs, ezt az ikont lehetetlen mindig láthatóvá tenni. GyÅ‘zödj meg róla, hogy nincs-e másik ikon rögzítve ugyanebben a pozícióban másik munkafelület, illetve a Kapocs nincs-e valahol telítve. Utána próbáld újra. " #: ../src/dockedapp.c:313 msgid "Start when WindowMaker is started" msgstr "Automatikus indítás" #: ../src/dockedapp.c:319 msgid "Application path and arguments" msgstr "Alkalmazás elérési útvonala és paraméterei" #: ../src/dockedapp.c:330 msgid "Command for files dropped with DND" msgstr "Parancs a DND módszerrel történÅ‘ indításhoz" #: ../src/dockedapp.c:342 msgid "%d will be replaced with the file name" msgstr "A %d helyére a fájl neve kerül" #: ../src/dockedapp.c:346 msgid "DND support was not compiled in" msgstr "DND-támogatás nincs belefordítva" #: ../src/dockedapp.c:352 msgid "Icon Image" msgstr "Ikon" #: ../src/dockedapp.c:364 ../src/winspector.c:1333 msgid "Browse..." msgstr "Tallózás..." #: ../src/dockedapp.c:409 msgid "Docked Application Settings" msgstr "Rögzített alkalmazások beállításai" #: ../src/framewin.c:642 ../src/framewin.c:737 ../src/menu.c:467 ../src/texture.c:549 msgid "could not render texture: %s" msgstr "a %s minta nem képezhetÅ‘ le" #: ../src/framewin.c:665 ../src/framewin.c:676 ../src/framewin.c:692 ../src/framewin.c:703 ../src/framewin.c:710 ../src/framewin.c:717 ../src/icon.c:350 ../src/menu.c:496 msgid "error rendering image:%s" msgstr "hiba a %s kép leképezésekor" #: ../src/framewin.c:770 msgid "error rendering image: %s" msgstr "hiba a %s kép leképezésekor" #: ../src/icon.c:229 ../src/wdefaults.c:427 msgid "error loading image file \"%s\": %s" msgstr "hiba a \"%s\" kép betöltése közben: %s" #: ../src/icon.c:477 ../src/icon.c:486 msgid "could not create directory %s" msgstr "A %s könyvtárat nem tudom létrehozni" #: ../src/icon.c:753 msgid "could not find default icon \"%s\"" msgstr "az alapértelmezett ikont \"%s\" nem találom" #: ../src/icon.c:759 msgid "could not load default icon \"%s\":%s" msgstr "az alapértelmezett ikont nem tudom betölteni \"%s\":%s" #: ../src/main.c:193 msgid "failed to restart Window Maker." msgstr "hiba a Window Maker újraindítása közben" #: ../src/main.c:196 msgid "could not exec %s" msgstr "nem tudom végrehajtani: %s" #: ../src/main.c:245 msgid "%s aborted.\n" msgstr "%s megszakítva \n" #: ../src/main.c:256 msgid "Usage: %s [options]\n" msgstr "Használat: %s [opciók]\n" #: ../src/main.c:257 msgid "The Window Maker window manager for the X window system" msgstr "Window Maker ablakkezelÅ‘ az X window systemhez" #: ../src/main.c:259 msgid " -display host:dpy\tdisplay to use" msgstr "-display host:dpy\tmegjelenítÅ‘ a használathoz" #: ../src/main.c:261 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\ta konfigurációs fájlok elÅ‘re feldolgozásának letiltása" #: ../src/main.c:263 msgid " --no-dock\t\tdo not open the application Dock" msgstr "--no-dock\t\taz alkalmazások dokkja nem lesz kinyitva" #: ../src/main.c:264 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr "--no-clip\t\ta munkafelület kapocs nem lesz kinyitva" #: ../src/main.c:268 msgid " --visual-id visualid\tvisual id of visual to use" msgstr "--visual-id visualid\tvizuális azonosító" #: ../src/main.c:269 msgid " --static\t\tdo not update or save configurations" msgstr "--static\t\tne menti és nem is frissíti a beállításokat" #: ../src/main.c:271 msgid " --synchronous\t\tturn on synchronous display mode" msgstr "--synchronous\t\tbekapcsolja a szinkronizált megjelenítést" #: ../src/main.c:273 msgid " --version\t\tprint version and exit" msgstr "--version\t\tkiírja a verziószámot és kilép" #: ../src/main.c:274 msgid " --help\t\t\tshow this message" msgstr "--help\t\t\tkiírja ezt a szöveget" #: ../src/main.c:286 msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "nem találom a felhasználó GNUstep könyvtárát (%s).\n" "GyÅ‘zödj meg róla, hogy a Window Maker rendesen telepítve van és futtasd le a wmaker.inst scriptet!" #: ../src/main.c:307 ../src/main.c:312 msgid "%s:could not execute initialization script" msgstr "%s: nem tudom futtatni a kezdeti beállításokat tartalmazó scriptet!" #: ../src/main.c:332 ../src/main.c:337 msgid "%s:could not execute exit script" msgstr "%s: nem tudom futtatni a kilépési programot" #: ../src/main.c:410 ../src/main.c:417 ../src/main.c:425 ../src/main.c:441 msgid "too few arguments for %s" msgstr "Elégtelen paraméter a következÅ‘höz: %s" #: ../src/main.c:429 msgid "bad value for visualid: \"%s\"" msgstr "hibás érték a VisualID-nél: \"%s\"" #: ../src/main.c:449 msgid "%s: invalid argument '%s'\n" msgstr "%s: érvénytelen paraméter '%s'\n" #: ../src/main.c:450 msgid "Try '%s --help' for more information\n" msgstr "Próbáld a '%s --help parancsot a további információkhoz\n" #: ../src/main.c:493 msgid "X server does not support locale" msgstr "Az X-server nem támogatja a fordítások használatát" #: ../src/main.c:496 msgid "cannot set locale modifiers" msgstr "a lokális módosításokat nem tudom beállítani" #: ../src/main.c:513 msgid "could not open display \"%s\"" msgstr "nem tudom megnyitni a \"%s\" megjelenítÅ‘t" #: ../src/menu.c:303 msgid "wrealloc() failed while trying to add menu item" msgstr "wrealloc() függvény hibázott, amikor menüpontot próbált hozzáadni" #: ../src/misc.c:71 msgid "could not define value for %s for cpp" msgstr "nem tudok értéket meghatározni a %s-hoz a cpp-nek" #: ../src/misc.c:101 msgid "could not get password entry for UID %i" msgstr "nem tudom a jelszó bejegyzést kivenni a %i felhasználó azonosítóhoz" #: ../src/misc.c:125 msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "rosszul van beállítva a HOSTNAME: %s" #: ../src/misc.c:131 msgid "your machine is misconfigured. HOST is set to %s" msgstr "rosszul van beállítva a HOST: %s" #: ../src/misc.c:749 msgid "selection timed-out" msgstr "a kijelölés túllépte a megadott idÅ‘t" #: ../src/misc.c:765 msgid "Program Arguments" msgstr "Program paraméterek" #: ../src/misc.c:766 msgid "Enter command arguments:" msgstr "Kérem a parancs paramétereit:" #: ../src/misc.c:859 msgid "unable to get dropped data from DND drop" msgstr "nem tudom az adatokat lekérdezni a DND parancshoz" #: ../src/misc.c:867 msgid "error getting dropped data from DND drop" msgstr "hiba az adatok lekérdezése közben a DND parancsnál" #: ../src/misc.c:873 msgid "out of memory while getting data from DND drop" msgstr "elfogyott a memória a DND parancs eredményének lekérdezése közben" #: ../src/misc.c:918 ../src/misc.c:1058 msgid "out of memory during expansion of \"%s\"" msgstr "elfogyott a memória a következÅ‘ vizsgálatánál: \"%s\"" #: ../src/misc.c:972 msgid "out of memory during expansion of \"%w\"" msgstr "elfogyott a memória a következÅ‘ vizsgálatánál: \"%w\"" #: ../src/misc.c:990 msgid "out of memory during expansion of \"%W\"" msgstr "elfogyott a memória a következÅ‘ vizsgálatánál: \"%W\"" #: ../src/misc.c:1006 msgid "out of memory during expansion of \"%a\"" msgstr "elfogyott a memória a következÅ‘ vizsgálatánál: \"%a\"" #: ../src/misc.c:1037 msgid "out of memory during expansion of \"%d\"" msgstr "elfogyott a memória a következÅ‘ vizsgálatánál: \"%d\"" #: ../src/misc.c:1051 msgid "selection not available" msgstr "kijelölés nem elérhetÅ‘" #: ../src/misc.c:1123 ../src/misc.c:1129 msgid "bad window name value in %s state info" msgstr "hibás az \"ablak neve\" érték az %s információjában" #: ../src/misc.c:1384 msgid "could not send message to background image helper" msgstr "nem tudok üzenetet küldeni a háttérkép súgójának" #: ../src/pixmap.c:235 msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "nem tudom betölteni a bitkép fájl maszkját \"%s\". A maszk nem lesz használva." #: ../src/proplist.c:180 msgid "unterminated string" msgstr "befejezetlen szöveg" #: ../src/proplist.c:247 msgid "unterminated array" msgstr "befejezetlen tömb" #: ../src/proplist.c:256 msgid "missing , in array or unterminated array" msgstr "hiányzó vesszÅ‘ (,) a tömbben vagy a tömb nincs befejezve" #: ../src/proplist.c:267 msgid "could not get array element" msgstr "a tömb elemeit nem tudom elérni" #: ../src/proplist.c:297 msgid "unterminated dictionary" msgstr "befejezetlen szótár" #: ../src/proplist.c:315 msgid "missing dictionary key" msgstr "hiányzó szótár kulcs" #: ../src/proplist.c:317 msgid "missing dictionary entry key or unterminated dictionary" msgstr "hiányzó szótár-kulcs bejegyzés vagy a szótár nincs befejezve" #: ../src/proplist.c:323 msgid "error parsing dictionary key" msgstr "hiba a szótár kulcspárjaiban" #: ../src/proplist.c:332 msgid "missing = in dictionary entry" msgstr "hiányzó = a szótár bejegyzésében" #: ../src/proplist.c:351 msgid "missing ; in dictionary entry" msgstr "hiányzó ; a szótár bejegyzésben" #: ../src/proplist.c:432 msgid "was expecting a string, dictionary, data or array. If it's a string, try enclosing it with \"." msgstr "egy szöveget, szótárt, adatot vagy tömböt vártam. Ha ez egy szöveg, akkor próbáld meg bezárni egy \" jellel." #: ../src/proplist.c:434 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "Magyarázatok nem lehetnek a WindowMaker saját domain fájljában" #: ../src/proplist.c:453 msgid "could not open domain file %s" msgstr "A következÅ‘ domain fájlt nem tudom megnyitni: %s" #: ../src/proplist.c:466 msgid "extra data after end of file" msgstr "extra adat a fájl-vége jel után" #: ../src/resources.c:44 msgid "could not parse color \"%s\"" msgstr "A \"%s\" színt nem tudom értelmezni" #: ../src/resources.c:48 msgid "could not allocate color \"%s\"" msgstr "A \"%s\" színt nem tudom lefoglalni" #: ../src/rootmenu.c:188 ../src/rootmenu.c:190 msgid "Exit" msgstr "Kilépés" #: ../src/rootmenu.c:189 msgid "Exit window manager?" msgstr "Biztos, hogy bezárod az ablakkezelÅ‘t?" #: ../src/rootmenu.c:225 msgid "Close X session" msgstr "X-Sessiom beenden" #: ../src/rootmenu.c:226 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "Tényleg bezárod az X Window-t?\n" "Az alkalmazásokban néhány nem mentett adat elveszhet." #: ../src/rootmenu.c:228 ../src/winmenu.c:505 msgid "Close" msgstr "Bezárás" #: ../src/rootmenu.c:239 msgid "Kill X session" msgstr "X bezárása" #: ../src/rootmenu.c:240 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Tényleg lelövöd a X Window-t?\n" "(minden alkalmazás be lesz zárva)" #: ../src/rootmenu.c:507 msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s: érvénytelen gyorsbillentyű-leírásában \"%s\" a következÅ‘ bejegyzéshez: %s" #: ../src/rootmenu.c:515 msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s: érvénytelen billentyű a gyorsbillentyűben \"%s\" a következÅ‘ bejegyzéshez: %s" #: ../src/rootmenu.c:568 msgid "%s: unmatched '\"' in menu file" msgstr "%s: nem egyezÅ‘ \" jelek a menü fájlban" #: ../src/rootmenu.c:618 msgid "%s: missing command" msgstr "%s: hiányzó parancs" #: ../src/rootmenu.c:651 msgid "invalid OPEN_MENU specification: %s" msgstr "hibás OPEN_MENU leírás: %s" #: ../src/rootmenu.c:699 msgid "%s:could not stat menu" msgstr "%s: nem tudom elérni a menüt " #: ../src/rootmenu.c:707 msgid "%s:could not stat menu:%s" msgstr "%s: nem tudom elérni a menüt:%s" #: ../src/rootmenu.c:725 msgid "too many parameters in OPEN_MENU: %s" msgstr "túl sok paraméter az OPEN_MENU-ben: %s" #: ../src/rootmenu.c:761 msgid "There are more than one WORKSPACE_MENU commands in the applications menu. Only one is allowed." msgstr "Egynél több WORKSPACE_MENU-parancs van az alkalmazások menüben. Csak egy engedélyzett." #: ../src/rootmenu.c:790 ../src/rootmenu.c:808 ../src/rootmenu.c:818 msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s: hiányzó paraméter a menü parancshoz \"%s\"" #: ../src/rootmenu.c:882 msgid "%s:unknown command \"%s\" in menu config." msgstr "%s: ismeretlen parancs \"%s\" a menü beállításaiban." #: ../src/rootmenu.c:890 msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s: nem tudom a gyorsbillentyűt a \"%s\" bejegyzéshez hozzáadni" #: ../src/rootmenu.c:1027 msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s: a maximál sorhosszt meghaladja a menü beállításaiban: %s" #: ../src/rootmenu.c:1049 ../src/rootmenu.c:1141 ../src/rootmenu.c:1242 msgid "%s:missing command in menu config: %s" msgstr "%s: hiányzó parancs a menü beállításaiban %s" #: ../src/rootmenu.c:1079 msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s: szintaktikai hiba a menü fájlban: az END meghatározása hiányzik" #: ../src/rootmenu.c:1108 ../src/rootmenu.c:1207 msgid "could not make arguments for menu file preprocessor" msgstr "nem tudok paramétereket készíteni a menü fájl elÅ‘feldolgozójához" #: ../src/rootmenu.c:1114 ../src/rootmenu.c:1214 msgid "%s:could not open/preprocess menu file" msgstr "%s: nem tudom megnyitni/elÅ‘re feldolgozni a menü fájlt" #: ../src/rootmenu.c:1126 ../src/rootmenu.c:1227 msgid "%s:could not open menu file" msgstr "%s: nem tudom megnyitni a menü fájlt" #: ../src/rootmenu.c:1153 msgid "%s:invalid menu file. MENU command is missing" msgstr "%s: érvénytelen menü fájl. MENU parancs hiányzik." #: ../src/rootmenu.c:1162 msgid "error reading preprocessed menu data" msgstr "hiba az elÅ‘refeldolgozott adatok olvasása közben" #: ../src/rootmenu.c:1254 msgid "%s:no title given for the root menu" msgstr "%s: nincs megnevezve a gyökér (root) menü" #: ../src/rootmenu.c:1337 ../src/rootmenu.c:1404 ../src/rootmenu.c:1448 msgid "out of memory while constructing directory menu %s" msgstr "elfogyott a memória amíg a könyvtár menüt hoztam létre" #: ../src/rootmenu.c:1347 msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s: a menü könyvtárában a következÅ‘ fájlt nem sikerül elérnem: \"%s\"" #: ../src/rootmenu.c:1502 msgid "Commands" msgstr "Parancsok" #: ../src/rootmenu.c:1505 msgid "Restart" msgstr "Újraindítás" #: ../src/rootmenu.c:1506 msgid "Exit..." msgstr "Kilépés..." #: ../src/rootmenu.c:1551 msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "nem találom a menü fájlt \"%s\". A WMRootMenu hivatkozik rá." #: ../src/rootmenu.c:1558 msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "a menü elérhetetlen: \"%s\". A WMRootMenu hivatkozik rá." #: ../src/rootmenu.c:1569 msgid "using default menu file \"%s\" as the menu referenced in WMRootMenu could not be found " msgstr "az alap menü fájlt használom, mert a WMRootMenu-ben hivatkozott fájl \"%s\" nem található." #: ../src/rootmenu.c:1592 ../src/rootmenu.c:1668 msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s: formai hiba a root menü konfigurációjában \"%s\"" #: ../src/rootmenu.c:1755 msgid "The applications menu could not be loaded. Look at the console output for a detailed description of the errors." msgstr "Az alkalmazások menüjét nem tudom betölteni. Nézd meg a konzol kimenetét a hibák bÅ‘vebb leírásáért!" #: ../src/screen.c:459 msgid "could not load logo image for panels: %s" msgstr "nem tudom betölteni a logo-t a panelhez: %s" #: ../src/screen.c:463 msgid "error making logo image for panel:%s" msgstr "hiba a logo készítése közben: %s" #: ../src/screen.c:751 msgid "could not initialize graphics library context: %s" msgstr "nem tudom kezdőállapotba hozni a grafikáért felelÅ‘s könyvtárat: %s" #: ../src/screen.c:782 msgid "could not do initialization of WINGs widget set" msgstr "nem tudom kezdőállapotba hozni a WING widget-et" #: ../src/screen.c:1114 msgid "could not save session state in %s" msgstr "A session állapotát nem tudom elmenteni: %s" #: ../src/session.c:182 ../src/wdefaults.c:575 ../src/winspector.c:354 msgid "can't convert \"%s\" to boolean" msgstr "a \"%s\"-t nem tudom logikai értékké alakítani" #: ../src/session.c:981 msgid "out of memory while saving session state" msgstr "elfogyott a memória, miközben mentettem a session állapotát" #: ../src/session.c:1072 msgid "end of memory while saving session state" msgstr "a memória végére értem, miközben mentettem a session állapotát " #: ../src/session.c:1206 msgid "connection to the session manager was lost" msgstr "a session kezelÅ‘vel létrehozott kapcsolat elveszett" #: ../src/stacking.c:73 msgid "could not get window list!!" msgstr "nem tudom lekérdezni az ablakok listáját!!" #: ../src/startup.c:194 msgid "internal X error: %s\n" msgstr "belsÅ‘ X-hiba: %s\n" #: ../src/startup.c:259 msgid "got signal %i (%s) - restarting\n" msgstr "a következÅ‘ jelzést vettem: %i (%s) - újraindítás\n" #: ../src/startup.c:261 msgid "got signal %i - restarting\n" msgstr "a következÅ‘ jelzést vettem: %i - újraindítás\n" #: ../src/startup.c:275 msgid "got signal %i (%s) - exiting...\n" msgstr "a következÅ‘ jelzést vettem: %i (%s) - kilépés...\n" #: ../src/startup.c:277 msgid "got signal %i - exiting...\n" msgstr "a következÅ‘ jelzést vettem: %i - kilépek\n" #: ../src/startup.c:290 msgid "got signal %i (%s)\n" msgstr "egy %i (%s) jelzést vettem\n" #: ../src/startup.c:292 msgid "got signal %i\n" msgstr "egy %i jelzést vettem\n" #: ../src/startup.c:303 msgid "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "ütközés történt miközben a lefagyás után rendet akartam tenni. Megszakítom a műveletet." #. we try to restart Window Maker #: ../src/startup.c:337 msgid "trying to restart Window Maker..." msgstr "megpróbálom újraindítani a Window Makert" #: ../src/startup.c:342 msgid "trying to start alternate window manager..." msgstr "megpróbálok egy másik ablakkezelÅ‘t elindítani" #: ../src/startup.c:347 msgid "failed to start alternate window manager. Aborting." msgstr "hiba a másik ablakkezelÅ‘ indításakor. Megszakítom." #: ../src/startup.c:349 msgid "a fatal error has occured, probably due to a bug. Please fill the included BUGFORM and report it." msgstr "végzetes hiba történt, valószínűleg egy programozási hibát találtál. Légy szíves töltsd ki a mellékelt BUG-kérdőívet és küldd el a megadott címre. Köszi!" #. check sanity of some values #: ../src/startup.c:777 msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "az ikon mérete jelenleg %i-re van állítva, de ez túl kicsi. Helyette 16-t használok.\n" #: ../src/startup.c:805 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "XKB nincs támogatva. KbdModeLock automatikusan letiltódik." #: ../src/startup.c:824 msgid "it seems that there is already a window manager running" msgstr "nekem úgy tűnik, hogy már fut egy másik ablakkezelÅ‘" #: ../src/startup.c:830 msgid "could not manage screen %i" msgstr "nem tudom a menedzselni a %i képernyÅ‘t" #: ../src/startup.c:890 msgid "could not manage any screen" msgstr "egy képernyÅ‘t sem tudok kezelni" #: ../src/switchmenu.c:114 msgid "Windows" msgstr "Ablakok" #: ../src/texture.c:290 ../src/texture.c:334 msgid "image file \"%s\" used as texture could not be found." msgstr "A \"%s\" kép (ami mintaként használatos) nem tölthetÅ‘ be." #: ../src/texture.c:296 ../src/texture.c:340 msgid "could not load texture pixmap \"%s\":%s" msgstr "nem tudom betölteni a \"%s\":%s mintát" #: ../src/texture.c:400 msgid "library \"%s\" cound not be opened." msgstr "a \"%s\" könyvtárat nem tudom megnyitni." #: ../src/texture.c:409 msgid "function \"%s\" not found in library \"%s\"" msgstr "A \"%s\" függvény nem található a \"%s\" könyvtárban" #: ../src/texture.c:416 msgid "function textures not supported on this system, sorry." msgstr "A minta függvényeket ez a rendszer nem támogatja." #: ../src/wdefaults.c:421 msgid "could not find icon file \"%s\"" msgstr "nem találom a \"%s\" ikon fájlt" #: ../src/window.c:2607 ../src/window.c:2741 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 "" "Úgy tűnik, hogy a NumLock vagy a ScrollLock vagy valamelyik hasonló billentyű be van kapcsolva.\n" "Kapcsold ki, vagy néhány egérművelet vagy billentyű-kombináció nem fog működni." #: ../src/winmenu.c:126 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Ez bezárja az alkalmazást.\n" "Minden nem mentett adat elveszik.\n" "Biztos vagy benne?" #: ../src/winmenu.c:269 ../src/winmenu.c:277 msgid "Set Shortcut" msgstr "Gyorsbillentyű " #: ../src/winmenu.c:357 ../src/winmenu.c:403 msgid "could not create submenu for window menu" msgstr "az ablakok menüjéhez nem tudom az almenüt létrehozni" #: ../src/winmenu.c:412 msgid "Keep at bottom" msgstr "Mindig alul" #: ../src/winmenu.c:440 ../src/winmenu.c:575 msgid "Maximize" msgstr "Teljes méret" #: ../src/winmenu.c:448 ../src/winmenu.c:561 msgid "Miniaturize" msgstr "Ikonállapot" #: ../src/winmenu.c:457 ../src/winmenu.c:592 msgid "Shade" msgstr "Felhúzás" #: ../src/winmenu.c:473 msgid "Resize/Move" msgstr "Ãtméretezés/Mozgatás" #: ../src/winmenu.c:481 msgid "Select" msgstr "Kijelölés" #: ../src/winmenu.c:489 msgid "Move To" msgstr "Mozgatás" #: ../src/winmenu.c:494 msgid "Attributes..." msgstr "Tulajdonságok..." #: ../src/winmenu.c:496 msgid "Options" msgstr "Beállítások" #: ../src/winmenu.c:556 msgid "Deminiaturize" msgstr "Eredeti méret" #: ../src/winmenu.c:570 msgid "Unmaximize" msgstr "Eredeti méret" #: ../src/winmenu.c:587 msgid "Unshade" msgstr "Leeresztés" #: ../src/winspector.c:288 msgid "Could not find icon \"%s\" specified for this window" msgstr "A \"%s\" ikon fájl ehhez az ablakhoz nem található" #: ../src/winspector.c:304 msgid "Could not open specified icon \"%s\":%s" msgstr "Nem tudom megnyitni a következÅ‘ ikont \"%s\" : %s" #: ../src/winspector.c:1052 msgid "Save" msgstr "Mentés" #: ../src/winspector.c:1060 msgid "Apply" msgstr "Alkalmaz" #: ../src/winspector.c:1066 msgid "Reload" msgstr "Újra" #: ../src/winspector.c:1075 ../src/winspector.c:1085 msgid "Window Specification" msgstr "Ablak meghatározás" #: ../src/winspector.c:1076 msgid "Window Attributes" msgstr "Ablak tulajdonságok" #: ../src/winspector.c:1077 msgid "Advanced Options" msgstr "Haladó beállítások" #: ../src/winspector.c:1078 msgid "Icon and Initial Workspace" msgstr "Ikon és munkafelület beállítások" #: ../src/winspector.c:1079 msgid "Application Specific" msgstr "Alkalmazás beállításai" #: ../src/winspector.c:1093 msgid "Defaults for all windows" msgstr "Alapértelmezés minden ablaknak" #: ../src/winspector.c:1144 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 "" "A konfiguráció mentéskor alkalmazva lesz\n" "minden ablakra, ahol a WM_CLASS\n" "értéke a fentire van beállítva." #. *** attributes *** #: ../src/winspector.c:1151 msgid "Attributes" msgstr "Tulajdonságok" #: ../src/winspector.c:1162 msgid "Disable Titlebar" msgstr "Címsor letiltás" #: ../src/winspector.c:1164 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Eltünteti az ablak címsorát.\n" "Az ablak-parancsok menüjéhez a címsor nélküli\n" "ablakoknál a Control+Esc lenyomásával juthatsz\n" "(vagy egy ezzel egyenértékű gombkombinációval, ha\n" "közben átállítottad az alapértelmezést)." #: ../src/winspector.c:1171 msgid "Disable Resizebar" msgstr "Ãtméretezés letiltás" #: ../src/winspector.c:1173 msgid "Remove the resizebar of this window." msgstr "Az átméretezÅ‘ sávot elrejti" #: ../src/winspector.c:1176 msgid "Disable Close Button" msgstr "Bezárás gomb letiltása" #: ../src/winspector.c:1178 msgid "Remove the `close window' button of this window." msgstr "Elrejti a `bezárás' gombot az ablakról" #: ../src/winspector.c:1181 msgid "Disable Miniaturize Button" msgstr "Ikonállapot gomb elrejtése" #: ../src/winspector.c:1183 msgid "Remove the `miniaturize window' button of the window." msgstr "Elrejti az `Ikonállapot' gombot az ablakról" #: ../src/winspector.c:1186 msgid "Keep on Top / Floating" msgstr "Mindig felül / Lebegés" #: ../src/winspector.c:1188 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "Az ablakot mindig felülre teszi, nem engedi, hogy\n" "más ablak beterítse." #: ../src/winspector.c:1192 msgid "Keep at Bottom / Sunken" msgstr "Mindig alul / Süllyesztés" #: ../src/winspector.c:1194 msgid "Keep the window under all other windows." msgstr "Az ablak mindig a legalsó lesz." #: ../src/winspector.c:1199 msgid "Make window occupy all workspaces." msgstr "Az ablak minden munkafelületen megjelenik." #: ../src/winspector.c:1202 msgid "Start Miniaturized" msgstr "Ikonállapotban indít" #: ../src/winspector.c:1204 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "Az ablak automatikusan ikonállapotba kerül, amikor\n" "elÅ‘ször megjelenik." #: ../src/winspector.c:1208 msgid "Start Maximized" msgstr "Teljes méretben indít" #: ../src/winspector.c:1210 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "Az ablak automatikusan betölti az egész képernyÅ‘t, amikor\n" "elÅ‘ször megjelenik." #: ../src/winspector.c:1214 msgid "Skip Window List" msgstr "Ablak-lista átugrása" #: ../src/winspector.c:1216 msgid "Do not list the window in the window list menu." msgstr "Az ablak nem jelenik meg az \"Ablakok listája\" menüben" #: ../src/winspector.c:1231 msgid "Advanced" msgstr "Haladó" #: ../src/winspector.c:1246 msgid "Ignore HideOthers" msgstr "\"HideOthers\" figyelmen kívűl" #: ../src/winspector.c:1248 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "Nem rejti el az ablakot, amikor a\n" "\"HideOthers\" parancsot hajtod végre." #: ../src/winspector.c:1252 msgid "Don't Bind Keyboard Shortcuts" msgstr "Ne értelmezze a gyorsbillentyűket" #: ../src/winspector.c:1254 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "A Window Maker nem fogja értelmezni a gyorsbillentyűket,\n" "amikor ez az ablak aktív. Ez lehetÅ‘vé teszi, hogy az\n" "ablak _MINDEN_ gombkombinációt megkapjon, azt is, ami\n" "már esetleg szerepel a gyorsbillentyűid között." #: ../src/winspector.c:1260 msgid "Don't Bind Mouse Clicks" msgstr "Ne értelmezze az egérkattintásokat" #: ../src/winspector.c:1262 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Nem próbálja meg értelmezni az egér tevékenységét, pl az Alt+húzás-t\n" "az ablakon belül (ha az alt a módosító billentyűd)." #: ../src/winspector.c:1267 msgid "Keep Inside Screen" msgstr "A képernyÅ‘n belül tart" #: ../src/winspector.c:1269 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Nem engedélyezi az ablakot teljesen a képernyÅ‘\n" "területén kívűlre rakni.\n" #: ../src/winspector.c:1273 msgid "Don't Let It Take Focus" msgstr "Nem kaphat fókuszt" #: ../src/winspector.c:1275 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "Amikor rákattintasz az ablakra, akkor a billentyűzet\n" "nem fókuszálódik rá." #: ../src/winspector.c:1279 msgid "Don't Save Session" msgstr "Nem menti a sessiont" #: ../src/winspector.c:1281 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Nem menti a társított alkalmazás session tulajdonságait,\n" "így nem fog újraindulni más alkalmazásokkal együtt, amikor a\n" "Window Maker elindul." #: ../src/winspector.c:1287 msgid "Emulate Application Icon" msgstr "Alkalmazás-ikon emuláció" #: ../src/winspector.c:1289 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Az ablakot úgy állítja be, hogy elég információt szolgáltasson\n" "a Window Makernek ahhoz, hogy a dokkolt ikont létre tudja\n" "hozni." #: ../src/winspector.c:1294 msgid "Full Screen Maximization" msgstr "Teljes képernyÅ‘s üzemmód" #: ../src/winspector.c:1296 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Az ablak az egész képernyÅ‘t el fogja foglalni, amikor\n" "maximalizálod. A címsor és az átméretezÅ‘sáv ki fog\n" "lógni a képernyÅ‘bÅ‘l." #: ../src/winspector.c:1302 msgid "Disable Language Button" msgstr "Nyelv-gomb letiltása" #: ../src/winspector.c:1304 msgid "Remove the `toggle language' button of the window." msgstr "Eltünteti a `nyelv ki/be' gombot az ablakról" #: ../src/winspector.c:1321 msgid "Miniwindow Image" msgstr "Miniablak-kép" #: ../src/winspector.c:1340 msgid "Update" msgstr "Frissítés" #: ../src/winspector.c:1355 msgid "Icon File Name:" msgstr "Ikonfájl neve:" #: ../src/winspector.c:1367 msgid "Ignore client supplied icon" msgstr "A kliens ikonjának letiltása" #: ../src/winspector.c:1374 msgid "Initial Workspace" msgstr "Kezdeti munkafelület" #: ../src/winspector.c:1376 msgid "The workspace to place the window when it'sfirst shown." msgstr "Amikor megjelenik, melyik munkafelületre helyezze az ablakot" #: ../src/winspector.c:1382 msgid "Nowhere in particular" msgstr "Aktuális munkafelület" #: ../src/winspector.c:1400 msgid "Application Wide" msgstr "Alkalmazás tulajdonságok" #: ../src/winspector.c:1411 msgid "Start Hidden" msgstr "Indításkor elrejt" #: ../src/winspector.c:1413 msgid "Automatically hide application when it's started." msgstr "Amikor elindul, automatikusan elrejti" #: ../src/winspector.c:1416 msgid "No Application Icon" msgstr "Nincs alkalmazás-ikon" #: ../src/winspector.c:1418 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Letiltja az alkalmazáshoz tartozó ikon megjelenését.\n" "Többé nem tudod dokkolni (rögzíteni) azt;\n" "és a többi ikon, ami már dokkolva van, lehetséges,\n" "hogy nem fog többé tökéletesen működni." #: ../src/workspace.c:107 ../src/workspace.c:108 ../src/workspace.c:703 msgid "Workspace %i" msgstr "Munkafelület %i" #: ../src/workspace.c:760 msgid "Workspaces" msgstr "Munkafelületek" #: ../src/workspace.c:762 msgid "could not create Workspace menu" msgstr "nem tudom létrehozni a Munkafelület menüt" #: ../src/workspace.c:769 msgid "New" msgstr "Új" #: ../src/workspace.c:770 msgid "Destroy Last" msgstr "Utolsó elpusztítása" #: ../src/xutil.c:228 msgid "invalid data in selection" msgstr "érvénytelen adat a kiválasztásban" WindowMaker-0.95.5/po/ms.po0000644000175000017500000014673312214432632012374 00000000000000# terjemahan WindowMaker untuk Bahasa Melayu. # Copyright (C) 2001 Free Software Foundation, Inc. # Hasbullah Bin Pit , 2001. # msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.8.x\n" "POT-Creation-Date: 2001-12-26 03:25+0800\n" "PO-Revision-Date: 2001-12-31 02:53+0800\n" "Last-Translator: Hasbullah Bin Pit \n" "Language-Team: Projek Gabai (Bahasa Melayu) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:426 ../src/dialog.c:282 ../src/dock.c:3325 #: ../src/dockedapp.c:230 ../src/main.c:273 ../src/rootmenu.c:1850 #: ../src/winspector.c:389 ../src/winspector.c:406 msgid "Error" msgstr "Ralat" #: ../src/appicon.c:427 msgid "Could not open specified icon file" msgstr "Tak dapat membuka fail ikon yang dinyatakan" #: ../src/appicon.c:428 ../src/dialog.c:179 ../src/dialog.c:282 #: ../src/dialog.c:729 ../src/dialog.c:1814 ../src/dock.c:526 #: ../src/dock.c:534 ../src/dock.c:558 ../src/dock.c:3326 #: ../src/dockedapp.c:231 ../src/dockedapp.c:426 ../src/main.c:273 #: ../src/rootmenu.c:1854 ../src/winspector.c:390 ../src/winspector.c:407 msgid "OK" msgstr "OK" #: ../src/appicon.c:456 ../src/dock.c:264 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " akan ditutup secara paksa.\n" "Sebarang perubahan yang tidak disimpan akan hilang.\n" "Sila pastikan." #: ../src/appicon.c:464 ../src/dock.c:283 ../src/winmenu.c:124 msgid "Kill Application" msgstr "Bunuh Aplikasi" #: ../src/appicon.c:465 ../src/dock.c:284 ../src/winmenu.c:126 msgid "Yes" msgstr "Ya" #: ../src/appicon.c:465 ../src/dock.c:284 ../src/winmenu.c:126 msgid "No" msgstr "Tidak" #: ../src/appicon.c:495 ../src/dock.c:1177 ../src/dock.c:3491 msgid "Unhide Here" msgstr "Nyahsorok di sini" #: ../src/appicon.c:496 ../src/appicon.c:521 ../src/dock.c:1179 #: ../src/dock.c:1181 ../src/dock.c:3503 ../src/winmenu.c:461 msgid "Hide" msgstr "Sorok" #: ../src/appicon.c:497 msgid "Set Icon..." msgstr "Tetapkan Ikon..." #: ../src/appicon.c:498 ../src/dock.c:1185 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 ../src/winmenu.c:508 msgid "Kill" msgstr "Bunuh" #: ../src/appicon.c:519 ../src/dock.c:3501 msgid "Unhide" msgstr "Nyahsorok" #: ../src/application.c:398 #, c-format msgid "recreating missing icon '%s'" msgstr "Mencipta semula ikon hilang '%s'" #: ../src/defaults.c:919 ../src/defaults.c:1008 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Domain %s (%s) pangkalan data default global telah rosak!" #: ../src/defaults.c:924 #, c-format msgid "could not load domain %s from global defaults database" msgstr "Tak dapat memuatkan domain %s daripada pangkalan data defaul global" #: ../src/defaults.c:946 ../src/startup.c:884 ../src/startup.c:902 #: ../src/startup.c:908 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "tak dapat membaca domain \"%s\" daripada pangakalandata default" #: ../src/defaults.c:992 ../src/defaults.c:1096 ../src/defaults.c:1137 #: ../src/defaults.c:1193 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Domain %s (%s) pangkalan data telah rosak!" #: ../src/defaults.c:997 ../src/defaults.c:1116 ../src/defaults.c:1173 #: ../src/defaults.c:1202 ../src/menureader.c:397 #, c-format msgid "could not load domain %s from user defaults database" msgstr "Tak dapat memuatkan domain %s daripada pangkalan data default" #: ../src/defaults.c:1027 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "tak dapat memuatkan domain %s drpd pangkalan data default global(%s)" #: ../src/defaults.c:1163 ../src/screen.c:458 #, c-format msgid "could not load logo image for panels: %s" msgstr "tak dapat memuatkan imej logo panels:%s" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1411 ../src/defaults.c:1553 ../src/defaults.c:1665 #: ../src/defaults.c:2144 ../src/defaults.c:2161 ../src/defaults.c:2206 #: ../src/defaults.c:2253 ../src/defaults.c:2726 ../src/wdefaults.c:571 #: ../src/wdefaults.c:607 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Format opsyen salah untuk kekunci \"%s\". Sepatutnya %s." #: ../src/defaults.c:1413 ../src/defaults.c:1494 ../src/defaults.c:1526 #: ../src/defaults.c:1558 ../src/defaults.c:1571 ../src/defaults.c:1586 #: ../src/defaults.c:1600 ../src/defaults.c:1670 ../src/defaults.c:1682 #: ../src/defaults.c:2149 ../src/defaults.c:2166 ../src/defaults.c:2179 #: ../src/defaults.c:2211 ../src/defaults.c:2227 ../src/defaults.c:2258 #: ../src/defaults.c:2345 ../src/defaults.c:2731 ../src/defaults.c:2742 #, c-format msgid "using default \"%s\" instead" msgstr "mengguna \"%s\" default sebaliknya" #: ../src/defaults.c:1444 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "Nilai opsyen salah untuk kekunci \"%s\". Sepatutnya salah satu drpd %s" #: ../src/defaults.c:1489 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "Tak dapat menukar \"%s\" ke boolean untuk kekunci \"%s\"" #: ../src/defaults.c:1523 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "Tak dapat menukar \"%s\" ke integer untuk kekunci \"%s\"" #: ../src/defaults.c:1566 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Bilangan unsur yang salah dalam jujukan untuk kekunci \"%s\"." #: ../src/defaults.c:1581 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Nilai salah untuk kekunci \"%s\". Sepatutnya Koordinat" #: ../src/defaults.c:1596 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "tak dapat menukar array ke intiger untuk \"%s\"." #: ../src/defaults.c:1794 ../src/defaults.c:1826 ../src/defaults.c:1842 #: ../src/defaults.c:1871 ../src/defaults.c:1894 ../src/defaults.c:1947 #: ../src/defaults.c:1987 ../src/defaults.c:2025 ../src/defaults.c:2041 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" adalah nama warna yang tidak sah" #: ../src/defaults.c:1807 ../src/defaults.c:1859 msgid "bad number of arguments in gradient specification" msgstr "nombor hujah yang salah pada spesifikasi gradient" #: ../src/defaults.c:1920 msgid "too few arguments in multicolor gradient specification" msgstr "terlalu sedikit hujah pada spesifikasi hujah perlbagaiwarna" #: ../src/defaults.c:2014 msgid "bad number of arguments in textured gradient specification" msgstr "bilangan hujah salah pada spesifikasi gradient tertekstur" #: ../src/defaults.c:2057 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "nilai opacity salah untuk tekstur gradient \"%s\". sepatutnya [0..255]" #: ../src/defaults.c:2117 #, c-format msgid "could not initialize library %s" msgstr "tak dapat memulakan pustaka %s" #: ../src/defaults.c:2120 #, c-format msgid "could not find function %s::%s" msgstr "tak menjumpai fungsi %s::%s" #: ../src/defaults.c:2127 #, c-format msgid "invalid texture type %s" msgstr "jenis tekstur tak sah %s" #: ../src/defaults.c:2174 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Ralat pada spesifikasi tekstur untuk kekunci \"%s\"" #: ../src/defaults.c:2223 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Jenis yang salah bagi latar ruang kerja. Sepatutnya jenis tekstur" #: ../src/defaults.c:2271 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "Jenis yang salah bagi latar ruangkerja %i. Sepatutnya tekstur." #: ../src/defaults.c:2313 msgid "could not load any usable font!!!" msgstr "tak dapat memuatkan font yang boleh digunakan" #: ../src/defaults.c:2340 #, c-format msgid "could not get color for key \"%s\"" msgstr "tak boleh mendapatkan warna untuk kekunci \"%s\"" #: ../src/defaults.c:2398 ../src/rootmenu.c:523 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s:kekunci modifier tak sah \"%s\"" #: ../src/defaults.c:2410 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:spesifikasi pintasan kbd tidak sah \"%s\"" #: ../src/defaults.c:2417 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s: kekunci tidak sah pasa pintasan \"%s\"" #: ../src/defaults.c:2442 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: kekunci modifier %s adalah tidak sah" #: ../src/defaults.c:2474 #, c-format msgid "could not load image in option %s: %s" msgstr "tak dapat memuatkan imej pada opsyen %s: %s" #: ../src/defaults.c:2591 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "gagal membuka fail bitmap \"%s\"" #: ../src/defaults.c:2594 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" adalah fail bitmap yang tidak sah" #: ../src/defaults.c:2597 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "kehausan memori ketika membaca fail bitmap \"%s\"" #: ../src/defaults.c:2636 ../src/defaults.c:2669 msgid "bad number of arguments in cursor specification" msgstr "bilangan hujah salah pada spesifikasi kursor" #: ../src/defaults.c:2652 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "nama kursor dalaman tidak diketahui \"%s\"" #: ../src/defaults.c:2679 ../src/defaults.c:2691 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "tak menjumpai fail bitmap kursor \"%s\"" #: ../src/defaults.c:2738 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Ralat pada spesifikasi kursor bagi kekunci \"%s\"" #: ../src/defaults.c:2823 msgid "could not render texture for icon background" msgstr "tak dapat render tekstur untuk latar ikon" #: ../src/dialog.c:135 msgid "Save workspace state" msgstr "Simpan keadaan ruangkerja" #: ../src/dialog.c:179 ../src/dialog.c:736 ../src/dock.c:558 #: ../src/dockedapp.c:431 ../src/rootmenu.c:198 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 msgid "Cancel" msgstr "Batal" #: ../src/dialog.c:277 msgid "Could not open directory " msgstr "Tak dapat membuka direktori" #: ../src/dialog.c:332 msgid "Could not load image file " msgstr "Tak dapat memuatkan fail imej" #: ../src/dialog.c:663 msgid "Directories" msgstr "Direktori" #: ../src/dialog.c:672 msgid "Icons" msgstr "Ikon" #: ../src/dialog.c:705 msgid "Preview" msgstr "Pralihat" #: ../src/dialog.c:718 msgid "File Name:" msgstr "Nama Fail:" #: ../src/dialog.c:742 msgid "Choose File" msgstr "Pilih Fail" #: ../src/dialog.c:760 ../src/dialog.c:762 msgid "Icon Chooser" msgstr "Pemilih Ikon" #: ../src/dialog.c:1241 ../src/dialog.c:1351 #, c-format msgid "Version %s" msgstr "Versi %s" #: ../src/dialog.c:1348 msgid "Window Manager for X" msgstr "Pengurus Tetingkap untuk X" #: ../src/dialog.c:1371 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Menggunakan visual 0x%x: %s %ibpp" #: ../src/dialog.c:1379 msgid "(32 thousand colors)\n" msgstr "(32 ribu warna)\n" #: ../src/dialog.c:1382 msgid "(64 thousand colors)\n" msgstr "(64 ribu warna)\n" #: ../src/dialog.c:1386 msgid "(16 million colors)\n" msgstr "(16 juta warna)\n" #: ../src/dialog.c:1389 #, c-format msgid "(%d colors)\n" msgstr "(%d warna)\n" #: ../src/dialog.c:1399 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "Jumlam memori diperuntukkan: %i kB. Jumlah memori digunakan: %i kB.\n" #: ../src/dialog.c:1406 msgid "Supported image formats: " msgstr "Format imej yang disokong: " #: ../src/dialog.c:1413 msgid "" "\n" "Additional support for: " msgstr "" "\n" "Sokongan tambahan untuk: " #: ../src/dialog.c:1436 msgid " and " msgstr " dan " #: ../src/dialog.c:1446 msgid "" "\n" "Sound disabled" msgstr "" "\n" "Bunyi dimatikan" #: ../src/dialog.c:1448 msgid "" "\n" "Sound enabled" msgstr "" "\n" "Bunyi dihidupkan" #: ../src/dialog.c:1472 msgid "Info" msgstr "Maklumat" #: ../src/dialog.c:1495 msgid "Merry Christmas!" msgstr "Selamat Hari Natal!" #: ../src/dialog.c:1565 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" #: ../src/dialog.c:1586 msgid "Legal" msgstr "Perundangan" #: ../src/dialog.c:1737 ../src/startup.c:395 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "Tak dapat membuka sambungan untuk panel dialog terjahaman. Diabaikan." #: ../src/dialog.c:1763 msgid "Fatal error" msgstr "Ralat Fatal" #: ../src/dialog.c:1774 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker menerima isyarat %i\n" "(%s)." #: ../src/dialog.c:1777 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker menerima isyarat %i." #: ../src/dialog.c:1786 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " Ralat fatal ini berlaku kemungkinan disebabkan pepijat. Sila ini BUGFORM " "yang disertakan dan laporkan ke bugs@windowmaker.info." #: ../src/dialog.c:1795 msgid "What do you want to do now?" msgstr "Apa yang anda ingin lakukan sekarang?" #: ../src/dialog.c:1801 msgid "Select action" msgstr "Pilih aksi" #: ../src/dialog.c:1802 msgid "Abort and leave a core file" msgstr "Abai dan tinggalkan fail core" #: ../src/dialog.c:1803 msgid "Restart Window Maker" msgstr "Ulanghidupkan Window Maker" #: ../src/dialog.c:1804 msgid "Start alternate window manager" msgstr "Hidupkan pengurus tetingkap lain" #: ../src/dialog.c:1982 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop enviroment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" #: ../src/dialog.c:2002 msgid "About GNUstep" msgstr "Perihal GNUstep" #: ../src/dock.c:213 #, c-format msgid "Type the name for workspace %i:" msgstr "Taip nama ruangkerja %i:" #: ../src/dock.c:214 ../src/dock.c:1141 ../src/dock.c:1144 ../src/dock.c:3409 msgid "Rename Workspace" msgstr "Tukarnama Ruangkerja" #: ../src/dock.c:520 ../src/dock.c:528 msgid "Warning" msgstr "Amaran" #: ../src/dock.c:521 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Terdapat ikon tak dapat dijadikan omnipresent. Sila pastikan tiada ikon lain " "dilabuhkan pada posisi sama pada ruang kerja lain dan Klipnya tidak penuh " "pada semua ruang kerja." #: ../src/dock.c:529 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "Ikon tak dpaat dijadikan omnipresent. Sila pastikan tiada ikon lain " "dilabuhkan pada posisi sama pada ruang kerja lain dan Klipnya tidak penuh " "pada semua ruang kerja." #: ../src/dock.c:556 msgid "Workspace Clip" msgstr "Klip Ruangkerja" #: ../src/dock.c:557 msgid "All selected icons will be removed!" msgstr "Semua ikon yang dipilih akan dibuang!" #: ../src/dock.c:608 ../src/dock.c:1156 ../src/dock.c:1158 ../src/dock.c:3445 msgid "Keep Icon" msgstr "Simpan Ikon" #: ../src/dock.c:609 ../src/dock.c:2137 ../src/dock.c:2278 msgid "Type the command used to launch the application" msgstr "Taip arahan yang digunakan untuk melancarkan aplikasi" #: ../src/dock.c:965 #, c-format msgid "could not launch application %s\n" msgstr "tak dapat melancarkan aplikasi %s\n" #: ../src/dock.c:1020 msgid "could not create workspace submenu for Clip menu" msgstr "tak dapat mencipta submenu ruangkerja untuk menu Klip" #: ../src/dock.c:1078 msgid "could not create options submenu for Clip menu" msgstr "tak dapat mencipta submenu opsyen untuk menu Klip" #: ../src/dock.c:1082 ../src/dock.c:1130 msgid "Keep on Top" msgstr "Sentiada di atas" #: ../src/dock.c:1088 msgid "Collapsed" msgstr "Runtuh" #: ../src/dock.c:1094 msgid "Autocollapse" msgstr "AutoRuntuh" #: ../src/dock.c:1100 msgid "Autoraise" msgstr "Autonaik" #: ../src/dock.c:1106 msgid "Autoattract Icons" msgstr "Autotarik Ikon" #: ../src/dock.c:1136 msgid "Clip Options" msgstr "Opsyen Klip" #: ../src/dock.c:1146 msgid "Selected" msgstr "Dipilih" #: ../src/dock.c:1151 ../src/dock.c:1154 ../src/dock.c:3436 msgid "Select All Icons" msgstr "Pilih Semua Ikon" #: ../src/dock.c:1160 ../src/dock.c:1162 ../src/dock.c:3453 msgid "Move Icon To" msgstr "Pindah Ikon Ke" #: ../src/dock.c:1167 ../src/dock.c:1170 ../src/dock.c:3464 msgid "Remove Icon" msgstr "Buang Ikon" #: ../src/dock.c:1172 msgid "Attract Icons" msgstr "Tarik Ikon" #: ../src/dock.c:1175 msgid "Launch" msgstr "Lancar" #: ../src/dock.c:1183 msgid "Settings..." msgstr "Tetapan..." #: ../src/dock.c:1548 ../src/dock.c:1655 #, c-format msgid "bad value in docked icon state info %s" msgstr "nilai salah untuk maklumat keadaan ikon terlabuh %s" #: ../src/dock.c:1663 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "nilai salah untuk posisi ikon terlabuh %i,%i" #: ../src/dock.c:1683 #, c-format msgid "bad value in dock state info:%s" msgstr "" #: ../src/dock.c:1919 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "" #. icon->forced_dock = 1; #: ../src/dock.c:2136 ../src/dock.c:2277 msgid "Dock Icon" msgstr "" #: ../src/dock.c:3323 #, c-format msgid "Could not execute command \"%s\"" msgstr "Tak dapat melaksanakan arahan \"%s\"" #: ../src/dock.c:3415 msgid "Toggle Omnipresent" msgstr "" #: ../src/dock.c:3420 ../src/kwm.c:637 ../src/winmenu.c:413 #: ../src/winspector.c:1375 msgid "Omnipresent" msgstr "" #: ../src/dock.c:3434 msgid "Unselect All Icons" msgstr "Nyahpilih Semua Ikon" #: ../src/dock.c:3443 msgid "Keep Icons" msgstr "Simpan Ikon" #: ../src/dock.c:3451 msgid "Move Icons To" msgstr "Pindahkan Ikon Ke" #: ../src/dock.c:3462 msgid "Remove Icons" msgstr "Buang Ikon" #: ../src/dock.c:3493 ../src/kwm.c:643 msgid "Bring Here" msgstr "Bawa ke sini" #: ../src/dockedapp.c:149 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "" #: ../src/dockedapp.c:229 #, c-format msgid "Could not open specified icon file: %s" msgstr "tak dapat membuka fail ikon yang dinyatakan: %s" #: ../src/dockedapp.c:231 msgid "Ignore" msgstr "Abaikan" #: ../src/dockedapp.c:333 msgid "Start when Window Maker is started" msgstr "Dimulakan bila Window Maker dihidupkan" #: ../src/dockedapp.c:340 msgid "Lock (prevent accidental removal)" msgstr "Kunci (cegah pembuangan tak disengajakan)" #: ../src/dockedapp.c:344 msgid "Application path and arguments" msgstr "Path Aplikasi dan hujah" #: ../src/dockedapp.c:357 msgid "Command for middle-click launch" msgstr "Arahan untuk pelancaran klik-tengah" #: ../src/dockedapp.c:371 #, c-format msgid "%s will be replaced with current selection" msgstr "%s akan digantikan dengan pilihan semasa" #: ../src/dockedapp.c:376 msgid "Command for files dropped with DND" msgstr "Arahan untuk fail yang dijatuhkan dengan DND" #: ../src/dockedapp.c:390 #, c-format msgid "%d will be replaced with the file name" msgstr "%d akan digantikan dengan nama fail" #: ../src/dockedapp.c:394 msgid "DND support was not compiled in" msgstr "Sokongan DND tidak dikompil bersama" #: ../src/dockedapp.c:399 msgid "Icon Image" msgstr "Imej Ikon" #: ../src/dockedapp.c:413 ../src/winspector.c:1513 msgid "Browse..." msgstr "Lihat..." #: ../src/dockedapp.c:466 msgid "Docked Application Settings" msgstr "Tetapan Aplikasi Limbungan" #: ../src/framewin.c:649 ../src/framewin.c:744 ../src/menu.c:456 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "tak dapat render tekstur: %s" #: ../src/framewin.c:672 ../src/framewin.c:683 ../src/framewin.c:699 #: ../src/framewin.c:710 ../src/framewin.c:717 ../src/framewin.c:724 #: ../src/icon.c:350 ../src/menu.c:485 #, c-format msgid "error rendering image:%s" msgstr "ralat merender imej:%s" #: ../src/framewin.c:777 #, c-format msgid "error rendering image: %s" msgstr "ralat merender imej: %s" #: ../src/gnome.c:216 ../src/gnome.c:343 ../src/gnome.c:401 msgid "out of memory while updating GNOME hints" msgstr "tak cukup memori bila mengemaskini petua GNOME" #: ../src/icon.c:229 ../src/wdefaults.c:443 #, c-format msgid "error loading image file \"%s\": %s" msgstr "ralat memuatkan fail imej \"%s\": %s" #: ../src/icon.c:491 ../src/icon.c:500 #, c-format msgid "could not create directory %s" msgstr "tak dapat mencipta direktori %s" #: ../src/icon.c:767 #, c-format msgid "could not find default icon \"%s\"" msgstr "tak menjumpai ikon default \"%s\"" #: ../src/icon.c:773 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "tak dapat memuatkan ikon default \"%s\":%s" #. #. * 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/kwm.c:633 ../src/winmenu.c:436 ../src/winmenu.c:571 msgid "Maximize" msgstr "Maksima" #: ../src/kwm.c:634 ../src/winmenu.c:566 msgid "Unmaximize" msgstr "Nyah Maksima" #: ../src/kwm.c:635 ../src/winmenu.c:444 ../src/winmenu.c:557 msgid "Miniaturize" msgstr "" #: ../src/kwm.c:636 ../src/winmenu.c:552 msgid "Deminiaturize" msgstr "" #: ../src/kwm.c:638 msgid "Not Omnipresent" msgstr "" #: ../src/kwm.c:639 msgid "Move" msgstr "Gerak" #: ../src/kwm.c:640 msgid "Resize" msgstr "Ubahsaiz" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/kwm.c:641 ../src/rootmenu.c:248 ../src/winmenu.c:501 msgid "Close" msgstr "Tutup" #: ../src/kwm.c:642 ../src/winmenu.c:485 msgid "Move To" msgstr "Pindah ke" #: ../src/kwm.c:1096 msgid "%a(Run Command,Type the command to run:)" msgstr "%a(Laksana arahan, taip arahan untuk dilaksanakan:)" #: ../src/main.c:222 msgid "failed to restart Window Maker." msgstr "gagal mengulanghidupkan Window Maker." #: ../src/main.c:225 #, c-format msgid "could not exec %s" msgstr "tak dpaat melaksanakan %s" #: ../src/main.c:271 msgid "Could not execute command: " msgstr "tak dapat melaksanakan arahan:" #: ../src/main.c:428 #, c-format msgid "%s aborted.\n" msgstr "%s diabaikan.\n" #: ../src/main.c:439 #, c-format msgid "Usage: %s [options]\n" msgstr "Penggunaan: %s [opsyen]\n" #: ../src/main.c:440 msgid "The Window Maker window manager for the X window system" msgstr "Window Maker pengurus tetingkap untuk sistem Xwindow" #: ../src/main.c:442 msgid " -display host:dpy\tdisplay to use" msgstr " -display hos:dpy\tpaparan untuk digunakan" #: ../src/main.c:444 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tmatikan praproses konfigurasi fail" #: ../src/main.c:446 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tjangan buka aplikasi limbungan" #: ../src/main.c:447 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tjangan bula Klip Ruangkerja" #: ../src/main.c:448 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tjangan auto laksanakan aplikasi" #: ../src/main.c:449 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tjangan pulihkan sessi tersimpan" #: ../src/main.c:451 msgid " --locale locale\tlocale to use" msgstr " --locale locale\tlocale untuk digunakan" #: ../src/main.c:453 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" " --create-stdcmap\tcipta hint colormap standard pada visual PseudoColor" #: ../src/main.c:454 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tvisual id pada visual untuk digunakan" #: ../src/main.c:455 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tjangan kemaskini atau simpam konfigurasi" #: ../src/main.c:456 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr " --no-polling\t\tjangan periksa kemaskini konfigurasi secara berkala" #: ../src/main.c:458 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\thidupkan mod paparan synchronous" #: ../src/main.c:460 msgid " --version\t\tprint version and exit" msgstr " --version\t\tcetak versi dan keluar" #: ../src/main.c:461 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tpapar mesej ini" #: ../src/main.c:474 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "tak dapat menjumpai direktori GNUstep pengguna (%s).\n" "Pastikan Window Maker dipasang dengan betul dan laksanakan wmaker.inst" #: ../src/main.c:479 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "tak menjmpai direktori GNUstep pengguna (%s)" #: ../src/main.c:482 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "terdapat ralat bila mencipta direktori GNUstep , sila pastikan Window Maker " "dipasang dengan betul dan laksanakan wmaker.inst" #: ../src/main.c:485 #, c-format msgid "%s directory created with default configuration." msgstr "%s direktori dicpta dengan konfigurasi default" #: ../src/main.c:505 ../src/main.c:510 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:tak dapat melaksanakan skrip permulaan" #: ../src/main.c:530 ../src/main.c:535 #, c-format msgid "%s:could not execute exit script" msgstr "%s:tak dapat melaksanakan skrip keluar" #: ../src/main.c:651 ../src/main.c:659 ../src/main.c:667 ../src/main.c:687 #, c-format msgid "too few arguments for %s" msgstr "terlalu sedikit hujah untuk %s" #: ../src/main.c:671 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "nilai salah untuk visualid: \"%s\"" #: ../src/main.c:695 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: hujah tidak sah '%s'\n" #: ../src/main.c:696 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Cuba '%s --help' untuk maklumat lanjut\n" #: ../src/main.c:727 msgid "X server does not support locale" msgstr "Pelayan X tidak menyokong locale" #: ../src/main.c:731 msgid "cannot set locale modifiers" msgstr "tak dapat menetapkan modifier locale" #: ../src/main.c:747 #, c-format msgid "could not open display \"%s\"" msgstr "tak dapat membuka paparan \"%s\"" #: ../src/menu.c:1255 msgid "could not grab keyboard" msgstr "Tak dapat grab papan kekunci" #: ../src/menu.c:2569 #, c-format msgid "bad value in menus state info:%s" msgstr "nilai salah pada maklumat keadaan menu:%s" #: ../src/menureader.c:264 ../src/rootmenu.c:730 #, c-format msgid "%s:could not stat menu" msgstr "%s:tak dapat stat menu" #: ../src/menureader.c:341 ../src/menureader.c:380 #, c-format msgid "could not stat() menu file '%s'" msgstr "Tak dapat stat() fail menu '%s'" #: ../src/menureader.c:416 #, c-format msgid "could not find menu file '%s' referenced in WMRootMenu" msgstr "tak menjumpai fail menu yang dirujuk '%s' pada WMRootMenu" #: ../src/menureader.c:423 #, c-format msgid "could not find any usable menu files. Please check '%s'" msgstr "tak menjumpai fail menu yang boleh digunakan. Sila periksa '%s'" #: ../src/menureader.c:438 ../src/rootmenu.c:1664 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "menggunakan fail menu default \"%s\" sebagai menu, menu yang dirujukkan pada " "WMRootMenu tak dapat dijumpai" #: ../src/menureader.c:457 #, c-format msgid "" "invalid content in menu file '%s'.\n" "It should either be a property list menu or the path to the file, enclosed " "in \"." msgstr "" "kandungan fail menu '%s' tidak sah.\n" "Ia sepatutnya adalah menu senarai ciri-ciri atau path ke fail, ditutup " "dengan \"." #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "Tak dapat nyatakan nilai untuk %s cpp" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "Tak dapat kemasukan katalaluan untuk UID %i" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "Mesin anda salah dikonfigurasikan. HOSTNAME ditetapkan sebagai %s" #: ../src/misc.c:132 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "Mesin anda salah dikonfigurasikan. HOST ditetapkan sebagai %s" #: ../src/misc.c:630 msgid "Program Arguments" msgstr "Hujah Program" #: ../src/misc.c:631 msgid "Enter command arguments:" msgstr "Masukkan hujah arahan:" #: ../src/misc.c:724 msgid "unable to get dropped data from DND drop" msgstr "Tak dapat menjatuhkan data daripada DND drop" #: ../src/misc.c:732 msgid "error getting dropped data from DND drop" msgstr "ralat mendapatkan data yang dijatuhkan daripada DND drop" #: ../src/misc.c:738 msgid "out of memory while getting data from DND drop" msgstr "tak cukup memori bila mendapatkan data daripada DND drop" #: ../src/misc.c:783 ../src/misc.c:923 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "tak cukup memori semasa pengembangan \"%s\"" #: ../src/misc.c:837 msgid "out of memory during expansion of \"%w\"" msgstr "tak cukup memori semasa pengembangan \"%w\"" #: ../src/misc.c:855 msgid "out of memory during expansion of \"%W\"" msgstr "tak cukup memori semasa pengembangan \"%W\"" #: ../src/misc.c:871 msgid "out of memory during expansion of \"%a\"" msgstr "tak cukup memori semasa pengembangan \"%a\"" #: ../src/misc.c:902 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "tak cukup memori semasa pengembangan \"%d\"" #: ../src/misc.c:916 msgid "selection not available" msgstr "pilihan tidak ada" #: ../src/misc.c:972 ../src/misc.c:978 #, c-format msgid "bad window name value in %s state info" msgstr "nilai nama tetingkap tak elok pada maklumat keadaan %s" #: ../src/misc.c:1235 msgid "could not send message to background image helper" msgstr "tak dapat mengirim mesej ke aplikasi bantuan imej latar" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "tak dapat memuatkanfail bitmap mask \"%s\". Tidak akan guna mask" #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "tak boleh menghantar warna \"%s\"" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "tak dapat memperuntukkan warna \"%s\"" #: ../src/rootmenu.c:196 ../src/rootmenu.c:198 msgid "Exit" msgstr "Keluar" #: ../src/rootmenu.c:197 msgid "Exit window manager?" msgstr "Keluar pengurus tetingkap?" #: ../src/rootmenu.c:245 msgid "Close X session" msgstr "Tutup sessi X" #: ../src/rootmenu.c:246 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "Tutup sessi Sistem Tetingkap?\n" "Pembunuhan akan menutup aplikasi tetapi data tidak disimpan." #: ../src/rootmenu.c:261 msgid "Kill X session" msgstr "Bunuh Sessi X" #: ../src/rootmenu.c:262 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Bunuh sessi Sistem Tetingkap?\n" "(semua aplikasi akan ditutup)" #: ../src/rootmenu.c:536 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:spesifikasi pintasan kdb tidak sah \"%s\" untuk kemasukan %s" #: ../src/rootmenu.c:544 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:pintasan kekunci tidak sah \"%s\" untuk kemasukan %s" #: ../src/rootmenu.c:597 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: '\"' tidak dipadankan pada fail menu" #: ../src/rootmenu.c:647 #, c-format msgid "%s: missing command" msgstr "%s: kehilangan arahan" #: ../src/rootmenu.c:679 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "spesifikasi OPEN_MENU tak sah: %s" #: ../src/rootmenu.c:738 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:tak dapat stat menu:%s" #: ../src/rootmenu.c:756 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "terlalu banyak parameter pada OPEN_MENU: %s" #: ../src/rootmenu.c:800 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Terdapat lebih daripada satu arahan WORKSPACE_MENU pada menu aplikasi.Hanya " "satu diizinkan." #: ../src/rootmenu.c:834 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "Terdapat lebih daripada satu arahan WINDOWS_MENU pada menu aplikasi.Hanya " "satu diizinkan." #: ../src/rootmenu.c:839 msgid "Window List" msgstr "Senarai Tetingkap" #: ../src/rootmenu.c:868 ../src/rootmenu.c:886 ../src/rootmenu.c:896 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s: kehilangan parameter untuk menu arahan \"%s\"" #: ../src/rootmenu.c:964 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s: arahan tidak diketahui \"%s\" pada config menu." #: ../src/rootmenu.c:972 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s: tak dapat menambah kemasukan pintasan \"%s\"" #: ../src/rootmenu.c:1109 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:melebihi had maksima baris pada konfigurasi menu: %s" #: ../src/rootmenu.c:1131 ../src/rootmenu.c:1224 ../src/rootmenu.c:1326 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:arahan hilang pada konfigurasi menu: %s" #: ../src/rootmenu.c:1161 #, c-format msgid "%s:syntax error in menu file:%s" msgstr "%s:ralat sintaks pada fail menu:%s" #: ../src/rootmenu.c:1190 ../src/rootmenu.c:1290 msgid "could not make arguments for menu file preprocessor" msgstr "tak dapat buat hujah untuk fail pra pemproses menu" #: ../src/rootmenu.c:1197 ../src/rootmenu.c:1298 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s:tak dapat membuka/mempraproses fail menu)" #: ../src/rootmenu.c:1209 ../src/rootmenu.c:1311 #, c-format msgid "%s:could not open menu file" msgstr "%s: tak dapat membuka fail menu" #: ../src/rootmenu.c:1236 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:fail menu tak sah. Arahan MENU hilang" #: ../src/rootmenu.c:1245 msgid "error reading preprocessed menu data" msgstr "Ralat membaca data menu pra pemproses" #: ../src/rootmenu.c:1338 #, c-format msgid "%s:no title given for the root menu" msgstr "%s:tiada tajuk diberikan untuk menu pangkal" #: ../src/rootmenu.c:1429 ../src/rootmenu.c:1502 ../src/rootmenu.c:1543 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "tak cukup memori semasa membina menu direktori %s" #: ../src/rootmenu.c:1439 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:tak dapat stat fail \"%s\" pada direktori menu" #: ../src/rootmenu.c:1597 msgid "Commands" msgstr "Arahan" #: ../src/rootmenu.c:1600 msgid "Restart" msgstr "Ulanghidup" #: ../src/rootmenu.c:1601 msgid "Exit..." msgstr "Keluar..." #: ../src/rootmenu.c:1646 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "tak menjumpai rujukan fail menu \"%s\" pada WMRootMenu" #: ../src/rootmenu.c:1653 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "tak dapat mengakses rujukan menu \"%s\" pada WMRootMenu" #: ../src/rootmenu.c:1687 ../src/rootmenu.c:1763 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s: ralat format pada configurasi menu pangkal \"%s\"" #: ../src/rootmenu.c:1851 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Aplikasi tidak dapat dimuatkan. Lihat output konsol untuk huraian terperinci " "ralat." #: ../src/screen.c:740 #, c-format msgid "could not initialize graphics library context: %s" msgstr "tak dapat memulakan konteks pustaka grafik: %s " #: ../src/screen.c:771 msgid "could not do initialization of WINGs widget set" msgstr "tak dapat memulakan set widget WINGs" #: ../src/screen.c:1139 #, c-format msgid "could not save session state in %s" msgstr "tak dapat simpan keadaan sessi pada %s" #: ../src/session.c:183 ../src/wdefaults.c:589 ../src/winspector.c:454 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "tak dapat menukar \"%s\" pada boolean" #: ../src/session.c:1021 msgid "out of memory while saving session state" msgstr "tak cukup memori ketika menyimpan keadaan sessi" #: ../src/session.c:1104 msgid "end of memory while saving session state" msgstr "tak cukup memori ketika menyimpan keadaan sessi" #. 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:1242 msgid "connection to the session manager was lost" msgstr "sambungan ke pengurus sessi telah tiada" #: ../src/stacking.c:79 msgid "could not get window list!!" msgstr "tak dapat senarai tetingkap!!" #: ../src/startup.c:202 #, c-format msgid "internal X error: %s\n" msgstr "ralat dalaman X: %s\n" #: ../src/startup.c:260 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "dapat isyarat %i (%s) - mengulanghidup\n" #: ../src/startup.c:262 #, c-format msgid "got signal %i - restarting\n" msgstr "dapat isyarat %i - mengulanghidup\n" #: ../src/startup.c:272 #, c-format msgid "got signal %i (%s) - rereading defaults\n" msgstr "dapat isyarat %i (%s) - membaca semula defaults\n" #: ../src/startup.c:274 #, c-format msgid "got signal %i - rereading defaults\n" msgstr "dapat isyarat %i - membaca semula defaults\n" #: ../src/startup.c:284 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "dapat isyarat %i (%s) - keluar...\n" #: ../src/startup.c:286 #, c-format msgid "got signal %i - exiting...\n" msgstr "dapat isyarat %i - keluar...\n" #: ../src/startup.c:329 #, c-format msgid "got signal %i (%s)\n" msgstr "dapat isyarat %i (%s)\n" #: ../src/startup.c:331 #, c-format msgid "got signal %i\n" msgstr "dapat isyarat %i\n" #: ../src/startup.c:342 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "" "Jahanam bila cuba melakukan sesuatu pembersihan selepas jahaman. keluar " "terus." #. we try to restart Window Maker #: ../src/startup.c:407 msgid "trying to restart Window Maker..." msgstr "cuba mengulanghidupkan Window Maker..." #: ../src/startup.c:412 msgid "trying to start alternate window manager..." msgstr "cuba menghidupkan pengurus tetingkap lain..." #: ../src/startup.c:417 msgid "failed to start alternate window manager. Aborting." msgstr "gagl menghidupkan pengurus tetingkap lain. Diabaikan." #: ../src/startup.c:419 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" "ralat fatal berlaku, mungkin kerana pepijat. Sila ini BUGFORM yang " "disertakan dan buat laporan." #: ../src/startup.c:894 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "" "saiz ikon dikonfigurasikan sebagai %i, tapi ianya terlalu kecik. Menggunakan " "16 sebaliknya\n" #: ../src/startup.c:922 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "XKB tidak disokong. KbdModeLock dimatikan secara automatik" #: ../src/startup.c:941 msgid "it seems that there is already a window manager running" msgstr "Nampaknya terdapat pengurus tetingkap yang tersedia terlaksana" #: ../src/startup.c:947 #, c-format msgid "could not manage screen %i" msgstr "tak dapat mengurus layar %i" #: ../src/startup.c:1015 msgid "could not manage any screen" msgstr "tak dapat mengurus sebarang layar" #: ../src/switchmenu.c:137 msgid "Windows" msgstr "Tetingkap" #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "fail imej \"%s\" digunakan sebagai tekstur tak dijumpai." #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "tak dapat memuatkan pixmap tekstur \"%s\":%s" #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "Pustaka \"%s\" tak dapat dibuka." #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "fungsi \"%s\" tak dijumpai pada pustaka \"%s\"" #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "fungsi tekstur tidak disokong pasa sistem ini, maaf ya" #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "tak dapat memperuntukkan buffer imej" #: ../src/wdefaults.c:437 #, c-format msgid "could not find icon file \"%s\"" msgstr "tak jumpa fail ikon \"%s\"" #: ../src/window.c:2936 ../src/window.c:3075 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 "" #: ../src/winmenu.c:125 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Ini akan membunuh aplikasi\n" "Sebarang perubahan yang belum disimpan akan hilang.\n" "Sila buat kepastian." #: ../src/winmenu.c:267 ../src/winmenu.c:276 msgid "Set Shortcut" msgstr "Tetapkan Pintasan" #: ../src/winmenu.c:354 ../src/winmenu.c:399 msgid "could not create submenu for window menu" msgstr "Tak dapat mencipta submenu untuk menu tetingkap" #: ../src/winmenu.c:403 msgid "Keep on top" msgstr "Kekal di atas" #: ../src/winmenu.c:408 msgid "Keep at bottom" msgstr "Kekal di bawah" #: ../src/winmenu.c:453 ../src/winmenu.c:588 msgid "Shade" msgstr "Suram" #: ../src/winmenu.c:469 msgid "Resize/Move" msgstr "Ubahsaiz/Pindah" #: ../src/winmenu.c:477 msgid "Select" msgstr "Pilih" #: ../src/winmenu.c:490 msgid "Attributes..." msgstr "Atribut..." #: ../src/winmenu.c:492 msgid "Options" msgstr "Opsyen" #: ../src/winmenu.c:583 msgid "Unshade" msgstr "NyahSuram" #: ../src/winspector.c:387 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "tak menjumpai ikon \"%s\" yang dinyatakan untuk tetingkap ini" #: ../src/winspector.c:404 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Tak dapat membuka ikon yang dinyatakan \"%s\":%s" #: ../src/winspector.c:1121 #, c-format msgid "Inspecting %s.%s" msgstr "Memeriksa %s.%s" #: ../src/winspector.c:1147 msgid "Click in the window you wish to inspect." msgstr "Klik pada tetingkap yang anda ingin periksa." #: ../src/winspector.c:1186 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "Konfigurasi akan menerapkan semua\n" "tetingkap yang mempunyai Ciri-ciri\n" "WM_CLASS untuk ditetapkan di atas nama\n" "dipilih, bila disimpan." #: ../src/winspector.c:1215 msgid "Save" msgstr "Simpan" #: ../src/winspector.c:1223 msgid "Apply" msgstr "Terapkan" #: ../src/winspector.c:1229 msgid "Reload" msgstr "Ulangmuat" #: ../src/winspector.c:1238 ../src/winspector.c:1248 msgid "Window Specification" msgstr "Spesifikasi Window" #: ../src/winspector.c:1239 msgid "Window Attributes" msgstr "Atribut Window" #: ../src/winspector.c:1240 msgid "Advanced Options" msgstr "Opsyen Lanjutan" #: ../src/winspector.c:1241 msgid "Icon and Initial Workspace" msgstr "Ikon dan Ruangkerja Permulaan" #: ../src/winspector.c:1242 msgid "Application Specific" msgstr "Aplikasi tertentu" #: ../src/winspector.c:1256 msgid "Defaults for all windows" msgstr "Default untuk semua tetingkap" #: ../src/winspector.c:1310 msgid "Select window" msgstr "Pilih tetingkap" #: ../src/winspector.c:1324 msgid "Attributes" msgstr "Atribut" #: ../src/winspector.c:1335 msgid "Disable titlebar" msgstr "Matikan titlebar" #: ../src/winspector.c:1337 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" #: ../src/winspector.c:1344 msgid "Disable resizebar" msgstr "Matikan resizebar" #: ../src/winspector.c:1346 msgid "Remove the resizebar of this window." msgstr "Buang resizebar tetingkap ini" #: ../src/winspector.c:1349 msgid "Disable close button" msgstr "Matikan butang tutup" #: ../src/winspector.c:1351 msgid "Remove the `close window' button of this window." msgstr "Buang buang 'tutup tetingkap' tetingkap ini" #: ../src/winspector.c:1354 msgid "Disable miniaturize button" msgstr "Matikan butang bahasa" #: ../src/winspector.c:1356 msgid "Remove the `miniaturize window' button of the window." msgstr "" #: ../src/winspector.c:1359 msgid "Disable border" msgstr "Matikan sempadan" #: ../src/winspector.c:1361 msgid "Remove the 1 pixel black border around the window." msgstr "Buang 1 piksel sempadan hitam di sekeliling tetingkap." #: ../src/winspector.c:1364 msgid "Keep on top (floating)" msgstr "Sentiasa di atas (terapung)" #: ../src/winspector.c:1366 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "Biarkan tetingkap di atas tetingkap lain\n" "jangan izinkan mereka menghadangnya." #: ../src/winspector.c:1370 msgid "Keep at bottom (sunken)" msgstr "Sentiasa di bawah (tenggelam)" #: ../src/winspector.c:1372 msgid "Keep the window under all other windows." msgstr "Sentiasa tetingkap di bawah semua tetingkap lain." #: ../src/winspector.c:1377 msgid "Make window present in all workspaces." msgstr "Jadikan tetingkap ada semua ruangkerja." #: ../src/winspector.c:1380 msgid "Start miniaturized" msgstr "" #: ../src/winspector.c:1382 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" #: ../src/winspector.c:1386 msgid "Start maximized" msgstr "Dimulakan secara maksima" #: ../src/winspector.c:1388 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "Jadikan tetingkap automatik dimaksimakan bila ianya\n" "pertama kali dipaparkan." #: ../src/winspector.c:1392 msgid "Full screen maximization" msgstr "Pemaksimaan layar penuh" #: ../src/winspector.c:1394 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Buatkan tetingkap menggunakan seluruh ruang layar bila ianya\n" "dimaksimakan. Titlebar dan resizebar akan digerakkankan\n" "ke luar layar." #: ../src/winspector.c:1411 msgid "Advanced" msgstr "Lanjutan" #: ../src/winspector.c:1428 msgid "Do not bind keyboard shortcuts" msgstr "Jangan bind pintasan papan pekunci" #: ../src/winspector.c:1430 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" #: ../src/winspector.c:1436 msgid "Do not bind mouse clicks" msgstr "Jangan bind klik tetikus" #: ../src/winspector.c:1438 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Jangan bind aksi tetikus, seperti `Alt'+heret pada\n" "tetingkap (bila alt ialah modifier yang telah anda konfigurasikan)." #: ../src/winspector.c:1443 msgid "Do not show in the window list" msgstr "Jangan papar pada senarai tetingkap" #: ../src/winspector.c:1445 msgid "Do not list the window in the window list menu." msgstr "Jangan senaraikan tetingkap pada menu senarai tetingkap" #: ../src/winspector.c:1448 msgid "Do not let it take focus" msgstr "Jangan biarkan ia mengambil fokus" #: ../src/winspector.c:1450 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "Jangan biarkan tetingkap mengambil fokus papan kekunci\n" "apabila Anda klik padanya." #: ../src/winspector.c:1454 msgid "Keep inside screen" msgstr "Biarkan di dalam layar" #: ../src/winspector.c:1456 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Jangan izinkan tetingkap untuk digerakkan dirinya\n" "terus ke luar layar. Untuk penyesuaian pepijat.\n" #: ../src/winspector.c:1460 msgid "Ignore 'Hide Others'" msgstr "Abaikan 'Hide Others'" #: ../src/winspector.c:1462 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "Jangan sembunyikan tetingkap bila mengemukakan\n" "arahan `HideOthers'." #: ../src/winspector.c:1466 msgid "Ignore 'Save Session'" msgstr "Abaikan 'Simpan Sessi'" #: ../src/winspector.c:1468 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Jangan simpan aplikasi yang dikaitkan pada\n" "keadaan sessi, oleh itu ianya tidak akan diulanghidupkan\n" "bersama dengan aplikasi lain bila Window Maker\n" "dihidupkan." #: ../src/winspector.c:1474 msgid "Emulate application icon" msgstr "Emulasikan ikon aplikasi" #: ../src/winspector.c:1476 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" #: ../src/winspector.c:1482 msgid "Disable language button" msgstr "Matikan butang bahasa" #: ../src/winspector.c:1484 msgid "Remove the `toggle language' button of the window." msgstr "Buang butang `toggle bahasa' tetingkap ini" #: ../src/winspector.c:1501 msgid "Miniwindow Image" msgstr "Imej Miniwindow" #: ../src/winspector.c:1528 msgid "Icon filename:" msgstr "Nama fail ikon:" #: ../src/winspector.c:1541 msgid "Ignore client supplied icon" msgstr "Abaikan ikon yang dibekali aplikasi" #: ../src/winspector.c:1548 msgid "Initial Workspace" msgstr "Ruangkerja permulaan" #: ../src/winspector.c:1550 msgid "The workspace to place the window when it'sfirst shown." msgstr "Ruangkerja dimana letaknya tetingkap bila ianya pertamakali dipaparkan" #: ../src/winspector.c:1556 msgid "Nowhere in particular" msgstr "" #: ../src/winspector.c:1574 msgid "Application Attributes" msgstr "Atribut Aplikasi" #: ../src/winspector.c:1585 msgid "Start hidden" msgstr "Dimulakan dengan tersorok" #: ../src/winspector.c:1587 msgid "Automatically hide application when it's started." msgstr "Automatik sorok aplikasi bila ianya dimulakan" #: ../src/winspector.c:1590 msgid "No application icon" msgstr "Tiada ikon aplikasi" #: ../src/winspector.c:1592 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" #: ../src/winspector.c:1598 msgid "Shared application icon" msgstr "Ikon aplikasi terkongsi" #: ../src/winspector.c:1600 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "Guna ikon aplikasi terkongsi untuk semua\n" "instance aplikasi ini\n" #: ../src/wmspec.c:277 msgid "out of memory while updating wm hints" msgstr "tak cukup memori bila mengemaskini petua wm" #: ../src/workspace.c:107 ../src/workspace.c:108 ../src/workspace.c:876 #, c-format msgid "Workspace %i" msgstr "Ruangkerja %i" #: ../src/workspace.c:926 msgid "Workspaces" msgstr "Ruangkerja" #: ../src/workspace.c:928 msgid "could not create Workspace menu" msgstr "tak dpat mencipta menu Ruangkerja" #: ../src/workspace.c:935 msgid "New" msgstr "Baru" #: ../src/workspace.c:936 msgid "Destroy Last" msgstr "Musnahkan yang terakhir" WindowMaker-0.95.5/po/ko.po0000644000175000017500000016416512214432632012365 00000000000000# Window Maker po file for korean. # Copyright (C) 1998 Free Software Foundation, Inc. # Byeong-Chan Kim , 1999. # Update: CHOI Junho , 1998/12. # Update: Lee, Seong-Gu , 2013/08 # msgid "" msgstr "" "Project-Id-Version: 0.61.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-07-12 13:02+0900\n" "PO-Revision-Date: 2013-08-12 23:57+0900\n" "Last-Translator: \n" "Language-Team: Korean\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.5.4\n" #: ../src/appicon.c:541 ../src/dialog.c:579 ../src/dock.c:3347 #: ../src/dockedapp.c:170 ../src/main.c:344 ../src/rootmenu.c:1645 #: ../src/winspector.c:341 ../src/winspector.c:357 msgid "Error" msgstr "오류" #: ../src/appicon.c:542 msgid "Could not open specified icon file" msgstr "지정한 ì•„ì´ì½˜ì„ ì—´ì§€ 못함." #: ../src/appicon.c:542 ../src/dialog.c:421 ../src/dialog.c:482 #: ../src/dialog.c:579 ../src/dialog.c:984 ../src/dialog.c:1622 #: ../src/dock.c:452 ../src/dock.c:459 ../src/dock.c:503 ../src/dock.c:598 #: ../src/dock.c:612 ../src/dock.c:3347 ../src/dock.c:4422 #: ../src/dockedapp.c:171 ../src/dockedapp.c:343 ../src/main.c:344 #: ../src/rootmenu.c:1648 ../src/winspector.c:341 ../src/winspector.c:357 #: ../src/winspector.c:753 msgid "OK" msgstr "확ì¸" #: ../src/appicon.c:572 ../src/dock.c:232 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "ì„ ê°•ì œ 종료합니다.\n" "저장하지 ì•Šì€ ë³€ê²½ ì‚¬í•­ì€ ìžƒê²Œ ë©ë‹ˆë‹¤.\n" "ê³„ì† í•©ë‹ˆê¹Œ?" #: ../src/appicon.c:579 ../src/dock.c:250 ../src/winmenu.c:123 msgid "Kill Application" msgstr "ì‘ìš©í”„ë¡œê·¸ëž¨ì„ ê°•ì œ 종료" #: ../src/appicon.c:580 ../src/dock.c:251 ../src/winmenu.c:126 msgid "Yes" msgstr "예" #: ../src/appicon.c:580 ../src/dock.c:251 ../src/winmenu.c:126 msgid "No" msgstr "아니오" #: ../src/appicon.c:605 ../src/dock.c:1262 ../src/dock.c:3528 msgid "Unhide Here" msgstr "숨긴 것 ì´ê³³ì— ë³´ìž„" #: ../src/appicon.c:606 ../src/appicon.c:630 ../src/dock.c:1264 #: ../src/dock.c:1266 ../src/dock.c:3540 ../src/winmenu.c:433 msgid "Hide" msgstr "숨김" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/appicon.c:607 ../src/dock.c:1260 ../src/winmenu.c:457 msgid "Launch" msgstr "실행" #: ../src/appicon.c:608 msgid "Set Icon..." msgstr "ì•„ì´ì½˜ 지정..." #: ../src/appicon.c:609 ../src/dock.c:1270 ../src/dock.c:1272 #: ../src/dock.c:3558 ../src/rootmenu.c:236 ../src/winmenu.c:463 msgid "Kill" msgstr "ê°•ì œ 종료" #: ../src/appicon.c:628 ../src/dock.c:3538 msgid "Unhide" msgstr "숨김 í•´ì œ" #: ../src/defaults.c:814 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "ì „ì—­ 기본 ë°ì´í„°ë² ì´ìŠ¤ì˜ ë„ë©”ì¸ %s (%s)는 깨졌습니다!" #: ../src/defaults.c:818 #, c-format msgid "could not load domain %s from global defaults database" msgstr "ì „ì—­ 기본 ë°ì´í„°ë² ì´ìФì—서 ë„ë©”ì¸ %s를 ì½ì„ 수 없습니다" #: ../src/defaults.c:863 ../src/defaults.c:877 #, c-format msgid "invalid global menu file %s" msgstr "ìž˜ëª»ëœ ì „ì—­ 메뉴 íŒŒì¼ %s" #: ../src/defaults.c:914 ../src/defaults.c:990 ../src/defaults.c:1029 #: ../src/defaults.c:1070 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "기본 ë°ì´í„°ë² ì´ìŠ¤ì˜ ë„ë©”ì¸ %s (%s)ì´ ê¹¨ì¡ŒìŠµë‹ˆë‹¤!" #: ../src/defaults.c:918 ../src/defaults.c:1012 ../src/defaults.c:1056 #: ../src/defaults.c:1080 #, c-format msgid "could not load domain %s from user defaults database" msgstr "ì‚¬ìš©ìž ê¸°ë³¸ ë°ì´í„°ë² ì´ìФì—서 ë„ë©”ì¸ %s를 ì½ì„ 수 없습니다" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1248 ../src/defaults.c:1371 ../src/defaults.c:1457 #: ../src/defaults.c:1862 ../src/defaults.c:1878 ../src/defaults.c:1919 #: ../src/defaults.c:1964 ../src/defaults.c:2371 ../src/wdefaults.c:638 #: ../src/wdefaults.c:667 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "\"%s\" í‚¤ì˜ ì˜µì…˜ 형ì‹ì´ 잘못ë¨. %sì´ì–´ì•¼ 합니다." #: ../src/defaults.c:1250 ../src/defaults.c:1323 ../src/defaults.c:1348 #: ../src/defaults.c:1375 ../src/defaults.c:1387 ../src/defaults.c:1401 #: ../src/defaults.c:1415 ../src/defaults.c:1461 ../src/defaults.c:1473 #: ../src/defaults.c:1866 ../src/defaults.c:1883 ../src/defaults.c:1895 #: ../src/defaults.c:1924 ../src/defaults.c:1940 ../src/defaults.c:1969 #: ../src/defaults.c:2048 ../src/defaults.c:2376 ../src/defaults.c:2387 #, c-format msgid "using default \"%s\" instead" msgstr "ê¸°ë³¸ê°’ì¸ \"%s\"를 대신 사용함" #: ../src/defaults.c:1277 #, c-format msgid "wrong option value for key \"%s\"; got \"%s\", should be one of %s." msgstr "" "키 \"%s\"ì˜ ì˜µì…˜ ê°’ì´ ìž˜ëª»ë¨; \"%s\"를 받았지만, \"%s\" 중 하나ì´ì–´ì•¼ 합니다." #: ../src/defaults.c:1319 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "\"%s\"를 키 \"%s\"ì— ëŒ€í•´ 부울 값으로 변환할 수 없습니다" #: ../src/defaults.c:1346 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "\"%s\"를 키 \"%s\"ì— ëŒ€í•´ 정수값으로 변환할 수 없습니다" #: ../src/defaults.c:1383 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "키 \"%s\"ì— ëŒ€í•œ ë°°ì—´ì˜ ì›ì†Œ 수가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤." #: ../src/defaults.c:1397 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "\"%s\" 키 ê°’ì´ ìž˜ëª»ë¨. 좌표가 ë˜ì–´ì•¼ 합니다." #: ../src/defaults.c:1411 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "\"%s\"ì— ëŒ€í•´ ë°°ì—´ì„ ì •ìˆ˜ê°’ìœ¼ë¡œ 변환할 수 ì—†ìŒ." #: ../src/defaults.c:1576 ../src/defaults.c:1606 ../src/defaults.c:1622 #: ../src/defaults.c:1651 ../src/defaults.c:1673 ../src/defaults.c:1724 #: ../src/defaults.c:1763 ../src/defaults.c:1800 ../src/defaults.c:1816 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\"는 올바른 색깔 ì´ë¦„ì´ ì•„ë‹˜" #: ../src/defaults.c:1588 ../src/defaults.c:1639 msgid "bad number of arguments in gradient specification" msgstr "그래디언트 ì§€ì •ì— ì¸ìˆ˜ì˜ 갯수가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤" #: ../src/defaults.c:1697 msgid "too few arguments in multicolor gradient specification" msgstr "다중색 그래디언트 ì§€ì •ì— ì¸ìˆ˜ì˜ 갯수가 너무 ì ìŠµë‹ˆë‹¤" #: ../src/defaults.c:1789 msgid "bad number of arguments in textured gradient specification" msgstr "í…ìŠ¤ì³ ê·¸ëž˜ë””ì–¸íŠ¸ ì§€ì •ì— ì¸ìˆ˜ì˜ 갯수가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤" #: ../src/defaults.c:1832 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "" "tgradient í…스처 \"%s\"ì— ìž˜ëª»ëœ ë¶ˆíˆ¬ëª…ë„ ê°’ì´ ìžˆìŠµë‹ˆë‹¤. [0..255]여야 합니다." #: ../src/defaults.c:1849 #, c-format msgid "invalid texture type %s" msgstr "ìž˜ëª»ëœ í…스처 유형 %s" #: ../src/defaults.c:1891 #, 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:1982 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "작업공간 ë°°ê²½ 종류가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤ %i. í…스처여야 합니다." #: ../src/defaults.c:2021 msgid "could not load any usable font!!!" msgstr "사용 가능한 ê¸€ê¼´ì„ ì½ì„ 수 없습니다!!!" #: ../src/defaults.c:2044 #, c-format msgid "could not get color for key \"%s\"" msgstr "키 \"%s\"ì˜ ìƒ‰ì„ ì–»ì„ ìˆ˜ ì—†ìŒ" #: ../src/defaults.c:2096 ../src/rootmenu.c:445 #, c-format msgid "%s: invalid key modifier \"%s\"" msgstr "%s: ìž˜ëª»ëœ í‚¤ ìˆ˜ì •ìž \"%s\"" #: ../src/defaults.c:2108 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:ìž˜ëª»ëœ í‚¤ë³´ë“œ 단축키 지정 \"%s\"" #: ../src/defaults.c:2114 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s:빨리가기 \"%s\"ì— ìž˜ëª»ëœ í‚¤" #: ../src/defaults.c:2136 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: ìž˜ëª»ëœ ìˆ˜ì •ìž í‚¤ %s" #: ../src/defaults.c:2243 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "비트맵 íŒŒì¼ \"%s\"를 ì—´ 수 없습니다" #: ../src/defaults.c:2246 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\"는 올바른 비트맵 파ì¼ì´ 아님" #: ../src/defaults.c:2249 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "비트맵 íŒŒì¼ \"%s\" ì½ëŠ” 중 메모리 부족" #: ../src/defaults.c:2287 ../src/defaults.c:2320 msgid "bad number of arguments in cursor specification" msgstr "커서 ì§€ì •ì— ì¸ìˆ˜ì˜ 개수가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤" #: ../src/defaults.c:2303 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "알 수 없는 내장 커서 ì´ë¦„ \"%s\"" #: ../src/defaults.c:2330 ../src/defaults.c:2342 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "커서 비트맵 íŒŒì¼ \"%s\"ì„ ì°¾ì§€ 못했습니다" #: ../src/defaults.c:2383 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "키 \"%s\"ì— ëŒ€í•œ 커서 지정 오류가 있습니다" #: ../src/defaults.c:2474 msgid "could not render texture for icon background" msgstr "ì•„ì´ì½˜ ë°°ê²½ì˜ í…스처를 그릴 수 없습니다" #: ../src/defaults.c:3082 ../src/defaults.c:3151 #, c-format msgid "Invalid arguments for option \"%s\"" msgstr "옵션 \"%s\" ì— ìž˜ëª»ëœ ì¸ìž" #: ../src/defaults.c:3088 ../src/defaults.c:3157 #, c-format msgid "Could not find image \"%s\" for option \"%s\"" msgstr "ë‹¤ìŒ ì˜µì…˜ìœ¼ë¡œ ì´ë¯¸ì§€ \"%s\" 를 찾지 못했습니다: \"%s\"" #: ../src/defaults.c:3093 ../src/defaults.c:3165 #, c-format msgid "Could not load image \"%s\" for option \"%s\"" msgstr "ë‹¤ìŒ ì˜µì…˜ìœ¼ë¡œ ì´ë¯¸ì§€ \"%s\" 를 ì½ì§€ 못했습니다: \"%s\"" #: ../src/defaults.c:3103 msgid "Invalid split sizes for SwitchPanel back image." msgstr "ìŠ¤ìœ„ì¹˜íŒ¨ë„ ë°°ê²½ ì´ë¯¸ì§€ì— ë§žì§€ 않는 í¬ê¸°" #: ../src/defaults.c:3172 #, c-format msgid "Invalid number of arguments for option \"%s\"" msgstr "옵션 \"%s\"ì— ëŒ€í•œ ì¸ìžì˜ 개수가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤" #: ../src/defaults.c:3188 #, c-format msgid "Value for option \"%s\" must be an array of 7 strings" msgstr "옵션 ê°’ \"%s\" ì€ 7글ìžì´ì–´ì•¼ 합니다" #: ../src/defaults.c:3202 #, c-format msgid "Invalid argument for option \"%s\" item %d" msgstr "옵션 \"%s\" 항목 %d ì— ìž˜ëª»ëœ ì¸ìˆ˜ìž…니다" #: ../src/dialog.c:127 msgid "Save workspace state" msgstr "작업공간 ìƒíƒœ 저장" #: ../src/dialog.c:421 ../src/dialog.c:482 ../src/dialog.c:991 #: ../src/dock.c:503 ../src/dock.c:598 ../src/dock.c:612 ../src/dock.c:4422 #: ../src/dockedapp.c:348 ../src/rootmenu.c:193 ../src/rootmenu.c:236 msgid "Cancel" msgstr "취소" #: ../src/dialog.c:574 msgid "Could not open directory " msgstr "디렉터리를 ì—´ 수 ì—†ìŒ " #: ../src/dialog.c:624 msgid "Could not load image file " msgstr "ì´ë¯¸ì§€ 파ì¼ì„ ì½ì„ 수 ì—†ìŒ " #: ../src/dialog.c:918 msgid "Directories" msgstr "디렉터리" #: ../src/dialog.c:927 msgid "Icons" msgstr "ì•„ì´ì½˜" #: ../src/dialog.c:960 msgid "Preview" msgstr "미리보기" #: ../src/dialog.c:973 msgid "File Name:" msgstr "íŒŒì¼ ì´ë¦„:" #: ../src/dialog.c:997 msgid "Choose File" msgstr "íŒŒì¼ ì„ íƒ" #: ../src/dialog.c:1016 ../src/dialog.c:1018 msgid "Icon Chooser" msgstr "ì•„ì´ì½˜ ì„ íƒê¸°" #: ../src/dialog.c:1199 msgid "Window Manager for X" msgstr " Xìš© ì°½ 관리ìž" #: ../src/dialog.c:1201 #, c-format msgid "Version %s" msgstr "버전 %s" #: ../src/dialog.c:1222 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "í•´ìƒë„ 0x%x: %s %ibpp 를 사용합니다" #: ../src/dialog.c:1229 msgid "(32 thousand colors)\n" msgstr "(32000 색)\n" #: ../src/dialog.c:1232 msgid "(64 thousand colors)\n" msgstr "(64000 색)\n" #: ../src/dialog.c:1236 msgid "(16 million colors)\n" msgstr "(160000 색)\n" #: ../src/dialog.c:1239 #, c-format msgid "(%d colors)\n" msgstr "(%d 색)\n" #: ../src/dialog.c:1249 #, c-format msgid "Total memory allocated: %i kB (in use: %i kB, %d free chunks).\n" msgstr "ì‚¬ìš©ëœ ì „ì²´ 메모리: %i kB (사용중: %i kB, %d 사용가능).\n" #: ../src/dialog.c:1251 #, c-format msgid "Total memory allocated: %i kB (in use: %i kB).\n" msgstr "ì‚¬ìš©ëœ ì „ì²´ 메모리: %i kB (사용중: %i kB).\n" #: ../src/dialog.c:1269 msgid "Supported image formats: " msgstr "ì§€ì›ë˜ëŠ” ì´ë¯¸ì§€ 형ì‹:" #: ../src/dialog.c:1279 msgid "" "\n" "Additional support for: " msgstr "" "\n" "추가 ì§€ì›:" #: ../src/dialog.c:1285 msgid "(Supported)" msgstr "(ì§€ì›ë¨)" #: ../src/dialog.c:1287 msgid "(Unsupported)" msgstr "(ì§€ì›ë˜ì§€ 않ìŒ)" #: ../src/dialog.c:1295 msgid "\n" msgstr "" #: ../src/dialog.c:1297 msgid "Solaris " msgstr "솔ë¼ë¦¬ìФ" #: ../src/dialog.c:1299 msgid "Xinerama: " msgstr "" #: ../src/dialog.c:1302 #, c-format msgid "%d heads found." msgstr "" #: ../src/dialog.c:1331 msgid "Info" msgstr "ì •ë³´" #: ../src/dialog.c:1407 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" "02110-1301 USA." msgstr "" #: ../src/dialog.c:1431 msgid "Legal" msgstr "법률 사항" #: ../src/dialog.c:1552 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "ë¹„ì •ìƒ ì¢…ë£Œ 대화 패ë„ê³¼ ì—°ê²°ì„ í•˜ì§€ 못했습니다. 종료합니다." #: ../src/dialog.c:1578 msgid "Fatal error" msgstr "ì¹˜ëª…ì  ì˜¤ë¥˜" #: ../src/dialog.c:1588 #, c-format msgid "Window Maker received signal %i." msgstr "윈ë„ìš° ë©”ì´ì»¤ê°€ %i 신호를 ë°›ìŒ." #: ../src/dialog.c:1596 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" "버그로 ì¸í•´ 치명ì ì¸ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. BUGFORMì„ ìž‘ì„±í•˜ì—¬ " "bugs@windowmaker.info로 보내주시길 ë¶€íƒë“œë¦½ë‹ˆë‹¤." #: ../src/dialog.c:1603 msgid "What do you want to do now?" msgstr "지금 ë¬´ì—‡ì„ í•˜ë ¤ 합니까?" #: ../src/dialog.c:1609 msgid "Select action" msgstr "ë™ìž‘ì„ ì„ íƒ" #: ../src/dialog.c:1610 msgid "Abort and leave a core file" msgstr "core 파ì¼ì„ 남기고 종료함" #: ../src/dialog.c:1611 msgid "Restart Window Maker" msgstr "윈ë„ìš° ë©”ì´ì»¤ 재시작" #: ../src/dialog.c:1612 msgid "Start alternate window manager" msgstr "대체용 ì°½ 관리ìžë¥¼ 시작..." #: ../src/dock.c:183 ../src/menu.c:1772 #, c-format msgid "Type the name for workspace %i:" msgstr "작업공간 %iì˜ ì´ë¦„ì„ ìž…ë ¥í•˜ì„¸ìš”:" #: ../src/dock.c:184 ../src/dock.c:1226 ../src/dock.c:1228 ../src/dock.c:3440 #: ../src/menu.c:1776 msgid "Rename Workspace" msgstr "작업공간 ì´ë¦„ 바꿈" #: ../src/dock.c:447 ../src/dock.c:454 ../src/winspector.c:753 msgid "Warning" msgstr "경고" #: ../src/dock.c:448 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "몇몇 ì•„ì´ì½˜ì„ í•­ìƒ ë³´ì´ê²Œ í•  수 없습니다. 다른 작업 ê³µê°„ì˜ ê°™ì€ ìœ„ì¹˜ì— ì•„ì´ì½˜" "ì´ ë„í¬ë˜ì§€ 않았는지 그리고 다른 ìž‘ì—…ê³µê°„ì˜ í´ë¦½ì´ ê°€ë“차지 않았는지 í™•ì¸ í•˜" "시기 ë°”ëžë‹ˆë‹¤." #: ../src/dock.c:455 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "ì•„ì´ì½˜ì„ í•­ìƒ ë³´ì´ê²Œ í•  수 없습니다. 다른 작업 ê³µê°„ì˜ ê°™ì€ ìœ„ì¹˜ì— ì•„ì´ì½˜ì´ ë„" "í¬ë˜ì§€ 않았는지 그리고 다른 ìž‘ì—…ê³µê°„ì˜ í´ë¦½ì´ ê°€ë“차지 않았는지 í™•ì¸ í•˜ì‹œê¸° " "ë°”ëžë‹ˆë‹¤." #: ../src/dock.c:501 ../src/dock.c:596 msgid "Workspace Clip" msgstr "작업공간 í´ë¦½" #: ../src/dock.c:501 ../src/dock.c:610 ../src/dock.c:4420 msgid "Drawer" msgstr "서ëž" #: ../src/dock.c:502 msgid "All selected icons will be removed!" msgstr "ì„ íƒí•œ 모든 ì•„ì´ì½˜ì´ 없어질 것입니다!!" #. can be: Unselect all icons #: ../src/dock.c:541 ../src/dock.c:1240 ../src/dock.c:1242 ../src/dock.c:3478 msgid "Keep Icon" msgstr "ì•„ì´ì½˜ 유지" #: ../src/dock.c:542 ../src/dock.c:2131 ../src/dock.c:2273 msgid "Type the command used to launch the application" msgstr "ì‘ìš©í”„ë¡œê·¸ëž¨ì„ ì‹¤í–‰í•˜ëŠ”ë° í•„ìš”í•œ ëª…ë ¹ì„ ìž…ë ¥í•©ë‹ˆë‹¤" #: ../src/dock.c:597 msgid "The drawer that auto-attracted icons so far won't do so anymore!" msgstr "ì•„ì´ì½˜ì„ ìžë™ìœ¼ë¡œ 담는 서ëžì´ ë”ì´ìƒ ë‹´ì„ ìˆ˜ 없습니다!" #: ../src/dock.c:611 msgid "Any clips that auto-attracted icons so far won't do so anymore!" msgstr "ìžë™ìœ¼ë¡œ ì•„ì´ì½˜ì„ 담는 í´ë¦½ì´ ë” ì´ìƒ ë‹´ì„ ìˆ˜ 없습니다!" #: ../src/dock.c:933 #, c-format msgid "could not launch application %s" msgstr "ì‘용프로그램 %sì„ ì‹¤í–‰í•  수 없습니다" #: ../src/dock.c:983 msgid "could not create workspace submenu for Clip menu" msgstr "í´ë¦½ 메뉴를 위한 작업공간 하부메뉴를 만들 수 없습니다" #: ../src/dock.c:1040 msgid "could not create options submenu for Clip menu" msgstr "í´ë¦½ 메뉴를 위한 옵션 하부메뉴를 만들 수 없습니다" #: ../src/dock.c:1044 ../src/dock.c:1179 msgid "Keep on Top" msgstr "í•­ìƒ ìœ„ë¡œ" #: ../src/dock.c:1049 msgid "Collapsed" msgstr "ì•„ì´ì½˜ 숨김" #: ../src/dock.c:1054 msgid "Autocollapse" msgstr "ìžë™ 축소" #: ../src/dock.c:1059 msgid "Autoraise" msgstr "ìžë™ 올림" #: ../src/dock.c:1064 msgid "Autoattract Icons" msgstr "ì•„ì´ì½˜ ìžë™ 모ìŒ" #: ../src/dock.c:1167 msgid "could not create options submenu for dock position menu" msgstr "ë… ìœ„ì¹˜ 메뉴를 위한 옵션 하부메뉴를 만들 수 없습니다" #: ../src/dock.c:1171 msgid "Normal" msgstr "보통" #: ../src/dock.c:1175 msgid "Auto raise & lower" msgstr "ìžë™ 올림/내림" #: ../src/dock.c:1203 msgid "Dock position" msgstr "ë… ìœ„ì¹˜" #: ../src/dock.c:1209 msgid "Add a drawer" msgstr "ì„œëž ì¶”ê°€í•˜ê¸°" #: ../src/dock.c:1213 msgid "Clip Options" msgstr "í´ë¦½ 옵션" #. if (type == WM_DRAWER) #: ../src/dock.c:1215 msgid "Drawer options" msgstr "ì„œëž ì˜µì…˜" #: ../src/dock.c:1231 msgid "Selected" msgstr "ì„ íƒë¨" #: ../src/dock.c:1236 ../src/dock.c:1238 ../src/dock.c:3468 msgid "Select All Icons" msgstr "모든 ì•„ì´ì½˜ ì„ íƒ" #: ../src/dock.c:1245 ../src/dock.c:1247 ../src/dock.c:3488 msgid "Move Icon To" msgstr "ì•„ì´ì½˜ 옮김" #: ../src/dock.c:1253 ../src/dock.c:1255 ../src/dock.c:3502 msgid "Remove Icon" msgstr "ì•„ì´ì½˜ 없앰" #. can be: Remove Icons #: ../src/dock.c:1257 msgid "Attract Icons" msgstr "ì•„ì´ì½˜ 모ìŒ" #. can be: Unhide #: ../src/dock.c:1268 msgid "Settings..." msgstr "설정..." #: ../src/dock.c:1611 ../src/dock.c:1702 #, c-format msgid "bad value in docked icon state info %s" msgstr "Dock ì•„ì´ì½˜ì˜ ìƒíƒœì •ë³´ì— ìž˜ëª»ëœ ê°’ %s" #: ../src/dock.c:1725 #, c-format msgid "bad value in dock state info:%s" msgstr "ë… ìƒíƒœì •ë³´ì— ìž˜ëª»ëœ ê°’:%s" #: ../src/dock.c:1924 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "Dockì— ë“¤ì–´ê°„ ì•„ì´ì½˜ì´ 너무 ë§ŽìŒ. ë§žì§€ 않는 ê²ƒì€ ë¬´ì‹œí•©ë‹ˆë‹¤" #. icon->forced_dock = 1; #: ../src/dock.c:2130 ../src/dock.c:2272 msgid "Dock Icon" msgstr "ë… ì•„ì´ì½˜" #: ../src/dock.c:3345 #, c-format msgid "Could not execute command \"%s\"" msgstr "\"%s\" ëª…ë ¹ì„ ì‹¤í–‰í•  수 ì—†ìŒ." #: ../src/dock.c:3446 msgid "Toggle Omnipresent" msgstr "í•­ìƒ ë³´ìž„ ì„ íƒ/취소" #: ../src/dock.c:3451 ../src/winmenu.c:406 ../src/winspector.c:1352 msgid "Omnipresent" msgstr "í•­ìƒ ë³´ìž„" #: ../src/dock.c:3466 msgid "Unselect All Icons" msgstr "모든 ì•„ì´ì½˜ ì„ íƒ í•´ì œ" #: ../src/dock.c:3476 msgid "Keep Icons" msgstr "ì•„ì´ì½˜ 유지" #: ../src/dock.c:3486 msgid "Move Icons To" msgstr "ì•„ì´ì½˜ 옮김" #: ../src/dock.c:3500 msgid "Remove Icons" msgstr "ì•„ì´ì½˜ 없앰" #: ../src/dock.c:3530 msgid "Bring Here" msgstr "여기로 가져오기" #: ../src/dock.c:3554 msgid "Remove drawer" msgstr "ì„œëž ì œê±°í•˜ê¸°" #: ../src/dock.c:4421 msgid "All icons in this drawer will be detached!" msgstr "ì´ ì„œëžì— 있는 모든 ì•„ì´ì½˜ì´ ì œê±°ë  ê²ƒìž…ë‹ˆë‹¤." #: ../src/dock.c:4806 msgid "there are too many icons stored in drawer. Ignoring what doesn't fit" msgstr "서ëžì— ì €ìž¥ëœ ì•„ì´ì½˜ì´ 너무 많습니다. ë§žì§€ 않는 ê²ƒì€ ë¬´ì‹œí•©ë‹ˆë‹¤" #: ../src/dockedapp.c:96 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "ë„í‚¹ëœ ì‘ìš©í”„ë¡œê·¸ëž¨ì— ì‚¬ìš©í•  ì•„ì´ì½˜ %sì„ ì°¾ì„ ìˆ˜ ì—†ìŒ" #: ../src/dockedapp.c:169 #, c-format msgid "Could not open specified icon file: %s" msgstr "ì§€ì •ëœ ì•„ì´ì½˜ 파ì¼ì„ ì—´ 수 ì—†ìŒ: %s" #: ../src/dockedapp.c:171 msgid "Ignore" msgstr "무시" #: ../src/dockedapp.c:265 msgid "Start when Window Maker is started" msgstr "윈ë„ìš° ë©”ì´ì»¤ë¥¼ 실행할 때 시작함" #: ../src/dockedapp.c:270 msgid "Lock (prevent accidental removal)" msgstr "잠금 (실수로 없애는 ê²ƒì„ ë§‰ê¸° 위함)" #: ../src/dockedapp.c:274 msgid "Application path and arguments" msgstr "ì‘용프로그램 경로와 ì¸ìˆ˜" #: ../src/dockedapp.c:285 msgid "Command for middle-click launch" msgstr "ê°€ìš´ë° ë²„íŠ¼ì„ ëˆŒëŸ¬ 실행할 명령" #: ../src/dockedapp.c:297 #, c-format msgid "%s will be replaced with current selection" msgstr "%s는 현재 ì„ íƒìœ¼ë¡œ 대체합니다" #: ../src/dockedapp.c:301 msgid "Command for files dropped with DND" msgstr "드래그&드롭으로 ì´ë™ëœ 파ì¼ì— 대한 명령" #: ../src/dockedapp.c:313 #, c-format msgid "%d will be replaced with the file name" msgstr "%d는 íŒŒì¼ ì´ë¦„으로 대체합니다" #: ../src/dockedapp.c:316 msgid "DND support was not compiled in" msgstr "DND ì§€ì›ì€ 다ìŒì—서 ì»´íŒŒì¼ ë˜ì§€ 않았습니다: " #: ../src/dockedapp.c:321 msgid "Icon Image" msgstr "ì•„ì´ì½˜ ì´ë¯¸ì§€" #: ../src/dockedapp.c:332 ../src/winspector.c:1502 msgid "Browse..." msgstr "찾기..." #: ../src/dockedapp.c:390 msgid "Docked Application Settings" msgstr "ë…ëœ ì‘용프로그램 설정" #: ../src/framewin.c:650 ../src/framewin.c:740 ../src/menu.c:415 #: ../src/texture.c:451 #, c-format msgid "could not render texture: %s" msgstr "í…스처를 ë Œë”ë§ í•  수 ì—†ìŒ: %s" #: ../src/framewin.c:673 ../src/framewin.c:683 ../src/framewin.c:699 #: ../src/framewin.c:710 ../src/framewin.c:717 ../src/framewin.c:723 #: ../src/icon.c:308 ../src/menu.c:442 #, c-format msgid "error rendering image:%s" msgstr "ì´ë¯¸ì§€ ë Œë”ë§ ì˜¤ë¥˜:%s" #: ../src/framewin.c:768 #, c-format msgid "error rendering image: %s" msgstr "ì´ë¯¸ì§€ ë Œë”ë§ ì˜¤ë¥˜: %s" #: ../src/main.c:301 msgid "failed to restart Window Maker." msgstr "윈ë„ìš° ë©”ì´ì»¤ 재시작 실패." #: ../src/main.c:304 #, c-format msgid "could not exec %s" msgstr "%s를 실행할 수 ì—†ìŒ" #: ../src/main.c:342 msgid "Could not execute command: " msgstr "ë‹¤ìŒ ëª…ë ¹ì„ ì‹¤í–‰í•  수 ì—†ìŒ:" #: ../src/main.c:477 #, c-format msgid "%s aborted.\n" msgstr "%s는 중단ë˜ì—ˆìŠµë‹ˆë‹¤.\n" #: ../src/main.c:486 #, c-format msgid "Usage: %s [options]\n" msgstr "사용법: %s [옵션]\n" #: ../src/main.c:487 msgid "The Window Maker window manager for the X window system" msgstr "X ìœˆë„ ì‹œìŠ¤í…œìš© 윈ë„ìš° ë©”ì´ì»¤ ì°½ 관리ìž" #: ../src/main.c:489 msgid " -display host:dpy\tdisplay to use" msgstr " -display 호스트:디스플레ì´\t사용할 디스플레ì´" #: ../src/main.c:490 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tì‘용프로그램 ë…ì„ ì—´ì§€ 않ìŒ" #: ../src/main.c:491 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\t작업공간 í´ë¦½ì„ ì—´ì§€ 않ìŒ" #: ../src/main.c:492 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tì‘ìš©í”„ë¡œê·¸ëž¨ì„ ìžë™ 실행하지 않ìŒ" #: ../src/main.c:493 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tì €ìž¥ëœ ì„¸ì…˜ì„ ë³µêµ¬í•˜ì§€ 않습니다" #: ../src/main.c:495 msgid " --locale locale\tlocale to use" msgstr " --locale 로케ì¼\t사용할 로케ì¼" #: ../src/main.c:497 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id 비주얼ID\t사용할 ë¹„ì£¼ì–¼ì˜ ë¹„ì£¼ì–¼ ID" #: ../src/main.c:498 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tì„¤ì •ì„ ê°±ì‹ í•˜ê±°ë‚˜ 저장하지 않는다" #: ../src/main.c:500 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr " --no-polling\t\t설정 ê°±ì‹ ì„ ì£¼ê¸°ì ìœ¼ë¡œ ì ê²€í•˜ì§€ 않는다" #: ../src/main.c:502 msgid " --version\t\tprint version and exit" msgstr " --version\t\të²„ì „ì„ í‘œì‹œí•˜ê³  종료" #: ../src/main.c:503 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tì´ í™”ë©´ì„ ë³´ì—¬ì¤Œ" #: ../src/main.c:513 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "ì‚¬ìš©ìž GNUstep 디렉터리 (%s)를 ì°¾ì„ ìˆ˜ 없습니다." #: ../src/main.c:516 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "GNUstep 디렉터리를 ë§Œë“œëŠ”ë° ì˜¤ë¥˜ê°€ 있습니다, 윈ë„ìš° ë©”ì´ì»¤ê°€ 제대로 설치ë˜ì—ˆ" "는지 확ì¸í•˜ê³  wmaker.inst를 실행합니다" #: ../src/main.c:519 #, c-format msgid "%s directory created with default configuration." msgstr "%s 디렉터리는 기본 설정으로 만들어졌습니다." #: ../src/main.c:537 msgid "" "could not initialise an inotify instance. Changes to the defaults database " "will require a restart to take effect. Check your kernel!" msgstr "" "inotify를 초기화하지 못했습니다. 기본 ë°ì´í„°ë² ì´ìŠ¤ë¡œ 바꾸면 다시 시작해야 í•©" "니다. 커ë„ì„ ì ê²€í•˜ê¸° 바합니다!" #: ../src/main.c:548 #, c-format msgid "" "could not add an inotify watch on path %s.Changes to the defaults database " "will require a restart to take effect." msgstr "" "경로 %sì— inotify ê°ì‹œë¥¼ 추가하지 못했습니다. 기본 ë°ì´í„°ë² ì´ìŠ¤ë¡œ 바꾸면 다" "시 시작할 필요가 있습니다." #: ../src/main.c:570 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:초기화 스í¬ë¦½íŠ¸ë¥¼ 실행할 수 없습니다." #: ../src/main.c:588 #, c-format msgid "%s:could not execute exit script" msgstr "%s:종료 스í¬ë¦½íŠ¸ë¥¼ 실행할 수 없습니다." #: ../src/main.c:626 ../src/main.c:703 ../src/main.c:710 ../src/main.c:717 #, c-format msgid "too few arguments for %s" msgstr "%s를 위한 ì¸ìžê°€ 부족합니다" #: ../src/main.c:675 #, c-format msgid "option \"%s\" is deprecated, please remove it from your script" msgstr " \"%s\" ì˜µì…˜ì€ í기ë˜ì—ˆìŠµë‹ˆë‹¤. 스í¬ë¦½íЏì—서 제거하기 ë°”ëžë‹ˆë‹¤." #: ../src/main.c:721 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "비주얼 IDì— ìž˜ëª»ëœ ê°’: \"%s\"" #: ../src/main.c:734 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: ìž˜ëª»ëœ ì¸ìž '%s'\n" #: ../src/main.c:735 #, c-format msgid "Try '%s --help' for more information\n" msgstr "ë” ë§Žì€ ì •ë³´ë¥¼ ì›í•˜ì‹œë©´ '%s --help' 하시기 ë°”ëžë‹ˆë‹¤.\n" #: ../src/main.c:778 msgid "X server does not support locale" msgstr "X 서버가 로케ì¼ì„ ì§€ì›í•˜ì§€ 않습니다" #: ../src/main.c:782 msgid "cannot set locale modifiers" msgstr "ë¡œì¼€ì¼ ìˆ˜ì •ìž(modifier)를 설정할 수 ì—†ìŒ" #: ../src/main.c:798 #, c-format msgid "could not open display \"%s\"" msgstr "\"%s\" 디스플레ì´ë¥¼ ì—´ì§€ 못함." #: ../src/menu.c:2345 #, c-format msgid "bad value in menus state info: %s" msgstr "메뉴 ìƒíƒœ ì •ë³´ì— ìž˜ëª»ëœ ê°’: %s" #: ../src/misc.c:476 ../src/misc.c:481 msgid "Program Arguments" msgstr "프로그램 ì¸ìˆ˜" #: ../src/misc.c:477 ../src/misc.c:482 msgid "Enter command arguments:" msgstr "명령어 ì¸ìˆ˜ë¥¼ 입력하세요:" #: ../src/misc.c:526 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "\"%s\" 확장 중 메모리 부족" #: ../src/misc.c:579 #, c-format msgid "out of memory during expansion of \"%%w\"" msgstr "\"%%w\" 확장 중 메모리 부족" #: ../src/misc.c:596 #, c-format msgid "out of memory during expansion of \"%%W\"" msgstr "\"%%W\" 확장 중 메모리 부족" #: ../src/misc.c:613 #, c-format msgid "out of memory during expansion of \"%%a\"" msgstr "\"%%a\" 확장 중 메모리 부족" #: ../src/misc.c:642 #, c-format msgid "out of memory during expansion of \"%%d\"" msgstr "\"%%d\" 확장 중 메모리 부족" #: ../src/misc.c:656 msgid "selection not available" msgstr "ì„ íƒ ë¶ˆê°€ëŠ¥" #: ../src/misc.c:663 #, c-format msgid "out of memory during expansion of \"%%s\"" msgstr "\"%%s\" 확장 중 메모리 부족" #: ../src/misc.c:698 ../src/misc.c:704 #, c-format msgid "bad window name value in %s state info" msgstr "ìƒíƒœ ì •ë³´ %sì˜ ì°½ ì´ë¦„ì´ ìž˜ëª»ë¨" #: ../src/misc.c:951 msgid "could not send message to background image helper" msgstr "ë°°ê²½ ì´ë¯¸ì§€ \"%s\" 를 ì°¾ì„ ìˆ˜ 없습니다" #: ../src/resources.c:41 #, c-format msgid "could not parse color \"%s\"" msgstr "\"%s\" 색ìƒì„ í•´ì„í•  수 없습니다" #: ../src/resources.c:45 #, c-format msgid "could not allocate color \"%s\"" msgstr "\"%s\" 색ìƒì„ 할당할 수 ì—†ìŒ" #: ../src/rootmenu.c:192 ../src/rootmenu.c:193 msgid "Exit" msgstr "종료" #: ../src/rootmenu.c:193 msgid "Exit window manager?" msgstr "ì°½ 관리ìžë¥¼ 종료하시겠습니까?" #: ../src/rootmenu.c:234 msgid "Kill X session" msgstr "X 세션 종료" #: ../src/rootmenu.c:235 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "윈ë„ìš° 시스템 ì„¸ì…˜ì„ ì¢…ë£Œí•©ë‹ˆê¹Œ?\n" "(모든 ì‘ìš©í”„ë¡œê·¸ëž¨ì´ ì¢…ë£Œë©ë‹ˆë‹¤)" #: ../src/rootmenu.c:458 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:ìž˜ëª»ëœ í‚¤ë³´ë“œ 단축키 지정 \"%s\" (%s 항목)" #: ../src/rootmenu.c:466 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:단축키 \"%s\"ì— ìž˜ëª»ëœ í‚¤ (%s 항목)" #: ../src/rootmenu.c:500 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: 메뉴 파ì¼ì˜ '\"' ì§ì´ ë§žì§€ 않ìŒ" #: ../src/rootmenu.c:549 #, c-format msgid "%s: missing command" msgstr "%s: 명령어가 ì—†ìŒ" #: ../src/rootmenu.c:604 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "OPEN_MENU ì§€ì •ì´ ìž˜ëª»ë¨: %s" #: ../src/rootmenu.c:661 #, c-format msgid "%s:could not stat menu" msgstr "%s:메뉴 파ì¼ì— 접근할 수 ì—†ìŒ" #: ../src/rootmenu.c:669 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:메뉴 파ì¼ì— 접근할 수 ì—†ìŒ:%s" #: ../src/rootmenu.c:685 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "OPEN_MENUì— ì¸ìˆ˜ê°€ 너무 ë§ŽìŒ: %s" #: ../src/rootmenu.c:723 #, c-format msgid "invalid OPEN_PLMENU specification: %s" msgstr "OPEN_PLMENU ì§€ì •ì´ ìž˜ëª»ë¨: %s" #: ../src/rootmenu.c:774 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "ì‘용프로그램 ë©”ë‰´ì— WORKSPACE_MENU ëª…ë ¹ì´ ë‘˜ ì´ìƒ 있습니다. 하나만 있어야 í•©" "니다. " #: ../src/rootmenu.c:805 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "ì‘용프로그램 ë©”ë‰´ì— WINDOWS_MENU ëª…ë ¹ì´ ë‘˜ ì´ìƒ 있습니다. 하나만 있어야 합니" "다. " #: ../src/rootmenu.c:810 msgid "Window List" msgstr "ì°½ 목ë¡" #: ../src/rootmenu.c:837 ../src/rootmenu.c:854 ../src/rootmenu.c:871 #: ../src/rootmenu.c:879 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:메뉴 명령어 \"%s\" ì˜ ì¸ìˆ˜ê°€ 빠졌ìŒ" #: ../src/rootmenu.c:943 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:메뉴 ì„¤ì •ì˜ \"%s\" ëª…ë ¹ì„ ì•Œ 수 ì—†ìŒ." #: ../src/rootmenu.c:950 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:\"%s\" í•­ëª©ì— ë¹¨ë¦¬ê°€ê¸°ë¥¼ 추가할 수 ì—†ìŒ" #: ../src/rootmenu.c:982 ../src/rootmenu.c:1034 ../src/rootmenu.c:1123 msgid "missing command in menu config" msgstr "메뉴 설정ì—서 ëª…ë ¹ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ" #: ../src/rootmenu.c:1010 msgid "syntax error in menu file: END declaration missing" msgstr "메뉴 파ì¼ì—서 문법 오류: END ì„ ì–¸ ì—†ìŒ" #: ../src/rootmenu.c:1025 ../src/rootmenu.c:1114 #, c-format msgid "%s:could not open menu file" msgstr "%s:메뉴 파ì¼ì„ ì—´ 수 ì—†ìŒ" #: ../src/rootmenu.c:1048 msgid "invalid menu file, MENU command is missing" msgstr "ìž˜ëª»ëœ ë©”ë‰´ 파ì¼. MENU ëª…ë ¹ì´ ë¹ ì¡ŒìŠµë‹ˆë‹¤" #: ../src/rootmenu.c:1137 msgid "no title given for the root menu" msgstr "최ìƒìœ„ ë©”ë‰´ì— ì œëª©ì´ ì—†ìŠµë‹ˆë‹¤" #: ../src/rootmenu.c:1250 ../src/rootmenu.c:1322 ../src/rootmenu.c:1361 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "디렉터리 메뉴 %s ìƒì„± 중 메모리 부족" #: ../src/rootmenu.c:1259 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s: 메뉴 ë””ë ‰í„°ë¦¬ì˜ íŒŒì¼ \"%s\"ì— ì ‘ê·¼í•  수 ì—†ìŒ" #: ../src/rootmenu.c:1411 msgid "Commands" msgstr "명령어" #: ../src/rootmenu.c:1414 msgid "Restart" msgstr "재시작" #: ../src/rootmenu.c:1415 msgid "Exit..." msgstr "종료..." #: ../src/rootmenu.c:1454 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "WMRootMenuì—서 참조하는 메뉴 íŒŒì¼ \"%s\"를 ì°¾ì„ ìˆ˜ 없습니다" #: ../src/rootmenu.c:1460 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "WMRootMenuì—서 참조하는 메뉴 \"%s\"ì— ì ‘ê·¼í•  수 없습니다" #: ../src/rootmenu.c:1472 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "WMRootMenuì—서 참조하는 메뉴 파ì¼ì„ ì°¾ì„ ìˆ˜ 없으므로 \"%s\"를 기본 메뉴 파ì¼" "로 사용합니다" #: ../src/rootmenu.c:1495 ../src/rootmenu.c:1569 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:최ìƒìœ„ 메뉴 설정 \"%s\"ì˜ í˜•ì‹ ì˜¤ë¥˜" #: ../src/rootmenu.c:1646 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "ì‘용프로그램 메뉴를 ì½ì„ 수 ì—†ìŒ. 콘솔로 출력ë˜ëŠ” ìžì„¸í•œ 오류 메세지를 참고하" "십시오." #: ../src/screen.c:423 #, c-format msgid "could not load logo image for panels: %s" msgstr "패ë„ì— ì“°ì¼ ë¡œê³  ì´ë¯¸ì§€ë¥¼ ì½ì§€ 못함: %s" #: ../src/screen.c:606 #, c-format msgid "could not initialize graphics library context: %s" msgstr "그래픽 ë¼ì´ë¸ŒëŸ¬ë¦¬ í™˜ê²½ì„ ì´ˆê¸°í™” 할수 ì—†ìŒ: %s" #: ../src/screen.c:632 msgid "could not initialize WINGs widget set" msgstr "WINGs 위젯 모ìŒì„ 초기화 í•  수 없습니다" #: ../src/screen.c:944 #, c-format msgid "could not save session state in %s" msgstr "%sì˜ ì„¸ì…˜ ìƒíƒœë¥¼ 저장하지 못함" #: ../src/session.c:152 ../src/wdefaults.c:654 ../src/winspector.c:393 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "\"%s\"를 부울 값으로 바꿀 수 ì—†ìŒ" #: ../src/stacking.c:74 msgid "could not get window list!!" msgstr "ì°½ 목ë¡ë¥¼ ì–»ì„ ìˆ˜ 없습니다!!" #: ../src/startup.c:175 #, c-format msgid "internal X error: %s" msgstr "X ë‚´ë¶€ ì—러: %s" #: ../src/startup.c:644 ../src/startup.c:660 ../src/startup.c:666 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "기본 ë°ì´í„°ë² ì´ìФì—서 ë„ë©”ì¸ \"%s\"를 ì½ì„ 수 없습니다" #: ../src/startup.c:652 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16 instead" msgstr "ì•„ì´ì½˜ í¬ê¸°ê°€ %i로 지정ë˜ì—ˆì§€ë§Œ 너무 작아 16으로 대신합니다" #: ../src/startup.c:682 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "XKB를 ì§€ì›í•˜ì§€ 않습니다. KbdModeLockì´ ìžë™ìœ¼ë¡œ 사용 중지ë˜ì—ˆìŠµë‹ˆë‹¤." #: ../src/startup.c:701 msgid "it seems that there is already a window manager running" msgstr "ì´ë¯¸ 다른 ì°½ 관리ìžê°€ ë™ìž‘하고 있는 것 같습니다" #: ../src/startup.c:707 #, c-format msgid "could not manage screen %i" msgstr "화면 %i를 제어할 수 ì—†ìŒ" #: ../src/startup.c:771 msgid "could not manage any screen" msgstr "모든 í™”ë©´ì„ ì œì–´í•  수 ì—†ìŒ" #: ../src/switchmenu.c:135 msgid "Windows" msgstr "ì°½" #: ../src/texture.c:328 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "í…스처로 사용하는 ì´ë¯¸ì§€ íŒŒì¼ \"%s\"ì„ ì°¾ì„ ìˆ˜ 없습니다." #: ../src/texture.c:333 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "í…스처 픽스맵 \"%s\"ì„ ì—´ 수가 ì—†ìŒ: %s" #: ../src/texture.c:455 msgid "could not allocate image buffer" msgstr "ì´ë¯¸ì§€ 버í¼ë¥¼ 할당할 수 ì—†ìŒ" #: ../src/wdefaults.c:404 #, c-format msgid "icon \"%s\" doesn't exist, check your config files" msgstr " \"%s\" ì•„ì´ì½˜ì´ 없습니다. 설정 파ì¼ì„ ì ê²€í•˜ê¸° ë°”ëžë‹ˆë‹¤" #: ../src/wdefaults.c:431 #, c-format msgid "error loading image file \"%s\": %s" msgstr "ì´ë¯¸ì§€ íŒŒì¼ \"%s\"를 ì½ëŠ” 중 오류: %s" #: ../src/wdefaults.c:467 #, c-format msgid "could not find default icon \"%s\"" msgstr "기본 ì•„ì´ì½˜ \"%s\"를 찾지 못함" #: ../src/window.c:2692 ../src/window.c:2848 msgid "" "The NumLock, ScrollLock or similar key seems to be turned on. Turn it off or " "some mouse actions and keyboard shortcuts will not work." msgstr "" "NumLock, ScrollLock ì´ë‚˜ 다른 비슷한 ì¢…ë¥˜ì˜ í‚¤ê°€ 켜져 있는 것 같습니다.ë„ì§€ " "않으면 ì¼ë¶€ 마우스 ë™ìž‘ì´ë‚˜ 키보드 단축키가 ë™ìž‘하지 않습니다." #: ../src/winmenu.c:125 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "ì‘ìš©í”„ë¡œê·¸ëž¨ì„ ê°•ì œ 종료합니다.\n" "저장하지 ì•Šì€ ë³€ê²½ ì‚¬í•­ì€ ìžƒê²Œ\n" "ë©ë‹ˆë‹¤. ê³„ì† í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: ../src/winmenu.c:271 ../src/winmenu.c:280 msgid "Set Shortcut" msgstr "단축키 ì„ íƒ" #: ../src/winmenu.c:354 ../src/winmenu.c:394 msgid "could not create submenu for window menu" msgstr "ì°½ 메뉴를 위한 하부메뉴를 만들 수 없습니다" #: ../src/winmenu.c:398 msgid "Keep on top" msgstr "í•­ìƒ ìœ„ë¡œ" #: ../src/winmenu.c:402 msgid "Keep at bottom" 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:424 ../src/winmenu.c:522 msgid "Maximize" msgstr "최대화" #: ../src/winmenu.c:427 ../src/winmenu.c:506 msgid "Miniaturize" msgstr "최소화" #: ../src/winmenu.c:430 ../src/winmenu.c:540 msgid "Shade" msgstr "가림" #: ../src/winmenu.c:436 msgid "Resize/Move" msgstr "í¬ê¸° ì¡°ì ˆ/ì´ë™" #: ../src/winmenu.c:439 ../src/winmenu.c:557 msgid "Select" msgstr "ì„ íƒ" #: ../src/winmenu.c:442 msgid "Move To" msgstr "ì´ë™" #: ../src/winmenu.c:447 msgid "Attributes..." msgstr "ì†ì„± 설정..." #: ../src/winmenu.c:449 msgid "Options" msgstr "옵션" #: ../src/winmenu.c:460 msgid "Close" msgstr "닫기" #: ../src/winmenu.c:500 msgid "Deminiaturize" msgstr "보통í¬ê¸°" #: ../src/winmenu.c:516 msgid "Unmaximize" msgstr "보통í¬ê¸°" #: ../src/winmenu.c:534 msgid "Unshade" msgstr "ë³´ìž„" #: ../src/winmenu.c:551 msgid "Deselect" msgstr "ì„ íƒì œê±°" #: ../src/winspector.c:340 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "ì´ ì°½ì— ì§€ì •ëœ ì•„ì´ì½˜ \"%s\"ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ" #: ../src/winspector.c:355 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "ì§€ì •ëœ ì•„ì´ì½˜ \"%s\"ì„ ì—´ 수 ì—†ìŒ:%s" #: ../src/winspector.c:752 #, c-format msgid "" "Ignore client supplied icon is set, but icon filename textbox is empty. " "Using client supplied icon" msgstr "" "í´ë¼ì´ì–¸íЏ 제공 ì•„ì´ì½˜ì„ 무시하ë„ë¡ ì„¤ì •ë˜ì—ˆì§€ë§Œ, ì•„ì´ì½˜ íŒŒì¼ ì´ë¦„ 글ìžì°½ì´ " "비었습니다. í´ë¼ì´ì–¸íЏ 제공 ì•„ì´ì½˜ì„ 사용합니다" #: ../src/winspector.c:1003 #, c-format msgid "Inspecting %s.%s" msgstr " %s.%s 검사중" #: ../src/winspector.c:1026 msgid "Click in the window you wish to inspect." msgstr "ì„ íƒí•  ì°½ì„ í´ë¦­í•˜ì‹­ì‹œì˜¤." #: ../src/winspector.c:1050 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "ì„¤ì •ì„ ì €ìž¥í•˜ë©´ WM_CLASS ì†ì„±ê°’ì´\n" "위ì—서 ì„ íƒí•œ ì´ë¦„으로 ë˜ì–´ 있는\n" "모든 ì°½ì— ê·¸ ì„¤ì •ì´ ì ìš©ë©ë‹ˆë‹¤." #: ../src/winspector.c:1070 msgid "Save" msgstr "저장" #: ../src/winspector.c:1078 msgid "Apply" msgstr "ì ìš©" #: ../src/winspector.c:1084 msgid "Reload" msgstr "다시ì½ê¸°" #: ../src/winspector.c:1093 ../src/winspector.c:1103 msgid "Window Specification" msgstr "ì°½ ì„ íƒ" #: ../src/winspector.c:1094 msgid "Window Attributes" msgstr "ì°½ ì†ì„±" #: ../src/winspector.c:1095 msgid "Advanced Options" msgstr "고급 옵션" #: ../src/winspector.c:1096 msgid "Icon and Initial Workspace" msgstr "ì•„ì´ì½˜ê³¼ 초기 작업공간" #: ../src/winspector.c:1097 msgid "Application Specific" msgstr "ì‘ìš©í”„ë¡œê·¸ëž¨ì— ë”°ë¼ ë‹¤ë¥¸ 설정" #: ../src/winspector.c:1110 msgid "Defaults for all windows" msgstr "모든 ì°½ì˜ ê¸°ë³¸ê°’ìœ¼ë¡œ" #: ../src/winspector.c:1161 msgid "Select window" msgstr "ì°½ ì„ íƒ" #: ../src/winspector.c:1307 msgid "Attributes" msgstr "ì†ì„±" #: ../src/winspector.c:1314 msgid "Disable titlebar" msgstr "타ì´í‹€ë°” 사용안함" #: ../src/winspector.c:1316 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "ì´ ì°½ì—서 타ì´í‹€ë°”를 사용하지 않습니다.\n" "ì´ ë•Œ ì°½ 명령 메뉴를 불러오려면 Control+Esc\n" "(ë˜ëŠ” ì„¤ì •ëœ ë‹¨ì¶•í‚¤ë¥¼)를 ì´ìš©í•  수 있습니다." #: ../src/winspector.c:1322 msgid "Disable resizebar" msgstr "í¬ê¸°ì¡°ì • ë°” 없앰" #: ../src/winspector.c:1324 msgid "Remove the resizebar of this window." msgstr "ì´ ì°½ì—서 í¬ê¸°ì¡°ì • 바를 사용하지 않습니다." #: ../src/winspector.c:1327 msgid "Disable close button" msgstr "닫기 버튼 없앰" #: ../src/winspector.c:1329 msgid "Remove the `close window' button of this window." msgstr "ì´ ì°½ì—서 `ì°½ 닫기' ë²„íŠ¼ì„ ì‚¬ìš©í•˜ì§€ 않습니다." #: ../src/winspector.c:1332 msgid "Disable miniaturize button" msgstr "최소화 버튼 없앰" #: ../src/winspector.c:1334 msgid "Remove the `miniaturize window' button of the window." msgstr "ì´ ì°½ì—서 `ì°½ 최소화' ë²„íŠ¼ì„ ì‚¬ìš©í•˜ì§€ 않습니다." #: ../src/winspector.c:1337 msgid "Disable border" msgstr "í…Œë‘리 없앰" #: ../src/winspector.c:1339 msgid "Remove the 1 pixel black border around the window." msgstr "ì°½ ì£¼ìœ„ì˜ 1 픽셀짜리 ê²€ì€ í…Œë‘리를 사용하지 않습니다." #: ../src/winspector.c:1342 msgid "Keep on top (floating)" msgstr "í•­ìƒ ìœ„ë¡œ (떠다님)" #: ../src/winspector.c:1344 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "ì´ ì°½ì´ í•­ìƒ ë‹¤ë¥¸ ì°½ì˜ ìœ„ë¡œ 오ë„ë¡ í•©ë‹ˆë‹¤." #: ../src/winspector.c:1347 msgid "Keep at bottom (sunken)" msgstr "í•­ìƒ ì•„ëž˜ë¡œ (ê°€ë¼ì•‰ìŒ)" #: ../src/winspector.c:1349 msgid "Keep the window under all other windows." msgstr "ì´ ì°½ì´ ë‹¤ë¥¸ 모든 ì°½ì˜ ì•„ëž˜ë¡œ ê°€ë„ë¡ í•©ë‹ˆë‹¤." #: ../src/winspector.c:1354 msgid "Make window present in all workspaces." msgstr "모든 작업공간ì—서 ì°½ì´ ë³´ì´ë„ë¡ í•©ë‹ˆë‹¤." #: ../src/winspector.c:1357 msgid "Start miniaturized" msgstr "최소화하여 실행" #: ../src/winspector.c:1359 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "ìžë™ìœ¼ë¡œ 최소화ë˜ì–´ 실행ë˜ë„ë¡ í•©ë‹ˆë‹¤." #: ../src/winspector.c:1362 msgid "Start maximized" msgstr "최대화하여 실행" #: ../src/winspector.c:1364 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "ìžë™ìœ¼ë¡œ 최대화ë˜ì–´ 실행ë˜ë„ë¡ í•©ë‹ˆë‹¤." #: ../src/winspector.c:1367 msgid "Full screen maximization" msgstr "ì „ì²´ 화면 최대화" #: ../src/winspector.c:1369 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "ì°½ì„ í™”ë©´ì— ë“¤ì–´ê°ˆ 수 있는 ìµœëŒ€ì˜ í¬ê¸°ë¡œ 만듭니다.\n" "타ì´í‹€ë°”와 í¬ê¸°ì¡°ì •바는 í™”ë©´ì˜ ë°–ì— ìœ„ì¹˜í•˜ê²Œ ë©ë‹ˆë‹¤." #: ../src/winspector.c:1391 msgid "Advanced" msgstr "고급 항목" #: ../src/winspector.c:1398 msgid "Do not bind keyboard shortcuts" msgstr "키보드 단축키 ì—°ê²° 안함" #: ../src/winspector.c:1400 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "ì´ ì°½ì´ í™œì„±í™”ë˜ì–´ ìžˆì„ ë•Œ 윈ë„ìš° ë©”ì´ì»¤ 키보드\n" "ë‹¨ì¶•í‚¤ì— ë°˜ì‘하지 않게 합니다. ì´ëŸ¼ìœ¼ë¡œì¨ 단축키\n" "설정과 무관하게 ê·¸ ì°½ì´ ëª¨ë“  키 ì¡°í•©ì„ ë°›ì•„ë“¤ì¼\n" "있게 ë©ë‹ˆë‹¤." #: ../src/winspector.c:1406 msgid "Do not bind mouse clicks" msgstr "마우스 í´ë¦­ ì—°ê²° 안함" #: ../src/winspector.c:1408 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you have\n" "configured)." msgstr "" "ì°½ì— ëŒ€ê³  `Alt'+ëŒê¸°(마우스 수정ìžë¥¼ `Alt'로 설정했ì„\n" "때)ê°™ì€ ë§ˆìš°ìŠ¤ ë™ìž‘ì— ë°˜ì‘하지 않ë„ë¡ í•©ë‹ˆë‹¤." #: ../src/winspector.c:1412 msgid "Do not show in the window list" msgstr "ì°½ ëª©ë¡ ì— ë‚˜ì˜¤ì§€ 않게 함" #: ../src/winspector.c:1414 msgid "Do not list the window in the window list menu." msgstr "ì´ ì°½ì´ ì°½ ëª©ë¡ ë©”ë‰´ì— ë‚˜ì˜¤ì§€ 않게 합니다." #: ../src/winspector.c:1417 msgid "Do not show in the switch panel" msgstr "전환 패ë„ì— ë‚˜ì˜¤ì§€ 않게 함" #: ../src/winspector.c:1419 msgid "Do not include in switchpanel while alternating windows." msgstr "ì°½ì„ ë„˜ê¸¸ 때 스위치패ë„ì„ í¬í•¨í•˜ì§€ 않는다." #: ../src/winspector.c:1422 msgid "Do not let it take focus" msgstr "활성화 안ë˜ê²Œ 함" #: ../src/winspector.c:1424 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "ì°½ì„ í´ë¦­í•´ë„ 키보드 활성화가 ë˜ì§€ 않ë„ë½ í•©ë‹ˆë‹¤." #: ../src/winspector.c:1427 msgid "Keep inside screen" msgstr "í•­ìƒ í™”ë©´ ì•ˆì— ìœ„ì¹˜" #: ../src/winspector.c:1429 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "ì°½ì´ í™”ë©´ 밖으로 나가지 못하ë„ë¡ í•©ë‹ˆë‹¤.\n" "버그가 있는 프로그램들ì—서 사용할 수 있겠지요.\n" #: ../src/winspector.c:1433 msgid "Ignore 'Hide Others'" msgstr "'다른 것들 숨김'ì„ ë¬´ì‹œí•¨" #: ../src/winspector.c:1435 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "ì´ ì°½ì´ `다른 것들 숨김' ëª…ë ¹ì´ ë‚´ë ¤ì ¸ë„\n" "숨겨지지 않ë„ë¡ í•©ë‹ˆë‹¤." #: ../src/winspector.c:1438 msgid "Ignore 'Save Session'" msgstr "'세션 저장'ì„ ë¬´ì‹œí•¨" #: ../src/winspector.c:1440 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "윈ë„ìš° ë©”ì´ì»¤ê°€ 시작할 때 다른 ì‘용프로그램과 함께\n" "재시작ë˜ê²Œ 하지 않기 위해서 ì‘ìš©í”„ë¡œê·¸ëž¨ì˜ ì„¸ì…˜\n" "ìƒíƒœë¥¼ 저장하지 않습니다." #: ../src/winspector.c:1445 msgid "Emulate application icon" msgstr "ì‘용프로그램 ì•„ì´ì½˜ í‰ë‚´ë‚´ê¸°" #: ../src/winspector.c:1447 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "ì´ ì°½ì´, ë…ì— ë†“ì„ ìˆ˜ 있는 ì‘용프로그램 ì•„ì´ì½˜ì´\n" "ìƒì„±ë˜ë„ë¡ ìœˆë„ìš° ë©”ì´ì»¤ì— 충분한 정보를 제공하는\n" "ì‘용프로그램으로 ë™ìž‘하게 한다." #: ../src/winspector.c:1452 msgid "Focus across workspaces" msgstr "ìž‘ì—…ê³µê°„ì„ ê°€ë¡œì§ˆëŸ¬ 활성화" #: ../src/winspector.c:1454 msgid "" "Allow Window Maker to switch workspace to satisfy\n" "a focus request (annoying)." msgstr "윈ë„ìš° ë©”ì´ì»¤ê°€ í¬ì»¤ìФ ìš”êµ¬ì— ë§žì¶”ì–´ 작업공간 바꾸기(성가심)" #: ../src/winspector.c:1458 msgid "Do not let it be minimized" msgstr "최소화 막기" #: ../src/winspector.c:1460 msgid "" "Do not let the window of this application be\n" "minimized.\n" msgstr "ì´ ì‘ìš©í”„ë¡œê·¸ëž¨ì˜ ì°½ì´ ìµœì†Œí™”ë˜ì§€ 않게 합니다.\n" #: ../src/winspector.c:1465 msgid "Disable language button" msgstr "언어 버튼 사용않기" #: ../src/winspector.c:1467 msgid "Remove the `toggle language' button of the window." msgstr "ì´ ì°½ì—서 `언어 ì„ íƒ' ë²„íŠ¼ì„ ì‚¬ìš©í•˜ì§€ 않습니다." #: ../src/winspector.c:1490 msgid "Miniwindow Image" msgstr "ì•„ì´ì½˜ ì´ë¯¸ì§€" #: ../src/winspector.c:1507 msgid "Icon filename:" msgstr "ì•„ì´ì½˜ íŒŒì¼ ì´ë¦„:" #: ../src/winspector.c:1518 msgid "Ignore client supplied icon" msgstr "í´ë¼ì´ì–¸íЏ 제공 ì•„ì´ì½˜ 무시함" #: ../src/winspector.c:1524 msgid "Initial Workspace" msgstr "초기 작업공간" #: ../src/winspector.c:1526 msgid "The workspace to place the window when it'sfirst shown." msgstr "ì´ ì°½ì„ ì²˜ìŒìœ¼ë¡œ 표시할 ìž‘ì—…ê³µê°„ì„ ì§€ì •í•©ë‹ˆë‹¤." #: ../src/winspector.c:1532 msgid "Nowhere in particular" msgstr "특별한 설정 ì—†ìŒ" #: ../src/winspector.c:1555 msgid "Application Attributes" msgstr "ì‘용프로그램 ì†ì„±" #: ../src/winspector.c:1562 msgid "Start hidden" msgstr "숨긴 채 실행" #: ../src/winspector.c:1564 msgid "Automatically hide application when it's started." msgstr "ìžë™ìœ¼ë¡œ 숨겨진 채 ì‘ìš©í”„ë¡œê·¸ëž¨ì´ ì‹¤í–‰ë˜ê²Œ 합니다." #: ../src/winspector.c:1567 msgid "No application icon" msgstr "ì‘용프로그램 ì•„ì´ì½˜ ì—†ìŒ" #: ../src/winspector.c:1569 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "ì‘용프로그램 ì•„ì´ì½˜ì„ 사용하지 않게 합니다.\n" "ì´ë¥¼ 사용하게 ë˜ë©´ ì´ë¯¸ ë…ì— ë“¤ì–´ê°€ 있는\n" "ì‘용프로그램 ì•„ì´ì½˜ì´ 제대로 ìž‘ë™í•˜ì§€ 않ì„\n" "수 있습니다." #: ../src/winspector.c:1575 msgid "Shared application icon" msgstr "ì‘용프로그램 ì•„ì´ì½˜ 공유" #: ../src/winspector.c:1577 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "ì´ ì‘ìš©í”„ë¡œê·¸ëž¨ì˜ ëª¨ë“  ì¸ìŠ¤í„´ìŠ¤ì—\n" "ê°™ì€ ì•„ì´ì½˜ì„ 사용합니다.\n" #: ../src/workspace.c:101 ../src/workspace.c:102 ../src/workspace.c:682 #, c-format msgid "Workspace %i" msgstr "작업공간 %i" #: ../src/workspace.c:728 msgid "Workspaces" msgstr "작업공간" #: ../src/workspace.c:730 msgid "could not create Workspace menu" msgstr "작업공간 메뉴를 만들수 ì—†ìŒ" #: ../src/workspace.c:737 msgid "New" msgstr "새 작업공간 만듬" #: ../src/workspace.c:738 msgid "Destroy Last" msgstr "마지막 작업공간 없앰" #: ../src/workspace.c:740 msgid "Last Used" msgstr "마지막으로 사용ë¨" #~ msgid "could not load domain %s from global defaults database (%s)" #~ msgstr "ì „ì—­ 기본 ë°ì´í„°ë² ì´ìФì—서 ë„ë©”ì¸ %s를 ì½ì„ 수 없습니다 (%s)" #~ msgid "could not initialize library %s" #~ msgstr "%s ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ 초기화 할수 ì—†ìŒ" #~ msgid "could not find function %s::%s" #~ msgstr "%s 함수를 찾지 못함::%s" #~ msgid "" #~ "Window Maker received signal %i\n" #~ "(%s)." #~ msgstr "" #~ "윈ë„ìš° ë©”ì´ì»¤ê°€ %i 신호를 ë°›ìŒ\n" #~ "(%s)." #~ msgid "Allow Lowering" #~ msgstr "아래로 가는 것 허용함" #~ msgid "bad value in docked icon position %i,%i" #~ msgstr "Dock ì•„ì´ì½˜ì˜ 위치값 %i,%i 는 ìž˜ëª»ëœ ê°’" #~ msgid "could not load default icon \"%s\":%s" #~ msgstr "기본 ì•„ì´ì½˜ \"%s\"를 ì½ì§€ 못함:%s" #~ msgid " --no-cpp \t\tdisable preprocessing of configuration files" #~ msgstr " --no-cpp \t\t설정파ì¼ì˜ 전처리를 하지 않ìŒ" #~ msgid " --synchronous\t\tturn on synchronous display mode" #~ msgstr "--synchronous\t\të””ìŠ¤í”Œë ˆì´ ë™ê¸°í™” 사용" #~ msgid "could not define value for %s for cpp" #~ msgstr "cppì˜ %s를 위한 ê°’ì´ ì •ì˜ë˜ì§€ 않ìŒ" #~ msgid "could not get password entry for UID %i" #~ msgstr "UID %iì˜ ì•”í˜¸ 항목를 ì–»ì„ ìˆ˜ 없습니다" #~ msgid "your machine is misconfigured. HOSTNAME is set to %s" #~ msgstr "시스템 ì„¤ì •ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤. HOSTNAMEì„ %s로 설정합니다" #~ msgid "your machine is misconfigured. HOST is set to %s" #~ msgstr "시스템 ì„¤ì •ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤. HOST를 %s로 설정합니다" #~ msgid "selection timed-out" #~ msgstr "ì„ íƒì‹œê°„ 초과" #~ msgid "unable to get dropped data from DND drop" #~ msgstr "DND 드롭ì—서 떨어뜨린 ë°ì´í„°ë¥¼ ì–»ì„ ìˆ˜ 없습니다" #~ msgid "error getting dropped data from DND drop" #~ msgstr "DND 드롭ì—서 떨어뜨린 ë°ì´í„°ë¥¼ ì–»ëŠ”ë° ì˜¤ë¥˜ê°€ ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤" #~ msgid "out of memory while getting data from DND drop" #~ msgstr "DND 드롭ì—서 떨어뜨린 ë°ì´í„°ë¥¼ ì–»ëŠ”ë° ë©”ëª¨ë¦¬ê°€ 부족합니다" #~ msgid "could not load mask bitmap file \"%s\". Won't use mask" #~ msgstr "비트맵 íŒŒì¼ \"%s\"를 ì½ì„ 수 없습니다. 마스í¬ë¥¼ 사용하지 않습니다" #~ msgid "unterminated string" #~ msgstr "ë나지 ì•Šì€ ë¬¸ìžì—´" #~ msgid "unterminated array" #~ msgstr "ë나지 ì•Šì€ ë°°ì—´" #~ msgid "missing , in array or unterminated array" #~ msgstr "ë°°ì—´ì—서 쉼표가 빠졌거나 ë나지 ì•Šì€ ë°°ì—´" #~ msgid "could not get array element" #~ msgstr "ë°°ì—´ ì›ì†Œë¥¼ ì–»ì„ ìˆ˜ 없습니다" #~ msgid "unterminated dictionary" #~ msgstr "종료하지 ì•Šì€ ì‚¬ì „" #~ msgid "missing dictionary key" #~ msgstr "사전 키 ì—†ìŒ" #~ msgid "missing dictionary entry key or unterminated dictionary" #~ msgstr "사전 엔트리 키가 없거나 종료하지 ì•Šì€ ì‚¬ì „" #~ msgid "error parsing dictionary key" #~ msgstr "사전 키를 í•´ì„í•˜ëŠ”ë° ì˜¤ë¥˜ìž…ë‹ˆë‹¤" #~ msgid "missing = in dictionary entry" #~ msgstr "사전 ì—”íŠ¸ë¦¬ì— = ê°€ ë¹ ì ¸ 있습니다" #~ msgid "missing ; in dictionary entry" #~ msgstr "사전 ì—”íŠ¸ë¦¬ì— ;ê°€ ë¹ ì ¸ 있습니다" #~ msgid "" #~ "was expecting a string, dictionary, data or array. If it's a string, try " #~ "enclosing it with \"." #~ msgstr "" #~ "는 문ìžì—´, 사전, ë°ì´í„° ë˜ëŠ” ë°°ì—´ì´ í•„ìš”í•©ë‹ˆë‹¤. 문ìžì—´ì´ë¼ë©´ \"로 묶으십시" #~ "오." #~ msgid "Comments are not allowed inside WindowMaker owned domain files." #~ msgstr "주ì„ë¬¸ì€ ìœˆë„ìš° ë©”ì´ì»¤ ë„ë©”ì¸ íŒŒì¼ ë‚´ì—서는 허용ë˜ì§€ 않습니다." #~ msgid "extra data after end of file" #~ msgstr "íŒŒì¼ ë ë’¤ì— ë°ì´í„°ê°€ ë˜ ìžˆìŠµë‹ˆë‹¤" #~ msgid "Close X session" #~ msgstr "X 세션 닫기" #~ msgid "" #~ "Close Window System session?\n" #~ "Kill might close applications with unsaved data." #~ msgstr "" #~ "윈ë„ìš° 시스템 ì„¸ì…˜ì„ ì¢…ë£Œí•˜ê² ìŠµë‹ˆê¹Œ?\n" #~ "애플리케ì´ì…˜ì´ 종료ë˜ê³  저장하지 ì•Šì€ ìžë£ŒëŠ” 잃습니다." #~ msgid "%s:maximal line size exceeded in menu config: %s" #~ msgstr "%s:메뉴 ì„¤ì •ì˜ ìµœëŒ€ 줄수를 초과함: %s" #~ msgid "could not make arguments for menu file preprocessor" #~ msgstr "메뉴 íŒŒì¼ ì „ì²˜ë¦¬ê¸°ë¥¼ 위한 ì¸ìˆ˜ë¥¼ 만들 수 ì—†ìŒ" #~ msgid "%s:could not open/preprocess menu file" #~ msgstr "%s:메뉴 파ì¼ì„ 열거나 전처리할 수 ì—†ìŒ" #~ msgid "error reading preprocessed menu data" #~ msgstr "ì „ì²˜ë¦¬ëœ ë©”ë‰´ ë°ì´í„°ë¥¼ ì½ëŠ”ë° ì˜¤ë¥˜" #~ msgid "error making logo image for panel:%s" #~ msgstr "패ë„ì— ì“°ì¼ ë¡œê³  ì´ë¯¸ì§€ë¥¼ 만들지 못함:%s" #~ msgid "out of memory while saving session state" #~ msgstr "세션 ìƒíƒœë¥¼ 저장하는 중 메모리 부족" #~ msgid "end of memory while saving session state" #~ msgstr "세션 ìƒíƒœë¥¼ 저장하는 중 메모리 부족" #~ msgid "connection to the session manager was lost" #~ msgstr "세션 관리ìžì˜ ì—°ê²°ì´ ëŠì–´ì¡ŒìŠµë‹ˆë‹¤" #~ msgid "got signal %i (%s) - restarting\n" #~ msgstr "%i (%s) 신호 ê°ì§€ - 재시ë™í•¨\n" #~ msgid "got signal %i - restarting\n" #~ msgstr "%i 신호 ê°ì§€ - 재시ë™í•¨\n" #~ msgid "got signal %i (%s) - exiting...\n" #~ msgstr "%i (%s) 신호 ê°ì§€ - 종료함...\n" #~ msgid "got signal %i - exiting...\n" #~ msgstr "%i 신호 ê°ì§€ - 종료함...\n" #~ msgid "got signal %i (%s)\n" #~ msgstr "%i (%s) 신호 ê°ì§€\n" #~ msgid "got signal %i\n" #~ msgstr "%i 신호 ê°ì§€\n" #~ msgid "" #~ "crashed while trying to do some post-crash cleanup. Aborting immediatelly." #~ msgstr "" #~ "ë¹„ì •ìƒ ì¢…ë£Œí›„ 처리를 하려는 ë™ì•ˆì— ë¹„ì •ìƒ ì¢…ë£Œë˜ì—ˆìŠµë‹ˆë‹¤. 즉시 종료합니다." #~ msgid "trying to restart Window Maker..." #~ msgstr "윈ë„ìš° ë©”ì´ì»¤ 재시작..." #~ msgid "trying to start alternate window manager..." #~ msgstr "대체용 ì°½ ê´€ë¦¬ìž ì‹¤í–‰í•¨..." #~ msgid "failed to start alternate window manager. Aborting." #~ msgstr "대체용 ì°½ 관리ìžë¥¼ 실행 실패. 종료." #~ msgid "" #~ "a fatal error has occured, probably due to a bug. Please fill the " #~ "included BUGFORM and report it." #~ msgstr "" #~ "치명ì ì¸ 오류 ë°œìƒ, ì•„ë§ˆë„ ë²„ê·¸ì¸ ê²ƒ 같습니다. BUGFORMì„ ìž‘ì„±í•´ 보내주시" #~ "길 ë¶€íƒë“œë¦½ë‹ˆë‹¤." #~ msgid "library \"%s\" cound not be opened." #~ msgstr "\"%s\" ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ ì—´ 수 ì—†ìŒ." #~ msgid "function \"%s\" not found in library \"%s\"" #~ msgstr "\"%s\" 함수가 \"%s\" ë¼ì´ë¸ŒëŸ¬ë¦¬ì— ì—†ìŒ" #~ msgid "function textures not supported on this system, sorry." #~ msgstr "ì´ ì‹œìŠ¤í…œì€ í…ìŠ¤ì³ í•¨ìˆ˜ë¥¼ ì§€ì›í•˜ì§€ 않습니다." #~ msgid "Update" #~ msgstr "갱신" #~ msgid "invalid data in selection" #~ msgstr "ìž˜ëª»ëœ ë°ì´í„°ê°€ ì„ íƒë¨" WindowMaker-0.95.5/po/es.po0000644000175000017500000014753412214432632012364 00000000000000# Spanish message file for WindowMaker # Last Update: git version 2012-02-23 # # Historial de actualizaciones: # Alfredo Kojima # Eliphas Levy Theodoro # Quique (March 2002) # Rodolfo García Peñas (Feb 2012) # msgid "" msgstr "" "Project-Id-Version: Versión git-20120223\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-02-23 23:04+0100\n" "PO-Revision-Date: 2012-02-23 23:04WET\n" "Last-Translator: Rodolfo García Peñas (kix) \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" #: ../src/appicon.c:345 ../src/dialog.c:563 ../src/dock.c:3041 #: ../src/dockedapp.c:207 ../src/main.c:348 ../src/rootmenu.c:1701 #: ../src/winspector.c:351 ../src/winspector.c:367 msgid "Error" msgstr "Error" #: ../src/appicon.c:346 msgid "Could not open specified icon file" msgstr "No se pudo abrir el fichero de icono indicado" #: ../src/appicon.c:346 ../src/dialog.c:405 ../src/dialog.c:466 #: ../src/dialog.c:563 ../src/dialog.c:969 ../src/dialog.c:1602 #: ../src/dock.c:443 ../src/dock.c:450 ../src/dock.c:472 ../src/dock.c:3041 #: ../src/dockedapp.c:208 ../src/dockedapp.c:378 ../src/main.c:348 #: ../src/rootmenu.c:1704 ../src/winspector.c:351 ../src/winspector.c:367 msgid "OK" msgstr "OK" #: ../src/appicon.c:376 ../src/dock.c:221 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " será cerrada a la fuerza (kill).\n" "Los cambios no guardados se perderán.\n" "Confirme, por favor." #: ../src/appicon.c:383 ../src/dock.c:239 ../src/winmenu.c:119 msgid "Kill Application" msgstr "Terminar aplicación" #: ../src/appicon.c:384 ../src/dock.c:240 ../src/winmenu.c:122 msgid "Yes" msgstr "Sí" #: ../src/appicon.c:384 ../src/dock.c:240 ../src/winmenu.c:122 msgid "No" msgstr "No" #: ../src/appicon.c:412 ../src/dock.c:1036 ../src/dock.c:3198 msgid "Unhide Here" msgstr "Mostrar aquí" #: ../src/appicon.c:413 ../src/appicon.c:436 ../src/dock.c:1038 #: ../src/dock.c:1040 ../src/dock.c:3210 ../src/winmenu.c:433 msgid "Hide" msgstr "Ocultar" #: ../src/appicon.c:414 msgid "Set Icon..." msgstr "Poner icono..." #: ../src/appicon.c:415 ../src/dock.c:1044 ../src/rootmenu.c:224 #: ../src/winmenu.c:460 msgid "Kill" msgstr "Terminar" #: ../src/appicon.c:434 ../src/dock.c:3208 msgid "Unhide" msgstr "Mostrar" #: ../src/application.c:362 #, c-format msgid "recreating missing icon '%s'" msgstr "recreando el icono ausente '%s'" #: ../src/defaults.c:713 ../src/defaults.c:837 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "" "¡El dominio %s (%s) de la base de datos de preferencias globales está " "corrupto!" #: ../src/defaults.c:717 #, c-format msgid "could not load domain %s from global defaults database" msgstr "no se pudo cargar el dominio %s de la base de datos de preferencias" #: ../src/defaults.c:762 ../src/defaults.c:776 #, c-format msgid "invalid global menu file %s" msgstr "fichero global de menú no válido %s" #: ../src/defaults.c:823 ../src/defaults.c:912 ../src/defaults.c:948 #: ../src/defaults.c:998 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "" "¡El dominio %s (%s) de la base de datos de las preferencias está corrupto!" #: ../src/defaults.c:827 ../src/defaults.c:932 ../src/defaults.c:984 #: ../src/defaults.c:1011 #, c-format msgid "could not load domain %s from user defaults database" msgstr "" "no se pudo cargar el dominio %s de la base de datos de las preferencias del " "usuario" #: ../src/defaults.c:856 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "" "no se pudo cargar el dominio %s de la base de datos de preferencias globales " "(%s)" #: ../src/defaults.c:974 ../src/screen.c:408 #, c-format msgid "could not load logo image for panels: %s" msgstr "no se pudo cargar imagen de logotipo para los paneles: %s" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1180 ../src/defaults.c:1303 ../src/defaults.c:1389 #: ../src/defaults.c:1794 ../src/defaults.c:1810 ../src/defaults.c:1851 #: ../src/defaults.c:1896 ../src/defaults.c:2303 ../src/wdefaults.c:541 #: ../src/wdefaults.c:570 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Formato de opción erroneo para la tecla \"%s\". Debería ser %s." #: ../src/defaults.c:1182 ../src/defaults.c:1255 ../src/defaults.c:1280 #: ../src/defaults.c:1307 ../src/defaults.c:1319 ../src/defaults.c:1333 #: ../src/defaults.c:1347 ../src/defaults.c:1393 ../src/defaults.c:1405 #: ../src/defaults.c:1798 ../src/defaults.c:1815 ../src/defaults.c:1827 #: ../src/defaults.c:1856 ../src/defaults.c:1872 ../src/defaults.c:1901 #: ../src/defaults.c:1980 ../src/defaults.c:2308 ../src/defaults.c:2319 #, c-format msgid "using default \"%s\" instead" msgstr "utilizando el valor predeterminado \"%s\" en su lugar" #: ../src/defaults.c:1209 #, c-format msgid "wrong option value for key \"%s\"; got \"%s\", should be one of %s." msgstr "valor de opción erroneo para la tecla \"%s\"; leído \"%s\". Debería ser uno de %s" #: ../src/defaults.c:1251 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "no se puede convertir \"%s\" a booleano para la tecla \"%s\"" #: ../src/defaults.c:1278 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "no se puede convertir \"%s\" a un valor entero para la tecla \"%s\"" #: ../src/defaults.c:1315 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Número de elementos incorrecto en el array para la tecla \"%s\"." #: ../src/defaults.c:1329 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Valor incorrecto para la tecla \"%s\". Debería ser Coordinado." #: ../src/defaults.c:1343 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "no se puede convertir el array a enteros para \"%s\"" #: ../src/defaults.c:1508 ../src/defaults.c:1538 ../src/defaults.c:1554 #: ../src/defaults.c:1583 ../src/defaults.c:1605 ../src/defaults.c:1656 #: ../src/defaults.c:1695 ../src/defaults.c:1732 ../src/defaults.c:1748 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" no es un nombre de color válido" #: ../src/defaults.c:1520 ../src/defaults.c:1571 msgid "bad number of arguments in gradient specification" msgstr "número de argumentos no válido en la especificación de gradiente" #: ../src/defaults.c:1629 msgid "too few arguments in multicolor gradient specification" msgstr "insuficientes argumentos en la especificación de gradiente multicolor" #: ../src/defaults.c:1721 msgid "bad number of arguments in textured gradient specification" msgstr "" "número de argumentos no válido en la especificación de gradiente con textura" #: ../src/defaults.c:1764 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "" "valor de opacidad equivocado para la textura tgradient \"%s\". Debería ser " "[0..255]" #: ../src/defaults.c:1781 #, c-format msgid "invalid texture type %s" msgstr "tipo de textura no válido %s" #: ../src/defaults.c:1823 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Error en la especificación de textura para la tecla \"%s\"" #: ../src/defaults.c:1868 msgid "Wrong type for workspace background. Should be a texture type." msgstr "" "Tipo no válido para el fondo del área de trabajo. Debería ser de tipo " "textura." #: ../src/defaults.c:1914 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "" "Tipo no válido para el fondo del área de trabajo %i. Debería ser una textura." #: ../src/defaults.c:1953 msgid "could not load any usable font!!!" msgstr "¡¡¡no se pudo cargar ninguna fuente usable!!!" #: ../src/defaults.c:1976 #, c-format msgid "could not get color for key \"%s\"" msgstr "no se pudo obtener color para la tecla \"%s\"" #: ../src/defaults.c:2028 ../src/rootmenu.c:438 #, c-format msgid "%s: invalid key modifier \"%s\"" msgstr "%s: modificador de tecla no válido \"%s\"" #: ../src/defaults.c:2040 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:especificación de atajo de teclado no válida \"%s\"" #: ../src/defaults.c:2046 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s:tecla no válida en el atajo \"%s\"" #: ../src/defaults.c:2068 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: la tecla modificadora %s no es válida" #: ../src/defaults.c:2175 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "no fue posible abrir el fichero bitmap \"%s\"" #: ../src/defaults.c:2178 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" no es un fichero bitmap válido" #: ../src/defaults.c:2181 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "memoria insuficiente para leer el fichero bitmap\"%s\"" #: ../src/defaults.c:2219 ../src/defaults.c:2252 msgid "bad number of arguments in cursor specification" msgstr "número no válido de argumentos en la especificación del cursor" #: ../src/defaults.c:2235 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "nombre del cursor interno desconocido \"%s\"" #: ../src/defaults.c:2262 ../src/defaults.c:2274 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "fichero bitmap de cursor \"%s\" no encontrado" #: ../src/defaults.c:2315 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Error en la especificación del cursor para la tecla \"%s\"" #: ../src/defaults.c:2380 msgid "could not render texture for icon background" msgstr "no se pudo representar la textura para el fondo del icono" #: ../src/defaults.c:2894 ../src/defaults.c:2963 #, c-format msgid "Invalid arguments for option \"%s\"" msgstr "Argumentos no válidos para la opción \"%s\"" #: ../src/defaults.c:2900 ../src/defaults.c:2969 #, c-format msgid "Could not find image \"%s\" for option \"%s\"" msgstr "No pudo encontrar la imagen \"%s\" para la opción \"%s\"" #: ../src/defaults.c:2905 ../src/defaults.c:2977 #, c-format msgid "Could not load image \"%s\" for option \"%s\"" msgstr "No pudo cargar imagen \"%s\" para la opción \"%s\"" #: ../src/defaults.c:2915 msgid "Invalid split sizes for SwitchPanel back image." msgstr "Tamaños de división no válidos para el fondo del SwitchPanel" #: ../src/defaults.c:2984 #, c-format msgid "Invalid number of arguments for option \"%s\"" msgstr "Número no válido de argumentos para la opción \"%s\"" #: ../src/defaults.c:2999 #, c-format msgid "Value for option \"%s\" must be an array of 7 strings" msgstr "El valor para la opción \"%s\" debe ser un array de 7 cadenas de caracteres" #: ../src/defaults.c:3013 #, c-format msgid "Invalid argument for option \"%s\" item %d" msgstr "Argumento no válido para la opción \"%s\" del elemento %d" #: ../src/dialog.c:126 msgid "Save workspace state" msgstr "Guardar estado del Ãrea de trabajo" #: ../src/dialog.c:405 ../src/dialog.c:466 ../src/dialog.c:976 #: ../src/dock.c:472 ../src/dockedapp.c:383 ../src/rootmenu.c:180 #: ../src/rootmenu.c:224 msgid "Cancel" msgstr "Cancelar" #: ../src/dialog.c:558 msgid "Could not open directory " msgstr "No se pudo abrir el directorio " #: ../src/dialog.c:608 msgid "Could not load image file " msgstr "No fue pudo cargar fichero de imagen " #: ../src/dialog.c:903 msgid "Directories" msgstr "Directorios" #: ../src/dialog.c:912 msgid "Icons" msgstr "Iconos" #: ../src/dialog.c:945 msgid "Preview" msgstr "Previsualizar" #: ../src/dialog.c:958 msgid "File Name:" msgstr "Nombre del fichero:" #: ../src/dialog.c:982 msgid "Choose File" msgstr "Elegir fichero" #: ../src/dialog.c:1001 ../src/dialog.c:1003 msgid "Icon Chooser" msgstr "Selector de iconos" #: ../src/dialog.c:1184 msgid "Window Manager for X" msgstr "Gestor de ventanas para X" #: ../src/dialog.c:1186 #, c-format msgid "Version %s" msgstr "Versión %s" #: ../src/dialog.c:1207 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Usando visual 0x%x: %s %ibpp " #: ../src/dialog.c:1214 msgid "(32 thousand colors)\n" msgstr "(32.000 colores)\n" #: ../src/dialog.c:1217 msgid "(64 thousand colors)\n" msgstr "(64.000 colores)\n" #: ../src/dialog.c:1221 msgid "(16 million colors)\n" msgstr "(16 millones de colores)\n" #: ../src/dialog.c:1224 #, c-format msgid "(%d colors)\n" msgstr "(%d colores)\n" #: ../src/dialog.c:1233 #, c-format msgid "Total memory allocated: %i kB (in use: %i kB).\n" msgstr "Memoria total disponible: %i kB (en uso: %i kB).\n" #: ../src/dialog.c:1240 msgid "Supported image formats: " msgstr "Formatos de imagen soportados: " #: ../src/dialog.c:1247 #, c-format msgid "" "\n" "Additional support for: WMSPEC" msgstr "" "\n" "Soporte adicional para: WMSPEC" #: ../src/dialog.c:1253 msgid "\n" msgstr "\n" #: ../src/dialog.c:1255 msgid "Solaris " msgstr "Solaris " #: ../src/dialog.c:1257 msgid "Xinerama: " msgstr "Xinerama: " #: ../src/dialog.c:1289 msgid "Info" msgstr "Info" #: ../src/dialog.c:1365 #, c-format msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" " Window Maker es software libre; puede redistribuirlo y/o\n" "modificarlo bajo los términos de la Licencia Pública General de GNU\n" "(GNU GPL) publicada por la Fundación para el Software Libre; bien la\n" "versión 2 de la licencia, o (a su elección) cualquier versión posterior.\n" "\n" " Window Maker se distribuye con la esperanza de que sea útil, pero\n" "SIN NINGUNA GARANTÃA; ni siquiera la garantía implícita de\n" "MERCANTIBILIDAD o ADECUACIÓN PARA UN PROPÓSITO \n" "PARTICULAR. Lea la Licencia Pública General de GNU para más\n" "detalles.\n" "\n" " Debería haber recibido una copia de la Licencia Pública General de\n" "GNU junto con este programa. Si no es así, escriba a Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, Estados Unidos de América." #: ../src/dialog.c:1389 msgid "Legal" msgstr "Legal" #: ../src/dialog.c:1532 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "" "no fue posible abrir conexión para caja de diálogo de errores fatales. " "Abortando." #: ../src/dialog.c:1558 msgid "Fatal error" msgstr "Error fatal" #: ../src/dialog.c:1568 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker recibió la señal %i." #: ../src/dialog.c:1576 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " Este error fatal ocurrió probablemente debido a un fallo.\n" " Por favor rellene el fichero BUGFORM adjunto y envíelo a\n" " bugs@windowmaker.info." #: ../src/dialog.c:1583 msgid "What do you want to do now?" msgstr "¿Qué quiere hacer ahora?" #: ../src/dialog.c:1589 msgid "Select action" msgstr "Seleccionar acción" #: ../src/dialog.c:1590 msgid "Abort and leave a core file" msgstr "Abortar y generar un fichero core" #: ../src/dialog.c:1591 msgid "Restart Window Maker" msgstr "Reiniciar Window Maker" #: ../src/dialog.c:1592 msgid "Start alternate window manager" msgstr "Iniciar otro gestor de ventanas" #: ../src/dock.c:170 ../src/menu.c:1768 #, c-format msgid "Type the name for workspace %i:" msgstr "Teclee el nombre para el área de trabajo %i:" #: ../src/dock.c:171 ../src/dock.c:1003 ../src/dock.c:1005 ../src/dock.c:3117 #: ../src/menu.c:1772 msgid "Rename Workspace" msgstr "Renombrar Ãrea de trabajo" #: ../src/dock.c:438 ../src/dock.c:445 msgid "Warning" msgstr "Atención" #: ../src/dock.c:439 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Algunos iconos no se pueden hacer omnipresentes. Por favor, asegúrese que " "no haya otros iconos en las mismas posiciones en las otras áreas de trabajo, " "y de que el Clip no esté lleno en otra área de trabajo." #: ../src/dock.c:446 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "El icono no pudo hacer omnipresente. Por favor, asegúrese de que no haya " "otros iconos en la misma posición en las otras áreas de trabajo, y de que el " "Clip no esté lleno en otra área de trabajo." #: ../src/dock.c:470 msgid "Workspace Clip" msgstr "Clip del Ãrea de trabajo" #: ../src/dock.c:471 msgid "All selected icons will be removed!" msgstr "¡Todos los iconos seleccionados serán borrados!" #: ../src/dock.c:521 ../src/dock.c:1016 ../src/dock.c:1018 ../src/dock.c:3153 msgid "Keep Icon" msgstr "Mantener el icono" #: ../src/dock.c:522 ../src/dock.c:1910 ../src/dock.c:2041 msgid "Type the command used to launch the application" msgstr "Teclee el comando a usar para ejecutar la aplicación" #: ../src/dock.c:842 #, c-format msgid "could not launch application %s" msgstr "no se pudo ejecutar la aplicación %s" #: ../src/dock.c:893 msgid "could not create workspace submenu for Clip menu" msgstr "no se pudo crear un submenú de área de trabajo para el menú del Clip" #: ../src/dock.c:948 msgid "could not create options submenu for Clip menu" msgstr "no se pudo crear un submenú de opciones para el menú del Clip" #: ../src/dock.c:952 ../src/dock.c:993 msgid "Keep on Top" msgstr "Mantener en primer plano" #: ../src/dock.c:957 msgid "Collapsed" msgstr "Agrupar" #: ../src/dock.c:962 msgid "Autocollapse" msgstr "Autoagrupar" #: ../src/dock.c:967 msgid "Autoraise" msgstr "Autoelevar" #: ../src/dock.c:972 msgid "Autoattract Icons" msgstr "Autoatraer iconos" #: ../src/dock.c:998 msgid "Clip Options" msgstr "Opciones del Clip" #: ../src/dock.c:1007 msgid "Selected" msgstr "Seleccionado" #: ../src/dock.c:1012 ../src/dock.c:1014 ../src/dock.c:3144 msgid "Select All Icons" msgstr "Seleccionar todos los iconos" #: ../src/dock.c:1020 ../src/dock.c:1022 ../src/dock.c:3161 msgid "Move Icon To" msgstr "Mover el icono a" #: ../src/dock.c:1027 ../src/dock.c:1029 ../src/dock.c:3172 msgid "Remove Icon" msgstr "Eliminar el icono" #: ../src/dock.c:1031 msgid "Attract Icons" msgstr "Atraer los iconos" #: ../src/dock.c:1034 msgid "Launch" msgstr "Ejecutar" #: ../src/dock.c:1042 msgid "Settings..." msgstr "Configuraciones..." #: ../src/dock.c:1366 ../src/dock.c:1466 #, c-format msgid "bad value in docked icon state info %s" msgstr "valor no válido en la información del estado de un icono en el dock %s" #: ../src/dock.c:1473 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "valor no válido en la posición de un icono en el dock %i,%i" #: ../src/dock.c:1492 #, c-format msgid "bad value in dock state info:%s" msgstr "valor no válido en la información de estado del dock:%s" #: ../src/dock.c:1709 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "hay demasiados iconos almacenados en el dock. Ignorando lo que no cabe" #. icon->forced_dock = 1; #: ../src/dock.c:1909 ../src/dock.c:2040 msgid "Dock Icon" msgstr "Poner icono en el dock" #: ../src/dock.c:3039 #, c-format msgid "Could not execute command \"%s\"" msgstr "No se pudo ejecutar el comando \"%s\"" #: ../src/dock.c:3123 msgid "Toggle Omnipresent" msgstr "Activar Omnipresencia" #: ../src/dock.c:3128 ../src/winmenu.c:406 ../src/winspector.c:1302 msgid "Omnipresent" msgstr "Omnipresente" #: ../src/dock.c:3142 msgid "Unselect All Icons" msgstr "Deseleccionar todos los iconos" #: ../src/dock.c:3151 msgid "Keep Icons" msgstr "Mantener los iconos" #: ../src/dock.c:3159 msgid "Move Icons To" msgstr "Mover los iconos a" #: ../src/dock.c:3170 msgid "Remove Icons" msgstr "Eliminar los iconos" #: ../src/dock.c:3200 msgid "Bring Here" msgstr "Traer aquí" #: ../src/dockedapp.c:133 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "" "no se pudo encontrar el icono %s, utilizado en una aplicación en el dock" #: ../src/dockedapp.c:206 #, c-format msgid "Could not open specified icon file: %s" msgstr "No se pudo abrir el fichero de icono indicado: %s" #: ../src/dockedapp.c:208 msgid "Ignore" msgstr "Ignorar" #: ../src/dockedapp.c:300 msgid "Start when Window Maker is started" msgstr "Iniciar cuando Window Maker se inicie" #: ../src/dockedapp.c:305 msgid "Lock (prevent accidental removal)" msgstr "Bloqueado (para prevenir borrado accidental)" #: ../src/dockedapp.c:309 msgid "Application path and arguments" msgstr "Ruta de la aplicación y argumentos" #: ../src/dockedapp.c:320 msgid "Command for middle-click launch" msgstr "Comando al presionar el botón central" #: ../src/dockedapp.c:332 #, c-format msgid "%s will be replaced with current selection" msgstr "%s será reemplazado con la selección actual" #: ../src/dockedapp.c:336 msgid "Command for files dropped with DND" msgstr "Orden para archivos soltados con DND" #: ../src/dockedapp.c:348 #, c-format msgid "%d will be replaced with the file name" msgstr "%d será sustituido por el nombre del fichero" #: ../src/dockedapp.c:351 msgid "DND support was not compiled in" msgstr "No se compiló con soporte para DND" #: ../src/dockedapp.c:356 msgid "Icon Image" msgstr "Imagen de icono" #: ../src/dockedapp.c:367 ../src/winspector.c:1450 msgid "Browse..." msgstr "Explorar..." #: ../src/dockedapp.c:425 msgid "Docked Application Settings" msgstr "Configuración de Aplicación en el Dock" #: ../src/framewin.c:619 ../src/framewin.c:711 ../src/menu.c:412 #: ../src/texture.c:453 #, c-format msgid "could not render texture: %s" msgstr "no se pudo representar la textura: %s" #: ../src/framewin.c:642 ../src/framewin.c:652 ../src/framewin.c:668 #: ../src/framewin.c:679 ../src/framewin.c:686 ../src/framewin.c:693 #: ../src/icon.c:330 ../src/menu.c:439 #, c-format msgid "error rendering image:%s" msgstr "error en la representación de la imagen:%s" #: ../src/framewin.c:739 #, c-format msgid "error rendering image: %s" msgstr "error en la representación de la imagen: %s" #: ../src/icon.c:215 ../src/wdefaults.c:421 #, c-format msgid "error loading image file \"%s\": %s" msgstr "error cargando el fichero de imagen \"%s\": %s" #: ../src/icon.c:438 ../src/icon.c:447 #, c-format msgid "could not create directory %s" msgstr "no se pudo crear el directorio %s" #: ../src/icon.c:696 #, c-format msgid "could not find default icon \"%s\"" msgstr "no se pudo encontrar el icono predeterminado \"%s\"" #: ../src/icon.c:702 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "no se pudo cargar el icono predeterminado \"%s\":%s" #: ../src/main.c:305 msgid "failed to restart Window Maker." msgstr "falló al reiniciar Window Maker." #: ../src/main.c:308 #, c-format msgid "could not exec %s" msgstr "no se pudo ejecutar %s" #: ../src/main.c:346 msgid "Could not execute command: " msgstr "No se pudo ejecutar la orden: " #: ../src/main.c:418 #, c-format msgid "%s aborted.\n" msgstr "%s abortado.\n" #: ../src/main.c:427 #, c-format msgid "Usage: %s [options]\n" msgstr "Uso: %s [opciones]\n" #: ../src/main.c:428 msgid "The Window Maker window manager for the X window system" msgstr "El gestor de ventanas Window Maker para el sistema de ventanas X" #: ../src/main.c:430 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tdisplay a utilizar" #: ../src/main.c:432 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tdesactiva preprocesamiento de ficheros de configuración" #: ../src/main.c:434 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tdeshabilitar el Dock" #: ../src/main.c:435 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tno abre el área de trabajo Clip" #: ../src/main.c:436 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\t no iniciar aplicaciones automáticamente" #: ../src/main.c:437 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tno restaurar la sesión guardada" #: ../src/main.c:439 msgid " --locale locale\tlocale to use" msgstr " --locale locale\tlocale a usar" #: ../src/main.c:441 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" " --create-stdcmap\t crear el consejo de mapa de colores estándar en los " "visuales PseudoColor" #: ../src/main.c:442 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tvisual id del visual a utilizar" #: ../src/main.c:443 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tno guardar o actualizar configuraciones" #: ../src/main.c:445 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr "" " --no-polling\t\t no comprobar periódicamente si hay actualizaciones en la " "configuración" #: ../src/main.c:447 msgid " --version\t\tprint version and exit" msgstr " --versión\t\tmostrar versión y salir" #: ../src/main.c:448 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tmostrar este mensaje" #: ../src/main.c:458 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "no se pudo encontrar el directorio GNUstep de usuario (%s)" #: ../src/main.c:461 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "Se ha producido un error mientras se creaba el directorio GNUstep, por favor " "asegúrese de que ha instalado correctamente Window Maker y ejecutado wmaker." "inst" #: ../src/main.c:464 #, c-format msgid "%s directory created with default configuration." msgstr "creado directorio %s con la configuración predeterminada." #: ../src/main.c:482 msgid "" "could not initialise an inotify instance. Changes to the defaults database " "will require a restart to take effect. Check your kernel!" msgstr "" "no se pudo iniciar una instancia inotify. Cambios en la base de datos de " "preferencias requerirán reiniciar para que surjan efecto. ¡Compruebe su núcleo!" #: ../src/main.c:493 #, c-format msgid "" "could not add an inotify watch on path %s.Changes to the defaults database " "will require a restart to take effect." msgstr "" "no se pudo añadir un guardian inotify en la ruta %s. Cambios en la base de datos " "de preferencias requerirán reiniciar para que surjan efecto." #: ../src/main.c:515 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:no se pudo ejecutar el guión de inicialización" #: ../src/main.c:533 #, c-format msgid "%s:could not execute exit script" msgstr "%s:no se pudo ejecutar el guión de salida" #: ../src/main.c:571 ../src/main.c:648 ../src/main.c:655 ../src/main.c:662 #, c-format msgid "too few arguments for %s" msgstr "argumentos insuficientes para %s" #: ../src/main.c:666 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "valor no válido de visualid: \"%s\"" #: ../src/main.c:679 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: argumento no válido '%s'\n" #: ../src/main.c:680 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Pruebe '%s --help' para más información\n" #: ../src/main.c:723 msgid "X server does not support locale" msgstr "El servidor X no soporta esta locale" #: ../src/main.c:727 msgid "cannot set locale modifiers" msgstr "no se pueden definir los modificadores de la locale" #: ../src/main.c:743 #, c-format msgid "could not open display \"%s\"" msgstr "no se pudo abrir el display \"%s\"" #: ../src/menu.c:2341 #, c-format msgid "bad value in menus state info: %s" msgstr "valor no válido en la información de estado de los menús: %s" #: ../src/misc.c:57 #, c-format msgid "could not define value for %s for cpp" msgstr "no se pudo definir el valor de %s para cpp" #: ../src/misc.c:82 #, c-format msgid "could not get password entry for UID %i" msgstr "no se pudo obtener una entrada de contraseña para el UID %i" #: ../src/misc.c:104 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "su máquina está mal configurada. HOSTNAME configurado a %s" #: ../src/misc.c:109 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "su máquina está mal configurada. HOST configurado a %s" #: ../src/misc.c:558 ../src/misc.c:563 msgid "Program Arguments" msgstr "Parámetros del Programa" #: ../src/misc.c:559 ../src/misc.c:564 msgid "Enter command arguments:" msgstr "Teclee los parámetros del comando:" #: ../src/misc.c:608 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "memoria insuficiente durante expansión de \"%s\"" #: ../src/misc.c:661 #, c-format msgid "out of memory during expansion of \"%%w\"" msgstr "memoria insuficiente durante expansión de \"%%w\"" #: ../src/misc.c:678 #, c-format msgid "out of memory during expansion of \"%%W\"" msgstr "memoria insuficiente durante expansión de \"%%W\"" #: ../src/misc.c:695 #, c-format msgid "out of memory during expansion of \"%%a\"" msgstr "memoria insuficiente durante expansión de \"%%a\"" #: ../src/misc.c:724 #, c-format msgid "out of memory during expansion of \"%%d\"" msgstr "memoria insuficiente durante expansión de \"%%d\"" #: ../src/misc.c:738 msgid "selection not available" msgstr "selección no disponible" #: ../src/misc.c:745 #, c-format msgid "out of memory during expansion of \"%%s\"" msgstr "memoria insuficiente durante expansión de \"%%s\"" #: ../src/misc.c:780 ../src/misc.c:786 #, c-format msgid "bad window name value in %s state info" msgstr "nombre de ventana no válido en la información de estado %s" #: ../src/misc.c:1014 msgid "could not send message to background image helper" msgstr "no fue posible enviar mensaje para el auxiliar de imagen de fondo" #: ../src/resources.c:41 #, c-format msgid "could not parse color \"%s\"" msgstr "no fue posible procesar el color \"%s\"" #: ../src/resources.c:45 #, c-format msgid "could not allocate color \"%s\"" msgstr "no fue posible asignar color \"%s\"" #: ../src/rootmenu.c:179 ../src/rootmenu.c:180 msgid "Exit" msgstr "Salir" #: ../src/rootmenu.c:180 msgid "Exit window manager?" msgstr "¿Salir del gestor de ventanas?" #: ../src/rootmenu.c:222 msgid "Kill X session" msgstr "Cerrar sesión X" #: ../src/rootmenu.c:223 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "¿Cerrar sesión del sistema de ventanas?\n" "(se cerrarán todas las aplicaciones)" #: ../src/rootmenu.c:451 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "" "%s:especificación de atajo en el teclado no válida \"%s\" para entrada %s" #: ../src/rootmenu.c:459 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:tecla no válida en el atajo \"%s\" para entrada %s" #: ../src/rootmenu.c:493 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: '\"' desemparejado en el fichero de menú" #: ../src/rootmenu.c:542 #, c-format msgid "%s: missing command" msgstr "%s: comando perdido" #: ../src/rootmenu.c:592 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "especificación de OPEN_MENU no válida: %s" #: ../src/rootmenu.c:647 #, c-format msgid "%s:could not stat menu" msgstr "%s:no fue posible acceder al menu" #: ../src/rootmenu.c:655 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:no fue posible acceder al menú: %s" #: ../src/rootmenu.c:671 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "demasiados parámetros en OPEN_MENU: %s" #: ../src/rootmenu.c:713 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Hay más de un comando WORKSPACE_MENU en el menú de aplicaciones.\n" "Sólo se permite uno." #: ../src/rootmenu.c:744 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "Hay más de un comando WINDOWS_MENU en el menú de aplicaciones. Sólo se " "permite uno." #: ../src/rootmenu.c:749 msgid "Window List" msgstr "Lista de ventanas" #: ../src/rootmenu.c:776 ../src/rootmenu.c:793 ../src/rootmenu.c:801 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:parámetro inexistente en la orden de menú \"%s\"" #: ../src/rootmenu.c:865 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:comando desconocido \"%s\" en la configuración del menú." #: ../src/rootmenu.c:872 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:no puede añadir atajo para entrada \"%s\"" #: ../src/rootmenu.c:1014 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:excedido el tamaño máximo de línea en el menú de configuración: %s" #: ../src/rootmenu.c:1035 ../src/rootmenu.c:1120 ../src/rootmenu.c:1214 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:falta comando en el menú de configuración: %s" #: ../src/rootmenu.c:1062 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:error de sintaxis en el fichero del menú:falta un END" #: ../src/rootmenu.c:1088 ../src/rootmenu.c:1182 msgid "could not make arguments for menu file preprocessor" msgstr "" "no fue posible crear parámetros para el preprocesador del fichero del menú" #: ../src/rootmenu.c:1094 ../src/rootmenu.c:1189 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s:no se pudo abrir/preprocesar el fichero de menú" #: ../src/rootmenu.c:1105 ../src/rootmenu.c:1199 #, c-format msgid "%s:could not open menu file" msgstr "%s:no se pudo abrir el fichero del menú" #: ../src/rootmenu.c:1131 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:fichero de menú no válido. Falta el comando MENU" #: ../src/rootmenu.c:1139 msgid "error reading preprocessed menu data" msgstr "error leyendo datos de menú preprocesados" #: ../src/rootmenu.c:1225 #, c-format msgid "%s:no title given for the root menu" msgstr "%s:falta el título del menú raíz" #: ../src/rootmenu.c:1306 ../src/rootmenu.c:1378 ../src/rootmenu.c:1417 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "memoria insuficiente durante la construcción del menú de directorio %s" #: ../src/rootmenu.c:1315 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:no se pudo acceder al fichero \"%s\" en el menú de directorio" #: ../src/rootmenu.c:1467 msgid "Commands" msgstr "Comandos" #: ../src/rootmenu.c:1470 msgid "Restart" msgstr "Reiniciar" #: ../src/rootmenu.c:1471 msgid "Exit..." msgstr "Salir..." #: ../src/rootmenu.c:1510 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "" "no se pudo encontrar el fichero de menú \"%s\" indicado en WMRootMenu" #: ../src/rootmenu.c:1516 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "" "no se pudo acceder al menú \"%s\" indicado en WMRootMenu" #: ../src/rootmenu.c:1528 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "utilizando el menú por defecto \"%s\" ya que no se encontró el menú " "indicado en WMRootMenu" #: ../src/rootmenu.c:1551 ../src/rootmenu.c:1625 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:error de formato en la configuración de menú raíz \"%s\"" #: ../src/rootmenu.c:1702 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "No se pudo cargar el menú de aplicaciones. Mire la salida\n" "en la consola para una descripción detallada de los errores." #: ../src/screen.c:685 #, c-format msgid "could not initialize graphics library context: %s" msgstr "no se pudo inicializar contexto de la biblioteca gráfica: %s" #: ../src/screen.c:711 #, c-format msgid "could not initialize WINGs widget set" msgstr "no se pudo inicializar el conjunto de elementos WINGs" #: ../src/screen.c:1006 #, c-format msgid "could not save session state in %s" msgstr "no se pudo guardar el estado de la sesión en %s" #: ../src/session.c:151 ../src/wdefaults.c:557 ../src/winspector.c:410 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "no puede convertir \"%s\" a un valor booleano" #: ../src/stacking.c:75 msgid "could not get window list!!" msgstr "¡¡no se pudo obtener la lista de ventanas!!" #: ../src/startup.c:177 #, c-format msgid "internal X error: %s" msgstr "error interno de X: %s" #: ../src/startup.c:672 ../src/startup.c:689 ../src/startup.c:695 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "" "no se pudo leer el dominio \"%s\" de la base de datos de las preferencias " "por defecto" #: ../src/startup.c:681 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16 instead" msgstr "" "el tamaño del ícono está configurado a %i, pero es demasiado pequeño. " "Utilizando 16 en su lugar" #: ../src/startup.c:712 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "XKB no está soportado. KbdModeLock deshabilitado automáticamente." #: ../src/startup.c:731 msgid "it seems that there is already a window manager running" msgstr "parece que ya se está ejecutando un gestor de ventanas" #: ../src/startup.c:737 #, c-format msgid "could not manage screen %i" msgstr "no se pudo gestionar la ventana %i" #: ../src/startup.c:794 msgid "could not manage any screen" msgstr "no se pudo gestionar ninguna ventana" #: ../src/switchmenu.c:129 msgid "Windows" msgstr "Ventanas" #: ../src/texture.c:272 ../src/texture.c:310 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "" "no se pudo encontrar el fichero de imagen \"%s\" utilizado como textura." #: ../src/texture.c:277 ../src/texture.c:315 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "no se pudo cargar el mapa de bits de textura \"%s\":%s" #: ../src/texture.c:457 msgid "could not allocate image buffer" msgstr "no se pudo asignar un buffer de imagen" #: ../src/wdefaults.c:415 #, c-format msgid "could not find icon file \"%s\"" msgstr "no se encontró el fichero de icono \"%s\"" #: ../src/window.c:2756 ../src/window.c:2914 #, c-format msgid "" "The NumLock, ScrollLock or similar key seems to be turned on. Turn it off or " "some mouse actions and keyboard shortcuts will not work." msgstr "" "La tecla NumLock, ScrollLock o similar parece estar activada." "Desactívela o algunas acciones del ratón y atajo de teclado no funcionarán." #: ../src/winmenu.c:121 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "La aplicación será finalizada (kill).\n" "Se perderá cualquier modificación no guardada.\n" "Confirme por favor." #: ../src/winmenu.c:271 ../src/winmenu.c:280 msgid "Set Shortcut" msgstr "Definir atajo" #: ../src/winmenu.c:354 ../src/winmenu.c:394 msgid "could not create submenu for window menu" msgstr "no se pudo crear submenú para el menú de ventanas" #: ../src/winmenu.c:398 msgid "Keep on top" msgstr "Mantener en primer plano" #: ../src/winmenu.c:402 msgid "Keep at bottom" msgstr "Mantener al fondo" #. #. * 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:424 ../src/winmenu.c:519 msgid "Maximize" msgstr "Maximizar" #: ../src/winmenu.c:427 ../src/winmenu.c:503 msgid "Miniaturize" msgstr "Minimizar" #: ../src/winmenu.c:430 ../src/winmenu.c:537 msgid "Shade" msgstr "Sombrear" #: ../src/winmenu.c:436 msgid "Resize/Move" msgstr "Redimensionar/Mover" #: ../src/winmenu.c:439 msgid "Select" msgstr "Seleccionar" #: ../src/winmenu.c:442 msgid "Move To" msgstr "Mover a" #: ../src/winmenu.c:447 msgid "Attributes..." msgstr "Atributos..." #: ../src/winmenu.c:449 msgid "Options" msgstr "Opciones" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/winmenu.c:457 msgid "Close" msgstr "Cerrar" #: ../src/winmenu.c:497 msgid "Deminiaturize" msgstr "Restaurar" #: ../src/winmenu.c:513 msgid "Unmaximize" msgstr "Desmaximizar" #: ../src/winmenu.c:531 msgid "Unshade" msgstr "Quitar sombra" #: ../src/winspector.c:350 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "No se encontró el icono \"%s\" indicado para esta ventana" #: ../src/winspector.c:365 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "No se puedo abrir el icono indicado \"%s\":%s" #: ../src/winspector.c:1067 #, c-format msgid "Inspecting %s.%s" msgstr "Inspeccionando %s.%s" #: ../src/winspector.c:1090 msgid "Click in the window you wish to inspect." msgstr "Haga click en la ventana que desea inspeccionar." #: ../src/winspector.c:1122 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "La configuración se aplicará a todas\n" "las ventanas que tengan su propiedad\n" "WM_CLASS con el nombre seleccionado\n" "arriba, cuando se guarde." #: ../src/winspector.c:1147 msgid "Save" msgstr "Guardar" #: ../src/winspector.c:1155 msgid "Apply" msgstr "Aplicar" #: ../src/winspector.c:1161 msgid "Reload" msgstr "Recargar" #: ../src/winspector.c:1170 ../src/winspector.c:1180 msgid "Window Specification" msgstr "Especificación de Ventana" #: ../src/winspector.c:1171 msgid "Window Attributes" msgstr "Atributos de Ventana" #: ../src/winspector.c:1172 msgid "Advanced Options" msgstr "Opciones Avanzadas" #: ../src/winspector.c:1173 msgid "Icon and Initial Workspace" msgstr "Icono y Ãrea de Trabajo Inicial" #: ../src/winspector.c:1174 msgid "Application Specific" msgstr "Aplicación Específica" #: ../src/winspector.c:1187 msgid "Defaults for all windows" msgstr "Preferencias predeterminadas para todas las ventanas" #: ../src/winspector.c:1240 msgid "Select window" msgstr "Seleccionar ventana" #: ../src/winspector.c:1253 msgid "Attributes" msgstr "Atributos" #: ../src/winspector.c:1264 msgid "Disable titlebar" msgstr "Deshabilitar barra de título" #: ../src/winspector.c:1266 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Retira la barra de título de la ventana.\n" "Para acceder al menú de órdenes de ventana en una ventana\n" "que no tiene barra de título, presione Control+Esc (o\n" "el atajo equivalente, si usted modificó la configuración\n" "de las teclas)." #: ../src/winspector.c:1272 msgid "Disable resizebar" msgstr "Deshabilitar barra de tamaño" #: ../src/winspector.c:1274 msgid "Remove the resizebar of this window." msgstr "Retirar la barra de tamaño de esta ventana." #: ../src/winspector.c:1277 msgid "Disable close button" msgstr "Deshabilitar botón de cerrar" #: ../src/winspector.c:1279 msgid "Remove the `close window' button of this window." msgstr "Retira el botón de `cerrar ventana' de la ventana." #: ../src/winspector.c:1282 msgid "Disable miniaturize button" msgstr "Deshabilitar botón minimizar" #: ../src/winspector.c:1284 msgid "Remove the `miniaturize window' button of the window." msgstr "Retira el botón `minimizar ventana' de la ventana." #: ../src/winspector.c:1287 msgid "Disable border" msgstr "Deshabilitar borde" #: ../src/winspector.c:1289 msgid "Remove the 1 pixel black border around the window." msgstr "Retirar el borde negro de 1 pixel alrededor de la ventana." #: ../src/winspector.c:1292 msgid "Keep on top (floating)" msgstr "Mantener en primer plano (flotante)" #: ../src/winspector.c:1294 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "Mantiene la ventana sobre todas las otras,\n" "no permitiendo que la cubran." #: ../src/winspector.c:1297 msgid "Keep at bottom (sunken)" msgstr "Mantener al fondo (hundido)" #: ../src/winspector.c:1299 msgid "Keep the window under all other windows." msgstr "Mantiene la ventana por debajo de todas las demás." #: ../src/winspector.c:1304 msgid "Make window present in all workspaces." msgstr "Hacer presente la ventana en todas las áreas de trabajo." #: ../src/winspector.c:1307 msgid "Start miniaturized" msgstr "Iniciar minimizado" #: ../src/winspector.c:1309 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "Hacer que la ventana sea automáticamente minimizada\n" "la primera vez que se muestre." #: ../src/winspector.c:1312 msgid "Start maximized" msgstr "Iniciar maximizado" #: ../src/winspector.c:1314 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "Hacer que la ventana sea automáticamente maximizada\n" "la primera vez que se muestre." #: ../src/winspector.c:1317 msgid "Full screen maximization" msgstr "Maximizar a pantalla completa" #: ../src/winspector.c:1319 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Hacer que la ventana utilice toda la pantalla cuando sea\n" "maximizada. La barra de título y de tamaño serán \n" "desplazadas fuera de la pantalla." #: ../src/winspector.c:1335 msgid "Advanced" msgstr "Avanzado" #: ../src/winspector.c:1352 msgid "Do not bind keyboard shortcuts" msgstr "No usar atajos de teclado" #: ../src/winspector.c:1354 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "No usar los atajos de teclado de Window Maker cuando\n" "esta ventana esté activa. Esto permitirá que la\n" "ventana reciba todas las combinaciones de teclas\n" "sin importar su configuración de atajos." #: ../src/winspector.c:1360 msgid "Do not bind mouse clicks" msgstr "No asociar clicks del ratón" #: ../src/winspector.c:1362 #, c-format msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you have\n" "configured)." msgstr "" "No asociar acciones de ratón, tal como `Alt'+arrastre\n" "en la ventana (cuando Alt es el modificador que usted\n" "configuró)." #: ../src/winspector.c:1366 msgid "Do not show in the window list" msgstr "No mostrar en la lista de ventanas" #: ../src/winspector.c:1368 msgid "Do not list the window in the window list menu." msgstr "No mostrar esta ventana en el menú de lista de ventanas." #: ../src/winspector.c:1371 #, c-format msgid "Do not show in the switch panel" msgstr "No mostrar en panel de cambio de ventanas" #: ../src/winspector.c:1373 msgid "Do not include in switchpanel while alternating windows." msgstr "No incluir en el panel de cambio de ventanas cuando las ventanas se alternen." #: ../src/winspector.c:1376 msgid "Do not let it take focus" msgstr "No dejar que sea la ventana activa" #: ../src/winspector.c:1378 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "No permitir que la ventana tome el foco del teclado\n" "cuando haga click sobre ella." #: ../src/winspector.c:1381 msgid "Keep inside screen" msgstr "Mantener dentro de la pantalla" #: ../src/winspector.c:1383 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "No permitir que la ventana se mueva totalmente afuera\n" "de la pantalla. Para compatibilidad de fallos.\n" #: ../src/winspector.c:1387 msgid "Ignore 'Hide Others'" msgstr "Ignorar 'Ocultar Otras'" #: ../src/winspector.c:1389 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "No esconder esta ventana cuando se utilice\n" "la orden `Ocultar Otras'." #: ../src/winspector.c:1392 msgid "Ignore 'Save Session'" msgstr "Ignorar 'Guardar sesión'" #: ../src/winspector.c:1394 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "No guardar la aplicación asociada en el estado de la sesión\n" "para que no sea reiniciada junto con otras aplicaciones\n" "cuando se inicie Window Maker." #: ../src/winspector.c:1399 msgid "Emulate application icon" msgstr "Emular icono de aplicación" #: ../src/winspector.c:1401 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Hacer que esta ventana actúe como una aplicación que\n" "proporcione suficiente información a Window Maker\n" "para crear un icono de aplicación dockable." #: ../src/winspector.c:1406 msgid "Focus across workspaces" msgstr "Foco a través de áreas de trabajo" #: ../src/winspector.c:1408 msgid "" "Allow Window Maker to switch workspace to satisfy\n" "a focus request (annoying)." msgstr "" "Permitir a Window Maker cambiar el área de trabajo\n" "para satisfacer la solicitud de foco (molesto)." #: ../src/winspector.c:1412 #, c-format msgid "Do not let it be minimized" msgstr "No dejar que sea minimizada" #: ../src/winspector.c:1414 #, c-format msgid "" "Do not let the window of this application be\n" "minimized.\n" msgstr "No permitir a la ventana de esta\n" "aplicación ser minimizada.\n" #: ../src/winspector.c:1419 msgid "Disable language button" msgstr "Deshabilitar botón de idioma" #: ../src/winspector.c:1421 msgid "Remove the `toggle language' button of the window." msgstr "Retirar el botón `cambiar idioma' de la ventana." #: ../src/winspector.c:1438 msgid "Miniwindow Image" msgstr "Imagen de la Miniventana" #: ../src/winspector.c:1465 msgid "Icon filename:" msgstr "Nombre del fichero de icono:" #: ../src/winspector.c:1476 msgid "Ignore client supplied icon" msgstr "Ignorar el icono proporcionado por el cliente" #: ../src/winspector.c:1482 msgid "Initial Workspace" msgstr "Ãrea de trabajo inicial" #: ../src/winspector.c:1484 msgid "The workspace to place the window when it'sfirst shown." msgstr "" "El área de trabajo dónde colocar la ventana la primera vez que se muestre." #: ../src/winspector.c:1490 msgid "Nowhere in particular" msgstr "Ningún sitio en particular" #: ../src/winspector.c:1507 msgid "Application Attributes" msgstr "Atributos de Aplicación" #: ../src/winspector.c:1518 msgid "Start hidden" msgstr "Iniciar oculto" #: ../src/winspector.c:1520 msgid "Automatically hide application when it's started." msgstr "Ocultar automáticamente la aplicación cuando sea iniciada." #: ../src/winspector.c:1523 msgid "No application icon" msgstr "Sin icono de aplicación" #: ../src/winspector.c:1525 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Deshabilitar el icono de aplicación de la aplicación.\n" "Observe que ya no podrá ponerlo en el dock,\n" "y que los iconos que ya estén en el dock\n" "dejarán de funcionar correctamente." #: ../src/winspector.c:1531 msgid "Shared application icon" msgstr "Icono de aplicación compartido" #: ../src/winspector.c:1533 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "Usar un único icono de aplicación compartido para todas\n" "las instancias de esta aplicación.\n" #: ../src/workspace.c:93 ../src/workspace.c:94 ../src/workspace.c:660 #, c-format msgid "Workspace %i" msgstr "Ãrea de trabajo %i" #: ../src/workspace.c:704 msgid "Workspaces" msgstr "Ãreas de trabajo" #: ../src/workspace.c:706 msgid "could not create Workspace menu" msgstr "no se pudo crear menú de Ãrea de trabajo" #: ../src/workspace.c:713 msgid "New" msgstr "Nuevo" #: ../src/workspace.c:714 msgid "Destroy Last" msgstr "Destruir el último" WindowMaker-0.95.5/po/fr.po0000644000175000017500000016131612214432632012356 00000000000000# French Message file for Window Maker # Last Update: version 0.80.0 # # Update History: # Maintained by Antoine Hulin # previously maintained by Bastien Nocera # msgid "" msgstr "" "Project-Id-Version: 0.80.0\n" "POT-Creation-Date: 2003-05-02 15:39+0200\n" "PO-Revision-Date: 2002-01-21 07:08+0100\n" "Last-Translator: Antoine Hulin \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../src/appicon.c:415 ../src/dialog.c:295 ../src/dock.c:3357 #: ../src/dockedapp.c:231 ../src/main.c:273 ../src/rootmenu.c:1859 #: ../src/winspector.c:389 ../src/winspector.c:406 msgid "Error" msgstr "Erreur" #: ../src/appicon.c:416 msgid "Could not open specified icon file" msgstr "Impossible d'ouvrir l'icône spécifiée." #: ../src/appicon.c:417 ../src/dialog.c:192 ../src/dialog.c:295 #: ../src/dialog.c:724 ../src/dialog.c:1776 ../src/dock.c:532 #: ../src/dock.c:540 ../src/dock.c:564 ../src/dock.c:3358 #: ../src/dockedapp.c:232 ../src/dockedapp.c:427 ../src/main.c:273 #: ../src/rootmenu.c:1863 ../src/winspector.c:390 ../src/winspector.c:407 msgid "OK" msgstr "Accepter" #: ../src/appicon.c:445 ../src/dock.c:262 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " va être arrêté.\n" "Les changements non sauvegardés seront perdus.\n" "Confirmez-vous ?" #: ../src/appicon.c:453 ../src/dock.c:281 ../src/winmenu.c:125 msgid "Kill Application" msgstr "Arrêter l'application" #: ../src/appicon.c:454 ../src/dock.c:282 ../src/winmenu.c:127 msgid "Yes" msgstr "Oui" #: ../src/appicon.c:454 ../src/dock.c:282 ../src/winmenu.c:127 msgid "No" msgstr "Non" #: ../src/appicon.c:484 ../src/dock.c:1184 ../src/dock.c:3523 msgid "Unhide Here" msgstr "Montrer ici" #: ../src/appicon.c:485 ../src/appicon.c:510 ../src/dock.c:1186 #: ../src/dock.c:1188 ../src/dock.c:3535 ../src/winmenu.c:467 msgid "Hide" msgstr "Masquer" #: ../src/appicon.c:486 msgid "Set Icon..." msgstr "Associer une icône..." #: ../src/appicon.c:487 ../src/dock.c:1192 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 ../src/winmenu.c:522 msgid "Kill" msgstr "Terminer" #: ../src/appicon.c:508 ../src/dock.c:3533 msgid "Unhide" msgstr "Montrer" #: ../src/application.c:398 #, c-format msgid "recreating missing icon '%s'" msgstr "Création de l'icône manquante « %s »." #: ../src/defaults.c:924 ../src/defaults.c:1013 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Le domaine %s (%s) de la configuration générale est corrompu !" #: ../src/defaults.c:929 #, c-format msgid "could not load domain %s from global defaults database" msgstr "Le domaine %s est illisible dans la configuration générale." #: ../src/defaults.c:951 ../src/startup.c:884 ../src/startup.c:902 #: ../src/startup.c:908 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "Le domaine « %s » est introuvable dans la configuration par défaut." #: ../src/defaults.c:997 ../src/defaults.c:1101 ../src/defaults.c:1142 #: ../src/defaults.c:1198 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Le domaine %s (%s) de la configuration par défaut est corrompu !" #: ../src/defaults.c:1002 ../src/defaults.c:1121 ../src/defaults.c:1178 #: ../src/defaults.c:1207 ../src/menureader.c:397 #, c-format msgid "could not load domain %s from user defaults database" msgstr "" "Le domaine %s est introuvable dans la configuration par défaut de " "l'utilisateur." #: ../src/defaults.c:1032 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "Le domaine %s est introuvable dans la configuration générale (%s)." #: ../src/defaults.c:1168 ../src/screen.c:425 #, c-format msgid "could not load logo image for panels: %s" msgstr "Le chargement des logos pour les fenêtres de messages a échoué : %s" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1416 ../src/defaults.c:1558 ../src/defaults.c:1670 #: ../src/defaults.c:2149 ../src/defaults.c:2166 ../src/defaults.c:2211 #: ../src/defaults.c:2258 ../src/defaults.c:2731 ../src/wdefaults.c:571 #: ../src/wdefaults.c:607 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Format incorrect pour la clé « %s ». Le format devrait être %s." #: ../src/defaults.c:1418 ../src/defaults.c:1499 ../src/defaults.c:1531 #: ../src/defaults.c:1563 ../src/defaults.c:1576 ../src/defaults.c:1591 #: ../src/defaults.c:1605 ../src/defaults.c:1675 ../src/defaults.c:1687 #: ../src/defaults.c:2154 ../src/defaults.c:2171 ../src/defaults.c:2184 #: ../src/defaults.c:2216 ../src/defaults.c:2232 ../src/defaults.c:2263 #: ../src/defaults.c:2350 ../src/defaults.c:2736 ../src/defaults.c:2747 #, c-format msgid "using default \"%s\" instead" msgstr "La valeur utilisée en remplacement est « %s »." #: ../src/defaults.c:1449 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "Valeur incorrecte pour la clé « %s ». Les valeurs autorisées sont %s." #: ../src/defaults.c:1494 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "Impossible de convertir « %s » en booléen (pour la clé « %s »)." #: ../src/defaults.c:1528 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "Impossible de convertir « %s » en valeur entière (pour la clé « %s »)." #: ../src/defaults.c:1571 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Nombre d'éléments incorrect pour la clé « %s »." #: ../src/defaults.c:1586 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Mauvaise valeur pour la clé « %s ». Il devrait y avoir une coordonnée." #: ../src/defaults.c:1601 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "" "Impossible de convertir le tableau de la clé « %s » en valeurs entières." #: ../src/defaults.c:1799 ../src/defaults.c:1831 ../src/defaults.c:1847 #: ../src/defaults.c:1876 ../src/defaults.c:1899 ../src/defaults.c:1952 #: ../src/defaults.c:1992 ../src/defaults.c:2030 ../src/defaults.c:2046 #, c-format msgid "\"%s\" is not a valid color name" msgstr "« %s » n'est pas un nom de couleur valide." #: ../src/defaults.c:1812 ../src/defaults.c:1864 msgid "bad number of arguments in gradient specification" msgstr "Mauvais nombre d'arguments dans la description du dégradé." #: ../src/defaults.c:1925 msgid "too few arguments in multicolor gradient specification" msgstr "Trop peu d'arguments dans la description du dégradé multicolore." #: ../src/defaults.c:2019 msgid "bad number of arguments in textured gradient specification" msgstr "Mauvais nombre d'arguments dans la description du dégradé texturé." #: ../src/defaults.c:2062 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "L'opacité du dégradé texturé doit être entre 0 et 255 et non « %s »." #: ../src/defaults.c:2122 #, c-format msgid "could not initialize library %s" msgstr "L'initialisation de la bibliothèque %s a échoué." #: ../src/defaults.c:2125 #, c-format msgid "could not find function %s::%s" msgstr "La fonction %s::%s est introuvable." #: ../src/defaults.c:2132 #, c-format msgid "invalid texture type %s" msgstr "Type de texture invalide : %s." #: ../src/defaults.c:2179 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Erreur dans la description de la texture pour la clé « %s »." #: ../src/defaults.c:2228 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Mauvais type de fond d'écran. Il devrait s'agir d'une texture." #: ../src/defaults.c:2276 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "" "Mauvais type de fond d'écran pour le bureau %i. Il devrait s'agir d'une " "texture." #: ../src/defaults.c:2318 msgid "could not load any usable font!!!" msgstr "Impossible de charger une police utilisable !" #: ../src/defaults.c:2345 #, c-format msgid "could not get color for key \"%s\"" msgstr "La lecture de la couleur pour la clé « %s » a échoué." #: ../src/defaults.c:2403 ../src/rootmenu.c:531 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s : « %s » n'est pas un modificateur de touche valide." #: ../src/defaults.c:2415 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s : « %s » n'est pas un raccourci clavier valide." #: ../src/defaults.c:2422 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s : touche invalide dans le raccourci « %s »." #: ../src/defaults.c:2447 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s : modificateur de touche « %s » invalide." #: ../src/defaults.c:2479 #, c-format msgid "could not load image in option %s: %s" msgstr "Le chargement de l'image pour la clé %s a échoué : %s" #: ../src/defaults.c:2596 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "Impossible d'ouvrir le fichier image « %s »." #: ../src/defaults.c:2599 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "« %s » n'est pas une image valide." #: ../src/defaults.c:2602 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "Plus assez de mémoire pendant la lecture de l'image « %s »." #: ../src/defaults.c:2641 ../src/defaults.c:2674 msgid "bad number of arguments in cursor specification" msgstr "Nombre d'arguments incorrect dans la définition du curseur." #: ../src/defaults.c:2657 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "Nom de curseur prédéfini inconnu « %s »." #: ../src/defaults.c:2684 ../src/defaults.c:2696 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "Le fichier image « %s » du curseur est introuvable." #: ../src/defaults.c:2743 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Erreur dans la description de texture pour la clé « %s »" #: ../src/defaults.c:2828 msgid "could not render texture for icon background" msgstr "L'affichage de la texture de fond d'icône a échoué." #: ../src/dialog.c:147 msgid "Save workspace state" msgstr "Enregistrer l'état des bureaux" #: ../src/dialog.c:192 ../src/dialog.c:731 ../src/dock.c:564 #: ../src/dockedapp.c:432 ../src/rootmenu.c:198 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 msgid "Cancel" msgstr "Annuler" #: ../src/dialog.c:290 msgid "Could not open directory " msgstr "Impossible d'accéder au répertoire " #: ../src/dialog.c:345 msgid "Could not load image file " msgstr "Impossible de lire l'image." #: ../src/dialog.c:658 msgid "Directories" msgstr "Répertoires" #: ../src/dialog.c:667 msgid "Icons" msgstr "Icônes" #: ../src/dialog.c:700 msgid "Preview" msgstr "Aperçu" #: ../src/dialog.c:713 msgid "File Name:" msgstr "Fichier :" #: ../src/dialog.c:737 msgid "Choose File" msgstr "Choisissez un fichier" #: ../src/dialog.c:756 ../src/dialog.c:758 msgid "Icon Chooser" msgstr "Sélecteur d'icônes" #: ../src/dialog.c:1192 ../src/dialog.c:1301 #, c-format msgid "Version %s" msgstr "Version %s" #: ../src/dialog.c:1299 msgid "Window Manager for X" msgstr "Gestionnaire de fenêtres" #: ../src/dialog.c:1323 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Mode graphique 0x%x : %s %i bpp " #: ../src/dialog.c:1331 msgid "(32 thousand colors)\n" msgstr "(32 000 couleurs).\n" #: ../src/dialog.c:1334 msgid "(64 thousand colors)\n" msgstr "(64 000 couleurs).\n" #: ../src/dialog.c:1338 msgid "(16 million colors)\n" msgstr "(16 millions de couleurs).\n" #: ../src/dialog.c:1341 #, c-format msgid "(%d colors)\n" msgstr "(%d couleurs)\n" #: ../src/dialog.c:1351 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "Mémoire allouée : %i ko. Mémoire utilisée : %i ko.\n" #: ../src/dialog.c:1358 msgid "Supported image formats: " msgstr "Formats d'images acceptés : " #: ../src/dialog.c:1365 msgid "" "\n" "Additional support for: " msgstr "" "\n" "Support complémentaire : " #: ../src/dialog.c:1388 msgid " and " msgstr " et " #: ../src/dialog.c:1398 msgid "" "\n" "Sound disabled" msgstr "" "\n" "Son désactivé" #: ../src/dialog.c:1400 msgid "" "\n" "Sound enabled" msgstr "" "\n" "Son activé" #: ../src/dialog.c:1429 msgid "Info" msgstr "Information" #: ../src/dialog.c:1453 msgid "Merry Christmas!" msgstr "Joyeux Noël !" #: ../src/dialog.c:1523 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" " Window Maker est un logiciel libre ; il peut être redistribué\n" "et/ou modifié selon les termes de la Licence Publique Générale du\n" "projet GNU (GNU GPL), telle que publiée par la Free Software\n" "Foundation (version 2 ou toute version postérieure).\n" "\n" " Window Maker est distribué dans l'espoir qu'il sera utile, mais\n" "sans aucune garantie, sans même la garantie implicite d'une possible\n" "valeur marchande ou d'une adéquation à un besoin particulier.\n" "Consultez la Licence Publique Générale du projet GNU pour plus de\n" "détails.\n" "\n" " Vous devriez avoir reçu une copie de la Licence Publique\n" "Générale avec ce programme ; dans le cas contraire, écrivez à la\n" "Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,\n" "Boston, MA 02110-1301, USA." #: ../src/dialog.c:1547 msgid "Legal" msgstr "Informations légales" #: ../src/dialog.c:1699 ../src/startup.c:394 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "" "Impossible d'ouvrir la boîte de dialogue dédiée aux incidents. Abandon." #: ../src/dialog.c:1725 msgid "Fatal error" msgstr "Erreur fatale" #: ../src/dialog.c:1736 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker a reçu le signal %i\n" "(%s)." #: ../src/dialog.c:1739 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker a reçu le signal %i." #: ../src/dialog.c:1748 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " Cette erreur est probablement due à un bogue. Remplissez le formulaire " "BUGFORM et envoyez-le à bugs@windowmaker.info." #: ../src/dialog.c:1757 msgid "What do you want to do now?" msgstr "Que voulez-vous faire maintenant ?" #: ../src/dialog.c:1763 msgid "Select action" msgstr "Choisissez une action" #: ../src/dialog.c:1764 msgid "Abort and leave a core file" msgstr "Abandonner et créer une image mémoire (fichier « core »)." #: ../src/dialog.c:1765 msgid "Restart Window Maker" msgstr "Redémarrer Window Maker" #: ../src/dialog.c:1766 msgid "Start alternate window manager" msgstr "Démarrer un autre gestionnaire de fenêtres" #: ../src/dialog.c:1944 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop environment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" "Window Maker fait partie du projet GNUstep.\n" "Le projet GNUstep vise à créer une mise en\n" "oeuvre libre de la spécification OpenStep(tm)\n" "(une boîte à outils orientée objet pour le\n" "développement d'applications graphiques\n" "évoluées et multi-plates-formes). De plus,\n" "un environnement pour l'utilisateur et le\n" "développeur sera créé à partir de cette boîte\n" "à outils. Visitez la page : www.gnustep.org" #: ../src/dialog.c:1967 msgid "About GNUstep" msgstr "À propos de GNUstep" #: ../src/dock.c:211 #, c-format msgid "Type the name for workspace %i:" msgstr "Entrez un nom pour le bureau %i : " #: ../src/dock.c:212 ../src/dock.c:1148 ../src/dock.c:1151 ../src/dock.c:3441 msgid "Rename Workspace" msgstr "Renommer le bureau" #: ../src/dock.c:526 ../src/dock.c:534 msgid "Warning" msgstr "Attention" #: ../src/dock.c:527 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Certaines icônes ne peuvent être rendues omniprésentes. Assurez-vous " "qu'aucune autre icône n'est présente à la même place sur un autre bureau et " "que le Trombone n'est plein sur aucun bureau." #: ../src/dock.c:535 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "Cette icône ne peut être rendue omniprésente. Assurez-vous qu'aucune autre " "icône n'est présente à la même place sur un autre bureau et que le Trombone " "n'est plein sur aucun bureau." #: ../src/dock.c:562 msgid "Workspace Clip" msgstr "Trombone" #: ../src/dock.c:563 msgid "All selected icons will be removed!" msgstr "Toutes les icônes sélectionnées seront supprimées !" #: ../src/dock.c:614 ../src/dock.c:1163 ../src/dock.c:1165 ../src/dock.c:3477 msgid "Keep Icon" msgstr "Figer l'icône" #: ../src/dock.c:615 ../src/dock.c:2154 ../src/dock.c:2295 msgid "Type the command used to launch the application" msgstr "Entrez la commande utilisée pour lancer l'application" #: ../src/dock.c:971 #, c-format msgid "could not launch application %s\n" msgstr "Le lancement de l'application %s a échoué.\n" #: ../src/dock.c:1026 msgid "could not create workspace submenu for Clip menu" msgstr "La création du sous-menu Bureau pour le menu du Trombone a échoué." #: ../src/dock.c:1085 msgid "could not create options submenu for Clip menu" msgstr "La création d'un sous-menu Options pour le menu du Trombone a échoué." #: ../src/dock.c:1089 ../src/dock.c:1137 msgid "Keep on Top" msgstr "Toujours devant" #: ../src/dock.c:1095 msgid "Collapsed" msgstr "Fermé" #: ../src/dock.c:1101 msgid "Autocollapse" msgstr "Fermeture automatique" #: ../src/dock.c:1107 msgid "Autoraise" msgstr "Passer devant" #: ../src/dock.c:1113 msgid "Autoattract Icons" msgstr "Trombone magnétique" #: ../src/dock.c:1143 msgid "Clip Options" msgstr "Options du Trombone" #: ../src/dock.c:1153 msgid "Selected" msgstr "Sélectionnée(s)" #: ../src/dock.c:1158 ../src/dock.c:1161 ../src/dock.c:3468 msgid "Select All Icons" msgstr "Sélectionner les icônes" #: ../src/dock.c:1167 ../src/dock.c:1169 ../src/dock.c:3485 msgid "Move Icon To" msgstr "Déplacer l'icône vers" #: ../src/dock.c:1174 ../src/dock.c:1177 ../src/dock.c:3496 msgid "Remove Icon" msgstr "Supprimer l'icône" #: ../src/dock.c:1179 msgid "Attract Icons" msgstr "Attirer les icônes" #: ../src/dock.c:1182 msgid "Launch" msgstr "Lancer" #: ../src/dock.c:1190 msgid "Settings..." msgstr "Paramètres..." #: ../src/dock.c:1555 ../src/dock.c:1662 #, c-format msgid "bad value in docked icon state info %s" msgstr "Mauvaise valeur dans l'information %s sur l'état de l'icône dockée." #: ../src/dock.c:1670 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "Mauvaise valeur pour la position %i,%i de l'icône dockée." # Cette chaîne sera concaténée avec la suivante (Il y a trop d'icône...), il faut # donc un espace après le point. #: ../src/dock.c:1690 #, c-format msgid "bad value in dock state info:%s" msgstr "Mauvaise valeur dans l'information %s sur l'état du Dock. " #: ../src/dock.c:1936 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "Il y a trop d'icônes dans le Dock. Le surplus sera ignoré." #. icon->forced_dock = 1; #: ../src/dock.c:2153 ../src/dock.c:2294 msgid "Dock Icon" msgstr "Docker l'icône" #: ../src/dock.c:3355 #, c-format msgid "Could not execute command \"%s\"" msgstr "L'exécution de la commande « %s » a échoué." #: ../src/dock.c:3447 msgid "Toggle Omnipresent" msgstr "Changer l'omniprésence" #: ../src/dock.c:3452 ../src/kwm.c:637 ../src/winmenu.c:420 #: ../src/winspector.c:1375 msgid "Omnipresent" msgstr "Omniprésente" #: ../src/dock.c:3466 msgid "Unselect All Icons" msgstr "Désélectionner les icônes" #: ../src/dock.c:3475 msgid "Keep Icons" msgstr "Figer les icônes" #: ../src/dock.c:3483 msgid "Move Icons To" msgstr "Déplacer les icônes vers" #: ../src/dock.c:3494 msgid "Remove Icons" msgstr "Supprimer les icônes" #: ../src/dock.c:3525 ../src/kwm.c:643 msgid "Bring Here" msgstr "Attirer sur ce bureau" #: ../src/dockedapp.c:150 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "L'icône %s, utilisée dans une application dockée, est introuvable." #: ../src/dockedapp.c:230 #, c-format msgid "Could not open specified icon file: %s" msgstr "Impossible d'ouvrir l'icône « %s »." #: ../src/dockedapp.c:232 msgid "Ignore" msgstr "Ignorer" #: ../src/dockedapp.c:334 msgid "Start when Window Maker is started" msgstr "Lancer au démarrage de Window Maker" #: ../src/dockedapp.c:341 msgid "Lock (prevent accidental removal)" msgstr "Verrouiller (l'icône ne peut être enlevée)" #: ../src/dockedapp.c:345 msgid "Application path and arguments" msgstr "Chemin et arguments de l'application" #: ../src/dockedapp.c:358 msgid "Command for middle-click launch" msgstr "Commande du bouton central" #: ../src/dockedapp.c:372 #, c-format msgid "%s will be replaced with current selection" msgstr "%s sera remplacé par la sélection" #: ../src/dockedapp.c:377 msgid "Command for files dropped with DND" msgstr "Fichiers lâchés par glisser-déposer" #: ../src/dockedapp.c:391 #, c-format msgid "%d will be replaced with the file name" msgstr "%d sera remplacé par le nom du fichier" #: ../src/dockedapp.c:395 msgid "DND support was not compiled in" msgstr "Compilé sans le support glisser-déposer" #: ../src/dockedapp.c:400 msgid "Icon Image" msgstr "Icône" #: ../src/dockedapp.c:414 ../src/winspector.c:1513 msgid "Browse..." msgstr "Parcourir..." #: ../src/dockedapp.c:475 msgid "Docked Application Settings" msgstr "Paramètres de l'application dockée" #: ../src/framewin.c:647 ../src/framewin.c:742 ../src/menu.c:456 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "L'affichage de la texture %s a échoué." #: ../src/framewin.c:670 ../src/framewin.c:681 ../src/framewin.c:697 #: ../src/framewin.c:708 ../src/framewin.c:715 ../src/framewin.c:722 #: ../src/icon.c:350 ../src/menu.c:485 #, c-format msgid "error rendering image:%s" msgstr "Erreur lors de l'affichage de l'image « %s »." #: ../src/framewin.c:775 #, c-format msgid "error rendering image: %s" msgstr "Erreur lors de l'affichage de l'image « %s »." #: ../src/gnome.c:216 ../src/gnome.c:343 ../src/gnome.c:401 msgid "out of memory while updating GNOME hints" msgstr "" "Plus assez de mémoire pendant la mise à jour des extensions (hints) GNOME." #: ../src/icon.c:229 ../src/wdefaults.c:443 #, c-format msgid "error loading image file \"%s\": %s" msgstr "Erreur au chargement de l'image « %s ».: %s" #: ../src/icon.c:493 ../src/icon.c:502 #, c-format msgid "could not create directory %s" msgstr "La création du répertoire %s a échoué." #: ../src/icon.c:769 #, c-format msgid "could not find default icon \"%s\"" msgstr "L'icône par défaut « %s » est introuvable." #: ../src/icon.c:775 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "Le chargement de l'icône par défaut « %s » a échoué : %s" #. #. * 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/kwm.c:633 ../src/winmenu.c:443 ../src/winmenu.c:585 msgid "Maximize" msgstr "Taille maximale" #: ../src/kwm.c:634 ../src/winmenu.c:580 msgid "Unmaximize" msgstr "Taille normale" #: ../src/kwm.c:635 ../src/winmenu.c:451 ../src/winmenu.c:571 msgid "Miniaturize" msgstr "Miniaturiser" #: ../src/kwm.c:636 ../src/winmenu.c:566 msgid "Deminiaturize" msgstr "Restaurer" #: ../src/kwm.c:638 msgid "Not Omnipresent" msgstr "Ici seulement" #: ../src/kwm.c:639 msgid "Move" msgstr "Déplacer" #: ../src/kwm.c:640 msgid "Resize" msgstr "Dimensionner" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/kwm.c:641 ../src/rootmenu.c:248 ../src/winmenu.c:515 msgid "Close" msgstr "Fermer" #: ../src/kwm.c:642 ../src/winmenu.c:499 msgid "Move To" msgstr "Déplacer vers" #: ../src/kwm.c:1096 msgid "%a(Run Command,Type the command to run:)" msgstr "%a(Démarrer,Saisir la commande :)" #: ../src/main.c:222 msgid "failed to restart Window Maker." msgstr "Échec du redémarrage de Window Maker." #: ../src/main.c:225 #, c-format msgid "could not exec %s" msgstr "L'exécution de %s a échoué." #: ../src/main.c:271 msgid "Could not execute command: " msgstr "Échec à l'exécution de la commande : " #: ../src/main.c:428 #, c-format msgid "%s aborted.\n" msgstr "%s abandonné.\n" #: ../src/main.c:439 #, c-format msgid "Usage: %s [options]\n" msgstr "Usage : %s [options]\n" #: ../src/main.c:440 msgid "The Window Maker window manager for the X window system" msgstr "Le gestionnaire de fenêtres Window Maker pour X" #: ../src/main.c:442 msgid " -display host:dpy\tdisplay to use" msgstr " -display hôte:dpy\taffichage à utiliser" #: ../src/main.c:444 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tsans pré-traitement des fichiers de configuration" #: ../src/main.c:446 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tsans le Dock" #: ../src/main.c:447 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tsans le Trombone" #: ../src/main.c:448 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr "--no-autolaunch\tpas de démarrage automatique des applications" #: ../src/main.c:449 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tsans restaurer la session" #: ../src/main.c:451 msgid " --locale locale\tlocale to use" msgstr " --locale langue\t\tlangue à utiliser" #: ../src/main.c:453 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr " --create-stdcmap\tpalette de couleurs standard en mode PseudoColor" #: ../src/main.c:454 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tidentifiant du mode graphique à utiliser" #: ../src/main.c:455 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tni mise à jour ni sauvegarde de la configuration" #: ../src/main.c:456 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr "" " --no-polling\t\tpas de recherche périodique des changements de configuration" #: ../src/main.c:458 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tutilise un affichage synchrone" #: ../src/main.c:460 msgid " --version\t\tprint version and exit" msgstr " --version\t\taffiche la version et s'arrête" #: ../src/main.c:461 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\taffiche ce message" #: ../src/main.c:474 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "Le répertoire GNUstep (%s) de l'utilisateur est introuvable.\n" "Assurez-vous d'avoir correctement installé Window Maker et exécuté wmaker." "inst." #: ../src/main.c:479 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "Le répertoire GNUstep (%s) de l'utilisateur est introuvable." #: ../src/main.c:482 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "Erreur lors de la création du répertoire GNUstep. Assurez-vous d'avoir " "correctement installé Window Maker et exécuté wmaker.inst." #: ../src/main.c:485 #, c-format msgid "%s directory created with default configuration." msgstr "Répertoire %s créé avec la configuration par défaut." #: ../src/main.c:505 ../src/main.c:510 #, c-format msgid "%s:could not execute initialization script" msgstr "%s : échec du script d'initialisation." #: ../src/main.c:528 ../src/main.c:533 #, c-format msgid "%s:could not execute exit script" msgstr "%s : échec du script de sortie." #: ../src/main.c:661 ../src/main.c:669 ../src/main.c:677 ../src/main.c:697 #, c-format msgid "too few arguments for %s" msgstr "Trop peu d'arguments pour %s." #: ../src/main.c:681 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "Mauvaise valeur pour visualid : « %s »" #: ../src/main.c:705 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s : argument « %s » invalide\n" #: ../src/main.c:706 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Essayez « %s --help » pour plus d'informations\n" #: ../src/main.c:737 msgid "X server does not support locale" msgstr "Pas de gestion des langues dans le serveur X." #: ../src/main.c:741 msgid "cannot set locale modifiers" msgstr "Impossible de configurer X pour le support du français." #: ../src/main.c:757 #, c-format msgid "could not open display \"%s\"" msgstr "L'ouverture de l'affichage (display) %s a échoué." #: ../src/menu.c:1266 msgid "could not grab keyboard" msgstr "La réservation du clavier a échoué" #: ../src/menu.c:2607 #, c-format msgid "bad value in menus state info:%s" msgstr "Mauvaise valeur dans l'information %s sur l'état du menu." #: ../src/menureader.c:264 ../src/rootmenu.c:738 #, c-format msgid "%s:could not stat menu" msgstr "%s : échec de stat() pour le menu." #: ../src/menureader.c:341 ../src/menureader.c:380 #, c-format msgid "could not stat() menu file '%s'" msgstr "Échec de stat() pour le menu : %s" #: ../src/menureader.c:416 #, c-format msgid "could not find menu file '%s' referenced in WMRootMenu" msgstr "Le fichier de menu « %s » référencé dans WMRootMenu est introuvable." #: ../src/menureader.c:423 #, c-format msgid "could not find any usable menu files. Please check '%s'" msgstr "Aucun fichier de menu utilisable. Vérifiez « %s »." #: ../src/menureader.c:438 ../src/rootmenu.c:1673 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "Le menu référencé dans WMRootMenu n'a pu être trouvé, il sera remplacé par " "le menu par défaut « %s »." #: ../src/menureader.c:457 #, c-format msgid "" "invalid content in menu file '%s'.\n" "It should either be a property list menu or the path to the file, enclosed " "in \"." msgstr "" "Le contenu du fichier de menu « %s » est incorrect.\n" "Il devrait contenir une liste de propriétés (property list) ou le chemin du " "fichier encadré par \"." #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "Impossible de définir la valeur %s pour cpp." #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "Le mot de passe de l'UID %i est introuvable." #: ../src/misc.c:158 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "Votre machine est mal configurée. HOSTNAME a pour valeur %s." #: ../src/misc.c:164 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "Votre machine est mal configurée. HOST a pour valeur %s." #: ../src/misc.c:656 msgid "Program Arguments" msgstr "Arguments du programme" #: ../src/misc.c:657 msgid "Enter command arguments:" msgstr "Entrez les arguments de la commande :" #: ../src/misc.c:750 msgid "unable to get dropped data from DND drop" msgstr "Impossible de lire le glisser-déposer." #: ../src/misc.c:758 msgid "error getting dropped data from DND drop" msgstr "Erreur de lecture du glisser-déposer." #: ../src/misc.c:764 msgid "out of memory while getting data from DND drop" msgstr "Plus assez de mémoire pendant la lecture du glisser-déposer." #: ../src/misc.c:809 ../src/misc.c:949 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "Plus assez de mémoire pendant l'interprétation de « %s »." #: ../src/misc.c:863 msgid "out of memory during expansion of \"%w\"" msgstr "Plus assez de mémoire pendant l'interprétation de « %w »." #: ../src/misc.c:881 msgid "out of memory during expansion of \"%W\"" msgstr "Plus assez de mémoire pendant l'interprétation de « %W »." #: ../src/misc.c:897 msgid "out of memory during expansion of \"%a\"" msgstr "Plus assez de mémoire pendant l'interprétation de « %a »." #: ../src/misc.c:928 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "Plus assez de mémoire pendant l'interprétation de « %d »." #: ../src/misc.c:942 msgid "selection not available" msgstr "Sélection indisponible." #: ../src/misc.c:986 ../src/misc.c:992 #, c-format msgid "bad window name value in %s state info" msgstr "Nom de fenêtre incorrect dans les informations sur %s." #: ../src/misc.c:1249 msgid "could not send message to background image helper" msgstr "L'envoi de message au gestionnaire de fond d'écran a échoué." #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "Le chargement du masque « %s » a échoué. Aucun masque ne sera utilisé." #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "L'analyse de la couleur « %s » a échoué." #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "L'allocation de la couleur « %s » a échoué." #: ../src/rootmenu.c:196 ../src/rootmenu.c:198 msgid "Exit" msgstr "Quitter" #: ../src/rootmenu.c:197 msgid "Exit window manager?" msgstr "Quitter Window Maker ?" #: ../src/rootmenu.c:245 msgid "Close X session" msgstr "Fermer la session X" #: ../src/rootmenu.c:246 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "Fermer la session X-Window ?\n" "(Ceci fermera les applications sans enregistrer vos dernières modifications.)" #: ../src/rootmenu.c:261 msgid "Kill X session" msgstr "Terminer la session X" #: ../src/rootmenu.c:262 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Terminer la session X ?\n" "(Toutes les applications seront fermées.)" #: ../src/rootmenu.c:544 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "" "%s : description de raccourci clavier « %s » invalide pour l'entrée %s." #: ../src/rootmenu.c:552 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s : touche invalide dans le raccourci « %s » pour l'entrée %s." #: ../src/rootmenu.c:605 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s : « \" » manquant dans le fichier de menu." #: ../src/rootmenu.c:655 #, c-format msgid "%s: missing command" msgstr "%s : commande manquante." #: ../src/rootmenu.c:687 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "Description de OPEN_MENU invalide : %s" #: ../src/rootmenu.c:746 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s : échec de stat() pour le menu : %s" #: ../src/rootmenu.c:764 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "Trop de paramètres pour OPEN_MENU : %s" #: ../src/rootmenu.c:808 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Il y a plus d'une déclaration WORKSPACE_MENU dans le menu Applications. Une " "seule est autorisée." #: ../src/rootmenu.c:842 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "Il y a plus d'une déclaration WINDOW_MENU dans le menu Applications. Une " "seule est autorisée." #: ../src/rootmenu.c:847 msgid "Window List" msgstr "Liste des fenêtres" #: ../src/rootmenu.c:876 ../src/rootmenu.c:894 ../src/rootmenu.c:904 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s : paramètre manquant pour la commande de menu « %s »." #: ../src/rootmenu.c:972 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s : commande « %s » inconnue dans le fichier du menu." #: ../src/rootmenu.c:980 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s : impossible d'ajouter le raccourci pour l'entrée « %s »." #: ../src/rootmenu.c:1117 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s : ligne trop longue dans la description du menu %s." #: ../src/rootmenu.c:1139 ../src/rootmenu.c:1232 ../src/rootmenu.c:1335 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s : commande manquante dans la description du menu %s." #: ../src/rootmenu.c:1169 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "" "%s : erreur de syntaxe dans la description du menu, la déclaration END est " "manquante." #: ../src/rootmenu.c:1198 ../src/rootmenu.c:1299 msgid "could not make arguments for menu file preprocessor" msgstr "La création des arguments pour le pré-processeur a échoué." #: ../src/rootmenu.c:1205 ../src/rootmenu.c:1307 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s : échec à l'ouverture ou au traitement du fichier de menu." #: ../src/rootmenu.c:1217 ../src/rootmenu.c:1320 #, c-format msgid "%s:could not open menu file" msgstr "%s : l'ouverture du fichier de menu a échoué." #: ../src/rootmenu.c:1244 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s : fichier de menu invalide, la déclaration MENU est manquante." #: ../src/rootmenu.c:1253 msgid "error reading preprocessed menu data" msgstr "Erreur lors de la lecture du menu prétraité." #: ../src/rootmenu.c:1347 #, c-format msgid "%s:no title given for the root menu" msgstr "%s : le menu principal n'a pas de titre." #: ../src/rootmenu.c:1438 ../src/rootmenu.c:1511 ../src/rootmenu.c:1552 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "Plus assez de mémoire pendant la création du sous-menu %s." #: ../src/rootmenu.c:1448 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s : échec de stat() sur le fichier « %s » dans le répertoire du menu." #: ../src/rootmenu.c:1606 msgid "Commands" msgstr "Commandes" #: ../src/rootmenu.c:1609 msgid "Restart" msgstr "Redémarrer" #: ../src/rootmenu.c:1610 msgid "Exit..." msgstr "Sortir..." #: ../src/rootmenu.c:1655 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "Le fichier de menu « %s » référencé dans WMRootMenu est introuvable." #: ../src/rootmenu.c:1662 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "Le fichier de menu « %s » référencé dans WMRootMenu est inaccessible." #: ../src/rootmenu.c:1696 ../src/rootmenu.c:1772 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "" "%s : erreur de syntaxe dans le fichier de configuration du menu principal « %" "s »." #: ../src/rootmenu.c:1860 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Le menu Applications n'a pu être chargé. Regardez la console pour une " "description détaillée des erreurs." #: ../src/screen.c:708 #, c-format msgid "could not initialize graphics library context: %s" msgstr "L'initialisation de la bibliothèque graphique a échoué : %s" #: ../src/screen.c:736 msgid "could not initialize WINGs widget set" msgstr "L'initialisation de la bibliothèque WINGs a échoué." #: ../src/screen.c:1097 #, c-format msgid "could not save session state in %s" msgstr "La sauvegarde de la session dans %s a échoué." #: ../src/session.c:183 ../src/wdefaults.c:589 ../src/winspector.c:454 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "Conversion de « %s » en booléen impossible." #: ../src/session.c:1023 msgid "out of memory while saving session state" msgstr "Plus assez de mémoire pendant le sauvegarde de session." #: ../src/session.c:1106 msgid "end of memory while saving session state" msgstr "Plus assez de mémoire pendant le sauvegarde de session." #. 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:1244 msgid "connection to the session manager was lost" msgstr "La connexion au gestionnaire de session est interrompue." #: ../src/stacking.c:79 msgid "could not get window list!!" msgstr "Impossible d'obtenir la liste des fenêtres !" #: ../src/startup.c:202 #, c-format msgid "internal X error: %s\n" msgstr "erreur interne X : %s\n" #: ../src/startup.c:260 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "Signal %i (%s) reçu - Redémarrage.\n" #: ../src/startup.c:262 #, c-format msgid "got signal %i - restarting\n" msgstr "Signal %i reçu - Redémarrage.\n" #: ../src/startup.c:272 #, c-format msgid "got signal %i (%s) - rereading defaults\n" msgstr "Signal %i (%s) reçu - Rechargement des paramètres par défaut.\n" #: ../src/startup.c:274 #, c-format msgid "got signal %i - rereading defaults\n" msgstr "Signal %i reçu - Rechargement des paramètres par défaut.\n" #: ../src/startup.c:284 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "Signal %i (%s) reçu. Arrêt...\n" #: ../src/startup.c:286 #, c-format msgid "got signal %i - exiting...\n" msgstr "Signal %i reçu - Arrêt...\n" #: ../src/startup.c:329 #, c-format msgid "got signal %i (%s)\n" msgstr "Signal %i (%s) reçu.\n" #: ../src/startup.c:331 #, c-format msgid "got signal %i\n" msgstr "Signal %i reçu.\n" #: ../src/startup.c:342 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "Incident pendant le nettoyage d'un incident. Arrêt immédiat." #. we try to restart Window Maker #: ../src/startup.c:406 msgid "trying to restart Window Maker..." msgstr "Redémarrage de Window Maker..." #: ../src/startup.c:411 msgid "trying to start alternate window manager..." msgstr "Démarrage d'un autre gestionnaire de fenêtres..." #: ../src/startup.c:417 msgid "failed to start alternate window manager. Aborting." msgstr "Impossible de démarrer un autre gestionnaire de fenêtres. Abandon." #: ../src/startup.c:419 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" "Erreur probablement due à un bogue. Merci de remplir le formulaire BUGFORM " "et de l'envoyer à bugs@windowmaker.info." #: ../src/startup.c:894 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "" "La taille des icônes est configurée à %i mais c'est trop petit. La valeur " "utilisée sera 16.\n" #: ../src/startup.c:922 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "XKB n'est pas supporté. KbdModeLock est automatiquement désactivé." #: ../src/startup.c:941 msgid "it seems that there is already a window manager running" msgstr "Il semble qu'un gestionnaire de fenêtres soit déjà actif." #: ../src/startup.c:947 #, c-format msgid "could not manage screen %i" msgstr "Gestion de l'écran %i impossible." #: ../src/startup.c:1015 msgid "could not manage any screen" msgstr "Aucun écran ne peut être géré." #: ../src/switchmenu.c:137 msgid "Windows" msgstr "Fenêtres" #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "L'image « %s » utilisée comme texture est introuvable." #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "Le chargement de la texture « %s » a échoué : %s." #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "Impossible d'ouvrir la bibliothèque « %s »." #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "La fonction « %s » est introuvable dans la bibliothèque « %s »." #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "Les greffons de textures ne sont pas supportés par ce système, désolé." #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "L'allocation du tampon d'image a échoué." #: ../src/wdefaults.c:437 #, c-format msgid "could not find icon file \"%s\"" msgstr "L'icône « %s » est introuvable." #: ../src/window.c:3028 ../src/window.c:3167 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 ou une touche similaire semble activée.\n" "Désactivez-la ou certaines actions du clavier et de la souris ne " "fonctionneront pas." #: ../src/winmenu.c:126 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Ceci arrêtera l'application.\n" "Tout changement non sauvegardé sera perdu.\n" "Confirmez-vous ?" #: ../src/winmenu.c:274 ../src/winmenu.c:283 msgid "Set Shortcut" msgstr "Attribuer le raccourci" #: ../src/winmenu.c:361 ../src/winmenu.c:406 msgid "could not create submenu for window menu" msgstr "La création d'un sous-menu pour le menu Fenêtres a échoué." #: ../src/winmenu.c:410 msgid "Keep on top" msgstr "Toujours devant" #: ../src/winmenu.c:415 msgid "Keep at bottom" msgstr "Toujours derrière" #: ../src/winmenu.c:459 ../src/winmenu.c:602 msgid "Shade" msgstr "Enrouler" #: ../src/winmenu.c:475 msgid "Hide Others" msgstr "Masquer les autres" #: ../src/winmenu.c:483 msgid "Resize/Move" msgstr "Déplacer/Dimensionner" #: ../src/winmenu.c:491 msgid "Select" msgstr "Sélectionner" #: ../src/winmenu.c:504 msgid "Attributes..." msgstr "Attributs..." #: ../src/winmenu.c:506 msgid "Options" msgstr "Options" #: ../src/winmenu.c:597 msgid "Unshade" msgstr "Dérouler" #: ../src/winspector.c:387 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "L'icône « %s » spécifiée pour cette fenêtre est introuvable." #: ../src/winspector.c:404 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "L'ouverture de l'icône « %s » a échoué : %s" #: ../src/winspector.c:1121 #, c-format msgid "Inspecting %s.%s" msgstr "Examen de %s.%s" #: ../src/winspector.c:1147 msgid "Click in the window you wish to inspect." msgstr "Cliquez sur la fenêtre que vous voulez examiner." #: ../src/winspector.c:1186 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "Après enregistrement, la configuration\n" "s'appliquera à toutes les fenêtres\n" "dont la propriété WM_CLASS coïncidera\n" "avec le nom sélectionné ci-dessus." #: ../src/winspector.c:1215 msgid "Save" msgstr "Enregistrer" #: ../src/winspector.c:1223 msgid "Apply" msgstr "Appliquer" #: ../src/winspector.c:1229 msgid "Reload" msgstr "Annuler" #: ../src/winspector.c:1238 ../src/winspector.c:1248 msgid "Window Specification" msgstr "Fenêtres concernées" #: ../src/winspector.c:1239 msgid "Window Attributes" msgstr "Attributs de la fenêtre" #: ../src/winspector.c:1240 msgid "Advanced Options" msgstr "Options avancées" #: ../src/winspector.c:1241 msgid "Icon and Initial Workspace" msgstr "Icône et bureau initial" #: ../src/winspector.c:1242 msgid "Application Specific" msgstr "Attributs de l'application" #: ../src/winspector.c:1256 msgid "Defaults for all windows" msgstr "Toutes les fenêtres" #: ../src/winspector.c:1310 msgid "Select window" msgstr "Choisir une fenêtre" #: ../src/winspector.c:1324 msgid "Attributes" msgstr "Attributs" #: ../src/winspector.c:1335 msgid "Disable titlebar" msgstr "Sans barre de titre" #: ../src/winspector.c:1337 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Supprime la barre de titre de cette fenêtre.\n" "Pour afficher le menu d'une fenêtre sans barre\n" "de titre, appuyez sur Ctrl+Esc (ou le raccourci\n" "équivalent, si vous avez changé le raccourci par\n" "défaut)." #: ../src/winspector.c:1344 msgid "Disable resizebar" msgstr "Sans barre de redimensionnement" #: ../src/winspector.c:1346 msgid "Remove the resizebar of this window." msgstr "Supprime la barre de redimensionnement de cette fenêtre." #: ../src/winspector.c:1349 msgid "Disable close button" msgstr "Sans bouton de fermeture" #: ../src/winspector.c:1351 msgid "Remove the `close window' button of this window." msgstr "Supprime le bouton de fermeture de cette fenêtre." #: ../src/winspector.c:1354 msgid "Disable miniaturize button" msgstr "Sans bouton de miniaturisation" #: ../src/winspector.c:1356 msgid "Remove the `miniaturize window' button of the window." msgstr "Supprime le bouton de miniaturisation de cette fenêtre." #: ../src/winspector.c:1359 msgid "Disable border" msgstr "Sans bordure" #: ../src/winspector.c:1361 msgid "Remove the 1 pixel black border around the window." msgstr "Supprime la bordure noire d'un pixel qui entoure la fenêtre." #: ../src/winspector.c:1364 msgid "Keep on top (floating)" msgstr "Toujours devant" #: ../src/winspector.c:1366 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "La fenêtre reste au premier plan, les autres fenêtres\n" "ne peuvent la recouvrir." #: ../src/winspector.c:1370 msgid "Keep at bottom (sunken)" msgstr "Toujours derrière" #: ../src/winspector.c:1372 msgid "Keep the window under all other windows." msgstr "" "La fenêtre reste à l'arrière plan, derrière\n" "toutes les autres." #: ../src/winspector.c:1377 msgid "Make window present in all workspaces." msgstr "La fenêtre est présente sur tous les bureaux." #: ../src/winspector.c:1380 msgid "Start miniaturized" msgstr "Lancer miniaturisée" #: ../src/winspector.c:1382 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "La fenêtre est automatiquement miniaturisée\n" "quand elle apparaît pour la première fois." #: ../src/winspector.c:1386 msgid "Start maximized" msgstr "Lancer maximisée" #: ../src/winspector.c:1388 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "La fenêtre est automatiquement maximisée\n" "quand elle apparaît pour la première fois." #: ../src/winspector.c:1392 msgid "Full screen maximization" msgstr "Plein écran" #: ../src/winspector.c:1394 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "La fenêtre utilise tout l'écran quand elle est maximisée.\n" "Les barres de titre et de redimensionnement seront déplacées\n" "en dehors de l'écran." #: ../src/winspector.c:1411 msgid "Advanced" msgstr "Avancées" #: ../src/winspector.c:1428 msgid "Do not bind keyboard shortcuts" msgstr "Sans raccourci clavier" #: ../src/winspector.c:1430 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Les raccourcis clavier de Window Maker ne sont pas\n" "gérés quand cette fenêtre est active. La fenêtre\n" "recevra toutes les combinaisons de touches quels\n" "que soient vos raccourcis." #: ../src/winspector.c:1436 msgid "Do not bind mouse clicks" msgstr "Sans raccourci souris" #: ../src/winspector.c:1438 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Les actions de la souris telles que Alt+glisser\n" "ne sont pas gérées par Window Maker dans cette\n" "fenêtre (si « Alt » est le modificateur configuré)." #: ../src/winspector.c:1443 msgid "Do not show in the window list" msgstr "Masquer dans le menu Fenêtres" #: ../src/winspector.c:1445 msgid "Do not list the window in the window list menu." msgstr "La fenêtre n'apparaît pas dans le menu Fenêtres." #: ../src/winspector.c:1448 msgid "Do not let it take focus" msgstr "Sans focus clavier" #: ../src/winspector.c:1450 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "La fenêtre ignore les événements du clavier\n" "quand vous cliquez dessus." #: ../src/winspector.c:1454 msgid "Keep inside screen" msgstr "Toujours à l'écran" #: ../src/winspector.c:1456 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Ne pas autoriser la fenêtre à sortir complètement de l'écran.\n" "Pour compatibilité avec certaines applications.\n" #: ../src/winspector.c:1460 msgid "Ignore 'Hide Others'" msgstr "Ignorer « Masquer les autres »" #: ../src/winspector.c:1462 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "La fenêtre ignore l'ordre « Masquer les autres »\n" "et reste visible." #: ../src/winspector.c:1466 msgid "Ignore 'Save Session'" msgstr "Ignorer « Enregistrer la session »" #: ../src/winspector.c:1468 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Window Maker ignore cette application quand il enregistre\n" "la session. Elle ne sera pas lancée au prochain démarrage\n" "de Window Maker." #: ../src/winspector.c:1474 msgid "Emulate application icon" msgstr "Émuler l'icône-application" #: ../src/winspector.c:1476 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "La fenêtre se comporte comme si elle donnait suffisamment\n" "d'informations à Window Maker pour la création d'une\n" "icône-application." #: ../src/winspector.c:1482 msgid "Disable language button" msgstr "Pas de bouton de langue" #: ../src/winspector.c:1484 msgid "Remove the `toggle language' button of the window." msgstr "Enlever le bouton de changement de langue de la fenêtre." #: ../src/winspector.c:1501 msgid "Miniwindow Image" msgstr "Image de la mini-fenêtre" #: ../src/winspector.c:1528 msgid "Icon filename:" msgstr "Nom du fichier :" #: ../src/winspector.c:1541 msgid "Ignore client supplied icon" msgstr "Ignorer l'icône fournie" #: ../src/winspector.c:1548 msgid "Initial Workspace" msgstr "Bureau initial" #: ../src/winspector.c:1550 msgid "The workspace to place the window when it'sfirst shown." msgstr "Le bureau où la fenêtre apparaîtra." #: ../src/winspector.c:1556 msgid "Nowhere in particular" msgstr "N'importe où" #: ../src/winspector.c:1574 msgid "Application Attributes" msgstr "Attributs de l'application" #: ../src/winspector.c:1585 msgid "Start hidden" msgstr "Démarrer masquée" #: ../src/winspector.c:1587 msgid "Automatically hide application when it's started." msgstr "Dès qu'elle est lancée, la fenêtre est automatiquement masquée." #: ../src/winspector.c:1590 msgid "No application icon" msgstr "Pas d'icône-application" #: ../src/winspector.c:1592 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Désactive l'icône-application de l'application.\n" "Notez que vous ne pourrez plus la mettre dans le\n" "Dock et que les icônes déjà dans le Dock ne\n" "fonctionneront plus correctement." #: ../src/winspector.c:1598 msgid "Shared application icon" msgstr "Icône-application partagée" #: ../src/winspector.c:1600 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "Une seule icône-application pour toutes les instances\n" "de cette application.\n" #: ../src/wmspec.c:277 msgid "out of memory while updating wm hints" msgstr "" "Plus assez de mémoire pendant la sauvegarde des extensions (hints) Window " "Maker." #: ../src/workspace.c:105 ../src/workspace.c:106 ../src/workspace.c:899 #, c-format msgid "Workspace %i" msgstr "Bureau %i" #: ../src/workspace.c:949 msgid "Workspaces" msgstr "Bureaux" #: ../src/workspace.c:951 msgid "could not create Workspace menu" msgstr "La création du menu Bureaux a échoué." #: ../src/workspace.c:958 msgid "New" msgstr "Nouveau" #: ../src/workspace.c:959 msgid "Destroy Last" msgstr "Détruire le dernier" WindowMaker-0.95.5/po/no.po0000644000175000017500000005107212214432632012360 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.80.2\n" "POT-Creation-Date: 1998-05-23 12:54+0200\n" "PO-Revision-Date: 1998-05-23 H12:54+0200\n" "Last-Translator: Marcus Ramberg \n" "Language-Team: Norwegian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../src/generic/error.c:46 msgid " fatal error: " msgstr " uopprettelig feil: " #: ../src/generic/error.c:72 msgid " warning: " msgstr " advarsel: " #: ../src/defaults.c:512 ../src/screen.c:494 ../src/screen.c:574 #: ../src/screen.c:580 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "kunne ikke lese domenet \"%s\" fra oppsetts-databasen" #: ../src/defaults.c:876 ../src/wdefaults.c:401 ../src/winspector.c:496 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "kan ikke konvertere \"%s\" til boolean" #: ../src/defaults.c:949 ../src/defaults.c:1281 ../src/defaults.c:1314 #: ../src/wdefaults.c:383 ../src/wdefaults.c:416 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Feil konfigurasjonsformat for nøkkel \"%s\". Skulle ha vært %s." #: ../src/defaults.c:999 #, c-format msgid "Invalid focus mode \"%s\". Should be Manual, Auto or SemiAuto." msgstr "\"%s\". er en ugyldig fokus modus. MÃ¥ være Manual, Auto eller SemiAuto." #: ../src/defaults.c:1034 #, c-format msgid "Invalid window placement mode \"%s\". Should be Auto, Cascade, Random or Manual." msgstr "\"%s\". er en ugyldig modus for vindusplassering. Gyldige valg er Auto, Cascade, Random eller Manual." #: ../src/defaults.c:1068 #, c-format msgid "" "Invalid geometry display type \"%s\". Should be Center, Corner, Floating or " "Line." msgstr "" "\"%s\". er et ugyldig geometri valg. Gyldige valg er Center, Corner," "Floating eller Line" #: ../src/defaults.c:1130 ../src/defaults.c:1161 ../src/defaults.c:1173 #: ../src/defaults.c:1214 ../src/defaults.c:1250 ../src/defaults.c:1353 #: ../src/resources.c:135 #, c-format msgid "could not parse color \"%s\"" msgstr "\"%s\" Er en ugyldig farge" #: ../src/defaults.c:1142 msgid "bad number of arguments in gradient specification" msgstr "Feil antall argumenter i definisjon av fargeovergangen" #: ../src/defaults.c:1188 msgid "too few arguments in multicolor gradient specification" msgstr "For fÃ¥ argumenter i definisjon flerfarges fargeovergangen" #: ../src/defaults.c:1289 ../src/defaults.c:1378 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Feil i tekstur definisjonen for nøkkel \"%s\"" #: ../src/defaults.c:1408 #, c-format msgid "Invalid justification type \"%s\". Should be Left, Center or Right" msgstr "\"%s\" Er en ugyldig justering. MÃ¥ være Left, Center eller Høyre" #: ../src/defaults.c:1436 msgid "could not load any usable font" msgstr "Kunne ikke finne noen fonter" #: ../src/defaults.c:1515 #, c-format msgid "invalid key modifier \"%s\"" msgstr "\"%s\" er et ugyldig nøkkel argument" #: ../src/defaults.c:1527 #, c-format msgid "invalid kbd shortcut specification \"%s\"" msgstr "\"%s\" er en ugyldig tastatur-kombinasjon" #: ../src/defaults.c:1533 #, c-format msgid "invalid key in shortcut \"%s\"" msgstr "ugyldig tast i tastatur-kombinasjonen \"%s\"" #: ../src/defaults.c:1619 msgid "could not render texture for icon background" msgstr "Kunne ikke bruke tekstur for ikon bakgrunnen" #: ../src/defaults.c:1949 msgid "could not render texture for workspace background" msgstr "kunne ikke bruke tekstur for bakgrunn i arbeidsomrÃ¥de" #: ../src/dialog.c:74 ../src/dialog.c:86 ../src/dialog.c:134 msgid "OK" msgstr "OK" #: ../src/dialog.c:74 ../src/dialog.c:79 ../src/dialog.c:134 msgid "Cancel" msgstr "Avbryt" #: ../src/dialog.c:79 ../src/rootmenu.c:152 msgid "Exit" msgstr "Avslutt" #: ../src/dock.c:316 ../src/dock.c:351 ../src/dock.c:1341 msgid "Dock Icon" msgstr "dock ikon" #: ../src/dock.c:317 msgid "Enter command for the docked application:" msgstr "Skriv inn kommando for applikasjonen" #: ../src/dock.c:352 msgid "Enter command for dropped objects:" msgstr "Skriv kommando for DND objekter" #: ../src/dock.c:484 msgid "Floating Fiend" msgstr "Flytende Binders" #: ../src/dock.c:487 msgid "Floating Dock" msgstr "Flytende Dock" #: ../src/dock.c:494 msgid "Collapsed" msgstr "Kollapset" #: ../src/dock.c:501 msgid "Launch" msgstr "Start" #: ../src/dock.c:503 msgid "Autolaunch" msgstr "Autostart" #: ../src/dock.c:509 msgid "Set arguments..." msgstr "Sett argumenter..." #: ../src/dock.c:512 msgid "Set drop arguments..." msgstr "DND argumenter..." #: ../src/dock.c:516 ../src/winmenu.c:243 msgid "Kill" msgstr "Avslutt" #: ../src/dock.c:841 ../src/dock.c:847 msgid "bad window name value in dock state info" msgstr "ugyldig verdi for vindusnavn i dock status info" #: ../src/dock.c:935 ../src/dock.c:947 #, c-format msgid "bad value in docked icon state info %s" msgstr "ugyldig verdi i status info for docket ikon %s" #: ../src/dock.c:1074 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "For mange ikoner lagret i docken. Ignorerer de som ikke passer" #: ../src/dock.c:1342 msgid "Command:" msgstr "Kommando:" #: ../src/dock.c:1855 ../src/dock.c:1859 #, c-format msgid "Could not execute command \"%s\"" msgstr "Kunne ikke utføre \"%s\"" #: ../src/dock.c:1862 ../src/rootmenu.c:122 ../src/winspector.c:384 #: ../src/winspector.c:392 msgid "Error" msgstr "Feil" #: ../src/event.c:467 msgid "stack overflow: too many dead processes" msgstr "stacken er full: for mange døde prossesser" #: ../src/framewin.c:601 ../src/framewin.c:722 #, c-format msgid "could not render gradient: %s" msgstr "kunne ikke bruke fargeovergangen: %s" #: ../src/framewin.c:619 ../src/framewin.c:638 ../src/framewin.c:652 #: ../src/framewin.c:662 ../src/framewin.c:732 ../src/icon.c:248 #: ../src/texture.c:551 #, c-format msgid "error rendering image:%s" msgstr "feil i opptegning av %s" #: ../src/icon.c:437 #, c-format msgid "could not find default icon \"%s\"" msgstr "kunne ikke finne standard ikonet \"%s\"" #: ../src/icon.c:444 #, c-format msgid "could not load default icon \"%s\"" msgstr "Kunne ikke laste standard ikonet \"%s\"" #: ../src/main.c:163 msgid "Restart failed!!!" msgstr "Kunne ikke starte pÃ¥ nytt!!!" #: ../src/main.c:178 #, c-format msgid "%s aborted.\n" msgstr "%s avbrutt.\n" #: ../src/main.c:186 #, c-format msgid "usage: %s [-options]\n" msgstr "bruk: %s [-argumenter]\n" #: ../src/main.c:187 msgid "options:" msgstr "argumenter:" #: ../src/main.c:189 msgid " -nocpp \t\tdisable preprocessing of configuration files" msgstr "-nocpp \t\tskru av prosessering av konfigurasjonsfiler" #: ../src/main.c:192 msgid " -nodock\t\tdo not open the application Dock" msgstr "-nodock\t\tIkke Ã¥pne docken" #: ../src/main.c:193 msgid " -nofiend\t\tdo not open the application Fiend" msgstr "-nofiend\t\tIkke Ã¥pne binders" #. #. puts(_(" -locale locale locale to use")); #. puts(_(" -visualid visualid visual id of visual to use")); #. #: ../src/main.c:199 msgid " -display host:dpy\tdisplay to use" msgstr "- display maskin:dpy\t display du ønker Ã¥ bruke" #: ../src/main.c:200 msgid " -version\t\tprint version and exit" msgstr "-version\t\\t skriv versjonsnummer og avslutt" #: ../src/main.c:215 msgid "could not determine home directory" msgstr "kunne ikke finne hjemmekatalogen" #: ../src/main.c:225 msgid "" "could not find user GNUstep directory.\n" "Make sure you have installed WindowMaker correctly and run wmaker.inst" msgstr "" "kunne ikke finne brukerens GNUstep katalog.\n" "Kontroller at du har installert WindowMaker rett og kjør wmaker.inst" #: ../src/main.c:245 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:Kunne ikke utføre oppstarts-skript" #: ../src/main.c:303 ../src/main.c:310 ../src/main.c:317 #, c-format msgid "too few arguments for %s" msgstr "for fÃ¥ argumenter for %s" #: ../src/main.c:321 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "ugyldig verdi for visualid: \"%s\"" #: ../src/main.c:366 msgid "X server does not support locale" msgstr "X serveren støtter ikke sprÃ¥kdefinisjon" #: ../src/main.c:369 msgid "cannot set locale modifiers" msgstr "kan ikke sette lokale verdier" #: ../src/main.c:383 #, c-format msgid "could not open display \"%s\"" msgstr "Kunne ikke Ã¥pne display \"%s\"" #: ../src/menu.c:274 msgid "wrealloc() failed while trying to add menu item" msgstr "wrealloc() feilet under oppbyging av menyen" #: ../src/misc.c:65 #, c-format msgid "could not define value for %s for cpp" msgstr "Kunne ikke definere verdi for %s i cpp" #: ../src/misc.c:95 #, c-format msgid "could not get password entry for UID %i" msgstr "Kunne ikke finne passord linje for uID %i" #: ../src/misc.c:119 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "Din maskin er feilkonfigurert. HOSTNAME er satt til %s" #: ../src/misc.c:125 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "Din maskin er feilkonfigurert. HOST er satt til %s" #: ../src/misc.c:533 #, c-format msgid "could not find icon file \"%s\"" msgstr "Kunne ikke finne ikon fil \"%s\"" #: ../src/misc.c:622 msgid "selection timed-out" msgstr "utvalg fikk time-out" #: ../src/misc.c:636 msgid "Program Arguments" msgstr "Argumenter til Program" #: ../src/misc.c:655 msgid "Enter command arguments:" msgstr "Skriv inn argumenter:" #: ../src/misc.c:676 msgid "unable to get dropped data from DND drop" msgstr "Kan ikke motta data fra DND slipp" #: ../src/misc.c:685 msgid "error getting dropped data from DND drop" msgstr "Feil i mottak av data fra DND slipp" #: ../src/misc.c:691 msgid "out of memory while getting data from DND drop" msgstr "Gikk tom for minne mens data ble hentet fra DND slipp" #: ../src/misc.c:735 ../src/misc.c:854 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "Gikk tom for minne mens vi ekspanderte \"%s\"" #: ../src/misc.c:789 msgid "out of memory during expansion of \"%w\"" msgstr "Gikk tom for minne mens vi ekspanderte \"%w\"" #: ../src/misc.c:808 msgid "out of memory during expansion of \"%a\"" msgstr "Gikk tom for minne mens vi ekspanderte \"%a\"" #: ../src/misc.c:830 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "Gikk tom for minne mens vi ekspanderte \"%d\"" #: ../src/misc.c:842 msgid "selection not available" msgstr "Utvalg ikke tilgjengelig" #: ../src/pixmap.c:230 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "Kunne ikke laste bitmap fil \"%s\". Bruker ikke mask" #: ../src/resources.c:71 msgid "The following character sets are missing:" msgstr "De følgende tegn settende mangler:" #: ../src/resources.c:75 #, c-format msgid "The string \"%s\" will be used in place" msgstr "Setningen \"%s\" vil bli brukt isteden" #: ../src/resources.c:77 msgid "of any characters from those sets." msgstr "av noen tegn fra disse tegnsettene." #: ../src/resources.c:80 #, c-format msgid "could not create font set %s. Trying fixed" msgstr "Kunne ikke lage fontsett %s. Prøver fixed" #: ../src/resources.c:97 #, c-format msgid "could not load font %s. Trying fixed" msgstr "Kunne ikke laste font %s. Prøver fixed" #: ../src/resources.c:139 #, c-format msgid "coult not allocate color \"%s\"" msgstr "Kunne ikke allokere fargen \"%s\"" #: ../src/rootmenu.c:120 #, c-format msgid "Program \"%s\" not found or cannot be executed." msgstr "Programmet \"%s\" kan ikke finnes/utføres." #: ../src/rootmenu.c:153 msgid "Exit window manager?" msgstr "Avslutt window manager?" #: ../src/rootmenu.c:173 msgid "Close X session" msgstr "Avslutt X" #: ../src/rootmenu.c:174 msgid "" "Close Window System session?\n" "(all applications will be closed)" msgstr "" "Avslutt Vindu Systemet?\n" "(alle programmer vil bli avsluttet)" #: ../src/rootmenu.c:176 msgid "Exiting...\n" msgstr "Avslutter...\n" #: ../src/rootmenu.c:315 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "ugyldig OPEN_MENU spesifikasjon: %s" #: ../src/rootmenu.c:356 #, c-format msgid "%s:could not stat menu" msgstr "%s:kunne ikke sjekke meny" #: ../src/rootmenu.c:378 #, c-format msgid "extra parameters to OPEN_MENU: %s" msgstr "ekstra parametere til OPEN_MENU: %s" #: ../src/rootmenu.c:434 ../src/rootmenu.c:451 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s: Meny komandoen \"%s\" mangler et parameter" #: ../src/rootmenu.c:492 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:Ugyldig kommando \"%s\" i meny konfig" #: ../src/rootmenu.c:591 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s: GÃ¥r ut over maksimal linestørrelse i meny konfig: %s" #: ../src/rootmenu.c:611 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s: manglende kommando i meny konfig: %s" #: ../src/rootmenu.c:640 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s: syntaks feil i meny filen:END deklarasjonen mangler" #: ../src/rootmenu.c:668 ../src/rootmenu.c:747 msgid "could not make arguments for menu file preprocessor" msgstr "kunne ikke lage argumenter for meny fil behandleren" #: ../src/rootmenu.c:674 ../src/rootmenu.c:754 #, c-format msgid "%s:could open/preprocess menu file" msgstr "%s:kunne ikke Ã¥pne/behandle meny filen" #: ../src/rootmenu.c:685 ../src/rootmenu.c:767 #, c-format msgid "%s:could not open menu file" msgstr "%s:kunne ikke Ã¥pne meny filen" #: ../src/rootmenu.c:698 #, c-format msgid "%s:syntax error in menu config: %s" msgstr "%s:syntaks feil i meny konfigen: %s" #: ../src/rootmenu.c:708 ../src/rootmenu.c:790 #, c-format msgid "%s:no title given for the root menu" msgstr "%s: Ingen tittel oppgitt for hovedmenyen" #: ../src/rootmenu.c:780 #, c-format msgid "%s:syntax error in menu config. %s" msgstr "%s: ugyldig syntaks i meny konfigen. %s" #: ../src/rootmenu.c:815 #, c-format msgid "%s:could not read menu directory" msgstr "%s:kunne ikke lese meny katalog" #: ../src/rootmenu.c:829 ../src/rootmenu.c:851 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "Gikk tom for minne mens katalog menyen %s ble konstruert" #: ../src/rootmenu.c:839 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s: kunne ikke undersøke filen \"%s\" i meny katalogen" #: ../src/rootmenu.c:871 #, c-format msgid "out of memory while constructing menu entry %s" msgstr "Tom for minne under opprettelse av meny gjenstand %s" #: ../src/rootmenu.c:913 msgid "Commands" msgstr "Kommandoer" #: ../src/rootmenu.c:915 msgid "Exit..." msgstr "Avslutt..." #: ../src/rootmenu.c:949 #, c-format msgid "%s:could not find menu file \"%s\"" msgstr "%s:kunne ikke finne meny filen \"%s\"" #: ../src/rootmenu.c:955 #, c-format msgid "%s:could not stat menu \"%s\"" msgstr "%s:kunne ikke undersøke meny \"%s\"" #: ../src/rootmenu.c:979 ../src/rootmenu.c:1026 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:Formaterings feil i konfigurasjonen av hovedmenyen \"%s\"" #: ../src/screen.c:89 msgid "it seems that there already is a window manager running" msgstr "det ser ut til at en window manager allerede kjører" #: ../src/screen.c:372 msgid "could not load logo image for panels" msgstr "kunne ikke laste logo for panelene" #: ../src/screen.c:375 #, c-format msgid "error making logo image for panel:%s" msgstr "kunne ikke konstruere logo for panel:%s" #: ../src/screen.c:546 #, c-format msgid "could not initialize graphics library context: %s" msgstr "kunne ikk initalisere grafikk biblioteket: %s" #: ../src/stacking.c:89 ../src/stacking.c:148 msgid "could not get window list!!" msgstr "kunne ikke hente vindusliste!!" #: ../src/startup.c:140 #, c-format msgid "internal X error: %s\n" msgstr "intern X feil: %s\n" #: ../src/startup.c:157 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "mottok %i (%s) signal - starter pÃ¥ nytt\n" #: ../src/startup.c:159 #, c-format msgid "got signal %i - restarting\n" msgstr "mottok %i signal - starter pÃ¥ nytt\n" #: ../src/startup.c:167 #, c-format msgid "got signal %i (%s)\n" msgstr "mottok %i (%s) signal\n" #: ../src/startup.c:169 #, c-format msgid "got signal %i\n" msgstr "mottok %i signal\n" #: ../src/switchmenu.c:131 msgid "Windows" msgstr "Vinduer" #: ../src/texture.c:252 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "bildet \"%s\" brukt som tekstur, kunne ikke finnes." #: ../src/texture.c:257 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "Kunne ikke laste tekstur pixmap \"%s\":%s" #: ../src/texture.c:351 ../src/texture.c:547 #, c-format msgid "could not render texture: %s" msgstr "kunne ikke bruke teksturen: %s" #: ../src/winmenu.c:169 msgid "could not create workspace submenu for window menu" msgstr "Kunne ikke lage ArbeidsomrÃ¥de undermeny for vindusmenyen" #: ../src/winmenu.c:186 msgid "(Un)Maximize" msgstr "(U)Maksimer" #: ../src/winmenu.c:188 msgid "Miniaturize" msgstr "Minimer" #: ../src/winmenu.c:198 msgid "(Un)Shade" msgstr "(U)Shade" #: ../src/winmenu.c:207 msgid "Hide" msgstr "Skjul" #: ../src/winmenu.c:215 msgid "Hide Others" msgstr "Skjul Andre" #: ../src/winmenu.c:218 msgid "Select" msgstr "Velg" #: ../src/winmenu.c:227 msgid "Move To" msgstr "Flytt til" #: ../src/winmenu.c:232 msgid "Attributes..." msgstr "Attributter..." #: ../src/winmenu.c:235 msgid "Close" msgstr "Lukk" #: ../src/winspector.c:385 msgid "Could not find specified icon file" msgstr "Kunne ikke finne denne ikon filen" #: ../src/winspector.c:393 msgid "Could not open specified icon file" msgstr "Kunne ikke Ã¥pne denne ikon filen" #: ../src/winspector.c:974 msgid "not enough memory to open window inspector panel" msgstr "Ikke nok ledig minne til Ã¥ Ã¥pne window inspector panelet" #: ../src/winspector.c:1002 msgid "Save" msgstr "Lagre" #: ../src/winspector.c:1008 msgid "Apply" msgstr "Utfør" #: ../src/winspector.c:1015 msgid "Revert" msgstr "Angre" #. *** window spec *** #: ../src/winspector.c:1046 msgid "Window Specification" msgstr "Vindu Spesifikasjon" #: ../src/winspector.c:1077 msgid "Defaults for all windows" msgstr "Standard for alle vinduer" #: ../src/winspector.c:1082 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 "" "Denne konfigurasjonen vill gjelde for\n" "alle vinduer som har WM_CLASS attributten satt til det navnet som er valgt" "over, nÃ¥r du lager." #. *** attributes *** #: ../src/winspector.c:1090 msgid "Attributes" msgstr "Attributter" #: ../src/winspector.c:1097 msgid "Disable titlebar" msgstr "Skru av tittelbar" #: ../src/winspector.c:1101 msgid "Disable resizebar" msgstr "Skru av resizebar" #: ../src/winspector.c:1105 msgid "Not closable" msgstr "Ikke lukkbar" #: ../src/winspector.c:1109 msgid "Not miniaturizable" msgstr "Ikke minimerbar" #: ../src/winspector.c:1113 msgid "Keep on top" msgstr "Alltid pÃ¥ topp" #: ../src/winspector.c:1117 msgid "Omnipresent" msgstr "Alle ArbeidsomrÃ¥der" #: ../src/winspector.c:1121 msgid "Don't let it take focus" msgstr "Ikke la den ta fokus" #: ../src/winspector.c:1125 msgid "Skip window list" msgstr "Hopp over i vindusliste" #. *** more attributes *** #: ../src/winspector.c:1137 msgid "Advanced" msgstr "Avansert" #: ../src/winspector.c:1144 msgid "Ignore HideOthers" msgstr "Ignorer Skjul Andre" #: ../src/winspector.c:1148 msgid "Don't bind keyboard shortcuts" msgstr "Ikke tillat taste-kombinasjoner" #: ../src/winspector.c:1152 msgid "Don't bind mouse clicks" msgstr "Ikke tillat musklikk" #: ../src/winspector.c:1156 msgid "Keep inside screen" msgstr "Hold innenfor skjermen" #: ../src/winspector.c:1160 msgid "No application icon" msgstr "Ikke gi applikasjons-ikon" #. miniwindow/workspace #: ../src/winspector.c:1172 msgid "Miniwindow Image" msgstr "Bilde for minivindu" #: ../src/winspector.c:1178 msgid "Browse" msgstr "Søk" #. WMBindEvent(panel->defaultIconBtn, WEV_CLICK, defaultIcon, panel); #: ../src/winspector.c:1185 msgid "Update" msgstr "Oppdater" #: ../src/winspector.c:1192 msgid "Icon file name:" msgstr "Ikon filnavn:" #: ../src/winspector.c:1200 msgid "Ignore client supplied icon" msgstr "Ignorer innebygget ikon" #: ../src/winspector.c:1205 msgid "Initial Workspace" msgstr "Opprinnelig ArbeidsomrÃ¥de" #: ../src/winspector.c:1227 msgid "Current workspace" msgstr "NÃ¥værende ArbeidsomrÃ¥de" #: ../src/workspace.c:91 ../src/workspace.c:92 ../src/workspace.c:359 #, c-format msgid "Workspace %i" msgstr "ArbeidsomrÃ¥de %i" #: ../src/workspace.c:385 msgid "Workspaces" msgstr "ArbeidsomrÃ¥der" #: ../src/workspace.c:387 msgid "could not create Workspace menu" msgstr "Kunne ikke opprette meny for ArbeidsomrÃ¥de" #: ../src/workspace.c:394 msgid "New" msgstr "Ny" #: ../src/workspace.c:395 msgid "Destroy Last" msgstr "Fjern Siste" WindowMaker-0.95.5/po/pt.po0000644000175000017500000014506212214432632012372 00000000000000# Portuguese message file for WindowMaker # Last Update: version 0.60.0 # # Update History: # Alfredo Kojima # Eliphas Levy Theodoro # msgid "" msgstr "" "Project-Id-Version: 0.60.0\n" "POT-Creation-Date: 2000-06-06 10:03-0300\n" "PO-Revision-Date: 2000-06-06 14:11-03:00\n" "Last-Translator: Marcia Norie Nakaza \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "From: Cyro Mendes de Moraes Neto \n" "Xgettext-Options: --default-domain=WindowMaker --add-comments --keyword=_\n" "Files: ../main.c ../event.c ../window.c ../startup.c ../shutdown.c ../wcore.c ../properties.c ../texture.c ../actions.c ../menu.c ../client.c ../pixmap.c ../image.c ../gradient.c ../button.c ../screen.c ../icon.c ../rootmenu.c ../dialog.c ../resource.c ../moveres.c ../application.c ../colormap.c ../raster.c ../placement.c ../misc.c ../appmenu.c ../keybind.c ../stacking.c ../appicon.c ../switchmenu.c ../dock.c ../winmenu.c" #: ../src/appicon.c:550 ../src/dialog.c:230 ../src/dock.c:3291 #: ../src/dockedapp.c:211 ../src/main.c:254 ../src/rootmenu.c:1765 #: ../src/winspector.c:383 ../src/winspector.c:399 msgid "Error" msgstr "Erro" #: ../src/appicon.c:551 msgid "Could not open specified icon file" msgstr "Não foi possível abrir o arquivo do ícone especificado" #: ../src/appicon.c:552 ../src/dialog.c:122 ../src/dialog.c:230 #: ../src/dialog.c:574 ../src/dialog.c:1591 ../src/dock.c:515 #: ../src/dock.c:523 ../src/dock.c:547 ../src/dock.c:3292 #: ../src/dockedapp.c:212 ../src/dockedapp.c:370 ../src/main.c:254 #: ../src/rootmenu.c:1769 ../src/winspector.c:384 ../src/winspector.c:400 msgid "OK" msgstr "Ok" #: ../src/appicon.c:579 ../src/dock.c:277 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "A aplicação obrigatoriamente será fechada (kill).\n" "Qualquer mudança não salva será perdida.\n" "Confirme por favor." #: ../src/appicon.c:585 ../src/dock.c:282 ../src/winmenu.c:125 msgid "Kill Application" msgstr "Terminar Aplicação" #: ../src/appicon.c:586 ../src/dock.c:283 ../src/winmenu.c:127 msgid "Yes" msgstr "Sim" #: ../src/appicon.c:586 ../src/dock.c:283 ../src/winmenu.c:127 msgid "No" msgstr "Não" #: ../src/appicon.c:604 ../src/dock.c:1159 ../src/dock.c:3463 msgid "Unhide Here" msgstr "Mostrar Aqui" #: ../src/appicon.c:605 ../src/appicon.c:630 ../src/dock.c:1161 #: ../src/dock.c:1163 ../src/dock.c:3475 ../src/winmenu.c:469 msgid "Hide" msgstr "Esconder" #: ../src/appicon.c:606 msgid "Set Icon..." msgstr "Colocar ícone..." #: ../src/appicon.c:607 ../src/dock.c:1167 ../src/rootmenu.c:226 #: ../src/rootmenu.c:240 ../src/winmenu.c:516 msgid "Kill" msgstr "Terminar" #: ../src/appicon.c:628 ../src/dock.c:3473 msgid "Unhide" msgstr "Mostrar" #: ../src/defaults.c:910 ../src/startup.c:820 ../src/startup.c:838 #: ../src/startup.c:844 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "não foi possível ler o domínio \"%s\" do banco de dados padrão" #: ../src/defaults.c:956 ../src/defaults.c:1081 ../src/defaults.c:1120 #: ../src/defaults.c:1150 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Domínio %s (%s) do banco de dados padrão está corrompido!" #: ../src/defaults.c:961 ../src/defaults.c:1102 ../src/defaults.c:1133 #: ../src/defaults.c:1159 #, c-format msgid "could not load domain %s from user defaults database" msgstr "não foi possível carregar domínio %s do banco de dados usuário padrão" #: ../src/defaults.c:972 ../src/defaults.c:1066 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Domínio %s (%s) do banco de datos padrão global está corrompido!" #: ../src/defaults.c:991 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "" "não foi possível carregar domínio %s do banco de dados padrão global (%s)" #: ../src/defaults.c:1071 #, c-format msgid "could not load domain %s from global defaults database" msgstr "não foi possível carregar domínio %s do banco de dados padrão global" #: ../src/defaults.c:1401 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "formato de opção inválido para tecla \"%s\". Deveria ser um de %s" #: ../src/defaults.c:1446 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "valor não booleano \"%s\" em \"%s\"" #: ../src/defaults.c:1451 ../src/defaults.c:1483 ../src/defaults.c:1515 #: ../src/defaults.c:1528 ../src/defaults.c:1543 ../src/defaults.c:1557 #: ../src/defaults.c:1627 ../src/defaults.c:1639 ../src/defaults.c:2045 #: ../src/defaults.c:2062 ../src/defaults.c:2075 ../src/defaults.c:2165 #: ../src/defaults.c:2181 ../src/defaults.c:2212 ../src/defaults.c:2299 #: ../src/defaults.c:2707 ../src/defaults.c:2720 #, c-format msgid "using default \"%s\" instead" msgstr "usando \"%s\" como padrão" #: ../src/defaults.c:1480 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "valor não numérico \"%s\" em \"%s\"" #: ../src/defaults.c:1510 ../src/defaults.c:1622 ../src/defaults.c:2040 #: ../src/defaults.c:2057 ../src/defaults.c:2160 ../src/defaults.c:2207 #: ../src/defaults.c:2701 ../src/wdefaults.c:565 ../src/wdefaults.c:601 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Opção de formato inválida para \"%s\". Deveria ser %s." #: ../src/defaults.c:1523 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Número de elementos incorreto na lista de opção para tecla de \"%s\"." #: ../src/defaults.c:1538 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Valor incorreto para \"%s\". Deveria ser Coordenada." #: ../src/defaults.c:1553 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "não pode converter lista para inteiros de \"%s\"" #: ../src/defaults.c:1749 ../src/defaults.c:1781 ../src/defaults.c:1797 #: ../src/defaults.c:1843 ../src/defaults.c:1883 ../src/defaults.c:1921 #: ../src/defaults.c:1937 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" não é um nome de cor válido" #: ../src/defaults.c:1762 msgid "bad number of arguments in gradient specification" msgstr "número de argumentos inválido na especificação de gradiente" #: ../src/defaults.c:1816 msgid "too few arguments in multicolor gradient specification" msgstr "Pouquíssimos argumentos na especificação de gradiente multicor" #: ../src/defaults.c:1910 msgid "bad number of arguments in textured gradient specification" msgstr "número de argumentos inválido na especificação da textura do gradiente" #: ../src/defaults.c:1953 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "valor de opacidade errado para a textura gradient \"%s\". Deve ser [0..255]" #: ../src/defaults.c:2013 #, c-format msgid "could not initialize library %s" msgstr "não foi possível inicializar biblioteca %s" #: ../src/defaults.c:2016 #, c-format msgid "could not find function %s::%s" msgstr "função %s::%s não pôde ser encontrada" #: ../src/defaults.c:2023 #, c-format msgid "invalid texture type %s" msgstr "textura inválida: %s" #: ../src/defaults.c:2070 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Erro na especificação de textura para a tecla \"%s\"" #: ../src/defaults.c:2177 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Valor inválido para fundo de área de trabalho. Deve ser tipo textura." #: ../src/defaults.c:2225 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "" "Valor inválido para o fundo da área de trabalho %i. Deve ser tipo textura." #: ../src/defaults.c:2267 msgid "could not load any usable font!!!" msgstr "não foi possível carregar nenhuma fonte útil!!!" #: ../src/defaults.c:2294 #, c-format msgid "could not get color for key \"%s\"" msgstr "não foi possível obter cor para tecla \"%s\"" #: ../src/defaults.c:2352 ../src/rootmenu.c:492 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s:modificador de tecla inválido \"%s\"" #: ../src/defaults.c:2364 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: Kbd inválido para especificação de atalho \"%s\"" #: ../src/defaults.c:2371 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s:tecla inválida no atalho \"%s\"" #: ../src/defaults.c:2396 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: tecla modificadora %s não é válida" #: ../src/defaults.c:2428 #, c-format msgid "could not load image in option %s: %s" msgstr "não foi possível carregar imagem na opção %s: %s" #: ../src/defaults.c:2547 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "falha ao abrir arquivo de bitmap \"%s\"" #: ../src/defaults.c:2550 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" não é um arquivo de bitmap válido" #: ../src/defaults.c:2553 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "falta de memória ao ler arquivo de bitmap \"%s\"" #: ../src/defaults.c:2597 ../src/defaults.c:2639 msgid "bad number of arguments in cursor specification" msgstr "número inválido de argumentos na especificação do cursor" #: ../src/defaults.c:2617 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "nome de cursor interno desconhecido \"%s\"" #: ../src/defaults.c:2651 ../src/defaults.c:2665 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "arquivo de bitmap de cursor \"%s\" não encontrado" #: ../src/defaults.c:2715 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Erro na especificação do cursor para a tecla \"%s\"" #: ../src/defaults.c:2805 msgid "could not render texture for icon background" msgstr "não foi possível apresentar textura para fundo de ícone" #: ../src/dialog.c:122 ../src/dialog.c:581 ../src/dock.c:547 #: ../src/dockedapp.c:376 ../src/rootmenu.c:188 ../src/rootmenu.c:226 #: ../src/rootmenu.c:240 msgid "Cancel" msgstr "Cancelar" #: ../src/dialog.c:225 msgid "Could not open directory " msgstr "Não foi possível abrir diretório " #: ../src/dialog.c:280 msgid "Could not load image file " msgstr "Não foi possível carregar arquivo de imagem " #: ../src/dialog.c:509 msgid "Directories" msgstr "Diretórios" #: ../src/dialog.c:518 msgid "Icons" msgstr "Ãcones" #: ../src/dialog.c:551 msgid "Preview" msgstr "Pré-Visualizar" #: ../src/dialog.c:564 msgid "File Name:" msgstr "Nome de arquivo:" #: ../src/dialog.c:587 msgid "Choose File" msgstr "Escolher Arquivo" #: ../src/dialog.c:604 ../src/dialog.c:606 msgid "Icon Chooser" msgstr "Seletor de Ãcones" #: ../src/dialog.c:1515 ../src/startup.c:328 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "" "não foi possível abrir conexão para caixa de diálogo de erros fatais. " "Abortando." #: ../src/dialog.c:1541 msgid "Fatal error" msgstr "Erro fatal" #: ../src/dialog.c:1552 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "O Window Maker recebeu o sinal %i\n" "(%s)." #: ../src/dialog.c:1555 #, c-format msgid "Window Maker received signal %i." msgstr "O Window Maker recebeu o sinal %i." #: ../src/dialog.c:1564 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " Este erro fatal ocorreu provavelmente devido a uma falha.\n" " Por favor preencha o arquivo BUGFORM incluído e reporte-o a " "bugs@windowmaker.info." #: ../src/dialog.c:1572 msgid "What do you want to do now?" msgstr "O que quer fazer agora?" #: ../src/dialog.c:1578 msgid "Select action" msgstr "Selecionar ação" #: ../src/dialog.c:1579 msgid "Abort and leave a core file" msgstr "Abortar e deixar um arquivo core" #: ../src/dialog.c:1580 msgid "Restart Window Maker" msgstr "Reiniciar o WindowMaker" #: ../src/dialog.c:1581 msgid "Start alternate window manager" msgstr "Iniciar gerenciador de janelas alternativo" #: ../src/dock.c:213 #, c-format msgid "Type the name for workspace %i:" msgstr "Digitar o nome para a área de trabalho %i:" #: ../src/dock.c:214 ../src/dock.c:1123 ../src/dock.c:1126 ../src/dock.c:3381 msgid "Rename Workspace" msgstr "Renomear Ãrea de Trabalho" #: ../src/dock.c:509 ../src/dock.c:517 msgid "Warning" msgstr "Aviso" #: ../src/dock.c:510 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Alguns ícones não podem estar onipresentes. Por favor tenha certeza de que " "não há outros ícones na mesma posição ou o Clip não está cheio em outra área " "de trabalho." #: ../src/dock.c:518 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "O ícone não pôde estar onipresente. Por favor tenha certeza de que não há " "outros ícones na mesma posição ou o Clip não está cheio em outra área de " "trabalho." #: ../src/dock.c:545 msgid "Workspace Clip" msgstr "Ãrea de trabalho Clip" #: ../src/dock.c:546 msgid "All selected icons will be removed!" msgstr "Todos os ícones selecionados serão removidos!" #: ../src/dock.c:597 ../src/dock.c:1138 ../src/dock.c:1140 ../src/dock.c:3417 msgid "Keep Icon" msgstr "Manter Ãcone" #: ../src/dock.c:598 ../src/dock.c:2120 ../src/dock.c:2254 msgid "Type the command used to launch the application" msgstr "Digitar o comando usado para executar a aplicação" #: ../src/dock.c:949 #, c-format msgid "could not launch application %s\n" msgstr "não foi possível executar aplicação %s\n" #: ../src/dock.c:1004 msgid "could not create workspace submenu for Clip menu" msgstr "não foi possível criar submenu para o menu do Clip" #: ../src/dock.c:1027 ../src/dock.c:1070 ../src/dock.c:1115 ../src/dock.c:3361 msgid "Keep on Top" msgstr "Manter sobre outros" #: ../src/dock.c:1029 ../src/dock.c:3363 msgid "Allow Lowering" msgstr "Permitir sobreposição" #: ../src/dock.c:1066 msgid "could not create options submenu for Clip menu" msgstr "não foi possível criar opções de submenu para o menu do Clip" #: ../src/dock.c:1073 msgid "Collapsed" msgstr "Minimizado" #: ../src/dock.c:1079 msgid "AutoCollapse" msgstr "Minimizar autom." #: ../src/dock.c:1085 msgid "AutoRaiseLower" msgstr "Sobrepor/subpor autom." #: ../src/dock.c:1091 msgid "AutoAttract Icons" msgstr "Auto Atrair Ãcones" #: ../src/dock.c:1118 msgid "Clip Options" msgstr "Opções do Clip" #: ../src/dock.c:1128 msgid "Selected" msgstr "Selecionado" #: ../src/dock.c:1133 ../src/dock.c:1136 ../src/dock.c:3408 msgid "Select All Icons" msgstr "Selecionar todos os Ãcones" #: ../src/dock.c:1142 ../src/dock.c:1144 ../src/dock.c:3425 msgid "Move Icon To" msgstr "Mover Ãcone para" #: ../src/dock.c:1149 ../src/dock.c:1152 ../src/dock.c:3436 msgid "Remove Icon" msgstr "Remover Ãcone" #: ../src/dock.c:1154 msgid "Attract Icons" msgstr "Atrair Ãcones" #: ../src/dock.c:1157 msgid "Launch" msgstr "Executar" #: ../src/dock.c:1165 msgid "Settings..." msgstr "Configurações..." #: ../src/dock.c:1524 ../src/dock.c:1627 #, c-format msgid "bad value in docked icon state info %s" msgstr "valor inválido na posição dock declare informação %s" #: ../src/dock.c:1635 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "valor inválido de localização de ícone na posição dock %i,%i" #: ../src/dock.c:1887 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "excesso de ícones na posição dock. Ignorando o que não cabe" #. icon->forced_dock = 1; #: ../src/dock.c:2119 ../src/dock.c:2253 msgid "Dock Icon" msgstr "Posicionar Ãcone" #: ../src/dock.c:3284 ../src/dock.c:3288 #, c-format msgid "Could not execute command \"%s\"" msgstr "Comando \"%s\" não pôde ser executado" #: ../src/dock.c:3387 msgid "Toggle Omnipresent" msgstr "Acionar Onipresença" #: ../src/dock.c:3392 ../src/winmenu.c:421 ../src/winspector.c:1380 msgid "Omnipresent" msgstr "Onipresente" #: ../src/dock.c:3406 msgid "Unselect All Icons" msgstr "Desfazer seleção de todos os Ãcones" #: ../src/dock.c:3415 msgid "Keep Icons" msgstr "Manter Ãcones" #: ../src/dock.c:3423 msgid "Move Icons To" msgstr "Mover Ãcones para" #: ../src/dock.c:3434 msgid "Remove Icons" msgstr "Remover Ãcones" #: ../src/dock.c:3465 msgid "Bring Here" msgstr "Trazer aqui" #: ../src/dockedapp.c:131 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "Ãcone %s não encontrado, usado em uma aplicação de posição dock" #: ../src/dockedapp.c:210 #, c-format msgid "Could not open specified icon file: %s" msgstr "Não foi possível abrir arquivo do ícone especificado %s" #: ../src/dockedapp.c:212 msgid "Ignore" msgstr "Ignorar" #: ../src/dockedapp.c:305 msgid "Start when WindowMaker is started" msgstr "Iniciar junto com o WindowMaker" #: ../src/dockedapp.c:312 msgid "Lock (prevent accidental removal)" msgstr "Travado (para prevenir remoção acidental)" #: ../src/dockedapp.c:318 msgid "Application path and arguments" msgstr "Caminho da aplicação e argumentos" #: ../src/dockedapp.c:329 msgid "Command for files dropped with DND" msgstr "Comando para arquivos abandonados por DND" #: ../src/dockedapp.c:341 #, c-format msgid "%d will be replaced with the file name" msgstr "%d será substituído pelo nome de arquivo" #: ../src/dockedapp.c:345 msgid "DND support was not compiled in" msgstr "suporte para DND não foi compilado" #: ../src/dockedapp.c:351 msgid "Icon Image" msgstr "Imagem do ícone" #: ../src/dockedapp.c:363 ../src/winspector.c:1518 msgid "Browse..." msgstr "Navegar..." #: ../src/dockedapp.c:408 msgid "Docked Application Settings" msgstr "Configurações de Aplicação na posição Dock" #: ../src/framewin.c:655 ../src/framewin.c:750 ../src/menu.c:458 #: ../src/texture.c:549 #, c-format msgid "could not render texture: %s" msgstr "não foi possível apresentar textura: %s" #: ../src/framewin.c:678 ../src/framewin.c:689 ../src/framewin.c:705 #: ../src/framewin.c:716 ../src/framewin.c:723 ../src/framewin.c:730 #: ../src/icon.c:350 ../src/menu.c:487 #, c-format msgid "error rendering image:%s" msgstr "erro na apresentação de imagem:%s" #: ../src/framewin.c:783 #, c-format msgid "error rendering image: %s" msgstr "erro na apresentação de imagem:%s" #: ../src/icon.c:229 ../src/wdefaults.c:435 #, c-format msgid "error loading image file \"%s\": %s" msgstr "erro ao carregar arquivo de imagens \"%s\": %s" #: ../src/icon.c:488 ../src/icon.c:497 #, c-format msgid "could not create directory %s" msgstr "não foi possível criar diretório %s" #: ../src/icon.c:764 #, c-format msgid "could not find default icon \"%s\"" msgstr "ícone padrão \"%s\" não pôde ser encontrado" #: ../src/icon.c:770 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "ícone padrão \"%s\" não pôde ser carregado:%s" #: ../src/main.c:204 msgid "failed to restart Window Maker." msgstr "fallou ao reiniciar o Window Maker." #: ../src/main.c:207 #, c-format msgid "could not exec %s" msgstr "não foi possível executar %s" #: ../src/main.c:252 msgid "Could not execute command: " msgstr "Não foi possível executar o comando:" #: ../src/main.c:409 #, c-format msgid "%s aborted.\n" msgstr "%s abortado.\n" #: ../src/main.c:420 #, c-format msgid "Usage: %s [options]\n" msgstr "Uso: %s [-opções]\n" #: ../src/main.c:421 msgid "The Window Maker window manager for the X window system" msgstr "O gerenciador de janelas Window Maker para o sistema X" #: ../src/main.c:423 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tdisplay a ser usado" #: ../src/main.c:425 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tdesativa preprocessamento de arquivos de configuração" #: ../src/main.c:427 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tdesabilitar o Dock" #: ../src/main.c:428 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tnão abre área de trabalho Clip" #: ../src/main.c:429 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tnão lança aplicativos automaticamente" #: ../src/main.c:430 msgid " --dont-restore\tdo not restore saved session" msgstr " --dont-restore \tnão restaura sessão salva" #: ../src/main.c:432 msgid " --locale locale\t\tlocale to use" msgstr " --locale língua\t\tlinguagem a ser usada" #: ../src/main.c:434 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tvisual id do visual a usar" #: ../src/main.c:435 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tnão atualiza ou salva configurações" #: ../src/main.c:437 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --síncrono\t\tligar o vídeo em modo síncrono" #: ../src/main.c:439 msgid " --version\t\tprint version and exit" msgstr " --version\t\tmostra versão e sai" #: ../src/main.c:440 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tmostra esta mensagem" #: ../src/main.c:452 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "não foi possível encontrar directório do usuário GNUstep: (%s).\n" "Certifique-se de que o WindowMaker está instalado corretamente e execute " "wmaker.inst" #: ../src/main.c:473 ../src/main.c:478 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:não foi possível executar o script de inicialização" #: ../src/main.c:498 ../src/main.c:503 #, c-format msgid "%s:could not execute exit script" msgstr "%s:não foi possível executar o script de saída" #: ../src/main.c:619 ../src/main.c:626 ../src/main.c:634 ../src/main.c:650 #, c-format msgid "too few arguments for %s" msgstr "argumentos insuficientes para %s" #: ../src/main.c:638 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "valor inválido de visualID: \"%s\"" #: ../src/main.c:658 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: argumento inválido '%s'\n" #: ../src/main.c:659 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Tente '%s --help' para mais informações\n" #: ../src/main.c:690 msgid "X server does not support locale" msgstr "servidor X não suporta local" #: ../src/main.c:694 msgid "cannot set locale modifiers" msgstr "Não foi possível definir modificadores locais" #: ../src/main.c:710 #, c-format msgid "could not open display \"%s\"" msgstr "não foi possível abrir display \"%s\"" #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "não foi possível definir valor de %s para cpp" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "não foi possível obter senha de entrada para UID %i" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "sua máquina está mal configurada. Valor de HOSTNAME = %s" #: ../src/misc.c:132 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "sua máquina está mal configurada. Valor de HOST = %s" #: ../src/misc.c:753 msgid "selection timed-out" msgstr "tempo esgotado tentando ler seleção" #: ../src/misc.c:769 msgid "Program Arguments" msgstr "Parâmetros do programa" #: ../src/misc.c:770 msgid "Enter command arguments:" msgstr "Digite os parâmetros do comando:" #: ../src/misc.c:863 msgid "unable to get dropped data from DND drop" msgstr "impossível receber dados abandonados por DND" #: ../src/misc.c:871 msgid "error getting dropped data from DND drop" msgstr "erro recebendo dados abandonados por DND" #: ../src/misc.c:877 msgid "out of memory while getting data from DND drop" msgstr "falta de memória ao recuper dados de drag&drop DND" #: ../src/misc.c:922 ../src/misc.c:1062 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "falta de memória durante expansão de \"%s\"" #: ../src/misc.c:976 msgid "out of memory during expansion of \"%w\"" msgstr "falta de memória durante expansão de \"%w\"" #: ../src/misc.c:994 msgid "out of memory during expansion of \"%W\"" msgstr "falta de memória durante expansão de \"%W\"" #: ../src/misc.c:1010 msgid "out of memory during expansion of \"%a\"" msgstr "falta de memória durante expansão de \"%a\"" #: ../src/misc.c:1041 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "falta de memória durante expansão de \"%d\"" #: ../src/misc.c:1055 msgid "selection not available" msgstr "seleção não disponível" #: ../src/misc.c:1127 ../src/misc.c:1133 #, c-format msgid "bad window name value in %s state info" msgstr "nome de janela inválido em %s declare informação" #: ../src/misc.c:1401 msgid "could not send message to background image helper" msgstr "não foi possível enviar mensagem para o auxiliar de imagem de fundo" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "" "não foi possível abrir arquivo máscara de bitmap \"%s\". Não usará máscara" #: ../src/proplist.c:180 msgid "unterminated string" msgstr "cadeia de caracteres não finalizada" #: ../src/proplist.c:247 msgid "unterminated array" msgstr "Matriz não terminada" #: ../src/proplist.c:256 msgid "missing , in array or unterminated array" msgstr "faltando na matriz ou matriz não terminada" #: ../src/proplist.c:267 msgid "could not get array element" msgstr "não foi possível receber um elemento da matriz" #: ../src/proplist.c:297 msgid "unterminated dictionary" msgstr "dicionário não finalizado" #: ../src/proplist.c:315 msgid "missing dictionary key" msgstr "faltando chave do dicionário" #: ../src/proplist.c:317 msgid "missing dictionary entry key or unterminated dictionary" msgstr "faltando chave de entrada do dicionário ou dicionário não finalizado" #: ../src/proplist.c:323 msgid "error parsing dictionary key" msgstr "erro ao interpretar a chave do dicionário" #: ../src/proplist.c:332 msgid "missing = in dictionary entry" msgstr "faltando = na entrada no dicionário" #: ../src/proplist.c:351 msgid "missing ; in dictionary entry" msgstr "faltando ; na entrada no dicionário" #: ../src/proplist.c:432 msgid "" "was expecting a string, dictionary, data or array. If it's a string, try " "enclosing it with \"." msgstr "foi esperado uma cadeia de caracteres, dicionário, dados ou matriz. Se isto é uma cadeia de caracteres, tente fechá-la com \"." #: ../src/proplist.c:434 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "" "Comentários não são permitidos dentro dos arquivos de domínio do WindowMaker." #: ../src/proplist.c:453 #, c-format msgid "could not open domain file %s" msgstr "não foi possível abrir arquivo de domínio %s" #: ../src/proplist.c:466 msgid "extra data after end of file" msgstr "dados inúteis após final de arquivo" #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "não foi possível identificar cor \"%s\"" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "não foi possível determinar cor \"%s\"" #: ../src/rootmenu.c:186 ../src/rootmenu.c:188 msgid "Exit" msgstr "Sair" #: ../src/rootmenu.c:187 msgid "Exit window manager?" msgstr "Sair do gerenciador de janelas?" #: ../src/rootmenu.c:223 msgid "Close X session" msgstr "Fechar sessão do X" #: ../src/rootmenu.c:224 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "Fechar sessão do sistema de janelas?\n" "Terminar poderá fechar todos os aplicativos com dados não salvos" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/rootmenu.c:226 ../src/winmenu.c:509 msgid "Close" msgstr "Fechar" #: ../src/rootmenu.c:237 msgid "Kill X session" msgstr "Fechar sessão do X" #: ../src/rootmenu.c:238 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Fechar sessão do sistema de janelas?\n" "(todos os aplicativos serão fechados)" #: ../src/rootmenu.c:505 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:especificação de atalho no teclado inválida \"%s\" para entrada %s" #: ../src/rootmenu.c:513 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:tecla inválida no atalho \"%s\" para entrada %s" #: ../src/rootmenu.c:566 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s:não concorda com '\"' no arquivo de menu" #: ../src/rootmenu.c:616 #, c-format msgid "%s: missing command" msgstr "%s: comando perdido" #: ../src/rootmenu.c:648 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "especificação de OPEN_MENU inválido: %s" #: ../src/rootmenu.c:696 #, c-format msgid "%s:could not stat menu" msgstr "%s:não foi possível menu rápido" #: ../src/rootmenu.c:704 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:não foi possível menu rápido: %s" #: ../src/rootmenu.c:722 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "excesso de parâmetros em OPEN_MENU: %s" #: ../src/rootmenu.c:758 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Há mais de um comando WORKSPACE_MENU no menu de aplicativo. Somente um é " "permitido." #: ../src/rootmenu.c:787 ../src/rootmenu.c:805 ../src/rootmenu.c:815 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:parâmetro inexistente para o comando de menu \"%s\"" #: ../src/rootmenu.c:879 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:comando desconhecido \"%s\" na configuração do menu." #: ../src/rootmenu.c:887 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:\"%s\" não pode adicionar atalho para entrada" #: ../src/rootmenu.c:1024 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:tamanho máximo da linha excedeu no menu de configuração: %s" #: ../src/rootmenu.c:1046 ../src/rootmenu.c:1138 ../src/rootmenu.c:1239 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:falta o comando no menu \"%s\"" #: ../src/rootmenu.c:1076 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:erro de sintaxe no menu:falta um END" #: ../src/rootmenu.c:1105 ../src/rootmenu.c:1204 msgid "could not make arguments for menu file preprocessor" msgstr "não foi possível criar parâmetros para o preprocessador para menu" #: ../src/rootmenu.c:1111 ../src/rootmenu.c:1211 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s:não foi possível abrir/preprocessar arquivo de menu" #: ../src/rootmenu.c:1123 ../src/rootmenu.c:1224 #, c-format msgid "%s:could not open menu file" msgstr "%s:não foi possível abrir arquivo de menu" #: ../src/rootmenu.c:1150 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:arquivo de menu inválido. Comando MENU não existe" #: ../src/rootmenu.c:1159 msgid "error reading preprocessed menu data" msgstr "erro lendo dados de menu pré-processados" #: ../src/rootmenu.c:1251 #, c-format msgid "%s:no title given for the root menu" msgstr "%s:falta o título do menu de aplicações" #: ../src/rootmenu.c:1341 ../src/rootmenu.c:1416 ../src/rootmenu.c:1459 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "faltou memória durante construção do menu de diretório %s" #: ../src/rootmenu.c:1351 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:não foi possivel acessar arquivo \"%s\" no menu de diretório" #: ../src/rootmenu.c:1513 msgid "Commands" msgstr "Comandos" #: ../src/rootmenu.c:1516 msgid "Restart" msgstr "Reiniciar" #: ../src/rootmenu.c:1517 msgid "Exit..." msgstr "Sair..." #: ../src/rootmenu.c:1562 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "" "não foi possivel encontrar arquivo de menu \"%s\" está referenciado em " "WMRootMenu" #: ../src/rootmenu.c:1569 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "" "não foi possível acessar arquivo de menu \"%s\" referenciado no WMRootMenu" #: ../src/rootmenu.c:1580 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "usando menu padrão \"%s\" pois o menu referenciado no arquivo WMRootMenu não " "foi encontrado " #: ../src/rootmenu.c:1603 ../src/rootmenu.c:1679 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:erro no formato do arquivo de configuração de menu \"%s\"" #: ../src/rootmenu.c:1766 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "O menu de aplicativos não pôde ser carregado. Olhe no painel de saída para " "uma descrição detalhada dos erros." #: ../src/screen.c:460 #, c-format msgid "could not load logo image for panels: %s" msgstr "não foi possível carregar imagem de logotipo para painéis: %s" #: ../src/screen.c:464 #, c-format msgid "error making logo image for panel:%s" msgstr "erro na geração de logotipo para janelas:%s" #: ../src/screen.c:745 #, c-format msgid "could not initialize graphics library context: %s" msgstr "não foi possivel inicializar contexto da biblioteca gráfica: %s" #: ../src/screen.c:776 msgid "could not do initialization of WINGs widget set" msgstr "não foi possível inicialização WINGs sem configuração" #: ../src/screen.c:1128 #, c-format msgid "could not save session state in %s" msgstr "não foi possível salvar sessão, informe em %s" #: ../src/session.c:183 ../src/wdefaults.c:583 ../src/winspector.c:447 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "não pode converter \"%s\" para um valor booleano" #: ../src/session.c:1023 msgid "out of memory while saving session state" msgstr "faltou memória ao salvar a sessão" #: ../src/session.c:1114 msgid "end of memory while saving session state" msgstr "faltou memória ao salvar a sessã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:1248 msgid "connection to the session manager was lost" msgstr "conexão para a sessão de gerenciador foi perdida" #: ../src/stacking.c:73 msgid "could not get window list!!" msgstr "não foi possível obter a lista de janelas!!" #: ../src/startup.c:197 #, c-format msgid "internal X error: %s\n" msgstr "erro interno de X: %s\n" #: ../src/startup.c:262 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "sinal %i (%s) recebido - reiniciando\n" #: ../src/startup.c:264 #, c-format msgid "got signal %i - restarting\n" msgstr "sinal %i recebido - reiniciando\n" #: ../src/startup.c:278 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "sinal %i (%s) recebido - saindo...\n" #: ../src/startup.c:280 #, c-format msgid "got signal %i - exiting...\n" msgstr "sinal %i recebido - saindo...\n" #: ../src/startup.c:293 #, c-format msgid "got signal %i (%s)\n" msgstr "sinal %i recebido (%s)\n" #: ../src/startup.c:295 #, c-format msgid "got signal %i\n" msgstr "sinal %i recebido\n" #: ../src/startup.c:306 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "" "erro fatal enquanto tentava limpeza pós-crash. Abortando imediatamente." #. we try to restart Window Maker #: ../src/startup.c:340 msgid "trying to restart Window Maker..." msgstr "tentando reiniciar o Window Maker..." #: ../src/startup.c:345 msgid "trying to start alternate window manager..." msgstr "tentando iniciar gerenciador de janelas alternativo..." #: ../src/startup.c:350 msgid "failed to start alternate window manager. Aborting." msgstr "tentativa de iniciar gerenciador alternativo falhou. Abortando." #: ../src/startup.c:352 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" "um erro fatal ocorreu, provavelmente devido a uma falha. Por favor preencha " "o arquivo BUGFORM incluído e envie." #: ../src/startup.c:830 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "" "tamanho de ícone está configurado para %i, mas é muito pequeno. Usando 16\n" #: ../src/startup.c:858 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "" "O XKB não é suportado. Teclado modo travar desabilitado automaticamente." #: ../src/startup.c:877 msgid "it seems that there is already a window manager running" msgstr "aparentemente já há um gerenciador de janelas sendo executado" #: ../src/startup.c:883 #, c-format msgid "could not manage screen %i" msgstr "não é possível gerenciar janela %i" #: ../src/startup.c:944 msgid "could not manage any screen" msgstr "não é possível gerenciar qualquer janela" #: ../src/switchmenu.c:114 msgid "Windows" msgstr "Janelas" #: ../src/texture.c:290 ../src/texture.c:334 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "arquivo de imagem \"%s\" usado como textura não foi encontrado." #: ../src/texture.c:296 ../src/texture.c:340 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "arquivo de imagem \"%s\" não pôde ser aberto:%s" #: ../src/texture.c:400 #, c-format msgid "library \"%s\" cound not be opened." msgstr "não foi possível abrir biblioteca \"%s\"" #: ../src/texture.c:409 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "função \"%s\" não encontrada na biblioteca \"%s\"" #: ../src/texture.c:416 msgid "function textures not supported on this system, sorry." msgstr "função de texturas não suportadas neste sistema, desculpe." #: ../src/wdefaults.c:429 #, c-format msgid "could not find icon file \"%s\"" msgstr "ícone de arquivo \"%s\" não encontrado" #: ../src/window.c:2715 ../src/window.c:2849 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 "" "a tecla NumLock, ScrollLock ou similar parece estar ligada.\n" "Desligue-a ou algumas ações do mouse e teclas de atalho não funcionarão." #: ../src/winmenu.c:126 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "A aplicação será finalizada (kill).\n" "Quaisquer modificações não salvas serão perdidas.\n" "Confirme por favor." #: ../src/winmenu.c:275 ../src/winmenu.c:283 msgid "Set Shortcut" msgstr "Criar atalho" #: ../src/winmenu.c:361 ../src/winmenu.c:407 msgid "could not create submenu for window menu" msgstr "não foi possível criar submenu para o menu de janela" #: ../src/winmenu.c:411 msgid "Keep on top" msgstr "Manter sobre outros" #: ../src/winmenu.c:416 msgid "Keep at bottom" msgstr "Manter embaixo" #. #. * 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:444 ../src/winmenu.c:579 msgid "Maximize" msgstr "Maximizar" #: ../src/winmenu.c:452 ../src/winmenu.c:565 msgid "Miniaturize" msgstr "Minimizar" #: ../src/winmenu.c:461 ../src/winmenu.c:596 msgid "Shade" msgstr "Sombrear" #: ../src/winmenu.c:477 msgid "Resize/Move" msgstr "Redimensionar/Mover" #: ../src/winmenu.c:485 msgid "Select" msgstr "Selecionar" #: ../src/winmenu.c:493 msgid "Move To" msgstr "Mover Para" #: ../src/winmenu.c:498 msgid "Attributes..." msgstr "Atributos..." #: ../src/winmenu.c:500 msgid "Options" msgstr "Opções" #: ../src/winmenu.c:560 msgid "Deminiaturize" msgstr "Restaurar" #: ../src/winmenu.c:574 msgid "Unmaximize" msgstr "Desmaximizar" #: ../src/winmenu.c:591 msgid "Unshade" msgstr "tirar sombra" #: ../src/winspector.c:381 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Ãcone especificado não pôde ser encontrado: \"%s\"" #: ../src/winspector.c:397 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "O ícone especificado \"%s\" não pôde ser aberto:%s" #: ../src/winspector.c:1221 msgid "Save" msgstr "Salvar" #: ../src/winspector.c:1229 msgid "Apply" msgstr "Aplicar" #: ../src/winspector.c:1235 msgid "Reload" msgstr "Recarregar" #: ../src/winspector.c:1244 ../src/winspector.c:1254 msgid "Window Specification" msgstr "Especificação de Janelas" #: ../src/winspector.c:1245 msgid "Window Attributes" msgstr "Atributos de Janela" #: ../src/winspector.c:1246 msgid "Advanced Options" msgstr "Opções Avançadas" #: ../src/winspector.c:1247 msgid "Icon and Initial Workspace" msgstr "Ãcone e Ãrea de Trabalho Inicial" #: ../src/winspector.c:1248 msgid "Application Specific" msgstr "Aplicação Específica" #: ../src/winspector.c:1262 msgid "Defaults for all windows" msgstr "Padrão para todas as janelas" #: ../src/winspector.c:1316 msgid "Select Window" msgstr "Selecionar Janela" #: ../src/winspector.c:1329 msgid "Attributes" msgstr "Atributos" #: ../src/winspector.c:1340 msgid "Disable Titlebar" msgstr "Remover barra de título" #: ../src/winspector.c:1342 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Remove a barra de título da janela.\n" "Para acessar os comandos de janela em uma janela\n" "sem sua barra de título, pressione Control+Esc (ou\n" "o equivalente, se você modificou a configuração\n" "das teclas)." #: ../src/winspector.c:1349 msgid "Disable Resizebar" msgstr "Remover barra de tamanho" #: ../src/winspector.c:1351 msgid "Remove the resizebar of this window." msgstr "Remover a barra de tamanho desta janela." #: ../src/winspector.c:1354 msgid "Disable Close Button" msgstr "Remover botão de fechar" #: ../src/winspector.c:1356 msgid "Remove the `close window' button of this window." msgstr "Remove o botão de fechar da janela." #: ../src/winspector.c:1359 msgid "Disable Miniaturize Button" msgstr "Desativa Minimizar" #: ../src/winspector.c:1361 msgid "Remove the `miniaturize window' button of the window." msgstr "Remove o botão de minimizar da janela." #: ../src/winspector.c:1364 msgid "Disable Border" msgstr "Desabilitar borda" #: ../src/winspector.c:1366 msgid "Remove the 1 pixel black border around the window." msgstr "Remover a borda preta de 1 pixel ao redor da janela." #: ../src/winspector.c:1369 msgid "Keep on Top / Floating" msgstr "Manter sobre outros / Flutando" #: ../src/winspector.c:1371 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "Mantém a janela sobre todas as outras, não permitindo que a cubram." #: ../src/winspector.c:1375 msgid "Keep at Bottom / Sunken" msgstr "Manter abaixo de outros / Oculta" #: ../src/winspector.c:1377 msgid "Keep the window under all other windows." msgstr "Mantém a janela abaixo de todas as outras." #: ../src/winspector.c:1382 msgid "Make window occupy all workspaces." msgstr "Faz a janela ocupar todas as áreas de trabalho." #: ../src/winspector.c:1385 msgid "Start Miniaturized" msgstr "Iniciar Minimizado" #: ../src/winspector.c:1387 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "Iniciar esta janela minimizada em sua primeira\n" "aparição." #: ../src/winspector.c:1391 msgid "Start Maximized" msgstr "Iniciar Maximizado" #: ../src/winspector.c:1393 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "Iniciar esta janela maximizada em sua primeira\n" "aparição." #: ../src/winspector.c:1397 msgid "Skip Window List" msgstr "Saltar lista de janelas" #: ../src/winspector.c:1399 msgid "Do not list the window in the window list menu." msgstr "Não mostrar esta janela no menu de lista de janelas." #: ../src/winspector.c:1414 msgid "Advanced" msgstr "Avançado" #: ../src/winspector.c:1431 msgid "Ignore HideOthers" msgstr "Ignorar Esconder Outros" #: ../src/winspector.c:1433 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "Não esconder esta janela quando utilizado\n" "o comando `Esconder Outras'." #: ../src/winspector.c:1437 msgid "Don't Bind Keyboard Shortcuts" msgstr "Não adicionar atalhos de teclado" #: ../src/winspector.c:1439 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Não adicionar atalhos de teclado do Window Maker quando\n" "esta janela estiver ativa. Isto permitirá que a janela receba \n" "todas as combinações de teclas não importando as combinações\n" "de configuração de atalho." #: ../src/winspector.c:1445 msgid "Don't Bind Mouse Clicks" msgstr "Não adicionar cliques de mouse" #: ../src/winspector.c:1447 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Não adicionar ações de mouse, tal como `Alt'+arrasto\n" "na janela (quando Alt é o modificador que você configurou)." #: ../src/winspector.c:1452 msgid "Keep Inside Screen" msgstr "Manter dentro da tela" #: ../src/winspector.c:1454 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Não permitir que a janela se mova totalmente para fora\n" "da tela. Para compatibilidade de falha.\n" #: ../src/winspector.c:1458 msgid "Don't Let It Take Focus" msgstr "Não deixar focalizar" #: ../src/winspector.c:1460 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "Não deixar a janela ser dominada pelo teclado quando este é utilizado." #: ../src/winspector.c:1464 msgid "Don't Save Session" msgstr "Não salvar a sessão" #: ../src/winspector.c:1466 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Não salvar a aplicação associada na sessão do estado,\n" "para que não seja reiniciada junto como outras \n" "aplicações quando o Window Maker iniciar." #: ../src/winspector.c:1472 msgid "Emulate Application Icon" msgstr "Emular ícone de aplicação" #: ../src/winspector.c:1474 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Fazer esta janela atuar como uma aplicação que provê\n" "informações suficientes para o Window Maker criar\n" "um ícone de aplicação." #: ../src/winspector.c:1479 msgid "Full Screen Maximization" msgstr "Maximização em Tela Cheia" #: ../src/winspector.c:1481 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Fazer com que a janela utilize toda a tela quando for\n" "maximizada. A barra de título e de tamanho serão\n" "movidas para fora da tela." #: ../src/winspector.c:1487 msgid "Disable Language Button" msgstr "Desabilitar botão de linguagem" #: ../src/winspector.c:1489 msgid "Remove the `toggle language' button of the window." msgstr "Remover o botão de linguagem da janela." #: ../src/winspector.c:1506 msgid "Miniwindow Image" msgstr "Imagem do Miniwindow" #: ../src/winspector.c:1525 msgid "Update" msgstr "Atualizar" #: ../src/winspector.c:1540 msgid "Icon File Name:" msgstr "Nome do arquivo de ícone:" #: ../src/winspector.c:1552 msgid "Ignore client supplied icon" msgstr "Ignorar ícone fornecido pela aplicação" #: ../src/winspector.c:1559 msgid "Initial Workspace" msgstr "Ãrea de Trabalho Inicial" #: ../src/winspector.c:1561 msgid "The workspace to place the window when it'sfirst shown." msgstr "Onde mostrar a janela quando da primeira aparição." #: ../src/winspector.c:1567 msgid "Nowhere in particular" msgstr "Nenhum lugar em particular" #: ../src/winspector.c:1585 msgid "Application Wide" msgstr "Geral da Aplicação" #: ../src/winspector.c:1596 msgid "Start Hidden" msgstr "Iniciar oculto" #: ../src/winspector.c:1598 msgid "Automatically hide application when it's started." msgstr "Esconde automaticamente a aplicação quando iniciada." #: ../src/winspector.c:1601 msgid "No Application Icon" msgstr "Sem ícone de aplicação" #: ../src/winspector.c:1603 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Desliga o ícone de aplicação para esta janela.\n" "Note que você não estará apto a colocar um ícone\n" "no dock, e qualquer ícone que já estiver lá\n" "irá parar de funcionar corretamente." #: ../src/workspace.c:110 ../src/workspace.c:111 ../src/workspace.c:806 #, c-format msgid "Workspace %i" msgstr "Ãrea de Trabalho %i" #: ../src/workspace.c:863 msgid "Workspaces" msgstr "Ãreas de Trabalho" #: ../src/workspace.c:865 msgid "could not create Workspace menu" msgstr "não foi possível criar menu de Ãrea de Trabalho" #: ../src/workspace.c:872 msgid "New" msgstr "Novo" #: ../src/workspace.c:873 msgid "Destroy Last" msgstr "Destruir Último" #: ../src/xutil.c:228 msgid "invalid data in selection" msgstr "dados inválidos na seleção" #~ msgid "out of memory while updating GNOME hints" #~ msgstr "faltou memória enquanto estava atualizando as dicas do GNOME" #~ msgid "Not Omnipresent" #~ msgstr "Não onipresente" #~ msgid "Move" #~ msgstr "Mover" #~ msgid "Resize" #~ msgstr "Redimensionar" #~ msgid "%a(Run Command,Type the command to run:)" #~ msgstr "%a(Executar comando. Digite o comando para executar:)" #~ msgid "wrealloc() failed while trying to add menu item" #~ msgstr "falta de memória durante adição de item em menu" #~ msgid "Keep Attracted Icons" #~ msgstr "Manter Ãcones Atraídos" #~ msgid "" #~ "Sorry, icon cannot be made omnipresent. Please make sure that no other icon " #~ "is docked in the same position on the other workspaces, and the Clip is not " #~ "full in some workspace, then try again." #~ msgstr "" #~ "Desculpe, o ícone não pode estar onipresente. Tenha certeza de que não há " #~ "outro ícone\n" #~ " na mesma posição ou o clip não está completo\n" #~ " em outra área de trabalho, e tente novamente." #~ 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 "" #~ "A configuração será usada para todas as janelas\n" #~ "que tenham o valor da propriedade WM_CLASS igual ao nome especificado " #~ "acima,\n" #~ "quando salvo." WindowMaker-0.95.5/po/it.po0000644000175000017500000015307612214432632012367 00000000000000# Italian messages for windowmaker. # Copyright (C) 2001, 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the windowmaker package. # Marco Colombo , 2005. # Michele Campeotto , 2001. # msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.91\n" "POT-Creation-Date: 2005-03-04 15:31+0000\n" "PO-Revision-Date: 2005-03-04 16:33+0000\n" "Last-Translator: Marco Colombo \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:415 ../src/dialog.c:295 ../src/dock.c:3335 #: ../src/dockedapp.c:231 ../src/main.c:271 ../src/rootmenu.c:1854 #: ../src/winspector.c:394 ../src/winspector.c:411 msgid "Error" msgstr "Errore" #: ../src/appicon.c:416 msgid "Could not open specified icon file" msgstr "Impossibile aprire l'icona specificata" #: ../src/appicon.c:417 ../src/dialog.c:192 ../src/dialog.c:295 #: ../src/dialog.c:725 ../src/dialog.c:1796 ../src/dock.c:515 #: ../src/dock.c:523 ../src/dock.c:547 ../src/dock.c:3336 #: ../src/dockedapp.c:232 ../src/dockedapp.c:427 ../src/main.c:271 #: ../src/rootmenu.c:1858 ../src/winspector.c:395 ../src/winspector.c:412 msgid "OK" msgstr "Ok" #: ../src/appicon.c:445 ../src/dock.c:244 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " sarà chiuso forzatamente.\n" "Tutte le modifiche non salvate saranno perse.\n" "Confermare." #: ../src/appicon.c:453 ../src/dock.c:263 ../src/winmenu.c:124 msgid "Kill Application" msgstr "Termina l'applicazione" #: ../src/appicon.c:454 ../src/dock.c:264 ../src/winmenu.c:126 msgid "Yes" msgstr "Sì" #: ../src/appicon.c:454 ../src/dock.c:264 ../src/winmenu.c:126 msgid "No" msgstr "No" #: ../src/appicon.c:484 ../src/dock.c:1168 ../src/dock.c:3501 msgid "Unhide Here" msgstr "Mostra qui" #: ../src/appicon.c:485 ../src/appicon.c:510 ../src/dock.c:1170 #: ../src/dock.c:1172 ../src/dock.c:3513 ../src/winmenu.c:461 msgid "Hide" msgstr "Nascondi" #: ../src/appicon.c:486 msgid "Set Icon..." msgstr "Cambia icona..." #: ../src/appicon.c:487 ../src/dock.c:1176 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 ../src/winmenu.c:508 msgid "Kill" msgstr "Termina" #: ../src/appicon.c:508 ../src/dock.c:3511 msgid "Unhide" msgstr "Mostra" #: ../src/application.c:405 #, c-format msgid "recreating missing icon '%s'" msgstr "rigenerazione dell'icona mancante '%s'" #: ../src/defaults.c:933 ../src/defaults.c:1095 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Il dominio %s (%s) del database globale dei default è rovinato!" #: ../src/defaults.c:938 #, c-format msgid "could not load domain %s from global defaults database" msgstr "impossibile leggere il dominio \"%s\" dal database globale dei default" #: ../src/defaults.c:990 ../src/defaults.c:1005 #, c-format msgid "invalid global menu file %s" msgstr "file di menù globale %s non valido" #: ../src/defaults.c:1033 ../src/startup.c:762 ../src/startup.c:780 #: ../src/startup.c:787 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "impossibile leggere il dominio \"%s\" dal database dei default" #: ../src/defaults.c:1079 ../src/defaults.c:1184 ../src/defaults.c:1225 #: ../src/defaults.c:1281 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Il dominio %s (%s) del database dei default è rovinato!" #: ../src/defaults.c:1084 ../src/defaults.c:1204 ../src/defaults.c:1261 #: ../src/defaults.c:1291 #, c-format msgid "could not load domain %s from user defaults database" msgstr "impossibile leggere il dominio \"%s\" dal database personale dei default" #: ../src/defaults.c:1114 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "impossibile leggere il dominio \"%s\" dal database globale dei default (%s)" #: ../src/defaults.c:1251 ../src/screen.c:419 #, c-format msgid "could not load logo image for panels: %s" msgstr "impossibile caricare il logo per i pannelli: %s" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1500 ../src/defaults.c:1639 ../src/defaults.c:1765 #: ../src/defaults.c:2243 ../src/defaults.c:2260 ../src/defaults.c:2305 #: ../src/defaults.c:2352 ../src/defaults.c:2825 ../src/wdefaults.c:571 #: ../src/wdefaults.c:604 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Formato dell'opzione sbagliato per la chiave \"%s\". Deve essere %s." #: ../src/defaults.c:1502 ../src/defaults.c:1583 ../src/defaults.c:1613 #: ../src/defaults.c:1644 ../src/defaults.c:1657 ../src/defaults.c:1672 #: ../src/defaults.c:1686 ../src/defaults.c:1770 ../src/defaults.c:1782 #: ../src/defaults.c:2248 ../src/defaults.c:2265 ../src/defaults.c:2278 #: ../src/defaults.c:2310 ../src/defaults.c:2326 ../src/defaults.c:2357 #: ../src/defaults.c:2444 ../src/defaults.c:2830 ../src/defaults.c:2841 #, c-format msgid "using default \"%s\" instead" msgstr "viene usato il valore predefinito \"%s\" invece" #: ../src/defaults.c:1533 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "opzione sbagliata per la chiave \"%s\". Deve essere una di %s" #: ../src/defaults.c:1578 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "impossibile convertire \"%s\" in booleano per la chiave \"%s\"" #: ../src/defaults.c:1610 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "impossibile convertire \"%s\" in intero per la chiave \"%s\"" #: ../src/defaults.c:1652 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Numero di elementi dell'array sbagliato per la chiave \"%s\"." #: ../src/defaults.c:1667 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Valore errato per la chiave \"%s\". Devono essere delle coordinate." #: ../src/defaults.c:1682 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "impossibile convertire l'array in interi per \"%s\"." #: ../src/defaults.c:1715 #, c-format msgid "Wrong value for key \"%s\". Should be an array." msgstr "Valore errato per la chiave \"%s\". Deve essere un array." #: ../src/defaults.c:1893 ../src/defaults.c:1925 ../src/defaults.c:1941 #: ../src/defaults.c:1970 ../src/defaults.c:1993 ../src/defaults.c:2046 #: ../src/defaults.c:2086 ../src/defaults.c:2124 ../src/defaults.c:2140 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" non è un nome di colore valido" #: ../src/defaults.c:1906 ../src/defaults.c:1958 msgid "bad number of arguments in gradient specification" msgstr "numero errato di argomenti nella definizione della sfumatura" #: ../src/defaults.c:2019 msgid "too few arguments in multicolor gradient specification" msgstr "argomenti mancanti nella definizione della sfumatura multicolore" #: ../src/defaults.c:2113 msgid "bad number of arguments in textured gradient specification" msgstr "numero errato di argomenti nella definizione della sfumatura con trama" # FIXME UPSTREAM: tgradient -> the gradient REPORTED #: ../src/defaults.c:2156 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "valore di opacità errato per la sfumatura con trama \"%s\". Deve essere [0..255]" #: ../src/defaults.c:2216 #, c-format msgid "could not initialize library %s" msgstr "impossibile inizializzare la libreria %s" #: ../src/defaults.c:2219 #, c-format msgid "could not find function %s::%s" msgstr "impossibile trovare la funzione %s::%s" #: ../src/defaults.c:2226 #, c-format msgid "invalid texture type %s" msgstr "tipo di trama non valido %s" #: ../src/defaults.c:2273 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Errore nella definizione della trama per la chiave \"%s\"" #: ../src/defaults.c:2322 msgid "Wrong type for workspace background. Should be a texture type." msgstr "" "Tipo errato per lo sfondo dell'area di lavoro. Deve essere un tipo di trama." #: ../src/defaults.c:2370 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "" "Tipo errato per lo sfondo dell'area di lavoro %i. Deve essere una trama." #: ../src/defaults.c:2412 msgid "could not load any usable font!!!" msgstr "impossibile caricare un font utilizzabile" #: ../src/defaults.c:2439 #, c-format msgid "could not get color for key \"%s\"" msgstr "impossibile trovare il colore per la chiave \"%s\"" # FIXME UPSTREAM #: ../src/defaults.c:2497 ../src/rootmenu.c:531 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s: modificatore di tasto non valido \"%s\"" # FIXME UPSTREAM #: ../src/defaults.c:2509 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: definizione di scorciatoia non valida \"%s\"" # FIXME UPSTREAM #: ../src/defaults.c:2516 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s: tasto non valido nella scorciatoia \"%s\"" #: ../src/defaults.c:2541 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: il tasto modificatore %s non è valido" #: ../src/defaults.c:2573 #, c-format msgid "could not load image in option %s: %s" msgstr "impossibile caricare l'immagine nell'opzione %s: %s" #: ../src/defaults.c:2690 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "apertura del file bitmap \"%s\" non riuscita" #: ../src/defaults.c:2693 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" non è un file bitmap valido" #: ../src/defaults.c:2696 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "memoria esaurita leggendo il file bitmap \"%s\"" #: ../src/defaults.c:2735 ../src/defaults.c:2768 msgid "bad number of arguments in cursor specification" msgstr "numero di argomenti errato nella definizione del cursore" #: ../src/defaults.c:2751 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "nome di cursore incorporato sconosciuto \"%s\"" #: ../src/defaults.c:2778 ../src/defaults.c:2790 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "impossibile trovare il file bitmap \"%s\" del cursore" #: ../src/defaults.c:2837 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Errore nella definizione del cursore per la chiave \"%s\"" #: ../src/defaults.c:2922 msgid "could not render texture for icon background" msgstr "impossibile generare la trama per lo sfondo dell'icona" #: ../src/defaults.c:3542 ../src/defaults.c:3617 #, c-format msgid "Invalid arguments for option \"%s\"" msgstr "Argomenti non validi per l'opzione \"%s\"" #: ../src/defaults.c:3549 ../src/defaults.c:3624 #, c-format msgid "Could not find image \"%s\" for option \"%s\"" msgstr "Impossibile trovare l'immagine \"%s\" per l'opzione \"%s\"" #: ../src/defaults.c:3555 ../src/defaults.c:3632 #, c-format msgid "Could not load image \"%s\" for option \"%s\"" msgstr "Impossibile caricare l'immagine \"%s\" per l'opzione \"%s\"" #: ../src/defaults.c:3567 msgid "Invalid split sizes for SwitchPanel back image." msgstr "" #: ../src/defaults.c:3640 #, c-format msgid "Invalid number of arguments for option \"%s\"" msgstr "Numero di argomenti non valido per l'opzione \"%s\"" #: ../src/dialog.c:147 msgid "Save workspace state" msgstr "Salva l'area di lavoro" #: ../src/dialog.c:192 ../src/dialog.c:732 ../src/dock.c:547 #: ../src/dockedapp.c:432 ../src/rootmenu.c:198 ../src/rootmenu.c:248 #: ../src/rootmenu.c:264 msgid "Cancel" msgstr "Annulla" #: ../src/dialog.c:290 msgid "Could not open directory " msgstr "Impossibile aprire la directory " #: ../src/dialog.c:345 msgid "Could not load image file " msgstr "Impossibile caricare il file immagine " #: ../src/dialog.c:659 msgid "Directories" msgstr "Directory" #: ../src/dialog.c:668 msgid "Icons" msgstr "Icone" #: ../src/dialog.c:701 msgid "Preview" msgstr "Anteprima" #: ../src/dialog.c:714 msgid "File Name:" msgstr "Nome file:" #: ../src/dialog.c:738 msgid "Choose File" msgstr "Selezione del file" #: ../src/dialog.c:757 ../src/dialog.c:759 msgid "Icon Chooser" msgstr "Selezione dell'icona" #: ../src/dialog.c:1196 ../src/dialog.c:1304 #, c-format msgid "Version %s" msgstr "Versione %s" #: ../src/dialog.c:1302 msgid "Window Manager for X" msgstr "Gestore di finestre per X" #: ../src/dialog.c:1325 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Si sta usando la visual 0x%x: %s %ibpp" #: ../src/dialog.c:1333 msgid "(32 thousand colors)\n" msgstr "(32 mila colori)\n" #: ../src/dialog.c:1336 msgid "(64 thousand colors)\n" msgstr "(64 mila colori)\n" #: ../src/dialog.c:1340 msgid "(16 million colors)\n" msgstr "(16 milioni di colori)\n" #: ../src/dialog.c:1343 #, c-format msgid "(%d colors)\n" msgstr "(%d colori)\n" #: ../src/dialog.c:1353 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "Memoria allocata: %i kB. Memoria utilizzata: %i kB.\n" #: ../src/dialog.c:1360 msgid "Supported image formats: " msgstr "Formati di immagine supportati: " #: ../src/dialog.c:1367 msgid "" "\n" "Additional support for: " msgstr "" "\n" "Supporto aggiuntivo per: " #: ../src/dialog.c:1384 msgid " and " msgstr " e " #: ../src/dialog.c:1394 msgid "" "\n" "Sound disabled" msgstr "\nAudio disabilitato" #: ../src/dialog.c:1396 msgid "" "\n" "Sound enabled" msgstr "\nAudio abilitato" #: ../src/dialog.c:1401 msgid ", VirtualDesktop enabled" msgstr ", VirtualDesktop abilitato" #: ../src/dialog.c:1403 msgid ", VirtualDesktop disabled" msgstr ", VirtualDesktop disabilitato" #: ../src/dialog.c:1407 msgid "\n" msgstr "\n" #: ../src/dialog.c:1409 msgid "Solaris " msgstr "Solaris " #: ../src/dialog.c:1411 msgid "Xinerama: " msgstr "Xinerama: " #: ../src/dialog.c:1445 msgid "Info" msgstr "Informazioni" #: ../src/dialog.c:1469 msgid "Merry Christmas!" msgstr "Buon Natale!" #: ../src/dialog.c:1539 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" " Window Maker è software libero; può essere ridistribuito e/o modificato\n" "nei termini della GNU General Public License come pubblicata dalla Free\n" "Software Foundation; versione 2 della licenza o (a vostra scelta)\n" "qualsiasi versione successiva.\n" "\n" " WindowMaker è distribuito nella speranza che sia utile, ma SENZA\n" "NESSUNA GARANZIA; neppure l'implicita garanzia di COMMERCIABILITÀ o\n" "IDONEITÀ AD UN SCOPO PARTICOLARE. Per maggiori informazioni, vedere la\n" "GNU General Public License.\n" "\n" " Dovreste aver ricevuto una copia della GNU General Public License\n" "insieme a questo programma; se non è così, scrivete alla Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA." #: ../src/dialog.c:1563 msgid "Legal" msgstr "Condizioni legali" #: ../src/dialog.c:1719 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "impossibile aprire una connessione per la finestra di crash. Interrotto." #: ../src/dialog.c:1745 msgid "Fatal error" msgstr "Errore fatale" #: ../src/dialog.c:1756 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker ha ricevuto il segnale %i\n" "(%s)." #: ../src/dialog.c:1759 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker ha ricevuto il segnale %i." #: ../src/dialog.c:1768 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " Questo errore fatale è probabilmente dovuto ad un bug. Si prega di " "compilare il file BUGFORM allegato e inviarlo a bugs@windowmaker.info." #: ../src/dialog.c:1777 msgid "What do you want to do now?" msgstr "Che cosa si vuole fare adesso?" #: ../src/dialog.c:1783 msgid "Select action" msgstr "Selezione dell'azione" #: ../src/dialog.c:1784 msgid "Abort and leave a core file" msgstr "Abbandona e genera un core dump" #: ../src/dialog.c:1785 msgid "Restart Window Maker" msgstr "Riavvia Window Maker" #: ../src/dialog.c:1786 msgid "Start alternate window manager" msgstr "Avvia un altro gestore di finestre" #: ../src/dialog.c:1964 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop environment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" "Window Maker è parte del progetto GNUStep.\n" "Il progetto GNUStep intende creare una\n" "implementazione libera delle specifiche\n" "OpenStep(tm) che costituiscono un framework\n" "ad oggetti per creare applicazioni grafiche\n" "avanzate multi-piattaforma. Inoltre, verranno\n" "creati un ambiente di sviluppo ed un ambiente\n" "desktop al di sopra del framework. Per maggiori\n" "informazioni, visitate: www.gnustep.org" #: ../src/dialog.c:1987 msgid "About GNUstep" msgstr "Informazioni su GNUStep" #: ../src/dock.c:193 #, c-format msgid "Type the name for workspace %i:" msgstr "Scrivere il nome dell'area di lavoro %i:" #: ../src/dock.c:194 ../src/dock.c:1132 ../src/dock.c:1135 ../src/dock.c:3419 msgid "Rename Workspace" msgstr "Rinomina area di lavoro" #: ../src/dock.c:509 ../src/dock.c:517 msgid "Warning" msgstr "Attenzione" #: ../src/dock.c:510 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "Alcune icone non possono essere rese onnipresenti. Assicurarsi che non ci siano altre icone nella stessa posizione in altre aree di lavoro e che la clip non sia piena in qualche area di lavoro." #: ../src/dock.c:518 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "L'icona non può essere resa onnipresente. Assicurarsi che non ci siano altre icone nella stessa posizione in altre aree di lavoro e che la clip non sia piena in qualche area di lavoro." #: ../src/dock.c:545 msgid "Workspace Clip" msgstr "Clip dell'area di lavoro" #: ../src/dock.c:546 msgid "All selected icons will be removed!" msgstr "Tutte le icone selezionate saranno eliminate" #: ../src/dock.c:598 ../src/dock.c:1147 ../src/dock.c:1149 ../src/dock.c:3455 msgid "Keep Icon" msgstr "Trattieni l'icona" #: ../src/dock.c:599 ../src/dock.c:2139 ../src/dock.c:2276 msgid "Type the command used to launch the application" msgstr "Scrivi il comando da usare per avviare l'applicazione" #: ../src/dock.c:954 #, c-format msgid "could not launch application %s\n" msgstr "impossibile avviare l'applicazione %s\n" #: ../src/dock.c:1010 msgid "could not create workspace submenu for Clip menu" msgstr "impossibile creare il sottomenù aree di lavoro per il menù della clip" #: ../src/dock.c:1069 msgid "could not create options submenu for Clip menu" msgstr "impossibile creare il sottomenù Opzioni per il menù della clip" #: ../src/dock.c:1073 ../src/dock.c:1121 msgid "Keep on Top" msgstr "In primo piano" #: ../src/dock.c:1079 msgid "Collapsed" msgstr "Collassata" #: ../src/dock.c:1085 msgid "Autocollapse" msgstr "Collassa automatico" #: ../src/dock.c:1091 msgid "Autoraise" msgstr "Alza automaticamente" #: ../src/dock.c:1097 msgid "Autoattract Icons" msgstr "Attrai le icone automatico" #: ../src/dock.c:1127 msgid "Clip Options" msgstr "Opzioni della clip" #: ../src/dock.c:1137 msgid "Selected" msgstr "Selezionata" #: ../src/dock.c:1142 ../src/dock.c:1145 ../src/dock.c:3446 msgid "Select All Icons" msgstr "Seleziona tutte" #: ../src/dock.c:1151 ../src/dock.c:1153 ../src/dock.c:3463 msgid "Move Icon To" msgstr "Sposta l'icona in" #: ../src/dock.c:1158 ../src/dock.c:1161 ../src/dock.c:3474 msgid "Remove Icon" msgstr "Elimina l'icona" #: ../src/dock.c:1163 msgid "Attract Icons" msgstr "Attrai le icone" #: ../src/dock.c:1166 msgid "Launch" msgstr "Avvia" #: ../src/dock.c:1174 msgid "Settings..." msgstr "Proprietà..." #: ../src/dock.c:1538 ../src/dock.c:1645 #, c-format msgid "bad value in docked icon state info %s" msgstr "valore errato nelle informazioni di stato dell'icona nel dock %s" #: ../src/dock.c:1653 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "valore errato nella posizione dell'icona nel dock %i,%i" #: ../src/dock.c:1673 #, c-format msgid "bad value in dock state info:%s" msgstr "valore errato nelle informazioni di stato del dock: %s" # FIXME #: ../src/dock.c:1923 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "ci sono troppe icone nel dock. Ignorate quelle che non ci entrano" #. icon->forced_dock = 1; #: ../src/dock.c:2138 ../src/dock.c:2275 msgid "Dock Icon" msgstr "Icona del dock" #: ../src/dock.c:3333 #, c-format msgid "Could not execute command \"%s\"" msgstr "Impossibile eseguire il comando \"%s\"" #: ../src/dock.c:3425 msgid "Toggle Omnipresent" msgstr "Inverti Onnipresente" #: ../src/dock.c:3430 ../src/winmenu.c:414 ../src/winspector.c:1383 msgid "Omnipresent" msgstr "Onnipresente" #: ../src/dock.c:3444 msgid "Unselect All Icons" msgstr "Deseleziona tutte" #: ../src/dock.c:3453 msgid "Keep Icons" msgstr "Trattieni le icone" #: ../src/dock.c:3461 msgid "Move Icons To" msgstr "Sposta le icone in" #: ../src/dock.c:3472 msgid "Remove Icons" msgstr "Elimina selezionate" #: ../src/dock.c:3503 msgid "Bring Here" msgstr "Porta qui" #: ../src/dockedapp.c:150 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "impossibile trovare l'icona %s, usata in una applicazione nel dock" #: ../src/dockedapp.c:230 #, c-format msgid "Could not open specified icon file: %s" msgstr "Impossibile aprire il file dell'icona: %s" #: ../src/dockedapp.c:232 msgid "Ignore" msgstr "Ignora" #: ../src/dockedapp.c:334 msgid "Start when Window Maker is started" msgstr "Esecuzione automatica all'avvio" #: ../src/dockedapp.c:341 msgid "Lock (prevent accidental removal)" msgstr "Blocca (evita l'eliminazione accidentale)" #: ../src/dockedapp.c:345 msgid "Application path and arguments" msgstr "Percorso dell'applicazione e argomenti" #: ../src/dockedapp.c:358 msgid "Command for middle-click launch" msgstr "" #: ../src/dockedapp.c:372 #, c-format msgid "%s will be replaced with current selection" msgstr "%s sarà sostituito dalla selezione corrente" #: ../src/dockedapp.c:377 msgid "Command for files dropped with DND" msgstr "Comando per i file ricevuti tramite DnD" #: ../src/dockedapp.c:391 #, c-format msgid "%d will be replaced with the file name" msgstr "%d sarà sostituito col nome del file" #: ../src/dockedapp.c:395 msgid "DND support was not compiled in" msgstr "Il supporto DnD non è stato compilato" #: ../src/dockedapp.c:400 msgid "Icon Image" msgstr "Icona" #: ../src/dockedapp.c:414 ../src/winspector.c:1521 msgid "Browse..." msgstr "Sfoglia..." #: ../src/dockedapp.c:475 msgid "Docked Application Settings" msgstr "Impostazioni dell'applicazione nel dock" #: ../src/framewin.c:647 ../src/framewin.c:742 ../src/menu.c:463 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "impossibile generare la trama: %s" #: ../src/framewin.c:670 ../src/framewin.c:681 ../src/framewin.c:697 #: ../src/framewin.c:708 ../src/framewin.c:715 ../src/framewin.c:722 #: ../src/icon.c:360 ../src/menu.c:492 #, c-format msgid "error rendering image:%s" msgstr "errore nella generazione dell'immagine: %s" #: ../src/framewin.c:775 #, c-format msgid "error rendering image: %s" msgstr "errore nella generazione dell'immagine: %s" #: ../src/icon.c:239 ../src/wdefaults.c:443 #, c-format msgid "error loading image file \"%s\": %s" msgstr "errore nel caricamento del file \"%s\": %s" #: ../src/icon.c:503 ../src/icon.c:512 #, c-format msgid "could not create directory %s" msgstr "impossibile creare la directory %s" #: ../src/icon.c:782 #, c-format msgid "could not find default icon \"%s\"" msgstr "impossibile trovare l'icona predefinita \"%s\"" #: ../src/icon.c:788 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "impossibile caricare l'icona predefinita \"%s\":%s" #: ../src/main.c:220 msgid "failed to restart Window Maker." msgstr "riavvio di Window Maker non riuscito." #: ../src/main.c:223 #, c-format msgid "could not exec %s" msgstr "impossibile eseguire %s" #: ../src/main.c:269 msgid "Could not execute command: " msgstr "Impossibile eseguire il comando: " #: ../src/main.c:426 #, c-format msgid "%s aborted.\n" msgstr "%s interrotto.\n" #: ../src/main.c:437 #, c-format msgid "Usage: %s [options]\n" msgstr "Uso: %s [opzioni]\n" #: ../src/main.c:438 msgid "The Window Maker window manager for the X window system" msgstr "Il gestore di finestre Window Maker per il sistema X Window" #: ../src/main.c:440 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:disp\tdisplay da usare" #: ../src/main.c:442 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tdisabilita la preanalisi dei file di configurazione" #: ../src/main.c:444 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tnon avvia il dock per le applicazioni" #: ../src/main.c:445 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tnon avvia la clip delle aree di lavoro" #: ../src/main.c:446 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tnon avvia automaticamente le applicazioni" #: ../src/main.c:447 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tnon ripristina la sessione salvata" #: ../src/main.c:449 msgid " --locale locale\tlocale to use" msgstr " --locale locale\tlocalizzazione da usare" #: ../src/main.c:451 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" " --create-stdcmap\tcrea l'hint standard della colormap nelle visual\n" " PseudoColor" #: ../src/main.c:452 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tID della visuale da usare" #: ../src/main.c:453 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tnon aggiorna e non salva la configurazione" #: ../src/main.c:454 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr "" " --no-polling\t\tnon controlla periodicamente le modifiche alla\n" " configurazione" #: ../src/main.c:456 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tattiva la modalità sincrona del display" #: ../src/main.c:458 msgid " --version\t\tprint version and exit" msgstr " --version\t\tstampa la versione ed esce" #: ../src/main.c:459 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tmostra questo messaggio" #: ../src/main.c:473 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "impossibile trovare la directory GNUstep dell'utente (%s).\n" "Assicurarsi di aver installato correttamente Window Maker e di aver eseguito\n" "wmaker.inst" #: ../src/main.c:478 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "impossibile trovare la directory GNUstep dell'utente (%s)" #: ../src/main.c:481 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "Si è verificato un errore durante la creazione della directory GNUsterp, \n" "assicurarsi di aver installato correttamente Window Maker e di aver eseguito\n" "wmaker.inst" #: ../src/main.c:484 #, c-format msgid "%s directory created with default configuration." msgstr "directory %s creata con la configurazione predefinita." # FIXME UPSTREAM #: ../src/main.c:506 ../src/main.c:511 #, c-format msgid "%s:could not execute initialization script" msgstr "%s: impossibile eseguire lo script di inizializzazione" # FIXME UPSTREAM #: ../src/main.c:533 ../src/main.c:538 #, c-format msgid "%s:could not execute exit script" msgstr "%s: impossibile eseguire lo script di uscita" #: ../src/main.c:622 ../src/main.c:722 ../src/main.c:730 ../src/main.c:738 #: ../src/main.c:758 #, c-format msgid "too few arguments for %s" msgstr "argomenti mancanti per %s" #: ../src/main.c:742 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "valore errato per l'ID di visuale: \"%s\"" #: ../src/main.c:766 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: argomento non valido '%s'\n" #: ../src/main.c:767 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Provare '%s --help' per maggiori informazioni\n" #: ../src/main.c:802 msgid "X server does not support locale" msgstr "Il server X non supporta la localizzazione" #: ../src/main.c:806 msgid "cannot set locale modifiers" msgstr "impossibile impostare i modificatori della localizzazione" #: ../src/main.c:822 #, c-format msgid "could not open display \"%s\"" msgstr "impossibile aprire il display \"%s\"" #: ../src/menu.c:1273 msgid "could not grab keyboard" msgstr "impossibile catturare la tastiera" # FIXME UPSTREAM REPORTED #: ../src/menu.c:2612 #, c-format msgid "bad value in menus state info:%s" msgstr "valore errato nelle informazioni di stato dei menu: %s" #: ../src/misc.c:65 #, c-format msgid "could not define value for %s for cpp" msgstr "impossibile definire un valore per %s per cpp" #: ../src/misc.c:95 #, c-format msgid "could not get password entry for UID %i" msgstr "impossibile trovare la password per l'UID %i" #: ../src/misc.c:120 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "la macchina è mal configurata. HOSTNAME è impostato a %s" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "la macchina è mal configurata. HOST è impostato a %s" #: ../src/misc.c:621 msgid "Program Arguments" msgstr "Argomenti del programma" #: ../src/misc.c:622 msgid "Enter command arguments:" msgstr "Scrivere gli argomenti del comando:" #: ../src/misc.c:736 ../src/misc.c:874 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "memoria esaurita durante l'espansione di \"%s\"" #: ../src/misc.c:790 msgid "out of memory during expansion of \"%w\"" msgstr "memoria esaurita durante l'espansione di \"%w\"" #: ../src/misc.c:808 msgid "out of memory during expansion of \"%W\"" msgstr "memoria esaurita durante l'espansione di \"%W\"" #: ../src/misc.c:824 #, c-format msgid "out of memory during expansion of \"%a\"" msgstr "memoria esaurita durante l'espansione di \"%a\"" #: ../src/misc.c:853 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "memoria esaurita durante l'espansione di \"%d\"" #: ../src/misc.c:867 msgid "selection not available" msgstr "selezione non disponibile" #: ../src/misc.c:911 ../src/misc.c:917 #, c-format msgid "bad window name value in %s state info" msgstr "nome della finestra errato nelle informazioni di stato di %s" #: ../src/misc.c:1156 msgid "could not send message to background image helper" msgstr "impossibile inviare il messaggio al gestore dello sfondo" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "impossibile caricare la maschera dal file bitmap \"%s\". Non verrà usata" #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "impossibile analizzare il colore \"%s\"" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "impossibile allocare il colore \"%s\"" #: ../src/rootmenu.c:196 ../src/rootmenu.c:198 msgid "Exit" msgstr "Uscita" #: ../src/rootmenu.c:197 msgid "Exit window manager?" msgstr "Uscire da Window Maker?" #: ../src/rootmenu.c:245 msgid "Close X session" msgstr "Chiudi la sessione X" #: ../src/rootmenu.c:246 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "Chiudere la sessione del Window System?\n" "Il comando potrebbe chiudere applicazioni con dati non salvati." #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/rootmenu.c:248 ../src/winmenu.c:501 msgid "Close" msgstr "Chiudi" #: ../src/rootmenu.c:261 msgid "Kill X session" msgstr "Termina la sessione X" #: ../src/rootmenu.c:262 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Terminare la sessione del Window System?\n" "(Tutte le applicazioni saranno chiuse)" #: ../src/rootmenu.c:544 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s: definizione di scorciatoia non valida \"%s\" per l'elemento %s" #: ../src/rootmenu.c:552 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s: tasto non valido nella scorciatoia \"%s\" per l'elemento %s" #: ../src/rootmenu.c:605 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: virgolette \" non corrisposte nel file di menù" #: ../src/rootmenu.c:655 #, c-format msgid "%s: missing command" msgstr "%s: comando mancante" #: ../src/rootmenu.c:687 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "specificazione OPEN_MENU non valida: %s" #: ../src/rootmenu.c:738 #, c-format msgid "%s:could not stat menu" msgstr "%s: impossibile aprire il menù" #: ../src/rootmenu.c:746 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s: impossibile aprire il menù: %s" #: ../src/rootmenu.c:764 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "troppi parametri in OPEN_MENU: %s" #: ../src/rootmenu.c:808 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "C'è più di un comando WORKSPACE_MENU nel menù delle applicazioni. Ne è permesso uno solo." #: ../src/rootmenu.c:842 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "C'è più di un comando WINDOWS_MENU nel menù delle applicazioni. Ne è permesso uno solo." #: ../src/rootmenu.c:847 msgid "Window List" msgstr "Elenco delle finestre" #: ../src/rootmenu.c:876 ../src/rootmenu.c:894 ../src/rootmenu.c:904 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s: manca un parametro per il comando di menù \"%s\"" #: ../src/rootmenu.c:972 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s: comando sconosciuto \"%s\" nella definizione di menù." # FIXME UPSTREAM #: ../src/rootmenu.c:980 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s: impossibile assegnare una scorciatoia all'elemento \"%s\"" # FIXME UPSTREAM #: ../src/rootmenu.c:1117 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s: linea troppo lunga nella definizione di menù: %s" # FIXME UPSTREAM #: ../src/rootmenu.c:1139 ../src/rootmenu.c:1232 ../src/rootmenu.c:1336 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s: comando mancante nella definizione di menù: %s" # FIXME UPSTREAM #: ../src/rootmenu.c:1169 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s: errore di sintassi nel file di menù: manca l'istruzione END" #: ../src/rootmenu.c:1198 ../src/rootmenu.c:1300 msgid "could not make arguments for menu file preprocessor" msgstr "impossibile generare gli argomenti per il preprocessore del file di menù" # FIXME UPSTREAM #: ../src/rootmenu.c:1205 ../src/rootmenu.c:1308 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s: impossibile aprire/preelaborare il file di menù" # FIXME UPSTREAM< #: ../src/rootmenu.c:1217 ../src/rootmenu.c:1321 #, c-format msgid "%s:could not open menu file" msgstr "%s: impossibile aprire il file di menù" # FIXME UPSTREAM< #: ../src/rootmenu.c:1244 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s: file di menù non valido: manca il comando MENU" #: ../src/rootmenu.c:1253 msgid "error reading preprocessed menu data" msgstr "errore nella lettura dei dati di menù preelaborati" # FIXME UPSTREAM #: ../src/rootmenu.c:1348 #, c-format msgid "%s:no title given for the root menu" msgstr "%s: nessun titolo fornito per il menù principale" #: ../src/rootmenu.c:1439 ../src/rootmenu.c:1512 ../src/rootmenu.c:1553 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "memoria esaurita costruendo il menù %s" # FIXME UPSTREAM #: ../src/rootmenu.c:1449 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s: impossibile identificare il file \"%s\" nella directory del menù" #: ../src/rootmenu.c:1607 msgid "Commands" msgstr "Comandi" #: ../src/rootmenu.c:1610 msgid "Restart" msgstr "Riavvia" #: ../src/rootmenu.c:1611 msgid "Exit..." msgstr "Esci..." #: ../src/rootmenu.c:1656 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "impossibile trovare il file di menù \"%s\" indicato in WMRootMenu" #: ../src/rootmenu.c:1663 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "impossibile accedere al file di menù \"%s\" indicato in WMRootMenu" #: ../src/rootmenu.c:1674 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "viene usato il file di menù predefinito \"%s\" perché non si trova il menù indicato in WMRootMenu " # FIXME UPSTREAM #: ../src/rootmenu.c:1697 ../src/rootmenu.c:1773 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s: errore di formato nella configurazione del menù principale \"%s\"" #: ../src/rootmenu.c:1855 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Il menù delle applicazioni non può essere caricato. Consultare l'output " "nella console per una descrizione dettagliata del problema." #: ../src/screen.c:709 #, c-format msgid "could not initialize graphics library context: %s" msgstr "impossibile inizializzare il contesto della libreria grafica: %s" #: ../src/screen.c:737 msgid "could not initialize WINGs widget set" msgstr "impossibile inizializzare i widget WINGs" #: ../src/screen.c:1144 #, c-format msgid "could not save session state in %s" msgstr "impossibile salvare lo stato della sessione in %s" #: ../src/session.c:183 ../src/wdefaults.c:589 ../src/winspector.c:459 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "impossibile convertire \"%s\" in booleano" #: ../src/session.c:1018 msgid "out of memory while saving session state" msgstr "memoria esaurita salvando lo stato della sessione" #: ../src/session.c:1101 msgid "end of memory while saving session state" msgstr "memoria esaurita salvando lo stato della sessione" #. 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:1239 msgid "connection to the session manager was lost" msgstr "connessione al gestore di sessione perduta." #: ../src/stacking.c:81 msgid "could not get window list!!" msgstr "impossibile trovare l'elenco delle finestre" #: ../src/startup.c:195 #, c-format msgid "internal X error: %s\n" msgstr "errore interno di X: %s\n" #: ../src/startup.c:772 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "la dimensione delle icone è impostata a %i, ma è troppo piccola. Viene usato 16.\n" #: ../src/startup.c:801 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "XKB non è supportato. KbdModeLock è disabilitato automaticamente." #: ../src/startup.c:820 msgid "it seems that there is already a window manager running" msgstr "sembra che ci sia già un altro gestore di finestre in esecuzione." #: ../src/startup.c:826 #, c-format msgid "could not manage screen %i" msgstr "impossibile gestire lo schermo %i" #: ../src/startup.c:885 msgid "could not manage any screen" msgstr "impossibile gestire alcuno schermo" #: ../src/switchmenu.c:145 msgid "Windows" msgstr "Finestre" #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "impossibile trovare il file di immagine \"%s\" usato come trama." #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "impossibile caricare il pixmap della trama \"%s\": %s" #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "impossibile aprire la libreria \"%s\"." #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "funzione \"%s\" non trovata nella libreria \"%s\"" #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "le funzioni trama non sono supportate da questo sistema." #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "impossibile allocare il buffer per l'immagine" #: ../src/wdefaults.c:437 #, c-format msgid "could not find icon file \"%s\"" msgstr "impossibile trovare il file dell'icona \"%s\"" #: ../src/window.c:3052 ../src/window.c:3193 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 "" "Sembra che BlocNum, BlocScorr o altri tasti simili siano attivati.\n" "Disattivali o alcune funzioni del mouse e scorciatoie non funzioneranno." #: ../src/winmenu.c:125 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Questo terminerà l'applicazione.\n" "Tutte le modifiche non salvate saranno perse.\n" "Continuare?" #: ../src/winmenu.c:268 ../src/winmenu.c:277 msgid "Set Shortcut" msgstr "Imposta scorciatoia" #: ../src/winmenu.c:355 ../src/winmenu.c:400 msgid "could not create submenu for window menu" msgstr "impossibile creare il sottomenu del menù della finestra" #: ../src/winmenu.c:404 msgid "Keep on top" msgstr "In primo piano" #: ../src/winmenu.c:409 msgid "Keep at bottom" msgstr "Tieni in fondo" #. #. * 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:437 ../src/winmenu.c:571 msgid "Maximize" msgstr "Ingrandisci" #: ../src/winmenu.c:445 ../src/winmenu.c:557 msgid "Miniaturize" msgstr "Riduci a icona" #: ../src/winmenu.c:453 ../src/winmenu.c:588 msgid "Shade" msgstr "Arrotola" #: ../src/winmenu.c:469 msgid "Resize/Move" msgstr "Sposta/Ridimensiona" #: ../src/winmenu.c:477 msgid "Select" msgstr "Seleziona" #: ../src/winmenu.c:485 msgid "Move To" msgstr "Sposta in" #: ../src/winmenu.c:490 msgid "Attributes..." msgstr "Proprietà..." #: ../src/winmenu.c:492 msgid "Options" msgstr "Opzioni" #: ../src/winmenu.c:552 msgid "Deminiaturize" msgstr "Ripristina" #: ../src/winmenu.c:566 msgid "Unmaximize" msgstr "Ripristina" #: ../src/winmenu.c:583 msgid "Unshade" msgstr "Srotola" #: ../src/winspector.c:392 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Impossibile trovare l'icona \"%s\" specificata per questa finestra" #: ../src/winspector.c:409 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Impossibile aprire l'icona specificata \"%s\":%s" #: ../src/winspector.c:1129 #, c-format msgid "Inspecting %s.%s" msgstr "Ispezione di %s.%s" #: ../src/winspector.c:1155 msgid "Click in the window you wish to inspect." msgstr "Fare clic nella finestra da ispezionare." #: ../src/winspector.c:1194 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "La configurazione sarà applicata\n" "a tutte le finestre che hanno la\n" "proprietà WM_CLASS impostata\n" "al nome selezionato." #: ../src/winspector.c:1223 msgid "Save" msgstr "Salva" #: ../src/winspector.c:1231 msgid "Apply" msgstr "Applica" #: ../src/winspector.c:1237 msgid "Reload" msgstr "Ricarica" #: ../src/winspector.c:1246 ../src/winspector.c:1256 msgid "Window Specification" msgstr "Specifica classe finestra" #: ../src/winspector.c:1247 msgid "Window Attributes" msgstr "Attributi della finestra" #: ../src/winspector.c:1248 msgid "Advanced Options" msgstr "Opzioni avanzate" #: ../src/winspector.c:1249 msgid "Icon and Initial Workspace" msgstr "Icona e area di lavoro iniziale" #: ../src/winspector.c:1250 msgid "Application Specific" msgstr "Specifiche dell'applicazione" #: ../src/winspector.c:1264 msgid "Defaults for all windows" msgstr "Predefinito per tutte le finestre" #: ../src/winspector.c:1318 msgid "Select window" msgstr "Seleziona finestra" #: ../src/winspector.c:1332 msgid "Attributes" msgstr "Attributi" #: ../src/winspector.c:1343 msgid "Disable titlebar" msgstr "Elimina la barra del titolo" #: ../src/winspector.c:1345 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Elimina la barra del titolo di questa finestra.\n" "Per accedere al menù di una finestra senza\n" "barra del titolo, usare Control+Esc (oppure la\n" "scorciatoia impostata, se è stato cambiato il\n" "valore predefinito)." #: ../src/winspector.c:1352 msgid "Disable resizebar" msgstr "Elimina barra di ridimensionamento" #: ../src/winspector.c:1354 msgid "Remove the resizebar of this window." msgstr "Elimina la barra di ridimensionamento dalla finestra." #: ../src/winspector.c:1357 msgid "Disable close button" msgstr "Elimina il pulsante Chiudi" #: ../src/winspector.c:1359 msgid "Remove the `close window' button of this window." msgstr "Elimina il pulsante 'Chiudi finestra' da questa finestra." #: ../src/winspector.c:1362 msgid "Disable miniaturize button" msgstr "Elimina il pulsante Riduci a icona" #: ../src/winspector.c:1364 msgid "Remove the `miniaturize window' button of the window." msgstr "Elimina il pulsante 'Riduci a icona' da questa finestra." #: ../src/winspector.c:1367 msgid "Disable border" msgstr "Elimina il bordo" #: ../src/winspector.c:1369 msgid "Remove the 1 pixel black border around the window." msgstr "Elimina il bordo nero di 1 pixel attorno alla finestra." #: ../src/winspector.c:1372 msgid "Keep on top (floating)" msgstr "Mantieni in primo piano" #: ../src/winspector.c:1374 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "Mantiene la finestra sopra tutte le altre,\n" "impedendo che esse la coprano." #: ../src/winspector.c:1378 msgid "Keep at bottom (sunken)" msgstr "Mantieni in fondo" #: ../src/winspector.c:1380 msgid "Keep the window under all other windows." msgstr "Mantiene la finestra dietro a tutte le altre." #: ../src/winspector.c:1385 msgid "Make window present in all workspaces." msgstr "La finestra è presente in tutte le aree di lavoro." #: ../src/winspector.c:1388 msgid "Start miniaturized" msgstr "Avvia ridotta ad icona" #: ../src/winspector.c:1390 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "" "La finestra viene automaticamente ridotta ad icona\n" "quando appare la prima volta." #: ../src/winspector.c:1394 msgid "Start maximized" msgstr "Avvia massimizzata" #: ../src/winspector.c:1396 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "" "La finestra viene automaticamente massimizzata\n" "quando appare la prima volta." #: ../src/winspector.c:1400 msgid "Full screen maximization" msgstr "Massimizza a tutto schermo" #: ../src/winspector.c:1402 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Fà in modo che la finestra utilizzi tutto lo schermo\n" "quando viene ingrandita. La barra del titolo e quella\n" "di ridimensionamento vengono spostate fuori dallo\n" "schermo." #: ../src/winspector.c:1419 msgid "Advanced" msgstr "Avanzate" #: ../src/winspector.c:1436 msgid "Do not bind keyboard shortcuts" msgstr "Blocca gli shortcut di tastiera" #: ../src/winspector.c:1438 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Window Maker non risponde alle scorciatoie di tastiera quando\n" "questa finestra è attiva. Ciò fà sì che l'applicazione riceva\n" "tutti i tasti premuti, indipendentemente dalla configurazione\n" "delle scorciatoie." #: ../src/winspector.c:1444 msgid "Do not bind mouse clicks" msgstr "Blocca i clic del mouse" # FIXME UPSTREAM: haveconfigured -> have configured REPORTED #: ../src/winspector.c:1446 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Non risponde alle azioni del mouse, come 'Alt'+trascina\n" "nella finestra (se Alt è il modificatore configurato)." #: ../src/winspector.c:1451 msgid "Do not show in the window list" msgstr "Non mostrare nella lista finestre" #: ../src/winspector.c:1453 msgid "Do not list the window in the window list menu." msgstr "La finestra non viene mostrata nel menù delle finestre aperte." #: ../src/winspector.c:1456 msgid "Do not let it take focus" msgstr "Non permettere che riceva il focus" #: ../src/winspector.c:1458 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "Evita che la finestra riceva il focus di tastiera\n" "cliccandovi sopra." #: ../src/winspector.c:1462 msgid "Keep inside screen" msgstr "Mantieni nello scermo" #: ../src/winspector.c:1464 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Evita che la finestra vada completamente fuori dallo\n" "schermo. Per compatibilità con qualche bug.\n" #: ../src/winspector.c:1468 msgid "Ignore 'Hide Others'" msgstr "Ignora 'Nascondi gli altri'" #: ../src/winspector.c:1470 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "La finstra non viene nascosta quando si invoca\n" "il comando 'Nascondi gli altri'." #: ../src/winspector.c:1474 msgid "Ignore 'Save Session'" msgstr "Ignora 'Salva sessione'" #: ../src/winspector.c:1476 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Non salva l'applicazione nello stato sessione,\n" "in modo che non venga avviata quando parte\n" "Window Maker." #: ../src/winspector.c:1482 msgid "Emulate application icon" msgstr "Emula l'icona dell'applicazione" #: ../src/winspector.c:1484 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Fà in modo che la finestra funzioni come un'applicazione\n" "che fornisce le informazioni necessarie a Window Maker\n" "per creare un'icona corretta." #: ../src/winspector.c:1490 msgid "Disable language button" msgstr "Disabilita il pulsante della lingua" #: ../src/winspector.c:1492 msgid "Remove the `toggle language' button of the window." msgstr "Elimina il pulsante 'Cambia lingua' da questa finestra." #: ../src/winspector.c:1509 msgid "Miniwindow Image" msgstr "Icona" #: ../src/winspector.c:1536 msgid "Icon filename:" msgstr "Nome file:" #: ../src/winspector.c:1549 msgid "Ignore client supplied icon" msgstr "Ignora l'icona dell'applicazione" #: ../src/winspector.c:1556 msgid "Initial Workspace" msgstr "Area di lavoro iniziale" #: ../src/winspector.c:1558 msgid "The workspace to place the window when it'sfirst shown." msgstr "L'area di lavoro in cui la finestra appare la prima volta." #: ../src/winspector.c:1564 msgid "Nowhere in particular" msgstr "Nessuna in particolare" #: ../src/winspector.c:1582 msgid "Application Attributes" msgstr "Attributi dell'applicazione" #: ../src/winspector.c:1593 msgid "Start hidden" msgstr "Avvia nascosta" #: ../src/winspector.c:1595 msgid "Automatically hide application when it's started." msgstr "Nascondi automaticamente l'applicazione all'avvio." #: ../src/winspector.c:1598 msgid "No application icon" msgstr "Disabilita l'icona" #: ../src/winspector.c:1600 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Disabilita l'icona per l'applicazione. Nota che\n" "non potrà più essere trascinata sul dock, e le\n" "icone che già sono sul dock non funzioneranno\n" "correttamente." #: ../src/winspector.c:1606 msgid "Shared application icon" msgstr "Icona condivisa dell'applicazione" #: ../src/winspector.c:1608 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "Una sola icona condivisa per tutte le istanze\n" "di questa applicazione.\n" #: ../src/workspace.c:103 ../src/workspace.c:104 ../src/workspace.c:1302 #, c-format msgid "Workspace %i" msgstr "Area %i" #: ../src/workspace.c:1352 msgid "Workspaces" msgstr "Aree di lavoro" #: ../src/workspace.c:1354 msgid "could not create Workspace menu" msgstr "impossibile creare il menù Aree di lavoro" #: ../src/workspace.c:1361 msgid "New" msgstr "Nuova" #: ../src/workspace.c:1362 msgid "Destroy Last" msgstr "Elimina l'ultima" WindowMaker-0.95.5/po/sv.po0000644000175000017500000003245612214432632012401 00000000000000# # WindowMaker messages in swedish # msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.65.1\n" "PO-Revision-Date: 1997-06-02 18:29:09-0300\n" "Last-Translator: John \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../main.c:147 msgid "Restart failed!!!" msgstr "Omstart misslyckades!!!" #: ../main.c:162 msgid "%s aborted.\n" msgstr "%s avbruten.\n" #: ../main.c:170 msgid "usage: %s [-options]\n" msgstr "användning: %s [-alternativ]\n" #: ../main.c:171 msgid "options:" msgstr "alternativ:" #: ../main.c:173 msgid " -nocpp \t\tdisable preprocessing of configuration files" msgstr " -nocpp \t\tstäng av preprocessing för konfigurationsfilerna" #: ../main.c:176 msgid " -nodock\t\tdo not open the application Dock" msgstr " -nodock\t\töppna inte the Dock" #: ../main.c:178 msgid " -locale locale\t\tlocale to use" msgstr " -locale locale\t\tlocale som skall användas" #: ../main.c:179 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tdisplay som skall användas" #: ../main.c:180 msgid " -version\t\tprint version and exit" msgstr " -version\t\tskriv ut version och avsluta" #: ../main.c:234 msgid "cannot set locale %s" msgstr "kan inte sätta locale %s" #: ../main.c:235 msgid "falling back to C locale" msgstr "gÃ¥r tillbaka till C locale" #: ../main.c:263 msgid "X server does not support locale" msgstr "X servern har inte support för locale" #: ../main.c:266 msgid "cannot set locale modifiers" msgstr "kan inte sätta locale-modifierare" #: ../main.c:276 msgid "could not open display %s" msgstr "kunde inte öppna display %s" #: ../event.c:230 msgid "stack overflow: too many dead processes" msgstr "stacken full: för mÃ¥nga döda processer" #: ../startup.c:137 msgid "internal X error: %s\n" msgstr "internt X-fel: %s\n" #: ../startup.c:152 msgid "got signal %i (%s)\n" msgstr "fick signal %i (%s)\n" #: ../startup.c:154 msgid "got signal %i\n" msgstr "fick signal %i\n" #: ../texture.c:317 ../texture.c:327 msgid "unsupported visual/depth for gradients" msgstr "kan ej hantera gradienter pÃ¥ denna visual/färgdjup" #: ../menu.c:231 msgid "wrealloc() failed while trying to add menu item" msgstr "wrealloc() misslyckades vid addering av ett menyval" #: ../pixmap.c:211 msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "kunde inte ladda maskfil \"%s\". Kommer inte att använda masken" #: ../image.c:183 ../image.c:889 ../pixmap.c:261 msgid "could not load XPM file \"%s\"" msgstr "kunde inte ladda XP- fil \"%s\"" #: ../pixmap.c:264 msgid "cannot load \"%s\": XPM support not compiled in" msgstr "kan inte ladda \"%s\": hantering av är inte inkompilerat" #: ../pixmap.c:271 msgid "could not load XBM file \"%s\"" msgstr "kunde inte ladda XBM-fil \"%s\"" #: ../image.c:196 ../pixmap.c:275 msgid "can't identify image file \"%s\"" msgstr "kan inte identifiera bildfil \"%s\"" #: ../image.c:200 ../pixmap.c:279 msgid "unknown image format in \"%s\"" msgstr "okänt bildformat i \"%s\"" #: ../image.c:65 ../image.c:494 msgid "can't load pixmap file \"%s\". Size too weird" msgstr "kan inte ladda pixmap-fil \"%s\". Storleken för underlig" #: ../image.c:83 ../image.c:746 ../image.c:768 msgid "virtual memory exhausted during pixmap load. Not fatal..." msgstr "slut virtuellt minne vid laddning av pixmap. Inte fatalt..." #: ../image.c:100 ../image.c:510 msgid "virtual memory exhausted. Continuing..." msgstr "slut virtuellt minne. Fortsätter..." #: ../image.c:186 msgid "cannot load \"%s\": XPM format not supported" msgstr "kan inte ladda \"%s\": Kan ej hantera XPM-formatet" #. XPM #: ../image.c:191 msgid "can't convert XBM file \"%s\" to internal format" msgstr "kan inte konvertera XBM-filen \"%s\" till det interna formatet" #: ../image.c:556 ../image.c:562 ../image.c:581 msgid "virtual memory exhausted during XPM load." msgstr "slut virtuellt minne vid laddning av XPM" #: ../image.c:712 ../image.c:855 msgid "could not convert image \"%s\" to internal format" msgstr "kunde inte konvertera bilden \"%s\" till det interna formatet" #: ../image.c:901 msgid "can't load \"%s\": unknown image format" msgstr "kan inte ladda \"%s\": okänt bildformat" #: ../screen.c:83 msgid "it seems that there already is a window manager running" msgstr "det verkar som en fönsterhanterare redan är igÃ¥ng" #: ../screen.c:234 ../screen.c:344 msgid "could not parse color %s" msgstr "felaktig färgspecifikation %s" #: ../screen.c:289 msgid "The following character sets are missing:" msgstr "Följande teckenuppsättningar saknas:" #: ../screen.c:293 msgid "The string \"%s\" will be used in place" msgstr "Strängen \"%s\" kommer att användas istället" #: ../screen.c:295 msgid "of any characters from those sets." msgstr "nÃ¥gon av de tecknena ifrÃ¥n de uppsättningarna." #: ../screen.c:298 msgid "could not create font set %s. Using fixed" msgstr "kunde inte skapa typsnitt %s. Använder fixed" #: ../screen.c:305 msgid "could not load any usable font set" msgstr "kunde inte ladda nÃ¥gon användbar teckenuppsättning" #: ../screen.c:315 msgid "could not load font %s. Using fixed" msgstr "kunde inte ladda typsnitt %s. Använder fixed" #: ../screen.c:318 msgid "could not load any usable font" msgstr "kunde inte ladda nÃ¥gon användbart typsnitt" #: ../screen.c:439 msgid "Gradient texture not supported for your display (PseudoColor %ibpp)" msgstr "Kan ej hantera \"gradient texture\" pÃ¥ denna display (PseudoColor %ibpp)" #: ../screen.c:442 msgid "You must enable dithering to be able to use gradients with this display" msgstr "Du mÃ¥ste slÃ¥ pÃ¥ dithering för att kunna använda gradienter med den här displayen" #: ../screen.c:456 msgid "Gradient texture available only for PseudoColor and TrueColor displays" msgstr "Gradient texture är bara tillgänglig för PseudoColor- och TrueColor-displayer" #: ../screen.c:478 msgid "could not allocate texture" msgstr "kunde inte allokera textur" #: ../screen.c:1058 msgid "colormap size value(s) too large" msgstr "färgpalettens storleks värde(n) för stora" #: ../dialog.c:208 ../rootmenu.c:108 msgid "Exit" msgstr "Avsluta" #: ../rootmenu.c:109 msgid "Exit window manager?" msgstr "Avsluta fönsterhanterare?" #: ../rootmenu.c:128 msgid "Close X session" msgstr "Stäng X-session" #: ../rootmenu.c:129 msgid "" "Close Window System session?\n" "(all applications will be closed)" msgstr "" "Stäng fönstersystems sessionen?\n" "(alla applikatoner kommer att stängas)" #: ../rootmenu.c:217 ../rootmenu.c:314 ../rootmenu.c:496 msgid "Switch to %i" msgstr "Byt till %i" #: ../rootmenu.c:283 msgid "out of memory to store menu commands. Nuking it." msgstr "inget minne kvar för att spara menykommandon. Bombar det." #: ../rootmenu.c:303 msgid "Workspaces" msgstr "Arbetsyta" #: ../rootmenu.c:305 msgid "could not create Workspace menu" msgstr "kunde inte skapa arbetsytans meny" #: ../rootmenu.c:308 msgid "New" msgstr "Ny" #: ../rootmenu.c:309 msgid "Destroy Last" msgstr "Förstöra sista" #: ../rootmenu.c:350 msgid "missing command in menu config: %s" msgstr "kommando saknas i menykonfigurationen: %s" #: ../rootmenu.c:390 msgid "menu can only have one WORKSPACE_MENU" msgstr "menyn kan bara ha en WORKSPACE_MENU (arbetsytemeny)" #: ../rootmenu.c:406 msgid "unknown command \"%s\" in menu config." msgstr "okänt kommando \"%s\" i menykonfigurationen." #: ../rootmenu.c:410 msgid "syntax error in menu config. END declaration missing" msgstr "syntaxfel i menykonfigurationen. END-deklarationen saknas" #: ../rootmenu.c:435 msgid "syntax error in menu config. %s" msgstr "syntaxfel i menykonfigurationen. %s" #: ../rootmenu.c:443 msgid "no title given for the root menu" msgstr "ingen titel (title) angiven för rot menyn" #: ../rootmenu.c:455 msgid "Commands" msgstr "Kommandon" #: ../rootmenu.c:456 msgid "Exit..." msgstr "Avsluta..." #: ../rootmenu.c:573 msgid "could not stat menu configuration file \"%s\"" msgstr "kunde inte stat(2): menykonfigurationsfilen \"%s\"" #: ../rootmenu.c:578 msgid "no read permision to menu configuration file" msgstr "inga läsrättigheter till menykonfigurationsfilen" #: ../rootmenu.c:595 msgid "could not make arguments for menu file preprocessor" msgstr "kunde inte skapa parametrar för förbehandling av menyfilen" #: ../rootmenu.c:603 msgid "could not open menu configuration preprocessor" msgstr "kunde inte öppna menykonfigurations-preprocessorn" #: ../rootmenu.c:613 msgid "couldn't open menu configuration file \"%s\"" msgstr "kunde inte öppna menykonfigurationsfilen \"%s\"" #: ../dock.c:689 ../rootmenu.c:646 msgid "Error" msgstr "Fel" #: ../rootmenu.c:647 msgid "" "Could not read menu configuration\n" "(see console log for details)" msgstr "" "Kunde inte läsa menykonfigurationen\n" "(se konsol loggen för detaljer)" #: ../dialog.c:196 msgid "OK " msgstr "OK " #: ../dialog.c:210 msgid "Cancel" msgstr "Avbryt" #: ../resource.c:297 ../resource.c:359 ../resource.c:368 ../resource.c:497 ../resource.c:521 ../resource.c:530 ../resource.c:555 msgid "%s: syntax error in line \"%s\"" msgstr "%s: syntax fel pÃ¥ rad \"%s\"" #: ../resource.c:309 msgid "%s: invalid window attribute specification in \"%s\"" msgstr "%s: felaktig fönsterattributspecifikation i \"%s\"" #: ../resource.c:336 msgid "%s: unknown attribute in line \"%s\"" msgstr "%s: okänt attribut pÃ¥ rad \"%s\"" #: ../resource.c:416 ../resource.c:425 ../resource.c:437 msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:felaktig tangenbordsgenvägsspecifikation \"%s\"" #: ../resource.c:477 msgid "%s: expected section identifier but got %s" msgstr "%s: väntade sektions identifierare, men fick %s" #: ../resource.c:510 msgid "%s: unknown option in line \"%s\"" msgstr "%s: okänt alternativ pÃ¥ rad \"%s\"" #: ../resource.c:559 msgid "%s: invalid colormap size in line \"%s\"" msgstr "%s: felaktig palettstorlek pÃ¥ rad \"%s\"" #: ../resource.c:579 msgid "%s: invalid geometry display type \"%s\". Shouldbe center, corner, floating or line" msgstr "%s: felaktig geometrivisningstyp \"%s\". Borde vara center, corner, floating eller line" #: ../resource.c:601 msgid "%s: invalid focus mode \"%s.\" Should be manual, auto or semiauto" msgstr "%s: felaktig focus mode \"%s.\" Borde vara manual, auto eller semiauto" #: ../resource.c:619 msgid "%s: invalid window placement mode \"%s\". Should be auto, cascade or manual" msgstr "%s: felaktigt window placement mode \"%s\". Borde vara auto, cascade eller manual" #: ../resource.c:639 msgid "%s: invalid texture type \"%s\" Should be solid, dgradient, vgradient or hgradient" msgstr "%s: felaktigt texture type \"%s\" Borde vara solid, dgradient, vgradient eller hgradient" #: ../resource.c:666 msgid "%s: invalid gradient spec. \"%s\"" msgstr "%s: felaktig gradientspecifikation \"%s\"" #: ../resource.c:685 msgid "%s: invalid coordinate \"%s\"" msgstr "%s: felaktig koordinat \"%s\"" #: ../resource.c:701 msgid "%s: invalid justification type \"%s\". Should be left, center or right" msgstr "%s: felaktig justification type \"%s\". Borde vara left, center eller right" #: ../resource.c:731 msgid "could not make arguments for preference file preprocessor" msgstr "kunde inte skapa argument till preference-filens preprocessor" #: ../resource.c:737 msgid "could not open preference file preprocessor" msgstr "kunde inte öppna preference-filens preprocessor" #: ../resource.c:744 msgid "could not open configuration file: \"%s\"" msgstr "kunde inte öppna konfigurationsfilen: \"%s\"" #: ../resource.c:791 msgid "could not find default icon \"%s\"" msgstr "kunde inte hitta standardikonen \"%s\"" #: ../resource.c:797 msgid "could not find a preference file (%s) in \"%s\"" msgstr "kunde inte hitta en preference-fil (%s) i \"%s\"" #: ../resource.c:805 msgid "could not find icon background \"%s\"" msgstr "kunde inte hitta ikonbakgrunden \"%s\"" #: ../raster.c:183 msgid "invalid dither colormap size specification.disabling" msgstr "Felaktig storlek för dither-paletten. SlÃ¥r av" #: ../raster.c:193 msgid "Could not build PseudoColor color table\n" msgstr "Kunde inte skapa PseudoColor-färgtabell\n" #: ../misc.c:50 msgid "could not define value for %s for cpp" msgstr "kunde inte definiera värde för %s till cpp" #: ../misc.c:80 msgid "could not get password entry for UID %i" msgstr "kunde inte fÃ¥ lösenordspost för användar-ID %i" #: ../appmenu.c:114 msgid "appmenu:could not create menu" msgstr "appmenu:kunde inte skapa meny" #: ../appmenu.c:145 msgid "appmenu:could not create menu entry" msgstr "appmenu:kunde inte skapa menypost" #: ../stacking.c:89 ../stacking.c:148 msgid "could not get window list!!" msgstr "kunde inte fÃ¥ fönsterlista!!" #: ../switchmenu.c:109 msgid "Windows" msgstr "Fönster" #: ../dock.c:171 msgid "could not open file \"%s\" to save Dock state" msgstr "kunde inte öppna filen \"%s\" för att spara Dockens tillstÃ¥nd" #: ../dock.c:687 msgid "Could not execute program \"%s\"" msgstr "kunde inte köra program \"%s\"" #: ../winmenu.c:119 msgid "(Un)Maximize" msgstr "(O)Maximera" #: ../winmenu.c:126 msgid "Miniaturize" msgstr "Minimera" #: ../winmenu.c:133 msgid "(Un)Shade" msgstr "(O)Skugga" #: ../winmenu.c:140 msgid "Hide" msgstr "Gömma" #: ../winmenu.c:146 msgid "Hide Others" msgstr "Gömma Andra" #: ../winmenu.c:149 msgid "Close" msgstr "Stäng" #: ../winmenu.c:156 msgid "Kill" msgstr "Döda" #: ../generic/error.c:46 msgid " fatal error: " msgstr " fatalt fel: " #: ../generic/error.c:72 msgid " warning: " msgstr " varning: " WindowMaker-0.95.5/po/bs.po0000644000175000017500000010746512214432632012360 00000000000000# translation of bs.po to Bosanski # Copyright (C) 2004 Free Software Foundation, Inc. # Ahmet Mulalić , 2004. # msgid "" msgstr "" "Project-Id-Version: bs\n" "PO-Revision-Date: 2004-08-30 00:23+0200\n" "Last-Translator: Ahmet Mulalić \n" "Language-Team: Bosanski \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3.1\n" #: ../src/appicon.c:509 ../src/dialog.c:215 ../src/dialog.c:271 ../src/dock.c:2953 ../src/dockedapp.c:206 ../src/winspector.c:279 ../src/winspector.c:295 msgid "Error" msgstr "GreÅ¡ka" #: ../src/appicon.c:510 msgid "Could not open specified icon file" msgstr "Ne mogu ovoriti navedenu ikonu" #: ../src/appicon.c:511 ../src/dialog.c:114 ../src/dialog.c:215 ../src/dialog.c:271 ../src/dialog.c:451 ../src/dock.c:420 ../src/dock.c:2954 ../src/dockedapp.c:206 ../src/dockedapp.c:350 ../src/winspector.c:280 ../src/winspector.c:296 msgid "OK" msgstr "U redu" #: ../src/appicon.c:532 ../src/dock.c:268 ../src/winmenu.c:85 msgid "Kill Application" msgstr "Ubij Aplikaciju" #: ../src/appicon.c:533 ../src/dock.c:269 ../src/winmenu.c:86 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Ovo će ubiti aplikaciju.\n" "Promjene koje nisu saÄuvane biti će izgubljene.\n" "Molimo potvrdite." #: ../src/appicon.c:534 ../src/dock.c:270 ../src/winmenu.c:87 msgid "Yes" msgstr "Da" #: ../src/appicon.c:534 ../src/dock.c:270 ../src/winmenu.c:87 msgid "No" msgstr "Ne" #: ../src/appicon.c:548 ../src/dock.c:1030 msgid "Unhide Here" msgstr "Pokaži ovdje" #: ../src/appicon.c:549 ../src/dock.c:1032 msgid "(Un)Hide" msgstr "Otkrij/Sakrij" #: ../src/appicon.c:550 msgid "Set Icon..." msgstr "Postavi ikonu..." #: ../src/appicon.c:551 ../src/dock.c:1036 ../src/winmenu.c:342 msgid "Kill" msgstr "Ubij" #: ../src/defaults.c:690 ../src/startup.c:686 ../src/startup.c:704 ../src/startup.c:710 msgid "could not read domain \"%s\" from defaults database" msgstr "ne mogu proÄitati domenu \"%s\" iz standardne baze podataka" #: ../src/defaults.c:736 ../src/defaults.c:860 ../src/defaults.c:899 ../src/defaults.c:929 msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Domena %s (%s) standardne baze podataka je pokvarena!" #: ../src/defaults.c:741 ../src/defaults.c:881 ../src/defaults.c:912 ../src/defaults.c:938 msgid "could not load domain %s from user defaults database" msgstr "ne mogu proÄitati domenu %s iz korisnikove standardne baze podataka" #: ../src/defaults.c:752 ../src/defaults.c:845 msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Domena %s (%s) globalne standardne baze podataka je pokvarena!" #: ../src/defaults.c:771 ../src/defaults.c:850 msgid "could not load domain %s from global defaults database" msgstr "ne mogu uÄitati domenu %s iz globalne standardne baze podataka" #: ../src/defaults.c:1240 msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "netaÄna vrijednost opcije za kjluÄ \"%s\". Trebala bi biti jedna od %s" #: ../src/defaults.c:1287 msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "ne mogu konvertovati \"%s\" u logiÄki izraz za \"%s\"" #: ../src/defaults.c:1292 ../src/defaults.c:1326 ../src/defaults.c:1358 ../src/defaults.c:1371 ../src/defaults.c:1386 ../src/defaults.c:1401 ../src/defaults.c:1472 ../src/defaults.c:1484 ../src/defaults.c:1739 ../src/defaults.c:1753 ../src/defaults.c:1791 ../src/defaults.c:1803 ../src/defaults.c:1815 ../src/defaults.c:1838 ../src/defaults.c:1865 ../src/defaults.c:1878 ../src/defaults.c:1891 ../src/defaults.c:1921 ../src/defaults.c:1962 ../src/defaults.c:1974 ../src/defaults.c:1986 ../src/defaults.c:2012 ../src/defaults.c:2032 ../src/defaults.c:2045 ../src/defaults.c:2060 ../src/defaults.c:2099 ../src/defaults.c:2164 msgid "using default \"%s\" instead" msgstr "umjesto toga koristim standardno \"%s\"" #: ../src/defaults.c:1323 msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "ne mogu konvertovati \"%s\" u cijeli broj za kljuÄ \"%s\"" #: ../src/defaults.c:1353 ../src/defaults.c:1467 ../src/defaults.c:1734 ../src/defaults.c:1786 ../src/defaults.c:1957 ../src/wdefaults.c:544 ../src/wdefaults.c:580 msgid "Wrong option format for key \"%s\". Should be %s." msgstr "NetaÄna format opcija za kljuÄ \"%s\". Trebao bi biti %s" #: ../src/defaults.c:1366 msgid "Incorrect number of elements in array for key \"%s\"." msgstr "NetaÄan broj elemenata u nizu za kljuÄ \"%s\"" #: ../src/defaults.c:1381 msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "NetaÄna vrijednost za kljuÄ \"%s\". Trebale bi biti koordinate." #: ../src/defaults.c:1396 msgid "can't convert array to integers for \"%s\"." msgstr "ne mogu konvertovati niz u cijele brojeve za \"%s\"." #: ../src/defaults.c:1580 ../src/defaults.c:1611 ../src/defaults.c:1623 ../src/defaults.c:1665 ../src/defaults.c:1705 msgid "\"%s\" is not a valid color name" msgstr "\"%s\"je krivo ime za boju" #: ../src/defaults.c:1592 msgid "bad number of arguments in gradient specification" msgstr "loÅ¡ broj argumenata u specifikaciji gradacije" #: ../src/defaults.c:1638 msgid "too few arguments in multicolor gradient specification" msgstr "premalo argumenata u specifikaciji viÅ¡ebojne gradacije" #: ../src/defaults.c:1748 msgid "Error in texture specification for key \"%s\"" msgstr "GreÅ¡ka u specifikaciji teksture za kljuÄ \"%s\"" #: ../src/defaults.c:1799 ../src/defaults.c:1834 ../src/defaults.c:1970 ../src/defaults.c:2008 msgid "Too few elements in array for key \"WorkspaceBack\"." msgstr "Premalo elemenata u nizu za kljuÄ \"WorkspaceBack\"." #: ../src/defaults.c:1811 ../src/defaults.c:1982 msgid "Wrong type for workspace background. Should be Texture." msgstr "Krivi tip za pozadinu radnog prostora. Trebala bi biti tekstura." #: ../src/defaults.c:1861 ../src/defaults.c:2028 msgid "Cannot get color entry for key \"WorkspaceBack\"." msgstr "Ne mogu uzeti boju za kljuÄ \"WorkspaceBack\"." #: ../src/defaults.c:1873 ../src/defaults.c:2040 msgid "key \"WorkspaceBack\" has invalid color \"%s\"" msgstr "kljuÄ \"WorkspaceBack\" ima pogreÅ¡nu boju \"%s\"" #: ../src/defaults.c:1887 ../src/defaults.c:2056 msgid "Cannot get file entry for key \"WorkspaceBack\"." msgstr "Ne mogu uzeti unos datoteke za kljuÄ \"WorkspaceBack\"." #: ../src/defaults.c:1900 ../src/defaults.c:2081 msgid "could not find background image \"%s\"" msgstr "ne mogu naći sliku za pozadinu \"%s\"" #: ../src/defaults.c:1917 ../src/defaults.c:2095 msgid "Error in texture specification for key \"WorkspaceBack\"" msgstr "GreÅ¡ka u specifikaciji teksture za kljuÄ \"WorkspaceBack\"" #: ../src/defaults.c:2076 msgid "could not run \"%s\"" msgstr "ne mogu pokrenuti \"%s\"" #: ../src/defaults.c:2129 msgid "could not load any usable font" msgstr "ne mogu uÄitati nijedan iskoristivi font" #: ../src/defaults.c:2159 msgid "could not get color for key \"%s\"" msgstr "ne mogu uzeti boju za kljuÄ \"%s\"" #: ../src/defaults.c:2218 ../src/rootmenu.c:440 msgid "%s:invalid key modifier \"%s\"" msgstr "%s:netaÄan kljuÄ modifiera \"%s\"" #: ../src/defaults.c:2230 msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: netaÄna specifikacija kbd preÄice \"%s\"" #: ../src/defaults.c:2237 msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s netaÄan kljuÄ u preÄici \"%s\"" #: ../src/defaults.c:2263 msgid "%s: modifier key %s is not valid" msgstr "%s: modifier kljuÄ %s nije taÄan" #: ../src/defaults.c:2339 msgid "could not render texture for icon background" msgstr "ne mogu predstaviti teksturu za pozadinu ikone" #: ../src/defaults.c:2695 msgid "background texture rendering was unsuccessfull" msgstr "neuspjeÅ¡no predstavljanje teksure za pozadinu" #: ../src/defaults.c:2722 msgid "could not load image %s for option %s:%s\n" msgstr "ne mogu uÄitati sliku %s za opciju %s:%s\n" #: ../src/defaults.c:2738 msgid "could not spawn texture rendering subprocess for option" msgstr "" #: ../src/defaults.c:2792 ../src/defaults.c:2880 msgid "could not render texture for workspace background" msgstr "ne mogu predstaviti teksturu za pozadinu radnog prostora" #: ../src/dialog.c:114 ../src/dialog.c:458 ../src/dock.c:420 ../src/dockedapp.c:356 ../src/rootmenu.c:207 ../src/rootmenu.c:236 msgid "Cancel" msgstr "PoniÅ¡ti" #: ../src/dialog.c:210 msgid "Could not open directory " msgstr "Ne mogu otvoriti direktorij " #: ../src/dialog.c:266 msgid "Could not load image file " msgstr "Ne mogu uÄitati image datoteku " #: ../src/dialog.c:395 msgid "Directories" msgstr "Direktoriji" #: ../src/dialog.c:404 msgid "Icons" msgstr "Ikone" #: ../src/dialog.c:441 msgid "File Name:" msgstr "Ime datoteke:" #: ../src/dialog.c:464 msgid "Choose File" msgstr "Odaberi datoteku" #: ../src/dialog.c:474 msgid "Icon Chooser" msgstr "BiraÄ ikona" #: ../src/dock.c:209 msgid "Type the name for workspace %i:" msgstr "UpiÅ¡i ime za radni prostor %i:" #: ../src/dock.c:210 ../src/dock.c:1009 msgid "Rename Workspace" msgstr "Preimenuj radni prostor" #: ../src/dock.c:418 msgid "Workspace Clip" msgstr "Clip radnog prostora" #: ../src/dock.c:419 msgid "All selected icons will be removed!" msgstr "Sve odabrane ikone će biti uklonjene!" #: ../src/dock.c:469 msgid "Keep Icon" msgstr "Zadrži ikonu" #: ../src/dock.c:470 ../src/dock.c:1924 ../src/dock.c:2046 msgid "Type the command used to launch the application" msgstr "UpiÅ¡i naredbu za pokretanje aplikacije" #: ../src/dock.c:833 msgid "could not launch application %s\n" msgstr "ne mogu pokrenuti aplikaciju %s\n" #: ../src/dock.c:888 msgid "could not create workspace submenu for Clip menu" msgstr "ne mogu napraviti podizbornik radnog prostora za Clip izbornik" #: ../src/dock.c:946 msgid "could not create options submenu for Clip menu" msgstr "ne mogu napraviti podizbornik opcija za Clip izbornik" #: ../src/dock.c:950 ../src/dock.c:998 ../src/winspector.c:1097 msgid "Keep on top" msgstr "Zadrži na vrhu" #: ../src/dock.c:956 msgid "Collapsed" msgstr "SruÅ¡en" #: ../src/dock.c:962 msgid "AutoCollapse" msgstr "Automatsko ruÅ¡enje" #: ../src/dock.c:968 msgid "AutoAttract Icons" msgstr "Automatsko privlaÄenje ikona" #: ../src/dock.c:974 msgid "Keep Attracted Icons" msgstr "Zadrži privuÄene ikone" #: ../src/dock.c:1004 msgid "Clip Options" msgstr "Clip Opcije" #: ../src/dock.c:1011 msgid "(Un)Select Icon" msgstr "(De)Selektiraj ikonu" #: ../src/dock.c:1013 msgid "(Un)Select All Icons" msgstr "(De)Selektiraj sve ikone" #: ../src/dock.c:1016 msgid "Keep Icon(s)" msgstr "Zadrži ikonu(e)" #: ../src/dock.c:1018 msgid "Move Icon(s) To" msgstr "Pomjeri ikonu(e) na" #: ../src/dock.c:1023 msgid "Remove Icon(s)" msgstr "Ukloni ikonu(e)" #: ../src/dock.c:1025 msgid "Attract Icons" msgstr "Privuci ikone" #: ../src/dock.c:1028 msgid "Launch" msgstr "Pokreni" #: ../src/dock.c:1034 msgid "Settings..." msgstr "Postavke..." #: ../src/dock.c:1416 ../src/dock.c:1430 ../src/dock.c:1444 ../src/dock.c:1454 msgid "bad value in docked icon state info %s" msgstr "loÅ¡a vrijednost u usidrenom info stanju ikone %s" #: ../src/dock.c:1462 msgid "bad value in docked icon position %i,%i" msgstr "kriva vrijednost u usidrenoj poziciji ikone %i,%i" #: ../src/dock.c:1691 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "previÅ¡e je ikona stavljeno na dock. Zanemarujem ono Å¡to ne stane" #. icon->forced_dock = 1; #: ../src/dock.c:1923 ../src/dock.c:2045 msgid "Dock Icon" msgstr "Dock ikona" #: ../src/dock.c:2946 ../src/dock.c:2950 msgid "Could not execute command \"%s\"" msgstr "Ne mogu izvrÅ¡iti naredbu \"%s\"" #: ../src/dockedapp.c:128 msgid "could not find icon %s, used in a docked application" msgstr "ne mogu pronaći ikonu %s, za usidrenu aplikaciju" #: ../src/dockedapp.c:205 msgid "Could not open specified icon file:%s" msgstr "Ne mogu otvoriti navedenu ikonu:%s" #: ../src/dockedapp.c:291 msgid "Start when WindowMaker is started" msgstr "Pokreni kada se pokrene WindowMaker" #: ../src/dockedapp.c:298 msgid "Application path and arguments" msgstr "Putevi i argumenti aplikacije" #: ../src/dockedapp.c:309 msgid "Command for files dropped with DND" msgstr "Naredba za datoteke spuÅ¡tene sa DND-om" #: ../src/dockedapp.c:321 msgid "%d will be replaced with the file name" msgstr "%d će biti zamjenjeno imenom datoteke" #: ../src/dockedapp.c:325 msgid "DND support was not compiled in" msgstr "PodrÅ¡ka za DND nije ukompajlirana" #: ../src/dockedapp.c:331 msgid "Icon Image" msgstr "Ikona" #: ../src/dockedapp.c:343 ../src/winspector.c:1191 msgid "Browse..." msgstr "Pregledaj..." #: ../src/dockedapp.c:388 msgid "Docked Application Settings" msgstr "Postavke usidrene aplikacije" #: ../src/event.c:372 msgid "stack overflow: too many dead processes" msgstr "stack overflow: previÅ¡e mrtvih procesa" #: ../src/framewin.c:526 msgid "could not render gradient: %s" msgstr "ne mogu predstaviti gradaciju: %s" #: ../src/framewin.c:542 ../src/framewin.c:557 ../src/framewin.c:568 ../src/framewin.c:575 ../src/framewin.c:582 ../src/icon.c:296 ../src/texture.c:492 msgid "error rendering image:%s" msgstr "greÅ¡ka pri predstavljanju slike: %s" #: ../src/icon.c:182 ../src/wdefaults.c:402 msgid "error loading image file \"%s\": %s" msgstr "greÅ¡ka pri uÄitavanju image datoteke \"%s\": %s" #: ../src/icon.c:428 ../src/icon.c:437 msgid "could not create directory %s" msgstr "ne mogu napraviti direktorij %s" #: ../src/icon.c:702 msgid "could not find default icon \"%s\"" msgstr "ne mogu naći standardnu ikonu \"%s\"" #: ../src/icon.c:708 msgid "could not load default icon \"%s\":%s" msgstr "ne mogu uÄitati standardnu ikonu \"%s\":%s" #: ../src/main.c:186 msgid "could not exec window manager" msgstr "ne mogu pokrenuti window menadžer" #: ../src/main.c:187 msgid "Restart failed!!!" msgstr "Ponovno startanje nije uspjelo!!!" #: ../src/main.c:234 msgid "%s aborted.\n" msgstr "%s prekinuto.\n" #: ../src/main.c:245 msgid "usage: %s [-options]\n" msgstr "upotreba: %s [-opcije]\n" #: ../src/main.c:246 msgid "options:" msgstr "opcije:" #: ../src/main.c:248 msgid " -nocpp \t\tdisable preprocessing of configuration files" msgstr " -nocpp \t\tonemogući preprocesiranje konfiguracijskih datoteka" #: ../src/main.c:250 msgid " -nodock\t\tdo not open the application Dock" msgstr " -nodock\t\tne otvaraj Dock aplikaciju" #: ../src/main.c:251 msgid " -noclip\t\tdo not open the workspace Clip" msgstr " -noclip\t\tne otvaraj Clip radnih prostora" #: ../src/main.c:255 msgid " -visualid visualid\tvisual id of visual to use" msgstr " -visualid visualid\tvisual id of visual to use" #: ../src/main.c:256 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tprikaži za koriÅ¡tenje" #: ../src/main.c:257 msgid " -version\t\tprint version and exit" msgstr " -version\t\tÅ¡tampaj verziju i izaÄ‘i" #: ../src/main.c:269 msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "Ne mogu naći korisniÄki GNUstep direktorij (%s).\n" "Provjerite da li ste pravilno instalirali Window Maker i pokrenuli wmaker.inst" #: ../src/main.c:291 msgid "%s:could not execute initialization script" msgstr "%s:ne mogu izvrÅ¡iti inicijalizacijsku skriptu" #: ../src/main.c:310 msgid "%s:could not execute exit script" msgstr "%s:ne mogu izvrÅ¡iti izlaznu skriptu" #: ../src/main.c:367 ../src/main.c:374 ../src/main.c:381 msgid "too few arguments for %s" msgstr "premalo argumenata za %s" #: ../src/main.c:385 msgid "bad value for visualid: \"%s\"" msgstr "loÅ¡a vrijednost za visualid: \"%s\"" #: ../src/main.c:426 msgid "X server does not support locale" msgstr "X server ne podržava locale" #: ../src/main.c:429 msgid "cannot set locale modifiers" msgstr "ne mogu postaviti loacale modifiers" #: ../src/main.c:446 msgid "could not open display \"%s\"" msgstr "ne mogu otvoriti prikaz \"%s\"" #: ../src/menu.c:285 msgid "wrealloc() failed while trying to add menu item" msgstr "wrealloc() pao pokuÅ¡avajući dodati postavku u izbornik" #: ../src/misc.c:71 msgid "could not define value for %s for cpp" msgstr "ne mogu definirati vrijednost za %s za cpp" #: ../src/misc.c:101 msgid "could not get password entry for UID %i" msgstr "ne mogu uzeti unos Å¡ifre za UID %i" #: ../src/misc.c:125 msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "vaÅ¡a maÅ¡ina je krivo konfigurirana. HOSTNAME je postavljen na %s" #: ../src/misc.c:131 msgid "your machine is misconfigured. HOST is set to %s" msgstr "vaÅ¡a maÅ¡ina je krivo konfigurisana. HOST je postavljen na %s" #: ../src/misc.c:773 msgid "selection timed-out" msgstr "vrijeme za odabir isteklo" #: ../src/misc.c:788 msgid "Program Arguments" msgstr "Argumenti programa" #: ../src/misc.c:807 msgid "Enter command arguments:" msgstr "UpiÅ¡i argumente naredbe:" #: ../src/misc.c:833 msgid "unable to get dropped data from DND drop" msgstr "ne mogu uzeti spuÅ¡tene podatke od DND spuÅ¡tanja" #: ../src/misc.c:841 msgid "error getting dropped data from DND drop" msgstr "greÅ¡ka pri uzimanju spuÅ¡tenih podataka od DND spuÅ¡tanja" #: ../src/misc.c:847 msgid "out of memory while getting data from DND drop" msgstr "iskoriÅ¡tena sva memorija pri uzimanju podataka od DND spuÅ¡tanja" #: ../src/misc.c:891 ../src/misc.c:1011 msgid "out of memory during expansion of \"%s\"" msgstr "iskoriÅ¡tena sva memorija za vrijeme Å¡irenja \"%s\"" #: ../src/misc.c:945 msgid "out of memory during expansion of \"%w\"" msgstr "iskoriÅ¡tena sva memorija za vrijeme Å¡irenja \"%w\"" #: ../src/misc.c:964 msgid "out of memory during expansion of \"%a\"" msgstr "iskoriÅ¡tena sva memorija za vrijeme Å¡irenja \"%a\"" #: ../src/misc.c:990 msgid "out of memory during expansion of \"%d\"" msgstr "iskoriÅ¡tena sva memorija za vrijeme Å¡irenja \"%d\"" #: ../src/misc.c:1004 msgid "selection not available" msgstr "odabir nije dostupan" #: ../src/misc.c:1076 ../src/misc.c:1082 msgid "bad window name value in %s state info" msgstr "loÅ¡a vrijednost imena za prozor u %s u info stanju" #: ../src/pixmap.c:235 msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "ne mogu uÄitati bitmap datoteku \"%s\" za masku. Neću koristiti masku." #: ../src/proplist.c:180 msgid "unterminated string" msgstr "nedovrÅ¡en string" #: ../src/proplist.c:247 msgid "unterminated array" msgstr "nedovrÅ¡en niz" #: ../src/proplist.c:256 msgid "missing , in array or unterminated array" msgstr "nedostaje , u nizu ili nedovrÅ¡en niz" #: ../src/proplist.c:267 msgid "could not get array element" msgstr "ne mogu uzeti element niza" #: ../src/proplist.c:297 msgid "unterminated dictionary" msgstr "nedovrÅ¡en rijeÄnik" #: ../src/proplist.c:315 msgid "missing dictionary key" msgstr "nedostaje kljuÄ rijeÄnika" #: ../src/proplist.c:317 msgid "missing dictionary entry key or unterminated dictionary" msgstr "nedostaje kljuÄ rijeÄnika ili nezavrÅ¡en niz" #: ../src/proplist.c:323 msgid "error parsing dictionary key" msgstr "greÅ¡ka pri analiziranju kljuÄa rijeÄnika" #: ../src/proplist.c:332 msgid "missing = in dictionary entry" msgstr "nedostaje = u rijeÄniÄkom unosu" #: ../src/proplist.c:351 msgid "missing ; in dictionary entry" msgstr "nedostaje ; u rijeÄniÄkom unosu" #: ../src/proplist.c:432 msgid "was expecting a string, dictionary, data or array." msgstr "je oÄekivao string, rijeÄnik, podatak ili niz." #: ../src/proplist.c:434 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "Komentari nisu dozvoljeni unutar datoteka koje posjeduje WindowMaker." #: ../src/proplist.c:453 msgid "could not open domain file %s" msgstr "ne mogu otvoriti domain datoteku %s" #: ../src/proplist.c:466 msgid "extra data after end of file" msgstr "viÅ¡ak podataka nakon kraja datoteke" #: ../src/resources.c:71 msgid "The following character sets are missing in %s:" msgstr "Sljedeći znak setovi nedostaju u %s:" #: ../src/resources.c:76 msgid "The string \"%s\" will be used in place" msgstr "String \"%s\"će biti koriÅ¡ten na mjestu" #: ../src/resources.c:78 msgid "of any characters from those sets." msgstr "od bilo kojih znakova iz tih setova" #: ../src/resources.c:81 msgid "could not create font set %s. Trying fixed" msgstr "ne mogu napraviti font set %s. Probat ću fixed" #: ../src/resources.c:98 msgid "could not load font %s. Trying fixed" msgstr "ne mogu uÄitati font %s. Probat ću fixed" #: ../src/resources.c:136 msgid "could not parse color \"%s\"" msgstr "ne mogu analizirati boju \"%s\"" #: ../src/resources.c:140 msgid "could not allocate color \"%s\"" msgstr "ne mogu alocirati boju \"%s\"" #: ../src/rootmenu.c:205 ../src/rootmenu.c:207 ../src/rootmenu.c:236 msgid "Exit" msgstr "Izlaz" #: ../src/rootmenu.c:206 msgid "Exit window manager?" msgstr "Izlaz iz window managera?" #: ../src/rootmenu.c:234 msgid "Close X session" msgstr "Zatvori X sesiju" #: ../src/rootmenu.c:235 msgid "" "Close Window System session?\n" "(all applications will be closed)" msgstr "" "Zatvoriti Window Sistem sesiju?\n" "(sve aplikacije će biti zatvorene)" #: ../src/rootmenu.c:454 msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:netaÄna specifikacija za kbd preÄicu \"%s\" za unos %s" #: ../src/rootmenu.c:462 msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:netaÄan kljuÄ u preÄici \"%s\" za unos %s" #: ../src/rootmenu.c:515 msgid "%s: unmatched '\"' in menu file" msgstr "%s: unmatched '\" u datoteci izbornika" #: ../src/rootmenu.c:565 msgid "%s: missing command" msgstr "%s: nedostaje naredba" #: ../src/rootmenu.c:598 msgid "invalid OPEN_MENU specification: %s" msgstr "netaÄna OPEN_MENU specifikacija: %s" #: ../src/rootmenu.c:663 msgid "%s:could not stat menu" msgstr "%s:ne mogu statirati izbornik" #: ../src/rootmenu.c:671 msgid "%s:could not stat menu :%s" msgstr "%s:ne mogu statirati izbornik: %s" #: ../src/rootmenu.c:689 msgid "too many parameters in OPEN_MENU: %s" msgstr "previÅ¡e parametara u OPEN_MENU: %s" #: ../src/rootmenu.c:725 msgid "There are more than one WORKSPACE_MENU commands in the applications menu. Only one is allowed." msgstr "Ima viÅ¡e nego jedna WORKSPACE_MENU naredba u izborniku aplikacija. Smije biti samo jedna." #: ../src/rootmenu.c:754 ../src/rootmenu.c:772 msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:nedostaje parametar za naredbu izbornika \"%s\"" #: ../src/rootmenu.c:835 msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:nepoznata naredba \"%s\" u konfiguraciji izbornika" #: ../src/rootmenu.c:843 msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:ne mogu dodati kraticu za unos \"%s\"" #: ../src/rootmenu.c:980 msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s prekoraÄena maksimalna veliÄina linije u konfiguraciji izbornika: %s" #: ../src/rootmenu.c:1002 ../src/rootmenu.c:1094 ../src/rootmenu.c:1195 msgid "%s:missing command in menu config: %s" msgstr "%s:nedostaje naredba u konfiguraciji izbornika: %s" #: ../src/rootmenu.c:1032 msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:greÅ¡ka u sintaksi u datoteci izbornika: nedostaje deklaracija END" #: ../src/rootmenu.c:1061 ../src/rootmenu.c:1160 msgid "could not make arguments for menu file preprocessor" msgstr "ne mogu napraviti argumente za preprocesor datoteke izbornika" #: ../src/rootmenu.c:1067 ../src/rootmenu.c:1167 msgid "%s:could not open/preprocess menu file" msgstr "%s:ne mogu otvoriti/preprocesirati datoteku izbornika" #: ../src/rootmenu.c:1079 ../src/rootmenu.c:1180 msgid "%s:could not open menu file" msgstr "%s: ne mogu otvoriti datoteku izbornika" #: ../src/rootmenu.c:1106 msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:netaÄna datoteka izbornika. Nedostaje MENU naredba" #: ../src/rootmenu.c:1115 msgid "error reading preprocessed menu data" msgstr "greÅ¡ka pri Äitanju preprocesiranih podataka za izbornik" #: ../src/rootmenu.c:1207 msgid "%s:no title given for the root menu" msgstr "%s:nije naveden naslov za root izbornik" #: ../src/rootmenu.c:1261 ../src/rootmenu.c:1324 ../src/rootmenu.c:1368 msgid "out of memory while constructing directory menu %s" msgstr "iskoriÅ¡tena sva memorija prilikom konstrukcije direktorija izbornika %s" #: ../src/rootmenu.c:1271 msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:ne mogu statirati datoteku \"%s\" u izbornik direktoriju" #: ../src/rootmenu.c:1417 msgid "Commands" msgstr "Naredbe" #: ../src/rootmenu.c:1419 msgid "Exit..." msgstr "Izlaz..." #: ../src/rootmenu.c:1486 msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "ne mogu naći datoteku izbornika \"%s\" navedenoj u WMRootMenu datoteci" #: ../src/rootmenu.c:1493 msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "ne mogu pristupiti datoteci izbornika \"%s\" navedenoj u WMRootMenu" #: ../src/rootmenu.c:1521 ../src/rootmenu.c:1576 msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:greÅ¡ka u formatu u konfiguraciji root izbornika \"%s\"" #: ../src/screen.c:412 msgid "could not load logo image for panels" msgstr "ne mogu uÄitati logo image za panele" #: ../src/screen.c:415 msgid "error making logo image for panel:%s" msgstr "greÅ¡ka pri kreiranju logo imagea za panel:%s" #: ../src/screen.c:594 msgid "could not initialize graphics library context: %s" msgstr "ne mogu inicijalizirati sadržaj grafiÄke biblioteke: %s" #: ../src/session.c:113 ../src/wdefaults.c:562 ../src/winspector.c:343 msgid "can't convert \"%s\" to boolean" msgstr "ne mogu konvertovati \"%s\" u logiÄki izraz" #: ../src/stacking.c:88 msgid "could not get window list!!" msgstr "ne mogu uzeti listu prozora!!" #: ../src/startup.c:188 msgid "internal X error: %s\n" msgstr "interna X greÅ¡ka: %s\n" #: ../src/startup.c:251 msgid "got signal %i (%s) - restarting\n" msgstr "dobio sam signal %i (%s) - ponovo pokrećem\n" #: ../src/startup.c:253 msgid "got signal %i - restarting\n" msgstr "primio signal %i - ponovo pokrećem\n" #: ../src/startup.c:267 msgid "%s: Received signal SIGTERM. Exiting..." msgstr "%s: Primio signal SIGTERM. Izlazim..." #: ../src/startup.c:279 msgid "got signal %i (%s)\n" msgstr "primio signal %i (%s)\n" #: ../src/startup.c:281 msgid "got signal %i\n" msgstr "primio signal %i\n" #: ../src/startup.c:286 msgid "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "sruÅ¡io se dok sam pokuÅ¡avao Äistiti. Prekidam odmah." #. restart another window manager so that the X session doesn't #. * go to space #: ../src/startup.c:297 msgid "trying to start alternative window manager..." msgstr "pokuÅ¡avam pokrenuti drugi window menadžer" #: ../src/startup.c:696 msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "veliÄina ikone je konfigurirana da %i, ali je premala. Umjetsto toga koristim 16\n" #: ../src/startup.c:740 msgid "it seems that there already is a window manager running" msgstr "Äini se da je već pokrenut window menadžer" #: ../src/startup.c:746 msgid "could not manage screen %i" msgstr "ne mogu upravljati ekranom %i" #: ../src/startup.c:802 msgid "could not manage any screen" msgstr "ne mogu upravljati nijednim ekranom" #: ../src/switchmenu.c:112 msgid "Windows" msgstr "Prozori" #: ../src/texture.c:267 msgid "image file \"%s\" used as texture could not be found." msgstr "ne mogu naći image datoteku \"%s\" koja se koristi kao tekstura." #: ../src/texture.c:273 msgid "could not load texture pixmap \"%s\":%s" msgstr "ne mogu uÄitati teksturni pixmap \"%s\":%s" #: ../src/texture.c:377 ../src/texture.c:488 msgid "could not render texture: %s" msgstr "ne mogu predstaviti teksturu: %s" #: ../src/wdefaults.c:396 msgid "could not find icon file \"%s\"" msgstr "ne mogu pronaći ikonu \"%s\"" #: ../src/window.c:2261 ../src/window.c:2404 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 "" "Äini se da su NumLock, ScrollLock ili sliÄni kljuÄevi ukljuÄeni.\n" "IskljuÄite ih ili neke akcije s miÅ¡om i tastaturom neće raditi." #: ../src/winmenu.c:192 ../src/winmenu.c:199 msgid "Shortcut" msgstr "PreÄica" #: ../src/winmenu.c:242 ../src/winmenu.c:258 msgid "could not create submenu for window menu" msgstr "ne mogu napraviti podizbornik za izornik prozora" #. #. * 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:284 msgid "(Un)Maximize" msgstr "(De)Maksimiziraj" #: ../src/winmenu.c:292 msgid "Miniaturize" msgstr "Minimiziraj" #: ../src/winmenu.c:301 msgid "(Un)Shade" msgstr "(Un)Shade" #: ../src/winmenu.c:309 msgid "Hide" msgstr "Sakrij" #: ../src/winmenu.c:317 msgid "Select" msgstr "Odaberi" #: ../src/winmenu.c:325 msgid "Move To" msgstr "Pomjeri na" #: ../src/winmenu.c:330 msgid "Attributes..." msgstr "Atributi..." #: ../src/winmenu.c:332 msgid "Select Shortcut" msgstr "Odaberi preÄicu" #: ../src/winmenu.c:335 msgid "Close" msgstr "Zatvori" #: ../src/winspector.c:277 msgid "Could not find icon \"%s\" specified for this window" msgstr "Ne mogu pronaći ikonu \"%s\" odreÄ‘enu za ovaj prozor" #: ../src/winspector.c:293 msgid "Could not open specified icon \"%s\":%s" msgstr "Ne mogu otvoriti navedenu ikonu \"%s\":%s" #: ../src/winspector.c:989 msgid "Save" msgstr "SaÄuvaj" #: ../src/winspector.c:995 msgid "Apply" msgstr "Primjeni" #: ../src/winspector.c:1001 msgid "Revert" msgstr "Vrati" #: ../src/winspector.c:1010 ../src/winspector.c:1020 msgid "Window Specification" msgstr "Specifikacija prozora" #: ../src/winspector.c:1011 msgid "Window Attributes" msgstr "Atributi prozora" #: ../src/winspector.c:1012 msgid "Advanced Options" msgstr "Napredne opcije" #: ../src/winspector.c:1013 msgid "Icon and Initial Workspace" msgstr "Ikona i poÄetni radni prostor" #: ../src/winspector.c:1014 msgid "Application Specific" msgstr "SpecifiÄno za aplikaciju" #: ../src/winspector.c:1028 msgid "Defaults for all windows" msgstr "Standardno za sve prozore" #: ../src/winspector.c:1064 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 "" "Kada bude saÄuvano, konfiguracija će\n" "biti primjenjena na sve prozore koji\n" "imaju svoju WM_CLASS postavku\n" "postavljenu na gore navedeno ime." #: ../src/winspector.c:1071 msgid "Attributes" msgstr "Atributi" #: ../src/winspector.c:1081 msgid "Disable titlebar" msgstr "Onemogući traku za naslov" #: ../src/winspector.c:1085 msgid "Disable resizebar" msgstr "Onemogući traku za promjenu veliÄine" #: ../src/winspector.c:1089 msgid "Disable close button" msgstr "Bez tipke za zatvaranje" #: ../src/winspector.c:1093 msgid "Disable miniaturize button" msgstr "Bez tipke za minimiziranje" #: ../src/winspector.c:1101 msgid "Omnipresent" msgstr "Svugdjeprisutan" #: ../src/winspector.c:1105 msgid "Start Miniaturized" msgstr "Pokreni minimizirano" #: ../src/winspector.c:1109 msgid "Skip window list" msgstr "PreskoÄi listu prozora" #: ../src/winspector.c:1123 msgid "Advanced" msgstr "Napredno" #: ../src/winspector.c:1133 msgid "Ignore HideOthers" msgstr "IgnoriÅ¡i SakrijOstale" #: ../src/winspector.c:1137 msgid "Don't bind keyboard shortcuts" msgstr "Ne primjenjuj kbd preÄice" #: ../src/winspector.c:1141 msgid "Don't bind mouse clicks" msgstr "Ne primjenjuj klikove miÅ¡a" #: ../src/winspector.c:1145 msgid "Keep inside screen" msgstr "Zadrži unutar ekrana" #: ../src/winspector.c:1149 msgid "Don't let it take focus" msgstr "Ne daj da uzme fokus" #: ../src/winspector.c:1153 msgid "Don't Save Session" msgstr "Nemoj saÄuvati sesiju" #: ../src/winspector.c:1157 msgid "Emulate Application Icon" msgstr "Emulirati aplikacijsku ikonu" #: ../src/winspector.c:1172 msgid "Enable the \"Don't bind...\" options to allow the application to receive all mouse or keyboard events." msgstr "Omogući \"Ne primjenjuj...\" opcije da bi dopustio aplikaciji da primi sve miÅ¡ ili tastaturne dogaÄ‘aje." #: ../src/winspector.c:1179 msgid "Miniwindow Image" msgstr "Miniwindow Image" #: ../src/winspector.c:1198 msgid "Update" msgstr "Update" #: ../src/winspector.c:1213 msgid "Icon file name:" msgstr "Ime ikone:" #: ../src/winspector.c:1225 msgid "Ignore client supplied icon" msgstr "IgnoriÅ¡i ponuÄ‘enu ikonu" #: ../src/winspector.c:1232 msgid "Initial Workspace" msgstr "PoÄetni randi prostor" #: ../src/winspector.c:1237 msgid "Nowhere in particular" msgstr "Nigdje posebno" #: ../src/winspector.c:1271 msgid "Application Wide" msgstr "Preko cijele aplikacije" #: ../src/winspector.c:1281 msgid "Start Hidden" msgstr "Pokreni skriveno" #: ../src/winspector.c:1285 msgid "No application icon" msgstr "Nema ikone za aplikaciju" #: ../src/workspace.c:89 ../src/workspace.c:90 ../src/workspace.c:423 msgid "Workspace %i" msgstr "Radni prostor %i" #: ../src/workspace.c:471 msgid "Workspaces" msgstr "Radni prostori" #: ../src/workspace.c:473 msgid "could not create Workspace menu" msgstr "ne mogu kreirati izbornik Radnog prostora" #: ../src/workspace.c:480 msgid "New" msgstr "Novi" #: ../src/workspace.c:481 msgid "Destroy Last" msgstr "UniÅ¡ti zadnju" #: ../src/xutil.c:228 msgid "invalid data in selection" msgstr "krivi podaci u odabiru" # msgid "could not create workspace submenu for window menu" # msgstr "ne mogu kreirati radni prostor podizbornik za prozor izbornik" # # msgid "Floating Dock" # msgstr "Plutajući dock" # # msgid "Program \"%s\" not found or cannot be executed." # msgstr "Program \"%s\" ne može biti naÄ‘en ili izvrÅ¡en." # # msgid "Invalid justification type \"%s\". Should be Left, Center or Right" # msgstr "PogreÅ¡an tip poravnanja \"%s\". Trebao bi biti Left, Center ili Right" # # msgid "Invalid colormap focus mode \"%s\". Should be Manual or Auto." # msgstr "PogreÅ¡ni colormap fokus mod \"%s\". Trebao bi biti Manual ili Auto." # # msgid "Invalid geometry display type \"%s\". Should be Center, Corner, Floating or Line." # msgstr "PogreÅ¡ni tip geometry prikaza \"%s\". Trebao bi biti Center, Corner, Floating ili Line." # # msgid "Invalid window placement mode \"%s\". Should be Auto, Cascade, Random or Manual." # msgstr "PogreÅ¡ni window placement mod \"%s\". Trebao bi biti Auto, Cascade, Random ili Manual." # # msgid "Invalid focus mode \"%s\". Should be Manual, Auto or Sloppy." # msgstr "PogreÅ¡ni fokus mod \"%s\". Trebao bi biti Manual, Auto ili Sloppy." # # msgid "Invalid mouse button \"%s\". Should be Left, Middle, Right or Button1 through Button5" # msgstr "PogreÅ¡no dugme miÅ¡a \"%s\". Trebalo bi biti Left, Middle, Right ili Button1 do Button5." # # msgid "Invalid iconification style \"%s\". Should be Zoom, Twist, Flip or None" # msgstr "Krivi stil ikonifikacije \"%s\". Trebao bi biti Zoom, Twist, Flip ili None" # # msgid "Invalid speed \"%s\". Should be UltraFast, Fast, Medium, Slow or UltraSlow." # msgstr "PogreÅ¡na brzina \"%s\". Trebala bi biti UltraFast, Fast, Medium, Slow ili UltraSlow." # # msgid "Floating Clip" # msgstr "Plutajući Clip" # # msgid "Invalid icon Position \"%s\". Should be one of blv, blh, brv, brh, tlv, tlh, trv, trh" # msgstr "Kriva pozicija ikone \"%s\". Trebala bi biti: blv, blh, brv, brh, tlv, tlh, trv ili trh" # # msgid "" # "could not find user GNUstep directory.\n" # "Make sure you have installed WindowMaker correctly and run wmaker.inst" # msgstr "" # "ne mogu naći korisnikov GNUstep direktorij.\n" # "Provjerite da li ste ispravno instalirali WinowMaker i pokrenite wmaker.inst" # # msgid "Hide Others" # msgstr "Sakrij ostale" # # msgid "Exiting...\n" # msgstr "Izlazim...\n" # # msgid "%s:could not find menu file \"%s\"" # msgstr "%s:ne mogu naći datoteku izbornika \"%s\"" # # msgid "%s:could not access menu \"%s\"" # msgstr "%s:ne mogu pristupiti izborniku \"%s\"" # # msgid "invalid kbd shortcut specification \"%s\"" # msgstr "pogreÅ¡na specifikacija kbd kratice \"%s\"" # # msgid "invalid key modifier \"%s\"" # msgstr "pogreÅ¡ni modifier \"%s\"" # # msgid "Could not find icon file specified for this window" # msgstr "Ne mogu naći ikonu specificiranu za ovaj prozor" # # msgid "could not load clip tile image" # msgstr "ne mogu uÄitati image za pozadinu clipa" # # msgid "invalid key in shortcut \"%s\"" # msgstr "krivi kljuÄ u kratici \"%s\"" # # msgid "not enough memory to open window inspector panel" # msgstr "premalo memorije za otvaranje window inspector panela" # WindowMaker-0.95.5/po/cs.po0000644000175000017500000015130212214432632012346 00000000000000# Message catalog for Window Maker # Copyright (C) 1998 Free Software Foundation, Inc. # Text below is in ISO8859-2 # David Sauer , 1998. # Lukas Tinkl , 1999. # Jiří Hnídek # Pá dub 23 09:21:16 CEST 1999 David Å auer # St Äec 14 09:30:00 CEST 1999 Lukáš Tinkl # St říj 13 20:29:53 CEST 2001 Jiří Hnídek # msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.70.0\n" "POT-Creation-Date: 2001-10-11 13:49+0200\n" "PO-Revision-Date: 2001-10-14 20:29+53:00\n" "Last-Translator: Jiří Hnídek \n" "Language-Team: czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: unknown\n" #: ../src/appicon.c:541 ../src/dialog.c:224 ../src/dock.c:3276 #: ../src/dockedapp.c:230 ../src/main.c:273 ../src/rootmenu.c:1816 #: ../src/winspector.c:389 ../src/winspector.c:406 msgid "Error" msgstr "Chyba" #: ../src/appicon.c:542 msgid "Could not open specified icon file" msgstr "Nelze otevřít specifikovaný soubor s ikonou" #: ../src/appicon.c:543 ../src/dialog.c:121 ../src/dialog.c:224 #: ../src/dialog.c:671 ../src/dialog.c:1733 ../src/dock.c:493 #: ../src/dock.c:501 ../src/dock.c:525 ../src/dock.c:3277 #: ../src/dockedapp.c:231 ../src/dockedapp.c:426 ../src/main.c:273 #: ../src/rootmenu.c:1820 ../src/winspector.c:390 ../src/winspector.c:407 msgid "OK" msgstr "OK" #: ../src/appicon.c:570 ../src/dock.c:256 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " bude násilnÄ› ukonÄen.\n" "Jakékoli zmÄ›ny budou ztraceny.\n" "PotvrÄte prosím." #: ../src/appicon.c:576 ../src/dock.c:261 ../src/winmenu.c:124 msgid "Kill Application" msgstr "UkonÄit aplikaci" #: ../src/appicon.c:577 ../src/dock.c:262 ../src/winmenu.c:126 msgid "Yes" msgstr "Ano" #: ../src/appicon.c:577 ../src/dock.c:262 ../src/winmenu.c:126 msgid "No" msgstr "Ne" #: ../src/appicon.c:595 ../src/dock.c:1144 ../src/dock.c:3442 msgid "Unhide Here" msgstr "Odkrýt zde" #: ../src/appicon.c:596 ../src/appicon.c:622 ../src/dock.c:1146 #: ../src/dock.c:1148 ../src/dock.c:3454 ../src/winmenu.c:461 msgid "Hide" msgstr "Skrýt" #: ../src/appicon.c:597 ../src/appicon.c:628 msgid "Collapse" msgstr "Svinout" #: ../src/appicon.c:598 msgid "Set Icon..." msgstr "Nastavit ikonu..." #: ../src/appicon.c:599 ../src/dock.c:1152 ../src/rootmenu.c:224 #: ../src/rootmenu.c:238 ../src/winmenu.c:508 msgid "Kill" msgstr "UkonÄit" #: ../src/appicon.c:620 ../src/dock.c:3452 msgid "Unhide" msgstr "Odkrýt" #: ../src/appicon.c:626 msgid "Uncollapse" msgstr "Rozvinout" #: ../src/application.c:394 #, c-format msgid "recreating missing icon '%s'" msgstr "znovu vytvoÅ™it chybÄ›jící ikonu '%s'" #: ../src/defaults.c:926 ../src/startup.c:889 ../src/startup.c:907 #: ../src/startup.c:913 #, 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:972 ../src/defaults.c:1089 ../src/defaults.c:1127 #: ../src/defaults.c:1173 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "V databázi standardů je poÅ¡kozena doména %s (%s)!" #: ../src/defaults.c:977 ../src/defaults.c:1109 ../src/defaults.c:1156 #: ../src/defaults.c:1182 #, 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:988 ../src/defaults.c:1074 #, 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:1007 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "nelze naÄíst doménu %s z globální databáze standardů (%s)" #: ../src/defaults.c:1079 #, 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:1146 ../src/screen.c:458 #, c-format msgid "could not load logo image for panels: %s" msgstr "pro panely nelze naÄíst logo: %s" #: ../src/defaults.c:1424 #, 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:1469 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "\"%s\" nelze zkonvertovat pro klÃ­Ä \"%s\" na boolean " #: ../src/defaults.c:1474 ../src/defaults.c:1506 ../src/defaults.c:1538 #: ../src/defaults.c:1551 ../src/defaults.c:1566 ../src/defaults.c:1580 #: ../src/defaults.c:1650 ../src/defaults.c:1662 ../src/defaults.c:2129 #: ../src/defaults.c:2146 ../src/defaults.c:2159 ../src/defaults.c:2191 #: ../src/defaults.c:2207 ../src/defaults.c:2238 ../src/defaults.c:2325 #: ../src/defaults.c:2713 ../src/defaults.c:2724 #, c-format msgid "using default \"%s\" instead" msgstr "namísto toho použiji implicitní %s" #: ../src/defaults.c:1503 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "\"%s\" nelze zkonvertovat pro klÃ­Ä \"%s\" na integer" #: ../src/defaults.c:1533 ../src/defaults.c:1645 ../src/defaults.c:2124 #: ../src/defaults.c:2141 ../src/defaults.c:2186 ../src/defaults.c:2233 #: ../src/defaults.c:2708 ../src/wdefaults.c:565 ../src/wdefaults.c:601 #, 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:1546 #, 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:1561 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Chybná hodnota pro klÃ­Ä \"%s\". Má být Coordinate." #: ../src/defaults.c:1576 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "pole nelze konvertovat na Äísla typu integer(pro %s)." #: ../src/defaults.c:1774 ../src/defaults.c:1806 ../src/defaults.c:1822 #: ../src/defaults.c:1851 ../src/defaults.c:1874 ../src/defaults.c:1927 #: ../src/defaults.c:1967 ../src/defaults.c:2005 ../src/defaults.c:2021 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" není správné jméno barvy" #: ../src/defaults.c:1787 ../src/defaults.c:1839 msgid "bad number of arguments in gradient specification" msgstr "chybný poÄet argumentů ve specifikaci gradientu" #: ../src/defaults.c:1900 msgid "too few arguments in multicolor gradient specification" msgstr "nedostatek argumentů pÅ™i specifikaci vícebarevného gradientu" #: ../src/defaults.c:1994 msgid "bad number of arguments in textured gradient specification" msgstr "chybný poÄet argumentů ve specifikaci texturovaného gradientu" #: ../src/defaults.c:2037 #, 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]" #: ../src/defaults.c:2097 #, c-format msgid "could not initialize library %s" msgstr "nelze inicializovat knihovnu %s" #: ../src/defaults.c:2100 #, c-format msgid "could not find function %s::%s" msgstr "nelze najít funkci %s::%s" #: ../src/defaults.c:2107 #, c-format msgid "invalid texture type %s" msgstr "chybný typ textury %s" #: ../src/defaults.c:2154 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Chyba ve specifikaci textury pro klÃ­Ä \"%s\"" #: ../src/defaults.c:2203 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:2251 #, 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:2293 msgid "could not load any usable font!!!" msgstr "nelze naÄíst žádný použitelný font!!!" #: ../src/defaults.c:2320 #, c-format msgid "could not get color for key \"%s\"" msgstr "nelze získat barvu pro klÃ­Ä \"%s\"" #: ../src/defaults.c:2378 ../src/rootmenu.c:492 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s:chybný modifikátor klávesy \"%s\"" #: ../src/defaults.c:2390 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:chybná specifikace klávesové zkratky \"%s\"" #: ../src/defaults.c:2397 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s:chybná klávesa v klávesové zkratce \"%s\"" #: ../src/defaults.c:2422 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: klávesa modifikátoru %s není v pořádku" #: ../src/defaults.c:2454 #, c-format msgid "could not load image in option %s: %s" msgstr "nelze naÄíst obrázek ve volbÄ› %s: %s" #: ../src/defaults.c:2573 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "nelze otevřít soubor s obr8zkem \"%s\"" #: ../src/defaults.c:2576 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" není platný soubor barvy" #: ../src/defaults.c:2579 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "nedostatek pamÄ›ti pÅ™i otvírání obrázku \"%s\"" #: ../src/defaults.c:2618 ../src/defaults.c:2651 msgid "bad number of arguments in cursor specification" msgstr "chybný poÄet argumentů ve specifikaci kursoru" #: ../src/defaults.c:2634 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "neznámý interní název kursoru \"%s\"" #: ../src/defaults.c:2661 ../src/defaults.c:2673 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "nelze nalézt soubor s kurzorem \"%s\"" #: ../src/defaults.c:2720 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Chyba ve specifikaci kurzoru pro klÃ­Ä \"%s\"" #: ../src/defaults.c:2807 msgid "could not render texture for icon background" msgstr "pro pozadí ikony nelze vykreslit texturu" #: ../src/dialog.c:121 ../src/dialog.c:678 ../src/dock.c:525 #: ../src/dockedapp.c:431 ../src/rootmenu.c:186 ../src/rootmenu.c:224 #: ../src/rootmenu.c:238 msgid "Cancel" msgstr "ZruÅ¡it" #: ../src/dialog.c:219 msgid "Could not open directory " msgstr "Nelze otevřít adresář" #: ../src/dialog.c:274 msgid "Could not load image file " msgstr "Nelze naÄíst obrázek" #: ../src/dialog.c:605 msgid "Directories" msgstr "Adresáře" #: ../src/dialog.c:614 msgid "Icons" msgstr "Ikony" #: ../src/dialog.c:647 msgid "Preview" msgstr "" #: ../src/dialog.c:660 msgid "File Name:" msgstr "Soubor:" #: ../src/dialog.c:684 msgid "Choose File" msgstr "Vyberte soubor" #: ../src/dialog.c:702 ../src/dialog.c:704 msgid "Icon Chooser" msgstr "VýbÄ›r ikony" #: ../src/dialog.c:1160 ../src/dialog.c:1270 #, c-format msgid "Version %s" msgstr "Verze %s" #: ../src/dialog.c:1267 msgid "Window Manager for X" msgstr "Okenní manažer pro X" #: ../src/dialog.c:1290 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Grafika používá 0x%x: %s %ibpp " #: ../src/dialog.c:1298 msgid "(32 thousand colors)\n" msgstr "(32 tisíc barev)\n" #: ../src/dialog.c:1301 msgid "(64 thousand colors)\n" msgstr "(64 tisíc barev)\n" #: ../src/dialog.c:1305 msgid "(16 million colors)\n" msgstr "(16 milionů barev)\n" #: ../src/dialog.c:1308 #, c-format msgid "(%d colors)\n" msgstr "(%d barev)\n" #: ../src/dialog.c:1318 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "PÅ™idÄ›lená paměť: %i kB. Používaná paměť: %i kB.\n" #: ../src/dialog.c:1325 msgid "Supported image formats: " msgstr "Podporované formáty obrázků: " #: ../src/dialog.c:1332 msgid "" "\nAdditional support for: " msgstr "" "\nDodateÄná podpora pro: " #: ../src/dialog.c:1355 msgid " and " msgstr " a " #: ../src/dialog.c:1365 msgid "" "\n" "Sound disabled" msgstr "" "\n" "Zvuk zakázán" #: ../src/dialog.c:1367 msgid "" "\n" "Sound enabled" msgstr "" "\n" "Zvuk povolen" #: ../src/dialog.c:1391 msgid "Info" msgstr "Informace" #: ../src/dialog.c:1414 msgid "Merry X'mas!" msgstr "Veselé vánose!" #: ../src/dialog.c:1484 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" "Window Maker je volnÄ› Å¡iÅ™itelný software; můžete ho pÅ™edat dál nebo\n" "upravit podle podmínek GNU licence (Genral Public Licence), která\n" "byla uveÅ™ejnÄ›na organizací Free Software Foundation; jedna ze\n" "dvou verzí licence, nebo (jestli chcete) nÄ›jaká novÄ›jší verze.\n" "\n" "\n" "Window Maker je šířen s nadÄ›jí, že bude použitelný, ale BEZ\n" " JAKÉKOLIV ZÃRUKY; bez pozdÄ›ji pÅ™idaných záruk OBCHODNÃKA\n" "nebo DOBŘE MÃNÄšNÉHO ÚMYSLU. Více informací naleznete v\n" "GNU licenci (Genral Public Licence)\n" "\n" "\n" "MÄ›li by jste obdržet kopii GNU licence s tímto programem; pokud\n" "tomu tak není napiÅ¡te organizaci Free Software Foundation,\n" "Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA." #: ../src/dialog.c:1505 msgid "Legal" msgstr "LicenÄní podmínky" #: ../src/dialog.c:1656 ../src/startup.c:395 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "pro nefunkÄní dialogový panel nelze otevřít spojení. Konec." #: ../src/dialog.c:1682 msgid "Fatal error" msgstr "Závažná chyba" #: ../src/dialog.c:1693 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker obdržel signál %i\n" "(%s)." #: ../src/dialog.c:1696 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker pÅ™ijal signál %i." #: ../src/dialog.c:1705 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " Tato závažná chyba se vyskytla pravdÄ›podobnÄ› v důsledku chyby v kódu Window " "Makeru. Prosím, vyplňte soubor BUGFORM a zaÅ¡lete ho na bugs@windowmaker.info " "(pouze anglicky)" #: ../src/dialog.c:1714 msgid "What do you want to do now?" msgstr "Co byste chtÄ›l(a) udÄ›lat teÄ ?" #: ../src/dialog.c:1720 msgid "Select action" msgstr "OznaÄit ikonu" #: ../src/dialog.c:1721 msgid "Abort and leave a core file" msgstr "UkonÄi a zapsat soubor s obsahem pamÄ›ti (core)" #: ../src/dialog.c:1722 msgid "Restart Window Maker" msgstr "Restart Window Makeru" #: ../src/dialog.c:1723 msgid "Start alternate window manager" msgstr "Odstartovat alternativní okenní manažer" #: ../src/dialog.c:1901 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop environment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" "Window maker je souÄástí GNUstep projektu.\n" "GNUstep usiluje o vytvoÅ™ení volnÄ› Å¡iÅ™itelné\n" "implementace prostÅ™edí OpenStepu(tm), které\n" "má objektovÄ› orientovaný systém pro vytváření\n" "pokroÄilých grafických, multiplatformních\n" "aplikací. A navíc vývoj uživatelsky přívÄ›tivého\n" "prostÅ™edí je nejdůležitÄ›jší souÄást projektu.\n" "Více informací o GNUstepu naleznete na\n" "webové stránce: www.gnustep.org" #: ../src/dialog.c:1921 msgid "About GNUstep" msgstr "O GNUstepu" #: ../src/dock.c:213 #, c-format msgid "Type the name for workspace %i:" msgstr "Zadejte jméno pro plochu %i:" #: ../src/dock.c:214 ../src/dock.c:1108 ../src/dock.c:1111 ../src/dock.c:3360 msgid "Rename Workspace" msgstr "PÅ™ejmenovat plochu" #: ../src/dock.c:487 ../src/dock.c:495 msgid "Warning" msgstr "Varování" #: ../src/dock.c:488 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "NÄ›které ikony nemohou být vÅ¡udypřítomné. UjistÄ›te se prosím, že žádná další " "ikona není ukotvena na stejné pozici v ostatních pracovních plochách a že " "Sponka není na nÄ›které ploÅ¡e zaplnÄ›na." #: ../src/dock.c:496 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "NÄ›které ikony nemohou být vÅ¡udypřítomné. UjistÄ›te se prosím, že žádná další " "ikona není ukotvena na stejné pozici v ostatních pracovních plochách a že " "Sponka není na nÄ›které ploÅ¡e zaplnÄ›na." #: ../src/dock.c:523 msgid "Workspace Clip" msgstr "Sponka" #: ../src/dock.c:524 msgid "All selected icons will be removed!" msgstr "VÅ¡echny vybrané ikony budou odstranÄ›ny!" #: ../src/dock.c:575 ../src/dock.c:1123 ../src/dock.c:1125 ../src/dock.c:3396 msgid "Keep Icon" msgstr "Držet ikonu" #: ../src/dock.c:576 ../src/dock.c:2104 ../src/dock.c:2245 msgid "Type the command used to launch the application" msgstr "Zadejte příkaz, který spustí aplikaci" #: ../src/dock.c:932 #, c-format msgid "could not launch application %s\n" msgstr "aplikaci %s nelze odstartovat\n" #: ../src/dock.c:987 msgid "could not create workspace submenu for Clip menu" msgstr "nelze vytvoÅ™it submenu pracovní plochy pro menu Sponky" #: ../src/dock.c:1045 msgid "could not create options submenu for Clip menu" msgstr "nelze vytvoÅ™it submenu voleb pro menu Sponky" #: ../src/dock.c:1049 ../src/dock.c:1097 msgid "Keep on Top" msgstr "Vždy navrchu" #: ../src/dock.c:1055 msgid "Collapsed" msgstr "Svinuto" #: ../src/dock.c:1061 msgid "Autocollapse" msgstr "Automaticky svinout" #: ../src/dock.c:1067 msgid "Autoraise" msgstr "Automaticky Nahoru/Dolů" #: ../src/dock.c:1073 msgid "Autoattract Icons" msgstr "Automaticky chytat ikony" #: ../src/dock.c:1103 msgid "Clip Options" msgstr "Volby Sponky" #: ../src/dock.c:1113 msgid "Selected" msgstr "Vybraná" #: ../src/dock.c:1118 ../src/dock.c:1121 ../src/dock.c:3387 msgid "Select All Icons" msgstr "(Od)OznaÄit vÅ¡echny ikony" #: ../src/dock.c:1127 ../src/dock.c:1129 ../src/dock.c:3404 msgid "Move Icon To" msgstr "PÅ™esunout ikonu na" #: ../src/dock.c:1134 ../src/dock.c:1137 ../src/dock.c:3415 msgid "Remove Icon" msgstr "Odstranit ikonu" #: ../src/dock.c:1139 msgid "Attract Icons" msgstr "Chytat ikony" #: ../src/dock.c:1142 msgid "Launch" msgstr "Odstartovat" #: ../src/dock.c:1150 msgid "Settings..." msgstr "Nastavení..." #: ../src/dock.c:1515 ../src/dock.c:1622 #, c-format msgid "bad value in docked icon state info %s" msgstr "chybná hodnota stavu ukotvené ikony %s" #: ../src/dock.c:1630 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "chybná hodnota pozice ukotvené ikony %i,%i" #: ../src/dock.c:1886 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" #: ../src/dock.c:2103 ../src/dock.c:2244 msgid "Dock Icon" msgstr "Ukotvit ikonu" #: ../src/dock.c:3267 ../src/dock.c:3270 ../src/dock.c:3273 #, c-format msgid "Could not execute command \"%s\"" msgstr "Nelze provést příkaz \"%s\"" #: ../src/dock.c:3366 msgid "Toggle Omnipresent" msgstr "VÅ¡echny plochy" #: ../src/dock.c:3371 ../src/kwm.c:637 ../src/winmenu.c:413 #: ../src/winspector.c:1392 msgid "Omnipresent" msgstr "VÅ¡echny plochy" #: ../src/dock.c:3385 msgid "Unselect All Icons" msgstr "(Od)OznaÄit vÅ¡echny ikony" #: ../src/dock.c:3394 msgid "Keep Icons" msgstr "Držet ikonu" #: ../src/dock.c:3402 msgid "Move Icons To" msgstr "PÅ™esunout ikonu(y) na" #: ../src/dock.c:3413 msgid "Remove Icons" msgstr "Odstranit ikonu(y)" #: ../src/dock.c:3444 ../src/kwm.c:643 msgid "Bring Here" msgstr "Držet zde" #: ../src/dockedapp.c:149 #, c-format 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:229 #, c-format msgid "Could not open specified icon file: %s" msgstr "Nelze otevřít specifikovaný soubor s ikonou: %s" #: ../src/dockedapp.c:231 msgid "Ignore" msgstr "Ignorovat" #: ../src/dockedapp.c:333 msgid "Start when Window Maker is started" msgstr "Odstartovat pÅ™i startu Window Makeru" #: ../src/dockedapp.c:340 msgid "Lock (prevent accidental removal)" msgstr "Zamknout (pÅ™ed náhodným odstranÄ›ním)" #: ../src/dockedapp.c:344 msgid "Application path and arguments" msgstr "Cesty a argumenty pro aplikaci" #: ../src/dockedapp.c:357 msgid "Command for middle-click launch" msgstr "Příkaz pro prostÅ™ední tlaÄítko" #: ../src/dockedapp.c:371 #, c-format msgid "%s will be replaced with current selection" msgstr "%s bude nahrazeno aktuálním výbÄ›rem" #: ../src/dockedapp.c:376 msgid "Command for files dropped with DND" msgstr "Příkaz pro položený soubor (DND)" #: ../src/dockedapp.c:390 #, c-format msgid "%d will be replaced with the file name" msgstr "%d bude nahrazeno jménem souboru" #: ../src/dockedapp.c:394 msgid "DND support was not compiled in" msgstr "DND podpora nebylo zakompilována" #: ../src/dockedapp.c:399 msgid "Icon Image" msgstr "Ikona" #: ../src/dockedapp.c:413 ../src/winspector.c:1530 msgid "Browse..." msgstr "Hledat..." #: ../src/dockedapp.c:466 msgid "Docked Application Settings" msgstr "Nastavení pro aplikaci v doku" #: ../src/framewin.c:649 ../src/framewin.c:744 ../src/menu.c:456 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "nelze vykreslit texturu: %s" #: ../src/framewin.c:672 ../src/framewin.c:683 ../src/framewin.c:699 #: ../src/framewin.c:710 ../src/framewin.c:717 ../src/framewin.c:724 #: ../src/icon.c:350 ../src/menu.c:485 #, c-format msgid "error rendering image:%s" msgstr "nelze vykreslit obrázek:%s" #: ../src/framewin.c:777 #, c-format msgid "error rendering image: %s" msgstr "chyba pÅ™i vykreslení obrázku: %s" #: ../src/gnome.c:214 ../src/gnome.c:341 ../src/gnome.c:399 msgid "out of memory while updating GNOME hints" msgstr "nedostatek pamÄ›ti pÅ™i obnovování pokynů pro GNOME" #: ../src/icon.c:229 ../src/wdefaults.c:438 #, c-format msgid "error loading image file \"%s\": %s" msgstr "ze souboru \"%s\" nelze naÄíst obrázek: %s" #: ../src/icon.c:491 ../src/icon.c:500 #, c-format msgid "could not create directory %s" msgstr "Nelze vytvoÅ™it adresář %s" #: ../src/icon.c:767 #, c-format msgid "could not find default icon \"%s\"" msgstr "nelze najít standardní ikonu \"%s\"" #: ../src/icon.c:773 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "nelze naÄíst standardní ikonu \"%s\":%s" #: ../src/kwm.c:633 ../src/winmenu.c:436 ../src/winmenu.c:571 msgid "Maximize" msgstr "Maximalizace" #: ../src/kwm.c:634 ../src/winmenu.c:566 msgid "Unmaximize" msgstr "Demaximalizace" #: ../src/kwm.c:635 ../src/winmenu.c:444 ../src/winmenu.c:557 msgid "Miniaturize" msgstr "Miniaturizace" #: ../src/kwm.c:636 ../src/winmenu.c:552 msgid "Deminiaturize" msgstr "Deminiaturizace" #: ../src/kwm.c:638 msgid "Not Omnipresent" msgstr "Není vÅ¡udypřítomný" #: ../src/kwm.c:639 msgid "Move" msgstr "PÅ™esun" #: ../src/kwm.c:640 msgid "Resize" msgstr "ZvÄ›tÅ¡it/ZmenÅ¡it" #: ../src/kwm.c:641 ../src/rootmenu.c:224 ../src/winmenu.c:501 msgid "Close" msgstr "Uzavřít" #: ../src/kwm.c:642 ../src/winmenu.c:485 msgid "Move To" msgstr "PÅ™esunout na" #: ../src/kwm.c:1096 msgid "%a(Run Command,Type the command to run:)" msgstr "%a(SpusÅ¥ PÅ™ikaz,NapiÅ¡ příkaz ke spuÅ¡tÄ›ní:)" #: ../src/main.c:222 msgid "failed to restart Window Maker." msgstr "restart Window Makeru selhal." #: ../src/main.c:225 #, c-format msgid "could not exec %s" msgstr "nelze spustit: %s" #: ../src/main.c:271 msgid "Could not execute command: " msgstr "Nelze provést příkaz:" #: ../src/main.c:428 #, c-format msgid "%s aborted.\n" msgstr "%s pÅ™eruÅ¡en.\n" #: ../src/main.c:439 #, c-format msgid "Usage: %s [options]\n" msgstr "Použití: %s [volby]\n" #: ../src/main.c:440 msgid "The Window Maker window manager for the X window system" msgstr "Správce oken Window Maker pro X window" #: ../src/main.c:442 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tkterý display použít" #: ../src/main.c:444 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:446 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --nodock\t\tnezobrazuj Dok pro ikony" #: ../src/main.c:447 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --noclip\t\tneotvírat aplikaci Sponku" #: ../src/main.c:448 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tneodstartovat automaticky spouÅ¡tÄ›né aplikace" #: ../src/main.c:449 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tneobnovovat uložené sezení" #: ../src/main.c:451 msgid " --locale locale\tlocale to use" msgstr " --locale locale\tmístnínastavení" #: ../src/main.c:453 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr " --create-stdcmap\tvytvoÅ™it standardní barevnou paletu v pseudobarvách" #: ../src/main.c:454 msgid " --visual-id visualid\tvisual id of visual to use" msgstr "" " --visual-id visualid\tÄíslo obrazového módu(visual id), který bude použit" #: ../src/main.c:455 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tneobnovovat a neukládat konfigurace" #: ../src/main.c:456 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr " --no-polling\t\tnekontrolovat periodicky konfiguraÄní obnovení" #: ../src/main.c:458 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tsynchronizace vykreslování" #: ../src/main.c:460 msgid " --version\t\tprint version and exit" msgstr " --version\t\tzobraz verzi a konec" #: ../src/main.c:461 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tukaž tuto zprávu" #: ../src/main.c:474 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "nelze najít uživatelův adresář GNUstep (%s).\n" "UjistÄ›te se, že máte Window Maker správnÄ› nainstalován, případnÄ› spusÅ¥te " "wmaker.inst" #: ../src/main.c:479 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "nelze nalézt uživatelský GNUstep adresář (%s)." #: ../src/main.c:482 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "DoÅ¡lo k chybÄ› pÅ™i vytváření adresáře GNUstep, prosím ujistÄ›te se, že" "máte Window Maker správnÄ› nainstalován, případnÄ› spusÅ¥te wmaker.inst" #: ../src/main.c:485 #, c-format msgid "%s directory created with default configuration." msgstr "%s adresář vytvoÅ™en se standardní konfigurací." #: ../src/main.c:505 ../src/main.c:510 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:nelze provést inicializaÄní skript" #: ../src/main.c:530 ../src/main.c:535 #, c-format msgid "%s:could not execute exit script" msgstr "%s:nelze provést ukonÄovací skript" #: ../src/main.c:651 ../src/main.c:659 ../src/main.c:667 ../src/main.c:687 #, c-format msgid "too few arguments for %s" msgstr "nedostatek argumetů pro %s" #: ../src/main.c:671 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "chybná hodnota pro typ visual: \"%s\"" #: ../src/main.c:695 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: chybný argument '%s'\n" #: ../src/main.c:696 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Zkuste '%s --help', získáte více informací.\n" #: ../src/main.c:727 msgid "X server does not support locale" msgstr "X server nepodporuje nastavení místních zvyklostí" #: ../src/main.c:731 msgid "cannot set locale modifiers" msgstr "nelze nastavit modifikátory místních zvyklostí" #: ../src/main.c:747 #, c-format msgid "could not open display \"%s\"" msgstr "nelze otevřít displej \"%s\"" #: ../src/menu.c:1255 msgid "could not grab keyboard" msgstr "nelze snímat klávesnici" #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "pro %s pro cpp nelze urÄit hodnotu" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "pro uživatele s UID %i nelze získat heslo" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "" "váš poÄítaÄ není správnÄ› konfigurován. PromÄ›nná HOSTNAME je nastavena na %s" #: ../src/misc.c:132 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "váš poÄítaÄ není správnÄ› nakonfigurován. PromÄ›nná HOST nastavena na %s" #: ../src/misc.c:628 msgid "Program Arguments" msgstr "Argumenty programu" #: ../src/misc.c:629 msgid "Enter command arguments:" msgstr "Zadejte argumenty pro příkaz:" #: ../src/misc.c:722 msgid "unable to get dropped data from DND drop" msgstr "nelze získat data z DND operace drop" #: ../src/misc.c:730 msgid "error getting dropped data from DND drop" msgstr "chyba pÅ™i získávání dat z operace DND drop" #: ../src/misc.c:736 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:781 ../src/misc.c:921 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "nedostatek pamÄ›ti pÅ™i expanzi \"%s\"" #: ../src/misc.c:835 msgid "out of memory during expansion of \"%w\"" msgstr "nedostatek pamÄ›ti pÅ™i expanzi \"%w\"" #: ../src/misc.c:853 msgid "out of memory during expansion of \"%W\"" msgstr "nedostatek pamÄ›ti pÅ™i expanzi \"%s\"" #: ../src/misc.c:869 msgid "out of memory during expansion of \"%a\"" msgstr "nedostatek pamÄ›ti pÅ™i expanzi \"%a\"" #: ../src/misc.c:900 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "nedostatek pamÄ›ti pÅ™i expanzi \"%d\"" #: ../src/misc.c:914 msgid "selection not available" msgstr "výbÄ›r není dostupný" #: ../src/misc.c:970 ../src/misc.c:976 #, c-format msgid "bad window name value in %s state info" msgstr "chybné jméno okna ve stavové informaci %s" #: ../src/misc.c:1233 msgid "could not send message to background image helper" msgstr "nelze poslat zprávu umísÅ¥ovaÄi pozadí" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "" "nelze naÄíst masku bitové mapy ze souboru \"%s\". Masky nebudou použity." #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "nelze zpracovat barvu \"%s\"" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "nelze alokovat položku pro barvu \"%s\"" #: ../src/rootmenu.c:184 ../src/rootmenu.c:186 msgid "Exit" msgstr "Konec" #: ../src/rootmenu.c:185 msgid "Exit window manager?" msgstr "UkonÄit manažera oken?" #: ../src/rootmenu.c:221 msgid "Close X session" msgstr "UkonÄit sezení X" #: ../src/rootmenu.c:222 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "UkonÄit sezení?\n" "UkonÄením aplikací může dojít ke ztrátÄ› dat." #: ../src/rootmenu.c:235 msgid "Kill X session" msgstr "UkonÄit sezení X" #: ../src/rootmenu.c:236 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "UkonÄit sezení?\n" "(vÅ¡echny aplikace budou uzavÅ™eny)" #: ../src/rootmenu.c:505 #, 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:513 #, 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:566 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: neodpovídající '\"' v souboru s menu" #: ../src/rootmenu.c:616 #, c-format msgid "%s: missing command" msgstr "%s: oÄekávám příkaz" #: ../src/rootmenu.c:648 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "chybná specifikace OPEN_MENU: %s" #: ../src/rootmenu.c:696 #, c-format msgid "%s:could not stat menu" msgstr "%s:nelze provést operaci 'stat' na menu" #: ../src/rootmenu.c:704 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:nelze provést operaci 'stat' na menu:%s" #: ../src/rootmenu.c:722 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "příliÅ¡ mnoho parametrů pro příkaz OPEN_MENU: %s" #: ../src/rootmenu.c:766 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "V aplikaÄním menu je více než jeden příkaz WORKSPACE_MENU. Je povolen jen " "jeden." #: ../src/rootmenu.c:800 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "V aplikaÄním menu je více než jeden příkaz WORKSPACE_MENU. Je povolen jen " "jeden." #: ../src/rootmenu.c:805 msgid "Window List" msgstr "Seznam oken" #: ../src/rootmenu.c:834 ../src/rootmenu.c:852 ../src/rootmenu.c:862 #, 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:930 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:neznámý příkaz \"%s\" v konfiguraci menu." #: ../src/rootmenu.c:938 #, 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:1075 #, 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:1097 ../src/rootmenu.c:1190 ../src/rootmenu.c:1292 #, 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:1127 #, 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:1156 ../src/rootmenu.c:1256 msgid "could not make arguments for menu file preprocessor" msgstr "nelze vytvoÅ™it argumety pro preprocesor souboru s menu" #: ../src/rootmenu.c:1163 ../src/rootmenu.c:1264 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s: nelze otevřít nebo pÅ™edzpracovat soubor s menu" #: ../src/rootmenu.c:1175 ../src/rootmenu.c:1277 #, c-format msgid "%s:could not open menu file" msgstr "%s:nelze otevřít soubor s menu" #: ../src/rootmenu.c:1202 #, 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:1211 msgid "error reading preprocessed menu data" msgstr "chyba pÅ™i Ätení pÅ™edzpracovaného souboru s menu" #: ../src/rootmenu.c:1304 #, c-format msgid "%s:no title given for the root menu" msgstr "%s: pro hlavní menu nebyl urÄen titulek" #: ../src/rootmenu.c:1395 ../src/rootmenu.c:1468 ../src/rootmenu.c:1509 #, 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:1405 #, 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:1563 msgid "Commands" msgstr "Příkazy" #: ../src/rootmenu.c:1566 msgid "Restart" msgstr "Restart" #: ../src/rootmenu.c:1567 msgid "Exit..." msgstr "Konec..." #: ../src/rootmenu.c:1612 #, 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:1619 #, 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:1630 #, 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:1653 ../src/rootmenu.c:1729 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:chybný formát v konfiguraci hlavního menu \"%s\"" #: ../src/rootmenu.c:1817 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Menu aplikací nemůže být naÄteno. Podívejte se na konzoli, bude tam detailní " "popis chyby." #: ../src/screen.c:740 #, c-format msgid "could not initialize graphics library context: %s" msgstr "nelze inicializovat kontext grafické knihovny: %s" #: ../src/screen.c:771 msgid "could not do initialization of WINGs widget set" msgstr "nelze provést inicalizovat přípravky WINGs" #: ../src/screen.c:1139 #, c-format msgid "could not save session state in %s" msgstr "stav sezení nelze do %s uložit" #: ../src/session.c:183 ../src/wdefaults.c:583 ../src/winspector.c:454 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "\"%s\" nelze zkonvertovat na boolean" #: ../src/session.c:1021 msgid "out of memory while saving session state" msgstr "nedostatek pamÄ›ti pÅ™i ukládání stavu sezení" #: ../src/session.c:1104 msgid "end of memory while saving session state" msgstr "nedostatek pamÄ›ti pÅ™i ukládání stavu sezení" #: ../src/session.c:1242 msgid "connection to the session manager was lost" msgstr "pÅ™ipojení ke správci sezení bylo ztraceno" #: ../src/stacking.c:79 msgid "could not get window list!!" msgstr "nelze získat seznam oken!!!" #: ../src/startup.c:202 #, c-format msgid "internal X error: %s\n" msgstr "interní chyba systému X: %s\n" #: ../src/startup.c:260 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "pÅ™ijat signál %i (%s) - restartuji\n" #: ../src/startup.c:262 #, c-format msgid "got signal %i - restarting\n" msgstr "pÅ™ijat signál %i - restartuji\n" #: ../src/startup.c:272 #, c-format msgid "got signal %i (%s) - rereading defaults\n" msgstr "pÅ™ijat signál %i (%s) - obnovuji nastavení\n" #: ../src/startup.c:274 #, c-format msgid "got signal %i - rereading defaults\n" msgstr "pÅ™ijat signál %i - obnovuji nastavení\n" #: ../src/startup.c:284 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "pÅ™ijat signál %i (%s) - konec...\n" #: ../src/startup.c:286 #, c-format msgid "got signal %i - exiting...\n" msgstr "pÅ™ijat signál %i - konec...\n" #: ../src/startup.c:329 #, c-format msgid "got signal %i (%s)\n" msgstr "pÅ™ijat signál %i (%s)\n" #: ../src/startup.c:331 #, c-format msgid "got signal %i\n" msgstr "získán signál %i\n" #: ../src/startup.c:342 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:407 msgid "trying to restart Window Maker..." msgstr "pokouším se restartovat Window Maker..." #: ../src/startup.c:412 msgid "trying to start alternate window manager..." msgstr "zkouším odstartovat alternativní okenní manažer" #: ../src/startup.c:417 msgid "failed to start alternate window manager. Aborting." msgstr "alternativního správce oken nelze odstartovat. Konec." #: ../src/startup.c:419 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." #: ../src/startup.c:899 #, 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:927 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "XKB není podporován. KbdModeLock byl automaticky vypnut." #: ../src/startup.c:946 msgid "it seems that there is already a window manager running" msgstr "mám ten pocit, že zde již jeden manažer oken běží" #: ../src/startup.c:952 #, c-format msgid "could not manage screen %i" msgstr "nelze spravovat obrazovku %i" #: ../src/startup.c:1020 msgid "could not manage any screen" msgstr "nelze spravovat žádnou obrazovku" #: ../src/switchmenu.c:137 msgid "Windows" msgstr "Okna" #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "soubor s obrázkem \"%s\" použitým v textuÅ™e nebyl nalezen." #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "nelze naÄíst obrázek s texturou: \"%s\":%s" #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "nelze otevřít knihovnu \"%s\"." #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "funkce \"%s\" nebyla v knihovnÄ› \"%s\" nalezena" #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "textury vytvářené funkcemi nejsou na tomto systému podporovány. Sorry." #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "nelze alokovat paměť pro obrázek" #: ../src/wdefaults.c:432 #, c-format msgid "could not find icon file \"%s\"" msgstr "nelze získat soubor s ikonou \"%s\"" #: ../src/window.c:2796 ../src/window.c:2931 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 "" "Klávesa NumLock, ScrollLock nebo podobná je zÅ™ejmÄ› zapnuta..\n" "VypnÄ›te ji, nebo nÄ›které akce myÅ¡i a klávesové zkratky nebudou fungovat." #: ../src/winmenu.c:125 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Aplikace bude takto ukonÄena.\n" "Jakékoli zmÄ›ny budou ztraceny.\n" "PotvrÄte prosím." #: ../src/winmenu.c:267 ../src/winmenu.c:276 msgid "Set Shortcut" msgstr "Nastavit zkratku" #: ../src/winmenu.c:354 ../src/winmenu.c:399 msgid "could not create submenu for window menu" msgstr "nelze vytvoÅ™it submenu pro menu oken" #: ../src/winmenu.c:403 msgid "Keep on top" msgstr "Vždy navrchu" #: ../src/winmenu.c:408 msgid "Keep at bottom" msgstr "Držet dole" #: ../src/winmenu.c:453 ../src/winmenu.c:588 msgid "Shade" msgstr "Titulek" #: ../src/winmenu.c:469 msgid "Resize/Move" msgstr "ZvÄ›tÅ¡it/PÅ™esunout" #: ../src/winmenu.c:477 msgid "Select" msgstr "Vybrat" #: ../src/winmenu.c:490 msgid "Attributes..." msgstr "Atributy..." #: ../src/winmenu.c:492 msgid "Options" msgstr "Volby" #: ../src/winmenu.c:583 msgid "Unshade" msgstr "Celé okno" #: ../src/winspector.c:387 #, 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:404 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Nelze otevřít specifikovanou ikonu \"%s\":%s" #: ../src/winspector.c:1138 #, c-format msgid "Inspecting %s.%s" msgstr "Nastavení pro %s.%s" #: ../src/winspector.c:1164 msgid "Click in the window you wish to inspect." msgstr "KliknÄ›te na okno, které chcete prověřit." #: ../src/winspector.c:1203 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "Konfigurace bude aplikována na vÅ¡echny\n" "klienty, kteří mají nastavenu vlastnost\n" "WM_CLASS na výše vybranou\n" "(pÅ™i uložení této konfigurace)" #: ../src/winspector.c:1232 msgid "Save" msgstr "Uložit" #: ../src/winspector.c:1240 msgid "Apply" msgstr "Nastavit" #: ../src/winspector.c:1246 msgid "Reload" msgstr "Obnovit" #: ../src/winspector.c:1255 ../src/winspector.c:1265 msgid "Window Specification" msgstr "Specifikace okna" #: ../src/winspector.c:1256 msgid "Window Attributes" msgstr "Atributy okna" #: ../src/winspector.c:1257 msgid "Advanced Options" msgstr "Další volby" #: ../src/winspector.c:1258 msgid "Icon and Initial Workspace" msgstr "Ikona a poÄáteÄní plocha" #: ../src/winspector.c:1259 msgid "Application Specific" msgstr "Atributy aplikace" #: ../src/winspector.c:1273 msgid "Defaults for all windows" msgstr "Standard pro vÅ¡echna okna" #: ../src/winspector.c:1327 msgid "Select window" msgstr "Vyberte okno" #: ../src/winspector.c:1341 msgid "Attributes" msgstr "Atributy" #: ../src/winspector.c:1352 msgid "Disable titlebar" msgstr "Zakázat titulek" #: ../src/winspector.c:1354 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Odstranit titulkový pruh tohoto okna.\n" "Abyste pÅ™esto mohli používat příkazové menu okna\n" "bez titulkového pruhu, stisknÄ›te Control+Esc (nebo\n" "ekvivalentní zkratku, jestliže jste zmÄ›nili výchozí\n" "nastavení)." #: ../src/winspector.c:1361 msgid "Disable resizebar" msgstr "Zakázat zvÄ›tÅ¡ovací růžek" #: ../src/winspector.c:1363 msgid "Remove the resizebar of this window." msgstr "Odstranit zvÄ›tÅ¡ovací růžek tohoto okna." #: ../src/winspector.c:1366 msgid "Disable close button" msgstr "Zakázat prvek pro uzavÅ™ení" #: ../src/winspector.c:1368 msgid "Remove the `close window' button of this window." msgstr "Odstranit zavírací tlaÄítko tohoto okna." #: ../src/winspector.c:1371 msgid "Disable miniaturize button" msgstr "Zakázat prvek pro minimalizaci" #: ../src/winspector.c:1373 msgid "Remove the `miniaturize window' button of the window." msgstr "Odstranit minimalizaÄní tlaÄítko tohoto okna." #: ../src/winspector.c:1376 msgid "Disable border" msgstr "Zakázat okraje" #: ../src/winspector.c:1378 msgid "Remove the 1 pixel black border around the window." msgstr "Odstranit jednopixelový Äerný okraj okolo okna." #: ../src/winspector.c:1381 msgid "Keep on top (floating)" msgstr "Vždy navrch / plovoucí" #: ../src/winspector.c:1383 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "Držet okno nad ostatními a zabránit jim v pÅ™ekryvu." #: ../src/winspector.c:1387 msgid "Keep at bottom (sunken)" msgstr "Držet vespod" #: ../src/winspector.c:1389 msgid "Keep the window under all other windows." msgstr "Držet okno pod vÅ¡emi ostatními." #: ../src/winspector.c:1394 msgid "Make window present in all workspaces." msgstr "Zobrazit okno na vÅ¡ech plochách." #: ../src/winspector.c:1397 msgid "Start miniaturized" msgstr "Odstartovat jako ikonu" #: ../src/winspector.c:1399 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "Automaticky minimalizovat okno, když se ukáže poprvé." #: ../src/winspector.c:1403 msgid "Start maximized" msgstr "Odstartovat jako velké okno" #: ../src/winspector.c:1405 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "Automaticky maximalizovat okno, když se ukáže poprvé." #: ../src/winspector.c:1409 msgid "Full screen maximization" msgstr "Maximalizace na plnou obrazovku" #: ../src/winspector.c:1411 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Nechat okno používat celou obrazovku v maximalizovaném\n" "stavu. Titulkový pruh a zvÄ›tÅ¡ovací růžek budou pÅ™esunuty\n" "mimo obrazovku." #: ../src/winspector.c:1428 msgid "Advanced" msgstr "Další volby" #: ../src/winspector.c:1445 msgid "Do not bind keyboard shortcuts" msgstr "Klávesnice jen pro aplikaci" #: ../src/winspector.c:1447 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Nepoužívat klávesové zkratky Window Makeru,\n" "je-li toto okno zaměřeno. Umožní vám to, aby toto \n" "okno pÅ™ijalo vÅ¡echny klávesové kombinace bez ohledu \n" "na vaÅ¡e nastavení klávesových zkratek." #: ../src/winspector.c:1453 msgid "Do not bind mouse clicks" msgstr "MyÅ¡ jen pro aplikaci" #: ../src/winspector.c:1455 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Pro okno nepoužívat akce myÅ¡i jako napÅ™. \n" "'Alt'+táhni (s myší:), je-li alt modifikátorem, \n" "který jste si nastavili." #: ../src/winspector.c:1460 msgid "Do not show in the window list" msgstr "Vynechat ze seznamu oken" #: ../src/winspector.c:1462 msgid "Do not list the window in the window list menu." msgstr "Nevypisovat okno do seznamu oken." #: ../src/winspector.c:1465 msgid "Do not let it take focus" msgstr "Nepovolit zaměření" #: ../src/winspector.c:1467 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "Nepovolit oknu získat zaměření, když na nÄ›ho kliknete." #: ../src/winspector.c:1471 msgid "Keep inside screen" msgstr "Držet uvnitÅ™ obrazovky" #: ../src/winspector.c:1473 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Nepovolit oknu kompletní pÅ™esun mimo obrazovku.\n" "(kvůli chybové kompatibilitÄ›)\n" #: ../src/winspector.c:1477 msgid "Ignore 'Hide Others'" msgstr "Ignorovat \"Skrýt ostatní\"" #: ../src/winspector.c:1479 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "Neskrývat okno pÅ™i příkazu 'Skrýt ostatní'." #: ../src/winspector.c:1483 msgid "Ignore 'Save Session'" msgstr "Neukládat stav sezení" #: ../src/winspector.c:1485 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Neukládat pÅ™idruženou aplikaci do stavu sezení,\n" "aby nebyla restartována s ostatními aplikacemi pÅ™i\n" "startu Window Makeru." #: ../src/winspector.c:1491 msgid "Emulate application icon" msgstr "Emulovat aplikaÄní ikonu" #: ../src/winspector.c:1493 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Donutit toto okno, aby se chovalo jako aplikace, která\n" "poskytuje dostatek informací pro Window Maker, aby mohla\n" "být vytvoÅ™ena ukotvitelná aplikaÄní ikona." #: ../src/winspector.c:1499 msgid "Disable language button" msgstr "Zakázat tlaÄítko jazyka" #: ../src/winspector.c:1501 msgid "Remove the `toggle language' button of the window." msgstr "Odstranit tlaÄítko pÅ™epnutí jazyka z tohoto okna." #: ../src/winspector.c:1518 msgid "Miniwindow Image" msgstr "Ikona miniokna" #: ../src/winspector.c:1545 msgid "Icon filename:" msgstr "Soubor ikony:" #: ../src/winspector.c:1558 msgid "Ignore client supplied icon" msgstr "Ignorovat klientovy ikony" #: ../src/winspector.c:1565 msgid "Initial Workspace" msgstr "PoÄáteÄní plocha" #: ../src/winspector.c:1567 msgid "The workspace to place the window when it'sfirst shown." msgstr "Plocha, kam umístit okno pÅ™i prvním ukázání." #: ../src/winspector.c:1573 msgid "Nowhere in particular" msgstr "NeurÄena" #: ../src/winspector.c:1591 msgid "Application Attributes" msgstr "Atributy aplikace" #: ../src/winspector.c:1602 msgid "Start hidden" msgstr "Startovat skrytÄ›" #: ../src/winspector.c:1604 msgid "Automatically hide application when it's started." msgstr "Automaticky skrýt aplikaci pÅ™i startu." #: ../src/winspector.c:1607 msgid "No application icon" msgstr "Bez aplikaÄní ikony" #: ../src/winspector.c:1609 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Zakázat aplikaÄní ikonu pro tuto aplikaci.\n" "UvÄ›domte si ale, že ji nebudete moci více ukotvit\n" "do doku a vÅ¡echny již ukotvené ikony pÅ™estanou\n" "správnÄ› pracovat." #: ../src/winspector.c:1615 msgid "Collapse application icons" msgstr "Zakázat více aplikaÄních ikon" #: ../src/winspector.c:1617 msgid "" "Collapse application icons from other instances\n" "of this application into one.\n" msgstr "" "ZruÅ¡ aplikaÄní ikony ostatních instancí aplikace\n" "a používej pouze aplikaÄní ikonu tohoto okna.\n" #: ../src/workspace.c:107 ../src/workspace.c:108 ../src/workspace.c:876 #, c-format msgid "Workspace %i" msgstr "Plocha %i" #: ../src/workspace.c:926 msgid "Workspaces" msgstr "Pracovní plochy" #: ../src/workspace.c:928 msgid "could not create Workspace menu" msgstr "nelze vytvoÅ™it menu pracovních ploch" #: ../src/workspace.c:935 msgid "New" msgstr "Nová" #: ../src/workspace.c:936 msgid "Destroy Last" msgstr "ZruÅ¡it poslední" WindowMaker-0.95.5/po/de.po0000644000175000017500000014536112214432632012341 00000000000000# # German Message Catalog for Window Maker # # Initial translation # Gudio Scholz # Bernd Eggert # # Adapted to versions 0.80 ff. # Torsten Marek # msgid "" msgstr "" "Project-Id-Version: Window Maker 0.91\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-01-16 17:12+0100\n" "PO-Revision-Date: 2004-11-08 22:58+0100\n" "Last-Translator: shlomme@gmx.net\n" "Language-Team: German\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:352 ../src/dialog.c:568 ../src/dock.c:3098 #: ../src/dockedapp.c:209 ../src/main.c:344 ../src/rootmenu.c:1705 #: ../src/winspector.c:354 ../src/winspector.c:370 msgid "Error" msgstr "Fehler" #: ../src/appicon.c:353 msgid "Could not open specified icon file" msgstr "Symboldatei konnte nicht geöffnet werden" #: ../src/appicon.c:353 ../src/dialog.c:410 ../src/dialog.c:471 #: ../src/dialog.c:568 ../src/dialog.c:975 ../src/dialog.c:1628 #: ../src/dock.c:478 ../src/dock.c:485 ../src/dock.c:507 ../src/dock.c:3098 #: ../src/dockedapp.c:210 ../src/dockedapp.c:380 ../src/main.c:344 #: ../src/rootmenu.c:1708 ../src/winspector.c:354 ../src/winspector.c:370 msgid "OK" msgstr "OK" #: ../src/appicon.c:383 ../src/dock.c:229 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " wird gewaltsam geschlossen.\n" "Alle ungespeicherten Änderungen gehen dabei verloren.\n" "Bitte bestätigen." #: ../src/appicon.c:390 ../src/dock.c:247 ../src/winmenu.c:119 msgid "Kill Application" msgstr "Anwendung töten" #: ../src/appicon.c:391 ../src/dock.c:248 ../src/winmenu.c:122 msgid "Yes" msgstr "Ja" #: ../src/appicon.c:391 ../src/dock.c:248 ../src/winmenu.c:122 msgid "No" msgstr "Nein" #: ../src/appicon.c:419 ../src/dock.c:1070 ../src/dock.c:3255 msgid "Unhide Here" msgstr "Hier wiederherstellen" #: ../src/appicon.c:420 ../src/appicon.c:443 ../src/dock.c:1072 #: ../src/dock.c:1074 ../src/dock.c:3267 ../src/winmenu.c:431 msgid "Hide" msgstr "Verstecken" #: ../src/appicon.c:421 msgid "Set Icon..." msgstr "Symbol wählen..." #: ../src/appicon.c:422 ../src/dock.c:1078 ../src/rootmenu.c:233 #: ../src/winmenu.c:477 msgid "Kill" msgstr "Beenden" #: ../src/appicon.c:441 ../src/dock.c:3265 msgid "Unhide" msgstr "Wiederherstellen" #: ../src/application.c:379 #, c-format msgid "recreating missing icon '%s'" msgstr "fehlendes Symbol '%s' wird wiederhergestellt" #: ../src/defaults.c:736 ../src/defaults.c:933 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Domäne %s (%s) in globaler Standarddatenbank ist fehlerhaft!" #: ../src/defaults.c:740 #, c-format msgid "could not load domain %s from global defaults database" msgstr "Domäne %s aus globaler Standarddatenbank konnte nicht geladen werden" #: ../src/defaults.c:830 ../src/defaults.c:844 #, c-format msgid "invalid global menu file %s" msgstr "Ungültige Datei %s für globales Menü" #: ../src/defaults.c:869 ../src/startup.c:671 ../src/startup.c:688 #: ../src/startup.c:694 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "Dömane \"%s\" aus der Standarddatenbank konnte nicht gelesen werden" #: ../src/defaults.c:910 ../src/defaults.c:1014 ../src/defaults.c:1053 #: ../src/defaults.c:1106 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Domäne %s (%s) aus der Standarddatenbank ist fehlerhaft!" #: ../src/defaults.c:923 ../src/defaults.c:1034 ../src/defaults.c:1089 #: ../src/defaults.c:1116 #, c-format msgid "could not load domain %s from user defaults database" msgstr "Domäne %s aus Benutzer-Standarddatenbank konnte nicht geladen werden" #: ../src/defaults.c:952 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "" "Dömane %s konnte nicht aus globaler Standarddatenbank (%s) gelesen werden" #: ../src/defaults.c:1079 ../src/screen.c:372 #, c-format msgid "could not load logo image for panels: %s" msgstr "Panel-Logo konnte nicht geladen werden: %s" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1304 ../src/defaults.c:1423 ../src/defaults.c:1532 #: ../src/defaults.c:1989 ../src/defaults.c:2005 ../src/defaults.c:2046 #: ../src/defaults.c:2091 ../src/defaults.c:2498 ../src/wdefaults.c:543 #: ../src/wdefaults.c:572 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Falsches Optionsformat für Schlüssel \"%s\". %s erwartet." #: ../src/defaults.c:1306 ../src/defaults.c:1375 ../src/defaults.c:1400 #: ../src/defaults.c:1427 ../src/defaults.c:1439 ../src/defaults.c:1453 #: ../src/defaults.c:1467 ../src/defaults.c:1536 ../src/defaults.c:1548 #: ../src/defaults.c:1993 ../src/defaults.c:2010 ../src/defaults.c:2022 #: ../src/defaults.c:2051 ../src/defaults.c:2067 ../src/defaults.c:2096 #: ../src/defaults.c:2175 ../src/defaults.c:2503 ../src/defaults.c:2514 #, c-format msgid "using default \"%s\" instead" msgstr "benutze Standardeinstellung \"%s\" anstatt" #: ../src/defaults.c:1332 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "falscher Eigenschaftenwert für Schlüssel \"%s\". Wert aus %s erwartet" #: ../src/defaults.c:1371 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "\"%s\" konnte nicht in Boolean für Schlüssel \"%s\" konvertiert werden" #: ../src/defaults.c:1398 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "\"%s\" konnte nicht in Integer für Schlüssel \"%s\" konvertiert werden" #: ../src/defaults.c:1435 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Falsche Anzahl von Argumenten für Schlüssel \"%s\"" #: ../src/defaults.c:1449 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Falscher Wert für Schlüssel \"%s\". Koordinaten erwartet." #: ../src/defaults.c:1463 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "Feld konnte nicht in Integer für \"%s\" konvertiert werden." #: ../src/defaults.c:1651 ../src/defaults.c:1681 ../src/defaults.c:1697 #: ../src/defaults.c:1726 ../src/defaults.c:1748 ../src/defaults.c:1799 #: ../src/defaults.c:1838 ../src/defaults.c:1875 ../src/defaults.c:1891 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" ist kein gültiger Farbname" #: ../src/defaults.c:1663 ../src/defaults.c:1714 msgid "bad number of arguments in gradient specification" msgstr "falsche Anzahl von Argumenten in Farbverlaufsbeschreibung" #: ../src/defaults.c:1772 msgid "too few arguments in multicolor gradient specification" msgstr "zuwenig Argumente in Mehrfarbverlaufsbeschreibung" #: ../src/defaults.c:1864 msgid "bad number of arguments in textured gradient specification" msgstr "falsche Anzahl von Argumenten in Texturverlaufsbeschreibung" #: ../src/defaults.c:1907 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "falscher Transparenzwert für Textur \"%s\". [0..255] erwartet." #: ../src/defaults.c:1966 #, c-format msgid "could not initialize library %s" msgstr "Bibliothek %s konnte nicht initialisiert werden" #: ../src/defaults.c:1969 #, c-format msgid "could not find function %s::%s" msgstr "Funktion %s::%s konnte nicht gefunden werden" #: ../src/defaults.c:1976 #, c-format msgid "invalid texture type %s" msgstr "ungültiger Texturtyp %s" #: ../src/defaults.c:2018 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "fehlerhafte Texturbeschreibung für Schlüssel \"%s\"" #: ../src/defaults.c:2063 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Falscher Typ für Arbeitsflächen-Hintergrund. Textur erwartet." #: ../src/defaults.c:2109 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "Falscher Typ für Arbeitsflächen-Hintergrund %i. Textur erwartet." #: ../src/defaults.c:2148 msgid "could not load any usable font!!!" msgstr "keine brauchbaren Schriften konnten geladen werden!!!" #: ../src/defaults.c:2171 #, c-format msgid "could not get color for key \"%s\"" msgstr "Farbe für Schlüssel \"%s\" konnte nicht ermittelt werden" #: ../src/defaults.c:2223 ../src/rootmenu.c:447 #, fuzzy, c-format msgid "%s: invalid key modifier \"%s\"" msgstr "%s: ungültiger Schlüsselmodifikator \"%s\"" #: ../src/defaults.c:2235 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: ungültiges Tastaturkürzel \"%s\"" #: ../src/defaults.c:2241 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s: ungültige Taste in Kürzel \"%s\"" #: ../src/defaults.c:2263 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: ungültige Tastenmodifikator %s" #: ../src/defaults.c:2370 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "Bitmap-Datei \"%s\" konnte nicht geladen werden" #: ../src/defaults.c:2373 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" ist keine gültige Bitmap-Datei" #: ../src/defaults.c:2376 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "zuwenig Speicher beim Lesen der Bitmap \"%s\"" #: ../src/defaults.c:2414 ../src/defaults.c:2447 msgid "bad number of arguments in cursor specification" msgstr "falsche Anzahl von Argumente in Mauszeigerbeschreibung" #: ../src/defaults.c:2430 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "unbekannter interner Mauszeiger \"%s\"" #: ../src/defaults.c:2457 ../src/defaults.c:2469 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "Bitmap-Datei \"%s\" konnte nicht geladen werden" #: ../src/defaults.c:2510 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Fehler in Mauszeigerbeschreibung für Schlüssel \"%s\"" #: ../src/defaults.c:2585 msgid "could not render texture for icon background" msgstr "Textur für Symbolhintergrund konnte nicht angezeigt werden" #: ../src/defaults.c:3121 ../src/defaults.c:3190 #, c-format msgid "Invalid arguments for option \"%s\"" msgstr "Falsche Argument für Option \"%s\"" #: ../src/defaults.c:3127 ../src/defaults.c:3196 #, c-format msgid "Could not find image \"%s\" for option \"%s\"" msgstr "Bild \"%s\" aus Eigenschaft \"%s\" konnte nicht gefunden werden" #: ../src/defaults.c:3132 ../src/defaults.c:3204 #, c-format msgid "Could not load image \"%s\" for option \"%s\"" msgstr "Bild \"%s\"aus Eigenschaft \"%s\" konnte nicht geladen werden" #: ../src/defaults.c:3142 msgid "Invalid split sizes for SwitchPanel back image." msgstr "Ungültige Unterteilungsangaben für SwitchPanel-Hintergrundbild." #: ../src/defaults.c:3211 #, c-format msgid "Invalid number of arguments for option \"%s\"" msgstr "Falsche Anzahl von Argumente für Option \"%s\"" #: ../src/dialog.c:128 msgid "Save workspace state" msgstr "Sitzung speichern" #: ../src/dialog.c:410 ../src/dialog.c:471 ../src/dialog.c:982 #: ../src/dock.c:507 ../src/dockedapp.c:385 ../src/rootmenu.c:186 #: ../src/rootmenu.c:233 msgid "Cancel" msgstr "Abbrechen" #: ../src/dialog.c:563 msgid "Could not open directory " msgstr "Verzeichnis konnte nicht geöffnet werden" #: ../src/dialog.c:613 msgid "Could not load image file " msgstr "Bilddatei konnte nicht geöffnet werden" #: ../src/dialog.c:909 msgid "Directories" msgstr "Verzeichnisse" #: ../src/dialog.c:918 msgid "Icons" msgstr "Symbole" #: ../src/dialog.c:951 msgid "Preview" msgstr "Vorschau" #: ../src/dialog.c:964 msgid "File Name:" msgstr "Dateiname:" #: ../src/dialog.c:988 msgid "Choose File" msgstr "Datei auswählen" #: ../src/dialog.c:1007 ../src/dialog.c:1009 msgid "Icon Chooser" msgstr "Symbol-Wähler" #: ../src/dialog.c:1192 msgid "Window Manager for X" msgstr "Windowmanager für X" #: ../src/dialog.c:1194 #, c-format msgid "Version %s" msgstr "Version %s" #: ../src/dialog.c:1215 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Benutze Visual 0x%x %s %ibpp " #: ../src/dialog.c:1222 msgid "(32 thousand colors)\n" msgstr "(32.000 Farben)\n" #: ../src/dialog.c:1225 msgid "(64 thousand colors)\n" msgstr "(64.000 Farben)\n" #: ../src/dialog.c:1229 msgid "(16 million colors)\n" msgstr "(16 Millionen Farben)\n" #: ../src/dialog.c:1232 #, c-format msgid "(%d colors)\n" msgstr "(%d Farben)\n" #: ../src/dialog.c:1241 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "" "Gesamter belegter Speicher: %i kB. Gesamter benutzter Speicher: %i kB.\n" #: ../src/dialog.c:1248 msgid "Supported image formats: " msgstr "Unterstütze Grafikformate: " #: ../src/dialog.c:1255 msgid "" "\n" "Additional support for: " msgstr "" "\n" "Zusätzliche Unterstützung für: " #: ../src/dialog.c:1270 msgid " and " msgstr " und " #: ../src/dialog.c:1280 msgid "\n" msgstr "" #: ../src/dialog.c:1282 msgid "Solaris " msgstr "" #: ../src/dialog.c:1284 msgid "Xinerama: " msgstr "" #: ../src/dialog.c:1316 msgid "Info" msgstr "Info" #: ../src/dialog.c:1392 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" #: ../src/dialog.c:1415 msgid "Legal" msgstr "Rechtliches" #: ../src/dialog.c:1558 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "Verbindung zum Absturz-Dialog konnte nicht erstellt werden. Abbruch." #: ../src/dialog.c:1584 msgid "Fatal error" msgstr "Fataler Fehler" #: ../src/dialog.c:1594 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker erhielt Signal %i" #: ../src/dialog.c:1602 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " Dieser fatale Fehler trat möglicherweise wegen eines Bugs auf. Bitte füllen " "Sie die mitgelieferte BUGFORM aus und schicken Sie sie an bugs@windowmaker." "info." #: ../src/dialog.c:1609 msgid "What do you want to do now?" msgstr "Was möchten Sie jetzt tun?" #: ../src/dialog.c:1615 msgid "Select action" msgstr "Aktion auswählen" #: ../src/dialog.c:1616 msgid "Abort and leave a core file" msgstr "Abbrechen und Core-Datei hinterlassen" #: ../src/dialog.c:1617 msgid "Restart Window Maker" msgstr "Window Maker neustarten" #: ../src/dialog.c:1618 msgid "Start alternate window manager" msgstr "Anderen Windowmanager starten" #: ../src/dialog.c:1783 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop environment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" "Window Maker ist Teil des GNUstep-Projektes.\n" "Das GNUstep-Projekt hat sich zum Ziel gesetzt,\n" "eine freie Implementierung von OpenStep(tm), einem\n" "objektorientierten Framework für grafische Multiplattform-\n" "anwendungen, zu erstellen. Dazu werden eine Ent-\n" "wicklungs- und Arbeitsumgebung mit dem Framework\n" "erstellt. Für weitere Informationen zu GNUstep besuchen\n" "sie bitte www.gnustep.org" #: ../src/dialog.c:1806 msgid "About GNUstep" msgstr "Über GNUStep" #: ../src/dock.c:178 #, c-format msgid "Type the name for workspace %i:" msgstr "Geben Sie den Namen der Arbeitsfläche %i ein:" #: ../src/dock.c:179 ../src/dock.c:1037 ../src/dock.c:1039 ../src/dock.c:3174 msgid "Rename Workspace" msgstr "Arbeitsfläche umbenennen" #: ../src/dock.c:473 ../src/dock.c:480 msgid "Warning" msgstr "Warnung" #: ../src/dock.c:474 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "Einige Symbole konnten nicht haftend gemacht werden. Bitte stellen Sie " "sicher, dass kein anderes Symbol auf anderen Arbeitflächen an der gleichen " "Position andockt und der Clip in keiner Arbeitsfläche voll ist." #: ../src/dock.c:481 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "Symbol konnte nicht haftend gemacht werden. Bitte stellen Sie sicher, dass " "kein anderes Symbol auf anderen Arbeitflächen an der gleichen Position klebt " "und der Clip in keiner Arbeitsfläche voll ist." #: ../src/dock.c:505 msgid "Workspace Clip" msgstr "Arbeitsflächen-Clip" #: ../src/dock.c:506 msgid "All selected icons will be removed!" msgstr "Alle ausgewählten Symbole werden entfernt!" #: ../src/dock.c:556 ../src/dock.c:1050 ../src/dock.c:1052 ../src/dock.c:3210 msgid "Keep Icon" msgstr "Symbol behalten" #: ../src/dock.c:557 ../src/dock.c:1966 ../src/dock.c:2096 msgid "Type the command used to launch the application" msgstr "Geben Sie den Befehl zum Starten der Anwendung ein" #: ../src/dock.c:876 #, c-format msgid "could not launch application %s\n" msgstr "Anwendung %s konnte nicht gestartet werden\n" #: ../src/dock.c:927 msgid "could not create workspace submenu for Clip menu" msgstr "Arbeitsflächen-Untermenü für Clip konnte nicht erstellt werden" #: ../src/dock.c:982 msgid "could not create options submenu for Clip menu" msgstr "Eigenschaften-Menü für Clip konnte nicht erstellt werden" #: ../src/dock.c:986 ../src/dock.c:1027 msgid "Keep on Top" msgstr "Immer oben" #: ../src/dock.c:991 msgid "Collapsed" msgstr "Zusammengefaltet" #: ../src/dock.c:996 msgid "Autocollapse" msgstr "Automatisch zusammenfalten" #: ../src/dock.c:1001 msgid "Autoraise" msgstr "Automatisch oben" #: ../src/dock.c:1006 msgid "Autoattract Icons" msgstr "Symbole automatisch anziehen" #: ../src/dock.c:1032 msgid "Clip Options" msgstr "Clip-Optionen" #: ../src/dock.c:1041 msgid "Selected" msgstr "Ausgewählt" #: ../src/dock.c:1046 ../src/dock.c:1048 ../src/dock.c:3201 msgid "Select All Icons" msgstr "Alle Symbole auswählen" #: ../src/dock.c:1054 ../src/dock.c:1056 ../src/dock.c:3218 msgid "Move Icon To" msgstr "Verschiebe Symbol nach..." #: ../src/dock.c:1061 ../src/dock.c:1063 ../src/dock.c:3229 msgid "Remove Icon" msgstr "Entferne Symbol" #: ../src/dock.c:1065 msgid "Attract Icons" msgstr "Symbole anziehen" #: ../src/dock.c:1068 msgid "Launch" msgstr "Ausführen" #: ../src/dock.c:1076 msgid "Settings..." msgstr "Einstellungen..." #: ../src/dock.c:1405 ../src/dock.c:1505 #, c-format msgid "bad value in docked icon state info %s" msgstr "falscher Wert für Statusinfo %s des angedockten Symbols" #: ../src/dock.c:1512 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "falscher Wert für Position eines angedockten Symbols: %i,%i" #: ../src/dock.c:1531 #, c-format msgid "bad value in dock state info:%s" msgstr "falscher Wert in Dock-Statusinfo: %s" #: ../src/dock.c:1765 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "zu viele Symbole im Dock, überzählige werden ignoriert" #. icon->forced_dock = 1; #: ../src/dock.c:1965 ../src/dock.c:2095 msgid "Dock Icon" msgstr "Dock-Symbol" #: ../src/dock.c:3096 #, c-format msgid "Could not execute command \"%s\"" msgstr "Befehl \"%s\" konnte nicht ausgeführt werden" #: ../src/dock.c:3180 msgid "Toggle Omnipresent" msgstr "Haftend ein/aus" #: ../src/dock.c:3185 ../src/winmenu.c:387 ../src/winspector.c:1291 msgid "Omnipresent" msgstr "Haftend" #: ../src/dock.c:3199 msgid "Unselect All Icons" msgstr "Alle Symbole abwählen" #: ../src/dock.c:3208 msgid "Keep Icons" msgstr "Symbole behalten" #: ../src/dock.c:3216 msgid "Move Icons To" msgstr "Verschiebe Symbole nach" #: ../src/dock.c:3227 msgid "Remove Icons" msgstr "Symbole entfernen" #: ../src/dock.c:3257 msgid "Bring Here" msgstr "Hierher holen" #: ../src/dockedapp.c:135 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "Symbol %s für gedockte Anwendung konnte nicht gefunden" #: ../src/dockedapp.c:208 #, c-format msgid "Could not open specified icon file: %s" msgstr "Symboldatei %s konnte nicht geöffnet werden" #: ../src/dockedapp.c:210 msgid "Ignore" msgstr "Ignorieren" #: ../src/dockedapp.c:302 msgid "Start when Window Maker is started" msgstr "Autostart" #: ../src/dockedapp.c:307 msgid "Lock (prevent accidental removal)" msgstr "Festhalten (kein versehentliches Entfernen)" #: ../src/dockedapp.c:311 msgid "Application path and arguments" msgstr "Anwendungspfad und -argumente" #: ../src/dockedapp.c:322 msgid "Command for middle-click launch" msgstr "Befehl für Klick mit mittlerer Maustaste" #: ../src/dockedapp.c:334 #, c-format msgid "%s will be replaced with current selection" msgstr "%s wird durch die aktuelle Auswahl ersetzt" #: ../src/dockedapp.c:338 msgid "Command for files dropped with DND" msgstr "Befehl für per DND-Operationen" #: ../src/dockedapp.c:350 #, c-format msgid "%d will be replaced with the file name" msgstr "%d wird durch den Dateinamen ersetzt" #: ../src/dockedapp.c:353 msgid "DND support was not compiled in" msgstr "keine einkompilierte DND-Unterstützung" #: ../src/dockedapp.c:358 msgid "Icon Image" msgstr "Symbol" #: ../src/dockedapp.c:369 ../src/winspector.c:1429 msgid "Browse..." msgstr "Suchen..." #: ../src/dockedapp.c:427 msgid "Docked Application Settings" msgstr "Einstellungen für gedockte Anwendungen" #: ../src/framewin.c:598 ../src/framewin.c:690 ../src/menu.c:413 #: ../src/texture.c:551 #, c-format msgid "could not render texture: %s" msgstr "Textur %s konnte nicht angezeigt werden" #: ../src/framewin.c:621 ../src/framewin.c:631 ../src/framewin.c:647 #: ../src/framewin.c:658 ../src/framewin.c:665 ../src/framewin.c:672 #: ../src/icon.c:327 ../src/menu.c:440 #, c-format msgid "error rendering image:%s" msgstr "Fehler beim Anzeigen des Bildes: %s" #: ../src/framewin.c:718 #, c-format msgid "error rendering image: %s" msgstr "Fehler beim Anzeigen des Bildes: %s" #: ../src/icon.c:219 ../src/wdefaults.c:423 #, c-format msgid "error loading image file \"%s\": %s" msgstr "Fehler beim Laden der Bilddatei \"%s\": %s" #: ../src/icon.c:458 ../src/icon.c:467 #, c-format msgid "could not create directory %s" msgstr "Vezeichnis %s konnte nicht erstellt werden" #: ../src/icon.c:699 #, c-format msgid "could not find default icon \"%s\"" msgstr "Standardsymbol \"%s\" konnte nicht gefunden werden" #: ../src/icon.c:705 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "Standardsymbol \"%s\" (%s) konnte nicht geöffnet werden" #: ../src/main.c:301 msgid "failed to restart Window Maker." msgstr "Window Maker-Neustart schlug fehl" #: ../src/main.c:304 #, c-format msgid "could not exec %s" msgstr "%s konnte nicht ausgeführt werden" #: ../src/main.c:342 msgid "Could not execute command: " msgstr "Befehl konnte nicht ausgeführt werden: " #: ../src/main.c:414 #, c-format msgid "%s aborted.\n" msgstr "%s wurde abgebrochen.\n" #: ../src/main.c:423 #, c-format msgid "Usage: %s [options]\n" msgstr "Benutzung: %s [Optionen]\n" #: ../src/main.c:424 msgid "The Window Maker window manager for the X window system" msgstr "Der Window Maker-Windowmanager für das X-Window System" #: ../src/main.c:426 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tverwendetes Display" #: ../src/main.c:428 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tkein Präprozessieren der Konfigurationsdateien" #: ../src/main.c:430 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tAnwendungsdock nicht öffnen" #: ../src/main.c:431 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tArbeitsflächen-Clip nicht öffnen" #: ../src/main.c:432 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tkein Autostart von Anwendungen" #: ../src/main.c:433 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\t\tgespeicherte Sitzung nicht wiederherstellen" #: ../src/main.c:435 msgid " --locale locale\tlocale to use" msgstr " --locale locale\tzu benutzende Lokalisierung" #: ../src/main.c:437 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" " --create-stdcmap\terstelle Hinweise für Standardfarben-Tabelle mit " "Pseudofarben" #: ../src/main.c:438 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tID des zu benutzenden Visuals" #: ../src/main.c:439 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\tKonfiguration nicht ändern oder speichern" #: ../src/main.c:441 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tsnychronen Display-Modus einschalten" #: ../src/main.c:443 msgid " --version\t\tprint version and exit" msgstr " --version\t\tVersion anzeigen und beenden" #: ../src/main.c:444 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tdiese Nachricht anzeigen" #: ../src/main.c:455 #, 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-Verzeichnis (%s) konnte nicht gefunden werden.\n" "Stellen Sie sicher, dass sie Window Maker korrekt installiert und wmaker." "inst aufgerufen haben" #: ../src/main.c:459 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "GNUstep-Verzeichnis (%s) konnte nicht gefunden werden." #: ../src/main.c:462 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "Während der Erstellung der GNUstep-Verzeichnisses ist ein Fehler " "aufgetreten, Stellen Sie sicher, dass sie Window Maker korrekt installiert " "und wmaker.inst aufgerufen haben" #: ../src/main.c:465 #, c-format msgid "%s directory created with default configuration." msgstr "Verzeichnis %s wurde mit Standardkonfiguration erstellt" #: ../src/main.c:483 msgid "" "could not initialise an inotify instance. Changes to the defaults database " "will require a restart to take effect. Check your kernel!" msgstr "" #: ../src/main.c:494 #, c-format msgid "" "could not add an inotify watch on path\n" ".%s\n" "Changes to the defaults database will require a restart to take effect." msgstr "" #: ../src/main.c:516 ../src/main.c:521 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:Initialisierungsskript konnte nicht ausgeführt werden" #: ../src/main.c:541 ../src/main.c:546 #, c-format msgid "%s:could not execute exit script" msgstr "%s: Beendigungsskript konnte nicht ausgeführt werden" #: ../src/main.c:621 ../src/main.c:709 ../src/main.c:716 ../src/main.c:723 #, c-format msgid "too few arguments for %s" msgstr "zuwenig Argumente für %s" #: ../src/main.c:727 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "falscher Wert für Visual-ID: \"%s\"" #: ../src/main.c:736 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: falsches Argument '%s'\n" #: ../src/main.c:737 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Versuchen Sie '%s --help' für mehr Informationen\n" #: ../src/main.c:770 msgid "X server does not support locale" msgstr "X-Server unterstützt gewählte Lokalisierung nicht" #: ../src/main.c:774 msgid "cannot set locale modifiers" msgstr "Lokalisierungs-Modifikator konnte nicht gesetzt werden" #: ../src/main.c:790 #, c-format msgid "could not open display \"%s\"" msgstr "Display \"%s\" konnte nicht geöffnet werden" #: ../src/menu.c:1177 msgid "could not grab keyboard" msgstr "Tastatur konnte nicht abfangen werden" #: ../src/menu.c:2389 #, fuzzy, c-format msgid "bad value in menus state info: %s" msgstr "falsche Werte in Menü-Statusinfo: %s" #: ../src/misc.c:62 #, c-format msgid "could not define value for %s for cpp" msgstr "Wert des Symbols %s für cpp konnte nicht definiert werden" #: ../src/misc.c:87 #, c-format msgid "could not get password entry for UID %i" msgstr "Passworteintrag für UID %i konnte nicht ermittelt werden" #: ../src/misc.c:111 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "Ihr System ist falsch konfiguriert. HOSTNAME wird auf %s gesetzt." #: ../src/misc.c:116 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "Ihr System ist falsch konfiguriert. HOST wird auf %s gesetzt." #: ../src/misc.c:598 ../src/misc.c:603 msgid "Program Arguments" msgstr "Programmargumente" #: ../src/misc.c:599 ../src/misc.c:604 msgid "Enter command arguments:" msgstr "Programmargumente eintragen" #: ../src/misc.c:648 ../src/misc.c:785 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "zuwenig Speicher bei der Expansion von \"%s\"" #: ../src/misc.c:701 msgid "out of memory during expansion of \"%w\"" msgstr "zuwenig Speicher bei der Expansion von \"%w\"" #: ../src/misc.c:718 msgid "out of memory during expansion of \"%W\"" msgstr "zuwenig Speicher bei der Expansion von \"%W\"" #: ../src/misc.c:735 #, c-format msgid "out of memory during expansion of \"%a\"" msgstr "zuwenig Speicher bei der Expansion von \"%a\"" #: ../src/misc.c:764 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "zuwenig Speicher bei der Expansion von \"%d\"" #: ../src/misc.c:778 msgid "selection not available" msgstr "keine Auswahl verfügbar" #: ../src/misc.c:820 ../src/misc.c:826 #, c-format msgid "bad window name value in %s state info" msgstr "falscher Fenstername in Statusinfo von %s" #: ../src/misc.c:1054 msgid "could not send message to background image helper" msgstr "Nachricht an Hintergrundbild-Anwendung konnte nicht gesendet werden" #: ../src/resources.c:42 #, c-format msgid "could not parse color \"%s\"" msgstr "Farbe \"%s\" konnte nicht geparst werden" #: ../src/resources.c:46 #, c-format msgid "could not allocate color \"%s\"" msgstr "Farbe \"%s\" konnte nicht erzeugt werden" #: ../src/rootmenu.c:185 ../src/rootmenu.c:186 msgid "Exit" msgstr "Beenden" #: ../src/rootmenu.c:186 msgid "Exit window manager?" msgstr "Windowmanager beenden?" #: ../src/rootmenu.c:231 msgid "Kill X session" msgstr "Töte X-Sitzung" #: ../src/rootmenu.c:232 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Windowsystem-Sitzung töten?\n" "(alle Anwendungen werden geschlossen)" #: ../src/rootmenu.c:460 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s: ungültiges Tastaturkürzel \"%s\" für Eintrag %s" #: ../src/rootmenu.c:468 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s: ungültige Taste in Kürzel \"%s\" für Eintrag %s" #: ../src/rootmenu.c:521 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: fehlendes \" in Menüdatei" #: ../src/rootmenu.c:570 #, c-format msgid "%s: missing command" msgstr "%s: fehlender Befehl" #: ../src/rootmenu.c:600 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "ungültige OPEN_MENU-Beschreibung: %s" #: ../src/rootmenu.c:649 #, c-format msgid "%s:could not stat menu" msgstr "%s: Menü konnte nicht erzeugt werden" #: ../src/rootmenu.c:657 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s: Menü konnte nicht erzeugt werden: %s" #: ../src/rootmenu.c:673 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "zuviele Parameter in OPEN_MENU: %s" #: ../src/rootmenu.c:714 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Im Anwendungsmenü ist mehr als ein WORKSPACE_MENU-Eintrag, aber nur einer " "ist erlaubt." #: ../src/rootmenu.c:745 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "Im Anwendungsmenü ist mehr als ein WINDOWS_MENU-Eintrag, aber nur einer ist " "erlaubt." #: ../src/rootmenu.c:750 msgid "Window List" msgstr "Fenster-Liste" #: ../src/rootmenu.c:777 ../src/rootmenu.c:794 ../src/rootmenu.c:802 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s: fehlender Parameter für Menübefehl \"%s\"" #: ../src/rootmenu.c:866 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s: unbekannter Befehl \"%s\" in Menükonfiguration" #: ../src/rootmenu.c:873 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s: Tastaturkürzel für Eintrag \"%s\" kann nicht hinzugefügt werden" #: ../src/rootmenu.c:1015 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s: überlange Zeilen in Menükonfiguration: %s" #: ../src/rootmenu.c:1036 ../src/rootmenu.c:1121 ../src/rootmenu.c:1218 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s: fehlender Befehl in Menükonfiguration: %s" #: ../src/rootmenu.c:1063 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s: Syntaxfehler in Menüdatei: END-Schlüsselwort fehlt." #: ../src/rootmenu.c:1089 ../src/rootmenu.c:1184 msgid "could not make arguments for menu file preprocessor" msgstr "Argumente für Menüdatei-Präprozessort konnten nicht gesetzt werden" #: ../src/rootmenu.c:1095 ../src/rootmenu.c:1191 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s: Menüdatei konnte nicht geöffnet/bearbeitet werden" #: ../src/rootmenu.c:1106 ../src/rootmenu.c:1203 #, c-format msgid "%s:could not open menu file" msgstr "%s: Menüdatei konnte nicht geöffnet werden" #: ../src/rootmenu.c:1132 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s: ungültige Menüdatei: MENU-Befehl fehlt" #: ../src/rootmenu.c:1140 msgid "error reading preprocessed menu data" msgstr "Fehler beim Lesen der aufbereiteten Menüdaten" #: ../src/rootmenu.c:1229 #, c-format msgid "%s:no title given for the root menu" msgstr "%s: kein Titel für das Stammenü" #: ../src/rootmenu.c:1310 ../src/rootmenu.c:1382 ../src/rootmenu.c:1421 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "zuwenig Speicher beim Erstellen des Verzeichnismenüs %s" #: ../src/rootmenu.c:1319 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s: Datei \"%s\" in Menü-Verzeichnis konnte nicht erstellt werden" #: ../src/rootmenu.c:1471 msgid "Commands" msgstr "Befehle" #: ../src/rootmenu.c:1474 msgid "Restart" msgstr "Neustart" #: ../src/rootmenu.c:1475 msgid "Exit..." msgstr "Beenden..." #: ../src/rootmenu.c:1514 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "Menüdatei \"%s\" aus WMRootMenu konnte nicht gefunden werden" #: ../src/rootmenu.c:1520 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "auf Menüdatei \"%s\" aus WMRootMenu konnte nicht zugegriffen werden" #: ../src/rootmenu.c:1532 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "Standard-Menüdatei \"%s\" aus WMRootMenu konnte nicht gefunden werden " #: ../src/rootmenu.c:1555 ../src/rootmenu.c:1629 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s: Formatierungsfehler in Stammenü-Konfiguration \"%s\"" #: ../src/rootmenu.c:1706 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Das Anwendungsmenü konnte nicht geladen werden. Für detaillierte " "Fehlerbeschreibungen bitte die Konsolenausgabe ansehen." #: ../src/screen.c:644 #, c-format msgid "could not initialize graphics library context: %s" msgstr "Kontext der Grafikbibliothek konnte nicht initialisiert werden: %s" #: ../src/screen.c:670 msgid "could not initialize WINGs widget set" msgstr "WINGs-Widgets konnten nicht initialisiert werden" #: ../src/screen.c:971 #, c-format msgid "could not save session state in %s" msgstr "Sitzung konnte nicht in %s gespeichert werden" #: ../src/session.c:152 ../src/wdefaults.c:559 ../src/winspector.c:413 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "\"%s\" konnte nicht in Boolean konvertiert werden" #: ../src/stacking.c:76 msgid "could not get window list!!" msgstr "Konnte Fensterliste nicht erstellen!" #: ../src/startup.c:183 #, c-format msgid "internal X error: %s\n" msgstr "interner X-Fehler %s\n" #: ../src/startup.c:680 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "" "Symbolgröße ist eingestellt auf %i, dieser Wert ist zu klein. Neue Größe ist " "16\n" #: ../src/startup.c:707 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "XKB wird nicht unterstützt. KbdModeLock wird ausgeschaltet" #: ../src/startup.c:726 msgid "it seems that there is already a window manager running" msgstr "Es sieht aus, als ob schon ein anderer Windowmanager liefe." #: ../src/startup.c:732 #, c-format msgid "could not manage screen %i" msgstr "Konnte Bildschirm %i nicht ansprechen" #: ../src/startup.c:789 msgid "could not manage any screen" msgstr "kein Bildschirm konnte angesprochen werden" #: ../src/switchmenu.c:132 msgid "Windows" msgstr "Fenster" #: ../src/texture.c:303 ../src/texture.c:341 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "als Textur benutztes Bild \"%s\" konnte nicht gefunden werden" #: ../src/texture.c:308 ../src/texture.c:346 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "Textur-Pixmap \"%s\" konnte nicht gefunden werden: %s" #: ../src/texture.c:403 #, c-format msgid "library \"%s\" cound not be opened." msgstr "Bibliothek \"%s\" konnte nicht geöffnet werden." #: ../src/texture.c:412 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "Funktion \"%s\" ist nicht in Bibliothek \"%s\" enthalten" #: ../src/texture.c:419 msgid "function textures not supported on this system, sorry." msgstr "Funktionstexturen werden von diesem System nicht unterstützt" #: ../src/texture.c:555 msgid "could not allocate image buffer" msgstr "Bildpuffer konnte nicht erstellt werden" #: ../src/wdefaults.c:417 #, c-format msgid "could not find icon file \"%s\"" msgstr "Symboldatei \"%s\" konnte nicht gefunden werden" #: ../src/window.c:2774 ../src/window.c:2927 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 "" "Es scheint, dass NumLock, ScrollLock oder ähnliche Tasten aktiviert sind.\n" "Schalten Sie diese aus, da sonst einige Mausaktionen oder Tastaturkürzel " "nicht funktionieren." #: ../src/winmenu.c:121 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Applikation wird getötet,\n" "dabei gehen alle ungespeicherten Daten verloren.\n" "Bitte bestätigen." #: ../src/winmenu.c:252 ../src/winmenu.c:261 msgid "Set Shortcut" msgstr "Setze Kürzel" #: ../src/winmenu.c:335 ../src/winmenu.c:375 msgid "could not create submenu for window menu" msgstr "Untermenü für Fenstermenü konnte nicht erstellt werden" #: ../src/winmenu.c:379 msgid "Keep on top" msgstr "Immer oben" #: ../src/winmenu.c:383 msgid "Keep at bottom" msgstr "Immer unten" #. #. * 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:407 ../src/winmenu.c:536 msgid "Maximize" msgstr "Maximieren" #: ../src/winmenu.c:415 ../src/winmenu.c:520 msgid "Miniaturize" msgstr "Minimieren" #: ../src/winmenu.c:423 ../src/winmenu.c:554 msgid "Shade" msgstr "Aufrollen" #: ../src/winmenu.c:439 msgid "Resize/Move" msgstr "Größe/ Position ändern" #: ../src/winmenu.c:447 msgid "Select" msgstr "Auswählen" #: ../src/winmenu.c:455 msgid "Move To" msgstr "Bewegen nach..." #: ../src/winmenu.c:460 msgid "Attributes..." msgstr "Eigenschaften" #: ../src/winmenu.c:462 msgid "Options" msgstr "Optionen" #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/winmenu.c:470 msgid "Close" msgstr "Schließen" #: ../src/winmenu.c:514 msgid "Deminiaturize" msgstr "Wiederherstellen" #: ../src/winmenu.c:530 msgid "Unmaximize" msgstr "Ursprüngliche Größe" #: ../src/winmenu.c:548 msgid "Unshade" msgstr "Abrollen" #: ../src/winspector.c:353 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Symbol \"%s\" für dieses Fenster konnte nicht gefunden werden" #: ../src/winspector.c:368 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Symbol \"%s\" konnte nicht geöffnet werden: %s" #: ../src/winspector.c:1056 #, c-format msgid "Inspecting %s.%s" msgstr "Untersuchen von %s.%s" #: ../src/winspector.c:1079 msgid "Click in the window you wish to inspect." msgstr "Klicken Sie auf das Fenster, das untersucht werden soll." #: ../src/winspector.c:1111 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "Beim Speichern wirkt sich diese\n" "Konfiguration auf alle Fenster aus,\n" "deren WM_CLASS-Eigenschaft den\n" "obigen Wert hat." #: ../src/winspector.c:1136 msgid "Save" msgstr "Speichern" #: ../src/winspector.c:1144 msgid "Apply" msgstr "Anwenden" #: ../src/winspector.c:1150 msgid "Reload" msgstr "Neu laden" #: ../src/winspector.c:1159 ../src/winspector.c:1169 msgid "Window Specification" msgstr "Fensterbeschreibung" #: ../src/winspector.c:1160 msgid "Window Attributes" msgstr "Fenstereigenschaften" #: ../src/winspector.c:1161 msgid "Advanced Options" msgstr "Erweiterte Optionen" #: ../src/winspector.c:1162 msgid "Icon and Initial Workspace" msgstr "Symbol und Start-Arbeitsfläche" #: ../src/winspector.c:1163 msgid "Application Specific" msgstr "Anwendungsspezifisches" #: ../src/winspector.c:1176 msgid "Defaults for all windows" msgstr "Standards für alle Fenster" #: ../src/winspector.c:1229 msgid "Select window" msgstr "Fenster auswählen" #: ../src/winspector.c:1242 msgid "Attributes" msgstr "Eigenschaften" #: ../src/winspector.c:1253 msgid "Disable titlebar" msgstr "Keine Titelleiste" #: ../src/winspector.c:1255 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Entfernen der Titelleiste für dieses Fenster.\n" "Für das Fenstermenü drücken Sie bitte Strg+Esc\n" "bzw. die von Ihnen eingestellte Tastenkombination." #: ../src/winspector.c:1261 msgid "Disable resizebar" msgstr "Keine Leiste für Größenänderung" #: ../src/winspector.c:1263 msgid "Remove the resizebar of this window." msgstr "Entfernen der Leiste zum Ändern der Größe bei diesem Fenster." #: ../src/winspector.c:1266 msgid "Disable close button" msgstr "Keine Schließen-Schaltfläche" #: ../src/winspector.c:1268 msgid "Remove the `close window' button of this window." msgstr "Entfernen der 'Fenster schließen'-Schaltfläche für dieses Fensters" #: ../src/winspector.c:1271 msgid "Disable miniaturize button" msgstr "Keine Minimieren-Schaltfläche" #: ../src/winspector.c:1273 msgid "Remove the `miniaturize window' button of the window." msgstr "Entfernen der 'Fenster minimieren'-Schaltfläche für dieses Fenster" #: ../src/winspector.c:1276 msgid "Disable border" msgstr "Kein Rand" #: ../src/winspector.c:1278 msgid "Remove the 1 pixel black border around the window." msgstr "Entfernen des einen Pixel breiten schwarzen Randes um das Fenster." #: ../src/winspector.c:1281 msgid "Keep on top (floating)" msgstr "Immer oben" #: ../src/winspector.c:1283 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "" "Dieses Fenster immer oben halten, sodass es nicht\n" "von anderen Fenstern verdeckt wird" #: ../src/winspector.c:1286 msgid "Keep at bottom (sunken)" msgstr "Immer unten" #: ../src/winspector.c:1288 msgid "Keep the window under all other windows." msgstr "Dieses Fenster unter allen anderen Fenster platzieren" #: ../src/winspector.c:1293 msgid "Make window present in all workspaces." msgstr "Dieses Fenster auf allen Arbeitsflächen sichtbar machen" #: ../src/winspector.c:1296 msgid "Start miniaturized" msgstr "Minimiert starten" #: ../src/winspector.c:1298 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "Dieses Fenster beim Start automatisch minimieren" #: ../src/winspector.c:1301 msgid "Start maximized" msgstr "Maximiert starten" #: ../src/winspector.c:1303 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "Dieses Fenster beim Start automatisch maximieren" #: ../src/winspector.c:1306 msgid "Full screen maximization" msgstr "Vollbild-Maximierung" #: ../src/winspector.c:1308 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Dieses Fenster beim Maximieren über den ganzen Bildschirm\n" "ausdehnen, Titel- und Größenleiste befinden sich dann außerhalb\n" "des Bildschirms." #: ../src/winspector.c:1324 msgid "Advanced" msgstr "Erweitert" #: ../src/winspector.c:1341 msgid "Do not bind keyboard shortcuts" msgstr "Keine Tastatur-Kürzel abfangen" #: ../src/winspector.c:1343 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Keine globalen Window Maker-Tastaturkürzel abfangen,\n" "wenn dieses Fenster maximiert ist. Dadurch erhält dieses\n" "Fenster alle Tastendrücke." #: ../src/winspector.c:1349 msgid "Do not bind mouse clicks" msgstr "Kein Mausklicks abfangen" #: ../src/winspector.c:1351 #, fuzzy msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you have\n" "configured)." msgstr "" "Für dieses Fenster keine Mausaktionen abfangen,\n" "zum Beispiel Alt+Ziehen." #: ../src/winspector.c:1355 msgid "Do not show in the window list" msgstr "Nicht in der Fensterliste zeigen" #: ../src/winspector.c:1357 msgid "Do not list the window in the window list menu." msgstr "Dieses Fenster nicht in der Fensterliste aufführen." #: ../src/winspector.c:1360 msgid "Do not let it take focus" msgstr "Keinen Fokus erlauben" #: ../src/winspector.c:1362 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "Diesem Fenster beim Klick nicht den Tastaturfokus geben." #: ../src/winspector.c:1365 msgid "Keep inside screen" msgstr "Immer innerhalb des Bildschirmes" #: ../src/winspector.c:1367 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Diesem Fenster nicht erlauben, ganz aus dem Bildschirm\n" "bewegt zu werden.\n" #: ../src/winspector.c:1371 msgid "Ignore 'Hide Others'" msgstr "Ignoriere 'Andere verstecken'" #: ../src/winspector.c:1373 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "Beim 'Andere verstecken'-Befehl dieses Fenster auslassen." #: ../src/winspector.c:1376 msgid "Ignore 'Save Session'" msgstr "'Sitzung speichern' ignorieren" #: ../src/winspector.c:1378 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Die Anwendung dieses Fensters nicht nicht\n" "im Sitzungszustand speichern, sodass sie beim\n" "Start von Window Maker nicht gestartet wird." #: ../src/winspector.c:1383 msgid "Emulate application icon" msgstr "Anwendungssymbol ignorieren" #: ../src/winspector.c:1385 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "" "Dieses Fenster so verhalten lassen, als wenn\n" "es genügend Informationen für eine dockbare\n" "Anwendung an Window Maker liefern würde." #: ../src/winspector.c:1390 msgid "Don't focus across workspaces" msgstr "Kein Arbeitsflächenwechsel bei Fokus" #: ../src/winspector.c:1392 msgid "" "Do not allow Window Maker to switch workspace to satisfy\n" "a focus request (useful e.g. in the case of a multiple-tab\n" "firefox opening in a different workspace)." msgstr "Window Maker nicht erlauben, die Arbeitsfläche zu wechseln,\n" "um einen Fokus Anforderung zu erfüllen (nützlich z.B. beim Öffnen\n" "einer Firefox Anwendung mit mehreren Tabs in einer anderer Arbeitfläche)." #: ../src/winspector.c:1398 msgid "Disable language button" msgstr "Keine Sprachen-Schaltfläche" #: ../src/winspector.c:1400 msgid "Remove the `toggle language' button of the window." msgstr "Entfern der 'Wechsle Sprache'-Schaltfläche bei diesem Fenster" #: ../src/winspector.c:1417 msgid "Miniwindow Image" msgstr "Minifenster-Bild" #: ../src/winspector.c:1444 msgid "Icon filename:" msgstr "Symboldateiname" #: ../src/winspector.c:1455 msgid "Ignore client supplied icon" msgstr "Ignoriere zur Verfügung gestelltes Symbol" #: ../src/winspector.c:1461 msgid "Initial Workspace" msgstr "Start-Arbeitsfläche" #: ../src/winspector.c:1463 msgid "The workspace to place the window when it'sfirst shown." msgstr "Die Arbeitsfläche, auf dem das Fenster beim Start erscheinen soll" #: ../src/winspector.c:1469 msgid "Nowhere in particular" msgstr "Keine Angabe" #: ../src/winspector.c:1486 msgid "Application Attributes" msgstr "Anwendungseigenschaften" #: ../src/winspector.c:1497 msgid "Start hidden" msgstr "Versteckt starten" #: ../src/winspector.c:1499 msgid "Automatically hide application when it's started." msgstr "Anwendung beim Start automatisch verstecken" #: ../src/winspector.c:1502 msgid "No application icon" msgstr "Kein Anwendungssymbol" #: ../src/winspector.c:1504 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Ausstellen des Anwendungssymbols für diese Anwendung.\n" "Beachten Sie, dass sich diese Anwendung dann nicht mehr\n" "docken lässt und bereits gedockte Symbole nicht mehr korrekt\n" "arbeiten." #: ../src/winspector.c:1510 msgid "Shared application icon" msgstr "Geteiltes Anwendungssymbol" #: ../src/winspector.c:1512 msgid "" "Use a single shared application icon for all of\n" "the instances of this application.\n" msgstr "" "Für alle Instanzen dieser Anwendung ein\n" "einziges Anwendungssymbol verwenden.\n" #: ../src/workspace.c:97 ../src/workspace.c:98 ../src/workspace.c:682 #, c-format msgid "Workspace %i" msgstr "Arbeitsfläche: %i" #: ../src/workspace.c:726 msgid "Workspaces" msgstr "Arbeitsflächen" #: ../src/workspace.c:728 msgid "could not create Workspace menu" msgstr "Arbeitsflächenmenü konnte nicht erstellt werden" #: ../src/workspace.c:735 msgid "New" msgstr "Neu" #: ../src/workspace.c:736 msgid "Destroy Last" msgstr "Letzten zerstören" WindowMaker-0.95.5/test/0000755000175000017500000000000012214434646012027 500000000000000WindowMaker-0.95.5/test/Makefile.in0000644000175000017500000003504612214434561014020 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = wtest$(EXEEXT) subdir = test DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_wtest_OBJECTS = wtest.$(OBJEXT) wtest_OBJECTS = $(am_wtest_OBJECTS) wtest_DEPENDENCIES = $(top_builddir)/wmlib/libWMaker.la AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(wtest_SOURCES) DIST_SOURCES = $(wtest_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ AUTOMAKE_OPTIONS = no-dependencies EXTRA_DIST = notest.c wtest_SOURCES = wtest.c wtest_LDADD = $(top_builddir)/wmlib/libWMaker.la @XLFLAGS@ @XLIBS@ AM_CPPFLAGS = -g -D_BSD_SOURCE @XCFLAGS@ -I$(top_srcdir)/wmlib all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list wtest$(EXEEXT): $(wtest_OBJECTS) $(wtest_DEPENDENCIES) @rm -f wtest$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wtest_OBJECTS) $(wtest_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c .c.o: $(AM_V_CC) @AM_BACKSLASH@ $(COMPILE) -c $< .c.obj: $(AM_V_CC) @AM_BACKSLASH@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: $(AM_V_CC) @AM_BACKSLASH@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # 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. .NOEXPORT: WindowMaker-0.95.5/test/notest.c0000644000175000017500000000574212214432632013430 00000000000000/* quick and dirty test application that demonstrates: Notify grabbing * * TODO: remake */ #include #include #include #include #include Display *dpy; Window leader; WMAppContext *app; Atom delete_win; Atom prots[6]; XWMHints *hints; WMMenu *menu; static void quit(void *foo, int item, Time time) { exit(0); } static void hide(void *foo, int item, Time time) { WMHideApplication(app); } int notify_print(int id, XEvent * event, void *data) { printf("Got notification 0x%x, window 0x%lx, data '%s'\n", id, event->xclient.data.l[1], (char *)data); return True; } static void newwin(void *foo, int item, Time time) { Window win; XClassHint classhint; char title[100]; win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 0, 0, 200, 100, 0, 0, 0); prots[0] = delete_win; XSetWMProtocols(dpy, win, prots, 1); sprintf(title, "Notify Test Window"); XStoreName(dpy, win, title); /* set class hint */ classhint.res_name = "notest"; classhint.res_class = "Notest"; XSetClassHint(dpy, win, &classhint); hints = XAllocWMHints(); /* set window group leader */ hints->window_group = leader; hints->flags = WindowGroupHint; XSetWMHints(dpy, win, hints); WMAppAddWindow(app, win); XMapWindow(dpy, win); } int main(int argc, char **argv) { XClassHint classhint; dpy = XOpenDisplay(""); if (!dpy) { puts("could not open display!"); exit(1); } delete_win = XInternAtom(dpy, "WM_DELETE_WINDOW", False); leader = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 10, 10, 10, 10, 0, 0, 0); /* set class hint */ classhint.res_name = "notest"; classhint.res_class = "Notest"; XSetClassHint(dpy, leader, &classhint); /* set window group leader to self */ hints = XAllocWMHints(); hints->window_group = leader; hints->flags = WindowGroupHint; XSetWMHints(dpy, leader, hints); /* create app context */ app = WMAppCreateWithMain(dpy, DefaultScreen(dpy), leader); menu = WMMenuCreate(app, "Notify Test Menu"); WMMenuAddItem(menu, "Hide", (WMMenuAction) hide, NULL, NULL, NULL); WMMenuAddItem(menu, "Quit", (WMMenuAction) quit, NULL, NULL, NULL); WMAppSetMainMenu(app, menu); WMRealizeMenus(app); /* Get some WindowMaker notifications */ WMNotifySet(app, WMN_APP_START, notify_print, (void *)"App start"); WMNotifySet(app, WMN_APP_EXIT, notify_print, (void *)"App end"); WMNotifySet(app, WMN_WIN_FOCUS, notify_print, (void *)"Focus in"); WMNotifySet(app, WMN_WIN_UNFOCUS, notify_print, (void *)"Focus out"); WMNotifySet(app, WMN_NOTIFY_ALL, notify_print, (void *)"Unknown type"); WMNotifyMaskUpdate(app); /* Mask isn't actually set till we do this */ /* set command to use to startup this */ XSetCommand(dpy, leader, argv, argc); /* create first window */ newwin(NULL, 0, 0); XFlush(dpy); while (1) { XEvent ev; XNextEvent(dpy, &ev); if (ev.type == ClientMessage) { if (ev.xclient.data.l[0] == delete_win) { XDestroyWindow(dpy, ev.xclient.window); break; } } WMProcessEvent(app, &ev); } exit(0); } WindowMaker-0.95.5/test/Makefile.am0000644000175000017500000000045312214432632013776 00000000000000## Process this file with automake to produce Makefile.in AUTOMAKE_OPTIONS = no-dependencies EXTRA_DIST = notest.c noinst_PROGRAMS = wtest wtest_SOURCES = wtest.c wtest_LDADD = $(top_builddir)/wmlib/libWMaker.la @XLFLAGS@ @XLIBS@ AM_CPPFLAGS = -g -D_BSD_SOURCE @XCFLAGS@ -I$(top_srcdir)/wmlib WindowMaker-0.95.5/test/wtest.c0000644000175000017500000001024712214432632013256 00000000000000/* quick and dirty test application that demonstrates: application hiding, * application defined titlebar button images, application defined * titlebar button actions, application menus, docking and * window manager commands * * Note that the windows don't have a window command menu. * * TODO: remake */ #include #include #include #include #include #include static char bits[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; static char mbits[] = { 0xff, 0x03, 0xff, 0x01, 0xff, 0x00, 0x7f, 0x00, 0x3f, 0x00, 0x1f, 0x00, 0x0f, 0x00, 0x07, 0x00, 0x03, 0x00, 0x01, 0x00 }; Display *dpy; Window leader; WMAppContext *app; static void callback(void *foo, int item, Time time) { printf("pushed item %i\n", item); } static void quit(void *foo, int item, Time time) { exit(0); } static void hide(void *foo, int item, Time time) { WMHideApplication(app); } Atom delete_win, miniaturize_win; Atom prots[6]; GNUstepWMAttributes attr; XWMHints *hints; WMMenu *menu; WMMenu *submenu; int wincount = 0; static void newwin(void *foo, int item, Time time) { Window win; XClassHint classhint; char title[100]; wincount++; win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 10 * wincount, 10 * wincount, 200, 100, 0, 0, 0); prots[0] = delete_win; prots[1] = miniaturize_win; XSetWMProtocols(dpy, win, prots, 2); sprintf(title, "Test Window %i", wincount); XStoreName(dpy, win, title); /* set class hint */ classhint.res_name = "test"; classhint.res_class = "Test"; XSetClassHint(dpy, win, &classhint); /* set WindowMaker hints */ attr.flags = GSMiniaturizePixmapAttr | GSMiniaturizeMaskAttr; attr.miniaturize_pixmap = XCreateBitmapFromData(dpy, DefaultRootWindow(dpy), bits, 10, 10); attr.miniaturize_mask = XCreateBitmapFromData(dpy, DefaultRootWindow(dpy), mbits, 10, 10); /* attr.flags |= GSWindowStyleAttr; attr.window_style = NSTitledWindowMask|NSClosableWindowMask; */ WMSetWindowAttributes(dpy, win, &attr); hints = XAllocWMHints(); /* set window group leader */ hints->window_group = leader; hints->flags = WindowGroupHint; XSetWMHints(dpy, win, hints); WMAppAddWindow(app, win); XMapWindow(dpy, win); } int main(int argc, char **argv) { XClassHint classhint; dpy = XOpenDisplay(""); if (!dpy) { puts("could not open display!"); exit(1); } delete_win = XInternAtom(dpy, "WM_DELETE_WINDOW", False); miniaturize_win = XInternAtom(dpy, "_GNUSTEP_WM_MINIATURIZE_WINDOW", False); leader = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 10, 10, 10, 10, 0, 0, 0); /* set class hint */ classhint.res_name = "test"; classhint.res_class = "Test"; XSetClassHint(dpy, leader, &classhint); /* set window group leader to self */ hints = XAllocWMHints(); hints->window_group = leader; hints->flags = WindowGroupHint; XSetWMHints(dpy, leader, hints); /* create app context */ app = WMAppCreateWithMain(dpy, DefaultScreen(dpy), leader); menu = WMMenuCreate(app, "Test Menu"); submenu = WMMenuCreate(app, "File"); WMMenuAddSubmenu(menu, "File", submenu); WMMenuAddItem(menu, "Hide", (WMMenuAction) hide, NULL, NULL, NULL); WMMenuAddItem(menu, "Quit", (WMMenuAction) quit, NULL, NULL, NULL); WMMenuAddItem(submenu, "New", (WMMenuAction) newwin, NULL, NULL, NULL); WMMenuAddItem(submenu, "Open", (WMMenuAction) callback, NULL, NULL, NULL); WMMenuAddItem(submenu, "Save", (WMMenuAction) callback, NULL, NULL, NULL); WMMenuAddItem(submenu, "Save As...", (WMMenuAction) callback, NULL, NULL, NULL); WMAppSetMainMenu(app, menu); WMRealizeMenus(app); /* set command to use to startup this */ XSetCommand(dpy, leader, argv, argc); /* create first window */ newwin(NULL, 0, 0); XFlush(dpy); puts("Run xprop on the test window to see the properties defined"); while (wincount > 0) { XEvent ev; XNextEvent(dpy, &ev); if (ev.type == ClientMessage) { if (ev.xclient.data.l[0] == delete_win) { XDestroyWindow(dpy, ev.xclient.window); wincount--; } else if (ev.xclient.data.l[0] == miniaturize_win) { puts("You've pushed the maximize window button"); } } WMProcessEvent(app, &ev); } exit(0); } WindowMaker-0.95.5/WindowMaker/0000755000175000017500000000000012214434643013274 500000000000000WindowMaker-0.95.5/WindowMaker/plmenu.fr0000644000175000017500000001141212214432632015040 00000000000000("Applications", ("Informations", ("Panneau d'informations", INFO_PANEL), ("Panneau d'informations légales", LEGAL_PANEL), ("Console système", EXEC, "xconsole"), ("Charge système", SHEXEC, "xosview || xload"), ("Liste des processus", EXEC, "xterm -e top"), ("Butineur d'aide", EXEC, "xman") ), ("Démarrer...", SHEXEC, "%a(Démarrer,Tapez une commande à démarrer:)"), ("Terminal X", EXEC, "xterm -sb"), ("Rxvt", EXEC, "rxvt -bg black -fg white -fn fixed"), ("Bureau", WORKSPACE_MENU), ("Applications", ("Graphismes", ("Gimp", SHEXEC, "gimp >/dev/null"), ("XV", EXEC, "xv"), ("XPaint", EXEC, "xpaint"), ("XFig", EXEC, "xfig") ), ("Xfm", EXEC, "xfm"), ("OffiX Files", EXEC, "files"), ("LyX", EXEC , "lyx"), ("Netscape", EXEC, "netscape"), ("Ghostview", EXEC, "ghostview %a(Entrez un fichier)"), ("Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(Acrobat,Entrez un fichier PDF)"), ("TkDesk", EXEC, "tkdesk") ), ("Editeurs", ("XFte", EXEC, "xfte"), ("XEmacs", SHEXEC, "xemacs || emacs"), ("XJed", EXEC, "xjed"), ("NEdit", EXEC, "nedit"), ("Xedit", EXEC, "xedit"), ("VI", EXEC, "xterm -e vi") ), ("Divers", ("Xmcd", SHEXEC, "xmcd 2> /dev/null"), ("Xplaycd", EXEC, "xplaycd"), ("Xmixer", EXEC, "xmixer") ), ("Utilitaires", ("Calculatrice", EXEC, "xcalc"), ("Propriétés de la fenêtre", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -"), ("Sélecteur de polices", EXEC, "xfontsel"), ("Emulateur de terminal", EXEC, "xminicom"), ("Loupe", EXEC, "xmag"), ("Carte des couleurs", EXEC, "xcmap"), ("XKill", EXEC, "xkill"), ("ASClock", EXEC, "asclock -shape"), ("Sélections", EXEC, "xclipboard") ), ("Sélection", ("Copier", SHEXEC, "echo '%s' | wxcopy"), ("Envoyer à", EXEC, "xterm -name mail -T Pine -e pine %s"), ("Naviguer", EXEC, "netscape %s"), ("Rechercher dans le manuel", SHEXEC, "MANUAL_SEARCH(%s)") ), ("Bureaux", ("Cacher les autres fenêtres", HIDE_OTHERS), ("Montrer toutes les fenêtres", SHOW_ALL), ("Arranger les icônes", ARRANGE_ICONS), ("Retracer l'écran", REFRESH), ("Vérrouiller", EXEC, "xlock -allowroot -usefirst"), ("Sauver la session", SAVE_SESSION), ("Effacer la session", CLEAR_SESSION) ), ("Apparence", ("Thèmes", OPEN_MENU, "-noext /opt/share/WindowMaker/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("Styles", OPEN_MENU, "-noext /opt/share/WindowMaker/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("Jeu d'icônes", OPEN_MENU, "-noext /opt/share/WindowMaker/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("Fond d'écran", ("Unifié", ("Noir", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("Bleu", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("Violet", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("Blanc crème", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("Gris foncé", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("Bordeaux", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ), ("Degradé", ("Coucher de Soleil", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblyblue4, black, deepskyblue4, tomato4)'"), ("Ciel", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Dégradés de Bleu", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("Dégradés d'Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("Dégradés de Violet", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("Dégradés de Beige", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("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 /opt/share/WindowMaker/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), ("Sauver le thème", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes /\"%a(Nom du thème,Entrez un nom de fichier:)\""), ("Sauver le jeu d'icônes", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets /\"%a(Nom du jeu d'icônes,Entrez un nom de fichier:)\"") ), ("Quitter", ("Redémarrer", RESTART), ("Démarrer AfterStep", RESTART, afterstep), ("Quitter...", EXIT), ("Tuer la session...", SHUTDOWN) ) ) WindowMaker-0.95.5/WindowMaker/exitscript.sh0000755000175000017500000000043512214432632015747 00000000000000#!/bin/sh # # Place commands to be executed when WindowMaker is exited here. # # WindowMaker will wait until this script finishes, so if you run any # commands that take long to execute (like a xterm), put a ``&'' in the # end of the command line. # # This file must be executable. # WindowMaker-0.95.5/WindowMaker/menu.se0000644000175000017500000001677212214432632014522 00000000000000/* * Huvudmeny för WindowMaker. * * Syntaxen är: * * [SHORTCUT ] * * är en sträng som du vill använda som titel i menyn. Strängen * 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 $HOME/GNUStep/Defaults/WindowMaker. * * Man kan inte ange en genväg för kommandona MENU och OPEN_MENU. * * kan vara ett av följande: * MENU - börjar (under)meny definition. * END - avslutar (under)meny definition. * OPEN_MENU - öppnar en meny frÃ¥n en fil, pipe eller innehÃ¥llet av * en katalog och eventuellt föregÃ¥ varje med ett kommando. * WORKSPACE_MENU - lägger till en undermeny med kommandon som pÃ¥verkar * arbetsbordet. Endast en workspace_menu är tillÃ¥ten. * EXEC - kör ett externt program. * SHEXEC - executes a shell command (like gimp > /dev/null) * EXIT - avslutar WindowMaker. * RESTART [] - startar WindowMaker eller annan * fönsterhanterare. * REFRESH - ritar om skärmbilden. * ARRANGE_ICONS - radar upp ikonerna pÃ¥ skrivbordet. * SHUTDOWN - dödar alla program och avslutar X-servern. * SHOW_ALL - visar alla (gömda) fönster pÃ¥ arbetsbordet. * HIDE_OTHERS - gömmer alla fönster pÃ¥ arbetsborder utom det som har * fokus. * SAVE_SESSION - sparar utseendet pÃ¥ skrivbordet. Det inkluderar alla * aktiva program (storlek, position, arbetsbord, vilken * dock/clip som det startades ifrÃ¥n, om det är minimerat, * skugget eller gömt. Sparar ocksÃ¥ det aktiva arbets- * bordet som användaren är pÃ¥. Allting blir Ã¥terställt * vid uppstart tills nästa SAVE_SESSION eller * CLEAR_SESSION kallas. Om SaveSessionOnExit = Yes i * WindowMakers domänfil sÃ¥ sparas inställningarna * automatiskt vid avslut. Detta överskrider alla * SAVE_SESSION och CLEAR_SESSION (se nedan). * CLEAR_SESSION - raderar tidigare sparade inställningar frÃ¥n * SAVE_SESSION. Har ingen effekt om SaveSessionOnExit * är True. * INFO - visar ruta med info. * * OPEN_MENU syntax: * 1. Filmenyhantering. * // öppnar fil.meny, som mÃ¥ste innehÃ¥lla en giltig menyfil, och läser * // in innehÃ¥llet pÃ¥ nuvarande positionen. * OPEN_MENU fil.meny * 2. Pipe-menyhantering. * // Öppnar kommando och använder dess stdout för att konstruera * // menyn. Kommandots utdata mÃ¥ste vara giltig menysyntax. Mellan- * // slaget mellan '|' och själva kommandot är frivilligt. * OPEN_MENU | kommando * 3. Kataloghantering. * // Öppnar en eller flera kataloger och konstruerar en meny med * // alla underkataloger och körbara filer i dom sorterade * // alfabetiskt. * OPEN_MENU /en/katalog [/en/annan/katalog ...] * 4. Kataloghantering med program. * // Öppnar en eller flera kataloger och konstruerar en meny med * // alla underkataloger och körbara filer sorterade alfabetiskt. * // Placerar kommando för var och en. * OPEN_MENU /en/katalog [/en/annan/katalog ...] WITH kommando -argument * * * är programmet som skall startas. * * ** Alternativ för kommandoraden i EXEC: * %s - byt ut mot den aktiva markeringen. * %a(meddelande) - öppnar ett svarsfönster med meddelandet och sätter in * din inskrivna text. * %w - byt ut mot XID för fönstret som har fokus. * * Du kan använda '\' för att använda specialtecken (som % och ") som vanliga * bokstäver, till exempel: * xterm -T "\"HallÃ¥ världen\"" * * Du kan ocksÃ¥ använda C-liknande specialsekvenser, t ex \n. * * Varje MENU-uttryck mÃ¥ste ha ett matchande END-uttryck pÃ¥ slutet. * * Exempel: * * "Test" MENU * "XTerm" EXEC xterm * // 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 $HOME/bin/X11 * // sätt en bakgrundsbild * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // infogar style.menu här * "Style" OPEN_MENU style.menu * "Test" END */ #include "wmmacros" "Program" MENU "Info" MENU "Informationsruta..." INFO_PANEL "Licens..." LEGAL_PANEL "Systemkonsoll" EXEC xconsole "Systembelastning" SHEXEC xosview || xload "Processlista" EXEC xterm -e top "Manualläsare" EXEC xman "Info" END "XTerm" EXEC xterm -sb "Rxvt (fixed)" EXEC rxvt -bg black -fg white -fn fixed "Rxvt (9x15)" EXEC rxvt -bg black -fg white -fn 9x15 "Arbetsbord" WORKSPACE_MENU "Program" MENU "Grafik" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Grafik" END "X Filhanterare" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(Enter file to view) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Skriv in PDF-fil som ska visas) "TkDesk" EXEC tkdesk "Program" END "Textredigerare" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Textredigerare" END "Diverse" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Diverse" END "Verktyg" MENU "Miniräknare" EXEC xcalc "Window Properties" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Fontväljare" EXEC xfontsel "Terminalemulator" EXEC xminicom "Förstora" EXEC xmag "Färgkarta" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock -shape "Klipphanterare" EXEC xclipboard "Verktyg" END "Markering" MENU "Kopiera" SHEXEC echo '%s' | wxcopy "Skicka e-mail" EXEC xterm -name mail -T "Pine" -e pine %s "GÃ¥ till webbsida" EXEC netscape %s "Sök i manualer" SHEXEC MANUAL_SEARCH(%s) "Markering" END "Arbetsbord" MENU "Göm andra" HIDE_OTHERS "Visa alla" SHOW_ALL "Rada upp ikoner" ARRANGE_ICONS "Uppdatera skärmen" REFRESH "LÃ¥s" EXEC xlock -allowroot -usefirst "Spara arbetsbord" SAVE_SESSION "Rensa sparat arbetsbord" CLEAR_SESSION "Arbetsbord" END "Utseende" MENU "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)' "BlÃ¥" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "MörkblÃ¥" WS_BACK '(solid, "#224477")' "Lila" WS_BACK '(solid, "#554466")' "Vete" WS_BACK '(solid, "wheat4")' "MörkgrÃ¥" WS_BACK '(solid, "#333340")' "Vin" WS_BACK '(solid, "#400020")' "Enfärgat" END "Toningar" MENU "Flagga" WS_BACK '(mdgradient, green, red, white, green)' "Himmel" WS_BACK '(vgradient, blue4, white)' "Toningar" END "Bilder" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Bakgrund" END "Spara tema" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Spara ikonuppsättning" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Utseende" END "Avsluta" MENU "Starta om" RESTART "Starta AfterStep" RESTART afterstep "Avsluta..." EXIT "Avsluta session..." SHUTDOWN "Avsluta" END "Program" END WindowMaker-0.95.5/WindowMaker/background.menu0000644000175000017500000000245412214432632016222 00000000000000#include "wmmacros" "Background" MENU "Solid" MENU "Black" WS_BACK '(solid, black)' "Blue" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Deep Blue" WS_BACK '(solid, "#180090")' "Purple" WS_BACK '(solid, "#554466")' "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)' "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" MENU "Tiled" OPEN_MENU LOCAL_BACKGROUNDS_DIR BACKGROUNDS_DIR USER_BACKGROUNDS_DIR WITH wmsetbg -u -t "Scaled" OPEN_MENU LOCAL_BACKGROUNDS_DIR BACKGROUNDS_DIR USER_BACKGROUNDS_DIR WITH wmsetbg -u -s "Image" END "Background" END WindowMaker-0.95.5/WindowMaker/README0000644000175000017500000000725712214432632014103 00000000000000 The file named menu is the menu in the plain text file format. The files named menu.?? (?? are 2 characters, such as pt) are translations of the same menu. Plain text menus are preprocessed using cpp (the C Pre-Processor), so you can use cpp macros in it. The plmenu file is the same menu, but in the property list format. This menu can be edited with WPrefs.app, but since WPrefs.app does not support XIM, it will not allow you to make menus in languages such as Japanese. To use the menu in the property list format (plmenu), just replace the ~/GNUstep/Defaults/WMRootMenu with it. To use the plain text menu, place the path for the menu in ~/GNUstep/Defaults/WMRootMenu, enclosed in double quotes ("). Ex: "~/GNUstep/Library/WindowMaker/menu" Instructions for editing the plain text menus can be found in the menu file itself, kindly translated to your tongue for your convenience, by the translation contributors. There is a script to convert plain text menus to property list menus in the utils directory, named wm-oldmenu2new. If you are unsure to wich format to use, stick with the plain text menus as they are more flexible. If for some psychological reason you are scared by text based configuration, use the property list menu. Localized menu file translators: -------------------------------- File Language Maintainer ------------------------------------------------------------------------------ menu.ja Japanese MANOME Tomonori ABE Shige menu.pt Portuguese Alfredo K. Kojima menu.de German Carsten Schaar menu.nl Dutch Roeland Mertens menu.cz Czech David ©auer menu.ko Korean Chae-Yong Chong Byeong-Chan Kim menu.gl Galician Xose Vazquez menu.fr French ObiTuarY menu.it Italian Roberto Checozzo menu.ru Russian August S.Sigov menu.es Spanish Rodrigo Hornos Prados José Luis Rivas López menu.he Hebrew Please send me your name/email if you wrote this We unfortunately lost that info :( menu.tr Turkish F. Kagan Gurkaynak menu.fi Finnish Ville Hautamaki menu.se Swdish Andreas Persenius menu.hr Croatian Toni Bilic menu.el Greek Nikolaos Papagrigoriou menu.dk Danish John M. Lockard Jacob Sparre Andersen 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 menu.zh_CN Chinese Wang Jian menu.pl Polish Maciej Friedel menu.bg Bulgarian Slavei Karadjov menu.sk Slovak judas@hell plmenu.da Danish Birger Langkjer plmenu.zh_CN Chinese Wang Jian plmenu.hr Croatian Toni Bilic plmenu.it Italian Michele Campeotto plmenu.de German Matthias Warkus plmenu.pl Polish Maciej Friedel plmenu.ko Korean Byeong-Chan Kim plemnu.es Spanish David A. Schekaiban plmenu.bg Bulgarian Slavei Karadjov plmenu.sk Slovak judas@hell plmenu.ja Japanese Seiichi SATO WindowMaker-0.95.5/WindowMaker/menu.ca0000644000175000017500000002370312214432632014466 00000000000000/* * Traducció per Carles Amigó dj_fr3nd@hotmail.com * * Definició per al Menú Principal de Window Maker * * La sintàxis és: * * [TECLA ] * * És la cadena de caracters per a fer servur com a titol. Ha * d'estar entre "" si conté espais. * * TECLA especifica una combinació de tecles per aquest objecte. té * la mateixa sintaxis que les combinacions de tecles especificades al * 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 * OPEN_MENU * * pot ser un d'aquests comandes: * MENU - Comença la definició d'un submenú * END - Acaba la definició d'un submenú * OPEN_MENU - Obre el contingut d'un menú desde un fitxer, una * canonada (pipe), o desde el contingut de un(s) * directori(s) i eventualment pot precedir-li algun * comanda * WORKSPACE_MENU - Afageix el menú de operacions del escriptori. Tan * sols es permet un WORKSPACE_MENU * EXEC - Executa un programa extern * EXIT - Surt del gestor de finestres * RESTART [] - Rearranca windowmaker o bé un * altre gestor de finestres * REFRESH - Refresca l'escriptori * ARRANGE_ICONS - Alinea les icones del escriptori * SHUTDOWN - Mata tots els clients (i tanca la sessió de les X Windows) * SHOW_ALL - Ensenya totes les finestres de l'escriptori * HIDE_OTHERS - Oculta totes les finestres de l'escriptori excepte la * actual (o la darrera que ha estat activa) * SAVE_SESSION - Guarda l'estat actual de l'escriptori, que inclou * totes les aplicacions en execució, la seva geometria, la * posició en pantalla, l'escriptori en que estaven, el dock * o el clip desde on van ser executades, i si estaven * minimitzades, ocultes o plegades. També guarda l'escriptori * que és usat en aquest moment. Tot això serà restaurat el * pròxim cop que s'arrenqui Window Maker fins que es faci un * altre SAVE_SESSION o CLEAR_SESSION. Si SaveSessionOnExit = * Yes; el fitxer de domini de Window Maker, llavors la sessió * es guardarà cada cop que es surt de Window Maker, * sobreescribint qualsevol SAVE_SESSION o CLEAR_SESSION * (veure avall) * CLEAR_SESSION - Borra qualsevol sessió guardada anteriorment. No té * cap efecte si SaveSessionOnExit és verdader * * OPEN_MENU sintàxis: * 1. Fent servir fitxers de menú * // Obre un fitxer.menu que ha de ser un fitxer de menú vàlid i * // l'inserta a la posició actual * OPEN_MENU fitxer.menu * 2. Fent servir canonades (pipes) en el menú * // executa un programa i fa servir la seva sortida per fer el menú * // La sortida del programa ha de seguir el format de menú * // L'espai entre '|' i la comanda, és opcional. * OPEN_MENU | comanda * 3. Obrint directoris * // Obre un o més directoris i construeix el menu amb tots els * // directoris i els fitxers executables, ordenats alfabeticament * OPEN_MENU /qualsevol/directori [/qualsevol/altre/directori ...] * 4. Obrint directoris amb un programa * // Obre un o més directoris i construeix el menu amb tots els * // directoris i els fitxers, ordenats alfabeticament, i * // executant-los amb un programa * OPEN_MENU /qualsevol/directori [/qualsevol/altre/directori ...] WITH * comanda -opcions * * * és el programa a executar * * ** Opcions per a la linea de comanda en EXEC: * %s - substitueix amb la sel·lecció actual * %a(mensaje) - Obre una finestra de dialeg i ho substitueix amb el que * s'hi introdueixi * %w - Ho substitueix per el XID de la finestra actual * * Es poden posar caràcters especials (com % i ") amb el caràcter \ : * ex: xterm -T "\"Hola Món\"" * * També pots fer servir comandes de escapament, com \n * * Cada sentència de MENU ha de tenir una sentència de END que l'acavi * * Exemple: * * "Test" MENU * "XTerm" EXEC xterm * // 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 $HOME/bin/X11 * // algunes imatges de fondo de l'escriptori * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // inserta el fitxer style.menu * "Style" OPEN_MENU style.menu * "Test" END */ #include "wmmacros" "Aplicacions" MENU "Informació" MENU "Info Panel..." INFO_PANEL "Legal..." LEGAL_PANEL "Consola del Sistema" EXEC xconsole "Càrrega del Sistema" SHEXEC xosview || xload "Llista de Processos" EXEC xterm -e top "Manual d'instruccions" EXEC xman "Informació" END "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "Escriptoris" WORKSPACE_MENU "Aplicacions" MENU "Gràfics" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Gràfics" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(Enter file to view) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Enter PDF to view) "TkDesk" EXEC tkdesk "Aplicacions" END "Editors" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Editors" END "Miscel·lani" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Miscel·lani" END "Utilitats" MENU "Calculadora" EXEC xcalc "Propietats de la finestra" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Sel·lecciona una Font" EXEC xfontsel "Emulador de Terminal" EXEC xminicom "Lupa" EXEC xmag "Mapa de Color" EXEC xcmap "XKill" EXEC xkill "Portapapers" EXEC xclipboard "Utilitats" END "Sel·lecció" MENU "Copiar" SHEXEC echo '%s' | wxcopy "Enviar a" EXEC xterm -name mail -T "Pine" -e pine %s "Enviar al Navegador" EXEC netscape %s "Buscar al Manual" SHEXEC MANUAL_SEARCH(%s) "Sel·lecció" END "Escriptori" MENU "Amagar Altres" HIDE_OTHERS "Ensenyar Totes" SHOW_ALL "Alinear Icones" ARRANGE_ICONS "Refrescar" REFRESH "Bloquejar" EXEC xlock -allowroot -usefirst "Guardar Sessió" SAVE_SESSION "Borrar Sessió Guardada" CLEAR_SESSION "Escriptori" END "Aparença" MENU "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)' "Lila Clar" WS_BACK '(solid, "#505075")' "Blau Clar" WS_BACK '(solid, "#243e6c")' "Blau Lluminós" WS_BACK '(solid, "#224477")' "Purpura" WS_BACK '(solid, "#554466")' "Caki" WS_BACK '(solid, "wheat4")' "Gris Fosc" WS_BACK '(solid, "#333340")' "Lila" WS_BACK '(solid, "#400020")' "Sòlid" END "Degradat" MENU "Posta de Sòl" WS_BACK '(mvgradient, deepskyblue4,black, deepskyblue4, tomato4)' "Cel" WS_BACK '(vgradient, blue4, white)' "Degradat Blau" WS_BACK '(vgradient,"#7080a5", "#101020")' "Degradat Blau Cel" WS_BACK '(vgradient,"#746ebc","#242e4c")' "Degradat Purpura" WS_BACK '(vgradient,"#654c66","#151426")' "Degradat d'or" WS_BACK '(vgradient,"#a09060", "#302010")' "Degradat Gris" WS_BACK '(vgradient,"#636380", "#131318")' "Degradat Lila" WS_BACK '(vgradient,"#600040", "#180010")' "Degradat" END "Imatges" OPEN_MENU BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Fons de pantalla" END "Guardar Tema" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Guardar Joc d'Icones" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Aparença" END "Sortir" MENU "Rearrancar" RESTART "Arrancar AfterStep" RESTART afterstep "Sortir..." EXIT "Matar la Sessió..." SHUTDOWN "Sortir" END "Aplicacions" END WindowMaker-0.95.5/WindowMaker/menu.bg0000644000175000017500000002675212214432632014502 00000000000000/* * Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ñ Ð½Ð° главното меню за WindowMaker * * СинтакÑиÑÑŠÑ‚ е: * * <Заглавие> [SHORTCUT <комбинациÑ>] <команда> <параметри> * * <Заглавие> е какъв да е низ, който ще Ñе използва като название на * ÑÑŠÐ¾Ñ‚Ð²ÐµÑ‚Ð½Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚ от менюто. Ðко включва интервали, трÑбва да Ñе * огради Ñ ". * * SHORTCUT Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ½Ð° ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ ("бърз клавиш") за този * елемент на менюто. <комбинациÑ> има ÑÑŠÑ‰Ð¸Ñ ÑинтакÑиÑ, както клавишните * комбинации във файла $HOME/GNUstep/Defaults/WindowMaker, * напр. RootMenuKey или MiniaturizeKey. * * Ðе може да Ñе поÑочва клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð·Ð° MENU и OPEN_MENU. * * може да бъде: * MENU - започва Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ñ Ð½Ð° (под)меню * END - завършва дефинициÑта на (под)меню * OPEN_MENU - чете менюто от файл, програмен канал или * файловете от директориÑ, евентуално предшеÑтвани * от команда. * WORKSPACE_MENU - Ð´Ð¾Ð±Ð°Ð²Ñ Ð¿Ð¾Ð´Ð¼ÐµÐ½ÑŽ за работните меÑта. Може да Ñе * използва Ñамо едно такова подменю. * EXEC - изпълнÑва външна програма * SHEXEC - изпълнÑва команда на командната обвивка * (напр. gimp > /dev/null) * EXIT - излиза от админиÑтратора на прозорците * RESTART [<админиÑтратор>] - реÑтартира WindowMaker или * Ñтрартира друг админиÑтратор на * прозорците * REFRESH - опреÑнÑва (прериÑува) работната площ * ARRANGE_ICONS - преподрежда иконките на работното мÑÑто. * SHUTDOWN - убива вÑички клиенти (и приключва X-ÑеÑиÑта) * SHOW_ALL - показва вÑички Ñкрити прозорци на работното мÑÑто * HIDE_OTHERS - Ñкрива вÑички прозорци на работното мÑÑто, оÑвен * Ð¸Ð¼Ð°Ñ‰Ð¸Ñ Ñ„Ð¾ÐºÑƒÑ (или поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ð²Ð°Ð» фокуÑ) * SAVE_SESSION - запазва текущото ÑÑŠÑтоÑние на работната площ, в * това чиÑло вÑички Ñтартирани приложениÑ, * меÑтата на прозорците им, на дока, * кламера. Това ÑÑŠÑтоÑние ще бъде възÑтановено * при вÑÑко Ñтартиране на WindowMaker, докато * наново не Ñе използва SAVE_SESSION или * CLEAR_SESSION. Ðко SaveSessionOnExit = Yes в * конфигурационната база-данни на Window Maker, * то при вÑÑко излизане от WindowMaker * ÑÑŠÑтоÑнието на ÑеÑиÑта автоматично ще бъде * запазено. * CLEAR_SESSION - изтрива данните за по-рано запазена * ÑеÑиÑ. Това нÑма никакъв ефект, ако * SaveSessionOnExit = Yes. * INFO - показва панела "Инфо". * * СинтакÑÐ¸Ñ Ð½Ð° OPEN_MENU: * 1. Меню от файл: * // Ð¾Ñ‚Ð²Ð°Ñ€Ñ Ñ„Ð°Ð¹Ð»-меню, който трÑбва да Ñъдържа меню и го вмъква * // на текущото мÑÑто. * OPEN_MENU файл-меню * 2. Меню от програмен канал: * // пуÑка командата и очаква Ñ‚Ñ Ð´Ð° генерира меню на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ * // Ñи изход. * OPEN_MENU | команда * 3. Меню от директориÑ: * // ÐžÑ‚Ð²Ð°Ñ€Ñ ÐµÐ´Ð½Ð°Ñ‚Ð° или повече директории и прави Ñортирано * // азбучно меню за вÑички изпълними файлове и поддиректории в * // Ñ‚ÑÑ…. * OPEN_MENU директориÑ1 [директориÑ2 ...] * 4. Меню от Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° * // ÐžÑ‚Ð²Ð°Ñ€Ñ ÐµÐ´Ð½Ð°Ñ‚Ð° или повече директории и прави Ñортирано * // азбучно меню за вÑички поддиректории и четими файлове, като * // вÑеки от файловете ще бъде обработван Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð°. * OPEN_MENU [опции] директориÑ1 [директориÑ2 ...] WITH команда -опции * Опции: * -noext ПропуÑка вÑичко, което е Ñлед * поÑледната точка в името на файла. * * <параметри> е програмата, коÑто трÑбва да Ñе изпълни. * * ** Опции за ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´ Ñ EXEC: * %s - замеÑтва Ñе Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¾Ñ‚Ð¾ в момента * %a(title[,prompt]) - Ð¾Ñ‚Ð²Ð°Ñ€Ñ Ð´Ð¸Ð°Ð»Ð¾Ð³Ð¾Ð²Ð° клетка Ñ Ð·Ð°Ð³Ð»Ð°Ð²Ð¸Ðµ "title" и * незадължителна подкана prompt, Ñлед което Ñе * замеÑтва Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÐ½Ð¾Ñ‚Ð¾. * %w - замеÑтва Ñе Ñ XID (номера) на прозореца Ñ Ñ„Ð¾ÐºÑƒÑ. * %W - замеÑтва Ñе Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° на текущото работно мÑÑто. * * Преди Ñпециалните Ñимволи (като % и ") може да поÑтавÑте \ за да * загубÑÑ‚ Ñпециалното Ñи значение: * пример: xterm -T "\"Hello World\"" * * ДопуÑтими Ñа и Ñтандартните комбинации като \n * * Ð’ÑÑка команда MENU трÑбва да има Ñъответна команда END. * * Пример: * * "Проба" MENU * "XTerm" EXEC xterm * // прави подменю ÑÑŠÑ Ñъдържимото от /usr/openwin/bin * "XView приложениÑ" OPEN_MENU "/usr/openwin/bin" * // нÑкои X11-Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñ‚ различни директории * "X11 приложениÑ" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // за картинки на фона * "Фон" OPEN_MENU -noext $HOME/images /usr/share/images WITH wmsetbg -u -t * // Вмъква style.menu тук. * "Style" OPEN_MENU style.menu * "Проба" END */ #include "wmmacros" "Applications" MENU "Инфо" MENU "Информационен панел..." INFO_PANEL "Лицензионен панел..." LEGAL_PANEL "СиÑтемна конзола" EXEC xconsole "Ðатоварване на ÑиÑтемата" SHEXEC xosview || xload "СпиÑък процеÑи" EXEC xterm -e top "РъководÑтва" EXEC xman "Инфо" END "Стартирай..." SHEXEC %a(Run,Въведете команда, коÑто да Ñе Ñтартира:) "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "Работни меÑта" WORKSPACE_MENU "ПриложениÑ" MENU "Графични" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Графични" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "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 "ПриложениÑ" END "Редактори" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Редактори" END "Разни" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Разни" END "ИнÑтрументи" MENU "Калкукатор" EXEC xcalc "СвойÑтва на прозореца" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Избор на шрифт" EXEC xfontsel "Емулатор на терминал" EXEC xminicom "Лупа" EXEC xmag "Цветова палитра" EXEC xcmap "XKill" EXEC xkill "Clipboard" EXEC xclipboard "ИнÑтрументи" END "Избор" MENU "Copy" SHEXEC echo '%s' | wxcopy "Mail To" EXEC xterm -name mail -T "Pine" -e pine %s "Navigate" EXEC netscape %s "Search in Manual" SHEXEC MANUAL_SEARCH(%s) "Избор" END "Работно мÑÑто" MENU "Скрий другите" HIDE_OTHERS "Покажи вÑички" SHOW_ALL "Подреди иконките" ARRANGE_ICONS "ОпреÑни" REFRESH "Заключи" EXEC xlock -allowroot -usefirst "Запази ÑеÑиÑта" SAVE_SESSION "ИзчиÑти запазената ÑеÑиÑ" CLEAR_SESSION "Работни меÑта" END "Изглед" MENU "Теми" 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)' "Син" WS_BACK '(solid, "#505075")' "Тъмно виолетово" WS_BACK '(solid, "#243e6c")' "Силно Ñиньо" WS_BACK '(solid, "#180090")' "Мораво" WS_BACK '(solid, "#554466")' "Пшеничен" WS_BACK '(solid, "wheat4")' "Тъмно Ñив" WS_BACK '(solid, "#333340")' "Винен" WS_BACK '(solid, "#400020")' "Плътен" END "Градиент" MENU "Слънце" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)' "Ðебе" WS_BACK '(vgradient, blue4, white)' "Сини Ñенки" WS_BACK '(vgradient, "#7080a5", "#101020")' "Виолетови Ñенки" WS_BACK '(vgradient, "#746ebc", "#242e4c")' "Морави Ñенки" WS_BACK '(vgradient, "#654c66", "#151426")' "Пшенични Ñенки" WS_BACK '(vgradient, "#a09060", "#302010")' "Сиви Ñенки" WS_BACK '(vgradient, "#636380", "#131318")' "Винени Ñенки" WS_BACK '(vgradient, "#600040", "#180010")' "Градиент" END "Images" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Фон" END "Запази темата" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name,Enter file name:)" "Запази колекциÑта иконки" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name,Enter file name:)" "ПоÑобие за наÑтройки" EXEC /usr/local/GNUstep/Applications/WPrefs.app/WPrefs "Изглед" END "Изход" MENU "РеÑтартиране" RESTART "Стартирай BlackBox" RESTART blackbox "Стартирай kwm" RESTART kwm "Стартирай IceWM" RESTART icewm "Изход..." EXIT "Изход" END "ПриложениÑ" END WindowMaker-0.95.5/WindowMaker/menu.es0000644000175000017500000001037612214432632014514 00000000000000// // Definición del Menu de Aplicaciones para WindowMaker (en ESPAÑOL) // // La sintaxis es: // // , donde : // // // cadena de texto usada como el título.Tiene que estar entre "" // // un comando de los siguientes : // MENU - comienza la definición del (sub)menu. // END - termina la definición del (sub)menu. // EXEC - ejecuta un programa externo // EXIT - sale del entorno gráfico // RESTART [] - reinicializa WindowMaker o arranca otro entorno // REFRESH - refresca el escritorio // ARRANGE_ICONS - ordena los iconos del escritorio // SHUTDOWN - cierra todas las aplicaciones (y cierra la sesión de las X) // WORKSPACE_MENU - Añade un submenú para las operaciones del area de trabajo // SHOW_ALL - muestra todas las ventanas en el área de trabajo // HIDE_OTHERS - oculta toda las ventanas del area de trabajo, // excepto la que tiene el foco (o la ultima que haya recibido el foco) // // es el programa a ejecutar. // // ** Opciones para a linea de comando EXEC : // %s - se sustituye por la corriente seleción. Si la selección no es posible , // el comando es cancelado // %w - se sustituye con la corrente ID de la ventana selecionada . Si no hay // ventanas selecionadas , no se devuolve nada. // // Se puede anular carácteres especiales (como % e ") con el caracter \ : // ejemplo: xterm -T "\"Terminal X\"" // // A cada estamento de MENU se debe de corresponder un estamento END al final // Observa los ejemplos: #include "Menu Principal" MENU "Informacion ..." MENU "Copyright..." SHEXEC xmessage -center -font variable -title \ 'WindowMaker 'WM_VERSION -file ~/GNUstep/Library/WindowMaker/Copyright "Carga del sistema" SHEXEC xosview || xload "Lista de tarifas (top)" EXEC rxvt -ls -fg white -bg black -fn vga -e top "Manual" EXEC xman "Informacion ..." END "Emuladores ..." MENU "Terminal X" EXEC xterm "Emulador de Terminal" EXEC rxvt -ls -fg white -bg black -fn vga "Emuladores ..." END "Aplicaciones ..." MENU "Graficos ..." MENU "Gimp" EXEC gimp "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Graficos ..." END "Editores ..." MENU "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Editores ..." END "Multimedia ..." MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Multimedia ..." END "Utilidades ..." MENU "Calculadora" EXEC xcalc "Selector de fuente" EXEC xfontsel "Lupa" EXEC xmag "Mapa de colores" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock -shape "Portapapeles" EXEC xclipboard "Utilidades ..." END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Ghostview" EXEC ghostview "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread "TkDesk" EXEC tkdesk "Aplicaciones ..." END "Internet ..." MENU "Correo" EXEC xterm -name mail -T "Pine" -e pine %s "Navegar" EXEC netscape %s "Buscar en el manual" EXEC xterm -name manualBrowser -e man %s "Internet ..." END "Configurar Area de Trabajo ..." MENU "Fondo ..." MENU "Ninguno" EXEC CLEARROOT "Negro" WS_BACK '(solid, black)' "Azul" WS_BACK '(solid, "#505075")' "Violeta" WS_BACK '(solid, "#554466")' "Amarillo" WS_BACK '(solid, wheat4)' "Gris oscuro" WS_BACK '(solid, "#333340")' "Granate" WS_BACK '(solid, "#400020")' "Fondo ..." END #if (DEPTH>8) // Debes de reinicializar para que los cambios se efectúen #include #endif "Cerrar otras" HIDE_OTHERS "Mostrar todas" SHOW_ALL "Alinear iconos" ARRANGE_ICONS "Refrescar" REFRESH "Salvapantallas" EXEC xlock -allowroot -usefirst "Grabar Area de trabajo" EXEC SAVE_WORKSPACE "Configurar Area de Trabajo ..." END "Areas de Trabajo ..." WORKSPACE_MENU #if (UID==0) // Só o ve root ou usuarios con UID=0 "Sistema" MENU // Panel de control "Panel de control de RH" EXEC control-panel "Sistema" END #endif "Salir ..." MENU "Reinicializar" RESTART "Iniciar AfterStep" RESTART afterstep "Salir" EXIT "Salir de la sesion" SHUTDOWN "Salir ..." END "Menu Principal" END WindowMaker-0.95.5/WindowMaker/menu.gl0000644000175000017500000000740112214432632014502 00000000000000// // Definición do Menu de Aplicacións para WindowMaker (en GALEGO) // // A sintaxe é: // // , onde : // // cadea de texto usada como o título.Ten que estar pecha entre "" // // // un comando dos seguintes : // MENU - escomenza a definición do (sub)menú. // END - remata a definición do (sub)menu. // EXEC - executa un programa externo // SHEXEC - executes a shell command (like gimp > /dev/null) // EXIT - sae do xestor de fiestras // RESTART [] - reinicializa WindowMaker ou // arranca outro xestor de fiestras // REFRESH - refresca o ecritorio // ARRANGE_ICONS - ordena os iconos do escritorio // SHUTDOWN - asasina tódalas aplicacións (e fecha a sesión das X) // WORKSPACE_MENU - engade un submenú para as operacións da // area de traballo // SHOW_ALL - mostra tódalas fiestras na área de traballo // HIDE_OTHERS - oculta tódalas fiestras da area de traballo, // excepto a que ten o foco (ou a ultima que haxa recibido o foco) // // é o programa a executar. // // ** Opcións para a liña de comando EXEC : // %s - sustituese pola corrente seleción. Se a selección non é posible , // o comando é cancelado // %w - sustituese coa corrente ID da fiestra selecionada . Se non hay // xanelas selecionadas , non se devolve nada. // // Pódese anular carácteres especiais (como % e ") co caracter \ : // exemplo: xterm -T "\"Boas mundo\"" // // A cada estamento de MENU lle debe de corresponder un estamneto END ó final // Oxea os exemplos: #include "Aplicacións" MENU "Información" MENU "Info Panel..." INFO_PANEL "Legal" LEGAL_PANEL "Carga do sistema" SHEXEC xosview || xload "Lista de tarefas" EXEC rxvt -ls -fg white -bg black -fn vga -e top "Manual" EXEC xman "Información" END "Emulador Terminal" EXEC rxvt -ls -fg white -bg black -fn vga "XJed" EXEC xjed "Areas de Traballo" WORKSPACE_MENU "Aplicacións" MENU "Gráficos" MENU "Gimp" EXEC gimp "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Gráficos" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread "TkDesk" EXEC tkdesk "Aplicacións" END "Editores" MENU "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Editores" END "Variedade" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Variedade" END "Utiles" MENU "Calculadora" EXEC xcalc "Selector de fonte" EXEC xfontsel "Lupa" EXEC xmag "Mapa de cor" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock -shape "Portapapeis" EXEC xclipboard "Utiles" END "Selección" MENU "Correo" EXEC xterm -name mail -T "Pine" -e pine %s "Navegar" EXEC netscape %s "Buscar no manual" EXEC xterm -name manualBrowser -e man %s "Selección" END "Area Traballo" MENU "Fondo" MENU "Ningún" EXEC CLEARROOT "Negro" WS_BACK '(solid, black)' "Azul" WS_BACK '(solid, "#505075")' "Violeta" WS_BACK '(solid, "#554466")' "Marelo" WS_BACK '(solid, wheat4)' "Gris oscuro" WS_BACK '(solid, "#333340")' "Granate" WS_BACK '(solid, "#400020")' "Fondo" END #if (DEPTH>8) // Debes de reinicializar para que os cambios se efectúen #include #endif "Asasinar outras" HIDE_OTHERS "Mostrar todas" SHOW_ALL "Aliñar iconos" ARRANGE_ICONS "Refrescar" REFRESH "Fechar" EXEC xlock -allowroot -usefirst "Grabar Area de traballo" EXEC SAVE_WORKSPACE "Area Traballo" END "Sair" MENU "Reinicializar" RESTART "Iniciar AfterStep" RESTART afterstep "Sair..." EXIT "Sair da sesión..." SHUTDOWN "Sair" END "Aplicacións" END WindowMaker-0.95.5/WindowMaker/plmenu.da0000644000175000017500000002374312214432632015027 00000000000000( "Applikationer", ( "Info", ("Info Panel...", INFO_PANEL), ("Ophavsret...", LEGAL_PANEL), ( "Systemkonsol", EXEC, "xconsole" ), ("Systembelastning", SHEXEC, "xosview || xload"), ( "Procesliste", EXEC, "xterm -fg wheat -bg black -fn 6x10 -geometry 80x50 -e top" ), ( "Manualer", EXEC, "xman" ) ), ("Kør...", SHEXEC, "%a(Kør,Indtast kommando der skal udføres:)"), ( "XTerm", EXEC, "xterm -sb" ), ( "Rxvt", EXEC, "rxvt -bg black -fg white" ), ("Arbejdsborde", WORKSPACE_MENU), ( "Applikationer", ( "Grafik", ("Gimp", SHEXEC, "gimp >/dev/null"), ( "XV", EXEC, "xv" ), ( "XPaint", EXEC, "xpaint" ), ( "XFig", EXEC, "xfig" ) ), ( "X-filhÃ¥ndtering", EXEC, "xfm" ), ( "OffiX Files", EXEC, "files" ), ( "LyX", EXEC, "lyx" ), ( "Netscape", EXEC, "netscape" ), ( "Ghostview", EXEC, "ghostview %a(GhostView,Indtast filnavn)" ), ( "Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(Acrobat,Indtast PDF-filnavn)" ), ( "TkDesk", EXEC, "tkdesk" ) ), ( "Tekstbehandling", ( "XFte", EXEC, "xfte" ), ("Emacs", SHEXEC, "xemacs || emacs"), ( "XJed", EXEC, "xjed" ), ( "NEdit", EXEC, "nedit" ), ( "Xedit", EXEC, "xedit" ), ( "VI", EXEC, "xterm -e vi" ) ), ( "Diverse", ("Xmcd", SHEXEC, "xmcd 2> /dev/null"), ( "Xplaycd", EXEC, "xplaycd" ), ( "Xmixer", EXEC, "xmixer" ) ), ( "Tilbehør", ( "Lommeregner", EXEC, "xcalc" ), ("Vinduesegenskaber", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -"), ( "Vælg skrifttype", EXEC, "xfontsel" ), ( "Terminalemulator", EXEC, "xminicom" ), ( "Forstørrelsesglas", EXEC, "xmag" ), ( "Farver", EXEC, "xcmap" ), ( "XKill", EXEC, "xkill" ), ( "ASClock", EXEC, "asclock -shape" ), ( "Udklipsbord", EXEC, "xclipboard" ) ), ( "Markering", ("Kopiér", SHEXEC, "echo '%s' | wxcopy"), ( "Send e-post til", EXEC, "xterm -name mail -T Pine -e pine %s" ), ( "Indtast URL", EXEC, "netscape %s" ), ("Søg i manual", EXEC, "MANUAL_SEARCH(%s)") ), ( "Arbejdsbord", ("Skjul andre", HIDE_OTHERS), ("Vis alle", SHOW_ALL), ("Arrangér ikoner", ARRANGE_ICONS), ("Genindlæs", REFRESH), ( "LÃ¥s", EXEC, "xlock -allowroot -usefirst" ), ("Gem session", SAVE_SESSION), ("Slet gemt session", CLEAR_SESSION) ), ( "Udseende", ( "Temaer", OPEN_MENU, "-noext /usr/local/share/WindowMaker/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle" ), ( "Stil", OPEN_MENU, "-noext /usr/local/share/WindowMaker/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle" ), ( "Ikonsæt", OPEN_MENU, "-noext /usr/local/share/WindowMaker/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons" ), ( "Baggrund", ( "Ensfarvet", ( "Sort", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'" ), ( "BlÃ¥", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'" ), ( "Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'" ), ( "MørkeblÃ¥", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'" ), ( "Lilla", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'" ), ( "Hvede", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"wheat4\")'" ), ( "MørkegrÃ¥", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'" ), ( "Bordeaux", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'" ) ), ( "Nuancer", ( "Solopgang", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'" ), ( "Himmel", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'" ), ( "BlÃ¥ Skygger", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'" ), ( "Indigo Skygger", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'" ), ( "Lilla Skygger", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'" ), ( "Hvede Skygger", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'" ), ( "GrÃ¥ Skygger", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'" ), ( "Bordeaux Skygger", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'" ), ( "Flag", EXEC, "wdwrite WindowMaker WorkspaceBack '(mdgradient, green, red, white, green)'" ) ), ( "Billeder", OPEN_MENU, "-noext /usr/local/share/WindowMaker/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t" ) ), ("Gem Tema", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Tema navn,Indtast navn:)"), ("Gem Ikonsæt", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(Ikonsæt navn,Indtast navn:)") ), ( "Afslut", ("Genstart", RESTART), ("Start Blackbox", RESTART, blackbox), ("Start kwm", RESTART, kwm), ("Start IceWM", RESTART, icewm), ("Afslut...", EXIT) ) ) WindowMaker-0.95.5/WindowMaker/menu.pl0000644000175000017500000002611712214432632014520 00000000000000/* * Definiowanie Menu Głównego dla WindowMakera * Fonty w standardzie ISO8895-2 * * SkÅ‚adnia jest nastÄ™pujÄ…ca: * * [SHORTCUT ] * * TytuÅ‚ może być dowolnym ciÄ…giem znaków. JeÅ›li bÄ™dÄ… w nim wystÄ™pować * spacje umieÅ›c go w cudzysÅ‚owie np. "TytuÅ‚ ze spacjÄ…" * * SHORTCUT Definiowanie skrótu. * Nazwa rodzaju skrótu umieszczonego w pliku * $HOME/GNUstep/Defaults/WindowMaker, tak jak RootMenuKey * lub MiniaturizeKey. * * Skróty mogÄ… wystÄ™pować w sekcji MENU lub OPEN_MENU . * * jedna z dostÄ™pnych komend: * MENU - rozpoczÄ™cie definicji (pod)menu * END - zakoÅ„czenie definicji (pod)menu * OPEN_MENU - generowanie podmenu na podstawie podanego katalogu, * umieszczajÄ…c w nim pliki wykonywalne i podkatalogi. * WORKSPACE_MENU - Dodanie podmenu zawierajÄ…cego aktywne pulpity. Tylko * jedno workspace_menu jest potrzebne. * EXEC - wykonanie jakiegokolwiek programu * EXIT - wyjÅ›cie z menadżera okien * RESTART [] - restart WindowMakera albo start innego * manadżera okien * REFRESH - odÅ›wierzenie ekranu * ARRANGE_ICONS - uporzÄ…dkowanie ikon na pulpicie * SHUTDOWN - zabicie wszystkich procesów (i wyjÅ›cie z X window) * SHOW_ALL - pokazanie wszystkich ukrytych programów * HIDE_OTHERS - schowanie aktywnych okien pulpitu, oprócz aktywnego * SAVE_SESSION - zapamietanie aktualnego stanu desktpou, z wszystkimi * uruchomionymi programami, i z wszystkimi ich stanami * geometrycznymi, pozycji na ekranie, umieszczone na * odpowiednim pulpicie, ukryte lub uaktywnione. * Wszystkie te ustawiemia bedÄ… aktywne, dopóki nie * zostanÄ… użyte komendy SAVE_SESSION i CLEAR_SESSION. * Jeżeli SaveSessionOnExit = Yes; w pliku konfiguracyjnym * WindowMakera, wtedy zapamiÄ™tywanie wszystkich ustawieÅ„ * jest dokonywanie po każdym wyjÅ›ciu, niezależnie od * komend SAVE_SESSION czy CLEAR_SESSION . * CLEAR_SESSION - Czyszczenie poprzednio zapamiÄ™tanych sesji. Nie ponosi to * żadnych zmian w pliku SaveSessionOnExit . * INFO - WyÅ›wietlenie informacji o WindowMakerze * * zalezne od uruchamianego programu. * * ** Opcje w lini komend EXEC: * %s - znak jest zastepowany przez text znajdujacy sie w ,,schowku'' * %a(tytuÅ‚[,komunikat]) - otwiera dodatkowe okno o tytule tytuÅ‚, komunikacie * komunikat i czeka na podanie parametrów, które * zostanÄ… wstawione zamiast %a. Niestety nie udalo mi * siÄ™ uzyskać polskich fontów w tej pocji :( * %w - znak jest zastepowany przez XID aktywnego okna * %W - znak jest zastepowany przez numer aktywnego pulpitu * * Aby używać specjalnych znaków ( takich jak % czy " ) należy poprzedzic je znakiem \ * np. :xterm -T "\"Witaj Åšwiecie\"" * * Można używac znaków specjalnych, takich jak \n * * Sekcja MENU musi być zakoÅ„czona sekcja END, pod tÄ… sama nazwÄ…. * * PrzykÅ‚ad: * * "Test" MENU * "XTerm" EXEC xterm * // stworzenie podmenu z plikami w podkatalogu /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // umieszcza w jednym podmenu pliki z róznych podkatalogów * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // ustawienie tÅ‚a * "Background" OPEN_MENU -noext $HOME/images /usr/share/images WITH wmsetbg -u * // wstawienie menu z pliku style.menu * // wstawienie menu z pliku style.menu * "Style" OPEN_MENU style.menu * "Test" END * * Jeżeli zamiast polskich fontów sÄ… jakieÅ› krzaczki należy wyedetować pliki * $HOME/GNUstep/Defaults/WMGLOBAL i $HOME/GNUstep/Defaults/WindowMaker, * lub wejść w menu Konfiguracja. * Aby uzyskać polskie znaki należy uzupeÅ‚nić definicje fontów. * np. zamienić * * SystemFont = "-*-helvetica-medium-r-normal-*-%d-100-*-*-*-*-*-*"; * * na * * SystemFont = "-*-helvetica-medium-r-normal-*-%d-100-*-*-*-*-iso8859-2"; * * i wszÄ™dzie tam gdzie wystÄ™puje podobna definicja. */ #include "wmmacros" #define ULUB_EDYTOR vi /* JeÅ›li nie lubisz edytora vi zmieÅ„ na swój ulubiony edytor */ #define ULUB_TERM xterm /* A tutaj ustaw swój ulubiony terminal */ "WindowMaker" MENU "Informacja" MENU "Informacja o WMaker..." INFO_PANEL "Legalność..." LEGAL_PANEL "Konsola Systemu" EXEC xconsole "Obciążenie Systemu" EXEC xosview || xload "Lista Procesów" EXEC ULUB_TERM -T "Lista Procesów" -e top "PrzeglÄ…darka Manuali" EXEC xman "Informacja" END "Konfiguracja" MENU "Edycja menu" EXEC ULUB_TERM -T "Edycja menu" -e ULUB_EDYTOR $HOME/GNUstep/Library/WindowMaker/menu "Ustawienie fontów" EXEC ULUB_TERM -T "Ustawienie fontów" -e ULUB_EDYTOR $HOME/GNUstep/Defaults/WMGLOBAL "Konfiguracja" EXEC ULUB_TERM -T "Konfiguracja" -e ULUB_EDYTOR $HOME/GNUstep/Defaults/WindowMaker "Konfiguracja" END "Uruchom..." EXEC %a(Uruchom,Wpisz komende do uruchomienia:) "Terminal" EXEC ULUB_TERM -T "Mój ulubiony terminal" -sb "Edytor" EXEC ULUB_TERM -T "Moj ulubiony edytor" -e ULUB_EDYTOR %a(Edytor,Podaj plik do edycji:) "Pulpity" WORKSPACE_MENU "Aplikacje" MENU "Grafika" MENU "Gimp" EXEC gimp >/dev/null "XV" EXEC xv "XFig" EXEC xfig "XPaint" EXEC xpaint "Gnuplot" EXEC ULUB_TERM -T "GNU plot" -e gnuplot "Edytor ikon" EXEC bitmap "Grafika" END "Tekst" MENU "LyX" EXEC lyx "Ghostview" EXEC gv %a(GhostView,Wprowadz nazwe pliku *.ps *.pdf *.no:) "XDvi" EXEC xdvi %a(XDvi,Wprowadz nazwe pliku *.dvi:) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobat,Wprowadz nazwe pliku *.pdf:) "Xpdf" EXEC xpdf %a(Xpdf,Wprowadz nazwe pliku *.pdf:) "Arkusz kalkulacyjny" EXEC xspread "Tekst" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "TkDesk" EXEC tkdesk "Midnight Commander" EXEC ULUB_TERM -T "Midnight Commander" -e mc "X Gnu debbuger" EXEC xxgdb "Xwpe" EXEC xwpe "Aplikacje" END "Internet" MENU "PrzeglÄ…darki" MENU "Netscape" EXEC netscape "Arena" EXEC arena "Lynx" EXEC ULUB_TERM -e lynx %a(Lynx,Podaj URL:) "PrzeglÄ…darki" END "Programy pocztowe" MENU "Pine" EXEC ULUB_TERM -T "Program pocztowy Pine" -e pine "Elm" EXEC ULUB_TERM -T "Program pocztowy Elm" -e elm "Xmh" EXEC xmh "Programy pocztowe" END "Emulator terminala" MENU "Minicom" EXEC xminicom "Seyon" EXEC seyon "Emulator terminala" END "Telnet" EXEC ULUB_TERM -e telnet %a(Telnet,Podaj nazwe hosta:) "Ssh" EXEC ULUB_TERM -e ssh %a(Ssh,Podaj nazwe hosta:) "Ftp" EXEC ULUB_TERM -e ftp %a(Ftp,Podaj nazwe hosta:) "Irc" EXEC ULUB_TERM -e irc %a(Irc,Podaj swoj pseudonim:) "Ping" EXEC ULUB_TERM -e ping %a(Ping,Podaj nazwe hosta:) "Talk" EXEC ULUB_TERM -e talk %a(Talk,Podaj nazwe uzytkownika, z ktorym chcesz nawiazac polaczenie:) "Internet" END "Editory" MENU "XFte" EXEC xfte "XEmacs" EXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "Editres" EXEC editres "VI" EXEC ULUB_TERM -e vi "Editory" END "DźwiÄ™k" MENU "CDPlay" EXEC workbone "Xmcd" EXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "DźwiÄ™k" END "Gry" MENU "Maze" EXEC maze "Karty " EXEC spider "Londownik" EXEC xlander "Szachy " EXEC xboard "Xeyes" EXEC xeyes -geometry 51x23 "Xmahjongg" EXEC xmahjongg "Xlogo" EXEC xlogo "Xroach" EXEC xroach "Xtetris" EXEC xtetris -color "Xvier" EXEC xvier "Xgas" EXEC xgas "Xkobo" EXEC xkobo "xboing" EXEC xboing -sound "XBill" EXEC xbill "Gry" END "Użytki" MENU "Kalkulator" EXEC xcalc "Zegarek" EXEC xclock "Opcje Okna" EXEC xprop | xmessage -center -title 'xprop' -file - "PrzeglÄ…darka Fontów" EXEC xfontsel "SzkÅ‚o PowiÄ™kszajÄ…ce" EXEC xmag "Mapa Kolorów" EXEC xcmap "XKill" EXEC xkill "Clipboard" EXEC xclipboard "Użytki" END "Selekcyjne" MENU "Kopia" EXEC echo '%s' | wxcopy "Poczta do ..." EXEC ULUB_TERM -name mail -T "Pine" -e pine %s "Serfuj do ..." EXEC netscape %s "Pobierz Manual ..." EXEC MANUAL_SEARCH(%s) "Połącz siÄ™ z ..." EXEC telnet %s "Pobierz plik z FTP ..." EXEC ftp %s "Selekcyjne" END "Ekran" MENU "Ukryj PozostaÅ‚e" HIDE_OTHERS "Pokaż wszystko" SHOW_ALL "UporzÄ…dkowanie icon" ARRANGE_ICONS "Odswież" REFRESH "Zablokuj" EXEC xlock -allowroot -usefirst "Zachowaj Sesje" SAVE_SESSION "Wyczyść zachowanÄ… sesje" CLEAR_SESSION "Ekran" END "WyglÄ…d" MENU "Tematy" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle "Style" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle "Ustawienia ikon" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "TÅ‚o" MENU "Jednolite" MENU "Czarny" WS_BACK '(solid, black)' "Niebieski" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Głęboko Niebieski" WS_BACK '(solid, "#224477")' "Fioletowy" WS_BACK '(solid, "#554466")' "Pszeniczny" WS_BACK '(solid, "wheat4")' "Ciemno Szary" WS_BACK '(solid, "#333340")' "Winny" WS_BACK '(solid, "#400020")' "Jednolite" END "Cieniowane" MENU "Zachód SÅ‚oÅ„ca" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)' "Niebo" WS_BACK '(vgradient, blue4, white)' "Cieniowany Niebieski" WS_BACK '(vgradient, "#7080a5", "#101020")' "Cieniowane Indigo" WS_BACK '(vgradient, "#746ebc", "#242e4c")' "Cieniowany Fioletowy" WS_BACK '(vgradient, "#654c66", "#151426")' "Cieniowany Pszeniczny" WS_BACK '(vgradient, "#a09060", "#302010")' "Cieniowany Szary" WS_BACK '(vgradient, "#636380", "#131318")' "Cieniowany Winnny" WS_BACK '(vgradient, "#600040", "#180010")' "Cieniowane" END "Obrazki" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "TÅ‚o" END "ZaoamiÄ™tanie Tematu" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Nazwa tematu,Wpisz nazwe pliku:)" "ZapamiÄ™tanie UstawieÅ„ Ikon" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Ustawienia ikon,wpisz nazwe pliku:)" "WyglÄ…d" END "WyjÅ›cie" MENU "PrzeÅ‚adowanie" RESTART "Start BlackBox" RESTART blackbox "Start kwm" RESTART kwm "Start IceWM" RESTART icewm "WyjÅ›cie..." EXIT "Zabicie sesji..." SHUTDOWN "WyjÅ›cie" END "WindowMaker" END WindowMaker-0.95.5/WindowMaker/menu.ru0000644000175000017500000001411612214432632014527 00000000000000/* * Определение корневого меню Ð´Ð»Ñ WindowMaker * * СинтакÑиÑ: * * <ИмÑ> <Команда> <Параметры> * * <ИмÑ> - Ð»ÑŽÐ±Ð°Ñ Ñтрока Ð´Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° меню. Должна быть заключена в парные ", * еÑли Ñодержит пробелы * * <Команда> одна из Ñледующего набора команд: * MENU - начинает определение (под)меню * OPEN_MENU - Ñчитывает меню из файла или ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ð½Ð¸Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð° * END - заканчивает определение (под)меню * WORKSPACE_MENU - добавлÑет подменю Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¹ Ñ Ð Ð°Ð±Ð¾Ñ‡Ð¸Ð¼ меÑтом * EXEC - выполнÑет внешнюю программу * SHEXEC - executes a shell command (like gimp > /dev/null) * EXIT - завершает работу менеджера окон * RESTART [] - перезапуÑкает WindowMaker или запуÑкает * другой менеджер окон * REFRESH - обновлÑет видимое проÑтранÑтво * ARRANGE_ICONS - упорÑдочивает значки Рабочего меÑта * SHUTDOWN - убивает вÑе Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ( и завершает ÑеÑÑию X) * SHOW_ALL - показывает вÑе окна Рабочего меÑта * HIDE_OTHERS - делает невидимыми вÑе окна Рабочего меÑта, кроме имеющего * Ñ„Ð¾ÐºÑƒÑ ( или поÑледнего имевшего) * * <Параметры> ÑобÑтвенно программа Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ. * * ** Опции Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ Ñтроки в EXEC: * %s - подтановка текущего Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ * %a(message) - открывает окно ввода Ñ Ñообщением и выполнÑет подÑтановку * набранного * %w - заменить на XID окна, имеющего Ñ„Ð¾ÐºÑƒÑ Ð² данный момент * * Ð’Ñ‹ можете избежать Ñпециальной интерпретации знаков ( таких как % и ") Ñ * помощью знака \ : Ðапр.: xterm -T "\"Hello World\"" * * Ð’Ñ‹ можете также иÑпользовать escape-поÑледовательноÑти, как \n * * Каждое предложение MENU должно иметь одно ÑоответÑтвующее предложение END * в конце определениÑ. * Пример: * * "ТеÑÑ‚" MENU * "XTerm" EXEC xterm * // Ñоздает подменю Ñ Ñодержанием /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // вÑтавлÑет style.menu в под Ñтим именем * "Стиль" OPEN_MENU style.menu * "ТеÑÑ‚" END */ #include "wmmacros" "ПриложениÑ" MENU "ИнформациÑ" MENU "Info Panel..." INFO_PANEL "Legal" LEGAL_PANEL "Ðагрузка СиÑтемы" SHEXEC xosview || xload "СпиÑок ПроцеÑÑов" EXEC xterm -e top "ПроÑмотр РуководÑтв" EXEC xman "ИнформациÑ" END "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "XJed" EXEC xjed "Рабочие меÑта" WORKSPACE_MENU "ПриложениÑ" MENU "ГрафичеÑкие" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "ГрафичеÑкие" END "Менеджер файлов X" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(Enter file to view) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Enter PDF to view) "TkDesk" EXEC tkdesk "ПриложениÑ" END "Редакторы" MENU "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Редакторы" END "Разное" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Разное" END "Утилиты" MENU "КалькулÑтор" EXEC xcalc "Выбрать шрифт" EXEC xfontsel "Увеличитель" EXEC xmag "Карта цветов" EXEC xcmap "XKill" EXEC xkill "ЧаÑÑ‹" EXEC asclock -shape "Буфер обмена" EXEC xclipboard "Утилиты" END "Выделение" MENU "Копировать" SHEXEC echo '%s' | wxcopy "Отправить" EXEC xterm -name mail -T "Pine" -e pine %s "ИÑкать в Интернет" EXEC netscape %s "ИÑкать в РуководÑтвах" SHEXEC MANUAL_SEARCH(%s) "Выделение" END "Рабочее меÑто" MENU "Убрать оÑтальные" HIDE_OTHERS "Показать вÑе" SHOW_ALL "УпорÑдочить значки" ARRANGE_ICONS "Обновить" REFRESH "Запереть" EXEC xlock -allowroot -usefirst "Сохранить Рабочее меÑто" EXEC SAVE_WORKSPACE "Рабочее меÑто" END "Внешний вид" MENU /* "Темы" OPEN_MENU themes.menu */ "Фон" MENU "Однотонный" MENU "Черный" WS_BACK '(solid, black)' "Синий" WS_BACK '(solid, "#505075")' "Сиреневый" WS_BACK '(solid, "#554466")' "Пшеничный" WS_BACK '(solid, "wheat4")' "Темно-Ñерый" WS_BACK '(solid, "#333340")' "Винный" WS_BACK '(solid, "#400020")' "Однотонный" END "Градиент" MENU "Ðебо" WS_BACK '(mvgradient, blue4, red3, orange3)' "Огонь" WS_BACK '(vgradient, red4, yellow3)' "Градиент" END "Фон" END "Стили" OPEN_MENU styles.menu "Внешний вид" END "Выход" MENU "ПерезапуÑтить" RESTART "ЗапуÑтить Afterstep" RESTART afterstep "Завершить работу..." EXIT "Завершить ÑеÑÑию..." SHUTDOWN "Выход" END "ПриложениÑ" END WindowMaker-0.95.5/WindowMaker/menu.zh_TW0000644000175000017500000001764512214432632015146 00000000000000/* * Root Menu definition for WindowMaker * * Syntax is: * * [SHORTCUT <Shortcut>] <Command> <Parameters> * * <Title> is any string to be used as title. Must be enclosed with " if it * has spaces * * SHORTCUT specifies a shortcut for that item. <Shortcut> has the * same syntax of the shortcuts key options in the * ~/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey. * * You can't specify a shortcut for a MENU or OPEN_MENU entry. * * <Command> one of the valid commands: * MENU - starts (sub)menu definition * END - end (sub)menu definition * OPEN_MENU - opens a menu from a file, pipe or directory(ies) contents * and eventually precede each with a command. * WORKSPACE_MENU - adds a submenu for workspace operations. Only one * workspace_menu is allowed. * EXEC <program> - executes an external program * EXIT - exits the window manager * RESTART [<window manager>] - restarts WindowMaker or start another * window manager * REFRESH - refreshes the desktop * ARRANGE_ICONS - rearranges the icons on the workspace * SHUTDOWN - kills all clients (and close the X window session) * SHOW_ALL - unhides all windows on workspace * HIDE_OTHERS - hides all windows on the workspace, except the * focused one (or the last one that received focus) * SAVE_SESSION - saves the current state of the desktop, which include * all running applications, all their hints (geometry, * position on screen, workspace they live on, the dock * or clip from where they were launched, and * if minimized, shaded or hidden. Also saves the current * workspace the user is on. All will be restored on every * start of windowmaker until another SAVE_SESSION or * CLEAR_SESSION is used. If SaveSessionOnExit = Yes; in * WindowMaker domain file, then saving is automatically * done on every windowmaker exit, overwriting any * SAVE_SESSION or CLEAR_SESSION (see below). * CLEAR_SESSION - clears any previous saved session. This will not have * any effect if SaveSessionOnExit is True. * INFO - shows the Info Panel * * OPEN_MENU syntax: * 1. File menu handling. * // opens file.menu which must contain a valid menu file and inserts * // it in current position * OPEN_MENU file.menu * 2. Pipe menu handling. * // opens command and uses it's stdout to construct menu. * // Command's output must be a valid menu description. * // The space between '|' and command itself is optional. * OPEN_MENU | command * 3. Directory handling. * // Opens one or more directories and construct a menu with all * // the subdirectories and executable files in them sorted * // alphabetically. * OPEN_MENU /some/dir [/some/other/dir ...] * 4. Directory handling with command. * // Opens one or more directories and construct menu with all * // subdirectories and readable files in them sorted alphabetically, * // preceding each of them with command. * OPEN_MENU [options] /some/dir [/some/other/dir ...] WITH command -options * Options: * -noext strip whatever is after the last dot in the * file name * * <Parameters> is the program to execute. * * ** Options for command line in EXEC: * %s - substitute with current selection * %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 * * You can override special characters (as % and ") with the \ character: * ex: xterm -T "\"Hello World\"" * * You can also use character escapes, like \n * * Each MENU statement must have one mathching END statement at the end. * * Example: * * "Test" MENU * "XTerm" EXEC xterm * // 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 * // set some background images * "Background" OPEN_MENU -noext ~/images /usr/share/images WITH wmsetbg -u -t * // inserts the style.menu in this entry * "Style" OPEN_MENU style.menu * "Test" END */ #include "wmmacros" "應用程å¼" MENU "資訊" MENU "è³‡è¨Šé¢æ¿..." INFO_PANEL "法律..." LEGAL_PANEL "系統主控å°" EXEC xconsole "系統負載" SHEXEC xosview || xload "行程清單" EXEC xterm -e top "手冊ç€è¦½å™¨" EXEC xman "資訊" END "執行..." EXEC %a (執行,輸入執行的命令:) "終端機" EXEC crxvt -thin -ls -T 終端機 -n 終端機 "工作å€" WORKSPACE_MENU "應用程å¼" MENU "å½±åƒè™•ç†" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "å½±åƒè™•ç†" END "X 檔案管ç†å“¡" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(GhostView,è¼¸å…¥è¦æª¢è¦–的檔案) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(è¼¸å…¥è¦æª¢è¦–çš„ PDF) "TkDesk" EXEC tkdesk "應用程å¼" END "編輯器" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "編輯器" END "雜項" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "雜項" END "公用程å¼" MENU "計算機" EXEC xcalc "Window Properties" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Font Chooser" EXEC xfontsel "終端機模擬器" EXEC xminicom "Magnify" EXEC xmag "Colormap" EXEC xcmap "XKill" EXEC xkill "Clipboard" EXEC xclipboard "公用程å¼" END "é¸å–" MENU "複製" SHEXEC echo '%s' | wxcopy "郵寄至" EXEC xterm -name mail -T "Pine" -e pine %s "Navigate" EXEC netscape %s "在手冊中æœå°‹" SHEXEC MANUAL_SEARCH(%s) "é¸å–" END "工作å€" MENU "éš±è—å…¶ä»–" HIDE_OTHERS "全部顯示" SHOW_ALL "排列圖示" ARRANGE_ICONS "æ›´æ–°ç•«é¢" REFRESH "鎖定" EXEC xlock -allowroot -usefirst "儲存階段狀態" SAVE_SESSION "清除階段狀態" CLEAR_SESSION "工作å€" END "外觀" MENU "主題" OPEN_MENU THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle "風格" OPEN_MENU STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle "圖示集" OPEN_MENU ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "背景" MENU "實體色" MENU "Black" WS_BACK '(solid, black)' "Blue" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Bleumarine" WS_BACK '(solid, "#224477")' "Purple" WS_BACK '(solid, "#554466")' "Wheat" WS_BACK '(solid, "wheat4")' "Dark Gray" WS_BACK '(solid, "#333340")' "Wine" WS_BACK '(solid, "#400020")' "實體色" END "漸層色" MENU "Sunset" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)' "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")' "漸層色" END "圖片" OPEN_MENU BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "背景" END "儲存主題" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(主題å稱)" "儲存圖示集" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(圖示集å稱)" "å好設定公用程å¼" EXEC /usr/local/GNUstep/Applications/WPrefs.app/WPrefs "外觀" END "離開" MENU "釿–°å•Ÿå‹•" RESTART "啟動 BlackBox" RESTART blackbox "啟動 kwm" RESTART kwm "啟動 IceWM" RESTART icewm "離開..." EXIT "離開" END "應用程å¼" END �������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Makefile.in����������������������������������������������������������0000644�0001750�0001750�00000051015�12214434561�015262� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WindowMaker DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(prefsdatadir)" DATA = $(prefsdata_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ SUBDIRS = Backgrounds Defaults IconSets Icons Pixmaps Styles Themes prefsdatadir = $(pkgdatadir) prefsdata_DATA = \ appearance.menu\ autostart.sh\ background.menu\ exitscript.sh\ menu\ menu.bg\ menu.ca\ menu.cz\ menu.da\ menu.de\ 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.pl\ menu.pt\ menu.ro\ menu.ru\ menu.se\ menu.sk\ menu.sl\ menu.tr\ menu.zh_CN\ menu.zh_TW\ plmenu\ plmenu.bg\ plmenu.da\ plmenu.de\ plmenu.es\ plmenu.fi\ plmenu.fr\ plmenu.hr\ plmenu.it\ plmenu.ja\ plmenu.ko\ plmenu.pl\ plmenu.ro\ plmenu.sk\ plmenu.zh_CN\ plmenu.zh_TW\ README\ README.themes\ wmmacros EXTRA_DIST = $(prefsdata_DATA) mkMakefile all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WindowMaker/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-prefsdataDATA: $(prefsdata_DATA) @$(NORMAL_INSTALL) test -z "$(prefsdatadir)" || $(MKDIR_P) "$(DESTDIR)$(prefsdatadir)" @list='$(prefsdata_DATA)'; test -n "$(prefsdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(prefsdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(prefsdatadir)" || exit $$?; \ done uninstall-prefsdataDATA: @$(NORMAL_UNINSTALL) @list='$(prefsdata_DATA)'; test -n "$(prefsdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(prefsdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(prefsdatadir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(prefsdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-prefsdataDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-prefsdataDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-prefsdataDATA install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-prefsdataDATA # 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. .NOEXPORT: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/mkMakefile�����������������������������������������������������������0000755�0001750�0001750�00000001331�12214432632�015201� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # # Creates a Makefile.am file containing all the stuff to install # wmaker data # DIRS="Backgrounds Defaults IconSets Icons Pixmaps Styles Themes" FILE=Makefile.am spit() { echo -n "$*" >> $FILE } spitln() { echo "$*" >> $FILE } rm -f $FILE spitln SUBDIRS = $DIRS spitln spitln prefsdatadir = '$(pkgdatadir)' spitln EXCEPT="Makefile.am Makefile.in Makefile mkMakefile $FILE" spit prefsdata_DATA = FILES=`ls -1|grep -v \~` FILES=`echo $FILES` for f in $FILES; do ok=1 for i in $EXCEPT; do if test "$i" = "$f"; then ok=0 break fi done if [ -f $f -a $ok = 1 ]; then spitln \\ spit " $f" fi done spitln spitln spitln EXTRA_DIST = '$(prefsdata_DATA)' mkMakefile spitln spitln �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu.zh_CN���������������������������������������������������������0000644�0001750�0001750�00000010625�12214432632�015437� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������("应用程åº", ("ä¿¡æ¯", ("ä¿¡æ¯é¢æ¿...", INFO_PANEL), ("版æƒ...", LEGAL_PANEL), ("系统控制å°", EXEC, "xconsole"), ("系统负载", SHEXEC, "xosview || xload"), ("进程列表", EXEC, "xterm -e top"), ("手册æµè§ˆå™¨", EXEC, "xman") ), ("è¿è¡Œ...", SHEXEC, "%a(è¿è¡Œ,è¦æ‰§è¡Œçš„命令:)"), ("XTerm", EXEC, "xterm -sb"), ("Rxvt", EXEC, "rxvt -bg black -fg white -fn fixed"), ("工作空间", WORKSPACE_MENU), ("应用程åº", ("图形", ("Gimp", SHEXEC, "gimp >/dev/null"), ("XV", EXEC, "xv"), ("XPaint", EXEC, "xpaint"), ("XFig", EXEC, "xfig") ), ("X 文件管ç†å™¨", EXEC, "xfm"), ("OffiX Files", EXEC, "files"), ("LyX", EXEC, "lyx"), ("Netscape", EXEC, "netscape"), ("Ghostview", EXEC, "ghostview %a(è¾“å…¥è¦æŸ¥çœ‹çš„æ–‡ä»¶å)"), ("Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(è¦æŸ¥çœ‹çš„PDF文件å)"), ("TkDesk", EXEC, "tkdesk") ), ("编辑器", ("XFte", EXEC, "xfte"), ("XEmacs", SHEXEC, "xemacs || emacs"), ("XJed", EXEC, "xjed"), ("NEdit", EXEC, "nedit"), ("Xedit", EXEC, "xedit"), ("VI", EXEC, "xterm -e vi") ), ("其它", ("Xmcd", SHEXEC, "xmcd 2> /dev/null"), ("Xplaycd", EXEC, "xplaycd"), ("Xmixer", EXEC, "xmixer") ), ("工具", ("计算器", EXEC, "xcalc"), ("窗å£å±žæ€§", SHEXEC, "xprop | xmessage -center -title 'xprop' -file - "), ("字体选择", EXEC, "xfontsel"), ("终端模拟器", EXEC, "xminicom"), ("放大", EXEC, "xmag"), ("颜色表", EXEC, "xcmap"), ("XKill", EXEC, "xkill"), ("ASClock", EXEC, "asclock -shape"), ("Clipboard", EXEC, "xclipboard") ), ("选择", ("å¤åˆ¶", SHEXEC, "echo '%s' | wxcopy"), ("å‘é€é‚®ä»¶", EXEC, "xterm -name mail -T Pine -e pine %s"), ("æµè§ˆ", EXEC, "netscape %s"), ("查找手册", SHEXEC, "MANUAL_SEARCH(%s)") ), ("工作空间", ("éšè—å…¶ä»–", HIDE_OTHERS), ("显示所有", SHOW_ALL), ("排列图标", ARRANGE_ICONS), ("刷新", REFRESH), ("é”ä½å±å¹•", EXEC, "xlock -allowroot -usefirst"), ("ä¿å­˜ä¼šè¯", SAVE_SESSION), ("清除ä¿å­˜çš„会è¯", CLEAR_SESSION) ), ("外观", ("主题", OPEN_MENU, "-noext #wmdatadir#/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("风格", OPEN_MENU, "-noext #wmdatadir#/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("图标集", OPEN_MENU, "-noext #wmdatadir#/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("背景", ("å•色", ("黑", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("è“", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("é’", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"), ("æ·±è“", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'"), ("ç´«", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("淡黄", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("æ·±ç°", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("酒红", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ), ("过渡色", ("æ—¥è½", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("天空", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("è“色阴影", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("é’色阴影", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("紫色阴影", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("淡黄阴影", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("ç°è‰²é˜´å½±", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("酒红阴影", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), ("图åƒ", OPEN_MENU, "-noext #wmdatadir#/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), ("ä¿å­˜ä¸»é¢˜", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(主题å)\""), ("ä¿å­˜å›¾æ ‡é›†", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(图标集å)\"") ), ("退出", ("釿–°å¯åЍ", RESTART), ("å¯åЍ BlackBox", RESTART, blackbox), ("å¯åЍ kwm", RESTART, kwm), ("å¯åЍ IceWM", RESTART, icewm), ("退出...", EXIT) ) ) �����������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu.bg������������������������������������������������������������0000644�0001750�0001750�00000012364�12214432632�015030� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������("ПриложениÑ", ("Инфо", ("Информационен панел...", INFO_PANEL), ("Лицензионен панел...", LEGAL_PANEL), ("СиÑтемна конзола", EXEC, "xconsole"), ("Ðатоварване на ÑиÑтемата", SHEXEC, "xosview || xload"), ("СпиÑък на процеÑите", EXEC, "xterm -e top"), ("РъководÑтва", EXEC, "xman") ), ("Стартирай...", SHEXEC, "%a(Run,Въведете команда, коÑто да Ñе Ñтартира:)"), ("XTerm", EXEC, "xterm -sb"), ("Rxvt", EXEC, "rxvt -bg black -fg white -fn fixed"), ("Работни меÑта", WORKSPACE_MENU), ("ПриложениÑ", ("Графични", ("Gimp", SHEXEC, "gimp >/dev/null"), ("XV", EXEC, "xv"), ("XPaint", EXEC, "xpaint"), ("XFig", EXEC, "xfig") ), ("X File Manager", EXEC, "xfm"), ("OffiX Files", EXEC, "files"), ("LyX", EXEC, "lyx"), ("Netscape", EXEC, "netscape"), ("Ghostview", EXEC, "ghostview %a(Enter file to view)"), ("Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(Enter PDF to view)"), ("TkDesk", EXEC, "tkdesk") ), ("Редактори", ("XFte", EXEC, "xfte"), ("XEmacs", SHEXEC, "xemacs || emacs"), ("XJed", EXEC, "xjed"), ("NEdit", EXEC, "nedit"), ("Xedit", EXEC, "xedit"), ("VI", EXEC, "xterm -e vi") ), ("Разни", ("Xmcd", SHEXEC, "xmcd 2> /dev/null"), ("Xplaycd", EXEC, "xplaycd"), ("Xmixer", EXEC, "xmixer") ), ("ИнÑтрументи", ("Калкулатор", EXEC, "xcalc"), ("СвойÑтва на прозореца", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -"), ("Избор на шрифт", EXEC, "xfontsel"), ("Емулатор на терминал", EXEC, "xminicom"), ("Лупа", EXEC, "xmag"), ("Цветна палитра", EXEC, "xcmap"), ("XKill", EXEC, "xkill"), ("ASClock", EXEC, "asclock -shape"), ("Clipboard", EXEC, "xclipboard") ), ("Избор", ("Copy", SHEXEC, "echo '%s' | wxcopy"), ("Mail To", EXEC, "xterm -name mail -T Pine -e pine %s"), ("Navigate", EXEC, "netscape %s"), ("Search in Manual", EXEC, "MANUAL_SEARCH(%s)") ), ("Работно мÑÑто", ("Скрий другите", HIDE_OTHERS), ("Покажи вÑички", SHOW_ALL), ("Подреди иконките", ARRANGE_ICONS), ("ОпреÑни", REFRESH), ("Заключи", EXEC, "xlock -allowroot -usefirst"), ("Запази ÑеÑиÑта", SAVE_SESSION), ("ИзчиÑти запазената ÑеÑиÑ", CLEAR_SESSION) ), ("Изглед", ("Теми", OPEN_MENU, "-noext #wmdatadir#/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("Стилове", OPEN_MENU, "-noext #wmdatadir#/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("Колекции иконки", OPEN_MENU, "-noext #wmdatadir#/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("Фон", ("Плътен", ("Черен", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("Син", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("Тъмнолилав", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"), ("ЯÑно Ñиньо", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#180090\")'"), ("Мораво", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("Пшенично", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("Тъмно Ñиво", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("Винено", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ), ("Градиент", ("Слънце", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("Ðебе", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Сини Ñенки", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("Лилави Ñенки", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("Морави Ñенки", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("Пшенични Ñенки", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("Сиви Ñенки", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Винени Ñенки", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), ("ИзображениÑ", OPEN_MENU, "-noext #wmdatadir#/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), ("Запази темата", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\""), ("Запази колекциÑта иконки", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\""), ("ПоÑобие за наÑтройки", EXEC, "/usr/local/GNUstep/Applications/WPrefs.app/WPrefs") ), ("Изход", ("РеÑтартиране", RESTART), ("Стартирай BlackBox", RESTART, blackbox), ("Стартирай kwm", RESTART, kwm), ("Стартирай IceWM", RESTART, icewm), ("Изход...", EXIT) ) ) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Defaults/������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434643�015043� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Defaults/Makefile.in�������������������������������������������������0000644�0001750�0001750�00000033137�12214434561�017036� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WindowMaker/Defaults DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(defsdatadir)" DATA = $(defsdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ defsdatadir = $(sysconfdir)/WindowMaker defsdata_DATA = WMRootMenu WMWindowAttributes WindowMaker WMState WMGLOBAL wpexecbindir = @wprefs_bindir@ EXTRA_DIST = WMGLOBAL WMWindowAttributes.in WindowMaker.in WMState.in CLEANFILES = WMWindowAttributes WindowMaker WMState WMRootMenu all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Defaults/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WindowMaker/Defaults/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-defsdataDATA: $(defsdata_DATA) @$(NORMAL_INSTALL) test -z "$(defsdatadir)" || $(MKDIR_P) "$(DESTDIR)$(defsdatadir)" @list='$(defsdata_DATA)'; test -n "$(defsdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(defsdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(defsdatadir)" || exit $$?; \ done uninstall-defsdataDATA: @$(NORMAL_UNINSTALL) @list='$(defsdata_DATA)'; test -n "$(defsdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(defsdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(defsdatadir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(defsdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-defsdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-defsdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-defsdataDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-defsdataDATA WMWindowAttributes: $(srcdir)/WMWindowAttributes.in -rm -f WMWindowAttributes sed -e "s:#extension#:@ICONEXT@:" \ $(srcdir)/WMWindowAttributes.in > WMWindowAttributes chmod 644 WMWindowAttributes WindowMaker: $(srcdir)/WindowMaker.in -rm -f WindowMaker sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in \ > WindowMaker chmod 644 WindowMaker WMState: $(srcdir)/WMState.in -rm -f WMState sed -e "s:#wprefs#:$(wpexecbindir)/WPrefs:" $(srcdir)/WMState.in > WMState chmod 644 WMState WMRootMenu: $(srcdir)/../plmenu -cp -f $(srcdir)/../plmenu WMRootMenu # 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. .NOEXPORT: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Defaults/Makefile.am�������������������������������������������������0000644�0001750�0001750�00000001542�12214432632�017015� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ defsdatadir = $(sysconfdir)/WindowMaker defsdata_DATA = WMRootMenu WMWindowAttributes WindowMaker WMState WMGLOBAL wpexecbindir = @wprefs_bindir@ EXTRA_DIST = WMGLOBAL WMWindowAttributes.in WindowMaker.in WMState.in CLEANFILES = WMWindowAttributes WindowMaker WMState WMRootMenu WMWindowAttributes: $(srcdir)/WMWindowAttributes.in -rm -f WMWindowAttributes sed -e "s:#extension#:@ICONEXT@:" \ $(srcdir)/WMWindowAttributes.in > WMWindowAttributes chmod 644 WMWindowAttributes WindowMaker: $(srcdir)/WindowMaker.in -rm -f WindowMaker sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in \ > WindowMaker chmod 644 WindowMaker WMState: $(srcdir)/WMState.in -rm -f WMState sed -e "s:#wprefs#:$(wpexecbindir)/WPrefs:" $(srcdir)/WMState.in > WMState chmod 644 WMState WMRootMenu: $(srcdir)/../plmenu -cp -f $(srcdir)/../plmenu WMRootMenu ��������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Defaults/WMState.in��������������������������������������������������0000644�0001750�0001750�00000001416�12214432632�016635� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ Dock = { Applications = ( { Command = "#wprefs#"; Name = Logo.WMDock; AutoLaunch = No; Forced = No; Position = "0,0"; Lock = Yes; }, { Command = xterm; Name = xterm.XTerm; AutoLaunch = No; Forced = No; Position = "0,1"; } ); Position = "-64,0"; Lowered = No; }; Clip = { Command = "-"; Name = Logo.WMClip; AutoLaunch = No; StartHidden = No; StartMiniaturized = No; Forced = No; Position = "0,0"; DropCommand = "wmsetbg -u -t %d"; }; Workspaces = ( { Name = "Main"; Clip = { Applications = (); Lowered = Yes; Collapsed = No; AutoAttractIcons = No; KeepAttracted = No; }; } ); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Defaults/WindowMaker.in����������������������������������������������0000644�0001750�0001750�00000007516�12214432632�017547� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ SmoothWorkspaceBack = NO; PopupSwitchMenu = NO; MenuStyle = normal; DisableMiniwindows = NO; OpenTransientOnOwnerWorkspace = NO; EdgeResistance = 30; WorkspaceBorderSize = 0; WorkspaceBorder = None; IconificationStyle = Zoom; IconPath = ( "~/GNUstep/Library/Icons", "#pkgdatadir#/Icons", "#pkgdatadir#/Pixmaps", "/usr/include/X11/pixmaps", "~/GNUstep/Library/WindowMaker/Pixmaps", "~/GNUstep/Library/WindowMaker/CachedPixmaps", "/usr/share/icons", "/usr/local/share/pixmaps", "/usr/share/pixmaps" ); PixmapPath = ( "~/GNUstep/Library/WindowMaker/Pixmaps", "~/GNUstep/Library/WindowMaker/Backgrounds", "~/GNUstep/Library/WindowMaker/CachedPixmaps", "#pkgdatadir#/Pixmaps", "#pkgdatadir#/Backgrounds", "/usr/include/X11/pixmaps", "/usr/local/share/pixmaps", "/usr/share/pixmaps" ); WindowTitleBalloons = YES; IconSize = 64; FocusMode = manual; DisableWSMouseActions = NO; MouseLeftButtonAction = SelectWindows; MouseMiddleButtonAction = OpenWindowListMenu; MouseRightButtonAction = OpenApplicationsMenu; MouseWheelAction = None; ColormapSize = 4; DisableDithering = NO; ModifierKey = Mod1; NewStyle = "new"; DisableDock = NO; DisableClip = NO; DisableDrawers = NO; Superfluous = YES; StickyIcons = NO; SaveSessionOnExit = NO; ColormapMode = auto; RaiseDelay = 0; AutoFocus = YES; WindowPlacement = auto; WindowPlaceOrigin = (64, 0); UseSaveUnders = NO; DisableSound = NO; DisableAnimations = NO; DontLinkWorkspaces = YES; AutoArrangeIcons = NO; AdvanceToNewWorkspace = NO; CycleWorkspaces = NO; ResizeDisplay = center; MoveDisplay = floating; OpaqueMove = YES; IconPosition = "blh"; WrapMenus = NO; ScrollableMenus = YES; MenuScrollSpeed = fast; IconSlideSpeed = fast; ShadeSpeed = fast; DoubleClickTime = 250; AlignSubmenus = NO; NoWindowOverIcons = NO; IgnoreFocusClick = NO; CloseKey = None; MaximizeKey = None; VMaximizeKey = None; RaiseLowerKey = None; DontConfirmKill = NO; ShadeKey = None; NextWorkspaceKey = "Mod1+Control+Right"; PrevWorkspaceKey = "Mod1+Control+Left"; RootMenuKey = F12; WindowListKey = F11; WindowMenuKey = "Control+Escape"; RaiseKey = "Mod1+Up"; LowerKey = "Mod1+Down"; FocusNextKey = "Mod1+Tab"; FocusPrevKey = "Mod1+Shift+Tab"; Workspace1Key = "Mod1+1"; Workspace2Key = "Mod1+2"; Workspace3Key = "Mod1+3"; Workspace4Key = "Mod1+4"; Workspace5Key = "Mod1+5"; Workspace6Key = "Mod1+6"; Workspace7Key = "Mod1+7"; Workspace8Key = "Mod1+8"; Workspace9Key = "Mod1+9"; Workspace10Key = "Mod1+0"; HideKey = "Mod1+H"; SelectKey = None; MiniaturizeKey = "Mod1+M"; NextWorkspaceLayerKey = None; PrevWorkspaceLayerKey = None; ConstrainWindowSize = NO; DockRaiseLowerKey = None; ClipRaiseLowerKey = None; TitleJustify = center; WindowTitleFont = "Sans:bold:pixelsize=12"; MenuTitleFont = "Sans:bold:pixelsize=12"; MenuTextFont = "Sans:pixelsize=12"; IconTitleFont = "Sans:pixelsize=9"; ClipTitleFont = "Sans:bold:pixelsize=10"; DisplayFont = "Sans:pixelsize=12"; LargeDisplayFont = "Sans:pixelsize=24"; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = "rgb:61/61/61"; FTitleColor = white; PTitleColor = white; UTitleColor = black; MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray50; WorkspaceBack = (solid, "rgb:50/50/75"); MenuTextColor = black; FTitleBack = (solid, black); UTitleBack = (solid, "rgb:aa/aa/aa"); ResizebarBack = (solid, "rgb:aa/aa/aa"); PTitleBack = (solid, gray40); MenuTitleBack = (solid, black); MenuTextBack = (solid, "rgb:aa/aa/aa"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); ClipAutocollapseDelay = 1000; ClipAutolowerDelay = 1000; ClipAutoexpandDelay = 600; ClipAutoraiseDelay = 600; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Defaults/WMWindowAttributes.in���������������������������������������0000644�0001750�0001750�00000005470�12214432632�021077� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ Logo.WMDock = {Icon = GNUstepGlow.#extension#;}; Logo.WMPanel = {Icon = GNUstep.#extension#;}; Logo.WMClip = {Icon = clip.#extension#;}; Dockit = {Icon = GNUstep.#extension#;}; DockApp = {NoAppIcon = NO;}; panel.Panel = {NoAppIcon = YES;}; gmc.Gmc = {NoAppIcon = YES;}; XTerm = {Icon = Terminal.#extension#;}; NXTerm = {Icon = Terminal.#extension#;}; ScilabGraphic0.Xscilab = {KeepInsideScreen=YES;}; ScilabGraphic1.Xscilab = {KeepInsideScreen=YES;}; ScilabGraphic2.Xscilab = {KeepInsideScreen=YES;}; ScilabGraphic3.Xscilab = {KeepInsideScreen=YES;}; ScilabGraphic4.Xscilab = {KeepInsideScreen=YES;}; ScilabGraphic5.Xscilab = {KeepInsideScreen=YES;}; ScilabGraphic6.Xscilab = {KeepInsideScreen=YES;}; D4X = {KeepInsideScreen = Yes;}; D4X_DnDBasket.D4X_DnDBasket = { NoResizebar = Yes; SkipWindowList = Yes; DontSaveSession = Yes; KeepOnTop = Yes; NoCloseButton = Yes; NoTitlebar = Yes; NoMiniaturizeButton = Yes; Unfocusable = Yes; Omnipresent = Yes; KeepInsideScreen = Yes; }; Kinput2 = { NoTitlebar = Yes; NoResizebar = Yes; NotClosable = Yes; NotMiniaturizable = Yes; KeepOnTop = Yes; Omnipresent = Yes; SkipWindowList = Yes; NoHideOthers = Yes; NoKeyBindings = Yes; NoMouseBindings = Yes; KeepInsideScreen = Yes; NoAppIcon = Yes; Unfocusable = Yes; DontSaveSession = Yes; }; bookmarks.Netscape = {NoAppIcon = YES;}; xcalc = {AlwaysUserIcon = Yes;Icon = "HP-16C-48.xpm";}; Netscape = {Icon = Netscape.xpm;}; Emacs = {Icon = ColorGNU.xpm;}; Ghostview = {Icon = Ghost.xpm;}; AcroRead = {AlwaysUserIcon = Yes;Icon = pdf.#extension#;}; Gimp = {AlwaysUserIcon = Yes;Icon = wilber.#extension#;}; xv = {AlwaysUserIcon = Yes;Icon = xv.#extension#;}; lyX.XForm = {AlwaysUserIcon = Yes;Icon = write.#extension#;}; XPaint = {AlwaysUserIcon = Yes;Icon = Paint.xpm;}; Fig = {AlwaysUserIcon = Yes;Icon = draw.#extension#;}; XLess = {AlwaysUserIcon = YES;Icon = Reference.xpm;}; manualBrowser.Xman = {AlwaysUserIcon = Yes;Icon = Book.xpm;}; Xman = {AlwaysUserIcon = Yes;Icon = Bookshelf.xpm;}; Stepman = {Icon = Bookshelf.xpm;}; Xmag = {Icon = inspect.xpm;}; Xmessage = {Icon = Reference.xpm;}; XConsole = {Icon = inspect.xpm;Omnipresent = Yes;}; Fte = {Icon = Clipboard.tif;}; xjed = {Icon = Clipboard.xpm;}; xedit = {Icon = notepad.#extension#;}; xmixer = {Icon = mixer.#extension#;}; xmcd = {Icon = Radio.xpm;}; xplaycd = {Icon = Radio.xpm;}; xmms.Xmms = {NoAppIcon = Yes;}; kjobviewer = { SkipWindowList = Yes; DontSaveSession = Yes; Unfocusable = Yes; NoAppIcon = Yes; }; kio_uiserver = {NoAppIcon = Yes;}; kcmshell = {NoAppIcon = Yes;}; kded = {NoAppIcon = Yes;}; "." = {NoAppIcon = Yes;}; "*" = {Icon = defaultAppIcon.#extension#;SharedAppIcon = Yes;}; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Defaults/WMGLOBAL����������������������������������������������������0000644�0001750�0001750�00000000333�12214432632�016105� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ SystemFont = "Sans"; BoldSystemFont = "Sans:bold"; DefaultFontSize = 11; AntialiasedText = Yes; FloppyPath = "/media/floppy"; DoubleClickTime = 250; MouseWheelUp = Button4; MouseWheelDown = Button5; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.fi��������������������������������������������������������������0000644�0001750�0001750�00000020574�12214432632�014504� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Root Menu definition for WindowMaker * * Syntax is: * * <Title> [SHORTCUT <Shortcut>] <Command> <Parameters> * * <Title> is any string to be used as title. Must be enclosed with " if it * has spaces * * SHORTCUT specifies a shortcut for that item. <Shortcut> has the * same syntax of the shortcuts key options in the * $HOME/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey. * * You can't specify a shortcut for a MENU or OPEN_MENU entry. * * <Command> one of the valid commands: * MENU - starts (sub)menu definition * END - end (sub)menu definition * OPEN_MENU - opens a menu from a file, pipe or directory(ies) contents * and eventually precede each with a command. * WORKSPACE_MENU - adds a submenu for workspace operations. Only one * workspace_menu is allowed. * EXEC <program> - executes an external program * SHEXEC <command> - executes a shell command (like gimp > /dev/null) * EXIT - exits the window manager * RESTART [<window manager>] - restarts WindowMaker or start another * window manager * REFRESH - refreshes the desktop * ARRANGE_ICONS - rearranges the icons on the workspace * SHUTDOWN - kills all clients (and close the X window session) * SHOW_ALL - unhides all windows on workspace * HIDE_OTHERS - hides all windows on the workspace, except the * focused one (or the last one that received focus) * SAVE_SESSION - saves the current state of the desktop, which include * all running applications, all their hints (geometry, * position on screen, workspace they live on, the dock * or clip from where they were launched, and * if minimized, shaded or hidden. Also saves the current * workspace the user is on. All will be restored on every * start of windowmaker until another SAVE_SESSION or * CLEAR_SESSION is used. If SaveSessionOnExit = Yes; in * WindowMaker domain file, then saving is automatically * done on every windowmaker exit, overwriting any * SAVE_SESSION or CLEAR_SESSION (see below). * CLEAR_SESSION - clears any previous saved session. This will not have * any effect if SaveSessionOnExit is True. * INFO - shows the Info Panel * * OPEN_MENU syntax: * 1. File menu handling. * // opens file.menu which must contain a valid menu file and inserts * // it in current position * OPEN_MENU file.menu * 2. Pipe menu handling. * // opens command and uses it's stdout to construct menu. * // Command's output must be a valid menu description. * // The space between '|' and command itself is optional. * OPEN_MENU | command * 3. Directory handling. * // Opens one or more directories and construct a menu with all * // the subdirectories and executable files in them sorted * // alphabetically. * OPEN_MENU /some/dir [/some/other/dir ...] * 4. Directory handling with command. * // Opens one or more directories and construct menu with all * // subdirectories and readable files in them sorted alphabetically, * // preceding each of them with command. * OPEN_MENU [options] /some/dir [/some/other/dir ...] WITH command -options * Options: * -noext strip whatever is after the last dot in the * file name * * <Parameters> is the program to execute. * * ** Options for command line in EXEC: * %s - substitute with current selection * %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\"" * * You can also use character escapes, like \n * * Each MENU statement must have one mathching END statement at the end. * * Example: * * "Test" MENU * "XTerm" EXEC xterm * // 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 $HOME/bin/X11 * // set some background images * "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 */ #include "wmmacros" "Sovellukset" MENU "Tietoja" MENU "Tietoja..." INFO_PANEL "Laillista" LEGAL_PANEL "Järjestelmäkonsoli" EXEC xconsole "Järjestelmän rasitus" SHEXEC xosview || xload "Prosessiluettelo" EXEC xterm -e top "Ohjeselain" EXEC xman "Tietoja" END "Käynnistä..." SHEXEC %a(Käynnistä,Kirjoita suoritettava komento:) "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "Työtilat" WORKSPACE_MENU "Sovellukset" MENU "Grafiikka" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Grafiikka" END "X Tiedostonhallinta" EXEC xfm "OffiX Tiedostot" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(GhostView,Kirjoita näytettävän tiedoston nimi:) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobat,Kirjoita näytettävän PDF-tiedoston nimi) "TkDesk" EXEC tkdesk "Sovellukset" END "Editorit" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Editorit" END "Sekalaiset" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Sekalaiset" END "Apuohjelmat" MENU "Laskin" EXEC xcalc "Ikkunan ominaisuudet" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Kirjasinlajivalitsin" EXEC xfontsel "Pääte" EXEC xminicom "Suurennuslasi" EXEC xmag "Värikartta" EXEC xcmap "XKill" EXEC xkill "Leikepöytä" EXEC xclipboard "Apuohjelmat" END "Valinta" MENU "Kopioi" SHEXEC echo '%s' | wxcopy "Lähetä sähköpostina" EXEC xterm -name mail -T "Pine" -e pine %s "Selaa selaimella" EXEC netscape %s "Etsi ohjeista" SHEXEC MANUAL_SEARCH(%s) "Valinta" END "Työtila" MENU "Piilota muut" HIDE_OTHERS "Näytä kaikki ikkunat" SHOW_ALL "Järjestä kuvakkeet" ARRANGE_ICONS "Virkistä ruutu" REFRESH "Lukitse näyttö" EXEC xlock -allowroot -usefirst "Tallenna istunto" SAVE_SESSION "Tyhjennä istunto" CLEAR_SESSION "Työtila" END "Ulkonäkö" MENU "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 "Kuvakkeet" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Taustat" MENU "Yksivärinen" MENU "Musta" WS_BACK '(solid, black)' "Sininen" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Tummansininen" WS_BACK '(solid, "#224477")' "Violetti" WS_BACK '(solid, "#554466")' "Kellertävä" WS_BACK '(solid, "wheat4")' "Tummanharmaa" WS_BACK '(solid, "#333340")' "Viininpunainen" WS_BACK '(solid, "#400020")' "Yksivärinen" END "Liukuväri" MENU "Auringonlasku" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)' "Taivas" WS_BACK '(vgradient, blue4, white)' "Sinisen sävyjä" WS_BACK '(vgradient, "#7080a5", "#101020")' "Indigon sävyjä" WS_BACK '(vgradient, "#746ebc", "#242e4c")' "Violetin sävyjä" WS_BACK '(vgradient, "#654c66", "#151426")' "Kellertävän sävyjä" WS_BACK '(vgradient, "#a09060", "#302010")' "Harmaan sävyjä" WS_BACK '(vgradient, "#636380", "#131318")' "Viininpunaisen sävyjä" WS_BACK '(vgradient, "#600040", "#180010")' "Liukuväri" END "Kuvat" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Taustat" END "Tallenna teema" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Teeman nimi,Kirjoita teematiedoston nimi:)" "Tallenna kuvakkeet" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Kuvakesetin nimi,Kirjoita tiedostonnimi:)" "Asetukset" EXEC /usr/local/GNUstep/Applications/WPrefs.app/WPrefs "Ulkonäkö" END "Lopeta" MENU "Käynnistä WM uudelleen" RESTART "Käynnistä BlackBox" RESTART blackbox "Käynnistä kwm" RESTART kwm "Käynnistä IceWM" RESTART icewm "Lopeta" EXIT "Lopeta" END "Sovellukset" END ������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu.ro������������������������������������������������������������0000644�0001750�0001750�00000011435�12214432632�015056� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������("AplicaÅ£ii", ("InformaÅ£ii", ("Panou cu InformaÅ£ii", INFO_PANEL), ("Panou cu LicenÅ£a", LEGAL_PANEL), ("Consola Sistem", EXEC, "xconsole"), ("ÃŽncărcarea Sistemului", SHEXEC, "xosview || xload"), ("Lista de Procese", EXEC, "xterm -e top"), ("Navigator de Pagini Man", EXEC, "xman") ), ("Execută...", SHEXEC, "%a(Execută,IntroduceÅ£i o comandă:)"), ("XTerm", EXEC, "xterm -sb"), ("Rxvt", EXEC, "rxvt -fg white -bg black -fn -misc-fixed-medium-*-*--*-*-*-*-*-*-iso8859-2 -fb -misc-fixed-medium-*-*--*-*-*-*-*-*-iso8859-2"), ("SpaÅ£ii de Lucru", WORKSPACE_MENU), ("AplicaÅ£ii", ("Grafică", ("Gimp", SHEXEC, "gimp >/dev/null"), ("XV", EXEC, "xv"), ("XPaint", EXEC, "xpaint"), ("XFig", EXEC, "xfig") ), ("Manager de FiÅŸiere", EXEC, "xfm"), ("FiÅŸiere OffiX", EXEC, "files"), ("LyX", EXEC, "lyx"), ("Netscape", EXEC, "netscape"), ("Ghostview", EXEC, "ghostview %a(Enter file to view)"), ("Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(Enter PDF to view)"), ("TkDesk", EXEC, "tkdesk") ), ("Editoare", ("XFte", EXEC, "xfte"), ("XEmacs", SHEXEC, "xemacs || emacs"), ("XJed", EXEC, "xjed"), ("NEdit", EXEC, "nedit"), ("Xedit", EXEC, "xedit"), ("VI", EXEC, "xterm -e vi") ), ("Altele", ("Xmcd", SHEXEC, "xmcd 2> /dev/null"), ("Xplaycd", EXEC, "xplaycd"), ("Xmixer", EXEC, "xmixer") ), ("Utilitare", ("Calculator", EXEC, "xcalc"), ("Proprietăţile Ferestrei...", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -"), ("Navigator de Fonturi", EXEC, "xfontsel"), ("Emulator de Terminal", EXEC, "xminicom"), ("Lupă", EXEC, "xmag"), ("Culori", EXEC, "xcmap"), ("Omoară fereastra...", EXEC, "xkill"), ("ASClock", EXEC, "asclock -shape"), ("Clipboard", EXEC, "xclipboard") ), ("SelecÅ£ie", ("Copiază", SHEXEC, "echo '%s' | wxcopy"), ("PoÅŸtă către", EXEC, "xterm -name mail -T Pine -e pine %s"), ("Navighează", EXEC, "netscape %s"), ("Caută în Manual", EXEC, "MANUAL_SEARCH(%s)") ), ("SpaÅ£iu de Lucru", ("Ascunde Celelalte", HIDE_OTHERS), ("Arată celelalte", SHOW_ALL), ("Aranjează IconiÅ£ele", ARRANGE_ICONS), ("Reîmprospătează", REFRESH), ("Blochează", EXEC, "xlock -allowroot -usefirst"), ("Salvează Sesiunea", SAVE_SESSION), ("Åžterge Setările de Sesiune", CLEAR_SESSION) ), ("Configurare", ("Teme", OPEN_MENU, "-noext #wmdatadir#/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("Stiluri", OPEN_MENU, "-noext #wmdatadir#/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("Seturi de IconiÅ£e", OPEN_MENU, "-noext #wmdatadir#/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("Fundal", ("Solid", ("Negru", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("Albastru", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"), ("Bleumarin", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'"), ("Violet", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("Gălbui", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("Gri ÃŽnchis", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("ViÅŸiniu", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ), ("Gradientat", ("Apus", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("Cer", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Gradient Albastru", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("Gradient Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("Gradient Violet", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("Gradient Gălbui", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("Gradient Gri", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Gradient ViÅŸiniu", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), ("Imagini", OPEN_MENU, "-noext #wmdatadir#/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), ("Salvează Tema", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\""), ("Salvează Setul de IconiÅ£e", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\""), ("Utilitar de Configurare", EXEC, "/usr/local/GNUstep/Applications/WPrefs.app/WPrefs") ), ("IeÅŸire", ("Repornire", RESTART), ("PorneÅŸte BlackBox", RESTART, blackbox), ("PorneÅŸte kwm", RESTART, kwm), ("PorneÅŸte IceWM", RESTART, icewm), ("IeÅŸi", EXIT) ) ) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.tr��������������������������������������������������������������0000644�0001750�0001750�00000015226�12214432632�014531� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * WindowMaker için ana menü tanımlası * * Yazım kuralı: * * <BaÅŸlık> [SHORTCUT <Kısayol>] <Komut> <Parametreler> * * <BaÅŸlık> herhangi bitr yazıyı içerebilir, boÅŸul içeriyorsa " içinde * yazılmalı * * SHORTCUT sözkonusu giriÅŸ için kısayol tuÅŸu tanımlamak için kullanılır * <Kısayol>, $HOME/GNUstep/Defaults/WindowMaker olduÄŸu gibi tanımlanabilir. * * MENU veya OPEN_MENU için kısayol tanımlayamazsınız. * * <Komut> aÅŸağıdakilerden birisidir * MENU - (Alt)Menü tanımını baÅŸlatır. * OPEN_MENU - Menüyü, bir dosya veya dizinden oluÅŸturur * END - Alt)Menü tanımını bitirir * WORKSPACE_MENU - Çalışma alanları için altmenüyü ekler * EXEC <program> - programı çalıştırır * SHEXEC <command> - executes a shell command (like gimp > /dev/null) * EXIT - pencere denetçisinden çıkar. * RESTART [<pencere denetçisi>] - Belirtilen pencere denetçisini * yeniden baÅŸlatır. * REFRESH - ekranı tazeler * ARRANGE_ICONS - Ekrandaki simgeleri düzenler * SHUTDOWN - tüm uygulamalrı kapatır ve sistemden çıkar * SHOW_ALL - Tüm pencereleri saklı hallerinden çıkarır * HIDE_OTHERS - içinde bulunulan dışındaki tüm pencereleri saklar * SAVE_SESSION - mevcut uygulamaları ve pencere konumlarını saklar, * yeniden baÅŸladığında bu konumları korumaya çalışır. * CLEAR_SESSION - son saklanan bilgileri siler. * * OPEN_MENU yazım kuralları: * 1. Dosyadan * // dosya.menu isimli geçerli dosya tanımı içeren dosyayı alıp * // belirtilen konuma ekler * OPEN_MENU dosya.menu * * 2. Komut sonucundan * // "komut"u çalıştırı ve çıktısını möenü olarak kullanır. * // Komutun çıktısı geçerli bir menü tanımı vermeli * OPEN_MENU | komut * * 3. Dizinden * // Bir veya daha fazla dizin içinde yer alan çalıştırılabilir * // dosyaları alfabetik olarak sıralayarak menü oluÅŸturur * OPEN_MENU /bir/dizin [/bir/baÅŸka/dizin ...] * * 4. Dizinden komutla * // Dizin seçeneÄŸi gibi, ancak dizindeki dosyaları "komut" * // ile çalıştırır * * OPEN_MENU /bir/dizin [/bir/baÅŸka/dizin ...] WITH komut -seçenekler * * * <Parametreler> çalıştırılacak yazılımın parametreleri * * ** EXEC komut satırı seçenekleri: * %s - mevcut seçimi koyar. * %a(mesaj) - bir mesaj baÅŸlığı ile bir kutucuk açarak yazılan bilgileri * komuta parametre olarak gönderir * %w - seçili pencerenin XID'sini verir. * * Özel karakterleri (% ve " gibi) \ yardımı ile kullanabilirsiniz: * örnek: xterm -T "\"Hello World\"" * * \n gibi komutları da kullanabilirsiniz. * * Her MENU tanımı bir END tanımı içermelidir. * * Örnek: * * "Test" MENU * "XTerm" EXEC xterm * // /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 $HOME/bin/X11 * // bazı arkaplan görüntülerini ekler * "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 */ #include "wmmacros" "Ana Menü" MENU "Bilgi" MENU "Copyright..." EXEC xmessage -center -font variable -title \ 'WindowMaker 'WM_VERSION -file $HOME/GNUstep/Library/WindowMaker/Copyright "Sistem Konsolu" EXEC xconsole "Sistem Yükü" SHEXEC xosview || xload "Süreç Dökümü" EXEC xterm -e top "Kılavuz Tarayıcısı" EXEC xman "Bilgi" END "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "Çalışma Alanları" WORKSPACE_MENU "Uygulamalar" MENU "Görüntü" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Graphics" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(PS dosyasını girin) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(PDF dosyasını girin) "TkDesk" EXEC tkdesk "Uygulamalar" END "Düzenleyiciler" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Düzenleyiciler" END "ÇeÅŸitli" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "ÇeÅŸitli" END "Yardımcılar" MENU "Hesap Makinası" EXEC xcalc "Pencere Özellikleri" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Yazı tipi Tarayıcısı" EXEC xfontsel "Terminal Öykümcüsü" EXEC xminicom "Büyüteç" EXEC xmag "Renk Tablosu" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock -shape "Clipboard" EXEC xclipboard "Yardımcılar" END "Seçim" MENU "Kopyala" SHEXEC echo '%s' | wxcopy "Mail ile gönder" EXEC xterm -name mail -T "Pine" -e pine %s "AÄŸ'da tara" EXEC netscape %s "Kılavuzda ara" SHEXEC MANUAL_SEARCH(%s) "Seçim" END "Çalışma Alanı" MENU "DiÄŸerlerini Sakla" HIDE_OTHERS "Hepsini Göster" SHOW_ALL "Simgeleri DÄŸzenle" ARRANGE_ICONS "Tazele" REFRESH "Kilitle" EXEC xlock -allowroot -usefirst "Oturumu Sakla" SAVE_SESSION "Saklanmış Oturumu Sil" CLEAR_SESSION "Çalışma Alanı" END "Görünüm" MENU "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)' "Blue" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Bleumarine" WS_BACK '(solid, "#224477")' "Purple" WS_BACK '(solid, "#554466")' "Wheat" WS_BACK '(solid, "wheat4")' "Dark Gray" WS_BACK '(solid, "#333340")' "Wine" WS_BACK '(solid, "#400020")' "Düz Renk" END "Renk GeçiÅŸi" MENU "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 $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Arkaplan" END "Tema Sakla" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Simge Kümesi Sakla" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Görünüm" END "Çıkış" MENU "Yeniden BaÅŸlat" RESTART "AfterStep BaÅŸlat" RESTART afterstep "Çıkış..." EXIT "Oturumu Kapat..." SHUTDOWN "Çıkış" END "Ana Menü" END ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/README.themes��������������������������������������������������������0000644�0001750�0001750�00000005245�12214432632�015362� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ Themes For Window Maker ======================= Note: the information contained in this file is only valid for themes in the .themed (for theme directory) format, supported in Window Maker 0.20.4 or newer. How To Install a Theme Pack =========================== To install a theme, unpack your theme into your WindowMaker directory (the same as old-style themes), usually ~/GNUstep/Library/WindowMaker cd ~/GNUstep/Library/WindowMaker gzip -dc "xyztheme.tar.gz" | tar xvf - You can also do this in your system-wide WindowMaker directory (usually /usr/local/share/WindowMaker) to have the themes be available to all your users. This will probably need to be done with root access. How To Load a Theme =================== Use the setstyle command to load a theme. Example: setstyle xyztheme.themed Note that if you move the directory of the theme (for example, from ~/GNUstep/Library/WindowMaker/Themes to /usr/local/share/WindowMaker/Themes) you will have to reload that theme so that path information is updated. How To Make a Theme Pack ======================== To create a theme pack from your current configuration, use the getstyle utility with the -p flag. Example: getstyle -p ~/GNUstep/Library/WindowMaker/Themes/MyTheme This will create a theme pack (a new directory in either the current directory or a directory you specify) named MyTheme.themed, containing everything it requires, including all pixmap files. In this example, the new theme pack would be made in your themes directory and be immediately available in your Themes menu. Additionally, you can put a text file named MyTheme.lsm in the MyTheme.themed directory. This file can contain info like copyrights, credits or whatever. To distribute your theme, just make a .tar.gz of the .themed directory. This is preferably done from the same directory that you unpack the themes from to maintain consistancy with the old theme format. Example: cd ~/GNUstep/Library/WindowMaker tar cvf MyTheme.tar Themes/MyTheme.themed gzip MyTheme.tar How To Delete a Theme Pack ========================== Just remove the .themed directory. Example: cd ~/GNUstep/Library/WindowMaker/Themes rm -fr themename.themed How To Save Disk Space ====================== If you have more than 1 theme that use the same huge background image, you can delete all the duplicated files and then create hard links in place of them. For example, if you have: theme1.themed/back.jpg theme2.themed/backimage.jpg theme3.themed/back.jpg and all three files contain the same image, you can do: rm theme2.themed/backimage.jpg rm theme3.themed/back.jpg ln theme1.themed/back.jpg theme2.themed/backimage.jpg ln theme1.themed/back.jpg theme3.themed/back.jpg �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu.ko������������������������������������������������������������0000644�0001750�0001750�00000013151�12214432632�015044� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������("윈ë„ìš°ë©”ì´ì»¤", ("ì • ë³´", ("ì •ë³´ 패ë„", INFO_PANEL), ("저작권 ì •ë³´", LEGAL_PANEL), ("시스템 로드", SHEXEC, "xosview || xload"), ("매뉴얼 찾기", EXEC, "xman"), ("프로세스목ë¡", EXEC, "xterm -e top") ), ("한 í…€", SHORTCUT, "SHIFT+META+H", EXEC, "hanterm"), ("명 ë ¹ ì°½", SHORTCUT, "SHIFT+META+C", EXEC, "%a(실행할 명령:)"), ("ìž… ë ¥ 기", SHORTCUT, "SHIFT+META+I", SHEXEC, "ami || hanIM"), ("프로그램", ("í„° 미 ë„", ("한 í…€", EXEC, "hanterm"), ("하얀한텀", SHORTCUT, "SHIFT+META+M", EXEC, "hanterm -fg black -bg gray75"), ("ê´€ 리 ìž", SHORTCUT, "SHIFT+META+R", EXEC, "hanterm -T ê´€ë¦¬ìž -n ê´€ë¦¬ìž -name root -e su -"), ("ì—‘ 스 í…€", EXEC, "nxterm || xterm") ), ("네트워í¬", ("모 질 ë¼", SHORTCUT, "SHIFT+META+N", EXEC, "netscape"), ("유 즈 ë„·", EXEC, "hanterm -T 유즈넷 -n 유즈넷 -e slrn -C"), ("ì´ ë©” ì¼", EXEC, "hanterm -T ì´ë©”ì¼ -n ì´ë©”ì¼ -e mutt"), ("나우누리", EXEC, "hanterm -T 나우누리 -n 나우누리 -e ztelnet nownuri.net"), ("하 ì´ í…”", EXEC, "hanterm -T 하ì´í…” -n 하ì´í…” -e ztelnet home.hitel.net"), ("천 리 안", EXEC, "hanterm -T 천리안 -n 천리안 -e ztelnet chonllian.net"), ("ê°€ ìš°", SHEXEC, "gau || gaui") ), ("문서편집", ("VIM", EXEC, "hanterm -T VIM -n VIM -e vim"), ("피 ì½”", EXEC, "hanterm -T 피코 -n 피코 -e pico"), ("ì´ë§¥ìФ", EXEC, "emacs") ), ("ê·¸ 래 픽", ("XV", EXEC, "xv"), ("GIMP", EXEC, "gimp"), ("GQview", EXEC, "gqview"), ("XPaint", EXEC, "xpaint"), ("XFig", EXEC, "xfig") ), ("ë„구모ìŒ", ("계 ì‚° 기", EXEC, "xcalc"), ("ì°½ ì† ì„±", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -"), ("글꼴보기", EXEC, "xfontsel"), ("ë‹ ë³´ 기", EXEC, "xmag"), ("컬 러 ë§µ", EXEC, "xcmap"), ("강제종료", EXEC, "xkill"), ("í´ë¦½ë³´ë“œ", EXEC, "xclipboard") ), ("멀티미디어", ("믹 서", SHEXEC, "xmixer || hanterm -T AuMIX -n AuMix -e aumix"), ("MPEG보기", EXEC, "mtv"), ("MP3 연주기", SHEXEC, "xmms || x11amp"), ("CD연주기", EXEC, "xplaycd") ) ), ("ì°½ ê´€ 리", ("다른창숨김", HIDE_OTHERS), ("모ë‘ë³´ì´ê¸°", SHOW_ALL), ("ì•„ì´ì½˜ì •ë ¬", ARRANGE_ICONS), ("화면정리", REFRESH), ("세션저장", SAVE_SESSION), ("세션삭제", CLEAR_SESSION) ), ("작업공간", WORKSPACE_MENU), ("작업환경", ("설 ì •", SHEXEC, "/usr/local/GNUstep/Applications/WPrefs.app/WPrefs || wmakerconf"), ("í…Œ 마", OPEN_MENU, "-noext /usr/share/WindowMaker/Themes ~/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("테마저장", EXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(테마 ì´ë¦„,íŒŒì¼ ì´ë¦„ì„ ìž…ë ¥í•˜ì„¸ìš”:)\""), ("스 타 ì¼", OPEN_MENU, "-noext /usr/share/WindowMaker/Styles ~/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("ì•„ì´ì½˜ì…‹", OPEN_MENU, "-noext /usr/share/WindowMaker/IconSets ~/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("ì•„ì´ì½˜ì…‹ì €ìž¥", EXEC, "geticonset ~/GNUstep/Library/WindowMaker/IconSets/\"%a(ì•„ì´ì½˜ì…‹ ì´ë¦„,íŒŒì¼ ì´ë¦„ì„ ìž…ë ¥í•˜ì„¸ìš”:)\""), ("배경화면", ("단 색", ("Black", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("Blue", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"), ("Bleumarine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'"), ("Purple", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("Wheat", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("Dark Gray", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("Wine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'"), ("색지정", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"%a(배경색:)\")'") ), ("ê·¸ 림", ("전체화면", OPEN_MENU, "-noext /usr/share/WindowMaker/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -s"), ("타ì¼í˜•ì‹", OPEN_MENU, "-noext /usr/share/WindowMaker/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t"), ("ê°€ ìš´ ë°", OPEN_MENU, "-noext /usr/share/WindowMaker/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -e") ), ("그래디언트", ("Sunset", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("Sky", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Blue Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("Indigo Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("Purple Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("Wheat Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("Grey Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Wine Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ) ) ), ("화면잠금", SHORTCUT, "SHIFT+META+L", EXEC, "xlock -allowroot -usefirst"), ("종 료", ("재 시 ìž‘", RESTART), ("재 시 ìž‘", ("BlackBox", RESTART, "blackbox"), ("KDE", RESTART, "kwm"), ("IceWM", RESTART, "icewm"), ("AfterStep", RESTART, "afterstep"), ("Enlightenment", RESTART, "enlightenment"), ("FVWM2", RESTART, "fvwm2") ), ("종 료", EXIT), ("새션종료", SHUTDOWN) ) ) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.da��������������������������������������������������������������0000644�0001750�0001750�00000023030�12214432632�014460� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Hovedmenu for WindowMaker. * * Syntaks: * * <Titel> [SHORTCUT <Genvej>] <Kommando> <Parametre> * * <Titel> er en tekst som anvendes som titel i menuen. Teksten * skal omgives med " hvis den indeholder mellemrum. * * SHORTCUT angiver en genvej for menuobjektet. <Genvej> har samme * syntaks som genvejene i filen $HOME/GNUStep/Defaults/WindowMaker. * * Man kan ikke angive en genvej for kommandoerne MENU og OPEN_MENU. * * <Kommando> kan være et af følgende: * MENU - starter (under)menu definition. * END - afslutter (under)menu definition. * OPEN_MENU - Ã¥bner en menu fra en fil, pipe eller indholdet af * et katalog, eventuelt med en kommando forrest. * WORKSPACE_MENU - tilføjer en undermenu med arbejdsbords- * kommandoer. Kun WORKSPACE_MENU er tilladt. * EXEC <program> - kører et eksternt program. * SHEXEC <command> - executes a shell command (like gimp > /dev/null) * EXIT - afslutter WindowMaker (men ikke X). * RESTART [<window manager>] - genstarter WindowMaker eller starter en * anden window manager. * REFRESH - genopfrisker skærmen. * ARRANGE_ICONS - arrangerer ikonerne pÃ¥ arbejdsbordet. * SHUTDOWN - afslutter alle programmer og afslutter X-værten. * SHOW_ALL - viser alle vinduer pÃ¥ skrivebordet. * HIDE_OTHERS - skjuler alle vinduer pÃ¥ skrivebordet pÃ¥ nær det * markerede (eller det sidst markerede). * SAVE_SESSION - gemmer arbejdsbordets indstillinger. Dvs. alle * aktive programmer (størrelse, position, arbejdsbord, * hvilken dock/clip, de startede fra, om de er minimeret, * skygget eller gemt. Husker ogsÃ¥ hvilket arbejdsbord * brugeren var pÃ¥. Alt bliver genskabt ved hver opstart * indtil næste gang man vælger SAVE_SESSION eller * CLEAR_SESSION. Hvis SaveSessionOnExit = Yes i * WindowMakers domænefil sÃ¥ gemmes indstillingerne * automatisk ved hvert exit og enhver SAVE_SESSION og * CLEAR_SESSION (se nedenfor) overskrives. * CLEAR_SESSION - sletter alle tidligere gemte indstillinger. * Har ingen effekt hvis SaveSessionOnExit er slÃ¥et til. * INFO - viser Info Panel. * * OPEN_MENU syntaks: * 1. FilmenuhÃ¥ndtering. * // Ã¥bner fil.menu, som skal indeholde en gyldig menufil, og indlæser * // indholdet pÃ¥ den nuværende position. * OPEN_MENU fil.menu * 2. Pipe-menuhÃ¥ndtering. * // Ã¥bner kommando og anvender dens stdout til at konstruere menu. * // Kommandoens output skal være en gyldig menubeskrivelse. Det er * // lige meget om der er mellemrum mellem '|' og selve kommandoen. * OPEN_MENU | kommando * 3. KataloghÃ¥ndtering. * // Ã¥bner en eller flere kataloger og konstruerer en menu med * // alle underkataloger og eksekverbare filer i dem sorteret * // alfabetisk. * OPEN_MENU /et/katalog [/et/andet/katalog ...] * 4. KataloghÃ¥ndtering med kommando. * // Ã…bner et eller flere kataloger og konstruerer en menu med * // alle underkataloger og læsbare filer sorteret alfabetisk, * // hver med en kommando forrest. * OPEN_MENU /et/katalog [/et/andet/katalog ...] WITH kommando -argument * * * <Parametre> er programmet som skal udføres. * * ** Alternativer for kommandolinie i EXEC: * %s - erstat med den aktive markering. * %a(meddelelse) - Ã¥bner en input box med meddelelsen og indsætter * din skrevne tekst. * %w - erstat med XID for det markerede vindue. * * Du kan bruge '\' i stedet for specialtegn (som % og ") f ex: * xterm -T "\"Hello World\"" * * Du kan ogsÃ¥ bruge tegnkoder som f.eks \n. * * Hvert MENU-udsagn skal have et matchende END-udsagn som afslutning. * * Eksempel: * * "Test" MENU * "XTerm" EXEC xterm * // 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 $HOME/bin/X11 * // sæt et baggrundsbillede * "Baggrund" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // indføjer style.menu her * "Stil" OPEN_MENU style.menu * "Test" END */ #include "wmmacros" "Applikationer" MENU "Info" MENU "Info Panel..." INFO_PANEL "Copyright..." LEGAL_PANEL "Systemkonsol" EXEC xconsole "Systembelastning" SHEXEC xosview || xload "Procesliste" EXEC xterm -fg wheat -bg black -fn 6x10 -geometry 80x50 -e top "Manualer" EXEC xman "Info" END "Kør..." SHEXEC "%a(Kør,Indtast kommando der skal udføres:)" "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white "Arbejdsborde" WORKSPACE_MENU "Applikationer" MENU "Grafik" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Grafik" END "X FilhÃ¥ndtering" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(GhostView,Indtast filnavn) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobat,Indtast PDF-filnavn) "TkDesk" EXEC tkdesk "Applikationer" END "Tekstbehandling" MENU "XFte" EXEC xfte "Emacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Tekstbehandling" END "Diverse" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Diverse" END "Tilbehør" MENU "Lommeregner" EXEC xcalc "Vindues Egenskaber" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Vælg skrifttype" EXEC xfontsel "Terminalemulator" EXEC xminicom "Forstørrelsesglas" EXEC xmag "Farver" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock -shape "Udklipsbord" EXEC xclipboard "Tilbehør" END "Markeret" MENU "Kopier" SHEXEC echo '%s' | wxcopy "Send e-post til" EXEC xterm -name mail -T "Pine" -e pine %s "Indtast URL" EXEC netscape %s "Søg i manual" SHEXEC MANUAL_SEARCH(%s) "Markeret" END "Arbejdsbord" MENU "Skjul andre" HIDE_OTHERS "Vis alle" SHOW_ALL "Arranger ikoner" ARRANGE_ICONS "Genindlæs" REFRESH "LÃ¥s" EXEC xlock -allowroot -usefirst "Gem miljø" SAVE_SESSION "Slet gemt miljø" CLEAR_SESSION "Arbejdsbord" END "Udseende" MENU "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)' "BlÃ¥" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "MørkeblÃ¥" WS_BACK '(solid, "#224477")' "Lilla" WS_BACK '(solid, "#554466")' "Hvede" WS_BACK '(solid, "wheat4")' "MørkegrÃ¥" WS_BACK '(solid, "#333340")' "Bordeaux" WS_BACK '(solid, "#400020")' "Ensfarvet" END "Nuancer" MENU "Solopgang" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)' "Himmel" WS_BACK '(vgradient, blue4, white)' "BlÃ¥ Skygger" WS_BACK '(vgradient, "#7080a5", "#101020")' "Indigo Skygger" WS_BACK '(vgradient, "#746ebc", "#242e4c")' "Lilla Skygger" WS_BACK '(vgradient, "#654c66", "#151426")' "Hvede Skygger" WS_BACK '(vgradient, "#a09060", "#302010")' "GrÃ¥ Skygger" WS_BACK '(vgradient, "#636380", "#131318")' "Bordeaux Skygger" WS_BACK '(vgradient, "#600040", "#180010")' "Flag" WS_BACK '(mdgradient, green, red, white, green)' "Nuancer" END "Billeder" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Baggrund" END "Gem Tema" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Tema navn,Indtast navn:)" "Gem Ikonsæt" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Ikonsæt navn,Indtast navn:)" "Udseende" END "Afslut" MENU "Genstart" RESTART "Start Blackbox" RESTART blackbox "Start kwm" RESTART kwm "Start IceWM" RESTART icewm "Afslut..." EXIT "Afslut" END "Applikationer" END ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/IconSets/������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434643�015023� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/IconSets/Makefile.in�������������������������������������������������0000644�0001750�0001750�00000032177�12214434561�017021� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WindowMaker/IconSets DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(defsdatadir)" DATA = $(defsdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ defsdatadir = $(pkgdatadir)/IconSets defsdata_DATA = Default.iconset EXTRA_DIST = CLEANFILES = Default.iconset all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/IconSets/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WindowMaker/IconSets/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-defsdataDATA: $(defsdata_DATA) @$(NORMAL_INSTALL) test -z "$(defsdatadir)" || $(MKDIR_P) "$(DESTDIR)$(defsdatadir)" @list='$(defsdata_DATA)'; test -n "$(defsdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(defsdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(defsdatadir)" || exit $$?; \ done uninstall-defsdataDATA: @$(NORMAL_UNINSTALL) @list='$(defsdata_DATA)'; test -n "$(defsdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(defsdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(defsdatadir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(defsdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-defsdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-defsdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-defsdataDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-defsdataDATA Default.iconset: $(top_builddir)/WindowMaker/Defaults/WMWindowAttributes -rm -f Default.iconset echo '{' > Default.iconset grep Icon $(top_builddir)/WindowMaker/Defaults/WMWindowAttributes >> Default.iconset echo '}' >> Default.iconset chmod 644 Default.iconset # 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. .NOEXPORT: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/IconSets/Makefile.am�������������������������������������������������0000644�0001750�0001750�00000000602�12214432632�016771� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ defsdatadir = $(pkgdatadir)/IconSets defsdata_DATA = Default.iconset EXTRA_DIST = CLEANFILES = Default.iconset Default.iconset: $(top_builddir)/WindowMaker/Defaults/WMWindowAttributes -rm -f Default.iconset echo '{' > Default.iconset grep Icon $(top_builddir)/WindowMaker/Defaults/WMWindowAttributes >> Default.iconset echo '}' >> Default.iconset chmod 644 Default.iconset ������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.sk��������������������������������������������������������������0000644�0001750�0001750�00000022244�12214432632�014517� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Slovak root menu for WindowMaker * (C) 2001 Jan "judas" Tomka * * Original translation by Jan "judas" Tomka on Jan 22 2001 * Currently maintained by Jan "judas" Tomka <tomka@oalevice.sk> * * Version history: * WM-ver author email date * 0.63.1 Jan "judas" Tomka <tomka@oalevice.sk> Jan 28 2001 * 0.64.0 Jan "judas" Tomka <tomka@oalevice.sk> Feb 25 2001 * */ /* * Syntax je: * * <Názov> [SHORTCUT <Klávesová skratka>] <Príkaz> <Parametre> * * <Názov> je ľubovoľný reÅ¥azec, ktorý sa použije ako názov položky. Ak obsahuje * medzery, musí byÅ¥ uzavretý v úvodzovkách. * * SHORTCUT udáva klávesovú skratku pre danú položku. <Klávesová skratka> má * rovnakú syntax ako v súbore $HOME/GNUstep/Defaults/WindowMaker, napr. * RootMenuKey alebo MiniaturizeKey. * * Nemôžete zadaÅ¥ klávesovú skratku pre položky typu MENU a OPEN_MENU. * * <Príkaz> je jeden z nasledujúcich: * MENU - zaÄína definíciu (sub)menu * END - ukonÄuje definíciu (sub)menu * OPEN_MENU - vloží menu zo súboru, rúry alebo adresára(ov), * eventuálne pred každú položku vloží príkaz * WORKSPACE_MENU - vloží submenu operácií pracovnej plochy. Je povolené * len jedno takéto menu * EXEC <príkaz> - vykoná externý príkaz * SHEXEC <príkaz> - vykoná príkaz shelu (napr. gimp > /dev/null) * EXIT - ukonÄí manažér okien * RESTART [<manažér okien>] - reÅ¡tartuje WindowMaker alebo spustí iný * manažér okien * REFRESH - obnoví obrazovku * ARRANGE_ICONS - vyrovná ikony na pracovnej ploche * SHUTDOWN - zabije vÅ¡etkých klientov (a ukonÄí sedenie X systému) * SHOW_ALL - zobrazí vÅ¡etky okná na pracovnej ploche * HIDE_OTHERS - skryje vÅ¡etky okná na pracovnej ploche okrem * aktívneho (alebo posledného aktívneho) * SAVE_SESSION - uloží aktuálny stav pracovnej plochy, Äo zahŕňa vÅ¡etky * spustené aplikácie, ich nastavenia (geometria, * umiestnenie na obrazovke, pracovná plocha, na ktorej sa * nachádzajú, Dok alebo Sponka, odkiaľ boli spustené, Äi * sú minimalizované, zrolované alebo skryté. Tiež sa uloží * plocha, na ktorej sa užívateľ nachádza. Pri každom Å¡tarte * WindowMakeru sa tieto nastavenia obnovia až kým sa nepou- * žije znova SAVE_SESSION alebo CLEAR_SESSION. Ak je * SaveSessionOnExit = Yes; v súbore domén WindowMakeru, * potom sa toto vÅ¡etko ukladá pri každom ukonÄení * WindowMakeru, Äím sa prepíšu predchádzajúce SAVE_SESSION * a CLEAR_SESSION (viÄ nižšie). * CLEAR_SESSION - zmaže uložené sedenie. Toto nemá úÄinok, keÄ je * nastavené SaveSessionOnExit. * INFO - zobrazí panel Info * * Syntax príkazu OPEN_MENU: * 1. Vkladanie menu zo súboru. * // otvorí súbor.menu, ktorý musí obsahovaÅ¥ definíciu menu a toto * // vloží na aktuálnu pozíciu * OPEN_MENU súbor.menu * 2. Vkladanie menu z rúry * // spustí program a jeho Å¡tandardný výstup použije ako definíciu menu. * // Výstup menu musí byÅ¥ korektná definícia menu. * // Medzera medzi '|' a samotným príkazom nie je povinná. * // Použite '||' namiesto '|' ak chcete, aby sa menu obnovovalo * // pri každom otvorení. Môže to byÅ¥ pomalé. * OPEN_MENU | príkaz * OPEN_MENU || príkaz * 3. Vkladanie menu z adresára * // Otvorí jeden alebo viac adresárov vytvorí menu z podadresárov a * // spustiteľných súborov zoradených v abecednom poradí. * OPEN_MENU /nejaký/adresár [/Äalší/adresár ...] * 4. Vkladanie adresára s príkazom * // Otvorí jeden alebo viac adresárov a vytvorí menu zo vÅ¡etkých * // podadresárov a súborov s právom Äítania, zoradených v abecednom * // poradí, priÄom pred každý vloží príkaz. * OPEN_MENU [voľby] /nejaký/adr [/Äalší/adr ...] WITH príkaz -voľby * Voľby: * -noext odstrániÅ¥ zvyÅ¡ok mena súboru za poslednou * bodkou (príponu) * * <Parametre> sú odovzdané aplikácii, ktorá sa má vykonaÅ¥. * * ** Voľby príkazového riadku príkazu EXEC: * %s - nahradiÅ¥ aktuálnym výberom * %a(titul[,výzva]) - otvorí dialóg s daným titulom, prípadne i výzvou a * nahradí sa v príkaze textom, ktorý zadáte * %w - nahradí sa identifikaÄným Äíslom (XID) aktuálneho okna * %W - nahradí sa Äíslom aktuálnej pracovnej plochy * * VložiÅ¥ Å¡peciálne znaky (ako % a ") môžete pomocou znaku \ : * xterm -T "\"Ahoj svet\"" * * Tiež je povolené používaÅ¥ Å¡peciálne kombinácie znakov, ako napr. \n * * Každý príkaz MENU musí maÅ¥ na konci zodpovedajúci príkaz END. * * Príklad: * * "Test" MENU * "XTerm" EXEC xterm * // vytvorí submenu s obsahom adresára /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // aplikácie X11 v rôznych adresároch * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // nastaví obrázky pozadia * "Pozadie" OPEN_MENU -noext $HOME/images /usr/share/images WITH wmsetbg -u -t * // vloží menu definované v súbore style.menu * "Å týl" OPEN_MENU style.menu * "Test" END */ #include "wmmacros" "Aplikácie" MENU "Informácie" MENU "Panel Info" INFO_PANEL "Panel Legal" LEGAL_PANEL "Systémová konzola" EXEC xconsole "ZaÅ¥aženie systému" SHEXEC xosview || xload "Zoznam procesov" EXEC xterm -e top "PrehliadaÄ manuálov" EXEC xman "Informácie" END "SpustiÅ¥..." SHEXEC %a(SpustiÅ¥,Zadajte príkaz:) "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "Pracovné plochy" WORKSPACE_MENU "Aplikácie" MENU "Grafika" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Grafika" END "Správca súborov Xfm" EXEC xfm "Správca súborov OffiX" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(GhostView,Zadajte meno súboru) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobar,Zadajte meno PDF súboru) "TkDesk" EXEC tkdesk "Aplikácie" END "Editory" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VIM" EXEC xterm -e vim "Editory" END "Rôzne" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "CD prehrávaÄ" EXEC xplaycd "Mixer" EXEC xmixer "Rôzne" END "Nástroje" MENU "KalkulaÄka" EXEC xcalc "Vlastnosti okien" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Výber fontu" EXEC xfontsel "Emulátor terminálu" EXEC xminicom "Lupa" EXEC xmag "Paleta" EXEC xcmap "ZabiÅ¥ okno" EXEC xkill "Nástenka" EXEC xclipboard "Nástroje" END "Výber" MENU "KopírovaÅ¥" SHEXEC echo '%s' | wxcopy "PoslaÅ¥ poÅ¡tu" EXEC xterm -name mail -T "Pine" -e pine %s "PrehliadaÅ¥ web" EXEC netscape %s "HľadaÅ¥ v manuáli" SHEXEC MANUAL_SEARCH(%s) "Výber" END "Pracovná plocha" MENU "SkryÅ¥ ostatné" HIDE_OTHERS "ZobraziÅ¥ vÅ¡etky" SHOW_ALL "VyrovnaÅ¥ ikony" ARRANGE_ICONS "ObnoviÅ¥ obrazovku" REFRESH "Uzamknúť" EXEC xlock -allowroot -usefirst "UložiÅ¥ sedenie" SAVE_SESSION "ZmazaÅ¥ sedenie" CLEAR_SESSION "Pracovná plocha" END "Vzhľad" MENU "Témy" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle "Å týly" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle "Sady ikon" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Pozadie" MENU "Jedna farba" MENU "ÄŒierna" WS_BACK '(solid, black)' "Modrá" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Námornícka modrá" WS_BACK '(solid, "#224477")' "Fialová" WS_BACK '(solid, "#554466")' "PÅ¡eniÄná" WS_BACK '(solid, "wheat4")' "Tmavosivá" WS_BACK '(solid, "#333340")' "Vínová" WS_BACK '(solid, "#400020")' "Jedna farba" END "Prechod farieb" MENU "Západ slnka" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)' "Obloha" WS_BACK '(vgradient, blue4, white)' "Odtiene modrej" WS_BACK '(vgradient, "#7080a5", "#101020")' "Odtiene indiga" WS_BACK '(vgradient, "#746ebc", "#242e4c")' "Odtiene fialovej" WS_BACK '(vgradient, "#654c66", "#151426")' "Odtiene pÅ¡eniÄnej" WS_BACK '(vgradient, "#a09060", "#302010")' "Odtiene sivej" WS_BACK '(vgradient, "#636380", "#131318")' "Odtiene vínovej" WS_BACK '(vgradient, "#600040", "#180010")' "Prechod farieb" END "Obrázky" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Pozadie" END "UložiÅ¥ tému" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Meno témy,Zadajte názov súboru:)" "UložiÅ¥ sadu ikon" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Meno sady ikon,Zadajte názov súboru:)" "KonfiguraÄný nástroj" EXEC /usr/local/GNUstep/Applications/WPrefs.app/WPrefs "Vzhľad" END "Koniec" MENU "ReÅ¡tartovaÅ¥" RESTART "SpustiÅ¥ BlackBox" RESTART blackbox "SpustiÅ¥ kwm" RESTART kwm "SpustiÅ¥ IceWM" RESTART icewm "Koniec" EXIT "Koniec" END "Aplikácie" END ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Makefile.am����������������������������������������������������������0000644�0001750�0001750�00000001360�12214432632�015244� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������SUBDIRS = Backgrounds Defaults IconSets Icons Pixmaps Styles Themes prefsdatadir = $(pkgdatadir) prefsdata_DATA =\ appearance.menu\ autostart.sh\ background.menu\ exitscript.sh\ menu\ menu.bg\ menu.ca\ menu.cz\ menu.da\ menu.de\ 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.pl\ menu.pt\ menu.ro\ menu.ru\ menu.se\ menu.sk\ menu.sl\ menu.tr\ menu.zh_CN\ menu.zh_TW\ plmenu\ plmenu.bg\ plmenu.da\ plmenu.de\ plmenu.es\ plmenu.fi\ plmenu.fr\ plmenu.hr\ plmenu.it\ plmenu.ja\ plmenu.ko\ plmenu.pl\ plmenu.ro\ plmenu.sk\ plmenu.zh_CN\ plmenu.zh_TW\ README\ README.themes\ wmmacros EXTRA_DIST = $(prefsdata_DATA) mkMakefile ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu.ja������������������������������������������������������������0000644�0001750�0001750�00000011503�12214432632�015024� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������("アプリケーション", ("情報", ("Info パãƒãƒ«", INFO_PANEL), ("Legal パãƒãƒ«", LEGAL_PANEL), ("システムコンソール", EXEC, "xconsole"), ("システム負è·", SHEXEC, "xosview || xload"), ("プロセス一覧", EXEC, "xterm -e top"), ("マニュアルブラウザ", EXEC, "xman") ), ("コマンド実行", SHEXEC, "%a(Run,Type command to run:)"), ("KTerm", EXEC, "kterm -sb"), ("Rxvt", EXEC, "rxvt -bg black -fg white"), ("ワークスペース", WORKSPACE_MENU), ("アプリケーション", ("グラフィックス", ("Gimp", SHEXEC, "gimp >/dev/null"), ("XV", EXEC, "xv"), ("XPaint", EXEC, "xpaint"), ("XFig", EXEC, "xfig") ), ("X File Manager", EXEC, "xfm"), ("OffiX Files", EXEC, "files"), ("LyX", EXEC, "lyx"), ("Netscape", EXEC, "netscape"), ("Ghostview", EXEC, "ghostview %a(Enter file to view)"), ("Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(Enter PDF to view)"), ("TkDesk", EXEC, "tkdesk") ), ("エディタ", ("XFte", EXEC, "xfte"), ("XEmacs", SHEXEC, "xemacs || emacs || mule"), ("XJed", EXEC, "xjed"), ("NEdit", EXEC, "nedit"), ("Xedit", EXEC, "xedit"), ("VI", EXEC, "xterm -e vi") ), ("ã„ã‚ã„ã‚", ("Xmcd", SHEXEC, "xmcd 2> /dev/null"), ("Xplaycd", EXEC, "xplaycd"), ("Xmixer", EXEC, "xmixer") ), ("ユーティリティー", ("é›»å“", EXEC, "xcalc"), ("プロパティ表示", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -"), ("フォントセレクタ", EXEC, "xfontsel"), ("端末エミュレータ", EXEC, "xminicom"), ("眼é¡", EXEC, "xmag"), ("カラーマップ", EXEC, "xcmap"), ("XKill", EXEC, "xkill"), ("ASClock", EXEC, "asclock -shape"), ("Clipboard", EXEC, "xclipboard") ), ("セレクション", ("コピー", SHEXEC, "echo '%s' | wxcopy"), ("Mail To", EXEC, "xterm -name mail -T Pine -e pine %s"), ("Navigate", EXEC, "netscape %s"), ("マニュアル検索", EXEC, "MANUAL_SEARCH(%s)") ), ("ワークスペース", ("ä»–ã‚’ãƒã‚¤ãƒ‰", HIDE_OTHERS), ("å…¨ã¦è¡¨ç¤º", SHOW_ALL), ("アイコンã®å†è¡¨ç¤º", ARRANGE_ICONS), ("ç”»é¢ã®å†æç”»", REFRESH), ("ロック", EXEC, "xlock -allowroot -usefirst"), ("セッションをセーブ", SAVE_SESSION), ("セッションをクリア", CLEAR_SESSION) ), ("外観", ("テーマ", OPEN_MENU, "-noext #wmdatadir#/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("スタイル", OPEN_MENU, "-noext #wmdatadir#/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("アイコンセット", OPEN_MENU, "-noext #wmdatadir#/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("背景", ("ソリッド", ("Black", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("Blue", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"), ("Bleumarine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'"), ("Purple", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("Wheat", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("Dark Gray", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("Wine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ), ("グラデーション", ("Sunset", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("Sky", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Blue Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("Indigo Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("Purple Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("Wheat Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("Grey Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Wine Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), ("イメージ", OPEN_MENU, "-noext #wmdatadir#/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), ("設定をテーマã¨ã—ã¦ã‚»ãƒ¼ãƒ–", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\""), ("ç¾åœ¨ã®ã‚¢ã‚¤ã‚³ãƒ³ã‚»ãƒƒãƒˆã‚’セーブ", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\""), ("設定ユーティリティ", EXEC, "/usr/local/GNUstep/Applications/WPrefs.app/WPrefs") ), ("終了", ("å†èµ·å‹•", RESTART), ("BlackBox をスタート", RESTART, blackbox), ("kwm をスタート", RESTART, kwm), ("IceWM をスタート", RESTART, icewm), ("終了", EXIT) ) ) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.ro��������������������������������������������������������������0000644�0001750�0001750�00000020616�12214432632�014523� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Root Menu definition for WindowMaker * * Syntax is: * * <Title> [SHORTCUT <Shortcut>] <Command> <Parameters> * * <Title> is any string to be used as title. Must be enclosed with " if it * has spaces * * SHORTCUT specifies a shortcut for that item. <Shortcut> has the * same syntax of the shortcuts key options in the * $HOME/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey. * * You can't specify a shortcut for a MENU or OPEN_MENU entry. * * <Command> one of the valid commands: * MENU - starts (sub)menu definition * END - end (sub)menu definition * OPEN_MENU - opens a menu from a file, pipe or directory(ies) contents * and eventually precede each with a command. * WORKSPACE_MENU - adds a submenu for workspace operations. Only one * workspace_menu is allowed. * EXEC <program> - executes an external program * SHEXEC <command> - executes a shell command (like gimp > /dev/null) * EXIT - exits the window manager * RESTART [<window manager>] - restarts WindowMaker or start another * window manager * REFRESH - refreshes the desktop * ARRANGE_ICONS - rearranges the icons on the workspace * SHUTDOWN - kills all clients (and close the X window session) * SHOW_ALL - unhides all windows on workspace * HIDE_OTHERS - hides all windows on the workspace, except the * focused one (or the last one that received focus) * SAVE_SESSION - saves the current state of the desktop, which include * all running applications, all their hints (geometry, * position on screen, workspace they live on, the dock * or clip from where they were launched, and * if minimized, shaded or hidden. Also saves the current * workspace the user is on. All will be restored on every * start of windowmaker until another SAVE_SESSION or * CLEAR_SESSION is used. If SaveSessionOnExit = Yes; in * WindowMaker domain file, then saving is automatically * done on every windowmaker exit, overwriting any * SAVE_SESSION or CLEAR_SESSION (see below). * CLEAR_SESSION - clears any previous saved session. This will not have * any effect if SaveSessionOnExit is True. * INFO - shows the Info Panel * * OPEN_MENU syntax: * 1. File menu handling. * // opens file.menu which must contain a valid menu file and inserts * // it in current position * OPEN_MENU file.menu * 2. Pipe menu handling. * // opens command and uses it's stdout to construct menu. * // Command's output must be a valid menu description. * // The space between '|' and command itself is optional. * OPEN_MENU | command * 3. Directory handling. * // Opens one or more directories and construct a menu with all * // the subdirectories and executable files in them sorted * // alphabetically. * OPEN_MENU /some/dir [/some/other/dir ...] * 4. Directory handling with command. * // Opens one or more directories and construct menu with all * // subdirectories and readable files in them sorted alphabetically, * // preceding each of them with command. * OPEN_MENU [options] /some/dir [/some/other/dir ...] WITH command -options * Options: * -noext strip whatever is after the last dot in the * file name * * <Parameters> is the program to execute. * * ** Options for command line in EXEC: * %s - substitute with current selection * %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\"" * * You can also use character escapes, like \n * * Each MENU statement must have one mathching END statement at the end. * * Example: * * "Test" MENU * "XTerm" EXEC xterm * // 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 $HOME/bin/X11 * // set some background images * "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 */ #include "wmmacros" "AplicaÅ£ii" MENU "InformaÅ£ii" MENU "Panou cu InformaÅ£ii" INFO_PANEL "Panou cu LicenÅ£a" LEGAL_PANEL "Consola Sistem" EXEC xconsole "ÃŽncărcarea Sistemului" SHEXEC xosview || xload "Lista Proceselor" EXEC xterm -e top "Navigator de Pagini Man" EXEC xman "InformaÅ£ii" END "Execută..." SHEXEC %a(Execută,IntroduceÅ£i o comandă:) "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn -misc-fixed-medium-*-*--*-*-*-*-*-*-iso8859-2 -fb -misc-fixed-medium-*-*--*-*-*-*-*-*-iso8859-2 "SpaÅ£ii de Lucru" WORKSPACE_MENU "AplicaÅ£ii" MENU "Grafică" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Grafică" END "Manager de FiÅŸiere" EXEC xfm "Fisiere OffiX" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "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 "AplicaÅ£ii" END "Editoare" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Editoare" END "Altele" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Altele" END "Utilitare" MENU "Calculator" EXEC xcalc "Proprietăţile Ferestrei..." SHEXEC xprop | xmessage -center -title 'xprop' -file - "Navigator de Fonturi" EXEC xfontsel "Emulator de Terminal" EXEC xminicom "Lupă" EXEC xmag "Culori" EXEC xcmap "Omoară Fereastra..." EXEC xkill "Clipboard" EXEC xclipboard "Utilitare" END "SelecÅ£ie" MENU "Copiază" SHEXEC echo '%s' | wxcopy "PoÅŸtă către" EXEC xterm -name mail -T "Pine" -e pine %s "Navighează" EXEC netscape %s "Caută în Manual" SHEXEC MANUAL_SEARCH(%s) "SelecÅ£ie" END "SpaÅ£iu de Lucru" MENU "Ascunde Celelalte" HIDE_OTHERS "Arată Tot" SHOW_ALL "Aranjează IconiÅ£ele" ARRANGE_ICONS "Reîmprospătează" REFRESH "Blochează" EXEC xlock -allowroot -usefirst "Salvează Sesiunea" SAVE_SESSION "Åžterge Setările de Sesiune" CLEAR_SESSION "SpaÅ£iu de Lucru" END "Configurare" MENU "Teme" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle "Stiluri" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle "Seturi de Icoane" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Fundal" MENU "Solid" MENU "Negru" WS_BACK '(solid, black)' "Albastru" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Bleumarin" WS_BACK '(solid, "#224477")' "Violet" WS_BACK '(solid, "#554466")' "Gălbui" WS_BACK '(solid, "wheat4")' "Gri ÃŽnchis" WS_BACK '(solid, "#333340")' "ViÅŸiniu" WS_BACK '(solid, "#400020")' "Solid" END "Gradientat" MENU "Apus" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)' "Cer" WS_BACK '(vgradient, blue4, white)' "Gradient Albastru" WS_BACK '(vgradient, "#7080a5", "#101020")' "Gradient Indigo" WS_BACK '(vgradient, "#746ebc", "#242e4c")' "Gradient Violet" WS_BACK '(vgradient, "#654c66", "#151426")' "Gradient Gălbui" WS_BACK '(vgradient, "#a09060", "#302010")' "Gradient Gri" WS_BACK '(vgradient, "#636380", "#131318")' "Gradient ViÅŸiniu" WS_BACK '(vgradient, "#600040", "#180010")' "Gradientat" END "Imagini" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Fundal" END "Salvează Tema" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name,Enter file name:)" "Salvează Setul de IconiÅ£e" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name,Enter file name:)" "Utilitar de Configurare" EXEC /usr/local/GNUstep/Applications/WPrefs.app/WPrefs "Configurare" END "IeÅŸire" MENU "Repornire" RESTART "PorneÅŸte BlackBox" RESTART blackbox "PorneÅŸte kwm" RESTART kwm "PorneÅŸte IceWM" RESTART icewm "IeÅŸi" EXIT "IeÅŸire" END "AplicaÅ£ii" END ������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.cz��������������������������������������������������������������0000644�0001750�0001750�00000010330�12214432632�014507� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Text bellow is in czech, encoding ISO8829-2. // // Definice hlavního menu pro WindowMaker // // Syntaxe: // // <Titulek> <Příkaz> <Parametry> // // <Titulek> je jakýkoli Å™etÄ›z znaků. Pokud obsahuje mezery musí být // uzavÅ™en do uvozovek (") // // <Příkaz> může být jeden z následujících: // MENU - definice nové (sub)menu // END - konec definice nového menu // EXEC <program> - provede se program // EXIT - ukonÄí se WindowMaker // RESTART [<window manager>] - restart WM nebo jiného správce oken // REFRESH - obnoví okna na pracovní ploÅ¡e // ARRANGE_ICONS - srovná ikony // SHUTDOWN - ukonÄí vÅ¡echny klienty i X server // WORKSPACE_MENU - pÅ™idá menu pro práci s pracovními plochami // SHOW_ALL - obnoví vÅ¡echna skrytá okna // HIDE_OTHERS - skryje vÅ¡echna okna (mimo zaměřeného, nebo toho, které // bylo naposledy zaměřeno) // // <Parameters> je program, který bude proveden. // // Každý příkaz MENU musí mít odpovídající END. // následující text je Äesky, kódován ISO8859-2. #include <wmmacros> "Hlavní menu" MENU "Správce oken" MENU "Editace menu" SHEXEC xterm -T 'Editace menu' -e joe $HOME/GNUstep/Library/WindowMaker/menu "Správce oken" END "Info" MENU "Info Panel..." INFO_PANEL "Legal" LEGAL_PANEL // "Xosview" EXEC xosview "Top" EXEC xterm -e top "Manuál" EXEC xman "Info" EXEC xterm -T 'info' -e info "Xwininfo" EXEC windebug|xless "Xwinevent" EXEC xwinev "Info" END "XTerm" EXEC xterm -sb // "XJed" EXEC xjed "Midnight commander" EXEC xterm -name 'mc' -e mc -cm "Pracovní plochy" WORKSPACE_MENU "Aplikace" MENU "Grafické" MENU "Gimp" EXEC gimp "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Gnuplot" EXEC xterm -T "GNU plot" -e gnuplot "Grafické" END "VÄ›decké" MENU "Astro" EXEC xephem "MuPAD" EXEC xmupad -bg grey -geometry 590x385 "VÄ›decké" END "Vývojové" MENU "X Gnu debbuger" EXEC xxgdb "Emacs" EXEC emacs "Resource editor" EXEC editres "Vývojové" END "Hry" MENU "Bludišťě" EXEC maze // "Karty " EXEC spider "Å achy " EXEC xboard "Xeyes" EXEC xeyes -geometry 51x23 "Xlogo" EXEC xlogo "Brouci" EXEC xroach "Xtetris" EXEC xtetris -color "Xvier" EXEC xvier "Xgas" EXEC xgas "Xkobo" EXEC xkobo "xboing" EXEC xboing -sound "XBill" EXEC xbill "Civilization" EXEC civ "Hry" END // "X File Manager" EXEC xfm "Správce souborů" EXEC files // "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread "OpenDOS" EXEC runxdos // "TkDesk" EXEC tkdesk "Aplikace" END "Editory" MENU "Emacs" EXEC emacs // "XJed" EXEC xjed // "NEdit" EXEC nedit "Xedit" EXEC xedit // "VI" EXEC xterm -e vi "Joe" EXEC xterm -T 'Joe' -e joe "Editory" END "Různé" MENU // "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Různé" END "Pomůcky" MENU "KoÅ¡" EXEC trash "Hodiny" EXEC xclock "Kalkulátor" EXEC xcalc "VýbÄ›r fontu" EXEC xfontsel "Lupa" EXEC xmag "Mapa barev" EXEC xcolormap "XKill" EXEC xkill "AfterstepClock" EXEC asclock -position +671+-1 "Pomůcky" END "Pracovní plocha" MENU "Barva" MENU "-" EXEC CLEARROOT "ÄŒerná" WS_BACK '(solid, black)' "Modrá" WS_BACK '(solid, "#505075")' "Purpurová" WS_BACK '(solid, "#554466")' "Å edozelená" WS_BACK '(solid, "#554466")' "TmavÄ› Å¡edá" WS_BACK '(solid, "#333340")' "Vínová" WS_BACK '(solid, "#400020")' "Barva" END #if (DEPTH>=8) // Setup some gradient schemes for newbies and lazy people // You must RESTART after selecting the gradient. #include <gradients.menu> #endif "Skryj ostatní" HIDE_OTHERS "Ukaž vÅ¡echny" SHOW_ALL "Srovnej ikony" ARRANGE_ICONS "Obnov" REFRESH "Zámek" EXEC xlock -allowroot -usefirst "Ulož vzhled" EXEC SAVE_WORKSPACE "Pracovní plocha" END "Konec" MENU // 'Restartovat' není opravdu příliÅ¡ Äeské slovo, najde nÄ›kdo lepší ? "Restartovat" RESTART // "Start AfterStep" RESTART afterstep "UkonÄit..." EXIT // "UkonÄit sezení..." SHUTDOWN "Konec" END "Hlavní menu" END ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu.zh_TW���������������������������������������������������������0000644�0001750�0001750�00000010712�12214432632�015466� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������("應用程å¼", ("資訊", ("è³‡è¨Šé¢æ¿...", INFO_PANEL), ("法律...", LEGAL_PANEL), ("系統主控å°", EXEC, "xconsole"), ("系統負載", SHEXEC, "xosview || xload"), ("行程清單", EXEC, "xterm -e top"), ("手冊ç€è¦½å™¨", EXEC, "xman") ), ("執行...", SHEXEC,"%a(執行,輸入執行的命令:)"), ("終端機", EXEC, "crxvt -ls -T 終端機 -n 終端機"), ("工作å€", WORKSPACE_MENU), ("應用程å¼", ("å½±åƒè™•ç†", ("Gimp", SHEXEC, "gimp >/dev/null"), ("XV", EXEC, "xv"), ("XPaint", EXEC, "xpaint"), ("XFig", EXEC, "xfig") ), ("X 檔案管ç†å“¡", EXEC, "xfm"), ("OffiX Files", EXEC, "files"), ("LyX", EXEC, "lyx"), ("Netscape", EXEC, "netscape"), ("Ghostview", EXEC, "ghostview %a(GhostView,è¼¸å…¥è¦æª¢è¦–的檔案)"), ("Acrobat", EXEC, "acroread %a(Acrobat,è¼¸å…¥è¦æª¢è¦–çš„ PDF)"), ("TkDesk", EXEC, "tkdesk") ), ("編輯器", ("XFte", EXEC, "xfte"), ("XEmacs", SHEXEC, "xemacs || emacs"), ("XJed", EXEC, "xjed"), ("NEdit", EXEC, "nedit"), ("Xedit", EXEC, "xedit"), ("VI", EXEC, "xterm -e vi") ), ("雜項", ("Xmcd", SHEXEC, "xmcd 2> /dev/null"), ("Xplaycd", EXEC, "xplaycd" ), ("Xmixer", EXEC, "xmixer") ), ("公用程å¼", ("計算機", EXEC, "xcalc"), ("Window Properties", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -"), ("Font Chooser", EXEC, "xfontsel"), ("終端機模擬器", EXEC, "xminicom"), ("Magnify", EXEC, "xmag"), ("Colormap", EXEC, "xcmap"), ("XKill", EXEC, "xkill"), ("Clipboard", EXEC, "xclipboard") ), ("é¸å–", ("複製", SHEXEC, "echo '%s' | wxcopy"), ("郵寄至", EXEC, "xterm -name mail -T \"Pine\" -e pine %s"), ("Navigate", EXEC, "netscape %s"), ("在手冊中æœå°‹", SHEXEC, "MANUAL_SEARCH(%s)") ), ("工作å€", ("éš±è—å…¶ä»–", HIDE_OTHERS), ("全部顯示", SHOW_ALL), ("排列圖示", ARRANGE_ICONS), ("æ›´æ–°ç•«é¢", REFRESH), ("鎖定", EXEC, "xlock -allowroot -usefirst"), ("儲存階段狀態", SAVE_SESSION), ("清除階段狀態", CLEAR_SESSION) ), ("外觀", ("主題", OPEN_MENU, "-noext #wmdatadir#/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("風格", OPEN_MENU, "-noext #wmdatadir#/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("圖示集", OPEN_MENU, "-noext #wmdatadir#/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("背景", ("實體色", ("Black", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("Blue", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"), ("Bleumarine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'"), ("Purple", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("Wheat", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("Dark Gray", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("Wine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ), ("漸層色", ("Sunset", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("Sky", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Blue Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("Indigo Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("Purple Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("Wheat Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("Grey Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Wine Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), ("圖片", OPEN_MENU, "-noext #wmdatadir#/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), ("儲存主題", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/%a(主題å稱)"), ("儲存圖示集", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/%a(圖示集å稱)"), ("å好設定公用程å¼", EXEC, "/usr/local/GNUstep/Applications/WPrefs.app/WPrefs") ), ("離開", ("釿–°å•Ÿå‹•", RESTART), ("啟動 BlackBox", RESTART, blackbox), ("啟動 kwm", RESTART, kwm), ("啟動 IceWM", RESTART, icewm), ("離開...", EXIT) ) ) ������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu���������������������������������������������������������������0000644�0001750�0001750�00000010513�12214432632�014433� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������("Applications", ("Info", ("Info Panel", INFO_PANEL), ("Legal", LEGAL_PANEL), ("System Console", EXEC, "xconsole"), ("System Load", SHEXEC, "xosview || xload"), ("Process List", EXEC, "xterm -e top"), ("Manual Browser", EXEC, "xman") ), ("Run...", SHEXEC, "%a(Run,Type command to run:)"), ("XTerm", EXEC, "xterm -sb"), ("Mozilla Firefox", EXEC, "firefox"), ("Workspaces", WORKSPACE_MENU), ("Applications", ("Gimp", SHEXEC, "gimp >/dev/null"), ("Ghostview", EXEC, "ghostview %a(Enter file to view)"), ("Xpdf", EXEC, "xpdf %a(Enter PDF to view)"), ("Abiword", EXEC, "abiword"), ("Dia", EXEC, "dia"), ("OpenOffice.org", ("OpenOffice.org", EXEC, "ooffice"), ("Writer", EXEC, "oowriter"), ("Spreadsheet", EXEC, "oocalc"), ("Draw", EXEC, "oodraw"), ("Impress", EXEC, "ooimpress") ), ("Editors", ("XEmacs", EXEC, "xemacs"), ("Emacs", EXEC, "emacs"), ("XJed", EXEC, "xjed"), ("VI", EXEC, "xterm -e vi"), ("GVIM", EXEC, "gvim"), ("NEdit", EXEC, "nedit"), ("Xedit", EXEC, "xedit") ), ("Multimedia", ("XMMS", ("XMMS", EXEC, "xmms"), ("XMMS play/pause", EXEC, "xmms -t"), ("XMMS stop", EXEC, "xmms -s") ), ("Xine video player", EXEC, "xine"), ("MPlayer", EXEC, "mplayer") ) ), ("Utils", ("Calculator", EXEC, "xcalc"), ("Window Properties", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -"), ("Font Chooser", EXEC, "xfontsel"), ("Magnify", EXEC, "wmagnify"), ("Colormap", EXEC, "xcmap"), ("Kill X Application", EXEC, "xkill") ), ("Selection", ("Copy", SHEXEC, "echo '%s' | wxcopy"), ("Mail To", EXEC, "xterm -name mail -T Pine -e pine %s"), ("Navigate", EXEC, "mozilla %s"), ("Search in Manual", EXEC, "MANUAL_SEARCH(%s)") ), ("Commands", ("Hide Others", HIDE_OTHERS), ("Show All", SHOW_ALL), ("Arrange Icons", ARRANGE_ICONS), ("Refresh", REFRESH), ("Lock", EXEC, "xlock -allowroot -usefirst") ), ("Appearance", ("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)'"), ("Blue", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"), ("Bluemarine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'"), ("Purple", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("Wheat", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("Dark Gray", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("Wine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ), ("Gradient", ("Sunset", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("Sky", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Blue Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("Indigo Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("Purple Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("Wheat Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("Grey Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Wine Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), ("Images", OPEN_MENU, "-noext #wmdatadir#/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), ("Save Theme", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\""), ("Save IconSet", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\""), ("Preferences Utility", EXEC, "/usr/local/GNUstep/Applications/WPrefs.app/WPrefs") ), ("Session", ("Save Session", SAVE_SESSION), ("Clear Session", CLEAR_SESSION), ("Restart Window Maker", RESTART), ("Start BlackBox", RESTART, blackbox), ("Start IceWM", RESTART, icewm), ("Exit", EXIT) ) ) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.it��������������������������������������������������������������0000644�0001750�0001750�00000007720�12214432632�014520� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������// // Root Menu definizioni per WindowMaker // // Sintassi: // // <Titolo> <Comando> <Parametri> // // <Titolo> e' la stringa usata per il titolo. Deve essere racchiusa dagli apici // se contiene degli spazi // // <Comando> uno dei seguenti comandi: // MENU - inizio della definizione di un sottomenu // END - fine della definizione di un sottomenu // EXEC <programma> - esegue un programma // SHEXEC <command> - executes a shell command (like gimp > /dev/null) // EXIT - esce dal gestore di finestre (Window Manager) // RESTART [<window manager>] - reinizializza WindowMaker o lancia un altro // window manager // REFRESH - ridisegna l'area di lavoro // ARRANGE_ICONS - riordina le icone sull'area di lavoro // SHUTDOWN - uccide tutti i clienti (e chiude la sessione X window) // WORKSPACE_MENU - aggiunge un submenu per operazioni sull'area di lavoro // SHOW_ALL - mostra tutte le finestre dell'area di lavoro // HIDE_OTHERS -nasconde tutte le finestre dell'area di lavoro eccetto // la finestra attiva (or the last one that received focus) // // <Parametri> e' il programma da eseguire. // // ** Opzioni per la linea di comando in EXEC: // %s - sostituisce con la selezione corrente. Se non e' disponibile nessuna // selezione, il comando e' annullato // %w - sostituisce con l'identificativo della finestra correntemente // selezionata. Se nessuna finestra e' selezionata, viene restituito vuoto // // Si possono generare caratteri speciali (come % e ") con il carattere \ : // esempio: xterm -T "\"ciao mondo\"" (ndt banale, no? ) // // Ciascun comando MENU deve avere un comando END alla fine. // Vedere esempio: #include <wmmacros> "Applicazioni" MENU "Informazioni" MENU "Info Panel..." INFO_PANEL "Legal" LEGAL_PANEL "Carico del Sistema" SHEXEC xosview || xload "Lista dei Processi" EXEC xterm -e top "Ricerca Manuali" EXEC xman "Informazioni" END "XTerm" SHEXEC xterm -sb || color-xterm -sb || xterm -sb "XJed" EXEC xjed "Area di lavoro" WORKSPACE_MENU "Applicazioni" MENU "Grafica" MENU "Gimp" EXEC gimp "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Grafica" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(Ghostview) "XDvi" EXEC xdvi %a(XDvi) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobat) "TkDesk" EXEC tkdesk "Applicazioni" END "Editori" MENU "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Editori" END "Varie" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Varie" END "Utilita'" MENU "Calcolatore" EXEC xcalc "Selezione Font" EXEC xfontsel "Lente" EXEC xmag "Mappa Colori" EXEC xcmap "Assassinio X" EXEC xkill "ASClock" EXEC asclock -shape "Clipboard" EXEC xclipboard "Utilita'" END "Selezione" MENU "Invio posta a.." EXEC xterm -name mail -T "Pine" -e pine %s "Navigare" SHEXEC netscape -noraise -remote \ 'openURL(%s,new-window)' || netscape %s "Ricerca nei Manuali" SHEXEC MANUAL_SEARCH(%s) "Selezione" END "Area di lavoro" MENU "Nascondi Altri" HIDE_OTHERS "Mostra Tutti" SHOW_ALL "Riordina Icone" ARRANGE_ICONS "Refresh" REFRESH "Lock" EXEC xlock -allowroot -usefirst "Sfondo" MENU "Nessuno" EXEC CLEARROOT "Nero" WS_BACK '(solid, black)' "Blu" WS_BACK '(solid, "#505075")' "Rosso" WS_BACK '(solid, "#554466")' "Beige" WS_BACK '(solid, wheat4)' "Grigio scuro" WS_BACK '(solid, "#333340")' "Vinaccia" WS_BACK '(solid, "#400020")' "Sfondo" END #if (DEPTH>8) // Setup some gradient schemes for newbies and lazy people // E' necessario rieiniziare dopo avere selezionato il gradiente. #include <gradients.menu> #endif "Salva area di lavoro" EXEC SAVE_WORKSPACE "Area di lavoro" END "Uscire" MENU "Restart" RESTART "Avviare AfterStep" RESTART afterstep "Uscire..." EXIT "Uscire dalla sessione..." SHUTDOWN "Uscire" END "Applicazioni" END ������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu�����������������������������������������������������������������0000644�0001750�0001750�00000020070�12214432632�014076� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Root Menu definition for WindowMaker * * Syntax is: * * <Title> [SHORTCUT <Shortcut>] <Command> <Parameters> * * <Title> is any string to be used as title. Must be enclosed with " if it * has spaces * * SHORTCUT specifies a shortcut for that item. <Shortcut> has the * same syntax of the shortcuts key options in the * $HOME/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey. * * You can't specify a shortcut for a MENU or OPEN_MENU entry. * * <Command> one of the valid commands: * MENU - starts (sub)menu definition * END - end (sub)menu definition * OPEN_MENU - opens a menu from a file, pipe or directory(ies) contents * and eventually precede each with a command. * WORKSPACE_MENU - adds a submenu for workspace operations. Only one * workspace_menu is allowed. * EXEC <program> - executes an external program * SHEXEC <command> - executes a shell command (like gimp > /dev/null) * EXIT - exits the window manager * RESTART [<window manager>] - restarts WindowMaker or start another * window manager * REFRESH - refreshes the desktop * ARRANGE_ICONS - rearranges the icons on the workspace * SHUTDOWN - kills all clients (and close the X window session) * SHOW_ALL - unhides all windows on workspace * HIDE_OTHERS - hides all windows on the workspace, except the * focused one (or the last one that received focus) * SAVE_SESSION - saves the current state of the desktop, which include * all running applications, all their hints (geometry, * position on screen, workspace they live on, the dock * or clip from where they were launched, and * if minimized, shaded or hidden. Also saves the current * workspace the user is on. All will be restored on every * start of windowmaker until another SAVE_SESSION or * CLEAR_SESSION is used. If SaveSessionOnExit = Yes; in * WindowMaker domain file, then saving is automatically * done on every windowmaker exit, overwriting any * SAVE_SESSION or CLEAR_SESSION (see below). * CLEAR_SESSION - clears any previous saved session. This will not have * any effect if SaveSessionOnExit is True. * INFO - shows the Info Panel * * OPEN_MENU syntax: * 1. File menu handling. * // opens file.menu which must contain a valid menu file and inserts * // it in current position * OPEN_MENU file.menu * 2. Pipe menu handling. * // opens command and uses its stdout to construct menu. * // Command's output must be a valid menu description. * // The space between '|' and command itself is optional. * // Use '||' instead of '|' if you want the menu to always update * // when opened. It might be slow. * OPEN_MENU | command * OPEN_MENU || command * 3. Directory handling. * // Opens one or more directories and constructs a menu with all * // the subdirectories and executable files in them sorted * // alphabetically. * OPEN_MENU /some/dir [/some/other/dir ...] * 4. Directory handling with command. * // Opens one or more directories and constructs menu with all * // subdirectories and readable files in them sorted alphabetically, * // preceding each of them with command. * OPEN_MENU [options] /some/dir [/some/other/dir ...] WITH command -options * Options: * -noext strip whatever is after the last dot in the * file name * * <Parameters> is the program to execute. * * ** Options for command line in EXEC: * %s - substitute with current selection * %a(title[,prompt]) - opens an 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\"" * * You can also use character escapes, like \n * * Each MENU statement must have one mathching END statement at the end. * * Example: * * "Test" MENU * "XTerm" EXEC xterm * // 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 $HOME/bin/X11 * // set some background images * "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 */ #include "wmmacros" "Applications" MENU "Info" MENU "Info Panel" INFO_PANEL "Legal" LEGAL_PANEL "System Console" EXEC xconsole "System Load" SHEXEC xosview || xload "Process List" EXEC xterm -e top "Manual Browser" EXEC xman "Info" END "Run..." SHEXEC %a(Run,Type command to run:) "XTerm" EXEC xterm -sb "Mozilla Firefox" EXEC firefox "Workspaces" WORKSPACE_MENU "Applications" MENU "Gimp" SHEXEC gimp >/dev/null "Ghostview" EXEC ghostview %a(GhostView,Enter file to view) "Xpdf" EXEC xpdf %a(Xpdf,Enter PDF to view) "Abiword" EXEC abiword "Dia" EXEC dia "OpenOffice.org" MENU "OpenOffice.org" EXEC ooffice "Writer" EXEC oowriter "Spreadsheet" EXEC oocalc "Draw" EXEC oodraw "Impress" EXEC ooimpress "OpenOffice.org" END "Editors" MENU "XEmacs" EXEC xemacs "Emacs" EXEC emacs "XJed" EXEC xjed "VI" EXEC xterm -e vi "GVIM" EXEC gvim "NEdit" EXEC nedit "Xedit" EXEC xedit "Editors" END "Multimedia" MENU "XMMS" MENU "XMMS" EXEC xmms "XMMS play/pause" EXEC xmms -t "XMMS stop" EXEC xmms -s "XMMS" END "Xine video player" EXEC xine "MPlayer" EXEC mplayer "Multimedia" END "Applications" END "Utils" MENU "Calculator" EXEC xcalc "Window Properties" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Font Chooser" EXEC xfontsel "Magnify" EXEC wmagnify "Colormap" EXEC xcmap "Kill X Application" EXEC xkill "Utils" END "Selection" MENU "Copy" SHEXEC echo '%s' | wxcopy "Mail To" EXEC xterm -name mail -T "Pine" -e pine %s "Navigate" EXEC netscape %s "Search in Manual" SHEXEC MANUAL_SEARCH(%s) "Selection" END "Commands" MENU "Hide Others" HIDE_OTHERS "Show All" SHOW_ALL "Arrange Icons" ARRANGE_ICONS "Refresh" REFRESH "Lock" EXEC xlock -allowroot -usefirst "Commands" END "Appearance" MENU "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)' "Blue" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Bluemarine" WS_BACK '(solid, "#224477")' "Purple" WS_BACK '(solid, "#554466")' "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)' "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 $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Background" END "Save Theme" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name,Enter file name:)" "Save IconSet" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name,Enter file name:)" "Preferences Utility" EXEC /usr/local/GNUstep/Applications/WPrefs.app/WPrefs "Appearance" END "Session" MENU "Save Session" SAVE_SESSION "Clear Session" CLEAR_SESSION "Restart Window Maker" RESTART "Start BlackBox" RESTART blackbox "Start IceWM" RESTART icewm "Exit" EXIT "Session" END "Applications" END ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu.hr������������������������������������������������������������0000644�0001750�0001750�00000013076�12214432632�015052� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������( Programi, ( Info, ("Info Panel...", INFO_PANEL), (Legal..., LEGAL_PANEL), ("Sistemska konzola", EXEC, xconsole), ("Optere\346enje sistema", SHEXEC, "xosview || xload"), ("Lista procesa", EXEC, "xterm -e top"), ("Pretra\276iva\350 manuala", EXEC, xman) ), (Pokreni..., EXEC, "%a(Pokreni,Upi\271ite naredbu za pokrenuti:)"), (NXTerm, EXEC, "nxterm -sb"), (Rxvt, EXEC, rxvt), (WMTerm, EXEC, "rxvt -wm"), ("Radni prostori", WORKSPACE_MENU), ( Programi, ( Grafika, (Gimp, SHEXEC, "gimp >/dev/null"), (XV, EXEC, xv), (XPaint, EXEC, xpaint), (XFig, EXEC, xfig) ), (FSViewer, EXEC, fsviewer), ("Offix files", EXEC, files), (LyX, EXEC, lyx), (Netscape, EXEC, netscape), (Ghostview, EXEC, "ghostview %a(Enter file to view)"), ( Acrobat, EXEC, "/usr/local/Acrobat3/bin/acroread %a(Enter PDF to view)" ), (TkDesk, EXEC, tkdesk) ), ( Editori, (XFte, EXEC, xfte), (XEmacs, SHEXEC, "xemacs || emacs"), (XJed, EXEC, xjed), (NEdit, EXEC, nedit), (Xedit, EXEC, xedit), (VI, EXEC, "xterm -e vi") ), ( Razno, (Xmcd, SHEXEC, "xmcd 2> /dev/null"), (Xplaycd, EXEC, xplaycd), (Xmixer, EXEC, xmixer) ), ( "Pomo\346ni programi", (Kalkulator, EXEC, xcalc), ( "Info o prozoru", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -" ), ("Bira\350 fontova", EXEC, xfontsel), ("Emulator terminala", EXEC, xminicom), ("Pove\346alo", EXEC, xmag), (Colormap, EXEC, xcmap), (XKill, EXEC, xkill), (WMClock, EXEC, "wmclock -24"), (Clipboard, EXEC, xclipboard) ), ( Odabir, (Kopiraj, SHEXEC, "echo '%s' | wxcopy"), ("Po\271alji e-mail", EXEC, "xterm -name mail -T Pine -e pine %s"), ("Otvori web", EXEC, "netscape %s"), ("Potra\276i u manualu", EXEC, "MANUAL_SEARCH(%s)") ), ( "Radni prostor", ("Sakrij ostale", HIDE_OTHERS), ("Poka\276i sve", SHOW_ALL), ("Pospremi ikone", ARRANGE_ICONS), ("Osvje\276i", REFRESH), ("Zaklju\350aj", EXEC, "xlock -allowroot -usefirst"), ("Snimi session", SAVE_SESSION), ("O\350isti snimljeni session", CLEAR_SESSION) ), ( Izgled, ( Teme, OPEN_MENU, "-noext /usr/local/share/WindowMaker/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle" ), ( Stilovi, OPEN_MENU, "-noext /usr/local/share/WindowMaker/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle" ), ( "Setovi ikona", OPEN_MENU, "-noext /usr/local/share/WindowMaker/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons" ), ( Pozadina, ( Boja, ( Crna, EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'" ), ( Plava, EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'" ), ( Indigo, EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'" ), ( "Duboko Blue", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'" ), ( "Ljubi\350asta", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'" ), ( Krem, EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'" ), ( "Tamno siva", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'" ), ( "Vinsko crvena", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'" ) ), ( Preljevi, ( "Zalazak sunca", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'" ), ( Nebo, EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'" ), ( "Plave nijanse", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'" ), ( "Indigo nijanse", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'" ), ( "Ljubi\350aste nijanse", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'" ), ( "Krem nijanse", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'" ), ( "Sive nijanse", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'" ), ( "Vinsko crvene nijanse", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'" ) ), ( Slike, OPEN_MENU, "-noext /usr/local/share/WindowMaker/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t" ) ), ( "Snimi temu", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\"" ), ( "Snimi set ikona", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\"" ) ), ( Izlaz, ("Ponovo startaj", RESTART), ("Pokreni BlackBox", RESTART, blackbox), ("Pokreni kwm", RESTART, kwm), ("Pokreni IceWM", RESTART, icewm), (Izlaz..., EXIT), ("Ubij session...", SHUTDOWN) ) ) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.nl��������������������������������������������������������������0000644�0001750�0001750�00000006227�12214432632�014516� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������// // Basis Menu definite voor WindowMaker // // De syntax is: // // <Titel> <Commando> <Parameters> // // <Titel> is een string die zal gebruikt worden als titel. // Er moeten "'s rondstaan als er spaties in zijn // // <Commando> een van de volgende geldige commandos: // MENU - start een (sub)menu definitie // END - beeindigd een (sub)menu definitie // EXEC <programma> - voert een extern programma uit // EXIT - afsluiten windowmanager // SHEXEC <command> - executes a shell command (like gimp > /dev/null) // RESTART [<windowmanager>] - herstarts WindowMaker of start een andere // windowmanager of // REFRESH - herteken het bureaublad // ARRANGE_ICONS - herschik de iconen op de werkplaats // SHUTDOWN - beeindig alle programmas (en sluit de X window sessie) // WORKSPACE_MENU - voeg een submenu toe voor het werkplaatsmenu // SHOW_ALL - toon alle windows op de werkplaats // HIDE_OTHERS - verstop alle windows op de werkplaats, behalve de // het gefocuste window (of het laatst gefocuste) // focused one (or the last one that received focus) // // <Parameters> is het programma uit te voeren. // // Elk MENU vermelding moet een equivalente END vermelding hebben op het einde. // Zie voorbeeld: #include <wmmacros> "Applicaties" MENU "Info" MENU "Info Panel..." INFO_PANEL "Legal" LEGAL_PANEL "Xosview" EXEC xosview "Top" EXEC xterm -e top "Handleidingszoeker" EXEC xman "Info" END "XTerm" SHEXEC xterm -sb || color-xterm -sb || xterm -sb "XJed" EXEC xjed "Werkplaatsen" WORKSPACE_MENU "Applicaties" MENU "Grafische toepassingen" MENU "Gimp" EXEC gimp "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Grafische toepassingen" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread "TkDesk" EXEC tkdesk "Applicaties" END "Editors" MENU "XEmacs" EXEC xemacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Editors" END "Diverse" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Diverse" END "Utils" MENU "Calculator" EXEC xcalc "Font Chooser" EXEC xfontsel "Magnify" EXEC xmag "Colormap" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock "Utils" END "Werkplaats" MENU "Achtergrond" MENU "-" EXEC CLEARROOT "Zwart" WS_BACK '(solid, black)' "Blauw" WS_BACK '(solid, "#505075")' "Purpel" WS_BACK '(solid, "#554466")' "Vlas Geel" WS_BACK '(solid, wheat4)' "Donker Grijs" WS_BACK '(solid, "#333340")' "Bordeaux Rood" WS_BACK '(solid, "#400020")' "Achtergrond" END #if (DEPTH>=8) // Configureer enkel gradient themas voor newbies en luie mensen // Je moet herstarten na een gradient gekozen te hebben #include <gradients.menu> #endif "Verstop andere" HIDE_OTHERS "Toon alle" SHOW_ALL "Herschik iconen" ARRANGE_ICONS "Ververs" REFRESH "Blokkeren" EXEC xlock -allowroot -usefirst "Opslaan werkplaats" EXEC SAVE_WORKSPACE "Werkplaats" END "Exit" MENU "Herstart" RESTART "Start AfterStep" RESTART afterstep "Afsluiten..." EXIT "Afsluiten sessie..." SHUTDOWN "Exit" END "Applicaties" END �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.sl��������������������������������������������������������������0000644�0001750�0001750�00000016755�12214432632�014532� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Root Menu definition for WindowMaker in Slovenian language * * Syntax is: * * <Title> [SHORTCUT <Shortcut>] <Command> <Parameters> * * <Title> is any string to be used as title. Must be enclosed with " if it * has spaces * * SHORTCUT specifies a shortcut for that item. <Shortcut> has the * same syntax of the shortcuts key options in the * $HOME/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey. * * You can't specify a shortcut for a MENU or OPEN_MENU entry. * * <Command> one of the valid commands: * MENU - starts (sub)menu definition * END - end (sub)menu definition * OPEN_MENU - opens a menu from a file, pipe or directory(ies) contents * and eventually precede each with a command. * WORKSPACE_MENU - adds a submenu for workspace operations. Only one * workspace_menu is allowed. * EXEC <program> - executes an external program * SHEXEC <command> - executes a shell command (like gimp > /dev/null) * EXIT - exits the window manager * RESTART [<window manager>] - restarts WindowMaker or start another * window manager * REFRESH - refreshes the desktop * ARRANGE_ICONS - rearranges the icons on the workspace * SHUTDOWN - kills all clients (and close the X window session) * SHOW_ALL - unhides all windows on workspace * HIDE_OTHERS - hides all windows on the workspace, except the * focused one (or the last one that received focus) * SAVE_SESSION - saves the current state of the desktop, which include * all running applications, all their hints (geometry, * position on screen, workspace they live on, the dock * or clip from where they were launched, and * if minimized, shaded or hidden. Also saves the current * workspace the user is on. All will be restored on every * start of windowmaker until another SAVE_SESSION or * CLEAR_SESSION is used. If SaveSessionOnExit = Yes; in * WindowMaker domain file, then saving is automatically * done on every windowmaker exit, overwriting any * SAVE_SESSION or CLEAR_SESSION (see below). * CLEAR_SESSION - clears any previous saved session. This will not have * any effect if SaveSessionOnExit is True. * INFO - shows the Info Panel * * OPEN_MENU syntax: * 1. File menu handling. * // opens file.menu which must contain a valid menu file and inserts * // it in current position * OPEN_MENU file.menu * 2. Pipe menu handling. * // opens command and uses it's stdout to construct menu. * // Command's output must be a valid menu description. * // The space between '|' and command itself is optional. * OPEN_MENU | command * 3. Directory handling. * // Opens one or more directories and construct a menu with all * // the subdirectories and executable files in them sorted * // alphabetically. * OPEN_MENU /some/dir [/some/other/dir ...] * 4. Directory handling with command. * // Opens one or more directories and construct menu with all * // subdirectories and readable files in them sorted alphabetically, * // preceding each of them with command. * OPEN_MENU /some/dir [/some/other/dir ...] WITH command -options * * * <Parameters> is the program to execute. * * ** Options for command line in EXEC: * %s - substitute with current selection * %a(message) - opens a input box with the message and do substitution with * what you typed * %w - substitute with XID for the current focused window * * You can override special characters (as % and ") with the \ character: * ex: xterm -T "\"Hello World\"" * * You can also use character escapes, like \n * * Each MENU statement must have one mathching END statement at the end. * * Example: * * "Test" MENU * "XTerm" EXEC xterm * // 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 $HOME/bin/X11 * // set some background images * "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 */ #include "wmmacros" "Aplikacije" MENU "Informacije" MENU "Informacije o programu..." INFO_PANEL "Licenca..." LEGAL_PANEL "Sistemska konzola" EXEC xconsole "Obremenitev sistema" SHEXEC xosview || xload "Seznam procesov" EXEC xterm -e top "PomoÄ (Iskalec man strani)" EXEC xman "Informacije" END "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "Delovni prostori" WORKSPACE_MENU "Aplikacije" MENU "Grafika" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Grafika" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(Enter file to view) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Enter PDF to view) "TkDesk" EXEC tkdesk "Aplikacije" END "Urejevalniki besedil" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Urejevalniki besedil" END "Drugo" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Drugo" END "Uporabi programi" MENU "Kalkulator" EXEC xcalc "Lastnosti oken" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Pregled pisav" EXEC xfontsel "Terminal emulator" EXEC xminicom "Povecevalno steklo" EXEC xmag "Barvna lestvica" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock -shape "OdlagaliÅ¡Äe (clipboard)" EXEC xclipboard "Uporabni programi" END "Izbira" MENU "Kopiraj" SHEXEC echo '%s' | wxcopy "PoÅ¡lji po poÅ¡ti" EXEC xterm -name mail -T "Pine" -e pine %s "Odpri WEB stran" EXEC netscape %s "PoiÅ¡Äi v navodilih" EXEC MANUAL_SEARCH(%s) "Izbira" END "Delovni prostor" MENU "Skrij druge" HIDE_OTHERS "Pokaži vse" SHOW_ALL "Poravnaj ikone" ARRANGE_ICONS "Obnovi" REFRESH "Zakleni" EXEC xlock -allowroot -usefirst "Shrani session" SAVE_SESSION "IzbriÅ¡i shranjen session" CLEAR_SESSION "Delovni prostor" END "Izgled" MENU "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)' "Modra" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Temno modra" WS_BACK '(solid, "#224477")' "VioliÄna" WS_BACK '(solid, "#554466")' "PÅ¡eniÄna" WS_BACK '(solid, "wheat4")' "Temno siva" WS_BACK '(solid, "#333340")' "Vinsko rdeÄa" WS_BACK '(solid, "#400020")' "Barva" END "Preliv" MENU "Zastava" WS_BACK '(mdgradient, green, red, white, green)' "Nebo" WS_BACK '(vgradient, blue4, white)' "Preliv" END "Slike" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Odzadje" END "Shrani temo" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Shrani zbirko ikon" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Izgled" END "Izhod" MENU "Ponovno zaženi" RESTART "Poženi AfterStep" RESTART afterstep "Izhod..." EXIT "Izhod iz session..." SHUTDOWN "Izhod" END "Aplikacije" END �������������������WindowMaker-0.95.5/WindowMaker/appearance.menu������������������������������������������������������0000644�0001750�0001750�00000000767�12214432632�016207� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "wmmacros" Appearance MENU "Background" OPEN_MENU background.menu "Styles" OPEN_MENU -noext LOCAL_STYLES_DIR STYLES_DIR USER_STYLES_DIR WITH setstyle "Themes" OPEN_MENU -noext LOCAL_THEMES_DIR THEMES_DIR USER_THEMES_DIR WITH setstyle "Icon Sets" OPEN_MENU -noext LOCAL_ICON_SETS_DIR ICON_SETS_DIR USER_ICON_SETS_DIR WITH seticons "Save IconSet" EXEC geticonset USER_ICON_SETS_DIR/"%a(IconSet name)" "Save Theme" EXEC getstyle -t USER_THEMES_DIR/"%a(Theme name)" Appearance END ���������WindowMaker-0.95.5/WindowMaker/menu.ko��������������������������������������������������������������0000644�0001750�0001750�00000023457�12214432632�014522� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Windowmaker를 위한 루트 메뉴 ì •ì˜ * * 사용법: * * <Title> [SHORTCUT <Shortcut>] <Command> <Parameters> * * <Title> ì€ íƒ€ì´í‹€ë¡œ 사용ë˜ëŠ” 문ìžì—´ì´ë‹¤. ë§Œì¼ ë¬¸ìžì—´ ê°€ìš´ë° ê³µë°±ì´ ì¡´ìž¬ * 한다면 반드시 따옴표 "로 묶어야 한다. * * SHORTCUTì€ ê° í•­ëª©ì— ëŒ€í•œ 단축 글쇠를 지정하는 명령ì´ë‹¤. <Shortcut>ì˜ * ë¬¸ë²•ì€ $HOME/GNUstep/Defaults/WindowMakerì˜ RootMenuKey나 MiniaturizeKey * 와 ê°™ì€ ë‹¨ì¶• 글쇠 설정 옵션과 같다. * * <Command> 사용가능한 명령어들 * MENU - (하부)메뉴 ì •ì˜ë¥¼ 시작한다. * END - (하부)메뉴 ì •ì˜ë¥¼ 마친다. * OPEN_MENU - 파ì¼ì´ë‚˜ 파ì´í”„ í˜¹ì€ ë””ë ‰í† ë¦¬ 내용으로 부터 메뉴를 ì—´ê³  * 명령어를 실행한다. * WORKSPACE_MENU - 작업공간 ì œì–´ì— ê´€í•œ 하부 메뉴를 추가한다. * EXEC <program> - 외부 í”„ë¡œê·¸ëž¨ì„ ì‹¤í–‰í•œë‹¤. * SHEXEC <command> - 쉘 ëª…ë ¹ì„ ì‹¤í–‰í•œë‹¤. (예제: gimp > /dev/null) * EXIT - 윈ë„ìš° 매니저를 종료시킨다. * RESTART [<window manager>] - Windowmaker를 다시시작하거나 다른 윈ë„ìš° * 관리ìžë¥¼ 실행시킨다. * REFRESH - í™”ë©´ì„ ë‹¤ì‹œ 그린다. * ARRANGE_ICONS - ìž‘ì—…ê³µê°„ì˜ ì•„ì´ì½˜ë“¤ì„ 정렬한다. * SHUTDOWN - 모든 í´ë¼ì´ì–¸íŠ¸ë¥¼ 종료한다. (그리고 X 윈ë„ìš° ì„¸ì…˜ì„ ë‹«ëŠ”ë‹¤) * SHOW_ALL - 워í¬ìŠ¤íŽ˜ì´ìŠ¤ì— ëª¨ë“  ì°½ì„ ìˆ¨ê¹€ 해제한다. * HIDE_OTHERS - 현재 í™œì„±í™”ëœ ì°½(í˜¹ì€ ê°€ìž¥ ë§ˆì§€ë§‰ì— í¬ì»¤ìŠ¤ë¥¼ 가진 * ì°½)ì„ ì œì™¸í•œ 모든 ì°½ì„ ìˆ¨ê¸´ë‹¤. * SAVE_SESSION - ë°ìФí¬íƒ‘ì˜ í˜„ìž¬ ìƒíƒœë¥¼ 저장한다. ì´ë•Œ 저장ë˜ëŠ” ê²ƒì€ * ì‹¤í–‰ì¤‘ì¸ ëª¨ë“  프로그램 그리고 ê·¸ ê²ƒë“¤ì˜ ì •ë³´ë“¤(í¬ê¸°, * 화면ìƒì˜ 위치, 작업공간 번호, ê·¸ê²ƒë“¤ì´ ì‹¤í–‰ëœ dockì´ë‚˜ * í´ë¦½ 그리고 í”„ë¡œê·¸ëž¨ì´ ì•„ì´ì½˜í™”ë˜ì—ˆëŠ”ì§€ shade 형태 * ì¸ì§€ í˜¹ì€ ìˆ¨ê²¨ì¡ŒëŠ”ì§€ì˜ ì—¬ë¶€ì´ë‹¤. ë˜í•œ 사용ìžê°€ 현재 * ìž‘ì—…ì¤‘ì¸ ì›Œí¬ìŠ¤íŽ˜ì´ìŠ¤ë„ ì €ìž¥ëœë‹¤. ì´ ëª¨ë“  ì •ë³´ë“¤ì€ * ë˜ë‹¤ë¥¸ SAVE_SESSIONì´ë‚˜ CLEAR_SEEIONì´ ì‚¬ìš©ë˜ê¸° 전까지 * 매번 윈ë„ìš°ë©”ì´ì»¤ê°€ ì‹¤í–‰ë  ë•Œë§ˆë‹¤ ë³µì›ëœë‹¤. ë§Œì¼ * SaveSession OnExit = Yes; 로 설정ë˜ì–´ 있으면 매번 윈ë„ìš° * ë©”ì´ì»¤ê°€ ì¢…ë£Œë  ë•Œë§ˆë‹¤ ìžë™ì ìœ¼ë¡œ ì„¸ì…˜ì˜ ë‚´ìš©ì„ ì €ìž¥í•˜ê³  * SAVE_SESSION ì´ë‚˜ CLEAR_SESSOIN ê°’ì€ ë¬´ì‹œëœë‹¤. * CLEAR_SESSION - ì´ë¯¸ ì •ìž¥ëœ ì„¸ì…˜ì„ ì§€ìš´ë‹¤. ì´ê²ƒì€ SaveSessionOnExitê°€ * ì°¸ì¸ ê²½ìš°ì— íš¨ê³¼ë¥¼ 미치지 않는다. * INFO - ì •ë³´ 패ë„ì„ ë³´ì—¬ì¤€ë‹¤. * * OPEN_MENU syntax: * OPEN_MENU 문법: * 1. íŒŒì¼ ë©”ë‰´ 다루기 * // 올바른 메뉴 파ì¼ì„ í¬í•¨í•œ file.menu를 ì—´ê³  현재 ìœ„ì¹˜ì— ì‚½ìž…í•œë‹¤. * OPEN_MENU file.menu * 2. Pipe menu 다루기. * // 명령어를 ì—´ê³  메뉴를 êµ¬ì„±í•˜ëŠ”ë° í‘œì¤€ 출력으로 사용한다. * // ëª…ë ¹ì–´ì˜ ì¶œë ¥ì€ ë°˜ë“œì‹œ 올바른 메뉴 기술ìž(descriptor)여야 한다. * // '|' 와 명령어사ì´ì˜ ê³µë°±ì€ ì‚¬ìš©ìžì˜ ì„ íƒì‚¬í•­ì´ë‹¤. * OPEN_MENU | command * 3. 디렉토리 다루기. * // 하나 í˜¹ì€ ê·¸ ì´ìƒì˜ 디렉토리를 ì—´ê³  ê·¸ ì•ˆì˜ ëª¨ë“  부디렉토리와 * // 실행 파ì¼ë“¤ì„ 알파벳 순으로 정렬한 메뉴를 구성한다. * OPEN_MENU /some/dir [/some/other/dir ...] * 4. 디렉토리 다루기와 명령. * // 하나 í˜¹ì€ ê·¸ ì´ìƒì˜ 디렉토리를 ì—´ê³  모든 부디렉토리와 ì½ê¸° 가능한 * // 파ì¼ë“¤ì„ 알파벳순으로 ì •ë ¬ëœ í˜•íƒœë¡œ 메뉴를 만들ë˜, ì§€ì •ëœ ëª…ë ¹ì–´ì™€ * // 결합시킨다. * OPEN_MENU [options] /some/dir [/some/other/dir ...] WITH command -options * 옵션: -noext íŒŒì¼ ì´ë¦„ì˜ í™•ìž¥ìžë¥¼ 없애고 보여준다. * * <Parameters> 는 실행할 프로그램ì´ë‹¤. * * ** EXECì˜ ëª…ë ¹ì–´ ë¼ì¸ì— 대한 옵션: * %s - 현재 ì„ íƒëœ 내용으로 바꾼다. * %a(title[,prompt]) - ìž…ë ¥ ìƒìžë¥¼ ì—´ê³  사용ìžê°€ 입력한 것으로 * 메시지를 바꾼다. * %w - 현재 í™œì„±í™”ëœ ìœˆë„ìš°ì˜ XID를 대체한다. * %W - 현재 작업 ê³µê°„ì˜ ë²ˆí˜¸ë¡œ 대체한다. * * %나 "와 ê°™ì€ íŠ¹ìˆ˜ 문ìžëŠ” \ 문ìžë¥¼ ì•žì— ì¨ì„œ 사용할 수 있다: * 예: hanterm -T "\"Hello World\"" * * ë˜í•œ \nê³¼ ê°™ì€ character escapesë„ ì‚¬ìš©í•  수 있다. * * ê°ê°ì˜ MENU ë¬¸ì€ ë°˜ë“œì‹œ END와 ìŒì„ ì´ë£¨ì–´ì•¼ 한다. * * 예제: * * "Test" MENU * "XTerm" EXEC xterm * // /usr/openwin/bin ë””ë ‰í† ë¦¬ì˜ ë‚´ìš©ìœ¼ë¡œ 서브 메뉴를 만든다. * "XView apps" OPEN_MENU "/usr/openwin/bin" * // 다른 ë””ë ‰í† ë¦¬ì— ìžˆëŠ” ëª‡ê°œì˜ X11 프로그램들 * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 * // 바탕화면으로 사용할 ê·¸ë¦¼ì„ ì§€ì •í•œë‹¤. * "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t * // 현재 í•­ëª©ì— style.menu를 삽입한다. * "Style" OPEN_MENU style.menu * "Test" END */ #include "wmmacros" "윈ë„ìš°ë©”ì´ì»¤" MENU "ì • ë³´" MENU "ì •ë³´ 패ë„" INFO_PANEL "저작권 ì •ë³´" LEGAL_PANEL "시스템 로드" SHEXEC xosview || xload "매뉴얼 찾기" EXEC xman "프로세스목ë¡" EXEC xterm -e top "ì • ë³´" END "한 í…€" SHORTCUT SHIFT+META+H EXEC hanterm "명 ë ¹ ì°½" SHORTCUT SHIFT+META+C EXEC %a(실행할 명령:) "ìž… ë ¥ 기" SHORTCUT SHIFT+META+I SHEXEC ami || hanIM "프로그램" MENU "í„° 미 ë„" MENU "한 í…€" EXEC hanterm "하얀한텀" SHORTCUT CONTROL+META+H EXEC hanterm -fg black -bg gray75 "ê´€ 리 ìž" SHORTCUT SHIFT+META+R EXEC hanterm -T ê´€ë¦¬ìž -n ê´€ë¦¬ìž -name root -e sudo su - "ì—‘ 스 í…€" SHEXEC nxterm || xterm "í„° 미 ë„" END "네트워í¬" MENU "모 질 ë¼" SHORTCUT SHIFT+META+N EXEC netscape "유 즈 ë„·" EXEC hanterm -T 유즈넷 -n 유즈넷 -e slrn -C "ì´ ë©” ì¼" EXEC hanterm -T ì´ë©”ì¼ -n ì´ë©”ì¼ -e mutt "나우누리" EXEC hanterm -T 나우누리 -n 나우누리 -e ztelnet nownuri.net "하 ì´ í…”" EXEC hanterm -T 하ì´í…” -n 하ì´í…” -e ztelnet home.hitel.net "천 리 안" EXEC hanterm -T 천리안 -n 천리안 -e ztelnet chonllian.net "ê°€ ìš°" SHEXEC gau || gaui "네트워í¬" END "편 ì§‘ 기" MENU "VIM" EXEC hanterm -T VIM -n VIM -e vim "ì´ë§¥ìФ" EXEC emacs "피 ì½”" EXEC hanterm -T 피코 -n 피코 -e pico "편 ì§‘ 기" END "ê·¸ 래 픽" MENU "XV" EXEC xv "GIMP" EXEC gimp "GQview" EXEC gqview "XPaint" EXEC xpaint "XFig" EXEC xfig "ê·¸ 래 픽" END "ë„구모ìŒ" MENU "계 ì‚° 기" EXEC xcalc "ì°½ ì† ì„±" SHEXEC xprop | xmessage -center -title 'xprop' -file - "글꼴보기" EXEC xfontsel "ë‹ ë³´ 기" EXEC xmag "컬 러 ë§µ" EXEC xcmap "강제종료" EXEC xkill "í´ë¦½ë³´ë“œ" EXEC xclipboard "ë„구모ìŒ" END "멀티미디어" MENU "믹 서" SHEXEC xmixer || hanterm -T AuMIX -n AuMix -e aumix "MPEG 보기" EXEC mtv "MP3 연주기" SHEXEC xmms || x11amp "CD 연주기" EXEC xplaycd "멀티미디어" END "프로그램" END "작업공간" WORKSPACE_MENU "ì°½ ê´€ 리" MENU "다른창 숨김" HIDE_OTHERS "ëª¨ë‘ ë³´ì´ê¸°" SHOW_ALL "ì•„ì´ì½˜ ì •ë ¬" ARRANGE_ICONS "화면정리" REFRESH "세션 저장" SAVE_SESSION "세션 지움" CLEAR_SESSION "ì°½ ê´€ 리" END "작업환경" MENU "설 ì •" SHEXEC /usr/local/GNUstep/Applications/WPrefs.app/WPrefs || wmakerconf "í…Œ 마" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle "테마저장" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(테마 ì´ë¦„,íŒŒì¼ ì´ë¦„ì„ ìž…ë ¥í•˜ì„¸ìš”:)" "ì•„ì´ì½˜ì…‹" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons "ì•„ì´ì½˜ì…‹ì €ìž¥" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(ì•„ì´ì½˜ì…‹ ì´ë¦„,íŒŒì¼ ì´ë¦„ì„ ìž…ë ¥í•˜ì„¸ìš”:)" #if (DEPTH>8) "스 타 ì¼" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle #endif "배경화면" MENU "단 색" MENU "Black" WS_BACK '(solid, black)' "Blue" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Bleumarine" WS_BACK '(solid, "#224477")' "Purple" WS_BACK '(solid, "#554466")' "Wheat" WS_BACK '(solid, "wheat4")' "Dark Gray" WS_BACK '(solid, "#333340")' "Wine" WS_BACK '(solid, "#400020")' "색 지정" WS_BACK '(solid, "%a(배경색:)")' "단 색" END "ê·¸ 림" MENU "전체화면" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -s "타ì¼í˜•ì‹" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "ê°€ ìš´ ë°" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -e "ê·¸ 림" END #if (DEPTH>8) "그래디언트" 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")' "그래디언트" END #endif "배경화면" END "작업환경" END "화면잠금" SHORTCUT SHIFT+META+L EXEC xlock -allowroot -usefirst -nice +20 "종 료" MENU "재 시 ìž‘" RESTART "재 시 ìž‘" MENU "BlackBox" RESTART blackbox "KDE" RESTART kwm "IceWM" RESTART icewm "AfterStep" RESTART afterstep "Enlightenment" RESTART enlightenment "FVWM2" RESTART fvwm2 "재 시 ìž‘" END "종 료" EXIT "세션종료" SHUTDOWN "종 료" END "윈ë„ìš°ë©”ì´ì»¤" END �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Themes/��������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434644�014522� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Themes/Makefile.in���������������������������������������������������0000644�0001750�0001750�00000031546�12214434561�016516� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WindowMaker/Themes DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(defsdatadir)" DATA = $(defsdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ defsdatadir = $(pkgdatadir)/Themes defsdata_DATA = Default.style OpenStep.style Pastel.style SteelBlueSilk.style Blau.style EXTRA_DIST = $(defsdata_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Themes/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WindowMaker/Themes/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-defsdataDATA: $(defsdata_DATA) @$(NORMAL_INSTALL) test -z "$(defsdatadir)" || $(MKDIR_P) "$(DESTDIR)$(defsdatadir)" @list='$(defsdata_DATA)'; test -n "$(defsdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(defsdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(defsdatadir)" || exit $$?; \ done uninstall-defsdataDATA: @$(NORMAL_UNINSTALL) @list='$(defsdata_DATA)'; test -n "$(defsdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(defsdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(defsdatadir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(defsdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-defsdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-defsdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-defsdataDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-defsdataDATA # 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. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Themes/SteelBlueSilk.style�������������������������������������������0000644�0001750�0001750�00000002546�12214432632�020235� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; 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"); } ����������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Themes/Makefile.am���������������������������������������������������0000644�0001750�0001750�00000000235�12214432632�016471� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������defsdatadir = $(pkgdatadir)/Themes defsdata_DATA = Default.style OpenStep.style Pastel.style SteelBlueSilk.style Blau.style EXTRA_DIST = $(defsdata_DATA) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Themes/Pastel.style��������������������������������������������������0000644�0001750�0001750�00000002542�12214432632�016752� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = left; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = "rgb:79/96/cf"; CClipTitleColor = "rgb:61/61/61"; FTitleColor = white; PTitleColor = white; UTitleColor = "rgb:79/96/cf"; FTitleBack = (mhgradient, "#182c70", "#182c70", "#4969c7", "#79a2d0", "#a4dad0"); PTitleBack = (hgradient, "rgb:08/18/38", "rgb:28/3c/49"); UTitleBack = ( mhgradient, "rgb:18/2c/41", "rgb:18/2c/41", "rgb:08/18/38", "rgb:28/3c/49", "rgb:28/45/30" ); MenuTitleColor = "rgb:10/28/51"; MenuTextColor = "rgb:10/30/38"; MenuDisabledColor = gray; MenuTitleBack = (mhgradient, black, "rgb:28/55/41", "rgb:93/d7/d5", "rgb:96/d7/e7"); MenuTextBack = ( mhgradient, "rgb:18/2c/70", "rgb:28/45/96", "rgb:79/a2/d0", "rgb:96/c7/be" ); IconBack = (mdgradient, "#183454", "#296ed6", "#03110e"); IconTitleColor = white; IconTitleBack = "rgb:18/2c/70"; WorkspaceBack = (solid, "rgb:22/44/77"); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Themes/Default.style�������������������������������������������������0000644�0001750�0001750�00000002114�12214432632�017101� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ TitleJustify = left; WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = "rgb:61/61/61"; FTitleColor = white; PTitleColor = white; UTitleColor = black; FTitleBack = (hgradient, "rgb:50/5a/5e", "rgb:20/2a/2e"); PTitleBack = (hgradient, "rgb:51/50/55", "rgb:80/80/80"); UTitleBack = (hgradient, "rgb:c2/c0/c5", "rgb:82/80/85"); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = (hgradient, "rgb:50/5a/5e", "rgb:20/2a/2e"); MenuTextBack = (hgradient, "rgb:c2/c0/c5", "rgb:82/80/85"); WorkspaceBack = (solid, "rgb:50/50/75"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Themes/Blau.style����������������������������������������������������0000644�0001750�0001750�00000003071�12214432632�016403� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ MenuTitleBack = (mvgradient, "#18191f", "#474967", "#413b6d"); FTitleColor = "#ffffff"; MenuDisabledColor = "#999999"; IconTitleBack = "#18191f"; FTitleBack = ( mdgradient, "#18191f", "#939abd", "#616185", "#616185", "#5f5f83", "#555575", "#59597a", "#555575", "#939abd" ); ClipTitleFont = "lucida:pixelsize=10"; ClipTitleColor = white; IconTitleFont = "Lucida:slant=0:weight=100:width=100:pixelsize=10"; HighlightColor = "#ffffff"; MenuTextBack = (mhgradient, "#384246", "#707080", "#4a4a61"); WindowTitleFont = "Courier:slant=0:weight=80:width=100:pixelsize=16"; LargeDisplayFont = "Helvetica:slant=0:weight=80:width=100:pixelsize=48"; CClipTitleColor = gray60; MenuStyle = flat; ResizebarBack = (solid, "#989aa6"); DisplayFont = "lucida:pixelsize=12"; IconTitleColor = white; TitleJustify = center; MenuTextColor = "#ffffff"; MenuTextExtendSpace = 0; IconBack = ( mdgradient, gray40, "#6d6aa4", "#564e8c", "#41436c", "#464771", "#595090" ); PTitleBack = (mhgradient, "#5a5c66", "rgb:70/72/7e", "rgb:45/47/4e"); MenuTitleColor = "#e8fd00"; UTitleColor = "#333333"; MenuTitleFont = "FreeSans:slant=0:weight=200:width=100:pixelsize=18"; UTitleBack = (mhgradient, "#989aa6", "#9fa1b5", "#86879b"); WindowTitleExtendSpace = 0; NormalCursor = (builtin, left_ptr); PTitleColor = "#ffffff"; MenuTitleExtendSpace = 0; MenuTextFont = "sans serif:slant=0:weight=100:width=100:pixelsize=15"; WorkspaceBack = (solid, "#505075"); HighlightTextColor = "#000000"; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Themes/OpenStep.style������������������������������������������������0000644�0001750�0001750�00000002152�12214432632�017254� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ NewStyle = new; TitleJustify = left; WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = "rgb:61/61/61"; FTitleColor = white; PTitleColor = white; UTitleColor = gray20; FTitleBack = (dgradient, "rgb:00/00/10", "rgb:20/20/70"); PTitleBack = (dgradient, "rgb:50/50/50", "rgb:80/80/80"); UTitleBack = (dgradient, "rgb:90/90/90", "rgb:d0/d0/d0"); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = (dgradient, "rgb:00/00/20", "rgb:20/20/70"); MenuTextBack = (hgradient, "rgb:d0/d0/d0", "rgb:80/80/80"); WorkspaceBack = (tpixmap, "BlueImage.jpeg", black); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/wmmacros�������������������������������������������������������������0000644�0001750�0001750�00000003147�12214432632�014770� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Some generic macros for WindowMaker configuration files * */ #ifndef WMMACROS_ #define WMMACROS_ #define HAVE_XLESS /* * WS_BACK - sets the root background texture to VAL */ #define WS_BACK EXEC wdwrite WindowMaker WorkspaceBack /* * CLEARROOT - set the root background to nothing */ #define CLEARROOT xsetroot /* * SETSTYLE FILE - loads a style file */ #define SETSTYLE EXEC cd $HOME/GNUstep/Library/WindowMaker/Styles; setstyle /* * * MANUAL_SEARCH(ITEM) - search manual page for ITEM * * You might need to change this according to what's the exit status of your * man(1). This is for the one that comes with Linux (RedHat) */ #ifdef HAVE_XLESS #define MANUAL_SEARCH(ITEM) \ if ( man ITEM > /dev/null ); then \ man ITEM | xless;\ else \ xmessage -center -title "Manual Browser" \ Sorry, but there is no manual page \ entry for ITEM...;\ fi #else #define MANUAL_SEARCH(ITEM) \ if ( man ITEM > /dev/null ); then \ xterm -e man ITEM; \ else \ xmessage -center -title "Manual Browser" \ Sorry, but there is no manual page \ entry for ITEM...;\ fi #endif /* * Paths to system configuration directories */ #define THEMES_DIR #wmdatadir#/Themes #define STYLES_DIR #wmdatadir#/Styles #define ICON_SETS_DIR #wmdatadir#/IconSets #define BACKGROUNDS_DIR #wmdatadir#/Backgrounds #define StaticGray 0 #define GrayScale 1 #define StaticColor 2 #define PseudoColor 3 #define TrueColor 4 #define DirectColor 5 #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.he��������������������������������������������������������������0000644�0001750�0001750�00000016067�12214432632�014504� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Root Menu definition for WindowMaker * * Syntax is: * * <Title> <Command> <Parameters> * * <Title> is any string to be used as title. Must be enclosed with " if it * has spaces * * <Command> one of the valid commands: * MENU - starts (sub)menu definition * OPEN_MENU - opens a menu from a file, pipe or directory(ies) contents * and eventually precede each with a command. * END - end (sub)menu definition * WORKSPACE_MENU - adds a submenu for workspace operations * EXEC <program> - executes an external program * SHEXEC <command> - executes a shell command (like gimp > /dev/null) * EXIT - exits the window manager * RESTART [<window manager>] - restarts WindowMaker or start another * window manager * REFRESH - refreshes the desktop * ARRANGE_ICONS - rearranges the icons on the workspace * SHUTDOWN - kills all clients (and close the X window session) * SHOW_ALL - unhides all windows on workspace * HIDE_OTHERS - hides all windows on the workspace, except the * focused one (or the last one that received focus) * SAVE_SESSION - saves the current state of the desktop, which include * all running applications, all their hints (geometry, * position on screen, workspace they live on, the dock * or clip from where they were launched, and * if minimized, shaded or hidden. Also saves the current * workspace the user is on. All will be restored on every * start of windowmaker until another SAVE_SESSION or * CLEAR_SESSION is used. If SaveSessionOnExit = Yes; in * WindowMaker domain file, then saving is automatically * done on every windowmaker exit, overwriting any * SAVE_SESSION or CLEAR_SESSION (see below). * CLEAR_SESSION - clears any previous saved session. This will not have * any effect if SaveSessionOnExit is True. * * OPEN_MENU syntax: * 1. File menu handling. * // opens file.menu which must contain a valid menu file and inserts * // it in current position * OPEN_MENU file.menu * 2. Pipe menu handling. * // opens command and uses it's stdout to construct menu. * // Command's output must be a valid menu description. * // The space between '|' and command itself is optional. * OPEN_MENU | command * 3. Directory handling. * // Opens one or more directories and construct a menu with all * // the subdirectories and executable files in them sorted * // alphabetically. * OPEN_MENU /some/dir [/some/other/dir ...] * 4. Directory handling with command. * // Opens one or more directories and construct menu with all * // subdirectories and readable files in them sorted alphabetically, * // preceding each of them with command. * OPEN_MENU /some/dir [/some/other/dir ...] WITH command -options * * * <Parameters> is the program to execute. * * ** Options for command line in EXEC: * %s - substitute with current selection * %a(message) - opens a input box with the message and do substitution with * what you typed * %w - substitute with XID for the current focused window * * You can override special characters (as % and ") with the \ character: * ex: xterm -T "\"Hello World\"" * * You can also use character escapes, like \n * * Each MENU statement must have one mathching END statement at the end. * * Example: * * "Test" MENU * "XTerm" EXEC xterm * // 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 $HOME/bin/X11 * // set some background images * "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 */ #include "wmmacros" "×ימושי" MENU "עדימ" MENU "Info Panel..." INFO_PANEL "Legal" LEGAL_PANEL "System Load" SHEXEC xosview || xload "Process List" EXEC xterm -e top "Manual Browser" EXEC xman "עדימ" END "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "הדובע יבחרמ" WORKSPACE_MENU "×ימושי" MENU "הקיפרג" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "הקיפרג" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "פייקסטנ" EXEC netscape "Ghostview" EXEC ghostview %a(Enter file to view) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Enter PDF to view) "TkDesk" EXEC tkdesk "×ימושי" END "×יכרוע" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "×יכרוע" END "יללכ" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "יללכ" END "×ילכ" MENU "Calculator" EXEC xcalc "Window Properties" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Font Chooser" EXEC xfontsel "Terminal Emulator" EXEC xminicom "Magnify" EXEC xmag "Colormap" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock -shape "Clipboard" EXEC xclipboard "×ילכ" END "הריחב" MENU "קתעה" SHEXEC echo '%s' | wxcopy "...ל ר×ודה חלש" EXEC xterm -name mail -T "Pine" -e pine %s "Navigate" EXEC netscape %s "Search in Manual" SHEXEC MANUAL_SEARCH(%s) "הריחב" END "הדובע בחרמ" MENU "××™×¨×—× ×בחה" HIDE_OTHERS "×לוכ ×”×רה" SHOW_ALL "××™× ×•×§×™×™× ×¨×“×¡" ARRANGE_ICONS "ןנער" REFRESH "לענ" EXEC xlock -allowroot -usefirst "Save Session" SAVE_SESSION "Clear Saved Session" CLEAR_SESSION "הדובע בחרמ" END "×”×רמ" MENU "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)' "לוחכ" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "קומע לוחכ" WS_BACK '(solid, "#224477")' "לוגס" WS_BACK '(solid, "#554466")' "הטיח" WS_BACK '(solid, "wheat4")' "×¨×•×¤× ×¨×•×—×©" WS_BACK '(solid, "#333340")' "ןיי" WS_BACK '(solid, "#400020")' "Solid" END "Gradient" MENU "Flag" WS_BACK '(vdgradient, blue, white, blue)' "Sky" WS_BACK '(vgradient, blue4, white)' "Gradient" END "Images" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "עקר" END "Save Theme" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Save IconSet" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "×”×רמ" END "×”×יצי" MENU "לוחתי×" RESTART "AfterStepל רובע " RESTART afterstep "...×צ" EXIT "...לוכה רוגסו ×צ" SHUTDOWN "×”×יצי" END "×ימושי" END �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.hu��������������������������������������������������������������0000644�0001750�0001750�00000021463�12214432632�014520� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * WindowMaker fomenu konfiguracioja * Verzio: 0.61 * * Horvath Szabolcs <horvathsz@penguinpowered.com> - 2000. junius * A 0.20.3-s verziohoz keszult forditast * Prew (Csanaki Csaba <prew@mail.matav.hu>) keszitette. Koszonet erte! * * Szintakszis: * * <Title> [SHORTCUT <Shortcut>] <Parancs> <Parameterek> * * <Title> egy szoveg, amelyet cimkent kell hasznalni. Ha tartalmaz space-t, * akkor idezojelbe ("... ...") kell tenni. * * SHORTCUT meghataroz egy shortcut-ot adott programokra. <Shortcut>-nak * ugyanolyan megadasi szintakszisa van a * $HOME/GNUstep/Defaults/WindowMaker file-ban, mint a RootMenuKey * vagy a MiniaturizeKey. * * Nem lehet letrehozni shortcut-ot MENU vagy OPEN_MENU bejegyzesben. * * <Parancs> az itt kovetkezo utasitasok valamelyike: * MENU - kezdi a/az (al)menudefiniciot * END - befejezi a/az (al)menudefiniciot * OPEN_MENU - menu megnyitas * WORKSPACE_MENU - a munkafelulet kezelesehez almenuket illeszt be * EXEC <program> - egy kulso programot indit el * SHEXEC <parancs> - vegrehajt egy shell parancsot (pl.: gimp > /dev/null) * EXIT - kilepes az ablakmanagerbol * RESTART [<ablakkezelo>] - ujrainditja a WindowMaker-t vagy elindit * egy ablakmanagert * REFRESH - a kepernyo tartalmat frissiti * ARRANGE_ICONS - a munkafelulet ikonjait ujrarendezi * SHUTDOWN - minden alkalmazast bezar * SHOW_ALL - minden alkalmazast visszahoz a munkafeluletre * HIDE_OTHERS - a munkafeluleten (a pillanatnyilag aktiv kivetelevel) * minden ablakot elrejt * SAVE_SESSION - elmenti a munkafelulet aktualis allapotat, amely * magaba foglal minden futo alkalmazast, minden jellemzo- * jukkel (geometria; kepernyo pozicio; munkafelulet, * melyen talalhatok; dock vagy clip amibol kiindultak, es * ha minimalizalod, akkor arnyekos vagy rejtett). Tehat * elmenti az aktualis beallitasokat, amik eppen haszna- * latban van. Minden WindowMaker inditasakor ezzel a be- * allitassal fog indulni, mindaddig mig egy ujabb * SAVE_SESSION vagy CLEAR_SESSION nem hasznalsz. * Ha SaveSessionOnExit = Yes; a WindowMaker domain * file-ban, akkor a mentes automatikusan megtortenik, ha * kilepsz a WindowMaker-bol, felulirodik az eddig mentett * SAVE_SESSION bejegyzes. * CLEAR_SESSION - torli az elozo session parametereket. Ennek nem lesz * semmilyen hatasa, ha a SaveSessionOnExit = True. * INFO - Info Panel megjelenitese * * OPEN_MENU szintakszisa: * 1. File menu kezeles. * // megnyitja file.menu-t, melynek tartalmaznia kell egy ervenyes menu * // file-t, es beszurja * OPEN_MENU file.menu * 2. Pipe menu kezeles. * // megnyitja a parancsot es hasznalja a stdout to construct menu-t. * // A parancs kimenetenek egy ervenyes menu leirasnak kell lennie. * // Space lehet a '|' es a parancs kozott. * OPEN_MENU | command * 3. Konyvtar kezeles. * // Megnyit egy vagy tobb konyvtarat es letrehoz egy konyvtarat, * // alkonyvtarat, vegrehajthato file-okat es azokat ABC sorrendbe * // rendezi. * OPEN_MENU /some/dir [/some/other/dir ...] * 4. Konyvtar kezeles parancsal. * // Megnyit egy vagy tobb konyvtarat es letrehoz egy konyvtarat, * // alkonyvtarat, vegrehajtja az adott parancsot a megfelelo * // opcioval. * OPEN_MENU /some/dir [/some/other/dir ...] WITH command -options * * <Parameterek> a vegrehajthato program * * ** EXEC parancs leirasa * %s - a megadott helyre beszurja a kijelolt szoveget. Ha nincs szoveg * kijelolve, a parancs torlodik. * %a(message) - megnyit egy beviteli mezot a megadott szoveggel * %w - a megadott helyre beilleszti az aktualis ablak ID-jet. Ha nincs semmi * kijelolve, akkor nem illeszt be semmit. * * A % illetve " jeleket hatastalanitani lehet a \ jellel. * Peldaul: xterm -T "\"Hello Vilag!\"" * * Te hasznalhatod escape karakter-nek a '\n'-t is! * * Minden MENU utasitashoz kell egy END utasitasnak tartoznia. * * Peldaul: * * "Teszt" MENU * // XTerminal * "XTerm" EXEC xterm * // XView * "XView apps" OPEN_MENU "/usr/openwin/bin" * // egyeb X11 alkalmazasok * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // egyeb hatter kep * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // megnyitja a style.menu-t az adott bejegyzesben * "Style" OPEN_MENU style.menu * "Teszt" END */ #include "wmmacros" "Alkalmazások" MENU "Infó" MENU "Információs panel..." INFO_PANEL "Jogi..." LEGAL_PANEL "Rendszer konzol" EXEC xconsole "Rendszer kihasználtság" SHEXEC xosview || xload "Processz lista" EXEC xterm -e top "Kézikönyv böngészÅ‘" EXEC xman "Infó" END "Futtatás..." SHEXEC %a(Futtatás,Ãrd be a futtatni kívánt programot:) "X Terminál" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "Gnome terminál" EXEC gnome-terminal --background black --foreground white --font -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1 "Munkafelületek" WORKSPACE_MENU "Alkalmazások" MENU "Grafika" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Grafika" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(GhostView,Kérem a fájl nevét) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobat,Kérem a PDF fájl nevét) "TkDesk" EXEC tkdesk "Alkalmazások" END "SzerkesztÅ‘k" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "SzerkesztÅ‘k" END "Egyéb" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Egyéb" END "Kellékek" MENU "Számológép" EXEC xcalc "Ablak jellemzÅ‘k" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Font kiválasztás" EXEC xfontsel "Terminál emuláció" EXEC xminicom "KépernyÅ‘terület másolása" EXEC xmag "Színtérkép" EXEC xcmap "Program kilövése" EXEC xkill "Vágólap" EXEC xclipboard "Kellékek" END "Kijelölés" MENU "Másolás" SHEXEC echo '%s' | wxcopy "Levél írása" EXEC xterm -name mail -T "Pine" -e pine %s "Netscape" EXEC netscape %s "Keresés a Manuálokban" SHEXEC MANUAL_SEARCH(%s) "Kijelölés" END "Munkafelület" MENU "Elrejtés" HIDE_OTHERS "Mindent mutat" SHOW_ALL "Ikonok elrendezése" ARRANGE_ICONS "Frissítés" REFRESH "Zárolás" EXEC xlock -allowroot -usefirst "Session mentése" SAVE_SESSION "Elmentett Session törlése" CLEAR_SESSION "Munkafelület" END "Megjelenés" MENU "Témák" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle "Stílusok" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle "Ikonok" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Háttér" MENU "Szolíd" MENU "Fekete" WS_BACK '(solid, black)' "Kék" WS_BACK '(solid, "#505075")' "Indigó" WS_BACK '(solid, "#243e6c")' "Sötétkék" WS_BACK '(solid, "#180090")' "Lila" WS_BACK '(solid, "#554466")' "Búza" WS_BACK '(solid, "wheat4")' "Sötétszürke" WS_BACK '(solid, "#333340")' "Vörös" WS_BACK '(solid, "#400020")' "Szolíd" END "Gradiens" MENU "Naplemente" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)' "Égkék" WS_BACK '(vgradient, blue4, white)' "Indigós" WS_BACK '(vgradient, "#746ebc", "#242e4c")' "Búza színű" WS_BACK '(vgradient, "#a09060", "#302010")' "Lilás" WS_BACK '(vgradient, "#636380", "#131318")' "Vöröses" WS_BACK '(vgradient, "#600040", "#180010")' "Gradiens" END "Képek" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Háttér" END "Téma mentése" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Téma neve,Add meg a téma fájl nevét:)" "Ikonbeállítások mentése" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Ikonbeállítások mentése,Add meg a fájl nevét:)" "Konfiguráló program" EXEC /usr/bin/WPrefs "Megjelenés" END "Kilépés" MENU "Újraindítás" RESTART "BlackBox indítása" RESTART blackbox "kwm indítása" RESTART kwm "IceWM indítása" RESTART icewm "Kilépés..." EXIT "Kilépés" END "Alkalmazások" END �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.pt��������������������������������������������������������������0000644�0001750�0001750�00000017413�12214432632�014527� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Definição do Menu de Aplicações para o WindowMaker * * Sintaxe: * * <Title> [SHORTCUT <tecla de atalho>] <Comando> <Parâmetros> * * <Title> é qualquer texto a ser usado como título. Deve estar entre aspas " * * SHORTCUT especifica uma tecla de atalho para o item. <tecla de atalho> * 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 * * <Command> é um dos seguintes comandos: * MENU - inicia definição de um (sub)menu * END - termina definição de um (sub)menu * OPEN_MENU - abre um menu apartir de um arquivo, comando pipeado ou * conteúdo de um diretório com um comando opcional para cada * arquivo no diretório. * WORKSPACE_MENU - adiciona menu para operações sobre Ãreas de Trabalho * EXEC <programa> - executa um programa * EXIT - termina o gerenciador de janelas * SHEXEC <command> - executa comando de shell (ex.: gimp > /dev/null) * RESTART [<gerenciador de janelas>] - reinicia o WindowMaker ou inicia * outro gerenciador de janelas * REFRESH - força repintagem da área de trabalho * ARRANGE_ICONS - arruma os ícones na área de trabalho * SHUTDOWN - mata todos os programas (terminando a sessão do X) * SHOW_ALL - abre todas as janelas na área de trabalho * HIDE_OTHERS - esconde (hide) todas as janelas na área de trabalho, * exceto a que estiver ativa * SAVE_SESSION - salva o estado da área de trabalho, o que inclui * todos os programas em execução, informações relativas * a posição, tamanho, área de trabalho onde se localizam, * o dock ou clip de onde foi lançado e se a janela está * miniaturizada, shadeada ou hideada. Também salva qual a área * 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 ($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. * CLEAR_SESSION - apaga uma sessão salvada anteriormente. Este comando * não terá efeito algum se SaveSessionOnExit estiver habilitado. * INFO_PANEL - mostra a janela de informações do programa * LEGAL_PANEL - mostra janela de informacoes legais * * Sintaxe do OPEN_MENU: * 1. Uso com outros arquivos de menu: * // abre o arquivo arquivo.menu que deve conter um menu válido * // e o insere naquela posição. * OPEN_MENU arquivo.menu * 2. Uso com comandos pipeados: * // executa o comando e usa a sua saída para construir o menu. * // A saída do menu deve ser uma descrição de menu válida. * // O espaço entre o '|' e o comando é opcional. * OPEN_MENU | comando * 3. Uso com diretórios: * // Abre um ou mais diretórios e constrói um menu com todos * // os subdiretórios e arquivos executáveis neles, em ordem * // alfabética. * OPEN_MENU /algum/diretório [/algum/outro/diretório ...] * 4. Uso com diretórios e comando: * // Abre um ou mais diretórios e constrói um menu com todos os * // subdiretórios e arquivos legíveis neles em ordem alfabética, * // usando o comando para executar cada arquivo. * * OPEN_MENU [-noext] /algum/dir [/algum/outro/dir ...] WITH comando -opções * * * <Parâmetros> é o programa a ser executado. * * ** Códigos especiais para o programa a ser executado: * %s - substitui pela seleção atual * %a(mensagem) - abre uma janela de entrada com a mensagem e substitui * pelo que for digitado nela * %w - substitui pelo XID da janela selecionada * * Para ignorar caracteres especiais, tais como % e ", use \ na frente deles. * ex: xterm -T "\"Hello World\"" * * Também é possível usar caracteres de escape, como \n * * Cada comando MENU deve ter um END correspondente no fim. * * Exemplo: * * "Teste" MENU * "XTerm" EXEC xterm * // 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 $HOME/bin/X11 * // faz um submenu de papéis de parede * "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 */ #include "wmmacros" "Aplicações" MENU "Informações" MENU "Informações..." INFO_PANEL "Informações Legais" LEGAL_PANEL "Console do Sistema" EXEC xconsole "Carga do Sistema" SHEXEC xosview || xload "Lista de Processos" EXEC xterm -e top "Leitor de Manual" EXEC xman "Informações" END "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "Ãreas de Trabalho" WORKSPACE_MENU "Aplicações" MENU "Gráficos" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Gráficos" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(Enter file to view) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Enter PDF to view) "TkDesk" EXEC tkdesk "Aplicações" END "Editores" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Editores" END "Diversos" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Diversos" END "Utilitários" MENU "Calculadora" EXEC xcalc "Propriedades da Janela" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Seletor de Fontes" EXEC xfontsel "Emulador de Terminal" EXEC xminicom "Lente de Aumento" EXEC xmag "Colormap" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock -shape "Clipboard" EXEC xclipboard "Utilitários" END "Seleção" MENU "Copiar" SHEXEC echo '%s' | wxcopy "eMail Para" EXEC xterm -name mail -T "Pine" -e pine %s "Navegar" EXEC netscape %s "Procurar Manual" SHEXEC MANUAL_SEARCH(%s) "Seleção" END "Ãrea de Trabalho" MENU "Hide Outros" HIDE_OTHERS "Mostrar Todos" SHOW_ALL "Arrumar Ãcones" ARRANGE_ICONS "Refresh" REFRESH "Lock" EXEC xlock -allowroot -usefirst "Salvar Sessão" SAVE_SESSION "Apagar Sessão Salvada" CLEAR_SESSION "Ãrea de Trabalho" END "Aparência" MENU "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)' "Azul" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Azul escuro" WS_BACK '(solid, "#224477")' "Roxo" WS_BACK '(solid, "#554466")' "Creme" WS_BACK '(solid, "wheat4")' "Cinza Escuro" WS_BACK '(solid, "#333340")' "Vinho" WS_BACK '(solid, "#400020")' "Sólido" END "Degradé" MENU "Bandeira" WS_BACK '(mdgradient, green, green, yellow)' "Céu" WS_BACK '(vgradient, blue4, white)' "Degradé" END "Imagens" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Papéis de Parede" END "Salvar Tema" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Nome do Tema)" "Salvar Configuração de Ãcones" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Nome do Conjunto de Ãcones)" "Appearance" END "Sair" MENU "Reiniciar" RESTART "Iniciar AfterStep" RESTART afterstep "Sair..." EXIT "Terminar Sessão..." SHUTDOWN "Sair" END "Aplicações" END �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/���������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434643�014347� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Shell.png������������������������������������������������������0000644�0001750�0001750�00000007774�12214432632�016057� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���gAMA��± üa���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� d_‘���tIMEÐ ,&öíœ}��yIDATxœÍ[ËEšÿE>*õÌjÊÝ]Ààî]·e5Í0{�i¹°ZÉH¬æ0> '8Îm¼âÀÁÿ€XVòjÿ‚å€d ÄÂÈÆv»_õʪ|线ðWÑ‘åR™™ñø~ñ½#J ¢|÷ÝwÜÜÜœ«+ŠY–áÎ;øüóÏ1™Lp÷î]üøãH’yžÃ¶mض ˲P–%²,“Wžç(Ë�`†ìÓ0 dY!� ,KEÓ4Qò<—µBÈ:jCíé=Ý˲”ãY–Ó4aLÓü« �ß÷ÿƒÿ¦`6›!MS¤iŠ¢(ä{ºhð¢(޽/ŠeYJbh‚ô=}G ð"„@Q² ï[#ŠÆ!ÐØ˜n%��žW§ÉÑoŽ8Õ‡«ËW@ˆOœ¯ÕÓD©0œ8þ{Qáà€išHÓ–eå�‹�0«:#âùІ! ¡÷¦iJ1 ‰b}ê—&È äÜA…Æáœv0hnÔîˆÇÆS[²8áôÌ;5 C^D¼a°,kŽ#TÖ Wœs\Öi8˜±#1ìŸ�uRÔ'˜VÀ±,kŽ�ªç@r¶çº¨r‘v’¢è‹ðÄ�p øD9+ÒdhµÔɩ߫}ªÏÔF³rsÜw.P@ž�nÆ8AªRTAà"£ Óæ:}C…ÚsEyZŽ®“‹�œË;Wjª"£ïuÏ*x\é©J¶Š;ÎZX'6VUÑq¡ã—kÞ§ê;përVâÙ¼«E@µÅœ8"Jgã©2äÊŠÄ‚ N0OÕ1TGýóo•ŠoªEÀ4M$IRÙ™º¢TTg‡û¦9ïZðU¥ßüο£¾ªÀ?IÑ�V:B‹PUå’:çóÕ$à ¨æ¾ã®®ºÂªÒ«po}£ó^îÃEžà1¢9ñ\Îu“â¿y°CA’N/¨ÊŽ@㪢¡zŒ:kD ªõeYöO �÷ÙÕÉè q„ª¸LÓD–esŠŒ&HEµ&<NÐÍ €ä,•#ébnÜ£ïªEài…Ü[®É¹üsyÓ‰ Á9‹¸…Ús`ˆ{TÑ¡qªV™+NÇqææ‰Óˆ�'€âi`^.9D ÕSlωVMÕ[–5ÇöjôÈ¿¥~hLš3Þ†ç!N%ê þNç´è�á„êÊ«íùJó1T"©Õ¥æyôþt±�gaÞÒ;Õƒ£o¹ù¢:Uf¹Hè\f·¨¾ãŽe’¸©¥g6ïÓÇTx@¢z~®ëJÅ£š3^G poQÇâT¸bãòO}é€xв>[,@PbÏ7nàÚµkrÒœ;xè̯ç쪲² ‚Ê ÙT®³‡Ãj‚‚Ø+ŽcŒÇc¼ñÆxë­·d=¤NŒ{v|5i,5¡ÂÛèôÝIQ«æ•û.åiÃa>ÁZ­6'ÓÔy’$øê«¯ðÓO?áÚµkxûí·aÛ¶Ö%âxß4i•�]BE½øw¼O~"+p&À'£ØUEGa0 ×ëáêÕ«sö›¯MÒ²,)üNÏtqw›sŽc¨„ªœÇæ{zGˆW• ±úêê*>øàlllàûï¿Ç­[·†áœ\ªÞ£fz¸b%‚¿ãÄr‘ä&”¾Qð¨~±#¤†¯ThãƒL "4 |óÍ7øúë¯Enܸ üðø{÷.nß¾8ŽçÆQ³Ä\Iæy~Lò÷Ô†«Øû¹w¬ÿÅŽÐó8Ž‘eÙœãaîܹƒ?þišÊºÁ`€N§ƒwÞyׯ_ÇgŸ}†[·ns•Ug…îäEª‘¢*~ª UõƒÆ"œ-¦©Õj¨Õj�¹‚Þqv-Š_|ñ¾üòK¬®®âÒ¥K¸}ûöœ6V=:K8&6:BU0ut1PªE V«i#0<L&t:ìïïc4É}AµÐ¤>|ˆhý*Üæò¯Æ*0Ô–ƒÃWŸÏ~W‹€.{KÅ4M´Z-ø¾z½ŽóçÏc{{“ÉišÎmZÒÀ�¤ÉãÚY—S ¶B)fœÕ©}Ëó19=*]†aœ-æé²µµ5�Àd2Ád2A†òy0H@èÎÝ`Ñ;u@G8¢f¢©pâùF VY–Õ"°Ht:\¾|FƒÁ�Y–a6›IsW¢(Âl6“ „aˆétŠÉd"hš¦s™"^(˜áiw®Õ¹¨!§çUŸÁ²¬Õ3P«ÕÐï÷Ñï÷Evvv00±¿¿ÉdÏóÐh4Ðjµ$AY–!IŒF# X†˜Ífˆãiš"I¹-®š9nu8@º¨T¥ªbžçg Ùl¢ÙlJÂΟ?0 ±··‡²,1Nqpp€ñxŒ½½= Ë2DQ„4MÑl6% qËl6CEÃQ!Ë2ÄqŒ$IŽÍ‰‡»j¨K¦“ÀSM,¼P ž¤†ÇqP«ÕÁÜävww±··'‰‡H’“É÷ïßGEˆ¢¶m£Ùl¢×ë!Ë2S$I‚étŠñx,E*Žc HE(ŠbN¹÷è-y›ÌÌv+—y0”®ëÂqœ§‚ ‹Ý[àPYnooc8"Š"ŒF#¤i*¹†tE’$síÄ8Ž%wL&YGÜB\¦›‡¢Oò²,ÿTÉUD©—eI'.ÔŒë1í+„âÃå˜,Çh4ÂÎΦÓ)Ò4•õqc8b:Âq´ÛmiYŠ¢@ǘÍfȲ ÓéqË>¢(’ 鸺’vvvÊF£×uµà”e‰ÝÝ]<zôH²á¹sçÐívµé,µ-=s{N2œe™TŽÓéÃáÛÛÛ˜ÍfØßß—¢Cßð¼=‰×1QIŠ¢(ãøÓ*09BeYâàà�<À³Ï>‹V«!¶··1 Áœ²Yäq/Ž‡ÃªèÑ*‡aˆ8ޱ¿¿étŠÇc<cwwWš×0 á8Ž4™L’$òpW†(Šb_@�°�˜jŒ­–íím¬¯¯£^¯KÂúý>~ù帮 Ïó¶ç€�˜sŠèÎ/Çqà8‚ @QX__GQǘñxŒñxŒ0 ñ믿b4! Céo¨ÄysVÀÂáÁ(º* ¤x'*H €Bü€&L¬œ ÕsãÏ´½VÚí¶ô5Èu&KC„¬GEØßßÇÏ?ÿŒétŠv»½dáɪÓe0“$‘‘^U¡­&*£ÑÀ“‰Äøo ÅŸa'ï 0?†i”N ˆî™ï/@¥g “LéÖÖf³ʲœX� �öÑe°<ϳ¸ß­˲?~Œv» ÏópïÞ=<|øÍfSæ £ì.òâ/Ø~ ÇÐlž€“�¤ê*Õ‚‘Ni4(Ëý~I’À¶í¡ €À\__wÃ0ÜÏó¼kYlÛ>¶ÙØëõpïÞ=|ûí·BàáÇ8wî._¾,9'ý+îýåWô:¿Gs¹ù›_UT@tœsĹ}‡„»�`ïìì?t:å²,1'yžGEQyžÛBÔj5)®ëb}}›››ð}_u¿‡¥Îèõ~·Ðµþ[!D)„ø/ÀÐÆ�L�–eYöÊÊJëÂ… ÁK/½´²ººúÌÒÒÒÊÖÖÖ?·Z­žeYn½^w†oÛ¶AfCÍçý—ÀG@@€C.àŠPµ ¦Âl4n£Ñð_~ùåg666zÝn7¸zõêæ /¼pÁ÷ýºã8†ïûŽçyŽã8‹méß¶ä�>��žÁ!'¨Ö€ƒ`(Ït Çqj¾ï;+++õ_|qimmíÜÖÖÖ?^¸páB-×uß÷ß÷í¿#Pr��Z�–q€´Ðp�ô�84¥ü‚a¢^¯;žçÕÖÖÖ¼k×®õ_{íµ+çÏŸ>‚V³Ùlø¾ï5šmÛZ¡Óð¿1� ��«�|0K€Å < �>ë’_ï½÷ÞÕ+W®\¼xñâ¿ø¾o7 ©L}ß—^¤ëº ³º¿�Ÿ’´0o ê �*j)/^¼x¥Ûí�–=Ï»’e™=0pÿþ}ésxž‡ Ðn·Ñl6Q¯×%(õzýØÉ_ J(p(ÿ¿Ã!Ô�ª@ ¢Í#‚µb��~øáž{ååån½^÷ò<—ïxT—óçù¼ ÐëõÐjµ@Qªã8p]W±ž�”ÀGÜÖq€*Ä1**øä“OþpéÒ¥M5ÓËsjŠŠ¶Á9D%J(‡ „€ëºX^^Fh6›p]µZ ŽãÀó<­C¤ÔõUà÷*ªDA�ï¿ÿþËï¾ûî¿'I"øž_Õf%zÔƒN”+PÏ Ñ÷B`8Ê~<Ï“Iß÷eºŽ€Q²Ï!ài\ð4] nÞ¼y}ssóŸ€'[et@=ÜÄ÷ý8A<¸âiïEî-µ¡½ “G£‘ü»N£Ñ t»]cX%'ApóæÍ{óÍ7·øi/uÕø¾SC¿¹÷È«)u©nþú†ëâ¤Ùl†À¶mø¾ßç2͹@w75w€qýúõ­W_}uºUâ©'½éR@ð>Ôtvá:Rû¡’$I¨ËèDA‚y8ži½òÊ+ÿA½( ¸®{làªã-|Ò$U›D8q ¯ã�ò<q�×3Ê †:PPEb„×_ýùµµµÀu]“ÎU­.g{>YÎ1ü;•T-®þ)KÝæu*ð“¢U° €išíz½îPÞ@GŒnuÕSåY·â:Ùç}é¶Äù|T³[–¥´ÜèÄ ÒK\ZZê†a!Ê,Ë„çyÇNjq¢ÔÑ: RE<§>ó÷ºÕ?z–V€;:j,°È:˜½^¯1 Ò0 íN§cZ–%8p‚øI¯*ÙÕ­#TwWŸu@ð±qäå�b�c�€‡áቦ÷ð„S<<qu½n·»›eYEQGQæyžÚ¶í†‘†‘†á !Ž= !<!„0 #B8g!¸jµ«Šò>Ç‘#t�àˆkÈŽ®ö)#Æäèꈎ@[ªÕjÿ)„ˆÓ4}îþýûãv»=©ÕjýV«5ª×ë!Dß0Œ‘iš�}Ã0F†aL„}!D$„ð…ëBˆ©b(„è…C�ò™ê ô…òù$õšçÀOÿ¬_òZ× #����IEND®B`‚����WindowMaker-0.95.5/WindowMaker/Icons/BitchX.tiff����������������������������������������������������0000644�0001750�0001750�00000017414�12214432632�016325� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�*�� $h°à!B† &l¸ð‚ºˆ˜¿d¼¥Øá-Õ>_éË´/@ªmÒí –áD€¤9 Ã1Ÿ¸1óè0·C^Rñ‘æ$»#žÒ³I´Æ€¾P:TѤDc:Z…³Ó&–“J±<ÔÉ”ÒÄ ‘–Ø‹²ÍI¤5N¢mse«s×.\ÄÚíi—›xûÜ%8à.Ñ~nÃyJr”»8{‘]æ%Ú"7QV¹‰¶Î]Œu>¬ògyÁ|ñ¶ùJ°ÃCœM.¢­qa™£Hë›m޳ÇS‚ÃÝ<ÅÙ_l“›�5‰S£J’252dh’!Ï…&UÆäÈÒ$E@[Zä R(U_Q&¸‰°¾Áf[Ûlri“³;}ú 4Ð/’9öËXƒt`ÛD“ cBXÄ“–ñ"Œ\‰`W"C#’yœe1q ˜ylðg:’Èðc[üYÄŽ�–p"„µ¨YÄ>zìð¦E”ÐC~à„M$$ ;ôðÆe¬PGPl1! +´ÉÅ#:ˆÅ…vr(&€ÆBa7"YõÞg6uó¬Íʯìõ÷7«À ‘9ÜÃÂ…pfóbg™Á& b:Bæ±Æ©H˜%°Â‡Ù™Ãof±Ä‡IÌñb3\éAY¬PB qt‘@98áÄ ]´1r‡� ƒ:¨‚nÊ ÁrˆL'ÆÈÀ:²)Æhzq"†•¼XÇ•pŸj¾åpX agÂØÀƒp6p'˜e< ͨã\ Ƈð š\ˆÈ§×^˜Å‘P¦°'¸‚˜Ã~�ì d¡8üJÀ§ÔÒ±‰k|˜.‡1´1$ .X„V8ÐA1LƒgT‘Á e$à M4EDF¯Jf)Àˆ¦›pÌ™¡/ªÈ&½)Æp#ŒÅH˜ÂŠ�f±[ŠÀ·Øh¢Ó?æpÁµpÄŸ™n<g obYƽ'ә߬ç^óï“" ZŽÅåwÛ!°Á‡,ðf ~°€já FÔ€{‘Ä…)0F Ñ<^ ‘FÔ‘¡Tܸ¢ŸTV©Æ—5ª‚¡š)"‹@ÂiÖ@F0Å l`fùû–Žš…aYÀ~uœðeæ fpÆŸÉnð&ž|•¶¸sbYƒÓˆb~‹-òg¦/fbîþH¢ŠfXæa\¨Cdà„n”àƒÌPÁ+>Ø@H5ÔÑ#:†;$À�¨CRÄÒa3´#Ë(‚ 6]‰#ô õÈG:¼ŽZ¸À=°‚/&BI‘û\¤°ƒ¦á ?ÌzŽFÐ ¼‰ø°QG‚E–à‰HL[pFƵz`Ôòжº1£HLGÖ𙲠exCÌà�èÀ. F5Œ!Š<èB£!Α <£v €Fá èC¬ØB|±2¸c•ðÆ%ºƒe”ÃGhF …xÂÙp€:ÃŒIXÁ#¡³¬>èÏy©Ô ¬`‹|XÃÙ0‡ RaK$ÁVÈ%lQf@&È„†Q¡ SdA ¦È†>¬P�]Ø¡zpD-ôáˆ:f¢â68Àn0‚F…,¢ qT˜�õ°‚4Úa )< xC;<q\X` îÐ@´!…GL!WhG(NÑ�l£î¸FB±<XayD!Ògx§®èƒA±`å./b¡HÅ\„I8¥îÁ”n` [$Áˆ„ lKX#*HI2` $B¦ˆ€>L5ÊA†ˆ„Ì !š0F´`‚,XÁ…àÄ vˆ@ ,à‚¤!‰(A¥0…‚  Œ.XC§È† ~Ð O|¡ n8@4ч(Øã“HÆêàTÁ7èG0®Ðo\¡8E=|°€ä£9¨…¼Q =Ø¢ÆpG±‚¤`nƸŽ0?D`$<ð@ œà„¸Â ©°‡`{d¦Ù°…rà�äÁŽÈ†1¬‘š$à³Ð9R3VE# &°@¸Áˆ€B1‡* (AU0ƒ,¦á ì"ªØ€?$ñ„èàå°Äü!%”Á[hAQ¢ .xÇ$bp‚zXã³HÄ;fŽK "}¨E ˜Áq0†U'à‚r¸À+`ðBÛ {¸"[7°Lüá‡,øÁÙ°€9B %Cò0‚”a E¨Â JP‡d � È@ƒ<l! 9ØMy‡Ô [ðƒ¼;8Á0û<ð€DÐ[ÈaîÃ32 ™7áéÐÇ9⡌qxAÇhAf‘kŒ!ºØGlñ…Dã °Å#àƒG #ÏE,ºQ‚$"™°ƒ¼ÇK¨@æPƒ"¬V h@¦P‚<ôt(Á™‡Œá]hÁ2P‚ d ÈC .‡ì B Æ…D¯!HCz2$ KhAZØ¡>pC à€<xÁ ;(A °2a 9ÌÚxëž‘ \#ú(€ 0(èb™0Æ0¡ˆ%¤C ¯è„>Ñ'œ¡ Ö8@̱B˜`(@ Ü—•@RÐÍg -ÈBúô QhêŠP‡4  ?ÈC·<¡m„CZH€´6]ÄAJðU\T_¨@ÙP…Ê CB —ƒ2Ì¡npÂ²Žƒ³!A¨B\°:Ü ø@‚è†Äq…¨£€´Àn¸A[H„!æ%ì!šx@LŸ S¬¡�ÆØB9ìð€Na%@32 g˜Âc=ð†"d`{a8BʽƒJ¡Œ Ý@Úˆ†*tç -B²0‡ä‡ yC!P…b¹ ˆAÎ…Ü!$@:È… t (#*P=Œ! èCü008y$B bˆ†Ñ +(b ^ÐEÍ”ú#h{WІðMX…Ї11x‘+ø„>ð…[¨ XƒxPƒfð8€zð€vH�wȃˆƒpºÐówc101òUP„HPUˆ¦‡TPÈ0€T‚@ðyЀP ˆ)P�7yp WayIƒ�ið iðPg0'nj0�!àx§‡)p%8†PЂ·€„}=è�cgHpðeØ…\°‚eˆM8LЇ (�Cx…að†_Xx„~ð†MH�5ÈSà…eÈkè„da:#ÐPepeP‚ \†@7ð¥T„BÐ[¨-°‡Æè†&Ð�k¨u°‚ZШYІtH)Є$ Iˆ P‚eIP„ o„wÐs7ÐAW1¨#‡cˆø„t0ƒp-èµ8†0P…CH¸€L0‚eÝ-820†˜‚@x È‚W…ÈP°Y¨�OPMhŒ|;°_0SEЄPŠ©Ø?9p�1?ºm°ƒÐ[h]p„Žä„Ð�;èu°MV°ƒî€Psè�U°€6P3hE0…PChu0‚PchT!Aœ!uÆ„X†Yp�%x„H0€ 0è;P†HK8„HP;ó‚-%8‡tP…cÈe¸‚a€1(�+x'8„ÐÖ8ƒ|0aX‚ †H†,°;ˆK0ƒHÐsÈ50‡FC(µa¨-°€fºp†Ð'’U°‡þ†æ€Žd†Þè€^Ðkèu°„NP3h%0‚M(ðM(eЇrP#¨µ(1và#_!è11XOP„Ój7ƒU=‡sˆ X/Vr€=HcX†X€#hwÈ�àQPpȇ ƒ0q˜‚T°‚yh„2ð�WH-0„�#önïEÐxP}H 0† ºCpQÐ{,M°^Ðèu°†V7PshNih)2¨ðN(É*h9Ð…J-ÈP‚Hà pPƒxªk`Z`q3GP�i¨K‡^€^°5XOЃs ¸€`ЄQ°�˜WP H=è/„~(w%å…Hm8…<0ƒ*0)…y8€.È4\¨0‚0°{H%Ђ`5yЂHK&°€zÐ󓬫šbMM0…Ò"†ŒT"PS(ЂäR„èꇲ*…*•„25H9ðYЀ È�.àyàf` �aÈ ^(]DPaè[Є!p�ehm‡>0A2 Ø‚$Їš4„T0E˜…B°†<°9è‚�P‚(�}˜ˆz(#à‚耀*(g°‡0 (�0ä*…P�-HQI(qNІâq90Öw°¬n0†;„ï„TP�}Èu0sÝfiP…8 ipK�q°�~[•ô}ÈNàe``1`vð‚4P)È9à‚i‡5peX „žLƒlª€³ú‡,0IˆmƒshB ÐAhwP'P)�Ew‚YÈ;èSHƒhHs°„d0{h5°€†œ„:ÐKh vІHpuEp=seð²Qð�P…@ç‚P H´QðÁ¸ŤI°!G�ð P„ð<�_œ7`àV3n fÐ>à0ahC¥Ð%kP†=p)¨�m ànØ€°{!pYà‚E—†^ð È=ò„.°i?õ…`‡È€`Ã*„H(-è:H ¿à£Ð=ÈMЃ$P-?mˆ9P…0¥Ð H9І|kuHIP‚(i.ˆ!ˆ HP…ÄýÖ‘mà�:`v VP.`ƒ*0�Iäy¸?Ђ~0°>`eà>…(°� A°�a`†ñô†aðUH €ìv†j0 ˜oD=˜‡D°„,�°†Rð_(UЄHÓEoº}pA0Op…aÐè5°ö˜÷ —Âu( 0ƪ€òfʵ¬ù!©)ð9PNKІTPup¶A@P ˆ5„PAf`Q 6PVà„4N˜ P€pˆÉ1^à‡!0IkVè�P„:0AH§ ˆò7ƒ9ðI[¨+8„Rp„Bˆ’°‚R°w(=0é�P_ÑóvDA ÐîÄ‚Îì†.Їœ�'è-°ƒvÐ+h=°†–E†^Ð+è °„6Ð hµ”-0€|ëÒ*°�}H‡@($^(=ƒ^0‰‰)è}è3EQ‡9w†8~ @i‚HgP^` =à€yˆ�“:.È=‚Rjð8‡Ð ¨L!Ho°GÈQU¨�#0‡ÂÊ„ÔT‡<º ð‚07Ïfcpƒ±‰„þ Ø p†v°�7¨?ðƒJh…z€aèqˆ`H†°]PP„EeÈcÖ+ƒ0)K!*„5° 80Ø[ƒ+pIÊ ¨õGX+0 X†L°K:q‚ Û\Ð�!¨C±uàƒP±u8†І{¨#Ø€*p‚ ˆÐ9p‚6Ч…hµj¤b„5p€ Ø¢4˜÷ ]p‚AÙ€VÐKÈW°`Ø„%‡I¨…dx‚kXxƒXÐQ�å‚A°I¨áÈ-[à†±6‡xƒ(P‡ ð%˜sËh„Q0�>(µ ƒpX„hÐo¨=‡ H=˜„�P*…v0A˜GP„&0QXô¸ MY‡ è„|0+ÈDE(ÏIhÊ1h[—u3ð„ñè€VP+¨Î1(ÕZÐa¨�+€X‚*؇¨„Wx‚Sø†{˜ƒG¨'Ì)Ú)8Ú8 8P‡Sð%x€`P‚ý…GˆM>!8Š*xw…Spè�ƒSð�i¸„ЀUpI¨%€z08*pƒkhƒ`Ø€P‡1°A¼YØÝáØPPcÈU8€F€lˆ"P_P3hˆ1è¢0˜Zßõ7Cp†?bX¦¢8ƒ0�؃z…k؃Ix€g¸…78ƒZ8ãG‘q�8 YxUx…pЀ{9x€ ‡[ðYØk…¹ƒë©€ð…iXk‡sˆNØ…f0¤Ÿ€…�‡—§}ú§{†gpXB`…%E8>À~ÆçP=È:S˜£I€DH†@ˆ†(0‡(ð�*h„P ƒ~ˆJWà„5(¸†C†{¸Ex€}@{Fh�_ „Žt‚}p8wP‡pEôiØg¾jƒKð�Y¸O{DP„Kð%Ø?`}�‡9(lhà‚9°1˜…"„EèÜ}F¨†@„H0ZhP„Nð:˜ƒF@~F؇y€G°R P�a`ºá-‚ È\0}F˜‡^€ƒ"ð�<¸„e€zF„"…a¨ƒ8†Y¨ƒ-Vè„L@k`Ò\n…}¨"˜`ƒ0aXkƒp8¿¸oƒ³€°q°È”¨y©ˆ½8.‰-L)d0aDLµ2X†�3¦t‘ ˜@ªˆv}¢PÄ´o1<°q`Á…?+ ÔdºÈ‰87}ކéqÑ#L‡˜Z¥Š¾IucT EŽ8A–µ)Ô&›‰bžxâG­‚2.kÊÄ¡ŽN)%<f™qÌ…”c„ìKAgE�³LYbIÜ®V1éã…)‹ZóÒñÚ±¨×¤Vi&´aˆÒ¶àŒq!Ô/YLÇ@’Á …:1ì옱¦HW"UÆZsºÈ˜![­tX¨P¦ˆ`L¶tÀSD Ï©EP1Q†-U$%·v Å´©|74–ÛÜ€2ð:EÃ5ˆ€sõÝYãØpùÚ8 ×CóHȘʈÎ#–˜F†aº©¢›b<<“r€ãÌYŽ˜uxÀ|‚1C‰x…ÑÄŒ<”0¢Ð»ÐÆ*”1$Za“QZä€Y Y¡X¼0A˜ '?|¤Ã`‰!¤sK„¤B`àƒ�4¼á…’Ò “B, %]8¤ "]hÄäPjä`‘DìÀ“a: "™p¼¦‘bæèƒ'!cX@Arpt†…2Bp&ƒDJPÇŒ"äС 2¹ÑÁ‰´°¡––A2PAÄ7pÂz’ð•m&avm`‘€ òp†0]¢E pÈ@f®YFLt Ø¡Âhp‚z q\Hš(�pA¥˜¨t„$ _èÄ{†i¦œ)Æ))pü±@ÇnhÈÅYZH Š\2ÆšÑƜƲ ÆÚÑÄ– 1Íz0AF ð= {H Ä ö˜ÓBHø¡Yh ¤tÐÅÄC°€êP‡Ë#´a@øa$mX0†VêH›^HœÑiÈ!`>)„Ä}„ˆ!O6XbŠ ¶ë‘-¦C"°±G*ðF‹nrI$€@Z1ÇFÔ1¥kh¤QÀž‘“òÚ4ZI%WZ€@@&¼±ÀÈ#1�KÄ e†ê#…¤¸~Ê�JádŸA¤d©�9ºCv˜§¶!±A4œP@Ô#²ˆœ<Òpã„UT ¬‰Æ8´`‡…l|°g”rÒñÄ“RŒp¥5,h”ñ ›zÈh¢LjÈšvŠe„ IÅ4Às 1"¬1†vpa- @¢@_È‚9PÆP T pH‡-°Y°£:`D3„V)Á:@/ÈAsps¨ÆPD¨ƒ”(@&â0!¸b= C6b@‚1tž˜A#0! :¡Ñšä/³1 pp€°&ôQlä!á¨Ð E¡Ü‡ÐF(d 0ƒ* ð * ¬ …8(@ apƒAp‚à 3T ^HA|ø¡¡ðAÔ!‚\Hƒ þà5BÁ *ÔAœh„*x‘q0C  'ðAèyÐ!2àE´ €xèCiˆA0¦1†ÌcƒÈG4܇Ðý¨„@ "h€„ˆ‡2Èõˆ ¸ Š€ <áŽH”# -P%ÔbdhhÀ©Ð„)²!%8Ct †+øÀ„HHƒ¢ 5,¡C„ÀvæÏa‹Mt£ D+ö°…uì¡�±˜‡=1C¢àÅ$ ‰9A²h‚/DÁ-ð€ÑP…ºá X0Ö0Ž6ÜàÛxĶ  bbã@h �:#2`B?t!ˆ9Ô‰G6xÁ ˜ÃáHFê ÔC&¨04ø!ðA ª€0” N0 àB äÀ™k0À�*Ð@�¬`/h@5°…$nЉÜã³xÆŽð‰{làSèÀ| ƒ}Ø@Çp…4 …3¸@�œ !Ôà ¸Åð‰O¼àïxjñŠK¬ãýH×#1aP£ àh[äˆEHÁ²0ƒ%â cåu††<ô�%¨wÊð…!øÁ‡D(@î«–À¨A1pƒ‚ EôÃЏA1ðá§èöPÜ•EÄ œ Ž#8C çð€t3!ƒh(@x F`ŠWœ¡ O¸Ãp€¼bµxÂ4²ñ€ øb eàC‚@?8>°ôÁZÔC,˜C¨Q�G`Ãz@€)4�h¶0.d! 9ˆA¹ç°.ÌÐbhÀ µÐ…5 CÄÁÂàATš0ƒt`‡(ØÁBÁÁЂ8êa 9!z¸Añ‚tãÛè Ž1ˆ{L¡°€ .à ™ A:t [_a:Ax ðŽlã»ÏxÇ9šðŽâ%pÆ6’`„JDÂÁ0¶ä! WˆC�-BÃŒÁ4Hv`dA2p€|à¤!ˆl<l %ø PG4`„b¨BA°‚¸Puð!âà�7¨A6ЖP†Ra ÔªXAÔ±ƒXh཈Æ'®1‰kl¢ g˜E-¶3<!ª¸‚7äpHØšp…*Ôps@¼ãWxŦð„kŒâ ˆÄê`4ÃwhA�уTÁ J¨†¬àÛ @ü8€=¤1 rà‚#DÁ iB ¢…6”¡]È@ zP" uĪÐGÔaˆÜ‰Ã6š¡ ÔBs3` Afˆ Œ‚DP h¢ŽÆ, ‰e¤A·@îúŽ[l¡7èA<v÷‰3xA §pƒ*wƒ1Ô! wØG^pƒÍ~b ç÷Æ'j`oTߨ€9žÐŽ`œ¢Qè„tщ„ÀÆ@êqÈavB'4 �H@2‡ Ä! H@ºù7 …8(C9ìøî÷¾ÿƒþèÇ?ùéÏ~þ‹_þœ€�������0�������0�������Ø���������������� ������� ����Þ������ö���������������������������8�������!����������������/home/fatal/BitchX.tif��created with The GIMP�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/pdf.tiff�������������������������������������������������������0000644�0001750�0001750�00000016240�12214432632�015711� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�´��ð $h°à!B† &l¸ð‚úX¨4¡B¥ "]ˆ`é‚Ë,H¦ 2ò“Æ·TÞ¼¥ðæ%‰Oq<¹‹âÎE¶¼Ù²âÊŠfLØ1ă1cÖŒ±eĘ}EvŒ²aX‹!¶ ê7l@Ÿ}†2â\…cæ|™³àÇ‚ & ¹ÖáR§Cîõ¸1 Ï>®ƒ¹Ò2z(#^Œ"ûK¨ŒØ2ã%Nš<¥�øH瓎7O‰<³ç™'~XrfÉ”-SF¬1`΀zt™Ð=x˜)]:LèÐfD›CZ´Ѣɘ&m¦´i³8ËŒ Æ4h0¡A“ͧ4i0‚&-Ö´h³½ÉŽ6]tis M“ísÿüõßK¬Ñ0I`ÂÈ ŒP²Ä†`²$!‹ È$�2ñ·¼HÅ /ðƒX<p# 7œÀ [¼°U 3;0B3ôÑÅØO Eß…¸œs}4QGuÔÑA5tQC½„1DMLHôPA]TPFå4QFCTQÅUÔ±H+×|õËY\ö l<Ì@PõÀ"Œ,Â#;(² %˜lIÈ!ˆ B $‡@|È´„4™I d¼"ÅMl±Ä Ëè0Æcô0Eí8ÐFßô<¯ ôÐH0á¤G 5ôjª¥æšÐO#ÔÑÀÔÌ]à mt°EÇw‡qtÇÆšÄ�w 0ÆW¹–ÐÇ=\n=œÑCôó€?ß|È ŠÜÉ!˜r !„<B"Ÿ |ÉÂ/ÒÃë/2ð•0\±ÆkÌqÂS1-76ÇЊ ͪª©.‘„ª=©ÄjA=TSKTPÃ5´±l;tÐÇYs0Â#ŒðPõšÇ?Œ±$K,Ñ_LŒW/ 1ÆcLñÅ´CÂÉ%œ0òòY0òƒ¢@lò{ € üÈ‘–L™ÃÅ“d<q!¬ñÄ \°|Èò0À t1sÜI§ÝĤaÌÑAg´1sÓ ´1wÇÌ]öl7±ñ ;t1ÀýÕ™OŒ0™S0=SÌÄìÌ0'H'‚±À ÿKðÃB°éòˆ œ| §àŠ–£ˆ0B(B‚ñ'¼É²ŒT<QÂ%äÑF)TBE$EQ„‘F!¤z!@�~ÄàGIBæÃïDABàGDöd~Føö?d!�!(øŠ>„„`ät˜"¦°F8¬a† ˜Á>‡La…pXÁ‘°ƒB`+Á ˆ†ƒ›ïVw!Ü=C¡ P¤@#„/rõ†l²!Å3žC>ª‘L”!é(D:’‘d$"‰H@& Ä#iˆC RƒX¤!±Èˆ!Ò‹h¤!QHA¢›Ø!)ˆD$RãWD ˆ@"…ŒØ Q‡ôà =-Â8h”€?¥-æL˜ÀÁ°„ Â`k„À6† G7¡À­a ‹<„àp"þ(&r„,"ž…òPƒ<d£ÙÈ@12Œ$G9ªQGÒý"5&™B Ò[DÅ‘ˆ@2"²˜åx!%nEŠ;†pD!3ˆ?äÁ/+­BFð¡ŠÅ,šHøÁ –‚%¬ +×Ãvž|¢(ŠŠ0»EÄC‚€B¡¥>È6rEˆ´4y.­iG²‘ޤ# ÙHŠâÌ’F=ãˆA*bƒ´Òf6æˆÎ’â…D·"ÉrH’’…$b ØHB³‡p¤#|´d]8;Aó0´0Ìà 3X �°B`Þ“/ØÁáp€"à¤CD¢$K(q+JŽÅ…E‘ÐPø¡~ðE|á‰LÏÀ8-iC6*Ó…Rd ÙHD<Òd# ÈABéƒH$!QHŽM¬ËR0$Ê ‚B|ˆx= FȈ@�‰�!VaˆGx B vЂ ãXÀ¿ZÕIV>ó]Ã×®ˆ‚kÍQg”!á(E8BQJl”"(F PÜ” %ð‡'²�%䢹ÈFUq‹ßH$fqˆGvãÛ”Ò# eËj3QV„µ¡ˆ#6∇XA­D@«á‹`øÂ!ð"àDÁ<œyk®9Fp…,àÛ!XÁÁ°…=Ba'„à Έ„3Ü 7" åˆB4*b‰ D!C…ûQN<”{¤GðA|à‰,ÏÀJÈArŽR¤#…Hi<b„XÄ!#c1F4RÝ?D¡ˆQ ¢SŽˆî Lh…ÿàà ?„Ô ¡C@KȲÃs= xÀyhA*Ї ÔauGÓú0†3ŒaOXÀ¾°†-üa Â.‡‹ǃhÄ¢*f¨F4¢WHT#a¨r?*çRÒ¢Þð@&< (" ÈB*ŠŠ$䕸äÓkj¬²€dDB]²C �u( �¡Bó|à /ø“m²ÛÈÖcxÀð€¯H”Wx‚ d (BŠPƒÔ¸ ®«VЇ)œƒ ÷¼Ã+Ÿðœ g®"f¨Š%ª'€j·¢ÚrkFª_”Ô…ð\wš¦ˆL”#sã›Dü¦3‹ÈÍ#¢ìGÂUÏv‘wÌágííÎmðGü€èÖ#AðGtÝ¿!Âîð†;Üà 7ˆ@"û‚"” %¨@ÓÐÞ¯j  £›±¦°ƒ),à´ ÀÞ°×!âP‹¸ÕÎìèk’Ïš†j÷£fH(, ȉ ¸C¦PD:ÊÛÄÆ43ˆ™ ¢ÏŒpØ’¡ˆE(”¡ eÎrP†ÜàÃBø(šMyj3‚0D"kHs…á˜ï|]‡4Ä¡b|(CÊ׿>Ô£Z C;áЃ!Ì`xXÁ1ïpvcÀxÔ#1¨Íê&€Úx¡¦`¨}�Bà’u![$H† ¤¡ iHB~‰¬˜Å⌈Ðl EÐEP�UP�YPY/¯Hó@ˆ…@…d…hÈhˆ‡ˆ‡hÈõT•€`H0xƒ5µDÐ7$UМkÎ� z‰D{J£ *:„$h„$ˆƒƒ1ƒF±„ˆ‚ph€p†ZO'wHAˆm15H÷Hƒd(†dˆ‡ˆg�g3‡P-`ˆRXs9P9Å�÷rŠ_ǃH„ˆ€Lˆ�oˆoHƒ:HƒD(DˆˆpÙˆPw?ÒUÕ°¶X°p„ p�ç”�K°–d°—Op»à€¦à†Fˆƒ8h’1h‚Xˆ‚Fˆ‚P¨‡P‚OÈu5H r5iÐéP‡t(7 (5mÈ7]ȆXYcÿ…�‡�UPð6?ð`ð GƒƒD†HÈ„HH„RH„4h ¨€dˆƒBˆƒÈ0{ˆ”J505°‡`T;0ÖnÐspsp†PpfSpp›`•œ(–p‘LF H„fH„XhèƒXh†Xˆ„Fˆ¨âq(ueHwp†(pÖq­ôGHƒrHƒT(³1(‚$H€H?ˆ‚0å…P„H€P�-PËX‰]ð…pð… — Ï‚|ˆ…¨†HJHd(‡dˆ…Ü€3{ðçû°>p` õŸ;0p“ðGp‡0W‚HðWðWpwcLR:„DhM”ÄH,ˆ…Ö˜†&ˆ�_¨P_WHHwˆ'°‡p°iÐŽÁ¤‡t¨€tH…r¤‡Xð†D(Š@ÈŠHåŽ,ð,eÐeðƒ0ð9P9M?ˆ?€X€àØL‡d€(‡H… H…x(ÐrˆÖMÝ P�C°C0ëÈMK°�{Õ°'ð'ðƒxðƒ`H )u5ð7pË3:„dhmhURh h‹;hÉ0¨tBä„4pWˆ׌WP�P€L¨…LÈ€jÈ€4¨L†Ì†$(MÖdOˆÍqˆ#pqs°]×H…P2$0vö؇På‡H‡ˆ†lˆŽ ÑK]ˆ)ˆ‚tÍ(Ð�CÐ�+ð°°;ð�;Ï�[pŸh/ƒ;…"´Kð²S:„Tè„TH„vQ‚Q…ˆ‡ˆ|_¨R_(vbÈp‡TpwÈwP[P‚,h‚,È€zÈ€t¨ 5¨Ô‚$(IV(†H…JH  H†ÊІbß„ˆÈâV•�M¼Mˆ?\À]0'0ÓZ€^^ȇȇÄ*�=°½HG‡gp…Ðt?p‚xHxH‚ Hˆ�oãq? 𿈢CHNÓ.uˆ‚ˆ‚h„€Z�o¨À2(ub(´+È/cÈ+K°%È„z‘„jH‡t¨‚ô€�H…*HMMH.OH3ðVõ ‚T¨©³ …D(‡DtCi´CpF=pàd´„q˜‡qØ€]Ø€ Ø ˜‚y˜°�ƒj4¢?pwˆ(…q˜…qƒiƒ%Xƒ¥F‡qdăx$„8†0å®~誆ҬqC‚ “­ð„2ð/(C6(ÇJ¨pb(°^°ðèrÉHmaHƒH+gÓHuH‚òºR5‰€T¨¯€ ’§È‡ °nÉ:H,XHKðK‡X‡iX€iØ‚=ØF`Fñ€0{ƒHðT<H‡%Ø€%(€ (�11‚ ê�àŽ"-rÈ´ò˜ è nè4`h2/¨ßšEf¨ <¨$<¨B6¨qb(•¦²† h(§rt¨«=hìÊÌ„jHM5H©@°`N°K‹|ˆ�kȀȀLh.PhìÒÚ«H¯]ȀȀV„V؆C؆6è†6``† ¨„ 0W®‚dð‡iX†iX…Xåsà˜8„Hennˆ‡BˆÏ|H„d(d:„xè è‚8ˆ„6ˆ„ hdm¨?ðêðê,ð‚ðo¨Cf¨/PP†,è‚,È„ö…vÈ€ è€ ‚b‚4h„4è¦nƒ4h‡4È€Îî.È„Lè:h…LȂȂlh†ìa/J( Lh†\˜€e˜€=8=(…Z(YPY(€f(�;ð;(‚(‚ ؇ ƒy`…Ì"nYˆ†ü¢ªÈº¨ƒœ~눇nˆ‡(èŒ&hƒP„&І:ÂÈoð,zðð�(€A(€z˜„zhƒ9hƒV˜‡Vȇ~Èïz¨‚.¨‚˜‡ž¡ša†žaƒnȆh‡È6S†A¨‚AX„A˜€U˜€A˜‡AX€mX€}8ƒ}HlHáІbh‡âª€˜…Ø‚#Ø‚"¨†"àqà…4¨Êr„h‚ȃȃ\h‚\ȃ&ȃh‚ô^†^%Sˆ>™ƒ.ˆ‚ hu)h&Lh HhÄho°X°¸„ùžßù>˜…¾\@Ø€Y˜u˜8‡h‚¡²›|ÈžBÈž)]T˜€M˜€ 8‚ ˜^\ˆLˆ9X…9؃SØ›vØ;p;0W0‡F†FƒYƒm8mØÓù]nØ…3Ø]>Ø…fƒf(„N(„"è‚"(‚v(‚BhƒB(ƒ.( è‡$H„~Q‚H€DJ€Xƒ.ƒ hgmhuùyhP][†ž?˜…-˜…(‚”œ n b¨‡bØ Ø58‚50w0èG†AX…A؃K؃FèƒF`~`YÐ�Yé€ì%[ 8‡}ÐcÐ�H„�¨†~¨'§…†Ø…sØ[JVàÖÍ�V`~`H(>(Rè‚R(…N(…*自¼‚AH†dŠk€8ˆ‚žä‚ƒ`èBè gh¡7h(hoP_PƒB‡BØ+ØY؆YÐ�3Ð�U°U0…(0…,„,Ø…«Ø°°…h€¨1¨Ù$Ø;h``Å{Ђ"è"h… h…}¸€}8€K8�v�vˆ…"ˆ…rè‡rùÇýƒÝƒv�¤?(†a(†RR(ƒQ(ƒ … ¨„1¨„…¨… ¨Í«]‚4ƒ5€Pè¤@è@ÂÝ è4Ÿµ/¨(hÙSð5h€h€¸Þ»}�`Ð…�Ð…llÈ…QÈ…]¸^s�[ðD¤‡I؆I؃ ؃2h€2``ƒ"€"(†(†^X„^8€+8€YX‡Yà�Aà€ ‚ŠK… È€ZÈ€=¸>˜Ë66ˆ*ˆ2˜:˜>n˜‚J¨†i¨†Z˜ƒZ¨‡y¨‡˜‡†¼‚aH†…ˆ…¡6†^–ÛMnz€nz†¶N…Öêð  è€Uè8{Ø…IX‡I`~`†LèLȆ!Ȇ˜‚’£‚=¸‚=ÐÂ]‚u8õƒ.~í«C‚Þ …~(^(˜¹8€ h‚ … >n˥€+Ø66(…Q(…rƒr¨„É«½z¨…Y¨…:˜…:¨‡¨‡FX€ÆëÚ mñMÐ4€H>z€—‚s¹i„^--˜€}˜¸u(F(~~È&ÈAÈX†–‡†)Xƒ)`A`5Aˆ€}¸†}ØX°O°?H:zè>&è‡RX†Ã·‚+8„4ȃ4ÐЃJJ¨‚Q¨‚Zè†Z؇K؇rh„r`A`‡2:Žƒj¿˜y<˜B˜º6˜‚†—‡–ôÑÖ1%†Qß„!™ƒ¡A]Áq}nð‡nð‡@èƒ@ЄPЄU8ïƒ3�?ˆ>-°5È>È\†\X€cX¸\Øs1�!‚B…Â×~Ý×@ˆ‘ʀ蒇28„k8„÷ð°o°†**¨†¨†vö׃ýû‡ Ð[Ð…J}w‡*¨I¨y|¨;Рɼ&Íæ5k³ªÍüá$“,Ÿ Æ$ˆ1"&¦QFE‰4*Rˆ!!‚ ¨_ uÁÔí¸¶cÇ•6¼ØpËA &í›´çÚžZ=j±ÂÊI4'ÅÆ[rlÉkfm˜•¡R†Nó:­8²âÐC‡® +DˆL!ª «VmDµA³¸q Xœ`zè©6­Z­µêÍ©×`.EMZ¬hÑfM›[:Âø‡_Š )RLI‘hB¢XãbÅ[¾L”qQB dP�ý8Há!SS6L鳤ϢS‹öÜØS¤Y6ÂØh±§UN±b㊵[ÖÞÃÁí*¬9´&F‰˜Æ¹qäȵ#Ç®뵤W­QµVì6rëKz¼HÀ‹Zæ c‘zY¤‘&ciaÙDÖMa›:Ù¡Ó ³Èd–LR™&•¦I!‰’H`Š"#‚PF%€>ð£?›Ÿüg•qÆYaaFt0Ã3è„h €x1& cLÇ3"1Ü(̱&k´1C;}´!†bhà„RñAst³E„à€ zÈÁŒy6˜gžMæáB.Rh&…z–©§‰UAY£™ÖLdƒ6:Ù¦“vé)žÐ„#‡ErHc†4Ò˜%TH%‘Y#'"æð×| f`ZÙ¦•5®X£ž!ê¡…Z\)Á2°Á–tl‰eˆXâ"žDFH™Ò˜$t&I'“I2 ¦š`<ÉÅ/òð"ŸYò)dŽB¢h  ñ'"Éaˆzئ‡#î8"„xB@ Xˆ5ãØ …V6i¥-Úé‘nvé¦}úèeÞ²á'ŸeòÉd!¬ÊIb–$â˜!Ž0Æ#„aB ‡�üéÄŸúnV¹`•\jÉE ‰¤H¢"º™æZ Hf”dR™ µ­v˜"“lfÈ&‡rÈe†Ü.ɧˆyŠ(a‘JY ”YNucAªX¢ŠyN™g˜5†áB .|HÁ‡&–eU6i‘ö’霗öè‡^úØ¡o| Y£–É©ŒTâ˜%Žh¦ˆ&ŒqÂc„0‚è•’N ¦`Ö¸dUΤŠ\¼ˆÅ‹dúI^®yâI`tåUIeŒTÒ˜ L&È$‹i²Èev3æÉ'Ÿ¹®™¥(¡Œ%Ê(g‰r¹÷œ{ŽXãŒ59c#Ü1ÂŒ£‰&ЄV¬F¢2êTôcýÀ6œådb™HÃ2ÒŒE$#óˆG4&Œ"!è'z„Pô!=ØAòЀ<ä¡y¨@7*v„ !HÂ’˜ƒ¤bÜs^Юu1m!³ÈCæQ`K[ûØö(õÊQ‰eT¢ÍÑp‚?œ -È@€1<`Œfl(VñD+“˜‚ t  [è ¸qÑ]ôc»Ä¶1d|äcùÈÀ 2Š db ™HÁ2R‹)Ä’‘E?BŠ^„" ýC4† Ø@²°†,äa y(À ðF¼­mbB;^Fv$¼a3]¡�³(Ð}ìSŸûXDª°Œ*Ô`5HARrD ã(A36ÑŒVlÅ[Ž :âˆ.¬£ ÝØ4†3¯ø`;Â0¶1l|äayHÁ’Ö‚†T,#ÉXðHƒqÄ ƒˆH6‰AD"ÃÄÆ�b‹^Í¡O‹F¢U¬aÏ# ˜D²0éu›Ú…˜Ga}ä,f(êÑÌx&±‚Ôa uhÀ:Јu4Æ2†G¶…€£Ä).èÁ¦S°ÞxÄˮ†0‚]Œ`»5>r°†$b‰HÀ‡)Ä%±ˆÃ$âjŠ8DaQˆÂ¢,è: Ý…G«æÐ‰x$aIžA*R1‚Td`¸x˜@r0…äa:²é)yJ5T` ¨Æ ƒ±†Ú2¡õê)G¹²n¸l;ÆHèÂN\ì$ô8}• vâ‹ÝÊc#Ã!Æ0Ž}ŒW ÕÄ\u0Sý"ÓˆC¦‘ $°±…F ¢1hYô³5AâˆV­ _k-6†Þ}dc ÙjLz}PŠ ¢˨ˆ*K‡Z¬2 ëŒ4DóÊÝB´cÛÈLs¼yŠ>ìµ&ÐñŽoü1Œ c ûmÇÆ1‰L2cÈCêІ>ŒakØÃîð†?\������0�������0�������b���������������� ������� �!���h������Š���������������������������8�������¬����������������/usr/home/fatal/pascal//pdf.tiff��Created with The GIMP�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/pdf.xpm��������������������������������������������������������0000644�0001750�0001750�00000020701�12214432632�015562� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 172 2", " c #410341034103", ". c #FFFFFFFFFFFF", "X c #861796588617", "o c #86179A698617", "O c #79E7965879E7", "+ c #79E7924879E7", "@ c #79E78E3879E7", "# c #71C68A2871C6", "$ c #71C6861771C6", "% c #69A679E769A6", "& c #69A675D669A6", "* c #618571C66185", "= c #61856DB66185", "- c #59656DB65965", "; c #618575D66185", ": c #61857DF76185", "> c #69A67DF769A6", ", c #618579E76185", "< c #71C67DF771C6", "1 c #618565956185", "2 c #596565955965", "3 c #596561855965", "4 c #596569A65965", "5 c #596571C65965", "6 c #71C6820771C6", "7 c #618569A66185", "8 c #59655D755965", "9 c #51445D755144", "0 c #514461855144", "q c #514469A65144", "w c #86179E798617", "e c #79E79A6979E7", "r c #79E79E7979E7", "t c #69A6820769A6", "y c #8E389E798E38", "u c #8617A2898617", "i c #618582076185", "p c #492459654924", "a c #492455554924", "s c #410351444103", "d c #49244D344924", "f c #410349244103", "g c #410345144103", "h c #41034D344103", "j c #69A68A2869A6", "k c #8E38A2898E38", "l c #9E79AEBA9E79", "z c #9E79A6999E79", "x c #96589A699658", "c c #8E389A698E38", "v c #8E3896588E38", "b c #79E7A28979E7", "n c #96589E799658", "m c #861792488617", "M c #8E3892488E38", "N c #8617A6998617", "B c #9658A2899658", "V c #38E3451438E3", "C c #9E79AAAA9E79", "Z c #86178E388617", "A c #86178A288617", "S c #8E38AAAA8E38", "D c #79E7A69979E7", "F c #79E7820779E7", "G c #79E78A2879E7", "H c #8617AAAA8617", "J c #514465955144", "K c #9658A6999658", "L c #79E77DF779E7", "P c #30C23CF330C2", "I c #514459655144", "U c #514455555144", "Y c #861786178617", "T c #79E779E779E7", "R c #492451444924", "E c #71C675D671C6", "W c #71C6924871C6", "Q c #9658B2CA9658", "! c #8E38B2CA8E38", "~ c #8617B2CA8617", "^ c #9658AEBA9658", "/ c #69A66DB669A6", "( c #9658AAAA9658", ") c #79E7AAAA79E7", "_ c #9658BAEA9658", "` c #8E38BAEA8E38", "' c #8E38B6DA8E38", "] c #9E79BAEA9E79", "[ c #71C69A6971C6", "{ c #9E79B2CA9E79", "} c #BEFBCF3CBEFB", "| c #CF3CCF3CCF3C", " . c #D75CDF7DD75C", ".. c #C71BCB2BC71B", "X. c #D75CD75CD75C", "o. c #30C234D330C2", "O. c #A699AAAAA699", "+. c #79E7AEBA79E7", "@. c #69A6861769A6", "#. c #9E79B6DA9E79", "$. c #B6DAC30BB6DA", "%. c #DF7DE38DDF7D", "&. c #B6DABEFBB6DA", "*. c #CF3CD75CCF3C", "=. c #D75CDB6CD75C", "-. c #51447DF75144", ";. c #DF7DEBADDF7D", ":. c #A699B2CAA699", ">. c #8E38BEFB8E38", ",. c #79E7B2CA79E7", "<. c #A699BAEAA699", "1. c #AEBACF3CAEBA", "2. c #B6DACF3CB6DA", "3. c #A699C30BA699", "4. c #AEBABAEAAEBA", "5. c #BEFBD34CBEFB", "6. c #AEBAC30BAEBA", "7. c #C71BD34CC71B", "8. c #CF3CDB6CCF3C", "9. c #DF7DE79DDF7D", "0. c #9658BEFB9658", "q. c #8E38C30B8E38", "w. c #9E79BEFB9E79", "e. c #9E79C30B9E79", "r. c #A699BEFBA699", "t. c #9658C30B9658", "y. c #8617BEFB8617", "u. c #79E7B6DA79E7", "i. c #28A23CF328A2", "p. c #D75CE38DD75C", "a. c #38E3410338E3", "s. c #8617BAEA8617", "d. c #A699CB2BA699", "f. c #61858A286185", "g. c #AEBAC71BAEBA", "h. c #B6DAD34CB6DA", "j. c #20812CB22081", "k. c #596582075965", "l. c #AEBACB2BAEBA", "z. c #9658C71B9658", "x. c #79E7BAEA79E7", "c. c #B6DADB6CB6DA", "v. c #D75CEBADD75C", "b. c #8E38C71B8E38", "n. c #C71BDF7DC71B", "m. c #AEBAD34CAEBA", "M. c #8617C30B8617", "N. c #DF7DEFBEDF7D", "B. c #B6DAD75CB6DA", "V. c #A699CF3CA699", "C. c #9658CB2B9658", "Z. c #8E38A6998E38", "A. c #9658CF3C9658", "S. c #30C2410330C2", "D. c #BEFBDF7DBEFB", "F. c #9E79D34C9E79", "G. c #9658D34C9658", "H. c #69A69A6969A6", "J. c #9E79CB2B9E79", "K. c #9E79CF3C9E79", "L. c #A699D75CA699", "P. c #8E38CB2B8E38", "I. c #410359654103", "U. c #A699D34CA699", "Y. c #CF3CE38DCF3C", "T. c #C71BE38DC71B", "R. c #C71BDB6CC71B", "E. c #9E79D75C9E79", "W. c #9658D75C9658", "Q. c #492469A64924", "!. c #BEFBDB6CBEFB", "~. c #AEBAD75CAEBA", " . ", " X X o X o o o O O O + @ # $ % & * = = = = = = = = = = = - * * ; : > , ; ; ; ; ; ; ; ; ; ; , . ", " X o o o o o o O O + @ # $ < & = = 1 2 2 2 2 2 3 3 3 3 2 2 2 3 2 2 2 2 4 4 - - 5 5 - - - - - . ", " o o o o o o O O O + @ $ 6 % * 7 2 3 3 8 8 3 8 9 8 9 9 0 2 0 9 9 9 9 0 0 q 4 - 5 5 - - - 4 q . ", " o o w o w w w O e O + $ % & * = 2 3 8 8 8 8 8 8 9 8 9 3 9 2 2 4 4 - 5 5 5 5 , : : ; ; ; 5 ; . ", " o w w w w w w r O O e $ % * * = 2 8 8 8 8 8 9 9 3 9 0 9 9 0 4 - 5 ; ; , , , : t t : , , , : . ", " y w w w u w u r O O O $ % & * = = 2 2 3 2 2 2 2 2 2 4 2 2 4 - - ; ; , , : : i i i i t i > t . ", " y w u u u u u w e O 0 p a s d d f f f g f h h h f h h h h h f h s s s , i t i : i t j t t # . ", " y u k u u u u r r O 0 l z z x x x c v v v c c v v v v v X v X v c c s ; : i i , : t t t t # . ", " k u u u u u b r e O 0 l z z n x c v v v v v v v v m v M m v X X c y h 5 ; : , : : t t t t # . ", " k k N u u u b r r O 0 l l B x c x c v v v c v X m M m m X m m m v X h 5 ; , , : t t t t # # . ", "V k k N N u u b b b e 0 l C z x x c n v M M v v M m m m m Z Z A A Z Z h - - 5 ; > t t t # # # . ", " k S k N N N u N D e 0 l C z x v c n v M M M m m Z Z Z Z Z A F F G G h q 4 - ; > t t $ $ # # . ", "g k S S S H H N D b e J l K B x c c c v M 9 Z A A A F F F F F F L F L P I 9 2 4 = * % > > 6 $ . ", " S S S S S H H D D e J C B n c c v v M 0 Z U Y Y F L L F F L L L T T g R I 0 3 2 2 ; & > > $ . ", " S S S S H H H b D e J C n c c v M M M 9 A U = F F F Y A Z G G F T T g U I U 9 8 3 = = & & E . ", " S S S H H H H D D W J K y v c v m & Z 9 A a F F F & Z X c o m G F T d 9 U U U U 8 1 1 = & & . ", " Q S ! S S ~ H D e W 0 K n y c v M Z A I U a L F F Z m y B y c m F F a - 3 U 3 = 7 1 7 = = & . ", " Q ! ! ! ! ~ H D W # p K K B n 6 M Z A Y a a L F F m c + ^ B y X A F 0 t = U = 6 6 7 7 / / E . ", " Q ! ! ! ! ~ H r W # p K K K k c M m A Y a a F F F m c B Q ( k v A Y 0 t = 8 & $ $ & / / & E . ", " Q ! ! ! ! ) D W # $ p K K K B B c m m m I a a F G Z X k ( ( ( y A F I * = 1 = & < $ G L E E . ", " _ ! ! ! ! D D W # j p K ( K @ B c X v X 0 F a p G Z m y X K ( k A Y U = 7 = = & T + X F L T . ", " _ _ ! ` ' ) D W # W J ^ ^ ( K B B y k ; - c X 0 0 m m v c y y c c v 3 & % > E & < G m F L F . ", " ] _ _ ` ' ) D r W [ q { ^ ^ ( ( B B ( t ( k k c X 4 2 4 2 * Y } l B 2 6 6 $ < v x G G F F F . ", " ] ! ! ~ H ) D D r b q { ( ^ X ( ( B : t ^ ( ( , ; * * * | . .| 1 G = $ # B | ..X.| X m Z m . ", " ] ` ~ ) D D D D ) b q ^ ( ( ^ ^ ^ B : : ^ t t t ^ ( B B % Z | .o.X = @ z X.O.d ....P v c y . ", " _ ` ~ ) ) ) ) ) +.D q { ^ ^ Q { ( ( t t @.@.#.{ { ^ ( ^ ^ $.%.&.P C ; + *.=.V 0 c a V k B B . ", "V ` ` ' ~ ) ) ) +.+.) -.] ] #.] u Q t t ] ] ] ] #.#.{ { k { *.;.O.a :.> :. .*.o.o B y k ^ ^ l . ", " _ ` >.~ ~ ,.+.+.,.+.-.<.1.2.2.3.( 4.5.] ] ] ] { { 6.7.*...8.9.n 2 <.$ ..%.O.V ^ { { { { { :.. ", "V 0.q.` q.' ~ ,.,.,.,.j ;.;.;.} } 8.8.9.$.] ] w.e.*.%.*.c 8.9.;.& ; $.| %.9.9.9.;.$.<.<.:.:.r.. ", " 0.t.t.t.q.y.~ u.,.u.-.N ;.8.B 0 i.O.;.p.; w.S 7.;.$.P p z 9.;.3 m 4.$ 9.9.& P P a.O r.r.r.4.. ", " t.t.q.>.y.s.s.u.,.,.-.d.;.8.2 q f.e.;.;.% Q g.;.;.a.4 r.2.9.;.a.k r.$ ;.;.2 O 3.3.3.g.g.g.1.. ", " t.e.q.s.s.s.s.u.+.,.-.h.;.8.j.k.e.e.;.;.% O *.;.:.a.3.<.5.;.8.V 6.6.^ ;.;.a.S l.l.l.l.1.1.2.. ", " z.z.q.>.y.s.s.u.,.x.k.c.;.*.a.] e.l.;.;.2 O v.;.% 4 <.3.8.;.:.s 6.g.^ ;.;.a.3.3.l.l.1.1.1.h.. ", " t.z.b.q.q.y.y.x.u.y.k.n.;.:.h #.e.h.;.*.a.S ;.;.% + r.r.p.;.n - g.g.4.;.:.a.6.g.g.1.m.1.2.h.. ", " z.z.b.q.q.M.M.y.x.M.k.v.;.G q w.e.p.;.A s d.;.;.Z m r.6.;.N.E % g.g.$.;.:.- g.g.1.1.h.2.2.B.. ", " z.z.z.b.b.b.b.M.M.y.k.;.;.% # V.n.;.4.a.# d.p.;.8.C } p.N.;.Z o 6.g...N.Z 5 l.1.1.2.h.B.B.c.. ", " C.C.C.b.b.b.b.M.M.y.W ;.;.*.5.p.N.:.a.- V.3.h.N.N.;.p.Z.N.N.N.;.5.g.=.N.2 + 1.m.h.h.h.c.c.c.. ", " A.C.A.A.C.b.M.M.x.M.b 7.7.s - , S.j.h f.i f.@.t 2 2 j.i.O 2 2 V j.% 8.=.V Q m.B.B.B.c.c.D.D.. ", " F.A.A.G.A.b.M.x.u.M.c.v.$.i.D H.H.q.b.z.C.C.A.J.H r r K.V.! b u e.D.N.Z p B.B.c.c.c.c.c.D.D.. ", " L.A.G.A.P.M.M.y.x.y.c.v.l I.>.q.q.q.z.z.C.C.J.A.K.K.K.L.V.U.Y.n.m.Y.7.V O h.B.c.c.c.D.D.D.D.. ", " L.F.G.P.P.b.M.y.s.M.v.v.l @ 0.b.q.z.z.z.C.J.K.K.K.V.V.V.m.m.N.N.v.p., , h.h.B.c.c.D.D.D.D.n.. ", " L.F.G.G.A.P.b.M.y.y.D.{ l 4.N ~ z.C.C.C.J.J.K.K.L.V.U.U.m.m.c.6 p p , B.B.B.B.c.c.D.D.D.T.R.. ", " E.W.W.W.G.P.b.y.y.y.q.Q.Q.Q.q ) C.C.C.J.J.K.K.V.V.U.U.U.m.m.m.Q S 3.B.c.c.c.c.c.!.D.D.n.n.R.. ", " E.G.G.G.G.P.b.q.y.q.b.q.` q.z.z.z.C.J.J.K.K.V.V.U.U.m.m.m.m.~.B.B.B.c.c.c.c.c.!.R.D.T.n.n.n.. ", " E.A.G.P.P.b.b.b.q.q.q.` ! ` t.z.z.e.J.K.K.V.V.U.U.U.m.m.m.~.~.B.B.c.c.c.c.D.D.n.D.n.n.n.T.n.. ", " E.A.A.b.P.A.A.b.q.q.q.` ! _ 0.z.e.e.e.K.V.V.U.U.m.m.m.m.~.B.B.B.c.c.c.!.!.D.D.D.n.R.n.n.T.Y.. ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; ���������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/defaultterm.xpm������������������������������������������������0000644�0001750�0001750�00000020436�12214432632�017332� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 165 2", " c None", ". c #000000000000", "X c #10400C300820", "o c #082008200820", "O c #186118611861", "+ c #28A224922081", "@ c #28A228A228A2", "# c #4103410338E3", "$ c #514451445144", "% c #596559655144", "& c #618561855965", "* c #965892488E38", "= c #9E7996588E38", "- c #9E799E799658", "; c #9E79A2899658", ": c #AEBAAAAAA699", "> c #AEBAAAAA9E79", ", c #A699A6999658", "< c #9E799A698617", "1 c #9658965879E7", "2 c #514455554103", "3 c #186114511040", "4 c #104010401040", "5 c #208120812081", "6 c #41033CF338E3", "7 c #492449244103", "8 c #79E779E771C6", "9 c #8E388A288617", "0 c #DF7DDB6CD75C", "q c #E79DEBADDF7D", "w c #EFBEEFBEE79D", "e c #EFBEEBADE79D", "r c #E79DE79DDF7D", "t c #E79DE38DDF7D", "y c #DF7DDF7DD75C", "u c #D75CD75CCF3C", "i c #D75CD34CC71B", "p c #CF3CCF3CC71B", "a c #C71BCB2BBEFB", "s c #BEFBC30BB6DA", "d c #B6DABAEAAEBA", "f c #B6DAB6DAA699", "g c #A699AAAA9658", "h c #A699A6998E38", "j c #965896588617", "k c #186118611040", "l c #208120811861", "z c #618565956185", "x c #9E799E799E79", "c c #CF3CCB2BCF3C", "v c #FFFFFBEEF7DE", "b c #F7DEF7DEF7DE", "n c #F7DEF7DEEFBE", "m c #EFBEF3CEEFBE", "M c #DF7DDB6CCF3C", "N c #D75CD75CC71B", "B c #B6DABAEAA699", "V c #AEBAB2CA9E79", "C c #96589A698617", "Z c #96589A6979E7", "A c #20811C711040", "S c #FFFFFFFFFFFF", "D c #D75CDB6CCF3C", "F c #CF3CCF3CBEFB", "G c #9E799E798E38", "H c #8E38924879E7", "J c #79E7820769A6", "K c #79E77DF76185", "L c #596559654924", "P c #8E388E388617", "I c #8617820771C6", "U c #69A669A66185", "Y c #49244D344103", "T c #38E33CF330C2", "R c #28A22CB22081", "E c #0000000028A2", "W c #000000002081", "Q c #861786178617", "! c #596555554924", "~ c #28A224921861", "^ c #BEFBBEFBAEBA", "/ c #618565955965", "( c #514455554924", ") c #28A2249238E3", "_ c #104004104103", "` c #104000004103", "' c #1040000038E3", "] c #0820000038E3", "[ c #0820000030C2", "{ c #0820000028A2", "} c #9E799A699658", "| c #28A228A21861", " . c #186100005144", ".. c #104000004924", "X. c #28A22CB21861", "o. c #30C22CB22081", "O. c #61855D754924", "+. c #30C230C22081", "@. c #208124921861", "#. c #59655D755965", "$. c #618565955144", "%. c #30C234D32081", "&. c #38E334D328A2", "*. c #618561854924", "=. c #38E33CF328A2", "-. c #4103410328A2", ";. c #4103410330C2", ":. c #4103451430C2", ">. c #4924492430C2", ",. c #49244D3438E3", "<. c #618569A65144", "1. c #38E338E328A2", "2. c #5144514438E3", "3. c #59655D755144", "4. c #69A669A65144", "5. c #618565954924", "6. c #596559655965", "7. c #A699A2899E79", "8. c #F7DEF3CEEFBE", "9. c #69A671C65965", "0. c #69A66DB65144", "q. c #082004100820", "w. c #71C675D66185", "e. c #71C675D65965", "r. c #AEBAAEBAAEBA", "t. c #C71BC71BB6DA", "y. c #71C679E76185", "u. c #71C679E75965", "i. c #51445D754924", "p. c #8617820769A6", "a. c #B6DAB2CAAEBA", "s. c #71C67DF769A6", "d. c #8617861769A6", "f. c #596561854924", "g. c #8E388A2869A6", "h. c #8E388E3879E7", "j. c #8617861771C6", "k. c #9658924871C6", "l. c #86178A2871C6", "z. c #CF3CCB2BC71B", "x. c #D75CD34CCF3C", "c. c #8E388A2871C6", "v. c #D75CD75CD75C", "b. c #BEFBBEFBBEFB", "n. c #A699A699A699", "m. c #8E388E388E38", "M. c #8617820779E7", "N. c #71C671C671C6", "B. c #71C671C669A6", "V. c #69A66DB669A6", "C. c #8E38965879E7", "Z. c #69A671C66185", "A. c #79E77DF769A6", "S. c #69A66DB65965", "D. c #AEBAB2CAA699", "F. c #B6DAB2CAA699", "G. c #514451444103", "H. c #30C234D330C2", "J. c #CF3CD34CC71B", "K. c #20811C711861", "L. c #38E338E330C2", "P. c #000004100000", "I. c #104014510820", "U. c #9E79A2898E38", "Y. c #104010400820", " . . . . . . X . ", " . o o O + @ # $ % & & * = - - ; : > , ; < 1 2 3 . ", " . . . 4 5 6 7 8 9 9 0 q w w w e q q r t y y 0 u i p a a s d f g h j 2 k l l ", " . z x c v v v v v v b b b n n m w w w e q r r t y M N N i s B V h C 1 h Z 2 k A 3 ", " O S S S v v v v v v b v n n n m w w w e e r r t y D N F s f > G H J K C h L A l k ", " O S v v v b v v v v b b n w t i s : , P I U L Y T R l O E E W W W W Q q V ! A ~ k ", " O S b w y p ^ > j 8 / ( ) _ _ ` ' ' ] ] ] ] [ [ [ [ { E E E W W W W } w V ! l | A ", " O v r U . . . ........._ _ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W } w f ! ~ X.A ", " O v w & . . . ........._ _ _ ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W } w f L ~ o.l ", " O v w & . . . ..........._ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W - w f O.| +.@. ", " O v w #. . . . ........._ _ _ ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W x w f $.X.%.~ ", " O v w & . . . ..........._ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W x w f $.o.&.%.. ", " O b w & . . . ........._ _ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W x w f *.o.=.-.3 ", " O v w & . . . ..........._ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W x w B *.+.;.:.l . ", " O v w #. . . . ........._ _ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W x w B $.%.>.,.A . ", " O v w #. . . . ........._ ..` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W x m ^ <.1.2.2 l . ", " O b w 3. . . . ...........` ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W x w ^ 4.;.L *.@.. ", " O b w #. . . . ..........._ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W x m s 4.:.*.5.~ o ", " O v w 6. . . . ........._ _ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W 7.8.s 9.,.<.0.X.q. ", " O b w % . . . ..........._ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W : 8.s w.2.9.e.o.o ", " O b w #. . . . ........._ _ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W r.8.t.y.2 u.K +.. ", " O b w % . . . ........._ ..` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W r.8.a y.i.J p.%.. ", " O b w 3. . . . ...........` ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W a.n F s.i.p.d.1.. ", " O b w 3. . . . ..........._ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W a.n p J f.g.h.=.. ", " O n w % . . . ........._ _ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W a.n i d.5.g.H %.. ", " O b e #. . . . ..........._ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W a.n i j.5.k.H +.. ", " O b e #. . . . ........._ _ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W a.n i l.5.1 1 %.. ", " O n e 3. . . . ........._ ..` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W z.n N l.<.1 j %.. ", " O n e 3. . . . ...........` ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W x.n N c.5.1 C 1.. ", " O n q #. . . . ..........._ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W v.b N j.5.1 C =.. ", " O n q 3. . . . ........._ _ ` ` ' ' ] ] ] ] [ [ [ [ { { E E W W W W v.b D l.5.1 < 4 . ", " O n m b.: n.n.7.} * m.m.9 Q Q Q M.J 8 N.N.B.V.V.V.V.V.U U z z z z & r b D d.5.C.J . ", " O b b b n n n n n n n n n n n m n n n m 8.8.8.w w w w w w e e q r r t y u p.f.C.Z. ", " O n b n n n n n b b n b n n n m m m 8.m 8.m 8.w m w w w w e e q r t y M u A.f.H S. ", " O n n n n n n n n n n n n n n 8.n n m 8.m 8.m w w w w w e e q q r r y 0 N K f.l./ ", " q.9 m.m.m.9 n.t.z.p i N D 0 t r q e w w w w w w w w w w e q q q r t y 0 N S.2 9.2. ", " O a t.s ^ f D.> F.N y i a a t.s ^ f f d > , G L ,.w.S.A.j < y.2.G.H.X ", " X > 7.: f s a a 0 0 u J.p N N N 0 N 0 r t r t 5.,., K K j j L K.. ", " . 7 L.L.L.L.&.&.L ;.-.=.1.1.1.1.1.1.1.1.&.&.&.l ~ 4.0.! l P. ", ". P.( o.+.+.X.~ l A 3 I.I.I.I.3 k ~ L q.. ", "o . . 6 4.L :.L.R | l k 4 I.I.4 k o.,./ 4. ", "o q.H.x z.B p.h > > > U.l.0.2.1.+.+.%.-.L A.S.,.~ L.l &.+ . ", "o V.q m w w q y y t q q t i > p.L -.o.~ A k 3 3 3 Y.=.p.c.p.-. ", "q. $ V.b.c z.r n 8.w 8.w w w w e q t D a f , h.w.1.:.<.# O . ", "q. . . q.O l l K.l 5 K.K.O O O O 3 4 X P.3 . ", ". ", " ", " "}; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/README���������������������������������������������������������0000644�0001750�0001750�00000000722�12214432632�015144� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������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.info BitchX.tiff defaultAppIcon.tiff GNUterm.tiff defaultterm.tiff draw.tiff linuxterm.tiff mixer.tiff notepad.tiff pdf.tiff ps.tiff real.tiff sgiterm.tiff sound.tiff staroffice2.tiff timer.tiff wilber.tiff write.tiff xdvi.tiff xv.tiff ����������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/defaultAppIcon.xpm���������������������������������������������0000644�0001750�0001750�00000042256�12214432632�017720� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * DefaultAppIcon_xpm[] = { "48 48 795 2", " c None", ". c #3D3D99", "+ c #6464F4", "@ c #6262EE", "# c #5E5EE8", "$ c #5B5BE0", "% c #5757D5", "& c #5656D2", "* c #5353CD", "= c #5252CB", "- c #5D5DE3", "; c #6060EB", "> c #5E5EE5", ", c #5B5BDF", "' c #5959D9", ") c #5555D1", "! c #5252CA", "~ c #5151C8", "{ c #5252C9", "] c #5353CC", "^ c #5454CE", "/ c #5454CF", "( c #5555CD", "_ c #4444A9", ": c #6969F5", "< c #6666F0", "[ c #5F5FE4", "} c #5151C7", "| c #5050C5", "1 c #5050C4", "2 c #4F4FC2", "3 c #4E4EC0", "4 c #4D4DBD", "5 c #4B4BBA", "6 c #4949B4", "7 c #39398C", "8 c #1B1B47", "9 c #871919", "0 c #E82F2F", "a c #F33232", "b c #EE2F2F", "c c #781717", "d c #5656C2", "e c #6A6AF6", "f c #6161E7", "g c #5A5AD8", "h c #5454CD", "i c #5252C7", "j c #4F4FC3", "k c #4C4CBA", "l c #3E3E99", "m c #353583", "n c #292968", "o c #1E1E4B", "p c #131333", "q c #04040E", "r c #000001", "s c #AA1E1E", "t c #D02626", "u c #DF2A2A", "v c #8B1A1A", "w c #0D0000", "x c #6B6BF9", "y c #6666F2", "z c #5B5BDC", "A c #5252C8", "B c #4C4CBB", "C c #2E2E73", "D c #080816", "E c #010104", "F c #000002", "G c #000000", "H c #A91E1E", "I c #D62828", "J c #AD2020", "K c #0F0000", "L c #5F5FE3", "M c #4E4EBE", "N c #39398E", "O c #141435", "P c #4D0D0D", "Q c #B52121", "R c #CC2525", "S c #180303", "T c #6A6AF4", "U c #1B1B44", "V c #020206", "W c #681111", "X c #B72121", "Y c #3C0A0A", "Z c #030000", "` c #5B5BD1", " . c #6565EF", ".. c #5757D3", "+. c #5151C6", "@. c #212155", "#. c #030308", "$. c #901A1A", "%. c #6E1313", "&. c #0A0000", "*. c #5A5ADB", "=. c #5050C3", "-. c #4C46AA", ";. c #564095", ">. c #5B4195", ",. c #564096", "'. c #51419B", "). c #4E42A0", "!. c #4B45AB", "~. c #4C4AB6", "{. c #4A4AB5", "]. c #282866", "^. c #060611", "/. c #771616", "(. c #A21E1E", "_. c #120202", ":. c #6B6BF7", "<. c #5D5DE1", "[. c #4D429F", "}. c #8F363F", "|. c #DF680F", "1. c #E67A0F", "2. c #E37410", "3. c #D96617", "4. c #CE5B20", "5. c #AB453C", "6. c #7F375B", "7. c #4E3B8F", "8. c #4C4CBC", "9. c #313179", "0. c #0C0C23", "a. c #A71F1F", "b. c #160303", "c. c #6767F6", "d. c #6161EA", "e. c #65367B", "f. c #DD6211", "g. c #F59301", "h. c #F59001", "i. c #F59100", "j. c #F59200", "k. c #F69500", "l. c #F49701", "m. c #E57908", "n. c #943537", "o. c #483D95", "p. c #4E4EC1", "q. c #151535", "r. c #E7E7E9", "s. c #350808", "t. c #6565F3", "u. c #5B5BDD", "v. c #8B363F", "w. c #AE3912", "x. c #B73805", "y. c #BC3B01", "z. c #C33E00", "A. c #E25A00", "B. c #F38400", "C. c #F69600", "D. c #E16B08", "E. c #682A53", "F. c #4847B0", "G. c #4F4FC4", "H. c #4F4FC0", "I. c #40409E", "J. c #FBFBFB", "K. c #FCFCFC", "L. c #FAFAFA", "M. c #F8F8F8", "N. c #F5F5F5", "O. c #CACACA", "P. c #707072", "Q. c #5A0F0F", "R. c #290505", "S. c #6262EA", "T. c #6363EF", "U. c #5858D6", "V. c #4D4CB9", "W. c #41327B", "X. c #3A1432", "Y. c #35060F", "Z. c #370206", "`. c #3B0305", " + c #5F0D02", ".+ c #AD2C00", "++ c #EE7500", "@+ c #F48E00", "#+ c #902120", "$+ c #393789", "%+ c #4747AE", "&+ c #010105", "*+ c #C7C7C7", "=+ c #FDFDFD", "-+ c #FEFEFE", ";+ c #E8E8E8", ">+ c #9B9B9D", ",+ c #444446", "'+ c #490C0C", ")+ c #2E0707", "!+ c #5555CF", "~+ c #4F4FC1", "{+ c #4242A0", "]+ c #2B2B69", "^+ c #1C1B43", "/+ c #161534", "(+ c #141330", "_+ c #210F28", ":+ c #801D11", "<+ c #EC7000", "[+ c #F59300", "}+ c #8B1C0B", "|+ c #27245A", "1+ c #4545AB", "2+ c #4B4BB7", "3+ c #292966", "4+ c #060612", "5+ c #DDDDDD", "6+ c #F1F1F1", "7+ c #BFBFBF", "8+ c #6D6D6F", "9+ c #222022", "0+ c #6363F1", "a+ c #5353CA", "b+ c #4848B0", "c+ c #4242A2", "d+ c #3D3D98", "e+ c #3B3B93", "f+ c #3C3482", "g+ c #7D313C", "h+ c #EE8102", "i+ c #F58D00", "j+ c #841906", "k+ c #1E1B45", "l+ c #4141A0", "m+ c #2F2F76", "n+ c #0B0B1E", "o+ c #E0E0E0", "p+ c #DADADA", "q+ c #939393", "r+ c #373738", "s+ c #070707", "t+ c #5A5ADF", "u+ c #5959D7", "v+ c #5151C5", "w+ c #4D4DBF", "x+ c #4A46AC", "y+ c #863E4E", "z+ c #F39202", "A+ c #F38200", "B+ c #7B1504", "C+ c #1E1A41", "D+ c #3C3B93", "E+ c #4545AC", "F+ c #4646AE", "G+ c #232358", "H+ c #06060F", "I+ c #E3E3E3", "J+ c #EDEDED", "K+ c #B5B5B5", "L+ c #535354", "M+ c #111111", "N+ c #5252C6", "O+ c #5151C4", "P+ c #4541A1", "Q+ c #8B3D44", "R+ c #F49700", "S+ c #F27E00", "T+ c #971802", "U+ c #400E23", "V+ c #301F4D", "W+ c #222051", "X+ c #222256", "Y+ c #1B1B46", "Z+ c #0A0A1B", "`+ c #E4E4E4", " @ c #585858", ".@ c #0E0E0E", "+@ c #5A5ADC", "@@ c #4D4DBC", "#@ c #4545AA", "$@ c #363688", "%@ c #2C2763", "&@ c #853122", "*@ c #F69800", "=@ c #F59000", "-@ c #DD6100", ";@ c #B83F02", ">@ c #892708", ",@ c #530D04", "'@ c #430905", ")@ c #400804", "!@ c #180000", "~@ c #E9E9E9", "{@ c #F6F6F6", "]@ c #505051", "^@ c #0F0F10", "/@ c #5757D6", "(@ c #5656D3", "_@ c #17173B", ":@ c #0F0F28", "<@ c #0D0816", "[@ c #792405", "}@ c #F39400", "|@ c #F79B00", "1@ c #F69700", "2@ c #F49000", "3@ c #EC8300", "4@ c #E07700", "5@ c #DA7200", "6@ c #D97200", "7@ c #B03700", "8@ c #1A0000", "9@ c #EFEFEF", "0@ c #F9F9F9", "a@ c #D6D6D6", "b@ c #6D6D6D", "c@ c #202021", "d@ c #4949B2", "e@ c #222255", "f@ c #050511", "g@ c #1D0100", "h@ c #941D00", "i@ c #C73500", "j@ c #CE3A00", "k@ c #DF5300", "l@ c #EB7700", "m@ c #F18900", "n@ c #F38B00", "o@ c #AF2B00", "p@ c #F3F3F3", "q@ c #383838", "r@ c #080808", "s@ c #5656D1", "t@ c #4C4CB9", "u@ c #2C2C6D", "v@ c #090919", "w@ c #0F0101", "x@ c #200000", "y@ c #290000", "z@ c #530000", "A@ c #7C0600", "B@ c #9E1600", "C@ c #BF2B00", "D@ c #EA7000", "E@ c #C53700", "F@ c #350000", "G@ c #ECECEC", "H@ c #8B8B8B", "I@ c #333333", "J@ c #0A0A0A", "K@ c #5555D0", "L@ c #4E4EBD", "M@ c #353582", "N@ c #0E0E25", "O@ c #040404", "P@ c #313131", "Q@ c #303030", "R@ c #1A1A1A", "S@ c #141414", "T@ c #120C0C", "U@ c #1D0606", "V@ c #620402", "W@ c #D44B00", "X@ c #C23000", "Y@ c #320202", "Z@ c #BABABA", "`@ c #7C7C7C", " # c #212121", ".# c #030303", "+# c #5454CC", "@# c #3D3D96", "## c #131331", "$# c #1F1F1F", "%# c #969696", "&# c #C0C0C0", "*# c #ADADAD", "=# c #9E9E9E", "-# c #878787", ";# c #6B6969", "># c #7A3737", ",# c #D65508", "'# c #BF2D03", ")# c #3F1C1C", "!# c #5C5C5C", "~# c #C2C2C2", "{# c #F7F7F7", "]# c #D9D9D9", "^# c #737373", "/# c #1D1D1D", "(# c #020202", "_# c #4B4BB8", ":# c #1A1A44", "<# c #020209", "[# c #BCBCBC", "}# c #F2F2F2", "|# c #D7D6D6", "1# c #B58684", "2# c #E17419", "3# c #BC2D05", "4# c #523636", "5# c #9C9C9C", "6# c #EAEAEA", "7# c #D3D3D3", "8# c #6B6B6B", "9# c #1B1B1B", "0# c #4D4DC0", "a# c #5050C6", "b# c #4646AB", "c# c #24245C", "d# c #070713", "e# c #424242", "f# c #C4C4C4", "g# c #F3F2F2", "h# c #D29E95", "i# c #ED841A", "j# c #B52606", "k# c #523C3C", "l# c #A5A5A5", "m# c #EEEEEE", "n# c #CCCCCC", "o# c #5F5F5F", "p# c #151515", "q# c #010101", "r# c #2D2D70", "s# c #0A0A1A", "t# c #404040", "u# c #C9C9C9", "v# c #CB9A93", "w# c #EA8118", "x# c #BA2B07", "y# c #5E3C3C", "z# c #A8A0A0", "A# c #E6E4E4", "B# c #C8C8C8", "C# c #505050", "D# c #0F0F0F", "E# c #393990", "F# c #4A4AB6", "G# c #353584", "H# c #0F0F24", "I# c #3F3F3F", "J# c #CDCDCD", "K# c #F2F1F1", "L# c #CE968D", "M# c #ED8215", "N# c #D64B03", "O# c #A33920", "P# c #B86C56", "Q# c #CC9585", "R# c #D2BCBA", "S# c #DFD3D3", "T# c #E2DBDB", "U# c #EDEBEB", "V# c #EBEBEB", "W# c #AAAAAA", "X# c #080801", "Y# c #0B0B01", "Z# c #4B4BB9", "`# c #3C3C93", " $ c #191938", ".$ c #49494D", "+$ c #D2D2D2", "@$ c #D09B92", "#$ c #EB7F1A", "$$ c #F58F00", "%$ c #F27B02", "&$ c #F48607", "*$ c #F48C12", "=$ c #DC7939", "-$ c #DD8351", ";$ c #D0845E", ">$ c #CB998F", ",$ c #E2DCDC", "'$ c #696969", ")$ c #101010", "!$ c #131302", "~$ c #46450F", "{$ c #3A3A92", "]$ c #1D1D43", "^$ c #57575D", "/$ c #D3BEBD", "($ c #C96746", "_$ c #DA5209", ":$ c #F48A00", "<$ c #F79400", "[$ c #F79900", "}$ c #F79A00", "|$ c #F79B02", "1$ c #F79C05", "2$ c #F69709", "3$ c #DE712D", "4$ c #C29A96", "5$ c #EAE9E9", "6$ c #DBDBDB", "7$ c #2B2B2B", "8$ c #060601", "9$ c #2F2F0B", "0$ c #575713", "a$ c #202050", "b$ c #3B3B92", "c$ c #4545A8", "d$ c #4949B3", "e$ c #4D4DBA", "f$ c #4D4DBB", "g$ c #4444A6", "h$ c #272761", "i$ c #636365", "j$ c #E9E8E8", "k$ c #AB9695", "l$ c #6E342E", "m$ c #782404", "n$ c #7F2603", "o$ c #982802", "p$ c #CE4301", "q$ c #EF7600", "r$ c #F68F00", "s$ c #F79C00", "t$ c #EB780B", "u$ c #B36354", "v$ c #C2BCBC", "w$ c #444444", "x$ c #0A0A0B", "y$ c #2A2A0A", "z$ c #A5A52B", "A$ c #5E5E16", "B$ c #11112C", "C$ c #2C2C6F", "D$ c #32327D", "E$ c #34347F", "F$ c #26265D", "G$ c #1D1D49", "H$ c #131332", "I$ c #6E6E6E", "J$ c #CECECE", "K$ c #757373", "L$ c #383131", "M$ c #292020", "N$ c #2B1818", "O$ c #3F1613", "P$ c #50150B", "Q$ c #B32603", "R$ c #EB7303", "S$ c #9D3726", "T$ c #887D7D", "U$ c #ABABAB", "V$ c #636363", "W$ c #191919", "X$ c #32320B", "Y$ c #A9A92A", "Z$ c #34340A", "`$ c #03030A", " % c #0A0A1C", ".% c #0F0F27", "+% c #0D0D22", "@% c #06060E", "#% c #05050B", "$% c #010102", "%% c #161616", "&% c #898989", "*% c #F0F0F0", "=% c #A8A8A8", "-% c #8F8F8F", ";% c #808080", ">% c #707070", ",% c #5B4E4E", "'% c #C3350E", ")% c #E56C01", "!% c #862114", "~% c #594D4D", "{% c #6A6A6A", "]% c #2D2D2D", "^% c #050505", "/% c #050500", "(% c #65651B", "_% c #ACAC2D", ":% c #1A1A05", "<% c #19191B", "[% c #565659", "}% c #69696A", "|% c #565656", "1% c #414141", "2% c #747474", "3% c #E6E6E6", "4% c #DFDFDF", "5% c #D4D4D4", "6% c #B4AAAA", "7% c #DA581E", "8% c #D85E01", "9% c #64110E", "0% c #332D2D", "a% c #0C0C0C", "b% c #37370E", "c% c #D8D73B", "d% c #9A9A28", "e% c #525252", "f% c #BEBEBE", "g% c #DCDCDC", "h% c #E1E1E1", "i% c #DDD5D5", "j% c #E67525", "k% c #CD5300", "l% c #500908", "m% c #120F0F", "n% c #2D2D0B", "o% c #B1B12F", "p% c #E5E43D", "q% c #73721B", "r% c #060600", "s% c #24FD24", "t% c #25FF25", "u% c #23FD23", "v% c #20FD20", "w% c #13AE13", "x% c #2F2F2F", "y% c #666666", "z% c #A1A1A1", "A% c #DEDEDE", "B% c #D2C8C8", "C% c #E4771C", "D% c #CA4E00", "E% c #430101", "F% c #151505", "G% c #8D8D27", "H% c #F8F842", "I% c #CECD34", "J% c #525113", "K% c #040400", "L% c #20FF20", "M% c #20FE20", "N% c #1EFC1E", "O% c #1EFD1E", "P% c #18D818", "Q% c #0A670A", "R% c #171717", "S% c #848484", "T% c #A9A9A9", "U% c #947C7B", "V% c #DF780A", "W% c #C34100", "X% c #390000", "Y% c #2A2A0C", "Z% c #92922A", "`% c #E2E23F", " & c #F1F03D", ".& c #B9B82D", "+& c #3A3A0D", "@& c #030300", "#& c #1EFF1E", "$& c #1BFA1B", "%& c #1CFB1C", "&& c #1CFC1C", "*& c #1DFC1D", "=& c #1FFF1F", "-& c #17CC17", ";& c #2A2A2A", ">& c #4D4D4D", ",& c #A7A7A7", "'& c #CFCFCF", ")& c #E7E7E7", "!& c #E2E2E2", "~& c #909090", "{& c #5B231D", "]& c #E78100", "^& c #F08200", "/& c #A41E00", "(& c #240000", "_& c #010000", ":& c #3A3A10", "<& c #B6B635", "[& c #EDED41", "}& c #F2F03D", "|& c #E5E338", "1& c #A9A829", "2& c #262608", "3& c #010100", "4& c #1DFD1D", "5& c #1DFB1D", "6& c #19D919", "7& c #16C016", "8& c #121212", "9& c #242424", "0& c #929292", "a& c #676767", "b& c #616161", "c& c #545454", "d& c #353535", "e& c #232323", "f& c #131313", "g& c #420702", "h& c #E07200", "i& c #EA7500", "j& c #8F1300", "k& c #1A0100", "l& c #373710", "m& c #CACA3A", "n& c #F6F541", "o& c #EEEC3A", "p& c #DFDD36", "q& c #9E9C26", "r& c #131303", "s& c #1EFA1E", "t& c #1BF61B", "u& c #1CF71C", "v& c #1DF91D", "w& c #1BEC1B", "x& c #1AE31A", "y& c #011801", "z& c #010E01", "A& c #202020", "B& c #0D0D0D", "C& c #110000", "D& c #932500", "E& c #B13000", "F& c #530400", "G& c #2D250A", "H& c #A2A22D", "I& c #E9E83C", "J& c #EAE839", "K& c #E3E137", "L& c #E2E037", "M& c #D9D734", "N& c #898820", "O& c #16C616", "P& c #12A012", "Q& c #109410", "R& c #119511", "S& c #119711", "T& c #14AD14", "U& c #16B716", "V& c #18B718", "W& c #0C6D0C", "X& c #000E00", "Y& c #021B02", "Z& c #021D02", "`& c #021702", " * c #111104", ".* c #171706", "+* c #33330E", "@* c #52340E", "#* c #551D07", "$* c #241505", "%* c #5A5918", "&* c #B5B42D", "** c #E0DE36", "=* c #D1CF32", "-* c #71701A", ";* c #032503", ">* c #000300", ",* c #021F02", "'* c #053705", ")* c #063C06", "!* c #033103", "~* c #181805", "{* c #272708", "]* c #202006", "^* c #63631C", "/* c #808024", "(* c #9B9B2B", "_* c #D5D53C", ":* c #B4B331", "<* c #6A671B", "[* c #4F4F14", "}* c #81801F", "|* c #C2C02E", "1* c #DEDC35", "2* c #CAC831", "3* c #5B5A15", "4* c #2D2D09", "5* c #39390C", "6* c #32310B", "7* c #444412", "8* c #4F4F15", "9* c #5B5B18", "0* c #6C6C1B", "a* c #72711C", "b* c #69681A", "c* c #6E6D1A", "d* c #8C8C21", "e* c #B3B12B", "f* c #C9C730", "g* c #CDCB31", "h* c #D5D333", "i* c #BEBC2E", "j* c #44430F", "k* c #0A0A01", "l* c #0F0F03", "m* c #151504", "n* c #1B1B05", "o* c #212107", "p* c #484711", "q* c #605E17", "r* c #77761C", "s* c #252507", "t* c #020200", " . + @ # $ % & * = ", " - ; > , ' % ) * ! ~ { ] ^ / ( _ ", " : < [ % / ] { } | | | | 1 2 3 4 5 6 7 8 9 0 a b c ", " d e f g h i | | | | | | | | j k l m n o p q r s t u v w ", " x y z h A i i | | | | | | | | 1 B C p D E F G H I J K ", " x L & i i i i i | | | | | | | | | M N O E G G G P Q R S G ", " T f ^ i i i i i i | | | | | | | | | 3 l U V G G W X Y Z ", " ` ...+.i i i i i i | | | | | | | | | 2 _ @.#.G $.%.&. ", " : *.A | i i =.-.;.>.,.'.).!.~.3 | | | 1 {.].^.G /.(._. ", " :.<.! +.| i i [.}.|.1.2.3.4.5.6.7.8.| | | k 9.0.G a.b. ", " c.d.h | | | i i e.f.g.h.i.j.k.l.m.n.o.p.| | 4 7 q.r r. s. ", " t.u.{ | | | i i '.v.w.x.y.z.A.B.C.D.E.F.G.| H.I.U r J.K.L.M.N.O.P. Q.R. ", " S.T.U.} | | | i i V.W.X.Y.Z.`. +.+++@+#+$+8.| =.%+@.&+ *+J.=+-+-+=+;+>+,+ '+)+ ", " ; d.!++.| | | i i ~+{+]+^+/+(+_+:+<+[+}+|+1+j | 2+3+4+ 5+L.-+-+-+=+6+7+8+9+ ", " 0+<.a+| | | | i i i H.b+c+d+e+f+g+h+i+j+k+l+3 j 2+m+n+G o+L.-+-+-+=+M.p+q+r+s+ ", " t+u+A | | | | i i i i v+=.3 w+x+y+z+A+B+C+D+E+F+l G+H+G I+J.-+-+-+-+K.J+K+L+M+ ", " <.z a+| | | | i i i N++.O+~+k P+Q+R+S+T+U+V+W+X+Y+Z+F G `+K.-+-+-+=+K.N.O. @.@ ", " > +@{ | | | | i i i +.=.@@#@$@%@&@*@=@-@;@>@,@'@)@!@G G ~@-+-+-+-+=+K.{@O.]@^@G ", " /@(@i | | | | i i i +.=.b+_@:@<@[@}@|@1@2@3@4@5@6@7@8@ 9@-+-+-+-+=+K.0@a@b@c@G ", " ) i | | | | i i i i v+d@e@f@G g@h@i@j@k@l@m@n@j.@+o@ p@K.-+-+-+=+=+K.;+q+q@r@ ", " s@{ | | | | i i i i N+t@u@v@G G w@x@y@z@A@B@C@D@i.E@F@ N.K.-+-+-+-+-+=+G@H@I@J@ ", " K@a+| | | | i i i i N+L@M@N@G O@P@Q@R@S@T@U@V@W@i+X@Y@ Z@0@K.-+-+-+-+=+K.;+`@ #.# ", " +#{ 1 | | | i i i i N+=.@###r $#%#&#*#=#-#;#>#,#@+'#)#!#~#{#K.-+-+-+-+-+=+L.]#^#/#(#G ", " _#~+1 | | | i i i i N+v+c+:#<#q@[#6+}#9@;+|#1#2#i.3#4#5#6#=+=+-+-+-+-+-+=+M.7#8#9#(#G ", " 0#{ +.| a#i i i i i v+b#c#d#e#f#0@K.K.K.g#h#i#j.j#k#l#m#-+-+-+-+-+-+-+=+{#n#o#p#q#G ", " 8.a+a#| | i i i i i v+6 r#s#t#u#L.K.K.K.p@v#w#j.x#y#z#A#0@=+=+-+-+=+=+=+{@B#C#D#G G ", " E#F#2 1 | i i i i i v+8.G#H#I#J#K.K.K.K.K#L#M#k.N#O#P#Q#R#S#T#U#J.=+K.L.V#W#I@.#X#Y# ", " G#Z#j 1 N+i i i i +.~+`# $.$+$K.K.K.K.g#@$#$1@$$%$&$*$=$-$;$>$,$J.J.p@O.'$)$G !$~$ ", " _@{$4 2 v++.+.+.v+v+3 d+]$^$p+K.K.K.K.{#/$($_$:$<$[$}$|$1$2$3$4$5${#6$H@7$q#8$9$0$ ", " a$b$c$d$e$M f$d@g$e+h$n+i$`+K.K.K.K.K.j$k$l$m$n$o$p$q$r$s$t$u$v$5+l#w$x$G y$z$A$ ", " B$e@C$D$E$r#F$G$H$d#G I$6#K.K.K.K.K.{@J$K$L$M$N$O$P$Q$s$R$S$T$U$V$W$q#G X$Y$Z$ ", " `$ %.%+%4+@%#%E $%%%&%*%K.K.K.K.K.K.p@+$=%-%;%>%,%'%s$)%!%~%{%]%^%G /%(%_%:% ", " G <%[%}%|%e#q@1%2%B#{#K.K.K.K.K.K.K.{#m#3%4%5%6%7%}$8%9%0%]%a%G G b%c%d%Y# ", " e%-%f%g%h%6$`+{@K.K.K.K.K.K.K.K.K.K.K.J.0@i%j%*@k%l%m%s+G G n%o%p%q%r% ", " s%t%u%u%v%w% x%y%z%O.A%V#N.0@J.K.K.K.K.K.K.K.J.K.K.{#B%C%k.D%E%Z G G F%G%H%I%J%K% ", " L%M%N%O%O%P%Q% R%I@!#S%T%n#h%9@{#L.J.J.L.M.{#p@m#6#+$U%V%i.W%X%G G Y%Z%`% &.&+&@&G ", " #&O%$&%&&&*&=&-& (#M+;&>&2%H@,&'&)&9@J+!&5%n#7+l#~&8#{&]&^&/&(&_&:&<&[&}&|&1&2&3&G ", " #&O%$&$&%&%&4&5&6&7& G O@8&$#9&q@8#0&z%z%S%a&b&c&d&e&f&g&h&i&j&k&l&m&n&o&|&p&q&r&G G ", " 4&s&t&t&t&t&u&u&v&s&w&x& y&z&G G O@p#A&$#R@B&J@a%s+q#G G C&D&E&F&G&H&I&J&K&L&M&N&X#G G ", " O&P&Q&Q&Q&Q&R&R&R&S&P&T&U&V&W&X&Y&Z&`&G G G G G G G * *.*+*@*#*$*%*&***L&L&L&=*-*r%G ", " ;*G G G G G G G G G G G G G >*,*'*)*!*G G ~*X${*]*:%^*/*(*_*:*<*[*}*|*1*L&L&L&2*3*/%G ", " G G G G G G G G G G G G r&4*Z$5*6*7*8*9*0*a*b*c*d*e*f*g*=*h*i*j*@&G ", " G G G G G G G G G G G K%k*l*m*n*o*9$p*q*r*}*s*3&G ", " G G G G G G G 3&t*t*G G G ", " G G G G G G G G G G ", " G G G G ", " ", " "}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Ftp.png��������������������������������������������������������0000644�0001750�0001750�00000015372�12214432632�015532� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���gAMA��± üa���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� ÒÝ~ü���tIMEÐ +"Mi|I��wIDATxœ¼š[Œ%Gy€¿¿ªºOϜًٙٙ1¶Á±Á!7ì\@$‘,"ç!<$¤ðPx‰”Dˆ(áEAÈDRH$"‘;BŠŒÈE8 92ŒÁ±Íz¯žÝÙ¹_ϵ»«*Õ}NŸÞžÙ±¤¤š®Ó}ºO}ÿ½ªG¼÷³IqôÿcUŒÝÿõØSô*¨4ŒºFåÁRŒ«ç›¾¯‹q ­Š VÏkÆ­»Ê|›su>Uèêùµª�’¨ªË®®×ÇM½üa];R;W~®Ž›Ž¦ö¹z®~¾ÞÊï¯K±Üy¼©ÁV{\W¾Wn×o'€¦ÏõWÍþ0Mׯ•�ÇÑúqÁƒ7‡ŒëpÇ75U@x°®uÃk¯Ãú°côQBPu ¨kºn†W¯õ&𺶫 ÕñíÀ«Ñ+@«zñ(× ×›´ÿZÀëšo‚¬Ÿ«Â¾+0UfÇ5ùè5€×µ}èÿ 7º” ÕTWªvÃ+×zx¶ >:¸I�M)°I-ø k‚¯ƒ×- ¼^×þ«¯ž; º~î¸u@“�F.ДӫðM¦;“o‚nÒö¡ÐÞ; 6AÄøÚs@ýœTo8*Ò›Ú¸ ºÆq´ÞÔ«~=ì}áÊåë‰^šuéJâò­)° -%¢¼¨¶½©ÖÝ™ŠÎ¦JŸÌ‘–ˆT«â‘�ª''\ _×z>¢Ùäã×îm·å]O¹ìúLÞ{ödÞnŸ+D‹H*q"HìD Hä@ >Unx5ré‘ȃx$ÑsVǯOÅ,å"ÊS³’ª _vuÓ/MýÕhÝ”ZλßYÌž<›.ÌásƒhJD´C""ñàÄkçE#x‘È¢b‡DZT"Aó‘Gtp Ÿ;x©µ½{>¾r}=¹qs¯uesùFbnl —JiT}ÿ0øªÆU¸Z¯0Yç›Kƒ­¼×å«'ð¹€Vˆñ" ÊM‚n{¼u ^D[Äx (A[T ¢=bxþâêÔ•å½ékË›í.­µ_¸t3ÙÞÝ"#»Ý„›;s Òé“¥ Àñáëþ~”É'Íw&ï|si¸ó¥{íðÒIï3"‚Rˆ^〉<X…ÅŠžµ:ys7ž{÷ŽŽï²�{ûÝè+ÿù­ùï}ï;K¯¼4{õÚÕ‡(k¢žˆ½þ4[û‹X¦& Dµ@̱Ìþ0ø¦(ßâ6ZÏzß?9ØøëŸ´ƒ/á­ñx%ˆ€ˆÎ)D h„1DÄx‰mûÎ?»®Ìœ}òégç¾òÄ¿ŸzúÜŸ<÷Ì¥y‚G€9PšðH"žDˆ@ñ'LÅ+D“Õ³À«…oOªà.ßNz«½%ï<}—wƒ8<× ¢T0A]`”xEŒñç_úÙƒ/|ús÷?ùÍç–®]ߘ € Tê¢5âJ+¬wxâˆBT-³„¡¢z!Ôß^ÕømM>ÝÿúéÞêc¿à²µY°¥zÂ̽HÈWÆ ^@ Ý~f6·»ñåk»ñg¿´zz}Ûðò3 "”Rhã½GépÔÚ£œÆ+…s‚ó€7 ¾ zöâÑzÒT|SaÓìªà%|´þ©ŸJ÷¾z®‡—ò÷(Õç}‘‰DÈúf'ÞØêÆÛ;}“e–³‹)ÿô§küàÅ6OœÛäïžxƒ(ÓFÄÇ-Ò4Åyhµ"ÒÌc¢„áГfàœCŠšÏÄ c4¢ ÚÄ.P5™ýaðuð©r<ÜyüÎÞêc¿èóüÜ{©8"ˆ“RifÕÚÆN¼µÓÓÌI–Í3î{}Æg-�o} ËÏÜßå®ÓCnnÅ|ቷ1‹Ñ–¡ÍQJc”A'­V ïs”‚Ì+”hPЍ• ”F$ÆDÉ„ TKßW ?òwo»­Îõ>”ííÍÞ§f ‚wÒ/ôšþ Õ[Ýx{·9€�Þ¦¼éžœ3KŽjS ~ë=[X ó³1¸Œ;ÿ6ÖöÙÙëÅ1•$D-á cÑVp^P:"Чp^pNc}Œxï¸ ¸»Ýä÷·…·Ã—g®~ð;¼| œŒ}½âóÁ ×go¡<8'Øá€ûïÍ™™¦±Y'(ñˆÀ`çŸ_àâõüë¹YïÜ2-Lœ™+=ú©Ct ë#Bõ¨ñbð˜O”¸§è¥ù—ÐdžϺçOw®þÎ#.ßšAjУú[$ÍœÞØêÄÛ»½h|©¸ì„Ù$ãuw ÑŲÅûÊS�o¥(ò Ë‘qäVÑë /¯N³²1Åg¿úˆ8èdlî¥ sÁD Ö«`þJc&·­OJñbä À}‡ÀW£}#|óoîï¯þùÛ¼=˜FªÐR¤5Ä{d}³ÓÚØîÄUhïCà3aqnÈ©SZ5k¾l.×(â‚s‚Rž,73L?~y‰a®ù£øVMCn5ƒÔÑíY2x!Í“O–ðÆB�Uð²Â;¾{ãã¶þþA¼5 ðpÐÍâ›kû­4Ëet¹rÔVqj¡ÏÂB޳ã»Ëvë¢n²õÓ6Sqwô9· g{៿ý›<~î—è c©'µç 뢚›à«9ÿøÞê§ú(øÁ ×ë[Ö~gX]MÀ·¼âÌ™3',¾Œweʾ xÙªðÎA–¹LÍ<¯_Ú`¾½Ïnç4©õä98Ji\Q9ÆY ¾¢+}?¡îóOÝ1ØüüC“ðR¯Èúf§µ¾ÕmÕ«dmsæÔd*LÜ{F+!äŠcÊ`Ô¬ ÕE?‹ùöKò/çÞÉÓdÖâœÂ#xÀ{:ž¨üš63kzï]Ò½ñ'o÷¶›ÔáûƒÜ¬®w’n?mØ‘ DÞÉxÀÙ3–8 Ÿ½ï‚ («\Žõ@ØÔ¼‡4 ßËrX[ÒݹB6ü²\1ÌÀ‹ÁA¨¸•Á{3*„ªB(µ^×þ¨Èé¯ýÅ›lzu±¿¹Ýk­nt’[ +GkanzÀg,Z‡‰;7†÷�a;c$¬ÛÁ;yîíõáê2ô‡°˜\᎓[ìõ:ýÓ84R¬ |H‡‘‚B(c¿?r=Ÿu¿ª¿ñ¹Ÿg¼¿&Îy¹¾²7½ºqp<#øù©þÞºIxçCŸx‚-�kƒæÐ-áSˆ"0<üÆ¿e¯¿„è"^Gˆ‰°¢pÅr¸\ô*¦ŸGÝåßnX¬/‘ÁÀE7V÷¦úÃLMWò;áÌ|Ÿ³g"aâø1´+\@TcùÔØ²¬p`{n®Ã0 Õ¢˜?W7O3`Ó"ì·ˆ J¡¬ ¢'ÖMàeÐK�3Üþâmzu¡0}ÙÞ´VÖ÷§nÕö$¼Í,wŸ²pÒcmýXë£è_L\¤€8¢Èòñý«ë°¾j4SI¸¿Ý£U~"h­Éˆ0‘šVwÛWy÷ü)‹ôÕõÎÔæv¯5©¢[Õe$ãî;3fÚç‚ÙS   O¯@ëÛk spc6wAK¸?Ž IÆ÷϶sr[l5(1xJy¬•[²@£ß0xaå•ýöÞþ þ²&¡Ýpz!G ä6Àú"â”Ü–�á_Ddl‡  „¤pét:A`J Ž'á­…V µàñxLØ;P……V\ nÙÐ(zkØ»>wýÆîL§›šçè¿{ªf/,Ìô˜Ÿuh¬³ãTçGß ¹>h„Ñ&Ïíàºpeúý`îrüÅõØéŸB)a˜iœ÷8ç1Zá¼™pŽ€O�ýÌ_œë\º¾èlj‚ô|¥RÏØ{ÏB»ÏâœÃKÕË<_ÜB5Ò—…O©ýföüö\ºü¿t•VÞû¯l?ĹåwóÔåwGBš‡ dy(~­s87¹xX×O}뙥ßxßォß/,¦LÒða¹¿4“rÇ7 †[j|_+#¨bk´)ðeY¸c .^ ðÆLOMÂg\Ù}'O/¿Ÿg×!nM!Já|XF{`:²Ü“[ßè¦ÿä7Î/½ï·?ö®µí£«Æ[eô€×-ö˜’u¥œüØÌÅ%“„jL‰ "ˆxDÜ¡ð¹ƒå¸¹‚›;LMAd&᯼ókàÂÖ½´âàOªÜ~ôðUÅê0O=ýÝ¥|ø~mm³3-¢8èiæOØš ÑÂéÅ.3íðp[–Ve€óaÓ)‚ HHK£™øñFm¥åyHw¯ÀúVд.²DÒj€ï>Â÷?Ì…õ¥Za#·­"úÖâj•V™nÑþ‹Ï~oñSø»¿¥ÛÓxÁãùþOÜbö³‰ci¾Ky†i¡iÆAM)M¤5Æh´ÖhÆ@±oâQ…Vëš áÅ‹°³I;äx­ƒ âx Ÿfpaëa~´ó!NGï}óeæOÚÓûÇ Uô‡k'´•FWnÀl¯¯µ?óÑ=JzlöƾþåÿZ`löÂÉvÆâÉ>­Ä‚OYË—’rÿ³xŒ*f-Î[” [Ùuøî�~ð<ìw ŠƒéÇ1´§C®¯Â?{ã—ùÞÇ^z¯[ÐÜwÊr÷‚ggßrÐs¤™'ËýxcK‹ Å[ˆ¢À|þã|ô Óv×ä¬tfŠÝkÃóWg)sß'SL”“/61T¹¸©ÿ÷­Pøy‘$t£ÂÞ^Ù¬ nÿ�ž»âÅÔTøùÈ”–ÖýðÜÚ¯òøÞ‹5÷sO±ªàZz?Ë»ûlîö ø”#S¾ƒœ J«n…À|æ?üµ÷ò¢ÒŠÌTE²ÈlÄÍ͘·Þ»‡õSDzQK©qº“ÒUÄù^P„4Y¾¨‘J>,ÓÜÆ<3F‡4W¾RPy×:ïáë—ßÏFo‰»ÏF´bÃl;âÙ =Ö¶¤yðÊ^ÚS£%X«õX7Î�æËù±‡£Õg~ïù綧Ñ!z*afʱ·¯@Ã4hE­ÔL<Þ|!®(…P*ðy8.¯ÀK× „4›"ðUâCžÃ0kqa÷Q¾qåQ.­-‘åŽÜ «Û)Ëk›\_OÙëÍ‹Í+ó3†8R8ïI3O𹑠ø¯}ñ¯~®sé܃óSË+ÖÓ¬ ¢8!ÍrÍÿti&/š]çÿéŽßXCWwI=Ø-µ&ÜH… ¨%+– Þd-6Ødá@²!›†— !‹È†$²ÁH8i·±"k춺ÕRuUwM_}Uß|ï=÷œ“Å­.µ²8À{Î{žçyŸç•Šøáoòµgÿ 7Å?s4Фö'ÈBœ'ÿî‹Å×uó¢ŸÜi†š<mFÙØ|Þò�u)p^±5}’£Ë¼µñ*ÃiÓaÚDìYœŽ=•õ”6 ¤@+A¯á=d©¢*j8œÔÜÙ©š/ðæO~²4zû/öÛ†Ïnì2÷†Z¦è´EG· ' Q”P‹S\ß8ËåK›'ƒŒx°øp?�z�NHãÏë¸íë>¸‡È’¦ø$i,«É"&;öû„ |¸÷Û“s¼uûe<ŠÚyªlí(JÏþ¡?V”‚ÈH²D‘D’NË`ë€s£%>ø&Wä8þôG÷ärÔð¨bo÷Š+3Ö;Š—¡uEÇ´Z-úýwŸàÉz­€ j‘àðóî_ʉg$Âñù¼ø¢€w>hZ°Õ:~uÓ¸ºó2ã³ÃÇz…Y™1·ûÓ5®ï^f4ƒ^:g=³\ŸfÔN4Çñå:ßh~ïÎÃÞ°b¥gX[Jhe£›²àæ&FïO_qk~*ª:c0‚YÈ™M’DhÑ«`O(ò8‰©yóÃgùêSo [ )B£¤þ?òßÄý=fåóâGxï# Ò¸:c ¨ïï¼ÄÇ¿ÃÝéÓ”uÌhj)+(­?6 —sV¢k¹dkœAh 7JòÝå¿gË<Ãã×¹Z¿ÀÛñ+<|*Áù@;Ó$‘ä`Ô ®ú£g:Qšw~¯Œ×ž›Œ�ApžV,è'ŽXF•$Žsâ4ÃhM·ÛãT{È—Îls_î=(Žï·½’MñR„“¿\U°s�Ýl$h–4ªNk(KÅ/î|wî¾ÀýËÌ É|áX”¢:nwµ”V0)5ã*!ÈÆ|–Rðh¾AP1çó³e–O¯séÒÃ|v`X_5œëWĪf^)zíè§:RåK¿ÅÝÛ7‰¢˜¼^ ;`½#„šõ–ç!SsmÒ¥V’Ê;ö#~põ ¿ýÔ» õ݇BãÇ‹p<Ö†/¤<ó9lnÃÆ=ˆcH£Ï)n^hþçÓoðöÖ‹Ü›^À9Ëšrs¶ŽSmT]pNÝàl6àvýÛõ†¥E"IbI;“h-YÏYïœe·^¥œ™x3Ã×%kь帡ßÅr— k‰ÑŸlìUkÏÄVÇ)Yž‘¹NXlH ÊÀz¸Â)ÃÎ\cgc[±X€4‘®Ð243¿':àþ«{ßÌð·6`w¿Qs©ižÖ0™G¼qãyo÷k§yÜ\çL²EÛîðTÚeZTZq^~̲Ü'“¬xŽqÅ;GíZ:ŽÊ”ƒâ!Žª”;‹5ZJÓÆ1/sµÊCm-›ûsö 4µ´‰ÌÚÚƒbÈäÈ7M{”Š*BD’‚„ÑBSÛšB€óž¿ù—oð—¯þ%=R jÏÉ |½‡£qCsG#hge ÅÓyÄëï|‡^¤r]Zñ’~ÜŒ$Ž)ÂŒ‰ï"ƒ%ÑÖֹņ|‚}E‰F•œ‰öx(Ù!Öp»>ÅŽíÐn§\XO°5<óX›3+Édî@†“ÊêµÕy §øbAauÐè ñ"BIÅ·×9¨rªª$]4ËÞYGHKñE­-ʼn¾/ ¸þIÓþIÜPœ1 hÎ ÿùÞ·éÏ[<-Þã´¹MæðÕ„¹õŒ\‰«!¨F"0¥àëæß8Ç?€’‚Jwè¶xlù¥á&]½Ä,¿ÈÚRÄ…3 ýŽaµŸ ¥@ Yúc´QªŠUm¥wÔÁÐ[=…T’ñhÞ1¯<·¦=�â$ÁZ‡-Þ{†“”ñT‘g®qWîß±¾ŸÎà?[A+o^=>vf-þûÆ+¼~M*ñ‘cXI¤¨(\£¯JIµ¥J +ˆ#I).šæž¿¤m<wxŠ™^æ^¸ÈrØÆ› “wé&¥¼Á¥EᎧ£ÛÒä©¢×Öè³çW£áí_™ÃÚ@«ß!Š#¬ ìŽ×N©´—B£Ìñœ'5òýoò¯ñúØžRª‘¶£1üêFc†¦IzÑq;žåüûßeº×â©ôCf•§®Á—á!$>j“¹‚~'AÇ?³$-CÐQ°ó’¥z„Š7 ,ñ©z˜i­¸º{¡Y Å`³jA@qoPEd${Ê­½Âêv;åý÷?¡½vž85h­)Ëš(ÍÉ«ËYÍné˜Q×mT³å"ÞÁdÑ£( ×ýœãÇðÁ¯›â[D1$Q»‡=~øî·ÙØ=ÏÓê—xS8ÓË4±’Ô>0·5Y¦©|À«Á\¦TÖ#ÑxáÑI‚ ’3á^”!DНÆ<Riš¢6%P•`%x˜)0êÙÕØ- {%8÷|’eÇf…f\nÍ—×1ÛEŽR­M³‡çåqW(š­=É•¯làìÂÍO›âó´gãã�tk•þÅ«\ß¹Ìyû>O¦ÓR ªd ­4Qlhå1ç/¥®,…'5 EÌjAQ æLœ¢â˜\Ïè˧ÒK¹çñþgZy¤xØlqŠ-bS#½e\i¦óÀ´pŒjŽ&õÏô|QFRJ“Å’HÕÔeEPЉÏ³„É!™é&P$ µ!Žƒa^XFãWo<ÂÁÑ› Ž /ïÏùþ·þŠ<m8>ÒMñ;}þñêË|¸s™.C¾Ü¹EW ‰ŒF늵¾"ïw A2œ9ÆNP!BÐNi’ kAe=ÞKˆRLÜl˜PÓk ‰;·0q u…›2\DÔ.pP‡Œ™=ÅΡf°ÈŽkŠÊ[,/å$Æ3ì#“%ò~ƹŽã^HÍ,‘€ªö(¥"ॠì­rcc…?{íq!f0]æ‘õƒ“è{sw…]{žOíô̘N“D“Ædi�-˜U`C`±(‰#ÅR»EQ9ú½6Ý•”ƒé¸ p§"¢Î Š€Q·û¨´C@R¹•tì!>TtÄR9–]Ì’OøñW™–=Š¢0êwí»Õv|e°3x^¨ˆ³=‚ …YbèZ8çPÁ5”hb¼‡EQRÚ€ŠÈÄx)ùùÇ—ˆuͤìóÖÍçxé‰7ˆc¸¹uŽ7Þþ}âEà+ÉuŒ[°!ðp· ÝM1YŒˆ¦µÇ9G¢%+½œ3ëËœ^_¢¿ÔEÅ9iÞ¦³´LÚîÒî¯ÐêöH²„¬Ó!_>CÔê!£­¾*ðUA]-¨mÅlt€}Ln·Éë=6ë‹LÃÒÏ´”"Šce¬­9á,Eé QŠ«Zk´V´¢Š3¦Hœ7Œf–EYEq3€É¢òô[c˜iJŸrkvÊ+üÓµW9›¸Ò»Æ¹è€³ÉJI|PLêX‘U¼8½Ü&Š#¤¨¤ÉrÒVë •ŽÑJç-dœã]_™tIE_cçÕhRTÄQÌxï.ãÁ‹é‚碜óô&ó8±ºv>lίþÆ•gÿ¶ ™•iÛÌ­HÙ‹b`zù˜kã/ÙÚaÔ±;Ö h„Ô6Ž•ñBPºÌÞœ2&ÒØZÛ¿þékÆ…@.çVø©)<œ^MìJ[¥$qbìæöÜd1$©¶R SU!±Ra\U!„´ã"ÂJS{ðÔViŒŠ²NÛ"„ x¤V&™quE©¼5½¶Yn%X»m“ö’©l‡­ƒ¹-g3sp´ÇJ®®ý‚£m,@[Á����IEND®B`‚����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/sgiterm.xpm����������������������������������������������������0000644�0001750�0001750�00000021560�12214432632�016467� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 192 2", " c None", ". c #000000000000", "X c #10400C300820", "o c #082008200820", "O c #186118611861", "+ c #208124922081", "@ c #28A22CB228A2", "# c #410341034103", "$ c #514455554924", "% c #596559655965", "& c #618561855965", "* c #965892488E38", "= c #9E7996588E38", "- c #9E799A699658", "; c #9E79A2899658", ": c #AEBAAAAAA699", "> c #AEBAAAAA9E79", ", c #A699A6999658", "< c #9E799A698617", "1 c #9658965879E7", "2 c #514455554103", "3 c #186114511040", "4 c #104014511040", "5 c #208120812081", "6 c #38E33CF338E3", "7 c #410345144103", "8 c #71C675D671C6", "9 c #8E388A288617", "0 c #DF7DDB6CDF7D", "q c #E79DEBADDF7D", "w c #EFBEEFBEE79D", "e c #EFBEEBADE79D", "r c #E79DE79DDF7D", "t c #E79DE38DDF7D", "y c #DF7DDF7DD75C", "u c #DF7DDB6CD75C", "i c #D75CD75CCF3C", "p c #D75CD34CC71B", "a c #CF3CCB2BBEFB", "s c #C71BCB2BBEFB", "d c #BEFBC30BB6DA", "f c #B6DABAEAAEBA", "g c #B6DAB6DAA699", "h c #A699AAAA9658", "j c #A699A6998E38", "k c #965896588617", "l c #18611C711040", "z c #208120811861", "x c #20811C711861", "c c #618561856185", "v c #9E799E799E79", "b c #CF3CCB2BCF3C", "n c #FFFFFBEEF7DE", "m c #F7DEFBEEF7DE", "M c #F7DEF7DEF7DE", "N c #F7DEF7DEEFBE", "B c #EFBEF3CEEFBE", "V c #DF7DDB6CCF3C", "C c #D75CD75CC71B", "Z c #CF3CD34CC71B", "A c #B6DABAEAA699", "S c #AEBAB2CA9E79", "D c #96589A6979E7", "F c #96589A698617", "G c #20811C711040", "H c #FFFFFFFFFFFF", "J c #9E799E798E38", "K c #8E38924879E7", "L c #79E7820769A6", "P c #79E77DF76185", "I c #186118611040", "U c #C71BC71BB6DA", "Y c #8E388E388617", "T c #8617861771C6", "R c #69A669A66185", "E c #596559654924", "W c #49244D344103", "Q c #38E33CF330C2", "! c #28A22CB22081", "~ c #0000000028A2", "^ c #000000002081", "/ c #208124921861", "( c #CF3CCF3CC71B", ") c #BEFBBEFBAEBA", "_ c #79E779E771C6", "` c #618565955965", "' c #28A2249238E3", "] c #104004104103", "[ c #104000004103", "{ c #1040000038E3", "} c #0820041038E3", "| c #0820000030C2", " . c #186100005144", ".. c #104000004924", "X. c #1040082038E3", "o. c #492449245965", "O. c #0820041028A2", "+. c #2081208128A2", "@. c #30C234D330C2", "#. c #38E334D35144", "$. c #AEBAAAAAAEBA", "%. c #965896589658", "&. c #618565956185", "*. c #514455555144", "=. c #104010402081", "-. c #61855D754924", ";. c #30C234D32081", ":. c #59655D755965", ">. c #C71BC71BC71B", ",. c #A699A699A699", "<. c #965892489658", "1. c #492449244924", "2. c #71C671C671C6", "3. c #861786178617", "4. c #69A66DB669A6", "5. c #082004102081", "6. c #618565955144", "7. c #1861145130C2", "8. c #9E799A699E79", "9. c #79E779E779E7", "0. c #B6DAB2CAB6DA", "q. c #C71BC30BC71B", "w. c #30C230C238E3", "e. c #38E334D328A2", "r. c #49244D344924", "t. c #A699A289A699", "y. c #861782078617", "u. c #410341034924", "i. c #618565954924", "p. c #38E33CF328A2", "a. c #4103410328A2", "s. c #69A66DB671C6", "d. c #8E388A288E38", "f. c #D75CD34CD75C", "g. c #4103451430C2", "h. c #79E77DF779E7", "j. c #BEFBBEFBBEFB", "k. c #0820082028A2", "l. c #8E388E388E38", "z. c #4924492430C2", "x. c #49244D3438E3", "c. c #1861186128A2", "v. c #618569A65144", "b. c #38E338E328A2", "n. c #514451444103", "m. c #59655D755144", "M. c #B6DAB6DAB6DA", "N. c #69A669A65144", "B. c #69A669A669A6", "V. c #A699A2899E79", "C. c #F7DEF3CEEFBE", "Z. c #69A671C65965", "A. c #082004100820", "S. c #86177DF78617", "D. c #71C675D65965", "F. c #BEFBBAEABEFB", "G. c #596559656185", "H. c #AEBAAEBAAEBA", "J. c #71C679E76185", "K. c #51445D754924", "L. c #8617820769A6", "P. c #B6DAB2CAAEBA", "I. c #71C67DF769A6", "U. c #86178A2869A6", "Y. c #30C22CB238E3", "T. c #8617820779E7", "R. c #596561854924", "E. c #8E388A2869A6", "W. c #8E388E3879E7", "Q. c #9658924871C6", "!. c #49244D345144", "~. c #86178A2871C6", "^. c #20811C7138E3", "/. c #CF3CCB2BC71B", "(. c #30C22CB24103", "). c #38E33CF34924", "_. c #D75CD34CCF3C", "`. c #104010400820", "'. c #71C671C669A6", "]. c #71C675D66185", "[. c #79E77DF769A6", "{. c #69A671C66185", "}. c #AEBAB2CAA699", "|. c #69A66DB65965", " X c #5144514438E3", ".X c #492449244103", "XX c #38E338E330C2", "oX c #DF7DE38DD75C", "OX c #30C230C22081", "+X c #86177DF76185", "@X c #8E388A2871C6", "#X c #4103410338E3", " ", " ", " . . . . . . X . ", " . o o O + @ # $ % & & * = - - ; : > , ; < 1 2 3 . ", " . . . 4 5 6 7 8 9 9 0 q w w w e q r r t y y u i p p a s d f g h j k 2 l z x ", " . c v b n n n n n n m m M N N B w w w e e r r t y V C C Z d A S j D 1 j F 2 l G 3 ", " O H H H n n n n n n m m N N N B w w w e e r r t y V C a d g > J K L P F j 2 G z I ", " O H H n m n n n n n m M N w t Z U : , Y T R E W Q ! z O ~ ~ ^ ^ ^ ^ 9 q S E z / l ", " O H M w y ( ) > k _ ` $ ' ] ] [ { { { { } } | | | | ~ ~ ~ ~ ^ ^ ^ ^ - e S E / ! G ", " O n r R . . . .........] [ ] [ [ { { { } } | | | | | ~ ~ ~ ^ ^ ^ ^ - w g E / ! G ", " O n w & . . . . .........[ [ X.o.c O.+.@.+.O.| | | ~ ~ ~ ~ ~ ^ ^ ^ - w g E / ! z ", " O n w & . . . .........[ X.#.$.b %.@.c &.*.7 =.O.| | | ~ ~ ^ ^ ^ ^ - w g -.! ;./ ", " O n w :. . . . .......] o.%.>.,.v <.1.2.%.3.4.6 # 5.~ ~ ~ ~ ~ ^ ^ ^ v w g 6.! ;./ ", " O n w & . . . .....7.# c 3.3.c $.8.@.9.0.2.4.c 8 q.w.~ ~ ~ ^ ^ ^ ^ v w g 6.! e.;.. ", " O m w & . . . .....7.2.r.1.% @.<.t.@.y.%.*.r.$.0.0.u.~ ~ ~ ~ ^ ^ ^ v w g i.! p.a.3 ", " O n w & . . . .....] X.2.s.# # 8 d.@.% %.v f.0.t.' ~ | ~ ~ ^ ^ ^ ^ v w A i.;.g.g.z . ", " O n w & . . . ...7 7 6 4 r.h.c r.*.# 8 q.j.v &.=.k.y.l.k.~ ^ ^ ^ ^ v w A 6.;.z.x.G . ", " O n w :. . . . ...8 % 1.7 + c.c c *.y.f.0.3.7 5 *.t.>.,.' ~ ^ ^ ^ ^ v B f v.b.n.n.z . ", " O m w m. . . . ...t.M.3.# r.W x 2.l.%.,.<.1.Q 3.j.0.$.$.c.~ ^ ^ ^ ^ v w d N.g.E i.z . ", " O m w :. . . . ...8.0.3.9.:.:.:.c l.c 2.8 l.>.0 ,.h.,.0.k.~ ^ ^ ^ ^ v w d N.g.i.i.! o ", " O m w % . . . ...h.j.r.*.,.3.1.B.3.O 1.8.f.>.%.:.@.t.0.k.~ ~ ^ ^ ^ V.C.d Z.x.v.N.! A. ", " 4 m w % . . . ...S.M.d.$.>.t.3.l.%.2.9.8.$.v l.c % t.t.k.~ ^ ^ ^ ^ : C.d D.n.Z.D.! o ", " O m w m. . . . ...8 M.F.0.h.@.7 j.q.t.d.>.<.c.W G.1.t.8.k.~ ^ ^ ^ ^ H.C.U J.2 D.P ;.. ", " O m w % . . . ...*.0.8.7 + 7 $.b $.c %.b ,.*.x + *.t.l.5.~ ^ ^ ^ ^ H.C.a J.K.L L.;.. ", " O m w m. . . . ...X.r.@ 5 l.0 j.F.v + 4.q.d.&.% 6 x r.+.~ ~ ^ ^ ^ ^ P.N s I.K.L.U.b.. ", " O N w m. . . . .....] Y.%.F.<.9.0.F.@ 8 >.<.*.c c T.~ ~ ~ ~ ^ ^ ^ ^ P.N ( L R.E.W.p.. ", " O N w m. . . . .....X.G.:.% G.6 $.$.@ 9.q.c 6 8.j.F.+.~ ~ ~ ^ ^ ^ ^ P.N Z L.i.E.K ;.. ", " 4 m e :. . . . .......] 4.*.6 4.M.$.@.2.j.l.t.q.,.&.~ ~ ~ ~ ^ ^ ^ ^ P.N Z T i.Q.K ;.. ", " O m q :. . . . .........{ !.B.c 0.F.+ h.b b >.8 c.| ~ ~ ~ ~ ~ ^ ^ ^ P.N p ~.v.1 1 ;.. ", " 4 N e m. . . . .........[ } ^.h.$.F.+.G.>.M.9.k.| | | | ~ ~ ^ ^ ^ ^ /.N C ~.v.1 k ;.. ", " O m e m. . . . .........] [ ] 7.y.s.| (.8.).O.| | | ~ ~ ~ ~ ~ ^ ^ ^ _.N C ~.i.1 F b.. ", " O N q :. . . . .........[ [ [ [ { { { { } } | | | | | ~ ~ ~ ^ ^ ^ ^ f.N C ~.v.1 F p.. ", " O N q m. . . . .........[ [ [ [ [ { { { } } | | | | ~ ~ ~ ~ ~ ^ ^ ^ f.m V ~.i.1 F `.. ", " 4 N B j.$.,.t.V.%.* l.l.9 9 y.T.T.h.8 2.2.'.4.4.B.B.B.B.&.c &.c c & r m V L.i.K L . ", " O m m M N N N M M N N N N N N C.C.N N N B B B w B w w w w e e q r r t y V L.R.K ]. ", " 4 N N N N N N N N M N M N N N B N C.C.B C.B N w w w w w w e e q r t y V i [.R.W.{. ", " O M N N N N N N N N N N N N N C.C.B C.B C.B B w B w w w e e q q r r y u i J.R.~.` ", " A.9 l.l.l.d.,.U ( ( Z C V u t r q e w w w w w w w w w w e q q q r t y u i Z.n.Z.n. ", " 4 a U d f g }.> g C y Z s a U d ) g A A > , J m.x.].|.[.k < J. X2 @.X ", " X > V.: P.d s s u y i Z ( C C i u i u r t r t 6.x.j I.P k k E x . ", " . .XQ XXe.XX@.e.E g.a.p.b.b.b.b.b.b.b.b.e.e.e.z / N.|.E / A. ", ". . 2 ! ;.;.! / z G 3 `.`.`.`.3 I / E A.. ", "o . A.6 N.E z.e.! / z l `.`.`.3 l ! x.` N. ", "o A.@.v ( A L.j > > > j U.N.n.b.;.;.;.a.E [.|.x./ XX/ e.+ . ", "o 4.q B w w q y y oXr q t Z S L E p.OX/ G I 3 3 `.`.p.+X@XL.#X ", "A. *.4.j.b b r N C.w C.w w w w q q t V s g , W.].b.g.v.#XO . ", "A. . . A.4 5 / c.z + x x O O O O 4 3 X A.4 . ", ". "}; ������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/ps.xpm���������������������������������������������������������0000644�0001750�0001750�00000020551�12214432632�015436� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 168 2", " c #410341034103", ". c #FFFFFFFFFFFF", "X c #861786179658", "o c #861782079658", "O c #861782079E79", "+ c #79E77DF79658", "@ c #79E779E79658", "# c #79E779E78E38", "$ c #71C675D68617", "% c #69A66DB679E7", "& c #69A669A671C6", "* c #6185659571C6", "= c #6185659569A6", "- c #6185618569A6", "; c #59655D7569A6", ": c #6185618571C6", "> c #6185659579E7", ", c #69A669A679E7", "< c #59655D7571C6", "1 c #6185618579E7", "2 c #861786179E79", "3 c #618561856185", "4 c #59655D756185", "5 c #596559656185", "6 c #5965596569A6", "7 c #514455556185", "8 c #5965596571C6", "9 c #79E77DF79E79", "0 c #71C671C68617", "q c #596559655965", "w c #514455555965", "e c #514451445965", "r c #514451446185", "t c #5144555569A6", "y c #79E779E79E79", "u c #69A66DB671C6", "i c #69A669A68617", "p c #86178617A699", "a c #86178207A699", "s c #49244D345965", "d c #492445145144", "f c #410345144924", "g c #410341034924", "h c #38E33CF34103", "j c #38E338E34103", "k c #38E33CF34924", "l c #410341035144", "z c #618565958617", "x c #69A66DB68617", "c c #8E388A289E79", "v c #8E388A28A699", "b c #79E77DF78E38", "n c #79E779E78617", "m c #71C671C679E7", "M c #71C671C68E38", "N c #69A66DB68E38", "B c #49244D345144", "V c #71C675D679E7", "C c #492449245144", "Z c #79E779E7A699", "A c #5144514469A6", "S c #8E388A28AEBA", "D c #86178617AEBA", "F c #514455555144", "G c #514451445144", "H c #38E334D338E3", "J c #96589248AEBA", "K c #8E388E38AEBA", "L c #96589248B6DA", "P c #69A669A669A6", "I c #8E388E38B6DA", "U c #49244D346185", "Y c #618565956185", "T c #86178617B6DA", "R c #86178207AEBA", "E c #71C671C671C6", "W c #79E77DF7AEBA", "Q c #71C675D69658", "! c #79E779E779E7", "~ c #8E388A28B6DA", "^ c #96589658BEFB", "/ c #71C675D68E38", "( c #79E77DF78617", ") c #79E779E7AEBA", "_ c #861782078E38", "` c #5144514471C6", "' c #96589658AEBA", "] c #96589248A699", "[ c #9E799E79B6DA", "{ c #9E799E79A699", "} c #8E388A289658", "| c #AEBAAAAAC71B", " . c #A699A289B6DA", ".. c #CF3CCB2BCF3C", "X. c #C71BC71BD75C", "o. c #C71BC71BCF3C", "O. c #CF3CD34CD75C", "+. c #965892489E79", "@. c #D75CD34CDF7D", "#. c #A699A289AEBA", "$. c #8E388E38A699", "%. c #86178207B6DA", "&. c #BEFBBAEAD75C", "*. c #B6DAB2CABEFB", "=. c #C71BCB2BCF3C", "-. c #AEBAAAAAAEBA", ";. c #9E799A69AEBA", ":. c #9E799E79AEBA", ">. c #8E388E38BEFB", ",. c #8E388A28BEFB", "<. c #BEFBBEFBBEFB", "1. c #AEBAAAAAB6DA", "2. c #AEBAAAAABEFB", "3. c #DF7DDB6CE79D", "4. c #C71BC30BC71B", "5. c #A699A699BEFB", "6. c #B6DABAEABEFB", "7. c #79E77DF7B6DA", "8. c #86178617BEFB", "9. c #CF3CCF3CD75C", "0. c #96589248C71B", "q. c #5965596579E7", "w. c #59655D7579E7", "e. c #CF3CCB2BDF7D", "r. c #BEFBBEFBC71B", "t. c #9E799A69BEFB", "y. c #DF7DDB6CEFBE", "u. c #96589658B6DA", "i. c #A699A699C71B", "p. c #AEBAAAAACF3C", "a. c #9E799A69C71B", "s. c #596559658617", "d. c #30C234D34103", "f. c #B6DAB2CAB6DA", "g. c #B6DAB2CACF3C", "h. c #96589658C71B", "j. c #86178207BEFB", "k. c #5144555579E7", "l. c #B6DAB2CAD75C", "z. c #8E388E38C71B", "x. c #C71BC30BCF3C", "c. c #B6DAB2CAC71B", "v. c #B6DAB6DAD75C", "b. c #8E388A28C71B", "n. c #86178617C71B", "m. c #C71BC30BDF7D", "M. c #DF7DE38DEFBE", "N. c #514455558617", "B. c #D75CD34CE79D", "V. c #B6DABAEADF7D", "C. c #96589248CF3C", "Z. c #BEFBBAEAC71B", "A. c #A699A699CF3C", "S. c #9E799A69CF3C", "D. c #96589658CF3C", "F. c #BEFBBEFBDF7D", "G. c #9E799E79D75C", "H. c #96589658D75C", "J. c #79E77DF7BEFB", "K. c #AEBAAEBACF3C", "L. c #8E388E38CF3C", "P. c #A699A289CF3C", "I. c #AEBAAAAAD75C", "U. c #A699A289D75C", "Y. c #C71BC71BDF7D", "T. c #96589A69D75C", "R. c #AEBAAEBAD75C", "E. c #BEFBBAEADF7D", " . ", " X X X o O O O + @ @ @ # # $ % & * = - - - - - - - - - - ; : : * > , > : : : : : < : < < < 1 . ", " X 2 2 O O O O + @ @ # # $ % & = - 3 4 4 4 4 4 5 5 5 5 4 6 4 7 4 4 7 6 6 6 6 ; < 8 6 6 6 6 6 . ", " 2 2 2 O O O 9 + @ @ # $ 0 % * - 4 4 4 q q 5 q q w w w 7 4 7 7 e e r 7 7 t 6 6 8 8 6 6 6 6 t . ", " 2 2 2 O O O O 9 @ @ @ $ % & * = 4 4 q q q q w w w w w w 7 7 4 4 6 ; < < < < 1 1 1 < < < < < . ", " 2 2 2 O 2 2 O 9 y @ y $ u * * - 4 5 q q q w q w q w 7 w w 7 6 < < 1 : 1 1 1 1 i i > 1 1 1 > . ", " 2 2 2 2 p 2 a 9 7 r r s d f f g g h h h h h h h h h h h j h k k g g l g l z z z z z i z , x . ", "h c c v v p p p 9 7 v 2 X b n $ m m m m u m m m m % m m % % % % % 0 x $ M l x z > > i N i i M . ", " v p p p p a a 9 7 p 4 5 e b B V B m B B B m C B % B % B B % B C C $ C x l z z > > i x i x M . ", " v v p p a O Z y 7 p 2 o o b n m m m m % m m m % % % % % , % , i $ x x , g 1 > 1 > i i x x $ . ", " v v p p a a a 9 A p 4 4 + e B B B B m B B C B % B d , d , f d d x C , , g : 1 > i i x x x M . ", " v v p p a a Z Z t v 2 o o b $ m $ $ m u % % % % & & & & & * - = * > , , k < 1 , i x x $ M # . ", " v v v p p a a a t v 6 X 7 b B B B $ B f C B d f f f f f f g h g g g * , j 6 : , i x x M M # . ", "h v S S S D p D Z t p 2 o + # $ m m 0 B % & q * = w - 3 w - 3 e 4 h h 4 - j 4 6 ; : , , % x # . ", " S S S S S D D Z t v 6 7 # e s B m % B , & q - 3 F 4 5 G 4 4 h h q j q 4 H 7 5 4 6 * & % % 0 . ", " J S S S S D D Z t p 2 + # 0 m m % & f 4 5 w w w w w w g 5 g 7 w G j 4 3 H w w q 4 - = & u % . ", " K S S D D D D Z t p 6 7 B B m C C & f & = g 4 w * f 6 s x 6 * 4 h 3 = H G F w q 3 3 = & u . ", " L K S S S D D Z A 2 o + # $ 0 m % & f = g w 3 h w f % : @ # 6 , - & % j F q = = 3 3 P & u . ", " L K I I I D D Z U o 7 + 7 e s B % & f w g w F w g 4 ; * i > * 6 5 g 0 # g F = 0 0 = Y P P u . ", " L I I I I T R y U o b + + + # $ % & f = g w 3 6 w , $ > a 9 * $ & f 0 b g q * $ $ u & u u E . ", " L I I I I W Z Q s + r 7 7 r @ e C , d , g w 6 = w , , * O O , # & f u m g 3 = u m $ b V m E . ", " L I I I I W Z Q s + + + + + @ @ $ % C B * w - - 7 * , : 9 O , @ u f u E g = P & m b X n ! V . ", " L L I I ~ W Z Q U O O t 4 o 7 r e # s r s C C C d d C C s s e e s G $ $ B % % u V b o n ! n . ", " ^ L L I ~ W Z y U p D p a O 9 + @ @ 9 a 9 @ / M x x x x m 0 0 n + + b b B $ m E V b b n ( ( . ", " ^ L ~ T R ) Z Z A p 6 6 t 7 O 7 9 r 7 t t 9 7 + r r e # e e # r 7 7 7 o s # n n n _ X _ _ X . ", " ^ I T ) Z Z ) Z ` D a O 9 9 O O 9 9 O a a a a p ' O + ] [ ] + o o o o X e X { { c X X } c c . ", " L I T W ) ) ) ) ` D 6 t 6 O t a t 9 t 6 x | ...X., o...o.O.{ 6 6 v 4 c +.@.@.O.O.#.$.] ] ] . ", "h L I ~ %.) ) ) ) ` T T D D R D D a O D I &.@.O...*.=.@.=.o.o.o.+.' ' J o.=.c B -.o.o.+ ;.;.:.. ", " L >.,.T %.) ) ) ` T 8 8 T 8 8 8 8 t D 8 8 $ <.o.1.- s k { <.<.{ # * 2.3.4.s + 5.=.6.e [ [ .. ", "h L L >.>.,.%.7.7.` ,.8.8.T T 8.T T D T T ~ &.O.o.0 t y J ] 9.o.o.: [ ..@.4._ [ .5.- 6 5. .5.. ", " 0.0.0.0.>.8.%.7.` ,.q.q.8 q.8.q.T 8 8 w.w.e.4.o.g A 1 J : ..o.<.H , 2.O.6.=.r.t.5.v [ 5.5.2.. ", " 0.0.>.,.8.8.%.7.` 8.,.,.8.8.8.8.,.,.,.,.I y...o.U I ^ ^ u.3.o.o.7 t.i.o.4.o.=.o.p.| | p.p.p.. ", " 0.a.>.8.%.%.%.7.` 8.q.,.q.s.q.q.s.>.s.z 0...o.{ d.^ > > + O.<.2.d.x i.5.f.=.=.=.r.| p.p.g.g.. ", " 0.h.>.8.8.8.j.7.k.,.,.,.,.8.T ~ ,.0.>.>.p.3.o.{ < ^ ^ t.&.3.=.X > i.i.i.> -.=.=.=.{ | p.p.l.. ", " 0.0.z.>.,.8.j.%.k.>.s.z s.q.S 8 w.z z I :.X.<.$ C > ^ , x.@.r.f t { e.c.% i.*.=.=.-.9 p.c.v.. ", "h 0.h.z.>.b.n.n.j.k.,.z.,.,.,.~ I >.0.0.L m.O.o.# a ^ ^ &.M...n < | M.@.*.: i.&.O.=.} # g.g.v.. ", " 0.h.0.z.z.b.b.n.N.,.,.,.,.s.0.0.0.0.0.0.B.e.o., a a.X.M.B.# 7 S g.3.=.} C p.B.3.<.* $.v.V.V.. ", " h.h.C.z.z.z.b.n.N.,.,.,.w.>.h.z 0.0.h.h.y.4.o.o.3.e.M.Z.% t S A.| &.=.=.#.y.M...* > p.v.V.V.. ", " S.D.h.C.C.b.n.n.k.z.z.>.s.>.z C.h.z h.@ y.o.+., # = , j z 1 A.p.p.p.c b +.2.X < > p.v.V.F.F.. ", " G.D.D.H.C.n.n.J.k.z.h.z.z >.0.z h.h.0.K.y.<.:.N w.8 S L M A.p.p.K.p.p.5.: @ 2 u.v.V.V.V.F.F.. ", " G.G.H.C.L.b.n.J.k.>.0.s.I I 0.0.0.a.a.m.B.=.# N P.P.A.A.p.p.I.p.K.K.K.l.# l.v.v.v.V.F.F.F.F.. ", " U.G.H.L.L.b.n.j.k.>.0.L I L ^ 0.a.h.a.Y.@.o.# S A.A.A.p.I.I.I.K.K.K.l.l./ l.v.v.V.F.F.F.F.m.. ", " U.G.H.H.C.L.n.n.k.q.s.q.8 8 s.z z z z e.4.r.+. .9 N N N M M M M Q M Q Q # v.v.V.V.F.F.F.m.m.. ", " G.T.T.T.H.z.b.n.8.n.,.,.>.>.z.0.h.D.h.Y.:.:.#.2.O L A.A.I.I.R.R.R.l.l.v.v.v.V.V.E.F.F.m.m.m.. ", " G.H.H.H.C.L.z.,.n.,.>.>.>.>.0.0.h.h.S.S.N N N N M ^ I.I.I.R.R.l.v.l.v.v.V.V.V.E.E.m.m.m.Y.Y.. ", " G.C.C.L.L.L.z.b.,.,.,.>.I I 0.h.h.a.S.S.S.P.P.U.I.I.I.I.R.R.R.l.l.v.v.v.V.F.F.m.F.m.m.Y.Y.Y.. ", " G.C.C.z.L.C.C.z.z.>.>.I I L ^ h.a.a.a.S.U.P.A.A.I.I.I.R.R.l.v.l.v.v.V.V.F.F.F.F.m.m.m.Y.Y.Y.. ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; �������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Makefile.in����������������������������������������������������0000644�0001750�0001750�00000033335�12214434561�016342� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WindowMaker/Icons DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(defsdatadir)" DATA = $(defsdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ defsdatadir = $(pkgdatadir)/Icons defsdata_DATA = \ BitchX.tiff\ BitchX.xpm\ clip.tiff\ clip.xpm\ defaultAppIcon.tiff\ defaultAppIcon.xpm\ defaultterm.tiff\ defaultterm.xpm\ draw.tiff\ draw.xpm\ Drawer.png\ Ear.png\ Ftp.png\ GNUstep3D.tiff\ GNUstep3D.xpm\ GNUstepGlow.tiff\ GNUstepGlow.xpm\ GNUstep.tiff\ GNUstep.xpm\ GNUterm.tiff\ GNUterm.xpm\ GreenWilber.png\ ICQ.png\ Jabber.png\ linuxterm.tiff\ linuxterm.xpm\ Magnify.tiff\ Magnify.xpm\ mixer.tiff\ mixer.xpm\ Mouth.png\ Mozilla.png\ notepad.tiff\ notepad.xpm\ pdf.tiff\ pdf.xpm\ Pencil.png\ Pen.png\ ps.tiff\ ps.xpm\ README\ Real.png\ real.tiff\ real.xpm\ sgiterm.tiff\ sgiterm.xpm\ Shell.png\ Speaker.png\ staroffice2.tiff\ staroffice2.xpm\ TerminalGNUstep.tiff\ TerminalGNUstep.xpm\ TerminalLinux.tiff\ TerminalLinux.xpm\ Terminal.tiff\ Terminal.xpm\ timer.tiff\ timer.xpm\ wilber.tiff\ wilber.xpm\ Wine.png\ write.tiff\ write.xpm\ XChat.png\ xdvi.tiff\ xdvi.xpm\ xv.tiff\ xv.xpm EXTRA_DIST = $(defsdata_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Icons/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WindowMaker/Icons/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-defsdataDATA: $(defsdata_DATA) @$(NORMAL_INSTALL) test -z "$(defsdatadir)" || $(MKDIR_P) "$(DESTDIR)$(defsdatadir)" @list='$(defsdata_DATA)'; test -n "$(defsdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(defsdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(defsdatadir)" || exit $$?; \ done uninstall-defsdataDATA: @$(NORMAL_UNINSTALL) @list='$(defsdata_DATA)'; test -n "$(defsdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(defsdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(defsdatadir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(defsdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-defsdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-defsdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-defsdataDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-defsdataDATA # 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. .NOEXPORT: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Pencil.png�����������������������������������������������������0000644�0001750�0001750�00000021257�12214432632�016212� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���gAMA��± üa���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� À½¥Ú���tIMEÐ (Ï@Ö�� �IDATxœÕ{i°eWuÞ·ÖÚû ÷Þ7õ¬î–ZÝ’Z ‘c3I;E\1eDQ®˜!®T\$±©H-‚p‚m¬"†`ʱ“Â1£Á‘`2F€ÔµP[cw«ÕýúMw8çì½×Ê{Îãu#ÙàÙU·Î¹çÜwïù¾½æµá'\ïz×»ˆˆ�èÎѾdž÷ë×Ì �¬»hfvz¸@[Kjf8ŒJF[Žn÷V®‹çÖ¨ABÄælÍ®š=ƒºc‘ž3;“Œ@`(94èãK·ö@޵:ᱡ"@&÷}Ç÷¾ýãàq?·n½õVîÀ?øs‰8‡Û@�ضÙ�l�l¸éȶå|ù`ͺJP2ÉÆöâ-§èÛO뎲þÅCBˆŽ®8|òAP589Šˆp HøqÁÿ½Üzë­lf´´´Ä�HDÖI˜>˹GMßKÀ,ëDÂ̾1÷íí«n¸?8ìc"k¨(ÚùU»|¦ÁG0eMxQ5êèðÉ<–ÖÖ0©4(@ÈãÛ\ð?BÀ­·ÞJDÄž¼È=²hûì¼eË13w໣™�bfŠQ jÀÌç‚^?íÀ/󊯸Ù8] X$¬Æ®bl?wÞ®ìÕVR2J,D1´¡¾}ãÛ÷)-aÉf‘Ì;úŽûÂOL@¼{íßùƒKÌìÎ?¾D =ì˜[Ö›ªR‚'@ ¦¤ÉZ]‰ˆð#l ¢cÂÎ;Íž­É5æh„’Õ~aïÐ.D8M&Ħ›Á›E”ö芳?¹¿gõdÕN™³š{ Íqô÷ýñO~�fö "ž›+h~>7ç/pŸXñcìe #-³& ¤)0/މ™‰™Ñ‚?K6B3à >Ù[ô«—©×óUJ |bÛ77¶í¹¡`µJÖ43u°Äk©´ÏÍl98[Ea#.ŒP¨îÏ~Rð pÁà3oÝ̵DÓ ½+*(iJ)†…¢)p�TÌŒT§êÐmvg7îþ19¹g-]8–*#ËbÀ «ìÚM ž5OèkÓÈ&l&!’Ù8zûþi²{ŽgÖ„Ê›ÒÌ÷á’Ói?ßÄwþqˆHG€tÄ騱cì|Ÿ’QæIYĉ0 åfELChRY”ÎyGN$¥¤4 ‘R¦ö¡#`Ý|÷í;‘º^3Þ‘8€xÍ O¸|pù¬™Ÿ2aÀå°Þ› Wa#Íñ…ÌÙÚòª­%6–Yã$¶fþ€™Ý;ßùNVÕtÓM7é?F¤“�aUe� ‹ÊìàDD„‰Hà#‚y�(‹>XHÍ@�üh´šˆˆDÞ{„ÔÌ`fÚ0_¥á®qÖ\$p¸öv~?â†í„ õ“˜!Á�Ëzf€‡‚íž“3vô)…§dÑf,çÒ´Ò‡_ë_þ°™93S�tË-·$UÕ›o¾Ùþì��n ðÌìžæÅfÉ1)Ã"B¨c”’ù,§<ÏY„ÙÔ$¥ U5¡²,]¯×§ÙÙ9733ãfgg³,Ërfö"⤣—>™Ÿ¹.yÝ¥Î)X¾Õ¡x嶦¸z+僀"§~©—7”Q¬¬ÄâñÕ~ñ¹|1\YÍOÕ3EH¾àÆèÆân{†gw‡zzKü4täsžˆ¼ˆxç\."üšfDp8‚ ä¼c瘉ÌADØçyáò<wY–yç¼gÞ¼eK."^)åÇý©«&y}¾ú˜Ksòn‰ùE³–Ï¢ÉËØäN-. •^PkÁç_|tP¬Ž›bŒ¢ÑL‘g½|?ö}\U;·û´›xèÐ!ùq ð"âDä¬/ Bn°‚‰¼ˆ8ÕèC¨|S]«FB€óÞ{"rÌ\ЏœY8ËËܹÌ;ïóÃzÿsÎd«—CRŸlœ—Qó+fb~ÍfÊw—šsµT8Wçd“ÂsÊͬi–u6ÿΓ–Oª¥¼.çŠä|ž›_<à/}€ˆÈÌèéÀ·Ïâ:ôŒßY6@Dx*ö&DÄ)%Ð@ÌLl–ˆÙ‘Yb3FJÉÚ€ˆ#ñDDÞ{Ä)™úJmæH:zÞƒî±ç'—6+×äš=Џh`¶«Ç FhhL �pibH™\>÷P£Ñ²-6spéB\ð™œòÈÄND�©*1swLÀ°C‡ÁÌÒ¹vaÝt»/"g‰’ˆ8�ž@Þ;ç„Å3“gG„ €g&ׯÅôŽ1ÂÌü$LzdžǷ|wyéÚ©/6g…5k™jÌž¿)fÏßiù ó䛬ʃ‘“³Ìê:“:ÿò#ƒüÄJʪFsËvfÎò|“õ¿}¹¿ì°$眑ü™ì@'Ý&ß|óÍôtt`}§�œsÎ%UçD\–yç½÷ rDðÌì8fÊE¤pÎyžy"ò1Æ\5z�2ŽãÞbxjauî‘ Ç7GJý¤ÜíS~ñe»æ8‹Ã'3Iu&lYRË ÈÇeŽfòoʲåÓKù˜²&ù܃ÃË‹|d–gÆÎ¹Ü{ßû1€;f–îü¦›nZ'9‚¹…íŦM›3»”’àø£÷ÎùÁ`à‹¢˜’Cär�:CésÞ{ïEÄÇ|›7¸ZëÞJ\™ù~ýÀå«åò®¦XæÐ¬ð€8¿ÀSï¹[³‚šµ,óÈrkò,ã`YUgÙmËþçÑAvrm’óÙ{9ù ä¼ÏÏø™è½/²,ë‹Höì¾0³l<gæuÜ]wÝ…~¿¿µ ºšRR3c3Uefæ™™öÞ33³ª²H5qö²ˆ�*Ë‚ªªBºdIGq8ø~uäòÇý‰k4=¶ó�..k\^äY©¥HDP$Mh� Aßîx¼ÄÑeÂZH¶JP"äæO_W^õ•œ3cæÂ9ç;ßßU•ZÃ"ê‚0€ÖcàÚk¯Å`00ï}r'O>………ùTÅfU™YÀÞ{ž››“6dfæ,Ë ®ëš½wÔ‚g3£ñxŒ6�"�¨µñÔ?8püœÛÆê‘¥û!ž»%ÙÏ\L˜K§c$»84©ŠdúÐ2ãÿ<žÂ1˜1�f‰Ï/¯ýƒ-~Ó*2ï}ID¦ÓÝ öˆÚPÌLfFD„ýû÷cÓ¦M˜B¸æškà˜ Þû±ª’™m Y–Mƒµ»¹!š)§”ºÌxc‘ä¬*�Ä{+ºzÞªŒ. uÍeư¨ØÕ8¸Ë£‡SÆ4žúOD1j,wMÓÇM*]¡² \ÚëwáYù¾‡˜X¼÷…ˆøv³ÎJË«ª¢Ö �8p�eY‚ˆ`f¨ª fUEQÖùGgfÑÌV²,›Ÿ™™ÙÎÌËD”Zlžˆ8ÆH�¸õ–$"ìœ#"¢öÞzeèÞ•ÃW=DGŸ—\ƒ"a»«pÁ@±g¦ÕK0˜Z[ì (•öÇrº÷ÑÊx„åÔ3ao³2ûÈòÒo÷]ϼóý,Ëò²×³¦®É9G ´¸¸Hu]Ó­­­Q–e¸ð ÁÌH)a2™ Uyž™™™‹1BU 3sQc"Òv'…hjðTU�˜sÂfFÎ9ff ¬ª4ÖÁ'M²˜Nï^æ¥m5E_æ‚~ªñÂM?³GQ„ExoH 3KJ¨!xxèñ™‡ “¦ÂrŒHnž¤Þ›_ø×{û{+¤—•e^ú¼02Ó,ËiëÖ-¤ª4??OI•RŒhš›7oÆêê*Tª çDœ9çÖ‰ "s)%4Mãò<—,ËXD¤5ÓÌ`š 9çc$ç‘EÁ­+å¶d�tïʽûï·Ã×W¼ÒW hÄþÏÝFØ6‚Ó 6ƒ%A€3µâÓ?HxrhX©+4ÔÁé.9ÿ[—ôž}_)ƒffvfÁ{—DDMS*Ë‚T’*9ïA1b<Á{OkkkðÞCDP–%Ì�"2�cfSUã;î¸""yžKžç®AD®Ý}Ç,Â,ž™³<ÏsŽó<f3“‚ï∬ýàâ¯L¾ú³c?ÞÂNœ·äfyìö ÌíY`WЪ+ u¡Šäœ¹:±{`É»#§É-+w²qN)—\{+WÌ^{ÏÞ¹}Ëýþìœs®ïD$Ërv.cœw^œ8ç\æƒ)ŠRDœ›L&Bp£ÑXBh$¥iÜ”eY·±âΜ9ƒ-[¶¸6îŠ]aSƒÒ• Ș©«úta´kÿŽŽÕ'ö>%göMRN^Jãù[jüôövõ' Д9c4j-ÃRÈñ¥ÇúXŽp&Fðìn¤a…ÝùÚtå÷çŠLœcafcf¢)ñIU-¥d*ÂÄD)%¤”  rp®oÎ9±y﬽oÎM%�€¹#GŽ ×ë93“”’uÕ›;Oc{îꢞÚJ1³ GDB 3ãûâ‘k‚sì9Á¡Á³gpݶ{Æ(t HS¥Iª,ÃÊÈáKçxøT…:TH~VVÆØé7~ÅöW}ró 3&I5ЏÄ윈¨¦˜Ì,™…”d?•Î !„ƒ¦ª&âཱི‚uËÅá¦M6Üèv7ŸV”½ÏdêSYZ𥈨êh0`iy‰?yìS¯8FOí 4(i nŒý œlX\™ÑaÜDŒÑàðéw?,®L°¢9 øpÕܕߨÑ_2!39aaqÊŒFDŽ…-¥Ò4ªªª¦õndÌ3³”Ôz=”Ô¦×ɘÙ\ �ɲŒ›¦I-´!7`3c"JÌÄDÜ3°O*ý'ž¢ÍÛ6ñêÑñÛ奔{5ÜHz2Bé#öÌñüm#,D€ÂxZ£ ð³<…• ð×Od8µ0®VnF= öìùKÿ“í/þ¿ƒ¼€œˆ”ˆ’sŽ`)y—C˜Sˆ¡`ÂìBŒ€ÆADIÕ8©&&‚$óÎRRsN˜ˆØ9ÇMÓ°€£ëõzRU•´z®f&Þ{ÇÌÎÌdÊÁÔ5‚ ÂÀÌL±Òëq8µVoùòñûFå¥ÑfŽ¸Ð  \9×Ã\jPË�rH•`)õñåGß_Ì0ª†P7æ]ñŸ_ðóÿ{k¹P‰H¿ê’8¡Ð4©( ¨&QYE¦f!†Ô ¡ ÉLM•(ÆhVcS"PŒæÕ¦…Z5³PUf†i ÔZÅ.hÓk8çœ Ì,biÇD·à²à(£zéØE½lD»3×m¿?ùÖÆÈ&‹`§h‚ )a+“1ŽŒ ß8ÞÙ10¶ä¨'!½p÷‹¾¹9›u?Ƙ�¦DÌLS)§6ÄÍHÄ!iSתš$%%YR ”Ô¼™‘÷Gc•<s "óN¬,2]¯ w@»¬©S‹|—P÷™²,�«*õ½ÒófJ¿kp-®Éwa|b 6‚VK-ŸÆ`¶%ÂZ#8=qXLŒ;÷Xœx4©ÁfCžޅG_²ó…ßìç=—eYafæœ#3£#µ!8UU…fgg‘’jAÚL6™™5!@¹ª%€•ˆ4Åh³ÚÌù,³<s €t!QÕ)£ëØpäŽç‹›Ç³Bâù¯Øz!2(²10 ¬3Piàüuå1ª<Ng°Ä›ñåO,¯aØ(VšMtØá·?ñŠ=7|m>›mŠ¢˜€žsŽT•ªª‚ª"Ë2´ú.!4TUµ¤”L5妱QC2œ„ÈTYÌ$ªš€üÑã“tᮞ®c< üÆsúaÉ\˜Y¼÷LÓ™ƒ¦’ÓðBö=Äf q€ qãµ€ñê<jmpz¸ «ñ"œ¤N/-"ÆU4ˆ‘1°|tõ–«Žؼÿ©~Ù+s¹ª&æäÔ’€i ÂèJìmæçCÖ:�©£U f4ä ›TQSRQcŒëÚ?zlRÞÿàÉw÷Ýw#„ -¸üÆBÂúqƒ`33󰔳޷:òH ,žYÂÚx &F]÷púñK¡ˆX Bqr0^™`Õ’™å¶þ²‡_|Á ˜-feÙ�­¿�Tu=èꈴ©¯M“d"‘LU9¥EÄêºa€`02Už-­jšŠGuQL½@₦úí»�§ÓõÀ‰H¼÷@RJÓ–½Å\¬*Äê&¢ ã ÄP�“Ñ.<19‰ÓÃAaɰCpx0ÌcW¹cù†½/}p{{Sæå ¡Ëñ»ôº-r€™‘e™&“‰MµÄljMˆÈZ—É­Êòòò²0K˜ ¬Î;{rÂ1!2Yt))1ÛA*€`a¦õØà\i‘Î^3K¨—7ùðè, !†ˆ:¨ÔØ1‚%4ã=Š”Á fÌÆEäY×ì¸âÑ˶]¶Z¸¢hs‹´1¿oI@ë™`f¨ë1Æ6ºSÕŽˆ®½gÌÌ1§jj«*¢ÐT¶m\d+ì@ð�³Yj³?ÊUaÌ ‘õš´ÉκaìŒb}òo_à·8bê¦FD@⩳,ž: @žJg<;ìÄÐg¸~×O=ØËzœeY1™LÌÌÖ mVº¼¥”àœ3çœm\MÓXUUgoK{jfœRr!$KjqÐ#žªص ëÓÌHkc„;…o»Ç»ÜH@¿È8'Ãé•TU53ÀŽÕB”Á(�0˜= —mÞ¿sûêî…gm—¯Šp]–¥¦”ºº>Ì�3…ªAU­Íá‘R²”’µ¶ÂDDgff¸®ë®Ã-)%1ò4[jf,Bœe?ì{¶Ù%5€¥»AQµ.–®ƒÜÀÌ3ç3£fÕd‚¦©(¤bBH§O¯!E¥ `s,9P9ÀöK®_äÌN‰XµÙš´ `µÓõ#lúû„6³™ê|Œ‘SJ¬ªÝKúý¾E¡“É„iZ½â”R[Â#ö>[ÿ|g#ˆˆ3[JŠ<ˆdZ; 1›FŠÛXZ–Gîý_ÿlÛlÔ4˜LV)Ôh0”ý“Q@hTFj„ºJ(zs¸øê—/ååìá<ëMTƒ¨×<Gdý"‹§‰8 íF¨™ ¦ª!DÜEa!«ëz]䫪â<Ï%„ ãñ¸{^.Ë’Z .§ÿá&·‘ ’DÓ2/CT͉Hffm.¾n‰Hú}£,KX>ñÌ´´çUP¨ª ÃÀb_sÃÒììæ#eÙ7fΙÅT5²4KuÈs‘†ˆ(kã È`FIÍT­-ÄB1%h}'cŒëÃDÄEQ¬ïxJ‰Ïߪ;ñÁƒ;ÇæJ j“@)©O)QŒ!ëÄ?ÅI¯È�FD9È ¸Üà ¡ªê�c{°ú›öà²k^¶<3˜[îe&Ì…ç½÷®,Kž›ñó3ò<˽w^„X“"FíÀóÔ-&j´³@7MCfÆÓíÓ>WÈMuk:Þ€hÊ{W$`Q#Ÿ’²sÎzøË×oÄRJ¨›�5RBÓ(B0¤@0$ô·ïÃî}W®ìÙ{àˆÂÔx1¼÷”Rr)M'"œw¡µè5 HIIÕ:c§�‚EÀQ›‡pÓ4géuGÆ3>÷|€.p "šÆÔª�\‘g.%5fq"œM¿Ü¤ðÉ9°¤8³x>ëcmmŒå¥ãÊ`& f·]„]3ÚyþeOˆË´ jœ™¥wç�ØÌ,ÆØ´e¯Ø‚­°0ÍëcŒ¬ªôã�nëç  Ž„¶X@ªÊÞ{sNUK—Q…&«uî)x‡„å3kä³xêÌFcE“|ÙƒÂ!ó}ì¸àòjמgyÁ�Ä9'­ëf¶B¤©›aU ªˆÀÎ;QmM£<à§ni:œi¤9¥H­§zFðã¬aÏi“>°. EQpUU\UE!" 5âj<<ñè#]´Ðˆ%Eµ:DhdŒq4*°º»>.¼äÙzþÅ×<V”=ÏÌhKçFÓò´¦”R–eÚ&>iú\±‚¤éP’7³¢%3 bâ@—roÑ9O!L[s<mƒq¯×£ ‡Cz:Àç^;KÚŒi»‰iJ?7MC�Ðï÷›²ðÃêÔrnšPFUÀpqüLƒF $ΗØwàØsñ•C–,‘è½§iËÌÌš©m°ÐëA Ñt$Í9—RJ�…M&UŒ!R6ýÌ9—6�DŒQcŒšlŽï[ÜgIÀFv8¥D�¸,Kªª Þ{š&$d“IBW¨" ù –—c0¿=lÛ}iµçY×,‰8e+Š¢³/èHUÕ¦“†V"¬sm�˜‰Ø{瘩›òÐ#{‡ZBàL ’”<`CÕØ G#›ŒÇâœK­Ý8k÷;¬ sç^ìŽmû‹D„T•ò<_gͬ‘ V'5&“ A¼ë§­».î½äºUïs°H7A:í¸�Ú¦°ëÙÛFõÛ(…Þª*©*µa2Dœ‹#"Dnu-`uu :mHgΜÉʲ´,Ëês¤`ãtÈTŽ9‚µµµsŃò<_ÏÆTyž3Ú§&Õ‰§VsÀ¡jÔI`Ò‹\zýÊî½WŒò¢g>˘ˆ:©9Ëg·D®ïöFÀèž³sgmŽj ¹÷ê7ãIíC¤jR×u¨ë†½Ï&D”´Yýá æ¹Ò€õ~Þ¹7èì…¦išñx<>õÔÉê+ýíÓÎ÷0œDœ|j„µ±êî}×Ïßwõ(Ë{¤Ó~ƒÈy:ÌÐÞl$‚>ö±-<Èz*"䜣<ÏÑëõÐïõèÑGþî€ °�hCã*˲ˆE‘72 )MUS]7i<—««k «kÃ!„¬ƒÙÁ ’q6m¦�Ð4µ<ð½ooûÖßܽ÷=ï¾Ëª‰Ñ¶;Ââ}×ÛY±y,#žH‘åy^·Ò·ßû½ßüú¯ÿúòïüÎï,œ<yÒu"®ªøÚ×¾¶õàÁƒ':à]w×ÌR¢Å±sçÎûêºB !Þwïw÷N&Ú³çÂ'‹¢€s® zzêôéÑòò2‡˜ˆ£¸¬ÙÌÃ<zåòÒ⼸<:�pÎu³½ë«ÍÉÑ)€CS÷ìá ¾÷àc6¿i»^véeñ7þýo¬]òœë׆áWU¯jJĹ÷YòÞY—ˆ´ÞŸøÄ'ú¿ök¿vf2™Ðu×]G|²ûí¿ø‹¿ØqìØ1ÿùÏ~6ÆX?ôÐCeŒƒÁ`@o»í¶»:2Þóž÷\ñ¶·½í[¯~õ«ß4;;»¼°°pæÝï~÷½Ç?¹íK_ºãY[·nœÁî'ÞõŸÞù‹�ð»ï}ÿ¿ú·ÿæÍÿ �Þý_n{ËÎÝ{1·Ó‘#GÐ4á€MÃ_é�Ôúð$ÚÊÐx<.þðÿë/}þ/ _¦[n=´|õsŸ7—iJÉ÷û}cô««£,D¸”"ÏÍõ«µÕe9yò¤ß·o_ ªj0³ðÞ÷¾wÇg?ûY»óÎ;R ª>ýéO¾úկμóï<ò©O}jþ•¯|åqU íý¸á|ý¨ªñMozÓ/|àøãîÚ±cÇ·Þý7ûÂÁÌÌc+K§ÿÅËnø¹_U³ø¶·üê‡àwÿo†›Üç¾u^°ÿH/wVÙt°¨«µ¡Ë›ÖBÇûîûî¶Ï~î/æÊ2]ÿÜë꫟û¼¥¢ìwcvFÓ™5³øõ¯=ûÞ÷Žð‹_rCæóúÌgÿÒýí7¿Ñ_ZZÂ_ýÕ_RUûÔ§>"ÂÁƒ/é÷ûq0Ä¢(ÂG?úÑûRJöªW½ê©nÇ(˜fÿøÇ/ú¥_ú¥º‹7ß|ó ?øÁþÉë^÷º·ÌÎΞÇÅd2™É²,„ö”ý…ïÝ𳯠ÞÑøƒ·ÿÑ/6Ñx<õyä;�4‘à§Ýâ®ù°þcÔvˆ½÷Ň>üß?vÜ]ûŠ—õ­ÿú˜ÏŠ`fNUí3ŸùL~ÿý÷—ÌÌoûÛ«÷½ï}B +ÏnGUì»ä`üÏïúUÕ׿þõ[îºë®GSJáöÛoŸ½ñÆO¾ô¥/Ýÿ§ú§÷¾á o¸üCúÐwn¹å–K~ë·~ë{­Ý¸dqq1;yòdoëÖ­Ëï{ßûžý–·¼å3ÃñãÇ·¾á oø•¢(&ïÿû?öÖ·¾õu·ß~ûïá _Øù’—¼ä!3 Þ{1h4R£oÝ>z~F>ëžÑ·P§™8ÝýÄ<Ú’˜¤”ðÀf¯zå«O¿þÆŸÜqÞÎêž{î|ñ‹_œÿÍßüÍ•»ï¾;¿å–[–‰H^ûÚ×nýíßþíÕ¹¹¹ˆiÈK/ÿYu'?üÀ ùÿìG>ò‘m½NÏ;ï¼úÍo~óž={öŒèââbþ¢½è½^¯13{ýë_ÿÓýèGï|Ç;ÞqÅÚÚZ~âĉ Æãq~çw^žçyõ‘|ä:UH)á¶Ûnû¸ªÚË^ö²GZ#jªÓÒ˜QJ‘êg ŒÜ¬Æ)^¢”’p;<°aé¿ûo¿ª®ªêWn|ã£W]ueefþŠ+®_uÕUªº›nºéÔ›Þô¦óöïߟ>üáŸjE×€iEÇK­l “”’½ñoœüÝÃøÍ›ê;î¸cðêW¿úÌO<ÁY–5ffþçþÍV¯ŸÀ¶oß>43;tèз6è}8tUáö÷6ž¯ÿ—JUUÚ®4\›¤ï>Ä¥ÙÂ}ýîoRR÷Þ~>MSSnËÞÄÌ”eYvÏ=÷œ7??¯w~åέ0`uu5¿øâ‹›_þå_^¡v”f:Š2êzÜþ³ßÞ‹(�� IDATµ¶dZÞQÕ”RŠ1ZÝ4! Æ8ɳ,ôûýÎÈÅœª†O~ò“[^óš×<¾ñúFãw®1Ü` »Ï?í}U =¹© ¯ão<±ügǘÓé$ØÆÜš§‹2UuÌì¼÷ëcñY–9�R×µ EQHQ]ÈÛ…ÔÝ\^WÐL)%MÓ3CÓ4Z×õÐ{‹¢ØHĹ Ÿ–„$!QUC§ã˜l¦õýJ€´îÀ¦¢Œà½gUÕªª´ªª.C–e Ȳ̦¥xÓn̾ ¨:Ò®¤ªÉÌRJj“*83¥,ËLUÓx<VçœÒtF!u’cfO÷2›6P×UÕÎYÝ=´%ôsÕÄYd&ÓdC&ˆrŒÁ¢ŒHÛ"$féFO»æÌ Î9ØôI gÇöëÿ9Öý ©sNÍ,ÑôËk5)`N˜mZ)Jí¤Ê?~ ÏHHû~ãù:!îyÚáÇ@H)O 4F¸cFä}‘ ¼w1„@!€²,£éìݺx£ s7‚ß(çU›F˜êD-ÇDÞÌæˆY–-;çR]ש®ënꙈx&BžN*~„.V�*"Úž'çÀŠr’ÌËZ-ÛKmN;F*Š‚ºÐ™§ÿ$ÙulòylÈ'Α=gg€ÄDuUÓhu"ó^4ôòp¦išsAþCRñ“ª‰ž•>|xã[|æË#ßrÃYמ½ó~l]”…Ã¥—^Šÿß×ÿób<ÑÄPA����IEND®B`‚�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/draw.tiff������������������������������������������������������0000644�0001750�0001750�00000012124�12214432632�016072� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�h��ð $h°à!B† &l¸ð‚úXK4­1bj‹ Ù€ÀRêL¬+©îä)ô¤Ò›F_:ý2Èl0«¡ì9 ç2’'¯ÑüÆ /l¢h1“%L•2]¦¬™òf+V2WÅ|5 5,Öªm©®åú ¬4²ÚÄZ³ÈþÇŒ[{»¸ñ%”šTWŠ”©Ó¦Ï˜!³¬säÌ7O~£6^¬xÉÒeË”7S¹Ê´jækX¨]§^ƒú¬4±Úl©µ­bÄÖÖN»ŽõKÛÜ=y*=iô¦Ó‡oï¾0:|à±ã'Ž:}æìiÂ.^º@äêµëW‰Þº}{!ëûl>²þdE Õk×ëH¬sc ézìè¥/ã>Wöð;·ß‰ ø9`~vYF€-`Xe –GyFd†A™ !FéFˆ!:f€6„é¡ a:©G˜6j¡™*Dh j)A„j ¥‚<Ä(!1 ÉDŒ<R#›$ÄܶØR=a#9Ïà÷Òzo¼ñ~H·ÝN»õ‘A`.Ø…ŸS¶àçˆ5øÙgvXD€ æ‚a–™@Fd–!™¢!ÆèAˆa:#¤aúhA˜n¦ƒ:Dh¥©@„:Jc£Q*)@Œ²ø(& 1 HGŒ’ƒ¸*αÔÖ=JŽ 6kIA‡ÚÅ«€ºê©³¾ºë¯·†j´ÁÆi¢±&›i:aR±¥–[iµ5SÐÙfÒÒH#5Â: ³£ŽÉê”ìλ8:øKŸ:ÊᧆRø©¢*(@€2òˆŠÈB|2$—4É&A2IBt"…X„H"!ˆBˆ8"&†0„‰"a"D˜0ü&_—ðÇ©šÑEªg¡f6 æ v®¹SÐÕVºmO­c™d‘Í †â5Ø ”í Ø`Á`d)×Ce!&éG¸�„ÃG˜þˆé¡ºh@„öhh‰žFÊ¥ŽD©¢1*ÈOÂ-Št»rÄ«A¬ú?´6Ù:»£Ù>–ãS˜?-iêH?gH.†Ê2ëlÙdAÖ˜Fe&sË#/„òE˜qzf„.„,¬DŠF¤¸¨A„&*¥ž2D©)«œ½­ð rI9 šƒ«©éPÄ|•­£±;þ-vN´MO»¤K­S²ÎXülyb—¥ÀX@õ•Xa AC ¡Ð áp6ˆ`cˆˆ"¢€ÚÜ+:ˆŠ¢\C =d{BžsOè%/;Ô«ŽÅ6ìƒë-ì†@ Nö_É 5]8Óç ŇdAºØ¥VF!äj×Z_Á"DDЋ›£Ñ]ŠW"DÑ„ ;¢¢¨V–> †Rñq[%AöÄ‚îGz9ØÞ .ìC€]ìÅ@ Ò¦7}B®sc8Ôa8DZ…yßa‚Xq1!ÌaB˜Æ€?Ñçotû"èC«;Ð Ô5 8<ŒZeq[ßž@!2¢T/JÎË^õ2$’ëmÇG'ØÃ~J¤ éÒ/fÈCÎHŽËÞÊ~²„0VWc2~áD'DD^›ÙÂV¨…(ZP(®*;öð„}’†õ %3˜Ñph°“ ‰à‡�ÙJ öq=)HýN'«Ô“³X™!¹‚In€™;HBh‡Р9`ÁF D8@ƒ:”ËMqk‚‚î„¡õ hD=à! bç¶ 3—l$+ËÏjÖ’½e Ù+1r@_‹2ìRCniPV:˜ÃV„d!YXB:H*x18 ö¢)â!u˜@à„ @S‚Là´i€Ð�Q[gUµ=w8ä-Åȶ¢éجy+k)Êk[bÖA 9.%ƒ¤ÆCØB�bP† ÔAØZ .8‡ \pTˆ¡ ¢pLD [ÔBÖ¨‚ ,P ü,øÀRxÂtŠƒhDÜÏÔØ-‰È­aT³õšf¥æÅ AÖ Ù¶ì”¸¶p¬qÔ>)ø”AÎÖ"$  A˜¡‚pÅECpA8ãBpÆ!P# Ø75Ml2,›3”€&(Œ^¨Â<3L`�Jn‹bbñʑך¨%»Ø®…ãkƒ¶A²$ÙkWûp„ãK!” ÁˆÔ �d7¤ÁpÁiçq !8ápèØ*DPT¡hD%Ðô4ð£hàEÐÀƒ< Ù@2€¸ ø`ÈAÅn9p‚ ÆD’S܉'w�“j[;k §ÉOaà8$ÙSƒP„!|°0E[çqA8áhè8€±!8`B°Ç&„a‡5ˆÀËsÀ"D`ƒ9ˆÀ Ó%&æ1ˆÀÃ…! =äCÒÐE()š©^õjr¸×-ÇG¯ø1hÇ€Ú3Ð)M '+’BjP·2@ ƒ…1Z¦?L8a&Øù,a B6üsœ+æ:wXÏk>F€¡c�¢0EÄ`‚nˆAS※—(YÉ-e©K÷ö²Rœ’á` í[ÁÀW„œîB ±š<\ %x¬3Y#°3slÍ ë³Å*ˆ ƒFA u ‚$ªA T‚(ÄP "ˆ ÿðÈ„‘b"Ä@ê± bÐ@œ½àçlOz2oœÂÑÑ9upKXÂvar“ß Žw¶ œâ윻"k!aHA–’a„úµÌ ›ûœ-V急(Ö˜™¦ KŒ_m£0ß8Ìп)ôl]ƒ1Ú!#´B†h†8´% ÈP“ÛôÚ¶³ýeo¹uèwº¢³Ÿó8“Ã÷0B úC½ ›°6Á«—™ó\1‘+Í“W»,0Ñk/øz0½ŒÑyã›Â-·DÄa€ˆC5‡44s†œ¥bkÛË A­ïY’åíx'gÛŃΉóK‘Þ¨B§ƒÇ ú O‚ –žë¹ÏsÞ˜¸Æ úÜç/ôº{ñÑq3´ÝìU0DãkQqè½ z¨„8`¿ËqËx÷{³{/íõA+ðaçðQ‡s¸RÀhP uqp„]}¨a_±ë3ômñ= s›3›ñ0ö371·rK¿¨ó{o]¨ Ð…25ˆ�½`÷.ÿqÿó~÷@+t P¸€Ë'ãe˜µw=(a°†y+W+˜ò-߃QÏ·ñÀ·`èõc›7ƒÖ ÷¯óÚ =¨ñ  Ð fÐbMÈ�¹ðt7Ûµœà �ó¡  ° ñ‡ËDQœ;ذOR!У Wa°„IóöœÐõ× C?v£ ñ ðô;ЇZ¿‡*ˆS0…<ðh€Hˆ€!ð?p‚Yˆè[º`ap!oƒV0Vè`ƒpqè à€0V˜o®'€îXa°X�wé;`ƒ°vXWò{à‚A°�vRpGY!óasŒÐ…bÏ´aßõýÈö"7�“ȇö(t‹(ö[ˆS0JS‡…p¨�{0ƒ5ȆXƒ$O¨|ø‚v(€h†Lø‡ p‚_iø‡„Fƒ?™¤�ø‡pN LZàOjƒˆ1øƒ°ä€pHnˆJFˆLzÆL&L>#”‚)PO%}( TXˆÐó \?°à J�/ch‹BhoPeh¦sH0ƒnˆ?èG°„'¨† ¸ƒrH‚hI<hK<hM<è€x„jH‚CðiØà…¸�oà ðØ_à‚ ðØÊ,Xwà„cðn؇ à†%pNØà†CnX'à„Ep.؃@à‚5pN˜Gà"”UBeð e˜І\0ƒSèQ›óS]ÐuAˆopƒ e„ˆ€PX„p_h…Lø‚fÈ7(ƒxx H…;ȇtx…ˆ…G¨€tx€2H‡ˆgHE €P� HE -� -à ƒä/` +` ‡DP�’.tP�ò.PâB,äB-|P(¨ÂÊ~”ä¢t~ЉT˜ŒЂ윆~ð%P‚(°Kpd +À*>@h€*0ëèGX?ð‡…�8„@„GH†x¸‡h‡;ˆ€�¸fB¸†D‚H…8¸Hˆ+†5ð�sH%`,` .äÚš"�…r +ûr-‡‚.Ûªò+§ò %LFFQa0€êH�MÈÌ9è�p€¨ �¨,�`��PF`7mƒ\ÐUȳø�K0€ ðWجXöwXopYWXoðªp†5ð7XOð„ Б.B«Àr/Œš*ï"©P(»‚­E ,àÚ¨àòjRÀT˜wpg:»ŠƒtõRq+àÈZà'àF`È*�(�P`À R =à.0à n°)àg±†^pIà)pI.H=Ð vˆ „Bq P/b €`�b&‚¦”o"ð! †"ˆ9 hÀkA âÚCELÃ+q'5 Hñs}h�P†L ^p�R`- �ja Pf}`6Ðf`� :2 ! `  ^ |à �~ rà‚B q JPz � �l|@aÀ¤Îlà—;BÀèLÀn@x"#"À�n@,àíF�"@.@xàÀ~Àtà À�®î'LGuÔð0ˆoMP'ñ(QÐwqЂRàH‚0`!p ` � M�~Ð>à„BÐ]°qàAÐ�`Y  *`�a àB ì>ãJÀï¾Àv �´5†H`¸ï*À˜ �tà|Àl@àî¬L@ÈŽRÀ ÌÂÔjMP_ë•aZ]Õm‘M(�!Ptài�' FP o=\�)àNðe�.E;Pf` `�v A`�|Z  `\@@`l@ÀøAxÀ4`@ �`¬ š`|@œ0@`\€VÀ„tRº¡G]XjMuˆ {¨ {¨�qÐR…¢>ƒ|uÈaP„xàIðà PB À<`U\6 ï  ZH=Pƒ@oSà0ê2 À  ,@Z@�Ôq�  t€j@D`<@f@t @ZÀŸýî@T <@j€ŸÀ�4 @�Z@`’VDzXœl4 5pY P1[ H*�-È7ÈIЀ,�5H›<H‡à1ð�VàÝ�N  G`°PEà`‚0�#ðY`ðeî1ÀLPZ Ô<ÀÀL ÀI <`œÁbÀ�õ±îLÀ*Àd€�0�<À r V`°7#Ì…%ÌG}RcF¨ÂjÙ' õfбepIPuH HIP‚  ß8�c0Ò€Â-ÿ-Žj0Å-—51Q1 “0é­o Ú¦mÞ–mÝ&ÞRXØõÁÂõcFK"9ì†Äæ€µíØ N%PWBHÙ9Îæ-^lì†â]… ]×.§;§{§Û=gtS0pÞ“=ÝÓEØ‹½×½ÞRXXÆB,Þ>¨²djñwõow·½àQûà3P8’"4@t%$A2lÅv!c!•#ô;8ôg12häÝ;,@c4E3Rc¨vgÿ„mɇðñ¾ý g±3;3PØÿ#‹ ð± ˆˆq¸:¸>6¸9Žã„Ûㆻã=>¸?RØÇÀ5ª'5fƒš}÷¯# ®ý¶ƒ£:;¡9†;¦c«cƒëã<®ã9Þ8¸‡‡3†Ç3…§3? x>+x9›³…׳‡·s$‹?Q[#5æ>¼#8¢ý‘½SˆÀSŠ`ŒÐc<õc=öÓ›ã†Ûã?Ã3:“3;‹3?+x>Û³;‡s„÷Ë$,³[‡sg®ý8™ý ß#±üó?ºS 𠉈Ó8­Ó:Ý‹>ý‹=cx8Sx¼ÄK:ëK…—³‡×s„·Ë¼!xG‹½±¿‰›¼©›¾™›½¹›¿…[¼y�������0�������0����������������������� ������� �!���������>���������������������������8�������_����������������/usr/home/fatal/pascal/draw.tiff��Created with The GIMP���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/XChat.png������������������������������������������������������0000644�0001750�0001750�00000020706�12214432632�016005� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���gAMA��± üa���bKGD�ÿ�ú��‹tŠõ��� pHYs�� �� d_‘���tIMEÐ  7Z3dø�� �IDATxœí›yžÅ}ç?Ýý<Ï{Í}¤‘ ˆs›`±ŒÛ±±“M²›˜°q6ÙªõnU×&^vËÙ$o•S©-'!‰9Œ16—±¹± $Э3#Í=ïý¾ÏÑÝûG?sH Þü¹U»]5õ>w÷ïÛ¿ß÷wtüÿöÿv‹•G²H‰+ ¹ô€À" €Á³âm‹µHÀ¬5,Ú‹kÜ}+,èc Ab íέÀè!ÈÅ~…ëW€B„(J „ Ö"Pî}¸_ `¥û•!ÔÒÐ3¿ó¯J n€¬X!° ¬/—!’+(B€X%@& ø¡Òc (Ë÷…% Â¢¤ ³$(€Iÿ¬kÁh¬ÖXs&ØÂéwSp…q’å_oű1X«YFÆ5o �©œPÖ ¤Â(‰2Æ"(0B"<µñ² Y: VYÐnvݨӘ-×b$/ ²²3‹P4i1Öºq 1‰!¬×‰Æ·àIÏ÷P™�“É =xž+Â:ÐPkÀ)¸( ±qšeŒñ %^@h÷%R½0X B¹N¬°«À’ª¸EíÞ“aSáã¬! CšGŽb§æ1ÇNaNÌã¯Dw¶Hµ}5˜Gy# XAÅ”ªÇæÈ›´©¶B+¢‚‡îÊ’[?HfM/Ù\Ž%üôÄ:~¥„Ú€rs%Ô’å/€’ $Hgk(‰0 tªÂ‘hŒµT%-"1X_@¬A‚ «èçv#jU¬–þ-dú}DdhLMS<>Š¿÷ ùK¶c>´‘¸Ë#(AÇ:ms²­½(Q£pþÅxk{‘Ù,vßQÄžcáí×WŸG²m-=]HÏ‚u“&¬vVí¥¶ŸN$^zì”äƒ4ÀÙ½R‹t么ÅûÂ:.°Öi€vªe}ƒˆP[«qä¹—Øp¼ˆìî'{Õ5dλ�•ÄÈ1ü] Þ‰ãÔÇOµ 2s§`ppt’ŠRDk7кuYà­@uå‘-­Äj IR§ãà!š{ K%ÊWo£}°é 7ÃÂs6iSî)Å- nÓóÔÜÎÀ¤fîƸ·8m�ƒ`µA @KG‚&Aƒ•”™ýG¨<û&Þö äù&Ä•7b¥"ªUiΞ&nøÚPõÍñ㈉ãä[ Z½æÔÛ9ÿ»$§a+«e+Ù×ÞÆf4:'HFÉ„…«/¦k ¥<0 (o‰õSr[<å|«WÑ�¤¡¾ÂXƒÈÔu¸÷ܬ ©DJ|‹f§A¼P¢rX°uê"2ý7b½v¢Iê5ccL=ôb|œ  Ëà¨�~½Æ àíÙ‡xåyLb¨F ]Wu ZA.ëãez1A€(MÓÈPÉçèèhwB/ª½LW+�HÁþ*`„DJ± RyîE™òÆÁ&qBÛÔMÁÙ›yç0þk/’£DÓö홣¸w? c©¡91�’0$’2hÃ7]æˆINÏè"ÉPA„OëGx6¤±´g~K™4 VAŸ>ÌY*ír—l%“ϧ,—Š¥ÒYÇk¤ò¬ÆF‚Ţ˄¸L–` ëtÉŸ¦>^ÂJÒ›ï!Ê0!š:Eí½“Ìí?I,›Ø°†éÛJäùÄÚb’¥<„0ÞZ7 2Y, !,™|;¢Y¡Ò¨PjÖ™5uºŠ³fçÉ{Ð*-ÖÂ蕾Vf;[Ø|*—u HÏ͸ œx¾;‡en8ƒ’”8²Ja1ÎtâÞ[Tw½ÂTʇFiTêä|C1,“ŒN2=V¡'Èü�Ñú ¶¥…|_=]L<^"£5¯ƒŽs¨Ë„ÖË·PíÊR›ŸE7šT÷¤¶óç$§ŽcËL®—r’P¨ÏQCÓ! ³Z&sàÎJÙ ]›†—MA¸ÈO復°,ü™�X Ò…ÁXƒµ1Ò)ë§z#¬uQ^¸l&‰wÅ+UÉÕëÄZ³wa”ˆòç]D~¸u7\‚¹õ¼m²)Ÿaš t6ø³>ÅÑ#4?tä5…í/COèì;EõÈ1¢#;)îz•æÑQJó9ÆK³´'uÎÅÐ=;OæÍ}”3’|O'ÙΞe ¥?p³/dj«D‚HÏ g x ‹u›!œç°Æ ¬Sù%>0†ÒB9>‹ßh€Ö´ì¡xù6šo"xà?’íbî­²‡§‘Û‡h ¥Q@ èa8]9·C‘ó|¼\€–‚¢­2ß?GS ®ÿÌ—˜.‘ÚopôoÿŽè§;™¨WY¨ÏrMœÐ=SÂî>Â|W+=×\EÏ»1J–]¢ðRï°¬˹€ŽÓ8^bÆZ5qªå:Ï“”0RÕOyóµÓ ¨fH˜Æû‡è¸tÛ~óStö®¥ÓXzò>ä,§Â %B;K}ažùf“†c“„\&K $ÀÚB¤a|Œ==]lùØG¹ü¿?€ºåÃt9ü–^öÅ(Æ=…}}³ï ŽÇÝf™ñÍb%, ,6ŽSá]¢ò­ïþwÿ:k>z/ÿæ¿|!ÖZƒÖš™Wö£KUšS(NPºé 2»…î‹Î'@"‹šÖ®Vˆ5J@VJªYŸùÀê„b³A½ZEH‰'<< VÒ‘k%Ú?Žž˜¡�4ônæúÿù¬ýµÏ£¤O˜ëá ¹D#Ž¡¾›™Ã#h£Ò¦¦jÎ`ÿ÷°|”úwmxøÇ/35_¤\«óèó?]ÎÒpœa­åÄè8ý£Ó¨FD%ŒÑÍä† H¾ô ÄÇo'l¤ÐåQèj#˜š¦×ËÓ´Ò•ï%SèaªR>p‚]Oí$TËV¹02ÍÈÃÏ£÷Ïpòà,�m@�tŽfÃðÖ~êÈd)· 0†¢Æø»½ø““Äñ²Û–©ÛU8Àj B­ <EÖ–4ÆbÍJ¿èLcô™]¬O"ÑTÝlúðí\óÀŸ2V› íØ)¼áu\˜>¯§«ìiF¿ñm.¹óvÄí—bß#|ù5‚Ñ#4¦ë<òŸþ¯µ@fã&Nž <~˜F2ϳ}‹Ϲ’üd¯Ù –)£<ßÖ^/²1Ã\®¿1ƒjDxo¦Q‹8U®³æÚ+ð¤IäÜâª$h]ÎnµË%­„ßÚqGÆNQ®Õ¹vûV\.ž>k åböMÓ™ËS³Œ©§çOQPŠÎjÌ ¿ñ:[[ꢶPâÀ›;iiJd¬Ù³ë0¹bfb„“¥Óä”G{¹FA‡Ø’¢1ž!ÓÚN>0d,´ëˆ}Çè¢D™0Á†Š¸‘ÐB ‘è§žeRu@ReMÑúî(q#b"Žè¿æ*²í]@´(© V „R.*4p÷âê ·…M:Z²‹ªÆ†ÃOüŒ-sšB[ “þ�’FŸâ؃ÿL}dœÙ—_â8%&ñ©Q£$Ú½ZM€1!óÅ1&L“6¤ÇT1x´‹,š€¤²@L*1>Š e$1 C`‘x1Òä)Å9rÏ)¥ºŠ¶šÜ‰9Äã¯2wè$-Ÿº“¶5ý+9pe�Hë¸"1h_#…`°§¥6 S÷g N8´ûÏ¿AÎïgFw1ZiGG%º£9ÊùçTˆHˆ±´0 @Î*’X1A‰ë$À’qÚ¸\t#Dެð mÄŒÕLàÓP>V ¶ùà©, rÌÄ‚ö0ƳCÎ(Cµ0éõSSó”õµ³³„û晾ðI2ÝëWÀ"ŒÀ$ Ò—®BcJ R:Õ a±ï{?esÛ�'gš,Ì¢HH ½(z©Ò G†6$m¸ÚB¢iЄĆœ"Äâ\tKš€ÏØ9ZmYiAhN2¤ ¡©‘Ö‘G“ÁGá#h!!4M˜|RO“²•ÈúÄÔ0³–Ùè�Áko2p[ßj�‡c±Æ …çù˺²Â…¼õÊ;lŸk¥¼PáD=¦,ódM†�H ƒ4 ‚:1M§CH¬KÓ‘$@‰˜" òÒCyJ;w¨±ø$ÔL“A dñPø´‘åkÀC!) ÀxLG‚yÓÆ 5:é¹ä¤¿Z d-VÇÎH B¤Á5á9M8²çÓ/€ T‚¦•GQ� ­,V¦b}ŠH¯%X@’M±O04¨RC`ˆ<˼Œ™‰J€¦N“!1‹A¢dÈã“Aá[E n²4 Ñ(ÀCà1a"!Ø´í<TG‡«¬¦Æ0Ê€M4Ö[á$Í®]8ü/Òu¼Æ‘241²b^j)ɽ¤î …ÂÑ”A#ñPDøtàS§„Å xx(²T´&ÒeʶE¤ev°ò©âKÀ(…Á µ{R"0^šÈ 4š-™,›{ò´Þ¼ ™õΈ—0Æ c&Á$ Æ“Hía„BÛ{PüáÛNkJ:¤ ´’'‹¤AˆFàË,¾/i„SøȪ<�±N˜¥NDLˆ€9Hˆ)ÐIß@I¥Ì©ÚGlèBríy7Óšoc±ÍˆÊÄ)¨ÆÔ14ˆ©éFjtB™šR‚Ac°@IV¹~ ‡îµ™óÖ,Dï@'!ÖfM"Ð" ¬Ñh#X{9ÐoË2Qš¡ŸB:Ÿ†"ÀK Z'Zd@KBšÔhR¤ dÉ‘§¯½›uÙóh_ßOïúÚ{º©Ë?6ÂéãG©T«\yõµ ®9!Íz¸‘ m$,–gŠTOÍ¡“*ÚZ$2ÕPhb4>FU¸®·ƒó[©^܉×ÓéܸX �£ ÄV%…Xl»ršpeÑu|ø®ëxt׃lbf|šy3K yb,mä ©’A‘A¡‰é´u÷ÐÞ×MÇ`^®@¦­¯E"„$RkºéoïEchíêÄ Èå³$q„M,Òóù,:È3瑜Æ!¤ô-‘i!Räi ²\ÒßÉB[ƒ¶í[S˜ø€PØØ·¤”[Œ1ž”ÆàIl”®IìA]µžõ“º£„ѹYjq„”œ]Úˆ !›ÐD¢\Oÿ¦ t® hí@{ë4j%Âùy¬&—Ëã‡•Ë ¤G¢-Õr•¤»¥1cJ"{Ú ^AÕêÄó ’($K‚¢-ã³¾»¿Õ#ÜØ‡ß×»ävY­(j±¯Ç:¾&#Øl�« N0@j0Ú‚°ÜÿÅ»øû¿}†[Ú®f¸PçéwöÒ˜X ˜„øZ³>2-¥‡Ä(­Ø´a‚ ¦Ö 2 ²Y"Ñ ®7‰*1Éé-¹4cÊQH©\&ÛVÀó=,£ 2çCœH(Í¿K“ xäé@Ñ…Z; ¬kËÐ×1-t]v%B©åz · �Àá¹ÒÜÞµ}ƒÃÂZeváI,!ZãÜ¢°|ö‹7ñÚƒïpQ¥È'nèeϱ<Ó§«T&›4›bV[¡•)"²ùÌV›töt“k)ШT Šˆb£AlD6Šå‰�/бv-aؤR\@y›÷ЉÆf2d׬㲋S±"<´ïç; Çö2ÜÚÆ†¶\“0ScnËÖöt/—Ç”ü� °b,ÒÉëZëÍÒ“Û]íß`= ‹KoZ»Å#Oqõ§/äå‡_æ²Ñy.Ëô3y~c½æg$ňz©B1<M“~×÷³öšK™;=I½Z&ÌÀšþ.¢É ¼¡^ÎùÈÕ¬¿d+#{÷0ùÚ^zn½’öÞNr­mdÛ ¼óð“Lìzóÿøsx6CSš™ÎÝÐË@ؤøwóÌOXäBŽsZ ôȈ(®rrMžs®ºÐ­"Û´*|VIs €ZO[ü=Í(ì÷ƒ`#žl±Ö­þXëÒe+,2q™`à{ÜpÏ5Œ=ú}G8- 3±Ð ¬ijòcØžA†ïºšÎÛn†z8JˆEL÷à�g^¤ÿÚ‹)|ôr�Öo¹Â[hÛ´–,ËQÚ•ðêÏ?϶ .Äs@)5ålííuZ6vÑœÊÐÚ­k ¦ –žÛ¯¥£¿EyŒ1ˆÕªÂã³Åz3lîTà)åoiò#RÉ‚µiPøX¦…RMø¬½çFF¾ý›_ßMc¨ŸÁõƒ¨K72¿%˺s·ÐÃ…´l;€v ÁÅy ·ËÇßÐOœ 3æ)̦µ4–W¸kž"¸m+qJbù¤Itðö|÷1J{ß¡°PaMè1d(TšLÉÚÐz†7­[^ÒU´pëï ¨èãS-ùì[ùL •~!ŸÿÖ.Ñp‹ÖJÉK5‚Là“ûø¥ý›çØrø]¥2³bЦêC™ Ž™£D£¯¢»ýÏ¡_KÉ4‰†Z ¿‹=F1›§2;]¨ÑRj¢ÛsˆœO)âbïø8¥LÕñê“'©g™;2B6З δÐ(švÁúýBøg¯ueþm €[þèû‘K/HºÚçzÛÛvVëa›RÞP&“Ù&BX–ÎŒ5ÎáX‹EÐÓÛÅ{w^ÊáGÊœ?v¹(O¡w br»ÿ8a[–‚´ä ÄÝýâ,JøÅ"qy¤¢3W ðrä3y„Ð4eÂf•f­L>n2.-q=„D“Íy¬`(hePX”†0žgRiÂíçÒÞÕ¹4ûB¹J—`q{ ÛYx¸ö“o|Åëj+ g$Ÿmk-|É÷ƒ>¬n}ÐmhF»õQuÂÛϿΖ§^çœr‘¦˜áM”;»hHZ£†i†,Æ"B<é!¥‡(äÉ· Ã8n’èˆD‡ã*ÕnmCà)ncŒ'@Iwè‘­ÇèJ‰i]åȶ.»ï‹xé:€bÉþušXki¹ëw¤«gg·xî5óëw܃(Û8j÷}ïa…g±n?ŽÖizgA ·b<0<À{:!95Ë@£A~n†¶jB.‹‚œ°dø¾Dá ¬0 cŒ ‰E+c;âE$QL%„ VHCÆhò&ÁoÆÄ• ů׵°þ‹§¥½}uá¥t{œ¬áëßyúkg˜ÀÙM#šÕ0AÙzÕê¶|>wBHc-¸m(2U'!H ZrÙí×ðN©;ßc \¡î5 žn â�{Ñ¢Ò4MQ®ÕñŠ ZbA” 0¾ ‘hhF¨$F '^&Gw.ƒõEºN¡Q¥&&X¶¿ƒö_¹î5ƒËÂK¬Áˆ´Î©Ý¦,£WI‡ÏncÓsz¨·«T7æMÙÿN!z½ v ¬•Ø4WnµWO.þä-ìµ³k?ýµAïZo¾¯» Æ'ÐÅ9NOŽÐ§‹ˆ®&" ±åfn ¡AårÄmm¨În4Õl¢r9·½'Öġȴõ ÇŠÔUHùÓ×±þÊKϘyÌ ,k5Z;³] ÀÙ°ø 0&„±Ö÷”*~åsw¿ùé«/üD&ðÇS^%X(WøáÎ÷¨7šÄÚà+Ik>ËÝW]Ho{Ž8Ôì{ðIÖì9įŽÞnäÝ¿wÞ‰CÕ ÌQ¥2q½Jrt7*@*….±Í›Ä$§NcêU0'xBàÕC ]mÔ1õ[·Óv×M._HKxÆRºÔÇ`t‚Žcú>÷q6�½ý^™ª±U¤$»sÚ÷¼'¾yßç»îܵ;|OÝY®‡ÙÿöÿÀc»'¹XðÓ¬qǵ—ðÕ{o§·­‹æð«»/ìâ‚dÎÙ@rÃõˆ«®Eœ³•Ë“hôüvbFÏÍbÊ5¨±•:ñü<ªVGVkäÃ9=Ź}Ø/ÜNǦÍ,îq„”é…«o³XèIˆNbL±æ_}õ}�üžüµ± ÿÀ]ØñxrÄ)…læ‡ß¼ï³OnèÈ}ö/yüƧߔ0+ž}b<%ùÚçïâ·>zø®H13½@åáÑ6W&“Í2dV`;ÚP›6!×­%îêÃÆ1—èrsr Ö‘¥"ŠˆKEâb¯Y#Sc.Ào~‚óÎåÔB™ÿõÌ«¾ÛP' žRcܱTäÅW\@g!‹I"ÖÿöŸ½€?¾¶(Ðb»÷Yxè h‹.d3Ï]У¶¿9^_«Ä_>óÙ?€§ŽKþý'™/ßóËÏw%õtçéé±ÓŸ~Ι¡§è/£Ÿ–üFˆÔÚÙ°ï£u‚©ÕÒ0Ö•í#a9`cþ9¬Òuî²-²žÏéùù½³¸Ã/N5’ôØK÷9ÞvÙV¶­ë%Ž5ùÔk÷¯$ÁØ_%*xð£xøªÖ o{k©x¿ð�—ôÁ#†X›”ŒxÛmƒdݹà o`îÄ¥cã웤19KkiŽ.!+uþin_J¤”Dù<¹–<wôöPhÉQàgžâ¹÷N¡Þ=²d~·^¾“›Ë#–íÚÏw9P€?‡³¼@b1Ÿzùèg~à;w¸ßïBj >KK�¦êðV© _•ð”btjžÿñøY××C.›!ц®¶n¾â"^xï •*^Æ#^ÓC6ùðö­<µs/óÞ¾3gÒStÿö¯rß'nå¯ý‘>öÞgệ%‰Ö+3Ü÷µÇï>óüÎïÃÓÇ@ëJ�" ò{G°Ÿ}±(ôJξ¶ØfpÿËž:8§$»GNòì[ûØ=r’•„ê{Šm׳÷ÈqŒµ)qºYìî»óŒ™¼óûðÜI¨…®¾ÜŒ|azÿ¾‹áÐLÍ—‘Bpç÷-ׯq÷B]Y¸ÿ’å1>tæ›KÃöqg–ÚƒÀîyø+²Àg ÿû¯äì㇛“’þŽVž}k_Z ?›P5»;è¹æ®ïÃN*"m1B1“WÀÓÇ4‘Öi0#hË,ß?¿~í<ßýì4�OƒŸtn0Ö_,ðÐ!øw/ £­•¸¤Ô�ó+˜þ-ŸýÞa<þ�LÕá÷_Ä~÷HÓkŶ¡>ŒO¹Y<ËL¿>õ$<>"[JÛukà¹1Bàû>RvüÀòøÝ‘Nk|å15[dçÞwÙÚµüÍö�n‚§aÒösã…›iËØD³óè?Ý?ºôl-m­Éûê•Ę"m8‹f€?ZbËŽ?x¿ý,=Ø€/¿F€ÕWnšÉʸÏX„¹—ôg>¿ØVrmh N~¾÷€óãBðÄÈŠm-€¶†¿}òy~úî!¸š œ¨@-†¼;6[¾ùÎ4ƒsï —¢¦Ölê—öª•ý�^¤Í+‰±ÿyñúj¡ð ðp×Ó£*?t9Äâ†Á‡š†Úî‘ÉßY±›™<x¢ŸF£Î›§bž ]EfÅwº²Îeýä·Ñ.ðbñM­²çÈ1¶v:³«ÂŸþ ŽWà7.„ÖÂdÝòΑQn½h£mõå|©\÷[ûɸœ(JŒm®èþüI{ÀñRÄæUïFŽL¬Ë&÷�_ß|â3Ú‚¹/^×_ÍóèÁ™48ÑxJqþ9ƒ8>¾ô©û/Y¶Ó³Û¢ $IL±XâCЃ½3ð³S0^ufpy?ܺÞò«#<üJ×̽W÷7»OLÂ2�‹MJ)´ÖR·:²�½ÉŸTc6«Uâ"÷³8s±å"àmLè‹åû…G4ÐÆòKŸÇeç ÓÕÖÊl¹ÎÑã«|øƒÛäÜ óÓ¬pÑÏNÁB(XÛÛÁœ‰)V¹¬†; ?ÜuhbmkæÅÑÙÒ-ñ KJM B+¿}ƶIß÷û3ŠoE†_Õö¬À"ZàþÍpÇF÷ð ð¾‘§ˆ‹6 ÚßûØ|þæ‘Y„<ýÖLþz7<°¾öº;^9è8Ñ:q Ÿ­î#fkËf¹ãÒsM6×böκëy8>S¼è?<öêïÖ£„•Ý¢ !K‹ÀY µþ|løÄjaî-üÍëáéQH,w[Ž-ìx¿î_¯lï¼}ô¤ýëÇb…Rbç¡ãÄvy�‚?z5u]É™®+#ÁWŠ$Ih œÖYëH0ë Æ&'âRiNŽûÈŽ lï…@¡Ú~ xzµ¡KW]�!DvUá£Õï_?;>„.Ì“£H®w÷o\?8jymÿ¨|ãÀèRÐ#€ÏÂãu\'š›¶Ÿ ÀOß=üþA èða°ÅÍôö~ØÔU'çÕ3Í‚óyî=žE<r˜˜tBÛ™Àû8@ž}!‚©þé�D SÿE ¾sµû}äÒ¦îx ¿Êtÿ–?u×+ðÌqW xbÄ]s³,¹lãZ›hËK{/ÍNh\@“ó=<C­àKøøf÷ß9‘PC9r×Aì¾¶œ¿’ÂÎ2ÕÐZ«Õbê:�ôŠ+Èxyÿú7#øÎe.azìˆ äžEÝÀƒ‹ìžb~Ýxöf¨»3Ÿ]8c&ŒÖF !|±¬žéÒkiu8'“UP‰áûGIÞžÆ+6Ðõ[lâ]6�ß¾ ¾t1¼8¶4–÷Õ<›Íf"„X* ­gf„éì¿:áîY8[¶íxÍÙùJs¸¼o©ÓƒÚ²ýŸ`«âCî~hàÍIÐÆÊFŸ�¶Üõ´+ÇÚ°P­U%n3èò¤£G§æF6 qÁ®iØ5ò¢iI,ìêÀMûð¾}ÛcÁâòÚÀ¦G��7IDAT‰+à¥1ª¸õŸ_о¢À|lûõë°_½û+›–öDÀ#@¤ÀܳûW¿„ÝÿEì7nÄ^Üˉô¹ÿ |ÓópÅq„ž”O±¸õ�Œ€øÂ¡þ¿ênÿ`ïv}ß1ìúV‚g¶t|áBÌùhá¾õ(°X|oµ÷p1ÿ}¿·Rà³=ýßÀå§¼‹6óðuà«Àg„û'±±ƒÊ‘"m,'< |èZñ¾ŸW€çq˜{ÒëçÿêQüÉ´VômüI ¹XJ>%$¾ ü>.!êÏÏ~xx笾ÆE»«Ð|X̹V{qñ™ë©à‹½|v¿ õ¦ ep™èôŠk­«ô-Ò~£UúøEïý±¬º2ô/l+ÁúuöcûßWÁ×,ºN<£����IEND®B`‚����������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/mixer.xpm������������������������������������������������������0000644�0001750�0001750�00000023247�12214432632�016145� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 229 2", " c #38E338E338E3", ". c #FFFFFFFFFFFF", "X c #41034D345144", "o c #861786178E38", "O c #965896589658", "+ c #B6DA8E388E38", "@ c #D75C92489658", "# c #DF7DA699A699", "$ c #E79DCB2BCF3C", "% c #C71BCB2BD75C", "& c #BEFBBEFBD75C", "* c #B6DAB6DABEFB", "= c #BEFBC30BCF3C", "- c #C71BC71BC71B", "; c #AEBAB2CABEFB", ": c #BEFBC71BD75C", "> c #CF3CD75CDF7D", ", c #96589A69A699", "< c #514455555144", "1 c #186118611861", "2 c #08200C300820", "3 c #208124922081", "4 c #2081249228A2", "5 c #9E79A699B6DA", "6 c #AEBAB2CAC71B", "7 c #79E7820779E7", "8 c #1861249228A2", "9 c #861786178617", "0 c #9E799A699E79", "q c #A699AAAAAEBA", "w c #8E388E389658", "e c #8E389A69A699", "r c #96589658A699", "t c #AEBAAEBAB6DA", "y c #B6DAD34CCF3C", "u c #8E38C30BC71B", "i c #79E792489658", "p c #28A22CB228A2", "a c #5965659569A6", "s c #69A675D679E7", "d c #8E3886178617", "f c #AEBA8E388617", "g c #DF7D5D755144", "h c #E79D55554924", "j c #BEFB55555144", "k c #861779E78E38", "l c #96589A69B6DA", "z c #A699AAAAB6DA", "x c #B6DABAEAC71B", "c c #AEBABAEAD75C", "v c #69A671C669A6", "b c #28A230C228A2", "n c #28A234D330C2", "m c #618565956185", "M c #618561855965", "N c #208120811861", "B c #9E79A289AEBA", "V c #9E79A289A699", "C c #8E38DF7DDF7D", "Z c #5965B6DAB6DA", "A c #492459656185", "S c #41034D344924", "D c #E79D861779E7", "F c #EFBE51444103", "G c #D75C38E328A2", "H c #86171C711861", "J c #410330C230C2", "K c #38E34D344924", "L c #96589A699E79", "P c #9E799E79AEBA", "I c #B6DAA699AEBA", "U c #D75CBAEABEFB", "Y c #8E3892489E79", "T c #596569A65965", "R c #104010401040", "E c #30C234D330C2", "W c #38E33CF34103", "Q c #79E786178E38", "! c #8617A2899E79", "~ c #30C251444924", "^ c #618559655144", "/ c #082008200820", "( c #28A22CB230C2", ") c #8617820779E7", "_ c #CF3CA6998E38", "` c #B6DA4D344103", "' c #71C61C711861", "] c #38E318611861", "[ c #514455555965", "{ c #61856DB68617", "} c #596569A671C6", "| c #8E3892489658", " . c #9E7992488E38", ".. c #D75C65955965", "X. c #E79D69A65965", "o. c #E79D75D669A6", "O. c #A699AAAAC71B", "+. c #79E782078617", "@. c #28A228A228A2", "#. c #18611C711861", "$. c #28A218611861", "%. c #208120812081", "&. c #596561855965", "*. c #18611C712081", "=. c #86177DF771C6", "-. c #20810C301040", ";. c #104014511040", ":. c #30C234D338E3", ">. c #51445D755965", ",. c #71C66DB671C6", "<. c #C71B8A288617", "1. c #DF7D451438E3", "2. c #8E382CB228A2", "3. c #410341034924", "4. c #51445D756185", "5. c #69A66DB671C6", "6. c #A699A289A699", "7. c #D75CC71BD75C", "8. c #A699B2CAB6DA", "9. c #71C671C669A6", "0. c #71C679E779E7", "q. c #8E388E388E38", "w. c #79E78A289658", "e. c #86178A289658", "r. c #9E79A2899E79", "t. c #492459655144", "y. c #596565956185", "u. c #71C67DF78E38", "i. c #86178E38A699", "p. c #8E389A69B6DA", "a. c #79E775D669A6", "s. c #104018611861", "d. c #CF3C51444103", "f. c #A69928A22081", "g. c #618569A669A6", "h. c #A6999A699658", "j. c #D75C6DB66185", "k. c #DF7D92488617", "l. c #71C6820779E7", "z. c #9E79A699BEFB", "x. c #86178A288E38", "c. c #08200C301040", "v. c #86178A288617", "b. c #8E38820779E7", "n. c #514438E330C2", "m. c #28A210401040", "M. c #69A675D671C6", "N. c #71C675D671C6", "B. c #BEFB92488617", "V. c #B6DA45144103", "C. c #69A65D7569A6", "Z. c #9E799E79A699", "A. c #9658A699A699", "S. c #4103410338E3", "D. c #410345144103", "F. c #96589A69AEBA", "G. c #618569A66185", "H. c #4103492438E3", "J. c #410355554924", "K. c #492455555965", "L. c #69A669A66185", "P. c #49244D344924", "I. c #965892488E38", "U. c #71C66DB66185", "Y. c #514424921861", "T. c #79E77DF779E7", "R. c #96588E388617", "E. c #A69996588E38", "W. c #E79D4D344103", "Q. c #8E389248AEBA", "!. c #596559655144", "~. c #59655D755965", "^. c #410338E338E3", "/. c #30C23CF34103", "(. c #38E345144924", "). c #492449244103", "_. c #410349244924", "`. c #8E389248A699", "'. c #861792489E79", "]. c #965820811861", "[. c #A6999E79A699", "{. c #492451444924", "}. c #69A66DB669A6", "|. c #69A675D68617", " X c #71C675D68617", ".X c #514455554924", "XX c #6185659569A6", "oX c #79E77DF78617", "OX c #79E78A28A699", "+X c #79E786179E79", "@X c #79E786179658", "#X c #71C682079658", "$X c #8E388A288617", "%X c #51444D344103", "&X c #71C67DF79658", "*X c #69A67DF79658", "=X c #79E78E389E79", "-X c #86178E389E79", ";X c #71C679E78617", ":X c #8E388E38A699", ">X c #38E33CF338E3", ",X c #38E338E330C2", "<X c #5144451438E3", "1X c #96589658AEBA", "2X c #69A671C671C6", "3X c #410355555965", "4X c #514461855965", "5X c #79E779E771C6", "6X c #38E345144103", "7X c #514459655144", "8X c #514461856185", "9X c #38E3451438E3", "0X c #492455555144", "qX c #38E3410338E3", "wX c #30C23CF330C2", "eX c #28A238E338E3", "rX c #41034D344103", "tX c #38E334D330C2", "yX c #71C679E771C6", "uX c #618571C669A6", "iX c #8E3892488E38", "pX c #30C22CB228A2", "aX c #30C238E338E3", "sX c #492461855965", "dX c #492459655965", "fX c #410355555144", "gX c #49245D755965", "hX c #410351445144", "jX c #492461856185", " . ", " X o O O + @ # $ % & * = - ; ; & : > : , < 1 2 3 4 4 3 4 X 5 6 7 8 3 9 0 q , w e r t y u i p . ", " a s d f g h h j k l 5 ; * z x c % % % z v b 4 p 3 3 4 n m ; 6 M 1 N w x * B V 6 6 : C Z A p . ", " 4 8 S f D F G H J K X m L 0 P I U $ > % ; 0 q t r e P z = x Y T N R 4 E p 4 4 W Q 6 ! ~ p ^ . ", " / / ( ) _ ` ' ] [ { A } | .f ..X.o.@ O.6 : % - t x c : % ; +.m @.#.$.#.#.%.%.E s 5 &.1 4 , . ", " *.( A | =.J -.;.:.A X X >.,.<.X.h 1.2.3.4.5.w 6.6.O.x % 7.% 8.O 9.0.q.0.0.w.e.B 8.r.t.;.#.y.. ", " u.i.p.e.a.@.2 2 2 ;.s.;.;.E f D d.f.] X A K g.O 0 h.j.k.@ U & c x % - 6.8.; x = z l.t.1 2 #.. ", ":.5 z.z.x.a.E ;.R ;.;.c.;.1 :.v.b.n.m.$.5.o { M.N.d B.o.h h V.C.u.w Z.V V z z x x = A.l.S.:.D.. ", " F.l z 6 I G.H.< < J.K.A { i.O L.#./ 2 #.4 %.%.3 P.+ D h G ' W W y.o I.O + @ # $ & z B * * . ", " r Q +.0 - * t = z , 5 O.O.l q.U.3 2 / / / / / / :.=. .` Y.] 4.u.5.M.T.R.E...W.h j.O Q.5 8.q . ", " +.!.~.9.=.=.9 L L A.z z O.6 z R.^.3 p 4 *.3 4 /.5.Y a.4 / 2 8 /.:.:. < R.o.W.1.f.J /.(.y.+.. ", " 5.D.).).).b p _.e.P P F.`.P x - q O q O Q '.Q.l l 9 N.p 2 / / 2 2 2 2 *.U.+ d.].] _.a _.y.T.. ", " u.e.[.q.y.{.D.y., V A.O a.N.d h.q q x B B 8.6 6 O.O b.E 1 #.#.1 ;.1 1 n }.=.n.$.R /.a [ [ t.. ", " |. Xo e.Q w w | , , , N.D..X^ M S.P.5.Y B z 5 P * x x =.m 0.9.[ a XX{ e.oXa.@.2 2 c.1 1 1 ;.. ", " OX+X@X#Xu.u.+.oXo x.w Q oXq.N..X@.@._.L Z.6.r =.$Xh.U * * - t 0 z z O.z 9 a.E 2 2 / / / / / . ", " } |.OXOXOX@X@XQ oX0.|.0.x.q q Y $X+.o F.Z.P oX%X< L.a.M N.Y O B q B 5 8.t h.< @.E E 4 4 ( n . ", " :.(.&XOX*X*XOX=X=X-Xw.@Xo +.T.9 o x.e.Y , F.;X< .X).^.@.p W 9 Z.V V I.$XV - t h.* 6.v.| Y `.. ", " 4.g.#X#X|.w.OX-X=Xi.OXe.:X`.i.-XQ o +.oX+.Q w.r * 6.0.G.y.}.r Z.Z.O M ^ U.b.R.v.V L L 6.B V . ", " @XOX*X|.|.+X@Xw.=X=X|./.[ -X'.-X@X'.`.i.e.x.Q o w Y | L O L F.0 , T.>XE ,XH.<X@.E G.O L Y Y . ", " `.Q.@Xw.'.+X#X@X+X@Xs >XD.@Xw.#Xw.-X'.'.Q.1XF.1X`.e.o o x.o +.w | x.;Xv.,.).E p E 2Xr L | 9 . ", " '.@Xu.i.`.Y e e Q.s P.|.u.w.@Xu.w.=X=X-XQ.+X5. X`.1X`.e.-X-Xo Q T.oXo 0 q O $Xw q.Y '.L x.{.. ", " w.u.u.i.-XQ +.o q.P.3X, A.=Xu.e.-Xw.w.=Xi.s :.W #X`.e.e.`.Q.`.e '.e.-X9 T.k o o o e.| | Q 4X. ", " @X|.-X@Xv.5Xv 9.v _. XF.Q.u.-X6.0 | 9 Q +.5.y.5.-X+Xu.+X-XOX-X'.-Xe.| Q.:X-Xo Q Q |.s M.+.Q . ", " @X#XY e. .R.d b.m p s F.=X;X| Y O d T.=.T.~.oX'.i.u.u.=X=X=X=X=X+X[ ).;XQ.:Xw.w.:X-Xw.Q Q oX. ", " y. XZ.T.N.T.$XI.L.4 P.-Xu.e.Y O 0 E. .R.a. g.z F.-XP Y o Q w.'.i {.>Xs :XQ Q -X-X-X-X=X-XY . ", " 1 p ~.9.}.N.N.P.4 ;.8 6X{.2XT.7 7 b.I.h.=.@.D.Y e.L z V q.+.T.+.m v w.e.o ;X@Xw.o w.w.@Xs m . ", " c.1 D.7X~.m m p 2 1 *.s.;.p < 9.9.N.5X!.E #.#.H.{.2Xx.0 d 5Xa.5X!.N.B L +.o e.Q Q Q o w.8X:.. ", " R :.t.9X{.< 7XE 2 c.c.c.c.( 4.!.!.&.G.E ;.#.R R R @.M .h.h.E.d ^.S L Y q.q V L e.x.e.s y.g.. ", " 1 S } 0X qX9Xn R 2 2 R / 8 [ %X{.{.!. 1 @.s.R R E v a.5X) R.b.<XE N.T.| A.L | L L O D.~.| . ", " 6X2Xe.0.b @.wX@.1 R R R 1 eXg.< 9XqXH.wXs.%.s.R 4 {.M &.m }..XE n.1 #.3 S }.v.| L L XX XL . ", " 0.0.#X2Xb 7X) N.< 9XD.rX[ M.'.Q D.@.,Xb 1 R ;.R %.S {..X< 4XqX$.tX1 / 2 #..X9.9.7 v.P.>.Y | . ", " N.0.0.S E N.v.v.0.9 v.9 +.+.o oX9X&.I.T.&.rXS S >.&.{.H.H.).qX;.N 1 / 2 p }.9.L.L.G.P.2X| o . ", " N.yX7Xb t.5X7 N.N.v.7 T.T.Q q.7X 0.O O $Xw I.x.q.9 g.>X@.tXtXR 2 2 / 1 ~.h. .b.) U. G.L x.. ", " }.g.wX6XM.N.}.&.N.0.T.) 7 l.uXn K.+.q.9 T.iXx.9 v.iXO ~.b {.rX@.1 #.1 pXM a.) d .d tX7Xt x.. ", " M.3Xp 8X2X}.m G.N.N.N.N.N.yXrXaX0.+.N.G.N.9 v.$Xv.x.0.>X.X0 0 9 M }.G.M !.7X!.M !.D.b b }.7X. ", " m p 6X2X0.g.4Xm }.v N.N.oXm n &.l.T.2XuX7 7 7 7 +.v.4. N.0 O v.x.O | 5XH.9XrX{.E #.pX;.#.1 . ", " D.p g.M.}.sX8XG.v N.N.N.5.E M.+.0.g.M.N.N.T.7 v.T.E < +.9 ) yXI.I.iXG.wXwX9X9Xb R ;.2 2 / . ", " n aX8Xa m 4XM.5.v }.}.N.[ n y.0.M.a a 5XN.5XT.T.N.{.E M.$X) v 7 ) 9 $XL.S.b b b b 2 / 2 2 2 . ", " p 6XdX3XX t.8X8Xg.v M.g.n 6XM.s 2X8X}.N.yXyXN.T.L.n [ 9 7 yXG.7 7 v.$X$X5XH.N n @.1 2 2 2 #.. ", " @.K dXfXfXt.gXdXt.t.8XrXp 8X+.;Xa g.}.v N.0.l.T.6Xn }.T.0.g.yXT.5XN.5X9 ) {.rXv.N.< ,XtXE rX. ", " K dX3XfXfX3XdXdXgXgXhXaXaX>.8X8XsX2XN.0.0.5X0.m p 0X9 ) }.y.9.N.N.5X) $XM E L.q.O q.) I.9 N.. ", " fXhXhXfXhXfX3X3XdXa (.%.p gXjXdXsX8X8X8Xg.M.0.>X N.0.N.m v N.N.T.N.5X9.wXS.) b.) v 9 $Xv.}.. ", " fXhXK fXfXJ.fXhX3XA 0Xn 6X4.gXt.sXjXjXjXjX8X3Xp S 2X0.2X}.T.N.N.N.N.T.&.E L.5XN.L.v 9 9 $XN.. ", " (.K K 3XfXt.J.fX3X3Xt.t.gXgXt.t.gXsX4.jXjXgXeXb t.8X8XsXy.}.2XyXT.7 N.E 6XN.0.yXy.}.N.5XT.7 . ", " p /.( aX(.fXJ.3X3X3Xt.t.sXfXfXgXgXgXgXgX8X>.E @.J.8XgXt.8X8X8X8Xa v < n g.9 0.G.G.9.N.T.=.v.. ", " eX( %.1 1 %.S gXK fXfXdXsXfXt.gX4XgX4XgXgXsX0XJ.4X8Xt.sXjX4X8XjX8X>.9X6Xy.uXM.a 5XT.5X5XN.T.. ", " (.K (.eX( p S.E %.*.8 eXK K fXdXgXgXgXgXsXjXjXjXjXgXt.sXgX4XgXjX8X_.pX9X&.&.4X4XL.uX9.N.) 7 . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/staroffice2.xpm������������������������������������������������0000644�0001750�0001750�00000022170�12214432632�017222� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 204 2", " c None", ". c #000000000000", "X c #000004100000", "o c #28A218611040", "O c #28A21C711040", "+ c #18610C300820", "@ c #082004100000", "# c #208114511040", "$ c #492430C22081", "% c #965875D64924", "& c #514434D32081", "* c #B6DA86175144", "= c #71C6555530C2", "- c #104008200820", "; c #30C224921861", ": c #38E324921861", "> c #514438E328A2", ", c #49242CB21861", "< c #9E7975D64924", "1 c #D75CA6996185", "2 c #30C220811861", "3 c #6185492430C2", "4 c #71C6596538E3", "5 c #596538E32081", "6 c #AEBA86175144", "7 c #AEBA7DF74924", "8 c #59653CF328A2", "9 c #41032CB21861", "0 c #5965410328A2", "q c #410324921861", "w c #79E75D7538E3", "e c #30C218611040", "r c #28A214511040", "t c #082008200000", "y c #38E328A21861", "u c #8617618538E3", "i c #A69982075144", "p c #69A6555530C2", "a c #CF3CA28969A6", "s c #9E7979E74924", "d c #492428A21861", "f c #BEFB92485965", "g c #DF7DAEBA71C6", "h c #38E320811040", "j c #DF7DB2CA71C6", "k c #69A64D3428A2", "l c #D75CAAAA69A6", "z c #EFBEC30B79E7", "x c #186114510820", "c c #30C21C711040", "v c #861765954103", "b c #410328A21861", "n c #6185451428A2", "m c #EFBEC71B8617", "M c #A69979E74924", "N c #BEFB96586185", "B c #CF3C9E796185", "V c #8E386DB64924", "C c #9E7971C64924", "Z c #965871C64103", "A c #B6DA8A285144", "S c #EFBEBEFB79E7", "D c #8E38659538E3", "F c #30C220811040", "G c #71C6555538E3", "H c #79E75D754103", "J c #EFBEC30B8617", "K c #EFBEBAEA71C6", "L c #DF7DAAAA69A6", "P c #965869A64103", "I c #5965451430C2", "U c #492434D32081", "Y c #D75CA69969A6", "T c #A69986175965", "R c #E79DAAAA6185", "E c #D75CA2896185", "W c #49242CB22081", "Q c #8E3865954103", "! c #EFBEB6DA69A6", "~ c #59653CF32081", "^ c #20810C300820", "/ c #96586DB64103", "( c #EFBEB6DA71C6", ") c #69A6492428A2", "_ c #492438E338E3", "` c #CF3C9A695965", "' c #69A6492430C2", "] c #492438E330C2", "[ c #69A65D7571C6", "{ c #E79DB6DA71C6", "} c #410330C21861", "| c #71C64D342081", " . c #9658618530C2", ".. c #61854D3430C2", "X. c #9E7979E75144", "o. c #51443CF328A2", "O. c #492434D330C2", "+. c #E79DBAEA71C6", "@. c #86175D7538E3", "#. c #A69969A630C2", "$. c #C71B9A696185", "%. c #71C6618571C6", "&. c #69A64D3430C2", "*. c #DF7DA6996185", "=. c #96586DB64924", "-. c #51443CF338E3", ";. c #C71B9A695965", ":. c #E79DB2CA69A6", ">. c #DF7DAAAA6185", ",. c #8E38618530C2", "<. c #49243CF328A2", "1. c #51443CF34103", "2. c #69A655555144", "3. c #5965451428A2", "4. c #596549244924", "5. c #49243CF34103", "6. c #79E7555530C2", "7. c #79E7596530C2", "8. c #E79DC30B8617", "9. c #D75CAAAA71C6", "0. c #492438E32081", "q. c #514445144103", "w. c #D75C9A695965", "e. c #71C64D3430C2", "r. c #CF3CAAAA71C6", "t. c #EFBECB2B8617", "y. c #B6DA96586185", "u. c #69A65D756185", "i. c #EFBEBEFB71C6", "p. c #69A6555538E3", "a. c #DF7DB6DA79E7", "s. c #D75CB2CA79E7", "d. c #9E7982075144", "f. c #DF7DBAEA8617", "g. c #861769A64924", "h. c #69A659654103", "j. c #D75CB2CA71C6", "k. c #492434D328A2", "l. c #AEBA82075144", "z. c #861759654103", "x. c #E79DC30B8E38", "c. c #71C65D754103", "v. c #AEBA92486185", "b. c #8E3875D65144", "n. c #79E761854103", "m. c #79E76DB671C6", "M. c #492438E328A2", "N. c #C71B9E796185", "B. c #8E3871C64924", "V. c #EFBECB2B8E38", "C. c #B6DA8E386185", "Z. c #38E328A22081", "A. c #71C665956185", "S. c #B6DA8A285965", "D. c #AEBA86175965", "F. c #EFBECF3C9658", "G. c #A6998A285965", "H. c #C71BA69971C6", "J. c #5965492430C2", "K. c #8617555538E3", "L. c #CF3CAEBA79E7", "P. c #965879E75965", "I. c #9E7986176185", "U. c #C71B618538E3", "Y. c #C71B9E799658", "T. c #9658820771C6", "R. c #9E796DB64103", "E. c #A6998A286185", "W. c #69A6514438E3", "Q. c #5144410330C2", "!. c #410330C22081", "~. c #A699492428A2", "^. c #BEFB965869A6", "/. c #E79DBAEA79E7", "(. c #5144410328A2", "). c #69A655554103", "_. c #96587DF771C6", "`. c #618555556185", "'. c #410338E338E3", "]. c #AEBA924869A6", "[. c #8E383CF32081", "{. c #C71B6DB65965", "}. c #A6999A699E79", "|. c #AEBA8E385965", " X c #514445144924", ".X c #28A220811861", "XX c #86176DB65144", "oX c #BEFB9E7971C6", "OX c #6185492438E3", "+X c #61854D3438E3", "@X c #A69961854103", "#X c #C71B555528A2", "$X c #79E779E78617", "%X c #69A6618569A6", "&X c #8E386DB65144", "*X c #492441034103", "=X c #28A21C711861", "-X c #186110400820", ";X c #618551445965", ":X c #38E32CB228A2", ">X c #79E769A64924", ",X c #69A6514430C2", "<X c #38E330C22081", "1X c #28A224921040", " . X o O + @ . . . . . . . ", " . . # $ % & * = - . . . . . . . ", " . . ; : > , < 1 * 2 . . . . . . . . ", " . . ; 3 4 5 6 7 7 8 - . . . . . . ", " . . 9 = 0 q w e r $ = t . . . . . . ", " . . y u $ 5 $ i p i a e - . . . . . . ", " . . @ : s q d & f g p O e : . . . . . . ", " . . @ h w h 5 , j = # e k 0 - . . . . . . ", " . . O e s : & : * 0 , l z p 9 . . . . . . ", " . . x c v b n n m a M l 9 r 2 + . . . . . . ", " . . O : v , , , N B 6 : o 2 n $ . . . . . . ", " . . y $ V $ 8 k m 1 C , Z l z A - . . . . . . ", " . . y > 8 $ & 8 N A * k j z S D F X . . . . . ", " . . ; G H 5 8 & J K L A P a 3 e & . . . . . . . ", " . . @ d I , U , Y B * < 5 b b & & o . . . . . . ", " . . . 8 T n 8 d J K R E E 0 8 0 8 y . . . . . . ", " . . . # W , d Q J S K ! 1 q & 8 ~ n . . . . . . . . ", " . . . . ^ h : / ( ! ! E 8 5 n ) n k @ . . . . . . . . ", " . . . . t c _ U g S ( ` , n 3 3 ' ' 2 + $ 2 . . . . . . ", " . . . # / ] [ < K K K { f P n 8 } ; | .& ... . . . . . . ", " . . X.h o.O.W { ( ! ! ( +.{ M b 9 @.#.y | b . . . . . . . . . . ", ". . 2 $.> _ %.&.z K ! *.R R ` k b = =.} : | - o + @ . . . . . . . . . . . ", ". O , f b O.-.;.:.>.( ( ! R ,.$ & Q b c @.8 } &.p w &.<.y x X . . . . . . . . . ", ". ..U c 1.2.< K D +.K ( >.D & , w 8 e = v ; U &.3.0 0 > y : X.0 O @ . . . . . . . . ", "t & l ; 4.5.6 :.6.+.1 * 7.0 & 3.> : k 3 $ 9 > 3.3.3.> o.O 4 8.9.2 y 0.O . . . . . . . . ", ". G i : q.U $.! >.w.` e.8 0 e.U e 3 & } $ v n 0 o.o.8 U y r.t.y.o o v o.; + . . . . . . . ", ". &.& h u._ u i.! :./ e.' = p.O & 3 $ 5 Z a.y.0 & 9 o.&.o.s.m d.o : f.g.o I h.- . . . . . . ", "@ 8 j.& k._ 7.* +.L l.e.e.=.: 9 z.& 0 / +.g x.v 9 G x.a.4 X.c.p o v.a.$ O b.y.; y . . . . . . ", ". n.u 0 2.m.-.M.N.! M ' 6.9 y v n 5 6.j i.{ 8.f.$.9.t.8.B.V.V r...C.3 o o.v.Z.y y.v X . . . . . ", ". 0 e e W o.m.A.;.i.S.$ 8 c &.e.) ) D.t.z L m F.t.m t.t.D.V.D.V.G.V.X.d.X.x.v h D.H.... . . . . ", "t &.$.< e : J.2.A.d.v O ; & &.= 6.K.N.t.m S z t.F.m t.t.r.x.f.H.a.L.x.P.v.g...c.I.G V # . . . . ", "e 9 & p 8 # 6.U.Y.T.} o , w z.C R.9.g t.m z z t.V.a.m V.a E.T c.n.o.W.Q.-.M.o.!.!.y c 2 . . . . ", "x - ; 4 u : g ~.~.W.2 0 ^.a./.g /.+.g a.A z m z G.o.B.(.O O <.!.o.Q.).).] M.; $ $ g.o.h.X . . . ", ". . . @ n.9 p p } y 8 _.).a.S S z z 7 k a.z C.0 `.'.<.y 3.$ 3.U M.o.k.).o.E.4 ].(.k.r # X . . . ", ". . . . . . . . - } [.{.}.h...|.z z S /.z n. X5._ .XXXy $ b y ..$ oXOXE.+X$ O o o x + X . . . . ", ". . . . . . . . . } @X#Xz.u.$XO ^.&.a.p 0 O.%XO.X.y - x J.E.J.&Xy y y ; O - t . . . . . . . . . ", ". . . . . . . . . t 9.s 9 q.4.*X.X'.; *X%XZ.=Xx O @ . . x -X-X# + t X . . . . . . . . . . . . . ", ". . . . . . . . . . } : # ; Q.%XZ.;X'.:X:XOXD.n.>X. . . . . . . . . . . . . . . . . . . . . . . ", " . . . . . . . - ..4 <.2 O y y O 2 o.F y p 3 . . . . . . . . . . . . . . . . . . . . . . . . ", " . . . . . . x 3 3 j.o ,X9.p 4 i v.B.n.x . . . . . . . . . . . . . . . . . . . . . . . . ", " . . . . - o.y.o (.U p 3 (.x - @ X . . . . . . . . . . . . . . . . . . . . . . ", " . . . . $ <.<Xx x @ . . . . . . . . . . . . . . . . . . . . . . . . ", " . . . . o 1X. . . . . . . . . . . . . . . . . . . . . . . . ", " . . . . . . . . . . . . . . . . . . . . . . ", " . . . . . . . . . . . . . . . . . . . . ", " . . . . . . . . . . . . . . . . . . ", " . . . . . . . . . . . . . . . ", " . . . . . . . . . . "}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/TerminalGNUstep.tiff�������������������������������������������0000644�0001750�0001750�00000012576�12214432632�020171� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�F��€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7™€§@ |ŸOŸ7¼ ý�Áßó‰ œÔA4ì ¬k�ÀutØA7øÌZBTiØ�oÔV›M„ ^_K€Î`AW÷æúÄ.À˰43 Ð@¬£ð —á_ƒftÂËÐ1)’ºðU§Y‰5A[8òþÔÀÝ FÏU�)ÔÕ'w O·´›kÿÂñ©pŽW"ýè?çoüH4ýß½;Od—ušð#3O­‹T$©ýLí 4�ù|ù7€�è€)¾>þߺ¨"Úߨ.C~â¸èƒ·-x�¶ÁË"vØ8ÀÑ fô4k Pè‚ò¤!DDBd¬ S¬~(çêŽ�€Pý(ËÈ�è€ ‚ Gùü¤¹°Zxýíä_Fçë÷ Íã$71¼˜¨!¿@� ‚`(�rÒÌ>‰ô”ã�'±î{Ÿë42ÎÁ}9–è´Eñ$OIS?šh©e!Rd€™ì|�Ùõ*ŸGÊ&Q¯$üFî<Ý2)n#…+G®X2gÚ–üKQt´s»\�2ó$hú�ÒÐ áJè&��²)€�4 �À‚¤ªNƒ �ÅÒ¥H²”‹Î NÊ4ô‰ƒ–ÈFSÅ9²Ü�"½dq€�éÀë9q¼´¶Ô»ò³W¨ß,�±˜&@  25ÒÒ|â1¼­&Jî#s©Ð}r Ñ™ B6// €F570­Û\ÝŸK8�ü.t¨;çvÚè8)—ƒedhy¨(zž«ÙG v`”mLÞÞÒK×Ý=b§Ëñ¤ÓÆÁà3}~�zL£'´½ï{W5ð¤±ñ™?†à�2 éÊÏfÇìJʳ; y1»’æô7,™j"¯dÿe„¼(Bz¯!F˜`|aœñ»¬ýö³K¿*¬¼§KR¼¼�ºed×`ºu€a­Ãu…ÕÚíäú7›¶‚à¤fF � ؈*áºãÊNäÄ€*ò~ Âðº,–ži]¿"  (Nú†W „'Áô½d)„�æQÒ�Z/Õüú_ð{¥Kó`¼úë\î¹§u—»ó†ëÓ+‰°·Px—yóW+ ˆ`ô @�Ìß»ö<N×ñfH‰ §öp=G¸bƒA„ZÁÑXôY‚Š HW�bTd�n/G0�ä}£F}‰ãmuÝbºÈYɈs(5²ÄŠ•œÈS©aª06•šë´ÉAh�â3 …H¼œ¢‚�€9—9i #áÇÇ{ÔÂHJ‰Q(#–‰E„ ÀÌ¡N4<yŠ”½‰62À�±ì¤ø³t™:—‘ `Ä%àð�%/€åzXbÓ £è£aì^Ç«Ç|’}"4W:ÃRÁN~È 2™ðq�| ¬S#+ f /ôÈ|ÈÿYM §/f@¶³,C Iœ4›éå,à WMQ¬¦À!ƒì½‰163@�¯}¥X”ýÚˆ_GÕ/Š@¨��„��@ìò >u¥¡ô< éCØ�Ô=@�í4!5”s QÓCý€ Š;UŠˆ-ž`y^Ër£N1pQˆê™£Þ| z?3Hø½!¡¼6ŸBfš T@b@0«§CN<‚pM7¨Ÿƒ@� Q\8€l(çÖEµÈ�j3 „µ‚@R@�#�d�QÞZÇhíŸÓ•/Å0��Ðò�Ðvð�8†èñ�¬u”Qâ<GÍ]g'¼}ÄV‹)€�K �;†Õ‚öém‹‡(™pü’ k*–Páø•KÊJs‰Q7P-gÀŒ¥$Ѐ1-iÅØ>µA}VAN+F¨�B¨o€½œ¹<) #6k=€3@�Ð<�ÀÌ`�uXb³—²=r � z° AØ&« dv×1È=��å»à�pK–:ÇaE2“™L?ò’€¡ùA¤€�R Q.Ô¤Ò#ŠR C ˜þÍÅÔ&eÕ©v�°@ÍHbeim8—€èDEP± �PŠ‘»m”a½Le2.Æ Áh��°0�4Fa{È]/€ùì€Bŵ¬zP@.ªÀ |�@w^G0ì ƒÌy È3GEÈu¸x"÷’±¹ H¤‡аAP%’†ü­øÈ‹}îgÍ<EÚLkÇùAcÃø³€#ÚÍ{pO6’6‰Qvt�BT°Y �'ÅFML*Æ 4'°;�…wP�5M±³à\��Ð%!ñ®ƒ¬�€® À�SÐD:ˆŠä€¹GCÙuŒ‘–:€�éŠ1B:»ÞÈo ‹‚tU™ ÀÿTµ÷4Xòêý”˜h8¶¡8¾W€JÊV0š1é–#E°DÜA ‚ 1vºÄØ¢ÃpawÁ Æ€�&›� Ë´3FBÅÃà¢ãú°èZ‚«Fû‚��¤nÐPäh0†Uà�Ã⤠!ŠäG è †P£“¢’@‰ aˆ��\ @YÈ.Û)RàT@ÍÚ 7eÙX&þP™‰ÎÆÐ,¥LsI›;¢H^ƒþŒPH¸Õ L ±ˆt{À¬Tˆ(qÂ΄ ��€žGTßœÑâ;ëpJ `€�p¢ H©ô}޶‚0$1C–ðR‡`R@¾œ�„+õ f K9š‡òò¦ÝI¹æ¦K›ænÇô_\�?l ·Ð °ŽôBè úPŠNÈÁì¤H ‘­m‡Î#ÝÑ„�°WŠÐQ �d 2ŠUØ�.Ñ=�Ð� Zƒ¹(I cT¢Ž‘µ EøÃe#ŠñïËØ–€ (á|,u l ùI¿—\²¾€²°UXjí·OÊC�yª(Ñ~Ï` ‚êÔ< ñ�a> p à�Šl¢Á.Œ@c ÜŒ@JbÖ œ»A¶bÖ,°iÈ›bö€xÓ€*ð@ žGvb¥d ŒAž¯!Þ¹À�„e!¾KÀMIÌa«à)`² í,�fý&. ”¡â¼þ€F¢Žæ¯æò,5Ⱦ°L˜É¢ne`ö`ø@˜ €– ‚¢`!®À�¡Ê’(�$ÈV)ÀÒÅ`@�a¶¹f4EAå �€Š �Çâ.B��"žÍ:,eŒ aÚ¼��!Š<€ ç"¡„†!º ÔMBŽ7ïÂ/`±€ÎR-¯ÖZ!üÅÂ@Oâ8å¢eƒüNÂtó"|�P°´ÉŒœ&ÆV òAB ’ �´ª��ÆÅÏ`£¥rà� Ž �†í€BpüÁ†i#–àØ��†lˆK‚I(��å �+ò‚@�¸ AŽÊò@R×{ �a¼­HfJ¥@@† ¨  H��rDT:¢Î˜C ÏŒÃòÀ#| njô )"‚:N=1‡ ‘Œ,€­%àì Òdqê€ áÔJ ì¡ðFixvÈ 6øíÄÒ€°ü¤Q€>а „D B¢ F XÆ0ŒB áj(¡Æ½�� ˆKA€(b¾­Aê”…:��$Ī –Ò€v„T@¬ñ„Xónc$ ›eLAÄu#„- _0àS¸ÃrZG Ÿ1àÜÓ$±ð€ÁÑ¡êºë�„f_ä´’‹à‚푨ÅÁ¶© -,`x«ÄG±xË$ñ! â’ ºƒ��¶ ÎRÁ„r!¸ÊäAèÊår�† ž -( m.ã… I€± BƒîKCš¥i¸/oæ-£ª-¯l`JØÃãÊ Sà @û>a&.Àïs5ì2.�…Š>¤´øÜ p«€R&¹ªòàŠÜ à« HZ€$-eŒVAê¹`�!´®A²žœ¤ª`=@¨„Èáˆr!µ-*Ö¤ªãˈcÈ QÂ��€PYª(aðŒl8Tãr9³ÆGàud´8)V9�[I I=ÀÄ@µ@| É–ÁR*%zÊ(±­´å)7£ò1…zàHžÌXÅ@Ò*X¤Ý#ãè-ĆT¤´c¨dlÙB¢öà"<€  ÀAž»¡Â¼dÙä´@ † |ë†À|=Ë*©<Áö.€ rJ:ÔŽ±Þ�3¼Ï f@dÃUsÜ&¦Và€�ª!T= �áÆ¡�ô”©!ôÔ@s*Ä X 6âÇBi(ÓļÍòŒ%l(ÁeaZƒ.?&”â“!j BŠá¼ÖãÈׯæà<€| 0��Žéä7áâF^€ ˜f‰Ocô*Bz8CšMAîàv€fÖ7B6 €� P8$ „¡E$„5Z ˆ�ngÀ�þ‰f�/P(�Ž€@QÐ €�€ �–€À –h€ãÀI K5ž�&SÐÐ&�?ŸÐ'«Ýú�z=€Ãê–ÿ¥Ê$àðcè�7…�’>-—À;cà+o?îPP-ÖÏ(RŸÏöõ„VÀÞ7l# ‡ÄbqPQf4x È0Á90©ßSB£Y`;©þ�£‚¥Ðˆ"šH¤ñù<–O'š�è:Y  ¯Ók ZPúO»�V OÜÿÿ¸o€�à[ä�8@aè:îì�½·¨X.Ö)`#ÿ& �í¥¾I;Üý|AOÏ¥{÷ü~pØÑ`ýDQ”f�•€Yد„ù¤�†ñì�)î³°; 2ŽÓ¦ˆóxò5/#O5²ß Pô*­4ñLOÃQ,<‚`™ö�Á:Ì&ˆ€’î½gÉò}Nø,Ÿo¢„ºŸàT”Ô&‡œɲ~ BH’µ?RÌ´ý²èpUL3Î�gr¼P¨�kˆ�{Ÿ€Œ5 %** 7 ZàD1#QÏM„GÅ“µ�Ã@ª¦ H�* €ºð¼Ññò}‚ $®Lú|ëH�v§iúfUÁûUŸÂ ¦)¬ÒÝeY°Àµl–%‰di‚ € žšžO”æ¸�sj™ò|&’+S  Ñ"¹O(ªö8Ö«±kÄÎÌJÃD °&§„a� #¤ì*ñÇØ_�Î3{$ÉþefYðÁž©ÞwÇ݃†È‹Za’Ð_�ÉS‰™!,‡ê–}ªÊz ¢hyž¬ùð|©g¹ðÏȬýVÏŸŠÉú~e‡Û>vǸ"©òž}Ÿj~4ϯPƒ‰)Vš•­@Xz‚€£Ev©axTŽ€eÜìÓ§Õæd ÛÊgæyðumÙ¼n›¦i)·Fäma»­d�ÛÈ(To†@Fa‚h«®¶Ø¥6ĵNÐè'Ç.h'…r(?ÆhU–º�·«dŸ@DD‡QÖuŸf©¨jž$ñ<NEÏdK/J~íÛîï ‰•&ˆP!N˜Ñ¥�þõ�2oÕn%ÞõxËŸÊavŸ¥ÊúÌÿ§ì ¸Òžs� žâ½Fu ¡îç6ÉÖ²�Ð$}S½²hšF‘Ä=#ȸÛéw Û¢@Þ@p}à\@Ðx €°LÀ8Ay @ˆ�ÀÀxƒÀ4V�“�V<UîGZ*ØqÅ=³ŒË‡ñO�b€� ?Ùœãœå·’’ÒJˆõ��j&²Ø<‡ƒeã$;ÅPÊÀA÷DVEÓ{#Lz%Ƚ$ÂJk`j T* ‚àð#Ä[�€èÀ†&  …@ à´€G �¤)2�ÀE�&²Éš#äµÃ4b¦;$À�tIɪS Ô@ úã�` �öƒÐg*#Ñô˜¸·¥„± ò€(�€D€�h •û#£¸LoÈ�€€hŠ)äƒÀ0ÕBô?—|dhÓA¢Œé¬-$€,õù¼ Áx00h}@ˆCD€„Ó¬f´÷Œ<¯–SÎX‚iì$ 5¡@OÐ.•ô,h1¥“âM"‹¹ê(Hƒú‹²(¦ñæ¢"z]M‘¶ ƒþ@8jL‡ìÞÞ’mIÅÀ¥AÔƒÏ)éKå€>¦Bª€6ïÁ@&„ @€ dDÆ~*ô�Îáþ÷”ë,LÙΑÖ>Z¨Cí¢ËZb€€iO ¡ …#QèOGÀ0ö5ŒiN±¬5Õi ´Â¶VÒ �c°I@*›»ð€ kÀ@5ì úüe��ļ³¤ÊŽÆGùR —§é½ ˹죇a…úH=DZlqA€ »<6E¡eø^+Laku©µGªniz\€*�Œ@ X à° žÞØ(Èû®`!wŸAø>¡=W²—ú)Öä:#ÍSXg »<6Ƽ�Kä| ö•wíUá¼TY°ÐJ&iKÑZhT«Ê@͹ìv³yi$ –ô.av·Žþ_ÛýðÀX`\ ðF ÁX/`܃ð†ÂXO a\-…ðÆKD��þ��������������<�������:�������0���������������� ����8������H������^��������������������"�������f������n������v���������(�������=�������R���������������Terminal3.tiff��Created with The GIMP����¾ ��¶ ��‡�����H������H�������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Real.png�������������������������������������������������������0000644�0001750�0001750�00000007406�12214432632�015663� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���gAMA��± üa���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� d_‘���tIMEÐ 4¨_��ƒIDATxœí›]l×uÇó½äîòSŠ>lÒŒ,e´ŠÕAÚZTZXù@§BPTöc Ò¦°ÈéCôÁO}²~ Eðƒë\¡õ[¬NL;–i®MÉiŠä’ÜÝÙùìÃìåÞ¹;+Ò‰%Khp0;³;3÷ÿ¿çœ{î½g5„œø¿(�ç#M:×%5ºj`wÕéjNÒü>Zȸ&îs$µº*Þ­u5îjØUðºêJÚÎPñ]Gº'�~dJ=ŸÞTÀË =h¤|Ìe�6%Т <ÊQ´UüÞ–HŠºGñ[µqÝ/ä‡Ê7‰E£Uà…ŸeË­Å!Ýëù$Ƚ/$–>‹ëºÔV#ãY*¯KB¨0ÈäÕ/H@ Šªà³HËaGy<lLÏÆ×òÄq¯×mMÃ×uâPÇ­3À7�=ÆÑ4:aÒÛqhà!žâhA·ÍX~o›žéû] P,@5{¼ ¼(‹ôƒô®ÛQŽ8̹yZM ×·0\‹ iAd²±­ÚÄÚ¿Z#æºP°š\½yÌø»@ÄãSÓÄqL¨ñVûKÑuN‡Œò%»`Ø&šecÃ1 ´,›žÞ¢aÒóI pð²yæ%°E`H9/’¶ˆ¡D£2¦_$r‚mG§yÍdõ=çäîßiV/Òx§Ñ€Øƒ(€Ø…8J@Ó|z¢n¢ÅeLÓÄ×,°r�*Ÿ$òKâêäŸla…„¹\±C`´Ñœi8+(Ð &¢ç bÃÒg™ˆB÷»vT"l–ÐvŠ4· Ü7/®ÿ]åõ×1:›¼Ù‘ÝøcÍ�Ý£V¡{QçØÐ4~4Îêô·v:ÜÁí}tÃDZ|<½*"(dðÃTP�F€ z£L£žÇ_v¸µ˜?åýK!\}ƒk~ðñƒ(b0Ð@³ÁÌ=ÊÉÊQ£ÌÒôh“!æp€nTºˆÀ%z6éÕ~•­`ÓcçýaÚ¯9Ÿ¿ñý‰­Íe–Ûî]}�Ñ-ÐlN9AdŽóZù{MÊ3C‚€1zOø±�_–T0 ”±£µ1v+gÖÿjòÖõר·Û¤G«{K4M'ÖŒÄ: Ç41 ˆ„Gürà“ÍËeûf™[/•gÖþfüêúuâÈ»ë€>ªÄ{Aևݷ‘ P‡>1Œ Ñoò“4VF¸ñRéÁV~Ç ’ßo‡)Ä '-2  B¸3ÊÎÕÑ_ÿà»Ç6®¿Ê{AHß»&¿ŸèÝ£ìY P ˜ÄŽá]ÿÌòŸ[Yy…?¸/ÀÏÎÎÇqJ…¨. 'A²%Tô¼6EÛÃÔ_YY_b7¸÷ ™M×ëõ½ÏÂÔÉ !q Gt¯Ìêb~²ñ÷C»~çηúÊ ²f€60Làúùñ·4¾Ö¸Þ÷ÀjµÊÂÂBJ.^¼ÈÂÂq³¼¼ÌÅ‹÷î‘¿“uyy™¹¹9ªÕjfãÝ'taa¡¯ÇŸzê©Ôù•+Wö>‹<à4I +“duc’>€ÍçÞ­ÿû+åæî›™zî¹çúžššJý®b'3ØWßZîû.Kyä÷γÀä^5N;wŽZ­ÉLHO…e5<±oãÞÔ›ÕÌ—ÍÌ̤Χ¦¦ú�ÎÏÏýàëõ:óóóÌÏϧLà™gžÙû<;;›ùÌ'Ÿ|rïÙ²\¸paï>U~úrmïó ‘ÞôØÑrÄ–ÉFÝ"ÎÎéÏž=›y]H½^gnn޹¹¹>𧞦Ñì]¾|™×_}ï{¹ñµZééi€=÷=\­V¹téR滳`Cš\šéŸ÷-A%–`ùoäée±<??ÏÜÜe ŽžH¬úâÔÔ[ÞÁF“jµÊ… öÈÞϺ&Þ'ª•©ˆ…GRÇNSªø¼oZÉšBºaªð� ‹‹T«Õù}–¨1æ "Ì\µN9�B€ˆÞbb$i²«[!Îd„=ífêgΜé{¹�/Ëäädßµ,ßU¥lѾ^¯óôÓO³²²ÂO_®ñõoöaa檥,--¥Îx¨¨O'nb…»8ÅQrŸ…ÎMˆzV ÀA¦·¶¶–y]U¶à;ߟãìÙ³{½ôãÎñùßží»çÙgŸåù矲­C˜y–u¾òÊ+©sA€ : ·xØ6è„ÇÆpNæq~íÞh°Ÿ‰ Y\\¤V«¥zäÒ¥K{qAvÙÙYêõ:?þá\æ³Ä}ƒ\J´!Ë:åaz‰¼Ù Ô#! EÎÞÂ9|‹ÃŸÝ.Y•Ôö31Yžxü\Ÿ… 2ÅèP«Õú—¸’ÞÎúfÂä^À…ºxú.Îä:…éâöðïY#îJ~ÓkðØc¡ë:š– ò«JÃO’Ñ¡gAW®\aii‰ÿøççSÃÀ釧ùú7/233“r‘Z­F­V£Z­¦bŒp·Ë—/§@g¹¡ÈB^ØL¦¾#]%ɽœÍÿ<Bý߇F/8›wu­ïŽˆ¦Z€è}±Ç–Z$s‚<ÚØÎo8Ü06c_Ý~ÉÞðîå%°ýdmz³A›dr´‰æè”§4œ/kØ96nä8ÜzÙ¾¹»Æý±6 ŠÁ§/A2çi°È�uú7*cbËGÈ×)Žk»ú¡è8ËNÅkиÿVÅæe 0H,@l(ŠU"yÇ6!As"˜ùRmjt%ÜÇy57½õ…åV“ûÉ%ä<À'½G˜m"iÒ¬€Ðj3tjktœ¡“ÃËÍÙ&Û8Ÿ þ±ôÆê D-ˆ¼TâtOˆn^€â© Î³öèÕŒ1@s\rÇw)ŽUÈ5+L´ opÎåð²U|÷ßFB÷CÜÎÏ!ØN^y‡wmW4ǪÐ1ÁÄ"†O夿‚yZ|;ðé °°K1·M§’Ç>RÀ8Rlæm—h-Ïö;ùâê;QH¼ Á..„-“_B—;â:f™&ΰÚ¥sìw]Š'ÀyØ P‰ í(¨… ¼š4õJT<½…¦çñq`"O®’':œ§8“oN|!Gg­€¿åàî8#ë?+lq¼ Ô!XM¬Ä÷Àß-€0€8øå,Æ‘G©Ÿ÷Žýa‹áœ‹K\‰Éu<<b?e‚�Uz~ß#@ ²ÅB—„ta„fÙ– ¹FÉ¡4‘'tó¸­üfùŒÞ,`6>:†«±±m wtÜ-ÍhüÌ´ýãÚ»LºÿÃPð!WZNwûÜÏh¦@`AñaÆÇŸÀ:ÍÖ‘ßÙ$*4ñ­ô\ñˆ€š³— ÊÁN­ ’ë‚äZŸ¬Òµ2DÎ%$bßAoçñÉᑟ,Ɔ®MÇ30}À蹡fèüü,vÞïV6x{‚G¾Ì _Ä}ð«Û˜Ãmôܺ½z›ô\'�¾¡N‡³z¾?ðõ[€«à(ª ÛhŽCìØ˜8„ä Êû6r8XÄ‘…‰¦ØØ„-³”QôõºÅSŒN<Áµ£ÜbôP›0·ƒol¢Y»ôWˆ 0yQ‡ó‘ˆ>r…UL? ‚Ùÿ;ôjqdð9z»LYG¹ŽÇÝCsòhÒ3ºè‚¿±û6øéŒaªSs-:ÏÆ‰?Ø"nÑÉm€Þ@£)Ï"¡^Ôc¥P2Ì Bª8ôRh¬Zb'ï<É%+‚dI"×ãÆ_8?i¾Ó»¬;Ÿbläk,~ú[;ä&}Ú…†u h]'(“ M‚8Q-@¶yþáë)•{^¨ÜA€lu¦±u3.ßx½Ê³DõÁó,Ž»ukü!«äÒÎm¢éëÀ¶¼•AÄ�Ò$tßÔçr¥¦°‘6{ôv•äÝ¥¬ S<EC<€†=íÑÍšÐΛ¡®Í²xê/71‹a¡IÛº¬M tKÒÐ#A€'£Wôî5C"Âì>Ð$=‚¨%¶‚á6¢bSv9!¦¯ÓøÐ¸zóU°*üæC_áÊПorøˆGT ‰œ|ÖM |–f•˦êûI�¹€Z †‚„P"B ï*ÉdÈCª\¯+^I¢ a;Wz÷Ÿ*~ê(Nék¼8ö½h†O§ÐD³ZÀVWe“W‰]@­@€LDp”kre"tz³Ju{M GàÛ€G't}6nêùp‰ÚÄ_ÿ‚Ò#zÎÅ7hú6Io6÷/÷¾luâýû H�µœ>Ê BÌjé­ß%A˜¼êóŠ„°³3²:ù·ÉmØZ·×[¤óÕß³ü^®Ú­ý¨’.­WËì³ö³Š¯Õ*ÔŒ"̨ˆ¶=LÔ1¡š#p@zåJ¶€AQ_íya}ëû[€*i‹PG A@Ï*¶]óð­%ç¦s >Uð°‰ñHrv�Ë×ñ­„ÈØÍJ\ÊÆÇ«´Ðöâ Ý犔ÇvµÇ…¿ U‹¤…þ JÚ"ÄQU1×Pk‘ÔªTqiµÝý½¼!'`òŸ$Ôd'«B\�£NûW'@–~÷D‚ZŠŸ5©©°I\•�9Èç2páïBå}Pÿã%@H6·+ÉWÿ~#²FaþrÀU·î<ÒÛêëÂß³2ÍðÎ $!BþgÇ ÔtYd²ùCöþ¥§eàr«àc ¾³À~È’GUåÞ—-@^’“'eYÀCé>ø^0¿óÀAÿ•¦ª¼/ ®MÈG¸ º7±£˜Ô »#ƒIT %¯JCöº„LFÄíͼhÌÝ“þà˜µ »%ù¬©¹ZÙr àBî.p»"먶O%!ësºÆé6àE#>éò(¡^Ë"@³4ùnв|rÀíæ·kW›<¡úàÅË>yéƒ{_ˆJÀG-˽A€,i2²åW�üÿ¢Èÿ²àúfYÜÜ����IEND®B`‚����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/GNUstep3D.tiff�������������������������������������������������0000644�0001750�0001750�00000007514�12214432632�016660� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�D��� $h°à!B† &l¸ð"FŠ%jXa1üËŽíŸ7^þÙ²åäŸ ¶þ™0aéŸ>}&þiÓfàŸ5Úþ)Q¢îŸ Šþ©ò­h±âÑd”ò/®¬!BDú,¸’ êþ¹×òϱnÊT3åÌåŸt3ÿ„[úÇÕÆ?æöþQuò¿«è=ZãÂçŸT¿"% WJ†%#üK”(Ý¿ôñþÅLò/tªž3ü³›íŸÙ¼†9(/jÚ¼%aÿ¸WúDzÆ?šõþoò{«(;üƒÝíè¾� >\BÖ1ÿR¤Èô¯â¬yü‹½ì_À5ÿ<n&LäŸñ=ÿ´ú§øÄ?‰çþ ½Z±ª=æu}òïk÷žàúùÇ? ÿP`‡ THJƒàŸ† ù§*8þÉ ‘âCá¿ÐùÇ),þ± — #U6þ‘Ô3/ŒR/¸´ÓÚèù÷ 2]t36þAŠ“ ã±×þ€( „ †ú@SÂxr‚ †šäŇȔC ‡ÔÍ5½´ùG==þ‘Ë0r$øAoàæÖ¬ù‡.;þ¡È‘ˆr±Å6Pó°ËÀóáÀüv0Á‚*8‰$E ´d¨/6ØàÉ/‘¢Já¯ÒùO‡41ã?môøG£"þQ¨T_ý©’x«áöêù‡¡&u†¤6þÁ­ÓwÐù±>¿ý¸¡)¬±„à€Þê`‡‡Ø`˲…–Z´8c¨paƒ£Šÿä©áŸ²ŽS$ÛD“K— ,I%ãƒî=ðH!TøG¶7þï“ú‰º5XøZþ!”‡à¬¡m·˜áùl¤Fò Æà?60먫Npù‡r¢±bGu²F ²©Û‚‚é‹oÏJø's6—\ ¿0Ã+wÝGw¡tÓ¯…Ê‘â¿JDª®¶zØk¬Y'¨ø¯ ’q'Уžú@l�Hþ¸‘<@USmÖ¶àŸõ­ùgv;þÙ‘ÊwáŸäÝsÈ©ñiö’âýù/–úöS˜žþI8’á—ãÝ–ó“»ëÁC´T¸7dûè«ú³f€l‡ÆPò–ÿ|�ϯ€Â ¿•Nïàÿ®»ï¹÷>zàŸð‡ù ´qöžB¨fäÿ0£Œ6Å43ð,3ùÀ˜ÿ…Ð]DžÅ–Xªªjš^~EjYeµ5ê®·~ ~àŸŸâÿÖÄ·fý¾¿ÿáì?ü£(€æ!‰Ç€áW”²H¶³]¹€<ü#)ˆø'ÂðŸ ãÎÁr"þ s§’ÅéÎÔ‹³ q}ë—6¢q‘Å`P܆–a]Ãn×¹ÁMFó¤ßñÅðûǽx‹0þq1üc;’øG[d¼€DüÃ2Š7AuŒ2üÛÅŒc¢£‹ª#Èfp÷š²½Á=oyÇ{*Qý,iiËúT jò…•­ªvãûÖ:ø÷ üäO 8¼˜Ipñ”0üã8‘øÇNbðùÄãß艆téQ ,Ž.ð/”â¹)Š\‰tø3Ø$r’StB=9Kïú ¹ó]ÈZ—„>Œ®sX]ëzù5Ê /&3Áˆá6щÅrfðéÌ'уD‘‡<B:èg�ÄÖ™%ÃI¤(Y©1ˆQL„#¼˜{ÛÂÒó~lTácËÅÉJj»º¬å;ëÆ'~�É�ÃkGŒ¸_Â?Î Š[` ÿ˜+4þ1Z8ü£µˆž3CtÍ‚l*ù:M‰‡´` ÎÁ ^ôè =ë5MÎ %mC“—…ÉUì {úݘÁd™&¼,·{ñZ¾D$*üXÄF1‰ Uÿè¬4þQY9»ÙöUJz2MEe#")ÑÊ®#¦3S×1³`®,šÛØå>ŽVˆ³/ãfõxä-^ùôs¾Ë¡‘ð& ÿø­7þq_?üc¯¶µ}á0Šô5ÿho´gíhx7¡dQҊݸ"Jªæ.a‰Së´4„¤Ti)M¨Óº2¤»La“wÜ\µº…·ÒèÄ?ÞÛŠ\µÿØl7þ1Ñ>üc ƒøGWGðæŽëH'ŒglqIK:T?ˆH2bST¯ä´Æ±¨in,[YÆ'š×Bh œN—Ë Øø· þÐ;ëå+?áq[dІ<÷ÃíîÌ –ñáþãÝ*B‘Ôɨ3”òTPNH]8V7¹LBLô©ס77ø©kR)BšæP¸�œ#ò›Û|MWà»2,½éâíGö4\}j½„‹ƱG4â8wâ’€þñG:²‚FƒgQ8±*Ú\ø‡Ídd!@XOaˆ: ü§àœ™?±Ìu¬»—;Ë€g†øÓLj‡`Ì¢×òŒàf;ºø `ü@ÝêæÔÍ£ ÃÖ|ð©ùw¸£hZ0þQ½°ä ²:\î*7á1ƒM€$ƒÅ”±4¥)£J°nóR_ò4:gøà_±¬d“μ‰Ðø7<`fotcÖÅžëXì#!—ÔëŠD¤0¶¾ ö µ Êñ?1F›±R¦Rs˜§\YƒuIºudr™ŠÐœL6ÞÌ¥w§ãƒî³ ÿ#ÒëAƒàìbÕF˜c/}+¦YÙt÷@Þ³ùÌOÀ§WŽ ÀÿÞñ¿g ï–M Æÿ²ðƒã‡Z¶ñ_n âìhä ç²,!5 9H•at¼•nQÀKž2W¹îx¸èf)ÃÑp[„ÿƒÿöÜwzV“t 9Î .²Ã9‹ ÎsÑ.岊ԋã—*öñ¿`4U¼’óÁþñr5üãòš Æl£³0TW+…)î4e(Ç5Lz²Ê?“€£HšMã¾w¢õHE†i×lzµ˜ÁŒxçÒ0°µW£‘­ì±ú°>â‘,^Õövs—¼´g’ÿbâ]Âÿ’6Xw.ZX¢€77ÔvƒÙ°¾O³‚`G#® HßjãÌp#ñ‡m÷¾â烇<ôcð›ãGŸÂ?>»@táC¨øyðNp²+øŸ*üñÿ|åIGfr–«€sA<¸Ýe'¾õöjÞƒÁ¾¸§?ÖVÞÊ^,ýãýÀ÷ðÿQõƒ{øç?8óIŸ–Øÿ€%‘1‚n¤8ç³1—møwqH%dBU}‹õ0b|°3 C!äQ'– dB§µB¥æ¡"Z¼W &{°+«õwÿô(‚/ø—0xò1ŸPP8‡ã†øweø‡•T(…QQÐ!—‚’5•ƒJ7”"ȵIS¢Íä4uÇ#*¤b÷c_'V’0€Ð +ÓåC±×#>^éû·º`h‚Çð„¸Ÿ�…#™ …0^˜Ó†è(×…vG4×ÇpŒ8ÏDiÏvY[“'"iÕ‹0¥[wóB±"Cói :¡±S3ó@yׇpó8™P8†Ø¶b’9YÐP ×ÈPp9 áQóUfÃiM·hYU<“2xÔG&Õ °z€à)�@®˜9"5<ÆS4i¿{yä &Jé2s³´_áŒ:þϸïð…ý¸w0‡(ø—`˜냱ƒŸ‡h‰?_´a d›Ô@Lˆ‡KSÍÐE\ijÁD„àKb1 å@P"ù°R<'iµã »7ò`QcðîAWƒ—h 1ó IX iO‚ñdu8å 8Ö@ààP�RM -Ju,Ë@‚˜–u4%&dbkA0<]K%o{¬$K÷‹J»& 0Jû³«ÔGá•y˜Á�Ð� ò0XMªðˆŒh} %žefxƒÄh‘WT^²uw_çt 0Í�±JB»�cF(šúK5gŠJâÆ–^ûeŒXbäLVç^„ø‡ëÌMzWñYX0? ÿè>OE—·P ÷4ψ“ð-Õ÷„õ /S ¡ñà¤H9„ ;ªÆìy v6üaý¤À�ò§,åm…wý‚Ó©xwë7~èW)•ÑqhN�_N ÷5—}7…¸„´t7Ï̹À"PvfFdä”cZ„Ñ|õ'ys¶LVÖ|0§LÍI$; ‹6þ➸†Ïð>Èôdw„äŒ?hó€:Gq~GKAŠJpÏ!•„qrƒ ±Ìè É0[²©†ÿ �Ó(ÌÛDNT¾Î~`Ä|3 be<êʸôñ?å/иÑ@Ø‹Î4Q ’EINç¦ÝPscLHwÍðòô‹ø/ê(v&ï,b “‹(HDÐ)%,N<ša…8²ÒŒLËhŽVׄËÌwí,†)‡ÑmãŸ,HŽîˆ‚Þˆ‰8GŽ„¬¥$7!”„H(wtgÂB¹@®”.zøOí¨É'ž а k<AÒw†$W|<éUÄä.ÿA8¬‚².áø)øB4Ï*4BJ¡ÐvR·@-1vbÃ6á•Ïü¯Xk%@Ó©pøÉêõF>+@÷/ÆÊ ù´…’Ëmø¯8¬©*Œç‚VϬ*o‚äùu‰ò/9T`©T"%)Š0 "!2¡q¶j«Žjg¥H,´@+LM|Ö‹"ÒgË I«Ï.ÅŠ1\©ÀÚòmS“4?÷K9%‚ÀSŠ¢NBr¡-®‹R'!>0|>+£†Éxbçê¨IáTvU«Á¢®ø×ðV|©´ª¯¼òjÞð²°pk=âkoÒÔs€†o6UËWµlÄféÉ!{ÉFÈ1â3Æ:³¶/�²·ûfjn¡1`âs) –áëpiö–huláìªóÖmÖk„Öo£6l“†G@�������-�������-�������þ���������������� ������� �/���������6���������������������������-�������;���������R���������������/home/andre/GNUstep/Library/icons/GNUstep2.tif��created with The GIMP�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/xdvi.tiff������������������������������������������������������0000644�0001750�0001750�00000014412�12214432632�016111� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*���ð $h°à!B† &l¸ð‚úX’$‘’%‰’,Yd4áq„K‘"\ªTaR¥HÆ'%¯”<br• £Ñl„fÊ/C<èqãJ‡ gÚÅh¦É{î4¸q«ÈzYj<¸S-@…'O*|xSáÏŸª`AÔE‰¢•–paÍQnNI¨ŠÝºv*”‚0¡äú \89Ñ¢(Dö8¦()’ÇK‰!YDâ¤R„&œ’_2^¸Gã"^|¶C™7dÀ• ]Ni³cG“5+,YRgÍš6ûØPaÅŠ2 ”2$E›êÔ P¥Š—2eÜ”)Ẁ—>=‚,˜ã̉ .dyò Ë›Y¾|È àON€�ÒH5$Ùð¤ðÂI£6(ÉL2‰É$%•PÒH%(üBÀSbÜÄÄ™8â°#’H, &гml±AÓNÔ1Ç 5Œ1FSLQñÌ0CÙÄ‘EQD]t¶5… p@;Z”ÐB Q×àq.Œ0BÀs¤Õôd|ËÀw¿½EÂ[$DRa$H2¢I#-Ò'•ȉ ô<I',/üH' ¯ñÈ÷°±%„LðÃCõÐõml°F#ZÔbF5 T0ÁôÐC%”ŽÛq4ÃXaLÆH%ŒÀÐ[ ¬–}MÐÃ7T°Ä‘hPIíQ$–”CÉPäåBNsäš• ùláÏ‘˜['=g"ó"’ 2ˆ"“ "Ú'€ ÒñlO2ÉÄ3ll|« oôÔCG%´íA“1Æ•~QAM¤Q@Œ0DÙ“pÇLaLÆØsŒpÆõ0Ð#‚Ä0Â0"‚pŒ‰$#}ÐUùz$�dB@CJ4ÂF‰h¢QÔ %¢ˆD…bPo%/bÚ_„ bºY‚L¢»!Š,2‰èˆÀŽðî÷¼p%ŽX¬5ÇHÞ^ðì 7´p u›DÙ)dÐDQqDÇg,ñÇ‹b1/³b1Á_LðÁ£±ÆÁ0B µŸpŒ&Åp dÇ ‚PÛ‘ñ‘#‰DTÄDÕÔ‰'µ Q—VÚ'®bÉ"‹X²É&î†kÈ"úÚåÈ$hy|ÚÇMJ×ÂR7Œ|C/¼ÐVVy4”E[lQ•Ð[C±ÖË¢°Ð‹ñ1Ó3}0‘ ã''ôÂ0œÃð08ÞRŒÅÁT.Ô°Ç¡ðÏ -d# ºL€6‘m×Â@+ºAœk]ïF7»1n�Â\‹�×Zp%X +D &"„¼áíI*PÓ3p‡º! ΨÐ6!½‰PX æŠò1BÂãSE+ Fä‚ý}Ç!&‚¾ñ¡Kv ñ0";ô) ¸Âb$†¦¡MèD_70ÔŠkÝxd»Ñ@TP€�À7�ºD\䇀ÂÚü0c( í­PzÖó—$ˆ@X†Yx°6QØÂp!f"ô)‚a¬¨¤!†ä2ž¯„#ZÁ>Ð#´B�=ZA_xÐ3>´á�{ˆÑŠÄŒ’¡KJè FZA²ä .ýCtz™~„¥Áé_úámy¸(Ä„µ°a.<’—òP畾`qžC‹>^«IaM{XyÇÉ0s2LcãäA04 ø ý„Ea0`(ômšç!^E¸W=³Ã€¼P¦$£Ÿv!À@çé" ‹\$ ñE‹b‹De¼h)‚‘‡<¥nò‚=‰aM˜3Föƒ&¯ Æ+(‹b …“sXÑßCaÏUÂ`’;=Ò†4 ¼ KaOÚØÐ¶+´ø m¾AËtÕD�´SdvUß@,b£ƒÔ""F:‚‰VJ†ÄÚ!¹ˆ¯#b‹†¨¢!¼dE>òŠä#¸hp×>ìI «€–Q•‚_Yà UÉ@F2P4)l+'{!°!ÌùFøÁX±Ù€¯Zà£=ë=uдá M @ÓÐRl›á-ûA[QЧU  SÑ*B€±ÎajyXhùÈG Qˆd �‰b†V—• ˜ÂêÝ€R7 /HÂ�…t  h€ªP7 vñ‚à5Ô a˜ÃªÊ…rÂ`n?˜ò¶ýp‡Q4``Sè§ŽõväIjá�-ÏCC)ì†ûØË~¨Á¶P7jk¡Í+èÐúUÔŒ YÁÀ…0&1Ì´‚B E(B ŠQŒdq@u¨EjPƒT¡ ¹@*QD”¢Ñ(F‘‹lÊÞ΂‡µàjv8sêf‡Ñ (óæÔ„‰‘í�Ãa€Ðt9"rØ@K)ÐЧzC#¨õj0„ÁÜ ÁhIÚv€.OÔ wèS�:â€ý¡Fq´Eÿ˜2&$Iâ€6ªQ=~T!oÈA*‚r”#¥(AdgêZøM¹&p1;œB�‡~»~†¿ ä@˜ªË(p‚ìaƒB¡| ›0èñÚ‡O  3˜BÍÝ‚‰¨` -õBG½³…%ôØ}6ÃШ0„4!Rèñ9…©VP‚¤ÉcêL¡…JTNh‚ûG6ÊP†¤ƒ"fÒï‚uoÁŤp\›ñaèCÁìð9§ èñ™ÀF’á&$½BßÉ~D$ … ³aÐ'¯>”ª\hq:l†n? Ç)èéú†‘haÄõ–Çp"?Üa,À½,ù È˜Rö†ä~@{ÿÈ;ðJyPÄ¡ňèT) ‹,p1?œ„{ÚÃVP \ÌO胲0fÉà�;lNÐK ’G4˜¹ÖÄ™ù#„èÃQ²ì‡.¯Ô?IÃúœ‚¡çaDÙÁV°„!ä!ÉÔ© ®0¥f'–¼d­é+G;¡‹ª¬ÙoÜ¢ê`7(�iðTˆX„¤[#öa3)�‹ÀºÐ…‚jÙ�Ã'€'Чô|G˜ ¶“€kñ`K˜›çyp_œ¡ÇP˜–¼…¡.O˜˜?ш€5¡ePÅf0eT°@a°¦€l+ô€ÂÐ7QȱrW†Rû‚BS4:ƒ ðÆîƒp'€$pV°'<J+PÅ~ÐðpP@Y0bSG¬Q7ßq3%;(‡2pWp¤#°Q0£5P 3H„°æ@0Ñ0å@0§d[b3oP�7°F° p¨‚,+1¨„tl=+‡,{ƒD7„È@§}ð&d„$pÅÁ†p%Ld{¬-úy´bX0Eä¥*’Âs0@MÐCCÐC0P}Úkc]�'%óDp`>ˆ\�9cv3Ô36s¼ |+tkODgÉd|°á@°Rp Ë…l…4o‡4;ƒ2(… c…]€Pn�_ AJ€dpApÁpFpP°§{•Ä)�/0Á6PF�ïˆ #¤Šâ['°RpŠkÔm«ÅRð P¬µ†E=0çq°$@°âq°6PÑ�U�{.{Æ4'ZZ¨…Ë…ŒDÀ~Ð7 H7&ï…±‡lð¥#º† qò <H 7H‰HLPˆ[fKžE©Óx°–;ÎËÅ&a2&•|ˆ.sYöDPÓ)%†\¡"/"PB®¨…P9ƒ0M… °E=/KÔOЖ~Ÿ�Gä'ÆWZz¨‡¼„…lã‚,žC{ƒT…H7‘ðåZðJWé‘9ÈLBHlH'D;dd:;;P$³7pSp”°Cb° ™PX0cv0c0÷"P¦}VæNn€‚0]€pžõ Vp lptTÃ=ÝF0'/Ÿ�g 55ˆZ†4KXȲHñ"ÐÔÙ…|U2T4ðãð'ºIBH‹HGÄÎ;[d~0GaPÃ5`£° >puCp†"(G%:;B�[6u…0õÉ1ÈÍ1Èsh(€£‡%ËR°udgg" ÃD p�7%ºr qÈ.hHs¨…L+Xy%ƒ õ@%ƒ�u?EKºe LwH[Qô3H*Z°ÃÒd‡XYƒH0fP`DP‘~°¶\ð‚j¨oû/“·¸³ˆ† (‡h“€È<Ïo(Ìo(°(LGȇ©-LpWˆ«¸C%Р@pÔðÌsð6&ðµ7ˆAÊ.¨‡\¨ƒ:È´ˆó"P,uÿ"ÊIÅGÈOÖ@²ô‡$°GL°CJ¥”¢†°R0° _à‘0P€H –++¯„z„¨†8ã…ø*òvˆ+Œ*‡rˆµrˆµ7ˆÑ)ˆ feºˆТsp0Qð­|0^‚Z¨ã‚Ð4…ˆ4zÈNSÈ´\HÆPU4U<ð—~ð­åò‘þtƒ,ð #p%/p"/p$Ç:€Ô\…D¥ƒø„d°âOÓYÞ‡PPç,0¯|ˆ„^è…:èƒ^(…&h„”ú†h¬h€Hn zHNSH)HÒEpÐA5&p¯oh†ph‡vˆ‚Nè„脈…Ž&†.è‚„ƒ¬‚¬„…4ì-u„pé€t®åtæð€Ú‚Lp£}p¦sp¢sp”EL�k Ä+©‰ÆWØ…]ƒ38ƒmØ„MX†8€-žM·‹AˆHXH„fh‚Ô4…dUÈ@Äg´$OT5è‡^H„c8†x€{8…y˜ƒ€~H®HªWH†~è‡TZ©oÈ©oÈ®oȲQ0Ð)u…\ãðœNWqbyp£#p¡›€ŒÚƒtpDJ°E4°B°fS‚VhhƒVq†(Ø€ X5Xƒe`E7°D+°°F+°c~pTpb-pæBpA4p>ˆì Èe0€X€Z¸ƒ;8mMØj�(7ið…!‚4„AH‡Q…,Zfh†¼6†œÆ„6c’>Èn€`®MÈL7ºeùæ×.¦£‚tp¢›®€T°Á„ƒ°Á…vhoeX‚%è€8=èƒ>hPaõ‡�db°Ãˆb€xq¥ …àr€x„ÈïS(èS(ìS(Š}˜‚)h±*ÈÀfФ(0ïkÈ‚Q,˜„Iȧ•nüA…ü¾ï$°=éïoȶ:È‚@–o:êÈC #Ú—Hgò‡±"G …Ô±{/6ŠUèH}؃i8‡s8h (ÇsÐí ȪÈ„^è è‡>Èê Èí‹aƒAȇa‚B(†1ƒƒQ((°>Èᬠg€È€Y˜…"˜ƒY(†y˜‡2Z¥&…¢¾‡ÌæZ6&ˆ7¨žjèÕ)ð3î¥}pm�Hor(¢@°Û:$pvPˆ!8€}˜-Ø„a8…SX…#8‚c‚ 4³¾€˜†i¨…m؆qX‚EhŸ4(I(šg؃=˜O˜† ˜€òù† X„hën€ ‡Žñ„ái„Ò…š;¨„eX†ê…‡êi6Èo|(„h,’Å„b¸€ 8ne8lMØî è lp }ð€˜žñƒÙ‡mrDë Ÿ è†]Øu˜i¶rH†uX‡ùÙý%E{ðT<‡k¸†x„G¸„¸SX„E7&ëk(†Xnx‚'¸^b…XX…è[¸î¸èýÉ£‡€UƒŠ…;¨Z3¨[ÈoRȇ6hƒ E“а_aXÞpu†ahž7Xé{¨€uXƒ%\!TÕ¾€ØØh¨QÎ lR(œ7ØœkXOõ"0ˆ4ÈÛØØÆ Ÿ(qƒÒ•…Óm$<ðm H1 ˆÞØÜa<+´{X†%¨^5¨ÜÙî†Zh‡¼Æ_/è€\§}¥ý”‚tðïn˜Ûpò‚¸¹†e”C�>43q`–~ðÛXoMØya*�¹¾€ì¹ƒ6¸‚+8ÞJ÷�YË…¨aÜ‚ÎV†ƒmÄ)P˜L(…q‡òµ„9˜ƒI†�¥„˜ù†*x†'¸Ùa]+ˆYx¨Y]¨]]¨ƒ X‡fZi"(hr(l|È ÆÝ¦}N騄 XÝdXð#àÁˆº�{4³Å„ªV†#€ÛdÏI†Ü£…€“©† =9a(8(\]èÚ®ƒÛË…Š¥…ú5€Œ�l½áƒš†!x†g¸=bÝD°X÷M†¦î€؆-h§è†.(„n膢&‡<<CòÚÈ8.HƒÀ‚œ-ïnX&Ðàqу$°A4°§\Ÿ}Ø™7ØRÓ�+Ðæ,ð:ÈŸ}X\8‚&h‚*ìÍÉ™ ƒâ¹€Ú3‡ØÄf0¨„K¸„]؇}X$P)IH˜ ¨k˜^e8?t˜Ò ÐPpÛ…ã»`؆Øm褕‚²z…âz…B”SÚG H$ï¾€:8„Cؾl _P°¡_ÒYˆ>�8…-Ø‚õ«FpD´k€(\ØjOØ3 È"B°Ýv(]P(ƒI˜€ x€¸Úafÿö‡®ÞÓ4B{p¾å©ƒÆñ­]L¨cS0Y�è@bðžkè\nèy^ZÙ¨(î (‰Oû‡L¤úrlXz‰Ë^_hðDÐ |UÒ�é}^5˜C%°EP�Þ!^ “Á…ÝVƒFsúiŒ�Kf+f›Ù½î†%ôï%Uð8%àCÿŠXpD––‡]XÙF ?wBb¤…Tð}ÞV€~؃]裕¾†‚A(ï (F08nR¨^Â7ìíV€Ë¶+s5 .ëÁ‚ÑwëkÀ„"„<ƒK¸€Õ5€‹}¦}ˆ´ZZÈ…Y˜üC‡¢'€ã¯øŠcÖPºhH‡•EøU¨þU¨Wx…ÛÖ„EƒÄržkèúxØ…ÞO‚¾V€^Z9dh˜4¨ê (q¯%í…‡ GàN ÀN nذ6Ë–-4¨G‹%êÕËæÁª9‚­[·dÅŠ«V-Z0o\­Z¡Ú²cÇz*ë.]:²iS‡9s *qãÆŽ¶eÉËœ9% êÅÆVcÍšºÒêã©óêÕ­={¶,X0]Ú„;wöìÚÕW¿‘½Fvõúo‰¿µ ãêQaİҊ̛׉9:ÄäÊa§W¯@}z…I—.@˜0Nüù3åˇºhÑL:ˆ×¤Q‚H‘<æò`Ĉ$;vTLšP"F4/1bxsà@‡ òjÔˆ¨¡Ì®} bNY‰b¡V­”*C£ ëšmØÐÔX¼xÁ$¾ÉQ’D>’%ñ­ÚDUý-ý·Æo„ºÊQn̘ŠÀJäÉã§JåP½Â #˜~úgb( Ç p¤†j¼ÍðDÆ#Í,Â(£ _Ê)Ç—i¦Èf†òi£Xª¨"”jª Õ™,5(—€r–X¢\xbi ñ¨gUêvf™hK˜-¶hcˆAŠh¥…ŒHÈTƒ&öÙ÷„=úÙOMU<÷Òkjfˆ)͘!†(¢Ÿ~2²$…>úˆ ˆ0è'2Ib’$:g¢„$Ú ŸIbœqR½&Í 2Â#“¦Ée–Yò™c–BYugž»Xb‘Š˜©Œ*±©7ÖhHÀ9™he‹MÚ£ƒm¶«e›NvئK*z<J™:9`ŸÁzJG&¨Î™‚œÉË™Ì,ÉÈ™t 5gâ%¦•<²$‚^zÍŽH(ä;bŒ&™$£(²™e¦f)(Y»bŒ™ VX¦ZleãS.6b“ÖDÙ¢½fºì¡Wƒ!5÷ÈÓº9`ˆ#ŽåˆCFôªáæc€œ&›'#P2…œA“$6!‰2Œpºé"ذö&¾@Rc”dŸ;뢛îÈ“•B=Jc!&©*»Üòã¥AéJXw¦²«¬š-:j^Ú5Ô8åÔÓL- $g„cމ1Ï·ÞfÛí¶ßaÇvÞe×ÝvßU@�������0�������0�������Ì���������������� ������� �"���Ò������ô���������������������������8�����������������������/usr/home/fatal/pascal//xdvi.tiff�Created with The GIMP�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/timer.xpm������������������������������������������������������0000644�0001750�0001750�00000022227�12214432632�016136� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 205 2", " c #30C230C230C2", ". c #104014511040", "X c #EFBEEFBEEFBE", "o c #30C234D330C2", "O c #38E334D330C2", "+ c #38E33CF338E3", "@ c #38E3410338E3", "# c #410341034103", "$ c #410345144103", "% c #38E338E338E3", "& c #30C230C228A2", "* c #8E3875D65965", "= c #410338E330C2", "- c #41033CF330C2", "; c #59654D344103", ": c #69A655554103", "> c #30C22CB228A2", ", c #492449244103", "< c #618559654924", "1 c #596555554103", "2 c #28A22CB228A2", "3 c #492451444924", "4 c #49244D344924", "5 c #5144492438E3", "6 c #28A228A228A2", "7 c #186145141861", "8 c #4924451438E3", "9 c #410338E328A2", "0 c #59654D3438E3", "q c #596555554924", "w c #20811C711861", "e c #28A234D328A2", "r c #38E334D328A2", "t c #861775D65965", "y c #492455555144", "u c #186118611040", "i c #186149241861", "p c #492449244924", "a c #514455555144", "s c #59655D755144", "d c #69A661855144", "f c #28A224922081", "g c #71C665955144", "h c #514459655144", "j c #5144451430C2", "k c #71C65D754103", "l c #186138E31861", "z c #79E769A65144", "x c #51443CF330C2", "c c #8E3871C65144", "v c #618565955965", "b c #69A66DB66185", "n c #618569A66185", "m c #618565956185", "M c #596561855965", "N c #596559654924", "B c #71C669A65965", "V c #208120812081", "C c #186128A21861", "Z c #596559655144", "A c #30C22CB22081", "S c #5965451430C2", "D c #79E761854924", "F c #9E798E3871C6", "G c #79E779E769A6", "H c #71C679E769A6", "J c #69A671C669A6", "K c #69A671C66185", "L c #514451444924", "P c #186124921861", "I c #59655D755965", "U c #71C675D669A6", "Y c #9658820769A6", "T c #79E7820771C6", "R c #69A665955965", "E c #208120811861", "W c #186120811040", "Q c #71C671C66185", "! c #69A65D754924", "~ c #61855D755965", "^ c #69A66DB669A6", "/ c #79E779E771C6", "( c #618555554924", ") c #79E76DB65965", "_ c #69A659654103", "` c #6185514438E3", "' c #6185492438E3", "] c #861779E769A6", "[ c #69A665956185", "{ c #79E77DF779E7", "} c #8E388E388617", "| c #8E386DB64924", " . c #861765954924", ".. c #61855D755144", "X. c #49243CF330C2", "o. c #61854D3438E3", "O. c #86176DB65144", "+. c #861779E76185", "@. c #71C66DB66185", "#. c #8617820779E7", "$. c #AEBA924869A6", "%. c #8E388A288617", "&. c #104010401040", "*. c #BEFB965869A6", "=. c #A69982075965", "-. c #71C65D754924", ";. c #8617861779E7", ":. c #8E3892488E38", ">. c #79E782078617", ",. c #61856DB669A6", "<. c #596565956185", "1. c #596561856185", "2. c #514459655965", "3. c #861769A64924", "4. c #965896588E38", "5. c #9E799A699658", "6. c #A699965871C6", "7. c #9E7982076185", "8. c #96588E388617", "9. c #104018611040", "0. c #D75CB2CA8617", "q. c #965879E75965", "w. c #A6999E798617", "e. c #B6DABEFBBEFB", "r. c #A699AEBAA699", "t. c #A699A6999E79", "y. c #A699A6999658", "u. c #8E387DF769A6", "i. c #C71BCB2BBEFB", "p. c #AEBAB6DAB6DA", "a. c #69A675D671C6", "s. c #492451445144", "d. c #410349244924", "f. c #410345144924", "g. c #69A671C671C6", "h. c #514455555965", "j. c #8E3896588617", "k. c #D75CD75CD75C", "l. c #9E79A289A699", "z. c #71C675D671C6", "x. c #71C679E779E7", "c. c #C71BC30BB6DA", "v. c #618569A669A6", "b. c #59655D756185", "n. c #A6998E3869A6", "m. c #B6DABAEAB6DA", "M. c #B6DABAEAAEBA", "N. c #4103514438E3", "B. c #28A230C230C2", "V. c #BEFBC71BBEFB", "C. c #BEFBC30BB6DA", "Z. c #492461854924", "A. c #AEBAB2CAAEBA", "S. c #514469A65144", "D. c #69A679E771C6", "F. c #492459654924", "G. c #AEBAB6DAA699", "H. c #38E330C228A2", "J. c #A699AAAA9E79", "K. c #596579E75965", "L. c #9E79A2898E38", "P. c #30C2555528A2", "I. c #28A220812081", "U. c #30C228A21861", "Y. c #86177DF779E7", "T. c #596555555144", "R. c #28A228A22081", "E. c #EFBEDF7DBEFB", "W. c #F7DEE79DCF3C", "Q. c #DF7DCB2B9658", "!. c #B6DABEFBB6DA", "~. c #9E79A2899E79", "^. c #EFBEE38DC71B", "/. c #B6DAB6DAAEBA", "(. c #B6DAC30BB6DA", "). c #51443CF328A2", "_. c #49243CF328A2", "`. c #5965451428A2", "'. c #B6DAB2CAAEBA", "]. c #492428A22081", "[. c #51442CB228A2", "{. c #AEBAB2CAA699", "}. c #8E3851444103", "|. c #30C224921861", " X c #38E32CB21861", ".X c #410330C21861", "XX c #492434D32081", "oX c #514438E32081", "OX c #492438E32081", "+X c #8617596528A2", "@X c #410330C22081", "#X c #59653CF32081", "$X c #6185451428A2", "%X c #79E7555528A2", "&X c #71C64D3428A2", "*X c #596541032081", "=X c #69A6492428A2", "-X c #8E38820769A6", ";X c #71C661854924", ":X c #79E7596528A2", ">X c #79E74D3428A2", ",X c #71C6514428A2", "<X c #AEBAAEBAA699", "1X c #9E79A2899658", "2X c #8617659530C2", " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X ", ". o O O o O + @ # $ $ $ $ $ $ # # $ $ # # @ % & * @ @ + % % % O O O = & - ; : O = % > O % X ", ". o O o % O % % + # $ , , , , , $ , $ # # # = < # @ @ o % % @ # @ @ @ $ O < + > = $ O O X ", ". O O % o + @ # $ # + # # , , , , # % # $ , - 1 , , $ , $ $ $ $ # % # # $ 1 % $ # + + % X ", ". 2 o O % % o + @ + @ # # $ # $ , 3 3 4 , 4 4 5 5 4 4 4 , , # $ + % # # # 1 < $ $ $ # $ # X ", ". 2 6 7 o % % % O # $ $ , , 4 4 , $ $ , O 8 9 8 < 0 ; , , 4 4 4 4 4 4 4 4 $ q 4 , , , $ $ X ", ". 2 w e o O % % % # $ $ , 4 4 3 3 3 6 r , 4 # $ , 0 t 3 3 y 3 3 3 3 3 3 4 < 4 3 4 4 4 4 X ", ". 6 u i O O % + + % $ $ $ p 4 4 3 # 5 a a $ ; 1 a a 0 s a a a 3 $ $ 4 + 1 d y 3 y 3 3 3 X ", ". f . i e o % % + + % # $ , 3 3 3 a g h = f j k 8 a 8 < $ # # a 3 3 a h 4 d h h a a a a X ", ". f . l e 2 o o O % + # # , 4 3 a h h z s = 8 x k c v 5 b n n m m v M M M N B M M h 3 a 4 X ", ". f V C 6 2 2 o % % # $ 4 3 a a Z M v v Z % A S D F G H H H J H K b v h L N < 4 4 4 a Z M X ", ". P V C f 6 2 2 % @ $ , 4 a h I M v b K U J $ k Y H U H b Z Z H Z h T v N v R G a Z a 4 4 X ", ". f E W f 6 6 2 o % # $ 4 a h I v n K K Q B R j k c ! 1 ~ ^ / / J T U b M $ 9 ( ) H J H H v X ", ". V f C V f 6 2 O + $ 4 L h s v v < _ : : : ` ' : : : : ` 0 ! ] [ [ U { } } = D k R a b ^ v X ", ". l P W 7 7 6 2 % @ $ 4 a Z Z ! | .: < ..v I I h I 3 , - - X.o.O.+.@.R v #.s ( F $.+.%.%.%.X ", ". &.. W 7 f 6 2 % # 4 3 a ( *.=.-.;.:.>.,.<.1.I Z ^ 1.1.2.p % & S 3.* 4.5.5.5.g Y 4.6.7.8.5.X ", ". w w 9.l 7 2 2 o % # 4 4 D 0.q.w.e.:.Z m ,.,.,.2 , @ ,.,.,.<.I 4 9 -.| F r.t.] c t.5.y.$.u.X ", ". O V W P 6 2 o = # $ D 0.7.i.p.a.,.s.d. ,.,.o f.h J J y p g.g.h. > k 3.F r.j. .y.t.y.< D X ", ". } C 6 2 > o % - j *.q.k.l.z.J g.s.4 @ <.I 2.2.n h.<.a 4 x.x.,.I & -.3.F :.-.O.y.r.+.` X ", ". t.T e 6 2 o % + r c -.c.:.1.s.h.a ,.n 1.m ,.J g.T J <.y v.x.,.v.b.4 6 - D c R g ! n.4.] k X ", ". m.M.N. 2 o % r x ` u.5.a.v.w d.B.<.v.,.m v.,.a.a.a.a.a.2.n y h.p <.f.f ` .* ..< * $.O.c X ", ". V.C.Z.;. O + A j o.z.a.J v.p a h.,.,.,.<.M <.n ,.,.z.x.x.2.v.p ,.J <.2 9 : | ) a N _ q.z X ", ". A.V.S.m.:.o % = A 9 < m a.g.g.J g.,.g.g.J J J a.D.x.x.x.x.x.a.h a.a.a.,.% > ` k * , , O $ s X ", ". a U F.G.V.:.% & A H.( I ,.s.b.f.g.J g.g.a.a.a.,.,.x.D.a.a.a.a.y J d.y ,.d.6 o.: | 8.U } J.J.X ", ". Z a e K.m.V.} f A H.N Z I h.1.@ x.a.a.a.a.z.x.d. p # f.h.v.1.y ,.<.% 2.# > o.` .L.t.j.G b X ", ". Z Z V P.h 4.5.I.U.A < m v.,.<.a.x.x.x.x.x.D.a.a.y o 2.b.y @ f B.2.1.s.v.y r ` : .u.s ~ [ #.X ", ". Z Z . i h a 4 I.f I.! v.m ,.g.,.a.a.a.a.a.a.,.I I p 6 b.,.,.b.a ,.,.,.,.y 8 : k D F Y.5.t.4.X ", ". Z L 9.i F.a q E f I.( m ,.<.p , p a.a.a.,.M <.y y 2.@ 2 1.,.a ,.% ,.,.a.4 ` : D .w.5./ ~ [ X ", ". Z T.% N.h a a f I.A 9 @.,.I @ d.% J g.J h.2.,.1.I v.y d.% d.v.h.2 2.,.>.T.k : 3.| F 8 , [ / X ", ". L Z h T.a a L > E A f ! ,.I b.1.m ,.h.m 1.n ,.p m ,.n s.y 6 # J y <.n g.O.k D =.n.] @.} 5.5.X ", ". Z T.Z Z a a a # u R.& A ) g.g.v.,.I @ I 1.,.,.f.v.,.1.f.d.@ p 1.g.a.{ u.c _ n.*.6.3 4 Z b #.X ", ". Z Z Z T.a a a 4 6 E & H.r Q a.g.,.J a.y 2.,.M ,.,.y p 1.% <.v.a.a.] q.k q.E.$.+.o 2 % o % X ", ". r.^ T.T.a a a L 4 . f & H.r ) a.,.I I ,.a.<.,.y <.1.a ,.,.h.,.a.m g O._ c W.Q.6.q $ $ , 3 X ", ". m.!.~.b a a a a 4 4 u f & 9 > ( Q [ ,.J ,.,.<.y <.m ,.,.J n v ..: k ` D E.^.6.! $ $ , , 4 4 X ", ". m.m.m.!.5.v a a 4 + a w I.& 9 & r 0 R J ,.,.,...n ,.J J U g o.o.0 S k 0.Q.$.z # # # % # # 2 X ", ". /.M.m.m.(.m.5.v % V O M 6 f A & H.H.r X.0 1 ( < < ! : 0 S S S j 0 k =.n.7.z % % + % 6 6 6 > X ", ". /.M.M.m.!.(.(.(.5.% V 2 n a 2 R.A A H.H.H.9 9 X.).).).)._.S S o.k k -.* < % % % % + 2 6 % v X ", ". /./.M.m.m.!.(.V.V.V.T 2 f , H Z % R.A A H.H.9 9 _._.).j `.' ' ' o.k ! 8 o o O % % + # b g X ", ". /./././.'././.m.V.V.V.(.J 2 2 3 U #.b 1 - H.H.9 9 _.).).j j j S 0 - 2 > 6 ].[.' x ].x : ( X ", ". '././.{.@.#.[ 4.A.V.V.V.i.m.J 2 , v / ;.4.;.G R 5 9 9 r - r > f f 6 2 2 E x }.[.9 & H.U.|.X ", ". {.'././.} 8.U #.#.(.V.V.V.i.i.m.U O f o $ h K H T U $ f f I.V V V f f 6 R.f f X X|.|..X X.XX ", ". {.{./././.t.A.m.J.m.V.V.V.i.i.i.i.A.{ $ f f # $ # f V V V V f A U.|.|. X XXXoX XU. X XOXOX+XX ", ". {.{.'.'./././.m.m.m.(.V.V.V.i.i.i.i.i.A.%.I I 3 O V I.f U. X X@XXXoXoXXXoX#X#X$XoX%X&X#XXXoXX ", ". r.{.{.'./././.M.m.m.(.(.V.V.V.i.i.i.i.i.'.] z ` oXXX@X X X@XXXXXoX*X=X%XXX$X%X XOXoX%X+X%X+XX ", ". r.{.{.{.'./././.M.m.m.(.C.V.V.M.L.-X;X` *X#X*X*X*X*XOXOX*X$X=X*XOX=X&X%X:X&X+X>X&X%XoX=X$X$XX ", ". r.r.{.{.{.'./.5.t.'.'.4.-X;X=XoX#XoXoX#X*XoX*XOX*X,X%X%XOX%X%X@XoXOX=X%X+X:X&X$X#X=X$X>X%X+XX ", ". J.r.r.t.<X1XB ! `.`.oXoXoX*X#XoXoXoX#XXX=X>X=XoX@X:X+X:X:X:X2X:X:X>XOX$X#X#X&X>X>X&X,X=X=X=XX ", "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 X X X X X X X X X X X X X X X X X X X X "}; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Speaker.png����������������������������������������������������0000644�0001750�0001750�00000021671�12214432632�016372� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���gAMA��± üa���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� ÒÝ~ü���tIMEÐ ,Z³.�� �IDATxœU»Y“dGr¥ù©-÷^¿îî‘™‘™Ø ¢Pl)²Éy‘™–þ œŸÖý[fš-=ÓóÀaw“, €H ÷X|½‹-:v#Qí".’ážârÍLõè9GÕäïÿî½™8m‰q´!çjìG†$Q!$GÅ@”¬Šs²’dU¼†13f`”¬PÅX!G%‚–‡PP²" Ö µªÚ±ZVcH9S׎•—]yITqÖ Ú“†ŒeLBR¥h !E²ä!Øñ¨öxïüÞa±\ØÐJNçcß_ =ç1³PÅÇ„ÉIqN¤n…ª‚®·ŒQñ$’Q¬€UcB‚ XÁ9P…¦ˆ†þ3§‡Fi;eÚ„”Á9¨kK5·eÁ¼ŽcB4òvb dUlÌ$ÀYâ6¸ªæ0Žô7‰ YjvŽI4¥‘1›ìë&,VËýåÉÉÕ½^Ÿß{€»}{˜käø’ÞϘ3kdV;l³Ä )A+#%,†F±†¹3X ]H IJ"w/oƒAEÑ Î à Ue¨œ”ßÊŠf%±p½K³ "ŠQã`^ í¬¦žU¸ª¡WÏ›ÃÈ.y²ÖzªºÒÊzÎæmêÇÔ=zxyýño>þéüá%›ÍMï†1¶•ãä}Éù/Ëú1‹±}Ÿ%©JÊå„-á Šw†ÊZ¬Ël‰~ƒ’Ë ò†ºuPe9 ÕÌäT~7™¡S¬(Ùú ’"¹l^íÀ{‹hætY3k,ÎW$ ‡`ؤŠÃ­eЄ³5US³\Ì©ª%÷ÎN5bt¹¼LË“åÞUþå›Û·üüú_6}·ë ¹JI7gAõáÓ“n—–‚º„ˆf±BLಀu‚GIÛcG·Í$œNN=ÙZŒ*㨌!*ªBúC# Bm …1B3Á[ƒwg•³¥§ªÊ¢›vÉ>^wʦ ÉP{ƒq†¹­Y®VÜ¿ÁÙê!ËÓ'¬ON4ŽIÿñŸÿklWÍÎÙŠº®ß(,NOŸT®µ >ç<;öanÅ,Ų4‚o¬•ž$V±d"F…qTº†>´Â|æ©!'KÔL8Fr*ù  *ˆ€7B6–ã˜IY9!çŒ3‚C X ‹ÖRWŽº²Ì—K‚©Ù ާ%$!k¢jZ­–¬×+NN/hÜ9>Cåå«ç<}ñ#_ÿq«£‹å<Tõ’Æù~·›ÍšÆ/æ ë0ITÕÄQmíÅ9Q×8ñ)©9ŠÍˆèÉЉJ$+̦T„!(aŒ ï þ亠ˆf"BF±€QðÞÑ-È_ UåX­OèÕ²¯5Y<ûcÇrÑp±:a±XpÿÞ%Ëù=šåC²6H6¼|ñ#oÞüÌn¿§ij’¢ýn«ÖZ¾ýæÎúÆ¥´³1˜¦‹ ê9÷#Z‹YE®¶HNˆõ{²8–2ÄB]Ô1 ãAÕ²PE°"'ä˜Ù±ïP_P¬3+´µÅ{˜µ5Ë“zAøÓÎb|CÊBU{¼u´ÆóèÉ{\^>æñùGÔ³åÙó[žýüßɱ'gÚª&ã™ÏO8?;•Åj%ûÝN¬]Kå-F7o<A‘1Œ "‚"ΠÀHy^�ï r†˜*yy¥¤(‚«k ±Oì{˜„Æ 1g¼1ÔáädÆzµ dØáíÎ5 )Q9Ëéé ½Çúì«1Ö³ïᇯؼþÞî®è†«Åœª™!’išŠ³³{ ¡çæú‹ÐIªng¼„œ¸·>P܇óÞ(o÷†WÎщ²´›! t©¬bÖ€10Ž¥”Y£cÀW‚±ÆLL +ÐV€>)•·TµåìtK!IÍ/½e{ …"0&3Ÿ·ÌW Þÿ /¿ /Ùï::MüéëÿÆövKz‚Xð•AUI±§?ö4íŒg??¥ïNNØÚÃÈOÏŸc%㫆ºnɸ¯¯„3£¬ÚÄ"ƒ÷†Ñ8: ©2K›èzˆÀ�¡%H ÷¬1I™0*¨ VHÖbÅ2_µ\Ì*|åIÆ¥bÛ%ƒ¢¶¢]$+´mËz}Á‡~Æz}NJÂnàO_Ë~ÜbUH2à¬ÇZ¥?vŽ’*; !ŽÄ‘r0"Ž5ÖUhÎXß°Zžp>›³Ý_qØq!+×:µpÙf¼dú$ô£ámv4•R'E†Ì˜À:SI g …R T ~æiOÝÖøjFµhéƒa›…A=·»#)eÆ11 =ÎWœžÝçáÇœž>æôtÅ›·W¼xù3Çã–¾8n÷ØÊSy‡ó4±Ý\Ó÷1Œ¨@J‘qA•œ3ª`ŒÁƒsžœ•Ù¬A$`½";Ë“'ïáò¾‚¹B­¼á´ÙLYùÄï<¼J†g[Kl«¤T&1#s› H2!ùºa~¶"OŸ ƒñ\í…cPvÇŽ0FƘ¨ªŠ³ó ªjÎz½¤‹‘qlxúÓüñÛ à0&£ªŒãHUµ´óŠ0 l·1Žl·[Æ0"RÊ«µŽªò4uƒ±EX¤œH1‘R&kàpØ“R¤ï¬×§œ.qµ…lALáâ3 ÖÀn„*ÃÂÃãœù`ùåhy3Z^¤ ­”vˆ¤™âOZhOÈÎÑ»Š}0Ãq ì¶BÊx_1›-8[œrï윪™Ñu‘ÛÛ=Ûãm QIä”ñ>"bCÍGú~šéú#1bŠxW±<Yp~vÎý‹ NOO¹¼¼¤®+¬õ€p{{ÍëWoyúôG^½zÉv»åp<Càß~‹Z#¬wŠZh2ˆ‚ØdØ�']â¾À¦ò<óÕªå&×´u­g\o3¯oö»CÓÌh}¯æÜ?„ƒÁr}uÃíí5ý°Ç¹†œÆ1Ð4€ÙlŽsc”ã±cz4g|åyðð!Ÿ|ò ï¿÷>—ñðáæ‹1FD ílŽó–˜2F„7oßòÿýã?òÿ—ÿÌOÏžr»¹áß|SRª²%ÿ÷K”f¾/QÐh,¼¡ 𞃙‡‹6ò哚?Œ ºrÓC<ŒÑP7-í⌺n†È¬nhüÑȱKôcÏvCŒ‘3ªuíI)â}…÷ŽÙlF×õô}G#)EŒV§§|ùå—|ñù<¼|*Äqä—ç/!�†¡ïpUÍ¢±\­¹¸¸ÇÙÙ=þ÷÷ïyüø1ÿðÿÿãŸÿ;W×W8k„˜•}1*‡,T­°l ËIPWÐõ…l-,áÑyÅý¥¡Ã‡L?DÆì8=»GÕ´,ê{ìƒtôãMP=ÒuuíÉX M3#¥\}ßQ× ã!2ŽªJŒÙ¬áü윯~÷;¾úê¯Ð”ÙÜîxñü9¯^¿âúú†ë«kļ« áC3«yïÉœž­ùâ‹/ùø“Ï89YrqqÁúOÿ'.j‘é)b„¬ŠˆÐOi€@ÝÀlB*ô5záçv;Å,õ¬¥î«ùšÓõ¾úìãÅ‹Ÿèßruûœ¨UªE$O'¥4MMß÷¤ù|¯ÖÛífú0ŸÏùàƒøäãO¹|ø«·oùÓ÷ßs{sËõÕ[n7›IkêºÁû9Ö !D®¯oxóú Uåùã¿çïþ—¿ãûï¿%¥Äïÿúop£°ëS&g˜[ÁšÂú¢7´^i,l¤�e°’…î‘&3ŽÁp¶Z±^746óOßýW~yþçç÷‰¶uŒcb¹\±ßïéû‘®;’4³hç CÁ�ïÃÐÑ÷=Î9ÚYËgŸ}ƧŸþ•÷üðýüøì)¯_¾&Ž_{NVç¬V÷©}MÝ̹¸¸÷U¡Žüôô;^¿zÎÏ¿<¥ÿ‡#ÞbÌüþoþ 0*ä(4F‰b*NORè£`NôŽÏ’€ª†rc˜#ĉI1ÞñâÍk®6ÿÀíæšåòŒ„ªšq<îX,Ö¨FRŠT•eŒ— Çãk- tÝív‹ˆPW .ñ›?¦nj~øá{þõŸÿÀíö2œ¬ÖœŸ?b1?AŒ”Ã~ËÓnGÛ.X,œœœòÕWÍë—<{ö=»Ý–YÓpÿÁµ¯qY‹²‹’—Æä¢Ñc€ºVl(††�É”Hèr¤†œ3VŠïwu}Ãûï½Ç~;prrç2Ûí-‡Ãc*öû ))1ŽTUYhOJ0›Õ„0²ßoI)ÑÎæœ®OùàÃAᛯ¿á_ÿð/t‡Ž¦™SU §ë3¬1\½}ÅvwÃÐôcGNç=óvɽûxxù˜‹ûøøãÏùåÙOì[œ÷Xïqš…¨ŠØrêV•h„4–ÓöFx3”�”ðG‹ðI“ÌUUêʱ^-Q”ã�Ë¥g³Ù°ÝÞBÀûB–BÁXBˆàµrN CAüÊ×, .^báǧ?òõ¿þÃq`µ<¡]¬U¶Û }ß³Ûn9·L¢E¤÷[6·W¼zñ .ŸðùÉåã'¤g?°½ÙÑ;\B‹ˆ‰E¢VR¬*µkK!geTÐÉâ‹Y‹ebFŒc&¥]ØÓ÷››7¨jÉå¶¡ïÆ•‹ˆ­iššR‚®»-›£Ð¶sÎÏÏi-/_½ä‡ïäØ ,'Ì—+bÌl77ô]G7ûÇr‚¹€¹CLBîôý‘Ý~CÛÎùè7sr²¢ëŽÜÞnpÆ·&&¥Z‡P*@ÌPt,Õ єϒ@¥Xæ1enn6lö«õ=`_œâhšÆ8T{æ3(9'¶Û uSá,Ĉ1ÑÔ ‹ù‚¦n¸ººæÙOÏØn·´³UÝ¢I¸½¹b¿¿%Å@ÎÊbQáLƒ¯,!Fú1y®JŠ™!bŒüñ›a>_pº>#ÆÈÕÛ·8'SQöÙÀQ¡'¨0Œ‚ASH§UÈAÑ™g`Œ°;Ð,óرßîiÛ–aˆX+ìv{’FŒ1„hç3¬-<~¿/]f³ï=›ÝŽý~Ëfs‹«jfó"ÂfwËvwÅ8FŒ'×<y°fÞÖ8kA•Í¡çÕÕ–ëí‘ýn ÄÈ#o¯^ðí·àóÏ¿ÄK=.M!^\ %%ˆU±ªb†C*Ì/!DŠG  j…J”ë„”aæ îq»Û³;ìØîŽäœÈÙ‘RÀZG‘œ•îx¤�wIœ2Îy*_‘RböÛcJ? ûí-·Û+º®ãÞIËÇÝç³sÿt°"œœÌqÖrµÙóõ/ùéù5øî9ûCGÊËO9;?ãd±d·»Á© I¤Ø>²SrŒ‡¨JTˆ )”(é¤l˜Pº<9ë]Èçg÷x{µeÑ.ˆ1‚ecÙ4ôÝFäQUBÉ9“Uiš_ùwhÞ=M3ÃW5‡ã-ûýóù%Ÿ~øˆßçlÙ²X̨½Ã9‹5Â0D泊å|Æ'ï=ÀZøoÿúØèûž×¯^0oÛâb‹ ¦Ó¯Œ¼CÓ‹ï¼¾©ËS)…:•ÆÚYœË„¨|ÿô! W7D`Æ1⽇i‘ÖYÂ8’ÒHÎes4Í Uåv»%Å€³Íì„qØnn!üí_}ȧ<àÞÙšÅbƬ­™5Þ:†a`ÌJÊ…Æ®æ5'‹†ÿõßþ%ÇÃÈ×?¼@µ�èf³ÁÅ¡ŠÈT>ìÔôЂô†Ò‰±ªôÓ®D…d„DÁZ¨LÙˆã±ÇÞ܆a�2]×£j°.cÅ2›5ï¾Ké.Ÿ”ºªqÖqØèGŒ5Ôµ#¦‘Ýörà«ÏŸðÙG—<8_³\Îh*‡3 YÙõ=)h.FˆuïKîÉýÿöw¿ávwàåÕ‘®ï黋åsgk;•¹‰ñÉzˆ¢†¢2x/‰8*FaІ13„‘>úo=ΜsxïY,fT¾ÂZGß„H)•wÎc™ÍZć㑘3MÓâ}Í09öß_ñÅ'OxryÆåÃ5«y4 CTRVÆA9:vÛC×c�)þÆ£‡÷øø½Kfµ'çÄn¿#†¤Ä\¿ô?ô݆`Jì{ )š‚ƒœ•”§Œ!cİïBù i@5‘’NÒ¶äör9ÇZCÎiÊý„f¥ª*¼óŒÃˆ"4u±–a GNæ5¿ÿíüõçryqŠ7†”`°Î£ ƾ' =!ŽÇŽ›› »ížœ"ˆpq¾æÓOÞcµ,i¶?ìØï÷ Ë-…~jhÄ™¢ SñA±üº±ô´1"¥¥-¥ÙYYÃf·áƒËG„†€1œ³(ôT‹Ý¥Êª1G†0b¤Hd#†a<’ÓÈï¿|¿ùÝÇœœ´xç ƒ¡T r$ôGÂq@Ñb¸3š"C?Çq«Õгõ Æ9»Ìd-¨ïÍ´¾© sIø¤TÁŒ�p*h(x‘SÆhÂ;ƒãxòáÆqÄûbk ÃÀ8Dö»1Eb,@Dp¦€×ævC‡¢-¬!¦Dç ~ÿå¬Oæg±K»j ýîH¿ïâ@w8pØí°a"9&TV§'-îŸáœ!¥HˆS­`¦v× 2…ùd ¼{ âÔqR"FdúÛÂéúŒg?¿ u=Ã{Çêä„årNJœªQ…2BšŒŒµÁ0 Goù7ùg«ï<Þ9r[Õˆ­<Õl‰o,ç4óK"’C×1ô=FÊðFã…ÓÓfu]Rå°Ãdešþ ð�9@9Î_{|)ÍL|¸äBÔb“¥Xú¾ªØÜn¸º~‹N WBŽÇô“ú.Ò¬«Š†¯ÖzŒ±XkÆ‘FÞ¿<僇gœ®WÔMEe+Œ«ˆj0UCÎB‰¾Ùïw„¾I8?5\eÆVJå«ÕŠå|‰5–N¦ò7 ’ Õ0L'¥BÓ“ISrØÀØÐp¦DѱëùèÑc¾ÿþ)ã¨*ÇñX¬lH©œ¶1†¦®§ê°`<@ÎTUÍñ¸£ñðäá9¬ig óùœ~t]ÄU3n¯¯Ùl¶l6û=šÞYšJhª !3¦‘¹säH)3;Yp¾^3Ÿ7Ô›ª5aŠû\"!çR³™"ÔöØ(…09`œP5¹GH©›C`u>òâúƒ!SJ\?t8kP-‹‡â×à}Aÿœ2Î:bLĹ:ãÞé‚{ç',Wó2`Ñ'pŽ—ÏŸ³½-R·ëzRÎä¬lÇȼ­X/K /«RU ’”Óõ’‹{§¼|sMc¤,^ãdxp×Á-‹͵Sš8S$É4¤X”cÊôý€ˆ¡{ê¦ÁZ¡ò(~#€‘ÂÄ|Us.í,â8`MæÁ½/ÏX/Ohçóê]àÍóç·[ûr ¥wSBÐ ‘1ÄwÕ¢PõRÄSŠ` µ4U]ºFPt@¶Ó¢¸–byQdñ]‡—iSdúÜ"“ 1“Å;CSÕÄñ~FN‘í¡Ÿò4ßå™à&²¤YI±�£ˆ!ægàá½5žSÏjRˆŒ9°Ûlé¶[†cÇ~³ç—›o6ÎXN «ÖU9ô=mS¡”r›RB¬Å¥Ì8ޤœÈw@Ž”pщ)w7þïµ|‘´°ÀÈ”¹Lke#t] ÷;NO×ì{œ¯°ÆL`¨ÓIÅ`躎!ôT®"ç„³Ž¦r|ôÑ%íÌS756'â1ÆÕÄöp䇷|ýó–!gÖ§§0«±}¤v‘18â4Àe¬”“ñU`KÄX)i’=_êA}3y :}nîÞw‘`PzÅc!dÚº8&×77ŒÝÈÕÕºc7•½²ð»äÊ9“bÆZKL A°Ö¡ªd"çç'<zpÎýõšÚ)1d†!ÃÈa¼¹=ðÝËÃQ_}õ[~ûû¿á(5C„ã»Ò*bŠp‹C$åLšRB Ê»cšŠ~Ìc©�eþ¯œ~üU»€BŸjî¦Ç„~È 10?™M K¡®kD¤„ø]õÐ2 gŒEÓTû¥€q]U\>¸Ïý³Úº C7âšúã‘×7Žã9‡¿ÿûÿƒ÷¿Gsúhkº!Òc™Z¼«0"$…żÐñ”ËBŒfÉÜ¥gžÏT²ÓÝ‚í”&b,›1ŽŠÆDLRix8븹¹™ëËïVUAÀLl©³œ5ag½Zsÿü”ÊAÖˆFèU‰Ã@‡càf?üÙl ü‡ÿø˜µ Ož<FÄ#bÉ ÖWT¾.úC9œ¯ AN‘”Ré 8+h*ÎpJ¥æ[ãønÊ0„zªˆ=ÄZ ú±„KH †óó3bÌ#ôý0-¼ <±8gïvc-)F¬11´m…KŠ‹eH™1)‡!0üÙé<|ð€Ÿú™”"Î:jSÑ´mÁ«X£$„”•#ÃÐ3ÆbÄ8(UB&�Ì…¾“ãd€è„ ¶ô œ™ÒˆšC&çļªÉYßÕs‘¢DÊKž8„5ž"1g*[ÆlŒ3TUŲBHŠqŽÚ;BLÄt7“X^U]óôǧ„Y¯ÖR™)tŰR†$¬X’©Cà8ô„iM9Ý‚pwþDšæuj‡-6yšÊ_HS¥P%¨ÒO½‚;,Y¯O¨ëU¦i - 0—üGï¢*!¢„Èd¼÷´ó9ë“ÖAR!åR“*a8–‡6æÝ´íŒ~øì/þ‚qè˦+hÊä˜QD•@H‰ÛÛ-‡C÷Î5BY°HÉq˜N{Úd,râ$\&Éœ3 ±¨C%ŠXµ“¼fzXÁLb#kF5c&.‘SÙ””Ë�1BÖˆ³‚w‚’P ‹b Y¡ñ%}ÎÎÎxòø ûwËÙÙšë?B ´3Wˆ›–Á c£ŽC?°Ùl¡8?"‚Á càÝŒß]:Üéÿl %ŒüY0¢¢!ÑX¥2Š&p^¨ªÒõíûþÑ»ÒQ‚…œt25ÍA¨|…3Žº2˜¬8qQìT´+ç˜93¬ñ\>~Ä'Ÿ}Êã'OøÿôOܾ}ɲu,fÅ"—I|e”!FÔT1'Œ³ˆœ¡ÈÞ¤¿Ž®ß½eJ\.}Á4EE*!k‘ê€ÇŠ¥®<MÓÐ÷=H©ûþR„\h"åN±–Ê;4gRR¬·,Njö0ª¥ªj|U3««yM‘ÂÈn»åÿßÿ‡Ÿ¾ÿ†¥d]¬¨*Ϭ©h‡«yBpu†ëÛÃ1Üõ4 囜Þiñqb‡"ü\ &• ISÚ-¯äiÜùDʉÃñÀÕÕméºL<£DÀ´ÅªäÉlÈ(9¥òV%æÄ#󦢪=«˜W °ºÎf³áþÙ@Ô=Ýþ–?}½% GÎf–Oß?gµ˜aŒ0oÔ@ÛÌØz´ªéŽ#ÛíaªNÍÝßÇð.ws.²øÝßRjÉéÒ9-¢¨J Fßy )ú~`µZr8ìÇñW×Yx· ªúîÎHÊc Þ;*ïévãD—¡™9¤Y²„ËÇO‡�Þ³8Y2ç ËêŒ'ÔÎa¬¥më¢;¬)l,¾ªÙ½¾a8`M¡âÎW¥=>©E„r6 Ó¯Åõ™D‘½;Äô+PhÎhÊ8±¢»ÉôTŒ‘BycàNx¡rúÕ-¿‘kÊpdJ ÑL=«8æ‘ÙbÍú¢Ã5ŽóËsú®#Ç@[{LÊtûš•Ù¬B³2†‘¶mI¬óDSñöê†ÛÝ‘"UÓ0Ÿ/pSôãcª.QK¸ßa‚d í!ûéòÄôeŠ0± ŒÀ¨™¶¶´íš×¯_Rüÿ)û§écò|åwŠY: #iVs @HxWQ%KKÓœCRfMƒk,q }Gws[š´)ƒf"¶®PÔº}uµçõ› 1dœ74MU¦ÐTKî—25ý;•Eé´P¥¤@’‚:¢p×1R\ÎX…” çúMÓ0Ž901Ñ<1Ã?ËkbÝqäÐÜ[6$M´«–0ôˆmpþ!ûÛŒû$ã¼£],2©ïˆcDœ£öY‹JIyùú†íþ8)ÌŠv¾ÂÕ³rvwÏÀÝ/¹»Sð t_Ê÷ï6+O”�;õ #„qÎr<v€™ }g½ÿšùE‰)sdêPå¬Ün¶ÇW9ÂØÓØê”™$4C]¯@„qd8éÂ�•§ÓÍŽÊB [×ì‡È³çoÙm;ÚyÅbÞ2›·Äd G‘iñ0É^y°ï° äwe1ç(Q ji¥ç¤ÉX[N{6k°Ö–ʯ­ùÎn..¡4Kb,ÛCÏ›ëÞØ2K”W­Ñ,4u¤=íiº=.¨¬b$apԵ÷5ueY®—D<Ï_ÝðòÕ5™Ìò¤euzŠsYµÜgšðgÇÓ[Q-ô]c|‡Qš ßÑt%¢¢¢)£Æ¨ƒ¢¢³Y£Ã8jJQUQ«‚¨™HƒQ)ð*L­›Zc}úì­Þì:mŒUâ 1ZõÍ‰Š¬t콦ک=™iÛÎÔ9Q5FoÕY«Yœ&õúæú ß|ó³^oÚÌ*]­Nµ-c5åˆÑ»Ã/”iZ´ha¢¹ÜuR ½ÖX±Õ€æ¢VÕˆj%Y;¹PYU¦h1c*›:ýŽÞÕÁ»Œ3¢)gíú£fÍZ9§??«?¿¹Q£íz®"ªcß+ ZÕN³š-:U­¬j F½¯4ªUµ•ßýø‹þòê­zþæ£ôÞýKãu ©ô/1¢Æjž /‰w7þœJ¯P&¶xg™¹\8€Hi’ŠÚ ±c³=¾‘ÐE��*IDAT³¿½·Sã#ýÊÞO1I³&ºã0Fæ³–Cwä»ï_óÁ—œ¯®™-/0ÆqÜPÙm;ö»#!Ú<q~« !3dØv#Ï~¹â»ï_ê³~öÅçáãO?‹1„¸ÛSˆc^ž´ê€ä-耆]Ir\–Bd:+Í¥âÝ™[ 䍨Z°òëšýþHe6¦ˆ1Õ$ƒ J^¾³ÈDÀY‹wBJ‰êÓsbøá—WüñÛŸù¾ñ¶Æs„8r^eìÜ2vº Ö²Ùì2„lxþò–o¾ÆÕf§}üýí¿Î¹Ý/W¿no7]ß“#éh`o„kàå´†åz ˆAî¦Åîî»Þ %;Ås±Ÿ ‰ †DÎeŠ¢ò¾øÄ )æ)�äÏ¢¬1䔨m6¬–sÈ«7ßýøšº*«õ Ö×d77GRßÁ8ô#û}Ç® d)|ÿé//ùåù§÷ïë_~ù[µ³ôæõ«ýÍííËÂõý‹ó}UÕ£Žb¸r†Ÿrcx£™™)Ó&èÝÎiññ®TN9*3©H ¢Šñfš%úÕ ðÞ(9ÿªåéRD±ÅsNTû-ýpJ]Ul»žïž¾¥ÕTºÍ´L”)J¤\Üã8‰ÛýçÏßòæjÏÉÙïø‰®– n®Þ¦×¯_w»ýáÚ{÷SÓ4WÛíö考*¯'`ƒ²ð€¡ÔúwÉ*RXà;MÃD‰'º8³ÊJ´j&³“Ò*¦‰ýŸ<»rk¬+\¢ïÙí¶Tg§4MÃñùåÕ Ö.î-‡HLB][RÈìŽ=ýBâÕÕ†ç/o8ް¾ÿ˜óï1óNoo¯yùêU¾Ùì‚uvÿâÞ•ˆ¼Þívg,ÇéŽnŸ3oPMÞ„LÌUî:CizÚ;û\(#ô’•F”47H_.]èàÑ”:©BçʽỠ4"xç™5 ŒcÇ~`½\Ð.[œõ¼¾:°Ý÷œ½nqÎcbVUg¹ÝÙìl¶=›}øš÷Þÿ„³û–Ýí•ÞÞ^±?ôìü,¯OOGkíñ矟öûýñÿN*ÑÔ����IEND®B`‚�����������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/TerminalGNUstep.xpm��������������������������������������������0000644�0001750�0001750�00000051301�12214432632�020032� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * Terminal3_xpm[] = { "60 58 871 2", " c None", ". c #E9E9E9", "+ c #ECECEC", "@ c #F0F0F0", "# c #EFEFEF", "$ c #EDEDED", "% c #EEEEEE", "& c #EBEBEB", "* c #E8E8E8", "= c #E6E6E6", "- c #EAEAEA", "; c #C1C1C1", "> c #D8D8D8", ", c #DDDDDD", "' c #DCDCDC", ") c #D9D9D9", "! c #D7D7D7", "~ c #DADADA", "{ c #DDDEDE", "] c #DEDFDF", "^ c #E2E2E2", "/ c #E3E3E3", "( c #E5E5E5", "_ c #E4E4E4", ": c #E1E1E1", "< c #E7E7E7", "[ c #CBCBCB", "} c #D1D1D2", "| c #D2D1D2", "1 c #D5D5D5", "2 c #D8D7D8", "3 c #D6D6D6", "4 c #DEDEDE", "5 c #DFDFDF", "6 c #C8C8C9", "7 c #D3D3D3", "8 c #CFCFD1", "9 c #CCCDD1", "0 c #D7D7D8", "a c #D5D5D6", "b c #D2D2D5", "c c #D0D1D5", "d c #CCCFD5", "e c #CBCDD6", "f c #CACCD5", "g c #CCCFD7", "h c #CBCED8", "i c #CBCCD8", "j c #C9CBD8", "k c #C6C8D7", "l c #C5C6D8", "m c #C5C7D8", "n c #C6C8D9", "o c #C4C7D9", "p c #C6C9D9", "q c #C3C7DA", "r c #C1C4DA", "s c #C2C6DB", "t c #C2C5DD", "u c #D5D8E2", "v c #E3E3E4", "w c #E9EAEA", "x c #C8C8C8", "y c #D4D4D4", "z c #D0D0D3", "A c #74799C", "B c #676F94", "C c #626991", "D c #5C628F", "E c #5A638F", "F c #555D8F", "G c #575F92", "H c #545E91", "I c #515A95", "J c #505A96", "K c #525D99", "L c #525D9A", "M c #525C99", "N c #525E9D", "O c #4D599C", "P c #4F5C9E", "Q c #4C5AA0", "R c #4A55A2", "S c #4A56A0", "T c #505CA4", "U c #505BA4", "V c #5361A6", "W c #5964A9", "X c #5A66A9", "Y c #6D77B1", "Z c #C6C9DD", "` c #E0E1E3", " . c #EBECEC", ".. c #C4C4C5", "+. c #CBCACE", "@. c #4E588E", "#. c #06156E", "$. c #02146E", "%. c #021170", "&. c #041372", "*. c #041373", "=. c #051576", "-. c #0A1A7E", ";. c #0A1A80", ">. c #0C1C81", ",. c #0C2188", "'. c #0E1F89", "). c #11228C", "!. c #122790", "~. c #132592", "{. c #162893", "]. c #182C97", "^. c #1A2E97", "/. c #1B2C98", "(. c #1C2E99", "_. c #1E309B", ":. c #20329D", "<. c #21339E", "[. c #2334A0", "}. c #3B4AA7", "|. c #CBCEE0", "1. c #F4F4F4", "2. c #F2F2F2", "3. c #C6C6C6", "4. c #D2D2D2", "5. c #C7C7CE", "6. c #4B558F", "7. c #061573", "8. c #011072", "9. c #021172", "0. c #051978", "a. c #071779", "b. c #091A7F", "c. c #0B1B82", "d. c #0D1E87", "e. c #0F208A", "f. c #11238E", "g. c #122390", "h. c #142991", "i. c #152792", "j. c #182A97", "k. c #1A2B97", "l. c #1B2D98", "m. c #1C2E9B", "n. c #1E309D", "o. c #22339F", "p. c #2233A0", "q. c #2436A1", "r. c #3D4FA8", "s. c #CCCEDF", "t. c #F8F8F8", "u. c #F5F5F5", "v. c #C6C7CC", "w. c #4A548F", "x. c #081776", "y. c #051772", "z. c #051678", "A. c #07187B", "B. c #0C1D87", "C. c #10228D", "D. c #12268D", "E. c #132491", "F. c #142691", "G. c #162895", "H. c #172996", "I. c #1A2B98", "J. c #1B2D9A", "K. c #1D2F9A", "L. c #1F32A0", "M. c #2537A2", "N. c #2739A4", "O. c #3E4DAB", "P. c #CACDDF", "Q. c #F7F7F7", "R. c #F3F3F4", "S. c #CACCCE", "T. c #455190", "U. c #0C1B79", "V. c #081B7C", "W. c #0C1C83", "X. c #0D1E88", "Y. c #12238F", "Z. c #132590", "`. c #142693", " + c #1A2C9A", ".+ c #1D2F9C", "++ c #2638A3", "@+ c #2839A3", "#+ c #283AA5", "$+ c #4252AC", "%+ c #C8CCDD", "&+ c #F6F6F6", "*+ c #C5C5C5", "=+ c #CECDD0", "-+ c #596298", ";+ c #101F7E", ">+ c #081879", ",+ c #0A1C7E", "'+ c #0C1D84", ")+ c #0E1F88", "!+ c #122490", "~+ c #162994", "{+ c #1B2E97", "]+ c #1F329A", "^+ c #22349C", "/+ c #20329C", "(+ c #1F329C", "_+ c #1F319D", ":+ c #2335A0", "<+ c #2335A2", "[+ c #293AA6", "}+ c #2B3CA8", "|+ c #C4C8DD", "1+ c #EDEEEE", "2+ c #EEEFEF", "3+ c #C9C9C9", "4+ c #CFCFD0", "5+ c #606A9B", "6+ c #112180", "7+ c #0A1A7C", "8+ c #0A1B80", "9+ c #10218B", "0+ c #142590", "a+ c #1B2D95", "b+ c #293D9E", "c+ c #374BA6", "d+ c #4256AD", "e+ c #4257AE", "f+ c #3F51AC", "g+ c #3547A8", "h+ c #2A40A4", "i+ c #2436A0", "j+ c #2C3EA8", "k+ c #4657AC", "l+ c #F3F4F4", "m+ c #F8F9F9", "n+ c #FDFDFD", "o+ c #F3F3F3", "p+ c #CDCDCD", "q+ c #D1D0D1", "r+ c #646B9E", "s+ c #132383", "t+ c #0C1E80", "u+ c #0D1D83", "v+ c #0E1F86", "w+ c #122591", "x+ c #203597", "y+ c #354AA6", "z+ c #566AB6", "A+ c #7387C5", "B+ c #7C96CC", "C+ c #7E99CE", "D+ c #788BC8", "E+ c #6175BE", "F+ c #495FB3", "G+ c #3648A8", "H+ c #2D3FA6", "I+ c #293BA4", "J+ c #2D3EA8", "K+ c #2F40A8", "L+ c #4654AE", "M+ c #C2C5DB", "N+ c #F2F3F3", "O+ c #F9F9F9", "P+ c #D1D2D3", "Q+ c #7076A3", "R+ c #152485", "S+ c #0F2087", "T+ c #132490", "U+ c #1F3197", "V+ c #3C52A9", "W+ c #607BBE", "X+ c #83A3D7", "Y+ c #7892E9", "Z+ c #657FEB", "`+ c #5F7AE8", " @ c #6D90EC", ".@ c #8DAADE", "+@ c #8196CD", "@@ c #6373BE", "#@ c #4E5EB5", "$@ c #3F4FAE", "%@ c #3444AA", "&@ c #2D3FA8", "*@ c #3142AA", "=@ c #4755AF", "-@ c #BEC2DB", ";@ c #F7F8F8", ">@ c #EEEEEF", ",@ c #F0F0F1", "'@ c #CCCCCC", ")@ c #D0D1D3", "!@ c #777EA8", "~@ c #192887", "{@ c #11238C", "]@ c #13248D", "^@ c #192C94", "/@ c #3447A4", "(@ c #647ABE", "_@ c #7397DC", ":@ c #4B63CF", "<@ c #3548B5", "[@ c #3345B0", "}@ c #3347B0", "|@ c #3243B1", "1@ c #465AC6", "2@ c #7795EC", "3@ c #9AAED9", "4@ c #8592CD", "5@ c #6A76C1", "6@ c #4A5AB4", "7@ c #3546AB", "8@ c #3042AB", "9@ c #3343AC", "0@ c #4957AF", "a@ c #BBC0DA", "b@ c #F5F6F6", "c@ c #F1F1F1", "d@ c #CACACC", "e@ c #D1D1D3", "f@ c #7B82AC", "g@ c #1C2B89", "h@ c #122389", "i@ c #162991", "j@ c #25389D", "k@ c #5065B3", "l@ c #7C99D6", "m@ c #4D65D2", "n@ c #3B4DBA", "o@ c #495CCA", "p@ c #5364D0", "q@ c #5365D0", "r@ c #4759C6", "s@ c #5E6FDB", "t@ c #7D90FA", "u@ c #B1CBF3", "v@ c #97B7E9", "w@ c #8AAAD9", "x@ c #6A77C1", "y@ c #4252B0", "z@ c #3244AC", "A@ c #3445AE", "B@ c #BABFDB", "C@ c #F4F5F5", "D@ c #D2D2D3", "E@ c #7E85AD", "F@ c #1D2D8A", "G@ c #13248B", "H@ c #15268F", "I@ c #1A2C95", "J@ c #3448A5", "K@ c #6F88C6", "L@ c #6C8AEB", "M@ c #4053C0", "N@ c #5669D7", "O@ c #6374E0", "P@ c #6779E4", "Q@ c #5264CF", "R@ c #AABBFE", "S@ c #FDFDFE", "T@ c #7285EF", "U@ c #7C9CED", "V@ c #8692CD", "W@ c #4F5DB7", "X@ c #3849AF", "Y@ c #3547AF", "Z@ c #4B5AAF", "`@ c #BABEDB", " # c #858DB2", ".# c #202F8B", "+# c #15268D", "@# c #172B92", "## c #20339A", "$# c #4657AD", "%# c #86A3D3", "&# c #536BD9", "*# c #5163D0", "=# c #6879E5", "-# c #6D7FEA", ";# c #6F81EC", "># c #5B6DD8", ",# c #ADBEFE", "'# c #CDDEFE", ")# c #8FA8F2", "!# c #95A0D4", "~# c #5765BB", "{# c #3B4DB1", "]# c #3749B0", "^# c #4C5AB0", "/# c #B7BCDA", "(# c #898FB4", "_# c #21308C", ":# c #17288F", "<# c #192D94", "[# c #24359C", "}# c #4C5FB2", "|# c #8FB0DA", "1# c #4D63CF", "2# c #5E6FDC", "3# c #6E80EB", "4# c #7284EF", "5# c #7385F0", "6# c #6373DE", "7# c #F8FDFE", "8# c #A1BCF4", "9# c #9CA7D8", "0# c #5C6BBE", "a# c #3E50B2", "b# c #3A4AB1", "c# c #5161B1", "d# c #B2B8D9", "e# c #C2C2C2", "f# c #CFCFCF", "g# c #9298B7", "h# c #22318D", "i# c #182A91", "j# c #1B2F96", "k# c #24369C", "l# c #4F61B2", "m# c #89B2DB", "n# c #5165D2", "o# c #6678E3", "p# c #7183EE", "q# c #7384EE", "r# c #7F91FC", "s# c #8494FE", "t# c #798BF5", "u# c #B5C6FE", "v# c #B8D2F5", "w# c #A1ACDB", "x# c #606FC0", "y# c #4253B4", "z# c #3B4CB3", "A# c #4F5DB1", "B# c #AEB5D9", "C# c #C0C0C0", "D# c #979DBA", "E# c #25348E", "F# c #1B2C93", "G# c #1B3198", "H# c #24379E", "I# c #495AB0", "J# c #86A8D6", "K# c #617BE8", "L# c #6A7CE7", "M# c #7081EB", "N# c #6C7CE7", "O# c #A8B8FE", "P# c #BDCFFE", "Q# c #E8F9FE", "R# c #F9FDFE", "S# c #B3CCF7", "T# c #A2B1DD", "U# c #6673C2", "V# c #4555B6", "W# c #3C4DB4", "X# c #5261B3", "Y# c #ABB0D8", "Z# c #E8E9E9", "`# c #C1C1C3", " $ c #C7C7C7", ".$ c #D0D0D2", "+$ c #A1A7C0", "@$ c #26358E", "#$ c #1D2E95", "$$ c #1E2F99", "%$ c #24359D", "&$ c #4152AB", "*$ c #879AD0", "=$ c #87A0F2", "-$ c #6A7BE5", ";$ c #7283EF", ">$ c #6475E1", ",$ c #A8BAFE", "'$ c #BFD0FE", ")$ c #D0E1FE", "!$ c #E1F1FE", "~$ c #EEFDFE", "{$ c #F2FDFE", "]$ c #DFF1FE", "^$ c #A0B6F8", "/$ c #A5B5DF", "($ c #6A77C5", "_$ c #4757B7", ":$ c #3D4EB5", "<$ c #3E4FB6", "[$ c #5260B2", "}$ c #AAAFD7", "|$ c #BFBFC1", "1$ c #CECFD1", "2$ c #B1B5C9", "3$ c #29378F", "4$ c #1F3097", "5$ c #203199", "6$ c #25379E", "7$ c #3D4FAC", "8$ c #8592CC", "9$ c #A6C5EE", "0$ c #7488F3", "a$ c #7687F3", "b$ c #6475DF", "c$ c #A7B8FE", "d$ c #BACBFE", "e$ c #C4D4FE", "f$ c #CEDFFE", "g$ c #D7E9FE", "h$ c #DCEEFE", "i$ c #B8CAFE", "j$ c #7F90F7", "k$ c #B1B9E1", "l$ c #6E7BC7", "m$ c #4959B9", "n$ c #4152B6", "o$ c #4152B7", "p$ c #5361B2", "q$ c #A7AED6", "r$ c #E0E0E0", "s$ c #CECFD0", "t$ c #B5B9CD", "u$ c #2B3990", "v$ c #203197", "w$ c #23369C", "x$ c #2637A0", "y$ c #3F52AE", "z$ c #8396CF", "A$ c #8DABF1", "B$ c #697DE9", "C$ c #8899FE", "D$ c #B0C1FE", "E$ c #B9CAFE", "F$ c #BDCEFE", "G$ c #C1D3FE", "H$ c #C7D9FE", "I$ c #7E8EF5", "J$ c #6179E1", "K$ c #B2BDE3", "L$ c #727EC9", "M$ c #4E5DBB", "N$ c #4353B7", "O$ c #4253B8", "P$ c #5461B5", "Q$ c #A5ACD6", "R$ c #B4B7C9", "S$ c #2C3A90", "T$ c #213198", "U$ c #23359F", "V$ c #2839A1", "W$ c #4454AF", "X$ c #8895CF", "Y$ c #6E8DF2", "Z$ c #495AC4", "`$ c #7081E9", " % c #ABBDFE", ".% c #BCCCFE", "+% c #BBCCFE", "@% c #BED0FE", "#% c #BCCDFE", "$% c #8C9CFE", "%% c #4859C0", "&% c #5C72D9", "*% c #B7C0E4", "=% c #7582CB", "-% c #5160BC", ";% c #4354B8", ">% c #4455BA", ",% c #A3AAD6", "'% c #B4B7CA", ")% c #22339A", "!% c #293BA2", "~% c #3E4EAF", "{% c #7786C8", "]% c #7E98EC", "^% c #687DE5", "/% c #566BD4", "(% c #6E80E9", "_% c #91A4FD", ":% c #A3B6FD", "<% c #A7BAFD", "[% c #9CADFD", "}% c #7587EE", "|% c #4E5FC6", "1% c #495CC3", "2% c #647AE0", "3% c #B8BEE4", "4% c #7782CB", "5% c #5161BD", "6% c #4556BA", "7% c #4758BB", "8% c #5663B5", "9% c #A0A6D5", "0% c #F1F2F2", "a% c #ECEDED", "b% c #CBCBCC", "c% c #B4B9CB", "d% c #2C3B91", "e% c #293AA4", "f% c #3545AC", "g% c #5C69BC", "h% c #889DD2", "i% c #96B9E2", "j% c #9AB9E8", "k% c #97B5EB", "l% c #97B5EE", "m% c #9EB7EF", "n% c #99B2F1", "o% c #95AEF2", "p% c #8DA9F3", "q% c #91ADEF", "r% c #A0BEE9", "s% c #A6AEDD", "t% c #707DCA", "u% c #5161BE", "v% c #4859BB", "w% c #495ABD", "x% c #5B6AB8", "y% c #99A1D2", "z% c #EFF0F0", "A% c #B4B8CA", "B% c #2E3C94", "C% c #25369D", "D% c #293AA2", "E% c #2B3CA5", "F% c #2F40A9", "G% c #3E4FAF", "H% c #5966BB", "I% c #6B78C4", "J% c #7883C9", "K% c #7E8ACC", "L% c #8590CE", "M% c #8B95D1", "N% c #909AD3", "O% c #969FD6", "P% c #9CA5D9", "Q% c #A2AADB", "R% c #A3ABDC", "S% c #9BA4D9", "T% c #838ED0", "U% c #626FC4", "V% c #4D5EBE", "W% c #4B5BBE", "X% c #5A67B8", "Y% c #98A0D0", "Z% c #FAFAFA", "`% c #CACACA", " & c #B8BBCD", ".& c #374499", "+& c #28399E", "@& c #2B3CA3", "#& c #3041A9", "$& c #3344AC", "%& c #3B4CB0", "&& c #4859B6", "*& c #4C5CB8", "=& c #5361BB", "-& c #5665BD", ";& c #5B69C0", ">& c #5F6DC2", ",& c #6573C4", "'& c #6A76C6", ")& c #6C79C7", "!& c #6A77C7", "~& c #5F6EC4", "{& c #5362C0", "]& c #4B5CBE", "^& c #4A5ABE", "/& c #4D5DBF", "(& c #5C69B9", "_& c #939ACD", ":& c #BFC4D1", "<& c #44519C", "[& c #2B3B9B", "}& c #2D3EA5", "|& c #3242AB", "1& c #3344AD", "2& c #3446AE", "3& c #3749AF", "4& c #3C4CB2", "5& c #3F50B4", "6& c #4151B6", "7& c #4555B7", "8& c #4656B9", "9& c #4A59BA", "0& c #4A5BBB", "a& c #4F5FBC", "b& c #4F5FBE", "c& c #4E5DBE", "d& c #4A5BBF", "e& c #4B5CBF", "f& c #5060C0", "g& c #5E6BB9", "h& c #969FCE", "i& c #FBFBFB", "j& c #CECFCF", "k& c #C2C3D1", "l& c #5662A3", "m& c #324099", "n& c #2F40A7", "o& c #3546AF", "p& c #3648AF", "q& c #394AB0", "r& c #3A4BB2", "s& c #3F50B5", "t& c #4252B7", "u& c #4858BC", "v& c #4E5EC0", "w& c #6171BB", "x& c #8F98CA", "y& c #E0E0E1", "z& c #BABBBB", "A& c #C3C6D2", "B& c #636EA7", "C& c #394698", "D& c #3042A9", "E& c #3849B1", "F& c #3E4FB4", "G& c #4354B9", "H& c #6873BC", "I& c #8890C5", "J& c #E6E7E7", "K& c #B7B8B8", "L& c #B5B7B7", "M& c #CECECF", "N& c #C8CAD5", "O& c #6771AC", "P& c #4D5CA8", "Q& c #4654AA", "R& c #4150AC", "S& c #4252AF", "T& c #4151B1", "U& c #4252B2", "V& c #4252B3", "W& c #4353B4", "X& c #4454B5", "Y& c #4353B6", "Z& c #4454B7", "`& c #4656B8", " * c #4757B9", ".* c #4858BA", "+* c #4A5ABC", "@* c #4A5ABD", "#* c #4D5DBE", "$* c #6370BB", "%* c #8691C3", "&* c #D6D5D8", "** c #B1B2B2", "=* c #B7B7B7", "-* c #D5D6D7", ";* c #D0D0D5", ">* c #D6D7DB", ",* c #D2D3DD", "'* c #C5C8DC", ")* c #BDC1DA", "!* c #B4B9D9", "~* c #AFB5D8", "{* c #ACB2D7", "]* c #A8B0D7", "^* c #A0A7D5", "/* c #8D95CC", "(* c #8891C9", "_* c #828BC6", ":* c #7D86C3", "<* c #7A84C2", "[* c #7882C0", "}* c #757FBF", "|* c #727DBD", "1* c #727CBD", "2* c #7A84C4", "3* c #858DCA", "4* c #99A1D4", "5* c #A1A6D2", "6* c #D0D0D7", "7* c #C2C3C3", "8* c #AFB0B0", "9* c #B1B1B1", "0* c #D9DAD9", "a* c #D9D9DA", "b* c #DFE0E0", "c* c #DADBDB", "d* c #B9B9BA", "e* c #DDDDDE", "f* c #DEDEDD", "g* c #DBDBDB", "h* c #D6D7D6", "i* c #BCDF78", "j* c #D3D6CF", "k* c #BFC0BF", "l* c #B7B7B8", "m* c #BBBBBB", "n* c #C7C8C8", "o* c #B9B9B9", "p* c #BEBEBE", "q* c #C2C2C3", "r* c #C4C4C4", "s* c #C5C5C6", "t* c #D0D0D1", "u* c #D6D6D7", "v* c #C6D89B", "w* c #BDBDBD", "x* c #BDBDBE", "y* c #DBDBDC", "z* c #5E5D5D", "A* c #6E6E6E", "B* c #787878", "C* c #878788", "D* c #A2A2A3", "E* c #A3A3A4", "F* c #B1B1B2", "G* c #B5B5B7", "H* c #BEBEBF", "I* c #C1C1C2", "J* c #C5C5C7", "K* c #D1D1D1", "L* c #DADCDC", "M* c #5F5F60", "N* c #6F7174", "O* c #6D6E70", "P* c #767677", "Q* c #7F7F80", "R* c #919192", "S* c #999A9C", "T* c #9B9B9C", "U* c #A7A8A8", "V* c #A9A9AA", "W* c #A8A8A9", "X* c #ABABAC", "Y* c #AAAAAA", "Z* c #A5A5A6", "`* c #A1A1A3", " = c #ACACAC", ".= c #ADADAD", "+= c #B6B6B7", "@= c #434343", "#= c #666767", "$= c #7B7C7C", "%= c #898C8C", "&= c #868789", "*= c #848587", "== c #89898A", "-= c #8F8F90", ";= c #939394", ">= c #979798", ",= c #9D9FA0", "'= c #A3A4A4", ")= c #A9AAAA", "!= c #AFAFAF", "~= c #AEAEAF", "{= c #B0B0B0", "]= c #B2B2B2", "^= c #B6B6B6", "/= c #B5B5B5", "(= c #BCBCBC", "_= c #CECECE", ":= c #5D5D5D", "<= c #6F6F6F", "[= c #888888", "}= c #8F9392", "|= c #99999A", "1= c #A0A1A3", "2= c #ADADAE", "3= c #ABACAC", "4= c #AAABAB", "5= c #B8B8B9", "6= c #969696", "7= c #A3A3A3", "8= c #AEAEAE", "9= c #C3C4C4", "0= c #C6C7C7", "a= c #C9CACA", "b= c #C6C6C7", "c= c #D0D0D0", "d= c #B8B8B8", " ", " ", " ", " ", " ", " ", " ", " . + @ @ @ # @ # $ % $ + + & * = - ", " ; > , ' ) ! ~ ' , { ] ] ] ^ / ( _ ( ( _ _ _ / _ _ _ _ : _ * < * ( ", " [ > } | 1 2 ! 3 ! ! > ' ' 4 5 ^ / _ = ( ( ( ( ( = < . < . < < & * / * ", " 6 7 8 9 2 0 a b c d e f e g h i j k l l m n o p q r s t u v * $ & w . ", " x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` _ # & .$ $ ", " ..} +.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.( ( # - $ 1.2. ", " 3.4.5.6.7.8.9.*.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.:.o.p.q.r.s.( < % & @ t.u.2. ", " 3.4.v.w.x.y.*.z.A.;.c.B.C.D.E.F.G.H.I.J.K.n.L.p.q.M.N.O.P.( ( % % # 1.Q.R. ", " 3.4.S.T.U.7.z.V.-.W.X.C.Y.Z.`.G.j. +J..+:.o.p.q.++@+#+$+%+_ ( % % # 1.1.&+1. ", " *+y =+-+;+>+A.,+'+)+e.!+~+{+]+^+/+(+_+L.o.:+<+++@+[+}+$+|+_ _ % 1+2+u.&+1.u.* ", " 3+y 4+5+6+7+8+'+)+9+0+a+b+c+d+e+f+g+h+i+:+M.++@+[+}+j+k+|+/ _ % 1+l+m+n+&+o+% $ # ", " p+1 q+r+s+t+u+v+C.w+x+y+z+A+B+C+D+E+F+G+H+I+#+[+}+J+K+L+M+/ _ % 1+N+O+n+O+o+@ $ # 1. ", " p+3 P+Q+R+W.S+).T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@J+K+*@=@-@/ ( # # R.;@Q.Q.1.2.>@$ ,@t. ", " '@3 )@!@~@S+{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@K+8@9@0@a@_ _ @ # 1.&+b@&+Q.c@c@# o+Q. ", " d@4.e@f@g@h@]@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@9@A@0@B@_ ( c@# l+C@&+&+1.@ # c@1.Q. ", " 3+4.D@E@F@G@H@I@J@K@L@M@N@O@P@P@Q@R@S@S@T@U@V@W@X@A@Y@Z@`@( = 2.# l+l+&+Q.1.c@# c@u.&+ ", " *+4.4. #.#+#@###$#%#&#*#=#-#;#-#>#,#S@S@'#)#!#~#{#Y@]#^#/#( = c@% C@l+&+Q.2.@ # c@u.Q. ", " *+4.} (#_#:#<#[#}#|#1#2#3#4#5#4#6#,#S@S@7#8#9#0#a#]#b#c#d#( = # $ l+l+C@Q.2.>@@ c@1.u. ", " e#f#} g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#S@S@S@v#w#x#y#b#z#A#B#_ ( $ - l+u.C@&+@ 1.# 2.1.u. ", " C#[ 4.D#E#F#G#H#I#J#K#L#M#N#O#P#'#Q#S@S@R#S#T#U#V#z#W#X#Y#/ _ & Z#C@&+b@l+2+@ @ c@1.u. ", " `# $.$+$@$#$$$%$&$*$=$-$;$>$,$'$)$!$~${$]$^$/$($_$:$<$[$}$^ _ + * C@C@&+u.# # @ @ 1.u. ", " |$*+1$2$3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$_ . * l+l+C@u.@ # # @ 1.u. ", " x s$t$u$v$w$x$y$z$A$B$C$C$D$E$F$G$H$H$I$J$K$L$M$N$O$P$Q$r$/ . < 1.l+C@C@@ % # @ o+u. ", " x 1$R$S$T$U$V$W$X$Y$Z$`$ %.%+%F$@%#%$%%%&%*%=%-%;%>%P$,%r$/ - = 1.N+u.1.@ .$ # o+u. ", " x 4.'%S$)%x$!%~%{%]%^%/%(%_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%r$: - ( 0%c@o+2.1+& a%@ 2.o+ ", " b%y c%d%[#V$e%f%g%h%i%j%k%l%m%n%o%p%p%q%r%s%t%u%v%w%x%y%5 : - _ @ c@c@2.2+1+&+@ 2+z% ", " x 1 A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%w%W%X%Y%5 r$& : @ $ 1+% % Q.Z%O+z% ", " `%1 &.&+&@&j+#&$&%&y#&&*&=&-&;&>&,&'&)&!&~&{&]&^&/&(&_&' r$< : # % % o+Q.Z%t.Q. ", " '@1 :&<&[&}&#&|&1&2&3&%&4&5&6&7&8&9&0&a&b&c&]&d&e&f&g&h&' r$^ r$1++ $ &+Z%i&' ", " j&! k&l&m&n&*@$&o&p&q&r&z#W#s&o$t&O$>%7%u&^&d&/&v&v&w&x&' r$^ y&% w # O+i&5 z& ", " f#> A&B&C&D&$&Y@X@E&r&z#F&<$o$t&G&>%7%w%^&d&/&v&v&v&H&I&' 5 / : a% .@ Q.J&K&L& ", " M&2 N&O&P&Q&R&S&S&y@y@T&U&V&W&X&Y&Z&`& *.*+*@*@*@*#*$*%*&*, 5 ^ a%+ c@- z&**=* ", " f#) -*;*>*>*,*'*)*!*~*{*]*Q$^*/*(*_*:*<*[*}*|*1*2*3*4*5*6*' 4 ^ a%a%% 7*8*9* ", " 4.0*) ! ' 4 : ^ ^ ^ ^ ^ ^ : ^ ^ : : r$r$: : r$r$r$5 4 a*4.4.0 b* .+ c*d* ", " `%D@~ e*r$_ f*4 g*4 : r$5 5 4 4 , ' ' g*~ ~ ) ) h*i*j*k*l*m* $4 5 5 n* ", " o*p*q*r*s*[ b%t*) u*) 4 ' , ' ~ g*~ ~ ) h*v*3 w*[ 3+x*y*' ) ", " z*A*B*C*D*E*F*G*d*H*I*J*p+p+t*a 4.p*f#K*p*! L* ", " M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*E*`*`*Y* =.=+=3+) ", " @=#=$=%=&=*===-=;=>=,='=)=!=~={=.=!=]=^=/=^=(=r*_=: f# ", " :=<=[=}=|=1=F*2=3=4=Z*4=F*5=(=p*x*r*e#x x r*`%7 ^ # . ", " 6=7=8=(=9=0=a=b=c=3 1 > , : / = < < < ( ^ ", " d=e#x _=7 ! > g*5 : r$^ = ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/real.xpm�������������������������������������������������������0000644�0001750�0001750�00000020113�12214432632�015731� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 155 2", " c #38E338E338E3", ". c #EFBEEFBEEFBE", "X c #00006595FFFF", "o c #082069A6FFFF", "O c #10406DB6FFFF", "+ c #186171C6FFFF", "@ c #B6DAC71BEFBE", "# c #208175D6FFFF", "$ c #28A275D6FFFF", "% c #28A279E7FFFF", "& c #30C27DF7FFFF", "* c #38E38207FFFF", "= c #41038207FFFF", "- c #BEFBCB2BEFBE", "; c #41038617FFFF", ": c #49248A28FFFF", "> c #51448E38FFFF", ", c #59659248FFFF", "< c #AEBAC71BEFBE", "1 c #B6DACB2BEFBE", "2 c #49248617FFFF", "3 c #BEFBCF3CEFBE", "4 c #59658E38FFFF", "5 c #C71BCF3CEFBE", "6 c #61859248FFFF", "7 c #208171C6FFFF", "8 c #61859658FFFF", "9 c #C71BD34CEFBE", "0 c #69A69658FFFF", "q c #B6DACB2BE79D", "w c #51448A28FFFF", "e c #38E37DF7FFFF", "r c #38E37DF7F7DE", "t c #B6DAC71BE79D", "y c #41037DF7F7DE", "u c #514451445144", "i c #410379E7E79D", "p c #9658A289BEFB", "a c #A699AEBAC71B", "s c #492475D6D75C", "d c #AEBABAEAD75C", "f c #51448A28F7DE", "g c #BEFBC71BE79D", "h c #59658E38F7DE", "j c #69A69A69FFFF", "k c #30C27DF7F7DE", "l c #B6DAC30BE79D", "z c #49244D344924", "x c #30C22CB230C2", "c c #28A228A228A2", "v c #208124922081", "b c #082004100820", "n c #49246DB6BEFB", "m c #492475D6CF3C", "M c #59658617E79D", "N c #61859248F7DE", "B c #71C69A69FFFF", "V c #000000000000", "C c #49246DB6B6DA", "Z c #514479E7CF3C", "A c #61858A28E79D", "S c #69A69248F7DE", "D c #69A69658F7DE", "F c #96589A69AEBA", "G c #59657DF7CF3C", "H c #20812CB24924", "J c #6185659571C6", "K c #08200C301040", "L c #38E341034924", "P c #104014511040", "I c #30C234D330C2", "U c #38E33CF34103", "Y c #618565956185", "T c #CF3CCB2BCF3C", "R c #71C671C671C6", "E c #9E799A699E79", "W c #FFFFFFFFFFFF", "Q c #F7DEFBEEF7DE", "! c #082008200820", "~ c #28A22CB24924", "^ c #104010401040", "/ c #28A230C24924", "( c #41038207F7DE", ") c #38E369A6C71B", "_ c #41037DF7EFBE", "` c #30C255559E79", "' c #082008201040", "] c #49248617F7DE", "[ c #AEBAB6DAD75C", "{ c #96589E79B6DA", "} c #71C67DF78E38", "| c #104014512081", " . c #514459656185", ".. c #41036DB6C71B", "X. c #104010401861", "o. c #38E3451469A6", "O. c #618575D6AEBA", "+. c #492471C6C71B", "@. c #38E359659E79", "#. c #492455555965", "$. c #30C238E35144", "%. c #596565959E79", "&. c #71C68617C71B", "*. c #8E389E79E79D", "=. c #51448617E79D", "-. c #9E79A699BEFB", ";. c #492469A6B6DA", ":. c #410359659E79", ">. c #28A23CF369A6", ",. c #2081249238E3", "<. c #618571C6AEBA", "1. c #86179A69DF7D", "2. c #9658A699F7DE", "3. c #9E79AEBAFFFF", "4. c #514471C6BEFB", "5. c #514471C6B6DA", "6. c #38E341036185", "7. c #596569A69E79", "8. c #A699A699B6DA", "9. c #9658AAAAFFFF", "0. c #CF3CD75CEFBE", "q. c #BEFBCB2BE79D", "w. c #71C69658F7DE", "e. c #71C69A69F7DE", "r. c #86179A69E79D", "t. c #CF3CD34CEFBE", "y. c #71C69E79FFFF", "u. c #79E79E79FFFF", "i. c #514465959E79", "p. c #69A68207C71B", "a. c #8E38A699F7DE", "s. c #D75CD75CEFBE", "d. c #186118611861", "f. c #514455555965", "g. c #A699B2CAFFFF", "h. c #79E7A289FFFF", "j. c #38E3492471C6", "k. c #30C230C238E3", "l. c #208128A24103", "z. c #86179658E79D", "x. c #C71BCF3CE79D", "c. c #69A68617CF3C", "v. c #410355558617", "b. c #9E79A699B6DA", "n. c #B6DABEFBD75C", "m. c #8E38A699FFFF", "M. c #8617A289FFFF", "N. c #79E79658EFBE", "B. c #8617A289F7DE", "V. c #8E38AAAAFFFF", "C. c #AEBAB6DAFFFF", "Z. c #8617A699FFFF", "A. c #B6DAB6DAFFFF", "S. c #D75CDB6CEFBE", "D. c #B6DABAEAFFFF", " . ", " X X o o o o O O O O + + @ @ @ # # # $ % % % % & & & & * * * = - - - ; ; : : : : > > > > , , . ", " X o o < o < O O O + @ + + # # # @ $ % % % % 1 & 1 * * * * - = ; ; ; 2 3 : : : > > 3 4 3 , , . ", " o < o o O O O < + + + + @ # @ # $ % % % 1 & & & & * 1 * = = ; - ; 3 : : : : > 3 > > , , , 3 . ", " o o o < < < O + + + + # # # # $ % % % % & & 1 1 1 * * = = ; ; ; 2 : : : : > > > > 5 3 3 6 6 . ", " o o < O O O @ + + + 7 # # # $ % % % % & & 1 & * * 1 = = ; ; ; 2 : : : : > > > > 3 , , , 5 8 . ", " o < O O < + + @ 7 7 # # # 1 % % 1 % & & 1 * * 1 * = - ; ; 2 2 : 3 : : 5 > > > 5 , , 3 6 8 9 . ", " O O < O + + @ + 7 # # # $ % 1 % % 1 & & & 1 * * = - ; ; 2 2 : : : 3 > > 5 > , , 3 6 6 8 9 8 . ", " O O O @ @ @ + 7 # # # $ 1 % 1 % & 1 & & * * 1 1 - ; ; ; 2 : : 3 : 3 > > 5 , , , , 9 5 9 0 0 . ", " O < + + + + 7 @ # # 1 1 1 % 1 & & 1 & * 1 * = = ; ; 1 2 2 q q - w 3 > > 5 , , 3 6 8 8 8 0 9 . ", " O + + @ + @ # # # $ 1 1 1 % 1 & & - * e r r t y t u i u u p u a s d f f g h h h 8 9 0 9 j j . ", " + + + 7 7 # # # $ % % % 1 & 1 & k l u u z x c v v b v b v b v v c c x u u u n m M N N 0 j B . ", " + + + 7 # # # $ % % % % & & u u c c b V V V V V V V V V V V V V V V V V V v c x u C Z A S D . ", " + + 7 @ # # 1 % % % % % u c b V V V V V V V V V V V V V V V V V V V V V V V V V V c u u F G . ", " + 7 # # @ $ % 1 % % u c V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V v H J . ", " 7 # @ # 1 % % 1 % x v V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V K L . ", " @ @ @ $ 1 % % u c b V V V V V V V V V V V V V V V V V V V V V V V V V V V V V P I u I V b U . ", " @ @ 1 % 1 % u c V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V Y T T R V b U . ", " # $ 1 % 1 % x V V V V I I V V I I I V V I I Y I I V V V V V I I Y Y I V V V E W W Y V b U . ", " $ % % % 1 u v V V V Y T T E E T T Y V E T T T W T E I V V E T W T Q T T E V I T W T u V b U . ", " % % % 1 & x V V V V E W W W W W T I E W T E I E W W Y I V E T E Y E W W T I I T W T I V ! H . ", " % % % & & c V V V V T W W T E Y I Y W W T I I E T W T V V Y Y E Y E W W T I I W W E V V b H . ", " % % & & & x V V V I T W T Y V V V E W W T W W T T W E I E W T T T E W W T V Y W W E V V b ~ . ", " % & & 1 & z V V V Y T W T V V V I E W W E I I E E Y I E W W E I V Y W W E V E W W Y V V b H . ", " & 1 & & & u c V V Y W W E V V V V Y W W T E E T W Y V E W W T E E T W W Y I T W T I V V b U . ", " & & & 1 1 t z b V Y E E Y V V V V V Y E T W T T Y I V I E T T T E E E E I I Y T Y I V V b H . ", " & & 1 * * * d u V V I b V V V V V V V I I I I V V V V V P I I v V V ^ v V V V I V V V V ! / . ", " & 1 * * 1 = ( u u b V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V b U . ", " & * 1 = = ; - ( ) u c V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V ! / . ", " * * = - - - ; ; _ ) ` u c V V V V V V V V V V V V V V V V V V V V V V V V V V V V V b v ' / . ", " * 1 = ; ; ; ; 3 2 ] [ { } u x c V b V V V V V V V V V V V V V V V V V V V V V V V x u b | .. ", " = = ; - ; 3 : : : : 3 g d ..} u u u x c v b V V b V V V V V V V V V V V V V b v u b X.I o.O.. ", " = ; ; ; ; : : : : w > > 3 f d +.@.#.H H u u u u z x z x c b V V V V V V V v u u b | $.%.&.*.. ", " ; ; ; ; : : : : w > > > 4 , 3 h =.-.n C ;.:.>.H H H H H H c V V V V V v x u b | ,.o.<.1.2.3.. ", " ; ; 2 3 : : 3 w > > > 4 , 3 , 6 3 N N N N A -.4.4.F 5.5.u v V V V v c u b X.,.6.7.8.*.9.0.3.. ", " ; 2 : : 3 : w 3 > > 4 , , , 6 8 8 8 0 0 j 0 D q.w.w.q.e.c V V V c u b X.,.6.%.&.r.2.t.3.3.0.. ", " 2 2 - : 3 w > 3 > 4 , , , 6 8 8 0 0 0 j j 9 B 9 y.u.9 u V V c u ! X.,.6.i.p.r.a.t.3.0.3.3.s.. ", " - - 3 : 3 > > 3 4 , , , 9 8 9 8 0 0 j 9 9 9 y.9 u.u.u v V z | d.,.f.i.p.r.a.t.0.0.3.0.3.g.s.. ", " - 5 - > 3 > > 3 , , 3 6 8 8 0 0 9 j j 9 9 9 y.9 u.h.x c j.k.l.6.i.p.z.x.9.9.0.0.0.3.s.g.g.s.. ", " : : 3 > 3 > 4 3 , , 6 8 9 9 9 0 j B B B y.9 u.9 h.h.x.c.v.j.i.b.n.x.m.9.9.9.3.3.0.3.s.g.g.s.. ", " : w > > 3 4 , 3 , 6 8 9 8 0 0 9 j B B y.y.u.h.9 h.M.9 N.c.c.n.B.m.9.0.9.9.3.3.3.3.g.s.g.g.s.. ", " w > > 3 4 , 3 , 6 8 9 8 0 9 j j 9 B y.y.u.u.9 h.M.9 M.M.B.x.m.V.t.9.9.0.3.3.3.3.g.0.g.C.s.C.. ", " > > > 4 , , , 6 6 8 0 9 0 j B 9 B y.y.u.u.h.h.M.M.Z.Z.m.m.m.t.9.9.9.0.3.3.3.3.g.g.g.g.C.C.C.. ", " > > 4 , , , 6 8 8 8 0 0 9 9 9 B y.y.u.u.h.h.M.M.M.Z.m.m.V.V.9.t.0.0.3.3.3.3.g.g.g.g.C.C.C.C.. ", " > 4 , 3 , 9 6 8 0 0 9 j B B B y.9 u.u.h.h.M.9 Z.t.m.m.V.V.t.9.9.9.3.3.s.3.g.g.g.g.s.C.s.A.A.. ", " 4 3 , , 6 8 8 9 0 0 j B 9 B 9 y.u.u.h.h.t.M.Z.Z.m.m.t.V.9.9.9.0.3.0.3.3.g.g.g.s.C.C.C.C.A.S.. ", " , , , 3 9 9 0 0 0 j j B B y.y.u.u.h.h.M.M.M.t.t.t.V.V.9.9.9.9.3.3.3.3.g.g.g.g.C.C.S.s.S.A.D.. ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/defaultterm.tiff�����������������������������������������������0000644�0001750�0001750�00000012344�12214432632�017455� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�Ú��� $h°à!B† &l¸ð‚ `4ˆ¡†(.Rp`A 8b²ä)Rˆ 2ˆô(@f #+¤H‘ÐA… %kðñ D‘¼0Z´¨K§OŸ¶ƌ詑.Eœ~™ÒÅ›+[’eyò¥Ø—¯@ªs5j¸Q¥F®{¥Ê¤y–£X¼w™²…{/‘?Ê” ûƒœž¸�Q¦P`PÁA˜ŒÑ4êxñâáC”(Á<xpS.B„P½"E ÓgÇŽ WÎ;òáÆsßnݺðëÖ n\;óçÊ•#.\Ø÷çÌ™]ŽÛògß¾5víZñgË–6¬šögÅ¢1æÍôgÊ´>ÆMêöoÀ°ÿ:t©ò¯A“"þ)¥† þ)¢„xþI&•@þQ4°À‘!�…7ðÁOc @1ŒTò#aœéÈÙæ‹/>ùá—_¾ù燾bŒ™¾ù惾øæ>ùä•>øà…Þyç‰^yã!i^“ã™'nøã®øãŽ;ûí´Ÿk‡á’cþltšNØá#ŽØtƒ=Vùc‡Mfùc5Ya… þXd‘þ`€&þh£Rh$ŸŠ)'ŽRÈÀŸ’H-‰ŠˆâŸŒùGU„ùlø|ù4`Ø GLÐAGŽþù«…?~cå›?¾ù©+¾ø‹ŠOþbŠ%ޏâ‰O¾xK˜„’H*™äxá{þSJ%µ4ÒJÇ.¸æ<CN2áœCþ8åÔy³e}·Ùf“Oòâféå!†iæfZ(áJ*ÉâŸlrˆæŸð₱å/|1åŸ42‚¦ˆbbøGuDùœ „TþÁ�¸j«@V0Pˆ‰ŸFêm/>øK„7þà½Á8gá3v~j<n¾Zàƒçä[O‹sþ3g‹ÿ|=g!:ø£Ž†#!™?â‰'„?Ä™?l±Å€?%çYd ‚ùƒjˆøƒ�° þ�2þRþbþBþ�ü�—"ˆ š«Œø§¾HþÑFIþèRÈ@,¦©núgM‚WþÒå=öÜf†9†ù£‹^Ò¶dRã?üpä3ÌÑe$ø‡ R8ùà ^CˆàF€à�†`†‡`�†‹ †ƒ �†í{€aáH€aâ€aàp�ƒÿ�0hðP�ƒ ÿE � r‡8ÌŽrŒãœâd': ÈD*þ9ˆç:ÚÐp1ÓL PÓ„À’k…ãzõŠ…³8À?,`a+ jø:€ ‚ Jªð�© È�‚ þ#)ü @^�"€ æU�AÄÛ�òà�ä½èú°�ò`�ä+@È+€Øý °ÆÌþý Ð@  €@(�2þ0€N\G@Ž'uÐä4d"iøÇÛð&4£ÿ”ˆ<H@4üÛ 8ø.ð€ZÆ„^lÒÂ%þaè28œáoø#áˆF<’‘Ž,€"Å(G5êÑ|´½½ŒÅ0Æ>™¯céûØÄ.€Pœ�—¸Å`ñŠOü�’€9$¡Ž�P"å�%ÖiÈJb’qky4¢%™Ð6¤ñ2ÿ ðð-åŒv½¨ÌÁVÃ�ÐIc¸Â¾D¨‰X$Ò™ÈE!JøJÔ€hE'ã1ðq¦bóÌÅ:¶YÎRVâW€Ç=žñh|ãŸÀì%8G wLΓó\! éI–vÒЊbüÃ�zj(€0Ññ  Ð DªTŠw¸Çþ)­Â¤¹ði+R:Š©¢§·˜(nñ3RÂè(“1ÉL,b•…RDZtÙ(SvÊ–ƒ„$,'åIt.Êä [À©Æ?ZÑŽ2üÆM!þÁà$ &6Mk:²BAýøÇ=îS#ÂB‡£°i)BÚ‹’®Z¤¯XÅÉP 2V‡:eºäu+Uì뙵җ1[e.köÊ r60§ ÉeуLüã¶" m<Œ`Eüƒ´ùØV°‚7R*€t(˜WªxhY¡jP¸´±Èé,ZzÚXë¶Ô®m™(IÛ•ùö”&«Y/C6³]–ìf¿9ìdƒsÞä §QìÂ?ZÐ^q*¨)ߎgf@!Á€ ¨€GxO{ÞKËáú½me ûÐÚ>×¼¯µ*v‹—áŒF·íýigfÛÅö ¸ƒëÈ ;>èwjp Bçñ€{\ ‡)ŒÕ08Âö/s㚠ᙉ¤ kÏÅa¡–TzЇFïZ]ã>Õ,ÝÅHÿXj3öÚ÷;FýoÿÇŸåu` DÇ:1‰Á–ÔNCnçð¯m~  åø‡1L»Þ4‡C~… ä|g"!È3îY ÅÙâ–âºÐ›Íhzßšš´®/snÓXk;ŽÕqÜ%›O)çWÚö×»CõíhýËÕ DvºaÈC®AñˆG\ã=èC þa s(ã\àJ ä¡è3¨AÝ{öŠ´"’Ï øÀ§¹Ù©#èBê³­QkÚú1Í¥Íckë8çYÒº”¢îí½RŸ×oP Xø&&µ(ü#w3øß܈züÖPÅ?üK PâøqUr à­¸çær n9¼¨íytkÜj¹ÏµÎ½_%ž×xê:ßzdÛÐ!6r¨Mr‘‰Ãÿ¦ Š')ãƒD#þak¨ãŸ¹~…!Œó #˜Gd %À0Ÿ ¢ßî\¢3®~{_sß÷ÝÏýž{ÿý[ïÖ?Ámx¢ +÷a/å4£XQxÂ3î®È7üÃÐÁ?¤!í˜Â²ë°‚ý6È“¢›ü$Wé4/MÜáìvP¹Ãì÷¶¦³­enûYG;Ö}¾ûø~ <øD:ñ‡”·¡‡G5ª—ôèÇb£hÃ?œà}Á@ÉG°‡ ´ðg¸{ô ¿�ñBR¼ x—(p‡SüC:Ð|Í^×8ƻ̵k×yÞvÀLàÝyïFóPri¨…Z¨¤ ƒ h‡pO0‚P5„pOЃðŸ€SÍ <ÀöjÐ \§u;Põ£7Gm0fû²6ópOóöv2@5! vHsh°I‡‡z¨‡jÚ€Z‡ ˜ÂgpoFUÐað0†6KøV`áp+ |# "¸‘;¿�¯¶Z³ó[g *g÷&w÷ër�ãs_ °A¶ÿuÔh„¨…x’ƒi˜þ€°`\Ð5„àP„0øvàøPóâ x&M¸ñJ{²Ð·— pgop× u.ëô×°t~ï »`÷`' ƒFh 7x%ø‡9˜ƒƒ@°ö 0àbˆ‚H°ƒˆ‚8ð€àŒ8$óÃHÄ -Љti²:¯õ;gÕ7t7¶¿`ðwë‹Ò`õ@ï Ψ n—†h’'9ò…Aø‡`Õ‘8ˆ{ø‡XHMÕ;�;‰ ƒ+¸ös{°§Èp&wòúX çt(p/ë &ÿ Û`s±àp ‹�N‹Ó8xdeòƒ…pž0Yø‡H�·xƒ$ð†`F߉qDôCai…cÕ5ë wæ ´oô§ K„Ø «( pQòþ8r¸8W!™$€eX†1ø‡0ˆKs'HaXH„4ðÓT`¢ø‰¿d ‚ħc¿�ÝЋ…0ˆ¬„jçðfIÄ`ôtï {÷¿¨vx˜˜€xƒ·$ OO ˆ�'K‹Ô£ð„H…4ˆ(`ÓŒdE„˜„÷ä„KÁ=ÐKðtŒÌäì„I·0K‹â`v¡ØKé8HLÿ×X†%˜Ïpx#)rË0‡(pÖ0£&H†´LtH‡ ÛŽPµ³P…Œ )¸„K8²JÐUý„pG¯óûȉµÈKxo"ïȆôõïôOŒ ŒcN#OXÌn–†uX‡Iø‡$Õ0§&H„Tðe4ÈÌivZ¸Ë„÷ÃŒH¸„ aN°äK¨Üͪ0 wÞØë”L¿¨HY—Llø‡UX…%š#1ؤ§|É7×ÏÏü†H‡læU@�0G’\È¥�õXèƒ>è†?¨‚*(‡?t€"øó(((¢(Êœ¤†ØxƒXˆd(ˆ†NÇ2ø‡p/P‚†��_øðG?ð_ð‚?ð/p‡?pgp„?pGp€?p�°‡?°{°…?°{°as°kø°Kø+° øsL0‡?0s0…?0c0„?0“«80”Z0ôy… 42æ„Ü…9ø‡@‰>0L ø‡xHÉð… °†K¤LŒIv-šcé´©x…Gø‹DÏü 'É ©Œ¨öŒ$éKåb?xÁš†g¸¯9¸ƒ?¯ÅZ†§ZryR'›×+¸†?-! ]ÄþТ£:?Ò‡S«äÎ8„l„]øÇYØ8„CØ„8€XƒØ€u˜©"Š{Ð#‘¯J†{pUCJj�4PH›ê­ÎꆷꂿF¬þê…·,æŒ 1’¡¥ì!ù$€g¿ð¨%xi²š©¦®ùZnzR‚Ûš®x¨-K/§½:ƾ:‡Ëº„k¸|8‡Ka†s8ƒ=V€Ø®Ïú†Øí*„MXƒY†¿P]0äbˆ†ø[°ý†É…ƨvRhô6 Zxhtx«Ñ&¬á&*æš„—êj⨅š©nÏ&«•öoúÚ®-x¨=R«=ÕjN©všæ$}:âl:iÁä† ¸¬»oI2o™úªØ…X€X'wF/0±J0à…ÔäÉ 6Br�ë: ÆR‡nˆ‹gꈆ!ˆ…ˆ‚!ˆ†hˆ„!(…(„肘€Éð…Y˜…ø‡XÈò„©ú…*ÄMX†º©'œÃ‰‚¬s¸¦»ãÒ®}-ísÒ í¾l®¾åVìí¸ê}8¨«\Ëa¦Ëz!ëú€}؃õ–‡ÞÊ>øg ЀPUà÷pMøP�¾®Ñ<„”A˜‚ |†Q‡W„|‡è ~hÖ8!L¨€ †hÌ^Á Ü"X„Qø#rèǘ6…Qè‚?W‚6øƒ^î‡?h…V(ƒ?h×8øƒè€Jø È-^(…4øƒ|ȃ8ø3+¶õT>Gp8¶4H”Ì€LÈâQp³]à…?€;`V ƒb€€ÑAÆh€?à ȃ(Ȇ¨… üf5híI˜€Þ‰ŸD؆mXÜ„uøƒuØÀ}X€E‡¿ž…!z!oò„Ir…5˜"GØÅ©˜*Ü„%º€S²¤›iš8„íÑ�}P€?i±…"(+Ið�0‡ð0c4HËiHƒt„wPM‚À\À]Âøñ™�q‚RàN`†<àv`„Bà6 ‡jà�6`€–Pj蘠†Y{W4mø~�:øàjø³- €¿9ò…Î…˜“…[Ø. Z¤Eà�Jø6`[`öÅ6`]LL4øãr¡ °.°[g�uÐq˜c/À'�‘=§˜åÐÙ]$áP ePqX–oÀƒ¿dÂWEvjÀ…?yLø[ø›5@b_€…?@d€‚?@$€\]@ZÕZ@T€?d¸•2¡uPi˜ë:�^ÀåE0/@äõ`ZÅC\ÀÃ,`‡¤ vÐ� ‡?Ìö…Y@Ý’%2À?À‚%LÀÄÕäµ�D@\ƒÕ[ƒA]‹MøÓÍ•9~øVárLP‡·õA¤GúmBh�pÀÔ4`["l"ƒi‚'h‡ ‡@+€Rˆ…?¨H9¨eŒQ|ˆ?‡èròlP†?P%à?àîE&`Þx`& †¿qÙ›ùøóË�Ÿð/ï@).ø“\À‚ÃÅ&8b lh6`j(2 ðE Â@ h°à!B† š Vò]¸pìÝ“G7þ=zpíß­[çþ#9ôïÀ ÿöìYõçØ±-®\:ôçÒ¥#Ž¥·lÙ¸?µêäùãÏŸ•?š4‰ùí?tèáûCŠº?¸p!ùƒ œ?¨ÐÀÔoè Pþ!@á7^4þògê_„hNþ bã>Rà lhÁ#F†¢H‘‚$vìØªÖ«W·S¦L87iÒ˜sgÎyñêÕ£OžÜúó}õZ\úsïÞ¹?wî\øsãÆ™?×®ø‹ä M.6mš÷7G§?­Z•ûS¬X¢?1bxùãÂ…\¸Pú'J£?¦Ì(¸&F§ê:Piü eÔ( ?€ûýç÷g�A8 ˆbÍ@A‚ Ñ |ôÀ¼À=ˆ!†}pÁ½pÁBl°Á@OÐÐ PÑ 4PÐTÐ $àÑ8 Ðó cFU0`üMT°@N,©¤“I6¹äSH1¥”SI5µÔÓH3­´“������0�������0�������”���������������� ������� �"���œ������¾������Ô��������������������*�������Ü���������R���������������/home/fatal/tiffs/defaultterm.tif�created with The GIMP����D��<��–����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Makefile.am����������������������������������������������������0000644�0001750�0001750�00000002022�12214432632�016313� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ defsdatadir = $(pkgdatadir)/Icons defsdata_DATA = \ BitchX.tiff\ BitchX.xpm\ clip.tiff\ clip.xpm\ defaultAppIcon.tiff\ defaultAppIcon.xpm\ defaultterm.tiff\ defaultterm.xpm\ draw.tiff\ draw.xpm\ Drawer.png\ Ear.png\ Ftp.png\ GNUstep3D.tiff\ GNUstep3D.xpm\ GNUstepGlow.tiff\ GNUstepGlow.xpm\ GNUstep.tiff\ GNUstep.xpm\ GNUterm.tiff\ GNUterm.xpm\ GreenWilber.png\ ICQ.png\ Jabber.png\ linuxterm.tiff\ linuxterm.xpm\ Magnify.tiff\ Magnify.xpm\ mixer.tiff\ mixer.xpm\ Mouth.png\ Mozilla.png\ notepad.tiff\ notepad.xpm\ pdf.tiff\ pdf.xpm\ Pencil.png\ Pen.png\ ps.tiff\ ps.xpm\ README\ Real.png\ real.tiff\ real.xpm\ sgiterm.tiff\ sgiterm.xpm\ Shell.png\ Speaker.png\ staroffice2.tiff\ staroffice2.xpm\ TerminalGNUstep.tiff\ TerminalGNUstep.xpm\ TerminalLinux.tiff\ TerminalLinux.xpm\ Terminal.tiff\ Terminal.xpm\ timer.tiff\ timer.xpm\ wilber.tiff\ wilber.xpm\ Wine.png\ write.tiff\ write.xpm\ XChat.png\ xdvi.tiff\ xdvi.xpm\ xv.tiff\ xv.xpm EXTRA_DIST = $(defsdata_DATA) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/linuxterm.xpm��������������������������������������������������0000644�0001750�0001750�00000022524�12214432632�017045� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 214 2", " c None", ". c #000000000000", "X c #10400C300820", "o c #082008200820", "O c #186118611861", "+ c #208124922081", "@ c #28A22CB228A2", "# c #4103410338E3", "$ c #514451445144", "% c #59655D755144", "& c #59655D755965", "* c #69A669A66185", "= c #9E799A698E38", "- c #9E799A699658", "; c #9E79A2899658", ": c #AEBAAEBAA699", "> c #A699AAAA9E79", ", c #9E79A2898E38", "< c #9658965879E7", "1 c #514455554103", "2 c #186118611040", "3 c #186114511861", "4 c #38E33CF338E3", "5 c #410345144103", "6 c #79E779E771C6", "7 c #8E388A288617", "8 c #DF7DDF7DD75C", "9 c #E79DE79DE79D", "0 c #EFBEEBADE79D", "q c #EFBEEFBEE79D", "w c #E79DEBADE79D", "e c #E79DE79DD75C", "r c #E79DE38DDF7D", "t c #D75CD75CD75C", "y c #D75CD75CCF3C", "u c #D75CD34CC71B", "i c #CF3CCF3CC71B", "p c #C71BC71BBEFB", "a c #BEFBC30BB6DA", "s c #B6DAB6DAAEBA", "d c #B6DAB6DAA699", "f c #A699A6998E38", "g c #965896588617", "h c #18611C711040", "j c #208124921861", "k c #20811C711861", "l c #9E799E799E79", "z c #CF3CCB2BC71B", "x c #FFFFFBEEF7DE", "c c #F7DEFBEEF7DE", "v c #F7DEF7DEF7DE", "b c #F7DEF7DEEFBE", "n c #EFBEF3CEEFBE", "m c #EFBEEFBEEFBE", "M c #DF7DDB6CCF3C", "N c #FFFFFFFFFFFF", "B c #8E38924879E7", "V c #79E7820769A6", "C c #596559654924", "Z c #8617861771C6", "A c #69A669A65965", "S c #514451444103", "D c #38E33CF328A2", "F c #28A22CB22081", "G c #0000041028A2", "H c #000004102081", "J c #8E388E3871C6", "K c #AEBAB2CA9E79", "L c #B6DAB6DAB6DA", "P c #28A228A230C2", "I c #104004104103", "U c #1040041038E3", "Y c #0820041038E3", "T c #0820041030C2", "R c #0820041028A2", "E c #28A22CB21861", "W c #186104105144", "Q c #104004104924", "! c #618561855965", "~ c #61855D754924", "^ c #30C234D32081", "/ c #618565954924", "( c #618565955144", ") c #38E338E328A2", "_ c #4103410328A2", "` c #4103451430C2", "' c #4924492438E3", "] c #49244D3438E3", "[ c #208108205144", "{ c #18610C304924", "} c #69A669A65144", "| c #30C21C7169A6", " . c #410338E369A6", ".. c #5144451471C6", "X. c #28A224925144", "o. c #BEFBBEFBAEBA", "O. c #20810C305965", "+. c #38E328A269A6", "@. c #71C66DB669A6", "#. c #71C665955965", "$. c #41032CB271C6", "%. c #28A218616185", "&. c #71C669A69658", "*. c #30C22CB230C2", "=. c #082004100820", "-. c #79E77DF78E38", ";. c #38E32CB26185", ":. c #F7DEF3CEEFBE", ">. c #69A671C65965", ",. c #410330C271C6", "<. c #51444D344924", "1. c #69A661858617", "2. c #208118615144", "3. c #AEBAAAAAA699", "4. c #71C675D65965", "5. c #49243CF371C6", "6. c #492449244924", "7. c #1040082038E3", "8. c #79E779E76185", "9. c #79E77DF76185", "0. c #38E338E34103", "q. c #CF3CCF3CCF3C", "w. c #410341034103", "e. c #20811C712081", "r. c #4924451469A6", "t. c #186110404924", "y. c #8617820769A6", "u. c #596549248617", "i. c #BEFBBAEABEFB", "p. c #596561854924", "a. c #A6997DF72081", "s. c #CF3CB2CA1861", "d. c #DF7DBAEA30C2", "f. c #69A659652081", "g. c #38E338E338E3", "h. c #8E38861769A6", "j. c #79E775D69658", "k. c #A69969A60820", "l. c #F7DEC71B1040", "z. c #F7DEDB6C1861", "x. c #F7DEDF7D1861", "c. c #E79DC30B1861", "v. c #30C228A20820", "b. c #5144492479E7", "n. c #861779E7A699", "m. c #9E7971C62081", "M. c #DF7DAEBA1861", "N. c #5965555571C6", "B. c #86178A2871C6", "V. c #8E388617AEBA", "C. c #BEFB8E382081", "Z. c #EFBEBAEA1040", "A. c #BEFB8E3828A2", "S. c #D75CB2CA69A6", "D. c #DF7DD34CB6DA", "F. c #965892489658", "G. c #30C234D330C2", "H. c #618569A65144", "J. c #BEFBAEBA9658", "K. c #104008204103", "L. c #69A6618579E7", "P. c #28A220815144", "I. c #DF7DDF7DDF7D", "U. c #861786178E38", "Y. c #104010401040", "T. c #104014510820", "R. c #000004100000", "E. c #69A671C66185", "W. c #8E3892489658", "Q. c #5144514438E3", "!. c #30C234D328A2", "~. c #96587DF74103", "^. c #CF3CA6991040", "/. c #F7DEF3CEDF7D", "(. c #C71BBAEA79E7", "). c #E79DB6DA28A2", "_. c #F7DED34C1040", "`. c #CF3CA6991861", "'. c #6185555538E3", "]. c #EFBECB2B4924", "[. c #9658820730C2", "{. c #F7DEC30B1040", "}. c #F7DECB2B1040", "|. c #AEBA86171040", " X c #E79DC30B30C2", ".X c #E79DAAAA1040", "XX c #492430C20820", "oX c #186114510820", "OX c #79E755551040", "+X c #96588A2869A6", "@X c #E79DBAEA1861", "#X c #F7DECF3C1040", "$X c #CF3CA69930C2", "%X c #EFBEB6DA1040", "&X c #D75C9A690820", "*X c #CF3C9A691040", "=X c #8E387DF75965", "-X c #E79DCB2B5965", ";X c #86177DF76185", ":X c #C71BB6DA9658", ">X c #B6DA79E70820", ",X c #DF7DA2890820", "<X c #18610C300820", "1X c #D75CA6992081", "2X c #71C6555528A2", "3X c #9E7982074924", "4X c #D75C92481040", "5X c #5965451428A2", "6X c #41033CF328A2", "7X c #965859651040", "8X c #86176DB64103", "9X c #8E3869A630C2", "0X c #79E74D340820", "qX c #8E3855550820", " . . . . . . X . ", " . o o O + @ # $ % & * = - - - ; : > > , = < 1 2 . ", " . . . 3 + 4 5 6 7 7 8 9 0 0 0 q w e r r 8 8 t y u i p p a s d > f g 1 h j k ", " . * l z x x x x x x c c v b b n m q 0 w w 9 r r 8 M y y u a d d f g < f < 1 h h 2 ", " O N N N x x x x x x c c b b n n m q 0 q w 9 r r 8 M y p a d > = B V V g f C h j 2 ", " O N N x c x x x x x c c n q r u a d f 7 Z A % S D F j h G G G H H H J w K C h j h ", " O N v 0 8 i L K g 6 A 1 P I I I I U U Y Y Y T T T T R R G G G H H H - w d C j E h ", " O x 9 * W W W W Q Q Q Q I I I I U U Y Y Y Y T T T T R R G G H H H H - q d C j E h ", " O x 0 ! W W W Q Q Q I Q I I I I U U Y Y Y Y T T T T R R R G G H H H - 0 K C j E j ", " O x q ! W W W W Q Q Q Q I I I I U U Y Y Y Y T T T T R R G G H H H H - 0 d ~ E ^ j ", " O x 0 ! W W W Q Q Q I Q I I I I U U Y Y Y Y T T T T R R R G H H H H l 0 s / E ^ j ", " O x q ! W W W W Q Q Q Q I I I I U U Y Y Y Y T T T T R R G G G H H H l q d ( F ) ^ . ", " O c m ! W W W Q W Q I Q I I I I U U Y Y Y Y T T T T R R R G H H H H l 0 d / F D _ 3 ", " O c q ! W W W W Q Q Q Q I I I I U U Y Y Y Y T T T T R R G G H H H H l m d / ^ ` ` j . ", " O x q ! W W W W Q Q I Q I I I I U U Y Y Y Y Y T T T R R R G G H H H l m s ( ^ ' ] h . ", " O x q & W W W W [ [ [ { { I I I U U Y Y Y Y T T T T R R G G H H H H l n s } D S S j . ", " O c q % W W [ | ....... .X.{ I U U Y Y Y Y Y T T T R R R G H H H H l n o.} _ C / j . ", " O c q % W O.+.@.k o o o @ #.$.{ U U Y Y Y Y T T T T R R G G G H H H l m a A ` / / j o ", " O c 0 & W %.&.*.=.=.o =.+ *.-.;.{ U Y Y Y Y Y T T T R R R G H H H H > :.a >.] } } E o ", " O c q % [ ,.<.=.=.=.o =.o o o 1.2.U Y Y Y Y T T T T R R G G G H H H 3.:.a 4.S >.4.^ o ", " O v q & [ 5.6.3 @ =.X + + o o $ +.I 7.Y Y Y Y T T T R R R G G H H H : :.p 8.S 4.9.^ . ", " O c q % O.5.0.z q.5 w.r z e.=.0.r.t.Y Y Y Y T T T T R R G G G H H H : n p 9.C V y.^ . ", " O c q % O.u.5 @.5 & * $ i.<.=.3 r.t.U Y Y Y Y T T T R R R G G H H H L :.p 9.p.V y.) . ", " O b q & %.&.0.<.a.s.d.f.s g.=.@ r.t.Y Y Y Y T T T T T R G G G H H H L b i V p.h.B D . ", " O b q % %.j.4 k.l.z.x.z.c.v.=.*.b.2.Y Y Y Y Y T T T T R R G G H H H L n u y.p.h.B ^ . ", " O c w & | n.4 m.c.x.c.s.M.v.o e.N.X.U Y Y Y T T T T T R G G G H H H L b u B./ < B ^ . ", " O v w ! +.V.$ = C.Z.A.S.D.F.=.O G. .{ Y Y Y Y T T T T R R G G H H H L b u B.H.< < ^ . ", " O b w & $.V.P t q.J.p r N q *.=.=.1.X.K.Y Y T T T T T R G G G H H H z b y B.H.< g ^ . ", " O b w * u.0.6 x n t b x x x F.=.=.w.L.P.7.Y Y T T T T R R G G H H H y v y B./ < g ) . ", " 3 b w 6 j.e.I.x N N N N x x 0 O =.o *.r.t.Y Y T T T T R G G G H H H t b y B.H.< = D . ", " O b w U.Y.5 r x x :.x x 0 r r $ o =.X -.X.7.Y T T T T R R G G H H H t b M Z H.< g T.. ", " O b b 6.o L c x x x x x x c q L X =.=.5 F.6 * @.* * * * * * * * ! & 9 c M y./ B V . ", " O c 9 e.@ x x N N x N N x N N :.& o R.=.8 :.n n n q 0 0 q w w r e r r 8 M y.p.B E. ", " k :.3.3 3.x x x x N N x N x N x 6 =.=.R.-.:.n m m 0 m q 0 w w 9 9 r 8 8 y 9.p.B >. ", " . + w 6.+ I.x x x v x x x x x x x L =.=.R.G.w n m m q q 0 q w w w r r 8 8 y 8.p.B.A ", " =.+ W.Y.5 x x N x :.x x x N N x x t =.=.=.o 3.n m 0 m 0 q w w w e r r 8 8 y >.S >.Q. ", " o G.@ X 5 x x x x v N x x x x x x 0 o =.=.=.F.a s d s K > = ( ] E.* y.g = 8.Q.1 !.X ", " . 3 & ~.^.#.q x x N b x x x x x x /.(.X =.=.+ z 8 y 8 r r r r % ] f 9.9.g g C k . ", " o O 5 f )._.`.'.n x x :.x x x x x x ].c.o =.=.[.8.] D D ) !.) !.j j } } C j R. ", ". k * J.).{.}.}.|.@ I.x x x c x x x :. X.XXXoXOXc.+X# h T.T.T.T.2 2 j C o . ", "o G.@X{.{.#X#X#X#Xv.k 3.x x x x x x 0 $X%X.X&XZ.#X X( !.3 T.T.2 F ] A } ", "o 5 {.#X#X_.#X}._.*XoX6 x x x x x x 9 C.Z.{.{.}._._. X=X` ^ ^ _ C 9.A ] j G.j !.+ . ", "o 5 Z.#X#X_._.#X_.#X-Xc x N x x x p *.k.{.}.}.#X_._._.d.C ^ j h 2 2 2 T.T.D ;XB.y.w. ", "=.5 %X}.}.}._.#X#X}.M.:X9 0 9 r @.3 o >X{.#X}.#Xl.l.].e r M p s f J E.) ` ( # h . ", "=.G.*X.X.XZ.{.}.#X}.,XXX=.=.=.R.R.R.<X>XZ.}.}.Z.1Xh.<.@ k O O 3 3 3 X R.3 . ", ". O # ~ 2X3X+X4X.X4Xk.5X6X6X6X6X6X6X5X7X&X,X4X8.] + o R. ", " =.X k @ @ S 8X9X0X2X#.# g.g.G.G.4 6.8XqXqX9X*.X =.. ", " . . =.=.3 e.G.4 !.O X o o o o o 3 + g.4 + X . "}; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/GNUstep.xpm����������������������������������������������������0000644�0001750�0001750�00000004564�12214432632�016347� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * GNUSTEP_XPM[] = { "45 45 8 1", " c None", ". c #666666666666", "X c #777777777777", "o c #596559656185", "O c #000000000000", "+ c #3CF33CF33CF3", "@ c #CF3CCF3CCF3C", "# c #FFFFFFFFFFFF", " ", " .Xooooooooo. ", " ..ooOOOOOOOOOOOOOo. ", " .XoOOOOOOOOOOOOOOOOOO+ ", " .oOOOOOOOOOOOOOOOOOOOOOO+ ", " XOOOOOOOOOOOOOOOOOOOOOOOOOOo ", " oOOOOOOOOOOOOOOOOOOOOOOOOOOOO+ ", " oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+ooooooo", " +OOOOOOOOOOOOOOOOOOOOOOOOoXXXXX.XOOOOOOO", " XOOOOOOOOOOOOOOOOOOOOOOOOOX#######.OOOOOO", " XOOOOOOOOOOOOOOOOOOOOOOOOOOX########oOOOOO", " OOOOOOOOOOOOOOOOOOOOOOOOOOOX#########oOOOO", " oOOOOOOOOOOOOOOOOOOOOOOOOOOOX#########@OOOO", " OOOOOOOOOOOOOOOOOOOOOOOOOOOOX##########oOOO", " oOOOOOOOOOOOOOOOOOOOOOOOOOOOOX##########@OOO", " OOOOOOOOOOOOOOOOOOOOOOOOOOOOOX###########+OO", " OOOOOOOOOOOOOOOOOOOOOOOOOOOOOX###########oOO", "oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX###########@OO", "+OOOOOOOOOOOOOOOOOOOOOOOOOOOOOX###########@OO", "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX############XO", "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX############XO", "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX############XO", "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX############XO", "OOOOOOOOOOOOOOOoX.X.X.X.XX.XXX@############XO", "OOOOOOOOOOOOOOOX###########################XO", "OOOOOOOOOOOOOOOX###########################XO", "OOOOOOOOOOOOOOOX###########################XO", "+OOOOOOOOOOOOOOX###########################OO", "oOOOOOOOOOOOOOOX###########################OO", " OOOOOOOOOOOOOOX##########################XOO", " OOOOOOOOOOOOOOX##########################oOO", " oOOOOOOOOOOOOOX#########################@OOO", " OOOOOOOOOOOOOX#########################+OOO", " oOOOOOOOOOOOOX########################@OOOO", " OOOOOOOOOOOOX########################oOOOO", " OOOOOOOOOOOX#######################oOOOOO", " OOOOOOOOOOX######################XOOOOOO", "OOOOOOOXXXXXXXX@#####################@OOOOOOO", "OOOOOOOo############################@OOOOOOOO", "OOOOOOOOO@#########################oOOOOOOOOO", "OOOOOOOOOOX######################@oOOOOOOOOOO", "OOOOOOOOOOOOX###################XOOOOOOOOOOOO", "OOOOOOOOOOOOOOX@#############@XOOOOOOOOOOOOOO", "OOOOOOOOOOOOOOOOOXXX#####XXXOOOOOOOOOOOOOOOOO", "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"}; ��������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Mouth.png������������������������������������������������������0000644�0001750�0001750�00000015445�12214432632�016076� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���gAMA��± üa���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� ’ù¥���tIMEÒÇG{��¢IDATxœ…›kv#ÙŽ?<N”2«º×ýç)x´ƒ§äa¸Ý]•’HF�þ̬ºÝ6×RJIRb�½ò¿þçÿøï ×}Ëï¢òž‘׬ܲ°Ì²’’*PUQEÕpÆæ2Üêˆ$Š ÇqP™dAƤԘ�‰¸qW¾Ý6T•œ“}ß™•Ä B ›…l3à 0ÅM±aPйÀ¤R'šJ&�dÌ ŠÌ¬ÈŠÌŒ ö˜ñˆ¬Ï¨ú”¬¯Šx¸&×BÞJê› ß3ò[Â[ —JÁ QBU�É,*‹Ì Z”9PÅ<v2aJRZí† ¤‚ÇAuGçd—$³H|&B2Ð*�*‘$Ê)˜ZbZíS¬fUI©UTÉ´äYª_dš’ ¸â!¼A}Ëäw)~ø½2¿%r… ¦Z*¨ ‚Š‚€‰ ‚ˆE‘f*Ô ²‚='™‚ƃPÁÄ�q's² Ç̨’vŽ ÏŽ žqp e\«‰B%¢†F’" ”$HT%%Vª•ªrdåC”A©*I�^ðM«¾ üžRÿPä_Cô7•ºrÄ@QQiãYÖ« j†š¢¢¨‡vˆNœù|PÕNAaG¢è3¿nd‚(P…Š’€[pßLyf‘ûÁÅ&‘WØ R‘ Ô &¥*T¥•I•"šñLá.ÈMQ/‚TRRpÉ| ÑoIüNò¯%üá_@Þ«¸ˆˆ‹¢€¬f¶Œg¥ƒ¢"m„(>`Nà áxî¤hŸô×Ó ³AU ÕQÑyÜ)³¹SˆôkG ¦Ee2,ˆèh”*²¤(AFYÍ ,-ÓæLó§E|Y#�AfF32‘UoRò å·Bþ…ª-ᛪ\)FÕª‚ˆ)U‰ˆ‹@ׂªu‘‚ÐßÍ("€*‚ZEfösÒ‘ÐÁ ER%mlŠ‚*ÖCT U쳺8ªŸN+¡s*)—ªªJK9Ž’G¢›Ë„ȸ—È—!»gÖH¸PuEäVÔ;*ß„ú.¢7¤…R%tœ±Š¡‘àFVa•dG23’ç<Ø£8ªÐ\'mÚÆ t°wÔ(”ÙÞE*IQT RI«‚HBD„*©$°0Ĥ*¥ŠL?ŒU ¢»ÿ¨ˆ«D]P†‹ˆ.Ê@äBqAäJÉUúû€²"…ª>g*SÄŒ*¨*‹)‚Š0g²?wŽ#ÈL$ÛiY®‚`tÕ75TÕ•%Õ©Q€&R•‚lS(ÈLÔŠäü½êÂ(‘†É!e"GQ—ʺ�ÆxíêžUJ••™S¸ŽªS5€!Rƒ*[é/�U…‚T$e‚”QU”1‹ç1¹Á‘Å1£ó”Ä–‘*d"ý´®ë–®î%(Ñá-X‘L:" ¨," U)´@‚‘27UW¤{¢oqøÜ6?ŽÃY¦Û¡n¦U«¬—Š˜iX!V”IuŠ•¬ 8+SunK%•ÂÁã˜ìûd‰ Äq j˜wѬ¤ U]- US˜ËI1;»«°ÂD‘ JÀ 3«“ª“¤`ë 21RŒr³ -uI›J™8¢Rµ¸Nû¤ª„Lé+ÖŽþuJŠªËV6p‰(ûäs<¾"I„Ae‰G­#©¨o9Sà,…ɾĪ"B„0D˜]WQ޾ ‘B«#„ö¡-ÛUÀbŠ‹"ZâjЉ�ºPE.x!'¶Ðîú ZtT "dt˜&ÅÅ‘Áþ|0c…µ ¨gý0¤O=ó,`ÝAdBŸ°¨ÇBëwsoZ‚j"b¸{§QfG…Ò¨S§¨!".¥)ZNYˆ™P{‚‚ Š ÖŠ\}µº½y)ýNQPéö—Qžy°—pÌà¾?y<TDC[U¤qC;ÑL”ÌUG¢‘•Ì ² ÕÆ{3‚ŠI™ÁœˆKCb $ 0¤„°ÀR¨…,3«ÖŒnÇU…ØÄvÁ}(3Vp'dIWáWŸ‡uñ…Šc ŠphA&{À“ûóÉ×׃¹OÆÅžQNÓ¸>§€'U f¬ºè‰ QEU¢jlæ”`äëë "«#@úpr&b†iw™) +½ú€ £¢(¥»Iõ¡¸¨ˆ R%R‰¨ˆTÄ•ózFæÃE•0‰œÌ™Ü#øº?øz<xÜw¾mŠ™ãª pž¾uˆ(Ê‹Y†T@)•…аÁXE²ª¸?ŸTŸŸwT¤‘ê #…6^í¼uaVÊE†„˜pLal"U]ߤіwxÛ:$«ìp¥²G7 Ym¹´ *()ž1ù¼ßùñuçñØyƸ^0SˆB3™]‰8[h¦PÞÀhÎÄÇDD™G &¸à Š»#!ˆsŸ›óœV"S”ìT¥LÑêRî"D0\:ûÄݵá}2™ýA¬®Ä*Fç¿«æg´“˜³ˆ¾¾|~Þ‘ Ü•›éâ²ŒŽ„LLë…ù#Ѝ ²ˆ*О2Õ¬Ÿ›E–R*¨+—Ë ÑÏ'{LæâˆÙ˜¡ 2ˆ8¨¬W‹%Y|bL ÖëÄ‚]‘»2“€4L­s¯ž÷ãàñœ<çÁcß¹½]ðK_0Ùíx…»“‘²*çýœLE]‰*ò8píᩪØÌ/Js£ö'³ bï°Ú+Asdz'ÔVÔ1» šÁ‘ˆŽ³¥`"8QÙU¶@«ÃŠê>ˆ4¾'Ñe%pÁs|Þï|=|íß6"ŒÈƒ£„çÎ1Eh,�A]ºØF#Šn£`YäL´Û;_º³Êu»âS‰#ˆyð8‘âΦ;lÞC•º2çD•`U]Ž ¶B¬;„WóWd@V‚k]¯û4££"#‰*f$Ç<x<wÇNEåÁó~çq» cP–<þãþ™|¿Þ¨÷7L‹HEfwmµ%3`*ÐÎId2ßœß.oˆ_ûΟŸ8ÊIº®â·qQaŸíBÕÉì‰5~é:ï¨й={¾>ùì¬X2«8æd?‚#’ˆà² f\Ø3ùøzà¿Aí£’ÿøøàãþà÷ËÌ€ßÞ¹9pݰè¾]¡¤ÀÉ<vžûÁ?>ùÚw"‹Í•üþ«;?žOþüzpsã¦Ч ­CkÚDJ í9%µ#Ûf’ÚS©Fâj]õª ‘DÎáCÎɪ ”ˆYMZf±g2gR”—· Ï?¿ø·|}}b|Ü¿øóÏ/þøºó'?øñ<Øcò/ß¿ñVÉ¡ýù™Éó8øñuçÿüñÁŸŸ|<ž¸¿»±;·Û;õx¢n˜ “ÐÁ1 á@–ñc‘,‡8‰¹a jêmƒÙö… .!¸B¢$‰bÝòªÙ²ˆÕfvøç19Žƒ˜…ÍSá¶Y|í;Gϸ ¿Ý®¨ ûsçÿÛ¿³?wÞo—.ŒÇDÔxæÁ}>?î|Üï|>Ÿ�\‡óŒ+GÛ ÆeðîŽmòSÂ^Ó}ƒì‰º[ãâÝœ…àú{*•‹(YŠHO`µ5«[QdÄwèЯä˜ÁÌffÊ„‘Ö…Q•륡ïtg‘rÌ÷w*ûw{F€?ïûÚ䈨4r+árݸÝ6þ›{ó›ó}l¼¿ßãÂÛækhÊêÐà,˜!i=Ì�Cˆ(öœøT$zÐR›7ÁT)mV+׫ºõTYAD1a}xe1DÈë 3Ù¸¢L2»XÂN²gŒÝ ±®ÒçŽYƒ°m s¶1P7´ _D««°mc 6SÆfh ³ŒŠ'ûœˆx·ï*æI*ŠiR(QÏ]Œôx»a”N\ÍðJllD=覧]¥ù¿ÈÎûL^¬­ˆà�6p R•ŠÂf)bEhAˆR ·ë†š2§qsÃÍ1S6wÌTqQ¬ç]¬7_èPÑRLý…8²Š%}söçËdX³9›8yÎàcß?>¸^¯¼½]ñ®z­¸¬Ñÿ}ëU "ûÔE¤½˜†]›Ë™ÉžÔ/Ø"2NbÔ| KX¦øŒ5%ÖšÝÛȦÐhòÓ5g¼žO\ûZ›WhVúŒÚcɱH܈® ²fë1üãøŽK bÏZ ïâDÉš?ÓâDÈVMOi>PlÍÒÒ…·« Õv’¨2|¼ž0í®ºrS¿T掩v¸2ÜÚ!RTuç°ÅÓ‚ôu¦¬c눘1Á´¹È¥J5®ëŽäˆ*1sBµnÒE¦=|òþ©Šf÷RÍVWj’ÅP#Íš‹¢¬IT13L sCE‰yt}‰5¶šâ4#¬(æÆe» ªý{Z‹JÍ%!,`©ªÂDzX«vÆimFüK´Ó‡Ž(Ú¤"ª‚ä:±ÅTåRÛ{ )ñÖçrµÕS)ê ™¡=®¸f~f4©²Zm¨ [—HѤå¢äó ¤ÖûF‡1Õ¼E?ªßÃO¨],gœ)K´Ö`mƒP¼]66sÜÊ-eóAÅÎ!Ù¹¿òþ Y¤Ûas€Í²È9»’G¶ÁÅbROêãÁ!ŠHR6Ы#Û•1¹\0 Élb#'uLŽL,öRdrøeC‡ccô”×¥äE™ƒÚyÊM±ƒ”vd-:ÎÝÙ|ÀWf#2ÑUlög÷û=f;þ£5;ä" ²Ãªb!É($Ùüq0p|ý]¾(y@ zÃÖ˜-™cv{µ2†Â¡F\7ê¶ÁíBnŽncµoá/„I®ÓoŽÐÔ”‹ Æ0ÆfDž=©üœý+Éœdû‘+Ðò''~æÈ\4WyLö_ÌöÏ/æs§TfÝâ¶: wئ8s6ü…9Ñ„­&5“AÇà8ŽV޵ˆç>äòÕ”úÛ†^6üâ¨ys¢dNŽ *ŠqÙp7$ +C²­¬’Äg‹£@YùlrKªZÝ9‡W¨Í@#‰ÇÁñx2ïž|ûšÿCñì™?*8$±u2mÑ9<³'¿®3Å3óÕ&uß»�ÛÀ6' Ì‚|&Cþpüͱ뭋ëÅ7¢Š}ßAች]u¢š+ôJ$ÁkiìÝ;œ¼š®è|?Žhù‹æÅ† ì“ãkçþã“|îÌ}GG ;³YÚûTÙüÞž›¶AˆpT-Róg»ûj…­ l¾a»5t>k’.ÉúOï?ðáÈføØHW" †#"læ\oÞ(¥ tEÆ‹xl'é¶Æ2þñõ`ÆD'Xq€F²}ñx<È}b5g+ÇA}Âq<‘ž—ÑÕ&î÷&-¼ÓÀDðÍ—|!ÇGôæÉÝŸ‚ ÍþÚrF´t.?½8Ž£7G¯ Çßß8žO=p…ízmz_Z7¨¼¬Å K!rRRÄÌœ ŠÜMmZêÏ`>ŸÌçƒãæc'÷Ï}ÂÜyžBÉKô¨Wx›ô\™äœ„Èb‹íº¡Úpøˆèz£JDt*8°¹3FSÚc\Poé|îIYài0ÁoÞ Ë­[¼÷ÊØ¼ÙæEuûó9‘5•Q³{fU!Ul›¢ÞE¹½óüó ùC8êÑüþó‰GwÃeüó8H3*‚ÇܱE‰w´í+¿sµZß÷ÕäÜÆhý˽'X‘®Þ"lê-‘G`ÑmôénnÊöíÊö~ÅokŠÜ›o\.¿ŒV¦V[÷ŒÖÙS¥5ü—µ|`éÀ#HK2a'ámCö ›‚©Qîèû;rLò˜ÌØù¼?º]nÎ[m<cªÒ'¬ªÜ‰h5rΠ²å(3c¨2ÆàRŶõFÙ&‚Áu»°]¯Äu#· ½9×·+cÜ~»±]·Ö'¶ÁÕ7Ææ‹ç”¼Rðc-wi~®u3eF¡&TÍÖSìÛµi%Uj85Þ݈çΜÁ÷Ç“ÇãN=ŸÄÊí¹OÒµÙdnȨ—CÆ0.6ØV7z_uCµÃÞ}ãízáv»0Æ…2åáÆssÞ¾_¹ÜnøekUê20 7®Û¶¢OP5Ô…˜…xá3bµöÂ%™R½§×,)Ö›K¢Î."›QµÁ)™zRÇÁŽbゎäû÷oüC”¯ÏOåy<áã ûÎóí "‚cMc…¿‰ c]øóɶ]¹]¯ØíŠ '¤Yã'›òöû7¶uòcº&G3á2Fk“ Ò’t“¸ÕR€g5À™¬™þ‚x…J"TLNÅDèM®IbH82 ÂýóÞy%½23U÷wÞßÞx»ß‘ïß0x%çŽ\.-¨D@N.ÖK‘ÛmCÇÆU "»ê›r>ùØw 6Çn®ßnŒmö6܆µñÃp5ÔWÆTFÏ K”Zº@ÑdGež’?Mt´5`„P¢ßz¬‘}GÞ’Áü|ðŒÉ}N6Ud ö¯äyðæŽ‹`ïßþàòý»ÝçÁñùÉ·ooØØíÆœ“¨ýÉ}?8î;Ï9™UÈÛ…Ëoo\.Ì .-¡™µñp¹ Î¥-9W�è9‡jZÍýl¿¯ÛK,'ךKFR3Ú<ÎÀ߈ççæÎ1[ºžKP=ÄZÞúüì úzKÑ5ëðßLxÞÜ?>ŒÞ?˜3“2e|{ãòÛ;ãvA6C¶QÍ[O<ùÕµÅÚ®>ËëWAfµÖŸðöügé€Z¬½þ*B,²dF¡ëÍ5ŒJYiòÖ«o¦ô´(Ù#×"wòëly-™RðyÿdˆôrÕ šÒÛ—ßÞÙ¾ÝЋ£îl· 6¬‹ÝÙ9†­-Öµ›œ…kóš?'ÛeÓ_ðr½ €éÚ ééof6⣰ J{­-µ•Ù”Ay‡`m{v[¬ý`Î&‘þÔª.°O10¨ÙÄëT!maŽ*|Û¸}Û¸^»¯o[óŠÛíºäó;ku·÷ ­[i-jïeð/ÆŸ’ç?9àåé©PèÖʤ᩺¿ôšÍÑË4uÝÐËÀö@æ1‘XÛ&kµ( rñ‘².̽O6èÅjÖñÉ ^.ÛšVóõšÔÚ<AÀºCh)–Ít•dŸþË‹0kì¿r@³; ‹Ã[MA‚.<KyÖÉ‹†úYbuéj,µ&Nï“57áM |0¤Y$÷N‹è­¯^Ì6mŠlª kȼÔ]YlÓ œzéç† kIKéÉóDšÍ ý—°”a•zêMnD”!DWvSâ9©¨– Œ±@Sÿíç²9C‹Y“"Ì“ûzJlµIwo§š¢¶QH»KG¼ ="0ai„‰vU|ûÿ¥z!®–F,'û´†03ŒÍ©ýè¥&a«¦ÎÄ ¢Q¶­1=® ]´Nu3§"pé~?̺E/V£­8¹´3D }…¿P ´&Ì­jHN&­FÛKdÙv>ZûO¾NY ÖIya!Dû´›‡o*;Å€ÂÖ¦÷Pm·-Òmû ÃF¯_†pÙÆŠŠYë}§ð’’ÑZ^´ö/‹ó+íè#!µÈÐÊDŠœkÇ­Z2QëÍQ]«êò‹ÿ8;°bÖæßK 1leÞ<®½ânª¨ ñÉt‹*ãíº½Öæ|sªŒªh,P½@¥GåÏ õózjÕè“ÀÉÖ43É<”¹´ƒ\¨ÕäÜ…üú¿FÀÿ÷QgSàÜ iXAnŽE sõÛf*££ݸޮ,Õ­÷rÆFk/´J)âÍû‡5•-sIò¿ È §@L„^¯“s+mÝ¢£º–±Ïñ÷ïæÿ³ê—ïõ"ú¡jíåÒYll«rÚ!+OT« N$æÏnÚ >Úmdø†“P‹é¡—©ÕŒ²àñœå½½ØÈ.ЭFU.ÂE:3ËDËTKDz{ü¯6¾ð«Ñ?o‘¬kÁšN KþZ@í'ØDk­Àšw¹VÝVź õ "-‹[ ­¨¶*Ôí«ˆRÃFq‰É>ÿzåçYŠ+•ʬ½(=—9ÊÔÊU;ïa-Oÿ³­§ò—ïñ—/}õÀ^ îBS"*­¿ ÑPW-1éa²ŒŠIÙ’÷0¡¤ Î}À­[cìGßÇb…†¢êl@Ñ»‰ó\¶¦'¸VGô4^õ´áW›~µµü£çß¾VºžñÂÙоq­ª‹‘ÈÚøÚXZ¼ «[XóóôXŽ<âÕÐÛT˜û[PnȬWî×6P9^;†'ª;*˜{ö-¦,ãk,úàïöþ7ƒŸëëŒiÑ#͹:».¦eØHÙ/¬ÝB—®&Lz×¼ÕÜëøYv"XÂ`?|&Ç//ê„°@Òƒ:iÖ7bvi"+Éý�©ri5ÙÚø¢KÒ±ìyübßË!þ‹áà|®d½6�}Ý?p>NP¼È]a’÷–Òé-í…%qŒ¿?ª¥+L˜Q}Ó„ö¦¨Æ$ „ƒ8x…}ÌheÉDÊl-Vœ5L$ùé€eÛýg¾žØÖnË`€¸Ð…òuÛÜk¢:ûÑù“œÎ`­Òï¨x³És3¼~Âá¿?¦†0VX‰÷e Ĺå±0�T/[焵Âï"¥?ÿxWþÎÆ¹ŒýþøsÙúÜ}ý`Ëð3>õ¦ËzídåW®Ÿ_pEKñ'‚*}í4’K¢žÐwu"Ã~‰è݃C’ZzƒI²n Íó³~’ÒCQ©ü%8_)@çúsôŸÀ¿œNðõ¼Äfæzóu9åW¼>´/ä¼Í¦gy¤oYÉ12Þ/š¸[:sSœµš'Ù¢J­?¶´¥ŸV kaëÅZœw™Ô߯íoø5 þX_?€3~µáXÏᮎþŒ’ÿZ½†ˆˆ¨2{=]À(Ü“=„°]º¨%½EnúbÊl‰±¿DÜk_WÑýÜÈ_/猂³Ã=—]§ñ¢úå¿€þŸ!³-ãOðŸ9á¿xn¥êÚ2M`Ý®|lÒ7>ÐUåµÝS½0Ñ„Æjƒ%«å¾hΟ%ùÿëã±'èšö kÁ§¨~‰Èãÿ¼ÌŽ¢y‘����IEND®B`‚���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/GNUstepGlow.xpm������������������������������������������������0000644�0001750�0001750�00000030673�12214432632�017200� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * GNUstepGlow_xpm[] = { "64 64 264 2", " c None", ". c #232327", "+ c #090B0B", "@ c #000000", "# c #020302", "$ c #161315", "% c #2D322F", "& c #050505", "* c #020202", "= c #030303", "- c #010101", "; c #000100", "> c #0D0F0D", ", c #030404", "' c #040404", ") c #060606", "! c #080808", "~ c #0A0A0A", "{ c #0B0B0B", "] c #0C0C0C", "^ c #0D0D0D", "/ c #080908", "( c #060607", "_ c #030304", ": c #0A0F10", "< c #081513", "[ c #0F0F0F", "} c #121212", "| c #141414", "1 c #161616", "2 c #181818", "3 c #191919", "4 c #171717", "5 c #151515", "6 c #121313", "7 c #0E0E10", "8 c #09090A", "9 c #060506", "0 c #020102", "a c #111111", "b c #1A1A1A", "c c #1D1D1D", "d c #202020", "e c #232323", "f c #252525", "g c #262626", "h c #202121", "i c #131B19", "j c #101010", "k c #1C1C1C", "l c #282828", "m c #2B2B2B", "n c #2E2E2E", "o c #303030", "p c #313131", "q c #2F2F2F", "r c #272727", "s c #131313", "t c #161514", "u c #080809", "v c #323232", "w c #353535", "x c #373737", "y c #383838", "z c #393939", "A c #333333", "B c #757575", "C c #A0A0A0", "D c #A5A5A5", "E c #A8A8A8", "F c #AAAAAA", "G c #B1B2B2", "H c #596363", "I c #1E3F3C", "J c #0F1010", "K c #242424", "L c #3A3A3A", "M c #3C3C3C", "N c #3E3E3E", "O c #3F3F3F", "P c #3D3D3D", "Q c #A2A2A2", "R c #D8D8D8", "S c #DCDCDC", "T c #DFDFDF", "U c #E1E1E1", "V c #ADADAD", "W c #1B2E30", "X c #2D2D2D", "Y c #343434", "Z c #404040", "` c #424242", " . c #434343", ".. c #DEDEDE", "+. c #E3E3E3", "@. c #E5E5E5", "#. c #E7E7E7", "$. c #E8E8E8", "%. c #E6E6E6", "&. c #E2E2E2", "*. c #727272", "=. c #080909", "-. c #1B1B1B", ";. c #363636", ">. c #3B3B3B", ",. c #414141", "'. c #444444", "). c #454545", "!. c #464646", "~. c #E4E4E4", "{. c #EBEBEB", "]. c #EDEDED", "^. c #EEEEEE", "/. c #ECECEC", "(. c #E9E9E9", "_. c #D3D3D3", ":. c #222222", "<. c #181A18", "[. c #474747", "}. c #484848", "|. c #494949", "1. c #B1B1B1", "2. c #F0F0F0", "3. c #F2F2F2", "4. c #F3F3F3", "5. c #E8E8E7", "6. c #888888", "7. c #1F1F1F", "8. c #4A4A4A", "9. c #4B4B4B", "0. c #B4B4B4", "a. c #F4F4F4", "b. c #F6F6F6", "c. c #F7F7F7", "d. c #F1F1F1", "e. c #D5D5D5", "f. c #2E3534", "g. c #4C4C4C", "h. c #B6B6B6", "i. c #F9F9F9", "j. c #FAFAFA", "k. c #EFEFEF", "l. c #686868", "m. c #0F1313", "n. c #4D4D4D", "o. c #B7B7B7", "p. c #F8F8F8", "q. c #FBFBFB", "r. c #FCFCFC", "s. c #EAEAEA", "t. c #AEAEAE", "u. c #4E4E4E", "v. c #D6D6D6", "w. c #0E0E0E", "x. c #353B39", "y. c #212121", "z. c #4F4F4F", "A. c #B3B3B3", "B. c #F5F5F5", "C. c #515151", "D. c #B0B0B0", "E. c #6D6D6D", "F. c #171A1A", "G. c #ACACAC", "H. c #7C7C7C", "I. c #141919", "J. c #292929", "K. c #535353", "L. c #565656", "M. c #585858", "N. c #AFAFAF", "O. c #DDDDDD", "P. c #D9D9D9", "Q. c #D4D4D4", "R. c #797979", "S. c #1F2321", "T. c #2A2A2A", "U. c #8D8D8D", "V. c #8F8F8F", "W. c #939393", "X. c #989898", "Y. c #9D9D9D", "Z. c #A3A3A3", "`. c #BFBFBF", " + c #C6C6C6", ".+ c #CDCDCD", "++ c #D2D2D2", "@+ c #D7D7D7", "#+ c #DBDBDB", "$+ c #E0E0E0", "%+ c #676767", "&+ c #393438", "*+ c #1E1E1E", "=+ c #787878", "-+ c #8C8C8C", ";+ c #8E8E8E", ">+ c #919191", ",+ c #969696", "'+ c #9A9A9A", ")+ c #A6A6A6", "!+ c #B9B9B9", "~+ c #C0C0C0", "{+ c #CCCCCC", "]+ c #D0D0D0", "^+ c #D1D1D1", "/+ c #090909", "(+ c #8B8B8B", "_+ c #A7A7A7", ":+ c #BEBEBE", "<+ c #C4C4C4", "[+ c #C8C8C8", "}+ c #CECECE", "|+ c #CFCFCF", "1+ c #C9C9C9", "2+ c #BCBCBC", "3+ c #141415", "4+ c #959595", "5+ c #999999", "6+ c #9E9E9E", "7+ c #B2B2B2", "8+ c #C3C3C3", "9+ c #C5C5C5", "0+ c #C7C7C7", "a+ c #171819", "b+ c #8A8A8A", "c+ c #929292", "d+ c #BBBBBB", "e+ c #BDBDBD", "f+ c #B8B8B8", "g+ c #B5B5B5", "h+ c #313133", "i+ c #A1A1A1", "j+ c #A9A9A9", "k+ c #9C9C9C", "l+ c #ABABAB", "m+ c #9B9B9B", "n+ c #1B2020", "o+ c #979797", "p+ c #A4A4A4", "q+ c #5D6C6B", "r+ c #9F9F9F", "s+ c #32312F", "t+ c #8E98A1", "u+ c #292829", "v+ c #909090", "w+ c #949494", "x+ c #7D7D7D", "y+ c #719292", "z+ c #3D4041", "A+ c #7F7F7F", "B+ c #838383", "C+ c #070707", "D+ c #5E5E5E", "E+ c #5D5D5D", "F+ c #808080", "G+ c #868686", "H+ c #898989", "I+ c #7A7A7A", "J+ c #5F5F5F", "K+ c #858585", "L+ c #777777", "M+ c #555555", "N+ c #595959", "O+ c #5B5B5B", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . + @ @ @ @ @ @ # $ ", " % & * * = = = = * - ; @ @ @ @ > ", " , ' ) ! ~ { ] ^ ] ] ~ / ( _ - @ @ @ : ", " < & ! { [ } | 1 2 2 3 2 4 5 6 7 8 9 0 @ @ @ ", " ' ! ^ a 1 b c d e f g g g f e h c 2 } ] & @ @ @ i ", " ! ~ j 1 k d f l m n o p p p q q m r e c s { & @ @ @ t ", " u ] s b d g m q v w x y z z y x w A n r k B C D E F F F G H I ", " J ] | c K m o w y L M N N O O N P L x p e j Q R S T U U U T V [ @ @ @ ", " W ~ s c g X Y y M O Z ` . . . .` Z N L p b & E ..+.@.#.$.#.%.&.*.@ @ @ ", " =.a -.g q ;.>.O ,. .'.).!.!.!.!.). .Z N A | - V ~.$.{.].^.]./.(._.:.@ @ ", " <.^ 2 e n x P ,.'.).!.[.}.|.|.}.}.[.). .Z y | @ 1.$.].2.3.4.3.2.].5.6.' @ ", " ~ s 7.m Y M ` ).[.}.|.|.8.9.9.8.|.}.[.).` M | @ 0./.2.a.b.c.b.a.d./.e.-.@ ", " f.^ b g v >.,.).}.|.8.9.9.g.g.g.9.8.|.}.!.'.Z | @ h.^.4.c.i.j.i.c.4.k.$.l.@ ", " m.} d X y Z ).}.8.9.g.g.g.n.n.n.g.9.8.|.[.).` | @ o.k.a.p.q.r.q.p.a.2.s.t.@ ", " { 4 f v P .}.8.9.g.n.n.u.n.u.n.n.g.9.8.}.!.'.5 @ o.k.a.p.q.r.q.p.a.2.s.v.| ", " w.k m x ,.!.|.9.g.n.n.u.u.u.u.u.n.n.9.8.|.[.).5 @ h.^.3.b.i.j.i.c.4.^.(.T L ", " x.a y.q >.'.}.9.g.n.u.u.u.u.z.z.u.u.n.g.9.|.}.!.1 @ A.{.2.4.B.b.b.4.2./.%.T C. ", " f | K A O !.8.n.n.u.z.u.u.u.u.z.u.u.n.g.9.8.}.!.1 @ D.#./.k.d.3.d.k./.$.+.S E. ", " F.1 r ;.,.}.g.n.u.u.u.u.g.8.g.u.u.u.n.g.9.8.}.[.1 @ G.+.#.s./.]./.s.#.+.T R H. ", " I.4 J.z .|.g.u.u.u.n.[.>.>.P ,.!.8.g.z.C.K.L.M.O w N.O.&.~.%.#.%.@.&...P.Q.R. ", " S.4 T.L ).9.n.u.z.u.}.w c R.U.V.W.X.Y.Z.F 1.o.`. +.+++@+#+O.T $+T ..#+@+_..+%+ ", " &+4 m M !.9.n.u.z.n.Z *+] =+-+;+>+,+'+C )+G.A.!+~+ +{+]+Q.v.R P.R @+Q.^+{+ +g. ", " 1 m P [.g.u.u.z.n.P | /+=+(+U.V.W.X.Y.Q _+V A.!+:+<+[+{+}+]+]+]+|+{+1+<+2+p ", " 3+T.P }.g.u.z.z.n.N } ! =+(+(+U.>+4+5+6+Z.E V 7+o.2+`.8+9+0+[+0+9+8+~+2+t.| ", " a+r M }.g.n.u.z.u.,.a ! =+(+b+-+;+c+,+'+6+Z._+G.D.0.o.d+e+:+:+:+e+d+f+g+-+@ ", " h+:.L }.g.u.u.u.u.` w.! =+(+b+b+U.V.c+,+'+6+i+D j+V D.7+0.g+h.g+0.7+D.V C.@ ", " k ;.}.n.u.z.z.u.'.^ ! =+(+b+b+(+U.V.c+,+5+k+C Z.)+E l+G.V t.t.G.l+j+m+-.@ ", " n+q ).n.u.z.z.u.!.] ! =+(+b+b+b+(+U.V.c+4+o+'+Y.C Q p+D )+)+)+D p+Q l.* @ ", " q+e Z 9.n.u.u.u.}.{ ! =+(+b+b+b+b+(+-+;+>+W.4+o+5+m+Y.6+r+r+r+6+Y.W.d @ @ ", " s+w 8.n.u.u.u.8.~ ! =+(+b+b+b+b+b+b+-+U.V.>+W.4+,+o+X.5+5+5+X.o+M.@ @ @ ", " t+u+,.[.|.9.g.8./+! =+(+b+b+b+b+b+b+b+(+-+U.V.v+>+c+W.w+w+w+W.x+w.@ @ @ ", " y+z+[.8.9.n.u.z.z >.A+(+b+b+b+b+b+b+b+b+b+(+-+U.;+;+V.V.V.V.B+y.@ @ = @ ", " @ @ @ C+D+b+b+b+(+(+(+(+(+(+b+b+b+b+b+b+b+b+b+b+b+b+(+(+-+-+-+6.p @ @ - ' @ ", " @ @ @ @ ! E+b+(+(+(+(+(+(+(+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+F+w @ @ @ & ' @ ", " @ - - @ @ /+C.G+b+(+(+(+(+(+b+b+b+b+b+b+b+b+b+b+b+b+b+b+H+R.f @ @ @ & & = @ ", " @ o w r @ @ = n I+(+(+(+(+(+b+b+b+b+b+b+b+b+b+b+b+b+b+6.J+5 @ @ @ & & ' = @ ", " @ L Z ,.r @ @ @ ! 9.R.H+(+(+b+b+b+b+b+b+b+b+b+b+H+K+%+r - @ @ @ ) ) & = * @ ", " @ y P N O f @ @ @ @ [ P %+B+H+b+b+b+b+b+b+H+6.L+M+K & @ @ @ - ) C+& ' * - @ ", " @ w z L >.M g C+@ @ @ @ ' w.r '.M.N+O+L.C.x -.C+- @ @ @ @ = /+C+) ' = * - @ ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; ���������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Pen.png��������������������������������������������������������0000644�0001750�0001750�00000020041�12214432632�015510� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���gAMA��± üa���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� d4é$���tIMEÐ Zv¶¾��žIDATxœ½{Y¬mÇqݪêî=éNoæôø8ˆ¤¨ÙÙŒ؈Àá� œ|l ‚YŠ!9Ž ÃA` @àŸ|åÃ_ñ€ ËŠá@%Q$ùÈÇ÷î»Ã™öÔÝUùؽ¯®h*±A2 lœ½ÏÝçœ]ÕÕ«V­êKøÿ0že$zØHÜhšIÌ+&ì2aB@€E0¾ˆ�j�[�G ,­UÑP€�œüÝ>~ýí<›}[–ý5GŸe¦ï÷¡˜9‰™%XC¨@ªoõ1U@[ NØ�بj�4P 6–þ ýÛ{¶wÝÏN Ò¾¿$1$25L1» €%À¨*)�…BTÓì‹ÚÚÔ�€(€OñAzò÷ëø–žû›ŒwÝ]Q\A×FÃö È,så�Ì?"�ÄÚ�Ú©RÒnpŠÀ#jÜ:úÏïÄó½ë ŵã#Nõš%*˜Èå�efQb€ :ºP•¨P/*>ˆz€:&U DK½í¶Ð»ÿ¨ÅÛž}à]vÀ³Ó"ßzͪ>œW˜Á;À h:GDt1*  H½ôÚŸË¡¯ý.”þ1Þ¾�~û·ûmûV£)ʳć¬ÊECt KpP�sÑK \‚è�—!z€>^àB�ö=°ƒ�\ÀÁØ}˜½JðuÔøN ©ä]ÏN Ú:÷ÏŠ¶}_¦z!#ì9Ãv— S‚ˆ+€(Ãì÷UôW€n�^tè_Ú—Ã5áŸdŠþ_¿Cx×–ÀjwïZ.¯YÕ ´Ï„©l¦JF•ÈC!Âð"� �•!äóÐ-€S@ïÕËÀúð­Láß)ãwÑÒûOe"—¬â2“. 3e�»>’ËLKÏ1,AŸC�òCÊ£-€7€n ˜Îš¯ÚðöSßùñ®8àÙiaNcx2aA„L¹0"聯*ÝJ���p€Oi°Ì ðkÀ´ÀÍ2Äúßþ fÿ×ý×IDè+_ùŠü¸{øíúãÆÑÅK›c|ئ†`vSøÈ 0Ž·Œg t€`zÀzÀv@Ö|ä- ø¼ü CŸˆ 3Ó¯ýÚ¯ýX;ßP]?éb¨2è{™h2eàB/Ž£M:,�+€ ƒÁ®¸ì @GHü¸g€—þý[8àóŸÿ¼y«gø­ßú-bf03NøêW¿úW@ÿwÀúÌg¶]ÿÙB¤"BÅ@vÈKh‘) r GÀé0û¦ÐùŸÛaýã õ€ ÿCü‘ñK¿ôKôµ¯}-¾Õs|ñ‹_Ô/}éKˆ”™ 33Ñ›ðŽcÀÎ÷¿ûq’è(ħ”©˜�ê�ÅÖS€~hˆˆ Fb$?5 '�–�:à%¾õÞböó<φ[~üøÒ—¾ÄßøßÈ~õW5¼ùïïhüî?üuíÇã>‰ì`æD¢ CÃï¹tX2¨à“  €ÓÄøç*ã¿2ʲôÝgûò—¿ü#uãW¾òÞá¸úÿåÓÃ'3´@yAU"„”¹Î{;^ŒCø‡ €-V�¯‡õojà.ñV³ÿÅ/~‘ó7óÇ¢ûÿk<óÌ3䜃ý•_ùKD�ãK:?[+ozÿ¯|Ùøž|íß|Œ­+²PÏö dß ±*‡4ÇéK4@ 4;6€¼Ø_ Óiü;Ÿþ4QÎ̘L&ØÛÛñ—¿üeѤ%¨ª /:>‰ÈxMçîSUÅw¿û]k­–™mºŸÎ½â-ÎÏì} G裿ÿû,ú‰Åf{uW•/%;XJzºð0 Àp[àˆþèµO}JsÅÌÎZ‹ªª0ÎØZ+ª "‚ª*EU•s×LÃH—4:C‰ÛíÖ®×kX"ro2ž�ð[9äÍÑ®ƒéûxñ/ü=Éó+óõvraXï€F£Ó5ü&ŸÐ¾^©äÀÍ_\]¿NÖÚ ÉäyŽÉd‚¢Èi4äœñLD¢ªZEÖ¶mdf$'Ñ9ãUUåöíÛ €ÏG�Ÿ3œÏ½7:â¼ÎOÿúý¿÷{ï?³žïí|ït­¯{¯s@ïx:°<²çÂ>üðœš!ï›5–ðÙXoî»ïW=t‘‰„™ÉZkg³™N§S0óY8'£%9!23ú¾'fæä”³u‘ŒWçœx’%"sÎxpv}>þ/ÑÐNï>Ò†øž�Î1›õ²\1òé°¦9Lž Gúb"€Ã wQp¢þÕú‘Göít:°ff*Š‚³,Ó²,ßÊø ªÌÌ™ˆH2žˆˆÏ/‹ñÞ#ˆÈ‘ŽpÞø‘¥Ž8 ç€0¤§)çÅ£*‚-h~¥(œQªk5ÞsTÕS€ƒvÃÀ‚$g`H5€%àï}ô£`vw�(3/˜Y‹¢óùü {Òl†Ñx"R�ÌÌtn93³ˆ�1Ý‹d¯ªªÚ,ÎïˆÈ¾Ù oˆÑ  úoýèÓ˗÷Šƒ¯^¥,n^]Û›7iúì³´ÿÒKˆ"C²Ç ðê9†!l ˜ø—zíÚ…¢(ò¾ï"JÀ7uÓéT10Æh!`ï=‘$Ôñ‹Ï$’½ªŽvBU#�±Ì|ö!"²Ìì’cÆ‚e\ç—Â�HŒ÷÷?üák=X4]Ï;O<A?ò^{þyzñ;ßÑþÑGµüÞ÷ôò³ÿ“.½|“2(úÖán�@[§î—ù[Ùéi霳ªJÖZ_Uvww±³³ffŽÞ{öÞ³µ–Û¶AÑ&À£sk_Îe‚¨ª2f U›R0Ìl­µŽ™3Ûô…Ü÷=«*«ê—INPñþzUUd,ø>)‹‚³(öö¨™Lˆ'Ôe‰›÷ßðíoëƒ_ÿ:&Ë%ƒ#h;8®ôׯÿ» W®\ì“£,‹,„ÐE¡óùY–ueY²1ÆÜ»w/cØãD1F{.åY§%UÕ'GÅ Ñ:çlŒÑ¥t˜ÈŠ¢ÈŠ¢°1FÛ4ɲŒE„R¸ €^U°ÖdÌ$ÆY̧Ü;<ä¶kuày¸p.?ù$¶O=¥/<ø NŸ{N¯~ãÔ„@-`Þ�è `µó‹¿¸ìˆŠ+W®ìxï×yž»Ífwvvh>Ÿû,ˬsÎ� B´Öêl6CUU²^¯]Š œ>`ÓÚ)ÒGãAD°óù<‹1fu]çÌìæóyV…cf×4 !˜¢(¸ª*®ëšº®;ÃQ½÷Ìf³}UÅl>ç,Ϩ®k=9>F’¼Q–¥¢((¿r…n}à˜Öµ†£#u?ø¾¯j·�ŠŸÿùQ\‘º>îû~³X,*k-_½zUh¹\zf¶Y–•"¢D‰ˆú¾EQhUUn»Ý’ˆ@D·PUCD&EqWUØ<Ïs�Y–eYQ3gDäŒ1.yÏEÁÉÓf³ÙP×u¤ªhëº2ÆìçEn®^½†ƒ‹4/KœÓf½†ª€À¨&£®¶[Š�}ä#ôbÓÈ•£#¹½\jż­>üáªíºv±XtÖZS–%Yku2™äÖZÌçó… ÜÖÄuooO½÷ @¼÷hÛ–C€cR]Hx6†¿!¢NU)-g¶Ìœ3sæœËÒÚϘÙ‘kšÆY;À„÷^CŽ™qppàDD_Ýn'Ìì hò</ 1Tº®Ñ45�…uEQ¢®k¬NO¡ª¸}û6^-K|÷™gâþ³ÏnËü?J–gL°Öæ»»»f6›yUk­ªªc2UUï=�hß÷‘™%„ ëõšC�Œ1jŒIŒÑ¦tèy`OcÔÈUUmÓ4Ù|>ÎŒ1ÙÑÑQBpyžóXPl6!ð… Âl6Ë�È^xáÀZ{u¾XØùEYPhk:].!ª0Æ`RV !, DºÝ¬ADꌉq>ïãç>÷§Ù“O~w±»{`œëg³M§Ó Õ odDnUÕ<ÏÕZ«eYZï½l·[ˆˆmÛÖ†¢1f„|±Ö 3Çs@DDC*"js€efgŒqD”]¾|Ùõ}oªªb�zxx¨Æ0³ÈsEÊdï±ÖæÕdBûû˜íìá…翉Óåª CUY@BÀf³Ö¶®Ñ6-¶Û­ˆ“ÉÝO>óÌÿ(ʲ‘蜣”…ØZ›@ û³².œŠˆ¬µ\U•Y­VÔ÷=ú¾×®ë±EUŒ1±,K2Æpß÷ã÷h¢Ódg³™%"·ÝnÝb±#ÁN&ËÌ�íÚµÀÌB õzíîܹ“•e)LtÉe™afL'pΡ÷1úEžç`š¾Gßu¨›]ÛÆív«�Â7þðÒåË­ªf!EÚ*ÀÌAUíVcZ€á&1�ãœã½½=M�H«ÕJOOO€ŸN§a±XPwïÞUEQPU´m;€œ1Æ. Ó4 Ïf3k­-Òr ”ÕÆc²,³yžs–eù+¯¼RŠÈ”ˆpåÊ6ÖÒññ=œœž•—UYj×÷ج׺\®¨m[=9=Uï½îííýÅO|ìcÏ3ó"Æ8ï°ÌFž€cŒõ›I˜ªb»ÝâøøØ^¼xÖZM¡.;;;ÑZKY–‘1Ƥb "¢Ì¬“ÉDó<—ív+ÖZë 2óùÜc fÎUÕ‘´m+Y–ι‘R*�gŒ¡ÝÝ]ìíLqç΋899˜”•fY†åf£«í!FÔu-u]S–e'ýØÇþÈ97 !ì8çÖªêRzkÒzÍ� ÆØ§s&"öÞÃ{¯eYb6›qÛ¶cD–e£Î¢�²ù|k¬×kMÏ­1F™ 3óy °ÌìîÝ»ç¦Ó©E‚oÛ6dYFª*1Fß4MVÅd:›!+ !b³Ý"Fƒj:Á¦ët¹Za³ÝR]×8==U�òè£þÉCׯ¯R*: !äªê­µ!Í´Pž¯è†IW{rrb˜Î9rÎáòåËPU!HŒ‘œsCÙ7̶]­V~µZ‘÷~”É5„ u]Ç®ë¢MF»Ífã˜Ùíì옦ilÛ¶6Ïs*ËÒXk}¡VÕeTu³ÝnœÏç“8>>ÆÑÑ ŠªšÀd9uõ©¶]‡¶m±Z­$„@{ûûÏè#ù3;acŒÐc �B˜$L虹""#"=�¸årÉyž#vÎQš]ItWD$ììì°s޼÷šç¹¬V«X×uLDJm4W–¥íûž7›É󜊢 "rEQh×ul­-DÄ„–ÖÚ "“¢(ÜÎî.ˆwîÜÁzµ³A^–hêZ–Ë%Öë5m6­ëZŠªzãÓ?õSÿ}±X¨ˆT)\%Ïs«ª…ˆä1F§ª1±Š™‹ÄCHU½s.¿pá‚Ie¿QU2ÆŒÌO™YEDš¦ÑªªBŒ‘'“ÉY:µ.'ëS÷ÚÝUyûN×Ù,Ë”™e:RJ­µ6cvcŒ²Ùlú<Ï)±Â*ÆHP]•Ea¬µÈóœNOOqrr‚¾ëPVŒµX.—èº]סiš8™LVO=ýôï_¹reÅÌ&ÆXªê1ÍcŒ”PÔñˆ™µv""&¥¼@ÆÌ“êTD@C G”ˆB×u&Ïs÷Ù½“0»{⦖VB¿ž–îôé'.[E¶Z­™ƒƒƒ‚™]!_.—:™L�ô8„@D”÷ÞgeYÆétjp]ר¬×�€²ªÐ5n·[4uív«yQ¬{ì±ÿúþ÷¿ÿØ9gScUÇ ™ó”Öú„ÊÌ¥ê caÐ*8EƒÍóœF^2ƒ2³ÄE0)oÝñöè¤ååºóvôøÁ+æÔP³ìÚv[E·X,¼N§&Æh²±ügƒétJ1„BE &Ú‚¹szròÞ /V"‚®ëP×5&³TUONNt½^c³ÝÂZ+.]úÁ‡>üáײ,3$jef#"1ÆÄtp)µF�ž™çª k­ LÜÈ$ŠL#EVUÙÔѽú†_Ü9êŠÈþÂ,Ÿz´\Î'åz¹\6DˆMclÛ¨ !˜¾ïÙÆ9…÷XäD¤ÖZ”e©©°!B(UU˜¹‹"†™9„€¦i†Ü“e}8¤<UåÚÕ—?ñ‰O|#˲,…y$¢Ž™Õ9Wc8„ ªº ¢yJµÀ‚™‹‘ø¤ß…ªÆétŠº®3mÛšWow“ ‹éºwõÀl?ôÄdã»ÓÍÎάéº.ïû>ƃµÖ/ ë½§¶maŽŽ �»ÝnÍb±`f–ªªP«ª®×krÎmR—�rfeQtÌlú¾GÛ¶pÎAUq|r¢GÇÇhšÆT“É«Ÿüä§¾i­-cŒ3{f6©LuMÓ´Ìœ%Îa’±…1&OQh“žG4(Tš€ ǧ[­^¾¥UŒÄ_wíÅýlÓ÷v]ʲLD3WY–µÌE$ìííu1F+"FUÉ&Þ{;æIc ;ç$).scÌiÊÓuŒ±iš¦™ÌfÎçs,—KÄQU¼÷Ø¬×Øn6¼<=½÷™Ï~ö•SUíº®~ÐZ¨jcì1clU5#"›Bš‰(cæ")¼–ˆt³ÙH!N¦s~ã0̾ÿJ·óÀåL?øä¢ß™Àˆ‹Ä繈‰ˆ•!RÕ«ªò#ŽŒLÓ:ç€íûžîÞ½kæó¹äyî³,cfÖÙl¶bf´m �n»Ý>e­‹ˆö}k-˜ÇÇÇzxxèoݺµþÜç>wóúõë·˜!‘‘‰ˆlEÄ‹™!q«1Æ2ó\DŒ1fFDE ƒADöY–µ­wøóonÝ…=×~âý³[Ó‰¥dKQDyž“ˆ8é¡â£‹1º¤€›DþHUÙª*EÁ)IU§!„ùz½^[k›<ÏÕ9‡Ô_‡ªæ/¾øbc u]›ƒƒdY†{‡‡¸õÊ+ñää?ó3?sûúЫÖZ1f�(IYÚ÷ý¾1¦NKÊEaUÕ�hT)Ô Ã�mÍ­7âìðDô‰“úÂ^ ‚m€º®K¾Ú©6 Lû¶m5ÏsêûÞzïmUUgª®€‚Zkc–eNU§UUeY¶!I¥éX•y©1&Ïs{÷î]–§§¨&D~ú½ï=üÀ?xÄÌã9a­µBDm ÷±=0:WÕYâý>qóê}~ëv[<pµèy0óαKÏM)£˜ÄNu”ÂÒ'T³,óEQt""ëõšÛ¶Í‹¢0�„“§0L0e1Fjš¦­ë:2saŒ)­µ»Y–MŒ1×bŒO-‹OÎ&~î¹çðØcáO¿þu|ã߈Y–Ý}èÆWý@›Õ{‚P$ƒó”e•D4gæ«Dt-O¬µ3›ÓU0ß~±™/×±øÈÓ <tßÄä¹Í˜yìUœ±¿Áv‰ªSÕ<Jùƒ~‘¥hAQ ëº~¾ÚÄAú!X�YŒ1'"ˆHÌó¼°Ö@FI-‘\UCÛ4³'žx‚~çw~W¯^ÕŸýÙŸ Ï=÷Üë?õÓ?½ÞÙÙñY–9�eDÓzs)´3UÍTuŽ¡[(媚‰¨Þ|­µG§>¿ñÀÄíí¸qSE‡A…�f½^«µvÌ>¬ª£: Ÿgí¾ÄÌ 2å¦qÅÝ{ÝrÛÄ‘•!U^}Y–jŒY¨jÞ4ÍqQ0ÆÌ¼÷YŒÑ€è¶ˆ:&ÂóÏ?¯_øÂèç~îçê_ø…_Ø<ðÀ5€±Ô,�XcÌLS—FD í&ÇPš!—ò>ǨôÍï­zgÉ<ñÈ<ßlëìæ­¾nšvÃÄ’ç.FULKæIUÀûN»®“¢(Î$³ä€˜¢"B̼à`½ zóÕíÍ·;{…} ,s›x3¬µ’ç¹–e™;çu�&1F×u1îªjV×õÂexè!ù¾€ò§›,ËÞ¸téÒ†ˆBâí!ÍV•PwlXX"[‚–ˆlÛE{ºöóm7ßøÎÚÔµTïy¨ ß¿¹ÛõzsqÒYg5„H½–˜ôõÃÞŸövwŽ0-@—.fíˆ5ªºÕ¡Ì¦´<&]×í.WÞ?ÿƒÓ›U!ÝÅý2ì盲ÈO-3Ÿõ̽÷¦iš¼,Kk­]Äç!„>11ç}ÜsYÙÿÁþ±yêéáâÁ¼¾zõjœN§N"*ÒùØ{T"’¥»{¯s«­÷N{SåªÒ¬^ºÕð“׫îÉG¦J„� a6®gÓ4MÁÌ™1¹iÛ¼üËoÝÒ?yv>öÁû»§ŸÕªÚcÕ¢ˆˆšý—_9=}ã¨9¼ñà|{ùâôÈ>RÕ �oºÇD 8„Ðgóù܉È,„P¦ÔäD$w®Ð¦sírµ²×¯_77n<p²··R8ÇôÓ4 QÛ=<î¥i#ÖÛ0™U6»xÛGš¨5D/¼¼–”ñÆ“PQ…¤FÆv{ïËcc¤Õºá—omº“•ôï}t¯h-"£ª"""š·m\¼øÊFïÕòôã³þÒÅ­²0Vcs4a‡ÉdbŒ1yŒ1OH‹,˦mÛÆ²,³¢¬ŒªñÍ…²qF›ÅbQXkYDj�k�¥*vÖoïwÛ;G½ZÞ›gÝlb³ë÷O­³D�¼ª†$Þ|m%?ù—P¨*‰Çó¾ï}Z×S�è:‰?xe©G'½^دâG?p©Í³³îÙ.J}ª£ÓÎ䯟~|¶ZÌ«†™}*)ÙF–ˆüH˜9&g8ç"Œ1Ù|>/R ޲Êä•×¢'6fg?ò¾ÕŽY²Óµ/–«0}ín“Í';3c>ðä<”…µ:´£múaQÕ@\®;ìÌr0){TD(‰H×›–îÖþd²õ&öÓJº'™öûÓHDðÞ˸DD$Ѝö^ŠÕÚg—ú±ë‹£år¹É²¬%"ÏÌ’8‚#"c‰HˆXˆ†ðÙn·”çy°Ö†¤Ñyf–Ä£ˆ„"³îÆõËÒyÂÍךþÏþüTNW‘ˆi÷êÅ\ﻜ7×.æq1wj #ÆØ%œIÝðaߟªÚ£“Öç9à½7D$!wtÒâxÙù;÷Ú~»i³ýÝ|»»°§_¯zk9жm3fcŒQB(‚®“üdÙM¢¢àêôÃ~ËMŒ±wÎÅD¾„ˆ¼ªv–™bð™CÒä5ikž™­ªÖÉk ¢XUyÛúÞ.7uú')õêÅI]•Öu}Äéª/ÝZ¡nyÆØ]dÑ0X­ 5*JÄä_¼¹i‚ÔµY®»p¼l93œíïºöÆýe¿3Ÿ;"êRq3î_*0ô)i‹1ƈ¶‹ötÙ îÓl;©²•ªÖ“ɤ‘öä䤞N§+kíVU;"KD^E,3{"ê11ƪ*{ï™™MÁcVṁ-nÝn,3ëƒ×*úøûwÉZnHAã*‹ieý}—+ˆ(¯¶žW+¯! TQDtø¯GRÆúCñþË%=v}bòŒUUÏvx%ÃÏ6rˆˆOɆ ÝáIëˆ8\ºP­&¥Ýc6"²Íó¼!t!„nµZŲ,½sÎc{KDö¥Ò³™f–Í6vß{ñȽq¯ç«—&ôÞÇØ]ä:dP $2î|±D$ó‰•ùÄJb€,"]¢° "ñ×¼V’ˆPŒqÜŒ�WUŠ1Rêú!5:MÓéüÕÛÛ©aêî»:k³âÄZÞ¨êJDé’ÓÚBxxè§Ói¿³³ÓZfî‡|}¶QŠ’¸(·ïnýË·š(Jîê¥)ÿäO\¤ª´`fI“éÑ„® ¢±9qÖ‡ÿ6¾—hë0£¬ä[Åͱ€¡seôˆØˆ1*3#µ¿5Éi|ç0z�zýþ0›•­j<‰QëBcl»® ɶ–™["êÖ뵯ëZ, òÔYۀܹ×È /-£±yãÁEÿÐý Ë c-L Íc$f–ÄüÎj“TÏÚZH3=*·<Î&�Äiwîè…—Wxâѳ)´1¦*fFêcŒ¦TIªê:Ï|ûî¶}ß;›É$k "yëuc(ÆØgYÖ�¨‰¨íº®‘ÆQ›RC¬/ñ­i»n<8ïºo–EæT£Œá¡¥ªcq὇µvÜ~vö·¤øŽ•¥ÎòìAL3Í“ÊpÛvxãî{Ũî"9 DD1M5�MÊ4ǪöÿûÛÇúø£ra¿\&t×¾ïµïû˜ç¹·Öö©!Òzï[�›B %¢Þ2sGDñÎaÿ×7Â}W&þº˜ç¹ë?pÌC Þ÷=‘8ç4…pôÞ²´&Qbœ5 Æ"â,Ë(ÆèϽvï{žâÏÿò>û·î3†Nиel˜0:wk{çÿ‰*†)ã("#1ꈨp}ŒÑ{ï[Uí0üOvgÛ.¶ßéĽþÆ6~ä}º+—&!‘£LU]ÁÐ f˜$cQ’Æ"Ò~ÝTOœU•ã}cêJÑaCÔu]TU[jDdï»:£W^[ëŸ=÷:½ï=û´XäãÊÑüÒ?!wîµxèþ™æyî»®“DÞx³Ùtóùœ‰¨óÞû‚wÎcŒgæ^U»ä¤ø�ÓE¡Ÿ^Ç=����IEND®B`‚�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/staroffice2.tiff�����������������������������������������������0000644�0001750�0001750�00000022420�12214432632�017344� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�$�����������������€ À€”THgtx(£ÈÐ`q @:������˜���È���0���à���À���€�������������������������������������������������������������������������������������������������������������������������������������������€��� hˆ b „ nrЬÍaÊnj¬Û ���Œ������(���Ð��� ���@���€�����������������������������������������������������������������������������������������������������������������������������������@���àldØ£¼ä˜JÜ$âtØÙöÂ[åæÍáÊL„ˆË���â���4���X���°���`���@���€���€���������������������������������������������������������������������������������������������������������������������������À���Ðì¤è[ÆR4ÿΚœÿjœDU!jÿ5~²ÿ•~rÿê¼äÿp ¥��� ���,���¸���p��� ���@������������������������������������������������������������������������������������������������������������������������������� ���tXÏÎjŒš|¤Bd¨>ú\ôèpTèprLxÿNjÌ¿pàÀÕ���ª���,���8���0��� ���€��������������������������������������������������������������������������������������������������������������������������� ���X|h†Üò,øšœ„² Ø%ª¶òŒÿ¥ŠÿcEæÿôXððÐ ���Ê���Œ���˜���P���À���€�������������������������������������������������������������������������������������������������������������������€��� `À\|¤ÙžÒB¤èTèЬ=‰ú»õÿÖòŒÿ 8ˆÿ´˜ðÿœd(/���Þ���²���T���(���à���@�������������������������������������������������������������������������������������������������������������������€���`` @<¬ØˆÞz¼œøÈR4;ÍîŽ LäHPÿLØðÿ6²tz"äÿ° ���6���B���D���p��� ���€���������������������������������������������������������������������������������������������������������������€���à$8ˆ6LpYÒ¼„ÈÊ,¸\HM¡jºB”ÿb4ÿ+•–ÿç}¾ÿV LÿB´˜Ï���‰���:���Ì���������@���������������������������������������������������������������������������������������������������������������@���ø¨p¾l8HæÂB”X&¢Ô¦¢T·#Á³E–ÿ%Þ²ÿ+U¶ÿ¢4Øÿh°ÿìDÈÿhðàs���î���’���¤���ð��� ���€�����������������������������������������������������������������������������������������������������������@���P$ØHq|¤hÆ‚ÿâ4ØÿRtØ¢4XÿCi†ÿ3¹Æÿ5aŠÿ\¤hÿÔpÿì„Hÿ¦â”ÿ²Ì8Ÿ���‰������l���˜������@�����������������������������������������������������������������������������������������������������������À���ÐlTص2Œøÿ¶ÒÿrÌøÿ:üäÿÖRtÿ÷c!ÿåÿùnâÿb´Xÿi¢ÿk•Vÿ·ýîÿmÑjÿP ã���^���R���¤���ð��� ���€�������������������������������������������������������������������������������������������������������À���0¬-*œ¤ÿš|”ÿ2ô¸ÿŠÌ„ÿÚ|äÿI†ÿíáªÿõ!ŠÿVÒ4ÿ{-ÿC^ÿ·ýžÿ‘ÿôð× Å������¬���������@�������������������������������������������������������������������������������������������������������À���0 ¤‰®ªœ^º‚ÿÄÿúü” Œ8ÿc¡ÿ·Ýnÿ;ÕÖÿí±jÿ±f¼ÿsŦÿ¦ÔÿŒØpÿJìxÀÀ@=���n���b���Ä���p��� ���€���������������������������������������������������������������������������������������������������À���0 À¢bØÿz‚´ÿRt¸ÿ2 ÿRôxÿ›E–ÿséúÿaŠÿùnbÿê\ÄÿÂTèÿb4ÿ*løÿ*¬xÿÄ0»���1���š���ô���(���à���€���������������������������������������������������������������������������������������������������@���P���ø:4WeÁzÿ”ÿZÜ”ÿäÿ#ÿ÷Ý.ÿÕfÿëÅúÿ‹ùÿzü¤ÿÚ¼Äÿz¼$ÿ:\Dÿ¼ÔèO���E���6���¼���8���P���À���������������������������������������������������������������������������������������������������@������˜È0Õ øÿ²ô¸ÿÂ䘑ÆüÿÃÿƒ>ÿ÷=.ÿ·öÿ«e&ÿ‚ähÿ*¬øÿz¼$ÿšÜ¤ÿF¢ä€��í���~���2���ä���ˆ���à���À���€�������������������������������������������������������������������������������������������€���`���È@��Bøp-ìxÈÿ<Ĩÿév¢ÿÍŽÿ÷íNÿ7­6ÿ«zÿZü¤ÿ*œDÿÆBTÿæâ4ÿ†‚äÿ¶òtà €‹���‰���F@€�*���T���ð������ ���€���������������������������������������������������������������������������������������€��� ���ð���d°`Àž,XÈÿ2lÿòÌ$ÿ{5®ÿ7ÿ×möÿsYšÿ’tØÿ&ÂÿÆâ´ÿæôÿ–’´ÿæRtÿŒDˆ¿¨p`SâLDûÌDHû���Ü���D���È���P��� ���€�����������������������������������������������������������������������������������€��� À€�¸Ähpé V‚?Jôÿ6úÎYÎRÿžÿ=®ÿ·]nÿçm.ÿ½‰zÿ üÿfb”ÿš<¤ÿâ ¸ÿì$èÿŽÒäÿ©tÿ ¬xÿf²Ì¿���Z���<���d���¨������À���€�������������������������������������������������������������������������������@€��hY^ò·lø(ÿJÜäÿâ Œÿâtdÿ'ÍŽÿ·íöÿ7m6ÿ-¶ÿçmöÿ—ÿçí.ÿÅ^²ÿB”ÿTØÿ:Üÿ¥ÖLÿ|hÿ2D?|Th—���>���:���|���$���È���P���`��� ���@���€���������������������������������������������������������������€���¬¨]£Y†ÿÊܤÿòì|ÿ®ÿv2ŒÿC^ÿw=.ÿ7Í6ÿe¦ÿguæÿgÕ&ÿóY:ÿTÿÂÔÿnÊ,ÿ‰Ö¢ÿ øÿ¼d¨ÿ®2ÄP Ëä˜p'¨p]` €þ���R���d���X���È���ð���Ð������`��� ���@���€����������������������������������������������� ä¸H:tøIº‚TX’ŒÌª<lƒI:G¶û&·mŽ×7­Vǵ¦Q,ÒŒXÊ„±¦B‚T ¸ˆáúìúüdÂôø6ò,¶ò,š\VrÌ?òÜd§¼ÔØsØ(Ð1 À€ ������X���È���p������`���À���@���€�����������������������������������¨²Œu2L„LxÈ*|‚ú Ú™.â·=nQ&¼N·ÝN·ÎÛUF\Êl¸Â4˜~ºüZ<$ôØp.ʬÁÆBl$èR¬„V²Lú"4:‚ÔšÔòì$<TØìÄè™žŠ¿B”'dØÕ` @Ú���”���8���¨���p������ ���@���€������������������������0àÀ†Š¬„ •¶œÄZ¢âJÂ5ògͶÞªŒ—]Î[fM¡Ê~Ìz¤ lúB4*¤ˆ6²4ú¢4bŒ4ØŠ\$ú¢tº¢tºÂ´jÜäÊ<äôø(.Z\—#áË5®L„¨ä˜b$w$8È%@€�¢���$���˜������P��� ���@���€�������������������ˆŽÊìûå \ÄèêÂ"RÌd#Ù—möû•¦+™Ú3YúβtÚ¼Dºöò¬r¬¤´pætJì„⌸²,ÁÆ‚¢TzÂÔj¼|JÜd²¬„¼”Ø3•Žwái&dhpäèðþ&"*|”,$èßhpu������”���X��������� ���€���������������hV²Ì[ Ä,¸Èv:¦²Ü<!F\7½Î-¶§Í¶éÖ‚²´’4n*ì6 tXðŠl¤¦’ôÒL¸êÜÄéöÂ;žifÚŠœÄB´xê|f²ŒÊ<ËM>7caùªäðÜ䘻]ÁA–Rðz⌶|WÈÐàI���œ���¤���è���0���`���@��������P @ê<$ëMÎ lDRŒ2l,Þ:ì-‘ªçλUV5rr ÎòLIvÄè"Ô¸þúʬøºü$©6ç.ûõŽǃa&"‚4ØŽjœÇýÁmÞNš|ÉîJn:|JìÔXµ±úû]¾b,$ÔØˆq®*M™6¬ÄXÜÔ¸���²��� ���¸���ð���à���@����À@�Ô¾FBïþ<ºVÊJž¶ÎŠ\l²l”ÓyíÅÒ’ô¾êŒ‚4X\¤˜!FB¦b4ªlø^ÊÌ{Íηý.'­ÎW£aÛ!#YF«U7“á7c!q²ד‘1öÒ“®Ær,-ñÚbtT˜ðŠ<”õ ¦<4¸ìDè]©æÁ¦¢' @€–������„���ˆ���à���@���hZÂ4‹tè0LØðt„Ê\ô¾vNNƆãyú7ýnM‘Z²¬øü¤ŒøˆRôŽr¬–âÔ–bÔ!w¡÷£>ûõö7£!w3q·“7Cw3‘wSáUáêwsq•aZ—S1¥aZw3±YÞŠyêŠ}aAæâ,xÈÕÁ:ÓÅN¦2,Û���z���¼���D������`0`Àš¶ò̃™Æ™îÒ4è°|dšB\öZÊžÖÆ9>JáæÂÔØðlÄ(òL¸ònJlê#ù¶÷“¡÷cþ×=ž·Ã~÷3‘÷³I7£Áw¡÷³QÓ%V§c1Ûm¾ãån›­~ u^'ý¡™¾Úµ æAÖr†²lN:y!úŽÊœ–RD(0s���ú���\���x���°ŒpßâtØ l„vjìêü”ÈÐ*Œ#FÜ9 ŽÂô¸”˜p¢ôØÞš¼!ºÎ’yâ›5vÛ•Ž÷“¡wc7ý¾w£¾wãAwÓ±› 7£A·S‘}¶¥Q†Å¡:.ºBÞÆ¢ ÜÔæ ¼ª¬ŠÜtòœ4J<ÔÂôDÂô„œ¤˜L¸HL„¨Ÿ���A���j��� ���hˆºÐ Ìäè5nšÜoþ&ü<d›õöE’¤"dfŠœÌDHZ‚Ô}é‡ížg]^ûµ§—Ý®ûµŽÛíž­±š׃~wc×¾¥:Ê<”qŽ*Tt¸Hô¸ˆrì$BtøJ<TŒ¦²|V Âr\ ÒìT¬$˜LÄ" $V²*‚ ¶ª¼ €�õ���ö���B������h���Œ���j` @1žúß‚t8ö*¬ŸÖŠÌßÂLX¿ÜÔ¨j¼äé>ŽÖª¢û=¾7ýÞw}ž÷ÃÞwýžå~ò–2t;­Wý¾-ɆÚ"ôª"ìÜR\¼”XZBt’̺"tR¬$òœ”J<´RlÔ–r¼*ÌÅ¡úö|UɶÊBôld”¨pdH0? À€���~���²���ä���ˆ���$���ü���z@€�!À€�¥��� @��#ˆÐ ;‚Œ‘¼$#öêÅYYvªœFŒ5QZ7^׃¾7ý>Wî7Ã~^‚òb²’|B2ܼ4¿aö œd˜R,¤¼äX<8’LbLDÝ9ŽúR&Æò\âld4¸ÈT˜”èˆ?¸ÈЯ¨ð—À@�3������>���r������P���h���ä���Ü���J���V���þ��� ���ùÂÌ8Ï…Æ#jáš"–ºFÞÔXHý–ÖrŒíž– ,Ât"¬l†Ú6Lt>JÜX¿p ˜ÐϺbLEQ¦:,öŠœT¸œdX¤ØL„è¿dXÈopP`÷à`À'���[���‹���“���½���U���q���V���B���D��� ���P���È���x���4���¼���²���:���V0Àu«5NÙîR´¸jb"šÒ²²‚´8hbl̤xr‚â†öÌd$”ØĨpÔX @���{���shHÐ[HÐ{˜ˆÐ'„èp—(0Pà ‡ À€Û���‹���Ó���Ã���=��� ���e���Ù���q���¾���æ���Ò���t������€���À���à���0���È���8���d��� ���¼���š"ŒølDÈd(P¬D¨²¼\†Öœ$Úòêâ\\ÜÔ”¼ô4Fr,•áê>F‚¾V_���{���ã���u���y���™���y������5���µ���Õ���¥���¹���I���á���Þ������¦���š���2���<���Ô���X���°�����������€���À���`���P���ð���¨���øˆÐàÎf²L_®Z’\d,„È xÈ<ä8<˜4؈ŒøÈŠ\$t¸H<Ô8¶ÊìÚÒL?���Ç���S���•���á������æ���Ö���N������ž���®���ö���æ���º���J������|���l���t���¤���8���È���Ð��� �������������������€���@��� ���à���p���„Ø(°žF² ×ú’tK Î$¨0æŠ,˵Žvjì®ú|EÊÕqz‰®rκ|8è°w���s���u���á���†���b���<���<���‚���¢���¢���B���¼���l���ô������„���8���h���H���p���P���`���À���€�������������������������������@���à���¨���ô°P`J¼dÍ)†”pj‚”Ò¬„V*ì¿zbtŸ*”Ÿ¨p¯Ð Çà@{€�����u���Ñ���Æ���ü���ä���¸���Ø���¸���ø������x���Ø���è���È���ð���0������à��� ��� ���@���€������������������������������������������� ���°������‚ „²<䜌ø—بл8ÈP @;���‹���S���Ã���]���õ���¹���!���&���B���d���(���Ð������P���Ð���Ð���P������à��� ��� ���À���@���€�����������������������������������������������������������@���à���(€��l¤hДÄHK���ù���M���í������å���¹���I������>���Ö���ê���|���ä���(������ ���@���@���@���@���@���@���€���€���������������������������������������������������������������������������€��� ���Ð���Ø���l���ê���n���á������þ���Î���æ���º���Ê���’���¼���ô������È������À���€���������������������������������������������������������������������������������������������������������������€���`������D���œ���ò���š���ê���²���B������ ���”���D���8���¨���°���à���À���€�����������������������������������������������������������������������������������������������������������������������@������H������´���L���t���d���x������È���ð���0������`��� ���@���€���������������������������������������������������������������������������������������������������������������������������€���À������ð���(���h���(���ð���Ð������ ��� ���À���@���€�������������������������������������������������������������������������������������������������������������������������������������������€���À��� ���à������`��� ���À���€���€������������������������������������������������������������������������������������������������������������������0�������0�������Â$���������������� ������� � ���Ê$������ê$�������%��������������������*�������%���������R���������������/home/fatal/src/staroffice2.tif�created with The GIMP����ˆ��€��€��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Wine.png�������������������������������������������������������0000644�0001750�0001750�00000023600�12214432632�015674� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���gAMA��± üa���bKGD������ùC»��� pHYs�� �� d_‘���tIMEÒ‹õ¡ê�� �IDATxœm»IeWr&hfg¸÷Ý7ùìጉÁ #EŠd)Õ™­ÌÊ,’�½ÑB‚�­µÑV íôCj% F÷¢ P U« h´ºª²*»)‘LNÁ` >ûó7Ýáœcf½xçE²„º€ÃÝßàþŽß÷™]ü›¿ù›^QÎ9ç˜Ù©ª1�@Û¶Z×µ¶m+!©ë��¼÷��À̺X,d:òÉÉ ×uͧ§§:›ÍÔWWW꜓““�Õ¥ùëû~ï¹ÿÑã��¸¿¿��"‚[[[°¹¹ioÞ¼i677mUU¦,K¬ª �«ªÂ^¯D„Þ{ "1ÆÅb§Ói8::JvooÏÕu]Xk )UÕ9ç(ƈÆpΉˆpJ‰Q�@Û¶c �¨ªc¢s.ÎçóÄÌ<µ®k(ËR–Ë%þ³â?3Âú9øg¯A� {÷îùíííj8ö«ªªƒÁHUq6›-ONNΪªj‰È‘sÎÙ¢(Œµ–¼÷ä½UEDfÖ£¤”‚1¦ 2Åzï‹^¯×뺮ODUŒ±L)™ï™™ YkcÓ4�@DdŒï=‡:km;ƒˆHŒQ½÷bŒffU•Ùl†9 þGðÆû|ðÁ`{{{§ßïïìíí]»víÚhgg‡Æã±«ªŠŠ¢p"RÎçóòéÓ§òÙgŸ}Õ4Í›››lŒñÆk­5Dd‘TRJ¢ªBDŒˆm×uÐucÄc<"öqˆˆ#cL™R²"‚ªªD$D1£1†ED�U™9¥”,3£ªRY–‚ˆ""ÌÌÉZ‹RUÕu-³Ùìûé€eYâ‡~xpóæÍûÛÛÛ‡‡‡‡ÛûûûÜï÷»Ñh”ˆ¨¶Ö6ÞûFU �†Ì<F£ýýý­ÃÃÃßüû¿ÿûÿ�ÿIDÊœÆÎZkiuAŒQD$¥”ºü9¹ëºÈÌl™ÙŠˆGÄ+"êclJ �@³#"DŒÖZQU°Ö’ªªµ6äTa礔ÄZËÞûcÔ^¯G!-ËR¬µÜëõXDèúõë{«kÿþýû;ï¾ûîh<cÌ„™¯Ú¶mC‹ÙlÖ†8„ÀÌÜK)-T5ŽF#sýúõ[·nm<~üø?ùä“é`08BDODÅ:%ˆHU•C!¥DººbY–­ª›­j²å|JÉ«ªË…F˜™Ed§DDbŒ!\¹™UT5€GDµÖ²ˆ µVQ‰HŠ¢�Dc ½óÎ;wîß¿ðöÛo”Ãá0ŽF£+çÜ7MÓL¦ÓéâââbþòåËîââ", &¢´±±AÃáÐÇã¡1fÞu]\.—›ƒÁ�···ÇEQü�œ@ñ=#X"cLBD$"QÕh­uÆc4–ˆ0[™™SJ˜ C¸ºÀ£ÖZEDȹ¥ÌŒ"BÆ㜳"¢ÌlDDsÊÌ‚ˆZEõèÑ£ññÇïÞ¹sÇmllÔÆ˜3¹X.—W‹ÅbòüùóùéééâÛo¿M¯^½âíímøè£Ì£GìíÛ· cŒ†d>Ÿs×u¦,K`f©ªÊÇãæóù/ûý~`fÌiŒ"Bˆh¬µ–™Y�0EQ ]0WKÍ_oê]]Bà”’0³¤”8¥¤"Bªjrd‰µ–œsdŒéüà½÷Þ»ÿƒü mmm]Zk—1ÆÉÕÕÕÕt:_\\L¾þúëæèè¨===åËËKù‹¿ø óóŸÿÜxï}¿ß/z½^i­-¦Ó©óÞ÷êºöDDu]ÛªªüÎÎÎ[Ïž=»“RúUŒQº®cfFc ®ÏˆÖ9gŒ1$"$"d�1ô}#Ä5‡·æn€��Ì,1ƵTUу9:PDˆ0Æ;;;¿ùÁ¼÷î»ïv[[[§Æ˜‹¦i®¦ÓéòòòrzzzÚÏž?Þ, =::’?ú£?Òßÿýßw?üá©( Ÿ‹tÙu]¡ª¾,ËjkkË c3sÏ{_Þºu«<::úù|>a­mh•üÀÌdŒk-""ch]À{½Ø‚®_��Æ9g˜™Bº>dö4§”DD4w��tÎaJ �‰‰˜¹wxxøÃÿøÇ[×®];uηm{9™L‹W¯^-OOOëÙlš¦I§§§|íÚ5ýË¿üKüðÃÍîî.9ç cL‰ˆ�Î9êºÎEa`Üëõö˜y�\×u²¹¹iîß¿ÿøÓO?ý—ý~ÿßæHDcÌÚûjŒQf†ü¤”Ðf¯""¢µ–Œ1dŒ‘‚23ÇS!å|k­ÉÞ�UEUçÄßzôèÑÞÿý¸±±ñ]×ug“Éäìââ¢>::šuggg¡iš@DÐuÿèG?‚Ÿþô§ôÃþ¶¶¶Œs®DÄu{ö¹¦”ˆèUu䜻†ˆo©ê^UU‹~¿ßÅï½õÖ[ÃËËËŸœý—k×®§” "*"Jþ삈šÛ¸ZkÕ:ç ç=ä\yƒÎTUB©ëºB`Ñìå7h.ƨˆ¨)¥²ªªßù­ßú-wpp0!¢“‹‹‹“‹‹‹ËÓÓÓùÑÑQ}uu•¦ÓiâÕU~ò“ŸèþáÒG}DÞ{›Q]µö|.d}±)¥±sî�ßBķʲ|pzzú·m»Œ1vãñø‡Þ8>>þ)3ÿo9ümv¨ª8ç$§µ23Øu؆€™uÕõ„òÏ +((M­sQ@18›ÍÞ¾wïÞÛ?ž�À‹åryzyyùêüü|vyyYO&“°\.CÓ4cdff†?û³?Ã÷ß?üðCò޻ܶzùð6„àTÕˆ¤”Dt™o{ïß‘ñÑÑÑ?Öu}±\.—Óéô´mÛ£ÝÝÝŸÝ¿ÿ_}öÙgÿùîÝ»ß!":çè{µ ò9��àM ¬žSÉtí%έNß¼ w U•ù|^.—ËüñÍ7n<!<½¼¼|yrrr9™Læ“ɤY,1ÆÈu]§£¨*xïáOþäOðOÿôOÁZKÖZkŒñKø”åϦ]×Ì<TÕkÖÚ;ÖÚGˆx½,Ë­”Ò“Åb1 !´Ëåòâõë×Onß¾½qûöíõÕW¿Õ¶í�@³ÂÇ´>C>/cІ ÷n麎»®‹]×Ñr¹”cÊ<�ˆ‘ÖvX,•1æþÉO~‚ƒÁàëårùÍññññÉÉÉÙd2YÎçó&„ÀËå’3˜RDDï½üñÿ1üÁüYkÑ9GˆHˆh»®+rîc¡‘^]×}kí¡µö>½CD·½÷{ßL§Ó˶m›®ëf)¥óù|'“É“ýýýÞ~ûíŸ=yòäßìììt¹KÁº€¯ÓÝv]'ÙóoŠ]Œ‘Ö}~]ørÞ#�Èt:{ïÿ§?þxY–åËÉdòäøøøõñññåt:]ÖuÝÖuB�¬ªëÊ«¿ýÛ¿ ?Æ~¿Þ{DDL)™£'"ŸR‚c•RªRJ›Þû›Æ˜Ƙûι۽^ow:^Ôu= !´)¥@DWÌ<Ïçîùóç_‡ÃÏ>úôÓOÿeÓ4ÿÖ9‡!‹ˆœ£Y2B«ª "š+¾¦”@D Ì8am�8::zxëÖ­‡÷ïß?õÞ{uuõíÅÅÅñr¹¼$¢¥s®5Ƥ¢(”ˆRŒ½÷ÀÌ0uww¶¶¶ÐƒMÓ`Y––™=™#¶m[ŪºS–å]cÌ=cÌçÜõ|ø³¦i®dåB$¢Ž™ëº®;cLxýúõñh4úÅÇï¼óÎ;ÿË—_~ù_ʲ¼ÈìVˆˆ33�P[v]‡ÖZTU²ÖRJÉXk%‡­ª*¼|ùò½‡Þ½uëÖkcÌóù|þ¼iš#"ºìõzK )¥DDêœã”23Æ•ˆ`0àÍ›7�™IU3;D´ªZ¤”ú)¥"î•ey�îXkoWUuˆüÅÅÅg]×qn¿…ˆ8¥Ä! !`×uËgÏž}¹··÷Ë[·nýìÉ“'¿cü_‹¢àÜÒÙÃ1F�±ƒÁ`]$LÛ¶�¬ˆ¬yÁðÈÑÑѽ‡¾óÖ[o½6Æ|×4Í 9¶Ö^TUµDÄÙ#MÓHY–Ðu23t]‡EQÀöö6¨ª™N§$"4mQ^D"z8ç®[koÀíªª@uyyùÿµm;O)ªZZkÑZ«eYöDDÛ¶ÕÅb!óù›¦1ˆxõòåËÏ?~üðÎ;?~úôé¿7ÆœzïYD8NŒ1`‹¢ � »ÂŠ�Œˆ�ˆ1FDD_½zukÿwïÞ=³Ö¾Š1ž¨ê)]zï—Æ˜NUÙZ«Æèº¬µÀÌ`­Å¢(È{�`–Ë¥uÎù\øzƘ~Q;ùðªzØëõ>8==ý&„01^¥”Ê ŒÊªª<™Ü6mQ4Ëårº®“”’žœœ¼º{÷î?>xðàgÏž=ûyJéoTõ Z"óçþç;�ÐSÕªöTµDD“Ÿ~ûí·wwvv>~ôèѤ,˧"r,"/‰èÂZ» ¢�RV[Þ0ÅÌÂ@UÉ{oªª²ý~ßF£²,ËÒZ[ªêˆÆÞûçÜMïýMÙ_,æüüüUÛ¶ç]×]ÄfU¥¢(HD""²ª&UåcBˆ9ò¨ëºèœ ×®]Û6ƼÿôéÓÿÜëõf�D$�@PÕdsÑ[SÞµ—È£ß|ó͵Á`ðwïÞ—eùRUÏà•1æÂZ;€.ÆÈˆ(ÆÍ ""dGˆè¬µ4Üh4rEQ”ÖÚž1f软¼÷C"Ú2Æl/‹j±XtÌ<WÕZDÚœó1k’1¥d×ÑDDšuÂáp8œõz½¶®ënccƒ...Ú—/_žÞ¸qãó[·n~ñÅ¿�ÿz u™YQlæÆ(ŠBëºöËåò£wß}W‡Ãá…µöŒ™‰è %�¬ô€ˆ€µ–Ú¶U¥¶m©m[oŒ±UUù~¿ïƒA5 †£ÑhPE¿(Š"ŽÛ¶í/‹ár¹œQ°ÖÆchšFRJ1„ÀmÛªªòx<îYk£1Æå¢ ½^¯Fýv6›¥c""N§Ó/^|÷Þ{ï}óàÁƒ¿ùæ›ÿ}ccãÜZ ��mÛÂZÀµt¼n‹Ïž=»ûàÁƒáöööë¢(ÎTõÔ97!¢Žˆ�MNÖ4Ød”ˆóùÜ¥”œ1ÆEá‡Ãass³¿»»; ç\ß3hš¦¸ºº²]×1�œ–eYg) çóyÌbZ.—µÇùõë×�¶½÷Ã^¯ç�‹¢peY–£Ñ¨ÜØØ“Éd‘ÑjýêÕ«£ëׯqóæÍ½Ï?ÿü!�ÄW@¨,KЕƇªj‘¾üò˽ñxüþÁÁÁ¬,ËK"ºTÕ¹1¦ñÞw™HXU51FqÎár¹D1]×™”’+˲(˲7û£Ñh´³³Ó«ªjdŒ†zWWWîìì,0óQ¯×Óªª"3Ã|>mÛòJ\ŽX×5.—K³†á———“ÑhdC”±†õÞãh4êµm[Íf³Æ{Ù‘i>ŸŸ}úé§ŸÿèG?ºvxxø§§§ÿ­ßïÏÖ‚uέ%£µšcONNî=zôȇÃ+cÌDUç[�pCVM×uBÀ¦ilJÉWUU:çªÑh4Fcç\AD½¦izËå²uuef³Ù…µvQE�‘™Ó|>!UÕcä®ë �Ø¢(LŒÑZk]¡¹¼¼¼ðÞCQXE…ˆ¦,Ëb0TÃáp¹»»këºnÚ¶M!„p||üôÅ‹Û÷îÝûñ·ß~û1æße=SlnS`ŒA眙L&}�¸¹¹¹‰EQ¤Lu+UÝÌ�¦—5æ"¥äRJ)ÆèVõÏš _UÕ ×ëõs#q!uuUžœœt]×]õûý¦ßïG�èʲ D M)…”Rjš†3 ´Þ{À㔊ˆæŠ?!ôʲ,Œ1Þ9WTUUVUUloo—“Éd)"©®kíº.ݾ}ûøààà½gÏžý{"bï½Xk-dk‚sÚ¶çÜÀ9§ÖZÏÌ=cLcD饔‚ªv"Ò0sKDÞ9ÃáÐ ¢wÎYDì1ó`>ŸÛËËKsuu•æóùl0L777Õ{Ÿˆˆs✠�Ð@`æ®i�EDqÎ!"&¢(UŦi–mÛÖý~¿""GD®×ëU;;;›1Æxqq±¼ººŠˆÈ"‚ÇÇǧóùüËwÞyçî³gÏîv]wÖ¶­Ø²,Á{Î9-Š‚Ìüj:Þê÷û[YFª¬µ­ˆÔÆ€VU븊K�AD‰1bŒ'“‰ŸL&v>ŸÇüšÅµk׺ªª˜ˆ˜™¡ªªä½ιˆˆ1Ç~bf&¢54gUå¬1ªªbŒ‘›¦á<oX†úÞûŠˆŒs®×ï÷¹ßï×㪪BÁc mÛÅ‹/.Þ~ûíѽ{÷}òÉ'¿DÄÖüÕ_ýÕNY–…÷¾´Ö:"Â^¯wüOÿôOo߸q£,Š¢ïœÑÀZ[Q™Ç•"‚]×Ár¹”³³3xùòe×¶í´(Šå`0ÍÞÞ^‡ÒëõÔ{¯UU%ç\rέ¬µIUiY–`Œ1y¾·–èÖ´@½÷¦,˲(Šˆè�€2®Á¶me±X1Æ ".‹xíÚµj<ë·ß~{Ö4Í¥ùë¿þëm"*Œ1ŽV¤_vwwç¿øÅ/R¯×»^U!¢K)IJ)¦”B×u©mÛ¸\.—WWW‹‹‹‹æøø¸^.—³íííùõë×Óx<Æáp½^Os꽇mj­MƘhŒ 뾈œá7cLUU¶ª*S…ÉŠÄ!„ jQ¾ªªž1¦pÎUYK0�€1Fmš&µm‹™Ìa¡íºÎܾ}{¼\.õÅ‹Ol–µ’ªUm2¬•ßû½ßûO÷ww?ƒH)…¦i–!„iaºX,®š¦¹Z,Ëc»µµ777e4YD,SJœuõàªD¤�°(SÎé�ì½g�Т(hE(‰ˆÈˆˆY§@Æk= çóy= –ÖÚ¾1¦)˲Ê3ŒÂ{_ ‡Ãj4Åõˆôüü|2›Í¶÷÷÷û)%oUu=àˆkŠéœÃÃÃÃ`Œù?Ÿ<yòã·ß~ÛcÚÂ|¹\ž´m{2›ÍNg³ÙBDÂõë×Óææ¦ÝÙÙqÌÜëº.e) ²†ˆY×ÌÇSžº1qQœû2ch=ÝÍà Ì2½¦”´ë:mÛVQÛ¶ Ëå²1ƴι ª…µÖUUÕÇË­­­z6›™šÙ6ŸþùüÎ;xçÎ][×µ2³d¦ÄˆH"b‹¢ ßùßyö·û·‡{{{ãñ8:ç�x¹X,N—Ëå¼×ë5½^Oúý>nll �™swMÓ`ö$"¢5ƬGêBDšfefìõzd­5�`UıªB £¦”HV×JÁfæÅ|W½^ ¢d­í¬µuQ�ÐZkªª*F£QYUÕb>Ÿ'Dä¢(Êcì÷ûúÞ{ïmŒ²I�`­µ^UMJ ùîÝ»Ÿ¿~ýº?l¿ß—cxñâEÃÌ<ˆ¨,KÇÌyí¡®ëlV_)³DÊzæß17ƒ�&´íjj£êXÄ"‘I1‹@×ukï�€·Û”¨iºººbU툨FDo­]G ycL¯×ësËÜÅHDp±Xàþþ¾±y¸i²"Û€^JÉ03@ºsçNýÿðÇMÓnnn`§,ËI»b'4ÀZ‹)% !`Œ‘ò°ÕÆÝZ^˽­µ’JkITAˆ¬0{qªJy<JÄ¡®Mj†®Cl[ƒ)‘A´1^]TM½²ŒÖÚeî ¾®ë2„¼÷\–¥/˲I)…5V999 7nÜ�KD†™-�ªZ‰H?/<@Œ1ÇãæÞ½{ß>þ|{oo¯_ÅÍó¦iNúý¾Í‡§<WÀ©ªSUËÌ.«KÌÌ’Çf&†`IÄ[k¥V%ë=xï =§äSŒ–SŽSbÔ¦®M×4>¥$*b ¥4(B1Ær1Ÿ›¢(hY,̤"""k-@Sx=•e�ã½ï-—˦m[°]×QV<�”"ÒŸRÒ<5»»»óW¯^½žL&‡×®]ííím„Ê<åíg%B˜a+dج"bRJˆ�*Ì&¤d¬1@�˜RÒBCèÅv`�)9ñܶÇè%F«"QR²Iu¬ªIH¼%ZDf^.ÜœµÓÓÓ4è÷ýþÁÁx4mZæ¶=f橵Öxç„Eàr>Ÿ¯fƒæ® áDÄ¥”4„@YØH7oÞ|õôéÓýÍÍMFÃáp8ˆ1Ö‹ÅBbŒBÀ<M"Uµf¥"Dt1F/ÌTA´M£Ôu#K”`>¹år\N§û6„¾Á˜¶í™¶-!ÆRBev R@¡�&Z“÷)EÓyÐuˆ ''ïõ`1*îì Ë¢ ¾s;{ÞŸ*ÑDˆ¶x…<EQ˜óós´ëIIþúï–$bŒ˜‹•‡õ—_~y:™LFûûûƒñx¼·\.'—Ý|±pœ’íº®L)õ@µ ¢ž³¶DÄBE|꺱„°[L&7zÓéh³®»QÛÀ¦1Æ«ªÕ :1BdÔZcò¢Cþ%¢‚ˆÐ E0­÷«Pyý:ñå¥J¯§´»;,SÚÞ`®âéœy"Dß‘™N§b›¦UÕÜjތij!�� ¦âÖ­['Ÿ~úép<—›››{³éô U$…1Æ~бæ>ˆl5Ì4¥“É`o2ÙÚX, PuàP•€È�rJ†Á 1 B´ÞPQVE@Y*T�µˆdTQ,¤` PÛ¥$¶iXêZÀìY AµôÖˆ‘QÄ�jc”õdHó¡×{�,"†™AVûA«}Ý4ÍÉëׯwïÝ»7îtz:f/)õ9„Cîº÷m]?Ú9>íO&–D Y^-c9`vºj˜DbD �D"U$URPDU�D"@�Ìë+QQ˜P”À�ïÙˆH•’øº®Ð{¦ª5D£ùÕ)³ØÉd"Þû�i}x]’1#9Éé`SJd­|ñÅ;ûûû£ñhtÝ9·h‹“X××l]ÿ®»ºú`÷ä¤?šL(ª!2�àÑ¢CDc‰œ®œ‰¤ w”iíuЕ·óáÐ@U�c#´VSÞlç�¡CqNÑZ`UTcÐx/»ó¹Ý»¼tÓ~ßFÃuííb±`k-[kSVI�Òz,–‹aêºNº®ï}˜M§¯ž<yòî;Ú­­-~ù«_ ýññǃ““ßܸ¸Ø�«�ˆÌN�Y2Æ¢%"cV(EQ`E~PEPSV]u‰õ˜( ¶Î� " kWòÔ _�«B‹‰8F#ó9¡÷ʈèSr â6&Ÿa¿,ÉÖu-y«“³ÎδZŽTDDf–‚t]Ç1FÃÌ4O¾úê«ñht¿°ÖnZ»Á§§×‡WW˜+D4*bIÕ!‘EDB•šnÅŒVЬtÙÛ˜U¸@È¡Mˆ`òãßc^*ÄUº0„€’’"€‘¦1£eÃ1bÿê l]×ë5R1Æ0�0‰sN³¾/)%‰1J.жm[òÖ~óùgŸÝôàÁñþ~q1D¹¼ŒÀ³W�GˆÆd2°Î]‹ˆ)%PpÙS–Œ*â*ÔÀ­S f0Ö‚]¥"XæÕî­(¬ du��D°�¨)­vºNcÛ’Y3ÓÆh®¦S²³Ù Öc0ïý¬žÓ!wš”Gü"ªJ9οyòä‹ÍÍÍ6‡Ã-w÷.^]^OéTûÑÒ*Wóh=ïÝ€1få]" |HDP‡aÅÉ!suÀ)*ƹÕ{��UßD‹qe°@�±BJ m‹š†ÕwJ"R" BBår©ý~_RJ𙤕åÞÅÜ!Öƒ˜Ù–Eñù—¿úÕ?ø`XÈÕÎÎy˜Ïgâ�EŒXmT�€qî×ák 8cÞ„²SpJï!‰�§&18Á‰@Êaˆ«Èa]m„‰€©k`ç@ê:Um P×�(ˆ´Ø9´ÖÚµ¼­ë¼Ï¼YSJoöiDBkcHŒ‘±yõúõÿµ¹¹ù»wµ¸{W¯Ž_ô‹mD,̪…âÚS’�"3"¨µ Ƭª;¬.d$ ãؼÍAª`ÖK\!¼ymR….F€®Ž3ˆ÷Эª9HצJ` hæý­1hëºV�€¢(t­¥­"Ua5‹õ‚�À›­±”’´m˜ҫ_ýêWÏw¶¶”[[m½»{ÚÕõE_µÌUATsxCõ¼  ²ZfE« I@òÖ$f0ˆÖ­1×PÊf€\dõÿVLÒ€VÿG’ˆ*$�ÀñÈZ»–©4O_Öa.yDå×ËÒRâ®ëâb±à¦i¬O¦ÓÿúâåK¬66J=<ìæeùŠj b4æM1#ÕUÞŠ¬"��Œ*�3PŽ2D͆Bc�[›UÔZ °êÿ DÀD �Œ”ß«9:8Д�UE€ETWÈVʤº®¡m[ !HŒ1eÁ3u]—òÎÐz¯VFÈÜAå��ñIDAT\…^a‡£ŽÇ¯¿ú曊�…ÛÞ–zkë,sʈrˆ+äuøõ%¹ˆ‰*hîñš ¥Ì 9%”p¥*Z»ú{yã3‡õ›´P�ˆ�@+<IB~,(#ÂÒÚ¸õÖ[`SJÒuc’ˆÄ¢(B–½Í:÷sDp–ÎÖkrª¯€µÞÿ?_}ýõ»·‹öà N§/ýr9FUçT¬´€•çsõ‡ìqQ´xÒ� D`Wð8%@c@EÞHWÊaÏ9ô™º #Ñê1D`U@�DDæk×xÿ½÷ÄÎf3)ËR˜9ÅC×usVÑùfAz½F—ò¢ãš;�­€ŽVý~÷äùó_ŒÇ㟸ÍMY‡'›m»iŠ0FU²Î3ƒQ…Ôu€«ÿ˜? ååE2R? �d-@ŽÍxŸD€ÈPZb€&8åú¡"+`„¸Š"m™í=|h»»jëºÖ<>bIιIŠ�Èõ€cŒBHyb³^51yZÃñø‹ož={÷½®u{{—ÓéôéVÛöY¤´ˆ½Ä¼ Ý|PYEÄ7(Or‡ xTuuU Ì4ç}ÎgHß{Œ˜W8‚yec�E€ˆÀX QUÚ½½ùõ÷ÞS°Vl–—¥ª*^¥‹Ä¬ÞjÖæ4ƘbŒœQáz:CyŒhuƒ’ƒpzzúÙåbq8¾u«¼:??½~ýÒ"™È"€#¢UÑË¡ÿýK˜As߇¾„¼†Ë™ÀZ�€¨ Qdåõœº²YÖ‚Y¡GçºêÝw‡£½=Îf‘²ÆþFÏÞÎi¸ºß&¯¡qAò€ƒÊ²4EQØ¢(¬_]¥µ¶·µµuüâõë#êõ6äúu˜9÷ �Ž“ÈL£®ŠFD�™5®ˆŠ1*ˆªˆÊ¹È$UeM�šD41ëš®ÆWÐë!¢ê›¿Íƨ)¬ê‘¨1íÑhôËÛ—®ªôìü¼¶ñIaͤ,˿̕5½\°‘òÔs`ŒY½÷8�|~|~¾ëÁƒáÅt:§ï¾û®LÉ:f"€‘YYv­$‚nk.°òZ.n°ö|Rë~ŸD€s¾sÆëôÈ·Á�©5óªúº|÷]·±·M|zv6³“ÉDó y"¢„ˆ‘™}Q¼ú «:\­—AF‘”Fï=zïÉ9gœsèœÃ¼þò‹/¾Â¢xX=~,/»Ú;=}Õ_,Š"%`€Š�ˆWFV��1ÈÐu ÀÕÆ­Ób šÞTw"H+6©Â ‰è×wd£´ª+1ÅQØÝ½߸Ñ+ƒæìâ",šfn‹¢ÜâR!8眪ڔXk) å%CÌdI²ÆOÎ9ÌÚ;ä§€ˆôÞýû_¼:>þèƒßøjtýzœ<{fÚ¯¿~18=mª®ÛRÕ㔈À˜UeÏýߊ�þzÍn‚V©°ÊoÄ•§Ußx›@ˆD4óDJÆL»WîæÍÅöÁA_T—gggÿï'Ÿtöüü\¬µlŒ‰ùPãW:}ÊÑ5GxÃ(³;c EaŠ¢à¢(L6�‘ÙØØ˜|÷Ýw¿8½¸øÑ[·n™Íím>ÝÙ ‹/^ÔOž\øº[kûàœkË ®cD \¨PJª+Z¾æ$Êæ²*¤Œ”HAUp]¿�‰¼�©(^êÖÖWvg‡Æ»»¦éºKxõÙgŸE›wøS]×!ßa¥c Ñê¾Ì«íë;°�� ß^ƒÎ9ã½7Î9“É""ݽ{÷?<}ú´·±±±¿½¹ÉûwïòpoÏžoo·‘ù"©’], L‰ˆq>Gªk”�U‘˜UBX-_ŠˆÄ¨"¢iE×AVüd%Ì") 0 rGõÕZ«ê?¦ïÐûúƒÁ¢íºW¾,EQ¨].—¼^kíºNsì½1Fêºn}2æv·&Eo®<Í]×€7OÆ!ïüŸ|òÉ»›7nÜÀþh¤ÕãǘQT ‡€‰™Ât <›¡ŸNÁ‹�6 XUfMM#£¤¶©kUfЀWäHt…ðDRbKÄ*ÒMbüì‹§7œë½wãÆx´±1wMsêÎÏÓ;wÐ>þ\œsPU•–e©MÓpY–f6›QUUBÀõˆ)x 1ßmF9ìIU‘2}Í“"¸~ýú¬ëºW'''ƒóóóÍÝÝÝb{<¦A¿O½^È94DHÆ€»ysk…y¹TªkÅ4µ­rŒ"Ì I!¨¦¤Ýlóׯ¡ùî;M£€È qY·íÕ8??û¯)ÅñxŒ?ÍêŸÝ¸ñK" �°ÜÞÞžß¹sþŒŸÂ5ý.����IEND®B`‚��������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/TerminalLinux.tiff���������������������������������������������0000644�0001750�0001750�00000014332�12214432632�017733� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�¤��€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9( ¿f“¹äbq€¨T0GiBP•4: ¨_•7Ø>¬VAÀzà*†PXMð7\öÍŸÀ¨`@5´\ƒª�ì¡‚7°ÐBü¡€ø0íXb@” ÈjæÃ< 'G�ñ@ €6»��Ú#[Léfê['ýayã¯pÙä÷`(,+· wDM _0 ½„B{p¨Ddž¹AW4• qÁ ›hÕÏb`@ÆŒ �¹Áp;@ÿÍ ~ú|¾~妀€=  Ë÷x¸Oe÷õMÀ)É™ÈþÙ# aˆEd]ºMÚ쀀ÈC¢… &ÐÁü�=)Òó@ï’p;\JƒÄˆ,[EH*¦~�óØ›Ã`#à�>‹Ížr üûœ§iß#†|”m²hîvJÌ #!Ĭ"RÉvâF1´´Æ„FóÆqŒÇűj5G ±ÿ DZÔ}N‘¬3È�wO‡ût½¯Š ÎGéÿ>ǹ÷EžR æz´‰&£ÙïK¬¨W*"3ø€ZTû& �µL¨otÒóŸoQæ{ô+¶œ§ÁòòŸ‡Ü,ò€9Ô²Ÿj˜�zX€åc€z§¨�|Ú5‘SÀñkÚG•’{Öà Þ�` $�$ �9Çû �Î4E‚©ž¶ò{שÞSß¡E}“ {ó)ÓˆpG…æ6 h˜LbO%�u[³A^žvqÉx³Ç¡â�gÔhe֩梨­Œw G­µ;÷blù&Óˆ ]�pÑéÐ~Æ‡Ø >‡òtu¸:…çéæ�cØò�šÔ«�,ÜŽwƈ<©Þv¤ˆwR%©†Nl„‘׳›X„9@ÐC%ö Æ!ˆ˜)�@,¾G±è�'¹ð�@-¯Ö5‹; @.=@!ïm�@0¨àùvSQ-„�h¨ò Ð&wñçFùC'¸<µ´žÇH�@ƒ� ñþ¿÷dwD­§Š»–¡÷jçOœy¿¥ñFú„Îu››VÖ1”g›òåês� Ò8€ªŒ�böè B�YþÍ @>€¼á` ��Ð�HB d�·4?Pøçhö^�Ðà@�nþ<UAåbo¥¥åÀrãíû��n< ˜”à�`,@� †Hñ¯áþñŽ«BD/)K¸$ ;¨ËˆCLOÄQ02b@¿CÎ µ½Ñ¡Æû €�iÅP�ƒø‡�l?ÄxÉ›ñå1LÎ?ż‡Â�&���%œ1Eè»� Ôt,aà<²< l � H)�Ü Ç@• Éu¼±åŸÚåXÃ( ã�DB0�_€‚èš?Ë›ó>¨äf®TXûQÃêYŽ9l:Ðp¬b¶^ AÛ/àšš,ÊŒ!¤4Ç·Šf˜k��œD0� !Ò�‡øæ6 �³p !€?@l� @úÀ�.@(1²(s_à€ÁÐp; ¸7�0mæ8?8øuät¾@€så.ØHx àƒôAËŽª,º¨B�Ñä#Øtze|=y*˜~Gqà<…í)â®– #R3F<±YÄ ’òà‡91Jv%��i‹`ÀE €�Þà�ÉÇà® A �È69¡õMI¹?<äT€Sâ Â8/Ž`<Î5!†˜çˆÔ¿Áð³Z : 4,� ‘ #Ï‘AbHTv¯Ú 3§ÍQÓáalB!«z»>ÐáƒÊ d²,…hѳC «rV T@üB4˜� ²€�Ö3Ð~UØb=˜ØJÀ˜� ÐðeX @ˆ¡Q¼8ZÉE � ‚ÐZ�N ¶¤t-¡î?‰Àü¢ $y2€’±¤Øˆ¨€~§ßFëè cœ”Ð$uÊáôE(Íj={lB^CúXÕŽ<‡Ó×A:þÇ®öHº$ǹGã¿­(W `�h‚�b|‡k©ÀÜO±ˆðÄž�Nb›$!,/†8 ×ÚVx.0>•ˆK¯Jy¢yø4sp¬€œ:‡üà€^“A/aн¹.Âß<µåŒ*Á¿•ÆYÀD”÷/áüf"ua†Ü1ô®'@Ä‚ �6˜´ÍãTjÇ’|Èbl!W­‚,ýà U£tr¿W/Q@�A㪩0þ¯9ä¼-å<ón€ öPˆ œ;ØA2RgÉw¶Å(áøµ@Oš¬b1ôIòé¯ƀâÂõ¸�Lh�uYFȶà�gŒÀDsÁÏG‰ …Q°ÅhÖ‘ƒå`ÍÀ‡Á¨õv„FPú@�3“O# Âí0vžž*cÿd#ÈB/бƒ÷*Ÿf†ˆÀÕÚÀ‚_qü< x�E) Š„@4 €Ì�:÷à† : «313 ôÀ�ƒ8e3–! À�.À·ÁƒDiqeu²Ã@†@�W†þ9Ò2<ªè"æ6'TZVÎ ¹ ^ÛÈçܸ t&Pý€ žâ»Ð6£ùH uСÆ€¾ßx ‚KñÛ}mкª @|C»B‚ S `�7‡ pW(Ø¥¢šº‰2žÒ8�BDH€�¨B¢' ¥§·åÀ�ŒœÌ]‹¾Å,H(X ¡ž9xÖ/Æèä>@9ÒÑå?„¸‰/¤z·ý4�/0�£°v€�"!›€L˜ÞûP±¤ë:®uЛØ‰™qvfrz½Ïm  �•Æ:p¤�”0Z€ÒÃX�âÿ±Gu´e@�²"Ê6î<B0G�¬i€¬Þ°¼bÊ Ð ��X`X��® �²Y$‚F d l��B LÁ²6+Dt€¼ð!öei`B`$ídöO‰>*Èh>#6ÝJ�>oޏn®ùJhCÅš¡øp| ™-Z K<W‚D-!þjáþN^lz€¾}�”P*4Îh†oÆ–¡à`�Áž j-z ®�t@�l8ýOÖ��U �ÒazÁ~ï€Þ,a&a(Íᮩkº'C: ÀêiábÄ*áô'@À!¶� ¡åic°øH¢ÂÊ0ÍÀè¤8G„6êdS­;ÍÜ4+ Ê@‰°!Ž eª˜PŽ@Ç®äÊÆ~\�ì¡à¬éîáj`�< �€â·Æ§È,!@��üá�] " | �±¸�uà�Ä\…Ì�ጜ¥"��ó �R!l�fAfD2>iæÁà@ LAÆÑ€ªI!¡ï@E`!ÁÆ^¯pq 9¤Më¢Ýdâ>®ªê°n;ë ZúÕ�„ p‚ŠúG´#ð‘äÊAðF€n͆ @Õà#bþ��È ŽDó¡x�zžï€\`H`p,Ïຠ ¸¯íïÇtÛåÕäÊa€� €ØûdˆF,Ž `¢ fð�``EЮZ¡»e®pbìB £!ÆOTÅ©Bj"ÈëÖÝd~Gr,&Ï£Ò9#ÒA2F O¦ÄB= ~D¤¦Hà¨Ájžà�!}'¯äþ¾É @– ϸjÄ \Ò|�P�ˆðÌ @ºãÀ8¦ø¡då®J  6êz,¡ïô +qR;à‚Õ��pì1–XÐ"Šü’ ‚bšt€†m8½Bp]åPCo‡1M"*8–!üóÈ g¿"pŒ$0óÝ;bl0éB  îOtCba† ��ðà� hÁáöHäÿ  Ä�FT®'R¡øãè%Æ�`á¡Þ� |F 4^Áaám!³E-˜â;�³ EÈaXe‘ Ç`”h ó¢.ÔÜ&E Gd<~d6GãB>±JCkÛ<@}I³ÌIO£0’K0∡>à—K ž+'`z±Œ4KÓ9È àë4à8´,� qà&îÄÖ'Gšpà:CáìŠ6–Et�@\arOô2ìK"~0\Q2!Àªò��Õ Y*à¨fpŧ(&¦<‰`<®ªDƒÈfDw"´Šê¤S èÊ€œÕX$<V1i=‚ ¡( Ul Sä� u€¼ À¾��JKÄ€ÜF€€t1$¾Çàç`<Å�`C¡ò@îv'AôÅt•Ä÷¢t�²YÍ.©ƒ&� èβÒÏs @  �¢ñA&EžZ,À0!¿:�� 0qâŠ;áø[h<£Òã:;Ð^B“½TÂqU¸ ¢¥á†FfW=b@=ÁI¡" ¶4 ®Šhcà� S8Ñ th*à <CáòBl¡âhÊ"Âlaê'AþU¤j�D�ÀH£`òE!¼€À=häbÕa¨� HMv(��š €š�(Á*F£ÔÌa^íŽà*â£@B­¨ÀD23éV-Š6«ÃâfCµ/n\¶ A‰ø<Æþ¦‚F=Áoa �Ð Þ1#â¥à�àŽ Ίa"pà8oáØŠ6¼KƒgDDö;câBÀB¡`kP¡C Yt¨c ÐÇU€�Êô,Ùb Ä@“v �á.ðãè LÁS¨$‚nÔŠ` GIZ3Tc¹`‹ÓT5F;Fg/—ŠFaü   ’BibƒÍrà� €� P8$ €`‡“ñù s7�8 Ÿ�H¤`�¨T&�ÁoPÑæþ�)”ªÐ�D&�>ݬ‰+Y�>¤€ 0\= €º ü �ŒF0�˜L'�-ê@%T�ÿ¬B oú½r _°�H$ €·Ø¼âq�á@¨Ð�>¯@� ô�À��ø;þþ^�xPŠ?ÀW×ýéôý&“‰Å–CŽÅ~h^7ÍkM§‚ @®µ�xØp� ƒl�  ðøx�sð@²†”¦k[_À¡Üáöò寀¤!Í×�*U* Û¼�p¸n/O&U¬ÖÈd(�´[-À«8»Å²ÚÞo7ÀP¸Zì/ BP¯��"*0‹è¬ëH жgûϱøÍ ÂÁ• ™³  DDÓA@)Å¡7”lp�tF��V…€�Rª�à8€±Ød€A_ /àBù� ªÂ¸óºh)œg ÖC€‰âè*§(�{žç°�21æyžŠìFG鸪* kSB»�À0�|N«Â�.‹¬ư,›T¿B KÄ€£§Ÿçõ Ÿ4iö+ÒôžgpòÄtËS8€ÀHO‰EFQ•p3iFŸ@�¤(Š1yÒtFQ˜�iV‰h"æƒàú�@JN”â9¬wÙ��ä9 ^˜æùÀ’¤Ìƒ‚/Kiì{í:¸PÜ��{q€ê³1ç¼êªœ–p$ :hT�¼AìzP:§ø}Áˆ¡úд4YøŸ‡– {§qÜ{ ¸hØl›Á¥Ežî-nÓXÊùN<!Y hxí:GƒÂ0�Æ\�¬�¹¨Q”•³˜ 狲жš  �K£€æ•7`h Ù§€F�f­h+|Q©ÃæÀÌ�L·.8IÓ/Ì ãç8¨L$º{A™û€#�~Ÿ+ÑðvgYظG Àðºî¹ÚX–I³'ìxÑuN5M�4à…aq͘ço=˜fUÈö�.°õ�™Õ€'\�!Èt�Ý®ÔQ'êP�¢ w|�‡¡ðz�Þ+jÛ Œ�ãùjL¢§¤¾yiÅÊÁûP�o5H Ÿ€À<åF´§QØv.Ìfç÷G¹:ðQ÷€Ç/ìpæAbš¦Ÿü9ŽâsÎy1¦Aô£G£�†XÑ%îäÔÊû�1©0L1 ÀÍL‰” €0�) ÌÒ¸aAÀ8Fä݇€ò áE.V,_i !@'”%ö�d&� x „HŒ~À©u ±¢…> ^àD d|£ÁP:†*åwÄ}½æØüØ$ëĘÃwtWñ¡ëü}Ñâ<ñc<fŒ1|.ÅØ¦£Pj æ <‡zQcô‚€ �”´‚AN� ?#Á ÃI.sZ�tüj aª�C°t€J½ÆºÐ;�œ4†�dy‚0ƒÕ²'â~Û ´`�A–8„AA@�$„ ’�1`� LÐ�-@8¨�T0�¢Í CÝ–Åÿ)*JˆCÁ+FYy ÿƒè”FÑò?‡ÂÛAœ2†Pr•‡‹g M4¼1ü‰d0`éE9"¯"èBÖ�©( Š*àð’ÀQíûŒ¢ØZ‹@ 8ʰ#@Œu„`ŒGH¥PÈÇÝ- �°Çó�!L) "[(1€ðð¤Š��(u0  ²²úÒj{ „âE;Çô�CÂr—8¸×Ã\f z8$Çi¤ kÏÙöc’b%bÌY%HJ]ÍB Ö½Cœ° °@½ÝÐ ;˜HÏV,X  �ÈAh4p–ìÂ&�齩ð?E˜´@0‚€G¸')à�ÛHñ@° 4§ÂX"±hŸ “8��Qx q¨5EÐÂ4/ÕÁଠ1³@ ,H%.Åx»Wnî+ B¸V ã� FÚ‘¬)«6‡EHKfYñi „¹Õl¼ Á(XÖõå«ÔŒz]Á(@Åày­±þ"D8† C` ¤ˆÒe}<èîáSS_p±Z�Nø�ˆ‚{àEx € ‰�¸¥Ÿ—ÓÕê΄Áß_¸WêÄSŒù9^Ôš³€˜�ÌÅÁø?ÖÛp�BÚÇÁ¬4ƒXk !YÂÌ0Br¾ËYnH` ÂD` ¢î�Ix�V` �ߊ ~B1&>ÝFæ¯,\²yy%%]—”Ö‹Æ2Àƶ,?–xüp£xAèÐò†ÆP»2Ìc.i],Ư(�áØ…�@°@0.ð*�€±/�V-_�G¾P€2F°M‹W$f켌™QkÄ�Ÿi.ZgB“FT½"TbGéŽTpál.nѤ é}­µš°,Hè·0 €¥˜¶€0[£�)PÕ`1b(B~b]â0�C5šæØÖê{Þºwk³í ÒüSƒØðޤ5¸@×,2š}«µø†Z<ày°í欯” Š˜hŠûÏ*qâcä1Ô0;Àîä\‚Ÿ‰”+rT{@Qås‡€ÛçCdYóÑV0º�¼¹Ã·ˆô^Œi²)&´ ›ÀÀ.ê@ž•Ð2 :À-½ý$˜Ø°‹�PHöB>³ê0’¹¥&2ùÐÛí(n ®i_p§Gï]ì‚ôØp@«içS^é(DäBKëvÞr È:æ?+�-¤¼÷Ï-åüÇ™ó^oÎyß=çý¡ô^Òz_MéýG©õ^¯ÖzÓN@@��þ��������������<�������:�������Ž���������������� ����–������¤������º��������������������"�������Â������Ê������Ò���������(�������=�������R���������������Terminal.tiff�Created with The GIMP����ð��è��³�����H������H���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/GNUstep.tiff���������������������������������������������������0000644�0001750�0001750�00000001612�12214432632�016462� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�x��� $h°à!B† &l¸ð"FŠ%jXf1üsíŸ&M†qã'L/I¢¤‰S¦ˆÁÌ´ô2FKã?KŠÓÊ O¾œrÌ[8_ꘙJ– Ÿ%6÷”E+ª\¤Jþj•ªÖʇ§nžÒ 2eKT³zí¦-j´jÞºN½†–kÖ¥e›î]ÛvëÙ#GÇýzôÜkè a}Úá©ß?ÒÀ‘C†Oš0bâȺ£³'Ÿln…È3¦Lž¶djÛWÆYU¾lœ¥Ý;­_¶xË¢í½;ûß½gï¾ý²l¼óáãÛNôØuàì¹ã'†ÙqòêÖë#Ïœ¿}gþõ ¯]¹qjû­»/ö›ý8Äã÷O?¶}þò뾇|xôéÉgq| Ð>¯™·H¿ý 2ˆ } (8 Õ Üß Cv8Øàô˯Pý 7(9CÃ×@t !¼P"GÞ#ò"’¨¢?J#¢‰ÖWÇbŽ)®= ¶hãˆ;†„=Š5~wŒ'‘„"O,q·“LÚ{+ıÎZ1uNMÖ4¬N5å­á?’äÃH1Îx’Ë$«¬Ë,™ìÅŠ/›œsq>»¤’Í)×¼óI2²BË+Ÿ‚³Q4ìÌí,¨¢1¥"•/¦¤l¶±øXŠ*¹,w ¨Ü<œ.³ìŠíÞ0ïJW;ËJJÊ_4)¢Œ«©µ2÷…®ÀÍŠj-¦|…E¨KѪëͪ~­EiHîF-Eù*uɰ¥t3h%#ošÍ¥ö¦Ü¢Íöh»Ó2î âÆ È¼™Î|‹¤‹vzèº{rï¸&7tî´ÑHzí½‡Z®%Àûﯷ.‡4n������-�������-�������2���������������� ������� �:���:������t���������������������������-�������p���������R���������������/home/dan/GNUstep/Library/WindowMaker/Pixmaps/GNUstep.tif�created with The GIMP�����������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/notepad.xpm����������������������������������������������������0000644�0001750�0001750�00000022433�12214432632�016447� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 211 2", " c #410341034103", ". c #EFBEF3CEEFBE", "X c #DF7DDB6CDF7D", "o c #F7DE71C671C6", "O c #492449244924", "+ c #B6DAB6DAB6DA", "@ c #DF7DDF7DDF7D", "# c #DF7DE38DDF7D", "$ c #E79DE79DE79D", "% c #FFFF59655965", "& c #F7DE59655965", "* c #EFBE55555144", "= c #E79D55555144", "- c #E79D51445144", "; c #DF7D51445144", ": c #D75C4D344924", "> c #CF3C49244924", ", c #BEFBBAEABEFB", "< c #EFBE79E779E7", "1 c #F7DEB2CAB6DA", "2 c #EFBE8A288E38", "3 c #E79D8A288E38", "4 c #EFBEC30BC71B", "5 c #DF7D71C671C6", "6 c #F7DE55555965", "7 c #F7DED75CD75C", "8 c #EFBEC30BBEFB", "9 c #C71B49244924", "0 c #E79DEBADE79D", "q c #E79D65956185", "w c #EFBE9E799E79", "e c #FFFFFFFFFFFF", "r c #DF7D86178617", "t c #C71B45144924", "y c #EFBEAEBAAEBA", "u c #E79D9A699E79", "i c #D75C71C671C6", "p c #BEFB45144103", "a c #EFBEB2CAB6DA", "s c #F7DEEBADE79D", "d c #BEFB41034103", "f c #186118611861", "g c #49244D344924", "h c #B6DA41034103", "j c #9E799A699E79", "k c #BEFBBEFBBEFB", "l c #BEFBC30BBEFB", "z c #C71BC71BC71B", "x c #CF3C59655965", "c c #CF3C5D755965", "v c #DF7DAAAAAEBA", "b c #AEBA3CF338E3", "n c #71C671C671C6", "m c #410345144103", "M c #CF3CCB2BCF3C", "N c #CF3CCF3CCF3C", "B c #EFBEEFBEEFBE", "V c #514455555144", "C c #AEBAAEBAAEBA", "Z c #AEBAAAAAAEBA", "A c #965892489658", "S c #861782078617", "D c #8E388A288E38", "F c #8E388E388E38", "G c #A699A289A699", "H c #D75CD75CD75C", "J c #B6DAB2CAB6DA", "K c #71C675D671C6", "L c #69A669A669A6", "P c #861786178617", "I c #A699A699A699", "U c #69A66DB669A6", "Y c #D75CD34CD75C", "T c #79E779E779E7", "R c #79E77DF779E7", "E c #9E799E799E79", "W c #59655D755965", "Q c #965896589658", "! c #618561856185", "~ c #596559655965", "^ c #F7DEF7DEF7DE", "/ c #D75CCF3CC71B", "( c #C71B9E799E79", ") c #C71B7DF779E7", "_ c #C71B7DF771C6", "` c #CF3C8A2871C6", "' c #BEFB69A638E3", "] c #B6DA618530C2", "[ c #C71B71C64103", "{ c #C71B79E74924", "} c #BEFB659530C2", "| c #CF3C75D64103", " . c #CF3C79E74103", ".. c #C71B69A638E3", "X. c #BEFB6DB638E3", "o. c #CF3C6DB638E3", "O. c #D75CBEFBBEFB", "+. c #B6DA8E389658", "@. c #A6996DB66185", "#. c #D75C96588617", "$. c #F7DEAAAA9E79", "%. c #F7DEB6DA9E79", "&. c #FFFFB2CA9E79", "*. c #FFFF9A6971C6", "=. c #FFFF86174924", "-. c #FFFF8A284103", ";. c #FFFF86174103", ":. c #FFFF8A284924", ">. c #9E7996589658", ",. c #9E7975D669A6", "<. c #BEFB8E3879E7", "1. c #BEFB71C669A6", "2. c #EFBEAAAA9658", "3. c #EFBEA6999658", "4. c #FFFFB6DA9E79", "5. c #CF3C71C638E3", "6. c #DF7D861738E3", "7. c #E79D7DF738E3", "8. c #D75C79E738E3", "9. c #DF7D7DF738E3", "0. c #D75C75D638E3", "q. c #E79D79E738E3", "w. c #DF7D820738E3", "e. c #8E38820779E7", "r. c #A69969A669A6", "t. c #CF3C8A288617", "y. c #F7DEA2898E38", "u. c #EFBE9E799658", "i. c #9658514428A2", "p. c #965851442081", "a. c #28A228A22081", "s. c #082008200820", "d. c #AEBA659569A6", "f. c #D75C79E779E7", "g. c #EFBE92488E38", "h. c #EFBE8A288617", "j. c #EFBE96588E38", "k. c #D75C79E771C6", "l. c #000000000000", "z. c #082004100820", "x. c #514434D330C2", "c. c #71C649244924", "v. c #9E795D755144", "b. c #9E7965955965", "n. c #A69969A66185", "m. c #A6995D754103", "M. c #30C22CB230C2", "N. c #30C21C711861", "B. c #410324922081", "V. c #410328A230C2", "C. c #59653CF338E3", "Z. c #61853CF338E3", "A. c #69A6492438E3", "S. c #71C6492438E3", "D. c #79E74D344924", "F. c #96585D755965", "G. c #8617514438E3", "H. c #8E384D342081", "J. c #861749242081", "K. c #861745142081", "L. c #79E745142081", "P. c #28A21C711861", "I. c #514434D34103", "U. c #596534D330C2", "Y. c #41032CB228A2", "T. c #30C228A228A2", "R. c #38E320812081", "E. c #38E3208128A2", "W. c #410328A228A2", "Q. c #38E31C711861", "!. c #514430C228A2", "~. c #38E320811861", "^. c #410320811861", "/. c #38E314511040", "(. c #38E314511861", "). c #410338E338E3", "_. c #A6995D755965", "`. c #69A649244103", "'. c #69A63CF34103", "]. c #596538E338E3", "[. c #49242CB228A2", "{. c #492428A230C2", "}. c #38E328A22081", "|. c #79E755554924", " X c #6185410338E3", ".X c #861751444924", "XX c #69A649244924", "oX c #410330C22081", "OX c #38E324921861", "+X c #30C21C711040", "@X c #30C220811040", "#X c #38E328A228A2", "$X c #38E334D330C2", "%X c #861749244924", "&X c #61853CF34103", "*X c #618541034103", "=X c #28A210401040", "-X c #30C218611040", ";X c #30C214511040", ":X c #28A21C711040", ">X c #38E324922081", ",X c #AEBA61856185", "<X c #492428A22081", "1X c #51442CB22081", "2X c #492428A21861", "3X c #20811C712081", "4X c #30C234D330C2", "5X c #69A675D68617", "6X c #28A22CB228A2", "7X c #30C230C230C2", "8X c #F7DEFBEEF7DE", " . ", " X X X X X o O + @ @ @ @ @ @ @ @ @ @ # # # # # # # # # # $ $ $ $ $ $ % & & * * = - ; ; : : > . ", " X X X X X o O , @ X @ @ @ @ @ @ # # # @ # # # # # # $ $ $ $ $ $ $ $ % & * < 1 2 ; ; 3 4 5 > . ", " X X X X X o O + @ @ @ @ @ @ # @ # @ # # # # # # $ # $ # $ $ $ $ $ $ & 6 * * 1 7 ; : : 8 > 9 . ", " X X X X @ o O , @ @ @ @ @ @ @ # # # # # # # # # # $ $ $ $ $ $ $ $ 0 6 * * q w e q : > r > t . ", " X X @ X @ o O , @ @ @ @ # @ # # @ # # # # # $ # $ $ $ $ $ $ $ $ 0 $ * * = 2 w y u : r i t p . ", " X X X @ @ o O , @ @ @ @ @ # # @ # # # # # $ # $ $ $ $ $ $ $ $ 0 $ 0 * = - a < 5 s > 7 t p p . ", " o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o = - ; y : > 7 r 8 p p d . ", " O O O O O o f O O g O g O O O g g g g g g g g g g g g g g g g g g - ; ; 3 : > u s 8 p d h . ", " , , , , , o j , k , , k k k k k k k k k k l l l l l l l l l l z l ; ; 3 3 > > x e p d h h . ", " @ X @ @ @ o O , # # # # # # # # # # # $ $ $ $ $ $ $ $ $ 0 0 0 0 0 0 ; : y u c 9 p v p h h b . ", " @ @ @ @ @ o g , # @ # # # # # # $ # $ $ $ $ $ $ $ $ 0 $ 0 0 0 0 0 0 : : > > 9 t p p h h b b . ", " @ @ @ @ @ o O , # # # # # # # $ # $ $ $ $ $ $ $ $ 0 $ 0 0 0 0 0 0 0 $ k n O m m m m m m m m . ", " @ @ @ # @ o g , # # # # # $ # # $ # $ $ $ M $ X 0 $ 0 0 0 N 0 0 0 B 0 X , V C Z C C C C C C . ", " @ @ @ @ @ o O k # # # # A # # $ S D # $ $ F G F F Z 0 0 H V J 0 B 0 B $ K L X $ $ $ $ $ $ 0 . ", " @ @ # @ # o O k # # # # n H $ N P C P I X U A C I K Y S K l T M D T P R l z A B B B B . . . . ", " @ # @ # # o O k # # # $ + n A K Y $ T S $ E Z 0 0 l W l 0 B X W k B B B B B A B B . . . B . . ", "m @ @ # # # o O k # $ # # $ # J z $ $ Y # 0 $ 0 0 0 0 # B 0 0 0 $ B B B B B B B . B . B . . . . ", " @ # # # # o g k # # # $ H # $ H Z $ $ $ $ 0 0 0 l 0 0 , $ B B B 0 B B B B B B B . . . . . . . ", " # @ # # # o g k $ # $ $ Q X M Q n $ 0 0 n J 0 0 ! Z 0 G D J L N F I E K Y . B . . B . . . . . ", " # # # # # o g k # $ $ $ Q R T + j R T X D D S R W L A I ~ P 0 B 0 S F @ R B . . B . . . . . . ", " # # # # # o g k $ # $ $ @ H $ $ $ 0 l P P 0 0 0 0 0 k E Z B B B B B B B C H B . . . . . . . . ", " # # # # # o g k $ $ $ $ $ $ $ 0 0 0 0 F l 0 0 B 0 B B B B B B B B B B . . . . . . . . . . ^ . ", " # # # $ # o g k $ $ $ $ $ 0 $ 0 0 0 0 0 0 B 0 B 0 B Y 0 B B B B B . B # E $ . . . . . ^ . ^ . ", " # # # # # o g l $ $ $ $ E Y 0 0 Y I Y 0 0 0 $ H # S ! B B B B + C B . X n K . . . . ^ . ^ ^ . ", " # # $ # $ o g l $ $ $ $ , I # U K j S z B 0 z ! K l , K F F @ B T l J 0 Q J G . . ^ . ^ ^ ^ . ", " # $ $ $ $ o g l $ $ $ 0 # T K k 0 B D @ 0 B B # B B B 0 # # B B $ K G P I . . . ^ . ^ ^ ^ ^ . ", "m # # $ # $ o g l $ 0 $ 0 0 0 0 0 0 0 0 0 B 0 B 0 B 0 B 0 0 0 B B B B B B . B . . . . . . . . . ", " $ $ $ $ $ o g l $ $ 0 0 0 0 0 0 l 0 B 0 B $ / ( ) _ ` ' ] [ { ] } | ' } .| } ..| X.X.| o.... ", " $ # $ $ $ o g l $ 0 0 0 $ H 0 P K C $ O.+.@.#.#.$.%.&.*.=.-.-.=.-.;.:.;.-.-.;.=.-.-.:.-.;.=.. ", " $ $ $ $ $ o g l 0 0 0 0 H Q A >.$ ,.<.1.2.3.4.4.4.4.2.=.5.6.7.8.9.7.9.0.q.6.0.0.6.0.0.w.0.5.. ", " $ $ $ $ $ o g l 0 0 0 $ z m e.r.t.` &.&.y.2.u.y.2.2.` i.i.i.i.i.i.i.i.i.i.i.i.i.p.i.i.p.i.i.. ", " $ $ $ $ $ o g l 0 k n a.f s.d._ f.r r g.2 *.3 h.j.2 h.k.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.. ", " $ $ $ 0 $ o V l m l.s.l.z.z.x.c.v.b.n.k.k.f.k.` f.k.k.k.m.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.. ", " $ $ $ $ 0 o g z Y F W M.z.z.N.B.V.C.Z.A.A.c.A.S.D.c.S.F.G.H.H.J.J.p.J.K.H.J.K.J.H.L.K.H.K.L.. ", " $ 0 $ 0 0 o g k # M I R V P.I.Z.U.V.B.Y.T.R.E.W.Q.V.Y.!.~.^.^.Q.Q.^.~./.^.^.(.~.^./.~.^.Q.~.. ", " $ $ 0 0 0 o g z # Y + A T V ).C._.`.'.].[.{.Y.E.R.}.~.~.~.~.~.~.~.~.Q.~.~.Q.~.~.~.~.~.Q.R.. ", "m $ 0 0 0 0 o g z 0 @ Y z + I Q T O O ).|. X.XXXU.U.[.oXY.OX+X+X~.+X+X~.+X@X~.+X~.+XQ.~.+X+X~.. ", " 0 0 0 0 0 o g z 0 0 $ # X X N K O S K W O #X$XF.%X&X*XB.N.P.=XN.-X=XN.(.=XP.;XP.:X=XP.:X-X>X. ", " 0 0 0 0 0 o V z 0 B B B Z K K P l K ~ A A T ! g $X,XD.x.<X~.Q.1X^.N.2X<XN.OX1X~.:Xz.3Xa.4X5X. ", " 0 0 0 0 0 o g z B B B B B B B B 0 0 # X N k C Q S ! O 4XM.6XM.M.M.M.M.M.M.7XM.M.7X7X7X7X7X7X. ", " 0 0 0 0 B o V z 0 B B B B B B . B . B B 0 # @ Y l Z F K U L U U U n n n n n n K K K K K T T . ", " 0 0 0 B 0 o g z B B B B B B . B . . . . . . B B $ X M k + + + , , , , , k , k k k k l l l l . ", "m 0 0 B 0 B o V z B B B B . B B . . . . . . . . . . . 0 $ # $ $ $ $ $ $ 0 0 0 0 0 B 0 0 B B B . ", " 0 B 0 B B o g z B B B B B B . . . . . . . . ^ . ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 8X^ 8X8X8X8X8X8X8X8X. ", " B 0 B 0 B o V z B B B . B . B . . . . . ^ . ^ ^ ^ ^ ^ ^ ^ ^ 8X^ 8X8X8X8X8X8X8X8Xe 8Xe e e e . ", " 0 B B B B o g M B B . B . . . . . . . . . ^ ^ ^ ^ ^ ^ ^ ^ 8X^ 8X8X8X8X8X8Xe 8Xe 8Xe e e e e . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . ^ . . . . . . . . . . . . . . . . . . . "}; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/ICQ.png��������������������������������������������������������0000644�0001750�0001750�00000014611�12214432632�015410� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� d_‘���tIMEÑ #(ãĹi��IDATxœí›yœUŵï¿Uµ÷>ûœÓó@3È(´ ‚‚ŠA‰³Æ‡H¢‰^ó4Éú2<51šDóŒ&}ú®ú¼š›™ˆŠD%8€0‚ fhšî†NgÞ»v½?öéiF¹÷ýq³>Ÿê³Ï>{W­ß¯V­Zµªþ!ÿÈeÿ¿(JQ¥H¸Ž ¢®dO›ÿÚæ*–…�†�'ÉÀ9Àx`-<¦ Ð¥$÷HÉ"Û’ÙžT ÿ3u=–"¤$bYÌWŠ%JѨ=J¡•ÂÄbÂ(…‘£ƶ1J(Õ÷™WŠÅ1®R©ìc®Ü±®ð£õ+EµÜm Ÿ¢JR>ùĨºf^5ãF»Œé2¤ÊÂu%:0tu{øyCݶ4z­“·–wÑÔì^,Âß”’Oêè ÚŽ‰‚ù<¦R�ÿ=c8(9ýÔ¢‘wÜ:‚sg—PVæì÷¼1­0 ÙlÀÚ =|ïV­NJ‰Bˆ7Œ1ÿšè6+>¦ŠF.$! DzH)¹8ß²ÄèÏ-¨þÄg¸(ÅQƒ‘Ø!RJ¤’#,Ãj.>¿OâokÓe†!,ÇfY.÷1tü!À‚K$LCrµRbê5WUÕÜ÷íQTVX8ßVB=üx#=<‚0½o ј¾K!%J "Žà¬3ÊèIæYóaº80Ä•+29ÓTП£!@�Œ‡cæ\àçXâƒàÄ¢<ýè¦M‰¡„ }| ™uч$z4eeŠ‹OK0ý•™^fÀøàå}ššó\xõö´ùžÖ<]iø&Y£Ó ÊàˆæÌ­à €ËÀ=à߇²6[4÷~RaqóCùÊC))QFYR#Bˆ~Œßþå³|ók_D�õÎ�»‚v2M.ðÁº$ýŸ&6nJ3aL„…/L%ŸòùõïÛøÖwÐÙìgËã’AW¸µ=}_†¬P êPŽ´‚?sF¿{ò$âEŠíiº: e–@[ ëßjgÚ¼å^gXµÂ¶ÓΩãƒwkH¥îùÁý9R0|é‹Ãœ¸bîŒ^˜gé_{†'´[ëŽs48,€‘…Ï-(K~5¶¦�QpÜH‡ ©À³� fÌ«C"ñü<o¿ýŸ½v.O=: #* ÛFÕù<ùó;1Æ0´j(k×ýÊÒ:ÈÞƒ‚aã®>¿’eï'­dÎ\8þ^Â=  ìcQ 5У(j/åµçs´í‚b¢ÝÓ¥0iE Å+ _åô™3ØÝâsú9C÷^È\ô©g1ÆËdXºt ?𞙂@ ­Ÿ˜QJ:mÈø|ï!DçV¨<b}{ ö±(ý´ Ü"Áðšo.H!zŠ ãréã±±¹jÞUÇŠ¸ýö;öÙ ðÖ²Íà¥ï0jÔ~ÿâoqmrø6ä¾TDlÈo¿â"ÅbĦ£Ñ×(Èǵ~�ŒñÂúåÂfæ_TäSl64I)e  b@¾yƒËÛë 947Þt3üð>ôÎ[ 0` —7àâ‹/ÁÁb☉˜îg!é‚4 $ŽrxúÎi˜nÅg®ÆÓÏ7ZGƒC�,†Ž~\*Å+"Ô-ŸÉ®æ,ÓªËS_½jlÜÂM‚È µ‡o²hÛ‡XQl,e!•@ øÖZxô¹\Î/†-"€ˆÏªw;ÉgaÖùŸ'¾F)æ¥_ÂwŽDß a³�X§ �<,uúk-6Ÿø¿·ž”<fEQUÜÁ˜Rt·&³ÉCÎ>G¤q†Z˜b8(™Å’Ra“Bù;QÞ0ð£`àx¼¾ª™Q##œ}õJºz|–b¦ Ô£ œð#`ì}‚‹~™ k,�§)ú±EcÔÔkyfDÙѨŒé@=^^êD–ÀÓ`A׋ȿøTÞÿ T‹î²°JÊq—À×äšw’lx¢ñ;tãk£@ ré,_¿–-éêñ™ˆxÊÁôaðADÁʆQ©Ž@`€«ðç˜àƒ0hu.²óØ–DO|oC—<cJ±1Bcs,6ƒøD æÅz:¾|?ν÷àNLÏ“¯ÛJ¶n3~{Ý¿}…Žá†ò«ðª %ÃÃ8§~[Šm;³h Ã`É/°~cÈ÷a°€@Td�Ú‚à€8;³V1ÈÂ<ûæÏ/i±O®‹¹§—ã` ßäQÅ0ü«Ãèöâ¤_k¢û§‘?~,ÚqÈÖדoØAOáŒs©øúHˆ(rÉ€ÀøxžägÏ7"Œ®Fýø;˜å†ü ‘lÐ –BƒŽB‚�¨ƒ¹‘™,Ää>R>„9íøg Îüs«¹ýs£9®ÚE9Q•E9#H>˜&¹r;&ö®ª(Æž£x~ ±)q„«ð’>¢Ó"•’¬­Kqí·ÖyÅy½åù@<¨„0Oœ`_µ]ˆiÍ­žìÉ™’ZmÞ¾#«ÿpB@@ DâàÇÂH¢o(Ô‹`+Üðq ð@d@I0E %µ1êaÌç0Ò¶ÇF™^%ÿ|s%RºH«[&I½Áª<5¢UºÜÙ+!ð$›êÓümS’?Wïù¹]_2òWoWÈ3»ŽsæÄ£B€!‘0÷hlÏ´ÏÑfáTmvæ{Š ~qèû¬`<<'�¶ßÍW>x üB‰;ôåîzW¸ÛZ‰ÿìf|°›)ÔJ‰ˆF$~®–ÚÑ1lÜ!6BØáÕ“´íH±êƒžy©•¶Ž€-::½ ¦˜mן*^[Õ"Æoè°.>n¨âÜÓâLmó×µ:SÝÉ�O 6nÉ’ÎLÕÏýÓ©Á‡ñ:f£• ­`Ü}<a(ùñœ 1K"bÎàŽf‚]Áª»^Ξn1p,Áu_¯çª¹å\· ’X—‡ã $‚–Ö<s>]‡_XÜ*e°•ÀJãa¼ßl5'Å„²bÃýÿ£Ç,ÿ EYÜ0ov„IÓ+¨Û­yîù6v·xü¹.{ÙWf›t€ Ú‘ýz†ˆ£' DDa¤|ªiìD\þ¤œžÈˆKYœwFA�u;2\sëvšòL›cõº4ZΨá·Ü8Œ?½ÞÁšõ)[(ו'îíô‰GŸŸWƦ96oË2¦RsÛ‚J‡–@TQžòèNjª*-rY˵•ŽûÚˆÀ …AË‚ô®žŽ:@hƒÀ`œAæÚ%upÓ¯åi~ ÎR¡Ô-Ÿ«fÎ™Å”×ØÄã;ê3üfQ‚×Þê¢aWŽ1Ã&‹0gvŸº²Ç‘ü·K*yaa\ÜcAM•E&ã“͹‚o^SNÕ„RphHíIQÜÜÁWçÅÙÚcóÓ'3±Ÿ¾-f,˜jþî(r¾…ß«« ÅÑ @ƒò4Ò–x½ã `c Üôk9ÝħNv{p CG¹¸Q…‰„sSU¹âÄñQj*m~µ°_ZòØVÀš JKU5®8¿Œ=Í^úS˜ –.;YqòéÅH×Áø"L()ˆTD1{8#¤äÔ\À’w“ò·ïö\¸½CŒøÖýî¸))Âa �¾1‡K ×GS,!°7ç·$¨À .|BŽIå9»¦Ò2ÏÜ;::ù”„6XHÏóÃp”ääSbÌ:³”Í[2$:5+×§¨!•5üâw­<ðè.6Ö¥2Lœ!9yZ)Ý8”VØDã˜À ”«Zõ;s´ìõØÜd†Gè<u„éTù“¥¼Ö;Ž*!bÂôµ´%Ê’Dp X: U·Ñžæt)HúâŠjOCK›Ï«o´±à’rŠ\ ÇShGc CQ\1cVÏO«åE ÞXÒÉ3Ï7cÆÂ )+¶)ŠIÆŽŽ0nR1qD˜Þ L¨”%1üDžÌŽò„é3LeB¼b p9ÀC�d<"RPc %AÉTžÖ?oqÀ2F”ëÀ¨UëSÜö£´†±##Ì9µ´JAq™È·œj›sÎ/… à•·ä´B0ö8‡Iã#\qq§Í(¦ªJ€—Ðä@#0¾…ˆ LÆ#Ù”ä÷I³­Å°§ÕËúäàý jƒÝAfßž?¢‘œü÷÷õðÎNyD<ê­CI´káM¬6»ATŒóÇ¥ FÖØh ¾†ÛØÅ¥sº¹ëæ‘rð.*îaE}üv¢J›¹WTò‹ ‹ßÿ¹›™'»\|Q%N± Øl€×æ£Dˆ„–h_d$f¯ãs¢|a¾ÇЕ­Ô×%wû¼àÃÖ$Ž)ö%`Ðéë@²¥•Ø#K™ÖV4I×ÇAA:V©tZ½¿›qVA¿Æ–<Ýàº.%¥•äR{øÝâ.6oÏòÄ}ã(³ü¤M“Ø¥>~{€S!˜qV)3f—„Úy@—&Ѐ1H_àç%&§H¦¶îÎ2qD Û’ ™@óÖÚvþôN+Ööè1C»³( ƒ…³€øîàÌd-”tB|þ‚yò‹7}‘˜£ººÛ¶yñŹóÎ;„O`9ŽÃ駟δi§P[{S¦L¡¢¼„+/=›¿mÌó…Û·òùùU\qN~M>á`—L…Ñd`0€ÑSyÛ -çÎÇšXò^;EQøô%å´%|Þߘ F@ªÇ÷îK™Å©QÐaf1Älºÿˆ6øÈQcFqæ93)²‹û~«ªªê»¶,‹ pë­·2uêT"‘þÙvÙª­\yÅ\>¬kàámヾ󥈴C¾]¡òU^EWO+QÛ`Ò~V…ËMÛ€mØÝšæŽŸíeã¶,¶M{rÁ¿<Û’ÉS$ÈŒ3bϧ³ñRmvG è�Û?´‘}¡üá�/t„ð „Iä>àŠã8\vÙe|ÿûßg̘1H¹¯Ÿ6l _^Âc=ÆÓO>ÊΖ;›¸rn1—Ÿ]M¾ÛÂïñˆÆl¤ð ´Äv‘*,Ã{¤xîåVêwe0AžÆ–,–!¸ þúeØ82Gvìh˜ñ àû 0;x?Œ[Ddú�É…2~üxn¾ùfÆŽ‹ý>ÖC6›Ekëº\~ùå¼þúë´íÙÌ›+r¼·&ËK‹:ùòUÃ9¾ª„’¼ƒt*¦ÃM•íIýe+Ë×$)Žf{5SN9“;®®.k+”¿ •_€mõ)\¤fû&ÅC„iH<)P ;1kD"Î:ë,.¸à‚}îçóy–/_ÎSO=ÅŽ;hoogúôéh­iÞ›eü¸1$»wñþFŸÛwÕsÎôRn›?šŠ"AÂKñÝG›X¾:E¬l w~ç{|öºp]—õë×3sæL/^lZ!~´“�r�ø>‚ðHÊ~À!ÜË‘„‹…4ØMPÒzˆÀ©¨¨ˆ“N:ißú‚€uëÖqà 7ÐÐÐÐw¿®®€Y³fñÄO°mkß¿ëF’WÞíà¿v’õ4=©€dÚ`¤Ë3?úóæÍë«ãøãg„ ,^¼Xlƒñðf#˜áƒì~Ôt%€†LoÉC6 Y2Ò+î(ôt‚€X,Æ„ ö»¿páBöìÙƒ�ÊK,¦%ꆾaذa¸®Ë§®œÇ²ÕMüûKï±àºÿÉÆíY¶ìÌÓ¼×§³Ç§³3É /¼°O½Ñh”êêj\×Å„fžŒAÏ@Ý+P�¢!]ø~ÁL$˜ÁN%™Á,f X–EQQÑ>÷‚  ³³“ ˆE%×\TÆÙÓŠùù+í¼ön7C† ! S“ñxœ1cÆ’Ëk²ù°ÏlK 6†öööýÚ¬¬¬¤¨¨ˆl6‹€d$$àñMïHCPAaMq€<D謵&™LîÿnÁ@:oÈ!ÈæŸt:Ý÷Œ‚h4ʤI“ˆÅb¤Óit:P€É“'ïWwGGG_›¥Ð! u8Áð íAZ@J@ª÷û`¥ üÁ˜ƒUšN§Ùºuë¾ IÉœ9sp‡L&àwotrß¿4óÞÚPé;w’N§û¦KÇq˜9s&sçÎ I Æ@YY×_ý>u' Èf³8Ð5 š†¡·@Áò…/‡#K$0ú`Æ•H$xóÍ7¹þúë)))é»Þyçñè£òÊ+¯ÐÞÞŽ‚³>1ŠmÛ¶±iÓ&zzzö©gôèÑÜwß}ÔÖÖ²víZÊÊʸúê«™2eÊ>ÏÕÕÕ±yóf�&ïJ¡ó° ø‡ÓåeÁ4 E{Fkͺuëxýõ×™7o^ßá§x<ε×^Ë•W^I!°,‹»ï¾›eË–±zõj&OžL4fèlÛæ¤“NâÞ{ïÅ÷}„¸®‹eõûàt:ÍòåËY¿~=�߆ý‚÷o§t æÎú È„�DïÞÚv»ÍVŸÁì+Ƙ¾qºmÛ6yäjjj8ãŒ3°m)%‘HdŸ¸®®ŽíÛ·cŒá®»îbèС\z饨v¸Û.¥ì#d0Ù¾};‹-¢³³€­áô—H‡;BÚ= ™•¤{¯ïvÔç}!†ö¾¬µÆó¼¾âû>AÐïz–-[Æ=÷ÜÃ’%KúœÜGEk.ÙÑÑÁ7ÞÈ«¯¾J"‘8 èRSSìY³úÖ ?k{õ­€. ’ñ$ Û{ …”Ø|(öA¬ÜQ—5 n‹ºÊ?Ò¥¹-ψ#())¡¾¾ž+V°zõj–/_ÎÚµkûܱckÖ¬!ŸÏ“ÍfI$xžGWW¬\¹’E‹±wï^�2™ K—.%“É`Yžç¡”곚úúz”R}Ëïx<Îĉimmeݺuôh=±žíƒáè W‚¾ú×Ð)�þ-<¬|@yÒ‘×HñÇ f•O£²DñGva;eTWWÐÐÐ@&Ó?’[PZb‘É$ÓaO˜0ššF€çylÙ²…¿ÿýïär9‡š€pü×ÖÖR[[ËèÑ£2dÆÖ¬YÃäÉ“¹í¶Û(--EkÍúõëy衇øÃþ@*•¢Rpÿ#†ÿ=–$HLÌõÐl4‡é†Ê:)þB_we§M/¢¡%Ï%³KyåN6mÚ?(qlÁ´ÉEŒ¬qyã½J t`زe [¶l9P3F Ò"\{Ä<ÏcÆ lذa¿_}õUr¹7Ýt+V¬àÉ'ŸdÕªU¤R)€À¸ÍfpL{ÀŠAP<08[ 1 °%y_PUnqóUU|òŒb29’aJ:Rî‹*²VÄaåÚ.<[b Æày6áÐóÇ¡Gy¦-IS^°¡±qK^›3Ì {©TŠÇœeË–ÑØØÈöíÛû~³-)„ ê„©( ‡C�sû,ÄD@“Ä^騷bêÜÙ¥<xÇh„ º=„A(‰(±°,‰TðÆk<þbím‰B®Å˜RëGúü¾Ú„KÓVA´Ã0TC‘”M‚e'˜þéŽ|8â $<tÇ*‡(n¹§žÖŽ~|½©%%¶¢eHÀÙ³½ ïÀæ@é.8þ~~‡>)º*¢ŽK VºUþÌ÷G3e’ Ž"ð´£°dxâyÇÖ ÿýž¤Óšd:è¾É/ÏÎê£:ÙýW-DˆOàÄñQžøî(Û|îxp'[ê3Ì9³„QÇExweÍ{¼œ_<'«_:P}™p_”Að2dû¬p³«>ƒUWXCøÆqœuvÚ3èÀ°»)ÇÍwÖÓÐ< þ2æC Ÿ¯ÉêuG¼WŠHÖVo!ÄtÜÿµ ­¶iiÍ3n|ŒL&àÞŸîfGcŒyyXVÏ;X}©‚Ä!è;+Ìa1¹êV!ħœ‹üðë#ð²?}n/o­îa1W¦³zçÑAÞ_K8–%—!Ä4€Ë?YÆÌSŠpÁwÞM&`ŒyßóôYžîûƒ§ú,ÂÀÈæ#؉¹êa!Ä—Ùß9í0ÆÜÎêwŽ�›¤‹í #Ž´-%—3 s%él€€ÀóŽçë =¿|ïñÿF€½1t/}QÛAÏÕK±ïÿÄ\um<j5Ç£V6µ–Ç\uÁ¡ê¤”Jq¡¸‡zDZ¥ŠG­gãQ+Zíñ¨õ“ˆ-F*¹ßÿ;8ƒ¼)´a ¸wø;B¶ByºŸÑhDéLîˆÿ›Kп˜òèï%«ðý)zב. ³ùà£S ôgM¿7£7°=3ð…Ã[byÁ‘í!|D¹8!P¿ ¤¦ß Uá·<‡‘u>€(ö5{‡ð O˜$Ý|¯RE~ŒÆ&PRP KØÁGÚ„Ò¦Äè·†ýz¾W>êý! G´Wxq€rÂ^è?¨2tŠpø»UƒYqýàýC´÷_[þ¾]Úþ÷vS����IEND®B`‚�����������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/xdvi.xpm�������������������������������������������������������0000644�0001750�0001750�00000021311�12214432632�015761� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 184 2", " c #410341034103", ". c #FFFFFFFFFFFF", "X c #965896588E38", "o c #965896588617", "O c #9658965879E7", "+ c #9658924871C6", "@ c #8E388E3869A6", "# c #861782076185", "$ c #79E77DF76185", "% c #79E779E75965", "& c #71C675D65965", "* c #71C671C65965", "= c #79E775D65144", "- c #79E77DF75965", "; c #861786175144", ": c #8E388A285965", "> c #8E388A285144", ", c #8E388E385144", "< c #8E388E3871C6", "1 c #8617861769A6", "2 c #79E779E76185", "3 c #69A66DB65965", "4 c #69A669A65144", "5 c #69A66DB65144", "6 c #618561854924", "7 c #596559654103", "8 c #514455554103", "9 c #5965596538E3", "0 c #5144555538E3", "q c #5144514430C2", "w c #69A669A64103", "e c #71C675D64924", "r c #79E779E74924", "t c #861782074924", "y c #86177DF74924", "u c #9658965871C6", "i c #8E388A2869A6", "p c #69A665955965", "a c #618561855144", "s c #618565955144", "d c #49244D344103", "f c #59655D754924", "g c #71C675D66185", "h c #69A665955144", "j c #618561854103", "k c #9E799A698617", "l c #59655D755144", "z c #514455554924", "x c #71C671C66185", "c c #86177DF76185", "v c #9E799A698E38", "b c #9E799A6979E7", "n c #596555555144", "m c #79E775D669A6", "M c #861786176185", "N c #8E3886176185", "B c #8E388A286185", "V c #861786175965", "C c #965896585965", "Z c #9E799E799658", "A c #9E799A6971C6", "S c #71C66DB65965", "D c #86177DF769A6", "F c #71C66DB64924", "G c #79E775D65965", "H c #965892486185", "J c #9E799A696185", "K c #9E799E798617", "L c #8E38861769A6", "P c #8E3886175965", "I c #9658924869A6", "U c #8E388E386185", "Y c #861782075965", "T c #965896586185", "R c #9E799E798E38", "E c #9E799E7979E7", "W c #9658965869A6", "Q c #69A665954924", "! c #86177DF75965", "~ c #A699A2898617", "^ c #9E799A6969A6", "/ c #71C66DB65144", "( c #A699A6999658", ") c #618565955965", "_ c #4924492438E3", "` c #96588E386185", "' c #AEBAAAAAA699", "] c #AEBAAAAA9E79", "[ c #A699A6998E38", "{ c #9658924879E7", "} c #8E388A2871C6", "| c #8E388A2879E7", " . c #69A66DB66185", ".. c #69A669A65965", "X. c #AEBAAAAA9658", "o. c #8E388E3879E7", "O. c #71C66DB66185", "+. c #A699A6999E79", "@. c #61855D755144", "#. c #618565956185", "$. c #514451444924", "%. c #79E775D66185", "&. c #8617861771C6", "*. c #A699A28971C6", "=. c #9E799E7971C6", "-. c #71C675D669A6", ";. c #AEBAAAAA79E7", ":. c #71C675D65144", ">. c #79E779E769A6", ",. c #79E77DF771C6", "<. c #AEBAAEBA9E79", "1. c #A699A2898E38", "2. c #B6DAB2CA9E79", "3. c #A699A28979E7", "4. c #6185618538E3", "5. c #AEBAAAAA8E38", "6. c #AEBAAEBA9658", "7. c #AEBAAAAA8617", "8. c #B6DAB2CA8617", "9. c #A699A28969A6", "0. c #BEFBBAEAB6DA", "q. c #BEFBBAEAA699", "w. c #B6DAB2CA9658", "e. c #B6DAB6DA8E38", "r. c #BEFBBEFB9658", "t. c #B6DAB6DA79E7", "y. c #DF7DDF7DCF3C", "u. c #E79DE38DDF7D", "i. c #DF7DDB6CD75C", "p. c #DF7DDF7DDF7D", "a. c #E79DE38DD75C", "s. c #EFBEEFBEE79D", "d. c #D75CD34CAEBA", "f. c #D75CD75CD75C", "g. c #96588E3871C6", "h. c #BEFBBEFB9E79", "j. c #B6DAB2CAA699", "k. c #C71BC30B9E79", "l. c #79E779E75144", "z. c #D75CD34CBEFB", "x. c #C71BC30BA699", "c. c #CF3CCF3CB6DA", "v. c #CF3CCB2B9E79", "b. c #B6DAB6DA9E79", "n. c #5144514438E3", "m. c #E79DE79DDF7D", "M. c #BEFBBAEA9E79", "N. c #BEFBC30B9E79", "B. c #C71BC71BA699", "V. c #CF3CCF3CA699", "C. c #BEFBBAEAAEBA", "Z. c #CF3CCF3CBEFB", "A. c #D75CD75CBEFB", "S. c #E79DE79DD75C", "D. c #CF3CCB2BAEBA", "F. c #CF3CD34CB6DA", "G. c #C71BC71BAEBA", "H. c #C71BC71BB6DA", "J. c #DF7DDF7DC71B", "K. c #C71BC30BB6DA", "L. c #CF3CCF3CC71B", "P. c #D75CD34CCF3C", "I. c #8617861779E7", "U. c #EFBEEBADE79D", "Y. c #D75CD34CC71B", "T. c #EFBEF3CEEFBE", "R. c #D75CD75CAEBA", "E. c #B6DAB2CAAEBA", "W. c #C71BC30BAEBA", "Q. c #DF7DDF7DD75C", "!. c #8E388E388617", "~. c #D75CD75CB6DA", "^. c #D75CDB6CB6DA", "/. c #EFBEEBADDF7D", "(. c #DF7DDB6CB6DA", "). c #BEFBBEFBA699", "_. c #DF7DDF7DBEFB", "`. c #C71BC71BBEFB", "'. c #AEBAAEBA8E38", "]. c #C71BC30B8E38", "[. c #BEFBBEFB8617", "{. c #C71BC71B9658", "}. c #BEFBBEFB8E38", "|. c #DF7DE38DC71B", " . ", " X X X o o o o o O O O + + @ # $ % & * * & & & & = = = = = - - ; : : ; ; ; ; ; ; ; > > > > , . ", " X X X X o o o O O + + < @ 1 2 & * 3 4 4 4 5 5 4 4 6 7 8 9 0 q 9 7 w e e r r r t y r r r r r . ", " X X X X o o o O O u + @ i # % * 3 4 p a s 4 s 8 d 8 f 5 & g * h 7 0 0 j e r r r t r r r r e . ", " X X X X X X k O O O u @ # $ % & 3 s s a s l 8 z 4 x g g g g 2 2 - c = w j r ; , , > t t t ; . ", "d X X X X X v v k b b b @ # % % & 3 a a a n 8 a x m g g g g g c # M N B V e w t C C , , , , , . ", " X Z X v v v v k b O A @ # - % & * 5 5 6 7 S D D $ $ $ $ $ $ # # M B B B B ; F > C C C , : C . ", " X X Z v v v v k b A u @ # # = G = = 5 7 & i 1 1 1 1 i # # M # M M N B : H H ; w > C C C C J . ", " Z Z v v v v K k b A u @ B # % G = G j 4 1 i L 1 # # # # # # M M B B P V B H : r e C C C C J . ", " v v v v v K k b b A u I U N - = = 4 6 # i i L 1 1 1 # # # M # M B B V Y : : : V F ; C T C T . ", " Z v v v R K k b E A u W U B - G = Q & 1 1 i L 1 # # # # # # ! # M P V Y V P B B y e C C T T . ", " Z Z v v R K K K K A W W H B - = = Q 1 1 1 1 1 # # # # $ # % & & - - ! Y Y Y V B U e : T T T . ", " Z Z Z v R R K K ~ b ^ W W B - = e / i # 1 1 # # $ $ $ $ % & S * & = - - - - V B U e ; T T ^ . ", " Z ( ( ) ) ) s s 6 6 j 7 9 0 q _ _ 8 ) s # $ 2 g g x S * * * 3 5 4 3 5 5 * & % 2 Y & e B ` H . ", " ( ( ( ) ' ' ] ] ( [ ~ k O { < } 4 | o s D m g x ...) ....3 5 p a a a a 4 * * x & % Q V B H . ", " Z ( ( ) ' ] ] X.[ [ ~ b { < } } s { o.a $ g x .O.* g - Y - = * ) a ) ..p ... . .x 7 % c # . ", " +.( ( ) ] ] ] ( [ ~ ~ O < } } 1 @.o.o.a 2 x x S * 2 # B U B B - 3 ) .... .l #.#.#. .$.x %.2 . ", " +.( ( ) ] ] +.[ [ K k O + < } L a &.| l g x x x x # B H ^ H B M * ..g $ .#. .m g .$.O.g m . ", " ] ( X...' +.X.[ K b O O u + @ i s m | l g x x * g N H ^ *.=.H B & & M W g #.m @ i p z .-.-.. ", " ] ] X. .] X.( ~ K b + u u + @ i 4 3 | l g x x g & B H =.;.A ^ U f g # I $ #.$ @ @ h a -.-.-.. ", " ] X.X...] ( [ K b O + + u + I @ & 6 | s $ g g & % M B ^ *.*.A :.o.n g # m -.m # 1 :.# 1 >.,.. ", "_ ] X.X. .+.[ ~ b O u u + + + + @ $ 6 2 4 B g % $ - M B W A *.= ~ o.n g 2 m m >.-.g = ^ < &.&.. ", " ] ] X. .( [ K b b b b u u u I @ @ 5 / / ^ W U B B B B @ W :.K K k k s 1 1 i 1 -.5 % A < &.&.. ", "d ] <.] .( 1.K b b b b b u u + I @ Y 5 j *.=.^ W W @ i B 4 k k K K ~ 3 @ < < L .s # u < | | . ", " ] ] ( 3 [ R K E E b b A u + I I @ U = q ^ *.*.*.^ ^ W * ~ K K K 1.1.K 3 + + # 3 & b *.O O b . ", " 2.] [ 4 K K K E E b u + I I I + @ @ B q ; ^ ;.;.;.*.% [ [ [ 1.1.1.1.R S + i = & u *.3.3.~ ~ . ", " <.] [ 4 K E E E E b A u + + u W W U W 4.; , ^ ;.;.# 5.5.6.[ [ [ [ [ [ R 6 V - u ;.7.7.7.8.8.. ", "_ ] 2.6.4 K E E E b b b A u u u u W U W w 9.; H 5.0.q.w.w.w.w.w.w.w.6.~ + 7 M *.8.8.e.e.e.e.r.. ", " ] 2.6.3 R k b E b b b A A A u u W W W F t.y.u.i.p.* } [ 6.w.w.[ K { < } O = r.a.s.d.r.r.r.r.. ", " 2.2.2.x v K k b b b b A A A A A I W W e t.t.v i.f._ 1 i i i < < < g.+ [ h.# d.s.p.j.3.h.h.k.. ", " 2.2.2.x Z R k b b b A A A A ^ A W I W e t.l.z.u.0.8 K + i @ < O ~ 5.x.x.x.x.# c.+.3 1 k.k.v.. ", "_ j.b.2...R K k b A A b A A u u u u u W n.- r.y.m.j.& h.h.M.M.N.x.N.B.B.B.B.B.i v.+ + h.V.V.V.. ", " j.q.2.3 k [ C.Z.=.b A A w.q.u u u u [ v a.A.S.p.+.$ N.D.y.F.B.B.B.y.y.B.G.F.A.H.J.V.V.d.d.d.. ", " b.q.2.* j.m.m.p.K.< b Z.m.u.O I W Z.i.L.( P.m.p.I.K U.s.s.Y.~ B.z.T.m.[ z.T.s.p.H.~ d.d.d.R.. ", " b.b.b.* v # ,.f.f.4 K.i.E.f.8 = W.Q.E._ * q.Q.i.m K [ ] Q.Q.g B.B.m.Q.!.6.[ Q.Q.-.i d.d.d.~.. ", " b.b.b.x k k o f.f.X i.g 0 2 _ k i.m.d l N.z.m.i.6 5.N.z.m.Q.a B.G.T.L.@.[ G.T.Q.) 5.d.R.R.~.. ", " q.q.b.x k k o K.i.f.o 0 i W # E.m.' d { N.A.m.L.a B.B.z.m.Q.a B.c.T.!...D.A.T.Q.) # ~.~.^.^.. ", " q.q.b.g o k o 2.Q.f.) = I + s p.Q.,...{ N.S.m.j.3 B.B.D.s.Q. .G./.i.a ( c.y.s.L.) + ~.^.(.(.. ", " ).q.q.2 k o O K.p.f.!.c I 6 1.m.Q.,.&.{ B./.m.] &.B.B.G.T.Q.o.Z.s.&.} D.c.u.m.E.g F.O (._._.. ", "d W.q.x.2 ] O ] i.] f.E.* 6 6 6 Q.f.-.0 0 B p.f.g 6 @ i @ u.f.I.p.< 0 1 < + i.i.!.a O O _._._.. ", " W.W.x.2 m.C.m.< 3 Q.f.x U @ @ Y.f.`.o K S.T.Q.v 7.v.v.V.s.Q.Q.q.s M.d.d.d.T.p.Z [ (._._._._.. ", " K.W.x.g p.f.# Q K.f.K.j.] = K f.f.f.P.7.p.i.i.m.^.V.V./.p.v s '.R.R.~.~.T.Q.P.P./._._._._.. ", " D.W.B.x.c.m 7 ^ t.].O &.# - B ].w.| | 6 5 B.< o.* s 5.V._.[ s ~ R.R.~.~.~.J.o !.&.{ O _._._.. ", " D.B.B.W.B.E 7.[.].[.].=.*.;.].{.{.8.3.;.v.v.w.7.7.k.V.V.V.5.w.R.~.~.~.(.^.^.x.2.2.F._.J._.J.. ", " D.x.x.B.x.M.h.[.[.].].].}.].].{.{.{.{.{.v.v.V.V.V.V.d.d.d.R.R.~.~.~.(.^.(.(.(.(.(._.J.J.|.|.. ", " D.).h.h.r.h.h.}.].].].[.[.[.{.{.{.{.{.v.v.V.v.V.V.V.d.d.R.R.~.~.~.^.^.(.(._._._.J._._.|.|.|.. ", " G.x.N.h.h.h.h.h.].].].[.[.[.].{.{.{.{.v.v.V.V.V.d.d.d.R.~.~.~.~.(.^.(.(._._._._.J._.J.|.|.|.. ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Mozilla.png����������������������������������������������������0000644�0001750�0001750�00000022176�12214432632�016410� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���gAMA��± üa���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� d_‘���tIMEÐ .%®z¯�� �IDATxœ•»yg×uß÷9÷Þ·ý–þõÞ==f8˜‡††’HŽ�¤C–ì*Ú¢­Tª,EcK1íÈ )QJ¡c[QÊå8TYUTJ±µ›¡$*2ɤDÆ"H‰�Ë š³¢gzzûõoÛ=ùãý~==b^Õ­÷ºûmçÜïùžï9÷µœÿõÂ�LöÂw¹ 5I��j4C¡>>v滽Û7²†9 äʰ€~£bü·òrÿÿë¶ x@z?1þ^GÀwpF`À 8îìC#$B£D¬ªwn¤û®³뛜P§Õ}<¨‚zP¯¨‡P©®ùNÐ}{¿ïgïÔû‰ñû‡ð— AÇV8 N„šƒ@”ȉƒ@õŠÈÝopï}»7Ý¿…ÆêÄJYVoª¶rÄ_âÝ7dì�œúrb¨ì=NàÍœ0™ýÄ ‰ºb@ˆ-Ä&Sÿí ý®·ñ œ@3�QÆÎPUòývN¸wöeßÏâüÝ!°ß oŠ€À€•ê…¬‘­ŒNˆ-Ôƒ±íû³o»÷†ßáÔ»OÐê¥!•ñ’—à½[Å{H}åÿFìŸýý?«Óêìý(¸7 î2ÞIïÄBÝAâÆ$h+âÓ±òm¦~òë'ÿWZy:4ýgÿhç/C‰ênî8¹ ´ _9Â{eàÇ›¢àM‘àÔ—““äÛ � Lui ‚ˆm5û5gH\•ŒèÞcî5j¿'ŸüÌÿÑú¯ý‹¿UŸž»úØ|äOßÌAop¾c#ÕóT•²TJ£VÉ %ÑI(¼ÙkÜe×½x3GìýÖÇ>D¶BAÍ)  õì‘Þþ'î‹AgÇ|éw~éÃîÎ;\÷ÒÄ=ŽÒos=ÜADÝATò² …¬P2s„CÄÝk#˜ÀßQq€½ë$ƒBh'Bh (¡„…TÄ´ÿÍï1d²ÿ½õ±v7Ö~ØXÛ‹kͪ|‡í;e#NR£'Q¤Zø½Ë(÷ÝF�qªå½±ïö‹3ˆÁ ‚3R=Мœk¾;®¿}ýµàÕ§¿øŸyvª–LÞ‘€ºýçŒú]sá+Ô´.௼烻÷Þcÿ”Š€•JXñŠÅJ…Õ»„ÏPwìÛ§ìØø 㬣2†¿e’*¯¦ºçw#Ÿùãß9:èì¼WDJTaœhw{=þÊüêÊËñ…s×W+‹| paR¿òg¿÷É'œzøµ“åüÆ[ßýƒ7»§¡r‚Û9AAZVÇ´ô{(÷9£Ì~%h÷ +ˆQ$CÞbª,`¤’Á¦òô·cüý[:웿øì¯ØûrÊX×6Ö•½öÖ‘ú#ßó«E6::ž/"~jnù o9÷È¥‡ßû7×kÍ™½)“ÍŠV°Å¡Xª0(FõªzÇŒ÷{¼_ì7ÞYÁzEĈ #‚à1b°¢ÕÇŽ¸7Rß ò›ÿòD¯½õ¨ˆÉQzíÍGz;¥;2ÖöŒ1cÝàÀñÓŸýé_þã?¸{¢Õ¼™T6Œ'¡’BÕ^+Íì½"ª*Š–ºÿw;`¬÷‡œŒ3QQϾ!“a•rDõ ”­oâ?û½_ùò˜^ÈEж˜AáÂ516u6Ûµ¤~³>·tñmÿÉ=ÿÌç?½|àÄéþÊñÓÃý÷¹'i èxbüxöïìeŒ�ïñc^TîQ»÷Ö–*ÛY+FŒ€Ø±§«Y¿{ûǽ”?Þžÿé÷ÿ²ß}hxù¡) ïŸ)CS+§Ÿ/á@–›}¹;¼ýÉkÑð+¿óKÿ0wnXŸš½nŒ)¬ òÇO_zû_ýáK÷?|þ..pæ'™1 ŠEÇÙ@¯^u/þË}ö¾àTŒÁŠŠ1ŒêØ+ºWÚ}3ýf°·ùÈüÀ¯üä#Ÿøæ31Àßn"ÿü$³À´@(³ã“K/ qº4ÕøÖ‡.ç¿ìñµÎÎ}QRß9õöǾDq)B Üåãq¼Oj„êØKFEKUA½(ÆW•ÜÍo(†,‚µ"D ˆ° U´R¥›oÇþQǽçþƇ7/¿ò7»%||ùÈ"u`ʨFF$õª_2ÀRB½@Þ­ð`·Ø¿þ¾ÏO/<óåCß÷ç?øÄϼf­› ‡Þq¸™Ì´x Á£Z bª/Õx¯wÇ? vîÑŸª¡GhÐР€sëŒØÈŠœ˜$0& ÄÔ1I &²b7”Òf敯ÎÿWOüøÌõW>x;Gæòß-T¥31‘ª;¾”œ"¹m~+d³Yؼ2UfÓs!,䃕ó½WÞý¹Ô>wëÆÈE‘6Z³ÁL† &+Õä…7iáMVTÇy©Æ{5E©FUMé­êér< T ;ûÈO6P QQ ­àœXlh±±9±±›b“ÀØÀŠGÂÞ¨?ýGËÿõõ³Ó›×Þ]3p2†óIU"‹ŽI,W¨È�cKÔ€y6[*ø,›Îj~1A(G¯~åñçúÊ(n +G³{Ÿ™Þf…·iámV¨Í o‹Bm^¨ÉKoJ¯‚ªT%´ú±rT‹»” ‘ÉMÅ âŒ`ŒˆX©W¥'Ä#÷°{æ ³ÿöçžXìm^  a¡�bAE*ÔJšUAlõHÇÃÍ^Ê!¤rš/á`b²"Þ!÷«ÿú?óØ>êïQŽJ¥d/$ý˜˜KÀ«àU*5€*Võž,à«bÈ�V‹àŒ•@U\Å/F­8@&WV¼Wÿö»çÌh0×lµ®×ÒÝ#U7'2cãA2}U»í£y Û9<Ù‡ÿ8¨ú g[uNÏÔiôn³`¬ø ‹ ltûËæê‹óåʱ[odœ1´tœ•´êzéxóÞ{ï¯ê½î¥ú½4¸‡�¬±x¬18£j Z9`’^Ƣý ´57˜;tôâ¡×Ÿ{ÿNY+±½ów/&Kzí£×3ø|¾8„õÚAÀ?ùñãûzàO~ŸÚs·÷2Œ ZZÄYpÂaÅâö¦VƒWQ¯¢êEUÕ«¬î;Í©/ R‘™õ^œAœ¨q¨QÄ"R±¿ÁˆÒ^?Sß¾þ¡ÐÉtE>©7ºµ8)Ês†Ó‹Öoí^ë÷··¡ „L'àÃ+)<OÂõ•e^{ý6ÝÂóÀ™‡8ÿSÿˆèSŸ$zñ)‚‰dñ ’yĘ7uÀdbªIªBÀLº$U÷Ô{_à8 öÀX«‚#NT\5ÉÆQ1c„ƒõÅ©õoü„Z¿’Å‘%ÂÀ >³óiÚÇX‹övéyaÖt€„‹¨tÚ!ßãSj‡–4=ûvî謼ÿÞIð©ORÿí_VC)šÇI'a f·K8÷{?ÿcÏ,û¤?rªw¯ö…Aå=AÕTB¨õª^KUœÞ ƒ½Z B€`<bUŒU'¨U‰†ë³ó·þâGk&?YÎq,…5XcHÓk-&IPõ/<ËÐ8–òC`'ƒR`)€šEˆ ¯Ë/=ÅGÏf2¸R2úòïSýÕŽ¡œš :(†-b ç@°¸uó³ycJ¼et/L  ªaº×?¯¢~Þ¾ª‘öt€SïEÀè$þ+êŠ3^íò­/~`¶\Ÿ lDŠ1!ÆT«Æ¢(" CÂ0¤~éEòÍÍ›³igáV‰yhY˜±h$w4“ˆÅ‹¾ô,½o>ËR€—ØÅìo\–À8[ ¥‰ñN†½øÞ‚‘IM0Œk”½b@Ô«ŠªU¯û3õ¥Q_ÑÒª/héPïZ—ŽŸºþoÿùtzý‡œ!²Ö""”e©Þ{œs{ÆGQÄÒ­+L¿ø‘azà½[´°Àt eËVJr²%9B Ðrèt­Þµe¨ˆ– ›èÄX…ÈÁZoÿ¿~öïK‘‡R]^IcÕ@¨ªZà´ T½Sõhéöìó¥Û}' (ŒXÔ¸CµáìÃþÕÔçÂ<ϱÖ255¥b SÍ&SSSÔëõ½™¯•9Ég~ím–íD d ƒoZµî½lmYdx ã¼ßòÆæÆ—A¦M2�U×Ç"ðzýÎlðµ?:ì~䶯MwΜ¤Â þûàe’UzµêÇöN8`¯ÔGŒìO=vð‘CÉßöÃÁ�Ñ©©)jµšDQ$Ƭµ:Ä{÷žæþ[ý>+;·-³¬•}õkî«"j,Š4 ƒ|¡Hk*x_”Á@aè+ƒ10¤ ˆuiî4èÎ,$°›"s>ÿ`oq%Üÿ=mö‘ûÈP½¯t€W¯•ò³Þ{;® Lì;á±ì¥™‰´ ׌l47Ó æj‰\ív÷V_vvvt0Hžçc$:Äök¯²öõg8¹úMš¶*òTŒG½Qð¥b†%¤ SÃ#‚-ó`ñf»€í±v8T3�›)¸¬;3=+>GM#ûÔ½çµ÷þDªÊP¤2^ÕSõ;ÆCK…Ò{Y}kqºX¦Ê­,Öáºߪú‚¨ˆQÄvO]î\-š›çþÉÇ?-..Ê©S§äÌ™3t»]®^½J³Ùdyy™¹¹9ò?û,|óÏYc÷•ÅêMV• ¹4ª´ÀýLÕăš 2T!õp;‡N Ø%… ·Ù–85)Ј`·›EÒï$ýILpÜ RTq~¬ô_=Þ^;—ÝiŠáP½¿¡ª« ›ˆŒ9@0*b±^$Øéå¹™KËËË c ½^Á`À[ßúVÖ×ׇR–,|íO™ínã»ã<Wøí]ˆÆºbᡈ¨™.£žTpŸ7pÔ./©§*š zð¡Ë±EÀh¯³Y‘Tå¯WâÑíCËíÕ·.vnO‡Ýz–¦¦Èó¢(‹¬,Ë®W‰Æœs”e‰ó¾¬ºËFL`ŒS{us8˜»™$É¢1†²,ÙÞÞf8²´´DžçAÀæ Ï1{ñ.¼k ^ÝéC´ðHkLUZ…B©•@úâÐŽÙ2ãl­êógÚ¥héU¦Õø ¤ QXqIÅ"¨›P̳ñö2¿ôžvÙ¦§¹ÀY«fl°÷ž²,™ðVš¦x El^¨ œ±Ï^Þîþè»ä±Ç£V«á½g}}¥¥%z½­V‹f³É°Û¡"¶Š”ƸBÌTðª,:¸ÏUH8ߨ^Ò+ |唚µÞú‘Ÿaí3¿ÅìÆ5‚ñúB·„í\E„@ ’ßI‰…‚ {±NÇ n½õâê*+++$IÂp8dwwï=EQç9EQ¦éž#�öz‚ŠX¸²T7LÕvEqúôi¶¶¶˜eaa<Ï9xð Aç9‹+Éþ¤?÷÷¸ÃB�ƒR(,:x¤ £1 :EµßòQÑ}ßß ¸ðœ+³”£ã†OîaXÂtP¥Ã½,JðÅøƒ �XA©€–&jÎív:… .Ðëõ8|ø0§Nb8VPwU%Š"Dä>(Ÿ=ì½À‰;å¬;ÁáF£1õéך+ï|'ŸúÔ§H’„ÙÙYÎ;Çââ"O>ù$ÓÓÓ4 Þö½?@ð¶stŸÿ:ÍÅEؼ [$T±ÝÑ*3ºâÓ‡·²Ù¹%÷Ê ôw¶9¹<Otµªr×sXópÊBÓV¨©ÈÐ2ù ˆu‚Çù¼&Ãíý^F£¡"Â7¸xñ"ËËËœ<yòo‰ ªQ‡Ë² Á{Ožç¤iÊp8ä…^ Žc†Ã!Ʋ,c{{›ùùyò<gww—$I°&Wÿëÿ…cOü§°u›p\\«Và€•ëëÃî‚,03'tÃW_^ÒW/ ùˆßò�3×öfÿVYuÍêúcM˜*«Y…rŒ™;P�…€t¶×ÝšÍ&ÝnW¬µZ¯×©×묭­qñâE:ÄÙ³g÷pb³«X´ò€÷žN§Ãîî.qó–·¼…õõufffØÞÞÆ{Ïìì,½^4MFÔ \Í«ÈXì0j´½…åÃG—†kשýµáâ„×?ÿï©eCîOÄ×}nô*â+ªi¢Ö¨dE2Hå�3ªŠ±N/ [,­®­†!333$I²gC½^GDX]]åÕW_åüùó8p�€8ŽqÃÇb‡+W®à½'I®_¿Î÷~ï÷Òï÷÷P°¸¸ˆˆpéÒ%¬µôz=æææâéÈvJX>÷Gïgûåçé^¼Dmgâ…gÙzþ9¦Ó>÷'`Q3¸qµúòËÃÕ¬RGC•~YeŠúø»/°;@sÂÃ}Oÿáák?qUPIBS‚€S§NqùòeÒ4evv€,ËðÞ355Ežç|ùË_&I}ôQ*ܼy“7n0 ‡‰aív›ÅÅE¶··Y^^&Š"œsÔj5N:…÷ž(ŠhµZÜøô³e(¤É«ÏצíÚ루½¸k«8SiŸò?þ?îïâ>·ë^þzk×öì¥í”U?ð´U0¢J“áDYéXBU8ôõ?>výñ'^¤Hš6½o82==͹sçX__ç…^@D¨×ë¤iJ–edYÆÂÂ�_úÒ—˜™™Á‡Ãã·oßžóÞϫꬪ¶€š1&jµZöÌ™3æ3ŸùŒ¼òÊ+<ÿüó2??OÇ\¸pN§CžçÌÍÍqëÖM3LÓÀ/Ò¹Q—¥Ïýz°0ê°8l3ç3šÅˆ¥}ófüR— Ø•¦ë«¬q ¬cG+Ü´Õ2›1¨ B;…î¶ÿáÿöÔhî`êhqãêK'¶·¶è÷ûloo355űcÇ(Ë’ëׯû¢(Jï}Á@D:ÀN£ÑØFÛFU ‚`O �LMMqúôiÖ××i·ÛEA¿ßgjjŠ4Mi4”eIžçdYFcFäy.^•Ð ìl¨ƒ·?‚oÍ’ž·þÃêèåcok‡.ðÓc#0å‚2-«bÈÓ¦ê([ °¡ï0È¡›UËa[ Ç2\=4­b,Ì�Š¢àÚµk¬®®2;;Ëã?ÎÉ“'÷b>Š"‚ ˲ ÑQ "ÌÍÍ1??O»ÝæÒ¥K8çØÝÝeff†(ŠHÓt¯Ôh4 ¨*£Ñˆ(ŠöØþácÿÞϰ³³#eY-Ê6*¿úb°°»©ëinfLÕ3…Qž[+P³UÁTHeTËwƒÀ¥vAõ‰ŽÙݬٹ…aâL­( šÍ&Y–Ñï÷÷àþúë¯E§OŸfyy™W^y…õõuâ8¦( jµ.Z­³³³¬­­ñÚk¯!"8ç°ÖÒív9{ö,ÖZ†Ã!NáĉXk÷Î;pà�“ÞsN&òSD È>ñ×Yî:Û2$sš¦ŠgÕ õ±šTS¥BqÎÛl´,= `Z3š8jµPZ;çöÐÜëõ(Ë’ÍÍM666˜ŸŸçï|';;;\¸pï=?ü0æ½ï}/ªÊË/¿L§Ó!Ë2Š¢ê3XkÙÜÜ䡇ÂÃÜÜ‹‹‹�ÌÎÎR¯×1ÆPeY¢ª„aHžç@Õ2#ÏÙø…Ÿåú³ÏP* áLÓ®ª �f4]•î¬Úxo}a J…bª®PÃ1΋±®èLÞoÏ8p€£Gî½ÏÔÔÓÓÓ´Z-¨¾7nðôÓOS–%ïxÇ;ø¾ïû¾J}ýë_gccƒ²,)ŠçÜ^»kókkk|ík_ÃÃìì,Æ–––¸té333�œ8q‚ÍÍMêõ:EQƵ´¼õzôê?ûï©=ûeއ°d!®g”[¶bùɪIÍ€1w T)°œ›É´Ø Å�3s™kN™$”©´ï%Žc¬µÄqÌÆÆ7nÜ Žc�™™™¡,KƒÝn—ÕÕUÂ0äüùóZ·¶¶È²l¯Â‹¢ˆ8ŽY\\䨱côû}Ò4Å9·ËAÐl6)Ë’n·KÇ{ñŸeƺߺè^ÿ؇i~ëÎ%YØ.ª¸^ëübœßk®êOí}›Fu?®{GËGZ¬E>I’ÒÆ±‰œ ÛÃ!Y–í©»¥¥%‚ `mmµµ5â8fvvv/œ»Ý.Î9ºÝ./¼ðB¥&±c­¥ÕjqòäIƒ«««ÌÌÌ "¬¬¬0 (Š‚ÝÝÝ=­Õj,..✣ÙlRÁhÀÍž·-Qű­ç° <TboÜ‹\oÂÊx"”™V0\¾ëL¤’9p6|W7qR‹œ$“δª2ý¯¯]aðž¿Å™‡Î–I’˜‹/2 ¨×ë{†«*kkkULbÕÉ'�¸zõê^¤iJ†œ<y’8Ži6›�DQÄ©S§ö EI’�póúi£´,´Ç+C,Ô-Y,¸ÒÓ(Æëú±àæyÁï8ü¤ã¯9¥ˆk¥õ\ê!íARÀ}/ÿùônÍŽŒOgÆP×ïâQ1EÀ™Ïþ¾öƒ?ngÎÿ5={ö,«««\½z•²,©Õj<øàƒôz=VVVpÎ9Ž9Bš¦Ü¾}{ȬµXk ‚€íím~øaD„Á`Àüü<Aì>IAÐ߸­ÃÏü¦ «I½VTëÎÀ°,Ù‚ ’B£„ žr>&l‚é)Ũ"�ƒ€Qìp`)PB/‡áo^Ž£n½Ó^çØü*ËŸûÍ»úÎ |ÿçþOž9ô ׸ï¾û˜™™áÅ_¤×ëQ¯×é÷ûÌÍÍaüñã—/_žët:óEQÌŠH+Š¢ZEQ6I³²²"�.\n·K»Ý®ÒÛÖm^ækl_» õÍ©íößHxñŽFÐöp%­b}ÙAØ04§”é9%Š™‡ÈlŒ­Gh» ›|ðL t=læUÆ=lœ{Ôëÿû¹è?üÕ=ǵ)l–òåþïzߟÿ±¬¬_å«K÷ûÍÍÍ2 ÃìðáÃZ­Öéõz;£Ñh+Žãm·µµEQs‡ážª3ÆÐh4XXXØCCY–¼åÉO÷ÄCŒ ¬|ä¯s`y…›®Î`ý»¿õ'Úû¿[fÇ=½[Y÷GU?@¡ß‚é“‚#'h-Fl¥â"M¡Àc¬Çf9v”9Ã6ÔBX´ã•yþ©dñßýrÕt¤ª$·çr_¿ÃöâaQ`åõKLMM±¹¹Éêê*­V‹C‡±ººJÇäyŽÛØØ I’½rXDˆ¢ˆùùy©ÕjlmmqöìY’QŸåÏý‰²ßøÆ{ê·o £j­?¼²*ÊN ë}x9ƒ3¦ÒùeÓQÉúÀPH•j5‰7®ŸGr:§ØtdÑÌル%Yê:îت)ü›é’ùyxì}ÜþìïòʃoçÁöj™L– }yž“$ µZv»Íüü<Þ{Â0d4a& Æq¬³³³zäÈ™™Ñ­­-m·ÛÚï÷5Žc]Š#wè¼ñZ»u]ý¸ÏÙW4ôÈW>§ËºëÑ3´:�½­è•ýVMDµwË«ÆQµ J-P¤P™M4<›hðöººQœja¼Ž2Ôè`ˆš Í<Z–ªsÿ%½íº6Ètðð»tfsMµÖPï½ÊßýˆÊ‡žP@Ó4Õ²,5I½~ýºöû}m·Ûôz=Üh4BUiµZ,--aŒa{{çSSS{íã~¿ÏôÂC x¦~þÃh”ÀÒ"úÚU¬äƒÛµinwÛ 0m!¯ðˆ3„"R\èï! !tà šŠë9eWÑâÅÓë¹#Ï vójý@]ÕJO{?E˜pùý88ÂÏ.`ÿËÁÒAfggÉËmŠo>Cš:¼÷c8pà�[[[{$^–%îPcŒöz=nܸµVkµšFQ¤Î9 ÃP­µt:¦[ó~ë¾Íò¨KÿÆ5ôäiø±€þâÏSnm=pŽ¿Oÿ;HN=‚#‹02f032·$¸™‚â‘–"ÞLé¯AÒ/=ò¬dF-ªV¹×Š %ôoÞäµOü"ÒÞdçc¿€NÍâßõÌæ-n]¿¥_^<ή›ÓhuU·¶¶Ô{¯q«µ–4Mi·ÛêœS755ÅÓO?­"RÆq\:çJç\A!"FDh4¢ª”µ¦¶?ú‹æhºKøOÿ1ëïzœ•¥ƒÈòa²Í ŠŸü9.ÿþ§‰‹\ÔàE4ž²X`þÖæ·¤ˆ#RuøÂ5Op@qS õ€2Èâèî¦âÄËlâ=H´úB¤ÜÌ`ÇCýÒ 83½•—OŸÃøÍÛä/<îÌêÎÎQéÁƒ kmqùòåòöíÛeY–¥µ¶ŒãX½÷êžzê) ðŒ¢¨tÎåι\D2cLÖh4äðáþ^¯Kš¦Äµ:ÚÄŸ}7Á£@¾ú§ìf}7_§Ùl±vñ"Ý ß´‹rß<eÜÍ=ä}ƒ-nÑéYc–0ÒÏHSK ¶WâC¤Þ‚(t¹Â­]ÖÒ;T†ãLhШ„× ˜³°l º?ù?°þÞbwwñÀ7Â)V§áwvt2ËY–•qgÇϲ,Ë‹¢È‡Ãai­-ûý¾ºV«UE‘{ïGEQ £(ê7›ÍhÜDÈ:އR«Õh&Ü0‰ŠR¿óaºŸy?Ïå‚vût–áw;ñW.1Ó ­·ÈpÕ:y`DÔÙÐ&¡a„P‰«¯W3RJ¿Qz[3ˆ¯šÔ¼ Éóf0BjbÍE��ïIDAT%¹·AOO3»»AÍ@3Y=ÿb ÙlbŒáêÕ«ììì0 tœÚugg§‘l~~¾·³³Ó/ËrXŨ(ŠüÖ­[…ë÷û™÷~Ôh4úKKK………Úh4âÚµki­V ¦§§m³Ù¬ê¥(3V·Úœ¹öQkŠ«¯Ò¦ràôÒlñÚKÑrÝg¡m;ÐRÄ:ùÈLi#(ÕHnºe¦™&ê55a yß—¡ÏŒ¯¢V¼héï5)º·0­iÛ3ª>>XÿÑŸáÑñtOžåÙÿö û}vww÷Téââ"ÖZ®\¹¢ƒÁ€^¯§Y–•+++¹µ¶ßh4ÚEQtD¤ßï÷‡KKK™sÎ¥‹‹‹½z½¾³½½w»]êõú`jj* ‚ pΑq&q£^Ÿµ=ÁõA)eáëZíÄ4ùTÍîtOåug,ê%FLKCã´ *éù¹&R2ÒÀ8 ­`M‘•ÆûÏ5Œæ¤L¥È¥(JG9,ÓÈÏÖöüôf°x€ç~ëéJ‰ŽK÷²,ét:lnnbŒ!IŽ;¦W¯^e}}]Ó4õ"’gY6LÓ´“eÙÆ`0ØÙÚÚêµZ­‘;sæÌàÊ•+»›››Ñx1aA]UcqÆ™8`0H4µHã‡âƒ¼ž‡C--7š-¹¹¬P8gVT%H‚K¹¯¹L#wÍêÀ{µ¦FˆÑ$ÌÕºRu”…–V–}:HPò45Ã@l¹Fãö&Ý&<÷º ‹…ûŽûrÔ¦1Õâö­›äyNõ9wµÚ³µµEš¦Œõ gÎœÑ Š~¿?êõzýÁ`°36½÷»ƒÁ`àŽ92¸råJ;Iœs©ˆìZkkm�Xï½™žžf~~žz½.Éßÿ«Ñ4_ª×’£è0^J°A¸½åKæ‰ó6yAÿÚÐÏ×½F6YÔ¬ð&VkOB‹q)^òÜFÓa7÷Îy¦~7ŒÌ¹Vq4¾Ä°X™6K‡¾aÊ~o§Ó!Š"fffX__ß[ ™ÈùápÈææ¦ª*Þ{†‡¥÷>¯ÕjCkm/Š¢Ý¢(v­µ÷Õ¯~u˜e™$I’‡aØ·Ö&eYªêæææÌ$ C¶··yࣚòôйóq­·J¡Ž\µ8°ó¾Ÿ õ•O{oÑÐ ÊÙZ·lÌZ;Ú,µ( 㘑ÆnÍ»ÀBtˆ^ÖÑÔª§©‰ó7}P>™ÄÙãõ²¿5àk14_ú‰ÿùKñá£W³¬½×úž4eD„íímƒý~Ÿ~¿OQÚét‡?~\777}§Ó)¢(ÊÛíöp0 Â0zÕþÿ£b†2����IEND®B`‚��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Ear.png��������������������������������������������������������0000644�0001750�0001750�00000021567�12214432632�015513� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���bKGD�ñ�¼�§áó­��� pHYs�� �� ’ù¥���tIMEÒÿ{¬�� �IDATxœ…»IeÉ•ç÷;ÇÌîðw÷™‘™d‡R]ÝZ•$@ i¥} }íô!ºÑ+ ‚6‚zÓÐ]%RCÉ$™$“™‘1øøÆ{¯ G »îÉâFð�ÂÇgfÇÎùOW>ýàž|ó®Ë¥,ÌléT—Á»îâdÝ|üâ¹7ÄIÞ\]su·“&xÖ‹ž¿xõ/.Î9Æ(ã¹Ýí¹Ùm¹ºÝp·?ÐxÏSŠ€`f´!°^ôüàÕ¼¹¹åv»#åÌÝî@Ûþ«Ÿþ3Ï¿üšÝq  «Í†1FÌ åÌŸ¾Ì©RÌ8Y.øäÅ3öãh?ÎËOmƼ9óþpœ.N׃™íovû½•r@d'òÏ]»X-úÕÉb¹~zq¶*9/rNíÝaðxûÞMÓ$M²l[DðªÈ4%öÓÀ0FŒÿÿ—ˆ f ªxçP ëv‡#SʬúŽ\ 9T…qŠ ‚wJpަiH)“r"xˆX.…6؈ˆ•R,Ëf–€8xçvÞ»mNy§ªùá'ýÍ8«×ï¯Oû&œS<Í%¯b.™Qq÷ª¢’KÆ;G<ªJŒIöÃH.åŸ,Þ;%å‚�ªBðDp*œ,¬Î9:ßÐu M´Á3N™ËÛ;Æ)¥sBr1ž_œÑ…–\ÛÃÀß¾r.äR,—‚ÜWŠ™YQ‘ܵM,fCÂ.—rSº‹)ß™ÙÎü«Ÿÿê×kNo÷‡ ƒGÀ f="­.å¢*&‚I)Æ”2¹DbJ’JAEyñÅŒR aÑ·ôMÃÙzÉùzÍÇ/žñÙGpqvB×Td.b£ƒ\2)¦)r·Ýñúý5_¿¿äv»ã÷oÞpy{Ëë5pªäR€o÷¿ñïœ-»ÎrÉå8Å|œâXJ9Ç©üý[ðÿïo¿Xl‡Æ)uñfv&"K§ÚzU/‚HÊ&1%\‚l&6—t1{(o§J×4¼|vÁ«gOyõâ)?{“óSÎNÖœ®Oèºç*uÞ+N…0—x½"F.Æq†»MÝŒ_¿~Ãßþüü§_þ†ã8ýéí2¨=bJÉãhó"ïË„ù{SB|´^eŸsî÷ð(ÅV"r¢Âªœè ¬K¥'¢Î9 Á‰SA ã(¥îþÃΟ,zÎÏNùÞ‡ÏùËWõ¤Ÿ^œsqvÊÉjÅjµ¤ë—ïp Nj¥­×Cµþ_çr2Ì äÂ8E>úð9Ÿ}øŒüÿÝõ5ÿþg¿àû»Ÿßo„™ÙýaØüQ"Â`F£"Uå¸Zô‡Ýq˜üÍf:ÚeßuSÊ}Ìi9Mqe”uAúÖ¹Ð4Aƒ÷2N“Œ1SàN”&xÚ¶ádÑó¯¾ÃþãïóäÑ«~ÁùÙ ''§¬VkBÓ|À‰¤àÅa®Ã9GJ™¶sä!㜣ˆ[£]t,V ëóG¼øÎ»»=ñÉGüð“—ü›ÿý?p³ÝÙc­€˜¬ñΜjYô]|~þ(¼¾¼âvw˜J)»\èn6ÛÖ9 þ¿þëæÿñw_úÝ8† Ú–ÉÚ¶•ŽR:§ÚµmÖË…Ûí’r0V}‡÷^jÙ:}ËÉbÉ¿ûŠþýOyñø‚ÓÕŠn±`½:auzBÓö8u" rI€YF¤^çꌄ‚xBQœMm ó¨,8;Ç-V,W+ž<:çãOøþõÿlo.¯8]ž¼³ußÙÍnŸ7û£ûü˯-æZÖ 3O.Þ·M«NÅ5NýdÙ÷MðÓ4yõ!8uaÕ÷aG7Æ(*"}ßÓOñN¹8[óÁÅ/Ÿ=åÇß}ŇϞrº^³>9eyrJ¿\¢.`ûrxO!2åL)Æ 9DñŠ„ˆú€ ‚¡ñŽ&4!á´8ºÕ’ Ò\Ûâúÿ2þ{°ÿñßþ¯\ÞÝñúòÎr)ffzçoµÞ8QQ?ÄI‚wºL¼ªÆŠ¸àƒ Á;07ÆìDDÖËNV}‡wŽb&}Óp±^óòÙ~ôé+>~ñœ§Ož²:9¡?9ÅùÝíIñ–ãxà0&RLäb@ÅE ä!bÇ‘”b*ª„¦ÁGPÏÙº£Õ¢ÙᤡuäÚZ=eÍ_ÿà3û«ï}Äÿôþ#)gS€RÌà�' Î9qNuŠIüÕ턦ÁéQrÎ`&mÓH×ñÎË”³ˆ™,úVN— Yô=90“õ¢ãÕóÇ|ïÃç¼zñ”çOŸóèéSÚ~F¡l6ì{ŽiäpI1áTqBΙã4QR¢þí?CMû8ïØìZÖ‹žÓ²âÑ©§¤L,-XŸžò¯þ›¿á‹×oøÙç_0ÆDpNr)ó¬­óŸ­ÀJœû*²ˆ1®s)'*²òÎ/›à;U¦ir¢ªË®•eßKP•”’çä£OåGŸ|"ß{ùBž^<–ÇOŸH¯pØI²=nds8È4F)9‰:•L‘TŠLq’hIDEDUœ÷â¼3Äû“7]Lâå8Œ’sçDÚÅJEŠ b‘˜¸X·âTåz³ç0Œì‡Ñ Šˆ$§:-Úö ¾Û–RvÞù£ÿñw?âoÞáTQU¡k+R‹ÓDpŽV•e×ñhµ"¥Ìq˜h Ÿ~ð”ï¾|Ê‹‹ ž?¾ Å(ã%G®·ûqš¡ˆƒ"TñêX„ç="†!Xɤ)QRÀŠ‘R¢¤LL‰<OÛ’ ·Ûêmœ<ZÑD¥4 ¥ïðyâ_þð{ü/ûw¢mQJ)3ºÌ8Uœh‘Vð'«Æ[ú¶*>ïB åLqJ1GמžŸQбŽdË<9;áÃ'Ox´^óøÑ)}ȤœÉ9r³Øí'̃š¢|ð! ª¨:ÄÕz¼#ˆ-q$-ß~`¥ %Ûý7WЉp²„ ÜxLO­ùô;Ïùùç¿ã0N¨ ‚à½cŒ‰b†wŠˆðWßýO)"ˆ§¼1™Ì$8'«åB‚z¹Þo$åÂùéŠïô¡<>;åâì‚Õ"3”Ùû!A ^hº€÷L ¥H<DÒ”1…3&Wê×±ºhÌ(µ]œCDÉ©6› 8§4 E1²*Á~úýOø·ÿîoÄ©¯*Ù²&Á;Y/z‰)ËO¾û±øœÁ9˜ÙY…KÊ4F(ÆbÑàUØ÷Ð÷Ù£s>ýÎ3ž?¾àé£+VÚ0rwÈP¯“WÚ¾Á9OΕܔ”É1AŒd©4À!˜ æ+Qê&ÌTº2Á[Göû#MÓÍ­­B¿—Ïžð“O_ò÷¿ú}ãiB`½XеA¸ÚlÙìïøO¿ø¯ÞÑ÷u^kßQ'Ȥ¬«EÏ¢k1uÄ\8Yz¾÷ò>~þœ'g'ä"X6rN†‰”¢Bh"Ž˜qœˆÓ„«'<÷Cú~lfs˜`Îa¹ž¶Üc[+¨p?†I©°Ý8Y/©[ãÕq~ºæ¿üé¹Ý)f•fÇÄë«kRΜ-—üàå¼zö_r©ü;çz:¥î»÷E¨ÔwJ‰)GT…—ÏóÙËïðôü„<¥Tfsa,Vçvp¨s JN‰˜"6Eñ8¯Á ¢B.…”`*†åLu ZñÄR(–ƒ\ÀQðÎcV‡ÃþÈbÑcbxï9Yt<:9áÍÍ SÊtÞÓ5ï<~̇ϹÛx{}ï¿~¦XÅ\ˆMã03Vm˜f¤’QU–}ÇËgOyòè ï‚«l°$¦”£ž¾¥dRŽäTpb´>Ðô'Ð7 mÛ¢¢˜SJ‡aJLc$'@ É”„CÈÅQJF0rÕ‚ ¨*Ó8°J!• «EË?ûìSn7;~÷Í[b*¤räç¿ù‚íáXoŒþéÙ)o®nÈ¥vG'B6@+F«ÐÚÀªë8].ÞÍwÒPuÄXY˜ yJd)…V]ð¸¾ålѼ§ TP+ЕL׆aäF†:*I'"™¶$©ïÉÌ(EñÞ!J*ä8‘rÁŠÑ7-ÏÏÎxúèŒ_þþ Sd?ŒL•ÄUÑRüɲçÝÍ-†Ñ3ÈÔÝ]ö Î)}ß±^.xrvÂÅÙ}×¢:Ï(ÑJaÕáL(ÅH¹PJ¡×€t'«­÷œ,[²æ:QÔ9¬b…Æ7„¦¥=Œ$¦9nÁdbÊÂqLˆVzÌܨ+Ò:¢a6Bl˜âÄöxä×_½æÝÍ*27Tþ¬ï~Š™¾kI)á¤îÊÒ׆¼²\ô´mÇ‹'œŸ¬8?]Ó5 fKÕÃi=ÍT"©J¦Öq"‡Î¢… Š–Z.f"µ’‚¾ t]‹¥Ìf܃,I‡)SĘ̪EÎâ‹§m<˜ŠaEHÖœ )Ó)v¿ôºxQ­là½Ã/ûŽœqš(¥VA+U=_Ò5 ÏÏ8]­8Y.Y/{| Tn¯BBëç,1ÅH6Ã4s¢KíšÞ)ê•iL”T(©0ŒUe”B×ÂT”Öõ‹.ã¤e­#É;¬r\àl Ï(YœCŸÕ|5Ä{JŠd+lGT·b B<!x†)2N¼Ã9Oœ Ù £*ý|Êê„“Õ’¶ ¬Kº¦EUh| i C5¬"9´2¹®éXž-Xu "LSæxÙd2P¬ÎøG¥gT!OwìV'œ7ž¦«eš „’Ñ^°cƒ'!@æ ÌWÁ«’TD¡`)1Œ27ZïN…®m13ÎONÞáK)¨ëEOÛxÌŒuß“KAU9]­X-{ºÐÒuM휪¨÷3ZTðæ˜ˆ8Uu,ûõÅcbضÃ7H"=)%†v‹JÊÂðÍ7d×О®9wÑç{–eàØ)q0FÒ‚wTQ)ج#: ä‘ß¾yK6£ E×ðêéS¶ÇÛã‘aJ\Þ޼ǯúž68bŒˆÈƒ¾ï“ÕŠÇçg4¡A½Î¸€AŒ‘RŒ6Ôyï=4Mà'Žb,U‘\8ÆÄñ8°¶ÃTEÎÍ„¶-®hÄã³2àˆSaÚ¸ÒȣΓ›À¢I<N”(…Ñ&Vn‰ =¢‡@.8W¡òt€Ýnä¯ð]þøî’íáÈïß¼å8Ä”iBàl½¬ ²ªÐ„J![ÅÖ÷4mËó'ç,»ÁQ…Ke*†K u¾²V3L¡Õ†>L•#ÅXÊ0²'Ç#ûCÄzOŠá d8Y·4!à4Sl 6‡—åtÍÒ œ H“h]@u-UêI³\–sæêî–¿ÿü7üê¯ÙìÚ™”b¼½¾eѵxïë8›¢RR®²ïh»Ž64¨s•"w-!J)”\(Îãê<AÈ8<Y ¨ƒ¶ŽÆéxä0Mlljýa`Ȇ:Øí ãD¶B×u˜w<iÎPçéÛŽqˆÜî'‹Î5âSGinŠ5Ä47 E(óXËùÙì9Œ#1fÌê4ëš–)&V}ÏÙjÉqšj\ö=‡áˆŠpÒwøà‰¹Þ¯¶mh‚'„†¾ièÚ€Gꕜ3*‚÷‚6É#®_¢‡-eJKbŸ CLdŒœ#›ãÀö0p8ŽÄéšãq"ãéÙÁœò%Ì„ÒTWŒåºöYM´TÁqØdˆ)gv‡§‹%Ï/q²\2N#ÇqBeDUùíë7°ZtøÇ''Ü ôMíŽnö–ÎNOX­–ƒBý(¡™b1DA]…©I!gJÛq8Ü2L™b¤’”ÆÆã†oÞ_s»Û1L cÕ÷ŒqBJáôô”,Žã¸#O#Þ¯hT¡Qš¶a:L,º^ AפiS™ Õ+0Œ‰>‚s|ýî=m0ÁÉb÷Ž'g§ìŽGürÑS(ŽGÊÜùC¬W+Ú¶AQ˜]�uu¬¡N:/XªPX­¢±HáÅFZ×Ñ/Ì C¹Ý·,¤çòfË7×þðæ=ªÊÉz…zOC\¥Ónf—C«§Õuà=MãPñLÇR*ÛF¾|{ÉÏ~ý;¾¾¼b³?з «EÏé“%ªÆ¯¾|ÍÝîÀ7—×L)á»&0Œþ[q¡m«ddFŒ™å"ÐxOðuŽÙìÞçã!²hŠe|(£#BFÁZ‹g§ Nú†Åé#~ôæ’ß~ý~ñÕ{~e¯ÙG¦q`¸¾Û° Ú¼x|ÛÐôr☠¥pÒwté}OŒ-"wD ¦‰ËÛ;¾øæ¯¯®HÅX´-ê=Ã4ñÍÕ w»iÖ×îTï´Âئ­~ݲïQQš6Ð6Íl9 >„*/Ýsv„”+º:LA=yL˜5¨Ž¬—˜Z–}ÃjÑÑ,:¤dÖÏ/ø¬ót«CyssË{<%f¶‡‘‘L—•…z)°9৬]¢¸]3 n…ÄM9följ˻Ww;¦9O0Ž ÓÄ#%kåÍ^œâƒ£§Å{O×6 J~.{™ }3©¶Ô-f0_›BFJ£øÆ‘´c±P:çhTÑ1‘CµìB|øø‚ñ—ßço.ùòÝ{Æ’9†!¢Ú’\$¤L^œÏ4 *ŠÚH %¥ ŸwLb” Ç)q·ÛóËßÿ‘÷×w”ª«1ÅÈ”ò?áúRßú®Ã‡ZêHuXcÎlj”R;gÔWÌ:v̪^W%*ó$ç1ç‚:ÔW¬¥võ V2êžžžñ£^¢¢Bß8†ýÀfw‡›Œ¯ˆÏ$S44ô#8G¶€Å‘iJS¶ÓÄåfË»›-ûqbÊÕ|9N±ÀhB¨ùg/ïBÃXË[…àÞ, e^¬Çfx\OÞ«Î�¨Jb¦†bH2ŠS$e¤ñUÅIߢ´RŒTjå8…^~ȳ³5f…¦ 8ñXLœ>ZÖ©Ô®ñjXLàF¤9Å ¦)Ò4Ž<MŽ#_¾»â¿ÿ’ß}õ ‡ãH3c–)V‚ö§§ßxOLi†õê”à=ÎÕÈ bŠxÅ×Ý@D©Ê\mVæÅÛì`#ß f™,ÍÉ--îÁšI9c³ â°^-¹¼ÝRŠ2Å“³3ÎZeuvBxüܼ£sómåqdJGr, Qxóþšÿû7àï?ÿ‚›Ýž˜SÎ䜱¹¹·¡a? �ÿTI%#êèÚ–˜CN4¾vûB+8P¡žº8­Pk3œEltVo¥p5¸DΠžœªú*ÆdìŽ[œ }ë‰ÓÈúäŒW§8=Dóâ{XÊ`Š‹ÇȔ͎NÉÃaâ÷o/ù‡/¾äòöŽ\ ]Ûеݜ<1†ibw8Öê-ßÖB>–LÌ©Îp Å„b´MSó7A@Õ=”ÑC¦T£ÊÖÌð%Ïê®à¬ ÎÏÁ(Å(PdVxëÍž÷·r*œ/×|ðøŸ}ö’GíŠþÅ`ùê KMäf£ÄT2I21e6Ç=¿ùê5—·w†qªå~'¦T%ÿ®myv~Æj±à«·ïbe­«¾Ãç”˜Æ ï„RêYï<ÎDªó4àÛ„—IõìO¶Å¤ÆZ!¸‚é,—y7‹¬D¹Ýüö˯ùåoÿ€zÇ÷?þˆ¿üôc­×ØzMŽ™tùªC»Àkƒ—†is‹ø_™Ì×o¯øúí;îv{ŽS"ÎrÜýKD§‰ãX«À9åQ·âf»åònƒWUf/2ω76y�E3þ¡XÍõ<üY£S¬6M+@fåÆûúûD=äL.™›»k~ùåWì6G~ôÃùÁ«Y?ÆV ÈryÍÎe–8ïQ· ;^“ãç;²¾ººæÿüå¯ùõë·ìlje×b"ŽO²Ùx|vÊq™bÂ;e{8p·ÝÑ„@Œ ¿è!¬É1Uߪð˜RF½"ó‰‹Ü½Z¾Zw­–ûœðReÖ=æRÝxp‚A½!⹺¼á›÷7œŸöüõ«yôW¬Ÿ]€(vÜ`›=·&`ÂÐu°^Ò]_í€Å›í-ÿÇÿõüíÿó9·›=«9x•ÍØí8u|ðä1×Û ·Û=tMCÛ4|öêCÃÈëËk|2Pß4¤’)SœÍÃêÆŠ«ø}«3¾5Û‹•*K?ô!45Cˆ€¨ÃyE$€Ö8ÝínÇ×ß\2æÈ^~ÊêìOÎÈñ@º»«Q9+Äñ}ê芡yG¶‰d»áÈ?|þÿþçÿȻۖmCÛ´l‡‘ÃaG.…?¼} ÌáJ­NRÅÓß|ý 1&VË%~JÍÜÈœ€k[¼¯rõ}ÔÊ«>,ÖûP7gõÊÏãP¥”šýAq® 0rФÝÄ»«†ùÎãgôÝñ Ç»[ÒaC–qšÈ.Óö=]ßaMßßBí–èy}Å?üî+ÞÞÞÑû†År�7»]qVW^ëAf+a˜¦‡£Ê¥ðßþô'ø.4(U˧؜ÙsHãjm‹Š N¹WØÍêÑß_Z‹†÷çªî¯^‘ S6ÆhÄbœžœ¡MK BÚ(ñˆj`´LÓwtmEïh- ØRÉ*lïüáÍ{þøþŠà\LÛÀÌÉÑ®iæ­Ý'I+[U÷Ü|þø‚Íî€oC@Ìð®¶Áû¬©8Šò'½Þ¬ÌÚàlRP°RùB)µ8_ß}8jU€£º~IœCyŒ¨|ß×s·hh‹‡ P?NX+Œƒc7lùúÝ_|ý 1Fž?>'ÅBL‰¾ tm`Ñ65[ S c9ïȱÆp†iâ8~ö«_“rÁ{­]^y�zžV‡no÷ Äoík+VGܬ':§V»'¸K¡ˆ ^dÕ ñŠs M.�FhZôpM‹ ™â„T”ý¸çÝû>ÿò+vcäâô”qL Zg½å¢ë)¹<8Sãã½ç."BÊ™ëͦz MÀWR3§¶æïÇœIõùAÈä:æ/ˆS,%ìÁ¬¬s²�Ùj^ d‡d‡'VË}þ‚Ðúš !œ'´ ^YáÑŠX2Ž‘Rc¸¾¹ã÷oÞquw‡WOëJ1ò¬¹àY6JË2NB×6ç˜R®(²Ô1þälÅñÓ¿ÂÛ\àògDI¤ÎñjD–ùÍÛÜò ²=ˆ‘÷Ûgó/oœ«i)Bh)‚S-ˆ•:RUñÎã½£mMðäàiPTv<2y#«Ä}ysÇ›Ë+ ŠSÀÝ¿¿Š2ƒSÜœ*Þ‘f0tFöã„H…¾Çq"—‚W‡Y©d¨æ­ yÈ‘ýùf0ßÛB$±ÙI¦ 4Np¾&:Ñ‚•DN i”’À9cÕyB,d|Q}ƒo:tšÈ ds$i‰qbJGnn7\m6d«Úb‘B£Žì<ËNˆIÙBë'´ï8Nû™tíÆ‰RJu¾µæú¶å0޼¹¾ÅËVŠ™ˆ˜`&ΙˆÌpÝꊭž³hõåÌ Åj¸¡nÕ-…’%+Î¥éÉ¥ÁI„d˜w´€x‡â!Ê%4hˆw”Éq —ÄænË»«kãH¼7œ!–‹9%ŽÓ„lvætÅG¦›TŸ’(f^Ŧ‚-»Þmc—w£µMc/Ÿ\XðÎü0%‚wÕüP}Pæ¢x(q³ûh³:Tæ *Äs’+¥Œ“‚uRÚ²@Ì0S¬DÊXPQŠPfáÑI)ÞŽ4ií!y»g»¯ÆŠã>½Vh–Õ½VURЇ ï”ýqàjSáÚ#CŒ4Á³ì<¿xÄ0 ¨ «¾åñÙiV9g‚SD¬r³økvo…ÙÔ‡¨Ž«£ÌâÉ+ÏnC˜CR,kk ¬1$]âÜÞam‡¦L´H9™v·lö[n÷{ ‚ Z ¢yd•.x¦IkÇ*f¹s{¦”™¦ˆR}É.´œ­\åD_½»äâä„\2¾äŒª,%j3ª›¯…Í×@j[™OÕ *¬”«Þƒ�Ñ cVÚÎŒ¼ Újf² 8¶%=º -zذ9l(7;v›;Þ]ß°Ûí+&©£&'¼w,»n> ’ðN­ï:Vý‚6´öøÑ™mGËÅlŒ“ýú¯íÉé §k{syÍ›«.NWø¦ &ªˆH=d«N¤Ö¶Î‰½Ù|¨U/38ª¥_ÌÈrJôªxgh“êX£ÊmÒy,tHÛà“Ç-¤9¹ÝsL[ʰãp¼ãúnËífO6j‚\ –ômÃr± äLN™èk| [ყƒùgÛýÎ^_ÝØqЦ†É¹³§Î8»Ým™b4ïÄ™­ˆA²™ªôeTÔÌPÑû¨E ÷¦œÊ·S$[™ÚÈà!tøÆáR®A†’0çÑv‰õx‡·BŒ[òÝQ‘í0°;Q‚¯c.•„3h=«¾£o¦”fkNÉ¥XŒ‰”2ÏZLÑ^üÕóü‡_å¯./³x—ƒyÑue½XX´RŽÇÁ¼wRTÉÉ¡É( $±æ<3Õ€G,gÁ@Ì îu„¹-” •7‡#mçYºŒívR3v8¢ÎCÈDÜ�ÓîŽ|µeÚÜ’6;v–Ønö¤bð®¢ÌX×À¢méºöá‘;§³]6 –ËÞ¼S;;Yç¿øøeüw÷³x»;¤O^<IЦ/¾ú&9ÕBS¼W— I*D°‘QÌ„ê%‹dQ³R”eNˆˆ"˜äY<1´T\câòr‹÷ÊÙbcB½áiÐë-ys$¥‰ÓqÄ€ñÙ§Ì»Ën÷Ljœ§“aQº¶¡qù9�œ÷trÏîÌÚVX¤žE×ZÎÅÌJ9Y¯âßüô'ÃÛë»áƒÇçãë÷×ãóÇçÝ\ò½��øIDATñ«·ïÓcòÙ,:et(ÆQ`/*™ J4qL *–óÃrª"¥Ta$ÏÙ<™¨ã4òîý†aY/ZV‹>Gg”M®yÀ’!W•ön¹¹Û±9˜³ü6«Ô xZïqÎͤMf®R+Á,[©¼B=±w7wåv»‹«¶š'n·^,ö›Ãñøêéãa{<ŒÇËëèŽfÒ˜ØNDzU ˜ ʤ"­·’UEDœ³T¹@•X™#K8¢J)¡ ªì‡aŠl-«nbÕ×øzÊ…ÃTT cœ8Œ‘išpâ@í!Šãjƒ®”\÷±Ù25À½to¹¼(÷vÚ/Ì{_®7»TFÂ>§|Û¿9]­vÿÙw?9ìè 9æ(ÄáÍ¢ˆìŠY‹™3P3ÃDEˆ³´,ŠXæÁ,‘û*n,bIL›ÈþpäÒ‡¹b)²ÕD¢•ÚIœ 5Ê&õ¶é¬&;§3»”‡Å?×*¼šÎ ©m]f¬/miœËÑl¤”ãʹߤ”oRIw‹E¿ûäÃoØNª¶§¥DI"r´bA(9;æ (3ô­Òpí€6C5p]œÔÙé*PJbÄ\˜ÊˆŠ›50­ ”fZJYNji;äañ:§Åk(K¿•æêóE–Sª)uçï3 &ª%ŸSÎqwå°óÁßîÎO×[‡î¼‰Ê|‡)Έ¥pÀ¬o˜+Å*€Ë¹’f³{ó±NϹ0eþT MâÙ2ÞÏ¬Í &õÉ”Œ!¢¨zÄÕ¡KIXɈÙüôŠ>HòJWdz©‰Q1ß*aæü¡if À¬kÛ $DÆ›ÍöÐ7awº\lO—«Ý4Ńw¡Ò4ÎŽ™ÙJE¤!á0\ʹ>ØbH¾‡ÆóØ·Wñ¡1©ÊC¤/Z=@N]µÆæÐ@‰yR,uæûß1:÷¤þœ8E7Õúôˆ¹€UÛËæ7f@r´\öƒß„ýÓónoÆ!x?üY(Êéð§¬����IEND®B`‚�����������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/defaultAppIcon.tiff��������������������������������������������0000644�0001750�0001750�00000015260�12214432632�020037� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�¨��� $h°à!B À€£�} È‘3TÈ„‰Œ¹óGž ´i;ðGºUÔ¨YòG”¨*ËxñJÓƒ!ENàÀ!" dTÁP¨ò‚©X¥j5��Ã�(hÄ AB#  -¬y`ÀÀuzNSжï&M›iÒù£JÕ¢?Ê”Íú£DÉ”?ŠM ¦d²?e3þ¨P17œ¢q¯LúÄ€›&°`0q`Хˆ�>\`ÀhÀÛ@s30ZàÂÐ ÚÀÀ¯YRýhÈ0À``ÆÌiÒê´Ò¢eÅaRG~ÒZõ?Éü¸ CÆŽ0î£OŸ¿|ñì #þÈ“7ä9þÈ’Õëï¼.þD’þà€ƒ(¾@n–…Áx$@�i‰åzèùâ&˜øç.|þñ’ÀÂR`Ð.”sLU�AjᆛPê$ä˜k 1䜗Ùpfù7„qþ½õ:¥Sñ*U/|b˜?dñxHæXä J(±à<ðæ$`à. `˜·„�á%�Ò^p¡�p´ñ 4º‡RžÙ‡ *þ‰ ,þˆa"AŒYØ Hà €-¬<£“^L1å)ÙI*C˜H¥ä“K!µº½«7åz¼ô!ºùƒZìyËî…{a1z¦X`|FE`èU` ÚP 0@9BÀ�ƒqÖ*åZ à_)�X}áÏK``ŠÍ^€�u´«ášôÑçX™j«£öaG¨3õúëydßèãN8‰ãP`æ¥vfJ`Z&§uQ&A¸Tf�ôXa¼ )ÊšfŠâtx˜(ÑA¶Ò1 À‡M†™N„3~M2¥Îµ‡_g¸äGk`ÃQ½òÍøà#“?°ÁFˆ7a�eY`Z&M`¼{!!+Gàh:��†B`¤Ó”jªÁŸ[¸Š÷X©8xàÌýîHùŠ NŸHÊ%ä‚wiY6•1£×qÝë7Øè¦MnñÑgþA„JþäE…/Q&ˆ,qEáÒvgêW ‡�ê¬éìclƧë8ùè��ºÆY`DBxÖ¡� :è°À7ޏv™m£Jq½ºæĨâ5 ÿІ`�ý4†CÙ|… ø QTKRhã+ߢ~>@ RhÅŸJa†?ê΃�@,¡A`08{è%Ï;7Œ¢2ôC Pœ¤)¢‘/k|²@#0\ I³,¬¬"(�A^HC•”XÄ:t¡‹CF3Œ®ö›ðY!ÿˆøñ}X�ÿ8ƒW,q  à›0:þ0màÕþàvhó܈—6dÐ4)J‡ÿ`#<ñh@F¡D`‡š¢€™m€n ¤�˜„÷��ˆÐš �u ‚Ђ¨Â€*òd +†=!ëP1zŽ@2H9&tHWL”tÂyåw˜‚ ÞøÇ.Œ€ˆ¼"€YGB¶ðŠD�à¯HÊÞš¼ €øÃ)<?¤€ìøƒx‘ _ü16bŒ0â’%È)A)$6�„‡8$axÀ!p.2|`W4¸Ã²˜p5ôá"PpÀ€€OhÁÂÀ4 Â�WCŽÀ ±_˜9DAAD8"%vÕÆX»ÆP ¤b‚ÔHøG;8�Šô€;W_p­à!9±þpëÜÁTPÎ3ÄÑà6>H‘Oü€�‡?%A/,Ñ`L`0ZÆL €2¼p^?\á»øÅMCð€ƒ†ã [‹½`BåN448 %]@%‚ ƒŽÀ@±�—h¸ÂŸëx¤%þyœY^ø²A'þ!¦, ("+Àb vÂâÜ�(þ X�é®ÌøÃ]éñ‡—¤à Œ8ÁŽÈ„$LªÒ*4êÜB¨àG hH·<œ% €�µ˜°Dîz‹Güö}ÂþûŒÿ>àÿ¸è7þ‘‚¤â‰9`D ¨ {ÐSEÀ†Å ‰x†@¥Á.Ä"3“ø§æ[ Åh»¹‚êäñ¡ÀàÔ †%þlãh@‹ñ€ ÷�øC�pˆ?ÜÀ!ÙÈ¢hü$Ð"KàÝ&-)ríø“yðB€»ÂB�üt@¿é#÷3ÂsßfÚ§¾÷ÿxœ5þÑ7;ü’&8 ‚”ÒžÃu#D Ì~iÏ)�98iƒK¼E‡øg�¦ÔåÖè¸vÄÇ�þ! 4Œ B(Â?9‘ÑAp#à ‚ð_0Æwì^C‚?„�`²6DñAÖf“ã/¤§$|¸áωÀJž^O) h`AìfP0k<âuf}é[?ð­ã¿QØÂâ·‹Ѐ´˜ê9‚-1MSbö×È‚)œÑ ëjSk–à:×2£þÀÿºø…~ü95øCø ‡?<#©xn.þà&Y ‚+ZÁd1ˆu×¶1ˆ¡?6�Î>LK Ð�ó”àFÞiЈ×ÓãcK}yßðs6üãöœøGëyY\&Ðu�ÌwN ûH¹({ ¢jX4”»×ÌE×:Þµü$!ü‡(Qˆ?Dƒ"Czð¿ €�à@Œ?0�²ø xoAÍÖÀ†~l¼‹E®² [÷S¼¨2†ñõ4üœi+³<~²~zücê…þ##>.ˆ‰ˆb‰„ªPÑs8å2vÉŵ~DÑÖ¾ù…ü“UøØ?ЀÆøC(A„?¼8‡HÈva˜t€¿ˆ�9 ð %À_$@ñ^@�Ïb�@ „#žÀÐ -e <£÷ŸL9˶<s[õø‡·�ö/Â3P„,�8ØD`ÍE gàyÔz¤…5†æJF2B{ãwïÁ3þ´45#Hà†Ó øX€�4ø PøgH‘x‡l9qóeã·Søƒ=p�øu…oX1Aø„ Ê„g-�ZA ðB`Z BL y˜5¤÷_gö?} �g‡ÏЇX #ø›0…ÀÀ…–cbI2��BÕ"4 0Cô ,‹w KônP´/„&÷×ÔDE ¸�l:‚Kˆ*x…1Ê„_˜#Oøƒ}P–¸w9€GˆT ˆ6!9vp!_Èb_8 d�  ¢La—h`}XŒ&Øö}íÐ2 ý ]ÏÕo¸€HŠø%c`K©‚&º¨1D�@—”aÐCFXT>ïP~5PrmÒÑ;�[ø 7¸A`ZB Xì…EB�¸æ0�€7�ø�/„OÈ!ø†^ ~¸4Aø…_†_h ¸!o�P`^¢74àØL8Ô@ø†_Ï MÏÒO J€hˆ†¿¨‡Wˆ�M0 Ê8 $ÐDXÀ8W ìðµw®sm|ƒ^øV`…À �X ò[�€.D�`Èw †2JØ H@‡=²$8�‰‡CÀÆ8]� x„E�ø†ˆ�ø…nÚW Cè—bÐFS€°MH…«´‡ûhM¤hnýÒðIø£ €×ð{6_\ÚÇr DPÅ$˜‰e<S #ŒõðsíÀ·ä";¾‚k,:@̈ë̇VhÊ"¸¢,…;HÎ ¸Mð+0–Ip&cx€%PøÒy9€^D†à¤$8³v„È!¨HØ„Oƒ/ÏHäœ³Ì øÏQøWdp†¿°�x‘bE`ÕB ÍG ÊF ¡�?P€åƒ¸3êÊxnÍÄd2<û2r(‚?§x XhæXÀ‡hˆÈ?èˆ^x…§†?3‚{ø‹^øƒõ0‚?h…0Q]pL9”}øƒ ÕPòøŒÂ…w8,xMxøÑh‹ŽtŽN[³ X.øÏ|°V{JÊ „ñr2X�ˆ;�ài‘â@Î’xÀKƒf¸ÅC®¢~®ÎûÀ�øwtApЄ7l�x¦R €ÌÂ… …çÒ†h-=gsð%È“7¸…À’Ã(‚V ³&P"}ø‡Òr$R½-òœ)×t1Kx//ø‡™ò…Å‘?@'¡ábã1ž¢o–�@EC@]k‡Ø´¼4ê+Éð@¢Q ;øBC@ƒEŠ*(…Š*…Õò‚wø.}ψÖÒ6˜†,+„+Œ²”èj�G’²‡ (€±‚8ÿЇϢ´Ug²Õš4Ë�†7ø5{Á3øEA€ƒ;†~†0Ï},Â�h¢R0KƒzxÅ'|É8Rªtû(iÒ‘°d‡àäص &h«/Ü(ƒª†¿h…'³WHƒXøƒ[TŸ—3øƒ5`øƒbà¤Gè�P+H…Pø‡%è.1+Z8‚mØv¸†køOø¢ Àœo’&…ª¦…?"&îG8À�„ŽfµSƒ£¯<i^Ä Á@�=;�XÀyè´îºÆ×®[×q—Ò·B‚f¸`làQl-¸ª¿úƒçȆ$øƒkð/ x vxõGøƒ'ð ø‡ðv€•‚ðNY†`P„X€Ѓ˜†Lˆ‡8‚jlò&¯º�µX½‚?)�@ XEA�‚ :€‚*4 ,F ¸��¬às�PÚŠr4|!c„CïƒßºÄTûòžn6ü|ì6ë²Ü\€GÁyØ€¹¤ºú푪)ƒª€?X†>üI01øƒ-PHcqøƒ÷`‚x‡L�èMîMÈn{x‡•k €„ØG …‚,Hƒ¸‚K¸ìÍònÂ&JLˆ6J£‚?¡…'Ô@˜" h~à8èÀ�6o�H`�ˆJåa>Tc†R`vˆ€[d…rø%@h=m\ÆBè†ÿ‚î„2ø'^+DL0”8€\xB7І“‡xmÝ­ÿ2€KýOH“7° ƒ¿ ñ2�†È�ж‡9–-¸¾�òÇÞd*ø‡kð�hø‡f0•¾†ï‡Ý1-‡râNM†O†c䘀THr8Ãy@‚éfUuR0:FpÎëõtrv�-‰($k†C£ø bð2ø§1p€? 2Ð…?À\„_â&ø¦ @î$�€$#8ªA8)ÝánϨqíAøWE&‰6ez0Jº„à4@&@]héÑè¸ç‘\`2ø‡ð_øçh¨†0žµ|uJøí†åÉ�Hp €;Ĉ4C¹ñ�଄"Ö<æå˜B Ðà È@Q@ƒ b8Æ €{l�DxpxD]€†Z€+ú‡CâdXÏ……æ†Ï©Þ[/møƒ¥Å„¿*… Û±]øÏ!€pXÂ7ø‡a`¸ƒ8Ù‚0 øMü‚°ZŽÊZÁGÝ)…SÂ��Á/@…¡*ø$N�6=6x¢T�¤ E òTW#{@vœ9Øc0€SüY8IH8À`€ 6X$0„èX'¸rúáZ¤uïñòÒi½…?8[?1ƒ}؇XÙø‡–¦µMlêÝÞ Ð“-0Ä¥f[.øMKøB`¸E`X"s€†^˜†)à€{H‡t €O@¨G`0CàÈ@ `ApT¦#¡#-¦#ÎF9ÊÆõ@¹ �ÐDC€¿„„fðß18„΄÷…oÛ‚·„9¸‡õ]†‡†§œœºÝ\ÔõX”&ÓÀØ…U܆3pÒ�R`ø‡ÙÈÀS€”;@2ø£ �ß ªU‚ ÇHÖ? €U8…à…°À‚Ç€JA`Ф  %! _ ¿=ßs †_w; wø€o€cÎÐ<© ƒ´� ؆죅˜<ø…½cn“&‘C§‡¿¿„_äãÝã=ž� Àªh¬Pƒ8wÀ  ††)e„¿Q’+ÞW�ˆ‚5)�\À‡)[!q…Y`á/$¸B�€2Ó@ ÐrÎ@@@¡ÇsN/ø<ø<²‚ßó¼óf!˜t¸0à0ˆ`À`D L0T"ˆ eDZP‡Gº4ø‚ÊË„¿òÅ„"õëµõʉãÖÀ+oø»b[wÆž¨ºõ†»¾OûÆZLýY‚}ð�(Y/TA9˜«ÔG`xD`XC^€‚Q…bX\Là†x„à…?脎¾Jv€s„€ƒD æ€°€U��@@@�¼s;·ó†À†/ÀÎUøœ\ óɆÀ…?À‡ÿû�ThT8�`Àà D eD Æ^ðOKh’‡†-Á)x§G„Oˆzø…òG‡?˜,øS?8/P3j0ç„?8zøÛX¹ìò…?èø+G(…Hx¦¢Ë|¤�â{ƒs”xp(!Døó�€O΃#ÂX˜ƒB(z8¬Aà/ ›—k8ø‡J¨�Jøw€€sì�¨E`ˆ8hŽ—6�™;‹»º›»{뻿GÀ¹‡É†_À…À…ïwtt¸�d(�dXyS¥G E J¨4€‡é\ƒ£†7Ň¿¢‡¿hã—t³O³z)0ÿø[{™øKv`…¿ž|â„op�‚/8�'9€+…8–…_À¤#x–h€‡£Öx†xAø;¸®W|e؇]`ƒȃœ™%{�†s†Æ×§MIÇ79À}g²‚¯;lx{›?`ë?úý»x?©??)À…Ïw¼ß½k8ù}À„UÀ„{��?-@$@ù�‚k À°ö Dp ?²xѼŠél âû“Èð¤Þ¦ðÊC(—‚;‡€W �ø¥€o4H@yQ¨­—.ðøwå§Ç±ûwä ‚MëXü‹ŽÀ/�…ÒJh(r¡…@òÐŒAóI$ÿ¤@ð×½gï^=üA” ÑÿÀÁC‡Hܹ+µPüCÓÞ†vþ@Óm �(�ê�A¤t@&�²ÊD(s¡,…ZÜf(»¡lƒÄ8p@,A† Ô4J”`Ì’DÖ1e¸À}" Ô7-š0ükÕ‚Ö¿{Ø*V~P¡R‹æ1ùçÀ–`À�8mŠ_(b¡à¶��6@0¢R(…²Ep®„âI(^„’Jð ç^Z¡8 D(¬ö �†� � �…P†�† `†…"G(]@„N¨ Š5!œe1eTPaUTÁ` `pÂ!c—qÆáàŽ:jaà +ÌÁæyä'�ðùgˆèøgX=ÊÂþ™bFþ]•o@ Ái w¡à L¡¼t¡à k¡ÈŠþÐl,Fp·NpÆ„¢[(ª…"S("…Â[(œ„¶¡p(¯bñ"p�#bˆ§ÒQ i… R € .ØD )P¸EÓ5>±Á& œp‡,±�‹ì°m–b äŸf¡æŸIÆaàŸY¦³óÌ VY†™úèÉa„€ç `¿m<@Á± N¡@��Ä h‚R Ê#¨¤ òƒ*ª$RPEA•TJPQAùå”yPºA©¥”\PâA %  �J€`�$›¬�¸åTxN�²€¨ À& Cb, î"î=zÐþI‡èŸ=èþ¹sƒã_ �øþ‘ •˜A™ÅRP@AA…]P"©ƒÒJ>&PŠqA饔fPªA)%“9(¾ 8ƒb Š6(² ˆ‚" Š>(î Ä‚’M”QPŽA… ª4¨¶ Fƒvä°€+@<œ�à%¨ë †wuPðAoæ *(ä pW- ŠüIPÏŸzúúq ¤AE^P8Aa…4x 7ÒO °½� EXPä�kAñ”HAI]Pjí”>A”1Aé”2…EÚGAv3*Ü�0£˜˜bXAc(æ¸b îøbt' A£PA“N,÷Ëg¯ B  2G ©ÂPÐàÂYP|%DPb%QPâ26QPØ 4ñ¨s‰J6r ϼõÏW òÏ€ .(Ÿ<Í3×< D $H€8�APPrÈC¬Jk…Õ:AÉ M¯2MAáHY à-.ךk©µ¶Ú먳ö &™$rÔÝØ--@¿ýô]PõA ËËIÑõò������0�������0�������b���������������� ������� � ���j������Š������ ��������������������*�������¨���������R���������������/home/fatal/DefaultAppIcon2.tif�created with The GIMP����|��t��,��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/xv.tiff��������������������������������������������������������0000644�0001750�0001750�00000013552�12214432632�015600� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�€��ð $h°à!B† &l¸ð‚úXšP¡Ò£K"Dº`Á2âË$H¦@Òøñ“Ê›·”´’xñÇ“§(îÜ…pá›-[®¬Xq`ÆŒ&l3f]Š-#FìK±+φ!ê Ù2`P«Nmvôés¨Æ¹<·R|™3çÇ‚â\«q©Ö‘!÷jÜjskȵ6׆½éäU>²ÿÀ1…ʈ.3NBÁ‰“&—!@€t>|Òð–˜5 O‘9rqáÇg–,Ù2eʪ<óÚLèÑcB—îºL·2¡C‡mÚ iÑbtˆ1MšL÷³ØÏì( LÎ3;~™&óó,޳>Äv?»ý¶rØÏöøSšÏŸ³>?,° aÂdEÿ$TV|YIdN•ÉŸÿt3e"A&bñÀƒ0Üp#�'œð’Oa̬Å3 1¶CûÑw(L´D }ÇÑEut"B5ÔЋÈ0q<jÔÑCtcBe”cCCTQÅ$,"ÂÊq÷Ñö8QwÇÆù¤Ðð ,"÷V ²| ;UÑÉŸIÒ&ˆÉÉ4ƒ4iI‘‰d™ÇM^lq³"xl•ÂÔ¦ÐÑFß~ôÏMôœ0†H#G¯À‚QC?rŒ"ÂÔyÌÇÊ{<DG[q´§dtqW_-”Â]C\l­�]œmÂEÔàO0r| WtrÄ'WòÄ!_²ðÅ—t™êÆ‹Œ,pÅw¬±ÆI+­Îc;Ñ ;¯|ÐÈ/Ôó+(ŠˆZC/žXPA'&Œ#ÇÒ={pÖPwݔǣKÕÊÄ�?¥µ‚mñUÜŒðR o-¬®‚\ 'χ#ß D'_ Ò‘ŠLiIÍLVB寳\´mÓ¦°R3»ì±mLìÇÜžÉÐÁÌ~'ÑÆÜ‡0wÈÕŽÐÆÆ½ Õî¼s<•ï¬^�SY3‚´"X[üÁO+B°Á¦ òˆ ‚ü(€¢µ| P Å'Ï_²F07PBpÆï³År,•1ÂN5lUÃÒ&ÌìÁZCìÕÞG ±±IöÞÛ&ìmÅ®”90Ð<T›#‚¬&¼‚ÁG)üNUHì°#DA‚$ÚÒ*È_uMÂ×&œB(}‚)œÜ:É–‰så LnüåÃSÁí•ßIMÕöBK[±Ù{_µ±µ k[±=ò{ŽB÷Í#J²U_ º}W›ÊÆø ÌðW¼oŒç#Ø ÂV$¤‚W$ G« `Õk¯'l=„¸Ù­D‘à d¹K ˆ'"È –ÂÇŠpfµÇìBMj{úžt°ý`ï�ÏØ“ý°aÙ  [o„:J…Žãœ�C8+ýʃ>|(ïk_Ã"b‚)hØ Ä÷»*PdUGÜ ÄAñQÈÔ€ÀyÌ@.™(r Rƒñ;ü¬'Š öT‹Õik6Á֡Ї›B ÅAÛ,°â·¡›¸p–’ä8œUÈ#p(¾Ê ¶>a_Š €¶¤ _"!–"BЪ@ "‰«¢Ä�(&Љ"¦¢¿("ŠÔ‰L²"ˆÒ ÂüŽ�òÁ94¡C hhº8Ú3Ð1 7¡™^®Kžã°à<ŒÅ=(A b‡™Èa%"Éðv‚{tÿD%Ɖ‡Cá”j¸ª¥IEYRQj�”¥É!9ЙВÜñÙ© ¢5ˆpA{�¶i„ ì¨ å…†05‡`ɳ(†ŠÈaRØŒeêƒ4‹ (BÆb—�Ô%kI²®æÍ¬L>„Âöy‡"m‰hA¨åˆB*hT”VEPN”%) 8Y‘["|ðfE¾íGcÂÑ l2‹¢ !zh;Ð*4¡�¨š‡<´j\$ÈA22¤ UHAÒ†z­j yè‹ &"2‹ƒáL)xêE#ùD KNnU”ѨB,bQ]¶Æ!ÕIEPI”’ …¤E¦@‘(ˆÔ¾„­àD©Ê;6l…µ=ÙÃEh@GìÐ(Ôj eÈB µ…,$ ÅÚÖÒµ‡$! ÅŽBâ‡4Ä ÖH@¾Vm†" DcΛV4 2LáNAxY>.@°-UÑhÄ¢ªñeFµUQm€¦ UÄA‰:QHÖæÀI,diK`Þ2W>xЇ•É -3B«P…f1 ^c¨yE©1´‹c1¦Ú;´«ùN´е‚Z1 ‘ hŠ Ú ä<ŒØ*DرN´…«Fà]JU qˆkBoч> š¨i:3P@VdÉ‚@° òãàÒЋÐDסc)B+bä‡ÔvÈBµ0;,E¤t½ûzƒ¹xj (Ô êÅÐT .v¨djb‚†ˆ Ã~Ûj°Ñ8álEU ñˆG-bƒº2£Öª¨±*j'ÔgÒ"[ “‚¢ÉAØÁ›¶p£8\(o¿ªp^ÜP­T • ¨yú3„lÍa.ò¬@Ç|ˆÔˆ…t+èd¢Ëœ…–ƒaÀq1Aì‡5U(3ÊÃŒR°¦('ò©HBÆ…†Æ ±lh(3 €ÚÈ’)yY^)RÊRÀ«é ÃÖ˜’óƒ‚ö«7½v¬¹n°å<©†(+"Sˆ.e"aAשC½«Pƒ;«—kj‹ê°¥8‚RÇÒÃf‡5+`=¨MÛFã¸ÐtÚ”õDG I› AdA%/%"XŠPòÑæð ,[Ó #‘‹ZÕ[óì QäáB!KÐÒ;b\€r Qз"¼(^`sîAp)aG)èpŽ´B¨-¸Zq«°‚ãÉa—ˆ…@hF"ÑØ45Í;h2QJZ$§Ê–giÉ`‹°R"²¡¥DPƒh /°?ÎÐ’4g ehÔí¸BÑ¡+ÎÉ­.‚RÉd "ÜÖÈõµ�KÂáÄ[ ì(7+Â×ï‹iá§A¸ î=½'øÑzŸ öAˆEëý˭ΉÁ DäµvïD”ÒopDd)F¾ðÂêÂ0VºÒáĦâ@·/šØ3uسA´E¼-‘¨A�wWJÝ}›mr=°ä ÷^0{´u'ð&hˆG*HE|EVð&ˆÀ7ª€vH†dhµ(h bã‚V…J}EVHCˆ÷„$ô?põFpX‚†(I@>.+ádq¬pm°�¡[*r%ÿ�mpÄ&ðD)Y ‰VRV„@VTi°¬�÷ÐBAðÔC¥“E>ð!hˆÆ HÀTA&ð#P@&ª€NH…Thwè€H€‹ rã£N(FVÈ"PHEÈFÈCÈBHóävprh°‡¢H hÈ &~‡H~D[a#¡ã}O{gt¡\ÎDA-€Ho"hÇG=g¥AðóIA@nˆÀ ˆÁ_AZDZEªp€H 7H€e†FÄZL… ¤…Rd…B…|0p·Lð€4‚€Dä†x䆶Œp‚Oà×'È¢A¯H d,C°ç|°ƒP %{k‰UI°•z°µ;°—}¥7ˆ„!PGVIP¤…x$‡dÄxć8ć$|  èŠÁð„ø‡¨ÀŒ˜O(CV(C&(GV¨@V( PÈ HŽ‚ŽXHAnHõ†¤SJHfË8WȦAÈ"ˆ‰•ðGÖ`Wˆ äØAˆM ¶L�p?ˆ!Pˆ"PˆDVˆFZˆÅ ˆCª°€�HB|HEtHc�HgUÈT6ÈÖ˜DµmètZD‡jêŒið† d‚Jd‚*d‚d…ÒXB¨´X¨‡ È€†ô‡–ô‡Öô‡zH‡t¨ §HWÈG¨@è‚lÈÎ$ȆNÈ…\èÈ h†ÈÆÌ…¦Ì†<ȃÆ,††Ì€†,†ŠÄ€¤‚dü…4ć&(hÎ6h†R(…V(‡rh‡*¨‚òŒ€B‹‚"÷’ HT‹‚.ã‚6I…F$:¤JWðJgð‚d‚:¤…êtBVX†^è…3Ø…]8m؆Ó<ÏK؆ã<‡£<‡8¬€r…L†K؇}8ƒØÓ<Éß<Í8)@؃=8-8)ðü€Óü€)èƒ>ÈBr(’T®„(¶X¸‚8S8€ƒÂ.\8„C8ƒ#8ÊV(² €ZÈ„L¨ËÜœ†xè¶(èTfhCthBr¨ÃŒÜ¯ÜohÀ ¨GZ¨G&¨EV†6hƒ]X…UØ)ˆC&0Ó°ÒŽÜ/¨Å (B&X€1ƒXƒ5N;b{"‡D$‡X‡õ²„unè&1J‡P.€Šp‡r‹‚*ÛÎ(H…j(‚"Ø…MØ„(†bù\e†¦,†(€ª€^÷^‹ªdˆ‡>‹….e†V$fü…&Ì€FÌ€&¤­bð†&d‚d…‘L†Ã²‚½’) hƒD¬(5¨/~ü…=˜†i¸*ÈFp&r¨FhbU¨w8ÉØ ؀ݚ†@¬°-H‚Æ €Æp‚FHƒ4hJè,?¸…s8/<$hHÍÄòƒöòƒ6(„Bè‚2(£ è·mèwwªg.|€v$V¤ª|ðÌ€VÌ€¤…fd‚d‚˜ƒ¹ª‡Õ’†ÕØ—jhÂ_Ø„€›"€B�"‡ä€VI…Ve†*e†ó"¨©š©i*=hŽAh 'hËè,*èÌ\X+]¸…38ƒ2È´…ö,†¾lƒ®ì†Îì†þ¤   0.èQfèÁèB|è@h¡Î*/hFZh£NhÇŒ6hGZ˜Ë>8(ƒ†ƒq耨"ØA„Û"†rek|PË8p‡ve†eƒNã‚SØ‚-Ø«iد@ÈbUèÊè.*èËdÌ Ín¸‡ ¸€½2�?¬€2eƒÑº…Q¨€ ƒJ¨„Q¨˜€Z¨¥ŠV€d­ ÐèDtè@üÖ€`èlíâo¤…vê„ê„ÎkS¤…ó<‡ý2èYXƒ†„û"†qh†fp#ò˜&…¨Þé`ˆ-†¢wØ…I˜„Ã<‡ƒ ¬Hˆ‚J€ÁL†‘N¯8Ø…q‡ûÚ‡ªÌ…h‚†é.ƒ©®„i¨†j˜ëz˜‡z¨‡yh€ª€á €Ñ„!^h5ƒnÄn$i#ð…V¤…¤‚L…nü….¤‚N¤->ðÅ^ëyØ/«¡ƒu˜ƒNèO"‚x´-&ˆ‚ÎÒè0.hwèrŸÆ€ƒ=Øïèƒ&h2^Î ÊbÏ>x€K¸ì\X„rÉ ˜íz˜…:¨ƒ™‡h„Ƹ €‹‚‹…I…>Ä$ülèErD|èGèÁß_¨Ä ¨cU8ë‹¡/+D©a P¶nƒXè1®>„Öp‡÷I4Hsh„óü€ƒ‘ì5H%P…|È‡ŠƒM˜€ ¸«}ȵ(%hî2 ˜Ð1†©‡©‚ehª€Q÷1Û†Q‹‚!‹…!e†Á¾Côñ‚À!èo$~L�ð|ðƒfL…ñº‚Ûƒ‰‚u( whGtÔ»p‡¾´´mhAèϘíJ¸.â)„-X…˜Td…Ѻ‚™±¸„5˜…YÑ›ò†ñ„É®#¨ƒ…‚ù‘†ù^ƒÕ’¤  A w±Ø%‚Uf•TB˜5$‡>üMè\$‡™¢‚G8^X†å9†õå•©bä€á%t ‚…dè§yt.*˜Ìd¸ƒÓÂÎó>‡í�{-?¸èˆ©ƒsHEHDÚ„êé€Z˜p˜(XiX™X+IØjª€‰„©„ ÷q1Yoˆ…qe†á¹œ5LuB€nL…aã‚› „ó2€Ù<„ƒšÞtØ€’%w [üÚ€áŒX9È„ñ€éÌ€ÛüXµUƒTLjh†'¸‚+Xž…ž)‡ù®‡Å‡Å±Xhš~hõ’„ív€a¦ ˜-*˜'˜ŽA˜±m˜ wcUAtè"¤‚A$Ù`…ÄA‹]0Xëe8‚,d…04„™lË3ØÞL˜‚èz$‰Ú€ñÚ€‰ô‡‰¢‚‰L†©Ì€Ù)‡3X€8Γ¼‡m(¶(8)™~‡sDƒPH£NXcXpXiXë5X›ØØ±a†Ý}>bè¡ XÌ\˜© ˜­ X'˜VÝ]‚n¤êQð†qeƒq‹ÚS¸-É„pðÃqhFòA„X8.™Í„à „bD‡ÉŒ€É•o˜ÊÜ­„܆|˜«+8îS¸(8Êo)I¸k^éø†¡ºêh€µ‘†€Mh…VØ‚vhßqè€Ý²‡ý‚ƒ½<¤ XžrX(ª£ƒT˜µm˜1.ÃL]¦YFf�؃a†ë¡:/œ/µ“€!‹‚õs£Ž8YØ„Á±€.™L†™£< í*?XÌ6Ø.{¸*â3‚ë‚‹" ð‚ ‹Ý^¨‡¥‘†Õ^ƒÍu<wØ>¢²‡½}>è…‚£ X«+XÎÜ ƒYã‚©ãÁÁèEè\:ć¸+bê5pÄy(E¦+°( ÷̓äêƒ+‡ÃŽ[€ÙÌ€ù)‡¹)‡Ùº‚…lƒ¥º=gh]%8½.8Îoè ˆäw˜ëÊ…&XXÛs›n‡#½Å'„~è‡íƼÕ[/*X® X ˜·(˜ì"V…þqAèCtxX޽‡½²Ê[؆…®„a‹šQH‚˜‚)xl^xjÞû†­—¹RØz 8ƒùŠƒùò{p(…솥ìƒå®„‡Ú?Ø}CH ã„8Ø8Ü€•sYhƒv€-è‚®'ÈCØ}bØmW؆!¢ ؘrXIÿ€ X{ÊuÓ˜¥€HèŸyD‡~|€¥.ƒ\Ò¡FĬ€Zü…‰p‚Å샦ڀBe†"e+4ˆbùRˆ…P´}õ‡„²×†rXì2XÎAØoW(AÈeÕþ'XìØ:Ø*ÉÇ…ö·‡X'Ø,û[†>Ø{÷v…÷†íK§ XÏbXŠÁ§‚4X'X˜Z?‹…Ág”T¶X¨DZ(à (G*¨Á_è[¿pÚwHƒ.‹…FˆQˆ‚‹…6'N[ í$XT¦Ì’rå–Uª´¬J•5j¬©S§W¶l½räWªÔ¦V­¶µi³­CG*¶t鲩Gm½zíê×oÏ A{† Ù5bÄ®Q£þ‹ã/i-¾y‰Í7È”X±&UgD”(Cu ‰Ý@´n1b´VÕ)^¼aI’ŒI•j¤£a2LÈ’e*¾iyòÌ*P`^‘" J”„ Ö’ VT«¶¦Vm uÖÔ«·®Q£MÍš“hµ•–vív2ØË¼R}úrè·“Çn~û…3f߸ñâþKâ·ß\93™>Q1¸±ª†›l¨¿ªŽªi-§_Š£Ò¤êöP†±8}û4«Pá0%–BY>bd«“­Ï°¦AÃ,6̳€mKÙ’šm:éd—nºÙ“=ëØ““]yØ–Ÿ†fßNŽìá€I&í‹ Âˆ"Ž$ÒÈ""ʨ¢Ž&*������0�������0�������.���������������� ������� ����4������T���������������������������8�������x����������������/usr/home/fatal/pascal/xv.tiff��Created with The GIMP�������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/write.tiff�����������������������������������������������������0000644�0001750�0001750�00000010040�12214432632�016262� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�8��ð $h°à!B† &l¸ð‚zŠXs4-1´ÆÒ'.M þñ%’DW²äºSêI­7­¾ôôg2Å`6C9rÎm$¯ÑüÆ 2^ÄD1“%L•*mº¬™òf+–7ƒ[–5\2-ã”n§Ts8¤˜Á.Év Ʊ‰3ŠU¬!¬¢ `©³pÝ‘=Ž¡%–Ö¸qµŠŸ0‘œá)R¥I—!}&ýY d3˜3Wž| ,b¼˜‰&K—)W¡¢¹å󘪳£×Ž{eæ]’•gŒ\sJÍ:UjÆ i&°ˆÖ/V¯-ÝÖ]Зo¼gà~â Ò®ãêDø†ËI©;µž´zÇŽËœ5ûTC¹ ç5’ßè¬ÙE‹—\dª¬éÊÍ.ÿmnNÒX ‡mîâv™„xÆèa“kºÙà ¢è‡…z)f’$H¢&‚iuN isÙU:èŒÒuà wÏè3ÞD“=÷ÂtoÌ4Ëó,ðÅWK˜ñÓË™OÔ< ™ ”¶¸ Š1؈e˜ENy ËÐè™0ÉXã<|Za$æˆà7Рȣ¤SrC&7»è=ŠÉSS<÷Òko½g,nŸ,ôÅ7?,K8QæY(ÔM˜Jš›`¹Ö–a )aަ8d‘Ò¢“ºXC<F3¤ üiÈ$2W³”<k &¯ºr2É3Ss3Ã;ïó6ßg‹ò·Ô¯‚-”QZsÆñ¤™ þ›Ñ'¸Äz›á&Bh#†NV+¬˜zèñ¥6C:‘ Sþ;ï²³®»è¦«n{è¾§îzé±T‰âM+F𠉵V1 ˆé–XÄZæ[m‹Uĉ¥³½¨oª2qc4‰3Ô±añ'@p¢‰'™¡É§˜rr„§™vZDf˜q¦u¶ÙgEl®¹ç™kFX‰a)Ò+'¸€‰P:§­UºXáü¨ƒj :<)ÏÄ­õ ÏŽÜêÈ3d\X ے­·¡h»í)Þ‘’)Ý•²Ý÷ |¯½©Ø—Êý ê ª¡æ°Ã§ö(ꎡþ8N8‘Æ“¢*äP‰ g §O?Cš[E—,úW[/*צZÜ)ÉÄHwöPzC&Ø&–\cÏ£ëÊ·žj Ba‘¥ÇŸ`ù)Vžñæ3ËŒy#h·Šek5ª¡»Z<(»šhp¥(w¢3ÆØ[Æß&ÖZã¨=®{âÍïý)¸¡GŸxòiÏ`5€üV¦ÖÑF¡ÅkÚס‘¼/Tx߇pC±OPj8#_&¾tcÏÛži¼R›<ÕéW÷ó]}Æœ¿<¢ÿzÜSXö VˆU¬…CC‡ExL Þðƒ'‚ D"n˜M&r.O0|ÙÞ¼^T(•¨шvÔùu~G':žˆNØ¢¬7–ÀŽ50b ´Ø;ŽqBA\âh›8ÚÅvE©LÔY&G‚ñ”»8)ìu³8”ô¿C«áЇ!La [ÌcŽõ¤c#™IÇzX’–�0©áHv2±Í”c+•ñå1äLÎÚ%îbV £Bé´/zÑVp:¢ž<¬ aPE‚¡„føAm‚":åŒC=ˆ€:=Œ#&Y‚:]Œ!ÆèE$40ŒD`4‡8Ì5Žr›;™¨ÑíLeˆ)âÒ„»/‘ P¿?5:%Ñÿa `f¡œchb(kèC4´² =t"‚&a àÁ FÌÀ“]èæ èFxV²‡ ¤Á4w¹Ãqid"f5‡(/&·G˜+Ÿô¦5iqT˜cI0Â2` ¤Ã 㥨8,Š\8BÄP3P  ÀA ´@„ dA^r˜V†•‚)Q�ÇR—'µ’IžBÄë2AÈ!K¥Ô›èü$6‰/€ÓŸ”•3Ȇ¦K¬ îÈ‚Ä1<¸â}ÈÁràWÈ‚ â <”ª‚TXA‹(„æ [Ì#ö¥Áq­p‚ÓÖËÄ÷î$ì-uG‡ÊÑgy9¢Qžö/ÙXDœ±€|8bEpÃÊà[d0à Ã(Ä%&P‰=´"åp…tÀ ðƒ°Ð�°ÐŒ"&ƒck[Sœõ¡äˆ’8bZ{‡<_¡ò¿“PßÕ?©)I&ú]¬¢¾ØF#"Q?¨ z`Ú…#ô ³È‡ z ¦ƒr D› ¨ Åp„�à™ÞõaŒ8“I_üD¡¾™Æ¾¨ߢKÅth(F%pÃ4‘è$;ê)Ç&|¡r4À M  V˜CHƒ¸Ñ‚hÔ "†&à EPB @‚0( wä D(4A3¦>à|ž2IÈØø€ñq@Øýª{¨çkHÁüæ'?“–ŒdN:•Ø‚1øS6> Àl„ÃÜØC"1‡|8a ˆÀÚ áUÐ@»{P Pà�  š 9¨Ç8Oœãbƒ2IsY™Ç3: nÄ\t&•‰L�[ÚòV¶šŽ%- úàÖéCfÄ0ƒˆ±€8£^PÀ àŠF@ ¦�´º5°µÈ‡3@ ÀÀ��|ЃÈ$ïesïÆÍàÔ|/´^Ò?·Œ)Lb|_pF6¡ˆ(¸õ8PÜêINz²­ >G1œ!†¸@ °ï^pZà�ú± Mp€@+ø@ rP€LÀÆ!ç×v÷"Aõ¦ù½…XòûäøÇ;ί}Ýëàþ8ÇÚÑ1ÎDT 5·¸Õ-ÖÛÝáçÇíN~òá ‡¨…3¬!ç;ßç~ç—IóI©+:|ÑT䥙·eÜã{¸Æ6nˆ¹'\÷‰OÀÞñûçaïzx¿!®pŠËg?ßxFï«Ð{OÔâ ÇHÀ öøbc°Åö`÷NؾÿýǺ$˜ðƒO Üÿüüô}erùñP–!f»2ßî¶%ìa ZxÄüߎgÜ#?xD>q |ãßG ŽpŽ¥g¿ø9/þßoŒû¿ý퉿ÅÒ“1€wx‡-ÿö<Xó˜óØr=ñS¨pgû jÆî@"ýTW� ˆ‡?}g/Gs ÇrkÇ‚Qh– ˜…^s,ô® [LtS7õwXƒ3Ø€%ÿf¯ð,ƒw˜óß`à�‚û�qcš5ñFH¸@�M�„@82ñ‰òU'óIàuŸyÐu¢ÐsÜ0�ÅеeÇ 3û† è‡ì°„l¸…( ÿ ;( hø‡o(€SX‚(׆¿7(€_ø„VcSD@8±À€rA@ ¥@—(T¶e‰ `¦ÈŒìÈŠœÈ¼(ŒÜ(ö[v0'qç ¹¨P¦·ƒRv·‹œèˆ,Ð&@t°èw��2±)FY¼¶eL ÝÐ -p_wtBÇu,'ŠeÇû¶e' ›0ç°ÁÄØC–  ƒ%ö8ö~ß�­¸òȇ0€u�rˆ‰G2q,Ç7ä)ð€5'k¸‡­° °«Ø‰²ï  ›„ «qË„ ë°Šý°òþ°‰Ó8ʸôÍ8ö°ó8‡9r°ˆq)Àˆ¸Hp!2qU,GeYð]`N0M6'wSL 2ï‡#˜ÆÄŒ«„eà‡=lõþ8N¤DŠ ïŠã” J„L`IAlMßLQGX) 2@(€˜ˆ‰ÄxGrD †yT%…àJ;NˆL'pK0N7'ñvïONÁTKlõ °I‰„ÏD†ì ‹«Ê8²Œ ’TÒ 2IL@È´ˆIÊHŒ2QOVo5ˆ¦`#hÊ2ö€ô¬¤¬Î4@pÿN$ïOˆÊ(ƒI( ' ýÐq¢@Ê>�î@¤ÊPÏþ@Ή°xL2—NÊÌNSà·0ýã‰À„?fãp|ÃkÜC4hoHÎðÊ#'Éf'Ц<¹h‚}(„ˆÌ»|Èû°„B_Ë7wKnï ¸4r¡Ì @ ýUþƒe ñÏ2h&žàQÀ)8ÌBôB”BŸBÏ÷Ât )�-¼Âð"dF€*’"µ"è¢õ¢.Ò"uç¬W�(ÆbL=€% ×aæ ‰âÍ]–RØla¡!,À=‡´’ÿ’ë’’/rP•R.•R-5P-RÒýÒÛÒ¿2„˜2†”2-IHËʲ„tH-ˆ.;LŒ¡r@€'a€%õÀâ)^ô‘RK´ ØruÀ•삱ìBÌBt¶/T@䊇ÄJ¬øJ®Hª´<€äJ©xÜÇŠ[À¨,¨ˆŠÀ¼ŠªØ¬ͪªŠª/Wa4�)Žò ô+?Û€íê†ê…Ýê¯ê…“óE ¼$ÖšÔgä–fÌCi•Rد%µÐµÒ;­­%ØGeŽ‚Út‚ÈÒ[0¨£’2)a—¢jCÜò‡­ê†m°y±¬Í ¬º«ªú¬¯ ƒú­ „ë¬@ñ¸7¸iˆ ©±4ã(`#2‘äj1 IÇlŒº–ʺ«¡€½Æo‚Ú¬_8k8Tª&×j½Õ»¦Ö{ó0O¸l†f„«fn@¸n¸»æl®…‡æ…ÇæGÏDäæ²þsa&21@‹ƒu)môÆDœÆ©¾ê—Ž&®À3}ÐÞf†+QoVQ‡Û6lõ‚'Ñ©Àæ…‡æjnO )‚µ0é–I\nÜêo‚&¬¥&nÒ&‡£¦¬5­7w8³~„‹fjfiÀfoC¸m«ælžæk‚çN†—N…×N‡·Îì¬Îòx‡Î‡Ï.l[)¶x)“ ©l'"o¼v‡½&ªßön µlÿ¦5¦¶Áëðfí¨6ìX¸ëxxh~xl“N†çN…—N‡×ÎîÌÎí|øèBø„¯^ì%2i‡.· ©Þ$Ë®éÚöìz¹éÆZÕº0÷nëÐfèðŽh¶†èèîíþìáNé´Î詞é‚.ì¥^ò øn“þí¿þ€ °ï������0�������0�������æ���������������� ������� ����ì������ ���������������������������8�������0����������������/gimpswap/dwiconxcf/write.tif�created with The GIMP�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Magnify.xpm����������������������������������������������������0000644�0001750�0001750�00000047523�12214432632�016416� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * Magnify_xpm[] = { "60 53 855 2", " c None", ". c #C3A11E", "+ c #C9A71F", "@ c #D7B120", "# c #D7B21F", "$ c #D4AC1F", "% c #D0AB1F", "& c #BC951B", "* c #C6A01E", "= c #CFAA22", "- c #D6AF25", "; c #D4AD25", "> c #D3AC24", ", c #D1AB28", "' c #D4AE2B", ") c #D5B02E", "! c #D5B032", "~ c #D6B133", "{ c #D7B12E", "] c #D7B428", "^ c #D6B727", "/ c #D2B425", "( c #C09A1E", "_ c #CCA621", ": c #D0A921", "< c #CEA823", "[ c #BCAA33", "} c #85AC7F", "| c #7EB098", "1 c #87B69E", "2 c #8FB7A2", "3 c #94BBA4", "4 c #98BDA6", "5 c #9EBDA4", "6 c #9AB798", "7 c #95AA80", "8 c #9AA55E", "9 c #C3A83A", "0 c #CFA628", "a c #D4AD23", "b c #DCBB27", "c c #C9A520", "d c #D0A41F", "e c #CE9F21", "f c #8CAA50", "g c #7DAA8E", "h c #77AD96", "i c #5DB5B4", "j c #6BBBC0", "k c #8BCACE", "l c #9FD3D7", "m c #A4D5D8", "n c #AAD7D8", "o c #ACD7D6", "p c #ABD2CD", "q c #A4C9BF", "r c #9AB9A6", "s c #89A170", "t c #B2A03B", "u c #C99C22", "v c #D5AE24", "w c #DEBE28", "x c #C79C1D", "y c #D4B023", "z c #CBA624", "A c #9CAA47", "B c #78AA93", "C c #5DADA7", "D c #4FADB0", "E c #5FB7BA", "F c #80C5C9", "G c #99CED2", "H c #ABD8DA", "I c #B4DBDC", "J c #B7DCDE", "K c #B7DEDF", "L c #BDE0E0", "M c #C0E1E1", "N c #C1E0E0", "O c #BBDEDF", "P c #ADD7D7", "Q c #9AC8C2", "R c #8FB4A3", "S c #829C6C", "T c #9CA048", "U c #CE9F1F", "V c #DBBB26", "W c #C49B1D", "X c #D3AC22", "Y c #BF9E28", "Z c #78A16D", "` c #65A89C", " . c #4CAAAD", ".. c #4AAAB2", "+. c #5BB2B7", "@. c #68B7BD", "#. c #86C5C9", "$. c #9AD1D2", "%. c #A3D3D6", "&. c #ADD8DA", "*. c #B2DADC", "=. c #B6DCDC", "-. c #B7DCDC", ";. c #B7DBDB", ">. c #B6D8D7", ",. c #ADD5D1", "'. c #9FD0CE", "). c #8CC4C5", "!. c #81BAB5", "~. c #7BAC9F", "{. c #7B9B66", "]. c #C8921D", "^. c #D9B526", "/. c #C0991C", "(. c #BD9C28", "_. c #779A66", ":. c #5AA39F", "<. c #49A2AA", "[. c #4CA4AF", "}. c #52ABB2", "|. c #5DB2B7", "1. c #70BBBD", "2. c #82C3C5", "3. c #90CACD", "4. c #9ACED1", "5. c #9FD1D5", "6. c #A7D5D8", "7. c #ACD7D8", "8. c #AFD8DA", "9. c #ADD7D8", "0. c #ADD7D6", "a. c #ABD3D2", "b. c #A3CEC9", "c. c #98C7C4", "d. c #8AC2C3", "e. c #80BBBF", "f. c #77B6BA", "g. c #69AAA8", "h. c #799874", "i. c #C8911B", "j. c #DBBB25", "k. c #D4B123", "l. c #CD9A1E", "m. c #939B44", "n. c #609990", "o. c #4596A2", "p. c #4A9EAA", "q. c #4FA3AD", "r. c #58ABB1", "s. c #62AFB4", "t. c #6EB7B9", "u. c #7DBFC2", "v. c #87C7C9", "w. c #91C9CE", "x. c #98CED1", "y. c #9FD0D3", "z. c #A3D2D6", "A. c #A6D3D7", "B. c #A7D5D6", "C. c #A6D3D5", "D. c #A3D2D1", "E. c #9ECAC9", "F. c #91C3C0", "G. c #89BEBB", "H. c #80B9BB", "I. c #7BB7BA", "J. c #6EACB6", "K. c #60A1A1", "L. c #76996B", "M. c #C79B24", "N. c #DEBF29", "O. c #C79E1D", "P. c #AC9D37", "Q. c #719580", "R. c #4F969A", "S. c #4896A4", "T. c #53A1AA", "U. c #57A4AC", "V. c #5DAAAF", "W. c #64B0B2", "X. c #6BB5B7", "Y. c #75BABF", "Z. c #80C0C5", "`. c #89C3CA", " + c #90C8CD", ".+ c #94C9CE", "++ c #99CCD2", "@+ c #9CD0D3", "#+ c #9ECED3", "$+ c #9DCED2", "%+ c #9CCDCE", "&+ c #96CACA", "*+ c #8FC4C2", "=+ c #87BDBB", "-+ c #7EB7B7", ";+ c #79B5B6", ">+ c #73AFB6", ",+ c #62A2AD", "'+ c #669C96", ")+ c #A39D40", "!+ c #D6B223", "~+ c #D6B624", "{+ c #D8B425", "]+ c #C99B1E", "^+ c #78945C", "/+ c #529195", "(+ c #45919F", "_+ c #4C96A4", ":+ c #559FA8", "<+ c #57A3AA", "[+ c #5DA6AC", "}+ c #62ACB1", "|+ c #6AB1B7", "1+ c #72B7BD", "2+ c #78BBC3", "3+ c #7EBDC5", "4+ c #83C3C9", "5+ c #8BC5CC", "6+ c #8EC5CD", "7+ c #93C8CE", "8+ c #91C8CD", "9+ c #91C9CA", "0+ c #90C7C9", "a+ c #86BDBD", "b+ c #7CB5B7", "c+ c #77B1B2", "d+ c #70ADB1", "e+ c #70ACAF", "f+ c #5899A1", "g+ c #799C79", "h+ c #D2A721", "i+ c #D4B628", "j+ c #AE7511", "k+ c #BD9726", "l+ c #74957F", "m+ c #458C9C", "n+ c #4591A4", "o+ c #4C95A3", "p+ c #4F9AA4", "q+ c #529CA7", "r+ c #58A2AB", "s+ c #5DAAB1", "t+ c #62ACB5", "u+ c #6AB4BB", "v+ c #6EB6BF", "w+ c #75B7C2", "x+ c #79BDC5", "y+ c #7EBDC7", "z+ c #83C0C8", "A+ c #85C0C8", "B+ c #86C3C9", "C+ c #87C0C8", "D+ c #87C2C5", "E+ c #86C0C3", "F+ c #83BDBE", "G+ c #77B2B6", "H+ c #72ADB2", "I+ c #69A6AC", "J+ c #66A6AD", "K+ c #5699A4", "L+ c #6A9A91", "M+ c #C49C23", "N+ c #DEBE27", "O+ c #9A680F", "P+ c #D8B825", "Q+ c #ABA53A", "R+ c #629489", "S+ c #448A9A", "T+ c #4791A4", "U+ c #4A95A3", "V+ c #4E96A3", "W+ c #4F99A4", "X+ c #55A3AA", "Y+ c #58AAB0", "Z+ c #5DAAB4", "`+ c #62ADB7", " @ c #66B2BB", ".@ c #6AB2BD", "+@ c #6FB7BF", "@@ c #72B7C0", "#@ c #75B9C3", "$@ c #79BBC4", "%@ c #7BBBC4", "&@ c #7CBDC3", "*@ c #7DBBC2", "=@ c #7EBDC0", "-@ c #7EBBBF", ";@ c #7EBBBB", ">@ c #75B2B5", ",@ c #73B1B2", "'@ c #64A2AA", ")@ c #65A4AA", "!@ c #5696A4", "~@ c #5F9698", "{@ c #BC9B29", "]@ c #E3C228", "^@ c #896010", "/@ c #D5B626", "(@ c #ADA93A", "_@ c #629187", ":@ c #45899A", "<@ c #4591A3", "[@ c #4990A2", "}@ c #4C94A1", "|@ c #4F96A3", "1@ c #55A2AA", "2@ c #57A4AD", "3@ c #58A6B1", "4@ c #5BA8B4", "5@ c #5DAAB6", "6@ c #62ADB9", "7@ c #66B0BB", "8@ c #69AFBB", "9@ c #6BB1BE", "0@ c #70B5BF", "a@ c #70B6BE", "b@ c #74B7BD", "c@ c #75B9BD", "d@ c #78B7BB", "e@ c #79B9BA", "f@ c #75B2B2", "g@ c #629DAA", "h@ c #66A1A8", "i@ c #5591A4", "j@ c #669894", "k@ c #BC9F2D", "l@ c #E3BD24", "m@ c #9D6A10", "n@ c #D3B024", "o@ c #B9A732", "p@ c #749782", "q@ c #498793", "r@ c #458E9F", "s@ c #4C91A1", "t@ c #4F95A2", "u@ c #529FA7", "v@ c #55A3AD", "w@ c #56A4B1", "x@ c #58A4B2", "y@ c #5AA7B5", "z@ c #5CABB7", "A@ c #5FADB7", "B@ c #64ACB9", "C@ c #66ADB9", "D@ c #68B0B9", "E@ c #6BB2B9", "F@ c #6FB4B7", "G@ c #72B5B7", "H@ c #73B2B6", "I@ c #75B5B2", "J@ c #74B0B1", "K@ c #66A4AA", "L@ c #6AA3A7", "M@ c #58919A", "N@ c #78966A", "O@ c #CCA325", "P@ c #E2C127", "Q@ c #DCB620", "R@ c #945B0C", "S@ c #C1911C", "T@ c #D3B528", "U@ c #84A25D", "V@ c #558C91", "W@ c #438AA2", "X@ c #4891A3", "Y@ c #4A90A1", "Z@ c #4A939F", "`@ c #4F98A3", " # c #529CA6", ".# c #53A1AC", "+# c #55A1AF", "@# c #55A3B1", "## c #56A4B2", "$# c #57A8B4", "%# c #58A6B4", "&# c #5CA8B2", "*# c #5DA8B4", "=# c #61ABB4", "-# c #66ABB2", ";# c #6AAFB4", "># c #6BB0B2", ",# c #6DB1B2", "'# c #70B1AD", ")# c #6FADAD", "!# c #6EAAAB", "~# c #669FA2", "{# c #6B9991", "]# c #A89D3B", "^# c #DBB624", "/# c #DEBD23", "(# c #90560A", "_# c #B57A14", ":# c #C4AE33", "<# c #7EA18B", "[# c #498C9F", "}# c #458EA4", "|# c #49919F", "1# c #4A919F", "2# c #4F99A1", "3# c #539DA6", "4# c #519EAC", "5# c #4F9FAD", "6# c #4FA1AF", "7# c #4FA2B1", "8# c #52A2B1", "9# c #55A2B0", "0# c #57A3AD", "a# c #5CA4AF", "b# c #5DA8AF", "c# c #62AAAF", "d# c #62AAAD", "e# c #66ACAD", "f# c #6AADAC", "g# c #6AABAA", "h# c #6AA4A4", "i# c #6D9A95", "j# c #849651", "k# c #CFA422", "l# c #E3C126", "m# c #DEB821", "n# c #B27011", "o# c #C48A19", "p# c #B9B540", "q# c #739F93", "r# c #4A8C9F", "s# c #488CA3", "t# c #4C919D", "u# c #4E949E", "v# c #519AA3", "w# c #4F98A4", "x# c #4E9CA7", "y# c #4C9AAB", "z# c #4D9EAC", "A# c #4C9CAD", "B# c #4E9FAD", "C# c #529FAB", "D# c #559FAB", "E# c #56A2AB", "F# c #58A3AA", "G# c #5DA6AA", "H# c #61AAAA", "I# c #64A7A4", "J# c #62A3A1", "K# c #6A9A95", "L# c #809658", "M# c #CAA123", "N# c #DFBE26", "O# c #E5BE24", "P# c #E2BC23", "Q# c #A5630D", "R# c #B97411", "S# c #C7901A", "T# c #AEB547", "U# c #80AA93", "V# c #5D9A9D", "W# c #4D909E", "X# c #4E8F9D", "Y# c #56989F", "Z# c #5A9FA4", "`# c #5CA4A7", " $ c #4A96AA", ".$ c #4A9AAB", "+$ c #4A9DAC", "@$ c #4C9AAA", "#$ c #4E9AAA", "$$ c #4F9AA7", "%$ c #559EA4", "&$ c #5BA2A2", "*$ c #6A9D93", "=$ c #759C8B", "-$ c #889A52", ";$ c #DDBC26", ">$ c #E5B922", ",$ c #E1BB22", "'$ c #AA660F", ")$ c #BC7613", "!$ c #D2AF23", "~$ c #C5BD3A", "{$ c #8BB16C", "]$ c #86AD95", "^$ c #6FA699", "/$ c #5C9FA1", "($ c #5B9FA4", "_$ c #62AAA7", ":$ c #58A1A4", "<$ c #4A98A6", "[$ c #499AA8", "}$ c #4999AA", "|$ c #4A9AAA", "1$ c #4A96A7", "2$ c #4A96A4", "3$ c #4A95A2", "4$ c #569A9F", "5$ c #609D9A", "6$ c #759D87", "7$ c #809B59", "8$ c #AEA53D", "9$ c #D2B027", "0$ c #DEBE2B", "a$ c #E4B821", "b$ c #E3B822", "c$ c #B0680D", "d$ c #BE7813", "e$ c #CC9D1F", "f$ c #D0AF29", "g$ c #CEBE35", "h$ c #A3BA4E", "i$ c #8CB191", "j$ c #8AB198", "k$ c #75AA9A", "l$ c #5D9FA2", "m$ c #4991A4", "n$ c #4494AB", "o$ c #4195AD", "p$ c #4193AD", "q$ c #4193AB", "r$ c #4D919C", "s$ c #659F9A", "t$ c #7EA088", "u$ c #7C9F62", "v$ c #B4A637", "w$ c #D0B32D", "x$ c #D5B72A", "y$ c #DBBC2A", "z$ c #E2C851", "A$ c #EAD16D", "B$ c #E3BF32", "C$ c #D9B022", "D$ c #9B5E0D", "E$ c #B26B0F", "F$ c #BB7112", "G$ c #BD7714", "H$ c #C68B19", "I$ c #CD9E1E", "J$ c #D3B126", "K$ c #CABE37", "L$ c #B5BD45", "M$ c #89AF72", "N$ c #89AD91", "O$ c #79A896", "P$ c #83AA91", "Q$ c #86AA8E", "R$ c #86A78C", "S$ c #82A684", "T$ c #83A674", "U$ c #9EAF4C", "V$ c #BFB73C", "W$ c #D0BB31", "X$ c #D5BC30", "Y$ c #DFBF2A", "Z$ c #D7BC28", "`$ c #DABF51", " % c #EAD995", ".% c #DFBC42", "+% c #CC9E23", "@% c #B88520", "#% c #9A5716", "$% c #9F5F0C", "%% c #B4680F", "&% c #BA7011", "*% c #C9921C", "=% c #D4B227", "-% c #D6C02F", ";% c #D2C135", ">% c #CBC63E", ",% c #D1C136", "'% c #D4BF33", ")% c #D5C032", "!% c #D8BE2D", "~% c #D7BD30", "{% c #DABF29", "]% c #E0BF25", "^% c #DCBC27", "/% c #D9B522", "(% c #CFAD22", "_% c #CCAA23", ":% c #CFAF2E", "<% c #D0AA45", "[% c #C5852A", "}% c #B96B1E", "|% c #AC5F1B", "1% c #994814", "2% c #9B4B16", "3% c #924313", "4% c #B0660F", "5% c #B66D0F", "6% c #BE7311", "7% c #C27B15", "8% c #CB8F1A", "9% c #D1A11E", "0% c #D29D1F", "a% c #D5A420", "b% c #D7AA20", "c% c #DAAC21", "d% c #DBB222", "e% c #DDB322", "f% c #DDB824", "g% c #DEB31F", "h% c #E0B41D", "i% c #D9AF1E", "j% c #C89E1D", "k% c #BC951D", "l% c #C6A623", "m% c #C4A023", "n% c #AC7B1B", "o% c #A45419", "p% c #AC5019", "q% c #AE5119", "r% c #AD551A", "s% c #A9531A", "t% c #954414", "u% c #82370E", "v% c #A9660D", "w% c #BF7412", "x% c #C37B14", "y% c #C88315", "z% c #CB8916", "A% c #CF9016", "B% c #D39716", "C% c #D69A19", "D% c #D8A019", "E% c #D9A51A", "F% c #DAA71B", "G% c #DCA81B", "H% c #DBA71C", "I% c #DBAC1C", "J% c #CFA21A", "K% c #B98A18", "L% c #9F7016", "M% c #BF9C20", "N% c #B9921C", "O% c #894F10", "P% c #833C12", "Q% c #964215", "R% c #A54D18", "S% c #BE5F1F", "T% c #B3581C", "U% c #994416", "V% c #853910", "W% c #722E0C", "X% c #AD6611", "Y% c #C27A13", "Z% c #C78214", "`% c #CA8815", " & c #D19218", ".& c #D39818", "+& c #D59E18", "@& c #D79F18", "#& c #D7A01A", "$& c #D19F18", "%& c #C79519", "&& c #936C14", "*& c #63430A", "=& c #967313", "-& c #AD861C", ";& c #7C470F", ">& c #692D0C", ",& c #76330F", "'& c #974616", ")& c #B0531B", "!& c #9B3C12", "~& c #9D4012", "{& c #903B11", "]& c #82350F", "^& c #792F0C", "/& c #B46A10", "(& c #B66E10", "_& c #BB7412", ":& c #C27D10", "<& c #C78112", "[& c #CA8713", "}& c #CD8E14", "|& c #CC8E16", "1& c #CE8F16", "2& c #D29616", "3& c #452E05", "4& c #865D0D", "5& c #774D0E", "6& c #643209", "7& c #562507", "8& c #4F2006", "9& c #813A10", "0& c #954514", "a& c #913F12", "b& c #AA4B17", "c& c #A14111", "d& c #9B3F12", "e& c #9E4A17", "f& c #A45517", "g& c #9D4C18", "h& c #4B1C04", "i& c #401803", "j& c #461C05", "k& c #70330B", "l& c #70300D", "m& c #813B10", "n& c #883B11", "o& c #933810", "p& c #BA5C1D", "q& c #BF6122", "r& c #B55A1E", "s& c #984B17", "t& c #79310E", "u& c #7A300D", "v& c #542303", "w& c #602807", "x& c #5A2709", "y& c #652A0A", "z& c #7D3910", "A& c #A04F19", "B& c #AF561A", "C& c #B75B1E", "D& c #B4511B", "E& c #9E4113", "F& c #893810", "G& c #80330D", "H& c #964617", "I& c #552305", "J& c #582507", "K& c #6A2F0B", "L& c #7A3A0F", "M& c #894212", "N& c #863D11", "O& c #A54014", "P& c #A04113", "Q& c #A24C19", "R& c #A5561C", "S& c #9B4A19", "T& c #602B08", "U& c #612908", "V& c #5B2708", "W& c #672D0A", "X& c #672C0C", "Y& c #6A2A0B", "Z& c #A64515", "`& c #BF5C20", " * c #BD6422", ".* c #AE571D", "+* c #A45119", "@* c #A2511B", "#* c #502206", "$* c #4C2005", "%* c #451B04", "&* c #542107", "** c #793710", "=* c #742F0C", "-* c #CA6B25", ";* c #C16624", ">* c #9E4E19", ",* c #A4551A", "'* c #381403", ")* c #371502", "!* c #5A2509", "~* c #7C3B0F", "{* c #864011", "]* c #954814", "^* c #AA551D", "/* c #B96120", "(* c #C66525", "_* c #BA5D1F", ":* c #9F4616", "<* c #934114", "[* c #A5551B", "}* c #A05217", "|* c #391602", "1* c #5F2908", "2* c #6B310A", "3* c #5C2808", "4* c #692F0C", "5* c #954916", "6* c #9D4D18", "7* c #B65F1F", "8* c #BC5E1F", "9* c #A84615", "0* c #A64917", "a* c #A85219", "b* c #A2501A", "c* c #572306", "d* c #421905", "e* c #4D1F04", "f* c #5E2807", "g* c #7D3C10", "h* c #7D3710", "i* c #9F4E18", "j* c #B0581D", "k* c #A44917", "l* c #AC4B17", "m* c #984213", "n* c #AC561D", "o* c #9C4C17", "p* c #431904", "q* c #552406", "r* c #602A09", "s* c #72330D", "t* c #9A4D19", "u* c #9C4917", "v* c #A64E19", "w* c #A14214", "x* c #A44715", "y* c #B65B1F", "z* c #AA541B", "A* c #8B3E13", "B* c #823A10", "C* c #492205", "D* c #522205", "E* c #542207", "F* c #843C11", "G* c #924715", "H* c #984717", "I* c #873710", "J* c #B65A1D", "K* c #BF621E", "L* c #AB4F18", "M* c #903F13", "N* c #7A370F", "O* c #6E310D", "P* c #3F1903", "Q* c #351401", "R* c #441A05", "S* c #562307", "T* c #73320E", "U* c #8A4313", "V* c #984513", "W* c #833910", "X* c #662C0A", "Y* c #381603", "Z* c #7C380F", "`* c #884111", " = c #974814", ".= c #9C4B15", "+= c #904213", "@= c #71330E", "#= c #5D290A", "$= c #562708", "%= c #582506", "&= c #5A2806", "*= c #6E300B", "== c #79360E", "-= c #74350F", ";= c #672F0A", ">= c #471F06", ",= c #4E2105", "'= c #522107", ")= c #502107", "!= c #5F2B08", "~= c #451C04", "{= c #481E05", "]= c #411904", "^= c #391702", "/= c #3C1A01", "(= c #481E02", "_= c #431900", ":= c #381401", "<= c #250D00", "[= c #2C1201", " ", " ", " ", " ", " ", " ", " ", " ", " . + @ # # $ % ", " & * = - ; > , ' ) ! ~ { ] ^ / ", " ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b ", " c d e f g h i j k l m m n o p q r s t u v w ", " x y z A B C D E F G H I J K L M N O P Q R S T U V ", " W X Y Z ` ...+.@.#.$.%.n &.*.=.-.;.>.,.'.).!.~.{.].^. ", " /.: (._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j. ", " k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N. ", " O.X P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+%+&+*+=+-+;+>+,+'+)+!+~+ ", " {+]+^+/+(+_+:+<+[+}+|+1+2+3+4+5+6+w.7+8+9+0+).a+b+c+d+e+f+g+h+i+ ", " j+{+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+C+D+D+E+F+G+H+I+J+K+L+M+N+ ", " O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@ ", " ^@/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@8@9@v+0@a@b@c@d@e@>@f@g@h@i@j@k@]@l@ ", " m@n@o@p@q@r@[@s@t@u@v@v@w@x@y@z@A@6@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@ ", " R@S@T@U@V@W@X@Y@Z@`@ #T..#+#@###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]#^#/# ", " (#_#a :#<#[#}#[@|#1#2#3#T.4#5#6#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m# ", " n#o#X p#q#r#s#|#t#u#v#w#x#y#z#A#B#5#C#D#E#F#G#H#I#J#K#L#M#N#O#P# ", " Q#R#S#X T#U#V#W#X#Y#Z#`#W+ $.$.$+$@$#$$$q+3#%$&$*$=$-$O@;$O#>$,$ ", " '$)$S#!$~${$]$^$/$($_$:$<$[$}$|$1$<$2$3$4$5$6$7$8$9$0$P@a$b$ ", " c$d$o#e$f$g$h$i$j$k$l$m$n$o$p$q$n+r$s$t$u$v$w$x$y$z$A$B$C$ ", " D$E$F$G$H$I$J$K$g$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$> `$ %.%+%@%#% ", " $%%%&%F$d$o#*%U =%-%;%>%,%'%'%)%!%~%{%]%^%/%(%_%:%<%[%}%|%1%2%3% ", " 4%5%&%F$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%E$&%&%w%x%y%z%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W% ", " X%%%&%6%Y%Z%`%A% &.&+&@&D%#&$&%&&&*&=&-&;&>&,&'&)&!&~&{&]&^& ", " /&(&_&:&<&[&}&|&1&2& 3&4&5&6&7&8&9&0&a&b&c&d&e&f&g& ", " h&i&j&k&l&m&n&o&p&q&r&s&t&u& ", " v&w&x&y&z&A&B&C&D&E&F&G&H& ", " I&J&K&L&M&N&Q%d&O&P&Q&R&S& ", " T&U&V&W&X&Y&]&{&Z&`& *.*+*@* ", " #*$*%*&***=*s%q&-*;*s%>*,* ", " '*)*!*~*{*]*^*/*(*_*:*<*[*}* ", " |*1*2*3*4*5*6*7*8*9*0*a*+*b* ", " c*d*e*f*g*h*i*j*k*C&l*m*n*o* ", " p*q*W&r*s*t*u*v*w*x*y*z*A*B* ", " C*D*j&E*F*G*H*I*J*K*L*M*N*O* ", " P*Q*R*S*T*U*H*s%p%V*W*4*X* ", " Y*r*k&Z*`* =.=+=@=#=$= ", " %=&=3*W&*===~*-=;= ", " >=,=7&7&'=)=!= ", " ~={=]=^=/= ", " (=_=:=Y* ", " <=<=[= ", " ", " "}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/wilber.xpm�����������������������������������������������������0000644�0001750�0001750�00000022405�12214432632�016300� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 210 2", " c #618561856185", ". c #EFBEEFBEEFBE", "X c #618565956185", "o c #D75CD75CE79D", "O c #CF3CD34CDF7D", "+ c #CF3CCF3CDF7D", "@ c #C71BCB2BDF7D", "# c #C71BC71BDF7D", "$ c #BEFBC71BDF7D", "% c #BEFBC30BDF7D", "& c #BEFBC30BD75C", "* c #AEBAAAAAB6DA", "= c #B6DABEFBCF3C", "- c #C71BCB2BD75C", "; c #C71BCB2BC71B", ": c #B6DABAEAC71B", "> c #A699A699B6DA", ", c #8E38820779E7", "< c #AEBAB2CAC71B", "1 c #AEBAB6DACF3C", "2 c #BEFBBEFBCF3C", "3 c #BEFBB6DAAEBA", "4 c #B6DAB6DAB6DA", "5 c #71C671C671C6", "6 c #618559655965", "7 c #965892488E38", "8 c #71C66DB65965", "9 c #9E79A289AEBA", "0 c #96589A69AEBA", "q c #A699A699BEFB", "w c #B6DABAEACF3C", "e c #A699A2899658", "r c #9E799E79AEBA", "t c #AEBAAEBAB6DA", "y c #BEFBC30BCF3C", "u c #86177DF771C6", "i c #51444D344103", "p c #86178A288E38", "a c #8E388A289658", "s c #A699A699AEBA", "d c #BEFBC71BD75C", "f c #71C66DB66185", "g c #69A665955965", "h c #861786179658", "j c #79E77DF78E38", "k c #96589658A699", "l c #A6999E798E38", "z c #9E79924879E7", "x c #A6999E799658", "c c #596555554103", "v c #492438E328A2", "b c #38E334D328A2", "n c #38E328A21861", "m c #41033CF328A2", "M c #30C230C228A2", "N c #30C220811861", "B c #30C22CB22081", "V c #4924451438E3", "C c #596555555144", "Z c #71C66DB669A6", "A c #96588E389658", "S c #A699A289A699", "D c #69A661855144", "F c #6185659569A6", "G c #6185618569A6", "H c #86178A289E79", "J c #BEFBC30BC71B", "K c #96588A2879E7", "L c #861779E76185", "P c #69A659654924", "I c #410328A21040", "U c #38E324920820", "Y c #30C220810820", "T c #28A218610820", "R c #208114510820", "E c #186110400000", "W c #18610C300000", "Q c #20811C711040", "! c #492449244103", "~ c #9E799A699658", "^ c #79E775D66185", "/ c #69A665955144", "( c #618561855144", ") c #61855D754924", "_ c #410345144103", "` c #49244D345965", "' c #79E782079658", "] c #AEBAAEBAC71B", "[ c #B6DABEFBD75C", "{ c #B6DAAEBAA699", "} c #96587DF76185", "| c #38E320810820", " . c #28A21C710820", ".. c #104008200000", "X. c #49244D344924", "o. c #79E779E78617", "O. c #71C669A65965", "+. c #596559654924", "@. c #28A22CB230C2", "#. c #410345144924", "$. c #41032CB21040", "%. c #30C234D328A2", "&. c #69A669A66185", "*. c #38E338E330C2", "=. c #186118611861", "-. c #79E782078E38", ";. c #9E7996588E38", ":. c #186110400820", ">. c #514451444103", ",. c #492449245144", "<. c #8E3871C65144", "1. c #5144410328A2", "2. c #410330C21861", "3. c #28A224921861", "4. c #28A228A22081", "5. c #38E338E328A2", "6. c #4103410330C2", "7. c #51444D3438E3", "8. c #28A2249228A2", "9. c #514455556185", "0. c #8E388E389E79", "q. c #C71BBEFBB6DA", "w. c #79E779E771C6", "e. c #596559655144", "r. c #4103410338E3", "t. c #41033CF330C2", "y. c #28A22CB228A2", "u. c #104010401040", "i. c #30C230C238E3", "p. c #6185659571C6", "a. c #F7DEF3CEF7DE", "s. c #EFBEF3CEEFBE", "d. c #DF7DDF7DD75C", "f. c #C71BC71BBEFB", "g. c #BEFBBEFBBEFB", "h. c #61855D755144", "j. c #4924492438E3", "k. c #08200C300820", "l. c #18611C712081", "z. c #71C679E78E38", "x. c #9E79A699BEFB", "c. c #965896589E79", "v. c #C71BC30BC71B", "b. c #EFBEEBADE79D", "n. c #D75CD75CD75C", "m. c #E79DE79DE79D", "M. c #CF3CCF3CC71B", "N. c #DF7DE38DDF7D", "B. c #28A22CB22081", "V. c #38E33CF34103", "C. c #8E389248A699", "Z. c #861786178E38", "A. c #514455555144", "S. c #38E33CF338E3", "D. c #618561855965", "F. c #E79DDF7DDF7D", "G. c #9E799E799E79", "H. c #DF7DDB6CD75C", "J. c #AEBAAAAAA699", "K. c #38E338E34103", "L. c #A699AAAAC71B", "P. c #596559655965", "I. c #28A228A228A2", "U. c #965896589658", "Y. c #A699AAAABEFB", "T. c #30C234D330C2", "R. c #596555554924", "E. c #082004100820", "W. c #59655D7569A6", "Q. c #30C234D338E3", "!. c #86177DF769A6", "~. c #69A66DB669A6", "^. c #96588E388617", "/. c #79E779E76185", "(. c #186118611040", "). c #96589658AEBA", "_. c #AEBAB2CACF3C", "`. c #79E771C65965", "'. c #514455554924", "]. c #8E388E388E38", "[. c #6185514438E3", "{. c #71C65D754924", "}. c #79E765954924", "|. c #A699AEBAC71B", " X c #AEBAB6DAD75C", ".X c #B6DABAEAD75C", "XX c #79E77DF779E7", "oX c #5144492438E3", "OX c #71C661854924", "+X c #9E797DF75965", "@X c #B6DA965871C6", "#X c #AEBA9A6979E7", "$X c #96589A69A699", "%X c #9E79A289B6DA", "&X c #208120812081", "*X c #49244D345144", "=X c #410341034924", "-X c #514455555965", ";X c #69A669A671C6", ":X c #69A671C679E7", ">X c #8E3892489E79", ",X c #208120811861", "<X c #59655D756185", "1X c #71C675D68617", "2X c #69A66DB679E7", "3X c #69A669A679E7", "4X c #79E77DF79658", "5X c #9E799E79B6DA", "6X c #79E786179658", "7X c #86178E38A699", " . ", "X o o o o o o o O o O O O O O O O O + O + + + + + + + + + + + + + + @ @ @ # @ # # # # # # # # . ", " o o o o o o o o o O o O O O O O O O O + O + + + + + + + + + + @ @ @ # + @ # @ # # # # # # $ . ", "X o o o o o O o o O o O o o O O O + O + O + + + + + + + + + @ + @ + # + # # @ # # # # # # $ $ . ", " o o o o o o o O o O o O O O o + o + + + + + + + + + + + + + @ @ # + # @ @ # # # # # # $ $ $ . ", " o o o o O o o O o O o + o O O + + + + O + + + + + + + + @ @ + # + # @ # # @ # # # # # $ $ $ . ", " o o o O o O o O o O O O O O O O + O + + + + + + + + + @ @ @ # + # # @ # # # # # # # $ $ $ $ . ", " o o o o O o O o O o + o O o + O + + + + + + + + + @ + @ + # + # # + # # # # # # # $ $ $ $ % . ", " O o O o O o O o + O O + O + + + + + + + + + + + + + @ @ # + # @ # # # # # $ & $ $ $ $ $ % $ . ", " o o o O o O o O O O + o + O + O + + + + + + + @ + @ @ @ @ @ # @ # @ # # # * = & & % $ % % % . ", " o O o O o O o + - ; + @ + + + + + + + + + + : > @ # @ # # @ # # # # # # = , < < 1 2 & % % % . ", " o O o O o O O O - 3 4 : = @ + + + + + + + + 5 6 = = & @ # @ # @ # # # & 7 8 9 0 q w & % % & . ", " O o O o + O O O + 3 e e r : : t - @ @ @ y = u i p a s 1 d $ # # # # % e f g h j k < & % & & . ", " o O o + o + O + - : l z x e x , c v b n m M N B V C 6 Z A s w & & & S f g D F G H < & & & & . ", " O o + o + o + O + J e K L P v I U Y Y Y T T T R E E E W Q ! 0 > w ~ ^ / ( ) _ ` ' ] [ & & & . ", " o + o + O + + + + - { } v I I I | Y Y .T T T R E E W ......X.o.7 O.( ) +.+.@.#.j ] [ & & & . ", " O O + O O + O + + @ 4 L $.I I U Y Y Y T T T R E E E W ......%.&.O./ ( ) c *.=.#.-.] 2 & & & . ", "X + O O O + O + + + @ : ;.v I I | Y Y .T T R E :.E W :.:.Q M i ) ( ) ) c >.%.=.,.h ] [ & & & . ", " O + O + + + + + + + J { <.1.2.I n n N N N 3.3.3.4.3.4.B 5.6.7.c +.c c >.i M 8.9.0.< [ & & & . ", "X + O + O + O + + + + - ; q.z 8 ) +.O.w.Z e.r.5.b b b 5.t.t.V 7.>.>.>.>.>.y.u.i.p.0 1 [ & & & . ", " + O + + = d @ @ + y . a.s.d.;., 3 ; ; f.g.7 h.i 7.V V V V V V V j.j.j.8.k.l.#.z.x.w & & & & . ", "X O + @ c.Z o.a > 9 v.a.b.n.m.M.f.. N.N.N.N.n.e ( ) >.>.j.V 6.6.t.6.6.B.k.=.V.p.C.< [ & & & [ . ", " + @ Z.A.A.S.8.D.7 F.a.G.A.X.H.. a.. H.J.S n.f.g ( +.>.j.6.t.5.b 5.u.k.=.K.G 0.L.w [ & & [ [ . ", "X + = P.~ J.X y.I.h.q.a.S.=.k.J.. . . S p 8.U.f.g ( c 7.V t.5.b b M k.=.K.F H Y.w [ & & [ [ [ . ", " + c.X.J.J.X T.y.r.u f.u I.R., n.b.b.A._ E.X e / ) >.7.V 5.b b b u.u.@.W.H L.w [ & & [ [ [ [ . ", "X + X Q.w.5 X.T.*._ h.u , ^ !., e H.H.~.=.8.^.w.) c 7.V t.m b b B.k.l.,.j q w [ & [ [ [ [ [ [ . ", " + X I.X.X.S.S.! A.e.8 8 /././.L ~ f.f.7 ^.w.( +.>.7.V 6.5.5.b (.u.i.p.)._.[ & [ [ [ [ [ [ [ . ", "X + * I.y.*.S.X.C X D.h.O.8 `.^ `.`.^ f f g ( ) 7.t.V 6.5.5.5.B.u.l.,.-.q w [ [ [ [ [ [ [ [ [ . ", " + : ! T.S.X.P.X Z D.c ) / O.8 O.O.g ( / ) +.c b t.t.t.b 5.b B u.@.p.C.< [ [ [ [ [ [ [ [ [ [ . ", " + & c.X.X.C X 5 w.'.j.7.c ( ( ( ) ) ) c >.7.b m i j.m b b M k.=.#.j q w [ [ [ [ [ [ [ [ [ [ . ", " + d 4 ].X X 5 w.&.V V j.7.>.) +.c >.c 7.t.m v [.{.{.}.}.<.<./ D.F H q 1 w ] 0 c.|._. X.X.X.X. ", " + @ w 9 p XXZ D.! r.6.6.V V 7.! V t.M 3.4.m oX{.OX}.<.+X@X@X#X^.5 p $X9 a A.S.X.~.a x.|._..X. ", " + # & Y.-.XX, C b B.B.B.B.Q Q (.(.=.8.B r.>.D./ V m m v OX} K 7 S S s * X *._ X.P.~.p 0 Y.< . ", " + @ @ = %X' F F A.X.B.k.E.E.k.(.&Xy.t.! e.h.) t.B.&Xk.u.=.8.*._ *X=X-X;X:X_ X.A.X 5 XX].$X).. ", " @ @ # $ = Y.>X:X-XP.A.8.S.*.%.B.%.*.r.! ! %.,Xl.(.u.=.8.K.V.V.V.V.#.-Xp.;Xp.<X<XX 5 X #.9.z.. ", " @ + # @ $ & < %XH 1XG ,.V.Q.i.S.T.y.I.I.I.I.8.u.=.8.V.-X2X1X1X:X3X2X1X' H 4Xp.*XK.@.i.Q.` 2X. ", " # @ # @ # # d = < q k h 1X2XF 9.,.V.Q.T.T.T.i.V.V.9.:XH 0 x.x.%X0 0 5Xq L.x.C.4X3XW.9.W.3X6X. ", " + # @ # # # $ $ & = w Y.q %X0 0.' 1X2X3X3X3X2X2Xj H 5XL._.w w X1 _. Xw X X|.q 0 C.7X7X).x.. ", " # @ # # @ # # # $ $ % & & .Xw _.] q x.%X5X5X5Xx.q < _.[ [ & [ [ [ [ [ [ [ .X.X X_.|.|.|.|. X. ", " @ # @ # # # # # # $ $ $ % % & & [ 2 w w w w w w w [ [ [ [ [ [ [ [ [ [ [ .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.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 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 Xw X X X. ", " $ # $ $ $ % $ % % % & & & & & & & & & [ [ [ [ [ [ [ [ [ [ .X.X.X.X.X.X.X.X.X.X X X.X X X X X. ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/GreenWilber.png������������������������������������������������0000644�0001750�0001750�00000016430�12214432632�017202� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���gAMA��± üa���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� m„·���tIMEÐ c<ëD��•IDATxœí›}¬¥Ç]ß?¿™yžó~îëÞÝõÝw¯c;Nìu°›$€”ܸIH*Ú¢PÚ*´¢¨jiE¥‚TÚòGù£ª¡ª‚ÒJ¥"4¢-B ‚@'±ß½ñ®w×»wïëyÎó23¿þqî]ßuÖÞ…†ºRù]=ºç™gÎ9óûþ~ó™ïÌ¿°¿°ÿ¯Mþú~}«ðósnäì›}ÆŸ8&�†J8,zO pÞãU™úŠ­-®Þw;Û|ÌëºQ[t_ùŸ *�†JÜ öþµ÷> Á#֡΢bXKS^è Õ·»ÑßN»e�†J¸h�ìÀ¹YtŠ|VV«_‹Öø“®|k6Ô>œ `�->WÆ×?+>WÞ,â·!+n €¡RÞ Ô`æ|ð`ÝkÎï•ÃkeÞ#ÓÊT¿úä'?óÄ ð€¾ü•Kf¼3­£´€ È5W•ºxf $€Ý­ü Ü*oH¶· ÀàÀ~Gƒ¿.Ò×™÷HQ ¿øååw^ì¹Õ‰5/­»óÑEni>*}•yÑ©ŠxëJ¬2?WŽ«¹¢Ó¨u ËTAmÝœ•DžÐRŸ‹C-ýûðfŽß~rU�ûòùË{�¾!�îœ_º‘ó{¯÷g�ÀpjÜÙ«ië«çj«¿®ó‰AiîˆJˤ>ÃJtÛµÁ$-¡Š}%7ÞFMµšÁÄL¢ªJNA¤Ä†Q̰œ#áwMS>ëîw¯ø'ü°²¼cš+Ë ý/?þÌþzûI@o �3¶¿ÎB@°î[£ðØÙöÊgŸlàù­ôI#©Õ–RIÛÖ4½OÊ2Äö¬wÞøŸËç¥oÔd–l{ SÁµQ¢B+ä-TãDç’qOôÚ5-óÓ»_÷-]À#K‹ss‰³'*¾þïz þÞ—¾&ªzÍ{Ñ]0n€ù½ƒ¾¸ÁÖ‘nY´ÒîÒ Û!›Mâ^„ˆüúsé»ÏîØ¦iÚì,´cÚHc¢·•b=eQc¬ˆ ÄTÞ1T•¯ùT Îxc AÔ$‘h” ! Ã„¿cü9`ýF]\èrúäêb’¸{·v_ÛÚê#"U£1"èŠêŒpnfý7ùøÈühë®—_~ç‘n£(^K©ÍQšîL·#éb£ÓŒÍfC¬&L· _œÄÑ¥L¦[¥õ=•8�-@+•‚QÅXÁ9«Î85Áb¢U ‚ñ"Ò¢ã6JýÑô{’½è_Çcß÷w·€;­5÷45c¬a·""ìýíÚ­dÀ5KUÙ¨OÇó·…ð®#UeŸìÌ=©Õ* €ç.w–|¨Í×ëuS¯¥ÆÙDóqi¦[i«éœæêC@‡Šk:Œ7H”Ô¨¤1L4A¢hTõ ^à‰b0¢šÆ¹|—ÔÅ�{dx­+ÌuÚ'вü¤íZ-Õ_ÿܪ5TŒˆˆªªê¬þ­�0šÞÏú}oôâ°×kûƒsïýðÎZiíádéÀ¹5€§.ÎT__°&qõfF½-2-%oÚZ´MK¢UÔ)â”jÇãGS)Fm UÔª&ÆèT™ € XÄ$¢ÚÀiɽ1×ï­}_úùâóå^ �ý±¨<£þ¦"@ˆq/TUEä5긕.ÐßÏü‡Žl÷ZÝíË—¯®WùøÐ{ûWÞu_QX³9Lk/^i=ªdÙÅ”4Ô¤™´%µ)xe´>füê+ͤ©­¤EBŠU‡Å"ãœg1–�1FbPbŒ *(ƤF°´µˆUÌõéÿcŸúø?ñ!~Ü“(ºäCH^çKd6·»€ÜœG#ÖÓ„U�gÑ¥y±½¶Ó[¿¸ùJbžÙ¸²òþ_ûÌêë­ó½qV;áóØðƒBÇ.çR5ÖÊâE¢D|¨0MK¢‰øI…ñ£‰‚Á€ªÄ CäÚ#­"ª*Õ1÷ùõ¸¬}êo|¤›$ö/{ï\•®µÆ…ƒˆ„ý¾x¾eÔº�²Úeç꘭´Æò.Û‡îÂv_’‹ÏøjáŽÍ‰Ç«ƒÆ‰~zàrE<`M0¶îT¢Õš­K½YSí ãiF6£*ZŽKÉv¦„I@s%zE£âcć@¨eö,zUÄ ’c´dÅYû|èÿ1qöþÂÏ¢,{ïS°ÖÕAo6Ñ»¥a_à…û¿ƒ€Z­Ž®¬n·Lyiä3 XŽEgQÜÔ…%Æ¡Êæ+ÛºppNLÍIJ,„ „iI/cøêˆbTRnU”UEt`3vR¢‰¨Q4DT"vǬ)Ku¢Ò%è÷&FÚ!„KÃq&UåYœï¢êßÜ <}#ŸŒQ}ó Ý‹ï~€l¨< Ü"ÍÿþÇîxI<ܯ®.VjÁ *jJ¢Ä`ˆ>Ú@EÜ)¤˜”¤ '>xÊ2H1)ÉGUá 1"Ðq **bˆ *I€¸;{‰¨Œ$JEeÔ„®knÜwôôèŽå£ŸPe)Ër¦Ó\P%„ eY-'ÎÚʇpcõ¦�Ìj]aø¯>{à‰ç_Iôò ûÃõÅÖb$4"*QYª U¢FT#U(™"1D|e$Tªôøà)«’”âÁ3›§%BÈý¬+Œ‰Œ µêJ{c¥6?¹cu5Y]^¹H³,—,Ï™f ]bŒÃÊûß®*¿É¬bTÁ¼�ל?þ“¸ð³›´¿«qüþkúñƒÇ—>Òœo,Aæ£Æ:¨S?ûš•eUR…ŠÒWïw™B(hˆx(}Å4Ÿâ«0k¦ƒ("Ä2‡šÅŒ1ÑŽmXªÍm¼ýèñîê¡åCÍz½ ¸I–Ë´È™L¦D"ÎZ 1nyùËÀZåC|7ï ÷Ä$Yøhûû»Çš?<¿Ü~ ©¹®ŠºÊG§! ±šE<H Ä€×@+"«+„ ¦“_Bð¾Â—Q}ð"ZÍf‡Œ€¡jÅL¦ä S{i¾Ñ^]=´rÛÊâB'u®îC0Ó¼dЃB4ê5•Wžxú¥Ï»°ö¦Kå›q��ËßÙéÌÇZõæ;F¼úKZhMK–bˆ5WLJSM+° xU,‰èl¢@”ÝÕ½¢1‚§òŸyÕLÐBgÊ€e q…œùN§ÕH{Æ8#škKÝû`ãŒ^oˆC=MpÖR¯×ñÁYVl­oön怼Ñ0±G€ྟyÛ\1,æl°-)m3mV½êÃù |WÈㆭ\Y\8Y…²YV•‰ 1îeJY¼÷øÜϺˆÌÐ{F aPiLĈ`qaN,uÊ,›Fç¬ë´Æëò¢Qç°Ö0×iÓn7t4Î.^º¼ñÅgž?÷«Àï©^Unèãe€î^<ðƒgäk?ýä�쯦ixÏ»<xâôÉeƒ&!²µ½É ì0O ãHUÁ$ 5MðY†Xƒõ2Ó;¢Õ$ŠÚà(s/EQŠbH'Ífƒ¨PU^jiZ;¸¼¨›Û;áòÕQU­×é4Hf—Z³É•µ­õK—7<pFgâí�[ûœ¾N¸©"”$‰©ªj?‘˜»ï¾káýï{ßwßýö·ÿCïýw,--7Ž?.?þ¾ô‡_еÍ+Ò”'O½÷<ô^ßv­v——_~™ož=Ë׿þ8ëë2O4Æ ŒˆÁ‡@6ÍËÂü1FBTŒ(«‡éÎ5ãd”é(›’M¦VÄ2×mÑnÕc½‘øµ«½µõíW‡£¬QU~ Xz» üÚ>,»Óa{#§»ÝîýƘ‘GDä“ι[kW“$™xï'?ö÷~ôÌ÷ÿÇþµÉ]kkW›_øÂd:òÐCspå/<û¬,Xá¾3ßu5žxò)úý>§OŸæÎ»îâðáÛ(+/ýA_Œq"X ÍF²¨O¦Lóë,ÎYB„é4'Æ(zV³Nš¦Ìušâœ‘ bG¯\XËGã霵v^„Ec¤mŒ± 'Eä/©ê�Åþ,ø�:ÎO†~ÑZû¡Z­ö~kÍçÜG€OvZ­w¼ëþw:}ÇÝFõíímóo|ƒ~¿sŽ£GÉæú:ïyÏÃÌÍ/qåòezý>_þò—å‰'ž ÆÈñãÇyðÁ¥×ë±¹¹AQ䈀¡Ñ¬SKÃÑd¶Œ|P²¬ /Q£4ëui4SÍz4V¦/Ÿ¿¼±¹=èxº!„¬VK/Yk›€Xk+cL°Ö~sVBçØå·ë�h·Ûÿ ø™4Mí=÷Üãî¹çÓl¶L«Õ"IRc¬—Uõ¶P…ïyø¡å_ø…o¾øÅ/²µµÅüü<wÞy'­ff#åöÓwÒ ùèG?ÆÂÂgÏže}}áÞ{ïv»Ã…W^!Æ’ÃŒÉÓ„4uB %¢jHÓ1|�±ÎH–•ÚëÇ—.o ×®n ˜ÅcCUMUù~áœsɧТøÅ !üfá¥=çaß0Øn·þ9 ï{ßûÌ£>*""/½ô"?þ5ʲ¤Ýn™Crñò«G_xáyÐ(Þ{¹ûî»õþûï§È3z[°°°ÈÖv«W¯òÜsÏÉöö6ý~_«ªb~~žN§Ã`0`qažZ¢ŒG}ò¼ ÄHbWæÙØìÑL@<ÖÒZJÐÈ$+A«²,Gã|:O cì¢s.uΚb+ÆðÎâFžç øeàêºûþQà§fQiO’ĵ¾ð…ßåÂ…‹lnnˆˆ`ŒÑz½N–M¥,KùÒïQ?ö±êC?ÌÂÂ"=ô+++<óÔ“g}œPø¥_ú%ž~úiΟ?Ïââ"'Oždee…v»ÍÆÆ§Nâê•Wh¤ÐŒÈ¦epN8ºº‚µÛllõɦÆZÒ4 ôúcÆãlbÌfêŽTª„bTU#bRý ªŽŸ~g_ô `ínô»À¿�EDG£‘¢(e0HY–t:9rä(ªÊx<£ž#GqìØ*§Nž¢Õj²½q™§Ÿ|Œ²È@Ž;‰1–ÉdB·Ûå‘GáÑG娱cL& l®_fÐ[ŸµD ªŠÕˆ"Ô’c„þ`¼ËçÆñ>f@4Æ6f ’¢ª¥1¦´ÖNDDŒ1sÀm"r8ÌÀïe@X¨ªÊL&ÙÚÚ@-Ë’f³%NG»Ý®ŒFCBTÊiŸÞ†ÅP±±vžÍõËLÆ=agó ‹‹Ë¼ë]g8sæ UUqøða !ÐëípáüK¬_¹�Dœ³4)¨2™æ¨B­ž°´Ð¥¬<“INQä¨*Î9œsmk­WÕ`Œ©Tu¨ª£c©ªàµ6³Öªª.…Þ'"o1>¬ª¿¥ªOí°D™ÉÛ!0™L(Ë’²,‰Q1FÔ‘É$CU)ªÀ ? TSú½5¬}OU„í­uŠòk^=Á‰Sw1?סȧ¬]y•^o‡sß|‘‹ç_¢,3dW×4Ʀ ͨ1D5!Îôg Ç®páÒyQiUBŒQ¬µ km�r±ª*eYnTUõBtÎ]H’d (½÷iŒ±mŒy¾,Ë«eY~íŒÇc››ÛŽ1vcŒ”e©Þ{bŒbŒaii U•<ϹpáUU‘& eU1Í#!&¸Äag\e™³±>¡·³É+/¿Dg~ A0Öqõê«ô·6(Ê!b¬0ÍJª(Jh5k„0SˆbŒ$ê¸ýÄa¶v†±×k–e¶ÛíŠsNTµnŒ©WU•¨ê’1¦—$ÉÏïìì\ºñ½ þð¿�ç½'MS©×ëÌÏÏÓn·©ÕjŒF#z½‰s,,,U)*ÂLº²£`„¾¢È3м ×Û"ĈF(ŠïËY¤,“iÊÒã} V³6ÆHŒ39Lg’6ÖZ¨¦Ó¼Ì‹Ê8çsss]’¶3Ž0§£6þ–͵–à?{ûÈWKósºÖÝ^YYU•‚Bz-oëõúà¨j TFÃ,//Óé´%MSŠ¢”K—.QN›Ç‘¦‚5‚1Qg  Ý†Ç0Kß#!øÙÒ·*ˆµc Þ²¬ÐÁ`G£ŒQVˆÖZ³û¾@Ü]MŠdyèõGÓá(+£RªÚ$IÅûŠ]ç¡L„–Ä˧­>{§ ŸÀ&§Þ?­V$\¸äœK&“Iy] ƒ877wHDvbŒÉt:õ;;;®×ëIQTUEv»Å‘Õƒ4êA"‘ˆªbŒ`Œ $ªhŒÄ] ¬µdY®£q&[Û=dS 'b¬•V»m:í&ÎZª²˜eÔnäUfù`0®F“¼ÑÞùÊK–eZy“$ º+‡…`ƪaŠ Û1NO+¯Œæög©}daØøü&<ûMx‡p£ÅP·Ûý¤ÀÏ)t�»ÛétZœ8v«‡pV´–:’4Áƒ×ÒUŒUÐ8Û³Ø%Q@ØÚéëù‹W©§©¶5Ê¥Ñh˜F½Æx<&ìn@8ã@UN™æ^Ç“I¸¼ÖF1W$¢Å<D‹Ôw¬«OÀk´¦ˆ1*µ‘Òª9ù’M÷ÕíÇÚß|{¬ îXO±¾²vÃÕà§ŽJ&|jLñÃ^te¾ÛtKKs¦Ójb,ÔÒ”zÍ©qŽÄYv»ÁÏRV÷v]D]ÉAcÔ­¾®oöÈóŠÓÇê¡¥®´) ó-Í+'›;³Ùëã}I "˜ÈÖÖD7¶vâ•b:%W€)Ѫ…$ˆ5$™¢ ’fH}€Ìm`–7hý£/aOdPÌmöð츎ú™:#õ§®@ùt8ÂlÂŽ¤°|ÛúwZ×ÛºÝFZ¯Õf³±ÄIšZÕHÄ:‹*x?sÞÁˆÙScžìô† Gzý ­VC.ϳÐmrruAî<v@æ[u|ðZ¯ÛýŒþTÖwru½OVñâ«;~˜edSŠJ¦Æ¸²ôf|Ù€è@-’d \]}iMpwœ§õO¿NrÏ”êÉÖ,½îÊÐÌ"]/»Ž7SÀá×gÃgWŸ;õo›ýݱÉO$5[owZÒh$‰`ÀˆAPÄ #Õ‘$VC¬´ªƒá„i^0M‰Š$ÎÉü|‡ZÍÈ$+�´Ýl°XOâ©c ]Y’¹¹šæÓB‡ã\ ¨•ÔEÆ‹^ÖKW7ec«Ô¬À÷§¦šd¾, _Ÿ+âˆõH÷2ÍOý µ¿JúÐèµçB\O1K´0H+ŠòécÌN~½¡]p½ú?^øO¼˜l¾7&f©Õ©'VC]bœš£"Ö‰³"eé)ªŠi^à}Ôñ´˜5Ë9Y˜ïÐiµf+;ñ’çyQ2™dŒÆ¹zïu±Ûˆ÷Ýq$Þ}ûAÓj$*Š4jÎZ™Ÿ[#×uÙî•zö\ÎÙóS½¼)Ådšn«4ÆyXXåGžúO>¦õX¿–îâô�©ÍîÅ©(ŸþЛ9¿gž(¿Úþ“Õÿ™¾pß‹²~ï@‹C¦&Mµ´¼hÍœ¢°…âŒ1KKŒ58kqIгB’Ôð¾Õˆ*³¡RÑÍ­°±ÕÓ¬¬|ðe·Õ˜Þ~dÑÞ÷¶#‡î;1×”‹å¥Í¤¶”‹ÏSÍc¤˜œ?Û NÈÄw5ËgÏ­ú£Çžºïz“{vÔœ(®sBg à†�xÂì´ö[då/?_{ìös®·ü¢Y?µ£Óåßȵj{›!ÆÄ›Xwu×_é´k5çT%ú¼uItÖŠˆæE>™dÅ$˪¢¬BUV¡ª|ØÕò§iÒÇV¹»Ö‡G–%yûñÑ‘£KùJ’[oú¦1颩ûB ØÞèU/\Øì½üâÕ‹;ÏöÏ>?yÿW_|ô[×v†œr*|­û’{ïà ØÁq˜ñ^Z8'[­¡æi_¦õ-™t6Íx¾gò…‰©æ§¦êx[•ĺˆ¸Jbœ¦>‰1ïEY–eYyïCÐ¥ÂL« @D–ãWõúÁ«4õï8U̽mµXH¬1÷œìŸ´¶îî{ä_ÞåÒF1?·:Xþ.=öÛ/<ïÊ'Ÿ uÃWšwã7ô_ÿJ/Ûø;Ë_9|:|uuÓœØùíÚŸ›ù&VàeBeJ¼Œ(ì”Êa¾l’„Sº4Sæc-¦N¶â¤¿C¶Ñ#k É›#Šfޝ—øš':¥_ ×ãzÙ]÷Ý_¯ÚÚåÅ(ÍÊZ™UÍâ+ϵ'Ožk¾’¸$Þûêö++‹iˆöWî8~j¹v¢ÖjEI:l}7¾ðÒˣў>ú×çD¾óöÿq:|åÁ@}r¡væwö¸áM9`/ f@Sâ¥À›€JØ-D™R™ŒÒn1Iw˜Ô¶Éj}¦µ!ymBY+ð.¢ÖÍã\¸ø2ÛCöIïÌÄ X3©N4}ä4Ò�iÌfHR¯ V!uߨ×ýƒæüêGŽöß}òøâm¶Qwv[S-:qóÒÁéö½ó祋ÂׯdåÙÇ’üÜoÖ~âìÜò¡6Æb®éi³¥Ï „/K´ª e>"wr—QºœÊ–SLDå^OŠßzfŸó{‘·€ÓÙyäÙeO/€U$ H³‚$ÎvNƒÊNóÜ}‰ÃëÏ^=õÛêÖ©ûäü;»FÌ굄^56cYÖTÕš´V}¹ö·ësüýoî'Á7`·ï_ˇèXŒº}'l< ]j¡ ˜@,2J[¤$H Jœe"ÿ?Âg®ìûªk°Û¦�î®ã Œ" ÔXÐÜ·êèV&ÛýÌü—<½ðäØÖÕÙ£sØzjÄÆª^Ïô(¡ašÒ²ó4Ÿ=s—ÿlxnðƒçn €×ƒ°ñ=Ç÷“£Ãâ Ôp`FðûºÉþϼ›ƒs?Âgžß½•×]v÷Jp§wØ=Ÿ IDjq–•!4f]"nfižÜ3¹Ëžážg‘ºGZ•˜vÙ0E²(W—˜µSs›ê ¹npK]`„”ݨÞþû½—¯¯ÛT>Ý~|ÿv›ìûo€{b Ì™í¼ZEÒÝIÌ|…4¡U×[Ä-Þ@ž¢•…Òi¬LÆBžåŸÕßþ Ãå ™÷û=¹e¸‘Ãÿ‡¶Äõûºïÿî´¶¾Íεb™á»à‘T‘Z$X ‚Žkhî Ô+--Z47h)¼nù÷§:(ùm¶¹7y¶{B0Ù@šG¯•н~Gß,y´Ì! @·qœBéfK}y]Ðn”µoµnò\ÙXÝâP9y­îµy½¤0‹!ÇVBt õˆfJ .‚SPA Ãî w¿½•�Ôn©–$˜öz]¹SAºb>-šž8L`ºë›S ™E'-=RcÏõ·€[9¥ kò*‡õ0ûN­_³kãy'`¬BÑQ…¹Y¿ŸZð2T¢ ¹Ì¢Í¸«Å¿¥�¼éá¥×Ù‹Ì~²sãó R›¥ºq íˆÎ{40Kù(×R_ZšaÆ%À-þ`âÏËŠ›WÙµ5rXŸfö£­ëíZWpŠØ€¦Št¾(-vu€ZÜ÷§ßJ�&ªÚk²Îaýà¼>®#‚¸xãg×i <Íš¬¿•� n^åu6aÊLÁzN¸½ö¬¼Èš á­å€í?Ó»f œÃz8ÆÍ‡Ó=›�Y“W÷þoÛ·§»YKê����IEND®B`‚����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Magnify.tiff���������������������������������������������������0000644�0001750�0001750�00000010664�12214432632�016536� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�~��€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}à Ah´N D a¨FA@ÝòþzÁN·ë¡Öñ~ºœîÇûºä|µ\.WÓ}Æè~6 oéýÖZ €Å$Áð0ÂS"ƒL@ €Àoë ÿ�?Ÿà@(��€²ð, =˜�>à@7Óýæù~¼š§»=lÀy*˜LǪÑÔí~¸îÛ¸ÈX ˜JÉ(z )ƒ`cü�;€A�¢([BИ �ª€� •Ïø9Ï×ãØ�óu¹ž Wó Q=`Ç󻞟gáè~€IBWä‰EÇÃJ¬·Š)ˆ@hà4‹�ˆü ŸŽRx„fÉØ{‡‰ö€àØà�@�2`� Å #>‚�;žÈ±ÇáòП*Éðy€ÈnG(¨ˆ.~à� <æ‰À}äù\wEÙˆz’ €�A4‚…0˜"â‰î{� ’}„‘–r†ÁÖºŠÌZ�@� ``� G€��À�è=Ë1<È3ÈÏŸÇáø~ŸÌÈzŸgÐ�xž‡x�{ž@�t¦IÊGÈ|Fà&‚ 1ìD“§`ìRA¬Ô›S@!7‚¥Žã‰'aåJ’†ˆFX °` €Ç<€�²€PÊ�\j1³4��¯52ò3,¬…M Lþ@CDzŸ‹¡â«Uò[BzÕDZÊeCˆJj‰€86„™NvÄñXw‘öZb8‹@‰,/ À€Îw”¹.h„©æ À©æÑNƒ(ï²àH Ê÷E$E X J SÉy€ÚTØç³ì{œ.˜}HÕ~°�`Žqð}à5¸{LÁÈf Ne À@Bžd*u ÅiryPà0¢N‘ éX}GØ`Ÿa!ì_¨uŸ× £¼--¦Í·³Êš$ÛÊ�w6<O;Ìó€Lû<çjL‰ÿ‡ÕT{R9ó±vèøÈǼzžõp ug0ìBÈ|†(Æ<œbiåÕÛÒDY Ñƃà@8lž ¨�T:åéÖƒ`mUE C(Å<à,Ùž<7\ÛÉÍ®ýäÊgý3>L¹šO ©ºÃëÀjãí#»#DíÝ’4&ˆ÷dŽ�ÇÙþ @ˆdƒ`^‡û ÜKˆa0:Ã{Ö#À´€P–*Ĩ ƒÄs¤q"58¿à€³Ü¢Ÿ‘”GO¯E0“õ<�$¯SÀWÌH2àLu=@ \†`º/óÖÀ µ�8~@“ØhGì.ƒ´x•"=ÆÀí`Üe•?Æhecˆ&æ?’Ì*#Ô'€ÁVÃ( ƒ”q§‘,5¨·€3È‹W©Î�hù¨?êy"cKŠr„óE5ó&̹<‘`™”ò�`”\ ¦=ªÆq샠J£�ä}"èžGœG@x€�à…ƒ5À}Q9ƒ²ÃÌRÈ"0"à@.p>4Çkâc@ ¡Ð>�Ê(ÅI¥5+#î2¯é÷ʳ/* © ]n Ð)÷LêMuf`ÈP8@Øù—Ëü�Aè‘×Í `ŠX�àâ ‹|ç8F‰±ÔÄ€£ kqÀ€ú Á\ �Q°ÌÀ�¡@Äe‘òÈ‘�f@ÍI¨ŽOÐ2æz�ÅX¢½9ÏjgAÔIÈ +gqÎGð©E�?P sUc¾ Ó°�ôÐ �£Ì�°N.à#4Bmˆá%Ç`s¤¤XM† >ÁÀG€suÆ'FH.£}@?Q¢úuXÅ@9äf¨‰WÅUì¦'̯©s½!/cÐs¨\´� "œðU;.ƒÈyà=xæ ðn�,8˜ƒ¬Ga6;«•s"ø'�±²ÂÀH(á 1�ð¿Ø€±ä?€l €t2¥9X‰œ±ŠÉ çÅgU iæªSõ!I5*²?2ñ–åH�ÐøHà}Ö@¦ @6`dt™Ps„@—aüM ÁåI. @Ä Æ@pnàΜ�u�Ñc(k¨?@ ï�F6XP´edÙ£2æ0óôçåâ\ޤº#é^fäá§ÆŽ«V@øˆØ à0Þ@P™Aö=Ío¨0‹1€=[Î"@t€v%i@Ä@iE�ðD@�æ x� !’ Pà(ÔºT09t:$¯ôò?×±’¨qCó6¿4 ä3 ÔœæžÒŽz¡¾È‘î��xúÃð3‚Ѿ€¨ŠiRà–G7cl} ¬ÄE„˜XƒˆÀ @pÎ�0(¡¤�òi@ŽQ袇˜ø³G9¢:f~sÓc½.ŒÊ‚ @%†‚•©ÐÐ:½K  @@�õTÀ Öp\@Êyt9º !¾>†€I ër2 �¸¡Ü$€ÁRih`i¢üà<Àr1‚ø‹ XÃèË¢¥+& ¡Œe]®f1²›¡²Æ­Ø £¡Œ EUžø6‡àK£à@:’Ð2‡–2€!X]ƒ %Œ˜=…·#€PðØ`X �g:aShR  gÀ£†æ„oŽ€\:K¡àèóŽÑð¥G€õ<è„ð*T„cZ¡•æ‰J¤p&Îp¼Œ|¾=BÐ3�ÓÜü´å‘�à0¦Ð%Øî �m±Ø8`‡!Xlò3 ’ëDd°nž�áˆÃ€7C7`<�_ž&¢‡¸ ç†Pº Ð=…€ÂbäJÇ ü2€ �ôÚ®Õt½vƒØøÀh Ç 5 h|°" ÌP9À(ÒF;îàŒ¯˜¤t@ˆkƤœaÀš!î†áæAšáð’Aæ’we^÷b$ �  f�á À`�Ò �C–3äXO í� i%訦ùãžRh�/�¬à�Áö*Œ $±ü4CžàHå*Œ¥F<áú¡J+ЮŠæG db¡¶ªÌ–d�Ô ðá¶ÆáXêúß a¿*`P�ÀÔ x!Là~CÌ3Ð`©àž@ùCÂC:…<�èR¥ô•ãÄj�¨¬cDljvdòáÞ9ÁèÓà�@"R¡üUEfpˆ²ç(Ë“† AÂò¢îáxAðÁÒáüð"€*€À¾@ x€ €Šº GäS….^È2±.�„Z’ìd€1(�( ÒhSCSK"ì.Î.ÌÂè�XF¡ôÈÊzÉaô£ÎíC.à2à2DZ£PÎ!ØUAÒ‡dŽF|¡ð ÁÈ¡üõgu"&À"�@dÂ``ˆÀ )Öu+ÃGãàðj€h«‰Ô¼IÞj#@4£$¡ÆÁÀ¡Ê &Á¶àþF|ä8�!ž*È¡Ì@€s�B;¤l£ÀqŠÛaö9ÁäBè&!�!!Ô!O€�¬…$$Y bÀ à\` FÀà: `0’À.0à’fO.\¡¡Ú¬Ò£p¡¸!ø!š¡ö¡Ž¡ò"¤�O$2@ 0�aB t |á¾Á1Œäà¡Cœ@4F (c(v"èFãÀNåU,Å<Fj®�Áþ!ÀúáZ¡ä¡°áö‚p €� P8$ „BaP¸d6 �@�Ð0�?¢b € " � À`$DT@Ÿ  �D�À [õþ�‰±p,Yìù~�OËù¸ä{½n×Ò…|å|_“w¬>­W¬VkUºåv ‰³#ä4Bƒä€—Óþ#/‰-@X�â@€,…úö~€OÀÖ÷À½Ÿo×ëè h§Ú.òû¡ìþl@è5ìæw=ŸÐCÀÁpHŽ1  à0D�á à0~¾æá ì_��e° Ü ”€ÁSS¹öë\7^hõû…ì•}FžZçw½ß«¢Â‘pX uƒ�eD­[€�7ôÜ1µÖKÀ©d.€ð–'™ö�GÁø|™‡9òYl˜Þy'ùÔ›€ Á Ãë8‰��H8�C8X €ƒ²À‚çËt-I€J»�Ü�¡ �Àp�nX�{·@ÐvžÀë"›‡‰ö_f©â?œ§ökÊ ÞÃô½/Ì@6€#(ÖŽ`8„a €Á,”HÃl˜ jî½H˜‹‡Áô�§Iî�‡Ú5 �‡~o…†pÅ)Ú{ŸÆóëÌ4í=/è°£1€C@b” €‡0�³P�@P�$ �2 &@40v2Ж�@JXì€á›eÁ´yfùâ~¶C·OÛËB¢ÁˆL�ƒ �´À „�ˆ€`ýÌ@à�D ÇàŒëD4'^IGò�‡º‚ •±®uæ±nlždɤvEemcʬ¢@¨*Ò‰õà!…�˜)‚`Lþ|¦À�%•�@4��øN®ùã™v D(�°sçq‹¢ÆaÐ|qð›Ä5jšªŠ¢@°D€cXV�C¹éA€/È�V �Ú¥)aß�xF B$v)”$­BK'¡œtŸ%9ˆrŸ#¾XËz·Åêá�` ŽÀ‚Heé`:¼€�¸"‹À"B÷&�Zv´Öz0',²~¡øfð'Ÿ ÓÆwê u°Þ 9c€[9ƒ@…Œ�èå¯)€ °QÀ�pÉÌ7^lçÙ<h'Øì©€‡}ó÷Ñ�1€"¨P �ƒ8-26 ÎÀ?¨ät¹í@‡óC`gŽ¡ö$FàE¤—ÑÝê pà€*3”~fŒÛO@|·ñø ×Èÿã˜yÑV¢Çœ†O¤�Wô�XÁ`¸ðÄþ�EÄÜËáî:Úx™Rãüe˜.Æèï‚iE�ã âÄ�OP&ð� €û �8ú5ò�GXò€`Ž“.(É #½§‹$1 bÌy耞’À2ºâú¹‰Ø€""<p÷âŒ|¡š@׌z’PÉt@ãÈ C4Er äœ¡”DJ¥Ò@@�þ��������������<�������5�������h���������������� � ���p������~������”��������������������"�������œ������¤������¬���������(�������=�������R���������������Magnify.tiff��Created with The GIMP����ö ��î ��ˆ�����H������H�������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Terminal.tiff��������������������������������������������������0000644�0001750�0001750�00000011360�12214432632�016711� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�¸��€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹(ÿ–LfS9¤Öm7œNgS°� |�(@P÷¤=àoèº 0žHçà@MTFÏÀ@Êà4_ìAJø,m@P…´%KŸ€�÷0=Xm¶ÙAOÛãòÀí``Vƒ~b_´*”e†rAº0õ—~³@œKñðlÐYZ6%FVÔQzµ˜“\µ€_Û7ýX Üq•™ð�¿p7ôè8‹¾à\_ü¾G˨AúØnÍüÿŸ¿ñ€ ë÷†�zx^É/")3çFg_Zi—Ü1S|YÛ€hòùõñ�|`d�& ˜ï Žû¶‚..úŒê;îS˜ˆ;ðkzë'°›fæ» ó®å€GD<u›Ñ ¬(Ä‚ Ø…1HlO“å’¯Náø¦ª`�@<�¥Âëâ`ë Q›ž%Μ" @úH�}�Hˆ2œïÉ­ì(ŸÇëƒ$@�� ‚`(�ròÔ� aúè�'²|¬èË9‹ìì[ ròDè??…%Mj+€`Ħ!Rd€™ì|�Ùõ-GÊ™(Ò/\*ÿÍi„ã4& pã¸.z MÙö˜Trôk/ÇÜôÙ� ÔÑ¿ 4¼8à ô ‚ @�,ŠA`� �4Ò¥Ì2ø¾�1¬³IR¬½*Û�¤ò¥Ï¨˜9o„e9NT-@Ò«ñG�p^œã¢~ËËK_?ëU„^²à �RŒ�€³Ce/(µ… ¸2}Q7°K“_��À- sc‚ó«N,K†Ù8gÒÖ…H>så‡*â:6ê æ€ÙG›š�Öt §ªüBÆ�]˜%#U¹ä�€ÓQ�vR€ÿÔzuFž¿mòzž€ÉvHþ€zt§¥€:¦#=(ÖµQ¥Ì”tGá¸� ‚ú“zÍ�Ö”ˆÆ-+S¼ß€„ÇK|(Ü´fHŠÄ‚qa>eµÁ Bz¯YF˜`|aœòs¹�šöÃM¿ ÄßËÕôÄ�º•nÙ`ÛEPê7öÎàì½³ÿf_ä%/à¤tF � Ù(+�où]¾1€ ð|'à¼/ ¢Égí•ÜJ ¼„÷Äer! ð}/ÃÙ a�9”t€´‚?¸*zìB½?Lþõ‰î(ÃÎCf_«ôÿœ*Âãi)­aˆ/SˆÅB:Áè€�8Ñßyo5_æZ’IË8cýžQî¡@a¬V=âY@p¢†C@ÃPBº@�‹£ � qz9€Ôhí„€ݘ3TmÚF%"jø? P¥Æ¶Â_ó¸€@� dÐ ƒ´�qC mYF�@ÍC:†ÇøþqÌw‰Ñ:'„•¢PGqòR¡qr.`%q q¤ ¤@$UEøH‰±–�ˆ·eÇÜ¿äÐO¤»³'Íš$¯Uzp(±D*$m�’¢Jnå§ 4S@~0Tµ”wã<p.†0Tе‡úÏhñ ð¹Dì/E°™BiÌѤâcxºj `C5ÁüeøI‰±š�x¸’cí-EH ÕÕw-EQ¨rë^jåe¯ ב´©ízw¥d¬ðVP| ´�<°¥Á…ý¼�8زŽÙ~&\ë$C;M˜üD#xl8á4à„À•Dæ0 ÊL4äDˆ›ihOŠA �(®@�{‚˜~ä˧(01úºt”ÿ§”€§ ‰µ ë]¡Â+-i¥4¤¼“�áµcPB°‹Œg: õ^:ÅnƒÑá×B†(�4ÖêÊq¬Ð ~l¡7'à K×QvkÀAS� qZ5@�¢C|�(÷zا”™’õ-©¡Z‘?€"z;Ôð¸ÅiER s¸Knìà`(Ãi`�‚DbA-¡†hÞ%ã£ÎÖO€ ­“ñüÞ�†�µ¼ÎÉRm\먘€äƒ€€�ª#d� R7l*9.¡µhØIžqQÛH*—ãÿ³fÇ%¸§P@�D¸8†…Œ ( :‡ÐÆ÷Z¯l-B‰aþQ™þ-el®�s¬Þ“á8�B[ °yƒÂ¥‚Ìm�>*.‚nbÆ$»¶³(ç{¶ŠqV¤_˜µ>ÛAÉÅ.¤Þ¤r]To ‹‚tbwx ÖGj• ¤ÂB–U F¥Ìg Hú«dᑈìœ-‚Q Y‹µâ&ÅÌ„ËÖ%é.ÿ真%ÓÑRϼTê[[·a‘;0bÊyki aˆ��\ @YÔP£ÿà`�ÓÇç‹¡C§‘ ŒÀ€1æÅVtÉ»#zL^ƒí,Px¸ÔÌL ±tZ¦]؈íßš±l €Ñ)ÙTå·®íåAG� rB¸(��Ì–z¯©‰ÏÚÊ{Eë&°B&üF§’æJÒèGíQt6ÀE“`�`Œv\$ÈÖ°£å4KÄ÷P›§O0%ˆÀöxÒæ«»e9$@¦(égåè€D¦ð±®°/Ï'|«gÅT?€Q_ž‰<œ uØMAe.5n,&(òDáçŽ ð¥ÇÃt�eŽ€�#„¸Ôº,zh·Äâ¼ Þ—‰ÑY›Ëˆ–eè€2:„g@¡0 !<€�p øÀyyóaN®+*¢å�çsóe€ÇYCË®vÌà|¢ˆ&À– � �#DkŽà�!DpΦƒæuI˜š~éÕà€8¢ð± ÃvyÒH©z½²bS¾ËðXè¤Nþ l€i¨?ü5"œÎ±z­¶ëk®.¼N™€zAìP„’ÑfÀqŽe ÆÜt#V;=çæD©¹³fíQ˜õ_†Ìnøà  M€�ƒ$bvÛÄÁ/ƒø&î'âAQOì6 [úÈë}w¯–€¯ùðnýB ð 9ÇRZÂÌQðŽ·5ej‡ó›ÌŸÇdmIâÖ-”ÕIVÌφ•P@K@¢ `B��v„bAbèØ$f\Í)«ô FB£˜Ùo†‹`_ RpP¹@-�¡ ÜÐ`  �Ì^aŽ�L«�` @ÿ†®l¬Ð÷h¤ÿÆ’•¢禴ƒ§hw…øt°8à ˆ† à“ zÐ*8î–Áú/�CgJµÃ˜Yî˜/Ψã¶. W àJðäºV9à—àÔ°ôc �AİröAì/ž�†ìž¤Ä?nlÖp€ÍêÕ0–l�Õ ¾©‹4.(°à=`”`@��€N’%¬>É(, TX7£¦„|­'lËÃŽŸ@Y HpÈ9âff�ଡR*¥„Ê)O`öGÎÏ"†ïi0lüÑ' È�ðp£�¯…Q-Ђ©�$†Àn@�À|>¢ã¢’gžð:Âø þæ�. Œ`d@QÁ‚rmAüí° ¡Cè�¾aê��ô”¦ô¾QžÛm¶‹ ìÕ)äb�çDvã°Öà=`| 0��Žà:‚Ê�:DÀfóf’¶¨yfÊ8㦦¡ðàv@ta«)až#‚€� P8$ € oáÜ4¤ˆ+Aq0Ìø�Ñ,ÀÅê��Àr� @€@� �J¤²©„ÊY!›Êæ“ ÔªE4œÍ哸Pc+£Ì¤2�<ú� Æ!@$„�+@�=t�ô°>–0CþÍÚk5¹ºÍfa\XEk¡MßwvÂ/W»åöý*?Ř1⃠Ãâ@§{ð�…F²ÀwSþ^RÀ’ù-"3—ÑèÔ©”ò‡KÀKä0¨Þ ÕéfÙü� *ß ÀÐ*�#AÖ¼ÜÂöä=B¡`°-þþh@OðGTZÍéÜ·è§¼ ~xjï'—ÍÖ�Âß`ýB¢Q0=P­ÙPJ'Ú@ãyì� †˜%Î3B—3­ŠtÚ&Éò™5)Ó¤Ô%p¬ (Íjr‚`™ö�Á:°&ˆ€“ˆ�-çÙò|ŸGÓ˜ gÛ®�À1þÄ)*xrG‡ñ°l›'à’$ �;Ï#É;ÒÒhpUJ3ª�'YܨAª�ÆÁâ�çà"ÕÀ©V‚!Iª{ J*˜ÔÇS[_B°ÃXÓ¡�Ð*Ç�è� ‚`.¥¥ÎÁýŸ'Ø ‚ :Þ��ËIþ®ÈÇaÚvŸ¦e4|´éü)ŠB’±$Ô•*%‚õHFX–%‘¦àxxp >SšàÌu±ÇÉð…FLø— ÐŒPÁ¨’Ó¬ÖLÔÓ´ð¼êƒµà°'�„a� #~ ÚçºØX€Ö=!ŸçÅÜ™FY–|©êwÇqÂ6ß²ËTØ ôŸô`" •8I’á€áø~º'Ùôè€À=Ò‚<(Qæz²ÇÁòèžçÃ-2Ôë,~:0ù‘Ÿl±Úwàe�Ű ö}À8ƒ,è:94�è0(«#`MÒ±³7 ¢…I�$�}\à~.(Ιœg™çÁÕ¯Ÿfñºn™¤¦Ì4ûIµm’Nn�¡Q¹™H„QBž� N¢ž-³\“GÏú΂Qè' Àðè=Gæõí|´�·HÛ@‡45/±Ø}š¦¡ªx“Äñ:AI-ž@;o]€¨`, U!8N:4µ€gúÚ�Å­ÛZõ:ûß$NšÏÄðØ›cùÜc-æzH.!�œÀAD�縮�‡Qà�»v­%Úx�C ™ô·õ¨¢iGô<"á¹ý£’<–ëà(`�Ø  0 àâÀ1Àä  pÐDÜ�h"`0«�h)L´0§ŠY oÏè¬ÂÎß!sÑz ý��1@�!†M´ &á øô � ÄQö<ǘò pgŒïÃ)wã ò£¢`ë Y/ð ¡œg”[ÖiÆ�‡+�"ÆB B!�Nâ<E±`(Ð<@Ôy�±‘X€ð¥¹i�R€` !@Onp–Ó7 Ô鎒L�0d&¥ËÈ“Cè_Œ€,ØzAž$7Æy KΕ1i¶“Gñf1Í�É *�@"@ €4Îxý‘1Ì#€¦D&dÑ€�Y3!E¼<vøÏ�|ÓlZH 4Ám$@¼ƒ�sÓc£HNÑ5§€ÍE£ê!—¹W+'•ïÀ…ºçl Ä€4 Ô(ê Àsš„ìâ bS!Q9ØRÒ‡ú ¤I!%k$©N  ߀gš·ê,Gém|£Ü{ŽmKÅÀަAÔƒÏyóMéÁÔìUš|ÁEAЈ�ÐÀLƒ ü  �Y»-zñ™¦ZåIHÔAô!44Ðåq-¢ aÒd§IÀ0ö5¬iO¬5Ãq ´æºWRø�_PUî T€ l�@§Àd 0À>K U#ˆ¬?ÇëäLH2ºœ +¢E’5ÿK¸ö”±)z·iÆÈ³µB¬¹ ÈÞ<KÍv¶Ṽ7à[ff$9  ð+ñÔ ™þ `H cî½€ ñÏüILÝÅEÙ”t}M±œ2í8Ûïìn ¥Ü>ü´oVÒö^Ò qš»Ð%% žƒŽÅñ(fÞú „š®]Q-  èž6÷¯v ÁX/`܃ð†ÂXO a\-…ðÆÃXoaÜ=‡ñ!ÄXb\M‚È�þ��������������<�������:�������¢���������������� ����ª������º������Ð��������������������"�������Ø������à������è���������(�������=�������R���������������Terminal2.tiff��Created with The GIMP���� �� ��™�����H������H�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/linuxterm.tiff�������������������������������������������������0000644�0001750�0001750�00000014772�12214432632�017177� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�ò��� $h°à!B† &l¸ð‚ `4ˆ¡†(.Rp`A 8b²ä)Rˆ 2ˆô(@f #+¤H‘ÐA… %kðñ D‘¼0Z´¨K§OŸ¶ƌ詑.Eœ~™ÒÅ›+[’eyò¥Ø—¯@ªs5j¸Q¥F®{¥Ê¤y–£X¼w™²…{/‘?Ê” ûƒœž¸�Q¦P`PÁA˜ŒÑ4êxñâáC”(Á<xpS.B„P½"E ÓgÇŽ WÎ;òáÆsßnݺðëÖ n\;óçÊ•#.\Ø÷çÌ™]ŽÛògß¾5víZñgË–6¬šögÅ¢1æÍôgÊ´>ÆMêöoÀ°ÿ:t©ò¯A“"þ)¥† þ)¢„xþI&•@þQ4°À‘!�…7ðÁOc @1ŒTò#aœéÈÙæ‹/>ùá—_¾ù燾bŒ™¾ù惾øæ>ùä•>øà…Þyç‰^yã!i^“ã™'nøã®øãŽ;ûí´Ÿk‡á’cþltšNØá#ŽØtƒ=Vùc‡Mfùc5Ya… þXd‘þ`€&þh£Rh$ŸŠ)'ŽRÈÀŸ’H-‰ŠˆâŸŒùGU„ùlø|ù4`Ø GLÐAGŽþù«…?~cå›?¾ù©+¾ø‹ŠOþbŠ%ޏâ‰O¾xK˜„’H*™äxá{þSJ%µ4ÒJÇ.¸æ<CN2áœCþ8åÔy³e}·Ùf“Oòâféå!†iæfZ(áJ*ÉâŸlrˆæŸð₱å/|1åŸ42‚¦ˆbbøGuDùœ „TþÁ�¸j«@V0Pˆ‰ŸFêm/>øK„7þà½Á8gá3v~j<n¾Zàƒçä[O‹sþ3g‹ÿ|=g!:ø£Ž†#!™?â‰'„?Ä™?l±Å€?%çYd ‚ùƒjˆøƒ�° þ�2þRþbþBþ�ü�—"ˆ š«Œø§¾HþÑFIþèRÈ@,¦©núgM‚WþÒå=öÜf†9†ù£‹^Ò¶dRã?üpä3ÌÑe$ø‡ R8ùà ^CˆàF€à�†`†‡`�†‹ †ƒ �†í{€aáH€aâ€aàp�ƒÿ�0hðP�ƒ ÿE � r‡8ÌŽrŒãœâd': ÈD*þ9ˆç:ÚÐp1ÓL PÓ„À’k…ãzõŠ…³8À?,`a+`�ªø:€¡n�Cÿ@0äU `Èâ(�†4þ ` ÀÇ?l¯AÄ«�ö–w¼çùÄg¾ð•o|ç?ùÁ¯~÷§¿ýëÿ�8 ¤AØÀ;ÔáŽt´cïÄ ;ÿÈD&Òð;¶áMhF!þ))üƒ$@ÿ݀ƒà(¡eLèÅ&-\â†0€.þ®ð„/<ŒpDñHF:²‘Ç£UˆEÀÑô¦·½ë}úا>÷¥¯}ëçXøÅoþð—ü€�$`�u`ãæÀx1ÞA‰Ÿ“œâ4d%$a¸µ<Ñ’è@;2 0ð:Ðÿ �!Ð’Íh׋Êlå0 `�”†3ü©Œ@„"±HD*2‘‹€½öt¦;Úé^b˜á˜dÌ7™ˆU¦c›¹8�´YÊJ\ã„x9¾AËþ‘…,¤'LÚ‰D+Šñè©  �6þÁFǃ$@Ï©’+Üáø§ ´ òð†?ÕK]!Ò¹ÄG±p�NGT‹ôE?ƒ1ÊHL3ZìLÅ&³þ}Jð¬<k+yâÔø—9ÈpòñV´£ ÿ0‚!’ê¤, IH‰MÓšŽ¬PP?þqûˆ0ÿ)+P šÚÔG 2iªFaÓYtE«úE‰A†bœQßËÏÅ©%3W›�×.ËYªS6JQ·ì$ÀiÈA2ñÛ2)´0‚QA Ú<‚ ì+XA‚)9À�:Ì+U<4#•3ERÕ¼ˆ©©…-NKK _ÝV9ý­©q1ÚàÇ6e Ì™ik­k[âv—,žuÍv©ƒÿׇ]øG ÚËJ5åÞñÌ (!P ðïVwºg9üA¿GÍG«ÔÐÔõÀ-ªzo¼Å–W¯5,ZëjÚF?€µŸýn[ÿj?€¬×%[¥ªÇÀ:ÜQ<àWƒFgYa c5 ކ0„ýËܶæhxf")ÈÚqX¨i•‚ô¡Ñã‘„J9€G9j�·dtÕ.B¢Û§=Ã}»ŸÇé÷~ù»?�n{ û_Çf³”uÏîÀÛük›èB9þa Ó6Òᇄ_!9ß™HHòt»Ýdq6µéø‡.ôf6b�Ce–¦�謀ˆYP " L@Eè€H<šŽôÌm̭͈/¼â›ùŒc\ O;²P�·g‚‹ê@i‡\ƒâ¸Æ?zЇüÃæá¸ây(ú jP÷ž½€â­„äÓƒ>ðinvêºÐ…zJµž¬x€‚:þA<ã¢`‡þ¡�ÃBbðÄ?ä!wüCœF=ˆ¡#xÀ&�àÜDz�oÀ[�ðü�¼��/h!% ðÖ·9  -:yDîöñ¿ÃI)õø‡%,ÃEÿR”‰2ˆ+äâo¥Ý1—[pËáAí  ¡p€ ø‡',Ž <`åà�x€� 0 ø'gàáCèã\ ?0ë…MÕÜ>ã™Ïzösöï<ã¯óù·í8%Û3(ž¤Œ bø‡¬Ã\¿ÂÆ‘Ì[2‡àwùµ  *ñÀ!Â0|Ð &ø‡l PÅán÷¸ Àú™Ïád <˜ÁàWøÁIø+¨¡I@ªÀ'àÍà£6›ÑÇné[Yè“>§Ö DO¦¢Q¬(<áwÏçþa'iæ0K+°>ä‘4opoArjpmš'M¸ƒ3ïø�s3�zGi>�ó© rw€rgþó… qWwª 0£L  8�Ñ?u?7_¿ôþwníò;O±HæXâDÏàDy„j¨¶ÿð/†Qhƒp�EPâ#°Ђpwžz ÷ ¤X¤P€wŸƒSøÐMø|€äY~ð†A‘Ñm¹J H¤w/$X_ôeBh€¨ †áY`Z�D�ç=>  nó7ný >[ódÙà`Ž �ö'Ž �–G¨…Z¨¤ ÿ„ƒ h‡pO0ŠxPspOßoð‰å Dì0£Ý%AÁu=ïUøB€v²pslàÑ„1‡1V†%X€2Tøàç=8„؇˜…9˜æˆ8]á#!°g €“ŽÈðèà²ÅȱåÈó›° b�ŽÒ(ਔG¨‡z¨¦ x¡u˜€)|wðfTP&�/ðw6Kß·â3ܘ„9;Ð t 8ßã"‚^�pàI!*�½°‡0#�PÖP„€K±ˆÓm¡)CId.Ž7?³ùÈv¶Èµ`™ ~[�N@¤”„€h„¨…x’ƒi˜þh·uЕ„àÄ…0øvàø$ ø' x&M¸ TŠY ”è�G0àN§5ãb(?ކEhVØ„AŽæNƒ^hÃàN~ * Yk&D^HÅàLåøLÕøNõÈGYJíÔMà4ˆ FhL3x%ø‡9˜KðƒÀ¬0àbˆ‚H°ƒˆ‚8ð€àL?$ ó ĘmÐuC  p<ø^`ã'(�‹…W¡ø„-&‡ØWx®„ãJ`�€‰8`zãUË¡N�ŽÌøp–à‘µ{Y'H�AÈnAI°4‚h’'9ò…Aø‡`•-‚8ˆ‰'ˆ…ð`ÑU{�ûÌ­'ƒ+¸[гZøÀó"O(àN>ƒ,päd¸…!{ƒw8àJ¸„iI†U¨ar8„I ”d€Šy=PçI Bkx�õãTr¦Tñx™;™Ïvq.ÔJ}A*L)ìÂÍ!xdeòƒ…pž0 H€pƒˆ…¤ð�F` ûH"ûa)øÇQ8V60G`°ªhMP‡<HI:è„DÏ€+è$|8…%hr+ØÍtø‡TH„Ĉt@“[`¾!à*A@h§)¿ˆ/ÅU«r’ÅrèB+wŽ,Ï4hhñ"’)?X†åØ„0ˆKs…dHaXH„4ð+z` ±JJÝ)_:Vi0pàjž„8³ õ ø‡uX‡5V†ù¸‚.¨…äÑh8†#b‡o"-;Cþ_hdws0€`øZ .@(à/gåWþVËrT‚BÎÎZˆ’òHC˜ ø‡7x+?ò„qø‡0ˆp0 ¥džTHƒ€ô6ÎMDÌmxgiÎ|a#ø €øÏbÞð M±CZÇZØIØò3ƒ†aц…ÿꀾp€ä/_�!àea_ø �ã+1—©&®©&+¤ì(×ÔkêZjÚZeX‚ùf‚7’"·f„pˆg 3j‚dHslH‡ô¤.àH‚º)Öºƒ×òƒKÎoð/ø/pÀ\NæöÖkCb"¢#¢íf¢o£n'})߈ *`Ë1FL@¤‚öàwm.ÅoßšK¦J¦ÉÞZ!OXì–®_˜„©` sj‚DHmGHƒÌ¤c' …»G„0oæòƒk¸ª ƒPˆ€?@xB /§Ã8!~ø$. .x†’jÃ6ìB) 놆c8|P -½ˆ÷äs€.�ð: / €à«W‹ž,Är.”š/7ÕèêŨ‚X…UX¢9ƒMzêÍÞöšÞëø‡tÈnLL0G’J._’/?øh€hƒ†F¨gNø`>ø…š…ofïvb"!íö°¤Y÷/h½h€†?���¿8~øƒ”±…?pWpas°kø°+øk°Kø+°søs™ V0ƒ?030?0c0„?0G˜˜”%B_ß#sa.vøÇ]˜ƒ„\�à ƒˆ‡Ç_k¸DÀ4œJ!1¸„3–Àãx—ùd6æ :ê :ø!VbéøŸþQ¥Þ…4‡Wx1”?��³±ó±€Ø…møó\¸›-Rž-;Ò}¸†?M# Çþ$¥£¹€?Ò‡Sé;øïB8„l„]øÇÙÖëOØ„8€ƒú‡ X‡™É‡ "]0’ø)cX°g0P¤d"À•º‡2( á4@‡?(„B(`q昮n¡9â›Ñîúïún£~øp§™ŸÅY^ðð›-x†‡Ù'xžx˜MƒË@¦½9Ǿ¹†Ë¹í[Á‡s¸f8‡3Øc8íùž_ø‡Øž<Ø„5˜e8ðK\ÐC.†hˆÏ°;Ð_XD <�D -œÄa)-BN %+8š'3 î†ebÈ!릙 ®%¥±6iÃé‚h¥ß1°e˜UøÓE`øÆ~;$x‚‡9"µ9R‰å—|×]~Ò§£–™ë¹‡ ¸œ§•Y92_Åù©؅ة¿¸/ðò!Ð^¨]žÐXs„çÐ’kƒhH€8€ø‹=bø$¾é‚_™Aø‡';Üe£žšñ%Eâ^¯¡Ám€�p€Ø˜1‡¿‚?¨ŽZøÛ”96ÉØnÅÞ-„+:ÁI8˜»†îBa¦ËÖ#ëù‚}؃õUX†ÿކ¶p3PÕ&�;pMGàÛ^„‹ €�öÃÔ%  ¸x€¸J6æ•õXÑÈ!šÑ š± nc†+¸%½ØØu'wDHDøƒaf h…V(‡?h×�øƒè€Jø‹È…?(…RHƒ?ȇ<ˆƒ?3aÛ�ä#pçè` ßãñ¬Û†LÈâQpG°{à…?€»b�:(€hEŠí`@=/@EÐcH?„˜rö°…½ƒÛ6ZO˜á´`éÑèzø¥ ¹4êH²„qè\–#�Ø= BBøƒI˜àÜ„er…5˜Â Ø…%º€S²¤›k¸&8œM3¹Hió"(ƒXŸ\&0c4HK:Hƒt„wPM‚À\À]ÂxŒ �¬Û,à¿„(„Dhƒ+èRø˜ßIX„2öPã3MƒÛé^Oöxbbñvjg‘ާ6„k˜Y\€a@…?€ôÙe�h¤‡?Hƒ@ ‡¿Ö�;øà„?àn †?»*øŽÒÞ8` ø;L Ü8`}L4øãr¡ °rp°[7uÐq˜c/À§1 ×Ô$Ùþ…°;°„h2ð…i8ƒ6%‚gøf‚Y€‡?xÅ“‚0* øƒCØÃyâ`¾õXâàfâ¡áõ˜.x^6²‚þGC¨>Bú=r@ßhð�•„xH‡è‰J6à'À@n<ø$@È�$€‚¿û¸ó)Œ#”k¡uPi˜“²B`�|^„¾u`ƒè�ø„ÞIx‡q*/˜#$x{Ux‡¹„7˜«Zàš1rÀ„?(‡2(»§Q`¡éZÊéš®.Ä~X€2`™kh#4#X…Œ1‚è¸üW¡8…! ›x0v`ê>ö}¥üh@”OLÀÜI»âkaup—uxûB$;tS1ð`¼?fƒø0Ñ¿/ ü{3ÁŸW3A|†òoJ>d° ƒôǃ;¾}ûòç×0¾|øó•>Y ~üøòï,·½búó L#à¢-î#š?Ÿ–Ãûçß©! þDó§áQìþ0aFâ VÄþð@ãâþøðaá-[zþI‘Âå X±aÃä1BØÚ°aA­ R|M@`ò”©Ó¦O @I4(QOZÁû÷i¢ïæÃEçÃ2DÞÌAðç+¬¯æc;3M'Ž/¯É|øKí׿ß>üûÎÉ·Oÿ êó=ÿ*ØöçÙ�X>Ì€/QÊŸ×XqÌCòïÃBe_V*ÛÒ‰Î5jÄüaÄ„ÈR¤ÐýÁ… ÉL˜àüA…¦SÿP €ò"ÿ¸ñ¢ñ/?Sÿ"Dsò/Høðá `ê´é3fN6$áù„ÝhëèÝTGoe½šîX5¶ a"-óçX]tÃZ%ûsêÔ±?W®\úßãÈŸ#Göýq`ÏÞ$ˆmÁꯅGa¯†×Tðf¶´×»þ¼›„àß³)øþ\›$ïÏ¥SËþœ8±ãϦMóþLšÔéO«VÊù£˜bù#†¼øÃ ø‡ .(ùGùÃ3¸F 8©ÖT´�Œ³"‰Ôt@¢�¦¨aežL±9¥Ba.©×•{‹ùçÉM­æo•øç Ù¥PW¤ ’?À�”?Àœÿ(�á/•Ô¢H#UÐŒ?:ðR˜'úuäÕf^æztd‰ˆù$–�ŒhEd€Zh±<°1Ð4ôÀ�Tô@ ô@$ô@ xô€s ½(�*¦8TM&²ò+0 àŠ.T0E~´ÐE)²qG*È%� H'+ª™# >9¦8þY UG*±P=D ä ø¡ãx æ !¸ â´õ6Ûæa¸[E aè¹$ àøe…x øcŸ"]Y$>ðÂBCÔ!ìB �º€+t°Á‡ˆ4@pF�Š‘¡†~4èQEÌ ÂQ IÄ .ðENWœP‚„7ì1C‰@„f@Ž™á€}¶Ùç˜ Î¹áDz>¤ Ç!:ˆDˆ@Qí†ìà¤;ohaX�]Ð#r­µ×t �^ P 6ÄÍAìBX¶ÅD£† V°v˜Ý|¯½÷ÙðM�á  ;²à‚›nÍ5ê8`: uO9õ�������0�������0�������¬���������������� ������� � ���´������Ô������ê��������������������*�������ò���������R���������������/home/fatal/tiffs/linuxterm.tif�created with The GIMP����Ò��Ê����������WindowMaker-0.95.5/WindowMaker/Icons/clip.xpm�������������������������������������������������������0000644�0001750�0001750�00000026244�12214432632�015750� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * clip_xpm[] = { "48 48 411 2", " c None", ". c #736C70", "+ c #6F6B6B", "@ c #6A6563", "# c #65605B", "$ c #625C55", "% c #5A554E", "& c #B0B1BA", "* c #A9AEBF", "= c #A29FB8", "- c #AEA2BE", "; c #BEABC8", "> c #C8AFCB", ", c #D0B5CE", "' c #D9BDD5", ") c #DCC1D9", "! c #E0C6DC", "~ c #E4CCE0", "{ c #E5D0E0", "] c #DECFD9", "^ c #C5B9C0", "/ c #7F7471", "( c #9F9BAB", "_ c #9E9FBE", ": c #B2A4C6", "< c #C3ABCA", "[ c #CCB1C9", "} c #B59FAC", "| c #9A8B91", "1 c #E5D5D9", "2 c #E2CCE0", "3 c #625857", "4 c #9291AB", "5 c #AEA5C9", "6 c #B59EB0", "7 c #7C7575", "8 c #494644", "9 c #A898A8", "0 c #776D74", "a c #666669", "b c #9A9ABA", "c c #B9A8C4", "d c #928589", "e c #444240", "f c #918A99", "g c #686163", "h c #727684", "i c #ABA5C7", "j c #BBA6B7", "k c #706B6B", "l c #919195", "m c #A19EA7", "n c #A4A3AB", "o c #9D9CA0", "p c #807179", "q c #45413E", "r c #383834", "s c #554C4B", "t c #898799", "u c #595350", "v c #8F90AC", "w c #C4B2D3", "x c #A39197", "y c #58585D", "z c #67677A", "A c #B9B4D3", "B c #CBC5E0", "C c #D2C9E1", "D c #D8CAE0", "E c #DACEE0", "F c #DBD3E0", "G c #D6CDD8", "H c #A99EA5", "I c #57534E", "J c #73696A", "K c #807D8F", "L c #4B4541", "M c #66666F", "N c #B2ABCF", "O c #CAB3CC", "P c #7A7172", "Q c #4A4B56", "R c #9A90AD", "S c #CCB5CB", "T c #9A8D95", "U c #797174", "V c #605D5E", "W c #504E4E", "X c #4D4B4B", "Y c #565555", "Z c #7C7979", "` c #EBDBE0", " . c #DAC6D2", ".. c #524C48", "+. c #87828F", "@. c #74717A", "#. c #85869D", "$. c #D4C0E5", "%. c #B6A1AD", "&. c #515252", "*. c #595A6B", "=. c #CAB6D6", "-. c #998A91", ";. c #CAAEBC", ">. c #8A7B86", ",. c #5E5757", "'. c #86889F", "). c #5C5655", "!. c #5B5B5F", "~. c #A9A4C3", "{. c #E0C9E6", "]. c #8E8383", "^. c #414448", "/. c #7F7993", "(. c #D4BBD5", "_. c #8F848B", ":. c #8C818F", "<. c #7E7B86", "[. c #7C7987", "}. c #6F6F7C", "|. c #CDC1E3", "1. c #D7C0D0", "2. c #625F5C", "3. c #494C57", "4. c #B6A6C6", "5. c #B5A1AE", "6. c #8B7F86", "7. c #837A85", "8. c #575452", "9. c #8788A0", "0. c #615C58", "a. c #9391A7", "b. c #E4D2EF", "c. c #AD9DA2", "d. c #474749", "e. c #6B697B", "f. c #D5BFDA", "g. c #918794", "h. c #70696D", "i. c #808091", "j. c #7A7984", "k. c #605E63", "l. c #B9B1CC", "m. c #E8D3E8", "n. c #827978", "o. c #42434A", "p. c #9A91AA", "q. c #D2BCCE", "r. c #615A58", "s. c #918B9D", "t. c #585551", "u. c #636063", "v. c #88899E", "w. c #514C49", "x. c #7E7B89", "y. c #DED1EF", "z. c #D3C0C9", "A. c #565453", "B. c #565562", "C. c #D1C1DA", "D. c #837B86", "E. c #898391", "F. c #4D4A48", "G. c #8A8DA6", "H. c #6E676B", "I. c #A4A0B6", "J. c #EEDEF4", "K. c #A49697", "L. c #444448", "M. c #837E91", "N. c #E1CDDF", "O. c #5E5A58", "P. c #968FA4", "Q. c #67625F", "R. c #87899E", "S. c #817D89", "T. c #6C696F", "U. c #D0C7E2", "V. c #E8D6E3", "W. c #6F6867", "X. c #4C4B55", "Y. c #C4B7CD", "Z. c #BFB0B8", "`. c #848291", " + c #847E8A", ".+ c #85859A", "++ c #8B8A9D", "@+ c #8C8895", "#+ c #EADEF7", "$+ c #C7B7BD", "%+ c #4C494A", "&+ c #706C7A", "*+ c #E7D5EA", "=+ c #71717B", "-+ c #9693AB", ";+ c #6A5E5E", ">+ c #665D64", ",+ c #9492AD", "'+ c #928FA3", ")+ c #B3ADC3", "!+ c #FAEDFF", "~+ c #908585", "{+ c #464348", "]+ c #A79FB5", "^+ c #DDCAD7", "/+ c #838499", "(+ c #9F98B0", "_+ c #706468", ":+ c #56525E", "<+ c #8888A4", "[+ c #908793", "}+ c #756E75", "|+ c #DBD4EB", "1+ c #E4D6E0", "2+ c #625A5A", "3+ c #5E5B65", "4+ c #DDD1E5", "5+ c #6C6C72", "6+ c #9D9AB8", "7+ c #A092A3", "8+ c #595356", "9+ c #636475", "0+ c #A39CB7", "a+ c #7D7378", "b+ c #98909E", "c+ c #F2E9FF", "d+ c #BAADB0", "e+ c #4B4648", "f+ c #888394", "g+ c #EBDDEE", "h+ c #868599", "i+ c #B7ADD0", "j+ c #90818D", "k+ c #4E4D53", "l+ c #8684A0", "m+ c #AC9DB4", "n+ c #5A5655", "o+ c #655E5E", "p+ c #C0B8CC", "q+ c #FAEFFD", "r+ c #837876", "s+ c #504B51", "t+ c #C9C0D5", "u+ c #656368", "v+ c #A29FBC", "w+ c #CDB6D4", "x+ c #6C6369", "y+ c #565966", "z+ c #B0A4C7", "A+ c #948790", "B+ c #82797E", "C+ c #E5DDF1", "D+ c #D9CED4", "E+ c #5B5352", "F+ c #716C78", "G+ c #EBE2F3", "H+ c #797986", "I+ c #C6BADB", "J+ c #B19DAC", "K+ c #4F4D52", "L+ c #7D7A91", "M+ c #C4B0CC", "N+ c #615D5F", "O+ c #A89EA9", "P+ c #F6EDFE", "Q+ c #ACA0A0", "R+ c #4E484A", "S+ c #A39EAC", "T+ c #E9DEE9", "U+ c #5C5A5A", "V+ c #9896AC", "W+ c #D6C5E1", "X+ c #857A81", "Y+ c #51515C", "Z+ c #B2A5C5", "`+ c #AC99A8", " @ c #72686A", ".@ c #D2C9D9", "+@ c #EFE6EF", "@@ c #776C6A", "#@ c #615A5F", "$@ c #DDD5E5", "%@ c #B5ABAD", "&@ c #726F79", "*@ c #C1B8D5", "=@ c #C6B4C3", "-@ c #595559", ";@ c #716E80", ">@ c #CDBBD4", ",@ c #6D6868", "'@ c #F4EAFB", ")@ c #DFD3D7", "!@ c #5D5250", "~@ c #90858E", "{@ c #F3E8F4", "]@ c #736C6C", "^@ c #9491A4", "/@ c #E3D3ED", "(@ c #9A8C92", "_@ c #4D4C55", ":@ c #A49AB3", "<@ c #B7A5B2", "[@ c #BEB1B0", "}@ c #A79596", "|@ c #E0CFDE", "1@ c #C4B9C0", "2@ c #6B696E", "3@ c #C0B9D1", "4@ c #DACAD9", "5@ c #6A6367", "6@ c #666473", "7@ c #CEBED5", "8@ c #7B7476", "9@ c #85777A", "0@ c #DAC9D6", "a@ c #88817F", "b@ c #8A8895", "c@ c #DDD2EB", "d@ c #B4A6AC", "e@ c #504D53", "f@ c #928DA0", "g@ c #C9BAC7", "h@ c #AE97A2", "i@ c #746962", "j@ c #686263", "k@ c #B5AFC6", "l@ c #ECDEEF", "m@ c #7E7477", "n@ c #595862", "o@ c #C7BACF", "p@ c #948A8D", "q@ c #8A757C", "r@ c #AB939C", "s@ c #887874", "t@ c #857E89", "u@ c #DCD5EC", "v@ c #C7B8C0", "w@ c #5B565B", "x@ c #837E8E", "y@ c #D1C3D2", "z@ c #BA9AA8", "A@ c #9D898D", "B@ c #5D5952", "C@ c #665F5F", "D@ c #ABA6B7", "E@ c #EBE1F4", "F@ c #968B8D", "G@ c #535058", "H@ c #B2ABBE", "I@ c #ACA3A8", "J@ c #D5B2C3", "K@ c #8B7C7C", "L@ c #4A4845", "M@ c #877D85", "N@ c #D4CEE4", "O@ c #DDD0D9", "P@ c #706C79", "Q@ c #D0C5D3", "R@ c #696363", "S@ c #DFC0D5", "T@ c #7F736D", "U@ c #42403E", "V@ c #69615F", "W@ c #A7A0AF", "X@ c #F2E9FB", "Y@ c #A99C9D", "Z@ c #555056", "`@ c #A5A0B0", " # c #BCB1B9", ".# c #8B797B", "+# c #C9B1BE", "@# c #6E645C", "## c #7C7275", "$# c #D2CADC", "%# c #E7DCE4", "&# c #756B6E", "*# c #625E67", "=# c #CCC5D2", "-# c #777474", ";# c #BBA4AA", "># c #B3A1A7", ",# c #615A53", "'# c #534E4C", ")# c #A0959E", "!# c #EDE3F3", "~# c #C3BAC1", "{# c #58565F", "]# c #8F8B9A", "^# c #C7BFC7", "/# c #D6BEC4", "(# c #918380", "_# c #C7BECE", ":# c #FFF6FF", "<# c #928C98", "[# c #5A5A69", "}# c #C6C0CD", "|# c #8A8285", "1# c #D6BFC3", "2# c #AD9DA0", "3# c #EADDE4", "4# c #74727F", "5# c #7B7A8A", "6# c #C6BEC6", "7# c #4E4C4A", "8# c #B8A6A8", "9# c #9C9399", "0# c #CBC6D3", "a# c #9D9595", "b# c #343232", "c# c #D2C5CC", "d# c #665C5B", " ", " ", " ", " ", " ", " ", " ", " . + @ # $ % ", " & * = - ; > , ' ) ! ~ { ] ^ / ", " ( _ : < [ } | 1 2 3 ", " 4 5 6 7 8 9 0 ", " a b c d e f g ", " h i j k l m n o p q r s t u ", " v w x y z A B C D E F G H I J K L ", " M N O P Q R S T U V W X Y Z ` ... +.@. ", " #.$.%.&.*.=.-. ;.>. ,.'.). ", " !.~.{.].^./.(. _.:. <.[. ", " }.|.1.2.3.4.5. 6.7. 8.9.0. ", " a.b.c.d.e.f. g.h. i.j. ", " k.l.m.n.o.p.q. r.s.t. u.v.w. ", " x.y.z.A.B.C. D.E. F.G.H. ", " I.J.K.L.M.N. O.P.Q. R.S. ", " T.U.V.W.X.Y.Z. `. + .+++ ", " @+#+$+%+&+*+ =+-+;+>+,+'+ ", " )+!+~+{+]+^+ /+(+_+:+<+[+ ", " }+|+1+2+3+4+^+ 5+6+7+8+9+0+a+ ", " b+c+d+e+f+g+ h+i+j+k+l+m+n+ ", " o+p+q+r+s+t+g+ u+v+w+x+y+z+A+ ", " B+C+D+E+F+G+ H+I+J+K+L+M+N+ ", " O+P+Q+R+S+T+ U+V+W+X+Y+Z+`+ ", " @.@+@@@#@$@%@ &@*@=@-@;@>@,@ ", "'@)@!@~@{@]@ ^@/@(@_@:@<@ ", "[@}@|@1@ 2@3@4@5@6@7@8@ ", "9@0@a@ b@c@d@e@f@g@ ", " h@i@ j@k@l@m@n@o@p@ ", " q@r@s@ t@u@v@w@x@y@ ", " z@A@B@ C@D@E@F@G@H@I@ ", " J@K@L@ M@N@O@g P@Q@R@ ", " S@T@U@ V@W@X@Y@Z@`@ # ", " .#+#@# ##$#%#&#*#=#-# ", " ;#>#,# '#)#!#~#{#]#^# ", " /#(#T@_#:#<#[#}#|# ", " 1#2#3#4#5#6#7# ", " 8#9#0#a#b# ", " c#d# ", " ", " ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/mixer.tiff�����������������������������������������������������0000644�0001750�0001750�00000016306�12214432632�016267� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��àp $h°à!B† &l¸ð‚ú˜YÊü…ˆ‘GºdIÅ‹³.I‚CåÊ›2cÆœMíú¬hÔ¢OŸƒ&M›Q¯]—Zmú ˜×cØ¢E«öô7/Už"Š4¨@… h0ˆ"BŠ Edµ!CŽ’ÊrëV¯ÕO>á£CŽ1bÈ•#W¥Jue)!Aª8éŠ%JV¤¦¶bâ ·“ -‘ý¦Î€k.|„ ¤C‚PÛô)9¡BÔ%Ub©RÆK¼éšå)Õ©V“.M:t+U£Avô›5dܺIó¶ ™²(o,[.Ñ£G‡´J”¨º"¯… Rä¨ÑcbÀ”©ÍzÕë0B%-° #@€P”Xâé¡—~ºè¢Ÿ,ò)%‹Ê©¤êhcœV¦X"–öÑ¢•&„ÑÃh 4S`ÕR(F9*H$’k"ðà%øXƒRÂÀAà@�1äBy 0ÇÜvÒÉ"—\òÉ£’&J©g‰nzÙf’EÙ`Ÿ¦Ø¦ŽzÉ"‹ì`¨£zÚH!BH£0pª)¢‚Nú]¢•†ˆ!…Lô0FˆÀ8`Õ‡Zè ‚ jÏ ×J8áA�/‰¤šv¤€XQBR¨¡Á�]´#0 (`ʇŽPÂðgŽ¢éD>\Á 0@GU´±Ä?$QÁ},q!”$’È!•Dš‰!„eÌÑásô¸Âk›¦˜"z©¢…iº`NZ6b„Yci¥Æ©§“%úc•a¦Y£†Vzq#€@Œ0Å*(! L0!�|°Á,pÁBÁU &˜aÅ'<ɧ‚Ô1B4°A‡(’ ¨R8À b(`@ü ‰t‚ðÄ~¨¡‚�X`Aa‡Kst@ MÄ‘A E´ÐÄ œ#’`n0E™sÔ‘` 1¸‰† DáG Eô°ÀœˆðbJ)£€Ê)§†Zif‚y†Xfq¶˜d†=Êi¤‡D’HÁ ìñÄOb‰"7<ñÄ_üð%š8‚‰"|Êh ŠF:I dÐEDЀ 0ÐÃ�ã©q—X‚ˆ¡”8²i'ÌÜqÆêbX Ÿ�8à@4@$A TPa„zʉ%Œ]’`Eȇ�,øAQ¤Ñ@ áE) °Æ’dRH&lÒ©$,"�~¸@ üq£9lR@ÊX@3:1‡6tc˜À"†1ˆ1¢ ¨@#Ú‡~4¡£hG?&PZÔÃ!ð‡,´ 4`ê€1<pM ¢9(Å ²Q‚>„"1ðƒœÁ�Ј€‚�d H "#T×,`7"Ž0ÄÀ ÎP@« �ذ‚ ìà>X ~°…|à 7x ¡Ä�’ŠKXB—І ® A´@‚°€.¬àD#qHE²QŠÜ` ù(@1ªÐ„ T¡=èĺЃQta�£ÈH6áO@|`;8 Qˆ™IÈB-’‘…¡ýôGjQ…*˜Ã¦0ø¡u(A ÚP‡!q¨@ 2P‡1L`@„" EHÉ1,aà8€8À @Á¨&.ðAþðÄ… dIˆ(œ!î8„*„0 NÁ ¸ÀÀ 6ðCœàƒ�ta#Û HD’Žz¤ kHC2vQAJÒ¢}XD!jÐ…|ë -èF;yMxFÿðC�‚éƒ| c�CèF7zP…:4¢W—(F-Ÿ,ä¢(@%Q„jŒ#èJ¢à˜ó€T®sS³š×О-Á‚0#MˆU=$À´À”¡ 3¸ÀÑ0‚%á�7¸Ã ~ðG<¢‚j$# 0ƒ6Ž! !û›°²ŽtD# ÈD!ZPE”&ßÔðŽt uèApƒÌ?¸#�ÞpEBŽd¡‰È@Ò‘¢-(B)ºQˆJ ¹ã¨D5š€D‚\à�Iw@ P‚¬‡y1$AÒSPœ‚,àŽX$" ^p‡+A ç.L"XÁ>°€Ü`;ØÓ (@ªÈEB°WØâÒàÇ6øA‡"C„W`DÀ H@F0€_L 3ØÂb†($2 iHA’ƒ0èÁ`#îC âD8b€L䵨$ª[€¤síèÖiP ” ©HCuËD|øDÀ¬ÈG’QNYY ­#A0\¸a`Pš°5À<˜Ù‡‰ês` 3˜a�éHÄ8!ļè@µ$d¡ cØ@Ò¡q¼àSÃÅ™ªG ЇbD" QÐ…L!  @"І Lˆl…¥HG ÊT¸Ã vN…¢† ” ™(E ŠPÒ²À`¹­@ÊPb‡¢ Bš0ºIôM ij€7˜Á ÝÄÀ¦ë¼T¯� h@Y/ ªÚÀz—…?¼ �޾FH@˜À AèÀÖP…´ö uÈAʦ†\ x ´½ˆE¢‘ ?„"‘ˆGšhÄ#IKC rdd p…+DF9Èû:P…)  Q€ €…$"Ù(@ ŠQ†:ä¡ÍÈBjQ‡ft§ÃèC'úàß(ÂFð‚<a{ØA½µÐ†1Ì SXÁvD(Òá7xÀö �È1+@Ô°QÜF¶Ôz Ȧ†ÂPO„#/”Hƒ3ü‘Ò�„ÃÍmðA�BãB„ òH@â‘ ¯ÃÀ~B,b¸Â ²P„ŒÂ@Õ}COEιP‚¢iHEBà _D! ¡(A>r1Bt hDº0îÀ‹¢®|(MnЃÔa¸ÊhG(‚WØ‚ô TsU� ªøÑU1[@›zÙpƒÜoD¢È™(ƒ"Q O# >ˆx‚ð†@põL°7ðð�_9€¨T2¨„r¨RvÈ€pˆ€pðEO‚pˆ†tÈ6A(ƒLÈ ðQNP4P5P�;°�cæ+°CÐwð�wˆ3>H KÈSev†jì‚jÈǨ†fèP’GoPPf 1`�&`&=2"*ªÕ `gj`�V$>pôPð†(È{ð…ŒÐ ð(?ˆlð‡ÈðlÈõ7…P‡ƒPˆ×jl±¸@Ãbˆ`5Ëä>M€DȇÈ…bH<(ç49P�EPˆ8q“Fà`` J6^à_…`’†Ȇ|(‚lÈ…ˆC¢ð0É‚|¥KhCfÈ,È„æ´n(‡Ðh×{HH†lˆÁ¦ Ð}0�³�`HW€°7ˆu7…Ȉ…ðƒ¸X‚8(�_;È”D(„XH‚ƒ8ÈG,Èo‚(ð—å†PðŒKð_ˆ€ðsXÇ€h…6è€b�wð0K0}0°�[°u|( p(„LÈ…9†°nMP7°SˆˆHOуI‡H‹b}€Œ(´(†ra‡r÷† Oƒ('ð‡L°W{ñðwH/…T,„ÔЃ,ðhÈsp†à^eP Î,†(xÈ�o…OUÅbS9„hH£ˆ‹ˆ‚@(ˆŽCˆƒäØÃд‡H†4Hc6ȇ4È2=‚‚TÈ„"ðà.àöM ^`�qàILR``v}0‡HƒtH…lȃ(Hƒ\ˆ”^¦vv(…H‚JðH?ÿ†PHp‡È�€tO‡Äl€,ð‚pH[p n2jð†`H’xÈw‚8ð(H‡€XO(€`H„‡… ²JH€ìÜ„ ¨„hHðˆ†Lø´„´LÄ„ˆx†°À„„´ƒTG€¸ˆtHÕPp�i `³U j æ;°gHÌ:I‚lIÊ9†@¦†0H†Bÿ‚tpÈ®8Â4†2ˆ‚È%Ï8^ˆ4¨K—NW„˜œL‡$poˆ ǃLðƒXȆ@ˆ‡<‡D¨�7„lû´ð„À8ŒRHJ½‡"‚HHMÈçŽ<.ð… l_ð÷ÿxvÈ#)¨`H„DO΂$¶õHÌHŽ Iá>ˆ9P9÷†HH;p‡Hp‹e…Ø\ [ð…0l)˜À€È2IP�9YUH²!.Írˆ‚LKÌSˆ€4[ðOx…”¢‚,XÈ/bðf`C àAp‡@O†D(…@ˆ€ ±ƒdˆ„D(Ó…HÒŠƒÂâ<î`vˆ‚TŒ r9ð‡@†PˆPã ð�ˆ†Tˆ€DHÕH Hˆ�UУDA ¡„$°Íð‡HÈÊHƒšwð°g°G·,`‹0Np�wÅ@¨©f(gð…8îƒTɆò(†<ã…ĸ‰wô;±[p�Ð0‹ºÉ‹:‚pÈGðÊiˆ€ôℼƂ ΃ H*ˆ‡ÜJ¤Ü‡,ˆ…d(ó(ŒÈwxH,ˆ€Èr…À"ßrÕ.„ Ô„(÷ÎeðÊeÓ}H†ôè‚4ˆ//ˆð0s0à- «r-l¨…€°'ÓˆnH‡xí‡dHödµw¹NOÐ]ÐhmÎ$(ô_(�gð†¸JàLÈ KÈ,–b kˆƒ<ðÐ<P�5PÏ/WOÏR(‡pˆ‡¢¬€ø:€´Ž†‚Ê\ð®Vððð*™„ ¦6B0ä‚lÈñG7gpð“:ˆöš†x°r<y€XȬOñÌ}‡…¼ZÌ<Ȇ(†,ˆ,HLˆ‚`ð�W°7`3°k(&9H…,¨‚pˆ… …Š,hl‡¸¸„(ðƒpHÎyÈ/üYPù”îºâLˆ-†8ð€ ˆnMH‡ˆƒÌÊÉcˆÌ…,ˆ„Xȃè°ej¡ÌPŠ!Ðp»f,p§ºG4Ôb^TÀÃ3à±Â 9°ç(Ïätíoð7ƒH…¤0‡\Hƒ ðW  ~Aˆ…È@, ‹s~ȇ|ˆñÜr3ð÷hC™¬+pàLˆË H�ø×Nƒ0Jƒ¤¬v¸’õ/H pO0–¦€wwÀl�q�Ð%ÐÔF030”0¦ æ)€ãZü< Dwd@ * %P%W«†*AðWÐ]PVÞT(³m à /p‚°´†\Ȉ®žÆ1©Kð/p-Ð�Ep7p† (…jˆ'‰@ƒ À€X·‡Ø¨Z­´œÎnPu*6¦˜ :�yPÕ)�A—5P�uƒp* V ã)?€@H€¸9$ à%Ð�cÐÍqœtÐCò30`^$À<À¿¹)žD420�#І\H8(,H…BÇ„bÈ€ˆ‡p�àN–IG†<²LË€¨†jhHˆƒ4Èì=Hr˜é‡HH¨+ð}9Ó`°`jQ @´e§ Ñ6`àvâ~  ç ßh€d!³xÀ’‰2Èr°HP�ñYyPŸt�6;T @�LÀ�(æE{f`h(°Opp}†`„dÞ…H7P1àÂm 'pÎ>o.þózI‚ÌÂêII2È…xl‹D5*ÎÈbj1‹AŠ)Hç P[ Çs và&Š TÔñ?@�øµFeÀ�Æ�#°[™{.à`7Fàfà�f®vwF^³µØz À}Ë0£Ð70k°År�V`` bXÀAm ™  °+‡¨À¤i‚,S„<°Ü'`Nà;ð�HJD¦ aB{p?ˆ ':ß´oP®ðõ|pEl>™;1PmÐ(rp-x7…`ˆÞ   2àÞ•Ì?À�lÀàY@9êµ< "U'5/š¦Õ5àAàbDÀØ2 @Q3ß[�ÀPYp°û“-ð­S) P]ÐBìèe6nÙ �OprË/`V`7p¬ñ¼…(ˆ ÆfööÎh×6_¥d_(ˆ÷L�>^Ð}ÐZtˆ¶8ðÙ%Ð!JãaªPÐŒAò=&§qà1ƱYÙ` ä3õ5pw�ˆ#*°š�W°°j8°“ž<5°fk TÎ8¦pÖк�UÐ5 SMP¯óò€@ðÙ@p2Sp d»†�ðrWß ²6sDPÕ:`Õ-ïË H‡´¨ˆ²`$ˆ¿-ˆä¬Q z°Ø'àठ&`S`:‘8ßåé•÷C;4Ð?MÈ3/È‚¤‚0ðð�G°3àV80‘3LJŒƒ{°ÝV°6�`6A°F Ol°Ð¥¢-WoðïyÌIðSp�ËÙFuÐ�ä †¹é[wö–‚¸<‘)­qˆÇÿt© Сp …“Q=R@·M À,@·k0-ðw7_p…Ø–HáƒÀù&PFEh€Fh€°»¹ž:qP%  0¾S°7°Ièws'}ö|Ïwâ›×ppG·�1Q`y$Æ3WpW spâ§Àôk…pˆ|á ÷§>à^P(Èœ ôNåá&~[9“30‹ w*P™&Ð=PC0ýqÐQZ`�: & ¯{û5¦æ&0<B >Öp³&pS°+P�CÐÖ`0s°ixp¬p¬['ÖHúg@¼†=í�_àÁ›7[³aÅW�_¾‚øò̯~ü (Tmºô°`ÇÎ7i2¥K•&Q¨H!ÂE‰’&]š8ɸñäB˜A¼Äð&Mˆy0c€&4ˆ¡@ & ¨Õü×ÀQ+7A¨Q3aÖ#n,Ù±¡À.æL±dʆ=NÜ9qàØ“'–l8`ÁŠs-¶\¸ð( ¾ X³dσ×)\¸ráÁ“|„ ‹7/¬Ø°‘£JE€ þ‚ÇÏgñâEI”,NŒDqLY2Á‚=6<˜ñÆ…Ÿ8.ÔQ‡�TH`Á‚} 45ü× #zŒ¸ðQbĘSÖô3¡Êˆ+®ÜY±ÿÉ}s–ͱÒGTPEè GSLqÅqà -Ì0G sÌpÁwÜñÀÝb³ðÁO¼ð wdP@z˜`Âg\‰ ŠPBÁ?ZlðÀw±¬!’ Â¥Å;,@Ða˜¡€F( (a€àH ÝNh Ü÷rh € A¹ÑDQ”ÑBY‘D ”1ÂL‚ ¬qÀÖ$ÜuÂOáE ¬MÁFÌqÁU 1ÂB#œpÅg¼pÃ7Ã͈O,±Æ :OPBM&Pü‹Ç³rðÅ/|ðÛ0"&¢æZ ŽgD‘‚Bˆ!ˆ È¡‚TÐ@X \˜æÀ¬tÔ‚jÈáD ÄÑFTQB�eäG ¤ÑBQÔÐAMÔCM­0D)ÄÒƒ M 1Õ�B°Ç›�tü« kì°×{AqÅ |" üð …z?°·/\#Æ {¬t ¦ÚC0Å,Ü"ˆ@B%)äEqD'Œ \pÇe4P†.˜a‡ aB iÄ[†ä‘F5Ô@MøQCATPD%4:AI4ÐéÍÎуyÔ`†ÇaGtP EL1Ó ]¬qÂ{œ ÇßñMŽÄ,<sÀ*h¡A5TÅÄï±EsŒ°×CÃÆ5¢~ Æ‹H"Âcô`‚z,´³MFÒH%Šh¢ŒÂˆ%ŒP‚£ÅuP@>äÑ„ÇJxQAQEe”\~ÐBu´P1n„‘ …ZäÐDY 0Zq3tÐFã1ÆṵÀp0ìLÇ<àƒ~ À.xçŠØþp†!,hh(zÂ2¼àj*8À¶à/X p©î„?ü�oØÃö¦C Ê„Á6°±Œ ^ÈA<‚¬g¡�a¨@ ¢PD  E/Aà Ђ,ô`� (B4`#øÌ%èÂ2І¶N  i@r~ˆŒ£y»Cf0ƒ˜ç@ PCrµ7áÄl‚Êv°%¼•g8ÅÓY‡Ÿ =hót°à€áÁtú°’9„„!±ˆFMáh°A’à‚,dÂh¨CBPºö È…JÚƒ2Äe )hB]'P‡tmhAØü„Ô!“öˆùzÐ…ô£í‡´A4à;(Àš˜A *¼Š1L}-è †Nvý wx«Ðð³?Áf0‚¢›Ybn¸@&З láÊ  —$„†·e@jЂ\੨AnÛB¢ž‚|x «BêÐH 4! ¨¤jiƒ6D E•�RІ–2 ÝR” ‡ZÚÁ�&ЂT ä³ã èºÐ€Œa {ð FP… L  ‹ÄJÖ�5˜Àcú™Ap72ôa3ÃÆ³_< àÁKM¶ èÁPƒl@>€L`ØÀ.H@kHAjÐ�d! ^(YjPƒ(´  èB»D©:”¢R²R–¼É¥Ìä£ ¨B!•P„´iƒb— ò0‚¡o3ÃèA‘P„ôÀAð€’É–ŸM ¸Ãº°‚±jà/q î"‚{àáŸüQ“Z`W 8 0Cb 'xAzЃ” øÀ vp�D *ð€ƒ Ôà�›6 vHAü²ƒXIÓ’@« åÊÏ Â�²-Œ ½~CêýoZFš}@Å¥‚8$ÁP&p‘š|ÎôeïuBư†Ì`SØÁvƇkˆ€@øsÌcëØÆ>ŽqŽkÜãïøÆ?^�������0�������0��������Ž�������������� ������� ������”������°��������������������������8��������Ø��������������/usr/people/marco/mixer.tif�created with The GIMP���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Terminal.xpm���������������������������������������������������0000644�0001750�0001750�00000040640�12214432632�016570� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * Terminal_xpm[] = { "60 58 597 2", " c None", ". c #EBEBEB", "+ c #EEEEEE", "@ c #F0F0F0", "# c #F2F2F2", "$ c #F1F1F1", "% c #EFEFEF", "& c #EDEDED", "* c #ECECEC", "= c #E9E9E9", "- c #E7E7E7", "; c #C3C3C3", "> c #DADADA", ", c #DEDEDE", "' c #DDDDDD", ") c #D8D8D8", "! c #DCDCDC", "~ c #DDDEDE", "{ c #DEDFDF", "] c #E2E2E2", "^ c #E3E3E3", "/ c #E5E5E5", "( c #E4E4E4", "_ c #E8E8E8", ": c #E6E6E6", "< c #CBCBCB", "[ c #D1D1D2", "} c #D2D1D2", "| c #D5D5D5", "1 c #D8D7D8", "2 c #D7D7D7", "3 c #D6D6D6", "4 c #DFDFDF", "5 c #C8C8C9", "6 c #D3D3D3", "7 c #CFCFD1", "8 c #CCCDD1", "9 c #D7D7D8", "0 c #D5D5D6", "a c #D2D2D5", "b c #D0D1D5", "c c #CCCFD5", "d c #CBCDD6", "e c #CACCD5", "f c #CCCFD7", "g c #CBCED8", "h c #CBCCD8", "i c #C9CBD8", "j c #C6C8D7", "k c #C5C6D8", "l c #C5C7D8", "m c #C6C8D9", "n c #C4C7D9", "o c #C6C9D9", "p c #C3C7DA", "q c #C1C4DA", "r c #C2C6DB", "s c #C2C5DD", "t c #D5D8E2", "u c #E3E3E4", "v c #EAEBEB", "w c #EAEAEA", "x c #C9C9C9", "y c #D4D4D4", "z c #D0D0D3", "A c #74799C", "B c #676F94", "C c #626991", "D c #5C628F", "E c #5A638F", "F c #555D8F", "G c #575F92", "H c #545E91", "I c #515A95", "J c #505A96", "K c #525D99", "L c #525D9A", "M c #525C99", "N c #525E9D", "O c #4D599C", "P c #4F5C9E", "Q c #4C5AA0", "R c #4A55A2", "S c #4A56A0", "T c #505CA4", "U c #505BA4", "V c #5361A6", "W c #5964A9", "X c #5A66A9", "Y c #6D77B1", "Z c #C6C9DD", "` c #E0E1E3", " . c #ECEDED", ".. c #C5C5C6", "+. c #CBCACE", "@. c #4E588E", "#. c #06156E", "$. c #02146E", "%. c #021170", "&. c #041372", "*. c #041373", "=. c #051576", "-. c #0A1A7E", ";. c #0A1A80", ">. c #0C1C81", ",. c #0C2188", "'. c #0E1F89", "). c #11228C", "!. c #122790", "~. c #132592", "{. c #162893", "]. c #182C97", "^. c #1A2E97", "/. c #1B2C98", "(. c #1C2E99", "_. c #1E309B", ":. c #20329D", "<. c #21339E", "[. c #2334A0", "}. c #3B4AA7", "|. c #CBCEE0", "1. c #F5F5F5", "2. c #F3F3F3", "3. c #C7C7C7", "4. c #D2D2D2", "5. c #C7C7CE", "6. c #4B558F", "7. c #061573", "8. c #011072", "9. c #021172", "0. c #051978", "a. c #071779", "b. c #091A7F", "c. c #0B1B82", "d. c #0D1E87", "e. c #0F208A", "f. c #11238E", "g. c #122390", "h. c #142991", "i. c #152792", "j. c #182A97", "k. c #1A2B97", "l. c #1B2D98", "m. c #1C2E9B", "n. c #1E309D", "o. c #22339F", "p. c #2233A0", "q. c #2436A1", "r. c #3D4FA8", "s. c #CCCEDF", "t. c #F9F9F9", "u. c #F6F6F6", "v. c #F4F4F4", "w. c #C6C7CC", "x. c #4A548F", "y. c #081776", "z. c #051772", "A. c #051678", "B. c #07187B", "C. c #0C1D87", "D. c #10228D", "E. c #12268D", "F. c #132491", "G. c #142691", "H. c #162895", "I. c #172996", "J. c #1A2B98", "K. c #1B2D9A", "L. c #1D2F9A", "M. c #1F32A0", "N. c #2537A2", "O. c #2739A4", "P. c #3E4DAB", "Q. c #CACDDF", "R. c #F8F8F8", "S. c #F4F4F5", "T. c #CACCCE", "U. c #455190", "V. c #0C1B79", "W. c #081B7C", "X. c #0C1C83", "Y. c #0D1E88", "Z. c #12238F", "`. c #132590", " + c #142693", ".+ c #1A2C9A", "++ c #1D2F9C", "@+ c #2638A3", "#+ c #2839A3", "$+ c #283AA5", "%+ c #4252AC", "&+ c #C8CCDD", "*+ c #F7F7F7", "=+ c #C6C6C6", "-+ c #CECDD0", ";+ c #596298", ">+ c #101F7E", ",+ c #081879", "'+ c #0A1C7E", ")+ c #0C1D84", "!+ c #0E1F88", "~+ c #112390", "{+ c #152794", "]+ c #192B99", "^+ c #2335A0", "/+ c #2335A2", "(+ c #293AA6", "_+ c #2B3CA8", ":+ c #C4C8DD", "<+ c #EEEFEF", "[+ c #EFF0F0", "}+ c #CACACA", "|+ c #CFCFD0", "1+ c #606A9B", "2+ c #112180", "3+ c #0A1A7C", "4+ c #0A1B80", "5+ c #10218B", "6+ c #192B98", "7+ c #1F319E", "8+ c #20359F", "9+ c #2C3EA8", "0+ c #4657AC", "a+ c #F3F4F4", "b+ c #F8F9F9", "c+ c #FDFDFD", "d+ c #CECECE", "e+ c #D1D0D1", "f+ c #646B9E", "g+ c #132383", "h+ c #0C1E80", "i+ c #0D1D83", "j+ c #0E1F86", "k+ c #1C2F9D", "l+ c #20329F", "m+ c #2237A0", "n+ c #2D3EA8", "o+ c #2F40A8", "p+ c #4654AE", "q+ c #C2C5DB", "r+ c #F2F3F3", "s+ c #D1D2D3", "t+ c #7076A3", "u+ c #152485", "v+ c #0F2087", "w+ c #172B96", "x+ c #2B3BA6", "y+ c #3142AA", "z+ c #4755AF", "A+ c #BEC2DB", "B+ c #F3F3F4", "C+ c #F7F8F8", "D+ c #EFEFF0", "E+ c #F1F1F2", "F+ c #CDCDCD", "G+ c #D0D1D3", "H+ c #777EA8", "I+ c #192887", "J+ c #11238C", "K+ c #13248D", "L+ c #182B97", "M+ c #22369F", "N+ c #2E3FA8", "O+ c #3042AB", "P+ c #3343AC", "Q+ c #4957AF", "R+ c #BBC0DA", "S+ c #F5F6F6", "T+ c #CCCCCD", "U+ c #D1D1D3", "V+ c #7B82AC", "W+ c #1C2B89", "X+ c #122389", "Y+ c #152790", "Z+ c #2A3AA5", "`+ c #3041A9", " @ c #3445AE", ".@ c #BABFDB", "+@ c #F4F5F5", "@@ c #D2D2D3", "#@ c #7E85AD", "$@ c #1D2D8A", "%@ c #13248B", "&@ c #15268F", "*@ c #2E3FA9", "=@ c #3242AB", "-@ c #3344AD", ";@ c #3547AF", ">@ c #4B5AAF", ",@ c #BABEDB", "'@ c #858DB2", ")@ c #202F8B", "!@ c #15268D", "~@ c #172B92", "{@ c #192B96", "]@ c #3446AE", "^@ c #3749B0", "/@ c #4C5AB0", "(@ c #B7BCDA", "_@ c #898FB4", ":@ c #21308C", "<@ c #17288F", "[@ c #192D94", "}@ c #3142AC", "|@ c #3648AF", "1@ c #3A4AB1", "2@ c #5161B1", "3@ c #B2B8D9", "4@ c #C4C4C4", "5@ c #CFCFCF", "6@ c #9298B7", "7@ c #22318D", "8@ c #182A91", "9@ c #1B2F96", "0@ c #2133A0", "a@ c #3345AD", "b@ c #3546AF", "c@ c #394AB0", "d@ c #3B4CB3", "e@ c #4F5DB1", "f@ c #AEB5D9", "g@ c #C2C2C2", "h@ c #979DBA", "i@ c #25348E", "j@ c #1B2C93", "k@ c #1B3198", "l@ c #3A4BB2", "m@ c #3C4DB4", "n@ c #5261B3", "o@ c #ABB0D8", "p@ c #E9EAEA", "q@ c #C3C3C4", "r@ c #C8C8C8", "s@ c #D0D0D2", "t@ c #A1A7C0", "u@ c #26358E", "v@ c #1D2E95", "w@ c #1E2F99", "x@ c #20319B", "y@ c #22339D", "z@ c #3849AF", "A@ c #3849B1", "B@ c #3D4EB5", "C@ c #3E4FB6", "D@ c #5260B2", "E@ c #AAAFD7", "F@ c #C1C1C2", "G@ c #CECFD1", "H@ c #B1B5C9", "I@ c #29378F", "J@ c #1F3097", "K@ c #203199", "L@ c #4051B6", "M@ c #4152B7", "N@ c #5361B2", "O@ c #A7AED6", "P@ c #E0E0E0", "Q@ c #CECFD0", "R@ c #B5B9CD", "S@ c #2B3990", "T@ c #203197", "U@ c #23369C", "V@ c #23349F", "W@ c #4252B7", "X@ c #4253B8", "Y@ c #5461B5", "Z@ c #A5ACD6", "`@ c #B4B7C9", " # c #2C3A90", ".# c #213198", "+# c #23359F", "@# c #2536A0", "## c #3F50B5", "$# c #3F50B7", "%# c #4455BA", "&# c #A3AAD6", "*# c #B4B7CA", "=# c #22339A", "-# c #2637A0", ";# c #2839A1", "># c #4758BB", ",# c #5663B5", "'# c #A0A6D5", ")# c #E1E1E1", "!# c #F1F2F2", "~# c #EDEEEE", "{# c #CBCBCC", "]# c #B4B9CB", "^# c #2C3B91", "/# c #24359C", "(# c #293AA4", "_# c #4354B9", ":# c #495ABD", "<# c #5B6AB8", "[# c #99A1D2", "}# c #F0F1F1", "|# c #B4B8CA", "1# c #2E3C94", "2# c #25369D", "3# c #293AA2", "4# c #2B3CA5", "5# c #4656BA", "6# c #4657BC", "7# c #4B5BBE", "8# c #5A67B8", "9# c #98A0D0", "0# c #FAFAFA", "a# c #B8BBCD", "b# c #374499", "c# c #28399E", "d# c #2B3CA3", "e# c #4556BB", "f# c #4858BC", "g# c #4A5ABE", "h# c #4D5DBF", "i# c #5C69B9", "j# c #939ACD", "k# c #CCCCCC", "l# c #BFC4D1", "m# c #44519C", "n# c #2B3B9B", "o# c #2D3EA5", "p# c #4556B9", "q# c #4A5BBF", "r# c #4B5CBF", "s# c #5060C0", "t# c #5E6BB9", "u# c #969FCE", "v# c #FBFBFB", "w# c #CECFCF", "x# c #C2C3D1", "y# c #5662A3", "z# c #324099", "A# c #2F40A7", "B# c #3344AC", "C# c #4E5EC0", "D# c #6171BB", "E# c #8F98CA", "F# c #E1E1E2", "G# c #BBBCBC", "H# c #D0D0D0", "I# c #C3C6D2", "J# c #636EA7", "K# c #394698", "L# c #3042A9", "M# c #3E4FB4", "N# c #6873BC", "O# c #8890C5", "P# c #EBECEC", "Q# c #E7E8E8", "R# c #B8B9B9", "S# c #B7B8B8", "T# c #C8CAD5", "U# c #6771AC", "V# c #4D5CA8", "W# c #4654AA", "X# c #4150AC", "Y# c #4252AF", "Z# c #4252B0", "`# c #4151B1", " $ c #4252B2", ".$ c #4252B3", "+$ c #4353B4", "@$ c #4454B5", "#$ c #4353B6", "$$ c #4454B7", "%$ c #4656B8", "&$ c #4757B9", "*$ c #4858BA", "=$ c #4A5ABC", "-$ c #4A5ABD", ";$ c #4D5DBE", ">$ c #6370BB", ",$ c #8691C3", "'$ c #D6D5D8", ")$ c #B2B3B3", "!$ c #B8B8B8", "~$ c #D9D9D9", "{$ c #D5D6D7", "]$ c #D0D0D5", "^$ c #D6D7DB", "/$ c #D2D3DD", "($ c #C5C8DC", "_$ c #BDC1DA", ":$ c #B4B9D9", "<$ c #AFB5D8", "[$ c #ACB2D7", "}$ c #A8B0D7", "|$ c #A0A7D5", "1$ c #8D95CC", "2$ c #8891C9", "3$ c #828BC6", "4$ c #7D86C3", "5$ c #7A84C2", "6$ c #7882C0", "7$ c #757FBF", "8$ c #727DBD", "9$ c #727CBD", "0$ c #7A84C4", "a$ c #858DCA", "b$ c #99A1D4", "c$ c #A1A6D2", "d$ c #D0D0D7", "e$ c #C3C4C4", "f$ c #B0B1B1", "g$ c #B2B2B2", "h$ c #D9DAD9", "i$ c #D9D9DA", "j$ c #E0E1E1", "k$ c #DBDCDC", "l$ c #BABABB", "m$ c #DDDDDE", "n$ c #DEDEDD", "o$ c #DBDBDB", "p$ c #D6D7D6", "q$ c #BCDF78", "r$ c #D3D6CF", "s$ c #BFC0BF", "t$ c #B7B7B8", "u$ c #BBBBBB", "v$ c #C8C9C9", "w$ c #BABABA", "x$ c #C0C0C0", "y$ c #C5C5C5", "z$ c #C6C6C7", "A$ c #D6D6D7", "B$ c #C6D89B", "C$ c #BDBDBD", "D$ c #BDBDBE", "E$ c #DCDCDD", "F$ c #5F5E5E", "G$ c #707070", "H$ c #797979", "I$ c #888889", "J$ c #A3A3A4", "K$ c #A4A4A5", "L$ c #B2B2B3", "M$ c #BABABC", "N$ c #BFBFC0", "O$ c #C2C2C3", "P$ c #C7C7C8", "Q$ c #D0D0D1", "R$ c #BEBEBE", "S$ c #D1D1D1", "T$ c #DCDDDD", "U$ c #606061", "V$ c #707275", "W$ c #6E6F71", "X$ c #777778", "Y$ c #808081", "Z$ c #929293", "`$ c #9A9B9D", " % c #9C9C9D", ".% c #A7A8A8", "+% c #A9A9AA", "@% c #ACACAD", "#% c #AAAAAB", "$% c #A6A6A7", "%% c #ABABAB", "&% c #ADADAD", "*% c #AFAFAF", "=% c #454545", "-% c #676868", ";% c #7C7D7D", ">% c #8A8D8D", ",% c #87888A", "'% c #858688", ")% c #8A8A8B", "!% c #909091", "~% c #949495", "{% c #989899", "]% c #9EA0A1", "^% c #A4A5A5", "/% c #AAABAB", "(% c #B0B0B0", "_% c #AFAFB0", ":% c #B1B1B1", "<% c #AEAEAE", "[% c #B3B3B3", "}% c #B7B7B7", "|% c #B6B6B6", "1% c #5D5D5D", "2% c #898989", "3% c #909493", "4% c #9A9A9B", "5% c #A1A2A4", "6% c #AEAEAF", "7% c #ACADAD", "8% c #ABACAC", "9% c #B9B9BA", "0% c #BFBFBF", "a% c #BEBEBF", "b% c #989898", "c% c #A5A5A5", "d% c #C4C5C5", "e% c #C7C8C8", "f% c #CACBCB", " ", " ", " ", " ", " ", " ", " ", " . + @ @ # $ # $ % % % & & * = - . ", " ; > , ' > ) > ! ' ~ { { { ] ^ / ( / / ( ( ( ^ ( ( ( ( ] / = _ = : ", " < ) [ } | 1 2 3 2 2 ) ! ! , 4 ] ^ ( : / / / / / : - = - = - _ * = ( = ", " 5 6 7 8 1 9 0 a b c d e d f g h i j k k l m n o p q r s t u _ + * v w ", " x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ( @ * .+ + ", " ..[ +.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|./ / @ . + 1.2. ", " 3.4.5.6.7.8.9.*.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.:.o.p.q.r.s./ - % * $ t.u.v. ", " 3.4.w.x.y.z.*.A.B.;.c.C.D.E.F.G.H.I.J.K.L.n.M.p.q.N.O.P.Q./ / % % @ 1.R.S. ", " 3.4.T.U.V.7.A.W.-.X.Y.D.Z.`. +H.j..+K.++:.o.p.q.@+#+$+%+&+( / % % @ 1.1.*+1. ", " =+y -+;+>+,+B.'+)+!+e.~+~.{+H.j.]+m.n.M.o.^+/+@+#+(+_+%+:+( ( % <+[+u.*+1.u.= ", " }+y |+1+2+3+4+)+!+5+Z.F.{+H.6+.+++7+8+o.^+N.@+#+(+_+9+0+:+^ ( % <+a+b+c+*+v.% + $ ", " d+| e+f+g+h+i+j+D.~+h.H.j.]+K.k+7+l+m+^+N.@+$+(+_+n+o+p+q+^ ( % <+r+t.c+t.v.$ + @ 1. ", " d+3 s+t+u+X.v+).g.G.w+j.J.K.n.7+l+p.q.N.O.$+x+9+n+o+y+z+A+^ / @ @ B+C+*+*+1.2.D++ E+t. ", " F+3 G+H+I+v+J+K+G.H.L+.+m.n.:.M+p.q.@+#+$+x+9+N+o+O+P+Q+R+( ( $ @ v.u.S+u.*+# $ @ v.R. ", " T+4.U+V+W+X+K+Y+H.j..+++n.M.o.^+/+@+#+Z+x+9+N+`+O+P+ @Q+.@( / # @ a++@u.u.1.$ @ # 1.R. ", " }+4.@@#@$@%@&@{.I..+++7+M.o.^+N.@+#+(+_+9+*@`+=@-@ @;@>@,@/ : 2.@ a+a+u.*+1.# @ # u.*+ ", " 3.4.4.'@)@!@~@{@/.m.7+l+[.^+N.@+$+(+_+n+o+`+=@-@]@;@^@/@(@/ : # % +@a+u.*+2.$ @ # u.R. ", " =+4.[ _@:@<@[@/.K.7+l+p.q.N.O.$+x+_+n+o+y+}@-@]@|@^@1@2@3@/ : @ + a+a++@*+2.D+$ # 1.u. ", " 4@5@[ 6@7@8@9@l._.0@p.q.@+#+$+x+9+N+o+O+P+a@b@|@c@1@d@e@f@( / + . a+1.+@u.$ v.@ 2.1.u. ", " g@< 4.h@i@j@k@_.:.^+/+@+#+Z+x+9+N+`+O+P+ @;@|@c@l@d@m@n@o@^ ( * p@+@u.S+a+[+$ $ # 1.u. ", " q@r@s@t@u@v@w@x@y@N.@+#+(+_+9+*@`+=@P+ @;@z@A@l@d@B@C@D@E@] ( & = +@+@u.1.@ @ $ $ 1.u. ", " F@=+G@H@I@J@K@y@^+@+$+(+_+n+o+`+=@-@]@;@^@1@l@m@B@L@M@N@O@P@( w = a+a++@1.$ @ @ $ 1.u. ", " x Q@R@S@T@U@V@N.$+x+_+n+o+y+}@-@]@|@^@1@l@m@B@L@W@X@Y@Z@P@^ w _ v.a++@+@$ % @ $ v.u. ", " x G@`@ #.#+#@##+x+9+n+o+O+P+-@b@|@c@1@d@m@##$#W@X@%#Y@&#P@^ . - v.r+1.v.$ .+ @ v.u. ", " x 4.*# #=#-#;#(+9+N+`+O+P+a@;@|@c@l@d@m@C@M@W@X@%#>#,#'#P@)#w : !#$ 2.# <+* ~#$ 2.v. ", " {#y ]#^#/#;#(#_+*@`+=@P+ @;@z@A@l@d@B@C@M@W@_#%#>#:#<#[#4 )#w / @ $ $ # <+<+u.$ [+}# ", " r@| |#1#2#3#4#n+`+=@-@ @;@^@1@l@d@B@L@M@X@_#5#6#:#7#8#9#4 P@. ] @ & ~#+ % *+0#t.}# ", " }+| a#b#c#d#9+`+}@-@]@|@^@1@l@m@B@L@W@X@_#e#f#:#g#h#i#j#! P@- ] % + + 2.*+0#t.R. ", " k#| l#m#n#o#`+=@-@]@|@c@1@d@m@##$#W@X@p#e#f#:#q#r#s#t#u#! P@] )#~#* + u.0#v#' ", " w#2 x#y#z#A#y+B#b@|@c@l@d@m@##M@W@X@%#>#f#g#q#h#C#C#D#E#! P@^ F#+ p@@ t.v#P@G# ", " H#) I#J#K#L#B#;@z@A@l@d@M#C@M@W@_#%#>#:#g#q#h#C#C#C#N#O#! 4 ( ] .P#$ R.Q#R#S# ", " |+1 T#U#V#W#X#Y#Y#Z#Z#`# $.$+$@$#$$$%$&$*$=$-$-$-$;$>$,$'$' P@^ .* # . G#)$!$ ", " H#~${$]$^$^$/$($_$:$<$[$}$Z@|$1$2$3$4$5$6$7$8$9$0$a$b$c$d$! , ^ . .% e$f$g$ ", " 4.h$~$2 ! , )#] ] ] ] ] ] )#] ] )#)#P@P@)#)#P@P@P@4 , i$4.4.9 j$P#* k$l$ ", " < @@> m$)#( n$, ! 4 )#P@4 4 , , ' ! ! o$> > ~$~$p$q$r$s$t$u$3.4 P@P@v$ ", " w$x$q@y$z$k#T+[ ~$A$~$, ! ' ! > o$> > ~$p$B$3 C$< x D$E$' o$ ", " F$G$H$I$J$K$L$t$M$N$O$P$d+F+Q$0 4.R$5@S$R$) T$ ", " U$V$W$X$Y$Z$`$ %.%+%+%@%#%$%K$J$J$%%&%*%t$}+o$ ", " =%-%;%>%,%'%)%!%~%{%]%^%/%(%_%:%<%(%[%}%|%}%C$y$5@^ S$ ", " 1%G$2%3%4%5%L$6%7%8%$%8%L$9%C$0%a%y$; x x y$< y ^ @ . ", " b%c%*%C$d%e%f%P$S$2 3 ~$, ] ( - _ _ _ : ( ", " w$; }+5@y ) ~$! P@] ] ^ - ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; ������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Drawer.png�����������������������������������������������������0000644�0001750�0001750�00000002614�12214432632�016220� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���0���0���Wù‡���gAMA�† 1è–_��CIDATxÚíYMˆEþªª§gvvfv5¢FpƒˆAð$âAOž¢‚DðâÑ£Ç\<xñäQðâ1Wõ$9ÔxÈE! "$˜%Ñd]w×ÍlïôOU==ÕSSSÝÓ“^a =óªºú{ÿïõ�KZÒ’þ×Ä÷ÆOßï�HEp¯>^ òG™k ›9ã«‹£©‚EöÁ€\€†|àí5[wݦƒ‘B'äÅ~³wû`Vø`à. yÚóñæYÀÔ>çá#� ÅøüÃ5Êæ€uM^uõ¹‡o+(_òÌ*àu|Óå÷V¤"tB>åN†oïí„qªg´m t÷o]­´²…×_j#ÉqFðI’JZ(v|ûSI6ÃKSÂÍÍÛÃÉ=J”^À…ì)´[¬ôÁ‹PæÙox¤§yR÷%®ÝIpòxX ¾R€áHc”2&"𠍼ÇÕl^Ër—L lnIìÆ'ÇàË…�@Sî¿Fãuƒ¹ ¬7`zº~d ÞÄâúñ˜§É&à}µÃGó,Àÿ ðU™Ì^i‚ÔT©ùÚd²9x7}Vi^ªé€muÀßÚŒ��ݶðVZ»Xuº@E¥çÙu¡Vñ¬ÏùüÆKX{:!ŸÑ²ÝÓtÆÅL&Õà•&hj(@]Zí�@oebãßD“ö!ɨ²ÿq]гY÷ñÅDc\—9~¼‡÷ξ‚gÖñû­-|wáW<؉ 8 ¤ÇÅâTg åËš7À Ðwßy§Ž!ÇÆÆ“xóÕ ìG5Fq2UmðÆÕ|ÝjU 7²€›ç¥"œZí»1Ð{)Âv÷wÖW9‚! Ë5ïQU#‚£"•›[xá¹'@Dx¸›àÇ«[ØÞÏÍßëj áLkâÓ8QuÔH€²"† —ïàŧÑï®àúí=|óó=( ¤@¬)sK1ƼÚS ¥ ŒÍ å‹ )p;UJEF1~úåîï(lïk( ´[@ØÊp¥�˜\ Geà‹LÄC´Æu`•4ŽI!4’ŒÐn1¬÷ÛètÚèöúHwfbg2$‡'½è&¨ßë¯M X‹ƒˆÐa„§8amàVº= t»+øç¯»^ð`È4:èµ&èEšºšïaTÌÚñáxH!‚ äm€$Ö¥»P î„h‘`Å€c°М³Å,·å9ßýmgŒA0€3Bœj´Ð xé~· Ð6øFíô¼×(e]ek0ÆÀ«Ü﫜å®dk½qªóRÊõíy 0ñc¯Ï][�¥ ‰$ƺ�¯œ¦Kzª± ÞÞtœÆç£ÑtPT¹ËBA¥„ݡƃ=…Qª M” óª¦à¬hÈÄ8 Ýý‚3p–'ŽL6h®ÞNpë^†a¤Ç™eváåƦ¯¾½Œù×M˜v”�§Ÿm0œ>âô‰°Öàm·RKÓeÖ1<Û†aÀ±—á@Sõ:Q**À»g@ùp]É\«)Íš àÈÝ µsjÝ)ÿ©ÔÞ £Toý7ÂLŸwé†b à°¿¼Íòñ[+ä}KÍÙ”;…y1ÛÿöŠ\Û¡¸çìkÄ‚ûƒ×¨ø‡æ“·WÉÉ×½¼9Àó�ö��|ñýðOŸ __ÊÿIùèvÁ;9)}Þ¹3ý��»±9LkÅ$ 4á‡ë²ô¾Zø´Þ„Î釘$m}g�Ú¿ýE�“ÀÅkÙ‘>{IKZÒ’–4Eÿâ߯c7ô����IEND®B`‚��������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/xv.xpm���������������������������������������������������������0000644�0001750�0001750�00000020523�12214432632�015450� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 167 2", " c #410341034103", ". c #FFFFFFFFFFFF", "X c #965886178617", "o c #9E7986178617", "O c #965882078617", "+ c #9E7982078617", "@ c #96587DF779E7", "# c #965879E779E7", "$ c #8E3879E779E7", "% c #8E3875D671C6", "& c #861775D671C6", "* c #79E76DB669A6", "= c #71C669A669A6", "- c #71C665956185", "; c #69A665956185", ": c #69A661856185", "> c #69A65D755965", ", c #71C661856185", "< c #79E765956185", "1 c #79E769A669A6", "2 c #71C65D755965", "3 c #79E761856185", "4 c #79E771C671C6", "5 c #618561856185", "6 c #61855D755965", "7 c #618559655965", "8 c #69A659655965", "9 c #71C659655965", "0 c #861771C671C6", "q c #596559655965", "w c #596551445144", "e c #618555555144", "r c #69A655555965", "t c #9E7979E779E7", "y c #9E798A288E38", "u c #A69982078617", "i c #861769A669A6", "p c #A69986178617", "a c #9E797DF779E7", "s c #861765956185", "d c #86176DB669A6", "f c #A6998A288E38", "g c #8E386DB669A6", "h c #8E3871C671C6", "j c #A6997DF779E7", "k c #965875D671C6", "l c #618551445144", "z c #AEBA8A288E38", "x c #AEBA86178617", "c c #51444D344924", "v c #514449244924", "b c #AEBA8E388E38", "n c #A69979E779E7", "m c #492449244924", "M c #514451445144", "N c #596555555144", "B c #9E7975D671C6", "V c #514455555144", "C c #71C66DB669A6", "Z c #8E3869A669A6", "A c #B6DA92489658", "S c #B6DA8E388E38", "D c #B6DA8A288E38", "F c #AEBA82078617", "G c #69A669A669A6", "H c #965871C671C6", "J c #71C671C671C6", "K c #AEBA79E779E7", "L c #8E387DF779E7", "P c #AEBA7DF779E7", "I c #861779E779E7", "U c #79E779E779E7", "Y c #86177DF779E7", "T c #BEFB96589658", "R c #BEFB8E388E38", "E c #B6DA86178617", "W c #A69975D671C6", "Q c #8E3882078617", "! c #96588A288E38", "~ c #9E798E388E38", "^ c #AEBA9A699E79", "/ c #B6DA9A699658", "( c #BEFB9E799E79", ") c #B6DA9E799E79", "_ c #AEBA96589658", "` c #B6DAA699A699", "' c #B6DAAAAAAEBA", "] c #A6999A699E79", "[ c #A6998E388E38", "{ c #A69992489658", "} c #B6DA82078617", "| c #D75CBAEABEFB", " . c #E79DDF7DDF7D", ".. c #E79DDB6CDF7D", "X. c #DF7DDB6CDF7D", "o. c #C71B9E799E79", "O. c #EFBEDB6CDF7D", "+. c #E79DE38DDF7D", "@. c #CF3CBAEABEFB", "#. c #BEFB8A288E38", "$. c #BEFB86178617", "%. c #B6DA7DF779E7", "&. c #B6DA79E779E7", "*. c #86175D755965", "=. c #C71BB2CAB6DA", "-. c #DF7DD75CD75C", ";. c #69A64D344924", ":. c #D75CC71BC71B", ">. c #69A655555144", ",. c #DF7DDB6CD75C", "<. c #C71BBAEABEFB", "1. c #AEBAA289A699", "2. c #B6DAA289A699", "3. c #965869A669A6", "4. c #DF7DCB2BC71B", "5. c #71C655555144", "6. c #B6DA96589658", "7. c #BEFBA699A699", "8. c #EFBEE79DE79D", "9. c #C71B92489658", "0. c #C71B8E388E38", "q. c #DF7DCB2BCF3C", "w. c #DF7DC30BBEFB", "e. c #EFBEE38DDF7D", "r. c #C71BA289A699", "t. c #BEFBAAAAAEBA", "y. c #BEFB82078617", "u. c #CF3CA699A699", "i. c #AEBA75D671C6", "p. c #DF7DC30BC71B", "a. c #EFBEEBADE79D", "s. c #C71BAAAAAEBA", "d. c #CF3CAAAAAEBA", "f. c #C71B96589658", "g. c #79E755555965", "h. c #C71B9A699E79", "j. c #DF7DC71BC71B", "k. c #CF3CAEBAAEBA", "l. c #CF3CB2CAB6DA", "z. c #BEFBB2CAB6DA", "x. c #C71B86178617", "c. c #861761856185", "v. c #D75CCB2BCF3C", "b. c #D75CB2CAB6DA", "n. c #D75CB6DAB6DA", "m. c #C71B8A288E38", "M. c #BEFB7DF779E7", "N. c #CF3C9A699E79", "B. c #E79DD34CD75C", "V. c #CF3C9E799E79", "C. c #DF7DBAEAB6DA", "Z. c #CF3C92489658", "A. c #E79DD75CD75C", "S. c #8E3865956185", "D. c #D75CAEBAAEBA", "F. c #DF7DBAEABEFB", "G. c #CF3C96589658", "H. c #CF3CA289A699", "J. c #DF7DBEFBBEFB", "K. c #D75C9E799E79", "L. c #D75C96589658", "P. c #79E759655965", "I. c #D75C9A699E79", "U. c #CF3C8E388E38", "Y. c #D75CA289A699", "T. c #D75CAAAAAEBA", "R. c #D75C9A699658", " . ", " X X o O + + + @ # # # $ % & * = - ; : ; : : : : : : : : > , , - < 1 < , , , , , 2 , 2 2 2 3 . ", " X o o + + + + @ # # $ % & 4 = ; : 5 6 6 6 6 6 6 7 7 7 7 > 7 7 7 7 7 7 8 8 8 8 2 9 8 8 8 8 8 . ", " o o o + + + @ @ # # $ & 0 * - : 6 6 6 q q 7 q q w q w e 7 e w w w w e e r 8 > 9 9 8 8 8 8 r . ", " o o o o + + + @ t # # & * = - ; 6 6 q q q q q w q w q q w 7 7 7 > > 2 2 2 2 3 3 3 2 2 2 2 2 . ", " y o o + o o u @ t # t & 1 = - : 6 q q q q q w q q q w w w e 8 > 2 , , 3 3 , 3 i i < 3 3 3 < . ", " o p p p p p u a @ # # & 1 = - ; : 6 6 7 7 6 6 6 7 6 > 6 8 > 8 > , , 3 3 < s s s s s i s < d . ", " f o f p p u p a t # $ 0 * = - : : : > 6 > , , > > > 2 2 > > > 2 , , 3 3 s i s 3 < i g i i h . ", " y f p p p u u a t # % & d 1 - : : : : > : : : > > > > > > 2 > 2 , , , 2 3 s s 3 < i d i d h . ", " f p p p u u j a t # % % 0 * - : : : > > > , > > > 8 > 8 > > > 2 , 3 2 9 2 3 3 3 < i i d d h . ", " f f p p u u j a t # % % 0 d - : : : > > : > > > 8 8 8 8 8 8 8 8 2 2 9 9 2 3 3 < i i d d 0 h . ", " f f p p u u j j j t k % 0 d - : - - : 7 > > > 8 8 8 7 8 8 e w l e r 8 8 8 2 3 1 i d d h h % . ", " f z p p p u u u j t k % h * - : , - > 7 7 > 8 7 e e e e e w w w l l r 8 8 8 , 1 i d d 0 h % . ", " z z z z x x u j j t # h d 1 - : , , > 8 7 e e w w w c w w c c v v v w w w e > > , 1 * d 0 & . ", " z b b z z x x j n t k 0 1 < - , > > > > 7 w w c c v m v v v v v m m m c w e 7 7 : - 1 * * 0 . ", " b z z z x x x j n t k 0 1 , , > > 7 8 7 e w c c c w w e r e l w m m c M M N N q 6 : ; = = 4 . ", " b b z x x x x j n B k d , : 2 > 8 7 e e w M c c c l r 2 3 2 9 r c c M w V M V N q 6 5 ; = C . ", " b b z z z x x n t k % d 1 - , : 8 7 e e w c c c w e 2 < Z s 3 8 w w 7 > 7 V q : ; 5 5 ; = C . ", " A S S D D D F n # % d d d d < , > 7 e w w c c c w 8 3 g B g i , 7 e - d : V ; 0 0 ; 5 G G C . ", " A S S S D x F t k h d d h d < 3 > 8 e w w c c w w 8 3 g B H g < 7 7 < 0 : q = 0 & C C C C J . ", " A S S S D u K k h 0 d d h d d 1 , 8 8 8 l w w w l 8 2 i k k k i 7 q > - : 5 ; * 4 & L 4 J J . ", " A S S S D P n k h g d g h g d i 3 2 2 2 r w w l l r 9 i H k k 0 > 6 6 : ; - ; = 4 L X I U J . ", " A A S S D P n k k k k k k h h g i < i d s , 2 9 9 9 2 < 1 i d d 1 = = = * * 4 C 4 L O I U Y . ", " T A A R D P n t # B B B k k h g g i H B H g i 3 3 , , , , , - 1 0 % 0 0 0 & 4 J 4 L L I Y Y . ", " T A D E F K n n t W t k k % H H h g H B k H h g g i i i d d d 0 % % % & $ $ I I $ Q O Q Q ! . ", " T R E P n n n n K n B k h h k k H g H B B B B t t k h % k % h % % $ $ $ $ L L O O X ! ! ~ ~ . ", " A R E P K K K K K n B b ^ / / / ^ ^ B B u ( ( ) ) ) ) ) ) ) ) ^ _ O @ O + ` ` ` ' ' ] [ { { . ", " A R D } P K K K K K K | .........X.Z n o.O. . . . . . . . .+.+.@.+ f y [ +.+.+.+.+.` { ^ ^ . ", " R A #.$.} P K P %.K &.K *.=.-.-.$ ;.;.K P n :.-.3 >.>.O ,.-.<.> 2 d { b { ^ 1.,.1.- - y ) 2.. ", "m A R R R #.} %.%.%.%.&.&.&.o.-.-.=.3.K P F 4.+.o 5.F D _ .,.,.i A A 6.6./ 7.8.+.0 O 7.2.2.7.. ", " A 9.9.9.0.$.$.%.%.%.%.&.&.&.q.-.-.k P %.w.e.p 5.W D D z +.,.,.2 6./ / ( ( :.8.] 1 ) r.7.7.t.. ", "m 9.9.0.#.$.y.} %.&.&.%.%.&.%.u.-.-.<.i.p.8.f 5.t D #.R S ..,.,.y T ( ( o.r.a.-.1 b r.s.s.s.d.. ", " 9.f.0.$.$.y.y.%.K &.%.&.&.&.%...-.-.6.e.=.g.n D D R R A 4.X.X.y x h.o.r.j.8.^ h d.d.d.k.l.l.. ", " 9.f.0.#.$.$.y.%.%.&.y.y.&.&.%.l.-.-.-.| g.Z #.#.R R A A w. .,.z.z o.o.r.a.-.1 b d.d.k.k.k.l.. ", " 9.9.0.0.#.$.y.&.%.y.x.y.y.%.P z ..-.-.c.Z #.0.R R A A T l.O. .z.# o.r.v.8.~ & s.s.k.k.d.k.b.. ", " 9.f.0.0.#.x.x.y.y.y.x.y.y.&.} r.e.X.-.{ $.0.0.9.A A / 9.d.+.,.v.# r.l.a.v.* ^ s.d.k.l.b.l.n.. ", " 9.f.9.0.0.m.m.x.x.y.M.M.&.$.N.8.B.-.-.:.n 9.9.9.f.9.( h.V.8.X. .d r...8.X # d.k.k.l.l.n.n.C.. ", " f.f.Z.0.0.0.m.x.x.M.x.y.y.0.O.A.S.@.X.X.f 9.9.f.f.f.h.h.V.O.X.X.O l.a.v.d ( k.D.l.l.b.n.C.F.. ", " N.G.f.Z.Z.m.x.x.&.x.x.x.0.A.e.t *.u...X.@.F f.f.N.N.N.V.H.B. .X.b -.8.X @ l.D.b.b.n.n.C.J.J.. ", " K.G.G.L.Z.m.x.&.&.x.m.0.A.e.p P.} 0.-.X.X.p f.N.N.V.V.V.H.j.+. .=.8.=.d r.b.b.n.n.n.C.F.J.J.. ", " K.I.G.Z.U.x.x.y.y.$.x.j.e.o P.K 0.0.n.X.X.=.R N.V.V.V.H.u.F.+. . .+.# b D.l.b.n.n.F.F.J.J.J.. ", " Y.K.L.U.U.m.x.y.y.y.j.e.=.9 n 0.0.9.9.+.X.X.u V.V.V.H.u.u.n.8. . .' h d.l.l.n.n.C.J.J.J.p.w.. ", " Y.I.L.L.Z.U.m.x.y.$.8...-...T.9.9.q.8.8.X.X.X.8.Y.H.u.u.u.T.8. . .# b b.n.n.n.C.C.J.J.J.p.p.. ", " K.R.R.R.L.U.m.$.$.$.T.+ + o Z P f.T.6.f f [ b [ i u.u.u.T.T.p.] y h D.n.n.n.C.C.J.J.J.p.p.w.. ", " K.L.L.L.Z.U.0.#.$.#.0.K j P P R f.f.R D D S S S A u.u.T.T.D.D.( ( u.n.n.F.C.C.J.J.p.p.p.j.j.. ", " K.Z.Z.U.U.U.U.m.#.#.#.R S A 9.f.f.h.N.V.V.H.H.u.u.u.T.D.D.D.D.b.b.n.n.n.F.J.J.J.J.p.p.j.j.j.. ", " K.Z.Z.U.U.Z.Z.0.0.0.R R S A T f.h.h.h.V.H.H.u.u.T.T.T.D.D.b.b.b.n.n.F.F.F.J.J.p.p.w.p.j.j.j.. ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/sgiterm.tiff���������������������������������������������������0000644�0001750�0001750�00000013602�12214432632�016611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�|��� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼øñ 0)ÄÀÐÃ�”)8°  œ kü4€ ƒÈd>¬0 AŠ T¨P²&@�JÉ £E‹ºtúôi+äžéRÄé—)]¼ ¹²%Y–'_Š}ù ¤:W£VUjäºWªLšg9ŠÅ{—)[¸wñùø£L™°?èPÁéIe¶°€ƒ Â<üˆRÇ‹¢D‰æÁƒ›r"„ê)R˜>;vl¸rîÜ‘7nœûvëÖ…_·n\øsãÚ™?W®ùsá¾?gÎìúsìØ–?ûö­ù³k׊?[¶,ø³aÕ´?+ù3oΠ?S¦õù3nR·¦…:袊h¢ˆJ©!ƒŠ(!ž’I%å,°AäB@á |ðÁÆSIèI%?:Æ™Ž‘m¾øâ“~ùå›~øá+îxùç›o>øç‹oÞùç“O^ùçƒ^øçwžøç•7Rå5 žyâ†?xàŠ?î¸sʧ¸vÖy.9æÏ×8á„þ8âˆMÙc•?vØd–?ÖXóŽV˜àEáhâ6Ú( œFòù§˜râø'… üù'‰Ôr( ˆ(þÉ(›TQE˜°ÁðÀ™PA†=q@¯9þùç¯^þøŸoþøæ§á„øâ/>ù‹'¾„I, >ùâ-Y>’I)•ÔÒà…7îùO'½ 2Ê$3Gæšó¬9ÉŽsùã”S·ÜÉ=ö=c›Mf¼/„?f˜¥—?†¦™?ši¡„?*©$‹²É!šbHÀ‹ü Æ–¼ðÅ”ÒÈ"ЉáuÔåpÂ…"PùLàj[A0Pˆ‡ŸfkŠ/>øKŽ7þ’⽩„çá3A~–j!Q¾Úäƒç4;È„sþsd‹ÿÂ}b!:ø£Ž†¡¢#™?â‰'„?Ä™?l±Å€?UçYdƒùƒjˆøƒ�°Œþ�2þRþbþBþ�ü3�—"ˆ «lø§¾dþÑFIþ#® RÈ@ ,fkö9çM‰Wþ2ç=ö<c†9†ù£‹^†Ö³\Rã?üpä3ÌÑe$ø‡ R8ùàªÞCˆàF€à�†`†‡`�†‹ †ƒ �†íw€aáH�ƒ ÿ€�0ðp�ƒÿ�0hðP�ƒ ÿŽE� rÇ8Î NrŠÓœãlg:ÈD*þ9ƒ—ºÚÐp5 Í� PÓTÀ’[‰év‰8À?,`a' jø:€ ‚ Jjð�©È�‚ þ£)ü @Þ�"€ æ]�AÄÇ�òà�䳘ú °�ò`�ä'@È;€Øý °Æ Ì Ð @  €@$�2áA0€O'@N�€‚ ç!™HÃ?î8ˆ4¡…ø§JÔA áß~ÀÁ?p”°#ì .ñC@—ñŒpD#ÉHG6òQŒrTõhF;ºÑ!à�è3 Òo†´ð#ÂÌ÷� $ˆ@�°‚Õ_Àn‚ D€xü˜`€&4ቀX'�( IrFRóã<d%+9¸µ:Ñ’"è@ÒøÈ€Ðxø–¢»],à�ç`�è¤+B‰X$"ÔÈD. JÔ¢-üG'z@¤wÀ–H¡¢œøÇTy”‰¤àŒ` Œ*Š˜WBèP„"þ!R¹¨ÁÑ€�¨ã– „$,/yΫcòžx§ä;)IË?²ž™&­(Æ?  §nP€Øø"�½èDK“øp‡{\àŸÐ*azJ’þ’g°TQ*MÆÊ)ÈAÊ«HE ²ñá¦ã%ÍÂ?r›‹$´�ÿj1þáÔ2ã#-Ùo5þa×:ü³¼ø7¸À°`桚‰HTu—Ï$9¿Iqr-¸´à­hGYÖ`ÙTá,` þAR`b“8n×þqû´Šº(QzKšRf8*À’Á~ŸÁ¤øGh_ð°¾×¦xø7 * ì¦V(€ð0þÑ<°–¶¼u°Ã?Œ‹¸ ÿŠ®3˜À§ö$¦}ùê`ñä ÿ¸­…â;SÑÊ€´E؃’à†À@J#0€‹J=(~CJœ¾’•"C¥N Pã ljã2“Â?¤'›bªT°ÂÊE’”ŠâZÿš6þ‘>=•«b’“FÍL’&4Íl”quµ†Q½ö'q8ùr:ÎQü£íµ¦Žº‹àt–‚ ,Ѐ x„elã°þ ?ž7tü=ŸP£ÁˆªM÷â ð¡å/oC€‹óÙ0Å�R%«H^5þ‘·:üca8 ÖŠ‚È;ïÊló’·au ?Ãþñ€{\͵†)ŒÕ 08Â(+â[ á™9D¡àØ$d©î5�zЇÆx{Úð –ŠÑ«œ)Á®¡eø‡ü^ðï½÷ø·;dg�UüoIUp>0þ1t0ü£ÿÍiÌU :ЀH$à/4ÄÃï€èÊ0ó1ì ͹#À¿NŒ.”¦•é’ã! ÿBr~3µp äm –ë^Z¡ ½,a|=kD/ð÷‹ã—šÌä*Cƒ¸+ÀSþaz5ü÷&ø‡ÒuðÀë[[ákF3þr³ÊVÞA ØßÔjÑÛãewZ;HxÜêÏñ^-r ‡G<âÿèAj® s(ãw‰„<}5¨ûÌA@qÎNäí@ø´0Gt ]èB}§ ›@#Õ—ãí¯Â«ŽÿÞµmRQä[LçÎø?bËWf¡DÈ«y‹«Áþ±>÷½ŸÂ??‹Tÿ3y(Ж°»Ï¡†Jú¡ï‡ÇM(õø‡%,÷O™€RŔԀ8þ¯èFr�ïc³{p˹çCíEKºÈ„úßTh�7us{oø�×@Ô°€pMF†&5X0†ï4xC x&Õt†ì€‚‡"‚ÿ t[7æk€¶~dzA52gÈs_ø‡'Ò…„Ah„°kP‡¬à_0c…#0 rap�0 ÷'P ’ð\®*ÿra» î ¤Ÿ‚^ø¹ÐT)•q'q3q…ò°Ô7ý@Aa‰°„É4B €5MÓ ­”lÏ]øæp‡k…‚ A† wß2\S§x‚g¸ FÔZp�—á0K•+°÷”êð@dêôgÚ c¸ƒ³•P°s/eô ò*h·Rˆ€¨øw{ OkóZïvLH6ø‡è„¬ø‡¬èê¨Õ\È…¶ $ų/ÐŒ)ø÷r)ŠYÇr³wü ro_pЉ0†QhÓRp}B%¾{p‘Upw^z wkäŽtD‰,P€w’Çi¸ƒÓ€Í(ò·øöJ¯†Žø'ð�ß6ññ‡èN(C‚˜ñ lȨsS1UÀM4-ÒÐK¬0L8)Š~†H€àd߈eßæ¼¨Ñ_xŽPø‡1˜ˆ pO0rmP³tpOг7ðI&uÑ¢�츣Nc'i!õ·Õø°d¥Â0s³H|·pyW„ÿ÷å„ åV^_vUW6!‰Ô<‚¢ ûO4Γ2]µ´LCø‡¸´0�ãô$ Ê$ãR¨‡j:„:€ ˜Â?poÆUÐaJðÿ@b›0V`áxgK‹Ja¸Qà€ŽB´³ø4!@Xq5Y…2J ÂÌO›´ ;ø‡¾,MÈ„Ža¿M%°Éš` &ø‡èlä%‡còà�îl—šD·ø" ”�‰‰EpÏXñh„¨…xÒ€i˜~°`2Ð=„à0Ñwp€`AϘÈLAR‚g2†›È÷üÏ/NI½´4ø ãÓS³ø‡S6Uf4Ÿ èÌø7Jׄ)Í×Â4¶Oƒ1¸P(�±í¶>í ŠNŸÍ x%-ø‡9˜KXðƒ@°00àjˆ‚Hƒ†(ˆ‹^àAÌ}DŠû<Âé-ÐÉ év¡(vQKD�á'Ðí@J¬äˆ)Ð ÈØ·;Có…t‡ò’†uÈèI˜Ôf¼l74*%¸Pƒè*-¿"íRíðóMsrohh MÒ p„†P°Ñ@0ˆƒ°÷nH]V])ZDŒ{’#¸‚ëxõ|/ÌKÿ%VZ@mcÆJiø>à«v€Š�(3ÓÔ2p‚ÿÒH[ʈùÀ$h(¥D‡•M�+8C/Ät*Ã-“2+ xtCÑgçE0�SûÕpónH PrëòF„òe%øÇ8H(¶LÍëŠÐX™àc�æYS 0/Èü*ÍÒv]ŸÚ‡˜¬#ø'F˜‡À2„êT@XU“{y´^Õ©š0ç2 R«&X†eÓ7ˆ´0s'dHa4H„4ðÓE`"O�O+º¬Fº 0ÐÍäšÎ+ÿÑ(QÚZPF>Pñ�"Àá'žoˆ’¬mèò[ XPÕØúøMz—�x€áh¹‘€ºSªª§XJgÃ…˜ ø‡7x«& †q}ƒˆÊc°h ÊOø‡THƒ€Ü¶òòÔŒxge.òĪF«°(±ÔÆVúÆ1às™£j@h;­ÛÊF å£°ÑàV(€PA”K¹–ÛæÐÎæ*ƒ$5\X†%˜o!x# hA‡(ï#0£nH†´–7=òHàÈèVÏckaRK¸„#ø÷| ®ÐPl£Æªù6•©6C€c>³nK±æ{±ãgqäwq7ñ�H�/€ñkvUïàzìÐæ5g †ÅŽfeX‡u˜tÓj“50§nH„Tðe|Èì,öZ¸«!„û®&¸„ á®à”hŒ¼i™½n#1éV±àëî[±ïq×ìoñm6¹kΞ*¤ð/#ßUX…%Z'ؤï^åÅàïÍÞ6]Ȇ`Þ€sdn.¤Ã¤ÎRè†?¨‚*(‡?ô"ø3u((¢*-ð^ÇHDˆè¨ÂõLPBk;ð…¿ Ä¨/ø3`p‡?Gø3qp€¿è{ø{°[ø;°¶[°†¿¬Kø+° øó0‡?•�Sø3X0„?0“@{iÃØW¼ä Gá.?øÇ ˜s=1h0¬Î…”–_k¸DÀDŒ!…ñ%9VnÄI…Wx„¿<"ÅÖj!Rž\RiáIiRâúB¸ƒ?xNÏ©„g¸Ÿš©ˆ©‡¿ ŸÒf0N¸†?Ý###Æ©L ë€?²„Sœ‡«šèb8„ì]øÇÀ…C8„Mø‡8{Ø€u˜q=*;Ð#Q‡ø°g0P/D¥N@…Fœ¬I› x›tø››É™,x›¼!haR 5ÚîÒ¬¦¤šŠœZÀJx™†Iª©‹©#¸Ê逇épžÈ¥óéÇɆ˅k¸r8‡Ká†s8ƒ=ր؞•Y lØž�Ø„5˜etð ÐC®†hˆ^°;ПóÖ˜çI!­yZþœšºœ‚‡y‚·)šŸ)˜ß!˜2x™ôùK…™ê…ž¦i\µ©vÒƒ'x˜.2˜.õƒËÈ]CYC²¤ë֙ᇸ€Ë™ZÂ%&Ç%›Õ°‡]Øø‡u dlðr-ÐÞ€0ˆäÅ1åFd�۠ƇJ[ˆ†!ˆ…ˆ‚¡l„H‚R(BX)¦€ ˜Ìy˜…Ùj±Æ§`˜‚Ø€ ÀX†z9ÜÄ徜a¸¦[Ïå2nÝß^2¢“í_”æ^œXóÅÙV8˜±.íbᦧÀ%×Y†}؃õÀ†mè8øgЀPUm;p*P�àÛ0LGp{)˜À?…ñ|…A! 耞t‡f )RN‚ �)ÚJ<ÆS ƒE…?b„~|‡©ƒt{è‚¿`‚6øó)ž€Vh…2øóªC¨„¿¨Ü¡„RHƒ?ȇ<ˆƒ?;bW“å+pçdb‡äàù"PþV†LÈâYp@òà…?€;`V ƒb€€ѽ@€=àTNÈÓL(ÑT¨…J<Tc=h…ÿÔõÓ؆mX<uøƒuØÀ+X€E‡¿-!ú¥P †Iò‡5˜"oØÅs97<%z„Sr¦×ó»�8„í#}P€?iq…"(ó^ð�ŸÚ�ð—M­ì,Hƒt„wPM‚ŽDLÐ% €?)Ä�q‚RàN`†<àv`„Bà6 ‡jà�6`€–Œj踠†YÏW(´eøÓ{ ƒ?à^ †?» ø» ¿à¼ù«¹Õ[¹YàªÛ¼mà� „?`¶›÷±;�6`½,4øãza °!°[ÿuÐq˜ã À'�‘D|ŽåØ+E¼�RP%‡eE�<øS! |ue_ \øSÀ„¿»‚¿D$Xød@(ø$Yx"@zÂÇB@T€?¸G2al†¹�PàE`�| �@@€ h°à!B† &lh€"ÂË»$V¬¨ù£Aƒ¸?¢D±ûÉ?´h‘øCŠ Ž?x ùƒ ¢?ÈÁøƒ¤?HòA’+ „ähú#G¿?,¨ùgÉ’º·p5jÖ�QD­ú ‚ &,˜ÙÊ—/Û¸iÓ†<iסԿ@A¬ü+U*ÖŸ5Rý©U+ÍŸjÕ2üµãO¸höþX±§ì%<þpãFåæT1!ö‡ëbüÐø£C'>,ü±eKÏ?)R¸ü!AË!6l˜"F[6,¨•!CŠ€oD@ˆ†yä¥ë¡Ø°a%ß… ÇÞ=ytãߣ×þݺuîÿžCÿØðoÏžUŽÛòçÊ¥Cþ¸ä’#þ8âÈo–YfÜ êÈãü±âM4ã~ø¡å:èÁ—RÐù\d8þ@M®(á_a øD ø‡^htÃSþ‰ 'þ ">àƒRݰ¤]K29QD$ì°Ã–jz饛¦˜b‚s&™dŒsÎ8ãˆ^y呞xâ–?=Î>Gxà’?î¹çœ?î¸ã‚?n¸áŒ?®¹æ„?÷8ð#0þØd“yþ2 “?Zi¥œ?Š)&‘?bˆÁ‹?\pÁ€¸à‚’D‘?L1CkÄ“jY@E ÀÚAINH@꤮ú5¨@nâF†XaP† 9ôš=ðÁ¯eðÁEbˆ!B\pÀF¯°Ðl0Г4ôÀ�Tô@ ô@$ô�=à€ ½z�ê¥7T¦õ›�xð¡‡v¸á5�������0�������0�������6���������������� ������� ����>������\������r��������������������*�������z���������R���������������/home/fatal/tiffs/sgiterm.tif�created with The GIMP������ü��w��������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/real.tiff������������������������������������������������������0000644�0001750�0001750�00000007442�12214432632�016067� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�:��p $h°à!B† &l¸ð‚º 3ÿ€™ûÊÂ?p–þA²òšµ°lüƒgë";ÿÙû‡ÊÁ?tŽþ5w˵&®ásñ«ÄÜü#åî9ÿ(yúGÍË?ZÞþÑóñ‘¯Ìüücåï»�ÿ8úÇ-È?^Áþu™q­»sW×D…ù'.Ü?IþI‹ôOV”ò¢ýS㟲XÿTÅù§.Þ?M þiKôÙ}à˜±ãÆ÷¯Æ¨ë¤þÕs:múŒ™³jÈ ““ØœýÃ-\¨H1ÍJ—-_±rÕêþµ™r]׿öÓ›6oÙº­.Ó®ñw (Ä?a¡þ{öî«×¬ëAC†5fœæ\OñoмëYþéΞ8ÎË$’D2)¤’F:þ©·ZÙä°Õv;åWPa¸VB)e”SA%Uœd’kµÔQO4ÑŒ:ÝÐF;mÝâßþu÷ˆÏô7Ð`C 7Òhþé÷ÑD“M5ÝL³ýâŸ!ßüÈâ�­°Škê¬Nk‚–ÿàì°ËN{U\I‡Ât4'"pÖy®ép#K®]‰ ÞhÜv×}õÒG?¼ˆÃ븽‹ßg_¹. q®Ñ'‰ I6G’‘,9k·z¹SKÃNpÓV8ÝÐ2p$lÇÕÈT½Ì]ŒÌ•(¸Îžÿh£ÏÙ£ÜbÍÓ«¸¼5>?S @ÛŒD åŸa¸Æ˜”¢Ì(Y«K>H®S•CÞ4Ëà?ÅB£E U¢5¼LÔÎÌ…H5¯n­ªÒ‰ëj=¨^ßX=å:/#ãå:_“ò÷­.?Í.¸þ⟑’„#kSJEÖÔš·­Å–Ó ÝaþÛâ:c5œr&" ]Ì:ÛN\Ó¹‹\<Î=6/ù§ÏÇ|Œ÷Á§Íè½àzûî·®1'­›”A¦’¹¶Y¹ÁªLû†uˆ–ð±眎¸R—µªÂu®;¿«‰¼ Ï3¯{ìÙ{ßÐ4µ÷z «ŸëÍfž•,IŸ] À›n6uÛL‹ÿËV²5®çzÄph ¯¢e¸^>ò(Ç©:G÷< ‹).%„oÄ å›&8¥ó º™ây"ù¦—.k÷¥·ºûômƆ1%•ÿ­¶áŸQ¹p°`ä\À6šä¦eöq©Qœv6â¬#ƒ?~áÄ—O¸ñåF9†Þha„#”ÞA�/.Þù%Ò(¢ëC ­B w6©£›U”‰àU"y£‹qŽÐ"†wtˆå=ÄãFH¯-Íæf\Ãø‡-2m;“v5´²´"}a(cÂ>µe&øâÌðÁ'š0‚cy²¡]h@:‡!Œ� s˜Â†04Œa ]x@Ð…ÂG‡ z WLAa8ƒð 3$ãVHÃo`ð{dN©A²–‚jÑ`+X–|ðÁð†.�ˆulb»ØÇ!ŽqŠS¸C~B6h‡ <0#Dá VHÆ+ìŽO‘íѱGÐðoomĈ ƒw̼žXÅ9™ÉJvr’ëðDñHG%tà‹YÙÂÒŠr <#ã߇áI^ZÒš¶´Ç&Œ d 80(øŠVµL#‚^ø Ó‘¹Ìg!N€ PÀ ˆPˆBI,¡ü4&-–aÎbNr' ä̹‚bnræØ�`€¸!dÀlS ñ”·?UÓºœ €±‡YA0S°‚ù±À�vpAЀîO\öR‡kN„?Y¹Ë]ì‹]¼â¯ 0+^î“S’•ˆÀʼn#2K‹ÿÒ—¡D….,8Š`ÀÔʈªĵ3Ǽ७02+X°2źÂ«`*TÚRǶR«lÁðYµJW86¹+xU0“(–Pe-¢¢Á‘8ˆÚÅLf…ËP»ÚW7wµ-}åY§ÒÕ¾DU¨f*\¢:×®à%©N] V€ m6jZNª©P»ÔKs2ÒÀ‚Õ¯ ¹+QT¼úT·À¥€Y3[R¦c¦$u¨fìò(4Æ€i)µÁL½ZÇ¡ÚUn(f*‡T·¹+C…ëØöT£å-Œusjߚض¤m¬©¥Á\.Ð0TSÚÿ‚Ç©c­®|ó+‚Ìz媥ïh®bÓÙÚu¾Wøo_ Û¥Æj"yÛhDC°Ó$ lÑ;WÚdõ¾º=«h÷Ú×§º¶ žÍÊUÓšWÒ.œà®I?c‚ÿàã,4”µ¬ÑŒQœt+�¨Ïú’ÌÑ 3Õ-x/†Þ±JaÐ=)vwÛ;ä¡÷P ]?<‚á_Öà 9¸hnà•èĪK�æQ¥µ$%In.€R’òÅð3šÁÔ’ˆFNx¢šÄ¤&cEn€àC ¾"8Ícž±nݰ†C`°ÑdÒÇ5xh;GüC€»t‡ ñ6Xbb@óZr (P€\Ðdñ¿P:ÒYgt‡½ ŠPüB¾¸¬1 :(#gIKYs²ÃÆF�Ô`‚Œ—«Š…/ÿâÁJð1úŠ×D8~!‰¼£XF òÑø!Þ‡áo �æ¾–œÄÝ;�8  4A 04àò7°(:ot“`�¤�CŽa.Â%:1ŽcԢ˂Æà¶n+´¡{Ž[{Ø5¯- >H˜`‚Œ`7DaS¸ Ö€»ÛÐFèµqüïÿ{ÅÿÞñ¿OüC‘Pb T>CQxGº° q8` œÐDä =à‚2À$Šn…ÿ ‡åö’ÆîÐ@ ðÁN¨AæÈ‚ B1†(äâ€Ü0þ7zòSžú´§?cÏÂx¨1 L…30€Y\BÛ¿PCÎ…tA¶èlÐ IX¡ÐF¨Á s€2À5$ž q€úù/á ·“¬0îJ­< Bƒ\9Œá„j„ GHBÞüð6·ÛÏîÈ`káú.gÆÿYñüß ÿ÷‘ß §0(ƒ˜Ã% ‘@$â&HÀL‘€"gÈA©Ïàˆ(Ã]HDª  GtBNè,oâ)à­8¯ nà!0M°€(„2hƒÈ H…*ø†EXƒkÈzóa§@_§ö w¦|ôYŸ÷E_Ìö5ø÷ ø#®3f f+¶[HHƒO€i8H‡wp„txƒA˜‚#p…Lxó2± �¯RØ�ì�nàHÐ�sÈG1…,8ƒD(ƒw˜‡¸„,¨ƒÿÀ‚X‚unUS·Ç<sZŸð)Œaª soÌJøê  zøF}æº`…ÿ`‡ÿà„°Xçp‚lø‡ X‚kpƒ\øȃ˜„eåá±E�µ“Pü�ö€50ƒ°‡`ƒ`È„3ˆ‡Rx‡¹0‡ ¨…ÿ@ÌÀ†<h€X{´Iº B £GŸöY¦ òð *6¥df0‹Ð` ‚1n‰8¸†ñHȉ¤H‰Lø/È—P2Ý$@bÀ� ÀŽRàEP]P*°ƒ ƒ@È€3ˆ…’h sXŒè ˰ ûè…(€Æè‡pÐÏÁ³p b¸RL¢€ àJ¸Ž€`¦Xæ&n‰¨ˆÿØŒm¸ŽäHt˜Œ”8†ðø·m¡.g `B `A00…°@ƒ�H‡3˜€98†¨€_HjøO�¸Ž®è ›°ƒë„€(‚&ø‡•„f@wŠ1|ôéðtOêÀ·ð ŠŒ`f¥ˆH|шøÝ؇ë8Œ¸Nø?(„ƒ98Kyn�GPSÈ…|(6è„X†ñ‡8(‡_H‚*øOø‡4¨ÿh‡ÿN•‹¸N ø‡’ÔLí„Aà rWŸaJ|Œi_ë4:ŽÅĉˆX‡ë$HGøOçt´Èˆ¬¤‚©ÈM_ø‡�(ŠlX‚Kð‚4¸…y°…˜…è‡e‡Bx‡(ƒ_H€Jø‡yX…ëÌÍü,ŒŽ›Kµ,Ïjø‡2h†XM5 ÷lÂûl ïlËŽ´„ëX‚ÿð´OˆÄ‰ô8̉œJ¿œ…˜Ž\bø‡(‚_Bø„ ˜‡Sˆ‚Rø…8¨È³¼È¬ÌIٔϢ¼‹žèËǰÏç|Í÷„†*h¸˜p÷4ö¥˜ ?_O Š.´ë´¨$ˆÍ޽-¸8Iïœ.$ʹBƒƒø‡(…ˆ‚2ø‡(‡˜Ë‹<ÿ¢ÌÜ¢ÉÛ°ÊûbHH(JÈbÎ7¨€ø/v,6Kd_Èÿ4+ +¡É¶Í¾ì+é‚.Ù‚ÍñRHÚRʹR)ŒB/Ò*Ò+ƒ2*Rø/³<‡ë”/«,.›¢Oðè+‡¬JÍb)—r+¨)O¨ƒv ¯â-€˜ƒk0ªÀ)PK¼’L‡tªˆt+ù¤®ØBL¿BëRƒXëÒ.ÝÒ/Cø¯ÌÊ)‹”Íë¢ «,-†*)Ç*Ï·ü€ër‡5Ø$ùª‡è8_¤€ò šŒ ì¢+‰ˆŽØ‚J·’«èJŸÜJ(µJ®™J+¸®Ì2«å” Œ,J¥*‚‚Úª²ÔJèª,÷ªÿªƒÿ:…ب#L´â§>|c (zˆÕz‚ÿ,ø¯·8ª˜úÌ™ô«ŸB¯I¸†Ùšjf¸®ùÎÓ­Õ²ëè ì†NõÚΗr.×:¨£:„kX¯#h‚N‰ƒ.ÁÜVl¥Vn•VmµVoÖl­ÖnÖm �������0�������0�������è���������������� ������� ����î������ ���������������������������8�������1����������������/gimpswap/dwiconxcf/real.tif��created with The GIMP�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/GNUstepGlow.tiff�����������������������������������������������0000644�0001750�0001750�00000026576�12214432632�017333� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�j,��� $h°à!B† &l¸@�GŒ)j”è�"ÇŒ>n¼ø &Jœ$i°X�S” P:@€ÓÎ H–l™sdÍž'g¦LiãÄJV¤h±â%B§J6CV € `À€×DÀê‚ÑP A5Þ¸>PàuªÖ¬RµBåìR*T²o¿þÅK§I—³r—µ0`Á€›�<à!‚ƒÒtf/X ü²YàÀB� v*hÐ@€ºN“NÀ‡÷ÒgÀ¾ýýeêÖ©ö¨±`@ƒ~ÕðP C… * (0a†~ ¸°àÁ‚ >8pàÂó6,˜po½† Ì+P¡C„ àA�Ñ8“� H[´KNÅp ¸à…—ÚÙíÐFËÀ­ ÀL@v t0@ 4p<!RH ‡� (¡†j¨¡ƒZh ‡:èa„"n!€Z ‚&ˆ N4È "!p!Ã{p\ Œ�ý¶ÒÔÐvÌ=¥'„Ìõ3($CU52pã€uÆoPAÍ{¯!�|ˆ¢‚JH¡z¨aVX`ƒ ná… ~˜áC�a8€1ØAq„* n„Aø@8áEzØ«€&˜à€Úê JhÀ‡"ÈÀð|Aw'Mp&;”4½ƒÍ¢9q2Ä0À´ÐÒšA dPÀ�Ã-PÀ‡�"H£‡J ƒV8Š‚Q$F YäQBTÐ@UÔÑAu4ÐG m´1DÔ1 ] ÐD môG 5´UÄAyF Xà». Ð!r0=x_Á0$ã¬ÑH+#É:±›m>‡äTCM-m1ÃÌÒ<p!˜.?ã†Øá‚øA)ATPCwŒ1ÃS¬°ÃKlpAWñÄw\ñÁOÜðC7ÜñGO\ðCÜðÆìpGs,pÄ£­‘BmŒBe4`D ä`†h`­’Ä O’z¼�ÏP@·ÊLæÔ(tT0»e˜_Š… TVN;l1„Çým×c£H"h`.ØÊA ¤7D5´1@SL±Á G¬qÇWÜ Àœ0B‰Ä„B‰ÇãkR p2Ð$‰X²"–dd#IHC"H¤ÃшD\… ÄÀîðE( á 7ø@–0…$ad ÈB*л7 §ðC HA©v‚�Ä@æ.øbi ’ñ€c³À©K‹\Æ qŸHÈ ²sŒõ¬ø d©Ä ˆ&0‚œà'¤ 9ȺP†1Œa 18Þp€‚†@ÄþB6‘‹,” ùÈGòQŽÔ#µ(F3"Pj´ Ũ@+QŽz´À E(F#äP‚BÔÂY(D9‚‘‰t IH@:œ†ÄÀ^ðE�´` +¸@Z0€ ¨ˆ@b ¸­­s]b `¸@:×�¯M ° p@à¤[iÉŽ‘Af%xÄÉé61žµ™çV&u¬ÐG¬àx!NÈC*P4 LakØÁZðƒBá€8Ä ¶HG PŠä¡1(E1Z‘‡rTa�EÈE.¦ŒÄa~pƒv  Xá�ö0‚5a{8`þB06áŠl$c^ÈA9F‡jT¡ ‰B#‘”! ©þ‡5‚†X(à ð‡ªíà%èBFP€<  ^A  §*@†P�T ­¨L'%àX¼“PøDš €e ®él´dÏ>ë™À\þ˜ž™d@&0ƒ d*Ä h€ ÆÐ±=\á¸!~ˆÒ‘‰\ e¨F!*Q†Ä!‰˜ƒ4 ŠS©/ÂÀ7ñÛÖ¶¨míl+�„_ q `/¸qG¸À;ÈA!ò1Œj” MD!rQ +$# p@0‚Ù ¸Ã *0²=d¡ èC †28! 1H‚ <à…�˜ N0€´`!(@ª6„‘oÜÊ<PYËšdJ�#S¶ç!²²#R€‰,¿ œL‚¤ E¨À vAÔºk-´` 3XÂÒ=@�b‡H$#YÈF "’„VØ#nX5@‹Gºà—ôø›YðGüN|â¤Ç/©ÚFÄv` Sj+S‹OÈBŠ8Enò0{”¢ pF&2Q7Ä")ðD�-¸À l¡P JP‡&øõ * é/èA¯K+Jfh¼Ô6ЀxN!|€Ôä`,(KY3œ6lÉs%u$ XÀ>ÂjBêÞ†:Ì`{8Á ž†4˜£y¨D4’‘„°‚ܸ¡<þè†?‹á/|øc3 ð)ü10øe-`ñ»Å­1¿›Á/M�_FL‚¬“!å”ÛÝN@ �Ÿ°NvË‹t#y(B5R‰ äÃ'ÿH‚B€pØÃÎð…la'Àú°€´ =J&¨èÀ VpÊOí"Ñ¡¶ùÂЈì¡„ȰL·1•™@ºÜ€’(ƒÌ +˜ ¤4¨CªÐ‚¬-`;G ‰EGB‘‡LTC.pÁ2 € d|Ðe“ÔÝëñÇ2ÀãO›@Â_m‚?¾ Ú~oŒ_nó¦ÚůŽ_¹�¿Ú2~—€_·mŸª$õN§ØVP L¸+Š1†:” mˆC>ŠP¤"ðB b‘/„Öð…#‚`Qr¸AfЇ% eh‚âé:³—@*ƒzQÀËœ¶ÙÄv,Õ$Ë.YëÂ)Î�Ù, ˆW:ÕY[¥à‡¬~V ‹óÃ^†7‹Œ¸¢õ‡4±³±MmÌâõùŠ¿å <.þ2 üE Äøé_ðÛý­!ÿüÇ_@Š_„_"Bøõk·rײ [2íp?ídÀLxH…DX…bè‚6Txh€N¨†|3„ñ‚ò@† Èá+Ip_Y°c°9Ð-Ð6 vÀcZ À5 ÂiP'B/uR�ÂÀ*ÂT™$2À j"àf2Ö¥oPe °mð jp‡$ˆ†4ˆ€<…�Ð]Ø>ÛÂføãq@ðS7Ä Àñ[õg? ø#f †?:øS}`€_`ŒŽÐFøµP ( …ßð†_ $ÿ¥�Áø%\w)ø h; XSÄU@Oȃ(†mh‡^‡ˆƒVh†QȆh†^ˆB¨†&ð5&(…`ˆ…8HkðO=°°qU `>àáP:`�\À#2õlñvîrbÄqT4€’%4 À| 'Š�à~ä|PC¶²zðp„Hˆ€då…L¨äx0‡54 Hø‹L?·¼pö{/b†¿ˆ†?ª&øs4`…?`OøŽD†_ÕÎDUøMdà€ßD�vøMXøæ$†ßð‹ÄHGøפ†_ñ‚|ø(_(Oø…ÊdO¶äHv¨„_¨ƒz¨‡/P}ЇgÀMxZàv¸fà²!`và€ ‡˜3ˆƒhH9p*]ÐS]ÕW^B B ‹ €40ðN&DBÁX\ÂOÀBa  *�! óbd0pwð”2ˆƒ�ñ‚RO‡h˜$�@€o[tµõ+<?+’ ŸLGK¤D†?àÊ2øcR࿘¾¬Žiøþl̆lÊøÞl‡ß,®ÄM„‹È�[ø…†_XÏ1ø…휄_ØËø…ƒœÏ¹\Èy8È霅š\‡_Ww_Sθ‚cH„ È€"° „hÐ[°GÓ”ç˜.�b �* yÀœØ#�KBvƒEÈØFåØXµ$|Âj .à�~P)úÓd°[PopȂȀ<‡|(„NÀ ƒG›‰?ÂÍL¿I - ø³`ÉbàÈ &…¿l~øb…?Ê!øáâ.®â†ßâáâ/¾â€ßbøÍÖìÊ>øõ‹ÈA•dNVØ-%ø…£R…_8) ø…³Ò†_8/½Ò*8-#ø…Ã2…_p*‹ÜÖÖ¸I8[¨€R¨oˆ3KP[viPUÐË@àQ  z¼ŽEœ$B(æ Q„ qÁÉ$á¦Õp`61EЋ[vt0ƒ¨è…h(‡<¨ 0Ø1?Âø“ À†¿IŠ6ø³Aà.Æl„?¬žâaø“?­øÓ«1߯險-¡,±’Èú$føu];@øÍu¨_8®ƒÒ-}¸ªø…›:‡_¸­«:« ¸®;ø…‹z„_XªøÕ Êm ñR¸„"¨…:hOH‚TÈKðå P-0`qÖ"Õ&ÀE 0@¦ÕŠDEæÏ_ôRo42°´¦=Àb ô`Nà>`9P50;°°†@€Hp‡\È€ð‚r¨„~R øðC7öQ _OøDÌvà­îê­Á®Ñ‡?o%ø‰V…?lVo ømUhV…ßVqø­ùZ,ÑbM¬D©Mm…†¶­#8¯¸_¸oø…Çv‡_xj¯vkvûv¬#8ƒ_ïøE7S)Æ…kÈ„Zå�È*l°ðP‘&0ñ4‘ `!O’xÂUlhšŒMÁ Á&—9ü54:Fý�&à1*1Ð 0� pð?ˆ‚xHo¨€*¨Sp7Ø.¢øüžÍ¼¢²’¢Ïªâh9mÅVnÝÖÉÞ‚?ê=øé>ìƒ>„ßÞ)øm lýÖk£6©ø-‘¬¬ µ5%hî7ø­;¸nçv…çþ…_x�ø…·îÿì_x†_x¨þ¨{X8ø­zSᎄȃ6¨…^ˆUp(`ð… I/«Ai'>ŠÀC¢�D\T4Á ïrD² �C{lÀ\²X:bE`Gqó°ˆaÐð…0È€dHÖ•úƒ f`‚'?ô‹jÔ„¤új³Á–Á^m•VëËÞíý>é>cÆø³±`\ø£>í½¾híÖ­Yƒßlóokí„Öñ®Ëºn/x  †_øœ0ø`ø˜@xkÏö†»‰o{ø‹I6%y…[¨‡fhƒ~(†20†€fY0°ÙŽ Ob`O¯4Ç\2¤a¨hïê ‘ÀHÒcæ&< *`nŠ yj°[p[ˆ„PH€T(<¨‚È„$˜îB@†o×J ø+  -Úb)¶š]“±ó±KÓ�Yø›«¹1 ø³±é“>‡¾êÛ6-‘ñ4Eh›øx¸ƒß‡_x_ø…¯‡_ø^¨[ˆ÷ì¿öƒ_¸\ø…ÚE$¸ÿɆ~ƒ\ɳB(ÐS°�àÙʆ‘vÀ $@ÅÂ�uÂU/E=€Ä2$À<¦:à¤$Ped°7p-gH„XH/(†rhð�wرy· W µ„nÉê›Ã9žÓ¹4¹›kѹµ€¿µZ ø«yë±—qª™qsSšh›¿IX …[øZÈ…^ð Ú€Z¤EKø…Õíg@ÉÎÊ„[¨…Vè†Hu1(÷t†hP30[Ÿ6M 6à 9ÃÄ¥eU_ZNÇ®@/A l’9ü&¯ô2ý&`•ÎŽÔ30Ñp…@ð0¦™‡&¨v�uP€Kœ8ø ÇžO¼ÑªÉšý1š³µ™ÛµÛ-Ñ_ÛÝY«u˜ûu\—±ïË6l¥¾«…õÔÖñ†Öñ…ÛöÇ…׉˜ ƒÏ}™¨ž˜ñß»z¨§œ½ì̲H€[H†Vhƒˆ*l(W‚hP#07Ê!E ´’-Ó µ4€ØêØXNïêJî"0w-@Q ¢9ºz9cÐ °/pƒ0l(‚Bh„èfà�vxòcøã Lp êhÙÞܵ5[ËÝ;¥µ^;Æyø;µÝ9øÝýuœÇ±ÝÓu«)70%h:3ø­¸êïößx9»}:‡ýY¤þ„ß2‚Ó\=@P<¯¾�„[h…Nh…H(ƒ …`ˆ€hÐ30[੦rÃa¤cüõÁe[ÙDŒŠå®eÃE\,  z+ö4b}Ðs00?H°`(…x¨›œÌw×Íl+„¿Z«Îbn…>Û5?UÆ<­›Üíµ>ÍÝ?ݹ?ýyû3—3ÑÖä‡ú2è s™ÿèvßÇ‚‡õ]€s)½v(U8ʉœš1°m�y¸…¬ƒ„P$¨€`…Pˆ09”Ö¨, ¶<RüÅ—#ˆuTÝZD@& ïC><QdZ YZà�PÃÍwÐû„hñ‚\(‡d¨…R$BÀ‚/7€¿Hrø«–]êÍS¸©S¾É±¼‘±¼éÓý=�Ùu™yé±ëóqêÛ[ÓN ƒêR)µÒî ˜þªóv:—Wx¹—¹«ÈÑŸ×mC› ¨ƒ.h‡Aˆ(€ŠŒˆE0+„Ö�PR`Æ-bRÀ%ʇ6è#F æ.o;\\4À¥. íFº iP «[ÐWjˆ†83…rð‡z¨ƒAÜ�LøZ¡JøK´5ýçz¶µ›Û6:é¯^Ãêíš™—y<5ø=/P„_Îeøµï†_Ðø¾lþ$p´ä…:¨ƒ_Øù‰2)³:€ãs-ãW?·R/Í2…Cø-%Ø…_Øø-ø…åß…_ðüƒuˆ+¸…®7†Að7¨�]xP+£�YyP* ·K_@‹µe?"�@€� À@C 4ÈP¡@ƒ´X0c'N†4E²Ì±á)@(þ å( Y‹øˆú€žÅªìþpåòG4¯?Òü‘-ì\1äK-N¢¬?¬üÁ­ìg5bkú_ÇŸ¤ú~¥7ò+§©_E-üªlíWC;¿Ú:úÕ×ůÑî~Íôòk±¯_küÚì×Î0¿öFúµ?fÄ(» `ͯ¥é={3Ÿí— y²nhÔbPŠ"e*„å'†&Kæl‰£„Vð!F*4PÀ� 4x �� <ˆ°` B†6B„ˆ1`Æ´,)òt2bEádKUÂU£*½ØïxÎÝêïþðüòGìo~FViä”P*@þ’?ð‚á˜àùÃ#$þˆ •?âÂà„°ù%5<~ÉŒ_ò#á—ÒÈù¥:*~iŠ–_:bà—þ˜uÓƒéØùe>.~YŽ—_Và—õ„ùe#±„1%žøXH–ߨ™Ž•Q~‘I•_äGš[Bi£A")$ ì$˜40Ç[$C%˜`„pD…Tû€(‡„Ì1wÂ@ H „DD�|¡†Z˜E)dÐD CÌPÆw‚ñ"ƒT (¦ŽVºàB ®A«Ö7?à­‘?Äká/Ud®SIäR¤Fxù¥!þ€l4ĉnR µÂ Ž_õIÒPcMÉá—ÂÖù¥¬-~©i7šèb ƒ_z;á—áÎùe¼«äã`¶»8㎋ùzf®·nRd¢¯Îº »?~a_øH‹Ú©c@rÈ¢s $1Ì0ÃNäŃ Öœ ² R²ß!,?€*ÐiÁ ¼Q €À�ð¡‡àFQ$àCmŒ°Æüñ#$rÈ ŽfÚ0ÇU69êçOY$jKµ.¥ê®7 ø6á¤Íùb«Æñà¯I¢·k*Tbø ›~IÙ“_2öá—Üý5×’òƒÛiÆÃuЩ?ºuÖ•¡ãùeä$~;µË®OeìÄ“g(¦XŽæ—Ú‹ùm~E)n ¡uHBH£€ üÊ 3L°Ä$A*ÛàHAÕ>a…sxÒɧ,P`€_�°­€~&Á Lpe‡Z¸àGxQA ]ì°Ç/‰'Žt)§ŠFÂH'—eÐÁ�“_ÈÿñÓok[W§˜@lüA0øb`lik!ÙÖöøCTPìˆhüR±øEbp„+|"Ó~ Š´©mQ¡¿¨5~Ñ:G¢ ¿è 3~Ñ6ëT'è G¸Ã†ž0…íÂ/Z"Š_Ûã—ãR§n‘…V4K…n‚ ‚„hhÁŠ Q:Á 60ƒXƢǀp.x `5…<Ç “ à�`�XÀ•,À (@*°‚¼€,”¡ MØÂ¶pE0"‡$D¢%¨E“Ê00€ oÆ9É�µ«3à)¢8„RŠ?À¥"p€°MЂTD¦¿vƯfƒ\á!U"²?rñ‹‚ôã%Â/*2êPÔ„*4GchCQ´à­YŠHÄB‡füf:“¨Ï8~¡˜½HHê†n‘! ÂùÈA DC&Fu¥{Af9$ ’[LåI8“˜Œ`±áDìb_ “ư€+P€4oƒ d �=8À ^ƒBª0ƒ,áD%)(G *Q‡´bÊ0‡.€S:ü­ŒÖ¢\€)nÀQ"åÂ_¡�›ªÔ)(ˆÂ_‰ß ¥I¨iFÚ¼tÚøEvUD,ÒˆLF9~QU=QŠZ»™p1j]ä’PT·úE~‘U;ü»Ž9��~! YÈã¥9G P„ ¸"¾ˆ†ŒÝ >ŠAŒÆòÍeÇB¾ò¬ç8Jp€5#æ‚,û ›Oƒ Ì`¸Á Y(A¦°€ìà!ÈA>Ê‘…Fô`�±¨E6 àô"ùÊPP*àü…˜à„`«T!µªH+Zñ TÒ.i Nåì‰ü"­‡é ¡Vª†|­iŽÊ`†EŽÒjö¾w½A ~{…â^ ¿­†~åWg©C’¸m»!QJ TÀáE4 aiTHCrP9Xä<¹ˆ@ã|þ9ÒäØ65Ö±$ Ë•xD ¨ÀVpAR-‡Œ`;x ˆF:ò‘2Ô¢ÍèGF0‡eYÀ ž´ EHÛ(…x�<Qþ.V0õ]vÅ*‰`ÚU8Z°‡½zˆ4{Û·vÈ¢ ÍÒƒ_äÍaösœòB”ޞθýˆT¤( Ü"MhÃ�¼‘Î #4jÐ6 l) q(‚,`¸R®I^Ã5i¬›bª84Ó€’j€d`g é„@V°€=¬lD䣠-HGé†iŒ`UèA+Îä�züP¬øƒÔf¦˜b|3Â�5uMhªË]ÛötðÛµH¤9­vÓ< ºWùôˆFHŸE•ª¸-ízfø…Æ^ú?Ÿ‚’õ@zÐŒ$¢¸~pC ˜Â‡Á°-eÒ ‘ãÉ&É¿ ±k€›GÁǨ…&0@Z$°ƒ=u‡"Ô +ØÂ z@âáÝ+T¢mè݈¬¡ÛØÁ)"„l¼€  D ÔqüAòŠüŸB ¶¤u¾ÛœVŶsÝívmzšìf¥5GÄÏÐîÝÙ‰‘|;üÞÉw¸ýŒá{7ü¦p{Ëa¤À ñz hÀ�2ír¸# ‘ˆ†4LNV(@ŠÜZ2ˆÉ 7"�íhòñôðÕT‚ØKqŠKÜ�` ØÀ)ÈAFp%âP†*4!á ¸"F\z…Zø#qX‚>¼Š3÷°¥&^Aü\nÓ›üæÊF)p~àþ6þàÿ½.]g{7øñõÚuDEüÆižÁ Òú»Ê¤AÂ/×AxïºxÀý‡Aq‹h†N€ ë„r0…@ˆ€(K0àC`B,KE4\¶L&v ÆIœÂÿq€w^ãM@—O J zà Ð�MÐ=p{ðH€hHƒ¨‡rh>9¸Äqø á'�‡?Ð )©Sa]ÖeA š Ev0Mv=?ò³P-?ñóЉÐwc#` {Wœ†_ ý8õ€Zh3!ƒlã+„Pˆs0°1É@,Ü�B á±@wtËñÜÀFàÀåÅ �(€+QGÀt|z`A1UÐÐ�p_€Hƒ,(†J,:9¸ Q ‘ha×Ýh © åè¥èfÛ ÐÍè!?ó=ð‡_›ôwýg’°¤ýa¸xh‡.èƒdö‡RÐ?ðHPc0kbPPÐ(ÄB†fs\1Ï+œ±<¦+�e: ÇEŠæmÀ  Fà�aæV0�#ÐWpÅsˆ4Ȇh€&haŠÚÆiøKä¨�WHø“=P„?°hÎ$tíP‹áÐH²HòЈ¤†_TOøÒdŒI‘Šé˜öOý'È…¨…H„,È€b_‚pÐ}0KÑDˆ`�6ÀB �b/C€ €V�¦ŽûÀ¥P„¦pfÆ%À! �JæFIÐFwpˆ‚D¨€jhɨ‹I”GEþòhLôöOøºŒ†?ðÊ¸è •èñƒ$‰ÁLMÊLKŠ0‚pøýÌ…_Ôd–ÃdEȘ ëd) I†kˆ…¨†NH†TÈ„°/€P)0NCœ �ÀÑ~ ¢h\N òŒÇÔQÐxH}¦gFŠ2À| Z Ñ´öаgptÈ€P(‡bh9‰Šä.“—AøË Ë·hfk_I:]ÈLˆö¤(€¤J)øÅl0çoþß°3ýw<ø-ødãýE°ä�i‚KH‡R(€fˆ$È„l°·teÐ0N1z`�z` T@ÈQ^(/Äáœrlœñ‚Àç^‹¯lÀRñZà�A�auÐÐ[°w€PU_È€*¶:8 aà(=øcM6>øþ2…¿dÒ|¦²Nt€/»2 ¦‡?.—üÉŸL/]Kjˆ€ßÌ‚ßtwøÕ †_«�øé‚©°(ø¯ˆ, «B ‚FýÄ3H„"(…jð…pˆ„dÐVPuÐ^à~a. :ulÀ‹f€ ¼âRP±çÅÀg€öR@LÀl«ðZ Q4àA²U�+°;p‚…ôl )8 a›„?ß�NÉÍ{ßnþøSD ƒ¿/« /ø +)—Ê|U.±g{Íz‡_Ю/øµú•]Ùw `Wuª¸‚qŸW‘JvHø­¸‚¯Äd׿Sü­MH‚ È‚p°ˆ°+°O�U`à~  dÀ`Öˆ8@Gq.^ËËi&W�'o#åQñÄuDÄ) 0=0ypð+ˆ€@H#p�;jbP‚í”S8�C°38;°�[8C°{¸HPp °q¸}0K¸%и10�=¸y0�m¸Ðk_P]ЇKk¸Ð¸ÐoÏ”�ÝŽhŸv½Ž•”€K0�]Po§´ƒKPížvé0-¸µŽí”NÍŽ‚KÐC0ì 0C¸èFÐ… 0cІ ÐcЂ Pî88Ð8³ЂcPUPƒ}EP†-°;p€!ð…`ˆ‚pÛ–Ð]06�I,KvÀ—/ÆÇ@on€u<�ç#¨NœFP±d:ò\ ‚| � Và^ xPµ¶Ð7ðÖº<‚$°…„lLȇ<¨¨RhR~‚Nˆ…6h^¨€¨‡>(‡zè~ˆƒ&è†È‚ž�è²`h‡Nh‚(ƒ6耨 �€´¡„h†öáè°`È6€h¨iˆ‡.¨(‡Nûƒòᆨvhat„h‡¦�„h·`(6¨è:Èn†h~(õ è‡ì�€~H†¨>¨„fh…ÈÆbèW¨„rh† ë€jˆ„,H„WHðI03°`�NàA ©: tÀË%€+ÖÔËâŠ¨ê¤  <q Âê¸H@Àì2 :`V>Lk%g!0tÐp0Kˆ€€d°ÈH…$(`hHbˆ‡|(„RÈ"(€2°‡"ȃ2†"Ȇ2ð™X(ƒ8m†rȆ\mƒ\Ȇ(‡8ƒbHƒb(‡TȇT(Oȃ(‡<ƒ((€(‡(ȇ(g(œ_H‚¬¹ˆu,‡`È‚|(;(„,(UÈ„D(ci ›Û9Ë…‚²E…b(…XȆ|(…pÈ„<(†"kLȇpHdÈ—Þ‚d° Rk$oÐ�S0+Õ6AŠŒV @4 s"…W¨iž†jãÅê˜Çfr±$OòN#@Fä,Eš.``É l";>=0Pm°£(O'ð[ð#ðo…HðgˆW�ˆ‚C2p „(ðP‡h݈ûMƒh°†¹{‹€hp_…ÀRhð¹w`'QÝFðéM0€@ˆ„(pÒ@ˆ/Ÿ€(°…�ð„(°ƒ€t–ÛpïÙèMp†Þ\‚È™Ú pØiˆ�ITƒ00Oðƒ`°7K°'ð�]°�3°ÉNÜePnqrÄv£žNÀ�À\€$@�äh±ìgÏ[ãœ.^Œ§ê#e\´)|Àã J`FG`*Ê�ö^u-P}É}S0 ÐS0�k0–'°=Û£cT0+°;k0;30;ÐM°ãŽãÁv�;Ð#0;¥2¶c9!°c­ƒ»€S°Sêc0­¹•:¡½ÕÅ9!Pk0;q°26ƒK°m°�}°50°Ý9Ì[P�c00kÃÓlЭìPàIY` |`Ö" >ÌbÌ%@bÕ¾of€(Þ5:èƒî7¦Áa§H€= @áQ@ì@-�êøz f`v`Nà~àáÜ�¶ìIàÅ_î¼¹€³/±&iobà7&P�6Æ�E`I‡qEO$MEàY�EàiîePCá[Å’æ^`D;YîcEûtà”cP¼ îöQ7$འP»} Ä`BP@à)C¸É[6J9‰[,I`Q`nà>K–¾š ÂN-XkÀD@A„»¦j-�ª«~5Q ±äåiThq@øôÊ)£"E<, R Z`�òøfæÖ(`š|txà°DG�6§�N ySà£N‡à<\`N v`Nñ{`@Làò7JÆ~+lÑ{s`&àTF`N ûJ~§·ø( ý7w¸·}úwF…Ï §·Ž÷Âv Eà�jC`^`ÆËV Fܪ\ uI < Õ@ü',€as@&O€é^™Êˆ|Á_cÇyÞ+Gò¾¦fdó+ÉÀ�ôÞfö\< \âßb BÆR@G4 # RìÂîTÁnÀ‘/ ûÃgù6 3t«¼i2+×€… 2øH#CˆiHĈ!E6â Ð#… Œ n ØHƒ 7xLÄHá!B”Q2øˆ&—:<ðÃʆ6\Øð¡Ã„24h0ÀA‚�xp@‚ pà �PÀ�ê¬ß¨q“¦Íš·h°5@@€Û× ´  Aõ¨ 8PàÊXH¡@€ *ÄQPGA *Thà¡L„4¨!Ξ :$h‹!,ƒ>eù¼U+@Êâ¥-Ù}ËÆ-РOß8z?Ø•Ã'Λe´ógƒ?<r ¸ÓPGÎ"¤þƒ@í¼'® kun_£  V-ßøØ¢MÛ:íÚÕx¬sµjÝ€ �(ÿ\w PÝ J`€ 2h`‚PIO`‚6 U1ì°€ ˜0U GÅ" %Ò°Ã8lÂ<²Ð£ =ª˜ >8 B=®xBFPÁ3 üRÕtòRß�öÆ;ŸRN%U}È›ä½$?US­ 3Ð1ãÌtL`üÎ:™ltÎÎ/¿²Ë%뜳Í#‡<Ë)·LóϨ€L ,Ðô’S×›5H­ØâŠ÷Y«¢´N³”’µ-½Ô2J+%ùòÔ-ß÷ *®¨R€+¬¼’*++³ÚrÊ®¡¬šR@Ãj¯£Îºêª­ÖZêm þ†Ši¤¾F¬»É¦¼������@�������@�������$-���������������� ������� �,���,-������X-������n-�������������������� �������v-���������R���������������/home/id/GNUstep/Library/Icons/gnustep.tiff�Created with The GIMP����-��%��=������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/BitchX.xpm�����������������������������������������������������0000644�0001750�0001750�00000024111�12214432632�016171� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 248 2", " c #208124922081", ". c #F7DEF3CEE79D", "X c #79E79248DF7D", "o c #86179658DF7D", "O c #61855D758617", "+ c #5965555569A6", "@ c #514451445965", "# c #79E761855144", "$ c #BEFB861769A6", "% c #B6DA924871C6", "& c #A699861771C6", "* c #AEBA9A699E79", "= c #96589248C71B", "- c #71C68A28D75C", "; c #71C68E38DF7D", ": c #71C69248DF7D", "> c #79E78E38D75C", ", c #79E78617B6DA", "< c #51444D345965", "1 c #596549244103", "2 c #71C659655965", "3 c #61854D344924", "4 c #8E3869A65144", "5 c #C71B9E798617", "6 c #A6999A69A699", "7 c #71C68A28CF3C", "8 c #71C68617D75C", "9 c #71C68617CF3C", "0 c #69A68207CF3C", "q c #69A67DF7CF3C", "w c #69A68207D75C", "e c #71C67DF7B6DA", "r c #492438E34924", "t c #492438E338E3", "y c #861765955965", "u c #69A655555965", "i c #86176DB669A6", "p c #965875D669A6", "a c #AEBA9A69AEBA", "s c #618579E7C71B", "d c #618575D6B6DA", "f c #4924514469A6", "g c #59653CF338E3", "h c #86175D755144", "j c #38E328A228A2", "k c #5965451438E3", "l c #CF3C9A6971C6", "z c #596561859E79", "x c #38E338E34924", "c c #38E334D338E3", "v c #69A6451438E3", "b c #69A655554924", "n c #E79DBAEA9658", "m c #D75CAAAA79E7", "M c #71C67DF7CF3C", "N c #49244D3469A6", "B c #28A22CB230C2", "V c #D75CAAAA8617", "C c #CF3CAEBA8E38", "Z c #B6DAA2899658", "A c #8E388A28AEBA", "S c #69A68207C71B", "D c #38E32CB238E3", "F c #71C64D344103", "G c #B6DA75D66185", "H c #71C6492438E3", "J c #8E3855554924", "K c #CF3C9A6969A6", "L c #EFBECB2B9658", "P c #4924514479E7", "I c #9E7965954924", "U c #AEBA65954924", "Y c #965859654924", "T c #CF3C8A286185", "R c #E79D9A696185", "E c #EFBEAAAA71C6", "W c #E79D79E74924", "Q c #C71B79E75144", "! c #E79DB6DA8617", "~ c #D75CB6DA9E79", "^ c #96588A288E38", "/ c #79E779E79E79", "( c #618569A6A699", ") c #69A671C69E79", "_ c #618569A69658", "` c #596569A6AEBA", "' c #618571C6AEBA", "] c #61856DB6B6DA", "[ c #492445145965", "{ c #AEBA71C64924", "} c #B6DA65954924", "| c #F7DEBAEA79E7", " . c #D75C79E75144", ".. c #D75CA28969A6", "X. c #69A669A68E38", "o. c #596561858617", "O. c #514459658E38", "+. c #E79D8A285965", "@. c #E79DAAAA71C6", "#. c #EFBEC30B8617", "$. c #E79DB6DA79E7", "%. c #D75CB6DAA699", "&. c #79E779E7A699", "*. c #F7DEEBADD75C", "=. c #79E775D68E38", "-. c #41032CB230C2", ";. c #79E755554924", ":. c #C71B6DB65144", ">. c #D75C86175965", ",. c #F7DE96585965", "<. c #F7DEAAAA69A6", "1. c #C71BA69971C6", "2. c #F7DEC71B8E38", "3. c #F7DEB2CA69A6", "4. c #BEFBAEBAAEBA", "5. c #69A675D6AEBA", "6. c #69A669A679E7", "7. c #861779E78E38", "8. c #51444D346185", "9. c #5144555579E7", "0. c #59653CF34103", "q. c #B6DA69A65144", "w. c #D75C75D64924", "e. c #E79D9A695965", "r. c #C71B75D64924", "t. c #F7DEC30B79E7", "y. c #492451446185", "u. c #49244D3471C6", "i. c #F7DE96586185", "p. c #C71B86175144", "a. c #CF3C8A284924", "s. c #D75C92485965", "d. c #E79DAAAA69A6", "f. c #71C669A671C6", "g. c #30C238E35144", "h. c #514459659658", "j. c #51445D75A699", "k. c #51446185A699", "l. c #BEFB82075144", "z. c #D75C9A6969A6", "x. c #AEBA92488E38", "c. c #492455558E38", "v. c #492459659658", "b. c #861749244103", "n. c #B6DA79E75965", "m. c #61855D7569A6", "M. c #492451448617", "N. c #A69969A628A2", "B. c #8E3875D671C6", "V. c #61855D7571C6", "C. c #59656DB6B6DA", "Z. c #596569A6B6DA", "A. c #492445144924", "S. c #B6DA59654103", "D. c #AEBA75D65144", "F. c #4103451469A6", "G. c #596571C6BEFB", "H. c #49246185AEBA", "J. c #A69959654103", "K. c #E79DA2895965", "L. c #596571C6C71B", "P. c #59656DB6BEFB", "I. c #49245965A699", "U. c #A699555538E3", "Y. c #965871C628A2", "T. c #C71B65954924", "R. c #C71BB2CAA699", "E. c #D75C69A64924", "W. c #E79D71C64924", "Q. c #E79D79E75144", "!. c #61853CF338E3", "~. c #9658555538E3", "^. c #71C6492428A2", "/. c #B6DAAEBABEFB", "(. c #8E38514430C2", "). c #D75CCF3CC71B", "_. c #F7DEF7DEEFBE", "`. c #F7DE86175965", "'. c #BEFB59654103", "]. c #B6DA555538E3", "[. c #EFBED75CAEBA", "{. c #D75CC71BB6DA", "}. c #F7DEEBADC71B", "|. c #EFBE82075144", " X c #EFBEDB6CCF3C", ".X c #F7DEE79DAEBA", "XX c #E79DAEBA4103", "oX c #E79D8E3838E3", "OX c #E79D82074924", "+X c #F7DEE38D0820", "@X c #D75CAEBA30C2", "#X c #E79DBEFB1861", "$X c #96588A2871C6", "%X c #B6DA861728A2", "&X c #E79DD34C1861", "*X c #B6DA79E728A2", "=X c #C71BAAAA1040", "-X c #C71BA2894924", ";X c #D75CB2CA1861", ":X c #AEBA9A690820", ">X c #DF7DCB2B0820", ",X c #71C669A628A2", "<X c #A69975D62081", "1X c #E79DD34C0820", "2X c #DF7DC71B28A2", "3X c #B6DA92481861", "4X c #618534D328A2", "5X c #E79DAEBA2081", "6X c #CF3C6DB638E3", "7X c #D75C924830C2", "8X c #8E3871C61861", "9X c #9E794D3438E3", "0X c #A6998E381040", "qX c #492434D31861", "wX c #38E3410369A6", "eX c #B6DAA2890820", "rX c #51442CB22081", "tX c #C71BB2CA1861", "yX c #BEFBA28979E7", "uX c #79E73CF328A2", "iX c #C71BBAEA28A2", "pX c #DF7DCF3C0820", "aX c #BEFBB2CA28A2", "sX c #69A655551040", "dX c #514430C21861", "fX c #8E3886175144", "gX c #DF7DC30B1040", "hX c #E79DD75C4103", "jX c #C71BB6DA0820", "kX c #79E761851040", "lX c #410330C230C2", "zX c #410324921861", "xX c #86173CF330C2", "cX c #49242CB22081", "vX c #28A218611861", "bX c #71C65D751040", "nX c #38E31C711861", "mX c #9E798A2828A2", "MX c #861771C669A6", "NX c #596534D328A2", "BX c #B6DAAAAA1861", "VX c #38E320812081", "CX c #71C63CF330C2", "ZX c #EFBEEBADCF3C", "AX c #410345145144", "SX c #EFBEB2CA8E38", "DX c #F7DEE38DB6DA", "FX c #79E76DB61861", " . ", " X X X X o o o o o o o X X X X X X X X X O + @ # $ % & * = - ; - ; ; ; ; ; ; ; X ; X X X : ; . ", " > - ; X X > X X X ; - - ; ; ; X X X ; , < < 1 @ 2 3 1 4 5 6 7 - ; - ; ; ; ; X : X X ; X : ; . ", " > 7 > 8 7 7 7 8 8 9 0 q q q w 8 q w e @ r t 1 y # u i 4 p $ a = 8 - w ; ; ; ; ; ; : : : : w . ", " 7 > 9 7 9 9 0 9 q q w q q q q q s d f 1 1 g 2 3 h j k & 5 % l 6 , ; - 8 w 8 8 w 8 8 8 8 8 ; . ", " > > 9 7 7 9 0 0 0 w q q q q q q s z x c 1 v 2 b y 1 1 1 l n $ m * 7 8 q 0 w w q q w q M M q . ", " > > > - 7 7 7 8 9 w w w q q q q s N B c k b b y y g 3 # % n m V C Z A S q 0 0 0 q q M M M M . ", " > X > > > 7 - 7 9 9 9 0 q q q 9 d r D g 4 F F 4 G h H J 1 K n m m L * , e q q q 0 q q M M s . ", " > > > > 7 7 9 9 S 0 q q q q q q P t D 3 I U Y T R E W Q k m m m ! m ~ ^ / e q S q 0 9 M M M . ", " ( ) _ _ _ ( ) z z z z ` ' ' ' ] [ t x 3 J U { } E | R .J L ! ! m ! ..l 6 / d d q X o 9 M q . ", " ) X.X.X._ ) _ o.X.O.o.o.z z z ) x r t 3 J I Q } R | | +.% L @.@.#.$.! $.%.6 &.' d > o 7 , 7 *.", " &.=./ ) ) ) ) ) ) _ z _ z o.z _ c r -.1 ;.U :.>.>.,.<.Q m ! 1.@.2.3.L L L 4.6 X.( 5.&.e 5.) . ", " 6./ 7.X.+ 8.+ 9.9.f f f f f f + x t c 0.F q.w.,.,.,.e.r.! K K ..2.3.t.#.L Z ^ X.+ + + + + @ . ", " 8.6.6.+ 8.f 9.f y.[ N u.f f N @ t g t 0.b { { .i.,.+.U p.K a.s.| 3.d.d...~ 7.f.[ [ [ [ 8.g.. ", " 9.9.f f O.h.h.O.9.u.P h.j.k.z + g b k 1 k 3 F ;.} ,.U H l.z.a.s.<.<.....! V x.6.6.8.u.9.9.c.. ", " O.h.O.N f f O.h.P u.u.v.j.v.c.9.3 1 v h Y b.q.Q { ,.U G p.>.a.3.t.d.s.n.@.% ^ 7.m.8.N u.c.c.. ", " z z z P P O.h.u.u.u.u.M.M.u.M.f u 3 v J Q +.i.+.} ,. ...>.R s.t.L t.>.N.l x.B.7.V.9.M.M.u.M.. ", " k.' C.C.Z.` ' v.c.v.v.c.M.c.M.c.A.1 1 F U +.i.Q S.+.R R >.e.d.2.L 2.e.{ D.~ 7.6.X.O.h.P u.F.. ", " C.C.G.G.C.Z.G.Z.Z.Z.H.Z.H.Z.Z.` N A.1 0.J .i.J.q.i.>.,.>.e.e.t.1.2.K.n.N.V * X.X.z C.j.H.Z.. ", " s L.L.G.C.Z.P.P.P.Z.Z.H.I.I.j.H.H.A.r 3 F q. .Q U. .+.w.r.s.a.$.Y.$.K.p.U K %./ o.X.h.h.h.I.. ", " s P.P.G.P.C.Z.H.Z.j.j.H.I.h.c.F.v.N B t b { } q. .+.+.T.Q s.n.p.D.s.s.d.U I ~ 6 o._ O.P O.h.. ", " ` ` ` C.C.k.h.k.` v.c.I.I.H.v.P v.h.g.c 0.I J.Y q.:.S.} :.s.{ 4 1.I l.s.a.U.n R.) _ z v.v.I.. ", " h.h.z ` z v.h.I.k.k.v.c.u.F.F.F.c.h.g.c t ;.Y Y :. .E.} Y d.I J $.I D.p.p.r.K Z ^ _ d ` C.C.. ", " O.P P 9.P P M.O.h.P u.P F.N P c.u.P c c D 0.b.} .W.w.J.g z.b H s.n.I U } p.p.5 7.A ( v.P v.. ", " h.z O.O.O.P v.I.h.v.c.v.v.M.c.v.v.N 1 1 -.D g J.Q.Q.:.!.g T 3 v p.p.Y Y U Q e.K 7.` &.O.h.u.. ", " s q s G.Z.v.h.k.Z.j.j.j.I.P v.h.9.b ;.~.b.g -.g b.:.b.b.!.T 3 ^.n.U Y Y q.Q <.@.x.` 5.X.M.M.. ", " C.G.G.G.G.C.C.C.G.P.Z.C.` j.V.y I J I J.} T.} } Q.E.b.T.b.l g H T ~.Y ~.U Q K.d.% ) ` _ z z . ", " q s s s L.G.L.d 5.&././.^ y p.>.I U U T.:.E.W.W.W.T.J.E.} l v b.p.~.U Y (.r.e.<.m ^ G.G.G.I.. ", " w 8 q s L.d z =.).C *._.l r.r.T.U Y Y T.`.`.Q.T.W.'.J.E.W.>.H J.s.p.T.].Q U >.e.K.n _ ` Z.Z.. ", " q s Z.` ` @ ;.U [.{._.}.3.w.w.W Q.+.Q.`.|.`.E.Q.W Q.S.W.+.w.J.} @.! >.T.w.>.w.>.K.V 6 j.H.Z.. ", " s s s d f J U.N.! X. .XXXr.T.W `.`.|.|.W w.W.W Q.W E.oXOXr.T.+X+X+X+X+X+X@X>.#X+X+X+X+Xc.h.. ", " q s $X$XY.%X%Xr.l }.*.&X+X*X} .Q.W.w.W.Q.W W |.W W +X+X=X].E.-X;X+X+X+X:X(.n.%X;X+X>X,Xg.M.. ", " q s $X+X>X<X1X+X-XZ [.2X3X4XU.'.5X6XT.E.W W Q.W W.6X7X+X8X9Xr.~ % +X+X+X0X^.~.7X+X>XqXc wXv.. ", " L.G.$X+XeXrXtX+XtX$X~ yX<XuXU.;X+X~.U.T.W.OX7XoX'.E.#X+X4X~.7X{.~ iX+X+X>X4X%X+XpXqXk f.v.H.. ", " d ` aX+XsXdX1X+XsXfX&X+XgX(.7X+X+X=X3X'.5X1XpX+X*XS.+X+X0X+X+XhX4.yX+X+X+X0X1XpXqXqXy ^ k.j.. ", " ` H.aX+XjX1XjXkXlX$X1.+X0XrXN.+XeXzXuX7X+X<X(.pXxX~.+XpXqX8X+XaX$X4.2X+X+X+XpXdXcX^.& A k.I.. ", " G.` &X+XvXkX+X+X,XB.2X+XbXdX<X+X0XrX9X1X+X4XuXuX^.<X+XeXnXmX+XmXf.R.{.+X+X+X8XzX4XI x.a G.Z.*.", " d ` +X>XvXrX+X+X,XMX&X+XzXcX3X+XbX4X].+X+XdXxX~.!.3X+XbXcX2X+Xb $X).hX+X+X+X>XzX^.D.Z , d H.. ", " f fX+X:XzX3X+XjXt f.+X+XkX^.=X+X0X0XU.#X+XpX=XjXNXtX+XsXF +X+XmX$XhX+XBX+X+X+X8Xg p C &.s Z.. ", " P aXBX:XeX=X8XvXm.MX@XtXmX^.9X=X0X<X9XN.3XeXbXj !.;X=XNX* yX2XmX2X+XtXcX0X+X+X>XzXm.a A P.I.. ", " O.c.g. rX4XcXk f.p & ^ $X& J.9XxXxX].].9XNXVXNX9XJ.I ^ {.).$XmX+XBXcXNX(.+X+X+X8X< =.a P.H.. ", " z z f lXCX(.lXm.MXy % %.{. XV E.'.'.'.T.'.(.g J Q ~ ).{.ZX*.XX+XgXlXdX9X'.=X+X+X>Xc X.A Z.I.. ", " [ AXAXg (.(.D u f.;.{ ! ZX. *.[.Q.W.W.W.Q.b.F U X_._.. *.L +X+X+X+X4X].+X+X+X+X+X+XfXX.k.` . ", " v.h.9.!.b.H D u p h n.E L }.[.*.SXW.W.Q.W.b.F $ DX*.DXDXL E -XmX,XFXNX].7X<XkXsXsX,XA.M.] H.. ", " ( C.o.3 Y CXD t & J { +.E DXDX}.L E.W W W Y F C }.*.. .XSXE R $ h b F ].6X9X4XcXc g.A.x f M.. ", " h.k.O.!.J.(.j D b 4 D.>.s.SX}.[.[.z.`.W Q.q.2 *._.}.}.2.<.3.$.~ D.G b.].W.'.U.H A.[ @ [ O.c.. ", " h.z u.v ].J.t D -.J D.{ >.z.n [.[.SX+.Q.W.{ C DX*.}.$.3.<.<.SXSXn.x.F '.W.E.S.F N N u.u.h.h.. ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *.. . . . . . . . . X. . . . . . "}; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/ps.tiff��������������������������������������������������������0000644�0001750�0001750�00000013434�12214432632�015564� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�2��ð $h°à!B† &l¸ð‚úX¨PiѤ "]°à¸‚e$S @™üøIãÍ[j)¼xIâÉSwp–-oV¬¸2cÆ vŒ³)Éš#¶%Ù—cÇ!›ªl0`[«Nmúô«0äPŽsInÌ™óeÁ‚_1U¹VåÒ±*÷ZÜp«ÅµA_ú=”ãÙT¡Ò£Éˆ-3^¢$Éd  ƒéi¤f‘˜%w‘¹„pàÀ%KÎL™²-Ǫszô˜Ð¥»iËf¦tè0¡M›-Z ÷3¢I“ñ¦{XìgFƒã³LŽ0»t–ù‘S´Xïa»‡Ýf{8aûø)M¶gY ,L˜Œh²>Ä“•XÖd™üùËœ&=£TIÀbqÃ0œp"@^¼Ö#¬4ÀÌfÇÐv-ôíÃGÐGutÃC5Ô"@½ð0t“(PA½hÑEåcFU c‹u,ÁÊ]í÷Èsg±IÄˈ±ðZ oÉò–lÑÈl‰ÉIE2rL#SÒd”/’%L^¼-Ã-X%±µÁ‰PíAßô²w6òðÃC/bt#Î µ¼ò uŒœÅÔÌíÁÊNlÝ·G;q,J-ܕķD p·—ÒlÀY\’‚?9oÉ\ñÈ›\±É“˜||ñ%KFñª \q% k¬q×'+qÌÂö0sD#çHÑ /¼sÍ3¶èQA7ÚˆP K;±Ó�gÝ”Ã]90Ä£x%-Å’PmQ _ƒUÅKI¼­Ä·\ '×[òzö–|Ñ(›|‰)’”P E1FŒE ÄGQD‘Ea¤B @ >ø^„àÁ o\x™pJxžj:xî©›‰±‘Ù1ŸAQe+ XDa×’ mV-ñÃBÊ%‚òz ¿ z È[ŠÄ¦P< ý$o�ÌV£°‡ &É4¢d$4PqÆ¿ vÇ _‹ñÄ;Ü,ÆGñ;?‹ñÁ{¼-ÞüÂo?|å=[|äÅßb-&ø`B&l$Ôj'\a‚”ÄÇJü |?" D‚,&zU"Ö"|Â×#ŒBÑ(ÚX2 ª!w`ÌW£À40Š =‰@9ÔvÅdP _¤B I$Qx¥ÃF•öÃë}”NF ”¾CI^|¾Cù»Ï‘BÍbBÞAm?YÈ僿®uÆ2[Im°Fˆ•œGD¹ÝÝîE¡ =„@ðLCŽafmÉ©LF‚íŠ {xËÁŽƒë0; v𖱕àØÀÛJá„ |¬^Ø8 f1B­„�µÃ—@§|t­k ëA„•í‡#Üí(²Šy‹bb{Á(b²Mà,ø ÏÀ°Ð Ì&#Ñ�ÐõÔ¼e¯C%ô}ä@YƾƒB‚ÕOÃ@‘ð‚Ä ˜ÄA ŠäE€ï\køR�¾Æ†ŒâuIaZÃ@``£Æb„ ÊE$"Qb5”è%ÄF1ñPÌdñ…¤D‘˜`“ziLF²j«–Û‹\"W„á~¸“¾ ;<(�÷¬É4°„;…áDIØQ ö†+-áAx± ^&„$;á@7ÚÀ?Å)…‹à 8!B-A RƒÒÔ L(%J‰R’¥ …D‰hak5”±ÄFºˆa¬Äx êñ0$ÔÕ‚Pï@Ù03 äœàÄ@Îð-D ™Ò–¾tF…$ B ˆ™RF… -áFxš âì åàJ›dÀ äE°£*„Û‘u[~À(D¡шFEÕQa5TðÄF9ñPÎO”�6â-rIŒÕ Ž,,€ ‚æ`ø;>²<XWöÃ@°ƒ­ðØ+xÖ‰ ÚÔôa.&h°&Æ3©ñÙ sjÁà�¿ðØ mXÒ€0†sù#áLg“+šU­*‹XTU ÕmL ªy‹*b£’”(5�¬£ÇuÈŒˆ6´ WÈ@Õ±öƒ·ï’Û\À.œ….%aIU˜‹êìô 貃]&1!e.pWöl†ØÀ.À³B) `ÅJ8g-¬öƒ]¬ÜÖµѨª:ª­†j=´amGªTƒƒµa(V?‘Hv„Ùuyá©v¸•ˆ0NCÅ-±Ac1tŒŽÀ¸Ü¢h¤¡j&𱙪0„YoÁ%ZhŠÚrb3åÏJØÑNj‡«£à­\Ä!µmXÛ¦Š0T5LC©Á`åÎÂJ´0(N¼XRßAžep6<d&Ù`c@Ô¦LÆO18”òl†¥Oy[r’•pe»±!@U˜Q Ö`;¸ Z¨@MxÐ`tØ�ã…Ó6€£•à¬\Ä#õˆA j«Ž:«¡Öj¨á-j§IšÁCæª 1ÒU#@x ‚…‚p à[–Á¥´f%ì 1±As.ei!g%øRdA²]MƒeÁ Þ”ƒµ1 ²A› ‹g ¶M±ŠÀf”„-aM8NÊE’Ð84´ ÕBcÕÑ 4µdA!ä#½–‘ ¢…¡ ç%hzêa­_i!%Â9Œ¢›ã7ÄØsÀ–•pW;rJI8Ò�Ö‘ iW‘qÆ€¸ð Þ`¯ç¤0‡ Å`Æ2X[ ööÛSU÷‚¦)ì qhjšªŽF¢¡žÄ¨! r½&#…iˆ#%IyMø Q ˆ²+Beœµ Íޘ㗠`!6èPÀApD-áI<”Y BguÔÓ“±ef?th Ç›+¢°ëî­Ç ;X9UE"ÑÜ:4^¦uhN ù‰*Ò ”ìHö:tø‰d1Á@´0-Œ_uFƒA×§IƒwâY£Bjdl€Ua-bèÓV‚?ÅàÌdä’ ÙwbY§ÒB‚¼ps0|Ìñ…SvVú2á;tÒ R-ö„»]á®Ü§ õ™ˆ}bÑj54©dAZàuh«&#ðEâ?ù‰Tª¤D‚x÷A^ðãwÞå%wïE9°'<0@KY+‘cpÂOÈÀDj¤äw‰IV'Ž7FqßD°·{‚�o¤„x!Dv7ð&P“SUH†dh·hµh3hc5h¡¨t`d‡4^}|¦Â ÂsL†t¢�#=ùrPÐc`3YÐáPç;P•P–P s~åSÐà%ÐqPÐ ‡WL2 æ(ða?ð@^p!Lˆbd„?d„�Ê…TH…NOvH€è°èaª*db‚,cÄ–&ri¦*$ƒ\ü´Vð…TLƒdd$üDR”.ðƒ,[&Pˆ“rŽ‚öƒ@öƒ�ŽŠ^°Wp„�§7tªxü„$EÇ4ˆvDÅc,wäŠ�ˆÀOˆAADJ¥\HèŒèPuhAlhÄd¨EO(% (4]5ư3’ b0ÃdÈ"60Ç4H µø$b°!b°DJÈ&Z0Ã4H 5o …ÐEÐEˆrXH4PCL†x-‚dpŠ ð†p$ƒxĆdÄ F†8¼…¤Ø…èŠä8Å´¸‚Rd2d„2drDƒ A‹Rð‡ô(‹$†¼¨ÃL†$ƒ"…@b1d¢ˆ†:$ƒ,¤„t{2È…\¨·÷�?H$ƒdµCbHB<q%ÐA4H…,È‚rȨP-ÈL{z€4Vƒôt×:ȶgH‚.S€NDóð…ê¸DF¨@F¨DF¨b0pB4¨ÅY°#¼�5° ªøGb(!6°ÀOÈ"b°&<°‹¨€ ‚b(†˜„IX„1ƒ´w…QXÈ:˜ÏF˜†EX„uȃ<E�-°À°”ÈÇ~ž€ÈŠhÈ…uX‡]X…UØÎ^Xƒ%X‚u(€¨5(°(ô( .(±|ˆÏ`ˆƒ.©6$†F¤„ºŒÏXd„�¼…&DƒDƒ:ĆjÄ3 ZÌ\$ƒ|ă +†&èXeX†}˜‡yØ„)˜‚%h…Vè ˜€ù\‚Ýì„ɇÉlƒÉH€Ü؃š¢ð(‡!‚ÙB†yU‡to‚J¨„ºlƒ‰l„IC…LÈ„Úâ…Útº<M&ˆ‡nUÏP…6$ƒ&LË{ð‚¤:�Wz€Vœ÷üÀYp+ÝÒ%<pÈRĆªÒ%6°Gv)((|˜‚¨F”Þ‰tbè…^(/È(BvˆÅJpƒ:¨ƒ>Ø…]8.ZeHТH„R(…˜†iX€Nè„^qJ=hÊhÊ-hñsH„^+¨bˆ‡^+†>U‡.$†Vü„fLƒ&�7z€z€v¼…vDƒ¶êB´j‡°ê„PhÌŸü h‘h>èƒUX€Ø*|˜&$&°@FÈô¨(Y˜…¥l„©ÚC-pLGh)LXÍyØ-_ĆØtÖÔƒV(ƒ2èpJlk(‚"h‡B(„¶z€® „~OþH€O!­ƒ¼­j‚v¤„Öjb5èÄðÁþF-ðnä†À~ðE4hÁ~pÃ~ðÀNðj„m„A¯yæb�0G9ð¶¨C-p(dX¨½š„A½~´ﲇ¶B€Õfƒq‡ih‡vÎ-è®7èUu(€lȆ–J„®J„N¨‚*è§Üà‚Áà‚!S€U‡¼…ÄkHè haàj†ðH覇¶pèÆÛv€0èjGVËKˆ,qˆ‚Õ‚ž -Ø‚‹¬ƒ¥lƒi^CûŽhè4Hƒöކ–Š€ól„™Nb`0‚|ȇÞz€álƒÙš„¡„™Â„Ùlƒ9¨†j˜¨Í -V+{…Z¨…‰V‡dêhm0DƒNăŽ6BbèÄ´6Ep¡‡FðVƒì?ìïéŠë)ìÿÃ@ˆh¬XÉ6˜É(f`ŽäjQÀ4H€9˜ƒµÎ+{hµh¦vª7©7èƒFh„ö.*L˜ëOè‡~ï¬.ƒén„9¨‡z˜‡h€ùnáØëˆ…!z€Þ6@lèFbè¦hc�ðšö†èÖ…(è—èÃ[è-5VƒVÕªÒÖ†8诒¬€Ø„M8ëít l�·Ž†nH‡tè‚ È€è€Xj8iA˜M:¬ïzƒá¬†a(Baðª¨ï˜€¹¬ƒ¹a9ªP˜˜éWX¨à‚Q+€+†©Ć>$†ü„bO+†Al€`l€ ì„�ì_z€:ìl�?Ô‚ Ô+€®jAX(/R<¥Õ‘^hGðƒa†XØ….è‚A†…ø,^¨¨mØ&h‚ ®DìWèî¢Ñ9¨ÅdȘp˜‚hå*„Q{1+€Q+†!Ux‡ADƒA$ƒ^¢@ˆ†A+†‘‘èï U‡v+†­ƒ~{OAOÞI‡š­l„YjIÒh(^èNGèœ\X‚8€›B†Å$Àýb…8‚#¸5Xƒ½©ES(‡r.(XÌuØ Õ‚4Ÿ™r˜‡fh†yhƒ6Xí‹=›…YPu•El"bP-’œåÁÆf³é³—é…¤Ù…Dn­É‚ó>‡õ9Ã2ðA2(mYh2XŸG¸É%Øçb3U‡²)‡Ø8 ©>­b…‰š#؆m8)/–c+†’é„•E‚µ€­d€‰Øƒ)O ­ƒq­ƒ±µSuG4^âYÁï­ƒÁ؃ ƒ°à‚±à‚‘‰h©¸éÍF˜ÛØö‡³åXáò‚iV¿ÌWu(¯‡®€2˜(¯Q‡É-€¹¬†ÚŠ€+8¸/LX dV‰E‚õ€íJ‡Ê-^˜h˜Ž=˜¶˜‰˜b5C4Ádè›™Y˜S€¡^n0”ƒà “]Øp¤ßÈÈL‚HÙ Í1´„� ®˜ºb…™V¶FJˆ .È,VèÀ[HÃN°GKðn˜^$بtØ.(ØÝÊMXìh˜éèí‚TXð˜Ýa$†A¤„nb/­hHÉèe+¨ÿeF9‰=ÙðކáÅa€³š„áN‡V‚H4�ìG .hçúz€¹¬€¹bíR¨†ùn<^¨…éJ„~T7J+†Üá‚¶BƒÍ­mnè†Ýš„ýò‚=ÊítX.^XˆhX°˜5˜Á[ClÆdè!Zð6ŒíU­‹$ˆ‡O ‰h>¢á‚Ñþíù…ã„9‚(ä…èú„ézƒé‘ƒ™cË ˜?®Vù.;~XèFX¨PXp˜G.ˆžrXZxX]¤“…vØÚßS<�è½S«ÉmWÕú„µtåÓ5˜U-˜Â[Ç[Abè%bð‹1…<‡†H€–à‚Þs?OH‡±t„±Â„ƒì… ¸ «¹-†b˜­D˜¹Øb……V…KºÔn„Å#éWXšrX&Pˆ™rX(4XiØØ–ý?µSë؃€mʽºâ…历åà‚E+€yÕ‚IV[~"_œ?ì€Æl|쯥FBUA9EI©mXŸt˜:ŠH€Ì¬ö\ð‡,Vº`°…(öƒ(Ž‚,††‚€Xv…Xä‚8…xd·vˆ»Û5ؘ\غ'è…½þÝ&ƒÝ¢½OUítØ^XyÅⅵ؃e­ƒ©ÅG4èG´A„0èW-^rÕ‚þ³öh˜èh˜.˜hA8Ȩét¨Í-¨­Pè'•à‚®z€¥‚¥¬€ÅVå²‡Õ …µµ~…õ…‡ÍBƒ­E‚­»ÁÉ…õS„Í«¾×—*ZØ™ô—Å0ÊX=Xº¿ˆ¾H†…×°bg5ÄÛ!€È™‡ ­«Rèó”eä·‚TÛá…Ét„Ij‡hV‚hä…XöƒXŽ‚Øˆ†î(VXþ²‡•pXÿ˜…‡“Y$ØÞ–myá‚‚Íò‚í—h2Ø+ZØ+|ØÍ6Ø= È5OùH€9S€©×0˜üo%ÊH C¢E !FŒn±bµŠ¯S’$ÃR¥‹nD† òd™#Ç”<y¦(0«H‘y%J,(SfQ¹rK*TXR­ÚŠZµÖÔ©³¦^½5­kÖlS«V›Ú´ÙҮݖ.]vôè±WÞ>}vôë·kРC†ì1bߘ1‡ÆÛ÷ß —D6$J4'A‚qâLõ3Ý{Sጅ6Ü`8ýátôÓÐC«)ú¥I3ÇÐlÙ²%MžR¡B³é2(˦²J•–U©²œ×jaë4-^ÒF›•lëÐaK§NÛºuÛÕ«·Ž>{ ì5¶Û̶aÃvÚØoïȤIî?xøèñ“§Ïž¿xùêõ›������0�������0�������à���������������� ������� � ���æ���������������������������������8�������*����������������/usr/home/fatal/pascal//ps.tiff�Created with The GIMP�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/GNUstep3D.xpm��������������������������������������������������0000644�0001750�0001750�00000007535�12214432632�016537� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * GNUstep_xpm[] = { "45 45 80 1", " c None", ". c #861786178617", "X c #9E799A699E79", "o c #71C675D679E7", "O c #69A66DB671C6", "+ c #69A669A669A6", "@ c #6185659569A6", "# c #59655D756185", "$ c #596559656185", "% c #514455555965", "& c #514451445144", "* c #49244D345144", "= c #514455555144", "- c #8E388E388E38", "; c #861786178E38", ": c #861782078E38", "> c #861782078617", ", c #71C675D671C6", "< c #71C671C671C6", "1 c #618565956185", "2 c #596559655965", "3 c #492449244924", "4 c #410341034103", "5 c #38E338E338E3", "6 c #30C230C230C2", "7 c #28A228A228A2", "8 c #18611C711861", "9 c #104014511040", "0 c #A699A699A699", "q c #965892489658", "w c #965896589658", "e c #79E779E779E7", "r c #69A66DB669A6", "t c #30C234D330C2", "y c #28A22CB228A2", "u c #208120812081", "i c #186118611861", "p c #08200C300820", "a c #000004100000", "s c #000000000000", "d c #965896589E79", "f c #AEBAAAAAAEBA", "g c #9E799E799E79", "h c #618561856185", "j c #208124922081", "k c #082008200820", "l c #B6DAB2CAB6DA", "z c #79E77DF779E7", "x c #49244D344924", "c c #104010401040", "v c #AEBAAEBAAEBA", "b c #8E388A288E38", "n c #59655D755965", "m c #410345144103", "M c #38E33CF338E3", "N c #30C234D338E3", "B c #18611C712081", "V c #A699A289A699", "C c #D75CD75CD75C", "Z c #CF3CCF3CCF3C", "A c #C71BC71BC71B", "S c #E79DE79DE79D", "D c #FFFFFFFFFFFF", "F c #BEFBBEFBBEFB", "G c #104014511861", "H c #8E388E389658", "J c #D75CD34CD75C", "K c #F7DEF7DEF7DE", "L c #EFBEEFBEEFBE", "P c #DF7DDB6CDF7D", "I c #B6DAB6DAB6DA", "U c #F7DEF3CEF7DE", "Y c #E79DE38DE79D", "T c #DF7DDF7DDF7D", "R c #8E388A289658", "E c #CF3CCB2BCF3C", "W c #FFFFFBEEFFFF", "Q c #C71BC30BC71B", "! c #BEFBBAEABEFB", "~ c #EFBEEBADEFBE", " ", " .XoO+@#$%&*= ", " X-;:>,<12&345678953 ", " X0qw-.er12&345tyui9pas ", " Xdfg->erh2&3456yj89pkssss ", " 0lfg-z<+h=x3456yj8ickasssss7 ", " dlvXbz<1n=x345ty7ui9passssssss ", " dvfgbe<1n2&3mMt67j89ckssssssssss5NNNNNB", " fv0X-e<+h2=xm45tyjui9passski887i=sssssss", " Vf0X-z<+hn=&3mMt67j89cksss9,CCZA0q7ssssss", " VvvVq>,r1h2=xm45tyjui9passsySDDDDDF.Gsssss", " vfVq.e<+hn=&3mMt67j89ckasssyCDDDDDSV<Gssss", " H0gq.z<r1h2=xm45tyjui9passssyJDDDKLPIq+ssss", " 0Vwb>,<+hn=&3mMt67j89ckassssyZDDUYTZFVeGsss", " R0gq.z<r1h2=xm45tyjui9passsssyEDDLTJEFV.nsss", " Xgwb>,<+hn=&3mMt67j89ckasssssyADWSCZAIVb2sss", " gXq.z<r1h2=xm45tyjui9passssssyQDKYJEQ!fqrGss", ":Vgq.e<+hn=&3mMt67j89ckassssssyFDLTZAFIfqe2ss", "wXqbz<r1h2=xm45tyjui9passsssssy!K~PEQ!l0w.nss", ".q-.e<+hn=&3mMtyjui9ckasssssssyIUSJQ!Iv0X.1Ms", "<q->,r1h2=xm45yj8i9ckassssssssylLYZFIlfVqzr5s", "+q-z<+hn=&3mM6ji9cpkasssssssssyvSPE!lf0g-e+ts", "+qber1h2=xmMtj9kpkkassssssssssyFUPAIv0Vwb<1ts", "+q.,rhn=&345y8pai9j9jcjp97pciurPWPQlfVgq.rhts", "+->,+h2=xmMt7ip9,lVfg0XXw!X-lQPK~ZIfVgw->rnts", "+bz<1n=&3mM6jicyCDDDDDDDDDDKDDD~Z!v0gXqbe+nts", "1>erh2=xm456jipyCDDDDDDDDDDWKLYJ!v0VXw-z+n4us", "h,<+n=&3mMtyu9pyJDDDDDDWKLSYTJE!vfVXw-.eh=yss", "=1+h2=xm4567u9pyJDDDWULSYPCZEQ!lfVgwqb><h26ss", " +1h2&3mMtyj8ckyJDDDU~YTCZEQFIlf0gXq-.,+24uss", " +1n=xm45tyjickyJDDDLYTCJEAF!lv0VXq-.z<1=ykss", " &==&3mMt67uipayJDDW~TPJZAQ!Iv0VXw-b>,1nM8sss", " x&x3456yj89payZDDKYPCZAQ!IvfVgwqb.e<n&7ssss", " 3mmm56yjuickayEDDLTCZEQFIlf0gXqb.z,1=58ssss", " 555tyu8i9pksyADD~PJEAF!lf0gXq-.z,1=tcassss", " mM6u9ccpkasyADKSCZAF!lv0VXw-b>,rh&7asssss", " my9pkaasssyCDWYJAQ!IvfVgw-b>,1hn58ssssss", "+r1n&Mj68i8888uzKDWTEQFIlfVgwqb>,1&xtpsssssss", "h1n&3t7NCT~PZEPKDDSJAFIlf0gw-bz<h&6ucssssssss", "22&3M6789IWDDDDDDYZQ!Iv0Vgwb>,+h=ykssssssssss", "=&34tyj8cktblYYJAFlf0VXw-b><112xtpsssssssssss", "=x4tyju89pastebq0gq-b>ze,<<h=&5ucssssssssssss", "&mt7u8i9ckasssy&<eze,<r+1hnMjjcssssssssssssss", "mtui9ccpkasssssssyjjtt66yjjcsssssssssssssssss", "kasssssssssssssssssssssssssssssssssssssssssss"}; �������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/write.xpm������������������������������������������������������0000644�0001750�0001750�00000022507�12214432632�016151� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 213 2", " c #410341034103", ". c #EFBEF3CEEFBE", "X c #B6DAB2CAB6DA", "o c #B6DAB6DAB6DA", "O c #59659248FFFF", "+ c #9E799A699E79", "@ c #BEFBBAEABEFB", "# c #BEFBBEFBBEFB", "$ c #C71BC30BC71B", "% c #C71BC71BC71B", "& c #CF3CCB2BCF3C", "* c #CF3CCF3CCF3C", "= c #38E39A69D75C", "- c #38E39658CF3C", "; c #38E39248CF3C", ": c #38E39248C71B", "> c #38E38E38C71B", ", c #30C28E38C71B", "< c #30C28A28BEFB", "1 c #30C28617B6DA", "2 c #9E799E799E79", "3 c #6185AEBADF7D", "4 c #BEFBDB6CEFBE", "5 c #A699CF3CE79D", "6 c #49249E79CF3C", "7 c #49249A69CF3C", "8 c #49249658C71B", "9 c #8E38BEFBDF7D", "0 c #BEFBD75CE79D", "q c #61859E79C71B", "w c #A699C71BDF7D", "e c #30C28207B6DA", "r c #D75CD34CD75C", "t c #CF3CE38DEFBE", "y c #6185A289CF3C", "u c #A699CB2BDF7D", "i c #8E38BAEAD75C", "p c #30C27DF7AEBA", "a c #79E7B2CAD75C", "s c #FFFFFFFFFFFF", "d c #71C6AEBACF3C", "f c #51448A28F7DE", "g c #49248E38B6DA", "h c #186114511861", "j c #30C234D330C2", "k c #410345144103", "l c #30C279E7A699", "z c #861786178617", "x c #A699A289A699", "c c #A699A699A699", "v c #AEBAAAAAAEBA", "b c #AEBAAEBAAEBA", "n c #59659A69BEFB", "m c #28A275D6A699", "M c #28A271C69E79", "N c #D75CDB6CD75C", "B c #69A669A669A6", "V c #20811C712081", "C c #28A228A228A2", "Z c #186118611861", "A c #104010401040", "S c #BEFB86175144", "D c #B6DA86175144", "F c #B6DA82075144", "G c #B6DA7DF74924", "H c #BEFB8A285965", "J c #C71B92486185", "K c #C71B96586185", "L c #BEFB8E385965", "P c #DF7DE38DDF7D", "I c #8617596530C2", "U c #618541032081", "Y c #69A649242081", "T c #9658659538E3", "R c #C71B965869A6", "E c #71C649242081", "W c #514434D31040", "Q c #410328A21040", "! c #492430C21040", "~ c #71C64D3428A2", "^ c #CF3CA28971C6", "/ c #E79DE79DE79D", "( c #CF3C9A6969A6", ") c #D75CA28971C6", "_ c #9E7971C64924", "` c #CF3C9E7971C6", "' c #E79DBEFB9E79", "] c #965869A64103", "[ c #D75CA69979E7", "{ c #E79DC30BA699", "} c #E79DC71BAEBA", "| c #A69971C64103", " . c #596538E31861", ".. c #D75CAAAA79E7", "X. c #DF7DB2CA8E38", "o. c #A6997DF75144", "O. c #86175D7538E3", "+. c #8617555528A2", "@. c #79E7514428A2", "#. c #AEBA7DF75144", "$. c #69A645142081", "%. c #965869A638E3", "&. c #B6DA86175965", "*. c #8617596528A2", "=. c #E79DEBADE79D", "-. c #618541031861", ";. c #8617618538E3", ":. c #79E7555528A2", ">. c #000000000000", ",. c #61853CF31861", "<. c #A69979E75144", "1. c #AEBA9E7971C6", "2. c #30C22CB21861", "3. c #10400C300000", "4. c #000004100000", "5. c #CF3CCB2BC71B", "6. c #9E7982075144", "7. c #8E3875D630C2", "8. c #6185596538E3", "9. c #208120811040", "0. c #30C23CF328A2", "q. c #28A228A230C2", "w. c #30C21C711861", "e. c #FFFFF7DEE79D", "r. c #F7DEF7DEEFBE", "t. c #EFBEE79DD75C", "y. c #A699AAAAAEBA", "u. c #E79DE38DAEBA", "i. c #71C669A65144", "p. c #EFBEEFBEDF7D", "a. c #EFBEDB6CBEFB", "s. c #EFBEF7DECF3C", "d. c #EFBEEFBEE79D", "f. c #FFFFEFBEDF7D", "g. c #F7DEFFFFEFBE", "h. c #F7DEEFBEF7DE", "j. c #F7DEF7DEDF7D", "k. c #FFFFFBEEBEFB", "l. c #FFFFF7DEBEFB", "z. c #E79DE38D9658", "x. c #E79DDF7D8617", "c. c #CF3CC71B69A6", "v. c #E79DDF7D69A6", "b. c #30C230C230C2", "n. c #DF7DD34C5965", "m. c #EFBEE38D79E7", "M. c #F7DEEFBE9658", "N. c #FFFFF3CE9658", "B. c #F7DEEBADA699", "V. c #FFFFFBEE9658", "C. c #DF7DE79DD75C", "Z. c #F7DEF7DEF7DE", "A. c #FFFFEFBED75C", "S. c #EFBEEFBECF3C", "D. c #4103410338E3", "F. c #59658E38FFFF", "G. c #C71BB2CA30C2", "H. c #CF3CBEFB4924", "J. c #E79DD75CD75C", "K. c #FFFFFFFFD75C", "L. c #596549241040", "P. c #861782078617", "I. c #C71BBEFB9E79", "U. c #EFBED34CA699", "Y. c #FFFFFBEE9E79", "T. c #E79DD34C8E38", "R. c #FFFFF7DE9E79", "E. c #E79DC30B6185", "W. c #104014511040", "Q. c #186118611040", "!. c #20810C300820", "~. c #9658555530C2", "^. c #A699820738E3", "/. c #596530C21040", "(. c #D75CC30B38E3", "). c #9E7986171040", "_. c #082004100000", "`. c #492479E7D75C", "'. c #DF7DCF3C4924", "]. c #E79DCF3C4103", "[. c #618565956185", "{. c #DF7DCF3C30C2", "}. c #DF7DD34C4103", "|. c #BEFB9A6930C2", " X c #EFBED34C4924", ".X c #104008201040", "XX c #51448617EFBE", "oX c #38E33CF338E3", "OX c #8E388A288E38", "+X c #71C675D671C6", "@X c #618561856185", "#X c #DF7DD34C69A6", "$X c #51448E38F7DE", "%X c #965896589658", "&X c #C71BA69969A6", "*X c #965892489658", "=X c #79E779E779E7", "-X c #965886176185", ";X c #A6999E798E38", ":X c #C71BBEFBA699", ">X c #79E77DF779E7", ",X c #082004100820", "<X c #082008200820", "1X c #514455555144", "2X c #596559655965", "3X c #492449244924", "4X c #59655D755965", "5X c #69A66DB669A6", "6X c #8E388E388E38", "7X c #000000001040", "8X c #DF7DDF7DDF7D", "9X c #28A22CB228A2", "0X c #F7DEFBEEF7DE", " . ", " X o o o o O + @ @ @ # # # # # $ $ $ $ $ % % % % % & & & & & * * * = = - - - ; : > , < < 1 . ", " o o o o o O 2 @ @ # # # # # $ $ $ $ $ % % % % % & & & & & * * * & 3 4 5 6 7 5 5 8 , 9 0 q . ", " o o o o @ O 2 @ # # # # # $ $ $ $ $ % % % % % & & & & & * * * * % - 4 4 ; : 4 4 < < w 8 e . ", " o o o @ @ O 2 # # # # # $ $ $ $ $ % % % % % & & & & & * * * * r & - 4 4 > , t 4 < 1 0 e e . ", " o o @ @ @ O 2 # # # # $ $ $ $ $ % % % % % & & & & & * * * r * r & ; 4 4 > y u t 1 i q e p . ", " o @ @ @ @ O 2 # # # $ $ $ $ $ % % % % % & & & & & * * * * r r r & : a s < 0 d s 1 i e p p . ", " O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O f > a s y d d s i g p p p . ", " O h j k k k k k k k k k k k k k , 8 t 0 1 e s 0 p p p l . ", " 2 2 2 2 2 O j z x x x x x c c c c c v v v v v v b b b b b X X X X v < < 0 q e e s n p p l m . ", " @ @ # # # O x $ $ $ $ % % % % % & & & & & * * * * * r r r r r r * < 1 d e e p w p p m m m . ", " @ # # # # O x $ $ $ % % % % % & & & & & * * * * * r r r r r r r * 1 1 e e p p p p l m m M . ", " # # # # # O x $ $ % % % % % & & & & & * * * * r r r r r r r N N r b B k . ", " # # # # $ O x $ % % V % V V & V V V V * V * V V V V r V C r C r V Z Z h h h h x A x h x c . ", " # # # $ $ O x % % % % % & & & & & * * * r * r r r r r r r r r N N r r r r r r r N r N N N . ", " # # $ $ $ O c % % % V V V & V V V * V V * V V V V r r S D F D D G H J K H L K H J K P P P . ", " # $ $ $ $ O c % % % & & & & & * * * * r r r r r r r N D H L H L H I U Y T L J H L K P P P . ", " $ $ $ $ $ O c % % & & V V V V V V r V V V r V r V C r J R K K R U E W Q ! ~ K J K ^ P P / . ", " $ $ $ $ % O c % & & & & & * * * * * r r r r r r r r N J ( ( ) _ ` ' ` ~ Q W ] ^ ( ` P / / . ", " $ $ $ % % O c & & & V V * V * V V V V V r V V V C V N ^ ^ ) [ I { } ' | .Q .H K ` / / / . ", " $ $ % % % O v & & & & * * * * r r r r r r r r N r r N H ..X.o.O.X.' ` H ~ ! Q +.| G / / / . ", " $ % % % % O v & & & V * V V V r V V r V r V V C r C N @.#.` O.$.%.&.| I @.W Q U +.*./ / =.. ", " % % % % % O k v & & * * * * r r r r r * * * * r r N N N U U $.-.;.X.` X...:. .W E *.+./ =.=.. ", " % % % % & O k v & * * * V V r V V V >.>.>.>.>.V C V N N ,. .! ! $.^ <.^ F U . .1.2.3.4.4.4.. ", " % % % & & O k v * * * * r r * r * >.5.1.6.7.6.>.>.>.>.>.>.>.>.>.>.o.| | %. . . .1.8.9.0.q.w.. ", " % % & & & O k b * * * V V * >.>.>.e.e.e.r.t.& $ y.y.y.7.7.7.7.8.7.>.>.>.>.>.>.6.u.i.8.8.i.8.. ", " % & & & & O k b * * * & & >.p.a.s.d.f.p.g.f.e.h./ p.j.k.l.u.z.x.x.c.v.c.c.c.1.b.k.8.8.i.i.i.. ", " & & & & & O k v & >.>.>.>.n.m.x.M.N.B.V.M.C.p.j.Z.p.. t.t.t.p.C.a.j.C.A.S.j.e.b.B.8.2.0.D.D.. ", " & & & & * F. v >.5.1.y.1.G.G.H.1.c.c.c.c.$ 5.5.t.J.C.t.d.p.t.s.a.t.A.C.A.t.K.b.z.2.0.L.0.2.. ", " & & & * & >.>.>.8.8.8.8.i.i.P.P.6.P.6.P.6.P.>.1.1.1.I.I.U.I.a.U.B.Y.T.R.M.R.l.b.E.4.W.Q.!.9.. ", " & & * * >.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.>.4.>.>.8.0.L.0.L.b.~.L.7.^.7.b.b.7.b./.4.4.4.4.4.. ", " & * * & % >.$ P.P.i.i.8.i.7.7.6.1.6.1.6.6.1.>.6.I.1.1.I.$ I.$ c.c.H.(.H.c.n.n.b.).3.4.Q._.3.. ", " * * * * $ `.>.>.p.I.y.1.I.1.1.1.1.c.1.c.c.I.I.I.I.y.I.I.I.$ I.c.I.(.H.c.n.'.v.b.].4.Q.w.!.9.. ", " * * * * % `.b.[.>.>.>.5.$ G.c.{.(.n.n.}.'.c.H.I.I.I.I.H.c.H.H.H.|.n.'.(.n.'. Xb.G..XQ.Q.9.3.. ", " * * r * * XXoXz OX+X@X>.>.x.c.(.}.n.n.}.'.#XH.I.I.I.I.c.c.n.c.H.H.G.G.G.|.G.G.b.(.A Q.!.9.Q.. ", " r * r r r $X 2 X c %XA A >.>.C.I.I.c.T.c.H.&X6.6.P.6.D.D.D.0.D.0.D.8.8.D.D.D.b.E.3.Q.w.!.Q.. ", " * r r r r F.k b & % # X c *X=X>.>.T.6.L.L.L.L.-X;X;X;X:X>.>.>.>.>.>.>.>.>.>.>.G.c.2.Q.9.9.Q.. ", " r r r r r O k X r r r V % Z h h >X>.>.>.>.>.>.>.>.>.>.>.C ,X,X,Xk <X<X1X<X2X<X<X8.A _._._..X. ", " r r r r r O 3XX N N N r r r & # v %X>XB 4X1X1X1X1X1X1X1X1X2X4X5X>X6X%X%X%X%X%XOX$ >.4.4.4.7X. ", " r r r r r O 3Xo N N N 8XV V r V V Z Z x h A *XA A A *X*Xh A 2 h h Z Z & Z Z & h h A 2XoX9XC . ", " r r r N N O 3Xo N N N 8X8X8X8X8XN r r & $ $ $ $ $ $ % % % & & r N 8XP P / / / 8X* b OX5X@X4X. ", " r r r N r O 3Xo N 8XN V V V V V V P V V V N V 8XV V Z V V 8XV V V =.V V V =.V =.V Z h v x 2 . ", " r N N r N O 3Xo N N 8X8X8X8X8XP P P P P P / / / / / =.=.=.=.=.=.=.. =.. . . . . =.=.8Xr r r . ", " r N r N N O 3Xo N 8X8XV V V P V V V V V / / V V V V =.V =.C =.V V V C V . . V V V V . . =.. . ", " r N N N N O 3Xo 8X8X8X8X8XP P P P P / / / / =.=.=.=.=.=.=.=.=.. =.. =.. . . . . 0X. . 0X0X0X. ", " N r N N N O 3X@ 8X8X8X8XP P P P P / / / =./ =.=.=.=.=.=.=.. =.. . . . . . . . 0X. 0X0X0X0X0X. ", " r 8XN N N O 3X@ 8X8X8XP P P P P / / / / =.=.=.=.=.=.=.. . =.. . . . . . . 0X0X0X0X0X0X0X0Xs . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/draw.xpm�������������������������������������������������������0000644�0001750�0001750�00000023043�12214432632�015750� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 223 2", " c #410341034103", ". c #FFFFFFFFFFFF", "X c #B6DAB6DAB6DA", "o c #1040C71B0000", "O c #965896589658", "+ c #BEFBBAEABEFB", "@ c #BEFBBEFBBEFB", "# c #C71BC30BC71B", "$ c #C71BC71BC71B", "% c #C71BCB2BC71B", "& c #CF3CCF3CCF3C", "* c #D75CD34CD75C", "= c #D75CD75CD75C", "- c #492445144924", "; c #69A669A669A6", ": c #E79DDB6C4103", "> c #DF7DD34C4103", ", c #D75CCB2B4103", "< c #CF3CC71B4103", "1 c #CF3CC30B4103", "2 c #C71BBEFB4103", "3 c #C71BBAEA4103", "4 c #BEFBB6DA4103", "5 c #BEFBB2CA4103", "6 c #B6DAAEBA4103", "7 c #B6DAAAAA4103", "8 c #AEBAA6994103", "9 c #AEBAA2894103", "0 c #A6999E794924", "q c #A6999A694103", "w c #9E7996584103", "e c #DF7DDB6CDF7D", "r c #4103492438E3", "t c #D75CCF3C4103", "y c #9E7996584924", "u c #28A2249228A2", "i c #41034D344924", "p c #49243CF338E3", "a c #30C23CF35965", "s c #8E388A288E38", "d c #9E799A699E79", "f c #AEBAA69938E3", "g c #A6999A6938E3", "h c #96588E384103", "j c #8617820728A2", "k c #8E3886174103", "l c #86177DF74103", "z c #AEBAAAAAAEBA", "x c #618561856185", "c c #DF7DD75C4103", "v c #492449244924", "b c #DF7DDF7DDF7D", "n c #71C671C671C6", "m c #410345144924", "M c #DF7DE38DDF7D", "N c #186118611861", "B c #492445141861", "V c #51444D341861", "C c #6185618528A2", "Z c #A699A289A699", "A c #41034D3469A6", "S c #38E351449658", "D c #18613CF39E79", "F c #410371C6AEBA", "G c #410361858E38", "H c #4103555569A6", "J c #410341032081", "K c #410345145144", "L c #410355558E38", "P c #410369A6CF3C", "I c #410375D6E79D", "U c #18614514B6DA", "Y c #410371C6B6DA", "T c #41036DB6AEBA", "R c #410369A6A699", "E c #4103410328A2", "W c #79E771C630C2", "Q c #410349245965", "! c #49246595B6DA", "~ c #410371C6E79D", "^ c #41036595A699", "/ c #410361859E79", "( c #38E3555571C6", ") c #38E3410330C2", "_ c #E79DE79DE79D", "` c #410371C6DF7D", "' c #18614103AEBA", "] c #18613CF3A699", "[ c #186130C271C6", "{ c #1861208130C2", "} c #41036595BEFB", "| c #41036DB6D75C", " . c #410369A6C71B", ".. c #41035D75A699", "X. c #49246185B6DA", "o. c #20814D34B6DA", "O. c #492455558E38", "+. c #492449245144", "@. c #4103514479E7", "#. c #20814924AEBA", "$. c #20814924A699", "%. c #208145149E79", "&. c #208141039658", "*. c #208128A24924", "=. c #69A66DB669A6", "-. c #492455559658", ";. c #41036185AEBA", ":. c #49244D344924", ">. c #E79DEBADE79D", ",. c #49245D75A699", "<. c #71C675D679E7", "1. c #514455555144", "2. c #49245D75AEBA", "3. c #59655D755965", "4. c #492459659E79", "5. c #9E7965955965", "6. c #9E797DF779E7", "7. c #AEBA86178E38", "8. c #C71B7DF779E7", "9. c #CF3C8A2871C6", "0. c #BEFB69A638E3", "q. c #B6DA618530C2", "w. c #C71B75D64103", "e. c #CF3C75D64103", "r. c #C71B6DB638E3", "t. c #BEFB6DB638E3", "y. c #CF3C71C638E3", "u. c #8E3869A669A6", "i. c #A69965956185", "p. c #D75C96588617", "a. c #F7DEAAAA9E79", "s. c #FFFFB6DA9E79", "d. c #FFFFB2CA9E79", "f. c #FFFF9A6971C6", "g. c #FFFF86174924", "h. c #FFFF8A284103", "j. c #FFFF8A284924", "k. c #FFFF86174103", "l. c #41036DB6CF3C", "z. c #861751444924", "x. c #AEBA92489658", "c. c #965871C66185", "v. c #BEFB71C669A6", "b. c #EFBEA6999658", "n. c #EFBEAAAA9658", "m. c #DF7D7DF74924", "M. c #DF7D79E738E3", "N. c #DF7D861738E3", "B. c #E79D79E738E3", "V. c #D75C75D638E3", "C. c #DF7D820738E3", "Z. c #410359659E79", "A. c #96585D755965", "S. c #596545144103", "D. c #8E3879E771C6", "F. c #CF3C8A288617", "G. c #F7DEA2898E38", "H. c #EFBE9E799658", "J. c #9658514428A2", "K. c #965851442081", "L. c #41034D345965", "P. c #79E755555144", "I. c #71C661856185", "U. c #082008200820", "Y. c #D75C79E779E7", "T. c #DF7D82078617", "R. c #EFBE92488E38", "E. c #EFBE8A288E38", "W. c #EFBE8A288617", "Q. c #D75C79E771C6", "!. c #082004100820", "~. c #000000000000", "^. c #596534D330C2", "/. c #71C649244924", "(. c #A6995D754103", "). c #410359659658", "_. c #28A23CF371C6", "`. c #38E334D330C2", "'. c #38E318611861", "]. c #410328A228A2", "[. c #596538E338E3", "{. c #61853CF338E3", "}. c #69A6492438E3", "|. c #71C6492438E3", " X c #8617514438E3", ".X c #8E384D342081", "XX c #861749242081", "oX c #861745142081", "OX c #79E745142081", "+X c #41035D75AEBA", "@X c #28A230C25965", "#X c #492428A230C2", "$X c #514434D34103", "%X c #38E3249228A2", "&X c #38E320812081", "*X c #51442CB22081", "=X c #410320811040", "-X c #38E31C711861", ";X c #492424921861", ":X c #30C218611040", ">X c #38E320811861", ",X c #38E34D348617", "<X c #38E3451479E7", "1X c #A6995D755965", "2X c #69A63CF34103", "3X c #410355559658", "4X c #28A230C25144", "5X c #69A645144103", "6X c #79E755554924", "7X c #410330C22081", "8X c #30C21C711040", "9X c #30C220811040", "0X c #28A22CB238E3", "qX c #28A21C711040", "wX c #28A210401040", "eX c #71C675D671C6", "rX c #410351448E38", "tX c #514434D330C2", "yX c #69A675D68617", "uX c #79E77DF779E7", "iX c #EFBEEFBEEFBE", "pX c #EFBEF3CEEFBE", "aX c #F7DEF7DEF7DE", " . ", " X X X X o O + + + + @ @ @ @ @ # # # # # $ $ $ $ $ % % % % & % & & & & & * * * * * * = = = . ", " X X X X o O + + @ @ @ @ @ # # # # # # $ $ $ $ % % % % % & % & & & & & * * * * * = = = = = . ", " X X X + o O @ + @ @ @ - - - - - - - - - = ; ; ; = . ", " X X + + o O @ @ @ @ @ : : : : > > , , < 1 1 2 3 3 4 5 6 6 7 8 9 9 0 q q w w - = = ; e e . ", " X + + + o O @ @ @ @ @ r : : : > > t , , < 1 2 3 3 4 5 5 6 7 7 9 9 0 0 q y w u - = e ; e e . ", " o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . ", " o i p i p i p i p i p i p r a . ", " O O O O o s O O O d d 7 f f f 9 9 g 0 g w w w g h h j h k k k k l l l r z z z x z z . ", " + + @ @ o O # # # # # c > > , , < 1 1 1 3 3 5 5 6 6 7 8 8 9 0 - q - w - = - v e e ; e b . ", " + @ @ @ o O # # # # # > > t , , < 1 2 2 3 4 5 5 6 7 7 8 9 9 - q - w - = - e - e e n b b . ", " + @ @ @ o d # # # # $ > > t , < 1 1 2 3 3 4 5 6 6 7 8 m 9 - q - w - = - e - - e b ; b b . ", " @ @ @ @ o O $ # $ $ $ > t , < < 1 2 3 3 4 5 5 6 7 8 8 9 0 q - y - = v e - e v e b n b b . ", " @ @ # @ o d # # $ $ $ > , , < 1 1 2 3 3 5 5 6 6 7 8 9 - q - y - = - e - e - v b b n b b . ", " @ @ @ # o d $ $ $ $ $ t , < < 1 2 2 3 4 5 5 6 7 - 9 - 0 - y v = - e - e v e v b b n b M . ", " # @ # # o d $ $ z s x N B B V C j f 3 4 5 5 6 7 7 9 9 9 - q - = - e - e - e v v b b n M M . ", " @ # # # o d Z ; m A S D F F G H r J C g 5 5 7 7 8 - 9 - q - = - e - e v e v b v b M n M M . ", " # # # # o ; K L P I I U Y F T T R G i E W 6 6 8 - 9 - q - = - e - e v e v b v v b M n M M . ", " # # # # o Q ! I I ~ ~ U F T T R ^ ^ / ( ) C - 8 8 - q v = - e - e v e v b v b v M M n M _ . ", " # # # $ o S I I ~ ~ ` U ' ' ' ] ] ] D D [ { u - - - - - - v - v - v v v v v v v M n n n M . ", " # # $ s o ) } I ~ ` ` ` ` | | | P P P . . ...A O * = = e e e e e e b b b b b M M M M _ _ _ . ", " # $ z K o i X.~ ` ` ` | o.| | P P P .} } } ! O.+.@ e = e e e e e b b b b b M M n M _ M _ _ . ", " $ $ n @.o ^ ~ ` ` | | o.#.#.#.$.$.%.%.%.%.&.&.*.a ; =.; ; ; n ; n ; n n n n n n _ M _ _ _ . ", " $ X m .o a X.` | | | | #.P P . .} } } ! ! X.X.-.- % e b e b b b b M b M M M M n M _ _ _ _ . ", " $ s A ` o r ..` | | | P P P . .} } } ! ! ! X.;.;.:.d e e e b b b b b M M M M _ _ _ _ _ _ >.. ", "r $ =.L ~ o ;.| | | P . . . .} } } ! ! X.;.X.;.,.@.<.e e b b b b b M M M M _ M _ _ _ >._ >.. ", "a $ 1.;.` o ..| | P P . . .} } } ! X.X.X.;.2.2.,.O.3.b b b b b M M M M M _ M _ _ _ _ >.>.>.. ", "r % v P ` o i ..P P . . .} } } ! ! X.X.;.X.2.2.,.,.4.:.b b b b b M M M M _ M _ _ _ >._ >.>.>.. ", "p % | | o ..P P . .} } } ! ! X.X.;.2.2.5.6.7.8.9.9.0.q.w.w.q.q.e.0.q.w.w.q.r.e.t.t.e.y.t.. ", "i % v .| o ..P . . .} } ! ! X.X.2.u.7.7.i.p.p.a.s.d.f.g.h.h.j.h.k.j.h.h.h.k.g.h.h.j.h.k.g.. ", " % 1...l.o .. .} } } } ! X.X.z.x.c.9.v.a.b.s.s.s.s.n.m.M.N.B.M.M.B.M.V.B.C.V.V.N.V.V.C.V.y.. ", "p % n L P o Z.} } } } ! A.S.D.i.F.9.d.d.G.n.H.G.a.a.9.J.J.J.J.J.J.J.J.J.J.J.J.J.K.J.J.K.J.J.. ", "i % O L. .o Z.} P.u.I.u N U.i.8.Y.T.T.R.E.W.W.R.R.E.W.Q.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.. ", " & @ m ;.o Z.} S.!.U.~.!.U.^./.A.5.i.Q.Q.Q.Q.9.Y.Q.Q.Q.(.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.. ", " & & <.A o ).! X.S _.`.!.!.'.].].[.{.}.|./.}.|././.|.A. X.X.XXXXXK.XXoX.XXXoXXX.XOXoX.XoXOX. ", " & & X v o ).! +XS _.@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. ", " & & * O o ).X.2...S ,X<X@X*.S.[.1X}.2X[.].#X].%X&X%X>X>X>X>X>X-X>X>X-X>X-X-X>X-X>X>X>X>X&X. ", " & * * & o @.+X2.2.....3X,X<X4X*.5Xp 6X}.z./.^.^.#X7X7X&X8X8X>X8X:X>X'.9X>X8X>X9X'.>X:X8X>X. ", " * * * * o K -.2.,.,.,.,.3X3X<X_.4X0X{ S.%X`.A./.2X5X].'.qXwX'.:XwX>X'.wXqX:XwXqXwXqXqXwX%X. ", " * * * * o i eX+.A 4.,.4.4.4.-.-.rX<X_.0Xu p 3.:.#Xi./.tX;X>X>X*X&X>X;X;X-X>X*X>XqXU.N u `.yX. ", " * * * * o z X n v L.@.O.-.-.O.A :.- x O Z uXx 1.- - v v v - v v v v v v v v v v v v v v v . ", " * = * = o z = e @ O =.1.:.v 1.n O # b e * @ Z s n n ; n ; n n n n n n eXn eXeXeXeXeXeX<.eX. ", " * * = = o z = e e e e b b b b b M M M M M b * # + + + + @ + @ @ @ @ @ @ # # # # # $ # $ $ . ", " * = = = o z e e e e b b b b M M M M M M _ _ _ M M M M M M _ _ _ _ _ >.>.>.>.>.iXiXiXiXiXiX. ", " = = = = o z e e e b b b b M M M M M _ _ _ _ _ _ >.>.>.>.iX>.iXiXiXiXiXiXpXpXpXpXpXaXaXaXaX. ", " = = e = o z e e b b b b b M M M M _ M _ _ _ >._ >.>.>.>.>.iXiXiXiXpXiXpXpXpXpXpXaXaXaXaXaX. ", " = = = e o z b b b b b M M M M M _ M _ _ _ _ >.>.>.>.>.iX>.iXiXiXiXiXpXpXpXpXpXaXaXaXaXaXaX. ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/clip.tiff������������������������������������������������������0000644�0001750�0001750�00000011170�12214432632�016064� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�x��� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼ø &Jœ$i²ä)R¦J&mºD�g ”� ÀÙåÌ–#Súüù³Xp` E�TXIà%A�® ²2àªU*V,P'AV P¢Bˆ�!nĈ€ vH ¢`D‡m& 8§O‹†SÊäI[&MŒ ,˜ÐJƒ# ¥î´ˆe�ÄEfÌÙH)V¶rµúQ§HŸ}ªMø7¡Þ´ ZÍù·©×ª;múw`ÌŽ'føwjá”=ó‡Œê4àŸ5#ú6`„Auú½àÀ€CÄŽ57òä¯Ó¤Ä˜êM½WiÀ‹$¢Ì±¤ÏX=q„! ˜a&j¨ ÂRH!Á1hHq†:p|à •xL1Ę–e‚ŽœäQøà¥ÕýÈ€BˆP%”r¸¤ŽR&ù§’J¸GI$)bLAL^àøÄLD$“B¤äQ9%4RíTÑMý´ Õ‚`*È ‚¬0Ä‚Ó(¤$+`à‚ nÉ"‹.þ餂þ1Bj@È  €:ààÌÄ“ åTÑÑŒŠÃ¬8,J.UÃR4ļD- $ŒD¢Èä5Pb% ©€XhPG SF¨¦”qþ馌vþ‘@QÊ  “¸‘&sL±¦œñ¤Gp¦mP£ JÈ!%[0ñ/§âp(›â0Oã´ŠZhÉ$’ð á‡NÚ+—‚ž1$œŠyb„&–ù§˜DÒùGutøÅ#\x¡“–~˜fÔ)–˜ä6˜rŠ-æœb›e§Xc–XÉ£”øà†vPAÇ’Ó*µ¤K )tQEð%ž( ˆˆÅ|!PDqJh¢šyþ™¢™þñÂ'þ‘B5þÉ"Zþ顜nnpÆ{ú‘CiÊà‚Nr ‡:2 …Ò™LTPB‰:ö˜c™G¶c‰Ø`‚žÊâ0M­A0@  šËSœyTPP_@t0À� œq!‚=Và”Ú(\Å=ùG-¬—¡5þqÄ kzÝdz@%°8’Š#;Ur‹#½8â Tp‰`Š:zø'üx<4ìRE¯HŽE�X`!‹0"ÈçRØ)=þó„3°Î¡'€2 éç›&9ãŸ8#ÿ„$ðx"ÿ˜A fñ[!ÍpU¢=*U”ÝãŠC¢g=�/gÎðƒ ¼q„š XÀÜ!Uh͔Є»×ñx"ÿN�Ô >?R€¡=¡^ÌbÇøÇ:° èCÿ„ Ô]2Þ!QHÅ6p£ wÀOqH–*Љ ©¢Ì£ŠCŒàFo+&€üá/\!Æ €{¥)lFÞP€ˆ@|hU0Ø‘¸À64‚ ¤á 'XÂ=þQ‹\áâ‡$Wa oücýØÂ?”! TÇÞýÎB¸â E¢Rª(V\…`ÅÁ^’UÄ€*˜"áHÁ?  ]lÓÈÐUb¨€ wøÀ±ø„\€nú‰3ƒ™ PÀƒ,`G<ÚQ)üâ˸ð*<áARÖ@"ªx:ôãVà B¸àéi©¢ f1Sò‡¸‚*F’‚¬ÂÀ˜¢ƒQ€•ÁŒT$"¹ø³C‘&YÅÁ²‚,ÆHäáß¡ E¾"¡XÖЋ\"€Ì` {Ìc‹ÉÁ2Ä5¨@YEP…þ±ˆÁTîðĸ{ÓäÁô]q¨Š…é„eÀt>,:`@ˆšƒ`µfÑ J¸Â8Ex(ðãÈg4 %R…X”Ẫņt(%i6\ª0dH@ bX! i¨Æî°‡ü£i€H@ð`ø!ÿØÅ$¶ñmp#Õpò�"‡©¢<1ñ°àëˆ"'Píi­� YÌ4èíˆ@¤!%ø‡0À‡ŠbDz†+ÂKøÁ aøN’µICXë@‰Ž M{]1H¡ ÇþqµHÁ0Ç?d Uücí˜Å? Œ,¬øÀƒ«àí$"fmh]P<�©B[a® èkàu�HÌ”Ÿ$XÐÂ>ˆÂ ¼á†@ÜK \¢L³Ü#Q%<�7À9ŠƒµŽHál @�p?¶q…=¼ããhGo_ ™/8À^øÇ9Vq…è@ êi#ì<~"=胒Rºi˜^ "Hq°R$” îv äí&Õ�GmDÁ ‚*T¡‹!¤!Õø‡€P‘.°‚ÉHA’µ‘„xã Bù@Û¼ÁÍJ1$h4 ÊŸøÂ-þñ„"ÿƒp@QŽ|´ZŨA .ƒ†A¥a륄²AÓy…ó�<¤ IABÁ`“˜Òa?‘C0 I|€ä# ø‡=ŒaŽ?(BšxF":…ø#  È»4g!Ìi«¶tä}âÌDP†”цm¬àšãX㌠-üCÚ0m]_¸Â.�ÆtÕ6"©m¨& ‘QýJj¾+¨-pàt�T$Åk2HCòhB.²ÐÑ$-šP¶:ŒaWý"GíІ 4ÐÍ-`ÀÙð�b=í‚8 Þ³ª‘Ä!@ `q²…¢p€'\®]¨ÝCŠg'XÃ9> ^¤Åþ¨@E¨â‘®X"رm»!›&�$í:Õ�KyJ¸K €.¼á…X\£µ‘C‹ÈA¶’CHÂPˆdTà ¶C”â`»§yò^Κ% á0„Ä …Tt˜…>´å_¸Çoóà7üCÒPÄ?&1À>´  Øpáâè; ±—*Jdµf¯—ï‹>ÔšCVâ  (™3€üàƒ Q„|¯`mXÁ?l` KAføGJÔ '°�{ÅmÀ�KAâ/q\Á2€ßÒpQ`44ÀCå0FW†SØ…Gì†9mP%î�yƒk8‚g™mò{°æÝ1&%(t`¦8Háëà,°TV .s0'µ6Ws��F@03p„ ƒ.؆h„\¨Ù _ðÒBè† †Œ�fˆæ,@ »TH04TXÇõMÎ2xR2DòQ5C|9D„�ŒÈ‚DȆkxƒ[øƒ¨ 9/(†¼P-X€-/: U¯uyÕuwR R‚\—±³ ªX`²9›GYÃŽd …@H†D(‡XƒQF‚Pð‚@øEPEh‚R…ˆ�O…i´l=ˆ4{г!”ž¥R 5Vt u2À §F„<FÀ!¸‡3Éw°+øCÐ}-‚U®‚0s À�E@CˆóåÈÒæ€æ,uGWxàw'l§Œ ó�DòVô˜†AèÀ>ƒæFPMî�;Ðh‚)x^² 4'ÎO—‘V…Ñ:Jæýà sÖ€G-Ex+ø†؇eX×@P+ƒPˆƒ¸ƒc¸‡/^à…¤0S΂€`w¬ÈJ24Î÷D÷#Q�94õp¥e Wˆƒhȃ78†e+,ˆ$øYÑw(,h†H¥<XÐÀ+Ú㯱ž˜âÉ€18Þ¥0·)û”3@Õ€á'@>Ž0ȇs(‡THÃa€(‚LȇÑ\°LŸøæI1Õ [@gß1”@6LÃö3€Ut ô P€n€NX„Ø‚)+Û…0pöè‚øI1Õã,026­ÉÒÈáѤà¬`0k’eŽÞd!À‰uTAqäEhP)Ø‚In ‚2’D¢DÓs×,#%(öàte’7[1{íФ#«d@€@q4|Ð7Bˆ€KØ…%„( PðLø‡$ˆ•0¨|¨‚m"p1« 7pi (@1ó€å,p%-’É(�âÔI=A…dBD0~àZHƒBø]P9˜•1À¦4¤íxw@Ž\Î2VÎ/*›ŠR›C€æ'€`!À‘؆Jh…z¼ƒØ“!wn •qèbit=¨gãpyŠƒÔ°ôu¯Ô”Õ}Š'¦� q²<Àd@tj?ËD3lPq†¨†dÈpS0‚ Nt¡ECˆ‰Éx<ÒòEºòOÔD�ÅXÀ5p;p‡}ØU¸1IèÀÐ5ÐÖ<ðKè†zèSõJð¢÷Ž×"É•øTˆòù( AŠ"`M-.f�,V�D±bGlT �JȆ�ˆUÈÅy~à‚¶"’f{AC0c¦p©‚Fy�W+@.`6H†J(Vø…k8ÔtHƒhOeP� øgI¬_p/èª0åUs4„”rlmñj/?P“Xa!ÀÍF?©äB~rJÀäD‡ (‡vx€hÙ€ j ô Îà(> Œ6lLg°GØ‚˜ƒ-‚ „S�Oø‡Ah‡¸6P:<±ŽŒÈh•$¢#’íÔîšCes+–L¨$ó6g r 'Ø÷1g°…ÿ‚0ý0z !'ñ� �`¯g(ƒ|¨ƒ?×O6¨„%UZ€(…Û‚Dˆ„øx*JBC°Ï4„d±ÊÀ†ór¯mwßÉz5wLälªâ EV¤ÁLÌrJCP19ȆIhÄ:0-P†s—ARÖ‘UÐÐ=˜‡%˜Â18‡W°;ò�=}†Qèƒixa…DqŒ@±îVçñ¬ðÅ�”º AOí A�3—6 �ÉDÜó§Ž2]€xð… †f(„røÇ€q¦T0µ\ „Ö„Lx‡[8J†.„Ð�µ¸„xˆ†,øï�(ƒU 0@ÚEC/kdÇè,@œrrü£ gÅèº(‹ Ìê ~@I”ÊXs&%@QèƒJ¨ƒcH„àÄ�g°�c¸€Qèï7+…$ˆ øw0‡1ÐoPEP†±3wÍ 4lD4äÎCJWVEU, t2Àrʾî[@@� � à€€ x8¸áÁcdQ·~_jå*ðïÊ®ÿ\8ñ÷Ï›—(ÿj•©µ )þP3rÍU”ì’²C‘“K^.éYDfá ¹(=ˆ%H€+T9D@+B L`�k 0h½ú 6jܤIM€€›ƒ¨©(DèP¢ä¤^žÏr$ËôoÚ˜eÿY³ÖŒ …ç’˜KV.ù¹òäÈ"0kH3¨€Ÿô<Ôá€Ã©ð2ÔtíºõÖ× $¨Š@¡¶C†)RÖ:ÕjqˆF1Yøä“?ïø,2s‰ÎÂ#£Iƒ½ ä=$ÀB_lsàÍkÚ¼ñí»÷o›ZÌC`0æF á/!EAF[\d1JvRœ•DY-8ì@Ãlà&4h<mlÓP«}ˆ0¢ˆmBHO€³œÐ€Þ_ �=¹p’_Yð Ø57U88ìöŒ(<÷RH’H2) òÜ Á†è6$”@'�´RC!d¢>L À·äpÕ _ k¼N:»ì������0�������0�������2���������������� ������� ����:������R������h��������������������*�������p���������R���������������/home/dan/newclip1.tiff�Created with The GIMP����É��Á��¯����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/GNUterm.tiff���������������������������������������������������0000644�0001750�0001750�00000013736�12214432632�016470� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�Ø��� $h°à!B† &l¸ð‚ƒ�Ô(�Ä@-ÐøD`€Â)0Ј)R¦J >P$à2’„˜…Êì\ñâÅ#0aB*3¤¯'®FùóçmE @>ö—w¬G‡Fwº´«ó¬C›jï5)ó¥Vb?:t©ö«E›2¿MåúS¨B²?¹ Dû/‘?Ê” ûƒ ’Ûø€I§p`È1`ÃÌç4 téÒÖÍœ9SC Ês Zµr·jÔ¨p·Æ•_·n]øsïÞ•¿5.ý¹u³Ékgþ\¹räÏ… ûþœ9³ëϱc[þìÛ·æÏ®]+þlÙ²àφUÓþ¬X4æÏ¼9ƒþL™ÖçϸIÝþ Öâ¿¥*ÿ4)ò¯T þ)¢„xþI&•@þQ4°À‘ˆ …?`€Šc8,Hˆ —%†"à‰óˆù䇾ùã—_¾ùŒ¯hù‰žo¾ùàŸ/¾yçŸO>yåŸ>xáŸwÞyâŸWÞxHŒ×$yæ‰þxàÁ6kl²Á&®íwKŽù‹Ø N8a‡?Ž8bÓUöXå6™å5Ö<`…&øc‘EFøc€šø£6Jý ‘|þ)¦œ8þI!þI"µh ("Š2ŠâUTæl°Aà<ðAæ 0å+ ¡¨’þùç¯Ú(cˆ‚ïÈù‹™/þøâ‹Oþ¢ã?æXc“O¾x‹xN4ñ$yá{þ“M>Å”¹KÕFþìã<-NÒåœCþ8åÔç2c}7Øf“sæféå!†iæfZ(áJ*ÉâŸlrˆæŸð₱å/|1åŸ42§ˆbbøGuDùœà „Ô²À¡²ÊJÂ"ã§žZê䃿øyã/nÞëˆej>ëãgŽúcã« >xNªyk8ç?¶øÏÍ¢ƒ?êhè“|òu#žxBø#€@œùÃ[ øC -äùCYƒàFþ †"þ €�,þ@=$@�†Œÿ° å €!æ@€!ä�€Á? `pù'‚ÈÀ¹J›ê âmÔ‘äü ø‡2Ðˤ‰+ŸlŠZæÕ®ÖÙcÏ f˜c˜?ºè¥¡/jÈ-†ÂøÇ?ùÇ s´ƒ@ þ¡‚NþA�¸Ìgâx€à8€áãX€áá€áâh€áà(€aû `Xø`˜ø`ø`èø `hø`Páß  €Ano�Û×þt°CîH‡;ÈD*þÙ‡';ÚÐp&ˆŒ‡P€˜ø]" —‰\ôœÂþa �ÀPÅ?Ð å°�Šø€! ²ø #ñd�;H�†8þ`cx"ž°½ìU¯{p�¯g� �»€˜§ °ú@`ô£ŸýêwúÛ¿þ(0ûØÏrˆ£ïhü#™HÃ?îpcQ4¡…ø·¤ð� ÿ¶þ ô1&bLîp‰Â�ºø c˜Ãö°†+<á‹@„"éˆE"Â�u&Ð�‘X Ò™@Td€(c�°K°ÃN0Aÿà ñ&Ð@]ðÀñ8Pï]À�Ü7~ó‡¿üã?PÇ%nd¼_G9Y Jn-ŠF´$ :ÐN=È@ üƒtÀKÈ€™ F»Ì´ÚÀ `�è¤8LáHy8ÃÞðG0ü�Œò�.Ђ�º™3,ñ ðÁÿ…œðyˆ•Š„ þa c÷ä5�`C, !È¢X dh@ò!� ÀÚ€„?� �Ç#Pñ¬#rd! éÉÁþÑ„VãÐ+‡*90:ä VþI“,Ñã÷Õ>ô¡UÈ”†-©,<Ð�R�*øh`\2Hüà˰± (@* �±€�ä05�Íô- �‰ƒ<�ƒhø Éb¼ÐÄ?ØÀ¥|€6± �¾7 Ðç8žŽOઆdóŸøG+ÚQ†Á IuRÀà” .>MbR²#LmøgKò`ÃB¤¤Ðõ @:À‡\ 5,ä üƒt`ö ë ¢4›ÀýlF¿úUéæË1óÑ …ÃÖø‡¡ƒA0õàWQ€Üè?`UÊY{ƒ€ä ™øÇ­Vñ/¿ŽÁFEm¾Áö�3 dø% �@”LP‚af–º[𺫨ž©P Ã V5 ²ë=AïËþ÷»YýíÏT¦Ô {49¯ƒ#KŠÜéãy3Â?¬…[‚?Â@IbçÀ݆Ôàqv{ª:¼tøG Úk0ˆräÓ¡äò!èèû8ÇmüAü= cØÖƒèÐ+øaÞ`°Í0€ÌW:婭Ÿ�þÁ½:ü£}bÀÆÌu¬cÿð†7|U `uº`këˆ�Ì¥*ñsÌF„¶Î5€)ŒË!’Ï/…h¬“†¿±�›Td§˜ÍÁ–ê@úИÀR ° d°À?D!f �9‰+_ÙT÷ӬʴÁàð)Zºæƒ‹_¬?tñ áLPªàGƒ� ÈMät®›Æ?rGˆ-ó](8LÃÕ9ûB¾ ä|j,Á$;G7ÅÒmÜ'ºÐÛõ’Ü à�jø‡0XJ Ðù´©MÛ÷eö{ÙfMÿ‹¯zpS—×Â?¯ÛEP‚væàÎâÑŽÑîMU yÈÕ/ñˆkü£}¨Á?Lavp+®‡¢w¡u¯Ú(Í<)wŒ0|àÓŒlÐ3¡žb�](Œ . /ðÁSÐÀtÌå÷÷¼~ ÀøJ¬Q÷²«‹ìà'ú^‹°‚Õ§j5 �•ƒMæÜáùžþmðˆ+>b�õ¥…e˜!�¿ØÈu‰ ˆAâÒãÌã4ƒ«9ÀL¨=þ‰çS ²%ˆ¬à�øó/÷³UöëRø hnÈRT¿b-׸—°ÈA®SCÜ[ß~LUŽ’o·¢_x"9ø‡A„Fø+°–EÛæ0c©#0W r!BF€ _‚0ê$Næ4ÁòMÔ ÀhЀP1ðóS¿ðs+uE€(€öz`åK¨. ò~P�áB>Åh€æs"Ž @ï¢(¦`x‚g¸ |†°ƒiæi0Ká+°vGd¸ÀEJ-ðeÇv¸ƒ³ • õ$Î JJqŠö\û8€¥\°+°(‹�øwÕ€&?hƒèø÷Z胘‰8A…¸ öÊ�#QŠ øq—Y€7d]ààäð`ùÆR'…P‚a0p™EPâM°gpç ú�@S¤ ƒw  ¸ƒSøÐÍpðí *P ZMqé`Ô/d¡BHŽ-ø>"a£ê¤>bŽc¢‰òÊ8‡x‹«µúÈ�#^8~‰BñIŽ2ù†Z¨…JZEø‡1˜€vøwðŒGP5„pOËoð‰G`F]ðB`Ž!-0.âT¸ [ÐmP9 <ß…P�!ðæ%€£Üp× d$ø‡Ôdtvš'f¢IÖ8MŽd«äöJ8€8äBŽŒ ™~±Ž×(ïøäd¨÷x†š‡ ˜Âpo†UÐa ð c-ÅV`a_gLt‹M,¸‘Û˜° O2ø÷Ià7‰bqMÍJ:‰ml€Û䌓dÏ€ô“ä±–d7î *†ÿÐd¾Iq�Žw�N)h„¨…x’„i˜þ{uЕa„`Å…0øvà°4 óÄ axÆvÌL‚´ö- l�fà:°ƒà6Æ0ÏMOHÈ©Hˆ¤ L¶ Êù\Œd¯Ä1Õµ\ç³`Íh²l@4`go�aß”ˆ�Š hÌ x%iø‡9˜ƒî…@ƒ0àLˆ‚È‚(ˆ«È¤ˆál¦Ä‘hÐÉδ GÀ²{­±'J9°Ò±ö#?±o@‚ƒ¸Â„ÒpûœK¿\J®¸ôJl¡yJ1"yU�ÖäÈ08ÀLž.ª<Τ”Ì3…’"IrƒAø‡` ?ÐE8ˆQBˆ…ðq%`Õ…üGÄ&~„+¸ŽIMBÊÊ>3šðà> Z±\!¢LP*3É×=óv0R$ÉÂ+»\pð¸¡Ñàò¡2¦LoµýIÔjÆâÝbÏLN©b#)xdIr‡…p�0¡œJgˆ…¤¤�F` iòH âgA‚cøWç)ßN{øOÇt¶.�€§\LæHÝ“Y(¯¦€1ƒ:ŒI‡,üê.¼ÂúŽ_6S@dò+ý p!À<Ñ�e/ö¯ b…–€&ñ ƒeX®6ƒH¥c0>H†…DH :‹’ÊHcË+x¤í˜Ý´ªâ$J’$K ÄÐlS�Z å°®?øïÌ A'næp²'šHƒ˜h˜Š„P…à~^$@ò /´RÛÖzv4Ëš¯ÅbÎÓ‰8˜ˆkx«0r‚qø‡0ˆPR0 á£XÏ„THƒ€¬¶’®«l4ÎlޏtÐ=Ë®´­Rnp×w�´R°>!j$^ËVäXˆ€üR pP|i@Š$HJhpQo#Îå¼Ü ¶úð\f LæÝÆ«Àb X†%˜oR%û&pˆg3å€dHóLH‡tÊaàHÃæ¬,ãŒu-8ÊvÐU·.H�f`bË ãL>a·W ²×ÎA I•EP9™}ÐaHpÇ�ð¥pðOˆZ0Wø5PÑ0- *­a¾VC!�~©6`£L ÊlT}®€Zj‡(‡r‚Å&eAk‡Iø‡ŠÖq0WH„Të…4Èìø-Dˆá¸©0¸„ ¡)•NR()ã,€‘E \™µG0Ó gX`r  —Y`r™& ·l`rƒ$ ×êA—E r: ×  ra ®!> rå�* W 2ÁÊ´¾4G ì¶oÂÞ€UX…%#Aؤ«>è£@íÓ>‡H‡l¦,À(A²ºîèø %¯…nøƒ*¨‚røƒR(ƒ"øƒb(†‚1€" ¦AÉ)ˆ…ˆ…ØnƒˆnÕVi×P7Sð…?”B?ð_ð‚?ð/p‡?pgp„?Óøp�{ø{°[ø;°Ö[°†?°°„¿ð økE0‡?ÌSøc‚?0 ›J™Õ=™T0Ë&¡)yøÇ-˜ƒ„ʃˆ‡Ï„pˆWøE: Ç˜’# 1¬[ø›ÅYlžæ7‰ëÙˆ›Yh2›ÝZøK9¸Ÿ#xžxEø‹ê9…»¹‚§¹ 0’‡'·3¸ÆflÅ.Z-`ÚJ3Ú" 8ÅA¸ª|×J"†]øÇ)Ø8„CØ„ÿäƒ5ø‡ X‡™é† ð]0’ØbPð]tµEj-�²º×ºkžY^Røƒ·¥œxgÁY›-x#Ѹ!A§©eªÐ9̬¹…—¹L¹yX¾9›«"Y¸£y‡yѰ¦5ìÅøƒk¸\�¸†+A‡s¸8‡3Øc18í…‡ƒE„Øž.Ø„5˜e0ðS\ÐC΄hˆÏï„ë%¨ë¥’ž¥õȬ9É,x˜%x›e_æåå9€—%]Î9ž£”_á9ŸË¹Þ„šçy‚‡y#ÅySGìÄ®ÆNÒ -N¤U©|¸€Ë]íÕ]ýE€Ø…X€X'†/½]0àñÚápw0Y¤Œ<€9¬„j¸h€:xØQ¨…¨‡:¨†‡ø†*x€è‡nx‡®††É̇Y˜…ø‡XhJr‚©E‚éÂ5X†:YœÆÑ~]¸¦žOlZilÁ6ZžwZÁ&RájR•°¤ƒƒì8×:\(2Y8؇=X‡ؽjwøg½ eP5K°'­N<Û^]C8 >„)˜À…qèÁ耀f ‰‚ ¨Àÿ•¨=ÁU\'WX„Qøƒi˜†~¼„©…Q….ø Hhƒ¿ˆà6h…V(ƒ?k<耨„¿øF§V‡4øƒ|ȃ8ø³K6 MÞGpŽGÖ³lî3(H”f…LÈâp soà…?PU_§~ØÍ=@÷#ÂèŒ 0=vȃ(Èn�¨¡€SÂw–Ö†† 轌˂m؆•­†]X‡?ëÀX€E‡¿Ý…!º!r‚I²ƒ5˜"+ØÅk¸&\ƒ%:€S2¢“ëº8„í3}P€?é<€"(+ð�Ëð Hƒ´,ȆÐI�'ЃkB*È@ À½°;D €×=Єý61Ø9Øi�~8 ^¸�v¸îa`†WÌ”za`€¿F:øàjøs €?Lò‡·Á´Gzć. z´Çp` „¿ž}`öDZáÇ\@ƒ?Î"°�++°õ 0kP…W`& †FsP_¼C¤Cò;z>2G�)�x—OÀƒ¿J—T ¶jÀ…?yLø{R \@b@Xø«€‚¿FÈפ×{]øT@) €{Eù…Ì-x<€kFÔçGP€}/€}Â@ ÀóÐ�5‡…ðñ Ð� ‡?ÛöGxÐú’'2À?À‚'+:@|@~KdyÃ7€?@”·,:@€¿ú~iÿ�~ø:šu{_„øoøoDhGp /3P„j"€x^º†vè �„ Bhuˆ…?¬„ÔÓ†ÚÓÇRÈ8ȇøƒpˆžøÐeø+3à?«{ `æOF`bø`ýóFø‹éŸ,œ ËŽ à‚?ª\øF.à€o@‹±+’ÄpÙÇ…£ @ã)r”¨Ñ" ‚ h°à!B† ZЉ¶Ü»wåÏ“G7þ=zpíß­[çþ]¸pèßþíÙ³êϱc[þ\¹tèÏ¥KGþ9Ê`Ù²qjÕÉóÇŸ?+4ió‡?ZèÐÃ÷‡)tpáBò&8P¡iÐÈ?( üC€Â?n¼hü äÏÔ¿Ñœü ÊÞ ä-…ì° CFŽ Å… g ’$Itlݺ_víÚòcÛ¶ ?<¸ñçÕ«Gÿž<¹õç1úšu ]ú‹äÜŸ;w.ü¹qãÌŸk×Nü%r6·?›6Íû3iR§?­Z•ûS¬X¢?1bxùËÀ?.\(ý%‚Ñ[vÔüÒ¥EÆ1*Tˆ¥�þŒlôh?À~ûýç÷g€!< AˆƒÀÖ É f2a†¦`†L8ᄃ, ƒ–Ìp¡&Zh¡ Ó{HÉ„ ˆÉTB2ƒ�LðÀ“L0À�‘Ì€�!"ˆÀ%V0ÐýMT0@“�4±¤“I6¹äSH1¥”SI5µÔÓH3­´ÓIZ@������0�������0�������’���������������� ������� ����š������¸������Î��������������������*�������Ö���������R���������������/home/fatal/tiffs/GNUterm.tif�created with The GIMP����A��9��—������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/notepad.tiff���������������������������������������������������0000644�0001750�0001750�00000007702�12214432632�016575� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�Ø��ð $h°à!B† &l¸ð‚zŠØF4›1bÚŠÇ;GŽ$jOl'i²dvS¦²—&mZû2:Èœ%‹Ãì9åÊÛq¾üN rZ¤hQg%üТå›&Mï4hx¢FÍUª®(SvJ‰’C ì’'o“,Y+¤I[ E*²§À1cÅél+^‚„:z&Oš*uºt3eÍš#gž<ù *Xll‰ñÎJѪ@ÃsO¼xyÕ¤ÉhÑŽ4"ïT„† ÛŠo&a»1ºt¶½¥[R=u¤èk·ÿ€öêpøˆ‘ŽG[|‚3ç|TôLºûꮩPñ¬Q£ëÖí5¶ÕÌ*2î 2›Ðqâëmгå«ímmvîÙ»/Í’ÙG wÂH§8qÆY\–s^\åÁ ·¸ÄîÉ#ÿ°ÙÃCÖ<gQv %”IïE 1á·É7[$ó):cÑÏ_ÿ ÈÇ3Êè qÎùà‚ UnÜâB]nÌç–r¸£žz.È&›%-Ù‹”pˆ1E4_¢×›˜b¡Ó_ÿˆ“ƒ€ã‰×I§à4¡D‚ã"¯$PáB-NPD‘hà\ØÇg>¹âŠ9 yf5Æ¢Ê�QzF8ÝÊ¿\˯°¼Š+¨¤¢J«¨¼ªÊª©²Z.ó/ ¸O‰uÍXÖ’—’ØŽ”d(Ã2¦!„¢‘IÛ›iV70[€¯%ÛµlµµÖÛ@Úó¶Ûi·=d4ë°£Ž;é¹Î»è‚Óš4`§sK‰ÐiæµáˆL2ù(–«èCº§¢±s0=³ÌR·–àK•lºGq¤èu´Ñès,úÆw\ú'˜‰'™¤É§˜²A¯¦±r:†Õ×°{Ë8"œp­‘b $˜Eí°ù§¿¿¢ Ai(šÌü–6¦ r8à@7ˆ\sÏÃ…¼Öá‚Ëõ7ØÀbM‘å†:ê8!‹,ÑAÇ;ÄÎ#ª©¦»ñÅ–ˆº––ÖÇûtkuD‡V–=ÇÕrI`͵ÖÍkÃãûÚÄ3d"BÊZ$·g$*ú£»LÚ§y¯–¨‚žh–Õ_Ƶ<8®•lõ£œ[kícß°¯¾M|Ý‘l¡ÅAð¡ÇŸxè )íóÿ¤G<tysº9(&ß0Þ×<Ž]o}f>Øàîb¹þtqFT%j¾Ù…êo~ø‘ÚŸÙœºhžõ_†çGËÁp$ÀMDp@̆prqBa`…8ÄA²Ž ”„5ª@Íoúòipp›à3^ápUHˆi ·JIJñYücT†YNaÂjX(ä̈¡~JÃKØD �H”êËR¸GK‘B`dà9“3^ÞÀ$ó ¨‡þÑ2 F¢‹äèã.†1Â}LbЇ˜Ç"¢ñ8:ô¸‘|h‰s˜à}$Ã5žXŒ7E£$@°ÈO°ï¼krè'Âä>Æ1¡›8ã?‰¸ÁmR’#$%#Æ1I,“‹ÇäÇZ¶ &‡çåGà„hNut1"èxc‘ÜÞq‡ãÉèàú”ñI ~R“£ôã.ÙÉIn,’Ÿ1<¦P�VJ ñµm,9É'XÉ2ù)¬ Œwνk“$Úˆ Nº“”Þ¤d ýÂ}F2šñLÐŽ(rˆCé¦mãˆÑHË7q0•?¤@:pH3.ܯ4¸F…ByaôF•»hŒ�l¸ \òȉܰ\¼\ç6æ¹ÏCEC6‡’;o<Ïù¼V�¤Ã»ŒQL5š‘Q¶hÁ?Š|ETyX†ˆ �>JtC«EŒŠÐ˜¾’œrŽTð­rÌJXâ’VƒöòÇJãz¢¤Íz¶%bÓ ¤–áôQ¢}lÂ#ßwIÌ9ns™,µJ)h©z5ñ„çú‹ÆV­ž )ìÁÔÌ»òBlcLS[Ÿ¤#§uÎyÝbX‚ªå¾¾õ«sè0r¢!&àŒ„j*ÏFyÏ]OGð‚),59½MÍ`†ÈܶS´>ylN{ê—ö‹&ŽŒ¬žI-¡:¤Á»­GIgZßx\‘?ëäˆ  £ºämÝò[Uñ@÷Gî«F{ÛÓþžã¥ƒäÊ…è¦C“´”‚EW_PÖ7²À®Ÿ=4\0Ö¿`û4µ0pˆL'Ë!~ƒ"mRá98Ó0M6@ÊP†XxÚõ´9½h?^‡+š| ¢w43¹£KîÁÁ³‡Æ­ ®ÊGªÖ$‘,mLªu8”Ô˜R4žp­C-RŒž ÏÃÆËp'Š×á—VœÆéˆ ;’>5²Qîìüš4µàO5gMijÓsÛ®fxR“¦èdM^ì9^°&@p“ˆ+\૘ņ‡\ Á~‚?œ0‹x¸ ¶àG# À‚a8Bãð†Za VtÁl˜;ÄÑ p ¦`ż!„)8A�ÝËÂ0¬À¸C°` v,‚˜‚=¸0 °‹¦†¤ÄL5 ØVà‚üAÓW8C¤ÔË 'XE/úÑ8$ ö0ò‚5$!Ÿ¨A>¾ÐŽü£™øGœð‹0HãÄ?b „?„Cf—À?Â!¼KHîü»þ 1ü!l_‡Ä~!‚Dí‘{D„öÁ@n3^7Ö‹Á Ø€X R€D$ éÈÀ9E wX£±ðCa‰'T#w(GþѲ}´m­ÛG ðˆj$á~Æ&<À‹„€ð6à lÃ\¸€x°u¬Âœ8†'¸± pc .àÄ&\ÀC„€Ëp'á.ì!\Xƒ381 Gp‰¦%}œ¬ifKЦÂ0â _TÀV˜AB±ˆ¸à­ÈÄš‘ƒ7”!/¨@*ît¼¢�±xDÒñ€2¤c1pFA(€‰Pék@úú×AdH~óëAöz# yý‡¡�ò׿Š ~ïû?øi(¼íc÷<Š£é¦ ÓÖ}ÄÙw€õ= �0¨‚)¬G¬Áþ8@(p<"ñ¸G4ÂqW~\# Á¸F"‚pƒTˆƒˆ„8†`X0‡dPF¯jï÷z õz ñP$P�º€ ”€÷ö€ñz  Ü@ lP�Z¢ÑG&8_£s¦¡L€ ˆ Z��p�`€��E`&pCBÈmP…l0](K0€ ðWØ XuXopYWXoð p†5ð7X18¨�=ñú@÷¡ 4 ÃÀò…0…€õΰ�J¯û  ¡Ðr¸ c:X†XÖˆU  € v€P�FÀ\2 A �rÐNàCà.°�Ià>pi‹là'.ð ipI.H=Ð vˆ „Bq P÷y €`�ba ˆv „p"ð! †"ˆ9 ˆÀ‹E âp 2ëçØð„èƒ^ä€é¸Ö7(S!ðá+À‹(Pf}`6Ðf`� :2 ! `  ^ |à �~ rà‚„B q JPz � �l|@aÀ¤Älà§BÀH\Àn@x"@~  àÀÞd Tà€N �Là|@nÀ� àJ¢1ó8E|º`:ä×zq†ÇE¾bAàMàN(=qàAÐ�`Y  *`�a àB LaÀv üNi �,`@Ë @î H?`Ëà”I:ÀÏÀ  �tà|ÀÎD@ÏÐ ì”Éx@K¿Dœ”ãvSbýð”Z‚EF­—ZhÍÅoHSZen�àðeƒl…0P9°I5`Ð�`i :Àq "àRÀfÀ¤\ä VÀD`�<€Ï¨ ,@F �D`@vÀÊó¼&Àļ´<&Àx`,@È @'Çàøð„Ѥ/ÖAQä@´‡ ˜+(ÅÁ{WÅa[Ð)X`òĉ H=Pƒ@i0>�#�¡¤B`lÀ�ZÀT @ÍUÀ�z@x $@FÀt`T@j@ ü¢KA T@*À øâ @JÀ D@�6 ‰Cy~÷3tCc/@•SãŠgÅN&Q”-q‡„²EBº�^`&¨0/9P�`�ùôN NiÀLPZ ~ ,à�<À1 �JÀ6ÀÉä õ\H\À*Àd€�0�‹'ÀR "`6`;pƒ°üå8NàãÒAãÒ—Su‘>u‚-0DƒÙêe,~Pzå0`0Îf`©1 ©  ®©š�šª¹šºZ¬% ¯•Z­µZ†Ú¬-`ªÚ­]`®¢1e>œjyýƒ1c6m¹’k†1’T6@~¤’&‡ªzÅQ°®°­?ýl�°ûV îWq-!"ã2.Å?ñ«#Ö—v騳º¨6¹º­;¹Sbx 1’DÅ׸†iFÓ-hËhEbhÇN†l:Ff$ÆblÆaB&bR`r¢id­ëFÕ?ÝhÌÆRïÆUÃÐ^´ úÂxâs/]iÑ*µ-CI–óæÒ„æ‘Äæƒ±jWwÓmÓGd4!Ã6Q6a3\xk«¶nkxo»¶‡vl§v‚Ïvm7øjölO¢i>•ÓÖ’ËÆ’Ékг63‘¶h›Žnûvhçvn·vo¯ö‚ïNí4øéŒÎìLøíœöÑDé–Ô:ƒñ.n]jáÆí0Ãꈶ€×Žn›Žm»Žï„N„ÏNî”NëÔÎê®ÎéøÕ¬îïì¡î‘í±ïA������0�������0�������†���������������� ������� � ���Œ������¬���������������������������8�������Ð����������������/gimpswap/dwiconxcf/notepad.tif�created with The GIMP���������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/TerminalLinux.xpm����������������������������������������������0000644�0001750�0001750�00000047720�12214432632�017616� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * Terminal_xpm[] = { "60 58 824 2", " c None", ". c #A6A6A6", "+ c #A7A7A7", "@ c #939393", "# c #A2A2A2", "$ c #AAAAAA", "% c #ACACAC", "& c #B6B6B6", "* c #BABABA", "= c #BEBEBE", "- c #C6C6C6", "; c #CECECE", "> c #D4D4D4", ", c #D8D8D8", "' c #DFDFDF", ") c #E3E3E3", "! c #E7E8E8", "~ c #EDEDED", "{ c #D6D6D6", "] c #9A9A9A", "^ c #9B9B9B", "/ c #A4A4A4", "( c #B2B2B2", "_ c #B9B9B9", ": c #C2C2C2", "< c #D3D3D3", "[ c #D9D9D9", "} c #E3E4E4", "| c #E9E9E9", "1 c #F2F2F2", "2 c #F4F4F4", "3 c #F9F9F9", "4 c #F8F8F8", "5 c #F5F5F5", "6 c #FBFBFB", "7 c #FDFDFD", "8 c #F0F0F0", "9 c #BDBDBD", "0 c #DCDCDC", "a c #EFEFEF", "b c #F3F3F3", "c c #F6F6F6", "d c #FAFAFA", "e c #F4F5F5", "f c #F1F1F1", "g c #ECECEC", "h c #EAEBEB", "i c #EBEBEB", "j c #ECEDED", "k c #E4E4E4", "l c #EAEAEA", "m c #FFFFFF", "n c #FEFEFE", "o c #FCFDFD", "p c #F0F1F1", "q c #E7E7E7", "r c #E5E5E5", "s c #CDCDCD", "t c #BBBBBB", "u c #EDEDEF", "v c #EEF0F0", "w c #E1E6E7", "x c #DEE3E4", "y c #DEE4E5", "z c #D3DCDE", "A c #D2D8D9", "B c #D7D8D8", "C c #BEC2C3", "D c #B9BEBF", "E c #ADB2B3", "F c #9FA4A5", "G c #929697", "H c #868B8C", "I c #7F8485", "J c #717677", "K c #676C6D", "L c #5F6465", "M c #515657", "N c #444D50", "O c #454C4E", "P c #606060", "Q c #E1E1E2", "R c #EEEEEE", "S c #CCCCCC", "T c #FCFCFC", "U c #9A9D9D", "V c #849496", "W c #89989B", "X c #708B90", "Y c #548089", "Z c #58747A", "` c #436E76", " . c #0D5C6C", ".. c #005E71", "+. c #006175", "@. c #005364", "#. c #004856", "$. c #004B5B", "%. c #014E5D", "&. c #014F5F", "*. c #045262", "=. c #085463", "-. c #126272", ";. c #18616F", ">. c #1B5E6B", ",. c #166473", "'. c #186270", "). c #1A5D69", "!. c #1D5763", "~. c #4C5456", "{. c #CFCFCF", "]. c #E9E9EA", "^. c #2D484E", "/. c #155E6D", "(. c #165461", "_. c #074B59", ":. c #015060", "<. c #0E6070", "[. c #005464", "}. c #005262", "|. c #006479", "1. c #006176", "2. c #045868", "3. c #065E71", "4. c #046679", "5. c #00677C", "6. c #00667B", "7. c #006277", "8. c #005D70", "9. c #006C81", "0. c #00697E", "a. c #135765", "b. c #166676", "c. c #176474", "d. c #0E6D80", "e. c #176372", "f. c #4C595B", "g. c #CCCDCD", "h. c #EAEAEB", "i. c #E8E8E8", "j. c #274C54", "k. c #1C515C", "l. c #004655", "m. c #014C5C", "n. c #015B6D", "o. c #006579", "p. c #036478", "q. c #2F7482", "r. c #4F808A", "s. c #58858E", "t. c #719399", "u. c #6D9097", "v. c #548B96", "w. c #588C96", "x. c #5A8C96", "y. c #346C78", "z. c #105C6C", "A. c #015B6E", "B. c #005F73", "C. c #005466", "D. c #115E6F", "E. c #136678", "F. c #455D62", "G. c #D9D9DA", "H. c #DDDDDD", "I. c #D0D0D0", "J. c #264F57", "K. c #015161", "L. c #015465", "M. c #014A59", "N. c #005B6D", "O. c #016175", "P. c #418795", "Q. c #7F898A", "R. c #444645", "S. c #2A2C2D", "T. c #1C1C1D", "U. c #1A1A1B", "V. c #232324", "W. c #3E3E3D", "X. c #646766", "Y. c #5B7D82", "Z. c #568F9A", "`. c #1F6777", " + c #076173", ".+ c #006275", "++ c #085B6C", "@+ c #136677", "#+ c #4B585A", "$+ c #DCDCDD", "%+ c #ECECED", "&+ c #F6F8F8", "*+ c #F7F7F7", "=+ c #D5D5D5", "-+ c #23525B", ";+ c #005A6C", ">+ c #016377", ",+ c #004958", "'+ c #005667", ")+ c #106A7C", "!+ c #4F8C97", "~+ c #03090A", "{+ c #171713", "]+ c #030304", "^+ c #0D0D0E", "/+ c #1F393E", "(+ c #1A505B", "_+ c #518792", ":+ c #1D6270", "<+ c #085E6F", "[+ c #00677B", "}+ c #005061", "|+ c #0B5E6F", "1+ c #4F5758", "2+ c #DFDFE0", "3+ c #E8E8E9", "4+ c #F1F2F2", "5+ c #FAFBFB", "6+ c #E4E5E5", "7+ c #DBDBDB", "8+ c #294B52", "9+ c #044E5D", "0+ c #007086", "a+ c #004E5D", "b+ c #186676", "c+ c #6F979A", "d+ c #070906", "e+ c #040404", "f+ c #060807", "g+ c #3D4F36", "h+ c #235E69", "i+ c #377885", "j+ c #0A5F71", "k+ c #08687B", "l+ c #025B6D", "m+ c #4B5456", "n+ c #E4E4E5", "o+ c #E5E7E7", "p+ c #E2E2E3", "q+ c #DADADA", "r+ c #2E454A", "s+ c #04667A", "t+ c #00697F", "u+ c #0B5F70", "v+ c #558D96", "w+ c #020506", "x+ c #252208", "y+ c #193131", "z+ c #3B7F86", "A+ c #116778", "B+ c #086579", "C+ c #046E82", "D+ c #0D6071", "E+ c #566063", "F+ c #FBFCFC", "G+ c #2F4448", "H+ c #015160", "I+ c #378898", "J+ c #031316", "K+ c #060604", "L+ c #0F0E05", "M+ c #4E6267", "N+ c #286D79", "O+ c #025F72", "P+ c #026F84", "Q+ c #06697B", "R+ c #515E61", "S+ c #E5E5E7", "T+ c #E9EAEA", "U+ c #F3F4F4", "V+ c #0E5463", "W+ c #014E5E", "X+ c #24525B", "Y+ c #557D7D", "Z+ c #2D3031", "`+ c #050506", " @ c #040405", ".@ c #252526", "+@ c #4B8692", "@@ c #006377", "#@ c #006A80", "$@ c #0B6A7C", "%@ c #4C6166", "&@ c #E8E9E9", "*@ c #DEDEDE", "=@ c #F3F3F4", "-@ c #F5F6F6", ";@ c #005769", ">@ c #024B5A", ",@ c #5B858D", "'@ c #343B24", ")@ c #5A919D", "!@ c #07677A", "~@ c #006276", "{@ c #0D6374", "]@ c #42585D", "^@ c #E3E4E5", "/@ c #E0E1E1", "(@ c #E2E3E3", "_@ c #1A5661", ":@ c #66898F", "<@ c #030405", "[@ c #1D1D1E", "}@ c #343434", "|@ c #2F2F30", "1@ c #0B0B0C", "2@ c #484748", "3@ c #AEAEAD", "4@ c #B5B5B5", "5@ c #808081", "6@ c #383838", "7@ c #09090A", "8@ c #6B898E", "9@ c #197182", "0@ c #035B6C", "a@ c #47595D", "b@ c #E3E3E4", "c@ c #DBDCDC", "d@ c #FAFAFB", "e@ c #F8F9F9", "f@ c #005768", "g@ c #296673", "h@ c #435458", "i@ c #131313", "j@ c #676666", "k@ c #DDDDDC", "l@ c #828282", "m@ c #1B1A1B", "n@ c #9B9A9B", "o@ c #F1F1F0", "p@ c #E6E6E6", "q@ c #C1C1C1", "r@ c #4D4D4B", "s@ c #080809", "t@ c #5B686B", "u@ c #417F8B", "v@ c #005C6F", "w@ c #016A80", "x@ c #4E5C5E", "y@ c #DADADB", "z@ c #E1E2E2", "A@ c #E0E0E1", "B@ c #33707B", "C@ c #1B1E1F", "D@ c #807E7D", "E@ c #E9E9E8", "F@ c #A8A8A6", "G@ c #989898", "H@ c #AFAFAF", "I@ c #616061", "J@ c #9F9E9D", "K@ c #B8B8B7", "L@ c #5D5D5C", "M@ c #353534", "N@ c #20201F", "O@ c #8E8E8D", "P@ c #BAB9B9", "Q@ c #111112", "R@ c #35383A", "S@ c #568A95", "T@ c #046376", "U@ c #007087", "V@ c #5E5F5F", "W@ c #E7E7E8", "X@ c #DADBDB", "Y@ c #E1E1E1", "Z@ c #4A8E9C", "`@ c #1E282A", " # c #CCCCCB", ".# c #C2C0BE", "+# c #4F4E4E", "@# c #696867", "## c #373737", "$# c #535353", "%# c #ACACAA", "&# c #797978", "*# c #383837", "=# c #626261", "-# c #706F6E", ";# c #2D2D2D", "># c #9C9C9C", ",# c #070607", "'# c #0A0A0B", ")# c #687F84", "!# c #197588", "~# c #006F85", "{# c #EBEBEC", "]# c #E5EDEF", "^# c #568A94", "/# c #3D3F3F", "(# c #514E4C", "_# c #343332", ":# c #D4D3D2", "<# c #525252", "[# c #5C5B5B", "}# c #999998", "|# c #DEDEDD", "1# c #989897", "2# c #282827", "3# c #A9A9A9", "4# c #71706F", "5# c #252524", "6# c #9E9E9D", "7# c #060506", "8# c #303436", "9# c #508C99", "0# c #0A6F83", "a# c #5F6160", "b# c #D5D8D8", "c# c #C9DFE3", "d# c #00657A", "e# c #4A6E74", "f# c #565755", "g# c #EAEAE8", "h# c #4E4E4D", "i# c #090909", "j# c #262726", "k# c #7D7D7D", "l# c #DADAD9", "m# c #C4C4C3", "n# c #343435", "o# c #313131", "p# c #2C2C2B", "q# c #B3B3B3", "r# c #1F1F20", "s# c #565858", "t# c #598892", "u# c #636564", "v# c #F2F3F3", "w# c #D5D5D7", "x# c #EEEFEF", "y# c #DEEBEE", "z# c #0D3F49", "A# c #647070", "B# c #2D2E2C", "C# c #DFDFDE", "D# c #BEBDBB", "E# c #3B3B38", "F# c #706956", "G# c #8D897E", "H# c #51504E", "I# c #BBAD8A", "J# c #D7CAA9", "K# c #7C7C7B", "L# c #474747", "M# c #8D8D8D", "N# c #4B4C4D", "O# c #767677", "P# c #D9DADA", "Q# c #D1D2D3", "R# c #EDEFEF", "S# c #EFF0F0", "T# c #5D7073", "U# c #4A5254", "V# c #151515", "W# c #8D8D8C", "X# c #C2C1BD", "Y# c #BDAB78", "Z# c #CDAA3E", "`# c #D8BA4B", " $ c #E8DD63", ".$ c #BFB64A", "+$ c #D4B229", "@$ c #D6AB3B", "#$ c #D9BA69", "$$ c #C8BFA7", "%$ c #C6C6C5", "&$ c #757475", "*$ c #2A2A2B", "=$ c #646463", "-$ c #CFD1D2", ";$ c #E3E5E5", ">$ c #838383", ",$ c #232321", "'$ c #292A28", ")$ c #353433", "!$ c #BCA95B", "~$ c #D8B63A", "{$ c #D9C151", "]$ c #ECD80F", "^$ c #E4C30C", "/$ c #DBAC13", "($ c #E8C911", "_$ c #DEB517", ":$ c #D9A812", "<$ c #DBB524", "[$ c #948F6B", "}$ c #282829", "|$ c #181819", "1$ c #060607", "2$ c #5A5A5A", "3$ c #DBDDDD", "4$ c #CFD1D1", "5$ c #E4E7E7", "6$ c #E5E6E6", "7$ c #EDEEEE", "8$ c #F9FAFA", "9$ c #A5A5A5", "0$ c #282511", "a$ c #A4930D", "b$ c #E4CB08", "c$ c #E8CF07", "d$ c #E9CD0E", "e$ c #E9CC1A", "f$ c #E8CB21", "g$ c #EBD423", "h$ c #E9CD22", "i$ c #E6C81F", "j$ c #E0B61A", "k$ c #DEB219", "l$ c #CBB216", "m$ c #0B0B0B", "n$ c #202021", "o$ c #383839", "p$ c #050605", "q$ c #050505", "r$ c #555556", "s$ c #C9CBCC", "t$ c #E4E8E8", "u$ c #E0E0E0", "v$ c #E0E3E3", "w$ c #DFE0E0", "x$ c #E6E7E7", "y$ c #E6E8E8", "z$ c #443D0C", "A$ c #D9BB0C", "B$ c #E2C30A", "C$ c #DBB50C", "D$ c #D8A614", "E$ c #D8A412", "F$ c #D49812", "G$ c #D49614", "H$ c #CF8B11", "I$ c #CE860E", "J$ c #CC880D", "K$ c #D2AC13", "L$ c #4B461A", "M$ c #242425", "N$ c #424243", "O$ c #414142", "P$ c #151516", "Q$ c #040505", "R$ c #515152", "S$ c #EBECEC", "T$ c #C8CACA", "U$ c #DCDFDF", "V$ c #DCDDDD", "W$ c #E8EAEA", "X$ c #BCBCBC", "Y$ c #1F1F18", "Z$ c #B09719", "`$ c #D7B30D", " % c #C38F13", ".% c #D08F0F", "+% c #D08F0C", "@% c #CF8C0C", "#% c #CF8D0D", "$% c #CF8E0D", "%% c #D0910D", "&% c #D59E11", "*% c #85816F", "=% c #222222", "-% c #4E4E4E", ";% c #59595A", ">% c #272728", ",% c #C9CCCC", "'% c #DDDFE0", ")% c #DADCDC", "!% c #F1F3F3", "~% c #E4EEEE", "{% c #2D2D2A", "]% c #3C381F", "^% c #302B1D", "/% c #D6D0CA", "(% c #E7E3DD", "_% c #E2D0A5", ":% c #D6A634", "<% c #D4A029", "[% c #D6A640", "}% c #DCBD81", "|% c #E4D8C2", "1% c #E3E3E2", "2% c #454545", "3% c #6B6B6C", "4% c #222223", "5% c #636364", "6% c #C3C7C7", "7% c #DADBDC", "8% c #414140", "9% c #937820", "0% c #E6E3D6", "a% c #E8E8E7", "b% c #E8E8E6", "c% c #E6E3D8", "d% c #CFCFCE", "e% c #787878", "f% c #2E2E2E", "g% c #0F0F10", "h% c #8A8A8A", "i% c #C0C1C2", "j% c #DADADC", "k% c #D8DADA", "l% c #D7DADA", "m% c #2E2E2D", "n% c #4A4A4A", "o% c #403613", "p% c #E8E5DC", "q% c #E8E7E4", "r% c #E9E8E7", "s% c #B7B7B5", "t% c #3D3D3C", "u% c #121213", "v% c #121211", "w% c #929394", "x% c #C0C2C2", "y% c #D4D7D7", "z% c #DCDEDE", "A% c #F3F3F2", "B% c #3E3D3D", "C% c #262625", "D% c #515150", "E% c #232322", "F% c #343433", "G% c #B0B0B0", "H% c #BAB9B1", "I% c #C3C3BF", "J% c #C9C9C9", "K% c #C9C9C8", "L% c #CBCBCB", "M% c #3F3F3E", "N% c #1E1E1E", "O% c #151514", "P% c #0F0F0F", "Q% c #E0E2E2", "R% c #BFC1C1", "S% c #D2D3D3", "T% c #D3D4D4", "U% c #D8DBDB", "V% c #DEDFDF", "W% c #E0DFE0", "X% c #5E5E5D", "Y% c #161615", "Z% c #363635", "`% c #393938", " & c #CACACA", ".& c #181817", "+& c #191918", "@& c #818180", "#& c #DDDFDF", "$& c #C7CACA", "%& c #D0D3D3", "&& c #D1D2D2", "*& c #D4D8D8", "=& c #D3D5D5", "-& c #E2E2E2", ";& c #D4D6D6", ">& c #C2C4C4", ",& c #4D4D4C", "'& c #7D7D7C", ")& c #D5D3D2", "!& c #D3D0D0", "~& c #D4D3D3", "{& c #E2E1E1", "]& c #1F1F1E", "^& c #1C1C1B", "/& c #8F8F8F", "(& c #E4EAE3", "_& c #E2EAE0", ":& c #DBDCDD", "<& c #CACDCD", "[& c #CBCDCD", "}& c #CFD2D2", "|& c #D6D7D7", "1& c #C9CDCD", "2& c #E2E4E4", "3& c #171716", "4& c #373736", "5& c #1E1E1D", "6& c #CACBCA", "7& c #D4D5D5", "8& c #2D2D2C", "9& c #555555", "0& c #999999", "a& c #AEAEAE", "b& c #D7DAD7", "c& c #28F908", "d& c #21FF00", "e& c #3AF81D", "f& c #DFE0E1", "g& c #CBCCCC", "h& c #C4C8C9", "i& c #C2C4C5", "j& c #C2C3C3", "k& c #BEBEC0", "l& c #B3B9B9", "m& c #B3B5B4", "n& c #292928", "o& c #BABCBC", "p& c #D7D9D9", "q& c #939493", "r& c #565656", "s& c #9FA09F", "t& c #D1D1D2", "u& c #A0F294", "v& c #35FC17", "w& c #95F088", "x& c #CACCCC", "y& c #C5C9C9", "z& c #B9BDBD", "A& c #B5B7BB", "B& c #B2B6B6", "C& c #B4B6B6", "D& c #D0D1D1", "E& c #979898", "F& c #444443", "G& c #272827", "H& c #505050", "I& c #AEAEAC", "J& c #C3C3C2", "K& c #D5D6D6", "L& c #1A1A1A", "M& c #515151", "N& c #A3A4A4", "O& c #BFC0C0", "P& c #B3B4B5", "Q& c #B0B2B2", "R& c #A7A9AB", "S& c #49494C", "T& c #5A595B", "U& c #717072", "V& c #78777A", "W& c #666566", "X& c #888788", "Y& c #949494", "Z& c #B3B3B5", "`& c #B6B5B6", " * c #B1B2B2", ".* c #B3B5B5", "+* c #B3B2B3", "@* c #B9B9BA", "#* c #BABBBC", "$* c #9A9A9C", "%* c #AAAEAE", "&* c #B1B3B4", "** c #575657", "=* c #6B6A6C", "-* c #737174", ";* c #706F71", ">* c #707073", ",* c #717073", "'* c #6F6E70", ")* c #7C7B7D", "!* c #818082", "~* c #89898A", "{* c #A0A0A0", "]* c #B1B1B2", "^* c #B2B2B3", "/* c #B8B9BA", "(* c #C1C1C2", "_* c #C3C3C4", ":* c #B6B9BA", "<* c #1B1B1B", "[* c #52504F", "}* c #616161", "|* c #727173", "1* c #767578", "2* c #7A7A7D", "3* c #7B7B80", "4* c #868589", "5* c #99999C", "6* c #A7A7A9", "7* c #A6A7A8", "8* c #B0B0B2", "9* c #B6B6B8", "0* c #BBBBBE", "a* c #B9B9BB", "b* c #BABABB", "c* c #CDCDCF", "d* c #D5D5D6", "e* c #CCCCCD", "f* c #D7D7DA", "g* c #515153", "h* c #606066", "i* c #656569", "j* c #77777A", "k* c #8E8E90", "l* c #A0A0A2", "m* c #B3B3B6", "n* c #B7B7B9", "o* c #B9BABB", "p* c #BEBEBF", "q* c #C8C8C9", "r* c #CFCFD0", "s* c #C5C5C6", "t* c #C4C4C5", "u* c #C4C4C4", "v* c #C3C3C3", "w* c #232323", "x* c #565757", "y* c #6F7272", "z* c #7A7D7D", "A* c #8C8F92", "B* c #A1A1A4", "C* c #AAAAAC", "D* c #AEB0B1", "E* c #B6B6B9", "F* c #C6C8CA", "G* c #CACACB", "H* c #C5C5C5", "I* c #C0C0C0", "J* c #D2D2D2", "K* c #424242", "L* c #5D5D5D", "M* c #7C7C7C", "N* c #8A8D8D", "O* c #99999B", "P* c #9C9C9F", "Q* c #B8B8BA", "R* c #C6C8C8", "S* c #C7C7C7", "T* c #8F9191", "U* c #ADADAD", "V* c #CDCFCF", "W* c #D1D1D1", " ", " ", " ", " ", " ", " ", " . + @ ", " # $ % & * = - ; > , ' ) ! ~ ~ { = ", " ] ^ / ( _ : - ; < [ ' ) } | 1 1 2 3 4 4 4 5 2 5 5 4 3 6 7 8 , 9 ", " 0 | a b 4 c 4 d 4 5 5 2 e c 5 5 5 2 2 b f 8 8 g h i j 8 b 5 3 ~ ) k ; ", " l m n o 7 6 3 3 4 2 b b 1 f 8 8 8 a a p a 1 a | q r s t g u c b l 1 f [ ", " r 7 b 5 5 2 b v w x y z A B C D E F G H I J K L M N O P Q i d 7 a c 3 R S ", " | 7 T U V W X Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.i d n 8 c 3 3 R {. ", " ].7 T ^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.d 7 ~ 5 m 3 4 g { ", " i.7 ) j.k.l.m.n...o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.d.F.G.a d 7 R c m m 3 4 ~ H. ", " | 7 I.J.K.L.M.N.7.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +...+++@+#+$+%+&+7 i 5 3 m m m *+a k ", " h.m =+-+;+>+,+'+)+!+~+{+]+]+]+]+]+]+^+/+(+_+:+<+[+}+|+1+2+3+4+5+6+b 3 3 m m m 3 b 8 7+ ", " | 7 | 8+9+0+a+b+c+d+]+]+e+]+]+]+]+]+]+f+g+h+i+j+k+8.l+m+n+o+h 4 p+f 4 3 3 m m m m *+8 i q+ ", " a T g r+s+t+u+v+w+]+]+x+]+]+]+]+]+]+]+]+e+y+z+A+B+C+D+E+! n+h 4 ) 5 F+7 3 3 m m m m 3 *+R r ", " b T ~ G+|.H+I+J+]+]+K+L+]+]+]+]+]+]+]+]+]+]+M+N+O+P+Q+R+S+n+T+c 2+U+6 7 7 3 m m m m m m 4 8 ", " f 3 b V+W+X+Y+Z+`+]+]+]+ @ @ @ @]+]+]+]+e+]+.@+@@@#@$@%@n+} &@c *@=@5+T 7 3 3 m m m m m m 5 ", " f -@3 ;@>@,@'@]+]+]+]+]+ @ @ @ @ @ @ @]+]+]+`+)@!@~@{@]@^@/@&@c *@2 d 6 T 4 3 3 m m m m m 5 ", " 1 (@T L._@:@<@[@}@|@`+ @ @1@2@3@4@5@6@7@ @]+]+8@9@..0@a@b@c@k e $+1 4 d@6 *+e@3 3 m m m m c ", " ~ &@T f@g@h@i@j@{ k@l@m@7@n@a o@) p@q@r@s@]+]+t@u@v@w@x@S+y@z@U+A@4+-@d d c 4 3 3 m m m m c ", " ~ l T ;@B@C@D@E@F@G@H@I@J@k K@L@M@N@O@P@Q@ @]+R@S@T@U@V@W@X@Y@U+z@f 2 4 3 5 c 4 3 3 m m m *+ ", " a | e C.Z@`@ #.#+#@###$#%#k@&#*#=#-#;#>#|@,#]+'#)#!#~#P i.X@/@1 $+{#U+-@4 2 5 *+4 3 3 m m c ", " i q ]#@@^#/#k@(#_#:#<#[#}#|#1#2#3#4#5#6#$#7#]+ @8#9#0#a#i.) (@1 b#! 1 b 2 8 b 5 *+e@3 m m *+ ", " i q c#d#e#f#g#h#i#j#6@[#k#l#m#n#o#p#2#q#r# @]+`+`+s#t#u#3+A@r v#w#o+8 1 v#x#p 2 c 4 3 3 m *+ ", " ].| y#z#A#B#C#D#s@E#F#G#H#I#J#K#L#L#M#&#s@]+]+`+`+'#N#O#q P#o+f Q#} R#S#f j x#b 5 *+4 3 3 c ", " q | e@T#U#V#W#X#Y#Z#`# $.$+$@$#$$$%$&$*$]+]+`+`+`+`+1@=$o+[ 6+8 -$;$i l j h ~ a U+-@*+3 3 c ", " p@l c >$,$'$)$!$~${$]$^$/$($_$:$<$[$}$7@|$1$`+`+`+`+`+2$i.3$i.R#4$6+T+r 5$6$h 7$f 2 c 4 3 c ", " i.l 8$9$]+0$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$^+`+`+`+p$q$r$! /@&@h s$(@t$u$v$w$x$g a b 5 *+4 5 ", " y$T+1 _ ]+z$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$`+`+`+Q$Q$R$o+} S$T+T$2+} U$V$/@k W$~ 8 2 c 4 c ", " q {#a X$]+Y$Z$`$ %.%+%@%#%$%%%&%*%=%-%;%>%1$`+`+`+q$q$-%S+o+R#T+,%'%) )%)%U$w$x$S$x#!%5 *+5 ", " ~%g a = ]+{%]%^%/%(%_%:%<%[%}%|%1%2%3%4%1$`+`+`+q$ @ @5%r r T+r 6%7%w$P#X@V$} 6$l 7$p e *+2 ", " r ~ a {.]+8%2#9%0%a%b%c%b%E@E@E@d%e%f%g%]+q$q$q$ @ @ @h%6+k ! (@i%b#j%k%l%3$} 6+W$~ 8 2 c 5 ", " a 1 q+`+m%n%o%p%q%E@E@a%r%E@E@s%t%f%u%i#v%q$ @ @ @ @w%q ) &@/@x%y%b#k%X@)%z%r l g x#8 b f ", " S#A%g B%C%D%E%F%G%H%I%J%K%L%* p#M%N%v%O%O%P%`+`+`+q$. ) Q%6+3$R%S%T%b#X@U%X@} l l g 8 | V% ", " 8 W%7 X%Y%Z%`%Y%_ &r l g R R .&t%+&O%O%@&/ I.Y@) q w$#&/@T+/@$&%&&&*&U$=&l%Q%q ! r -&;&>& ", " 8 H.7 &#O%C%,&+&'&& > )&!&~&{&]&M@O%O%^&^ /&) (&_&| p+:&Q ! /@<&4$[&}&=&g.&&|&|&1& ", " f 6+7 2&3&Y%4&5&<#6&P#B 7&=+7&5#8&Y%O%9&0&a&b&c&d&e&-&f&X@/@3$g&g.$&h&i&j&k&l& ", " g k q u$m&n&N@+&$#o&7+-&p&P#w$q&Y%O%O%r&s&t&{#u&v&w&W@} V$c@X@x&y&z&A&B&C& ", " 0 0 7+=+D&E&F&G&H&I&J&> J%T%k%K&L&O%O%M&N&L%g i q ! &@o+} } T%O&P&Q&R& ", " S&T&U&V&&$W&O%O%P X&Y&. Z&`& *.*+*@*#*$*%*&* ", " **=*-*;*>*,*'*)*!*~*{*]*G%^*/*: (*O&_*:* ", " <*[*}*|*1*2*3*4*5*6*7*8*9*0*a*b*c*q+d*e*0 f* ", " g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*L%{.{ I.u*v*[ H. ", " w*x*y*z*A*B*C*D*E*: F*G*S S &L%- L% &S H*= I*- I.k J* ", " K*L*M*N*O*P*Q*>&R*L%; {.> { < &L%I. &; S S*S =+k f g ", " T*{*U*I*T$V*< { q+0 7+H.Y@k p@i.| | | i.r ", " * H*L%W*=+[ 7+*@-&) ) r | ", " ", " ", " ", " ", " ", " ", " "}; ������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/GNUterm.xpm����������������������������������������������������0000644�0001750�0001750�00000022114�12214432632�016332� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 202 2", " c None", ". c #000000000000", "X c #082004100820", "o c #18611C711040", "O c #10400C301040", "+ c #104010401040", "@ c #28A228A228A2", "# c #38E33CF338E3", "$ c #492449244103", "% c #618561855965", "& c #79E779E771C6", "* c #79E77DF779E7", "= c #8617820779E7", "- c #BEFBBAEAAEBA", "; c #B6DAB6DAAEBA", ": c #B6DAB6DAA699", "> c #AEBAAAAAA699", ", c #B6DABAEAAEBA", "< c #B6DABAEAA699", "1 c #AEBAAAAA9E79", "2 c #A699A6999658", "3 c #9E79A2898E38", "4 c #8E38924879E7", "5 c #514455554103", "6 c #000004100000", "7 c #20811C712081", "8 c #59655D755965", "9 c #618565956185", "0 c #A699A699A699", "q c #EFBEEFBEE79D", "w c #EFBEEBADE79D", "e c #E79DEBADDF7D", "r c #E79DE79DDF7D", "t c #E79DE38DDF7D", "y c #DF7DDF7DD75C", "u c #D75CD75CCF3C", "i c #D75CD34CC71B", "p c #CF3CCF3CC71B", "a c #CF3CCB2BBEFB", "s c #C71BCB2BB6DA", "d c #BEFBC30BB6DA", "f c #A699A6998E38", "g c #965896588617", "h c #208124921861", "j c #30C234D328A2", "k c #8E388A288E38", "l c #C71BC71BC71B", "z c #E79DE79DE79D", "x c #FFFFFBEEFFFF", "c c #FFFFFBEEF7DE", "v c #F7DEF7DEF7DE", "b c #F7DEF7DEEFBE", "n c #EFBEF3CEEFBE", "m c #DF7DDB6CCF3C", "M c #D75CD75CC71B", "N c #96589A6979E7", "B c #96589A698617", "V c #186118611040", "C c #F7DEF3CEEFBE", "Z c #9E799E798E38", "A c #79E7820769A6", "S c #79E77DF76185", "D c #514459654924", "F c #C71BC30BBEFB", "G c #8E388A288617", "H c #8617861771C6", "J c #69A669A66185", "K c #596559654924", "L c #38E338E330C2", "P c #28A22CB22081", "I c #0000041028A2", "U c #000004102081", "Y c #AEBAB2CA9E79", "T c #596555554924", "R c #28A228A21861", "E c #69A66DB65965", "W c #28A2249238E3", "Q c #104004104103", "! c #1040041038E3", "~ c #0820041030C2", "^ c #0820082028A2", "/ c #0820041028A2", "( c #9E799A699658", ") c #186104105144", "_ c #186104104924", "` c #1040082038E3", "' c #186108204924", "] c #18610C304924", "[ c #20811C714924", "{ c #410334D36185", "} c #30C22CB25965", "| c #10400C3038E3", " . c #208108205144", ".. c #28A220815965", "X. c #492438E371C6", "o. c #4924451471C6", "O. c #5144492471C6", "+. c #69A661858617", "@. c #28A2249228A2", "#. c #30C234D330C2", "$. c #410341034924", "%. c #492449245965", "&. c #38E334D35144", "*. c #208120814103", "=. c #1861104038E3", "-. c #61855D754924", ";. c #30C230C22081", ":. c #208110405144", ">. c #492449246185", ",. c #38E33CF34103", "<. c #082008200820", "1. c #410341035144", "2. c #41033CF35144", "3. c #30C22CB24924", "4. c #9E799E799E79", "5. c #618561855144", "6. c #30C234D32081", "7. c #38E32CB269A6", "8. c #30C22CB230C2", "9. c #514455555965", "0. c #6185618569A6", "q. c #38E338E34924", "w. c #18611C7138E3", "e. c #38E338E328A2", "r. c #30C224926185", "t. c #30C230C238E3", "y. c #71C671C671C6", "u. c #38E334D338E3", "i. c #618565954924", "p. c #38E33CF328A2", "a. c #4103410328A2", "s. c #208120811861", "d. c #28A21C716185", "f. c #B6DAB6DAB6DA", "g. c #D75CD75CD75C", "h. c #186118611861", "j. c #28A22CB228A2", "k. c #4103410330C2", "l. c #4103451430C2", "z. c #38E3249269A6", "x. c #49244D344924", "c. c #4924492438E3", "v. c #49244D3438E3", "b. c #30C22CB238E3", "n. c #B6DAB2CAB6DA", "m. c #EFBEEBADEFBE", "M. c #861786178617", "N. c #38E338E35144", "B. c #BEFBBEFBAEBA", "V. c #59655D755144", "C. c #AEBAAEBAAEBA", "Z. c #BEFBBEFBBEFB", "A. c #41033CF35965", "S. c #69A66DB65144", "D. c #596561854924", "F. c #20810C305965", "G. c #5144451479E7", "H. c #49244D345144", "J. c #492445145965", "K. c #514455555144", "L. c #A699A2899E79", "P. c #69A671C65965", "I. c #618569A65144", "U. c #69A66DB669A6", "Y. c #CF3CCB2BC71B", "T. c #71C675D65965", "R. c #104014510820", "E. c #965892489658", "W. c #10400C3030C2", "Q. c #71C679E76185", "!. c #1040145130C2", "~. c #8617820769A6", "^. c #B6DAB2CAAEBA", "/. c #71C67DF769A6", "(. c #8E388A2869A6", "). c #8E388E3879E7", "_. c #51444D3469A6", "`. c #41033CF34924", "'. c #208124922081", "]. c #86178A2871C6", "[. c #9658924871C6", "{. c #9658965879E7", "}. c #D75CD34CCF3C", "|. c #8E388A2871C6", " X c #79E775D68617", ".X c #86177DF78E38", "XX c #5965596569A6", "oX c #30C228A25965", "OX c #30C228A25144", "+X c #28A228A24924", "@X c #71C671C669A6", "#X c #79E77DF769A6", "$X c #DF7DE38DD75C", "%X c #AEBAB2CAA699", "&X c #71C675D66185", "*X c #965896588E38", "=X c #618565955965", "-X c #5144514438E3", ";X c #4924451438E3", ":X c #86177DF76185", ">X c #DF7DDF7DDF7D", ",X c #30C22CB228A2", " . . . . . X o . ", " X O + @ # $ % & * = = - ; ; : > , < 1 2 3 4 5 o 6 ", " . . . 7 # 8 9 0 > > q q q q q w e e r t y y y u i p a s d , : 2 f g 5 o h j ", " . k l z x c c c c c v v b b b n q q q w e r r t y m M M i d : : f N g f B 5 o o V ", " @ x x x x c c c c v c v b b C n q q q w w e r t y m M a d : 1 Z 4 A S B f D o h o ", " @ x c c c v c c c c v v C q t i F > 2 G H J K $ L P h o I I U U U U G e Y T o R o ", " @ x v q y p - 1 g & E 5 W Q Q Q ! ! ! ! ~ ~ ~ ~ ^ / / / I I I U U U ( w Y T h R h ", " @ c e J ) ) ) ) _ _ _ _ Q Q Q Q Q ! ! ` ! ~ ~ / ~ / / I I I U U U U ( q : K h P h ", " @ c q % ) ) ) ) _ _ _ Q ' ' ] ] ] [ { { } [ | ~ ^ / / I I / U U U U ( q : T R P h ", " @ c q % ) ) ) _ _ _ ...{ X.o.o.O.+.@.#.$.%.&.*.=.` ~ ^ / I U U U U ( q : -.R ;.R ", " @ c q 8 ) ) ) ) _ :.{ >.,.7 <.X . . . . <.@.1.%.2.&.3.*.^ I U U U U 4.q : 5.P 6.P ", " @ c q % ) ) ) ) :.7.>.8.O . . . . . . . <.7 #.9.0.9.$.q.w./ U U U U 4.q : 5.P e.e.. ", " @ v q % ) ) ) .r.>.t.<.. . . . . . . 6 @ y.4.0 * ,.+ u.3.^ U U U U 4.q < i.;.p.a.s. ", " P c q % ) ) ) d.>.u.O . . . . . . . . X # f.x c g.* h.j.&.^ U U U U 4.q : i.;.k.l.h . ", " @ c q % ) ) ) z.2.h.. . . . . . . . . X # f.x x c l x.8.&.^ U U U U 4.q < 5.6.c.v.o . ", " P c q 8 ) ) .X.b.. . . . . . . . . . 6 #.n.x x x m.M.@ N.^ U U U U 4.q B.5.e.5 5 h . ", " @ v q V.) ) .X.h.6 . . . . . . . . . 6 #.C.x x x v Z.u.A.^ U U U U 4.q B.S.k.K D.h X ", " @ v q V.) ) F.G.<.. . . . . . . . . . 6 @ C.x x x x z H.J.^ U U U U 4.n d S.l.i.i.R O ", " P c q V.) ) F.G.. . . . . . . . . . 6 <.u.C.x x x x m.K.J.^ I U U U L.n d P.v.I.S.P O ", " @.v q V.) ) ) +.. . . . . O U.0 n.f.Z.Z.Y.m.x x x x v x.>.^ I U U U > n d T.5 T.T.P R. ", " @ v q 8 ) ) F.X.6 . . . . + E.m.v x c x x x x x x x v # >.W.I U U U > b s Q.5 T.S ;.6 ", " @.v q V.) ) F.G.O . . . . + E.n x x x x x x x x x x z 7 >.!.I U U U > b s S D S ~.6.. ", " @ v q V.) ) .X.@.. . . . + E.n x x c x c x x x x x 4.h.>.!.I U U U ^.b a /.K ~.(.6.. ", " @ b q V.) ) .7.q.<.. . . + E.m.x x c x c x x x x m.9.<.%.!.I U U U ^.b p A D.(.).p.. ", " @ b q V.) ) ) z._.8.X . . + k m.x x c x c x x x m.4.@ 6 %.w.I U U U n.b i ~.D.(.4 6.. ", " @ v w 8 ) ) F.7.`.8.'.$ K.9 f.v x x c x c x x v C.$ <.. %.w.I U U U n.C i ].i.[.4 ;.. ", " @ v w 8 ) ) .X.h.+ 7 % 0 l z v x x c x c x m.C.H.+ . . %.*.I U U U n.v i ].i.{.N 6.. ", " @ b w V.) ) .G.. . <.8.U.C.z c x c x c v Y.M.,.+ X . . 1.*.I U U U Y.b M ].I.{.g 6.. ", " @ b w V.) ) .X.. . . X h.,.U.M.0 f.C.E.y.H.@ <.. . . . q.*.I U U U }.b M |.i.{.B e.. ", " @.b e 8 ) ) ) z.3.2.1.1.1.%.>.0. X.X X0.XX%.1.$.$.$.$.q.3.!.I U U U g.b M ].i.N B k.. ", " @ b e V.) ) ) F.d.z.z.r.r.oXoXoXoXoXoXoXOXOXOX+X+X+X+X*.!.^ U U U U g.v m H I.N B o . ", " @ b n Z.> 0 0 L.( E.k k G M.M.= * * & y.y.@XU.@XU.J U.U.9 9 9 9 % % e v m ~.i.4 ].X ", " @ v v v b b b b b b v b b b b n C n n n n n C q n q q q q w e e r r t y m ~.D.4 A ", " @ b b b b b b b v v b v b b b C C C n n C n C q q q q q q w w e r t y m m #XD.4 #X ", " @ b b b b C b b b b b b b b b n C n C n n n n q n q q q w w e e r r y y u S D.].Q. ", " O > ^.^.C.> Z.F l p i M m y $Xr e w q q q q q q q q q q w e e e r t y y M E 5 P.K ", " @ a s d , : %X1 : M y i a p F d B.: < < 1 2 Z K v.&XE #Xg *XQ.5 5 $ + ", " h.1 L.> ; d a s y y u i p M M }.y M y r t r t 5.c.f #XS B *XP.j . ", " . % 5 $ v.$ l.k.K k.a.p.e.e.e.e.e.e.e.e.e.e.e.h h S.S.S.j <. ", "X X 5.P ;.;.P h h o R.R.R.R.R.R.V h =XO . ", "O . X T E K l.p.P R s.o R.R.R.R.o P -XS.E ", "O <.K.F }.< ~.f 1 1 1 Z (.S.5 p.;.;.6.a.K #XE v.P # P ;XL X ", "+ E.q n q q e t y t r e t i Y #XK p.;.h o V R.R.R.R.p.:X|.(.T ", "O y.E.g.>X>Xq b n q n q q q q w e t m a : 2 ).Q.e.l.S.K P 6 ", "<. . <.X '.#.L #.#.# ,Xj.j.P P '.h 7 o 6 h . ", "X ", " ", " "}; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/wilber.tiff����������������������������������������������������0000644�0001750�0001750�00000014700�12214432632�016423� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�À��è3`à?P`A‡ *D¸°ÂD %|ähQ#ÆŒ+F¼¸ â$Š$†ûäQ¬ÛtâßZê´é­ÚH“)ëŽýgÏi9‡ËÖrZ*èß’UGþ-/YÚ¢•Êû·`Ù¡óU«×4g©Zjf-:ðß°±™FþÍXhÖÚ¿ióöÛuðoª³)sMöðoÒ¬=ÿ&ú dÜLÿ¡ý™iÚ®ÿQ㌚š8Ù¿“ã¦ÛñoØÄì¹³ ÍóoÈøìäK³ÚÖu™såË?_BEŠ•(µ»l¥ŠjÖ¨vØýcu›´hÚ²E«Æ¦Û¶ïx¹K·Þ½zØÿŽÿ÷‡ýxÜÿ“¦Ìœ1ÍäüÅ –,^:Û qÛþW¬Ê¸qý[ä•ÇN;• Ônûíw((õœtÜg4ׯ—tvUWu×Ó ·Ã1Ü#Œ2Æ3S½ôÂTÓ½ö>*Ÿ,´Œßü`1?üÂzÿl¶Í¶€ L™ÀUÒ‘ F§sÎ¥P\ÑÍõ°Ür7\Ã3&"ã#IÓë(ÍñÁgŸ£‹!ú˜ùg “X…ŠCÎ�â¶#^{sP2Î5Ñ܃O2$í’Ñ)Œäõ ;%wÃ/45OÓð*²´½ÚG‹¢õÕ÷ŒýȬÔÌ¥Âÿ¸ÊNÑøìÉ)Á\ÔÊÍñà’Ð,©]5¹0Ü(ÈàBRMÅãÔK«hoÓñ±ø JŠ1“Ò2m˜ÑXÊ*›r $Ç •«XåD­ÜÉ<«ÊÛÅj“Í¿†ôI™‰Âj󼳺"¢Øt£.Á’ KŽ©ôž3mœúeËÏ& PþxÊo^iTN¨ÒÁ[K\ãªÎ§ütÑ;ÌS¬Ù€N"0¶ˆHljܳº™FYçŸnúYh´¯‰§n¸1?úè‹~FúÊ¢ß슮Aæqˆ%ÕY ØÖ«t¶­|C©ÆQÝë¸Ö1=kÜ¢ºš >‹3¢šjù§“¾)éf€•Éd•zf£×úì}þéÛ~¶f³Ÿ«Âys” `‚éÑûbœi6;4ÛUç‡aÉöGéPºéaŒÊ([ÇܾN÷ÖÏW®{Uï&¬ßlÚéb’¢Å‹êhb˜jib”h»l½·Øjæ¾v¼g§~Ümàœ[Îm/æ6£—v*&£“vþi¥ƒþ顟9Ó˜ØJ/ý]=zÄô-˜\±Ç ÐF‡:è}z˜Ýá-íëÜó‹Kßlzd™¤ qø‡ l¡‡d#uøG²Q¡ øG3:ýˆ šÔ½v°½-Ìê-xXKTñµ9I_~  mB J€T øGrQŒ4¡ÍËèD7&ÜŒz´2c6Ã&ý†)gGÜæÄ<þÑ…û#~ðÁ?”! qü# !Ç?"Dü£Ũ;Ú0n;¬éÕ!~Õ=?\d;[!yÈ0ì;˜C ÿDHôá _Dã‰HE©«Ñ3Æ"XÁµ9†bg»{$ÄǼ…%Æ}› = =ò…d"þGnèP†Bäá¥ÈC:þ ¸ùªÃ?ÄÀJüƒtÀÇ?¸Ò…ð‚¤øè@‚ÐhøÈ€ƒÈ@ üø‡T¡àshCÿp€ ìˆøè£%1F :ítÛÑV&Ç"þQŒ"äû0Æ?l` UüÃF÷9Œ`MPÁÿE2ð*4¸]ð$†õe ‡$+q°‡J8𔤩‚Æôõ70…Ô£ÉF4Üñ`¸Ãÿ0‡FÔ!ná| �|z@ hüƒ €À?X€_n0�ø °Ê `�ÿ F…@Ô ˆ�Ã?°`üU  „ (ø‡Ä¢Ž4d¡2ð(C³‚Šd!©ø‡œJ +C©T0È7Œ iüCBQ‡ ä Žø"0t¨D]²Ñ‰þÂCM,+ a^%U¥;ý1ˆQÿ¡u¨I-ü`‰ȃ „ø‡(€ˆðƒp­yÙÁ‚*—³Ü`^%AœJ‚èUy%*ŒrƒHU>àR À�ÿ@�ñD€wðÝÀ?`YuÈ@2 ‡/Bðd$&�ö°È&,`œ5˜@¿GЃ&$ð]¨õÔ }«!Ò#xñøG9j0h]ôÛ¸ˆ^i’Écç$­™Å䔼Át[¡è)<a‚ƒ¨­n#þ!�rÀâÜ ®Ø_I0.Óí©0°ª\ñJVº@©$ð€Ð9`¡zÀ˜ þ¨.¡Û€D ¨ê Ì Á?ì` ý©À¢a°„ñ³zûZÄ?´¡ ‘ôƒÌUðF !Há�Bj†ô r0èž›B”!Ã"†6¬#´t~ ×޵G"‚k\Î‘Ž¤ mA%Á6F0tÀ-7(;:NüƒèeÊ , �´KÕÂ?Ъ†ÿ WØ@.;€Õ:°€± P‚,„ ÍOrø‡)ô6hÍ¡ïi†:!ˆ0aÊÀpÓ‰é"�¡HÁ£]g=›ÍÛ!èžod1h+;]îCm*_ú2 /P6ÀFø‡ÒÈðQ0# r†Aq°‚ì  aë@ŸÉ Wÿ ÑA ‚¤ÀÆ?hA1[P‚˜Ç9^y2š~°O¢kT >üC *ÅŸg ]¨G:PÛ4× È­Œ Ý @ ò¨@uêˆB|P‹æð¢ý±Ø±Cе³Èb`ç0äP®ëˆÝ^èFç&m†̹ #è¯ 2Ÿ"¸ÁZ†^ý¡ 9ÀVo]ð'Ø·¬Ïõ„0øOp^\`u†ÁªÇ><à˜2À݈€V„(8ñHÿP…üæ ¥™gusP‡Âæ  …õ‚4 À?àÐ:Ðá40‚)ýÌÀ¡í~lœI¯f«B}üšún*¡vmXt£¯xÀ–Îc~è˜qèÇ ×qƒÜâ¯xÅ3þñˆÜàGØs²‘š<„!�Nž­ ¦1í2Lb2¼ø›0€~è…H‡4Ð5]/¶9Pià… à‚qà€Ïa`Tϱ@�Yn™ñ@�9 b‰ R ø(€øÀÕ*Q…p/ˆ„ȇRA‚è’è„õ)Ÿ`]ŸbgÚÀ ˜`RH†È2°“]ð?ärˆ–(eȃB¨"z”lx3ø‡«°D.Xa3¸„ 8E.X‚ €1胸k¸„8ø‡Ãð¿4†uXgc(‚HS*õ€0]= P²^¯“%© ) ,§øˆ\`”–(€!§j'€€�H€R À’9à�N€0sp†ˆ‡ am1ƒvèeã 1Ãð)s-ŸAœI˜¡/„ =åX†P‰5é�/R “!0#S‡4H†ø‡8 ¯0óÈ+øEP5Ñø‡MØb+¸ ø3xñiøP¶b-ƒ¢ŒŸE70°VjÓCY=ÐÐWP³Ù€ xi~`Òjàé� 5JO–þĆ@D@ˆÚ¨F™6àpzÐ#Ù…ˆ• (…j€ÿQègÒ iÀ~¶rE&egŽ€^à2PO1ɇLÈ„(IS¥Z K  Ò ƒ1èçyx†'¬ŒÍ ì4„€h‚*¨„2ø‡;ßK+¸ƒ»´M{(H'ø‡Èt… M „Dч K°SÙ3З53ufçwz‘À!àŽàöÄ.`÷`v`’v€ˆ:«tÀ‚`ö¤#° ˆ†œ”†Êpƒ&ès‹äʦäåëäàkèKàˆPJ)Ï>†r(‡ÿøO9¥¦Wa ñþ@`ð‹.˜„ñdðã* rMP³!ˆ…HðƒØ€5_…k¸†+ø‡Ë¼ô"PO�ë°|Œv0±/¨‚ryOP0´ ø5¯÷</Pã¨TÆ$�n`óxà�viV`õx@De8€×: :³MÐó,g(ÉjaϺlÏÆñlIþlgRhÏŽøF “¢‡ÿL ,p)øçbDÒ#`,å�6`‹<Ž60�P†Qô^ˆ„`i�/p3?Ù…Pð—])S'؆-&…=ØÅl°;°·zÀp@ Bé†XˆmðOÙÐ .ÐsŽX¹Œ±ÀòD~O“žL—a`“v * †€®`œ 14]ð?‚(…®"Èzè+âä©´leRs/Ê¢ŽÁìŒ)F�³*„ ¨5 }IÔWà® Þªr—fP%Y]Ð*1p�KÐn°]øpCøð°¯5<�O°€ȃ,ˆ'úÔÂ47Hƒ4¡ƒDˆ/Kð*0CõtvQ÷Jø¹HWcvÏH47eàöò+C#@�$øz` ,0ô „4µ„Zhá²d³l®ô"¯,ø/ª¢„^&…¶†-„r#¨„jhQ) S o,.(e>§‡H� Јv0­a0¾R_wy°“MðgpEðGp4uðgÃ7p4<p{ûk°h0}ù}ÐVP�§/÷@Ñ@�Ñ(~é-ïz(hw2€8m V­qTOs¨0l9‘›" O¾lkȆn¨Fhø†ƒ^±`gF†èæ&ë�™†Ä¬ú€©‡ÿ“M0îÙ‡,30­~Д&øW_s0mY'°n’ΖÍÎnp+ kZøWwÓs050l9ë3cÐêTà.8#®Ä”E§n•àð`k]`ViFÇ„ÿz­w z§0.ˆ‡Ô´„hÞ†oÐliû†¨œÊi·Þ h…žöâÜ)¹©µP¹>—y=„Ð�5 Ky¥Gpä3ð�pÍ?P ®: ç6ÐŽXÐ5°Ó3ùŠöˆvÐ .0�Msp.Q5P6sP eV1àÑP™h .S.pN`—!`f˜¡‡Àl³ wð‘<A€6ø‡Fè™iW6ëÊn˜öhÞí}^Ivî#Í h€æ�€hˆ‰ãŽ‘g0éXp-øOðTR°@±  . ëvúH´^}ÖWÐN¸¾öòq�Ð�E3(Y!àKL6oEp0Å Ðup}s�/0Ö#ð+‚pp‘w'y0”oÓ—MÐÚˆ („rèàfh gh†^‡*¨ç:H‡l¨•@H¨€:nj@~„Fhgʬå?hn6›>¨|>ä è^ȃ‚0‚pˆˆcðo®G÷4=0ªi›§6|à\§* |™1ÏE‘%P�éh1öÜòL4`Fo vl r[aàJÐÙ€[ÐÑWp30 .ˆ ƒLð­~¨€(¥„&Hã3¨ƒ ðÖ3ˆ ŽøE‚4È€ø‡\È×bˆ…8¡‹µüj|§¯J3ËeˆV'a$(‡ZN‚:h™¬ecvÆ=êäoâ?(ƒ*A�ð6�%ƒ�QîN`5e Z ® Õ"ǪÕBÀ“) �5@OÀ,¼µ„ "³f óf PEiS0È/°ñ¹!’àMœùõxþÄY0s€DðSJHƒi€tH2 (Þ 1Ô†Rž¨…†N#y–-Õj²Þ>·!ÐÙøÛ­‡ÿ™—�È€µ„b¨€n¡‡á]!:áLh‡îp†|(fÐ4 0ó2�0Õ2P�EõÔ3 « 6Tv�pp�Ó9€å @Ó: B™K%/O³Š4ë• õY?}uùöŒÀÚ Tý5ƒ€Ü/o©WÕ� 'R ‘¡‚*!3Y3]àA}%PC0+ð€°Gð4|6óeÌkyµCû2�Ÿ#†ÿ¥ªH… (¬?-fg<ÀL"Z¶Ú~\‰J„H °'ðP᫾­ž/1 r¯š .~§`Lœ¨V†Oœ‚J4ôÔ@I뉨Pžu… �|Çüµ·@3"€-dT@‡ÿÊ `óBà^g.à1sà�.ë=7ëÍû–¥êïi>s°> 0>-БgÐC |VÊÑò^0޳3cP5ygp‡ˆFDV & &W…_…zhæeÈÂ-„pˆRPpp0�«(IYà�`Ï=é�îs€`Ö�ÚT¬b ”ö*™·*½ •1os@ Çb •ös HP0°›Ã�'pƒPøGpÕS°)ºÀø­ÅºÃÛ?²m‚ðP/ð«0ó~IO`Éâ*ªÄ¬Ï¸/)m°»<`g:c%ê‚Lkv ¾®áe(„Òá– %:p·Å}ˆÃ�ƒ,u S1µªµÞë„“¬géú’i` ” ˜ƒ1‡K©a°‡ã™ÂP4ÈÙBȃAz1A‚,(h4H‡ÖTÈÞBÈ‚|€|(3l(†Êd($ˆ…äºgÑ¿@® ÐÑ2PÕuЮ™ \,ð‡}è‡eÆçæ,¥!…ƒ¡l„>¹™n.3è(›2È…BµTÈ #ˆvø¿[Ñ¿]‹k°[,°�ëCù,%½@% °9”;9žà >ƒ˜¬„LÈc(ƒZÉþpÎZ¹ÉZ¦œn‘~~„zhù.h™áý6è¨ÿ>¡‡zá…( ·PÞBˆ‚ ù aJz(‚H€4-†(ÞNvæ÷÷Àü÷$=J¦â'ŸdcÖã?hƒ¦”ï‚áÕhÉ„J„\(ȆhR{Èÿ/%_“Yò‚ÈQ¨Í¿Bzü«ToÔ¿mfýkÕmÙ¿v}ÖýëÐ_G¼8Iµë¯-¥ÿÔÖbèI¯5£ͺ¬úפӊuÚÌûW­ÉŒêMøW¦ÆXIµÆý+WoÒ¿Mæü»¯éŸ>þš²ë߈ÉFMìø7l²…amÚù7d¼E'Ûþ ïfÐX7}ü0ÚMŸ›þ‡ Ókx˜nƒñuéÏ¡]Oì˜ükÑ5}ætÍ:çÎÏ:k†.KiõäI’X¿‰$Ož&u*½™²dN¯E÷®=YuçÈ–#W:òhÐ[½öe'ck8^£VzMšµny³mû.;öìþ°wßþ»é7jËÿË×CÞygøõ¨/£ýë14ìçƒÃèbÀZº (@þé ŒNk¬³VB‰m_ [mµ=T3ì³[zš°ÈAÙå¤Óáù§QîH\rÑ ÚåQ“{µÕÕØm·upÇ÷ôòØ3Ï òÆ«x}H€_ò9¿ýò# cýõ?þ°6ˆƒ–0Xë­’,D›ÓÍÎÐí +‡ä _®ˆäˆÔÑ(¢ˆšg¢QK@è3`àß°I;AM„0Ê¿!ã!ÂÛöoÐxdƒÆ"ˆé߀ÑÈúÚòŸ0±>#ÉRø×k8qšt†mú×c(S–Lº æÈå_—Ay ÐYÈ¿Nýt”ð_Êz}å´Wð¯]o9mÕü×°æ_«ž:õêhÑݨ‰ͺ­6×ÕJSÿšt¶íä_£N+]uôÐÐË¿í=Ôð?Ȳ÷#ü &tØð£E™#Vœx %™•<e†ù©3fκ8÷²¼ù .Z¼dé²å+V®Z½fíºõw4Ýݼeë¶í;vnÕ­‡Æ¾}z4Pû0uÚ†p?*pȉ£O™>=þìÄIýÏ}”*ý ٖd÷Ÿsy¾ºÖ¬Yÿ¥œŽÍ›·ýj°³¡íÑB+štP‡tÕ]O½p:8ç]äß—Œ4Z8BwKtwÄrÏC=öسˆ-òÚko½‘Ç{«óÙ:ë|óCE¿lõ'6ÿ5 ÀÞ€uX] Z¿`u6„Äù§–ÖP\ M$“Ã6-\3=0Gªˆ¤õÜB/Ó‰Ò;+}´Za_b°Q?mÕ®¬ãŠ+ ûu,¾Æ©D q.¤CN2éü’1ÜH— r¥Â .²°¢ -¶ˆ¢K(®˜âK*±”ÒK.³´²J-·Œ²+à_@�������0�������0�������z���������������� ������� ����‚������š������°��������������������*�������¸���������R���������������/home/fatal/wilber.tif��created with The GIMP����Ó��Ë��ì������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/timer.tiff�����������������������������������������������������0000644�0001750�0001750�00000017242�12214432632�016263� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�¤��0ò%¨È!ü…€$XèP!ÃGŠ2(ÿÑb‹'v¼èq£G“8B’(ÉS&K4mŠÔ c%ˆŸ)kL÷9²b Œ&ÿر`ñ)0öâþ±aÁì[)xðàô‡ø âõGˆ0ÿ„ˆòO¸‘"Ä· ܼ¥„ñ5 ‚¿I³†õ Å_ƒ¾*økÇâ;F”þÄq§íßÀ*Õ*Tò‡'68¦ÍÀ1½ø\ìÓË Á‹k!&4þâÀà2™ú,¨µÁ‰£ü8óã*è#:Tþwçlj«ÿîsa܆ù´¬˜ó,œƒÿB˜fÌš7{úTìþp/iߥmcb$Ú#EÌ?ñ7ï>#Þ†0‘ú/ˆø'ÚreGÿô‡O-UàR#´‘56`xFmå”qvsŒ5Þ8µUU=LTGQµá†fþ±@Ã/øàƒÓ^h€N…ÑQ%`‡Õ1'Òiׂž?g­qYå”M$U, G€uPß8¸ù"U£B@?þCÌ+Äýò3 $üB(u÷Õ0Ñ´øóQþÂ7T²F ɬÍ9_rG8øÓ¡|EPýÓ.¸à@_ýGL'tQõ®5ñÝvtR.þ=*îè—SL`„–¨ †’`¯Ì…ˆcu ÎXWV^àU9tcáK!tÛS×Tý†4h°4Ä‘öá¿i¤ùGYÄùË)kd‘kyd³FI¸øCq•‘n’?¤ZæI¤[A<·¬’VQDó‡7É‹DHo}À¯4QFœÌÐBJ7A¨´¡tÕaØÔãZè æbH ârx!çßYÛªçŽXùw%•wÑ6‹øKM§¡ÖÌ m¼÷©nøG9$|ô‘´ÒŸ©¬Í±YÝD.h»‚ßÌÑÈ=dUFù‚rÊËŸ¼º@²«n:G© 7^wÃõºh¥ëVÒT5¼E¢ÉyÓð)ƒµÕ&á«p�lpÁâ|øÁçÏiÛµÆÕøå6Ôþú0Ŭ>´GXW µÒÎk¿vòid晫…¦›E¥f¡„Ca±I{@0àžõ¿>Ô‘V›`ÐàyT‚Dîþz¥ ‘E iþEñégŸŽ?¤‘ß9äüÂ]ä›C¾…¹û`ιùGê‚O‘ho!¡€2þ@4þÀ@LþZF kŽTf!J&vxÉ#Q1Ø©t•Ÿ=ÌêSsøÈ%N¥T M(Aòø F°„Gmh@^^І Ä‚Ì`CŠøƒ&d© =h‡ J¡ Y° r— ÒÚò–¿–B ^&CJ¼… ¼y¨Bÿƒr$#íR—G* ƒ‚|M‚ÄøRtðt ÈýØøþ �ÓÄåâ_YÜ•Ÿy%7EY³î$”#ƒ8Áª:„&T ¦ƒ$Às„¸ WèÉÒ–Â_Ø çeáㆡ‘^X)`; P 3ä=î( 2Å¡‚ 4 yÈÐ…þ¡ (ãÊPƒR:ÓN¨¦%LÞT½5üD Œ6=°Ç¤`s5hD³X°&V`ó?C%ÂTEêMà§„wÈZ/aIQjñõ„àî0…þ #{Ʋ:)¦ Áϸ@[^ˆ€Ôñ#ºò¤6¬` üÁ–0,B‘ ó"æÐO&L¡‡?è·ø0þ £’@jš…l¡‹èÂ�Zø‡ô¡‰¨AªøOi$¡œÍAÎ`F$ˆ@üW´âÀ%°ðJP×¾ø7²Q9 :ör޼ä71Ø•£ð+ƒæ4sn¤¼‡ÿ0Eªéƒ&t Vzè— ÞÂ?ŒJŒ?h@;/Ìd:˜Aë{hB”›ð„aHQ„D8àþð‡-þà�wØàNðj àÙØÃ½éÍÄ,aSüÁ¶Í‡!LKU¨‡ Š^‚>4 cèD2¾Œ”Ͻn°Z¥åÄ?ôa\ºŒƒ�‰î`¢R`à/Ñò­ï+ψ¬‚*fâ‹•‰™.%¤Pw²†\Í2”ÖÜBºÐh K“bá-Â?¬€?ØÃVøƒmeAÀ:²F2‚a‰?¸6¹‰Í†S³aÓ¼ºC#TÐÌÃ@“·‚Bêy+üSX!ÀÌ`Vº• ð†mZ3Šh@«\å‹lÍɇŒƒ„ÀÇG¢â‚8“øÈ@‚ÿÎàÔ a„x)K>'pÄ´R7s V‹²·ºÐ- Úg`XÀ¨7p€þaçéÀ0j,lJÒ¼A1±ø+€ü‡PÁR¡†bHa½‚¶ýƒ'<á’Gx©±pê|à÷Þá°iQñË*K…€ì Á?L¡Æ/xÀ¶lp„ì¦ GXá�Ë]öra4<r’˜óªñ �ÿ ñj@Âñûÿ  ÀDn ˆ-ŽêÄŸù©ovÞB! iKOk7ÕÒÁ¸õKiþa MÞªt…-TèK(R¦ÓL¬Ò¨PöP§¬vÑû]ã¦;5¤©[è Mì`ZdXÁ¼ðp‡+ì xâˆD0þ†2ÜÕ…7L5 gèò¶©w`k˜Nv°¨  ³ qØ`¶ƒE(èŒ!0!Ô‰ñ¸Ԫğ™Ó5&Æ5R£-Ÿw 9JüC{øƒ ´mŒXG~Ð)ì F}˜AÓ`ÅMhÁKè•ê—Ì4ThzFÛ²”‡lå Nñ¹“50…<Õ¸ýÃÂ潇Móa^B˜ôF0üð7årÁ j¼E1’àŠ”#~$3ôñxÄ! ÿˆ{þóœŒþ…ø"md˜~ÃH@aLƒ¤ø[7#ü˦»‰Ú€¿¢¬¨Ž ºPâ:‘2Ô ´tpƒÁ‰ Ç!IˆÃ?¼„ ¥À¦ Ѓió¡“C:Œ6t ÚÜ>}oÆÐ†a±¡í[@L§e.˜@]wˆ3a°$báRPȆˆ€?ÈHƒ?ȆH `ÈTø7}å‚$0H‡ˆ¨…ð‡È„ Ó„ˆ÷uHHtrÄ|À<ølÀLø$À�$Ä�fDl**ª:FÁuœnì†!Ô)|�9Á[ð�#æ]èõLÈ/=†\H…ø‡vè‡Ï…Dˆ‡ÓcÐ7\K[M�só´G°Õ Pyr>à³Ã°sM�Ó0V|ß??q º HþÄJà >p×/øƒh°,ÈDð‚?(„RȆ?(€2È�/°ö\pV.ȇÈ„È\HñxÈ÷L(ƒ8+€0'qcäP@B@…? *r ö&o‘uøœæBñNZàõ0` XƒG€L0M‡)†?¨ƒvhƒ?°7 g)^'_|¦j×B gM�FÂJz–"P—P0sprP—P)ÖÓ[�›¸‘îåo”F]ÔO²†°!HÈ„h „b¨‚|OƒD0c0(‚âȃ"(ƒ\ø‡\( Xa ð3š•qƒh‡!n~1rã…?  Nøz ÷7þvÙìF àÅÂ1è‡ôHðR:X X‚È‚b(‚°e"GpЛ”dN—–XIࢷpÕ|Ðt¹“·ÔÐ307c¿s ßÖ|— Z"HMuˆ4S°Ò'?T¼øäZŒ�wЧ•ø—4È„pö,HH+}æ°S.(†²€…Ò‹Dð�cu…PaD‡²Dò�FFÆTy ³.ëQ UVäcR” &^`Áˆ‰øÇ€‚!h÷´ÐVz0ƒ”åP5µK#;##°0ÐñÅÑüXÕ‚¸Ôœxwðsˆ¸vPÐS3Ž;+ýÓT Ï0KýmÐWdÍ=øó1QàÁ f=ˆGé;K…pcéÐg0(€HÓ,Hõu+Î*‡6èøƒfh‡:TET ZŒ@nâ6.jæ`c~`4œŒ†ˆ?}‚dȉ°J™ÜÐ?ÀÜ ag  IêpUx0+'Î0s÷*’0×°4C½W ›âÕgp5?°wóu?R0°t/ž•PuõGž=ßc²öFÑ’gÔ0e0ˆ7=vR�-š…ðp2¨‚$Ë…P°•–¼‡n.øƒ.†žCž†@ˆðPäõ¤“°£H`jѳ##p·”Ò—ô�3°³\0k+ÀkZå5ÐR60ëH©DËÍßSxÐ�=Å}÷+I÷S°©špÐ8 ðŠMŠˆǘb'WžßÔœKƒ<à[·#>°5t…p°Ið;eUPæ­I°¼…ð÷Tð éÈØ@‡V¨è‡qèUv°R;h€^¨Oˆ@CA""Eà@~`ãa`gT°²õl4ÍXò¸"G"‡”ªBÓJ©bpb°hàJ©¸ˆ«Ëx+~ ÔŒj‡¨65ŸÆ²ðFuip1?P)y}.Ñ4¿FV°Ñ'`ÇTþ�j1SP¨hÐAcˆ+}šÃ>elÁ6ÒAWÐ]µ“q*pWYׄ?¨>¨†?è1è‰ H†èBÆÜø&~ "T�1Pc eñÔʳ‚T]Ð÷T4Ä[°Ì±†«~+pN©âŠ—(pÕ‚p¨ZMÈÕ&±ðvo’&/!û ä!yiDECÚu ª^}ÂZáJ¾#*°�%R€H°“H…D_燅(€(‚ÊD†"¨Jd7,éh1j]/e‚èøƒ~˜l%ˆ„X‡* çJ™¦Z®¦3h=MS’NÂЃl&tGðÊd°pKQpKó¸¨Fw ïDøz`ÄÍRD$/Äg)ÍêL«p#3îp-³6Ì”;ÐÆ~ôs]¬H¢3PŠ3Z€ò(€ȇRÈ‚H„ÏËIQ°ÊÈÚ5håêzø|‰¢jP¦2ƒ–HJ7ø‡tÈñe ¢ ÄpÇðÖcÐI+3ì-¦ÊWz0s‚Š·Bðï¼̼í‘Èä´h¼±ðâ7¿\`ÆP¯ruw}î M%ô" æû¢Á¿S¿VdZ’40ê×þÄR¬3§ìCWð#¼…8ð5‡iÒc°‹Œ„€Lrr„×. 5, d@GÀ9‰mIm‚%Pd= |Àñf “h b‰kÞV°pâᲔዔ‰ýXìmÓë­Þ™úmÒ¦¨^ý«2%™vr§ R P÷QŸÊ©ÌmÅ& Áö 0 ž*Æ*½etgÐAðWø‡‚ÒƒÿLȃ|(Š,HT_®ÝÊQ.P%‘@ø4ägW*øŸxÁž™�¼É˜À…?¯› 0U´É^Ó©¼H ÓÁkC `žÞªpnÀvlÀMЯŠbå­âÁH-L@ ’ÕpCEÎa긦BYः0½p�«â¦ ÁùÕgWËŠšm°`0¨„_‡tH‡$øïÔ>e²_O< P“JV]à/,µ’Xuñr ±vk\ªîQŒÍø°[°ìSæ¶ÀA¢@7<Ê.Ë«†‹J‚PÔr:ô{\ÐQðÑP¼±Ò¿’™.”:@/!-vPéç$_R¿Ã˜êÕð‘;×´MÔ/kÞ(°I(€”)N)Ò±U03MðôñI&È —;CÚfyéÆÑV©à0`ð7ÀL�6 ×ÙIKQÐ¥0«Tí}¥ëYOÍEƒ0\Piu1íe.•ܨš¥é-Éa°Ñ¿Ý¢«Üç~ etŒ�~4í/åIy©{ô�}Î1ðK MG!0`(‚¥ƒ|5MïH;°6ˆ„ð.[á…,ÈŠ¼®“v#3ƒŽ!ÌvéÙ)r2BmÀ�Ô¨+hÑÂNªF 6>ËñÔ"J©£R—´Ê.#­µ®µžÛù´Ô¿ªÕ'4¥•=:.yíw &ºÃ T$dcÐ>Á¶qÐÆËIð?ˆÕhŒ [Ð /(‡¨Œ„È2¨…LÓÞç“P»´r_Ñ9×î!<»UPvé5P•à^go�Ò! ˆoœºÌ�n`Æð6}[]½¹Èp®‚u£ä!ž”PPMÍÅh‹þнê»$²i6öËè Öªt/0,©&Óç…?ˆ?…dðTp¨Uøƒ4ðr xÝ:€zH²¯Œ´>\£J ÀAŠÀyäÅA&‘q(… È·}*yyéX¡êFP©ò¹"È“ k@¿"c6 GÙn¾`ÐGeÛâ«u3¥Y,ÃY7°¹ ßVøŽç>W0QøË6 ÕÜËÔ§’ã^Et¯{²@-1c3’‹½m²†h°—x† ˜?8„(tÈÊd^g>ÎÂKìsÒØ Aª]h…nh 5è…–Èž#½+Ó<ti½Õìy§S!¥k!å'@7þÕaÒ !EKÂy` *Ð%´©Øáãl3°”u®"°Õ'0Éå¢-yQ…×…?þiµpŠ=û“L%W0yßW º²#{0¢¸ƒ}è†?¸ƒC?¨‡ôJ˜f`pÅ>c >zrè„ø‡Vèæ§†Vø‡èÿXÈŒ\ø·E¥;7#•7Z9„?IÀÜ~øMcÆ0ªà 2 Ãà£ÚÐ9tk0Öc°‡H9þoßÅ÷S{Ô ° 3ÍÕ„uÖpMÐ<·�#Gm0Y:�¦HÐô³m ‚èiU8„©�ƒ2HÔp3i¡~5@'†c"j&Eˆ?ÿœ`„„hƒøƒè€únh‚?h/�ð§C¿6Úõiñ'Y¶DôÒö‡ 6Àó‡;fÿ ˜Ñõ%rH#ð-280¢ô‡#RÿØ0¤Å…µ?Rø0ù§A?z”ûcD”?¦´ÉúcN‡œ?–t*0¥J´(iœþ¨Æè1,þh‹J…0æ¢dëq§W[‘@šþ” ¡ãO¶0¦þx²¢â/n\þqãÆé>ÜþqàÀî äþ‘#A292ÿÑ¡ñï~±(ËükѢƟVêW¬[£W³ÿÀZ·ªË°ö@ƒJ‘%Þ?Î(þ"„?5*ÿÌX1öO*9ÿg΢A5 #êYP"ô ãÜüYñ`@â6TþˆãAë,^ôþÈãûFï'JøóÛ'äá…†?´†IQM•EvþpAAþpG¡ÑGŒ?¢Cá4—6ÍL„Õ<2’xá3 Zh æ2ɇ#RŒ1Cß"K,…Zi¥&>کϺøè¦‘Úé¥ÅVúm§ƒAÚù§›:ù§—Qºù§‡ÑÔñ"þ¡…6'¤D)ÄøÇ7ìøG-T†Ë$h 4 :ø‡jˆdƒbþà,?ÏøCv(øC.–ø|BAC¸tô C¤4ÃiQ1EN=lÑV[ô‘.!8øƒ¡Fþ`ª V˜Å…ÖHáŒ\d£¢6 „àã[¬0àGŒÐˆ‹{þAn?ši¡š?+­¦…6«[¶šzš©ä¦¶:ì˜vAø£‹:øK—.þègœ^þédÈvlqÁ†?¨áJIøCEpÎŽüñÇì°ÆHAT‘àQxK‡Æ‚à…É+Da+ñâ|†W?E~ŸP)-�„‚ÔZ[ÔN!¸Š€W[ ÷êÜùƒ†@!‡RþƒÜC”¡33„ CÞHZVÔfåcäà_Õ¬-n®ù£ž&*Zj¥5«ø£–ÊøÇ,ø'@Üùà Sô„"…è-h¡*•®ø£—1zø§Ÿ‰ždº'Zm Gl¥’Úµ~C"kŒ±h¼pàŸH¢ñŠ4B ›?üðÂrL Bq<¯á ~Øå¹ID½àï&Ÿ`‚VÒ ‚Ò‚ €BÚþŠžKFðÀ—?Te>%D„ÝY¸av9Œ†Ù\8 ›X!³YK-§–FÊù§qŸøø>bˆ"ˆâ‰'”\qÄŠBoü#�þ2Ò‹”¥+u:Ø¡w$þ1‚iôãÍèDƒ&á*{°«ÿÌ”?˜ÀFüCbBƒ*´sØÒNð-ýüÁ î°R„‘ðgAâÏC ÀˆA|Žƒ˜D'&'"þpyPA ’þä¢ÈƒÔ³ Ð‚ TÀÂ?X|Â<�ƒÑ Ã}"ÐùÐ:š×"ªÑ€Rü¡M(Ó¡öm¦Uíà%(Avœl¤5t£‰î¨D>ÁtŽN]ÙOwÒE7þ0à0ü;BOAF1ƒü£Þæð‚<ñˆ@ÿ q¸‚Ëk ‡ üøƒ øÁ¾”iŽHZ8ALP€4‚Ü o‰ &[ 1"È¡0P‹Ï`#&äÀÎ)ø¬ ð)ØA]ðe ÿ™ç¤ÀNJAK ±!  ò§R£Rÿj4(õ§^³JÿšÂùÓªU-ZÔøÓ¢]]l]bëÑìO»>-þtÔî_·þõÕí_¯q=þ ˜Òëßiýþ˜1àߨYƒó‡P^t9´éЬ@¯29ò¤ýaÇŽÅb„ðü!EÇ*$°ýaFÑš–¸PÂôG}S’˜RąЕ>þHaiH/"4†ù£‹‰Æ„ÆQîãŸ%Tþ9’Aá bÿ$°Â÷O ÿîWú‡²Æ¿rŠý«Ò¨Ì¿Ú-þÆ×Õµû´ЪCý>Ý£'ö§C¿Vÿ©Ò¤Ë)K¶<¹òä+P¨H±ÆÍ‰ M¥?¼ØúãΊŠ?F±ù£Ž±¿pýÂð/Z-á„ ,þô‡?da‡À@ƒùÓ;(ôô ¤!ãO¡äi˜5Ä1HùÃy(ù‡pøGù7Ù|<P5ƒ�4¡å”Í -h¬°J ù£”z ù£‚Šø£Z(þ„¤Lš¨›ªS‹ÚRsTlºi’”^Zø§ƒçédˆi¥—‘º$ ˆáŸh1å7ŒçSä ãøôE^}ÑCÈ7tö Íù+þ:ð ‹-Œ?L‘ ÄCE~߆-¨²CÅ3þðCŠ*Ѐ†?\‘ƒœ¿Ø#Á¥Hp0›|cä5xÍǬã,/ij’{þãç2j)à?¡$£$;¨¡)9D¢!þÈ#Ÿ4þ(¢„lþhJƒ?ji¶•|rˆâŸ‚0ã/L‘à?XQƒËr´àŽ%ƒóƒ×rt€ˆ44Ux ô•?ÄaŸ?ô�—Úùà ¨ÆEjßa ϽžhäpøCÉ�dá4[¤«Æ•0ñGu´««3Œ0ÃŒo‚ÌÂ79sbÍxš²ÚZŠ©"¿¥øo¾E (#‹*©µ‘\ŠI1+´øÇ]¤ùG|ÑG<”`·µ]ùG .‹Ñ*À\ø†Bm@þQ°l[SÐ81Áå[¤BÅ«Fþf®Õ’‚ÞO|ªõ}èkFçüP¯ô õª¸¨f4'Æ=bþ+ÓrF }£p@!<‹/d 7éGqDÁ ìB9©G±@Òx›æî5þ^ãî×ß|û­w?xç£÷__ñ÷VüÒªÏ>æï›O~xï§Ïþö—ßûö«¦ÿ~å?ÿZ‘€������0�������0�������^���������������� ������� ����f������|������’��������������������*�������š���������R���������������/home/fatal/timer.tif�created with The GIMP������ù��£����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Icons/Jabber.png�����������������������������������������������������0000644�0001750�0001750�00000021014�12214432632�016154� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���gAMA��± üa���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� ’ù¥���tIMEÑ  .Î cå�� �IDATxœu»Ù’eYr¶–û>çÜ!"r¨¬Ê¬ªªç@‘"!B2™†WÊŒ†w½ê]Oü™~AŸ ÁLM¢h�)’M@èîB£ºº†"#âÆ½÷œ½Ýö‰,¾(ÂÒ"cºqÜ·ûr÷åkóþKüWd)ƒMChÜD+Û„ï,Æ’{É÷JßKܶQj Ù”ÁMŠÛH{9>1›ù0í†qW¦Íä>Ít1p‚£€À€ ØP(·€`@ @#Ð�ˆF@��@$„"� ¤ hJ1£Ë)¹œ«æS‹ãq©m©s†BDaŒ€0‡›R.™gš“0$ %è’\‰’É1ÒÒŠ™{)“ Ó` š‘n$ €à`2`°¸!°0 (€Xÿ¯nU JI0ATA e·‰îˆ&R�’PPU‚FÈ|02Ó-²r #4Cº‡ÌIs†<DWÂ)9O™ãñV$+i`6° ¥Œ…>ÜŒý­*��#ÀIÐàà^Ð$p`Lr€0¨ŸI¢� EBµ~º ïNŸX£ ¿‰+‚Š !‚�}1ÊæDD€Ca„CÈy¤)7ÒÒúé\¢G Dæ˜òòÉ`Å‹™æI'ÝТ�°F�À]yì܉ØBÕ/¹:€=œRMÀM DTwƒBCwtEv‰P$HQˆ°aÚ¨5(E¬aOªGB˜Qf,SN¸µ”´Hy&JVŒ‘œ�N4 t”Rfóâ ‘4Yzžó#Œ6‚ö/�\˜N죘Hšd�LR’Hˆ!B==z˜è! *82Š‚Ð@€@`Ú ˆÈÁQ"dä–鯄eʦÂg„LAË€G¨dú�·Á„©LYÊšHO "� $�S?¡5Ϲr«ž ›„6ëY’H¤”TB !9‰€¨ŽЇðWwpAPHPw’„Cˆ ¹c˜FEä”` x ¦`¨þ:TÊ"é­±h¬°L£Ã†1`NÒxö“§�{ø·FÁhêÀ˜EâF°’C…”`Djr@DwÈ〡­¶¯YÐÁ” \Èþú�„q2µf(=¤À2ƒDŠ„ÀY¤›‚Žd±´Êi³'¬¹;HíÁXæjxC“€Á IJÒÖ‰ð3¨§.� $)‘ݙŠ& ˆk‰\ÖzÅ€€”PWŒX�$:$‚fȺnXBÊH3„L¢eÊR2%M!Ï„ t€™^ iÅ�8ÍVÃ… ²‡þÈ‹P+ŽHP(@”((ÛöKh’¢#~Ê@@¤`…HŒê'€ÉEê)�ÁlEȵx¨Ñ?'%Ha{‘¶8áîi¦ôž‘`b ÿEгa¼dø8lÌÊè ÐÖÐï¨ÑÇ�¦�6&ƒFƒJªŠSA„YÜÛ=Už„ü*IK f‰žyÙB c±Áæ$ cDÿQ$W¯HÝáÙ# TQ’‘ š…CÊ Y žMÞ?‡"ƒl ÍL)Ët—ÑC6í&f™Š›–€[ù’ÀØúƒì ì\¸2`#çÄ™ÐR Ñ” ˜gÒ¦ÆÞÙ)@E2f(*Ø([ šà…`éåÕ… Ä+xPñ!ŠPñ®¿�I@É ( èîÌ€9ÀìÕƒ±%Ͳ»’)ÍA3ŠÜKœ4ƒyAùñak‡·°“tåy�íþºè| ï]÷ŽäÓo —{‡oHßõü—„\ˆæR½“æ[dÞ[–'©Í#Âd1½Ø>)¢ �‚÷V¨f@ö ’Pš L3¦Y6š,c‚-dŠ^ (E‹Ä0²R/¥7d0}|ˆ†�ঠ'°eÁýZÞ.Xêxl×ÚŸ_˯©Ók´÷'+Ûo,¤¨Êåë´Ã¯Ý£¡ŽùÐ^,1½g˜.¡²Y�DaKB)4!tãª{e˜VÖšAÐRýãÚaf$%g TÂ$™`q½8IãzêÖÇ F·AÜPÓ=QR²¸MË蘭írïÊËYw/¥óg~áOåÆ`Æ loéçÏ §Oœn±m Ù÷6vñ2ÿDùôcÉÆØl­#’‚eÇ%’=V@ìPu|÷fFõ9ã›·Œ$ĵ]6ÂhH/f趃×6ýÝ<Fxq`b3ÀIp·âŒ›–‰:½°2üp³¹xùþä80Clê¶kÚònCÃûÿÍ€¨ÀáËÅå< Ž9=Ë$šw Dƒ (‰=Ã}°žÝGkPñ`n Èt ™ÝkJPû/“fp3ýÁp~SzœÝ ¢”&’!SÈ&ƒÄ°bÖÎÜŽÉݰ®‘‘8µ…ªýpŸÉÁA»fí1^<.&œ'ù8sGˆ,¢ÅŠÛÅ{î )…ø& Öq;€>‡Bp-¸ªù2«Y „`")š™`n€;Ò f˜ã]¨ñáÏ C)gm1Õ‰ãá· ßþrƒý“À‹ÿÚ9MðaÂÅö *ï‘ñ\¶ÀùKàå_aºûzö#àÉßC·(¶ŸL *×0'-D7½21B¢¨N]#"`ëáwˆ ã»,È‘@jåÞuYëÐ%§² $|…oôv®W4R‚’4mÊ„F¤cBž€Óo‡Ÿó—@ž:Rûð'Ý{ç—Àý/ßþ;Ô_þ àå§j9À‡ Ð6¤;9ì A_ ôÞ]÷)3û åú`qïeÖÕDo0Â׌^!Ôz ™2}Ej'ÒL0Àkú͵œA/²ž›“—é=âÑ'`Ü’qàè°o¾l�°†÷€Gß⨎qûzô0ì¿Ì`¾[»ø9…t2FZ…>ezoű&ýTÖcÕúžïÀrýïF,I¤dFf–á4ºAåÃäÀ>·è!…’”H/"¯’ßuÚ"œ¿"|ÓŸå  õº4<v¿øSàêw¿„¦÷€òA+ýáL�* ¼€i `B¡àì™îktÖ¨CV x2!ChTÑAP™$H©;GËl[ÝÂÝÙɵ¤vJ@[ÇV¡.S >ã3Á 0=ï·yL¶[Ag�ÊãõãS`ûÝ^[0@¶|ƒÞcTI Çþ«^¨°uïªO©¡ Ò 5�}W'(”ÆŒ^ð2 ¢L)¹N«b¬™ÃÔÚ0”txFtPö�€}fLêüYANBB°½0ŒÀø`á@¹è§ÿPLhýkغüÍ ù7Àއú?XÔY ”èÙ{€$¿Á&¬ŒJ‰>!Ș ÈÈ “ÐÖ¤x@6²Ã¢e„"ŒËÒ‡ËqC‚&«× VgP@Å bY3vBÄö¼±òxýÛÄ7Ž€¯­Ú?dÙš¯"�JJö +ÌR±r$\A, 5>L‰Z§pG" +È¥A"“dÂØO¬ÏQÊL‘j‚"Af@k¢t(Œ¤(À¤%˜ŽL€Íú¤×YÿÁØàY)>•‡¯ïœ ¡ó!ÀÊa5¾ P Â:išý  ””(ðÈ’–Ñ SÁ4ÏP³LCBH“Rv–d¨…2¥N]‚BXéîæF1H+�½ç\˜òr 0FBN¤ ެ¾±´£ñÊ’¯‘ ‡þ$Õw ¹¦Jfïµ$ì èà"j6°i=õN«÷T�”*È&´– x¦1‘HRiD&™èNè„\DvÞP[5ÐZ)–@ùJKÈ‘•Ht6 ­s: ¾™úÜ5 —þ/NÝ0 °Ùذ«5K²;!*” Èxt+ø}ÂN�îœ$-ìSàƒÖª®TAý”GHCDEªó2A2iˆÌÎA ÃL5uZZ­(ӆ憔3š­@,F *‰¨D$‘`PA$a#à—DÙÜñ˜Üý%0Ø”GÂî»Àæã>ûç™hÔ»D&ÔšÐÎ+ƒyJüœÐIÐ=€™½þ·Î8#�[vV2ጒŒ0 Ú °„DéÎ0… ™-Uµ.s mw“àF32h½jv¨² 0“}©ÓzsTª!Zr脉Æ^ó(œÿ8}Ö«êö;ÀæE?4¥ �"©XuÚÔSÂfaœd N‚ ; Xœ8X:>tfÈ$*jfi9¢‰E€%¬dSZ™`&È$©¢TCVX̨µE«îÅK(“È`Kõä!2\z ÒBð^b%-6l ¬ ›“ß'6Ï…<Ûï »ow6HæUl‰6'ê9¡³ *Ä9Ñ`‹€Ù¡…â bÖŠA ˜‘ÈyÉ(¥0j!Mb“2È`G–t4(+¢UØ0g;çãfÜMfcoÃ49È^F¨Þ©Ô7Âù­Á&©¼ŒOÁGM&`÷az´ð €£UX·Àü¥z›ïB F€‹úRT«ñ!p±‚uÝ5† !“ІV+Z©j9x‹ÔàÈlV¼)ÕÄltk„566@5•¦gb9 ÞïڲͲÁZ€&f%gïµh+þÔ;âî/€ó-±\ùDºø9ùècâêibóAosçÐ>´�m!–uþŠ8ý’°æ¸ø€ØýŸD/õ XÃÁjïv‰J<tçŠeV´%jQ 3¼f„JDfÞ�6°×QMB#³J¹�1³”s,§lÞ´aKZƒg0CL ÒFcPòâÝ (�/Í�,¯‰‘öÀüðÛߟ;±{ì/vޝ€eZ£|Cì P„Í^à `1ÖÒ``³^î6È!™bF°-Ë\-5‰18ÑG@¥…e£[USuÃ"` UB( ³˜3ãD³»\îwí¼qcax$­,nELŠîDšÓŠC2qÿûÀö‘0<ü#ÀÞ‡–8ßôÖÑ èŠØ]¾£ÚŠX:`¶àâc`º0Œt Å«„%ÐçJÄLÏlQ—9[œÚYYO¥ ÉF"˜Í™J†˜Mé-¤–PX -@ŠEÌ‚Ô�´…VNQ÷¶ŒCóÑlØô”dPèNã*1€ €[`…íU?eLìþPCª Î}X!e[¢Þ�ǯ€ã§@»í Õ‹'D™ˆ±8üÌ;Ù‡bÝò”: ”©ÌÚó©Ve;åÒŽe¥²QYÒ3|ˆl +ª), ¤J*‹è„r0 äÔFšß¶óýiê;¨ÇÛD)nn¢ô—0›zζ ~!?ÆŸ¶Ên%— dIÄ=×@¼üUÿÞæ=`¸$†­c( ,ëRè?é WCʺ(æs$–ó‘÷ÆvX§Áõ½ ±DšYkÍèU¦%BE¦’ 1vNЙYÄ€6‚¸ãÛ H ˆF“[4d|ÍJ@p¸â1pø-0ÿ+¢¾Ž ¤sWË [b·¬çß Ï7ÀtE WÀt%øÐóÝV’ƒ­k9ú BIRX¶ºD£ÅýݪwP=¸Å]ƒ0«˜.F$à k.rÜû–Ø``&IQe°tD#‹Š{›ï îãÁÉ Ùµ hjôlô@e–,0 ›3p÷…°¼$Noù,•RÊØì€«K`·ʈnüc`س·Õ"¬÷÷©LõIÑ”¡lm‰å\ÛrwX§·Èå`Vï ËÝ;>`Ä ½ÃeSa-A›%# Y2 c’f´LI÷q²¶œMçWO€6)›0F°¹S¨¹f6 nÂFD,kßŒÕ €¡§rœ{@Oì$Hq`zŸ/³µ­íý½¨èì•J´¦Œ¦Xæˆåîn¡o ùXî`óVïƯžÎT"Ý¢±š!Í$m%ÔŒLÒBZl¤H"ˆ\P†±ÌX×Qç)/æd¸!ËŽÁt 4+àðHØ`r ~%à Ø¦ÏŠ>õñ`¼¼öý ; ú@B5T˜2ÆLª.5ëùíøf!n_+N·Äù–v¾3.÷æË©,ËÊY„Z+ÙäI‹ÖwJ$݈azGK“X‰u“ÝGw£­Ïw—C‹ %mÓ° {7·!Ò]™-6X1;´]5  – ʈÎã}Ô—<¾ô~F(!d²Z3ê<g=3î_Îæ÷_Kç[âtK;ß’Ë6…e.Ãбº6JYÈ(¼¯öÒ–‘¥G"@w $™+?ÙíCIѬÔy>d»Î}nŒ‘9 ÈT`ÜP)ÓKÙ‘rC;õLÆ5p<�ã®Ë í²wðžÀ4e¿A6aV«gÕP€u>a™çŒ»Ûhõú0ŒËËlçóóù|0›àr‚×3­.#´ÔE々Úz;]SdbÝ Y§†(š`d'š¥‹S�˜K`[›n4“ZЖÓéþq´aÓ‚¨AN•Y7æe÷ɲÐ|Ø¡ Áù+ððÄé 0\�ÛgÀþûÐð %ˆ‰ÚZ²Ö&EÅr¶yV=Þç|¸ /÷o½ÔWóMñåšP=�ˉÖÎd‰¨=:u‘K%ItmX'$JBKgÝ´Oô•å7   !Rh™YÍÊRÜ–åxsóiÊÓiÈ›]i—|¼¸t³A­ÜªŒ—7—ðÍw`íVÆB–=¸ÿ¾rÿ#dy¯“Øš‘8b™oUO÷¹œæœÏgÔ»³ÍÇÉy6y1ßÐêµq¾Û­{½·ÒNæíL‹l ™µŒÃ’�8WØT !VõHHnE)ºrå(± ë{èk/ªÕ”Lˆ´æiµ1€ÕJœÚé8µÛ·»BßMÃvS=öáòq›ö,·åòF><FÙ|‚²ÿD6\�å=È.jT6D;£Íwq>¼mwׯótsÔ|¾k¦,¬eˆS]âf(õ-¼¾å·°vkG0Ï,qÚR\s(Zß ,ÀHdçb¨ŒZW\FHáH·®—•¡B4�CöA³ ”Ò‚CÀfCV¥ª‚M‘g¶ a©çSµãµÊòui§§%?.}¢MƒÀ©lÙã»ÎšeÓr< Î÷8¿¹ŽåøFËrhsœ—‡³i¥³‡Éò–7æyã%îq,%O^âLÆ,ÖÅ-g(Z‘ ް9,ÔR« oj‹ ¦uÅaë.É<”áR È’2! $"¤f®fÆfŽM´˜aÜÎTk¡aÇÝå#Nï=ãæâŠ6ì!ßÓ† Ù€Lv:‚;HGš#mÊ£"›6Ërw_—ûÃi>^ÊÇ2àP€# sœJÑ–Gzžày’i†ÅLYË@ÔõêÕYÊ…ÀqµªPÙR«’ASé4¢Á<@¥R2¦ÒSR–A!)(ÖfZXPU¹šR¨ð»sÎ!;û{ů6;nö á²}!3S")ÁBÃxUäKª !íÛz~ûò®¶Zãt¼_Ç·t{]†Ç2bFž9h.¼èì–gó6‹±ÛÜ ¦º:· ¦Eã~ÔrJ0 6bØÚlt[Å`iJ5ŠR]dC"Œa@,U ÁT@æÙZGŽX’å«[»¸Û”Íxž†Ç lÄPÜ÷NÛ¬úØÞä”ä -•ˆJ¶ŒXŽóùÄÛ»S¾½¾¾}ïi~¹ÙðÍ8éTF´aâ2Žš‡Îƒk¦i1k³yÎb[Œ±HQK+J$¶çU:@óF.À0vémV벬Û/®¼³4!÷’PF Ѥ0y5Sƒ)ÍÙ.>pÌÀr?‡}ùÆž×XB§Ø<=¡ì—v1£íœVÜtä)¥ 2“È·wYçVOË_~Uÿæo>¿øå¯~³¼ysó­…oð‰ßî/‡Óf‹FT5—¢3‹–2æbŒ%Õ‹,ª[­PfÑ„x§%$È ˆÀ‰ ±GŒX©¢¬´~óU Õå¼[²YJL&#S]uš¬Q *误cÿïOç÷¿üâõîæürº>ŒãïÞ!ôãa¹|ÿýý0ì¨å‹3Úí‚ñÉeÃ)î_}uxóæÕòÕW¯âgþÙæöîm;ÞÖ»ññß»úëß¾yþõͯnÿÑ6¾ÿ½Í©L>h1ÏÙÍBkb6ó¨ÊV•µ5fseåJaOžû"s¼\#‚]'¼h 0jT-õ,Ž�Z0ʲ‰á°4X˜±-Éf@¡±•1 ÉRã¿ýËxñ«/ßÿá?¸xñþ?}s3íÿú×SüÉÓ¿øÎçüß?ùyûö>õçÿ¸^ýÛó2¿-›«ß¯_½Š›×Ÿ=þáWuóF⦡lßqxñmúÏÿËóoþîoâÏþÝëëÓéë›ý¥¾þä;›j®Š¢™–Q¼µ¦šÈln-¤lÈŒâ™ÙUE4„{ jב3lÖmd]$Q¼A$¼�Œ¦&Ê‚ÉlaAe#¬˜T™ ¯¯cü»¯¶ï=Ú}ôÞ¾~»ù½_}±®ßŽCÀúé×øßê”uú;åŸÉ·¯sY—sî¯îýÉ0 ?Z´y|˜ùßg<G/ßîñì;zý{ÿ°¼xñíápóÕ›¿ù«?úúo?[ÚÇo ˜l­ú!.ò)ÏPfB™*PCÉM—_ãØç}LÎ0܃ܚða–†I#A#ªÕõ OA™RhL2¢ÑŠ0sÃE¥(—»6ç¶Ù={ôhÜþú +7wžo�vç3þÇÿðs<úoÿ{Ο`sûƒWøî/ïöýö+äo‹¼?€Ô`oo¶þç–÷§sE¹ÚŽe÷õëh§ÙN>©ƒ–ÊÙJ„`‘²¦A@¦2(9 î(A‚¡“gÃ=¤b„0ÃæÓŒÍfJEÖQ“7±0–&g a0Ïh‚»Y2åî —Ó Ø››¸Zª»•Ç%쬮×�„}ý5~ò¿ü¯˜Ÿ>Å?> w^¿ÆÎ šgh½ ƒÍDû§¸1+ÍËtÞ_=œöÑw‡·ãy±óv©©ñœÞZ+CHªY’a  ¤$/èÚ)qbĦ ÉŒ«¤�„¦K¤æÙH`,ýNË\é“+™ Š*d†Ñ,‹Ñ¼xC´òe«íöîxhwVòdƒ.±@)H4�·××8žÏø¼V\µ†ËuÅù@ñqݔߋÈóÂåía·™öíÉ“ vu3G%p‰&µ¥jª’UI&Õ*‚ì;:fQP¢@HI·}™ šú=4²Kìq¿J1væÙÈ)ÇXBl>Ñh²‘ XmÁÆ’žô0ƒÉ”9ϱyýêÕÝòò¯–~õ9.Ï3¦U·è~6ŽøÚ/?Æ/æÛÃß%‘󌟚á Â,à­„¹Æ?ùרýOÍiåòx?Ó 7ï?Å›RbŽ6›´yNÙC®÷%� dÑ…ºôåZÄ#ÀŽ ¶ŽßèÖ�¦Îe"!ŒHa&G3,¶!x^`#Éh².IA;TOuÖq9í_éû›ïÌøy&~Ö÷¶øt¿Ç³ŸþT÷/^àm–Öpøîw1üóÎáË/ñètÂ{óŒ=GÅnÏûó¢›ëþôGË›×ûož¿ß¾h-#¬F²æ’JhPM¤¤�ìém%…$E]vúG)ðÀ%¤ûu›¤õóH‚êzQâÔ{6úL íÍK¢…Y—$ ?ùd¼y¾½ýE\ŸîÿŸÏÿ!‰Ï§I?¿¼ÌùG?Ìgðzµ¿Èg/^p—ÉÃñh·µ¢ýáêúóÏõÁÏ~fßþÛ¿õgî¸Ùnqxö,w¿þ5~óúUüñÿ_íù³ãzé[YŠšÅæ,…P@p%R‚ b •hºþ“4íÖ›f)ã® åqè-€«w¸ ±ƒ# âÃ~M•è¸ØBiè;W‚hôÉüÖÆ»_L8á\þtyüàƒÓ¼ßé;?ýŸv;ÏŒxþá l·;swÐ矮ûÏuó½Orù³?_¿z5”a4ÿéOòâéSwwú'ÿ䏸ì×ÿáúÙñßüà{z¹Ô©6#K7ôá¾€$a a&01ʲ J¹Ã‚ 7¸Dá–ùîöªºZ#!¸Õ£¼1!«fk�TÀa•]…'@#‘øôós¹^ÞÿäÉ·/^œ—š_ÓýÕï׿ÇívW¾õíoÙ</1M“~øÃ”««G ¥~ç§?ÁgŸý&?ýôSÄw¾{¶óÙ§aÆçàÃ?âOïwÿøÿ<ýðõ›Ï>J-/cYÔ‚‘BhBö+vH‰# M'7Ê2¯ZÈ„Ì;4òVÌ+KÚƒà}áz êQwⶃóªRЬI#¹(ÀeÜð§?Ÿ.çpyq¹/^ôôƒ–ç~4KÊgÏž-ã8•ýþ‚/^¼�@ÝßßñùÏuqq¡?þßÿþ÷t}}­Z^^\n../§ÛÛs÷ü/~ÿ÷õþÿábÛF+¯29‡Û¶fÜåý=r»…p`aZùT@åþ¸’<z3 r3¤é „dž•¦¢Ô›ÿ=ÄÛ'ãñ/‘7©L#=y¯ºÛ½HM»­.¯®´ßmëy^N”î£��}IDATÛí¶¹»ž>}ª'OžØñxÏ'OÇ0NI¥x|ôчüè£y:Ÿs™çâ^ÆÓùžÇã!ß\¿·›ñ‹««Í[a—“ŸêR‡VÚÅ®“¹ÚôÙ7/‘ëáuYÖý¹ß­2ï´†,ÀÀ~‹J.µ*ÍÖ|¿|g6„o"€w�Fiˆì· )™%^|øëkâûÇq¶ìx<ÉK™[kÚn·­ÖºÜÜ\GfÖ·oßOž<]þòW¿Ðüc ’¹™)ÃæyñÍ4E¦¦·×¯·Ó”öÉ·Ç—¥X4*KYšÊìš²�<ôºZ¯sâÿÏ �0 ðn\vÉ£:ð)©£yÛ[ Õ1À^‰¤i¬  +!ZÔeùëywàÏ>øàƒ —e‰ÉXïîî–Ï>ûìüìÙ³åóÏ=H´ý~'@u¿¿°—¯^j¿ß-ÅK13lã4Y‹êÿúÿý¿wò§ÿ2—ù«ùîÃÏuÀ$´ËíÑú¼Û¯’®‡kÔþGM>—ô+]µt����IEND®B`‚��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu.es������������������������������������������������������������0000644�0001750�0001750�00000011304�12214432632�015040� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������("Aplicaciones", ("Informacion", ("Panel de Informacion", INFO_PANEL), ("Legal", LEGAL_PANEL), ("Consola", EXEC, "xconsole"), ("Carga del Sistema", SHEXEC, "xosview || xload"), ("Lista de Procesos", EXEC, "xterm -e top"), ("Paginas del Manual", EXEC, "xman") ), ("Ejecutar...", SHEXEC, "%a(Run,Type command to run:)"), ("XTerm", EXEC, "xterm -sb"), ("Rxvt", EXEC, "rxvt -bg black -fg white -fn fixed"), ("Espacio de Trabajo", WORKSPACE_MENU), ("Aplicaciones", ("Graficas", ("Gimp", SHEXEC, "gimp >/dev/null"), ("XV", EXEC, "xv"), ("XPaint", EXEC, "xpaint"), ("XFig", EXEC, "xfig") ), ("Explorador de Archivos", EXEC, "xfm"), ("OffiX", EXEC, "files"), ("LyX", EXEC, "lyx"), ("Netscape", EXEC, "netscape"), ("Ghostview", EXEC, "ghostview %a(Escribe el archivo que desees ver:)"), ("Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(Escribe el archivo PDF que desees ver:)"), ("TkDesk", EXEC, "tkdesk") ), ("Editores", ("XFte", EXEC, "xfte"), ("XEmacs", SHEXEC, "xemacs || emacs"), ("XJed", EXEC, "xjed"), ("NEdit", EXEC, "nedit"), ("Xedit", EXEC, "xedit"), ("VI", EXEC, "xterm -e vi") ), ("Varios", ("Xmcd", SHEXEC, "xmcd 2> /dev/null"), ("Xplaycd", EXEC, "xplaycd"), ("Xmixer", EXEC, "xmixer") ), ("Utilidadess", ("Calculadora", EXEC, "xcalc"), ("Propiedades de las ventanas", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -"), ("Seleccionar fuente", EXEC, "xfontsel"), ("Emulador de terminal", EXEC, "xminicom"), ("Usar la lupa", EXEC, "xmag"), ("Mapa de colores", EXEC, "xcmap"), ("XKill", EXEC, "xkill"), ("ASClock", EXEC, "asclock -shape"), ("Portapapeles", EXEC, "xclipboard") ), ("Seleccion", ("Copiar", SHEXEC, "echo '%s' | wxcopy"), ("Enviar por correo", EXEC, "xterm -name mail -T Pine -e pine %s"), ("Navegar", EXEC, "netscape %s"), ("Buscar en el manual", EXEC, "MANUAL_SEARCH(%s)") ), ("Escritorio", ("Esconder otros", HIDE_OTHERS), ("Mostrar todos", SHOW_ALL), ("Arreglar iconos", ARRANGE_ICONS), ("Refrescar", REFRESH), ("Protector de pantalla", EXEC, "xlock -allowroot -usefirst"), ("Guardar sesion", SAVE_SESSION), ("Borrar sesion", CLEAR_SESSION) ), ("Apariencia", ("Temas", OPEN_MENU, "-noext /usr/local/share/WindowMaker/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("Estilos", OPEN_MENU, "-noext /usr/local/share/WindowMaker/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("Grupos de iconos", OPEN_MENU, "-noext /usr/local/share/WindowMaker/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("Papel Tapiz", ("Solido", ("Negro", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("Azul", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"), ("Aquamarina", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'"), ("Purpura", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("Trigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("Gris Obscuro", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("Vino", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ), ("Gradientes", ("Puesta de sol", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("Cielo", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Sombras azules", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("Sombras indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("Sombras purpuras", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("Sombras trigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("Sombras grises", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Sombras vino", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), ("Imagenes", OPEN_MENU, "-noext /usr/local/share/WindowMaker/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), ("Guardar tema", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\""), ("Guardar iconos", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\""), ("Preferencias", EXEC, "/usr/local/GNUstep/Applications/WPrefs.app/WPrefs") ), ("Salir", ("Reiniciar", RESTART), ("Empezar BlackBox", RESTART, blackbox), ("Empezar kwm", RESTART, kwm), ("Empezar IceWM", RESTART, icewm), ("Salir", EXIT) ) ) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.hr��������������������������������������������������������������0000644�0001750�0001750�00000016237�12214432632�014520� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Text below is Croatian ISO-8859-2 * Postavke glavnog izbornika za WindowMaker * * Sintaksa: * * <Naslov> <Naredba> <Parametri> * * <Title> is any string to be used as title. Must be enclosed with " if it * has spaces * * <Command> one of the valid commands: * MENU - starts (sub)menu definition * OPEN_MENU - opens a menu from a file, pipe or directory(ies) contents * and eventually precede each with a command. * END - end (sub)menu definition * WORKSPACE_MENU - adds a submenu for workspace operations * EXEC <program> - executes an external program * SHEXEC <command> - executes a shell command (like gimp > /dev/null) * EXIT - exits the window manager * RESTART [<window manager>] - restarts WindowMaker or start another * window manager * REFRESH - refreshes the desktop * ARRANGE_ICONS - rearranges the icons on the workspace * SHUTDOWN - kills all clients (and close the X window session) * SHOW_ALL - unhides all windows on workspace * HIDE_OTHERS - hides all windows on the workspace, except the * focused one (or the last one that received focus) * SAVE_SESSION - saves the current state of the desktop, which include * all running applications, all their hints (geometry, * position on screen, workspace they live on, the dock * or clip from where they were launched, and * if minimized, shaded or hidden. Also saves the current * workspace the user is on. All will be restored on every * start of windowmaker until another SAVE_SESSION or * CLEAR_SESSION is used. If SaveSessionOnExit = Yes; in * WindowMaker domain file, then saving is automatically * done on every windowmaker exit, overwriting any * SAVE_SESSION or CLEAR_SESSION (see below). * CLEAR_SESSION - clears any previous saved session. This will not have * any effect if SaveSessionOnExit is True. * * OPEN_MENU syntax: * 1. File menu handling. * // opens file.menu which must contain a valid menu file and inserts * // it in current position * OPEN_MENU file.menu * 2. Pipe menu handling. * // opens command and uses it's stdout to construct menu. * // Command's output must be a valid menu description. * // The space between '|' and command itself is optional. * OPEN_MENU | command * 3. Directory handling. * // Opens one or more directories and construct a menu with all * // the subdirectories and executable files in them sorted * // alphabetically. * OPEN_MENU /some/dir [/some/other/dir ...] * 4. Directory handling with command. * // Opens one or more directories and construct menu with all * // subdirectories and readable files in them sorted alphabetically, * // preceding each of them with command. * OPEN_MENU /some/dir [/some/other/dir ...] WITH command -options * * * <Parameters> is the program to execute. * * ** Options for command line in EXEC: * %s - substitute with current selection * %a(message) - opens a input box with the message and do substitution with * what you typed * %w - substitute with XID for the current focused window * * You can override special characters (as % and ") with the \ character: * ex: xterm -T "\"Hello World\"" * * You can also use character escapes, like \n * * Each MENU statement must have one mathching END statement at the end. * * Example: * * "Test" MENU * "XTerm" EXEC xterm * // 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 $HOME/bin/X11 * // set some background images * "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 */ #include "wmmacros" "Programi" MENU "Informacije" MENU "Info Panel..." INFO_PANEL "Legal..." LEGAL_PANEL "Sistemska konzola" EXEC xconsole "Opterećenje sistema" SHEXEC xosview || xload "Lista procesa" EXEC xterm -e top "PretraživaÄ manuala" EXEC xman "Informacije" END "XTerm u boji" EXEC nxterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "Xisp" EXEX xisp "Radni prostori" WORKSPACE_MENU "Programi" MENU "Grafika" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Grafika" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(Enter file to view) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Enter PDF to view) "TkDesk" EXEC tkdesk "Programi" END "Editori" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Editori" END "Razno" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Razno" END "Pomoćni programi" MENU "Kalkulator" EXEC xcalc "Informacije o prozoru" SHEXEC xprop | xmessage -center -title 'xprop' -file - "BiraÄ fontova" EXEC xfontsel "Emulator Terminala" EXEC xminicom "Povećalo" EXEC xmag "Colormap" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock -shape "Clipboard" EXEC xclipboard "Pomoćni programi" END "Odabir" MENU "Kopiraj" SHEXEC echo '%s' | wxcopy "PoÅ¡alji e-poÅ¡tu" EXEC xterm -name mail -T "Pine" -e pine %s "Otvori web-stranicu" EXEC netscape %s "Potraži u manualu" SHEXEC MANUAL_SEARCH(%s) "Odabir" END "Radni prostor" MENU "Sakrij ostale" HIDE_OTHERS "Pokaži sve" SHOW_ALL "Pospremi ikone" ARRANGE_ICONS "Osvježi" REFRESH "ZakljuÄaj" EXEC xlock -allowroot -usefirst "Snimi session" SAVE_SESSION "ObriÅ¡i snimljeni session" CLEAR_SESSION "Radni prostor" END "Izgled" MENU "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)' "Plava" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Tamno plava" WS_BACK '(solid, "#224477")' "LjubiÄasta" WS_BACK '(solid, "#554466")' "Krem" WS_BACK '(solid, "wheat4")' "Tamno siva" WS_BACK '(solid, "#333340")' "Vinska" WS_BACK '(solid, "#400020")' "Boja" END "Preljev" MENU "Zastava" WS_BACK '(mdgradient, green, red, white, green)' "Nebo" WS_BACK '(vgradient, blue4, white)' "Preljev" END "Slike" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Pozadina" END "Snimi temu" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Snimi set ikona" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Izgled" END "Izlaz" MENU "Ponovo startaj" RESTART "Startaj AfterStep" RESTART afterstep "Izlaz" EXIT "Izlaz iz sessiona..." SHUTDOWN "Izlaz" END "Programi" END �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.el��������������������������������������������������������������0000644�0001750�0001750�00000033012�12214432632�014475� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Το ΜητÏικό Î¼ÎµÎ½Î¿Ï Ï„Î¿Ï… Window Maker * * Η σÏνταξη είναι: * * <Title> [SHORTCUT <Shortcut>] <Command> <Parameters> * * <Title> είναι η ονομασία του Ï€ÏογÏάμματος ή εντολής. Αν είναι πεÏισσότεÏες * από μία λέξεις Ï€Ïέπει να εμπεÏιέχονται Î¼ÎµÏ„Î±Î¾Ï ÎµÎ¹ÏƒÎ±Î³Ï‰Î³Î¹ÎºÏŽÎ½ Ï€.χ: * "Το ΠÏόγÏαμμα" * * SHORTCUT είναι ο συνδυασμός πλήκτÏων για το συγκεκÏιμένο Ï€ÏόγÏαμμα Ï€.χ: * "Meta+1". Άλλα παÏαδείγματα θα δείτε στο αχÏείο: * $HOME/GNUstep/Defaults/WindowMaker * * Δεν μποÏεί να δηλωθεί ένα shortcut για MENU και για OPEN_MENU εντολή. * * <Command> μία από τις εντολές: * MENU - το σημείο που ξεκινά ένα Ï…Ï€Î¿Î¼ÎµÎ½Î¿Ï * END - το σημείο που τελειώνει ένα Ï…Ï€Î¿Î¼ÎµÎ½Î¿Ï * OPEN_MENU - ανοίγει ένα Î¼ÎµÎ½Î¿Ï Î±Ï€ÏŒ ένα αÏχείο, pipe ή τα πεÏιεχόμενα ενός * καταλόγου(ων) και αντιστοιχεί μια εντολή στο καθένα. * WORKSPACE_MENU - Ï€Ïοσθέτει το Ï…Ï€Î¿Î¼ÎµÎ½Î¿Ï Î³Î¹Î± τη διαχείÏηση των Επιφανειών. * Μόνο ένα workspace_menu επιτÏέπεται. * EXEC <program> - εκτέλεση Ï€ÏογÏάμματος * SHEXEC <command> - εκτέλεση εντολής κέλυφους (όπως gimp > /dev/null) * EXIT - έξοδος από τον ΔιαχειÏιστή ΠαÏαθÏÏων * RESTART [<window manager>] - επανεκκινεί τον Window Maker ή ξεκινάει * ένας άλλος window manager * REFRESH - ανανεώνει την Ï€Ïοβολή της Επιφάνειας στην οθόνη * ARRANGE_ICONS - τακτοποίηση των εικονιδίων στην Επιφάνεια * SHUTDOWN - τεÏματίζει βίαια όλους τους clients * (και τεÏματίζει το X window session) * SHOW_ALL - εμφανίζει όλα τα "κÏυμμένα" παÏάθυÏα στην Επιφάνεια * HIDE_OTHERS - "κÏÏβει" όλα τα παÏάθυÏα στην Επιφάνεια, εκτός από * αυτό που είναι "ενεÏγό" (ή το τελευταίο που ήταν "ενεÏγό") * SAVE_SESSION - αποθηκεÏει την εκάστοτε "κατάσταση" της Επιφάνειας, το * οποίο σημαίνει, όλα τα Ï€ÏογÏάμματα που εκτελοÏνται εκείνη τη * στιγμή με όλες τους τις ιδιότητες (γεωμετÏία, θέση στην * οθόνη, επιφάνεια εÏγασίας στην οποία έχουν εκτελεστεί, Dock ή * Clip από όπου εκτελέστηκαν, αν είναι ελαχιστοποιημένα, * αναδιπλωμένα ή κÏυμμένα). Επίσης αποθηκεÏει σε πια Επιφάνεια * εÏγασίας ήταν ο χÏήστης την τελευταία φοÏά. Όλες οι * θα ανακληθοÏν την επόμενη φοÏά που ο χÏήστης * εκκινήσει τον Window Maker μέχÏι η εντολή SAVE_SESSION ή * CLEAR_SESSION χÏησιμοποιηθοÏν. Αν στο αÏχείο Window Maker του * καταλόγου "$HOME/GNUstep/Defaults/" υπάÏχει η εντολή: * "SaveSessionOnExit = Yes;", τότε όλα τα παÏαπάνω γίνονται * αυτόματα με κάθε έξοδο του χÏήστη από τον Window Maker, * ακυÏώνοντας ουσιαστικά κάθε Ï€ÏοηγοÏμενη χÏήση τως εντολών * SAVE_SESSION ή CLEAR_SESSION (βλέπε παÏακάτω). * CLEAR_SESSION - σβήνει όλες τις πληÏοφοÏίες που έχουν αποθηκευθεί * σÏμφωνα με τα παÏαπάνω. Δεν θα έχει όμως κανένα αποτέλεσμα * αν η εντολή SaveSessionOnExit=Yes. * INFO - ΠληÏοφοÏίες σχετικά με τον Window Maker * * OPEN_MENU σÏνταξη: * 1. ΧειÏισμός ενός αÏχείου-μενοÏ. * // ανοίγει το "αÏχείο.μενοÏ" το οποίο πεÏιέχει ένα έγκυÏο αÏχείο-Î¼ÎµÎ½Î¿Ï * // καιτο εισάγει στην εκάστοτε θέση * OPEN_MENU αÏχείο.Î¼ÎµÎ½Î¿Ï * 2. ΧειÏισμός ενός Pipe μενοÏ. * // Ï„Ïέχει μια εντολή και χÏησιμοποιεί την stdout αυτής για την κατασκευή * // του μενοÏ. Το αποτέλεσμα της εντολής Ï€Ïέπει να έχει έγκυÏη σÏνταξη * // για χÏήση ως μενοÏ. Το κενό διάστημα Î¼ÎµÏ„Î±Î¾Ï "|" και "εντολής" είναι * // Ï€ÏοεÏαιτικό. * OPEN_MENU | εντολή * 3. ΧειÏισμός ενός καταλόγου. * // Ανοίγει έναν ή πεÏισσότεÏους καταλόγους και κατασκευάζει ένα Î¼ÎµÎ½Î¿Ï Î¼Îµ * // όλους τους υποκαταλόγους και τα εκτελέσιμα αÏχεία σε αυτοÏÏ‚ * // κατανεμημένα αλφαβητικά. * OPEN_MENU /κάποιος/κατάλογος [/κάποιος/άλλος/κατάλογος ...] * 4. ΧειÏισμός ενός καταλόγου με κάποια εντολή. * // Ανοίγει έναν ή πεÏισσότεÏους καταλόγους και κατασκευάζει ένα Î¼ÎµÎ½Î¿Ï Î¼Îµ * // όλους τους υποκαταλόγους και τα αναγνώσιμα αÏχεία σε αυτοÏÏ‚ * // κατανεμημένα αλφαβητικά, τα οποία μποÏοÏν να εκτελεστοÏν με μία * // εντολή. * OPEN_MENU /κάποιος/κατάλογος [/κάποιος/άλλος/κατάλογος ...] WITH εντολή -παÏάμετÏοι * ΠαÏάμετÏοι: * -noext αφαιÏεί ότι βÏίσκεται μετά την τελευταία τελεία του * ονόματος του αÏχείου. * * <Parameters> είναι το Ï€ÏόγÏαμμα Ï€Ïος εκτέλεση. * * ** ΠαÏάμετÏοι για την εντολή EXEC: * %s - Αντικατάσταση με την εκάστοτε επιλογή. * %a(τίτλος[,Ï€ÏοτÏοπή]) - Ανοίγει ένα παÏάθυÏο εισαγωγής δεδομένων με τον * Ï€ÏοκαθοÏισμένο τίτλο και την Ï€ÏοεÏαιτική Ï€ÏοτÏοπή * και αντικαθιστά με αυτό που πληκτÏολογήθηκε. * %w - Αντικατάσταση με την XID του εκάστοτε ενεÏÎ³Î¿Ï Ï€Î±ÏαθÏÏου * %W - Αντικατάσταση με τον αÏιθμό της εκάστοτε Επιφάνειας * * ΜποÏοÏν να εισαχθοÏν ειδικοί χαÏακτήÏες (όπως % ή ") με τον χαÏακτήÏα \: * Ï€.χ.: xterm -T "\"ΚαλημέÏα Σου\"" * * ΜποÏοÏν επίσης να εισαχθοÏν χαÏακτήÏες διαφυγής (character escapes), όπως \n * * Κάθε εντολή MENU Ï€Ïέπει να έχει μια αντίστοιχη END στο τέλος του μενοÏ. * * ΠαÏάδειγμα: * * "Δοκιμαστικό" MENU * "XTerm" EXEC xterm * // 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 $HOME/bin/X11 * // set some background images * "ΠαÏασκήνιο" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // inserts the style.menu in this entry * "Στυλ" OPEN_MENU style.menu * "Δοκιμαστικό" END */ #include "wmmacros" "ΜενοÏ" MENU "ΠληÏοφοÏίες" MENU "Σχετικά..." INFO_PANEL "Îομικά..." LEGAL_PANEL "Κονσόλα Συστήματος" EXEC xconsole "ΕÏγασία Συστήματος" SHEXEC xosview || xload "Λίστα ΕÏγασιών" EXEC xterm -e top "Βοήθεια" EXEC xman "ΠληÏοφοÏίες" END "Εκτέλεση..." SHEXEC %a(Εκτέλεση,ΓÏάψε την εντολή Ï€Ïος εκτέλεση:) "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn grfixed "Επιφάνειες" WORKSPACE_MENU "ΠÏογÏάμματα" MENU "ΓÏαφικά" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "ΓÏαφικά" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(ΑÏχείο Ï€Ïος ανάγνωση) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobar,ΓÏάψε το PDF Ï€Ïος Ï€Ïοβολή) "TkDesk" EXEC tkdesk "ΠÏογÏάμματα" END "ΚειμενογÏάφοι" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "ΚειμενογÏάφοι" END "ΔιάφοÏα" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "ΔιάφοÏα" END "ΕÏγαλεία" MENU "ΑÏιθμομηχανή" EXEC xcalc "Ιδιότητες ΠαÏαθÏÏου" SHEXEC xprop | xmessage -center -title 'Ιδιότητες ΠαÏαθÏÏου' -file - "Επιλογή ΓÏαμματοσειÏάς" EXEC xfontsel "Εξομοιωτής ΤεÏματικοÏ" EXEC xminicom "Μεγέθυνση" EXEC xmag "ΧάÏτης ΧÏωμάτων" EXEC xcmap "Θανάτωση ΠαÏαθÏÏου" EXEC xkill "Ρολόι" EXEC asclock -shape "ΠÏόχειÏο" EXEC xclipboard "ΕÏγαλεία" END "Επιλογή" MENU "ΑντιγÏαφή" SHEXEC echo '%s' | wxcopy "ΤαχυδÏόμηση ΠÏος" EXEC xterm -name mail -T "Pine" -e pine %s "ΕξεÏεÏνηση στο διαδίκτυο" EXEC netscape %s "Αναζήτηση Βοήθειας" EXEC MANUAL_SEARCH(%s) "Επιλογή" END "Επιφάνεια" MENU "ΑπόκÏυψη των Άλλων" HIDE_OTHERS "Εμφάνιση Όλων" SHOW_ALL "Τακτοποίηση Εικονιδίων" ARRANGE_ICONS "Ανανέωση ΠÏοβολής" REFRESH "Κλείδωμα" EXEC xlock -allowroot -usefirst "Σώσιμο Session" SAVE_SESSION "ΔιαγÏαφή σωσμένου Session" CLEAR_SESSION "Επιφάνεια" END "Εμφάνιση" MENU "Θέματα" 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)' "Μπλε" WS_BACK '(solid, "#505075")' "Λουλακί" WS_BACK '(solid, "#243e6c")' "ΣκοÏÏο Μπλε" WS_BACK '(solid, "#224477")' "Βυσσινί" WS_BACK '(solid, "#554466")' "ΣταÏένιο" WS_BACK '(solid, "wheat4")' "ΣκοÏÏο ΓκÏι" WS_BACK '(solid, "#333340")' "Κοκκινωπό" WS_BACK '(solid, "#400020")' "ΜονόχÏωμο" END "Διαβαθμισμένο" MENU "Ηλιοβασίλεμα" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)' "ΟυÏανός" WS_BACK '(vgradient, blue4, white)' "Μπλε ΑποχÏώσεις" WS_BACK '(vgradient, "#7080a5", "#101020")' "Λουλακί ΑποχÏώσεις" WS_BACK '(vgradient, "#746ebc", "#242e4c")' "Βυσσινί ΑποχÏώσεις" WS_BACK '(vgradient, "#654c66", "#151426")' "ΣταÏένιες ΑποχÏώσεις" WS_BACK '(vgradient, "#a09060", "#302010")' "ΓκÏίζες ΑποχÏώσεις" WS_BACK '(vgradient, "#636380", "#131318")' "Κοκκινωπές ΑποχÏώσεις" WS_BACK '(vgradient, "#600040", "#180010")' "Διαβαθμισμένο" END "Εικόνες" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "ΠαÏασκήνιο" END "Αποθήκευση Θέματος" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Όνομα Θέματος,ΓÏάψε το όνομα του αÏχείου:)" "Αποθήκευση Ομάδας Εικονιδίων" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Όνομα Ομάδας,ΓÏάψε το όνομα του αÏχείου:)" "Εμφάνιση" END "Έξοδος" MENU "Επανεκκίνηση" RESTART "Εκκίνηση του BlackBox" RESTART blackbox "Εκκίνηση του kwm" RESTART kwm "Εκκίνηση του IceWM" RESTART icewm "Έξοδος..." EXIT "Έξοδος" END "ΜενοÏ" END ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Backgrounds/���������������������������������������������������������0000755�0001750�0001750�00000000000�12214434643�015536� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Backgrounds/Makefile.in����������������������������������������������0000644�0001750�0001750�00000031501�12214434561�017522� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WindowMaker/Backgrounds DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(defsdatadir)" DATA = $(defsdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ defsdatadir = $(pkgdatadir)/Backgrounds defsdata_DATA = BlueImage.jpeg EXTRA_DIST = $(defsdata_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Backgrounds/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WindowMaker/Backgrounds/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-defsdataDATA: $(defsdata_DATA) @$(NORMAL_INSTALL) test -z "$(defsdatadir)" || $(MKDIR_P) "$(DESTDIR)$(defsdatadir)" @list='$(defsdata_DATA)'; test -n "$(defsdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(defsdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(defsdatadir)" || exit $$?; \ done uninstall-defsdataDATA: @$(NORMAL_UNINSTALL) @list='$(defsdata_DATA)'; test -n "$(defsdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(defsdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(defsdatadir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(defsdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-defsdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-defsdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-defsdataDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-defsdataDATA # 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. .NOEXPORT: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Backgrounds/BlueImage.jpeg�������������������������������������������0000644�0001750�0001750�00000020545�12214432632�020161� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ÿØÿà�JFIF������ÿþ�J CREATOR: XV Version 3.10a Rev: 12/29/94 Quality = 75, Smoothing = 0 ÿÛ�C�    $.' ",#(7),01444'9=82<.342ÿÛ�C  2!!22222222222222222222222222222222222222222222222222ÿÀ��é)"�ÿÄ����������� ÿÄ�µ���}�!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ�������� ÿÄ�µ��w�!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ� ��?�ÀÁ-×$òM(Ë`(ÉíJq‚ �çËH csüÿ�»]¤.G=úŸñ£Ê-÷#ÔÒùÄ/Ë€O¥#ÊX˜=±@‰8UdN§òÿ�9¨²ª0‘N´ŠÄämãÓúÒ¤œ†zÐ2A!#9ã†?çô¨Ø®FÇ<vÎRNQäãþt�Ï!I=8å%A=AàÒÇ8V$qƒÖœÿ�#ßP8^™ÇAÅ‚µº`ð~¸¥ØW“Ó½-Éã88¥ùwtõ#4íª¤–VéŽ1õ¡x|¨9ì:Ð1ìÅcØ{Ò£ÀÛÎAtïJ�n¹ã¿zk� ǯJ�CœÄþ¿_Zp\�Ä õè=ÿ�J@¹l~‚µ²v® Ð`±ºŸ©Í<Ä„õüi…˜q’1Fþzp;P‚&Ï''©Ö“Ê ì:ö¦À8ÆsJø!F ã­�.ÔÀù‰÷ühÈ ÷X¶{žsQ““íFrI=M$‘Ñ@íœwÇÿ�^‚ä(R:v>µ{J:`:ŠL±çž¿6?Z2$#gûǶȨKdgœ¹4¹$’qÏZ�ybÄn$ñŸJnÈþŸçüšoÖ€Äàg¡ôÿ�?ç4$d¯!¶çŒÓYYqž3ÜŽ´ªìI Ç$ã"“vG'�uí‘@ >¼õõ¥l=©N9ù°ÚÒƒ’Nž§úPí!pr9ïÓüÿ�Qo¸ ¦—Î*¸^§¸ÿ�ëÒ<¥éƒÛ‘“…PF@ôê/óš­åGý÷üÏøÓÕ‰ÈÛǧõ§í?Üþûÿ�ëѧaÞÄg�àinM.ryÎ}M9c,r}}¨ƒ ƒÏ·ZSÎjUŒ«B‘œšqpz‘Š,",‚½GZs8+ëÏPœƒŒ’9ëúÔ{xæ.OÒ•¥r¸9úÓW=xÇC‘šBäàŸsÞ †a˜â”¡^YH¦Ž8ϵ(8äœÐ2eÛ‚G ;žß¥1›-¸yíI¸“òäg€:š –䌒xé@X‘БMäjVœžqÅ äc·ò Ürq“îE ïŠpl ò}qšRç n{ J�a=‰ê:M߈Î8¥¡Š€Øô 'ëœúQÓ÷üé܃?ZM¹ãätÇZ�D sßüúRäâ¤1´k—!Açšk` £ñÈæ€ÉÉ9>ô™è2qŸJ‘A Óž¹?ç½&â–ôéŠ!ë×Òš9>àzÓƒqŽ1Ž{S€#¯Oz�w“À8?‰Ç4ÃŒ‚G¿½8³|¿t=;R$mgÛŽÄQpŒ·RI4;zü½riÛrÔS6œgP€)`sÜšnÀFAüûÒo#§~¤ÒKn'’s@<Ò~'š\äóNr=9ëÅ:çùÐ^OOz•c*T¤w§y`6¸=@ÈéBB"꽸©<ïöÏýûÀ‡¸É=1L£Q€êI§€AúPTsó`ŽØ¤$m€[—Öœø#Žž)Š}½©Ù99ï’(½iHÆ~W'‘øúR”'œg¾Hb£#ƒFþFyç§jV‰ùüˆ¨õƒ@„ûǹn¦Œ`ŒÒåJwõéMíÅá÷¦’Xäš2[=O×­'Nyǯj�3ž{ûÒäã©9¹÷þXÅ8ðHÁü{P!™ã$}}©Iç§§AKÇ��J\{Š cÔœTŠ™RI�pAÅ0¦Ì¸ÁÆJ«„Î$g¥J¤†n;ñšh‘€Â¿AOØW%‰úžŸ­FÊÙë“Þ€¯&ÌJ)Bçõ bqƒÉϨ4(ÜJ8Î)Ièy'ß“@ÊFHqÎ2F)™ç$ç'<QŽ2´Ò2;þ\†ÉÏÓ#£nGSøSp\Ràã#ùP1w·l×§z]üôãüõ¤V+Ó®iX’yÆ~”�ŒA韭4ãÜgŒfž§'Ž}±N% Áç¨9 D@g®yõ=)Ä�?•AæÁíÅ'T.G¯ Ub3ôúÓŸøÆ=Ïùú±Hî)ã$œŒäg'üÿ�ŸÆ€(ù}OåRåI9<ûÑóÿ�ÏSÿ�}ñ .B8§·JZ7œŒç½=8ÇÒ€\¶1‚}zÓ†À{ûz hà÷éI˼ .z`~4½W%¹ÏJ2�:ñÒ”DÅ€Úsèh^MØÀÇ­!}ˆPÃÞ±{’zgLn$޽¨¥PŸ•È縧׌0oaLÉÎG^rM˜õ4"£©x=Ï~tß-†2¿ÏrÄñNó�3š�A·a8Í!Çlà¹ãò§’“ÈêqÁü©¤­¸ú°÷æ€(ã œöI^™ô xä玴»Š1ÛÇÒ æÉÆIç¦8¤23pOµê lR™;AöÉ c{ÑŽzÐxÿ�õS‚1÷Ͻv”›=ˆ§͘ dŽ0*à|ü÷✻Ur3ùñÒFù=Xޏæ,á€Áÿ�?Ê—pÏÊñ‘Kæœ�ž;ÐeH8Á�ž†”¡+½œž?Z•Y\ãnÜ ü§9úþ”Æ+œà©ë@T)ò{ñÐÿ�œSB’Øè{怪8 ãŽ(b î}ýh'µ!R§#ëOgŒàzõæšH#¡Í�; þx¦ò{¥= éHIéÏr(£z»ŽOïõ¥þ¸ CBäýiã`={ñè>¼R ©Ü×·NhséŠ7·÷çJ0G©þW´¿÷Çÿ�^“ÀSøÉéŠÊ8äg‘ŸëL�ž‚“#œ=©€ü ß#œšnß— ŠNÝiXçñ@‘†rÁæšéßý®)À²ŸNô§îœƒœàñ@Æ•õäÔŸ•+ �IëÎiœîœ3@= Ï_˜þ½;f—qv'Ž´�qÁ?¤?FØ©° 99#?çšB�éôÉ"årsùSñ¿8çŒÔ|û)û€Àü>”�†6ÜTg Æ)ö÷ü?¥.ò;¹ÎxâæÈ;ò}¨2…H&Rnb9~{�:ÒdòÀóî(ͤŒsÏw¥S´çãd³O'“FrÙ8ÏÒ€ Ç ?*p FppqŸóŠUÜÍ‚ÅWÔþ”›Ûv<Ã×®hŠãÜŽ( Y²Aè2I¤ ädç4æ\/ã=Hë@Çtã¯^?ÏÖ¢ ™1Œ1öý)GÊAžLX’:äó@ˆÈàsK´Œ‚¼^)ÆLýä Çv¤sÊþF€Pç§=ÇÒŒ|¹çÚ—v ’\÷§1Ü0ÍëŠ�hvÏæzñKŽ}3ÐB:s@ÅÊs¹NO¥?åÇÔgT`:úÐNsîzPÀ ~V<úŠnÞ2gÒ“¯RiXc¦x89z‚1Ö£ØßóÑ¿!þ %H Z]ßí·ùühµÆ†wÈÆ{qRrÄà’;Rü¼$ŸçLa·¯×Ú€aîGçšRª:ç‡zhÈàŽ:PæÇLЄ|¹ÜÓUxqô”ìôlúæ€ �þ�¤=y=ëFÃŒå@úÒ+m4ÇLôí@1�£ç\ÿ�½Mò½Xp:“H]¶Ô›@4d¿éMÚËÎ:~4näžsïëK‚FyÉã¥�lœƒœóÅW¹Ç§©yäñëþ}éÛ‹`uç ô�мdÒŒ¨>‡¦iå”à‘Æ}:ÓNÌ3Ƕh�iIãœcRd¹ÆÜã©Í)R�ÚF9éLû§‘È>”�ì`pHÏ~ßçš_âàò}zÿ�“LÎy9ÉëA$žœØ`|¤7ÓÒ›ƒŒàã×8Å(VÏ ÙÔ�ÜóN @Çjv$m÷åiJ°Ú4?¥<9b�õíïþM¡Ž�üOÒ”«s„“Ç A)äIOùëQœtçž*O+wCÛ8=1C*Øê #ÆhúSˆ¹éŸJB§8ïéŠ�3»Ÿ^zQ´‘éNPTí!†}E�� 㯔 gN@ÉÅIó–`2{Š\.ÒKcÒ˜ÊTàþ~´�¡¨ôëŸåKµ9ùqÀ\zSG1Ö€77LP„q}Í2œvžNsœÿ�ž)´˜"u*:7Lž‡õ¤ È¡W“ŸN½*„’Gjzq†Ç ýìt¦ ØqþìIÏ@Z—`\:ªGFæ¡'“‚qžô P 1ë‘éHn2sžž´™,2G4ªs“œcÛŠ�pŒÜZL!Æ3¸ãÜSÒE+µ—qã6ÆÉç óÖ€‚óŽ?Ïùæ›´uÏÝý¨ ¯3I@ƒŒqœúŠQ‘@È# ñÍ<6I=O?Ïô cwñÓŸçB¯rqÅ å‹r~§8¥-»‚{ÐeOQŠon™=±KH98Û�b€$P¤tÉôÍ86W ÑÔòȨpqÔýh9=X’{ÐŽ£»wÓv‘Ç'Û4Žî½;ð§ðTf?Ò€ H�ûÓ€Ãü¬å»mâ˜BÁ$ý)ÁÀàr:g?Ê€�Ä)ä‚qMÉ‚?:2sž99éAã¦yìE�(89�;ÐNå<çÚ›øP2?¥�8¿9ÇcØ ÓÀí»§@šŠŸ¼Ÿ¼>ƒz�P±àcœrIéN!TýÒ¸ÈçŠù6q޽ÏZŒ¾çôçû´‘Ý$9mÿ�¥7÷xÀ-íÅGœvÍ.3@®Ñœ6qÎvœPß8 ç“Ó­@ÜsŒµ"’£ ‚:ŽŸá@ÃŽøö ¡äÀö÷©L`È«ƒÆæ¡'æÈÏ\óÍ <‚¿¾kÿ�}ÿ�:n~\ž;óIøÐØh9”ëƒÆG4ªÀ¸àqÁëOi# õjipƒ9ï×ñ C]›å8ïïM9'î‘øŸ­<•+À�œRƒØðzŽ”�Îs’r}iÇBqëRü¤eǨ†‚á”çœc Àçš:Œg­)VCÈ"c<ŒÐ1û¸Èá»÷Î UQ“ÏnãÛ4ÝÃ99ÎsÅ9ù@F}OÖ€wg£šg’ÌÀ† :g<S äTžiÚA玤tÿ�9 B$Yh £’ÊG¸4п0ϵ8/u#ž€õ Ø ÆxõÙøÒùCÉî�§EóŒÃ½é²’N;g#Ž1@Ä ¿’pO©ýi$ä–=9ÿ�ëSr[ùš\3¸èhvF­’û†s‚3ëÿ�Ö¦’¥OUÈÆz žqØÒ`‘@„ÈÁ9àQÔq×ÜPUƒƒ¸JpPG'±?J�`Ž8ô¤¥Ûןqž(Û“œŽÃœÐ)#‚;àÓ•AïÏ¡€=yëÓâÐõÁïÍ�@# €xäô¤9àqבڀIo‰ÏŒrÛ‡sÒˆyÐ1žsøSÀ`2ªÃ=§yGnqŠ1¶c9Çsè)H#8鎔¢%ÞÃyÈôSO1§<{Ó\uÎ})U'ÐŽôö‘w}Ài¥ÆKmR}1ŒÒ®ÇÈõç9¦õèHü)ÿ�x`/R9¥ òþé@ ç<œŸSKˆÿ�¼ß÷Ïÿ�^Ÿò`nÎ;ßš_8ÿ�{ÿ�ZáfÈðIõ'ŸZP ª§=yÒœr7sÇÞÒ ƒ¨'ŽÇ­i •ç½&aò©ú‘ŠQ)Uùp ô¤y ÈÇÓšHé€<güÿ�õê.Œž;H„Ÿà8Î1ëKòóAö d‚BÀ€xþé9¨ÜŒü €{Ú—oPŸ7ùô¦J‘“‚1ŒÐÉÆqNRF@9 Á‡sò·ÇJpF#æs‘Çaã‘ÓðÍ&§çOÚØqK°¯9ÀÇqš0[“ÀëŠvWv?„÷ïJC«ðzzv¤\dÎs€$fe@€sŒTxFIƒÖ•Fþ£Ô}i­ŒœtÏJ�Cžÿ�Z\aA=úw¡W$`óô§aº®À 9luôM?Ë`p¹\ž?ÏáL.ý2F? 7zdg8 D‹ z÷ÉéIå*™†}=)ð8ëJÄn$.3Ó4�»SŒ7Ðãüi29?ÅM'æÈØRdžHäŽã ”ñéHÒ~ïF:Rçã4 ›w#$pIµ&@…?ïz‡<qž}©K>£¸ –g<Ÿ~qLéô4PŽx¥�><ƒpOzk+.3‘žäu¡\äŒã8æ—vìxþt�Ÿ6ï~¼Ò€X…UÉ¥ùqÃ^E"ìïš�]„ Aç­&aòƒR1Kæ>\íHòŽ àâ2œWä `zþ…E±ç¢þGü)‰ãoÓŽ´¿ðÿ�¾¿úôh4†œ€A¤üO4¹É}Í9c,r§>¾Ô�Áޏ<ûu£ rqz•c*À¤gfœcÆF[¨ät¢Â"�tÎ})ÅÁ\r}8m=žØ&£Çó@Çïcו)•Ê“Ói9ʃzÓHc’#Ía˜ãô¥(Te”þ])¸ÛÏÐRSŸSíõ dË·’¸Ç'×iŒÃ<Ž?Æ“9 ô ©#=ºäÐÈÇZnM+ ‡nIçP2Ür}(�Ï^ã¯J@2qÞœ��€ŸSÍ)v<núõ¨„’y9¤É¯_jR0FG8 ²tU<ž¤ŸQ@Np¥<sÿ�×¥àtýh ¸r:P!±‚zsßüiÙã!‘~n3ÈȦ¶�Ú?ŽhÞNIÉ÷¤Æ2G­H …éÏ\ŸóÞ“qÜwOŠ7îh'ÿ�¯JXw±N@±Ïò y9@ÜôÉÇziˆ çñãð¥ÜÄŽ€wŽ)ªw™ñŽ™Í €ÜrO>ôà˜zŸNsÅ.ßöOŸóøS63Š�zíÆH9ÏSôÿ�õR$ãšMíëHO%‰÷Í��x9Ò3ÁïNÎãžrÄÌ@Sœût c\Ñ?­J±°*HR;ŒŠw–AÚ+uŒ­"ÈÀÇP})w¶ßçñ )èy'§½2–£½€:çèiÌ ðM001Iø*`*¶8ÏéNcHçùLSž�ÎxéO$ô'®M�0}.=x§™8íëéJP·8ÉëÈϯøP{°8ÿ�:MÇ<žùç½8Ä㜧‘Èíƒ@ É>¦€9ç— ®ò¦úPÃãøWò¦–%²y?J,qϹÏóãšOÂ� ŒåAÎÒ9ú PpGûŽ´¸Àéút¦!¹>è$u¼úRñž)Bžã§&ˆäb¤ òÇõíøS ” Øô©Up™Ãr20?:�ieÈ,G¯â“Ì`0>Qßh朩Ƀ֣en˜ù³ƒßü÷ Bz“šLRôÒ…õ wæÃ€ Ϩâ‘FOÔô y#õ4gÎOr{ÓMËànn™<S d‚Aüh+áéÁãÓqØ0Ç9$~”á´€O±¦c=ñK@ÅÜF�ã»úqùдð£vNN ú?J�F ôýE7Ü}3O^x=ÿ�Ö•Š’@ç¯ùÿ�<PC©$œA�gëJTsÉÏ¡„ü ¾ô�äb8äúJܯ©ëÖ˜tuïšw žÇ ‘@ ‡åK…õ?•<l±¤piû&þô¿çñ \ w'ëJG§?AI»©<Žô¾Þ´�(²pØ9Éöâš9éI˽(¹äc¤u¥É#$ŒŽ1@#‚=zŸóøRùLIÀ?ˆÿ�8 b¼›ˆ cŽi70Ê­ÛšvØÕO$“œ ô¦g,N:ö !?„ŸÄS„XèÁ°éMÝó:óךBO®}Çz�‘cu9Q’?ãÒ›å°ê¿)7ž¥‰=³þÎiÞ`�ã'Œ>´�ŠÂqùÒ¾‡ëÿ�Ö§’ç¨êvŒc­4àrIöÔ�G0>ؤ<º� àçžirUŽ8ÈÁ¨¾s÷cíŽ)Bs¸œch,z0Î8úR§;C`w<ÐHÃr§#Ž”cœÐ}©väž1ë@ÇmÆ3ÆNzS”»ô$c¦¥7`Ç$ƒßŽ”£�g$ýx @cn½G¨ !Áã$ŸéK¸S 8ç×éKæž0Ç¿Q@ía‚L)vxÏsÅJ¬¬vìØW<ÿ�1Šö ŸB3žÿ�ã@T.Sߎ†šç {ô Ó§PÅIà}h'<B¥N#ëOd�8¹ëM$Ðæ€ ¹Ç|})¼;jz ^8ã­!$zdr(£ƒþ4§Í&샒=N{ÓëÇ^øâ€F[§'ŠpØ2y>Ÿ•4p{Ò`ŸÃÞ éíïFïaN ‘ÃqïKå7÷_þù¤Æ7)ÜŸJxØHcQ€OAÍÀÈÿ�=é€ð¹Á y¨üé6qבÔzSG'­)Æ?•Œ3*h^yëïN GœI ç$õû´ f1Ôg=³IJÃ�zóšg9œsž(Àç±ü©züÇð¥ÈQ“È÷¥ÜXäþ4�`c8?ýzF'Œu©sÁäž™Î~¾´„Î8'Œÿ�Ÿ¥|¼ç'Ò¤ÆáÀ9ëƒþÏó‹ù#4ýÊ1×ÐÐ!ˆ»âŒ‡ëK¸‡Î[#ðúÿ�Zp–Lä7?J�c!R3šAÖ¤€cžÀwïH ê¤ç·|ö c�Í*¶Î˜éŽ”e˜’N{š2 dç9ç4�g:gµ8+žJž¸ÿ�>Ô«¹Û—Ú={RaÆòpxæƒéêGK•ôÉ< C’FNiÅp ‚qêGù÷ bùm�¿NŸçšŒƒæ` 8äsJ sOÌ e²G¿4¥Á9sÚœdÏ,¸ê)_âSø4¦Nçù…|¾î:}iwa³Ëzç½9Žå�rGóþM�&æR@ÓgÑëÅ�qÿ�×£üý(àÊrYyö8§|ƒ8çëÿ�ê¦�OjLç¹üèøÉáù$óŽ´Ý™ H)N8ã‘Ðÿ�ŸÂFF:ÓiÁˆ?)Ç4»‡÷ÏåE“ÁëR|ä7^?ŸëNÂ丷qΣ ©úŠ�]‡%@úæœUçv9ãæ˜:r Ô¹±Óð ;Hã ûœÒ�zƒÀ=}(;O<ç4(9Ü8ퟭ�)±ž¸ôí@Œ“Î:óMSƒÛžçüûÒî#§SÖ€bÞ2}X`ž)<£œgŸr)¥˜©½ñM< Ð"CÉÇO­7kqÓñ9ïø^H$›é@ÄÁÎYNïR)v×8ìqÛüâ‚NXdŽzvI8*zã¦;Ðü´«Âž˜>´òáˆféô¦‘¨ýhL¬Üdã¡Í7qà®M0séMÇ<ŒOJ�wÝèX½1ô¥ã ‚NNøtúS3»–ž½¨bI9ïÉþt�ö7ÓÒ™Ž3Û×<v÷¥ Ùá[#Ú Ï8§=8#ÐÓ¿yœyõÿ�=éJxÈÎ(Ð@=)ÊÜ€ØÒ¢‚GSïøt¥(ܬé• B qÁÆO�žÕëŽpxéRËtôÏ>”Œ±ïþ¥�7ð#ëHN9㎹§`qƒÁëšB¿63\Ð0ÎsœÑ´‘ÓŠr†R†õ¡@'¦}(˜çv>œT™v'¾)p�Ý»¸Æ>¿Ê£*TàЂq‘øsü©pI;yÆ:Óz zÒ™‰@Øzd}M2œ@äsžôÚL —hþ qÉãüâ‚7€¹�žI# >/õ©þð¢àÀ!î úPW‚:qL©‡Ý›ü÷¦À` ‡8 jA’'¯4÷ÛëRÁþ±ÞÖ…¨ 2NÏ4˜<þ•+}Ïø ÿ�#QKþµÿ�Þ4�»p8'žžôÜpr>”¿òÉ¿ÞÖˆ¿Ö§û—PÆ;旑Α~ðúÕˆúKõ v!ßòãнÉÀýiò¯ü¿•9¾ìßïæ)‰+‘ ì8¤$rzÔÉÕIþé§Rl � ­<·k(àŒñ“PR¿ßo­;€öEÁ+Ô¶�ëMÛŽ0O;¼_OêiÓÿ�Óú –£}O^Þ§µ8 ©byÆÑQTË÷Séþ4®-ƆÀ#, ÇçMžy¡¾ó}iGú¦ÿ�x#LN€NÐûÑÜ{S(¥p$ó  ðxÇ_ÿ�]8tÀb¶*š_õ+þñ¢àŒŒœrN?"cn8Ú)òuo¡þf¢õcýãý(L;Ç!Éøb›ò~z ŸzŽZabeØ:7“Á æ@c=}?Ïz†ŸúÔÿ�xR¸€)�õ÷ÇéA^Hç#¶9¦w©$ûÒ½þ4Öà4nCœE.[ûÇó¦¿ßo­%r’?ÿÙ�����������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Backgrounds/Makefile.am����������������������������������������������0000644�0001750�0001750�00000000151�12214432632�017503� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ defsdatadir = $(pkgdatadir)/Backgrounds defsdata_DATA = BlueImage.jpeg EXTRA_DIST = $(defsdata_DATA) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.no��������������������������������������������������������������0000644�0001750�0001750�00000015624�12214432632�014522� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Hovedmeny for WindowMaker * * Syntaksen er: * * <Tittel> <Kommando> <Parametere> * * <Tittel> Er en setning du vil ha som tittel i menyen. Du mÃ¥ ha " rundt hvis * tittelen har mellomrom. * * <Kommando> mÃ¥ være en av de følgende: * MENU - starter definisjon av en (under)meny * OPEN_MENU - legger til en meny fra en fil, eller innholdet av en * katalog * END - Avslutter definisjonen av en (under)meny * WORKSPACE_MENU - legger til en undermeny for Ã¥ jobbe med Arbeids- * omrÃ¥der * EXEC <program> - starter et eksternt program. * EXIT - Avslutter WindowMaker * SHEXEC <command> - executes a shell command (like gimp > /dev/null) * RESTART - [<window manager>] - restarter WindowMaker eller starter opp * annen "window manager". * REFRESH - tegner opp skjermbildet pÃ¥ nytt. * ARRANGE_ICONS - rydder opp i ikonene dine pÃ¥ skjermbildet. * SHUTDOWN - Stenger ned alle X klienter og avslutter X tjeneren * SHOW ALL - Viser alle skjulte vinduer pÃ¥ denne skjermen * HIDE_OTHERS - skjuler alle vinduer pÃ¥ denne skjermen som ikke har * fokus. * SAVE_SESSION - lagrer desktop'en din som den ser ut. Dette inkluderer * alle applikasjoner som kjører (størrelse, posisjon, * arbeidsomrÃ¥de de er pÃ¥, hvilken dock/binders de ble * startet fra, og om de er minimert, shadet eller * skjult. Lagrer ogsÃ¥ hvilket arbeidsomrÃ¥de brukeren * er pÃ¥. Alt vil bli startet opp igjen hver gang * windowmaker blir startet, fram til til SAVE_SESSION * blir kalt igjen, eller CLEAR_SESSION blir kalt. * Hvis SaveSessionOnExit = Yes; i WindowMaker domene * filen, blir dette automatisk gjort hver gang window- * maker blir avsluttet, og vil da skrive over dette * og ogsÃ¥ CLEAR_SESSION (Se under). * CLEAR_SESSION - resetter lagrede settinging fra SAVE_SESSION. Vil * ikke ha noen effekt hvis SaveSessionOnExit er satt. * * OPEN_MENU syntaks: * 1. Fil Meny beskrivelse * // Ã¥pner fil.menu som mÃ¥ innholde en gyldig meny fil, og setter den * // inn her. * OPEN_MENU fil.menu * 2. Pipe meny beskrivelse * // kjører en kommando, og bruker output fra den for Ã¥ konstruere en * // meny. Kommandoes stream mÃ¥ være i gyldig meny-format. * // mellomrommet mellom '|' og kommandoen er valgfritt. * OPEN_MENU | kommando * 3. Katalog beskrivelse * // Ã…pner en eller flere kataloger, og konstruerer en meny med alle * // katalogene og alle kjørbare filer i dem, sortert alfabetisk. * OPEN_MENU /en/katalog [/en/annen/katalog ....] * 4. Beskrivelse av katalog med kommando * // Ã…pner en eller flere kataloger, og konstruerer en meny med alle * // katalogene og alle lesbare filer i dem. Setter kommando forran * // hver av dem. * OPEN_MENU /en/katalog [/en/annen/katalog ....] WITH kommando -args * * * <Parametere> er programmet du ønsker Ã¥ starte * * ** Alternativer for kommando linjen i EXEC: * %s - bytt ut med det som er valgt for øyeblikket * %a(melding) - Ã¥pner opp en svar-boks med meldingen og sett inn svaret ditt * her. * %w - bytt ut med XId'en for vinduet som er i fokus. * * Du kan bruke \ tegnet for Ã¥ skrive spesialtegn som vanlige bokstaver: * eksempel: xterm -T "\"Hallo Verden\"" * * * Du kan ogsÃ¥ bruke spesialsekvenser som i C, f.eks \n * * Hver MENU setning mÃ¥ avsluttes med end END setning nedenfor. * * Eksempel: * * "Test" MENU * "Xterm " EXEC xterm * // lager en undermeny med innholdet av /usr/openwin/bin * "Xview Apps" OPEN_MENU "/usr/openwin/bin" * // Noen X11 programmer i forskjellige kataloger * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * //setter noen bakgrunnsbilder * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // setter inn style.menu som et menyvalg. * "Style" OPEN_MENU style.menu * "Test" END */ #include "wmmacros" "Applikasjoner" MENU "Info" MENU "Lisens..." INFO_PANEL "Legal" LEGAL_PANEL "System Belastning" SHEXEC xosview || xload "Prosess Liste" EXEC xterm -e top "Manual leser" EXEC stepman "Info" END "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "Arbeids-OmrÃ¥der" WORKSPACE_MENU "Applikasjoner" MENU "Grafikk" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Grafikk" END "X Fil Behandler" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(Navnet pÃ¥ fila du vil se) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Skriv inn PDF\'en du ønsker) "TkDesk" EXEC tkdesk "Applikasjoner" END "Tekst Redigering" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Tekst Redigering" END "Diverse" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Diverse" END "Verktøy" MENU "Kalkulator" EXEC xcalc "Font Velger" EXEC xfontsel "Forstørrelsesglass" EXEC xmag "Fargekart" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock -shape "Clipboard" EXEC xclipboard "Verktøy" END "Utvalg" MENU "Kopier" SHEXEC echo '%s' | wxcopy "Send e-mail" EXEC xterm -name mail -T "Pine" -e pine %s "GÃ¥ til (www)" EXEC netscape %s "Søke i manualer" SHEXEC MANUAL_SEARCH(%s) "UtValg" END "ArbeidsomrÃ¥der" MENU "Skjule andre" HIDE_OTHERS "Vise alle" SHOW_ALL "Ordne ikoner" ARRANGE_ICONS "Tegn opp igjen" REFRESH "LÃ¥se ArbeidsomrÃ¥de" EXEC xlock -allowroot -usefirst "Lagre ArbeidsomrÃ¥der" SAVE_SESSION "Fjern lagret ArbeidsomrÃ¥de" CLEAR_SESSION "ArbeidsomrÃ¥der" END "Utseende" MENU "Temaer" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle "Stiler" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle "Ikon set" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Bakgrunn" MENU "Ensfarget" MENU "Svart" WS_BACK '(solid, black)' "BlÃ¥" WS_BACK '(solid, "#505075")' "Lilla" WS_BACK '(solid, "#554466")' "Hvete" WS_BACK '(solid, "wheat4")' "Mørk GrÃ¥" WS_BACK '(solid, "#333340")' "Vinrød" WS_BACK '(solid, "#400020")' "Ensfarget" END "Overganger" MENU "Flagg" WS_BACK '(mgradient, green, red, white, green)' "Himmel" WS_BACK '(vgradient, blue4, white)' "Overganger" END "Bilder" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/BackGrounds WITH wmsetbg -u -t "Bakgrunn" END "Lagre Tema" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Lagre Ikonsett" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Utseende" END "Avslutt" MENU "Restart" RESTART "Start Afterstep" RESTART afterstep "Avslutt WindowMaker..." EXIT "Avslutt X11..." SHUTDOWN "Avslutt" END "Applikasjoner" END ������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu.sk������������������������������������������������������������0000644�0001750�0001750�00000011230�12214432632�015044� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������("Aplikácie", ("Info", ("Panel Info", INFO_PANEL), ("Panel Legal", LEGAL_PANEL), ("Systémová konzola", EXEC, "xconsole"), ("ZaÅ¥aženie systému", SHEXEC, "xosview || xload"), ("Zoznam procesov", EXEC, "xterm -e top"), ("PrehliadaÄ manuálov", EXEC, "xman") ), ("SpustiÅ¥...", SHEXEC, "%a(SpustiÅ¥,Zadajte príkaz:)"), ("XTerm", EXEC, "xterm -sb"), ("Rxvt", EXEC, "rxvt -bg black -fg white -fn fixed"), ("Pracovné plochy", WORKSPACE_MENU), ("Aplikácie", ("Grafika", ("Gimp", SHEXEC, "gimp >/dev/null"), ("XV", EXEC, "xv"), ("XPaint", EXEC, "xpaint"), ("XFig", EXEC, "xfig") ), ("Správca súborov Xfm", EXEC, "xfm"), ("Správca súborov OffiX", EXEC, "files"), ("LyX", EXEC, "lyx"), ("Netscape", EXEC, "netscape"), ("Ghostview", EXEC, "ghostview %a(Enter file to view)"), ("Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(Enter PDF to view)"), ("TkDesk", EXEC, "tkdesk") ), ("Editory", ("XFte", EXEC, "xfte"), ("XEmacs", SHEXEC, "xemacs || emacs"), ("XJed", EXEC, "xjed"), ("NEdit", EXEC, "nedit"), ("Xedit", EXEC, "xedit"), ("VIM", EXEC, "xterm -e vim") ), ("Rôzne", ("Xmcd", SHEXEC, "xmcd 2> /dev/null"), ("CD prehrávaÄ", EXEC, "xplaycd"), ("Mixer", EXEC, "xmixer") ), ("Nástroje", ("KalkulaÄka", EXEC, "xcalc"), ("Vlastnosti okien", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -"), ("Výber fontu", EXEC, "xfontsel"), ("Emulátor terminálu", EXEC, "xminicom"), ("Lupa", EXEC, "xmag"), ("Paleta", EXEC, "xcmap"), ("ZabiÅ¥ okno", EXEC, "xkill"), ("Hodiny", EXEC, "asclock -shape"), ("Nástenka", EXEC, "xclipboard") ), ("Výber", ("KopírovaÅ¥", SHEXEC, "echo '%s' | wxcopy"), ("PoslaÅ¥ poÅ¡tu", EXEC, "xterm -name mail -T Pine -e pine %s"), ("PrehliadaÅ¥ web", EXEC, "netscape %s"), ("HľadaÅ¥ v manuáli", EXEC, "MANUAL_SEARCH(%s)") ), ("Pracovná plocha", ("SkryÅ¥ ostatné", HIDE_OTHERS), ("ZobraziÅ¥ vÅ¡etky", SHOW_ALL), ("VyrovnaÅ¥ ikony", ARRANGE_ICONS), ("ObnoviÅ¥ obrazovku", REFRESH), ("Uzamknúť", EXEC, "xlock -allowroot -usefirst"), ("UložiÅ¥ sedenie", SAVE_SESSION), ("ZmazaÅ¥ sedenie", CLEAR_SESSION) ), ("Vzhľad", ("Témy", OPEN_MENU, "-noext #wmdatadir#/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("Å týly", OPEN_MENU, "-noext #wmdatadir#/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("Sada ikon", OPEN_MENU, "-noext #wmdatadir#/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("Pozadie", ("Jedna farba", ("ÄŒierna", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("Modrá", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"), ("Námornícka modrá", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'"), ("Fialová", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("PÅ¡eniÄná", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("Tmavosivá", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("Vínová", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ), ("Prechod farieb", ("Západ slnka", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("Obloha", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Odtiene modrej", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("Odtiene indiga", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("Odtiene fialovej", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("Odtiene pÅ¡eniÄnej", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("Odtiene sivej", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Odtiene vínovej", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), ("Obrázky", OPEN_MENU, "-noext #wmdatadir#/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), ("UložiÅ¥ tému", SHEXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\""), ("UložiÅ¥ sadu ikon", SHEXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\""), ("KonfiguraÄný nástroj", EXEC, "/usr/local/GNUstep/Applications/WPrefs.app/WPrefs") ), ("Koniec", ("ReÅ¡tartovaÅ¥", RESTART), ("SpustiÅ¥ BlackBox", RESTART, blackbox), ("SpustiÅ¥ kwm", RESTART, kwm), ("SpustiÅ¥ IceWM", RESTART, icewm), ("Koniec", EXIT) ) ) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Pixmaps/�������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434644�014716� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Pixmaps/Makefile.in��������������������������������������������������0000644�0001750�0001750�00000031547�12214434561�016713� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WindowMaker/Pixmaps DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(defsdatadir)" DATA = $(defsdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ defsdatadir = $(pkgdatadir)/Pixmaps defsdata_DATA = tile.tiff \ tile.xpm \ swtile.png \ swback.png \ swback2.png EXTRA_DIST = $(defsdata_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WindowMaker/Pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-defsdataDATA: $(defsdata_DATA) @$(NORMAL_INSTALL) test -z "$(defsdatadir)" || $(MKDIR_P) "$(DESTDIR)$(defsdatadir)" @list='$(defsdata_DATA)'; test -n "$(defsdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(defsdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(defsdatadir)" || exit $$?; \ done uninstall-defsdataDATA: @$(NORMAL_UNINSTALL) @list='$(defsdata_DATA)'; test -n "$(defsdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(defsdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(defsdatadir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(defsdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-defsdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-defsdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-defsdataDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-defsdataDATA # 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. .NOEXPORT: ���������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Pixmaps/tile.xpm�����������������������������������������������������0000644�0001750�0001750�00000026571�12214432632�016327� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char *magick[] = { /* columns rows colors chars-per-pixel */ "64 64 193 2", " c #eaeaea", ". c #ededee", "X c #e7e7e7", "o c #e2e2e2", "O c gray87", "+ c gray85", "@ c gray76", "# c #010101", "$ c #4d505a", "% c #e0e0e6", "& c #dddde5", "* c #dddde2", "= c #dbdbe2", "- c #d7d8df", "; c #d6d6dd", ": c #d2d4db", "> c #d2d2da", ", c #d0cfd8", "< c #ceced6", "1 c #cbcbd4", "2 c #cacad3", "3 c #c7c7d0", "4 c #c5c5cf", "5 c #c3c3cc", "6 c #c2c2cb", "7 c #bfbfc8", "8 c #bdbdc7", "9 c #bcbbc6", "0 c #bbbac5", "q c #bab9c3", "w c #b6b5c1", "e c #b4b2bf", "r c #b2b2be", "t c #b0afbb", "y c #adadba", "u c #acabb7", "i c #abaab6", "p c #a8a6b2", "a c #a5a5b1", "s c #a19fab", "d c #9a9aa8", "f c #898998", "g c #494954", "h c #d8d8df", "j c #d3d5dc", "k c #cfcfd8", "l c #b8b6c2", "z c #a4a4af", "x c #908e9d", "c c #898996", "v c #c8c8d0", "b c #b5b4bf", "n c #acabb8", "m c #9e9eaa", "M c #9999a5", "N c #91919e", "B c #8e8d98", "V c #878896", "C c #48474e", "Z c #9595a1", "A c #868694", "S c #43444b", "D c #cfd0d8", "F c #a8a7b4", "G c #a1a1af", "H c #9897a3", "J c #9292a0", "K c #838492", "L c #424146", "P c #d4d5da", "I c #9897a4", "U c #8e8d9d", "Y c #3d3c42", "T c #828291", "R c #7e7d8d", "E c #a09fac", "W c #393941", "Q c #d0d0d7", "! c #c8c6d1", "~ c #9696a4", "^ c #848492", "/ c #bbbcc6", "( c #a3a3b0", ") c #7a7b8c", "_ c #9f9fac", "` c #878694", "' c #8f909d", "] c #82838e", "[ c #7a7a89", "{ c #c6c8d1", "} c #9ea0ab", "| c #898a94", " . c #7f808d", ".. c #777888", "X. c #39353d", "o. c #8d8e97", "O. c #777886", "+. c #9798a3", "@. c #93949f", "#. c #8a8a98", "$. c #7d7d8b", "%. c #747481", "&. c #b1b1bc", "*. c #35353b", "=. c #b6b8c2", "-. c #a7a7b4", ";. c #7c7b8b", ":. c #72717e", ">. c #323135", ",. c #b4b4c1", "<. c #9494a1", "1. c #b3b3c0", "2. c #797987", "3. c #70717b", "4. c #302e33", "5. c #2b2a2e", "6. c #adadbb", "7. c #ababb8", "8. c #747484", "9. c #afb0bb", "0. c #6d6d7a", "q. c #abacb9", "w. c #a7a8b4", "e. c #a6a6b3", "r. c #727281", "t. c #28272b", "y. c #878798", "u. c #696977", "i. c #25252a", "p. c #787786", "a. c #6e6e7d", "s. c #676675", "d. c #222328", "f. c #abacb7", "g. c #706f7d", "h. c #6c6b7a", "j. c #626271", "k. c #848392", "l. c #222125", "z. c #807e8e", "x. c #676878", "c. c #676874", "v. c #61616d", "b. c #6f707b", "n. c #5d5d6a", "m. c #1d1d21", "M. c #1c1c1f", "N. c #19191c", "B. c #5a5a65", "V. c #17181a", "C. c #94939f", "Z. c #686775", "A. c #7c7b8c", "S. c #64636f", "D. c #151518", "F. c #605f6e", "G. c #52525e", "H. c #6a6973", "J. c #555563", "K. c #888798", "L. c #888796", "P. c #727182", "I. c #585767", "U. c #4c4c5c", "Y. c #141216", "T. c #9b9baa", "R. c #82818f", "E. c #6a6a79", "W. c #666679", "Q. c #5c5b6b", "!. c #585768", "~. c #515161", "^. c #9b9caa", "/. c #9493a2", "(. c #8d8b9a", "). c #686778", "_. c #121215", "`. c #858493", "'. c #464758", "]. c #434353", "[. c #0d1013", "{. c #262730", "}. c #0e0d11", "|. c #7f8391", " X c #5f606e", ".X c #575a68", "XX c #030406", "oX c #4c494f", "OX c #423d43", "+X c #2f2d31", "@X c #201f23", "#X c #18171a", "$X c #100e11", /* pixels */ " . . . . . . . X X X X X X o o o o o o O O O O O O O O + O + + + + + + + + + + + + + + + + + + + + + + + + + + @ # ", ". . . . . . X X X X o X o o o o o o O o O o O O O O + O + + + + + + + + + + + + + + + + + + + + + + + + + + + $ # ", ". . . % & & & * * = = = - ; ; ; ; ; : : > > > , , < < < 1 2 2 2 2 2 2 3 3 4 5 6 6 6 7 8 9 9 0 q q w e r r t y u i p a s d f g # ", ". . % & & * * * = = = ; h ; ; ; j : > > > > , k k < 1 1 2 2 2 2 2 3 4 4 5 6 6 6 7 8 8 9 0 q q l w e r r y y u u a z s d x c g # ", ". & % * * = = = - ; ; ; ; j : > > > > k k < < < 1 2 2 2 2 v 4 4 4 4 5 6 6 7 7 8 9 9 0 q q w b r r t y n u i a z m M N B V C # ", " . * * = = = - ; - ; ; ; j : > > > > k < < < 1 2 2 2 2 2 3 v 4 4 5 6 6 6 7 8 9 9 0 q q q w e r r t y u i i p p s d Z x B A S # ", " * = = h - ; ; ; ; j : > > > D k < < < 1 1 2 2 2 2 4 4 4 4 5 6 6 6 7 8 8 9 9 q q q w b r r t y n u u i F a G m H J x f K L # ", ". = = - ; ; ; ; j P > > > > k < k < < 1 2 2 2 2 v 4 4 4 5 6 6 6 7 7 8 9 9 0 q q l w e r r y y n u i i F p a s d I N U f K Y # ", " = - ; ; ; ; P : > > > < < < < < 1 1 1 2 2 4 3 4 4 5 6 6 6 6 7 8 9 9 9 q q q w b e r t t y n u i i F a a z m M Z N B f T Y # ", " h ; ; ; ; P > > > D < k < < 1 1 2 2 2 3 2 4 4 4 6 6 6 6 6 7 8 9 9 q q q w b b r r t t y n u i i F p a a G m M J U B c R Y # ", " X ; ; ; P > > > > < < < < 1 1 1 1 2 2 4 4 4 4 6 6 6 6 6 8 7 8 9 9 q q l l b r e r t y y n u u i F a a a z E d I J x f A R W # ", " X h P P > > > Q < < < 1 1 1 2 2 2 ! 3 4 4 5 6 6 6 6 7 7 8 8 0 0 q q w w e e r r t t y n u i u F a a a z G s d ~ J U c ^ R W # ", "X X ; ; : > > < < < 1 1 1 1 2 2 ! 3 3 4 4 6 6 6 6 8 7 8 8 0 / 0 q q w b e r e r t y y y u u i F a a a z ( G m M Z N B c ^ ) W # ", "X X ; P > > < < 1 1 1 2 2 2 2 3 3 3 4 5 6 6 6 6 7 8 8 / 0 0 0 q q w b e r r r t t y n u i i F p a a z ( G _ m I Z U f ` T ) W # ", "X X j > > > < < 1 2 2 2 2 3 3 3 4 4 5 6 6 6 6 8 8 8 / / 0 q l q w e e e r r y t y n u i i F a a a z ( G _ m d I J ' c ` ] [ W # ", "X X P > > < < 1 2 2 2 2 { 3 3 4 4 5 6 6 6 6 7 8 8 / 0 0 q q l w e e r r r t t y n u i i F a a a z ( G _ } m d Z N B | ^ ...X.# ", "X o > > D < 1 2 2 2 3 3 3 4 4 5 5 6 6 6 6 8 8 8 / / 0 q q w w e r r r t t y y n u i i F a a a z ( G _ } m d M Z N o.c T .O.X.# ", "X o > > < < 1 2 2 2 3 3 4 4 5 5 6 6 6 6 7 8 8 / 0 0 q q w w e r r r t t y y n u i i F p a a z ( G _ } m d d +.@.' #.` T $.O.X.# ", "o o > < < 1 2 2 2 4 3 4 4 5 5 6 6 6 6 8 8 8 0 / 0 0 q w w e e r r t y y n n u i i F a a a z ( G _ } m d d M +.N ' c ^ ] $.%.X.# ", "X o > < < 2 2 2 2 3 4 4 5 5 6 6 6 6 7 8 8 / 0 0 q q w w e e &.r t t y n n u i i F a a a z ( G _ } m d d M M Z @.B c T ] $.%.*.# ", "o o < < 1 2 2 v 4 4 4 5 5 6 6 6 7 7 8 8 0 / 0 =.q w w e r r t t y y n n n i i -.a a a z ( G _ } m d d M M +.Z ' B V T .;.:.*.# ", "o o < < 2 2 2 2 v 4 5 6 6 6 6 7 7 8 / 0 / 0 =.=.w w e r &.r t t y n n u i i F p a a z ( G _ } m d d M M +.Z @.' f A T R [ %.>.# ", "o O < 2 2 2 v 4 4 5 6 6 6 6 7 8 8 / 0 / q =.=.w ,.r r r t t t y n n n u i F a a a z ( G _ } m d d M M +.+.Z <.B f ^ T $.[ :.>.# ", "o O < 2 2 2 v 4 5 6 6 6 6 7 8 8 / 0 / 0 =.=.w 1.r r &.r t t y n n n i i -.a a a z ( G _ } m d d M M +.+.Z Z ' B c ^ ] $.2.3.4.# ", "O O 2 2 2 4 4 4 6 6 6 6 8 8 8 / / / q q =.w 1.1.r r t y t y n n n i i -.a a a z ( G _ } m d d M M +.+.Z ~ <.U B V T ] [ 2.3.5.# ", "o O 2 2 2 4 4 6 6 6 6 7 8 8 / 0 / q q =.w ,.r r &.r t 6.y 7.7.i i -.-.a a a z ( G _ } m d d M M +.+.~ Z Z <.U B A T R [ 8.3.5.# ", "O O 2 2 4 4 6 6 6 6 8 8 8 / / / q q =.w 1.r 9.r r y y y 7.7.7.i -.a a a a z ( G _ } m d d M M +.+.Z Z Z Z N U f A T R 2.%.0.5.# ", "o O 2 v 4 6 6 6 7 7 8 8 / / 0 q q =.w 1.r 9.r r y 6.q.7.7.7.i w.e.a a a z ( G _ } m d d M M +.+.Z ~ Z Z J N B f A ] R 8.r.0.t.# ", "O O 2 4 4 6 6 7 7 8 8 / 0 0 q q =.w 1.r 9.r 6.y y q.7.7.7.i a a a e.z z G G _ } m d d M M +.+.Z ~ Z Z J N U B y.T R [ 8.r.0.t.# ", "O O 4 4 6 6 7 7 8 8 0 0 0 q q w w 1.r 9.r r 9.6.q.7.7.7.i a e.a e.z z G G _ } m d d M M +.+.~ Z Z Z @.N ' U B A T $.2.8.:.u.i.# ", "O O 4 4 6 6 7 8 9 0 0 0 q q w w 1.r 9.r 6.y y q.q.7.7.i a e.a e.z z G G } } m d d M M +.+.Z Z Z Z J N U U B f ^ ] ;.2.%.:.u.i.# ", "O + 4 6 6 7 8 9 0 0 q q q w w 1.r 9.r r 9.6.q.q.i i i a e.a a z z G ( } } m d d M M +.+.Z ~ Z Z <.N U ' B f c T R [ p.%.a.s.i.# ", "+ O 6 6 7 8 0 0 0 0 q q w ,.1.r r r y y y q.q.i i w.a e.a a z z G G } } m d d M M +.+.Z ~ Z Z J N U U B f f A T R [ p.r.a.s.i.# ", "O + 6 6 7 / 0 0 q q =.w b r r r 9.y y y q.7.q.i w.a e.a a z ( ( } } } _ d d M M +.+.~ Z Z Z @.N U ' B f f c A T $.[ 8.:.0.s.d.# ", "+ + 6 7 8 0 0 q q b w b r r r 9.y y y q.f.i i w.a e.a a z ( G } _ } _ d d M M +.+.Z Z Z Z J N U U B f f c c A ] $.2.%.g.h.j.d.# ", "+ + 6 8 / 0 q q q w b r r r 9.&.y y q.i f.i w.e.a a a z ( ( } _ } _ d d M M +.+.Z ~ Z Z <.N U U B f f c c c k.] ;.p.r.a.h.j.l.# ", "+ + 7 8 0 q q =.b b b r &.y y y y f.i f.i w.a a a a z ( G } _ } m d d M M +.+.~ Z Z Z J N U ' B f f c c c A T z.[ 8.r.0.x.j.l.# ", "+ + 8 0 0 w q w b b 9.r y &.y y f.f.i i w.a a a a z ( ( } _ } _ d d M M +.+.~ Z Z Z @.N ' U B f f f c c A ^ T $.[ %.:.0.c.v.l.# ", "+ + 0 0 0 w w b b 9.r y &.y y f.i f.i a a a a a z G G } _ } m d d M M +.+.~ Z Z Z J N U U B f f c c c A ^ ^ ] ;.2.%.b.u.c.v.l.# ", "+ + 0 0 w w ,.r r r &.y y y f.i f.i a F a a a z G G _ _ _ _ d d M M +.+.~ Z Z Z @.N U ' B f f f c c A ^ ^ k.z.;.8.%.0.u.c.n.l.# ", "+ + 0 =.=.1.1.r 9.y y y y f.i f.i a a a a a G G E _ s _ m d d M M +.+.~ Z Z Z J N U U B f f c c c A ^ ^ k.] $.2.%.:.0.h.c.n.m.# ", "+ + 0 =.w r r r y &.y y f.f.i i a a a a z G G E m s m m d d M M +.+.~ Z Z Z @.N U U B f f f c c A ^ ^ T ] ] $.2.%.b.0.s.j.n.M.# ", "+ + =.=.1.1.r y &.y y i i i w.a a a a ( G E s s m m m d d M M +.+.~ Z Z Z J N U U B f f c c c A ^ ^ k.] ] R [ O.%.a.0.s.j.n.N.# ", "+ + =.1.r r y y y n i i i -.a a a a ( G E s m m m m d d M M ~ ~ ~ Z Z Z @.N U ' B f f f c c A ^ ^ k.] ] z.$.2.8.r.a.u.c.v.n.N.# ", "+ + w 1.r y y y n i i i -.a -.( a ( G E s m m m d d M M M ~ +.Z Z Z J J N U U B f f c c c A ^ ^ k.] ] z.R $.2.%.:.0.u.j.v.B.V.# ", "+ + 1.r r &.n n 7.i F -.a a a a ( G E m m m d d M M M M Z +.Z Z <.C.N N U U B f f f c c A ^ ^ T ] ] R R R [ 2.%.:.0.Z.j.v.B.V.# ", "+ + 1.r y y n i i F -.a -.( a ( G E m m m M d d M M H Z H Z C.C.N N N U ' B f f c c c A ^ ^ k.] ] z.R $.A.[ 8.%.b.h.c.S.n.B.V.# ", "+ + r 9.y 7.i i -.a -.( a ( ( } _ } m m d d M M H I Z Z Z C.C.C.N N ' U B f f f c c A ^ ^ k.] ] z.R $.A.;.[ 2.r.0.u.c.v.n.B.D.# ", "+ + r y y i i -.a -.( a ( ( } E } m m M M M +.H Z Z Z J C.C.N N x x U B f f c c c A ^ ^ k.] ] z.R $.A.;.[ 2.%.:.0.u.j.v.F.G.V.# ", "+ + 9.y i i -.a -.( a ( ( } _ } m m d d d +.+.Z H Z C.C.C.N N x U B B f f f c c A ^ ^ T ] ] R R $.A.[ [ [ 8.%.g.0.H.j.v.n.G.D.# ", "+ + y 7.i -.a -.( a ( ( G } } m m M M M H H H H Z C.C.C.N N U U B B f f c c c A ^ ^ k.] ] z.R $.A.;.[ [ 8.8.:.0.u.H.S.v.B.J.D.# ", "+ + y i -.a -.( a ( ( } _ _ m m d d M +.H H Z Z C.C.N N N U ' B B f f f c c A ^ ^ k.] ] z.R $.A.;.[ [ ..8.r.g.h.u.j.v.n.B.G.D.# ", "+ + i i -.a ( a ( ( G } _ _ d M M H I Z Z Z J N N N x ' U B B f K.c L.A A ^ k.k.] ] R $.$.$.;.[ [ 2.8.8.P.P.h.h.s.j.F.n.I.G.D.# ", "+ + i a a a a ( } _ _ _ d d I I I J J J J N U N U B B B f c A L.^ k.k.k.T ] z.z.$.$.[ ;.2.2.2.2.8.8.8.P.P.h.h.s.j.F.n.B.J.U.Y.# ", "+ + w.a a ( } _ _ T.d M ~ ~ J J J J N U U B B f f c V A ^ k.k.T R.R.z.z.$.$.;.2.2.2.2.O.8.%.8.%.r.:.:.a.a.E.W.s.j.F.Q.!.~.$ D.# ", "+ + a a } _ ^.d d ~ ~ /.J J U N U (.f f f c c A ^ ^ T T ] z.R R z.A.;.;.2.2.2.2.%.%.%.%.%.%.:.a.a.a.h.h.).W.W.j.F.Q.!.~.~.U._.# ", "+ + a } _ d +.~ J J J U U (.(.f K.y.f A A ^ T T T ] R $.A.;.;.[ 2.2.p.p.%.%.%.r.r.:.:.b.b.0.a.h.h.).).Z.s.j.j.F.!.!.J.J.U.g Y.# ", "+ + _ m M ~ J J U U (.f K.K.A y.A `.T T ] ] .R $.;.[ ;.2.p.p.p.p.%.%.r.:.:.:.b.0.0.0.0.u.h.s.s.Z.j.W.j.j.j.F.Q.!.J.~.U.U.'._.# ", "+ + ^.M ~ N U f f f L.A `.K K T T ] R R $.;.[ [ 2.p.p.8.8.%.r.r.:.:.g.g.0.0.0.u.0.u.u.s.c.c.j.j.j.F.F.F.Q.Q.Q.!.J.~.~.U.'.]._.# ", "+ + M <.' f y.K.A `.T T T T R R $.;.[ [ 2.[ p.8.%.r.r.r.:.:.g.g.g.g.0.u.u.u.x.s.c.c.j.j.j.v.F.F.F.n.n.n.Q.Q.!.J.~.U.U.g ].S [.# ", "+ + <.U y.A `.T T R R R R ) [ [ 2.2.8.8.8.%.r.:.:.g.g.g.g.h.g.u.u.Z.Z.H.c.j.j.j.j.v.v.n.n.Q.n.Q.I.I.I.J.J.J.~.~.~.U.'.].].{.}.# ", "+ + U |.|.R R ) ) [ [ ..[ 8.8.%.%.b.r.b.b.a.a.0.h.h.h.h.W.s.c.c.j.j.j.v. X Xn. X.X.X.XQ..XJ.J.J.J.~.~.~.~.~.U.U.'.].].Y {.D.XX# ", "+ + oXC C C L L OXOXY Y Y W W X.X.X.*.*.>.>.>.+X4.+X+X5.5.t.t.i.i.i.l.l.@X@Xm.m.m.M.N.N.N.N.#X#X#X#X#XY.Y.Y._._._.$X}.}.}.XX# # ", "@ XXXXXXXX# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # " }; ���������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Pixmaps/Makefile.am��������������������������������������������������0000644�0001750�0001750�00000000232�12214432632�016662� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ defsdatadir = $(pkgdatadir)/Pixmaps defsdata_DATA = tile.tiff \ tile.xpm \ swtile.png \ swback.png \ swback2.png EXTRA_DIST = $(defsdata_DATA) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Pixmaps/swback2.png��������������������������������������������������0000644�0001750�0001750�00000010312�12214432632�016670� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���Z���$P#���bKGD������ùC»��� pHYs�� �� �šœ���tIMEÔ  $\Œ���tEXtComment�Created with The GIMPïd%n��.IDATxÚÕ\{ŒÕÕþæîU„í²¤ ‹Å€ŠVWÄ[SP|­kª­­ÿ´¦F‚Ù –Æ4¦i5imc»Š­¼Ö6ÚÄú� ‹‹¯¬”]Üu!`[áLÿØ{ïΙ3sîUû‡Þ„�¿çùÍ™Ç7ßÌ9„~-m.Ž:hÉØ/ ¹lʘ†“‡W‡Ïàï½ÿËϼº§½ã݃«÷xÑâ«fþTlyô™­›v¬ìè9ðÎ~=>jݸceË£›G侑¼÷>õÒÒ«Înº­aÈÀ�¼ñÎ~Ü¿þØúæ;ØÞÑ�püb€©ïC·^W¾Ÿa±3<ûžCbêØ˜6n$n¼p Æ�è9øAxìùöe7_|ÆÂšðȳ;×Í;wÒ¬ò‡ßùø³hÝø œ±Ê㕱‹Ðß ÅßRù¦Ò9}_5Y‰±ÀXpþ©¸ãòé?ªO«^|í…Ë¿2ñìªhݸcå·š'Ï€Ÿ­y·?ü4‹7YƒðDËŸè䧸6þ¸ë›3ñ“KÏ�¬ÙòÚ¶ËΚx†+€7íX3ÿ¼ÉsŽ„€¹w?޶—Þ0f³<C,$O¥ãˆM |³¸N¨K¢=ŽÆDZÃñs*c¡ÒûÄJ÷Íž6«n½u…VüýÕ WO?eVù±o~ï“[—~gÖÔ˜óîYÕ/¾N«*•ÉðGí')�úNºzoßoWW/^ùW/¾qÎ$œzbÃI#g\:à‰Ö_ÿ­"€–‡\Á”µƒEw¯}¿øóßæð1—Ø~•ãäÜËÃåœ+ï¿fçžw1hÀQ˜ÑôE|¹±¾yà_»ÝŠß½W�€ #‡ý¾aÈÀB{g/.__RYîÿ»¬î,¾€åyôŸ/«¦ü»r/÷Í>Ç+ï3Þñ‡ÐÿnÖcãøoŽŸ¹pùz´wöbÐ1GclÃÐ_@]ËŠ§‹Wž3éCŽP¸ñ¾'°sO¯árɘB(¿ L±ÍJ[ÕÓÇÒäó«¨ Sb¡"¬ßÝï+3v¿{×̘ŒúÁÇN|æ%wGÜ’Æáƒ‹o÷ÀÚ-»Ä»¤í‹`vb’pŠR Ò‰iå(IÞ �¡ïƒLû"ÄJlÌ]��¬Ý² o÷À˜†¡ÅQC-)40üZ�x`Ãö¾p§U2hÕ4Ô“ý ¡ô'H5DzŸ<§Õ7ô}{ÿ}†iH³“c”æ=†>-x`Ãv�@Óèá×'Ž® �›þù¶˜i l(V3Óƒ³­ž$ÎPª …¥fIô¨´®¢!ÃÖ²Ê�pé[L]?ºØ8|p�l{k¯!ér¼ ql­ ¢¬¢"þrˆ…&c»Ö¢ò½g Ä&u®üÞH,LHLš6Õ’€¶½Õ�h>¸®Xþ¤Þ ü§•=[3Mú¥œ‰ñÚGˆã‘RHíâX«Ê×j[ñ!c�zß;Tùw1€x “ñѤÂRcؾŽÅýÌ~œ—Úa 3¸$PìuÔŠœl"€ò̳a–G‚HâÂ$$vÄGjY•JlCݲ I}Jï¤û.A ª˜ˆ’ ©²Pov AÅq‘òÄJ7Ù™:Ö5LMj)ÃÃÉxâP(ã±è$EJÚ±]xi0dz“M€8¸—úFà Ž)Bù%_ðÅD-# qꤖ_™JP×U2Båü‚yžÒ¯g¶ß)œ@Ávê\ 9¨Dá+ÄöÌR†Z=ƒÀ2c‚$¯ˆqOäŸX¿Wç !Áþñóaœ‹4€ ! :ÔÔšb¥ ÄÎl“óAŠˆîQyys&ký# 2®a›ÌÐ^—s9•²RoVᙌØWñQÚç~ŒmS)šÒ'ÄY$ •‘ÊlRI‚‚„q:”jPe“G$@°K Ä í<‚€²A1¾–J 3ШLgzÖ�£–šTz·e"áLª.‘¶‡ØrÃ*&;™pt½‰ð”ç—¤HŽ’ÏÏ„³4„rM V1u:ÊVb?@' eŸçÇ®3tV0l¾ê‡«1yy„‚JOƒ°G('ÃYÃÊ?ès”ÎL”"+áꈡ™ç>³Êi›íhG1ϨrFÙg­uWÎ °ÃgÔÚŠ•±ðúZÊú�Ž‘VŽ‘e#I=]8œµwÏÏ80™T¦Ç¥þ_tÕ˜ºëâûƒ'(òB )·1¼€ Åå“móÒÂgÊ�!mۦ׉g¸yM³A B들©uJI×$ÁÊ%mÜŸæ+µË AÎ')œñÒl@kª’èx~Gc2ÆËU*J Ê夲. È9Úg 7RyV&§g”„XE‡²–HØÌ¤B6ÉêAaÖ8V QüæLî®IU#sŒÂ^αZ¤¨¥î!uæ=Žô{ì0hyv5Ë$R]D7ÄU"98"Ã÷-\°ñoM¡SJˆz} T-òŒ‰½r™E`’R?6ÒZr2L‡øpá·ž8‹´%3 ·YaR…Œ$ÕdETr\ß“êMJí,ˆ›˜ÛÔ³IFEB'¥öd¡W †Ôn9ØvMF=0!?-›Õ‚¦ ˜¤L9]®¡®C+«"Š„œŸ{‰Ìê$Ö·ì-:Î{k7´FpD/ºY^ äÓ 6 0â–8u=‹g§�#S‹¢Ge‘S•2X*"ƒ¦ƒÍr52BÕX–¨Ó‹•À¨¿HÁ¹r÷¥¿ºÐi"ëxkôv_“[!‡ó§dh u£`$+Š96ékØu@mëä7š<5z4  â1[êed}f„䔆bËÎ 2³üŸÀ6aJÕÙžä]¦0sIzÀap4Z$MqÙ$Ãfo#î‘Ùj¸ßc‘Byq¢ÂHÙÃ2§„§,(„òÀtáA´u°,Š„´(ŠNBÙÃñ<øã°B0;…Í 3U®Âx¬MeVĬ±&Ù®&Ã’kLg“ò18U²£L½1› j5“l‹&A8ÓŠÉÖýz–ˆV iU˜¡ÔN!—²uÇ¢?Ólا°ÖªÁHgI#CòH•µ5˜ŠÂ\ðj JU #•YÍdV¬ 膴]Æ#Z,R߬ ³±a�,Ïežªeƒl2U)ïgqq:‘1B%ez�rq,xLvú›TT8u y©JßKa)­³c&fòn°JÁT”a©aGS,ÒA‡"'ñФ¦‚¬ddjIm5TZñ„dÏdKnÈ’ÂÖ£ØN©Mš™Ž¯L»2ÐÛò_U ¨¢& ª%g5*U«Ë[4•æ TùÌ,jHú\gªç€O´Ø@)qi=ýš˜Ag±ïÑØªD{ V”j‡IÜ8ÔÓ5¢’!k¡§T—EiUfÁ(ªRΖ³»#êô´Þ•p¤Ùk?ôdúŒc”)€jâ3WÎæ\ÉÛI¹«v‘Õx¶GÈêæNB ·àA©v¡§Úæ:Îø(ÖG{~§1:~ªÛF‚ê³±! ãZ]7d]™%títÙ©éL û‹¢.éâ¦W·çLÔºÎhy£R*lÑÚ Òa“A>GI¶c.ºöOlû BMýw1B4®!ý,J—º˜õøk¨–žr(±jìo…¢Bº&Àª/RfÝ{ 1ÙèÈ%gF #kIÁ¥& °GÊ—¬5J„SÙ¥m2ƒ¬¬Pœ#v .;uD [µtŠRдª d€KШÌs€€Ûd­ñæD£úl2ÄÈJ³¹l•ëT!$ªÙ#¥²r«í­È¬}ƒWïÏ-ø‚"+ QˆÅÈ °;!¹YQóAñ˜ÑÊTgE«A|Æ„iµÚ`RÐd£â"`1iˆRü V)´ƒÌdk®¬NEQC.íÓÕh]Ü 1€¢leˆÍ[C ‹HYãþÀÆYØ%·Z6Nð^0òÑ©:#$g•lÂ4Y¯¯«;²†b¥²öÈJ^(%EIõ.‘“„YݨÕvœHL éæ )MÅ0ÔIµ 1g¸} ““d«žY³—À)ˆp†yö}€‡ú¸z' Á!0+f#' �{ö냑·6½î§Ãœ'hk‰z^O å;²=}T[opBÈ„L²€Ã« ²HTØI5ˆú{ÏAÿÂ&­Ò¹Å•²Þ˜l¬`±AôŽn™uÒ^š£‹Ö2ìÅ’°—¹[ÌOâCèFV¯ W½‚Ù›&MV.@\…Ê´²'Ù®S®&ö3Lòz…ȇÚ+ð Ö”®¯K6 PˆLïïÁ 1²ƒ÷a,º°ê’r½ ëñ{…T„ÈÆž"ý÷×Ô/€==ûŽ�ÀéljʼnòêÅQÔdöI’ŠÝ³°?¹ëƒpp8¼YlÁéİŽúŽŸ>q�`OϾ#…]�Ð|ú)i¦%WcR°Qe©þw*y»§¨tŸÎ×åŠÕÊ8=1Úl¯&•«`Áh>m�`WGgg¡½£s9�\?ûHÏ4¥|}¢þH_ì%$0¶ç Ü_ï«X‘ôh-dõŽdÙ §ÍÌ(pýœ¾¤Ú;:—ööî_´§{ßá1£0§yš«œ‰ V°úN¶}‚ò F>5i†Ø‡XP]÷F¥±à«?1æ4OØQ ØÓ½ïðÞÞý‹ ‹oºæðú-/·À²[®C±Žœô· :Ä¥Óز°‚0)©®ÁÀÌñ9Ö&ghd‚E*`Ù-×�Öoy¹mñM×.�Àë»»¾Ý³ÿ`h:©Kožoxak''ÄËP¬œÌ§H-¨æ<ÿäÿ†ý›Ú‡dÓ‡¥?˜¦“ñþ¡ÑÑÕýC ´—ØÓmüϸiçsÖä“›§O„¯w`ç›»Ó‚‡. ¸«¢‘©ùç¨rgs·©R=ñ»òÂsqÏ­7€ˆðÛU¹ëÇ æ®JFõàŸ6¬™ÉÌ9GŽÁÜ-EÛ¦­)¸·6B4k{™^^k¿Ö•ÅMR2Ó»I)¡–þš}Þ™XõóÛQWW‡OmÞpõWÏK·Ó€Çzàá gÍ<í´¦/Mºö’™8àh¬{a»iµuùäg,IaÕ*³Y{}Ò}õ"üô–øÕíßC¡PÀš Ïo»ò¢éÓ3zÙ÷{äÉMëæ]Ü'¥7vwáÎß<‚Ö¶õzU‰¹g—sÞ‚æº;ÄÛkÄ\(é§Á",˜= w|÷jŒ?ñ�ÀªõϽpù…çVßR³ü»wÅK¯ºhÆm ÆÊ‚¸åSغóulo Ýû:T-ûl¶ÌD6¾gµeŽSÌ1üxLm‡i“ÆãÆ+.®|xÏþ᱿n^vó¼¯/üØJÔrßC#ZÛÖ­ìèêþüm«ÛÕýQkÛº•-÷=ôɶÕU‚(Žª¶dì —M™8îäÆõŸÍ•?8ÄϼôJ{GWÏê½½û-þþüª+ÿxb¦twõÚ����IEND®B`‚����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Pixmaps/swback.png���������������������������������������������������0000644�0001750�0001750�00000012553�12214432632�016617� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���Z���$P#���bKGD������ùC»��� pHYs�� �� �šœ���tIMEÔ  urª���tEXtComment�Created with The GIMPïd%n��ÏIDATxÚÕ\¬ßeu~ν_Š‚·?(-0´Èœs•1e(L¶8³±uaaÌ?–-a#˜Åˆ]L\²‘%„ŒlÊ?Ø´+PÖƒBÀ£q­ba½­¥Þþ.B{ϳ?>ïsÎû~.lûG¯©Üûý~~½ç=ï9çyÎóyoà率ç&Ëg¦o]µtò±5§/Z³bÉd?ƒ?G_U>óâOŸÛµÿø†Ÿš¿åÆrüÿuÁ;ž[¹qËÁõ»ö;ÆŸ³Ÿ]ûŽÛ¸åàú;š[¹Ðeì‹úæuW®=ù¦e'OOÀK?9†õOÂgŠí| ûŽÎŽ¥�`ºX¾"ó$ýN÷%ýÉ|Œùùo{B¸vù]�!–<5«ágžˆë~y1Î\~�`ß‘y}äÙÃ_úÄeKo~Ãø·g>úá g®È¿ó‘9lÜrÊzé¯ PX¿7_3ܰü>~#æh†Ïzתÿ•dOâ£Íà®<gž:â±ÿ8ü­_¹`æ’×5Àß>°þ£/¾�¾úØ>Üö¯{Ó›Y$ºC"$yAš±æí¯bޱVú ;I¹‡±>…å2b¯þþìÕËñ©+–�ßzø»|×ÌE£xð;î»ú¢Å×Î+ñ'_™ÅÛŽ&|VÒlÑÍ\gΓûJr}:/Ap÷hkìa°ì¹>Œl–¼aßÿΓñWŸ>ÓS‚‡¾whóUï^|Eþn*ÿrïSs뮾hñµ$ñgÿ8‹Ç·¡ 5ù;Aª� Ã Ê¿á;„Dþ<?“Ô| ¨,‡§oÁtÞp‚&ãç®áùÒy�Õt/Ã<±í0nºk$ñá g>xïSsëœnßôòâ_];s�ܵy<{`ºPœ¦Õô™¦uðåó4–„c‡ § ¨ƒAÁbhäcQÈb@–ëµ/ù¸l”òûðßÿþ!ܵy�pÍÅKþüïÞûÖb€·-?á«ËÞ2™zqÏ«¸íÁ—ËÔfë“Ä0-3QŠÉ(0–×2&˜QgQ‹AûU5R™hÍO’gº:‚§Cñˆt ÕtáÜÛ6îÁ‹{^Å›OœÂª¥“¿€©Û7홼gÍI×�À_ß¿óóùd�ªÆYXfyæÓ ò )ÌÌ)¨æ\¤k—ÙΣ(KVÔá_YšÓ!Fu¹æ Åvç翹�à=kNºæöM{&“å3“[W.9a²kß1lÞz¨M¹¬$v> Hž•ýóZjd"X^—âÜB\0ÓZP˜'f^ü5K¢a=’LÏ‘.%NçkÀæ­‡°kßkXµlÑdùÌô­Sç¬Xt=�lxz_XÏyýöÖwy-A°ºZ ¬CŽÃßêî1,0øõžïŸãë}šåSŸ«zLVãµ %±áéý�€sVœxýäì•‹Î�€-/In,už’Û I‰˜ÙýdHk6-€h­ŠG¤$-) ŽÅÃ${Zή2Ì  ,©$’Z=2»‹“•¢¬<Kªµ”Õ¹Àa¬�Î^¹èŒÉÊ%'LÀ¶ÿ>j‚š¹™5|.ÖF} áÁÓáR¹¦fÚI­•²½iÒ~ýÿÙcýŸ¥º¼=5•¦¶íx�°rÉ Ó“|­ƒGæáÆ’ ¡©mLõÊÎsÔ™2UKÁ Á׉ö"ƒO¨‰©û5±5t†öįT8±·mŒk2W Oê óˆKâEÇi”¦Ò.Ãf*&éC" àÈy¢ÅXÚ¯È[+5�ÆMž˜Ì`ÆÅ¬X—;X†ÉkWâªc³ük‰Ÿ PÅ^Òßî?ñ# ™…jE¥÷51WpI’Á×R*2)®’b†IEbØÈ fíçgoÎ7žªeû% Á=?¬˜ƒ€Y]&и #¡z/ÊX¿–o~–%x…d¯«u‚˜i(¦5.àp’å-‚gMœ[Ñ,~áæÈÐÌmu€¥`h×+Á6rT(#žd3˜2lIµDqyÙ¢ÄÔ‡TZËv®,u–ÙÁþd-Ø ×ŠP:Ìè%eÆí”²Jœ  —i£'F €‚Ý«ÿ ÷WÇX1®ôi ÒO-f†ó¥¦Ö“Ç@ëöIÙPë§¥ÈäöùxÏ1¨!ÜSÄ”×¾4ö™Nú0TM5@)‘ÀF^‡(¨,[–./ÕØ šnžŒ5 Ílk -u¹•µª¦œÃkÈÖÛjÌÒbäÄ•£ ‚AI(LPؼžX²˜]jO!_I²-èØ6_µ¹¼^«„-ϹúsSL)¥¸9§Iƒ%¢§:¿<·h¡Ã²[©H võI3›]ž%«dÖØ´ÜËT99 iÛ:Û%x„Œ$>FtKÈN%(ÅõBÄtŸÙŠ£zŒXjJ²'ä€f« äAç-žϬÒÀ~¢V2!×Ñ Xc°¬`*ŽËÄ�†²N  ñiPÍ ª-œÁ†(®ÊDóR)¶Hç•â$Í”§À¥"ÆÄbã*ª4\Î-Œ€údà–€çì Ëp‹hMm)ª‡Dë<³F1˜4Y×¹„e“£¼”`é/ƒb,ðîÏz—Š!ž]î@Å,ÿèaÆõ3&9÷šZ5ÄBše™Â™}V°P–³˜s\�3½�‹(m2"WK�{ýJк‡†Â‰ýÖŒ[6%-Š¡-ÈcÙXf* QŒJ…!(ÙÖBÎ{ØB«I]²ôÏFsRˆmKÊÌÂH ŽË‹Ç°iuû gÒµ%ØØ¶K[Oð€‘J²ôA"PÉiIs´Ï)Ï—Ž~6Ä@jC$d7ƒ¡a0‘« i˜§J½I)ÄLXêgfæXKÙX†•¡kLAD´B]×·³”µÐcïÝ!Pb‹-dáÀZÛΛ”¡¼¶øš ؚ݇2jŽÖd©ëi´f¬FG·,åþÒY@tWµÔ´é³ciŽUr¼°ÍPË«Eÿg"KÉk %Ž«¥)M ±f©Õ¥eK¥ Wl!wOƒ`ïÄœÁ°@!$†æÜiò{áYs$Ò�j¢N@áX±X_lSCŒî@+jÌE€bê‘”ž§´\¦A A0C¥”55ºÔ%Wö‡ ÂZ.!·¸Ës”"+.q�¡ô!kÊ�ƒª.GÙûº1£ n·fI.žÉbuEJçu9‰¸¶ZéÛ0qÂ3–®Vˆ­2›%üS20°ô‘Ït;Æø�ƒG`bÐT!ãS¢³eNYØG1%©–ÈVpj®cúƒv9 ,l¨qõé%³Z"‰lÊHT ËT=wWLh›Œuæ"Óm#4ñwL¡+$µEæ D¦COeÇ2O3\×’90£úY{ #pØSã45.“{gi Ç6Å;|Rì G²mªÐ6UD̸kNŠå —i¹‘&^vIQ›g«÷i«çɳšal2NÌHµ"ëöÁœ÷Ïœ—P=–zWgˆÄ4\*Ã<‹ÒµÖGHQTò⚌µkkqA;tšA•Dɘßp vpbà{ZXž$aIª˜†òë"ÍPú³™½˜a‹é+î|židº.Æ´LTg9Šj˜‰ì´ c[d±·Gtú%yâc"ž*6ö�NçnÒG¤û@KñD'JGƒ_-: YEp½CB·VBÃÑñâ\W"U`Ûé–sàHÇ×õ@¤ñ'Cê§Á:ÒthÙ’8½¬³šÄÑS^?${;V¢­áÛ8Ë®ŽAðz1ÀH_+UnÞFÝÑH8Sg§]²ÑôµÂ\àú —f,¤çh È„¨Réî¤Àªm®Ž;&«iNe†¾‡TòÂò¶èJä^Õ¦u䵋²ÃÝ™g³3¯¡Êmø€±Þ¾ïý]¯ÃiX¶Ø\YúfD­¬Ív -OÈÙ6°lõq¤MÑAƒ•…Y5+¼RÌís\2•šÁU.§ÅÔò¹÷àÄÑÚh ½À\ý"MƒÖÂþˆñu騦՞d¢ õ2=(xõ•×~¹=T‡êÉ(; ,1]­Ÿ\¸®ß"«6ÓÀ² B UiI¨Ï%ɃA.M%=T…žõwmÓjçÆé‘G }·YègÜv„"v Vó¤d§Q·0åt¡Ž4FB½TŒ~ˆ•в-í^EÞ!¨&PW(5TlêÔ–l©ñÕ h”S Ü£J}É"Æ–Ð5ÊŽ¬ì¤åíÄw‡bØS;X\ŽÐ\¯î#y‰ ¿(,Ô˜6ý§c¬—ŠãòÅM5€jxéI“¸À®(ŒÐ«ÌN‡RDE%¥Z„÷ˆ¼ÐQƒXá6´"ÏÊ }X“ß³ÖXLEDÍTxZ¾ìr‚è¸þš4@†d0ô¸"íK]mrŒ’™¨±£„bGtáP+`ÑÊ®è ¤x)¼«˜Ä^\àß[ê$Í5>4VHÔìw ¦ÒÅ5F èѬVéf®àÉ¥†õ1]ëóJçÊ £kIl‘‰W4R¼š‘–0q�Š!³´Ý^‡ CǺaŸÆ¤²ÒYQ¬#‘ÙŠx<ž¢í;ì‚VÚþí亱å˜gY¥r [e(‚âo‚¦íÜGì5]8~lD\�¡xøÀ §jN¬iŠ)ö*ó1MU dF׳µ¡<¶¡�õ%…ž}lHTCk[@sP ,W¨xuwlì Ö‘¹?'@¥´EʬJ:Ç>¢Å lþl¢v]ÐØ ¯ïUáéŒ@vô\P.ï^±JßøzëHRÜ_bÑòø±óþpìLмÍ!b„ßîH[Qra¹|•‹?•(/^K¬µsã»9¦Üj]œ‚‘²qcî#™ÅâôÁ¦oàO1oª°«: „ˆW‰J~ÝMÐ*¸£ :- 1B©¬ãqõE‡ £©.ŨÐ[IŠV±$":ô¢M06F¥v 1FŠ+Z™±N쥚“½ßr©«N"Zéª×+èš†é­ ŽFEàÍ·Þ'È"‚ “±ÛËiQW^^¢.ðJÑLu™d-®h× e+ñòì•D®Ý¢A^“ S<‰pÒ¾¯Y¯o¦¤SiÕ@&õ½C£ÎÄG£KF´ó=JôЧö% Zu ‹~¡&Ӻﰯ&ªQxu˜Ð¯ÕT(Áƒè‘£Ä{ü¬CË—Ž3âóR‡Ãt1)<›b Ód&)“¤Ù¬À£ªT:›fˆÔïÍŠ}¿Bî*oàèšH˜Ç�%·âÎAyþÑ%PÖ"£ÒJüŒ¸þƒ’¨z‹*…3Í€-Zý|`ž¥Õ3è~Äz¦i²ÒÇ,ËYrÁ ÈVÕ ÷²D€ú9 A“—‘Õ‡h¤ùFõ]U ‚ø:[žÝ€ÅÊR—€íR8ûu@¯PÐØ£¡ Ë™ô(‰æ R[tÞŽ5¿S)µÛ2ö“IÔ¼t횪£¡¦¸èÕ"YÅÐrž‚Øp]^¯´$Kn¸°B±¶sßé,·2z»[ò€žêEFÞht©Á#¥í[¢"rôá× 6‹5?xe[IgEk©2{„Ȳŋ0wàÕvr‰–y¥‡<fÁõø:x¾§<w¹…}É|Q¦Êˆ§†–ؘÀâ”™7•S¦f÷™€µçžZ7K¡ß9½W\b…Ý_ÜI¦t“Ì<ec»» ënöز“„=/ïáwL1”5Ý®v··ç € W/�Ìî=2?µý¥ý³�ð¾ N/•›ÿê “XjØ…†ÞƒW5†Û+¨lQJUõÛ娭aÔÿ-n[uï1Rý+°åk“Äe¬�liÿìÔöûï€O^u¾›©îî0ðû�Ùý9¨tû†ÔG¨[Ùøý†ì83¿'¬1­Eµñº"ÅÍMCøý‹Äï]õŽÁ�;öÝ3µ{îÈ-³{Ûi3øÈ¥çxW6©ÐlE« @ÇÍí9îÁá\Ø/˜ï­ÁP–Íf* .^7|±@©y´á9>réÙ8ë´Ìî=||÷ÜÑ[¦>÷™KŽ?¾eç�°îÆË05 ?#v“°ë ÕE‰ºqQ1u:^šm´@ëúy7);[56Ð`†êm¶×Ç¢]Ê;Iã–­€©iâ‹7^�x|ËÎ>÷™KŽOÀó;÷jïþWô¼³–á 7\Zg[á¶ÂB|l�(ùƃsÔMjºÕ´G’ŒAßìMqD ¤ôoŽWƒ‘6­ ˦Ån¸çµ G^9†ÿúñÁ?€i�xlï®~ï'Þtñù§]þÞw­ÂÖöâ/Ι—eôE)[/‹“µÑØtd`Uñe h¢öÐé ý;(FiÞ"Icø¬Æ—?û~ˆþaãÖ¿üãß¾ø_šëÞóÐîûíü¼âã7?€¿ùB½•0 ±ÀȰ¾ÃR¿§W䫾¶¾2kÞ6*y[Ѩ,_4aÍûDVâwõ¥oÇ××]ƒéé)üó£?Úü[W¾ã `İ_Û´mýõWýÂu�ðå¯}·Üñ¤©®z»y¸·ýK�q/E©¤jÓ9–±}(Ū–%òŽæ«?î÷Å/ÇŸþî/�îòùïþúå«Ç7TÌ?÷>òÃG³•žß¹ë¾ò4îÞ´­2Òç‰Kf¼$-S+M'Îð‡uw&²—¼¥æ'íqó§/Á¹o] �ØðÄ~뺬yý-5óÏíßxfÝǯXsÓ©KOÊß÷ñç~Œg·¿Œ—÷¿ÒߟG<r\P°‡(G@´¥vë �Kߌµç­ÀÅç†ß¿öœ{æ0ð½ûê×Ûþ¥?üÍwߌÿíÏçï|jåÝ›¶®ß±ûÀÏݶº;v8v÷¦­ë?çSÿ·muƒ!&§Ÿrò­g¾øckW¯XsÆŠ·üLn¬|øèk|ò{;ŸÛ±ûà†ÝsGnù‹Þ÷º+ÿzÒ?äŸ^����IEND®B`‚�����������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Pixmaps/swtile.png���������������������������������������������������0000644�0001750�0001750�00000002505�12214432632�016650� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ªiqÞ���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÔ $I™*‰���tEXtComment�Created with The GIMPïd%n��©IDATxÚí›OHcWÆÏ»÷=“Hl3jCó #:›àª"ÕÙØ)$n Z¤‹)t3¤‹BÒ•€)(f#µ›@Wi›,\R¡ 1&C1X!™ØéLŒ1ƒâ?}IÞ»ïua”`ÑÎÔÂhr¿Mî%ø~÷Ü“óà} ¼¦dYþ�À�Ð�ípsT€—�° �ó�°Ì0Ìöµuÿ]A¾•eyW¾e"„dŠÅâ#·Û®òÈ\ö…(Š_�À$Ƹ•œJÌçó[Éd2‹Å²ñx|gmmí/Qå·yômmmÜÀÀÀ{6›­£§§§Ód2T*•cÌ"„Aþ”$iP©Tf^�!ä{„ÐBáyþ8•Jeü~" n‰pƒ¥ÓéN§Ób·Ûû´Z­®©©Ib!Ã,Ëþô¯�!3¡ÏAr¹\6,MMM¥n´ñ‹2›ÍJ¯×Û;88ø¡F£iÃcBÈW,ËN_ àìäA¨¤R©ôÄÄį333[p‹åñx,?þH¯×Y–e/VS{ç1Æ?‚ ¤R©”ÛíþevvöÔ\.×}‡Ãa5 &Œ1.—Ë÷Ïz>ëö …",ËrÓæææË±±±H0܆:Q"‘ØÓh4ÇÝÝÝ&¥RÙ �6„Ðt4•�@KKË7ãVžçÀÒm/ûK®Âz$yZ©TÊÇÝs¹\Ÿ_Y–w !wVWW·Z­?ß¶†÷&qiiéK£Ñx�þÀw¡ê„×Ný~¢^Í�d³ÙR(JBD„P§,ËzTo!ŸÏoƒÁ-¨sù|¾užç‹ÕíTí!™L¦oúó¨P(”s¹\¾ºµ¢êƒ Äb±,4ˆVVV6j+à�@<ßi�ápøyuyÍétú¸Q�,,,ìV—MçŠ'''¤Q�ìíí gk . € �(� € �(� € �(� € �(� € �(� € �(� € �(�  ¡�(•ʆQëõ|144ô~£�¨õŠ� �`³Ù:@× ‚Ó˜ ôôôt6 €¯ËN36`2™ :NQïæu:Âd2ªÛùó P©Tj§Ói©w�N§Ó¢R©ÔçÀ0̶$IcÖn·÷™Ífe½š7›ÍJ»ÝÞ‡1f%IÚ`f�ð<ï@1Z­Vçõz{ë€×ëíÕjµ:„Ãó¼ ú’$Çq/úûû?ç8®Ýh4¶677...ÖÕ›£Ç222òP­V¿#Šâ‹ñññ¯£Ñ¨|™)•J] …â!„äóùÜôôôüäää³z0Ud¦vÌB†1ÆX¯×‡ÕãñXêáä‡U¯×«É±áÚ á?bs¢(:0ÆßBÈááá^$y:::ú[6›-ݶ†÷Ʊ¹ŸbŒ”$I®T*åB(Jø|¾õB¡P¾éÿó× NÖö„P„ã¸{’$É„‘çùb.—˯¬¬l„Ãáçsss¯J¥’ô6 _7:{¥Ün7*‹!™† O_”,Ëz�x��Öêg× ªüÿŸÿyˆŒËáݪ����IEND®B`‚�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Pixmaps/tile.tiff����������������������������������������������������0000644�0001750�0001750�00000007650�12214432632�016450� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��t€"‘p8"-„"aP´D6…ˆDbD*-ŒFcQ“¨ ƒB ð´J"K†¡Q¨”R7/˜EÄqè!7›¡§H4ö|‚@ÐOçóå÷G¤Ïƒ¹Úœv:ÎU:™¼ÙW5šLÆc)Œ¾\(ˆf“iÂt†A!'ô þ}>Ÿ)4Še6ŸQ©U5j¹¦´f1˜kåB}Š ‡²Yç–»jáE¹\Îù;µB£Tª›k“Eo]-•JDÀè9 ±sìmÆs<òtú…ç1|6VkuÃ-|°T)ƒšdU™ „Õë('ívF“”ÊívÙœÞv·]0KEr¡D”"µ8ËmÇ]sÙlîù|Åî®l¿u·•âákEÞ ñÜ™í· ×©ºêÚ6¬Ã¨Ü«/’ºÏ‹bÃî$¿(:ÔŸ­£ðøó©-‹)=Š Þ6³PC8ÝŒ°[²-Šâ¤'ˆ‰ ?̃Ðè@ƒœ:9#ŒBܾ1 ǰO«¸ï€ÃLDÂki.cÔÚ‹ÃnÜDPT~ÀŒ ôR'‰R(�…9Rb“'Iêtl9ªM´>÷Ç‹ô} Q<‰B0-2¥º.“¦9Mox×ÄXÃ8‹®Ð°);ÂLí/Åñ‹a>O³E,©Ž4ØøP޼¯C»"ì„)Ë‚E0(3Ðö<Òå.½J’¬ÞÀÑõE9Ë‚(€ ËäC–ç)UlkKMR¥ÓÓƒ³[ hª( âHŠ׉-S`XR…^ªØÊÌFëÐÕ­D. "°§Fˆ– �†3Ôõ6”½‹6[ÃD­e ¶eš,е ”$õ«_OS*ïmÐë9{Ö–]Æ-Á¢´V$àð-u‘uà§J3@ä©MzÞÌõ?q –h¶,‹›Giaæ.†ÕSî;4ŽC€à7áY-Á|_X†Ys]| Ýd-ÏØþs·ŸAxmó‡åye¢‡šBW¥ÕØöAצ¦ëJú¶ƒ¬‹lé€Aà(�"7bcÙÈÞ7l±æÏ“hÀ³­Qy}M¸‚:NímlJž¡z>;FÓPjùN…Âp¢P’"hÁ纽7ŽñÇoc`Ô¾ò,îÓµp\ÃïÍ‚|ñ)ZŽÊæûÎõ²ôï‡R3 œžQ•p{nÚ+õø¨z‚¡ вØFÉÓwÝÿ&0Œw-¶xÞDT%óz7—æ¢Vogâ®5zÔÿ±íxœÀ­~Å]‡dàóOøOÔ_ %zïd/6·Š÷M*;Î?‡ôEK²7[©Ó@w�Ãu¯¶š&\V‹œ.Ì¿¢(Çëé=ð7< ÓÛ€ï¨ÆŠ^\%n‚†vŽßd+O“Á˜bü`ãó P~;:Aˆ�Y•@Ú `¬� ån",¥mœÃÞPR»|ÁÀ0ŠQQÝ(€õC4[‹ªÒ ¹X‘!¨QŒ‹ESC€s@lSˆt8"C "ÜrxPÂ;9x8÷¢`O’Nh#¾ r „"Åä7ÆàÚéÃK¾ ñnDX¿Þ3óeÐÚ2¨AÈ3òhB!ä?'Ï„¢Ž&ÉÀI÷!¢*†ÒI.Jè¼²–‹q*E©vÚ«ïQ*&?(=+$œ® 2T;9’ &[:o‘d¿H™x•ÞÈ_ ³ªTLÇ1%sšnÀ0Xäz…rŠRKÔ³:æ¤wm±*1ÊÙ´'˜:Š�À�©8›,¡…²•§¿EæœÕ‘ñæ=Ï(À?vt,�šß` m4ZvP!(×Ty€ž\Éô–A:ZRàc¥”e• ×ãÛ4Ö›Æ`xA¸0à¨È&ú±j´VÒæ!Qž0U¬S ™Ôº>+@C~àäÕ*©UñÖjµ‹M0¶öÂÐX¯5оDº•1jeihÀøOZw[È´rU ¡GUlÖÕyƒµñúM‹GêhC³A œË X €4‚wÕÆ…à¿cêøY²AaäWÀ¨p+ý¡fÍË ¢ Áp$ª¤YöZ@Åc¨ äe•îÊ[ -l˜‚³StÕ ¤ %¡"È+×Dã²6EYI…lh=6¹V§ƒpn ê˜&ºB­][K4Ø}ª²VRkÜ{Ãm,Ð@Àö4[{?td&ºÒ1Q]«WkB¨T•j0'ð›G«=hs–ÖýƒÐpˆ0À°`-9ê\wn¤TƒE Tb\Áá'1@m1vStál1†¬ø&@ADHêÃÞ>%Åè'„ɵ‹-™ÆA ‘MÛö*|Xd°R AëGö=”äR}ë-—ÅÕ¢JÙ¼e“²vQàà e†²°%¸îA5˜Ë1- Á,ïdv)xñˆA„xÐå�uB³X6À× á R A6:8ð‹(”R#N Á(%äznPBÐZ e�y¢ÍPÃ�ƶæðaœ4†s@ƒJC@œéžÂ' Ö­I¡2€;¹º¤Õ�n A˜3ÕøhePW•6rÖ`Z ÕÎôۚŸJÍV ‡ ñ®…› al`n 6FÊÕöãf‚Íݳõˆ"@„À ”^ÛXK^ãѸ·$hw˜ƒY“²ê•;€¯…‚ޤvŽÒ�|  ‚F׌ X9ºî‡Õ9¯ å=“²Áx- °‚~\ Á?â9ËYq0>@�2Þ|ÀØ@g¢€0ú@ÀW¦0(À˜ @�þ¬@h €/®� ×ÀHì]ˆö^Ì�iç`�:€ÝÚÀqî]Ϻw^íÝûÇyî$��������@�������@����������������������� ������� ���� �� ^����$�� h��������������������������€��������k������ Œ������ ”�������(�������1���� �� œ@������ ¨����tile.tiff� Imported from XPM image: tile.xpm�H������H������ImageMagick�����!!!!!!!!))))!!))111111999999BBBBBBJJJJBBBBJJJJJJRRRRRRRRZZZZZZZZZZZZcccccccccccccckkkkkkkkkkkkssssssssssss{{{{{{{{{{{{„„„„„„„„„„„„ŒŒŒŒŒŒŒŒŒŒŒŒŒŒ””””””””””””œœœœœœœœœœ¥¥¥¥¥¥¥¥¥¥¥¥­­­­­­­­­­­­µµµµµµµµµµµµ½½½½½½½½ÆÆÆÆÆÆÆÆÆÆÎÎÎÎÎÎÎÎÎÎÖÖÖÖÖÖÖÖÖÖÞÞÞÞÞÞÞÞççççïïïïR´@ �!��Ð@&Ð@&S@ S@ S,@ S@@ � ���(�� mIoptrdef or mPX Mmiga:et li.epx�m��p@&p@&ú ��ø��ö��ô$��ò1��ð@��îQ��ìd��êy��è��æ©��äÄ��âá��á���ß!��ÝD��Ûi��Ù��×¹��Õä��Ô��Ò@��Ðq��Τ��ÌÙ��Ë��ÉI��Ç„��ÅÁ��Ä���ÂA��À„��¾É��½��»Y��¹¤����   $$$$(($$,,,,00444488<<<<AAEEEEIIAAEEIIMMQQQQQQUUYYUUUUYYYY]]aa]]aaaaeeeeiiiieeeeiiiimmqqmmqqqquuyyyyuuyyyy}}‚‚‚‚}}‚‚‚‚††††ŠŠ††††ŠŠŽŽŠŠŽŽ’’ŽŽ’’––’’––šš––ššššžž¢¢žž¢¢¦¦¢¢¦¦ªª¦¦ªª®®ªª®®²²®®²²¶¶²²¶¶ºº¶¶ºº¾¾¾¾ÃÃÃÃÇÇÇÇËËÇÇËËÏÏÏÏÓÓÏÏÓÓÓÓ××ÛÛÛÛßßÛÛßßããççëëïïð����È@&È@&������ V@�¸@&�����8#8798�6 ����� C@�¸@&0�����4#4847�e@����� Z@�¸@&P�����9#95a5�1`����� A@�¸@&p�����8#8696�4€����� S@�¸@&�����4#4344�b ����� D@�¸@&°�����c#dfd0�8À����� F@�¸@&Ð���������!!!!!!))))))))111111119999BBBBBBBBJJJJJJRRZZRRZZZZZZcccckkcckkcckkkkkkkkkkssss{{ss{{ss{{ss{{{{{{{{{{„„„„„„ŒŒ„„„„ŒŒŒŒŒŒ””ŒŒŒŒ””””œœ””””œœ””””œœœœœœœœœœœœ¥¥¥¥¥¥¥¥¥¥­­­­­­­­­­­­µµµµµµµµµµµµ½½½½½½½½½½½½ÆÆÆÆÆÆÆÆÆÆÆÆÎÎÆÆÎÎÎÎÖÖÖÖÖÖÖÖÖÖÞÞÞÞÞÞÖÖÞÞÞÞÞÞÞÞÞÞççççççççïïïïÐ��!����   $$$$(($$,,,,00444488<<<<AAEEEEIIAAEEIIMMQQQQQQUUYYUUUUYYYY]]aa]]aaaaeeeeiiiieeeeiiiimmqqmmqqqquuyyyyuuyyyy}}‚‚‚‚}}‚‚‚‚††††ŠŠ††††ŠŠŽŽŠŠŽŽ’’ŽŽ’’––’’––šš––ššššžž¢¢žž¢¢¦¦¢¢¦¦ªª¦¦ªª®®ªª®®²²®®²²¶¶²²¶¶����������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.de��������������������������������������������������������������0000644�0001750�0001750�00000010070�12214432632�014464� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������// // Hauptmenükonfiguration für WindowMaker // // Syntax: // // <Title> <Command> <Parameters> // // <Title> ist ein Text, der als Titel benutzt werden soll. Falls er // Leerzeichen enthält, muss er von " umgeben sein. // // <Command> eine der folgenden gültigen Anweisungen: // MENU - beginnt (Unter)menüdefinition // END - beendet (Unter)menüdefinition // EXEC <program> - führt ein externes Programm aus // SHEXEC <command> - executes a shell command (like gimp > /dev/null) // EXIT - beendet den Fenstermanager // RESTART [<window manager>] - startet WindowMaker neu oder // startet einen anderen Fenstermanager. // REFRESH - Zeichnet den Bildschirminhalt neu. // ARRANGE_ICONS - Ordnet die Icons auf der Arbeitsfläche neu an. // SHUTDOWN - Beendet die X Sitzung und alle Anwendungen // WORKSPACE_MENU - fügt Untermenü für Arbeitsflächenverwaltung ein // SHOW_ALL - Bringt alle Fenster zurück auf Arbeitsfläche // HIDE_OTHERS - Versteckt (mit Ausnahme des aktiven) alle Fenster auf // der Arbeitsfläche // // <Parameters> ist das auszuführende Programm // // Besonderheiten für die EXEC Kommandozeile // %s - An dieser Stelle den aktuell markierten Text einsetzen. Ist kein Text // markiert, wird das Kommando abgebrochen // %w - An dieser Stelle die ID des aktuellen Fensters einsetzen. Ist kein // Fenster aktiv, so wird nicht eingesetzt. // // Die Bedeutung der ausgezeichneten Zeichen (% bzw. ") kann mit dem \ Zeichen // außer Kraft gesetzt werden. z.B.: xterm -T "\"Hello World\"" // // Jede MENU Anweisung muss eine passende END Anweisung besitzen. // Siehe dieses Beispiel: #include <wmmacros> "Anwendungen" MENU "Info" MENU "Info Panel..." INFO_PANEL "Legal" LEGAL_PANEL "Systemauslastung" SHEXEC xosview || xload "Prozeßtabelle" EXEC xterm -e top "Anleitungen" EXEC xman "Info" END "XTerm" SHEXEC xterm -sb || color-xterm -sb || xterm -sb "XJed" EXEC xjed "Arbeitsfläche" WORKSPACE_MENU "Anwendungen" MENU "Grafik" MENU "Gimp" EXEC gimp "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Grafik" END "X Dateimanager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(Ghostview) "XDvi" EXEC xdvi %a(XDvi) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobat) "TkDesk" EXEC tkdesk "Anwendungen" END "Editoren" MENU "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Editoren" END "Sonstiges" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Sonstiges" END "Hilfsmittel" MENU "Taschenrechner" EXEC xcalc "Schriftauswahl" EXEC xfontsel "Lupe" EXEC xmag "Farbtabelle" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock -shape "Hilfsmittel" END "Markierung" MENU "email an" EXEC xterm -name mail -T "Pine" -e pine %s "Navigate" SHEXEC netscape -noraise -remote \ 'openURL(%s,new-window)' || netscape %s "in Anleitung suchen" SHEXEC MANUAL_SEARCH(%s) "Markierung" END "Arbeitsplatz" MENU "Andere verstecken" HIDE_OTHERS "Alle anzeigen" SHOW_ALL "Icons anordnen" ARRANGE_ICONS "Neuzeichnen" REFRESH "Sperren" EXEC xlock -allowroot -usefirst "Hintergrund" MENU "None" EXEC CLEARROOT "Schwarz" WS_BACK '(solid, black)' "Blau" WS_BACK '(solid, "#505075")' "Purpur" WS_BACK '(solid, "#554466")' "Weizen" WS_BACK '(solid, wheat4)' "Dunkelgrau" WS_BACK '(solid, "#333340")' "Wein" WS_BACK '(solid, "#400020")' "Hintergrund" END #if (DEPTH>=8) // Einbinden einiger Farbverläufe für Anfänger und Faulpelze. // Nach dem Ändern muß 'RESTART' ausgeführt werden #include <gradients.menu> #endif "Arbeitsplatz sichern" EXEC SAVE_WORKSPACE "Arbeitsplatz" END "Beenden" MENU "Neustart" RESTART "AfterStep starten" RESTART afterstep "Beenden..." EXIT "Sitzung beenden..." SHUTDOWN "Beenden" END "Anwendungen" END ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu.de������������������������������������������������������������0000644�0001750�0001750�00000011220�12214432632�015016� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������("Anwendungen", ("Info", ("Infokasten...", INFO_PANEL), ("Rechtliches...", LEGAL_PANEL), ("Systemkonsole", EXEC, "xconsole"), ("Systemlast", SHEXEC, "xosview || xload"), ("Prozessliste", EXEC, "xterm -e top"), ("Man-Page-Betrachter", EXEC, "xman") ), ("Ausführen...", SHEXEC, "%a(Ausführen,Auszuführender Befehl:)"), ("XTerm", EXEC, "xterm -sb"), ("Rxvt", EXEC, "rxvt -bg black -fg white -fn fixed"), ("Arbeitsflächen", WORKSPACE_MENU), ("Anwendungen", ("Grafik", ("Gimp", SHEXEC, "gimp >/dev/null"), ("XV", EXEC, "xv"), ("XPaint", EXEC, "xpaint"), ("XFig", EXEC, "xfig") ), ("X File Manager", EXEC, "xfm"), ("OffiX Files", EXEC, "files"), ("LyX", EXEC, "lyx"), ("Netscape", EXEC, "netscape"), ("Ghostview", EXEC, "ghostview %a(Zu betrachtende Datei:)"), ("Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(PDF-Datei angeben)"), ("TkDesk", EXEC, "tkdesk") ), ("Editoren", ("XFte", EXEC, "xfte"), ("XEmacs", SHEXEC, "xemacs || emacs"), ("XJed", EXEC, "xjed"), ("NEdit", EXEC, "nedit"), ("Xedit", EXEC, "xedit"), ("VI", EXEC, "xterm -e vi") ), ("Verschiedenes", ("Xmcd", SHEXEC, "xmcd 2> /dev/null"), ("Xplaycd", EXEC, "xplaycd"), ("Xmixer", EXEC, "xmixer") ), ("Werkzeuge", ("Taschenrechner", EXEC, "xcalc"), ("Fenstereigenschaften", SHEXEC, "xprop | xmessage -center -title 'xprop' -file -"), ("Schriftartwähler", EXEC, "xfontsel"), ("Terminalemulator", EXEC, "xminicom"), ("Vergrößern", EXEC, "xmag"), ("Colormap", EXEC, "xcmap"), ("XKill", EXEC, "xkill"), ("ASClock", EXEC, "asclock -shape"), ("Zwischenablage", EXEC, "xclipboard") ), ("Auswahl", ("Kopieren", SHEXEC, "echo '%s' | wxcopy"), ("Mail an", EXEC, "xterm -name mail -T Pine -e pine %s"), ("Mit Browser darstellen", EXEC, "netscape %s"), ("In Man-Pages suchen", EXEC, "MANUAL_SEARCH(%s)") ), ("Arbeitsfläche", ("Andere verbergen", HIDE_OTHERS), ("Alle zeigen", SHOW_ALL), ("Icons anordnen", ARRANGE_ICONS), ("Auffrischen", REFRESH), ("Sperren", EXEC, "xlock -allowroot -usefirst"), ("Sitzung speichern", SAVE_SESSION), ("Gespeicherte Sitzung löschen", CLEAR_SESSION) ), ("Erscheinungsbild", ("Themen", OPEN_MENU, "-noext /usr/local/share/WindowMaker/Themes $(HOME)/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("Stile", OPEN_MENU, "-noext /usr/local/share/WindowMaker/Styles $(HOME)/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("Iconsätze", OPEN_MENU, "-noext /usr/local/share/WindowMaker/IconSets $(HOME)/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("Hintergrund", ("Einfarbig", ("Schwarz", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("Blau", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"), ("Tiefblau", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'"), ("Purpur", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("Weizen", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("Dunkelgrau", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("Wein", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ), ("Verlauf", ("Sonnenuntergang", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("Himmel", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Blau schattiert", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("Indigofarben schattiert", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("Purpurfarben schattiert", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("Weizenfarben schattiert", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("Grau schattiert", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Weinfarben schattiert", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), ("Bilder", OPEN_MENU, "-noext /usr/local/share/WindowMaker/Backgrounds $(HOME)/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), ("Thema speichern", SHEXEC, "getstyle -t $(HOME)/GNUstep/Library/WindowMaker/Themes/\"%a(Themenname)\""), ("Iconsatz speichern", SHEXEC, "geticonset $(HOME)/GNUstep/Library/WindowMaker/IconSets/\"%a(Iconsatz-Name)\"") ), ("Beenden", ("Neustart", RESTART), ("BlackBox starten", RESTART, blackbox), ("kwm starten", RESTART, kwm), ("IceWM starten", RESTART, icewm), ("Beenden...", EXIT) ) ) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/autostart.sh���������������������������������������������������������0000755�0001750�0001750�00000001232�12214432632�015573� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # # Place applications to be executed when WindowMaker is started here. # This should only be used for non-X applications or applications that # do not support session management. Other applications should be restarted # by the WindowMaker session restoring mechanism. For that, you should # either set SaveSessionOnExit=YES or select "Save Session" in the Workspace # submenu of the root menu when all applications you want started are # running. # # WindowMaker will wait until this script finishes, so if you run any # commands that take long to execute (like a xterm), put a ``&'' in the # end of the command line. # # This file must be executable. # ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.ja��������������������������������������������������������������0000644�0001750�0001750�00000021717�12214432632�014500� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * WindowMakerã®ãƒ«ãƒ¼ãƒˆãƒ¡ãƒ‹ãƒ¥ãƒ¼è¨­å®šãƒ•ァイル * * æ§‹æ–‡: * * <Title> <Command> <Parameters> * * <Title> ã¨ã¯ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®ã‚¿ã‚¤ãƒˆãƒ«ã«ä½¿ç”¨ã•れる文字列ã§ã™ã€‚スペースをå«ã‚€ * å ´åˆã«ã¯ " ã§å›²ã‚“ã§ãã ã•ã„。 * * * <Command> ã¯ä»¥ä¸‹ã®ã‚‚ã®ãŒä½¿ãˆã¾ã™: * MENU - メニュー(サブメニュー)ã®å®šç¾©ã®é–‹å§‹ã‚’示ã—ã¾ã™ã€‚ * OPEN_MENU - ファイル,パイプ,ディレクトリã®å†…容(ãれãžã‚Œã®ãƒ•ァイル㮠* å‰å‡¦ç†ã«æŒ‡å®šã—ãŸã‚³ãƒžãƒ³ãƒ‰ã‚’使用ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½)ã‹ã‚‰ * メニューを作る。 * END - メニュー(サブメニュー)ã®å®šç¾©ã®çµ‚了を示ã—ã¾ã™ã€‚ * WORKSPACE_MENU - ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã®æ“作ã®ãŸã‚ã®ã‚µãƒ–メニューを追加ã—ã¾ã™ã€‚ * EXEC <program> - 外部プログラムã®å‘¼ã³ã ã— * SHEXEC <command> - executes a shell command (like gimp > /dev/null) * EXIT - ウィンドウマãƒãƒ¼ã‚¸ãƒ£ã®çµ‚了 * RESTART [<window manager>] - WindowMakerã®å†èµ·å‹•ã‹ã€ã¾ãŸã¯ã€åˆ¥ã® * ウィンドウマãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã¾ã™ã€‚ * REFRESH - デスクトップã®å†æç”» * ARRANGE_ICONS - ワークスペースã®ã‚¢ã‚¤ã‚³ãƒ³ã®å†é…ç½® * SHUTDOWN - å…¨ã¦ã®ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã‚’killã—Xã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’終了ã—ã¾ã™ã€‚ * SHOW_ALL - ãƒã‚¤ãƒ‰ã•れã¦ã„ãŸå…¨ã¦ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’表示ã—ã¾ã™ã€‚ * HIDE_OTHERS - ワークスペース上ã®ç¾åœ¨ã‚ã‚‹ã„ã¯ä¸€ç•ªæœ€è¿‘フォーカス * ã•れãŸã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’除ãå…¨ã¦ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’ãƒã‚¤ãƒ‰ã—ã¾ã™ã€‚ * * SAVE_SESSION - デスクトップã®ç¾åœ¨ã®çŠ¶æ…‹ã‚’ã‚»ãƒ¼ãƒ–ã—ã¾ã™ã€‚ç¾åœ¨ã®çŠ¶æ…‹ã¨ * ã¨ã¯ã€å…¨ã¦ã®å®Ÿè¡Œä¸­ã®ã‚¢ãƒ—リケーションã€ãれらã®ãƒ’ント * (ジオメトリ,ä½ç½®,ã©ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã«å­˜åœ¨ã™ã‚‹ã‹, * dockã¨clipã®ã©ã“ã‹ã‚‰èµ·å‹•ã•れãŸã®ã‹,ãã—ã¦ã€æœ€å°åŒ– * ã•れã¦ã„ã‚‹ã®ã‹ã€ã‚·ã‚§ãƒ¼ãƒ‰ã•れã¦ã„ã‚‹ã®ã‹ã€ãƒã‚¤ãƒ‰ã•れ㦠* ã„ã‚‹ã®ã¨ã„ã†æƒ…å ±ã§ã™ã€‚) ã¾ãŸã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒç¾åœ¨ã©ã® * ワークスペースã«ã„ã‚‹ã®ã‹ã¨ã„ã†æƒ…報もセーブã—ã¾ã™ã€‚ * セーブã•れãŸå…¨ã¦ã®æƒ…å ±ã¯æ¯Žå›žã®èµ·å‹•時ã«å¾©æ´»ã—ã¾ã™ãŒã€ * æ–°ãŸã«SAVE_SESSIONを行ãªã†ã¨æ›¸ãã‹ã‚りã¾ã™ã€‚ã¾ãŸã€ * CLEAR_SESSIONãŒè¡Œãªã‚ã‚Œã‚‹ã¨æ¶ˆåŽ»ã•れã¾ã™ã€‚ * SaveSessionOnExit = Yes; ã¨WindowMaker ドメインファイル * ã§å®šç¾©ã•れã¦ã„ã‚‹å ´åˆã«ã¯ã€ã‚»ãƒ¼ãƒ–ã¯WindowMakerãŒçµ‚了 * ã™ã‚‹åº¦ã«è‡ªå‹•çš„ã«è¡Œãªã‚れã€å‰å›žã®SAVE_SESSION(ã¾ãŸã¯ * CLEAR_SESSION)ã¯ä¸Šæ›¸ãã•れã¾ã™ã€‚ * CLEAR_SESSION - å‰å›žã‚»ãƒ¼ãƒ–ã•ã‚ŒãŸæƒ…å ±ã‚’å…¨ã¦æ¶ˆåŽ»ã—ã¾ã™ã€‚ãŸã ã—〠* SaveSessionOnExitãŒYesã®æ™‚ã«ã¯åŠ¹æžœã‚’æŒã¡ã¾ã›ã‚“。 * * OPEN_MENU ã®æ§‹æ–‡: * 1. ファイルã®å ´åˆ * // file.menuã¯æ§‹æ–‡ã®èª¤ã‚Šã‚‚ãªã実際存在ã™ã‚‹ãƒ•ァイルã®åå‰ã§ã™ã€‚ * // 呼ã³ã ã•れãŸå ´æ‰€ã«æŒ¿å…¥ã•れã¾ã™ã€‚ * OPEN_MENU file.menu * 2. パイプã®å ´åˆ * // commandを実行ã—ãã®æ¨™æº–出力を用ã„ã¦ãƒ•ァイルを作りã¾ã™ã€‚ * // commandã®å‡ºåŠ›ã¯æ­£ã—ã„メニュー定義ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。 * // è¨˜å· '|'ã¨commandã®é–“ã®ã‚¹ãƒšãƒ¼ã‚¹ã¯çœç•¥å¯èƒ½ã§ã™ã€‚ * OPEN_MENU | command * 3. ディレクトリã®å ´åˆ * // 1ã¤ã‚ã‚‹ã„ã¯è¤‡æ•°ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é–‹ãã€å…¨ã¦ã®ã‚µãƒ–ディレクトリ㨠* // ãã“ã«ã‚るファイルã‹ã‚‰ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’作りã¾ã™ã€‚ã¾ãŸã‚¢ãƒ«ãƒ•ァベット順㫠* // ソートã•れã¾ã™ã€‚ * OPEN_MENU /some/dir [/some/other/dir ...] * 4. ディレクトリã¨ã‚³ãƒžãƒ³ãƒ‰ã®çµ„ã¿ã‚ã‚ã›ã®å ´åˆ * // 1ã¤ã‚ã‚‹ã„ã¯è¤‡æ•°ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é–‹ãã€å…¨ã¦ã®ã‚µãƒ–ディレクトリ㨠* // ãã“ã«ã‚ã‚‹å¯èª­ã§ãるファイルã‹ã‚‰ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’作りã¾ã™ã€‚ * // ã¾ãŸã‚¢ãƒ«ãƒ•ァベット順ã«ã‚½ãƒ¼ãƒˆã•れã€commandã§å‰å‡¦ç†ã•れã¾ã™ã€‚ * OPEN_MENU /some/dir [/some/other/dir ...] WITH command -options * * * <Parameters> ã¨ã¯å®Ÿè¡Œã™ã‚‹ãƒ—ログラムã§ã™ã€‚ * * ** - EXECã®ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã«ä¸Žãˆã‚‰ã‚ŒãŸå¼•æ•°ã§ã™ã€‚ * %s - ç¾åœ¨ã®ã‚»ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã®å†…容ã¨ç½®æ›ã•れã¾ã™ã€‚ * %a(message) - 入力ダイアログ(メッセージã¨ã—ã¦messageを用ã„ã‚‹)ã‚’é–‹ã〠* タイプã•れãŸå†…容ã¨ç½®æ›ã•れã¾ã™ã€‚ * %w - ç¾åœ¨ãƒ•ォーカスã•れã¦ã„るウィンドウã®XIDã¨ç½®æ›ã•れã¾ã™ã€‚ * * 特殊文字( % ã‚„ " ç­‰)をエスケープã™ã‚‹ã«ã¯ \ を用ã„ã¾ã™: * 例: kterm -T "\"Hello World\"" * * ã¾ãŸã‚¨ã‚¹ã‚±ãƒ¼ãƒ—キャラクタを用ã„ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚(例 \n ã§æ”¹è¡Œ) * * ã©ã® MENU 宣言も必ãšã€ãƒšã‚¢ã«ãªã‚‹ END 宣言を末尾ã«ã¤ã‘ãªã‘れã°ãªã‚Šã¾ã›ã‚“。 * * 例: * * "テスト" MENU * "KTerm" EXEC kterm * // /usr/openwin/bin中ã®ãƒ•ァイルã§ã‚µãƒ–メニューを作る * "XView apps" OPEN_MENU "/usr/openwin/bin" * // ç•°ãªã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®X11アプリケーションを表示 * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // 背景ã®ç”»åƒã‚’セットã™ã‚‹ã€‚ * "背景" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // style.menuã®å†…容をã“ã“ã«æŒ¿å…¥ã™ã‚‹ã€‚ * "スタイル" OPEN_MENU style.menu * "テスト" END */ #include "wmmacros" "アプリケーション" MENU "情報" MENU "Info パãƒãƒ«..." INFO_PANEL "Legal パãƒãƒ«..." LEGAL_PANEL "システム負è·" SHEXEC xosview || xload "プロセス一覧" EXEC xterm -e top "マニュアルブラウザ" EXEC xman "情報" END "KTerm" EXEC kterm -sb "Rxvt" EXEC rxvt -bg black -fg white "ワークスペース" WORKSPACE_MENU "アプリケーション" MENU "グラフィックス" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "グラフィックス" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(Enter file to view) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Enter PDF to view) "TkDesk" EXEC tkdesk "アプリケーション" END "エディタ" MENU "Mule" EXEC mule "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC kterm -e vi "エディタ" END "ã„ã‚ã„ã‚" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "ã„ã‚ã„ã‚" END "ユーティリティ" MENU "é›»å“" EXEC xcalc "プロパティ表示" SHEXEC xprop | xmessage -center -title 'xprop' -file - "フォントセレクタ" EXEC xfontsel "端末エミュレータ" EXEC xminicom "眼é¡" EXEC xmag "カラーマップ" EXEC xcmap "XKill" EXEC xkill "ASClock" EXEC asclock -shape "Clipboard" EXEC xclipboard "ユーティリティー" END "セレクション" MENU "コピー" SHEXEC echo '%s' | wxcopy "Mail To" EXEC xterm -name mail -T "Pine" -e pine %s "Netscape" EXEC netscape %s "マニュアル検索" SHEXEC MANUAL_SEARCH(%s) "セレクション" END "ワークスペース" MENU "ä»–ã‚’ãƒã‚¤ãƒ‰" HIDE_OTHERS "å…¨ã¦è¡¨ç¤º" SHOW_ALL "アイコンã®å†é…ç½®" ARRANGE_ICONS "ç”»é¢ã®å†æç”»" REFRESH "ロック" EXEC xlock -allowroot -usefirst "セッションをセーブ" SAVE_SESSION "セッションをクリア" CLEAR_SESSION "ワークスペース" END "外観" MENU "テーマ" 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 "Black" WS_BACK '(solid, black)' "Blue" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Bleumarine" WS_BACK '(solid, "#224477")' "Purple" WS_BACK '(solid, "#554466")' "Wheat" WS_BACK '(solid, "wheat4")' "Dark Gray" WS_BACK '(solid, "#333340")' "Wine" WS_BACK '(solid, "#400020")' "ソリッド" END "グラデーション" MENU "Flag" WS_BACK '(mdgradient, green, red, white, green)' "Sky" WS_BACK '(vgradient, blue4, white)' "グラデーション" END "イメージ" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "背景" END "ç¾åœ¨ã®è¨­å®šã‚’テーマã¨ã—ã¦ã‚»ãƒ¼ãƒ–" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "ç¾åœ¨ã®ã‚¢ã‚¤ã‚³ãƒ³é›†ã‚’セーブ" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "外観" END "終了" MENU "å†èµ·å‹•" RESTART "AfterStepã‚’èµ·å‹•" RESTART afterstep "終了..." EXIT "セッションを終了..." SHUTDOWN "終了" END "アプリケーション" END �������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.zh_CN�����������������������������������������������������������0000644�0001750�0001750�00000020772�12214432632�015107� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Root Menu definition for WindowMaker * * Syntax is: * * <Title> [SHORTCUT <Shortcut>] <Command> <Parameters> * * <Title> is any string to be used as title. Must be enclosed with " if it * has spaces * * SHORTCUT specifies a shortcut for that item. <Shortcut> has the * same syntax of the shortcuts key options in the * $HOME/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey. * * You can't specify a shortcut for a MENU or OPEN_MENU entry. * * <Command> one of the valid commands: * MENU - starts (sub)menu definition * END - end (sub)menu definition * OPEN_MENU - opens a menu from a file, pipe or directory(ies) contents * and eventually precede each with a command. * WORKSPACE_MENU - adds a submenu for workspace operations. Only one * workspace_menu is allowed. * EXEC <program> - executes an external program * SHEXEC <command> - executes a shell command (like gimp > /dev/null) * EXIT - exits the window manager * RESTART [<window manager>] - restarts WindowMaker or start another * window manager * REFRESH - refreshes the desktop * ARRANGE_ICONS - rearranges the icons on the workspace * SHUTDOWN - kills all clients (and close the X window session) * SHOW_ALL - unhides all windows on workspace * HIDE_OTHERS - hides all windows on the workspace, except the * focused one (or the last one that received focus) * SAVE_SESSION - saves the current state of the desktop, which include * all running applications, all their hints (geometry, * position on screen, workspace they live on, the dock * or clip from where they were launched, and * if minimized, shaded or hidden. Also saves the current * workspace the user is on. All will be restored on every * start of windowmaker until another SAVE_SESSION or * CLEAR_SESSION is used. If SaveSessionOnExit = Yes; in * WindowMaker domain file, then saving is automatically * done on every windowmaker exit, overwriting any * SAVE_SESSION or CLEAR_SESSION (see below). * CLEAR_SESSION - clears any previous saved session. This will not have * any effect if SaveSessionOnExit is True. * INFO - shows the Info Panel * * OPEN_MENU syntax: * 1. File menu handling. * // opens file.menu which must contain a valid menu file and inserts * // it in current position * OPEN_MENU file.menu * 2. Pipe menu handling. * // opens command and uses it's stdout to construct menu. * // Command's output must be a valid menu description. * // The space between '|' and command itself is optional. * OPEN_MENU | command * 3. Directory handling. * // Opens one or more directories and construct a menu with all * // the subdirectories and executable files in them sorted * // alphabetically. * OPEN_MENU /some/dir [/some/other/dir ...] * 4. Directory handling with command. * // Opens one or more directories and construct menu with all * // subdirectories and readable files in them sorted alphabetically, * // preceding each of them with command. * OPEN_MENU [options] /some/dir [/some/other/dir ...] WITH command -options * Options: * -noext strip whatever is after the last dot in the * file name * * <Parameters> is the program to execute. * * ** Options for command line in EXEC: * %s - substitute with current selection * %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\"" * * You can also use character escapes, like \n * * Each MENU statement must have one mathching END statement at the end. * * Example: * * "Test" MENU * "XTerm" EXEC xterm * // 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 $HOME/bin/X11 * // set some background images * "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 */ #include "wmmacros" "应用程åº" MENU "ä¿¡æ¯" MENU "ä¿¡æ¯é¢æ¿..." INFO_PANEL "版æƒ..." LEGAL_PANEL "系统控制å°" EXEC xconsole "系统负载" SHEXEC xosview || xload "进程列表" EXEC xterm -e top "手册æµè§ˆå™¨" EXEC xman "ä¿¡æ¯" END "è¿è¡Œ..." EXEC %a(è¿è¡Œ,è¦æ‰§è¡Œçš„命令:) "XTerm" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "工作空间" WORKSPACE_MENU "应用程åº" OPEN_MENU "图形" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "图形" END "X文件管ç†å™¨" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(GhostView,è¾“å…¥è¦æŸ¥çœ‹çš„æ–‡ä»¶å) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobat,è¾“å…¥è¦æŸ¥çœ‹çš„PDF文件å) "TkDesk" EXEC tkdesk "应用程åº" END "编辑器" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "编辑器" END "å…¶ä»–" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "å…¶ä»–" END "工具" MENU "计算器" EXEC xcalc "窗å£å±žæ€§" SHEXEC xprop | xmessage -center -title 'xpro p' -file - "字体选择" EXEC xfontsel "终端模拟器" EXEC xminicom "放大" EXEC xmag "颜色表" EXEC xcmap "XKill" EXEC xkill "剪贴æ¿" EXEC xclipboard "工具" END "选择" MENU "å¤åˆ¶" SHEXEC echo '%s' | wxcopy "å‘é€é‚®ä»¶" EXEC xterm -name mail -T "Pine" -e pine %s "æµè§ˆ" EXEC netscape %s "查找手册" SHEXEC MANUAL_SEARCH(%s) "选择" END "工作空间" MENU "éšè—å…¶ä»–" HIDE_OTHERS "显示所有" SHOW_ALL "排列图标" ARRANGE_ICONS "刷新" REFRESH "é”ä½å±å¹•" EXEC xlock -allowroot -usefirst "ä¿å­˜ä¼šè¯" SAVE_SESSION "清除ä¿å­˜çš„会è¯" CLEAR_SESSION "工作空间" END "外观" MENU "主题" 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)' "è“" WS_BACK '(solid, "#505075")' "é’" WS_BACK '(solid, "#243e6c")' "æ·±è“" WS_BACK '(solid, "#224477")' "ç´«" WS_BACK '(solid, "#554466")' "淡黄" WS_BACK '(solid, "wheat4")' "æ·±ç°" WS_BACK '(solid, "#333340")' "酒红" WS_BACK '(solid, "#400020")' "å•色" END "过渡色" MENU "æ—¥è½" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)' "天空" WS_BACK '(vgradient, blue4, white)' "è“色阴影" WS_BACK '(vgradient, "#7080a5", "#101020")' "é’色阴影" WS_BACK '(vgradient, "#746ebc", "#242e4c")' "紫色阴影" WS_BACK '(vgradient, "#654c66", "#151426")' "淡黄色阴影" WS_BACK '(vgradient, "#a09060", "#302010")' "ç°è‰²é˜´å½±" WS_BACK '(vgradient, "#636380", "#131318")' "酒红色阴影" WS_BACK '(vgradient, "#600040", "#180010")' "过渡色" END "图åƒ" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "背景" END "ä¿å­˜ä¸»é¢˜" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(主题å,输入文件å:)" "ä¿å­˜å›¾æ ‡é›†" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(图标集å,输入文件å:)" "外观" END "退出" MENU "釿–°å¯åЍ" RESTART "å¯åЍ BlackBox" RESTART blackbox "å¯åЍ kwm" RESTART kwm "å¯åЍ IceWM" RESTART icewm "退出..." EXIT "退出" END "应用程åº" END ������WindowMaker-0.95.5/WindowMaker/plmenu.pl������������������������������������������������������������0000644�0001750�0001750�00000017001�12214432632�015044� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������("WindowMaker", ("Informacja", ("Informacja o WMaker...", INFO_PANEL), ("Legalność...", LEGAL_PANEL), ("Konsola Systemu", EXEC, "xconsole"), ("Obciążenie Systemu", EXEC, "xosview || xload"), ("Lista Procesów", EXEC, "xterm -T 'Lista Procesów' -e top"), ("PrzeglÄ…darka Manuali", EXEC, "xman") ), ("Konfiguracja", ("Edycja menu", EXEC, "xterm -T 'Edycja menu' -e vi $HOME/GNUstep/Library/WindowMaker/menu"), ("Ustawienie fontów", EXEC, "xterm -T 'Ustawienie fontów' -e vi $HOME/GNUstep/Defaults/WMGLOBAL"), ("Konfiguracja", EXEC, "xterm -T 'Konfiguracja' -e vi $HOME/GNUstep/Defaults/WindowMaker") ), ("Uruchom...", EXEC, "%a(Uruchom,Wpisz komende do uruchomienia:)"), ("Terminal", EXEC, "xterm -T 'Mój ulubiony terminal' -sb"), ("Edytor", EXEC, "xterm -T 'Moj ulubiony edytor' -e vi %a(Edytor,Podaj plik do edycji:)"), ("Pulpity", WORKSPACE_MENU), ("Aplikacje", ("Grafika", ("Gimp", EXEC, "gimp > /dev/null"), ("XV", EXEC, "xv"), ("XFig", EXEC, "xfig"), ("XPaint", EXEC, "xpaint"), ("Gnuplot", EXEC, "xterm -T 'GNU plot' -e gnuplot"), ("Edytor ikon", EXEC, "bitmap") ), ("Tekst", ("LyX", EXEC, "lyx"), ("Ghostview", EXEC, "gv %a(Gv,Wprowadz nazwe pliku *.ps *.pdf *.no:)"), ("XDvi", EXEC, "xdvi %a(Xdvi,Wprowadz nazwe pliku *.dvi:)"), ("Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(Acrobat,Wprowadz nazwe pliku *.pdf:)"), ("Xpdf", EXEC, "xpdf %a(Xpdf,Wprowadz nazwe pliku *.pdf:)"), ("Arkusz kalkulacyjny", EXEC, "xspread") ), ("X File Manager", EXEC, "xfm"), ("OffiX Files", EXEC, "files"), ("TkDesk", EXEC, "tkdesk"), ("Midnight Commander", EXEC, "xterm -T 'Midnight Commander' -e mc"), ("X Gnu debbuger", EXEC, "xxgdb"), ("Xwpe", EXEC, "xwpe") ), ("Internet", ("PrzeglÄ…darki", ("Netscape", EXEC, "netscape"), ("Arena", EXEC, "arena"), ("Lynx", EXEC, "xterm -e lynx %a(Lynx,Podaj URL:)") ), ("Programy pocztowe", ("Pine", EXEC, "xterm -T 'Program pocztowy Pine' -e pine"), ("Elm", EXEC, "xterm -T 'Program pocztowy Elm' -e elm"), ("Xmh", EXEC, "xmh") ), ("Emulator terminala", ("Minicom", EXEC, "xminicom"), ("Seyon", EXEC, "seyon") ), ("Telnet", EXEC, "xterm -e telnet %a(Telnet,Podaj nazwe hosta:)"), ("Ssh", EXEC, "xterm -e ssh %a(SSH,Podaj nazwe hosta:)"), ("Ftp", EXEC, "xterm -e ftp %a(FTP,Podaj nazwe hosta:)"), ("Irc", EXEC, "xterm -e irc %a(IRC,Podaj swoj pseudonim:)"), ("Ping", EXEC, "xterm -e ping %a(Ping,Podaj nazwe hosta:)"), ("Talk", EXEC, "xterm -e talk %a(Talk,Podaj nazwe uzytkownika, z ktorym chcesz nawiazac polaczenie:)") ), ("Editory", ("XFte", EXEC, "xfte"), ("XEmacs", EXEC, "xemacs || emacs"), ("XJed", EXEC, "xjed "), ("NEdit", EXEC, "nedit"), ("Xedit", EXEC, "xedit"), ("Editres", EXEC, "editres"), ("VI", EXEC, "xterm -e vi") ), ("DźwiÄ™k", ("Xmcd", EXEC, "xmcd 2> /dev/null"), ("Xplaycd", EXEC, "xplaycd"), ("Xmixer", EXEC, "xmixer") ), ("Gry", ("Maze", EXEC, "maze"), ("Karty", EXEC, "spider"), ("Londownik", EXEC, "xlander"), ("Szachy", EXEC, "xboard"), ("Xeyes", EXEC, "xeyes -geometry 51x23"), ("Xmahjongg", EXEC, "xmahjongg"), ("Xlogo", EXEC, "xlogo"), ("Xroach", EXEC, "xroach"), ("Xtetris", EXEC, "xtetris -color"), ("Xvier", EXEC, "xvier"), ("Xgas", EXEC, "xgas"), ("Xkobo", EXEC, "xkobo"), ("xboing", EXEC, "xboing -sound"), ("XBill", EXEC, "xbill") ), ("Użytki", ("Kalkulator", EXEC, "xcalc"), ("Zegarek", EXEC, "xclock"), ("Opcje Okna", EXEC, "xprop | xmessage -center -title 'xprop' -file -"), ("PrzeglÄ…darka Fontów", EXEC, "xfontsel"), ("SzkÅ‚o PowiÄ™kszajÄ…ce", EXEC, "xmag"), ("Mapa Kolorów", EXEC, "xcmap"), ("XKill", EXEC, "xkill"), ("Clipboard", EXEC, "xclipboard") ), ("Selekcyjne", ("Kopia", EXEC, "echo '%s' | wxcopy"), ("Poczta do ...", EXEC, "xterm -name mail -T 'Pine' -e pine %s"), ("Serfuj do ...", EXEC, "netscape %s"), ("Pobierz Manual ...", EXEC, "MANUAL_SEARCH(%s)"), ("Połącz siÄ™ z ...", EXEC, "telnet %s"), ("Pobierz plik z FTP ...", EXEC, "ftp %s") ), ("Ekran", ("Ukryj PozostaÅ‚e", HIDE_OTHERS), ("Pokaż wszystko", SHOW_ALL), ("UporzÄ…dkowanie icon", ARRANGE_ICONS), ("Odswież", REFRESH), ("Zablokuj", EXEC, "xlock -allowroot -usefirst"), ("Zachowaj Sesje", SAVE_SESSION), ("Wyczyść zachowanÄ… sesje", CLEAR_SESSION) ), ("WyglÄ…d", ("Tematy", OPEN_MENU, "-noext #wmdatadir#/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("Style", OPEN_MENU, "-noext #wmdatadir#/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("Ustawienia ikon", OPEN_MENU, "-noext #wmdatadir#/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("TÅ‚o", ("Jednolite", ("Czarny", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("Niebieski", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, '#505075')'"), ("Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, '#243e6c')'"), ("Głęboko Niebieski", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, '#224477')'"), ("Fioletowy", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, '#554466')'"), ("Pszeniczny", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, 'wheat4')'"), ("Ciemno Szary", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, '#333340')'"), ("Winny", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, '#400020')'") ), ("Cieniowane", ("Zachód SÅ‚oÅ„ca", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("Niebo", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Cieniowany Niebieski", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, '#7080a5', '#101020')'"), ("Cieniowane Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, '#746ebc', '#242e4c')'"), ("Cieniowany Fioletowy", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, '#654c66', '#151426')'"), ("Cieniowany Pszeniczny", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, '#a09060', '#302010')'"), ("Cieniowany Szary", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, '#636380', '#131318')'"), ("Cieniowany Winnny", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, '#600040', '#180010')'") ), ("Obrazki", OPEN_MENU, "-noext #wmdatadir#/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t)") ), ("ZaoamiÄ™tanie Tematu", EXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/'%a(Nazwa tematu,Wpisz nazwe pliku:)'"), ("ZapamiÄ™tanie UstawieÅ„ Ikon", EXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/'%a(Ustawienia ikon,Wpisz nazwe pliku:)'") ), ("WyjÅ›cie", ("PrzeÅ‚adowanie", RESTART), ("Start BlackBox", RESTART, blackbox), ("Start kwm", RESTART, kwm), ("Start IceWM", RESTART, icewm), ("WyjÅ›cie...", EXIT), ("Zabicie sesji...", SHUTDOWN) ) ) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/��������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434644�014560� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Brownish.style������������������������������������������������0000644�0001750�0001750�00000002022�12214432632�017344� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = "#c0b0b0"; HighlightTextColor = "#201010"; ClipTitleColor = white; CClipTitleColor = gray60; FTitleColor = "#f0e0e0"; PTitleColor = "#f0e0e0"; UTitleColor = gray; FTitleBack = (solid, "#a09080"); PTitleBack = (solid, "#908080"); UTitleBack = (solid, "#808090"); ResizebarBack = (solid, "#808090"); MenuTitleColor = "#f0e0e0"; MenuTextColor = "#f0e0e0"; MenuDisabledColor = "#504040"; MenuTitleBack = (solid, "#a09080"); MenuTextBack = (solid, "#908080"); IconBack = (solid, "#809080"); IconTitleColor = white; IconTitleBack = "#446594"; MenuStyle = normal; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Brown.style���������������������������������������������������0000644�0001750�0001750�00000002256�12214432632�016651� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = "rgb:79/96/cf"; CClipTitleColor = "rgb:61/61/61"; FTitleColor = white; PTitleColor = gray; UTitleColor = gray; FTitleBack = (vgradient, "rgb:ae/9e/a6", "rgb:61/51/59"); PTitleBack = (vgradient, "rgb:76/61/76", "rgb:20/0a/20"); UTitleBack = (vgradient, "rgb:51/61/76", "rgb:0a/0a/20"); ResizebarBack = (solid, "#2d354b"); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = gray60; MenuTitleBack = (hgradient, "rgb:ae/9e/a6", "rgb:61/51/59"); MenuTextBack = (hgradient, "rgb:49/71/86", "rgb:08/10/30"); IconBack = (mdgradient, "rgb:18/34/54", "rgb:28/45/69", "rgb:08/24/20"); IconTitleColor = white; IconTitleBack = "#88777f"; MenuStyle = normal; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/VioletBlue.style����������������������������������������������0000644�0001750�0001750�00000002152�12214432632�017627� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = white; CClipTitleColor = gray20; FTitleColor = white; PTitleColor = gray; UTitleColor = white; FTitleBack = (dgradient, black, mediumorchid4); PTitleBack = (dgradient, mediumorchid4, dodgerblue3); UTitleBack = (dgradient, black, dodgerblue4); ResizebarBack = (dgradient, black, dodgerblue4); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = gray60; MenuTitleBack = (dgradient, black, mediumorchid4); MenuTextBack = (dgradient, black, dodgerblue4); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = "#3d1b45"; MenuStyle = normal; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Golden.style��������������������������������������������������0000644�0001750�0001750�00000002346�12214432632�016772� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = white; PTitleColor = white; UTitleColor = gray20; FTitleBack = ( mdgradient, "rgb:ba/98/76", "rgb:ba/98/76", "rgb:54/32/10", "rgb:7a/58/36" ); PTitleBack = (dgradient, "rgb:64/42/20", "rgb:ca/a8/86"); UTitleBack = (dgradient, "rgb:90/90/90", "rgb:b0/b0/b0"); ResizebarBack = (dgradient, "rgb:90/90/90", "rgb:b0/b0/b0"); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = (dgradient, "rgb:ba/98/76", "rgb:54/32/10"); MenuTextBack = (dgradient, "rgb:b0/b0/b0", "rgb:70/70/70"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = "rgb:ba/98/76"; MenuStyle = normal; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/DarkBlue.style������������������������������������������������0000644�0001750�0001750�00000002256�12214432632�017253� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = white; CClipTitleColor = gray40; FTitleColor = white; PTitleColor = gray60; UTitleColor = gray60; FTitleBack = (hgradient, "rgb:18/38/59", black); PTitleBack = (hgradient, "rgb:18/38/59", black); UTitleBack = (hgradient, "rgb:38/58/79", "rgb:26/36/46"); ResizebarBack = (hgradient, "rgb:38/58/79", "rgb:26/36/46"); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = "rgb:61/61/61"; MenuTitleBack = (hgradient, "rgb:08/24/38", black); MenuTextBack = (hgradient, "rgb:18/38/59", "rgb:00/14/28"); IconBack = (mdgradient, "rgb:61/51/59", "rgb:38/58/79", black, "rgb:18/38/59"); IconTitleColor = white; IconTitleBack = "#0c1c2c"; MenuStyle = normal; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Interlace.style�����������������������������������������������0000644�0001750�0001750�00000003041�12214432632�017461� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = right; HighlightColor = "#000000"; HighlightTextColor = "#bac4e0"; ClipTitleColor = "#8a94b0"; CClipTitleColor = "#6a7490"; FTitleColor = (function, libwmfun.so, drawPlainString, "#dae4f0", black, grey20); PTitleColor = (function, libwmfun.so, drawPlainString, "#dae4f0", black, grey20); UTitleColor = (function, libwmfun.so, drawPlainString, "#7a8490", black, grey10); FTitleBack = (igradient, black, "#0000cc", 1, grey10, "#aaaaaa", 1); PTitleBack = (igradient, black, "#0000ff", 1, grey10, "#dddddd", 1); UTitleBack = (igradient, black, "#111188", 1, grey10, "#777777", 1); ResizebarBack = (dgradient, "#111144", grey10); MenuTitleColor = (function, libwmfun.so, drawPlainString, "#dae4f0", black, grey20); MenuTextColor = "#8a94b0"; MenuDisabledColor = "#4a5470"; MenuTitleBack = (igradient, black, "#0000cc", 1, grey10, "#aaaaaa", 1); MenuTextBack = (mdgradient, "#555566", black, black, "#111133"); IconBack = (igradient, black, "#111177", 1, grey10, "#555555", 1); IconTitleColor = "#8a94b0"; IconTitleBack = "#0b0f22"; MenuStyle = flat; WorkspaceBack = (mdgradient, black, black, black, "#111133"); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/NewBlue.style�������������������������������������������������0000644�0001750�0001750�00000002462�12214432632�017122� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = left; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = white; PTitleColor = white; UTitleColor = gray20; FTitleBack = ( igradient, "rgb:00/00/10", "rgb:20/20/70", 1, "rgb:20/20/70", "rgb:00/00/10", 1 ); PTitleBack = (hgradient, "rgb:50/50/50", "rgb:80/80/80"); UTitleBack = (hgradient, "rgb:90/90/90", "rgb:c0/c0/c0"); ResizebarBack = (hgradient, "rgb:90/90/90", "rgb:c0/c0/c0"); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = ( igradient, "rgb:00/00/10", "rgb:20/20/70", 1, "rgb:20/20/70", "rgb:00/00/10", 1 ); MenuTextBack = (hgradient, "rgb:c0/c0/c0", "rgb:90/90/90"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = "#101040"; MenuStyle = normal; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/GreyBlue.style������������������������������������������������0000644�0001750�0001750�00000002250�12214432632�017272� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = white; PTitleColor = white; UTitleColor = gray20; FTitleBack = (dgradient, "rgb:20/20/70", "rgb:00/00/20"); PTitleBack = (dgradient, "rgb:50/50/50", "rgb:80/80/80"); UTitleBack = (dgradient, "rgb:70/70/70", "rgb:b0/b0/b0"); ResizebarBack = (dgradient, "rgb:70/70/70", "rgb:b0/b0/b0"); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = (dgradient, "rgb:00/00/10", "rgb:20/20/70"); MenuTextBack = (dgradient, "rgb:70/70/70", "rgb:b0/b0/b0"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = "#101048"; MenuStyle = normal; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Green.style���������������������������������������������������0000644�0001750�0001750�00000002217�12214432632�016617� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = white; PTitleColor = white; UTitleColor = gray30; FTitleBack = (dgradient, "rgb:28/48/48", "rgb:08/20/20"); PTitleBack = (hgradient, "rgb:50/50/50", "rgb:80/80/80"); UTitleBack = (dgradient, "rgb:90/90/90", "rgb:b0/b0/b5"); ResizebarBack = (solid, "#a0a0a3"); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = (hgradient, "rgb:28/48/48", "rgb:08/20/20"); MenuTextBack = (dgradient, "rgb:b0/b0/b0", "rgb:70/70/70"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = "#183434"; MenuStyle = normal; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Makefile.in���������������������������������������������������0000644�0001750�0001750�00000032542�12214434561�016551� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WindowMaker/Styles DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(prefsdatadir)" DATA = $(prefsdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ prefsdatadir = $(pkgdatadir)/Styles prefsdata_DATA = \ Autumn.style\ Black.style\ BlackTexture.style\ Blue.style\ BlueDawn.style\ BlueishGreen.style\ Brown.style\ Brownish.style\ Chumbo.style\ Copper.style\ DarkBlue.style\ DarkRed.style\ Emerald.style\ Fire.style\ Food.style\ Golden.style\ Green.style\ GreyBlue.style\ Gtk.style\ Interlace.style\ IRednBlue.style\ LightBlue.style\ NewBlue.style\ NightSky.style\ Pastel.style\ Pink.style\ Pumpkin.style\ Purple.style\ Purplish.style\ Red.style\ RednBlue.style\ Spring.style\ Summer.style\ Traditional.style\ VioletBlue.style EXTRA_DIST = $(prefsdata_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Styles/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WindowMaker/Styles/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-prefsdataDATA: $(prefsdata_DATA) @$(NORMAL_INSTALL) test -z "$(prefsdatadir)" || $(MKDIR_P) "$(DESTDIR)$(prefsdatadir)" @list='$(prefsdata_DATA)'; test -n "$(prefsdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(prefsdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(prefsdatadir)" || exit $$?; \ done uninstall-prefsdataDATA: @$(NORMAL_UNINSTALL) @list='$(prefsdata_DATA)'; test -n "$(prefsdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(prefsdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(prefsdatadir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(prefsdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-prefsdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-prefsdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-prefsdataDATA install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-prefsdataDATA # 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. .NOEXPORT: ��������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/BlueishGreen.style��������������������������������������������0000644�0001750�0001750�00000002253�12214432632�020133� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = lightgoldenrod1; HighlightTextColor = black; ClipTitleColor = "rgb:79/96/cf"; CClipTitleColor = "rgb:61/61/61"; FTitleColor = white; PTitleColor = gray; UTitleColor = white; FTitleBack = (hgradient, darkturquoise, "rgb:00/41/42"); PTitleBack = (hgradient, deepskyblue2, deepskyblue4); UTitleBack = (hgradient, deepskyblue4, black); ResizebarBack = (hgradient, deepskyblue4, black); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray30; MenuTitleBack = (hgradient, deepskyblue4, black); MenuTextBack = (hgradient, darkturquoise, "rgb:00/41/42"); IconBack = (mdgradient, "rgb:18/34/54", "rgb:28/45/69", "rgb:08/24/20"); IconTitleColor = white; IconTitleBack = "#00888a"; MenuStyle = normal; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/LightBlue.style�����������������������������������������������0000644�0001750�0001750�00000002241�12214432632�017433� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = white; PTitleColor = white; UTitleColor = black; FTitleBack = (hgradient, "rgb:41/8a/ef", "rgb:20/49/8e"); PTitleBack = (hgradient, "rgb:41/eb/ef", "rgb:28/92/79"); UTitleBack = (hgradient, lightskyblue1, lightskyblue4); ResizebarBack = (hgradient, lightskyblue1, lightskyblue4); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = (hgradient, "rgb:41/8a/ef", "rgb:20/49/8e"); MenuTextBack = (hgradient, lightskyblue1, lightskyblue4); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = "#3069bf"; MenuStyle = normal; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/BlackTexture.style��������������������������������������������0000644�0001750�0001750�00000002425�12214432632�020155� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = white; CClipTitleColor = gray60; FTitleColor = white; PTitleColor = white; UTitleColor = gray20; FTitleBack = (thgradient, BlueImage.jpeg, 140, "rgb:30/32/3e", black); PTitleBack = (thgradient, BlueImage.jpeg, 140, "rgb:70/72/7e", "rgb:45/47/4e"); UTitleBack = (thgradient, BlueImage.jpeg, 100, white, "rgb:9e/94/80"); ResizebarBack = (thgradient, BlueImage.jpeg, 100, white, "rgb:9e/94/80"); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = gray60; MenuTitleBack = (thgradient, BlueImage.jpeg, 140, "rgb:30/32/3e", black); MenuTextBack = (thgradient, BlueImage.jpeg, 140, "rgb:50/5a/5e", "rgb:20/2a/2e"); IconBack = (tdgradient, BlueImage.jpeg, 140, "rgb:30/32/3e", black); IconTitleColor = white; IconTitleBack = "#20202e"; MenuStyle = normal; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/BlueDawn.style������������������������������������������������0000644�0001750�0001750�00000003150�12214432632�017255� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = left; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = "rgb:79/96/cf"; CClipTitleColor = "rgb:61/61/61"; FTitleColor = white; PTitleColor = white; UTitleColor = "rgb:79/96/cf"; FTitleBack = ( mhgradient, "rgb:18/2c/70", "rgb:18/2c/70", "rgb:49/69/c7", "rgb:79/a2/d0", "rgb:96/d7/e7" ); PTitleBack = (hgradient, "rgb:08/18/38", "rgb:28/3c/49"); UTitleBack = ( mhgradient, "rgb:18/2c/41", "rgb:18/2c/41", "rgb:08/18/38", "rgb:28/3c/49", "rgb:28/45/50" ); ResizebarBack = ( mhgradient, "rgb:18/2c/41", "rgb:18/2c/41", "rgb:08/18/38", "rgb:28/3c/49", "rgb:28/45/50" ); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray; MenuTitleBack = ( mhgradient, "rgb:18/2c/70", "rgb:79/a2/d0", "rgb:28/45/96", "rgb:18/2c/41" ); MenuTextBack = ( mhgradient, "rgb:18/2c/70", "rgb:28/45/96", "rgb:79/a2/d0", "rgb:96/d7/e7" ); IconBack = ( mdgradient, "rgb:58/74/94", "rgb:79/a2/d0", "rgb:28/45/96", "rgb:20/24/4a", "rgb:20/24/4a" ); IconTitleColor = white; IconTitleBack = "rgb:18/2c/70"; MenuStyle = normal; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Traditional.style���������������������������������������������0000644�0001750�0001750�00000002021�12214432632�020022� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray20; FTitleColor = white; PTitleColor = white; UTitleColor = black; FTitleBack = (solid, black); PTitleBack = (solid, gray40); UTitleBack = (solid, "rgb:aa/aa/aa"); ResizebarBack = (solid, "rgb:aa/aa/aa"); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = (solid, black); MenuTextBack = (solid, "rgb:aa/aa/aa"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = black; MenuStyle = normal; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/IRednBlue.style�����������������������������������������������0000644�0001750�0001750�00000002440�12214432632�017366� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = left; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = white; PTitleColor = white; UTitleColor = gray; FTitleBack = (igradient, "rgb:96/24/49", black, 2, "rgb:30/00/10", black, 1); PTitleBack = (igradient, black, "rgb:49/71/86", 2, black, "rgb:19/41/56", 1); UTitleBack = (igradient, "rgb:30/51/8e", black, 2, black, "rgb:00/0c/00", 1); ResizebarBack = (igradient, black, "rgb:30/51/8e", 1, black, "rgb:00/0c/00", 1); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = "rgb:61/61/61"; MenuTitleBack = (igradient,"rgb:96/24/49",black, 2, "rgb:30/00/10", black, 1); MenuTextBack = (igradient, "rgb:30/51/8e", black, 2, black, "rgb:00/0c/00", 1); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = "#63122c"; MenuStyle = flat; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Makefile.am���������������������������������������������������0000644�0001750�0001750�00000001205�12214432632�016525� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ prefsdatadir = $(pkgdatadir)/Styles prefsdata_DATA =\ Autumn.style\ Black.style\ BlackTexture.style\ Blue.style\ BlueDawn.style\ BlueishGreen.style\ Brown.style\ Brownish.style\ Chumbo.style\ Copper.style\ DarkBlue.style\ DarkRed.style\ Emerald.style\ Fire.style\ Food.style\ Golden.style\ Green.style\ GreyBlue.style\ Gtk.style\ Interlace.style\ IRednBlue.style\ LightBlue.style\ NewBlue.style\ NightSky.style\ Pastel.style\ Pink.style\ Pumpkin.style\ Purple.style\ Purplish.style\ Red.style\ RednBlue.style\ Spring.style\ Summer.style\ Traditional.style\ VioletBlue.style EXTRA_DIST = $(prefsdata_DATA) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Pink.style����������������������������������������������������0000644�0001750�0001750�00000002071�12214432632�016456� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = white; CClipTitleColor = gray20; FTitleColor = gray40; PTitleColor = gray; UTitleColor = gray; FTitleBack = (hgradient, white, pink); PTitleBack = (hgradient, pink, pink2); UTitleBack = (hgradient, pink3, pink4); ResizebarBack = (hgradient, pink3, pink4); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = gray60; MenuTitleBack = (hgradient, pink2, pink4); MenuTextBack = (hgradient, pink4, black); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = gray40; IconTitleBack = "#ffe0e5"; MenuStyle = normal; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Gtk.style�����������������������������������������������������0000644�0001750�0001750�00000002044�12214432632�016302� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = blue; HighlightTextColor = white; ClipTitleColor = white; CClipTitleColor = gray20; FTitleColor = white; PTitleColor = black; UTitleColor = darkblue; FTitleBack = (solid, darkblue); PTitleBack = (solid, "rgb:d5/d6/d5"); UTitleBack = (solid, "rgb:d5/d6/d5"); ResizebarBack = (solid, "rgb:d5/d6/d5"); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = (solid, darkblue); MenuTextBack = (solid, "rgb:d5/d6/d5"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = darkblue; MenuStyle = normal; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Blue.style����������������������������������������������������0000644�0001750�0001750�00000002246�12214432632�016450� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = left; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = white; PTitleColor = white; UTitleColor = gray20; FTitleBack = (hgradient, "rgb:00/00/10", "rgb:20/20/70"); PTitleBack = (hgradient, "rgb:50/50/50", "rgb:80/80/80"); UTitleBack = (hgradient, "rgb:90/90/90", "rgb:c0/c0/c0"); ResizebarBack = (hgradient, "rgb:90/90/90", "rgb:c0/c0/c0"); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = (hgradient, "rgb:20/20/70", "rgb:00/00/20"); MenuTextBack = (hgradient, "rgb:c0/c0/c0", "rgb:90/90/90"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = "#101040"; MenuStyle = normal; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Pumpkin.style�������������������������������������������������0000644�0001750�0001750�00000002153�12214432632�017201� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = white; PTitleColor = gray60; UTitleColor = gray60; FTitleBack = (hgradient, orange2, orange4); PTitleBack = (hgradient, orange4, black); UTitleBack = (hgradient, "rgb:18/38/59", black); ResizebarBack = (hgradient, "rgb:18/38/59", black); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = gray60; MenuTitleBack = (hgradient, orange2, orange4); MenuTextBack = (hgradient, "rgb:18/38/59", "rgb:00/14/28"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = "#bd7a00"; MenuStyle = normal; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Purple.style��������������������������������������������������0000644�0001750�0001750�00000002203�12214432632�017021� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = white; CClipTitleColor = gray20; FTitleColor = white; PTitleColor = gray; UTitleColor = gray; FTitleBack = (hgradient, mediumpurple2, "rgb:43/33/64"); PTitleBack = (hgradient, mediumpurple3, mediumpurple4); UTitleBack = (hgradient, mediumpurple4, black); ResizebarBack = (hgradient, mediumpurple4, black); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = gray60; MenuTitleBack = (hgradient, mediumpurple2, "rgb:43/33/64"); MenuTextBack = (hgradient, mediumpurple4, black); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = "#7156a9"; MenuStyle = normal; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Summer.style��������������������������������������������������0000644�0001750�0001750�00000002270�12214432632�017026� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = "rgb:83/83/56"; PTitleColor = white; UTitleColor = white; FTitleBack = (hgradient, "rgb:ff/ff/87", "rgb:c7/c7/69"); PTitleBack = (hgradient, seagreen2, seagreen4); UTitleBack = (hgradient, "rgb:b5/b5/ef", "rgb:73/73/99"); ResizebarBack = (hgradient, "rgb:b5/b5/ef", "rgb:73/73/99"); MenuTitleColor = "rgb:83/83/56"; MenuTextColor = white; MenuDisabledColor = gray30; MenuTitleBack = (hgradient, "rgb:ff/ff/87", "rgb:c7/c7/69"); MenuTextBack = (hgradient, "rgb:b5/b5/ef", "rgb:73/73/99"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = "rgb:83/83/56"; IconTitleBack = "#e3e378"; MenuStyle = normal; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Pastel.style��������������������������������������������������0000644�0001750�0001750�00000002171�12214432632�017006� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = gray30; PTitleColor = white; UTitleColor = gray30; FTitleBack = (hgradient, PaleTurquoise3, PaleTurquoise4); PTitleBack = (hgradient, pink, pink4); UTitleBack = (hgradient, cornsilk2, cornsilk4); ResizebarBack = (hgradient, cornsilk2, cornsilk4); MenuTitleColor = gray30; MenuTextColor = gray30; MenuDisabledColor = gray50; MenuTitleBack = (hgradient, lightyellow2, lightyellow4); MenuTextBack = (hgradient, slategray2, slategray4); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = gray30; IconTitleBack = "#7eacac"; MenuStyle = normal; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Chumbo.style��������������������������������������������������0000644�0001750�0001750�00000002310�12214432632�016766� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = "rgb:79/96/cf"; CClipTitleColor = "rgb:61/61/61"; FTitleColor = white; PTitleColor = white; UTitleColor = gray; FTitleBack = (hgradient, "rgb:79/a2/cf", "rgb:20/34/41"); PTitleBack = (hgradient, "rgb:70/82/af", "rgb:00/00/00"); UTitleBack = (hgradient, "rgb:59/6d/8e", "rgb:00/00/00"); ResizebarBack = (hgradient, "rgb:59/6d/8e", "rgb:00/00/00"); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = gray60; MenuTitleBack = (hgradient, "rgb:79/a2/cf", "rgb:20/34/41"); MenuTextBack = (hgradient, "rgb:59/6d/8e", "rgb:00/00/00"); IconBack = (mdgradient, "rgb:18/34/54", "rgb:28/45/69", "rgb:08/24/20"); IconTitleColor = white; IconTitleBack = "#4c6b88"; MenuStyle = normal; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Red.style�����������������������������������������������������0000644�0001750�0001750�00000002245�12214432632�016272� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = left; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = white; PTitleColor = white; UTitleColor = black; FTitleBack = (hgradient, "rgb:21/00/05", "rgb:90/00/30"); PTitleBack = (hgradient, "rgb:51/50/55", "rgb:80/80/80"); UTitleBack = (hgradient, "rgb:90/90/90", "rgb:c0/c0/c0"); ResizebarBack = (hgradient, "rgb:90/90/90", "rgb:c0/c0/c0"); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = (hgradient, "rgb:90/00/30", "rgb:21/00/05"); MenuTextBack = (hgradient, "rgb:c0/c0/c0", "rgb:90/90/90"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = "#58001a"; MenuStyle = normal; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Spring.style��������������������������������������������������0000644�0001750�0001750�00000002257�12214432632�017025� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; HighlightColor = "#ffffff"; HighlightTextColor = "#000000"; ClipTitleColor = black; CClipTitleColor = gray40; FTitleColor = "#ffffff"; PTitleColor = "#ffffff"; UTitleColor = "#303030"; FTitleBack = (mdgradient, "#181818", "#5ba3bf", "#86b8a1"); PTitleBack = (mhgradient, "#5a5c66", "rgb:70/72/7e", "rgb:45/47/4e"); UTitleBack = (mhgradient, "#9e9aa6", "#91a18d", "#b8d4b7"); ResizebarBack = (mhgradient, "#9e9aa6", "#b09fb5", "#86879b"); MenuTitleColor = "#ffffff"; MenuTextColor = "#ffffff"; MenuDisabledColor = "#515151"; MenuTitleBack = (mdgradient, "#181818", "#5ba3bf", "#86b8a1"); MenuTextBack = (mhgradient, "#9e9aa6", "#91a18d", "#b8d4b7"); IconBack = (mdgradient, "#595d61", "#ddc672", "#cea387"); IconTitleColor = white; IconTitleBack = "#18191f"; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Purplish.style������������������������������������������������0000644�0001750�0001750�00000002027�12214432632�017364� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = "#c0c0d0"; HighlightTextColor = "#505070"; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = "#804040"; PTitleColor = "#f0e0e0"; UTitleColor = "#706070"; FTitleBack = (solid, "#b08080"); PTitleBack = (solid, "#908080"); UTitleBack = (solid, "#a090a0"); ResizebarBack = (solid, "#808090"); MenuTitleColor = "#804040"; MenuTextColor = "#505060"; MenuDisabledColor = "#707080"; MenuTitleBack = (solid, "#b08080"); MenuTextBack = (solid, "#9090a0"); IconBack = (solid, "#909080"); IconTitleColor = white; IconTitleBack = "#446594"; MenuStyle = normal; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Black.style���������������������������������������������������0000644�0001750�0001750�00000002132�12214432632�016567� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = white; CClipTitleColor = gray60; FTitleColor = white; PTitleColor = white; UTitleColor = gray20; FTitleBack = (hgradient, "rgb:30/32/3e", black); PTitleBack = (hgradient, "rgb:70/72/7e", "rgb:45/47/4e"); UTitleBack = (hgradient, "rgb:a0/a2/ae", "rgb:90/92/9e"); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = gray60; MenuTitleBack = (hgradient, "rgb:30/32/3e", black); MenuTextBack = (hgradient, "rgb:50/5a/5e", "rgb:20/2a/2e"); IconBack = (mdgradient, gray40, "rgb:50/5a/5e", "rgb:30/32/3e", "rgb:20/2a/2e"); IconTitleColor = white; IconTitleBack = "#20202e"; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Fire.style����������������������������������������������������0000644�0001750�0001750�00000003052�12214432632�016442� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = left; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = black; PTitleColor = white; UTitleColor = gray20; FTitleBack = ( mhgradient, "rgb:c0/29/15", white, white, white, white, white, white, white, white, white, white, white, black, "rgb:c0/29/15", yellow, yellow, "rgb:c0/29/15", "rgb:c0/29/15" ); PTitleBack = (hgradient, "rgb:50/50/50", "rgb:80/80/80"); UTitleBack = (hgradient, "rgb:90/90/90", "rgb:d0/d0/d0"); ResizebarBack = (solid, "#b0b0b0"); MenuTitleColor = black; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = ( mhgradient, "rgb:c0/29/15", "rgb:c0/29/15", yellow, yellow, "rgb:c0/29/15", black, white, white, white, white, white, white, white, white, white, white, white, white ); MenuTextBack = (hgradient, "rgb:d0/d0/d0", "rgb:80/80/80"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = black; IconTitleBack = white; MenuStyle = normal; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/RednBlue.style������������������������������������������������0000644�0001750�0001750�00000002256�12214432632�017262� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = white; PTitleColor = white; UTitleColor = gray; FTitleBack = (hgradient, "rgb:96/24/49", "rgb:30/00/10"); PTitleBack = (hgradient, "rgb:49/71/86", "rgb:19/41/56"); UTitleBack = (hgradient, "rgb:30/51/8e", "rgb:00/0c/00"); ResizebarBack = (hgradient, "rgb:30/51/8e", "rgb:00/0c/00"); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = "rgb:61/61/61"; MenuTitleBack = (hgradient, "rgb:96/24/49", "rgb:30/00/10"); MenuTextBack = (hgradient, "rgb:30/51/8e", "rgb:00/0c/00"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = "#63122c"; MenuStyle = normal; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Food.style����������������������������������������������������0000644�0001750�0001750�00000002137�12214432632�016447� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = white; CClipTitleColor = gray20; FTitleColor = gray30; PTitleColor = white; UTitleColor = gray; FTitleBack = (hgradient, orange2, orange4); PTitleBack = (hgradient, lightsalmon2, lightsalmon4); UTitleBack = (hgradient, salmon2, salmon4); ResizebarBack = (hgradient, salmon2, salmon4); MenuTitleColor = gray30; MenuTextColor = white; MenuDisabledColor = gray60; MenuTitleBack = (hgradient, orange2, orange4); MenuTextBack = (hgradient, tomato2, tomato4); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = gray30; IconTitleBack = "#bd7a00"; MenuStyle = normal; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/NightSky.style������������������������������������������������0000644�0001750�0001750�00000002443�12214432632�017320� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = "#ffe0ac"; HighlightTextColor = "#000000"; ClipTitleColor = "#fff38c"; CClipTitleColor = "#718a79"; FTitleColor = "#ffffff"; PTitleColor = "#ffffff"; UTitleColor = gray; FTitleBack = (mhgradient, "#000000", "#3d637f", "#315c77", "#333f3e"); PTitleBack = (mhgradient, "#000000", "#7390aa", "#405e81", "#3d4a59"); UTitleBack = (mhgradient, "#000000", "#595969", "#444661", "#202831"); ResizebarBack = (mhgradient, "#000000", "#494c63", "#444661", "#202841"); MenuTitleColor = "#ffffff"; MenuTextColor = "#ffffff"; MenuDisabledColor = "#9e9a9e"; MenuTitleBack = (mhgradient, "#000000", "#3d637f", "#315c77", "#333f3e"); MenuTextBack = (mhgradient, "#000000", "#494c63", "#444661", "#202841"); IconBack = (mhgradient, "#000000", "#595969", "#444661", "#202831"); IconTitleColor = white; IconTitleBack = "#4d748f"; MenuStyle = normal; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Copper.style��������������������������������������������������0000644�0001750�0001750�00000002310�12214432632�017001� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = "rgb:79/96/cf"; CClipTitleColor = "rgb:61/61/61"; FTitleColor = white; PTitleColor = white; UTitleColor = gray; FTitleBack = (dgradient, "rgb:90/69/8e", "rgb:18/00/00"); PTitleBack = (dgradient, "rgb:50/29/4e", "rgb:00/00/00"); UTitleBack = (dgradient, "rgb:59/6d/8e", "rgb:00/00/00"); ResizebarBack = (dgradient, "rgb:59/6d/8e", "rgb:00/00/00"); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = gray60; MenuTitleBack = (dgradient, "rgb:90/69/8e", "rgb:18/00/00"); MenuTextBack = (dgradient, "rgb:38/10/10", "rgb:8e/59/7e"); IconBack = (mdgradient, "rgb:18/34/54", "rgb:28/45/69", "rgb:08/24/20"); IconTitleColor = white; IconTitleBack = "#543447"; MenuStyle = normal; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Autumn.style��������������������������������������������������0000644�0001750�0001750�00000002067�12214432632�017033� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = white; CClipTitleColor = gray20; FTitleColor = white; PTitleColor = gray; UTitleColor = white; FTitleBack = (hgradient, darkred, black); PTitleBack = (hgradient, indianred, black); UTitleBack = (hgradient, peru, black); ResizebarBack = (hgradient, peru, black); MenuTitleColor = white; MenuTextColor = white; MenuDisabledColor = gray80; MenuTitleBack = (hgradient, firebrick, black); MenuTextBack = (hgradient, peru, black); IconBack = (dgradient, "#efb573", "#734221"); IconTitleColor = white; IconTitleBack = "#8b0000"; MenuStyle = normal; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/DarkRed.style�������������������������������������������������0000644�0001750�0001750�00000002244�12214432632�017073� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; TitleJustify = center; HighlightColor = white; HighlightTextColor = black; ClipTitleColor = black; CClipTitleColor = gray30; FTitleColor = white; PTitleColor = white; UTitleColor = gray20; FTitleBack = (dgradient, "rgb:21/00/05", "rgb:90/00/30"); PTitleBack = (dgradient, "rgb:51/50/55", "rgb:80/80/80"); UTitleBack = (dgradient, "rgb:90/90/90", "rgb:c0/c0/c0"); ResizebarBack = (dgradient, "rgb:90/90/90", "rgb:c0/c0/c0"); MenuTitleColor = white; MenuTextColor = black; MenuDisabledColor = gray40; MenuTitleBack = (dgradient, "rgb:90/00/30", "rgb:21/00/05"); MenuTextBack = (dgradient, "rgb:b0/b0/b0", "rgb:60/60/60"); IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61"); IconTitleColor = white; IconTitleBack = white; MenuStyle = normal; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/Styles/Emerald.style�������������������������������������������������0000644�0001750�0001750�00000002245�12214432632�017131� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ WindowTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTitleFont = "Trebuchet MS,sans serif:bold:pixelsize=12"; MenuTextFont = "Trebuchet MS,sans serif:pixelsize=12"; IconTitleFont = "Arial,sans serif:pixelsize=9"; ClipTitleFont = "Verdana:bold:pixelsize=10"; DisplayFont = "Trebuchet MS,sans serif:pixelsize=12"; LargeDisplayFont = "Trebuchet MS,sans serif:pixelsize=24"; HighlightColor = "#595d8e"; HighlightTextColor = "#71b6d7"; ClipTitleColor = white; CClipTitleColor = gray60; FTitleColor = "#ffffff"; PTitleColor = "#ffffff"; UTitleColor = "#d7d7d7"; FTitleBack = (mdgradient, "#415979", "#051626", "#7391bb"); PTitleBack = (mdgradient, "#384161", "#212526", "#474a70"); UTitleBack = (mdgradient, "#386569", "#051c26", "#59999f"); ResizebarBack = (mdgradient, "#386569", "#051c26", "#59999f"); MenuTitleColor = "#ffffff"; MenuTextColor = "#ffffff"; MenuDisabledColor = "#aeaeae"; MenuTitleBack = (mdgradient, "#415979", "#051626", "#7391bb"); MenuTextBack = (mdgradient, "#386569", "#051c26", "#59999f"); IconBack = (mdgradient, "#384161", "#212526", "#474a70"); IconTitleColor = white; IconTitleBack = "#18191f"; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/menu.fr��������������������������������������������������������������0000644�0001750�0001750�00000022232�12214432632�014506� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Définition du menu de fond pour WindowMaker * * La syntaxe est: * * <Titre> [SHORTCUT <Raccourci>] <Commande> <Paramètres> * * <Titre> est une chaine de charactères qui représente un titre. Il doit * être entre guillemets si il y a des espaces. * * SHORTCUT spécifie un raccourci pour une entrée dans le menu. <Raccourci> * a la même syntaxe que les options pour les raccourcis clavier dans le * 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 * ou OPEN_MENU. * * <Commande> une des commandes valides: * * MENU Commence une définition de (sous)menu * * END Fin d'une définition de (sous)menu * * OPEN_MENU Ouvre un menu depuis un fichier, un "pipe" * ou le contenu d'un ou plusieurs répertoires * et eventuellement peut etre précédé d'une * commande. * * WORKSPACE_MENU Ajoute un sous menu pour les opérations * sur les bureaux. Il ne peut y * avoir qu'un seul WORKSPACE_MENU. * * EXEC Execute un programme externe * * EXIT Quitte le gestionnaire de fenêtres * * RESTART [<window manager>] Redémarre WindowMaker ou démarre un * autre gestionnaire de fenêtres * * REFRESH Retrace l'écran * * ARRANGE_ICONS Arrange les icônes sur le bureau * * SHUTDOWN Tue tout les clients ( et termine la * session X Window) * * SHOW_ALL Montre toutes les fenêtres sur le bureau * * HIDE_OTHERS Cache toutes les fenêtres sur le * bureau qui sont en arrière plan * * SAVE_SESSION Sauve la l'état courant du bureau, cela * inclus toute les applications en marche, * tout leur indices (geometrie, position * sur l'écran, le bureau sur * lequel elle sont, si elles ont ete lancées * par le "dock" ou le "clip", si elles * etaient minimisées, ombrées ou cachées). * De plus, le bureau actuel * sera aussi sauvé. Tout sera remis dans * cet état a chaque démarrage de * WindowMaker jusqu'au prochain usage de * SAVE_SESSION ou CLEAR_SESSION. Si * "SaveSessionOnExit" est égal à "Yes" * dans le fichier de domaine de * WindowMaker, alors la sauvegarde est * automatiquement faite a chaque fin de * session, abandonnant toute SAVE_SESSION * ou CLEAR_SESSION antérieure (Voir plus * bas). * * CLEAR_SESSION Efface la sauvegarde de toute session * antérieure. Ceci n'aura aucun effet si * "SaveSessionOnExit" est égal à "Yes". * * INFO_PANEL Affiche le panneau d'informations sur * WindowMaker. * * LEGAL_PANEL Affiche le panneau d'informations sur * le statut legal de WindowMaker. * * Syntaxe d'OPEN_MENU: * * 1. Utilisation d'un fichier de menu. * / Ouvre "fichier.menu" (celui-ci doit contenir un fichier de menu * / valide) et l'insère à la position courante. * * OPEN_MENU fichier.menu * * 2. Utilisation de "pipes". * / Ouvre une commande et utilise sa sortie standard pour construire * / un menu (la sortie standard de la commande doit être une * / description de menu valide). L'espace entre '|' est optionel. * * OPEN_MENU | commande * * 3. Utilisation de répertoires. * / Ouvre un ou plusieurs répertoires et construit un menu avec tout * / les sous répertoires et les fichiers éxécutables a l'intérieur et * / les classe dans l'ordre alphabétique. * * OPEN_MENU /un/répertoire [/un/autre/repértoire ...] * * 4. Utilisation de répertoires avec une commande. * / Ouvre un ou plusieurs répertoires et construit un menu avec tout * / les sous répertoires et les fichiers lisibles a l'intérieur et * / les classe dans l'ordre alphabétique, précédant chacun d'eux * / d'une commande. * * OPEN_MENU /un/répertoire [/un/autre/répertoire ...] WITH commande -option * * Options: * -noext retirer tout ce qui se trouve après le dernier point * dans le nom de fichier. * * <Parametre> est le programme a éxécuter. * * ** Options pour la ligne de commande après EXEC: * * %s substituer avec la sélection courante * %a(titre[,message]) ouvre une boite de dialogue avec un message et fait la * substitution avec ce que vous avez tapé * %w substituer par la "XID" de la fenêtre en avant plan * courante * * Vous pouvez outrepasser des charactères spéciaux (comme % et ") avec le * charactère \ * * ex: xterm -T "\"Hello World\"" * * Vous pouvez aussi utiliser des séquences "escape", comme \n * * Chaque déclaration de MENU doit avoir sa déclaration END à la fin. * * Exemple: * * "Test" MENU * "XTerm" EXEC xterm * / 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 $HOME/bin/X11 * / Définir quelques images de fond * "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 */ #include "wmmacros" "Applications" MENU "Informations" MENU "Panneau d'informations" INFO_PANEL "Panneau d'informations légales" LEGAL_PANEL "Console système" EXEC xconsole "Charge système" SHEXEC xosview || xload "Liste des processus" EXEC xterm -e top "Butineur d'aide" EXEC xman "Informations" END "Démarrer..." SHEXEC %a(Démarrer,Tapez une commande à démarrer:) "Terminal X" EXEC xterm -sb "Rxvt" EXEC rxvt -bg black -fg white -fn fixed "Bureaux" WORKSPACE_MENU "Applications" MENU "Graphismes" MENU "Gimp" SHEXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig "Graphismes" END "Xfm" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx "Netscape" EXEC netscape "Ghostview" EXEC ghostview %a(Entrez un fichier) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobat,Entrez un fichier PDF) "TkDesk" EXEC tkdesk "Applications" END "Editeurs" MENU "XFte" EXEC xfte "XEmacs" SHEXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi "Editeurs" END "Divers" MENU "Xmcd" SHEXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer "Divers" END "Utilitaires" MENU "Calculatrice" EXEC xcalc "Propriétés de la fenêtre" SHEXEC xprop | xmessage -center -title 'xprop' -file - "Sélecteur de polices" EXEC xfontsel "Emulateur de terminal" EXEC xminicom "Loupe" EXEC xmag "Carte des couleurs" EXEC xcmap "XKill" EXEC xkill "Sélections" EXEC xclipboard "Utilitaires" END "Sélection" MENU "Copier" SHEXEC echo '%s' | wxcopy "Envoyer à" EXEC xterm -name mail -T "Pine" -e pine %s "Naviguer" EXEC netscape %s "Rechercher dans le manuel" SHEXEC MANUAL_SEARCH(%s) "Sélection" END "Bureau" MENU "Cacher les autres fenêtres" HIDE_OTHERS "Montrer toutes les fenêtres" SHOW_ALL "Arranger les icônes" ARRANGE_ICONS "Retracer l'écran" REFRESH "Vérrouiller" EXEC xlock -allowroot -usefirst "Sauver la session" SAVE_SESSION "Effacer la session" CLEAR_SESSION "Bureaux" END "Apparence" MENU "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)' "Bleu" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' "Bleu foncé" WS_BACK '(solid, "#224477")' "Violet" WS_BACK '(solid, "#554466")' "Blanc crème" WS_BACK '(solid, "wheat4")' "Gris foncé" WS_BACK '(solid, "#333340")' "Bordeaux" WS_BACK '(solid, "#400020")' "Unifié" END "Degradé" MENU "Coucher de Soleil" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)' "Ciel" WS_BACK '(vgradient, blue4, white)' "Dégradés de Bleu" WS_BACK '(vgradient, "#7080a5", "#101020")' "Dégradés d'Indigo" WS_BACK '(vgradient, "#746ebc", "#242e4c")' "Dégradés de Violet" WS_BACK '(vgradient, "#654c66", "#151426")' "Dégradés de Beige" WS_BACK '(vgradient, "#a09060", "#302010")' "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 $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Fond d'écran" END "Sauver le thème" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Nom du thème,Entrez un nom de fichier:)" "Sauver le jeu d'icônes" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Nom du jeu d'icônes,Entrez un nom de fichier:)" "Apparence" END "Quitter" MENU "Redémarrer" RESTART "Démarrer AfterStep" RESTART afterstep "Quitter..." EXIT "Tuer la session..." SHUTDOWN "Quitter" END "Applications" END ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu.it������������������������������������������������������������0000644�0001750�0001750�00000011066�12214432632�015052� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������("Applicazioni", ("Informazioni", ("Info Panel...", INFO_PANEL), ("Legal...", LEGAL_PANEL), ("Console di sistema", EXEC, "xconsole"), ("Carico del Sistema", EXEC, "xosview || xload"), ("Lista dei Processi", EXEC, "xterm -e top"), ("Ricerca Manuali", EXEC, "xman") ), ("Esegui...", EXEC, "%a(Esegui,Scrivi il comando da eseguire:)"), ("XTerm", EXEC, "xterm -sb"), ("Rxvt", EXEC, "rxvt -bg black -fg white -fn fixed"), ("Workspace", WORKSPACE_MENU), ("Programmi", ("Grafica", ("Gimp", EXEC, "gimp >/dev/null"), ("XV", EXEC, "xv"), ("XPaint", EXEC, "xpaint"), ("XFig", EXEC, "xfig") ), ("X File Manager", EXEC, "xfm"), ("OffiX Files", EXEC, "files"), ("LyX", EXEC, "lyx"), ("Netscape", EXEC, "netscape"), ("Ghostview", EXEC, "ghostview %a(Ghostview, Scrivi il file da visualizzare)"), ("Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(Acroread, Scrivi il file da visualizzare)"), ("TkDesk", EXEC, "tkdesk") ), ("Editor", ("XFte", EXEC, "xfte"), ("XEmacs", EXEC, "xemacs || emacs"), ("XJed", EXEC, "xjed"), ("NEdit", EXEC, "nedit"), ("Xedit", EXEC, "xedit"), ("VI", EXEC, "xterm -e vi") ), ("Varie", ("Xmcd", EXEC, "xmcd 2> /dev/null"), ("Xplaycd", EXEC, "xplaycd"), ("Xmixer", EXEC, "xmixer") ), ("Utilità", ("Calcolatrice", EXEC, "xcalc"), ("Proprietà finestra", EXEC, "xprop | xmessage -center -title 'xprop' -file -"), ("Selezione Font", EXEC, "xfontsel"), ("Emulatore di terminale", EXEC, "xminicom"), ("Lente", EXEC, "xmag"), ("Mappa Colori", EXEC, "xcmap"), ("Assasino X", EXEC, "xkill"), ("ASClock", EXEC, "asclock -shape"), ("Clipboard", EXEC, "xclipboard") ), ("Selezione", ("Copia", EXEC, "echo '%s' | wxcopy"), ("Spedisci a...", EXEC, "xterm -name mail -T Pine -e pine %s"), ("Naviga", EXEC, "netscape %s"), ("Cerca nei Manuali", EXEC, "MANUAL_SEARCH(%s)") ), ("Workspace", ("Nascondi gli altri", HIDE_OTHERS), ("Mostra Tutti", SHOW_ALL), ("Riordina Icone", ARRANGE_ICONS), ("Refresh", REFRESH), ("Lock", EXEC, "xlock -allowroot -usefirst"), ("Salva Sessione", SAVE_SESSION), ("Cancella Sessione salvata", CLEAR_SESSION) ), ("Visualizzazione", ("Temi", OPEN_MENU, "-noext /usr/share/WindowMaker/Themes ~/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("Stili", OPEN_MENU, "-noext /usr/share/WindowMaker/Styles ~/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("Set di Icone", OPEN_MENU, "-noext /usr/share/WindowMaker/IconSets ~/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("Sfondo", ("Tinta unita", ("Nero", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("Blu-Grigio", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("Indaco", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"), ("Blue", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'"), ("Viola", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("Beige", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("Grigio", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("Vinaccia", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ), ("Sfumato", ("Tramonto", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("Cielo", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Sfumature Blu", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("Sfumature Indaco", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("Sfumature Viola", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("Sfumature Beige", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("Sfumature Grigie", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Sfumature Vinaccia", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), ("Immagini", OPEN_MENU, "-noext /usr/share/WindowMaker/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), ("Salva il tema", EXEC, "getstyle -t ~/GNUstep/Library/WindowMaker/Themes/\"%a(Nome Tema)\""), ("Salva il set icone", EXEC, "geticonset ~/GNUstep/Library/WindowMaker/IconSets/\"%a(Nome IconSet)\"") ), ("Esci", ("Riavvia", RESTART), ("Avvia BlackBox", RESTART, blackbox), ("Avvia kwm", RESTART, kwm), ("Avvia IceWM", RESTART, icewm), ("Esci...", EXIT), ("Uccidi sessione...", SHUTDOWN) ) ) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WindowMaker/plmenu.fi������������������������������������������������������������0000644�0001750�0001750�00000014734�12214432632�015041� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������( "Sovellukset", ( "Tietoja", ("Tietoja...", INFO_PANEL), ("Laillista", LEGAL_PANEL), ( "Järjestelmäkonsoli", EXEC, "xconsole" ), ( "Järjestelmän rasitus", EXEC, "xosview || xload" ), ( "Prosessiluettelo", EXEC, "xterm -e top" ), ( "Ohjeselain", EXEC, "xman" ) ), ( "Käynnistä...", EXEC, "%a(Käynnistä,Kirjoita suoritettava komento:)" ), ( "XTerm", EXEC, "xterm -sb" ), ( "Rxvt", EXEC, "rxvt -bg black -fg white -fn fixed" ), ("Työtilat", WORKSPACE_MENU), ( "Sovellukset", ( "Grafiikka", ( "Gimp", EXEC, "gimp >/dev/null" ), ( "XV", EXEC, "xv" ), ( "XPaint", EXEC, "xpaint" ), ( "XFig", EXEC, "xfig" ) ), ( "X Tiedostonhallinta", EXEC, "xfm" ), ( "OffiX Tiedostot", EXEC, "files" ), ( "LyX", EXEC, "lyx" ), ( "Netscape", EXEC, "netscape" ), ( "Ghostview", EXEC, "ghostview %a(GhostView,Kirjoita näytettävän tiedoston nimi:)" ), ( "Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(Acrobat,Kirjoita näytettävän PDF-tiedoston nimi)" ), ( "TkDesk", EXEC, "tkdesk" ) ), ( "Editorit", ( "XFte", EXEC, "xfte" ), ( "XEmacs", EXEC, "xemacs || emacs" ), ( "XJed", EXEC, "xjed" ), ( "NEdit", EXEC, "nedit" ), ( "Xedit", EXEC, "xedit" ), ( "VI", EXEC, "xterm -e vi" ) ), ( "Sekalaiset", ( "Xmcd", EXEC, "xmcd 2> /dev/null" ), ( "Xplaycd", EXEC, "xplaycd" ), ( "Xmixer", EXEC, "xmixer" ) ), ( "Apuohjelmat", ( "Laskin", EXEC, "xcalc" ), ( "Ikkunan ominaisuudet", EXEC, "xprop | xmessage -center -title 'xprop' -file -" ), ( "Kirjasinlajivalitsin", EXEC, "xfontsel" ), ( "Pääte", EXEC, "xminicom" ), ( "Suurennuslasi", EXEC, "xmag" ), ( "Värikartta", EXEC, "xcmap" ), ( "XKill", EXEC, "xkill" ), ( "Leikepöytä", EXEC, "xclipboard" ) ), ( "Valinta", ( "Kopioi", EXEC, "echo '%s' | wxcopy" ), ( "Lähetä sähköpostina", EXEC, "xterm -name mail -T \"Pine\" -e pine %s" ), ( "Selaa selaimella", EXEC, "netscape %s" ), ( "Etsi ohjeista", EXEC, "if ( man %s > /dev/null ); then man %s | xless; else xmessage -center -title \"Manual Browser\" Sorry, but there is no manual page entry for %s ...; fi" ) ), ( "Työtila", ("Piilota muut", HIDE_OTHERS), ("Näytä kaikki ikkunat", SHOW_ALL), ("Järjestä kuvakkeet", ARRANGE_ICONS), ("Virkistä ruutu", REFRESH), ( "Lukitse näyttö", EXEC, "xlock -allowroot -usefirst" ), ("Tallenna istunto", SAVE_SESSION), ("Tyhjennä istunto", CLEAR_SESSION) ), ( "Ulkonäkö", ( "Teemat", OPEN_MENU, "-noext /usr/local/share/WindowMaker/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle" ), ( "Tyylit", OPEN_MENU, "-noext /usr/local/share/WindowMaker/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle" ), ( "Kuvakkeet", OPEN_MENU, "-noext /usr/local/share/WindowMaker/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons" ), ( "Taustat", ( "Yksivärinen", ( "Musta", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'" ), ( "Sininen", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'" ), ( "Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'" ), ( "Tummansininen", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'" ), ( "Violetti", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'" ), ( "Kellertävä", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"wheat4\")'" ), ( "Tummanharmaa", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'" ), ( "Viininpunainen", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'" ) ), ( "Liukuväri", ( "Auringonlasku", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'" ), ( "Taivas", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'" ), ( "Sinisen sävyjä", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'" ), ( "Indigon sävyjä", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'" ), ( "Violetin sävujä", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'" ), ( "Kellertävän sävyjä", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'" ), ( "Harmaan sävyjä", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'" ), ( "Viininpunaisen sävyjä", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'" ) ), ( "Kuvat", OPEN_MENU, "-noext /usr/local/share/WindowMaker/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t" ) ), ( "Tallenna teema", EXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Teeman nimi,Kirjoita teematiedoston nimi:)\"" ), ( "Tallenna kuvakkeet", EXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(Kuvakesetin nimi,Kirjoita tiedostonnimi:)\"" ), ( "Asetukset", EXEC, "/usr/local/GNUstep/Applications/WPrefs.app/WPrefs" ) ), ( "Lopeta", ("Käynnistä WM uudelleen", RESTART), ("Käynnistä BlackBox", RESTART, blackbox), ("Käynnistä kwm", RESTART, kwm), ("Käynnistä IceWM", RESTART, icewm), ("Lopeta", EXIT) ) ) ������������������������������������WindowMaker-0.95.5/util/����������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434642�012021� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/seticons.c������������������������������������������������������������������0000644�0001750�0001750�00000006173�12214432632�013740� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* seticons.c - sets icon configuration in WindowMaker * * WindowMaker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifdef __GLIBC__ #define _GNU_SOURCE /* getopt_long */ #endif #include <getopt.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <WINGs/WUtil.h> #include "../src/wconfig.h" extern char *__progname; static void print_help(int print_usage, int exitval) { printf("Usage: %s [-h] [-v] [file]\n", __progname); if (print_usage) { puts("Reads icon configuration from FILE and updates Window Maker."); puts(""); puts(" -h, --help display this help and exit"); puts(" -v, --version output version information and exit"); } exit(exitval); } int main(int argc, char **argv) { WMPropList *window_name, *window_attrs, *icon_value; WMPropList *all_windows, *iconset, *keylist; int i, ch; char *path = NULL; struct option longopts[] = { { "version", no_argument, NULL, 'v' }, { "help", no_argument, NULL, 'h' }, { NULL, 0, NULL, 0 } }; while ((ch = getopt_long(argc, argv, "hv", longopts, NULL)) != -1) switch(ch) { case 'v': printf("%s (Window Maker %s)\n", __progname, VERSION); return 0; /* NOTREACHED */ case 'h': print_help(1, 0); /* NOTREACHED */ case 0: break; default: print_help(0, 1); /* NOTREACHED */ } argc -= optind; argv += optind; if (argc != 1) print_help(0, 1); path = wdefaultspathfordomain("WMWindowAttributes"); all_windows = WMReadPropListFromFile(path); if (!all_windows) { printf("%s: could not load WindowMaker configuration file \"%s\".\n", __progname, path); return 1; } iconset = WMReadPropListFromFile(argv[0]); if (!iconset) { printf("%s: could not load icon set file \"%s\".\n", __progname, argv[0]); return 1; } keylist = WMGetPLDictionaryKeys(iconset); for (i = 0; i < WMGetPropListItemCount(keylist); i++) { window_name = WMGetFromPLArray(keylist, i); if (!WMIsPLString(window_name)) continue; icon_value = WMGetFromPLDictionary(iconset, window_name); if (!icon_value || !WMIsPLDictionary(icon_value)) continue; window_attrs = WMGetFromPLDictionary(all_windows, window_name); if (window_attrs) { if (WMIsPLDictionary(window_attrs)) { WMMergePLDictionaries(window_attrs, icon_value, True); } } else { WMPutInPLDictionary(all_windows, window_name, icon_value); } } WMWritePropListToFile(all_windows, path); return 0; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/wxcopy.c��������������������������������������������������������������������0000644�0001750�0001750�00000014424�12214432632�013440� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* wxcopy.c- copy stdin or file into cutbuffer * * Copyright (c) 1997-2003 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., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <X11/Xlib.h> #include <X11/Xatom.h> #include "../src/wconfig.h" #define LINESIZE (4*1024) #define MAXDATA (64*1024) extern char *__progname; static void print_help(void) { printf("Usage: %s [OPTIONS] [FILE]\n", __progname); puts("Copies data from FILE or stdin into X cut buffer."); puts(""); puts(" -display <display> display to use"); puts(" --cutbuffer <number> cutbuffer number to put data"); puts(" --no-limit do not limit size of input data"); puts(" --clear-selection clears the current PRIMARY selection"); puts(" -h, --help display this help and exit"); puts(" -v, --version output version information and exit"); } static int errorHandler(Display * dpy, XErrorEvent * err) { /* ignore all errors */ return 0; } int main(int argc, char **argv) { Display *dpy; int i; int buffer = -1; char *filename = NULL; FILE *file = stdin; char *buf = NULL; char *display_name = ""; int l = 0; int buf_len = 0; int limit_check = 1; int clear_selection = 0; for (i = 1; i < argc; i++) { if (argv[i][0] == '-') { if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) { print_help(); exit(0); } else if (strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--version") == 0) { printf("%s (Window Maker %s)\n", __progname, VERSION); exit(0); } else if (strcmp(argv[i], "-cutbuffer") == 0 || strcmp(argv[i], "--cutbuffer") == 0) { if (i < argc - 1) { i++; if (sscanf(argv[i], "%i", &buffer) != 1) { fprintf(stderr, "%s: could not convert '%s' to int\n", __progname, argv[i]); exit(1); } if (buffer < 0 || buffer > 7) { fprintf(stderr, "%s: invalid buffer number %i\n", __progname, buffer); exit(1); } } else { printf("%s: missing argument for '%s'\n", __progname, argv[i]); printf("Try '%s --help' for more information\n", __progname); exit(1); } } else if (strcmp(argv[i], "-display") == 0) { if (i < argc - 1) { display_name = argv[++i]; } else { printf("%s: missing argument for '%s'\n", __progname, argv[i]); printf("Try '%s --help' for more information\n", __progname); exit(1); } } else if (strcmp(argv[i], "-clearselection") == 0 || strcmp(argv[i], "--clear-selection") == 0) { clear_selection = 1; } else if (strcmp(argv[i], "-nolimit") == 0 || strcmp(argv[i], "--no-limit") == 0) { limit_check = 0; } else { printf("%s: invalid argument '%s'\n", __progname, argv[i]); printf("Try '%s --help' for more information\n", __progname); exit(1); } } else { filename = argv[i]; } } if (filename) { file = fopen(filename, "rb"); if (!file) { char line[1024]; sprintf(line, "%s: could not open \"%s\"", __progname, filename); perror(line); exit(1); } } dpy = XOpenDisplay(display_name); XSetErrorHandler(errorHandler); if (!dpy) { fprintf(stderr, "%s: could not open display \"%s\"\n", __progname, XDisplayName(display_name)); exit(1); } if (buffer < 0) { Atom *rootWinProps; int exists[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; int i, count; /* Create missing CUT_BUFFERs */ rootWinProps = XListProperties(dpy, DefaultRootWindow(dpy), &count); for (i = 0; i < count; i++) { switch (rootWinProps[i]) { case XA_CUT_BUFFER0: exists[0] = 1; break; case XA_CUT_BUFFER1: exists[1] = 1; break; case XA_CUT_BUFFER2: exists[2] = 1; break; case XA_CUT_BUFFER3: exists[3] = 1; break; case XA_CUT_BUFFER4: exists[4] = 1; break; case XA_CUT_BUFFER5: exists[5] = 1; break; case XA_CUT_BUFFER6: exists[6] = 1; break; case XA_CUT_BUFFER7: exists[7] = 1; break; default: break; } } if (rootWinProps) { XFree(rootWinProps); } for (i = 0; i < 8; i++) { if (!exists[i]) { XStoreBuffer(dpy, "", 0, i); } } XRotateBuffers(dpy, 1); buffer = 0; } while (!feof(file)) { char *nbuf; char tmp[LINESIZE + 2]; int nl = 0; /* * Use read() instead of fgets() to preserve NULLs, since * especially since there's no reason to read one line at a time. */ if ((nl = fread(tmp, 1, LINESIZE, file)) <= 0) { break; } if (buf_len == 0) { nbuf = malloc(buf_len = l + nl + 1); } else if (buf_len < l + nl + 1) { /* * To avoid terrible performance on big input buffers, * grow by doubling, not by the minimum needed for the * current line. */ buf_len = 2 * buf_len + nl + 1; /* some realloc implementations don't do malloc if buf==NULL */ if (buf == NULL) { nbuf = malloc(buf_len); } else { nbuf = realloc(buf, buf_len); } } else { nbuf = buf; } if (!nbuf) { fprintf(stderr, "%s: out of memory\n", __progname); exit(1); } buf = nbuf; /* * Don't strcat, since it would make the algorithm n-squared. * Don't use strcpy, since it stops on a NUL. */ memcpy(buf + l, tmp, nl); l += nl; if (limit_check && l >= MAXDATA) { fprintf (stderr, "%s: too much data in input - more than %d bytes\n" " use the -nolimit argument to remove the limit check.\n", __progname, MAXDATA); exit(1); } } if (clear_selection) { XSetSelectionOwner(dpy, XA_PRIMARY, None, CurrentTime); } if (buf) { XStoreBuffer(dpy, buf, l, buffer); } XFlush(dpy); XCloseDisplay(dpy); exit(buf == NULL || errno != 0); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/bughint���������������������������������������������������������������������0000755�0001750�0001750�00000002335�12214432632�013327� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # # Use this to gather data about your system and send me # the sysinfo.txt file with your bugreport, plus any error # messages you've received. This program should be run under X. # echo gathering information for bug tracking... uname -a > sysinfo.txt wmaker --version >> sysinfo.txt echo "=============== xdpyinfo ================" >> sysinfo.txt xdpyinfo >> sysinfo.txt echo "=============== env ================" >> sysinfo.txt env >> sysinfo.txt echo "=============== ldconfig ================" >> sysinfo.txt if [ `uname` = 'Linux' ]; then /sbin/ldconfig -p >> sysinfo.txt else /sbin/ldconfig -r >> sysinfo.txt fi echo "=============== config.cache ================" >> sysinfo.txt cat ../config.cache ../Version >> sysinfo.txt 2> /dev/null cat config.cache Version >> sysinfo.txt 2> /dev/null echo "=============== configuration dir ===========" >> sysinfo.txt WDIR=$HOME/GNUstep/Defaults if [ -d $WDIR ]; then for i in WMGLOBAL WMRootMenu WMState WMWindowAttributes WindowMaker; do if [ -f $WDIR/$i ]; then echo "============== $i ========" >> sysinfo.txt cat $WDIR/$i >> sysinfo.txt fi done else echo "No config directory found" >> sysinfo.txt fi bzip2 -9f sysinfo.txt || gzip -9f sysinfo.txt echo done. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/README����������������������������������������������������������������������0000644�0001750�0001750�00000002135�12214432632�012617� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������wm-oldmenu2new - converts between the plain text file menu format to the property list menu format. bughint- gathers some information for bug reporting geticonset- outputs the current set of icon assignments. Good for making themes. setstyle- load style settings from a style file and setup WindowMaker getstyle - gets current style settings and save into a file or create a theme pack. seticons- merges icon definitions into WMWindowAttributes file wmaker.inst- quick and dirty script to install necessary files from global configuration to user's directory. Look in the script to adapt it to your site. wxcopy- copy input file or stdin into X cutbuffer wxpaste- copy content of X cutbuffer into stdout wmsetbg- set the workspace background into a image and make it persist between sessions. wdwrite- write data into the defaults database (configuration files). wdread- read Simple data from defaults database (for use in scripts for example) wmagnify- a program to magnify the area near the mouse pointer, with real-time update wkdemenu.pl- convert a KDE menu into a wmaker menu (for pipe) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/wkdemenu.pl�����������������������������������������������������������������0000644�0001750�0001750�00000027363�12214432632�014125� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl # # # kde2wmaker.pl: # # # This script, made for users of Window Maker (http://windowmaker.info) is to # be used along with KDE (http://www.kde.org). # # # The default directory, /usr/share/applnk, will contain various # sub-directories such as Development, Editors, Internet, etc. If for some # reason, you wish to use an alternate (parent) directory that contains the # various applnk files, it can be specified on the command line. # # The directory, if an alternate is specified, MUST be a parent directory to # any/all sub-directories. # # Usage: kde2wmaker.pl [ Options... ] # # Options: # # -d <KDE App.kdelnk dir> # -f <output menufile> # -t <X terminal application> # # When the script is run, it will write out a proper Window Maker "External # Menu" entry, that can be included in the menu. When the External Menu has # been correctly configured, the root menu will display a sub-menu containing # all of the KDE related items found. The script only needs to be run when/if # KDE is updated. # # # Installation and Configuration: # # 1) If /usr/bin/perl is not the location of the perl binary on your system, # the first line should be changed to reflect upon it's location. # 2) Run the script. # 3) Configure Window Maker's menu by editing ~/GNUstep/Defaults/WMRootMenu # This could be done with any text editor, or by using WPrefs. Insert # the following line (if done with a text editor) into the WMRootMenu file. # ("External Menu", OPEN_MENU, "$HOME/.kde2wmaker.menu"), # If done using WPrefs, simply "Add External Menu" from the drop down menu, # then type: $HOME/.kde2wmaker.menu into the "Menu Path/Directory List" # textbox. # 4) Some KDE entries, such as "Pine" will require a terminal to # execute it. There is a terminal variable below. You may use any # terminal, XTerm is the default. Any command line options such as: # -fg -bg, etc. can be specified in this variable as well. # # # Michael Hokenson - logan@dct.com # # #--------------------------------------------------------------------- # # v1.2.0 -- 14th February 2001. # # Added alphabetic sorting of the menus. # # Directories are now displayed before files in the menu. # #--------------------------------------------------------------------- # # v1.1.5 -- 3rd February 2001. (No public release) # # Unsupported applnk files have a fallback entry in the menu tree so # that users can report menu entries that do not work. So far, # wkdemenu.pl assumes that there is an Exec= line in the application # definition, which is not always the case. # # -------------------------------------------------------------------- # # v1.1.0 -- 29th January 2001. # # Code cleanup and bug fixes. # # -------------------------------------------------------------------- # # v1.0.0 -- 21st January 2001. # # This script has been completely re-written to allow recursion of the # KDE menu directories to an arbitrary depth, fixing a major # functional limitation in the original script. To do this, I have # rewritten the code to traverse directories recursively, introducing # a subroutine, process_dir() to carry out the task. # # wkdemenu.pl provides an excellent extension to the user interface in # Window Maker, working well with the "Generated Submenu" feature. # # # Summary of New Features # ----------------------- # # Added support for menus of arbitrary depth. # # Added basic internationalisation based on KDE's language # setting. The language is taken from "~/.kde/share/config/kdeglobals" # or from "~/.kderc". # # Corrected the generation of menu names, incorporating # internationalisation, where appropriate. # # Changed the double quotes to two single quotes in application names # so that they do not break the Menu parser in Window Maker. # # Stripped off the arguments to commands on the Exec= line, except in # a few KDE specific cases (e.g. kfmclient). The extra options are # only usable by KDE and were preventing many applications from # launching, since they could parse the option %c or %s, for example. # This "feature" will probably need a more formal or interactive way # of specifying exceptions in the future. # # Added a command line option for specifying the X terminal to # use. This still defaults to xterm, but could be used to specify # aterm, etc. # # Malcolm Cowe, malk@271m.net. # # -------------------------------------------------------------------- # # To Do # ----- # # Programmatically determine the system location for the KDE menu # directory. # # Find a better way to parse the Exec= lines. In the short term, # provide a user mechanism for generating exceptions to the curtailing # of command line options. In the longer term, emulate what KDE does # with these command line features. # # Optimise the code. This is my first proper PERL script, and I'm sure # there's a better way. =) # # # Variables # # The External Menu file, this should NEVER point to the root menu file $menufile = "$ENV{'HOME'}/.kde2wmaker.menu"; # Base directory, location of all the KDE AppName.kdelnk files. # Change the base directory default to point at the system files, # not the user files. Need to find a way of determining the prefix # programmatically. $prefix="/usr"; $basedir = $prefix."/share/applnk"; # Terminal to use. May be specified on the command line with the -t # switch. $term = "xterm"; # Xmessage command line to invoke (can vary platform to platform) $ostype = `uname -s`; if ($ostype =~ /^HP-UX$/) { $xmsg = "xmessage -geometry 400x100 -f -"; } else { $xmsg = "xmessage -geometry 400x100 -file - -default \"okay\""; } # Print to STDOUT, default is YES, a filename is specified $stdout = 1; # KDE Locale Support # Support for KDE internationalisation so that menu entries appear # in the language chosen by the user. Also gets around some problems # with the KDE applnk file format. # The Locale is stored in one of two places, depending on the # version of KDE that is running. $kde2cf="$ENV{'HOME'}/.kde/share/config/kdeglobals"; $kde1cf="$ENV{'HOME'}/.kderc"; $kdeLanguage = ""; # Open the file, if it exists, otherwise provide a default language. unless(open KDERC, $kde2cf) { unless(open KDERC, $kde1cf) { $kdeLanguage = "C"; } } if ( $kdeLanguage == ""){ $kdeLanguage = "C"; # Search through the contents of the file while($line = <KDERC>) { chomp($line); # Grab the Language if($line =~ /^Language=/) { $kdeLanguage = $line; $kdeLanguage =~ s/Language=//; ($kdeLanguage) = split /:/,$kdeLanguage; last; } } close(KDERC); } # # Begin Main Iteration. # # Process command line arguments foreach $arg(@ARGV) { if($last) { if($last eq "-d") { $basedir = $arg; } elsif($last eq "-f") { $menufile = $arg; $stdout = 0; } elsif($last eq "-t") { $term = $arg; } undef($last); } elsif($arg =~ /^-/) { if($arg =~ /^-[dfst]$/) { $last = $arg; } else { die("Unknown option: $arg\n\nUsage: kde2wmaker.pl [ Options... ]\n". "\n\tOptions:\n\n". "\t\t-d <KDE App.kdelnk dir>\n". "\t\t-f <output menufile>\n". "\t\t-t <X terminal application>\n"); &Usage; } } } # Make sure the KDE Menu's Top Level Directory exists. if(-d $basedir) { # See if there is an old menu file. If there is, rename it unless($stdout) { if(-e $menufile) { print STDERR "\tFound $menufile, renaming\n\n"; rename $menufile, "$menufile.old"; } open(MENUFILE,"> $menufile"); } # Start the main menu entry if($stdout) { print STDOUT "\"KDE Applications\" MENU\n"; process_dir (STDOUT, $basedir); print STDOUT "\"KDE Applications\" END\n"; } else { print MENUFILE "\"KDE Applications\" MENU\n"; process_dir (MENUFILE, $basedir); print MENUFILE "\"KDE Applications\" END\n"; } } else { # Error out :/ print STDERR "ERROR:\n\t$basedir not found\n\tTry another directory.\n"; exit(0); } # End of Main Iteration. # process_dir() works it's way through each file and directory in # the tree and generates the menu output to be used by Window Maker. sub process_dir { my $OUT = @_[0]; my $path = @_[1]; my $item; my @tld; my @tlf; my @klist; my ($gotLang, $gotDef, $gotExec, $inTerm); my $inDesktop; # tld == Top Level Directory. opendir(TLD, $path) || return; # In order to display directories before files, the directory # contents must be split. Directories are added to one array, files # to a second. The lists are then sorted alphabetically by name and # combined into a single list for processing by the rest of the # subroutine. while (defined($file = readdir(TLD))) { next if $file =~ /^\./; if (-d "$path/$file") { @tld = (@tld, $file); } else { @tlf = (@tlf, $file); } } closedir(TLD); # At this stage, only sort the directories, since the application # sorting is done later, using the "Name=" field in the applnk file. @tld = sort (@tld); # Print out directory names first and then process the directories. foreach $item(@tld) { print $OUT "\"$item\" MENU\n"; process_dir($OUT, "$path/$item"); print $OUT "\"$item\" END\n"; } # Process the applnk files in the current directory. foreach $item(@tlf) { $gotLang = 0; $gotDef = 0; $gotExec = 0; $inTerm = 0; $inDesktop = 0; # Process the contents of the applnk file to generate a menu # entry for the application. open(SUB,"$path/$item"); # Set a default application warning to run in case there is no # Exec= line in the application definition. This will be # useful for debugging exceptions. $pname="$item"; $pargs="echo \"Could not extract executable information from:\\n\\n$path/$item.\"|".$xmsg; # Search through the contents of the file. Exit the loop at the # EOF or if we have processed the [Desktop Entry Section] of the # file. while($line = <SUB>) { chomp($line); # Get the application's name. This is stored in the # [Desktop Entry] section of the applnk description. # # The application's name can have one of these forms: # Name= # Name[]= # Name[language]= # # Get the default name anyway (one of the first two, just # in case there is no language specific entry). if ($inDesktop) { # Make sure we are in fact still in the [Desktop Entry] # section. if ($line =~ /^\[/) { $inDesktop = 0; } # Extract the Name of the Application elsif ($line =~ /^Name\[?\]?=/ && (!$gotDef || !gotLang)) { $pname = $line; $pname =~ s/^Name\[?\]?=//s; $pname =~ s/\"/\'\'/g; $gotDef = 1; } elsif ($line =~ /^Name\[$kdeLanguage\]=/ && !$gotLang) { $pname = $line; $pname =~ s/^Name\[$kdeLanguage\]=//s; $pname =~ s/\"/\'\'/g; $gotLang = 1; } # Grab the command elsif($line =~ /^Exec=/ && !$gotExec) { $pargs = $line; $pargs =~ s/^Exec=//s; # Strip off all command line options unless the # application is "kfmclient", etc. if ($pargs !~ /^kfmclient/ && $pargs !~ /^kcm/ && $pargs !~ /^\/bin\/bash/ && $pargs !~ /^kdesu/){ ($pargs) = split(/\s/, $pargs); } else { # A double check to remove any dubious characters from # the command line of the exceptions listed in the # above "if" statement. The only culprit so far is the # KDE 1 kfmclient command line. $pargs =~ s/\%[a-zA-Z]//g; } $gotExec = 1; } # If Terminal=1, then we need to execute application # within a terminal window. elsif($line =~ /^Terminal=(1|true)$/i) { $inTerm=1; } } elsif ($line =~ /^\[(KDE\ )?Desktop\ Entry\]/){ $inDesktop = 1; } } close(SUB); if ($inTerm) { $pargs = "$term -T \"$pname\" -e $pargs"; } @klist = (@klist, "\t\"$pname\" EXEC $pargs\n"); } @klist = sort(@klist); foreach (@klist) { print $OUT $_; } return; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/getstyle.c������������������������������������������������������������������0000644�0001750�0001750�00000022465�12214432632�013753� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getstyle.c - outputs style related options from WindowMaker to stdout * * WindowMaker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifdef __GLIBC__ #define _GNU_SOURCE /* getopt_long */ #endif #include <sys/types.h> #include <sys/stat.h> #include <errno.h> #include <fcntl.h> #include <getopt.h> #include <libgen.h> #include <limits.h> #include <pwd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> #include <unistd.h> #include <WINGs/WUtil.h> #include "common.h" #define RETRY( x ) do { \ x; \ } while (errno == EINTR); #ifndef PATH_MAX #define PATH_MAX 1024 #endif #include "../src/wconfig.h" #ifndef GLOBAL_DEFAULTS_SUBDIR #define GLOBAL_DEFAULTS_SUBDIR "WindowMaker" #endif /* table of style related options */ static char *options[] = { "TitleJustify", "ClipTitleFont", "WindowTitleFont", "MenuTitleFont", "MenuTextFont", "IconTitleFont", "DisplayFont", "LargeDisplayFont", "WindowTitleExtendSpace", "MenuTitleExtendSpace", "MenuTextExtendSpace", "HighlightColor", "HighlightTextColor", "ClipTitleColor", "CClipTitleColor", "FTitleColor", "PTitleColor", "UTitleColor", "FTitleBack", "PTitleBack", "UTitleBack", "ResizebarBack", "MenuTitleColor", "MenuTextColor", "MenuDisabledColor", "MenuTitleBack", "MenuTextBack", "IconBack", "IconTitleColor", "IconTitleBack", "FrameBorderWidth", "FrameBorderColor", "FrameSelectedBorderColor", "MenuStyle", "WindowTitleExtendSpace", "MenuTitleExtendSpace", "MenuTextExtendSpace", NULL }; /* table of theme related options */ static char *theme_options[] = { "WorkspaceBack", "NormalCursor", "ArrowCursor", "MoveCursor", "ResizeCursor", "TopLeftResizeCursor", "TopRightResizeCursor", "BottomLeftResizeCursor", "BottomRightResizeCursor", "VerticalResizeCursor", "HorizontalResizeCursor", "WaitCursor", "QuestionCursor", "TextCursor", "SelectCursor", NULL }; /* table of style related fonts */ static char *font_options[] = { "ClipTitleFont", "WindowTitleFont", "MenuTitleFont", "MenuTextFont", "IconTitleFont", "DisplayFont", "LargeDisplayFont", NULL }; extern char *__progname; WMPropList *PixmapPath = NULL; char *ThemePath = NULL; static void print_help(int print_usage, int exitval) { printf("Usage: %s [-t] [-p] [-h] [-v] [file]\n", __progname); if (print_usage) { puts("Retrieves style/theme configuration and outputs to ~/GNUstep/Library/WindowMaker/Themes/file.themed/style or to stdout"); puts(""); puts(" -h, --help display this help and exit"); puts(" -v, --version output version information and exit"); puts(" -t, --theme-options output theme related options when producing a style file"); puts(" -p, --pack produce output as a theme pack"); } exit(exitval); } static Bool isFontOption(const char *option) { int i; for (i = 0; font_options[i] != NULL; i++) { if (strcasecmp(option, font_options[i]) == 0) { return True; } } return False; } static void findCopyFile(const char *dir, const char *file) { char *fullPath; fullPath = wfindfileinarray(PixmapPath, file); if (!fullPath) { wwarning("Could not find file %s", file); if (ThemePath) (void)wrmdirhier(ThemePath); } wcopy_file(dir, fullPath, fullPath); free(fullPath); } static void makeThemePack(WMPropList * style, const char *themeName) { WMPropList *keys; WMPropList *key; WMPropList *value; int i; size_t themeNameLen; char *themeDir; const char *t; if ((t = wusergnusteppath()) == NULL) return; themeNameLen = strlen(t) + strlen(themeName) + 50; themeDir = wmalloc(themeNameLen); snprintf(themeDir, themeNameLen, "%s/Library/WindowMaker/Themes/%s.themed/", t, themeName); ThemePath = themeDir; if (!wmkdirhier(themeDir)) { wwarning("Could not make theme dir %s\n", themeDir); return; } keys = WMGetPLDictionaryKeys(style); for (i = 0; i < WMGetPropListItemCount(keys); i++) { key = WMGetFromPLArray(keys, i); value = WMGetFromPLDictionary(style, key); if (value && WMIsPLArray(value) && WMGetPropListItemCount(value) > 2) { WMPropList *type; char *t; type = WMGetFromPLArray(value, 0); t = WMGetFromPLString(type); if (t == NULL) continue; if (strcasecmp(t, "tpixmap") == 0 || strcasecmp(t, "spixmap") == 0 || strcasecmp(t, "cpixmap") == 0 || strcasecmp(t, "mpixmap") == 0 || strcasecmp(t, "tdgradient") == 0 || strcasecmp(t, "tvgradient") == 0 || strcasecmp(t, "thgradient") == 0) { WMPropList *file; char *p; char *newPath; file = WMGetFromPLArray(value, 1); p = strrchr(WMGetFromPLString(file), '/'); if (p) { wcopy_file(themeDir, WMGetFromPLString(file), WMGetFromPLString(file)); newPath = wstrdup(p + 1); WMDeleteFromPLArray(value, 1); WMInsertInPLArray(value, 1, WMCreatePLString(newPath)); free(newPath); } else { findCopyFile(themeDir, WMGetFromPLString(file)); } } else if (strcasecmp(t, "bitmap") == 0) { WMPropList *file; char *p; char *newPath; file = WMGetFromPLArray(value, 1); p = strrchr(WMGetFromPLString(file), '/'); if (p) { wcopy_file(themeDir, WMGetFromPLString(file), WMGetFromPLString(file)); newPath = wstrdup(p + 1); WMDeleteFromPLArray(value, 1); WMInsertInPLArray(value, 1, WMCreatePLString(newPath)); free(newPath); } else { findCopyFile(themeDir, WMGetFromPLString(file)); } file = WMGetFromPLArray(value, 2); p = strrchr(WMGetFromPLString(file), '/'); if (p) { wcopy_file(themeDir, WMGetFromPLString(file), WMGetFromPLString(file)); newPath = wstrdup(p + 1); WMDeleteFromPLArray(value, 2); WMInsertInPLArray(value, 2, WMCreatePLString(newPath)); free(newPath); } else { findCopyFile(themeDir, WMGetFromPLString(file)); } } } } } int main(int argc, char **argv) { WMPropList *prop, *style, *key, *val; char *path; int i, ch, theme_too = 0, make_pack = 0; char *style_file = NULL; struct option longopts[] = { { "pack", no_argument, NULL, 'p' }, { "theme-options", no_argument, NULL, 't' }, { "version", no_argument, NULL, 'v' }, { "help", no_argument, NULL, 'h' }, { NULL, 0, NULL, 0 } }; while ((ch = getopt_long(argc, argv, "ptvh", longopts, NULL)) != -1) switch(ch) { case 'v': printf("%s (Window Maker %s)\n", __progname, VERSION); return 0; /* NOTREACHED */ case 'h': print_help(1, 0); /* NOTREACHED */ case 'p': make_pack = 1; theme_too = 1; break; case 't': theme_too = 1; case 0: break; default: print_help(0, 1); /* NOTREACHED */ } /* At most one non-option ARGV-element is accepted (the theme name) */ if (argc - optind > 1) print_help(0, 1); if (argc - optind == 1) style_file = argv[argc - 1]; if (make_pack && !style_file) { printf("%s: you must supply a name for the theme pack\n", __progname); return 1; } WMPLSetCaseSensitive(False); path = wdefaultspathfordomain("WindowMaker"); prop = WMReadPropListFromFile(path); if (!prop) { printf("%s: could not load WindowMaker configuration file \"%s\".\n", __progname, path); return 1; } /* get global value */ path = wglobaldefaultspathfordomain("WindowMaker"); val = WMReadPropListFromFile(path); if (val) { WMMergePLDictionaries(val, prop, True); WMReleasePropList(prop); prop = val; } style = WMCreatePLDictionary(NULL, NULL); for (i = 0; options[i] != NULL; i++) { key = WMCreatePLString(options[i]); val = WMGetFromPLDictionary(prop, key); if (val) { WMRetainPropList(val); if (isFontOption(options[i])) { char *newfont, *oldfont; oldfont = WMGetFromPLString(val); newfont = convertFont(oldfont, False); /* newfont is a reference to old if conversion is not needed */ if (newfont != oldfont) { WMReleasePropList(val); val = WMCreatePLString(newfont); wfree(newfont); } } WMPutInPLDictionary(style, key, val); WMReleasePropList(val); } WMReleasePropList(key); } val = WMGetFromPLDictionary(prop, WMCreatePLString("PixmapPath")); if (val) PixmapPath = val; if (theme_too) { for (i = 0; theme_options[i] != NULL; i++) { key = WMCreatePLString(theme_options[i]); val = WMGetFromPLDictionary(prop, key); if (val) WMPutInPLDictionary(style, key, val); } } if (make_pack) { char *path; makeThemePack(style, style_file); path = wmalloc(strlen(ThemePath) + 32); strcpy(path, ThemePath); strcat(path, "/style"); WMWritePropListToFile(style, path); wfree(path); } else { if (style_file) { WMWritePropListToFile(style, style_file); } else { puts(WMGetPropListDescription(style, True)); } } return 0; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/setstyle.c������������������������������������������������������������������0000644�0001750�0001750�00000031023�12214432632�013755� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* setstyle.c - loads style related options to wmaker * * WindowMaker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifdef __GLIBC__ #define _GNU_SOURCE /* getopt_long */ #endif #include <sys/stat.h> #include <getopt.h> #include <limits.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> #include <unistd.h> #include <X11/Xlib.h> #include <WINGs/WUtil.h> #include "../src/wconfig.h" #include "common.h" #define MAX_OPTIONS 128 char *FontOptions[] = { "IconTitleFont", "ClipTitleFont", "DisplayFont", "LargeDisplayFont", "MenuTextFont", "MenuTitleFont", "WindowTitleFont", NULL }; char *CursorOptions[] = { "NormalCursor", "ArrowCursor", "MoveCursor", "ResizeCursor", "TopLeftResizeCursor", "TopRightResizeCursor", "BottomLeftResizeCursor", "BottomRightResizeCursor", "VerticalResizeCursor", "HorizontalResizeCursor", "WaitCursor", "QuestionCursor", "TextCursor", "SelectCursor", NULL }; extern char *__progname; int ignoreFonts = 0; int ignoreCursors = 0; Display *dpy; static Bool isCursorOption(const char *option) { int i; for (i = 0; CursorOptions[i] != NULL; i++) { if (strcasecmp(option, CursorOptions[i]) == 0) { return True; } } return False; } static Bool isFontOption(const char *option) { int i; for (i = 0; FontOptions[i] != NULL; i++) { if (strcasecmp(option, FontOptions[i]) == 0) { return True; } } return False; } /* * finds elements in `texture' that reference external files, * prepends `prefix' to these files. `prefix' is a path component * that qualifies the external references to be absolute, possibly * pending further expansion */ static void hackPathInTexture(WMPropList * texture, const char *prefix) { WMPropList *type; char *t; /* get texture type */ type = WMGetFromPLArray(texture, 0); t = WMGetFromPLString(type); if (t == NULL) return; if (strcasecmp(t, "tpixmap") == 0 || strcasecmp(t, "spixmap") == 0 || strcasecmp(t, "mpixmap") == 0 || strcasecmp(t, "cpixmap") == 0 || strcasecmp(t, "tvgradient") == 0 || strcasecmp(t, "thgradient") == 0 || strcasecmp(t, "tdgradient") == 0) { WMPropList *file; char buffer[4018]; /* get pixmap file path */ file = WMGetFromPLArray(texture, 1); sprintf(buffer, "%s/%s", prefix, WMGetFromPLString(file)); /* replace path with full path */ WMDeleteFromPLArray(texture, 1); WMInsertInPLArray(texture, 1, WMCreatePLString(buffer)); } else if (strcasecmp(t, "bitmap") == 0) { WMPropList *file; char buffer[4018]; /* get bitmap file path */ file = WMGetFromPLArray(texture, 1); sprintf(buffer, "%s/%s", prefix, WMGetFromPLString(file)); /* replace path with full path */ WMDeleteFromPLArray(texture, 1); WMInsertInPLArray(texture, 1, WMCreatePLString(buffer)); /* get mask file path */ file = WMGetFromPLArray(texture, 2); sprintf(buffer, "%s/%s", prefix, WMGetFromPLString(file)); /* replace path with full path */ WMDeleteFromPLArray(texture, 2); WMInsertInPLArray(texture, 2, WMCreatePLString(buffer)); } } static void hackPaths(WMPropList * style, const char *prefix) { WMPropList *keys; WMPropList *key; WMPropList *value; int i; keys = WMGetPLDictionaryKeys(style); for (i = 0; i < WMGetPropListItemCount(keys); i++) { key = WMGetFromPLArray(keys, i); value = WMGetFromPLDictionary(style, key); if (!value) continue; if (strcasecmp(WMGetFromPLString(key), "WorkspaceSpecificBack") == 0) { if (WMIsPLArray(value)) { int j; WMPropList *texture; for (j = 0; j < WMGetPropListItemCount(value); j++) { texture = WMGetFromPLArray(value, j); if (texture && WMIsPLArray(texture) && WMGetPropListItemCount(texture) > 2) { hackPathInTexture(texture, prefix); } } } } else { if (WMIsPLArray(value) && WMGetPropListItemCount(value) > 2) { hackPathInTexture(value, prefix); } } } } static WMPropList *getColor(WMPropList * texture) { WMPropList *value, *type; char *str; type = WMGetFromPLArray(texture, 0); if (!type) return NULL; value = NULL; str = WMGetFromPLString(type); if (strcasecmp(str, "solid") == 0) { value = WMGetFromPLArray(texture, 1); } else if (strcasecmp(str, "dgradient") == 0 || strcasecmp(str, "hgradient") == 0 || strcasecmp(str, "vgradient") == 0) { WMPropList *c1, *c2; int r1, g1, b1, r2, g2, b2; char buffer[32]; c1 = WMGetFromPLArray(texture, 1); c2 = WMGetFromPLArray(texture, 2); if (!dpy) { if (sscanf(WMGetFromPLString(c1), "#%2x%2x%2x", &r1, &g1, &b1) == 3 && sscanf(WMGetFromPLString(c2), "#%2x%2x%2x", &r2, &g2, &b2) == 3) { sprintf(buffer, "#%02x%02x%02x", (r1 + r2) / 2, (g1 + g2) / 2, (b1 + b2) / 2); value = WMCreatePLString(buffer); } else { value = c1; } } else { XColor color1; XColor color2; XParseColor(dpy, DefaultColormap(dpy, DefaultScreen(dpy)), WMGetFromPLString(c1), &color1); XParseColor(dpy, DefaultColormap(dpy, DefaultScreen(dpy)), WMGetFromPLString(c2), &color2); sprintf(buffer, "#%02x%02x%02x", (color1.red + color2.red) >> 9, (color1.green + color2.green) >> 9, (color1.blue + color2.blue) >> 9); value = WMCreatePLString(buffer); } } else if (strcasecmp(str, "mdgradient") == 0 || strcasecmp(str, "mhgradient") == 0 || strcasecmp(str, "mvgradient") == 0) { value = WMGetFromPLArray(texture, 1); } else if (strcasecmp(str, "tpixmap") == 0 || strcasecmp(str, "cpixmap") == 0 || strcasecmp(str, "spixmap") == 0) { value = WMGetFromPLArray(texture, 2); } return value; } /* * since some of the options introduce incompatibilities, we will need * to do a kluge here or the themes ppl will get real annoying. * So, treat for the absence of the following options: * IconTitleColor * IconTitleBack */ static void hackStyle(WMPropList * style) { WMPropList *keys, *tmp; int foundIconTitle = 0, foundResizebarBack = 0; int i; keys = WMGetPLDictionaryKeys(style); for (i = 0; i < WMGetPropListItemCount(keys); i++) { char *str; tmp = WMGetFromPLArray(keys, i); str = WMGetFromPLString(tmp); if (str) { if (ignoreFonts && isFontOption(str)) { WMRemoveFromPLDictionary(style, tmp); continue; } if (ignoreCursors && isCursorOption(str)) { WMRemoveFromPLDictionary(style, tmp); continue; } if (isFontOption(str)) { WMPropList *value; char *newfont, *oldfont; value = WMGetFromPLDictionary(style, tmp); if (value) { oldfont = WMGetFromPLString(value); newfont = convertFont(oldfont, False); if (newfont != oldfont) { value = WMCreatePLString(newfont); WMPutInPLDictionary(style, tmp, value); WMReleasePropList(value); wfree(newfont); } } } if (strcasecmp(str, "IconTitleColor") == 0 || strcasecmp(str, "IconTitleBack") == 0) { foundIconTitle = 1; } else if (strcasecmp(str, "ResizebarBack") == 0) { foundResizebarBack = 1; } } } if (!foundIconTitle) { /* set the default values */ tmp = WMGetFromPLDictionary(style, WMCreatePLString("FTitleColor")); if (tmp) { WMPutInPLDictionary(style, WMCreatePLString("IconTitleColor"), tmp); } tmp = WMGetFromPLDictionary(style, WMCreatePLString("FTitleBack")); if (tmp) { WMPropList *value; value = getColor(tmp); if (value) { WMPutInPLDictionary(style, WMCreatePLString("IconTitleBack"), value); } } } if (!foundResizebarBack) { /* set the default values */ tmp = WMGetFromPLDictionary(style, WMCreatePLString("UTitleBack")); if (tmp) { WMPropList *value; value = getColor(tmp); if (value) { WMPropList *t; t = WMCreatePLArray(WMCreatePLString("solid"), value, NULL); WMPutInPLDictionary(style, WMCreatePLString("ResizebarBack"), t); } } } if (!WMGetFromPLDictionary(style, WMCreatePLString("MenuStyle"))) { WMPutInPLDictionary(style, WMCreatePLString("MenuStyle"), WMCreatePLString("normal")); } } static void print_help(int print_usage, int exitval) { printf("Usage: %s [OPTIONS] FILE\n", __progname); if (print_usage) { puts("Reads style/theme configuration from FILE and updates Window Maker."); puts(""); puts(" --no-fonts ignore font related options"); puts(" --no-cursors ignore cursor related options"); puts(" --ignore <option> ignore changes in the specified option"); puts(" -h, --help display this help and exit"); puts(" -v, --version output version information and exit"); } exit(exitval); } int main(int argc, char **argv) { WMPropList *prop, *style; char *path; char *file = NULL; struct stat st; int i, ch, ignflag = 0; int ignoreCount = 0; char *ignoreList[MAX_OPTIONS]; XEvent ev; struct option longopts[] = { { "version", no_argument, NULL, 'v' }, { "help", no_argument, NULL, 'h' }, { "no-fonts", no_argument, &ignoreFonts, 1 }, { "no-cursors", no_argument, &ignoreCursors, 1 }, { "ignore", required_argument, &ignflag, 1 }, { NULL, 0, NULL, 0 } }; while ((ch = getopt_long(argc, argv, "hv", longopts, NULL)) != -1) switch(ch) { case 'v': printf("%s (Window Maker %s)\n", __progname, VERSION); return 0; /* NOTREACHED */ case 'h': print_help(1, 0); /* NOTREACHED */ case 0: if (ignflag) { if (ignoreCount >= MAX_OPTIONS) { printf("Maximum %d `ignore' arguments\n", MAX_OPTIONS); return 1; } ignoreList[ignoreCount++] = optarg; ignflag = 0; }; break; default: print_help(0, 1); /* NOTREACHED */ } argc -= optind; argv += optind; if (argc != 1) print_help(0, 1); file = argv[0]; WMPLSetCaseSensitive(False); path = wdefaultspathfordomain("WindowMaker"); prop = WMReadPropListFromFile(path); if (!prop) { perror(path); printf("%s: could not load WindowMaker configuration file.\n", __progname); return 1; } if (stat(file, &st) < 0) { perror(file); return 1; } if (S_ISDIR(st.st_mode)) { /* theme pack */ char buf[PATH_MAX]; char *homedir; if (realpath(file, buf) == NULL) { perror(file); return 1; } strncat(buf, "/style", sizeof(buf) - strlen(buf)); if (stat(buf, &st) != 0 || !S_ISREG(st.st_mode)) { /* maybe symlink too? */ printf("%s: %s: style file not found or not a file\n", __progname, buf); return 1; } style = WMReadPropListFromFile(buf); if (!style) { perror(buf); printf("%s: could not load style file.\n", __progname); return 1; } buf[strlen(buf) - 6 /* strlen("/style") */] = '\0'; homedir = wstrdup(wgethomedir()); if (strlen(homedir) > 1 && /* this is insane, wgethomedir() returns `/' on error */ strncmp(homedir, buf, strlen(homedir)) == 0) { /* theme pack is under ${HOME}; exchange ${HOME} part * for `~' so it gets portable references to the user home dir */ *buf = '~'; memmove(buf + 1, buf + strlen(homedir), strlen(buf) - strlen(homedir) + 1); } wfree(homedir); hackPaths(style, buf); /* this will prefix pixmaps in the style * with absolute(ish) references */ } else { /* normal style file */ style = WMReadPropListFromFile(file); if (!style) { perror(file); printf("%s:could not load style file.\n", __progname); return 1; } } if (!WMIsPLDictionary(style)) { printf("%s: '%s' is not a style file/theme\n", __progname, file); return 1; } hackStyle(style); if (ignoreCount > 0) { for (i = 0; i < ignoreCount; i++) { WMRemoveFromPLDictionary(style, WMCreatePLString(ignoreList[i])); } } WMMergePLDictionaries(prop, style, True); WMWritePropListToFile(prop, path); dpy = XOpenDisplay(""); if (dpy) { memset(&ev, 0, sizeof(XEvent)); ev.xclient.type = ClientMessage; ev.xclient.message_type = XInternAtom(dpy, "_WINDOWMAKER_COMMAND", False); ev.xclient.window = DefaultRootWindow(dpy); ev.xclient.format = 8; strncpy(ev.xclient.data.b, "Reconfigure", sizeof(ev.xclient.data.b)); XSendEvent(dpy, DefaultRootWindow(dpy), False, SubstructureRedirectMask, &ev); XFlush(dpy); } return 0; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/Makefile.in�����������������������������������������������������������������0000644�0001750�0001750�00000101472�12214434561�014013� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = wxcopy$(EXEEXT) wxpaste$(EXEEXT) wdwrite$(EXEEXT) \ wdread$(EXEEXT) getstyle$(EXEEXT) setstyle$(EXEEXT) \ convertfonts$(EXEEXT) seticons$(EXEEXT) geticonset$(EXEEXT) \ wmsetbg$(EXEEXT) wmagnify$(EXEEXT) wmgenmenu$(EXEEXT) \ wmmenugen$(EXEEXT) subdir = util DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_convertfonts_OBJECTS = convertfonts.$(OBJEXT) fontconv.$(OBJEXT) convertfonts_OBJECTS = $(am_convertfonts_OBJECTS) am__DEPENDENCIES_1 = convertfonts_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \ $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent geticonset_SOURCES = geticonset.c geticonset_OBJECTS = geticonset.$(OBJEXT) geticonset_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \ $(am__DEPENDENCIES_1) am_getstyle_OBJECTS = getstyle.$(OBJEXT) fontconv.$(OBJEXT) getstyle_OBJECTS = $(am_getstyle_OBJECTS) getstyle_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \ $(am__DEPENDENCIES_1) seticons_SOURCES = seticons.c seticons_OBJECTS = seticons.$(OBJEXT) seticons_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \ $(am__DEPENDENCIES_1) am_setstyle_OBJECTS = setstyle.$(OBJEXT) fontconv.$(OBJEXT) setstyle_OBJECTS = $(am_setstyle_OBJECTS) setstyle_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \ $(am__DEPENDENCIES_1) wdread_SOURCES = wdread.c wdread_OBJECTS = wdread.$(OBJEXT) wdread_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \ $(am__DEPENDENCIES_1) wdwrite_SOURCES = wdwrite.c wdwrite_OBJECTS = wdwrite.$(OBJEXT) wdwrite_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \ $(am__DEPENDENCIES_1) wmagnify_SOURCES = wmagnify.c wmagnify_OBJECTS = wmagnify.$(OBJEXT) wmagnify_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/WINGs/libWUtil.la \ $(top_builddir)/wrlib/libwraster.la am_wmgenmenu_OBJECTS = wmgenmenu.$(OBJEXT) wmgenmenu_OBJECTS = $(am_wmgenmenu_OBJECTS) wmgenmenu_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la am_wmmenugen_OBJECTS = wmmenugen.$(OBJEXT) wmmenugen_misc.$(OBJEXT) \ wmmenugen_parse_wmconfig.$(OBJEXT) \ wmmenugen_parse_xdg.$(OBJEXT) wmmenugen_OBJECTS = $(am_wmmenugen_OBJECTS) wmmenugen_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la wmsetbg_SOURCES = wmsetbg.c wmsetbg_OBJECTS = wmsetbg.$(OBJEXT) wmsetbg_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/WINGs/libWUtil.la \ $(top_builddir)/wrlib/libwraster.la wxcopy_SOURCES = wxcopy.c wxcopy_OBJECTS = wxcopy.$(OBJEXT) wxcopy_DEPENDENCIES = wxpaste_SOURCES = wxpaste.c wxpaste_OBJECTS = wxpaste.$(OBJEXT) wxpaste_DEPENDENCIES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' SCRIPTS = $(bin_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(convertfonts_SOURCES) geticonset.c $(getstyle_SOURCES) \ seticons.c $(setstyle_SOURCES) wdread.c wdwrite.c wmagnify.c \ $(wmgenmenu_SOURCES) $(wmmenugen_SOURCES) wmsetbg.c wxcopy.c \ wxpaste.c DIST_SOURCES = $(convertfonts_SOURCES) geticonset.c \ $(getstyle_SOURCES) seticons.c $(setstyle_SOURCES) wdread.c \ wdwrite.c wmagnify.c $(wmgenmenu_SOURCES) $(wmmenugen_SOURCES) \ wmsetbg.c wxcopy.c wxpaste.c RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" pkgdatadir = $(datadir)/@PACKAGE@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ SUBDIRS = po AUTOMAKE_OPTIONS = bin_SCRIPTS = wmaker.inst wm-oldmenu2new wkdemenu.pl EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wkdemenu.pl AM_CPPFLAGS = -DLOCALEDIR=\"$(NLSDIR)\" \ $(DFLAGS) -I$(top_srcdir)/WINGs -I$(top_srcdir)/wrlib \ @HEADER_SEARCH_PATH@ \ -DETCDIR=\"sysconfdir\" -DDATADIR=\"pkgdatadir\" liblist = @LIBRARY_SEARCH_PATH@ @INTLIBS@ wdwrite_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist) wdread_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist) wxcopy_LDADD = @XLFLAGS@ @XLIBS@ wxpaste_LDADD = @XLFLAGS@ @XLIBS@ getstyle_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist) getstyle_SOURCES = getstyle.c fontconv.c common.h setstyle_LDADD = \ $(top_builddir)/WINGs/libWUtil.la \ @XLFLAGS@ @XLIBS@ $(liblist) setstyle_SOURCES = setstyle.c fontconv.c common.h convertfonts_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist) convertfonts_SOURCES = convertfonts.c fontconv.c common.h seticons_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist) geticonset_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist) wmagnify_LDADD = \ $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/WINGs/libWUtil.la \ $(top_builddir)/wrlib/libwraster.la \ @XLFLAGS@ @XLIBS@ @INTLIBS@ wmsetbg_LDADD = \ $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/WINGs/libWUtil.la \ $(top_builddir)/wrlib/libwraster.la \ @XLFLAGS@ @LIBXINERAMA@ @XLIBS@ @INTLIBS@ wmgenmenu_LDADD = \ $(top_builddir)/WINGs/libWUtil.la \ @INTLIBS@ wmgenmenu_SOURCES = wmgenmenu.c wmgenmenu.h wmmenugen_LDADD = \ $(top_builddir)/WINGs/libWUtil.la \ @INTLIBS@ wmmenugen_SOURCES = wmmenugen.c wmmenugen.h wmmenugen_misc.c \ wmmenugen_parse_wmconfig.c \ wmmenugen_parse_xdg.c CLEANFILES = wmaker.inst all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu util/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu util/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list convertfonts$(EXEEXT): $(convertfonts_OBJECTS) $(convertfonts_DEPENDENCIES) @rm -f convertfonts$(EXEEXT) $(AM_V_CCLD)$(LINK) $(convertfonts_OBJECTS) $(convertfonts_LDADD) $(LIBS) geticonset$(EXEEXT): $(geticonset_OBJECTS) $(geticonset_DEPENDENCIES) @rm -f geticonset$(EXEEXT) $(AM_V_CCLD)$(LINK) $(geticonset_OBJECTS) $(geticonset_LDADD) $(LIBS) getstyle$(EXEEXT): $(getstyle_OBJECTS) $(getstyle_DEPENDENCIES) @rm -f getstyle$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getstyle_OBJECTS) $(getstyle_LDADD) $(LIBS) seticons$(EXEEXT): $(seticons_OBJECTS) $(seticons_DEPENDENCIES) @rm -f seticons$(EXEEXT) $(AM_V_CCLD)$(LINK) $(seticons_OBJECTS) $(seticons_LDADD) $(LIBS) setstyle$(EXEEXT): $(setstyle_OBJECTS) $(setstyle_DEPENDENCIES) @rm -f setstyle$(EXEEXT) $(AM_V_CCLD)$(LINK) $(setstyle_OBJECTS) $(setstyle_LDADD) $(LIBS) wdread$(EXEEXT): $(wdread_OBJECTS) $(wdread_DEPENDENCIES) @rm -f wdread$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wdread_OBJECTS) $(wdread_LDADD) $(LIBS) wdwrite$(EXEEXT): $(wdwrite_OBJECTS) $(wdwrite_DEPENDENCIES) @rm -f wdwrite$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wdwrite_OBJECTS) $(wdwrite_LDADD) $(LIBS) wmagnify$(EXEEXT): $(wmagnify_OBJECTS) $(wmagnify_DEPENDENCIES) @rm -f wmagnify$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wmagnify_OBJECTS) $(wmagnify_LDADD) $(LIBS) wmgenmenu$(EXEEXT): $(wmgenmenu_OBJECTS) $(wmgenmenu_DEPENDENCIES) @rm -f wmgenmenu$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wmgenmenu_OBJECTS) $(wmgenmenu_LDADD) $(LIBS) wmmenugen$(EXEEXT): $(wmmenugen_OBJECTS) $(wmmenugen_DEPENDENCIES) @rm -f wmmenugen$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wmmenugen_OBJECTS) $(wmmenugen_LDADD) $(LIBS) wmsetbg$(EXEEXT): $(wmsetbg_OBJECTS) $(wmsetbg_DEPENDENCIES) @rm -f wmsetbg$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wmsetbg_OBJECTS) $(wmsetbg_LDADD) $(LIBS) wxcopy$(EXEEXT): $(wxcopy_OBJECTS) $(wxcopy_DEPENDENCIES) @rm -f wxcopy$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wxcopy_OBJECTS) $(wxcopy_LDADD) $(LIBS) wxpaste$(EXEEXT): $(wxpaste_OBJECTS) $(wxpaste_DEPENDENCIES) @rm -f wxpaste$(EXEEXT) $(AM_V_CCLD)$(LINK) $(wxpaste_OBJECTS) $(wxpaste_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convertfonts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fontconv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geticonset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getstyle.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seticons.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setstyle.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdread.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdwrite.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmagnify.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmgenmenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmmenugen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmmenugen_misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmmenugen_parse_wmconfig.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmmenugen_parse_xdg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmsetbg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wxcopy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wxpaste.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) $(SCRIPTS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-binSCRIPTS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-binPROGRAMS install-binSCRIPTS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-binSCRIPTS wmaker.inst: $(srcdir)/wmaker.inst.in ./Makefile -rm -f wmaker.inst sed -e "s|#pkgdatadir#|$(pkgdatadir)|" \ -e "s|#sysconfdir#|$(sysconfdir)/WindowMaker|" \ -e "s|#version#|$(VERSION)|" \ -e "s|#bindir#|$(bindir)|" \ $(srcdir)/wmaker.inst.in >wmaker.inst chmod 755 wmaker.inst # 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. .NOEXPORT: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/wmagnify.c������������������������������������������������������������������0000644�0001750�0001750�00000025532�12214432632�013732� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * magnify - a X utility for magnifying screen image * * 2000/5/21 Alfredo K. Kojima * * This program is in the Public Domain. */ #include <config.h> #include <X11/Xproto.h> #include <WINGs/WINGs.h> #include <stdlib.h> #include <string.h> #include <stdio.h> /* * TODO: * - lens that shows where it's magnifying * * */ int refreshrate = 200; typedef struct { Drawable d; XRectangle *rects; int rectP; unsigned long lastpixel; unsigned long *buffer; int width, height; int rwidth, rheight; /* size of window in real pixels */ int magfactor; int refreshrate; WMWindow *win; WMLabel *label; WMPixmap *pixmap; WMWindow *dlg; WMSlider *speed; WMSlider *magnify; WMButton *okB; WMButton *cancelB; WMButton *newB; int x, y; Bool frozen; Bool firstDraw; Bool markPointerHotspot; WMHandlerID tid; } BufferData; static BufferData *newWindow(int magfactor); int windowCount = 0; int rectBufferSize = 32; Display *dpy, *vdpy; WMScreen *scr; unsigned int black; WMColor *cursorColor1; WMColor *cursorColor2; static BufferData *makeBufferData(WMWindow * win, WMLabel * label, int width, int height, int magfactor) { BufferData *data; data = wmalloc(sizeof(BufferData)); data->rwidth = width; data->rheight = height; data->refreshrate = refreshrate; data->firstDraw = True; data->magfactor = magfactor; data->rects = wmalloc(sizeof(XRectangle) * rectBufferSize); data->rectP = 0; data->win = win; data->label = label; data->pixmap = WMCreatePixmap(scr, width, height, WMScreenDepth(scr), False); WMSetLabelImage(data->label, data->pixmap); data->d = WMGetPixmapXID(data->pixmap); data->frozen = False; width /= magfactor; height /= magfactor; data->buffer = wmalloc(sizeof(unsigned long) * width * height); data->width = width; data->height = height; return data; } static void resizeBufferData(BufferData * data, int width, int height, int magfactor) { int w = width / magfactor; int h = height / magfactor; data->rwidth = width; data->rheight = height; data->firstDraw = True; data->magfactor = magfactor; data->buffer = wrealloc(data->buffer, sizeof(unsigned long) * w * h); data->width = w; data->height = h; memset(data->buffer, 0, w * h * sizeof(unsigned long)); WMResizeWidget(data->label, width, height); WMReleasePixmap(data->pixmap); data->pixmap = WMCreatePixmap(scr, width, height, WMScreenDepth(scr), False); WMSetLabelImage(data->label, data->pixmap); data->d = WMGetPixmapXID(data->pixmap); } static int drawpoint(BufferData * data, unsigned long pixel, int x, int y) { static GC gc = NULL; Bool flush = (x < 0); if (!flush) { if (data->buffer[x + data->width * y] == pixel && !data->firstDraw) return 0; data->buffer[x + data->width * y] = pixel; } if (gc == NULL) { gc = XCreateGC(dpy, DefaultRootWindow(dpy), 0, NULL); } if (!flush && data->lastpixel == pixel && data->rectP < rectBufferSize) { data->rects[data->rectP].x = x * data->magfactor; data->rects[data->rectP].y = y * data->magfactor; data->rects[data->rectP].width = data->magfactor; data->rects[data->rectP].height = data->magfactor; data->rectP++; return 0; } XSetForeground(dpy, gc, data->lastpixel); XFillRectangles(dpy, data->d, gc, data->rects, data->rectP); data->rectP = 0; data->rects[data->rectP].x = x * data->magfactor; data->rects[data->rectP].y = y * data->magfactor; data->rects[data->rectP].width = data->magfactor; data->rects[data->rectP].height = data->magfactor; data->rectP++; data->lastpixel = pixel; return 1; } static inline unsigned long getpix(XImage * image, int x, int y, int xoffs, int yoffs) { if (x < xoffs || y < yoffs || x >= xoffs + image->width || y >= yoffs + image->height) { return black; } return XGetPixel(image, x - xoffs, y - yoffs); } static void updateImage(BufferData * data, int rx, int ry) { int gx, gy, gw, gh; int x, y; int xoffs, yoffs; int changedPixels = 0; XImage *image; gw = data->width; gh = data->height; gx = rx - gw / 2; gy = ry - gh / 2; xoffs = yoffs = 0; if (gx < 0) { xoffs = abs(gx); gw += gx; gx = 0; } if (gx + gw >= WidthOfScreen(DefaultScreenOfDisplay(vdpy))) { gw = WidthOfScreen(DefaultScreenOfDisplay(vdpy)) - gx; } if (gy < 0) { yoffs = abs(gy); gh += gy; gy = 0; } if (gy + gh >= HeightOfScreen(DefaultScreenOfDisplay(vdpy))) { gh = HeightOfScreen(DefaultScreenOfDisplay(vdpy)) - gy; } image = XGetImage(vdpy, DefaultRootWindow(vdpy), gx, gy, gw, gh, AllPlanes, ZPixmap); for (y = 0; y < data->height; y++) { for (x = 0; x < data->width; x++) { unsigned long pixel; pixel = getpix(image, x, y, xoffs, yoffs); if (drawpoint(data, pixel, x, y)) changedPixels++; } } /* flush the point cache */ drawpoint(data, 0, -1, -1); XDestroyImage(image); if (data->markPointerHotspot && !data->frozen) { XRectangle rects[4]; rects[0].x = (data->width / 2 - 3) * data->magfactor; rects[0].y = (data->height / 2) * data->magfactor; rects[0].width = 2 * data->magfactor; rects[0].height = data->magfactor; rects[1].x = (data->width / 2 + 2) * data->magfactor; rects[1].y = (data->height / 2) * data->magfactor; rects[1].width = 2 * data->magfactor; rects[1].height = data->magfactor; XFillRectangles(dpy, data->d, WMColorGC(cursorColor1), rects, 2); rects[2].y = (data->height / 2 - 3) * data->magfactor; rects[2].x = (data->width / 2) * data->magfactor; rects[2].height = 2 * data->magfactor; rects[2].width = data->magfactor; rects[3].y = (data->height / 2 + 2) * data->magfactor; rects[3].x = (data->width / 2) * data->magfactor; rects[3].height = 2 * data->magfactor; rects[3].width = data->magfactor; XFillRectangles(dpy, data->d, WMColorGC(cursorColor2), rects + 2, 2); } if (changedPixels > 0) { WMRedisplayWidget(data->label); } data->firstDraw = False; } static void update(void *d) { BufferData *data = (BufferData *) d; Window win; int rx, ry; int bla; unsigned ubla; if (data->frozen) { rx = data->x; ry = data->y; } else { XQueryPointer(dpy, DefaultRootWindow(dpy), &win, &win, &rx, &ry, &bla, &bla, &ubla); } updateImage(data, rx, ry); data->tid = WMAddTimerHandler(data->refreshrate, update, data); } static void resizedWindow(void *d, WMNotification * notif) { BufferData *data = (BufferData *) d; WMView *view = (WMView *) WMGetNotificationObject(notif); WMSize size; size = WMGetViewSize(view); resizeBufferData(data, size.width, size.height, data->magfactor); } static void closeWindow(WMWidget * w, void *d) { BufferData *data = (BufferData *) d; windowCount--; if (windowCount == 0) { exit(0); } else { WMDeleteTimerHandler(data->tid); WMDestroyWidget(w); wfree(data->buffer); wfree(data->rects); WMReleasePixmap(data->pixmap); wfree(data); } } static void keyHandler(XEvent * event, void *d) { BufferData *data = (BufferData *) d; char buf[32]; KeySym ks; WMView *view = WMWidgetView(data->win); WMSize size; size = WMGetViewSize(view); if (XLookupString(&event->xkey, buf, 31, &ks, NULL) > 0) { switch (buf[0]) { case 'n': newWindow(data->magfactor); break; case 'm': data->markPointerHotspot = !data->markPointerHotspot; break; case 'f': case ' ': data->frozen = !data->frozen; if (data->frozen) { data->x = event->xkey.x_root; data->y = event->xkey.y_root; sprintf(buf, "[Magnify %ix]", data->magfactor); } else { sprintf(buf, "Magnify %ix", data->magfactor); } WMSetWindowTitle(data->win, buf); break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': resizeBufferData(data, size.width, size.height, buf[0] - '0'); if (data->frozen) { sprintf(buf, "[Magnify %ix]", data->magfactor); } else { sprintf(buf, "Magnify %ix", data->magfactor); } WMSetWindowTitle(data->win, buf); break; } } } static BufferData *newWindow(int magfactor) { WMWindow *win; WMLabel *label; BufferData *data; char buf[32]; windowCount++; win = WMCreateWindow(scr, "magnify"); WMResizeWidget(win, 300, 200); sprintf(buf, "Magnify %ix", magfactor); WMSetWindowTitle(win, buf); WMSetViewNotifySizeChanges(WMWidgetView(win), True); label = WMCreateLabel(win); WMResizeWidget(label, 300, 200); WMMoveWidget(label, 0, 0); WMSetLabelRelief(label, WRSunken); WMSetLabelImagePosition(label, WIPImageOnly); data = makeBufferData(win, label, 300, 200, magfactor); WMCreateEventHandler(WMWidgetView(win), KeyReleaseMask, keyHandler, data); WMAddNotificationObserver(resizedWindow, data, WMViewSizeDidChangeNotification, WMWidgetView(win)); WMRealizeWidget(win); WMMapSubwidgets(win); WMMapWidget(win); WMSetWindowCloseAction(win, closeWindow, data); data->tid = WMAddTimerHandler(refreshrate, update, data); return data; } int main(int argc, char **argv) { int i; char *display = ""; char *vdisplay = NULL; int magfactor = 2; WMInitializeApplication("Magnify", &argc, argv); for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-display") == 0) { i++; if (i >= argc) goto help; display = argv[i]; } else if (strcmp(argv[i], "-vdisplay") == 0) { i++; if (i >= argc) goto help; vdisplay = argv[i]; } else if (strcmp(argv[i], "-m") == 0) { i++; if (i >= argc) goto help; magfactor = atoi(argv[i]); if (magfactor < 1 || magfactor > 32) { printf("%s:invalid magnification factor ``%s''\n", argv[0], argv[i]); exit(1); } } else if (strcmp(argv[i], "-r") == 0) { i++; if (i >= argc) goto help; refreshrate = atoi(argv[i]); if (refreshrate < 1) { printf("%s:invalid refresh rate ``%s''\n", argv[0], argv[i]); exit(1); } } else if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) { help: printf("Usage: %s [options]\n", argv[0]); puts("Options:"); puts(" -display <display> display that should be used"); puts(" -m <number> change magnification factor (default 2)"); puts(" -r <number> change refresh delay, in milliseconds (default 200)"); puts("Keys:"); puts(" 1,2,3,4,5,6,7,8,9 change the magnification factor"); puts(" <space>, f freeze the 'camera', making it magnify only the current\n" " position"); puts(" n create a new window"); puts(" m show/hide the pointer hotspot mark"); exit(0); } } dpy = XOpenDisplay(display); if (!dpy) { puts("could not open display"); exit(1); } if (vdisplay) { vdpy = XOpenDisplay(vdisplay); if (!vdpy) { puts("could not open display to be viewed"); exit(1); } } else { vdpy = dpy; } /* calculate how many rectangles we can send in a trip to the server */ rectBufferSize = XMaxRequestSize(dpy) - 128; rectBufferSize /= sizeof(XRectangle); if (rectBufferSize < 1) rectBufferSize = 1; black = BlackPixel(dpy, DefaultScreen(dpy)); scr = WMCreateScreen(dpy, 0); cursorColor1 = WMCreateNamedColor(scr, "#ff0000", False); cursorColor2 = WMCreateNamedColor(scr, "#00ff00", False); newWindow(magfactor); WMScreenMainLoop(scr); return 0; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/geticonset.c����������������������������������������������������������������0000644�0001750�0001750�00000006134�12214432632�014252� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* geticonset.c - outputs icon configuration from WindowMaker to stdout * * Window Maker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifdef __GLIBC__ #define _GNU_SOURCE /* getopt_long */ #endif #include <getopt.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <WINGs/WUtil.h> #include "../src/wconfig.h" extern char *__progname; static void print_help(int print_usage, int exitval) { printf("Usage: %s [-h] [-v] [file]\n", __progname); if (print_usage) { puts("Retrieves program icon configuration and output to FILE or to stdout"); puts(""); puts(" -h, --help display this help and exit"); puts(" -v, --version output version information and exit"); } exit(exitval); } int main(int argc, char **argv) { WMPropList *window_name, *icon_key, *window_attrs, *icon_value; WMPropList *all_windows, *iconset, *keylist; char *path; int i, ch; struct option longopts[] = { { "version", no_argument, NULL, 'v' }, { "help", no_argument, NULL, 'h' }, { NULL, 0, NULL, 0 } }; while ((ch = getopt_long(argc, argv, "hv", longopts, NULL)) != -1) switch(ch) { case 'v': printf("%s (Window Maker %s)\n", __progname, VERSION); return 0; /* NOTREACHED */ case 'h': print_help(1, 0); /* NOTREACHED */ case 0: break; default: print_help(0, 1); /* NOTREACHED */ } argc -= optind; argv += optind; path = wdefaultspathfordomain("WMWindowAttributes"); all_windows = WMReadPropListFromFile(path); if (!all_windows) { printf("%s: could not load WindowMaker configuration file \"%s\".\n", __progname, path); return 1; } iconset = WMCreatePLDictionary(NULL, NULL); keylist = WMGetPLDictionaryKeys(all_windows); icon_key = WMCreatePLString("Icon"); for (i = 0; i < WMGetPropListItemCount(keylist); i++) { WMPropList *icondic; window_name = WMGetFromPLArray(keylist, i); if (!WMIsPLString(window_name)) continue; window_attrs = WMGetFromPLDictionary(all_windows, window_name); if (window_attrs && WMIsPLDictionary(window_attrs)) { icon_value = WMGetFromPLDictionary(window_attrs, icon_key); if (icon_value) { icondic = WMCreatePLDictionary(icon_key, icon_value, NULL); WMPutInPLDictionary(iconset, window_name, icondic); } } } if (argc == 1) { WMWritePropListToFile(iconset, argv[0]); } else { puts(WMGetPropListDescription(iconset, True)); } return 0; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/wmaker.inst.in��������������������������������������������������������������0000644�0001750�0001750�00000016753�12214432632�014544� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # # Install Window Maker for the current user # # xx herbert if test "x$1" = "x--batch" ; then BATCH="1" else BATCH="" fi # /xx herbert # name of menu file we install (menu, plmenu) inst_menu="" LOCALE="${LC_ALL-${LC_MESSAGES-$LANG}}" # directory where system wide configuration is stored GLOBALDIR="#pkgdatadir#" GLOBALDEFDIR="#sysconfdir#" USERDIR="$HOME" VERSION="#version#" BINDIR="#bindir#" make_dir() { mkdir "$1" chmod +rwx "$1" } make_script() { ISCRIPT="$1" cat << EOF >> "$ISCRIPT" # Window Maker default X session startup script PATH="\$PATH:$BINDIR" # If you login from xdm, uncomment this to make error messages appear # in the console window. # # tail -f "$HOME"/.xsession-errors > /dev/console & exec wmaker EOF chmod +rx "$ISCRIPT" } # # Copy files considering special cases # copy() { source="$1" target="$2" file="$(basename "$source")" rm -f "$target" if [ "$file" = "WindowMaker" ]; then sed -e "s|~/GNUstep|$GSDIR|g" "$source" > "$target" else if test "x$GNUSTEP_USER_ROOT" = "x"; then sed -e "s:#wmdatadir#:$GLOBALDIR:g" \ "$source" > "$target" else sed -e "s|\$HOME/GNUstep|$GSDIR|g" \ -e "s:#wmdatadir#:$GLOBALDIR:g" \ "$source" > "$target" fi fi } # # Generate WMRootmenu # GenerateMenu() { wmgenmenu > $GSDIR/Defaults/WMRootMenu } 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 fi if [ ! -d "$USERDIR" ]; then echo "Could not find user directory $USERDIR" exit 1 fi if test "x$GNUSTEP_USER_ROOT" = "x"; then cd "$USERDIR" GSDIR="$USERDIR/GNUstep" if [ ! -d "$GSDIR" ]; then echo "Creating $GSDIR user directory" make_dir "$GSDIR" fi else GSDIR="$GNUSTEP_USER_ROOT" if [ ! -d "$GSDIR" ]; then echo "Directory specified in GNUSTEP_USER_ROOT environment variable does not exist" exit 1 fi cd "$GSDIR" cd .. fi if [ ! -d "$GSDIR/Defaults" ]; then make_dir "$GSDIR/Defaults" fi echo "Copying defaults database..." FILES="$(cd "$GLOBALDEFDIR" && ls -d *)" all="" for i in $FILES; do if [ ! -d "$GLOBALDEFDIR/$i" ]; then if [ -f "$GSDIR/Defaults/$i" -a -z "$BATCH" ]; then echo "The configuration file \"$i\" already exists in your defaults database." echo "Do you wish to replace it? <y/n/a> [n] $all" if [ "$all" != "a" ]; then read foo if [ "$foo" = "a" -o "$foo" = "A" ]; then all="a" fi fi if [ "$foo" = "y" -o "$foo" = "Y" -o "$all" = "a" ]; then copy "$GLOBALDEFDIR/$i" "$GSDIR/Defaults/$i" fi else copy "$GLOBALDEFDIR/$i" "$GSDIR/Defaults/$i" fi fi done GenerateMenu if [ ! -d "$GSDIR/Library/Icons/" ]; then echo "Creating icon library directory $GSDIR/Library/Icons" if [ ! -d "$GSDIR/Library" ]; then make_dir "$GSDIR/Library" fi make_dir "$GSDIR/Library/Icons" fi if [ ! -d "$GSDIR/Library/WindowMaker/" ]; then echo "Creating WindowMaker data library directory $GSDIR/Library/WindowMaker" if [ ! -d "$GSDIR/Library" ]; then make_dir "$GSDIR/Library" fi make_dir "$GSDIR/Library/WindowMaker" fi if [ ! -d "$GSDIR/Library/WindowMaker/Styles" ]; then echo "Creating style library $GSDIR/Library/WindowMaker/Styles" make_dir "$GSDIR/Library/WindowMaker/Styles" fi if [ ! -d "$GSDIR/Library/WindowMaker/Themes" ]; then echo "Creating theme library $GSDIR/Library/WindowMaker/Themes" make_dir "$GSDIR/Library/WindowMaker/Themes" fi if [ ! -d "$GSDIR/Library/WindowMaker/Backgrounds" ]; then echo "Creating bg image library $GSDIR/Library/WindowMaker/Backgrounds" make_dir "$GSDIR/Library/WindowMaker/Backgrounds" else echo "Default Backgrounds directory already exists. Skipping..." fi if [ ! -d "$GSDIR/Library/WindowMaker/IconSets" ]; then echo "Creating icon setup library $GSDIR/Library/WindowMaker/IconSets" make_dir "$GSDIR/Library/WindowMaker/IconSets" else echo "Default IconSets directory already exists. Skipping..." fi if [ ! -d "$GSDIR/Library/WindowMaker/Pixmaps" ]; then echo "Creating pixmap library $GSDIR/Library/WindowMaker/Pixmaps" make_dir "$GSDIR/Library/WindowMaker/Pixmaps" else echo "Default Pixmaps directory already exists. Skipping..." fi if [ ! -d "$GSDIR/Library/WindowMaker/CachedPixmaps" ]; then make_dir "$GSDIR/Library/WindowMaker/CachedPixmaps" fi if [ ! -d "$GSDIR/Library/WindowMaker/WPrefs" ]; then make_dir "$GSDIR/Library/WindowMaker/WPrefs" fi if test -z "#LITE#" ; then FILES="$(cd "$GLOBALDIR" && ls menu menu.* plmenu plmenu.?? wmmacros)" for i in $FILES; do # xx herbert if [ -f "$GSDIR/Library/WindowMaker/$i" -a -z "$BATCH" ]; then # /xx herbert echo "The file \"$i\" already exists in $GSDIR/Library/WindowMaker" echo "Do you wish to replace it? <y/n/a> [n] $all" if [ "$all" != "a" ]; then read foo if [ "$foo" = "a" -o "$foo" = "A" ]; then all="a" fi fi if [ "$foo" = "y" -o "$foo" = "Y" -o "$foo" = "a" ]; then copy "$GLOBALDIR/$i" "$GSDIR/Library/WindowMaker/$i" fi else copy "$GLOBALDIR/$i" "$GSDIR/Library/WindowMaker/$i" fi done fi cp "$GLOBALDIR/README.themes" "$GSDIR/Library/WindowMaker" cp "$GLOBALDIR/README" "$GSDIR/Library/WindowMaker" test -f "$GSDIR/Library/WindowMaker/autostart" || \ cp "$GLOBALDIR/autostart.sh" "$GSDIR/Library/WindowMaker/autostart" chmod +rx "$GSDIR/Library/WindowMaker/autostart" test -f "$GSDIR/Library/WindowMaker/exitscript" || \ cp "$GLOBALDIR/exitscript.sh" "$GSDIR/Library/WindowMaker/exitscript" chmod +rx "$GSDIR/Library/WindowMaker/exitscript" # xx herbert if test -n "$BATCH" ; then echo "Installation Finished" exit 0 fi # /xx herbert # ####################### DATE="$(date +%b%d.%T)" show_end_message() { echo echo "Installation Finished" echo echo "There are menus in 2 different file formats. The plain text format and" echo "the property list format. The plain text format is more flexible, but" echo "the menu in the property list format can be edited graphically. The" echo "menu that will be used by default is the property list one. Read" echo " $GSDIR/Library/WindowMaker/README" echo "for information on how to change it." if [ "${inst_menu%.*}" = "menu" ]; then echo "However, since you have locale set to $LOCALE and plmenu for such locale" echo "was not found, your WMRootMenu contains path to text formated menu:" echo " $GSDIR/Library/WindowMaker/$inst_menu" fi } wmaker_found=0 for xinit in .xinitrc .Xclients .xsession; do test ! -f "$HOME/$xinit" && continue res="$(grep wmaker "$HOME/$xinit")" if test "x$res" != x; then wmaker_found=1 break fi done if test "$wmaker_found" = 1; then echo "Found Window Maker to already be your default window manager." show_end_message exit 0 fi trap "show_end_message;exit" 2 echo echo "Now the .xinitrc, .Xclients or .xsession script must be updated so that" echo "it calls wmaker when you start an X session." echo "Type the name of the file that must be changed (normally .xinitrc)." echo "If the file already exists, it will be backed up with a .old.$DATE " echo "extension" echo "If you want to edit it by hand, hit <Control>-C now." read file if test "x$file" = "x"; then echo "Using .xinitrc as a default value" file=.xinitrc fi if [ -f "$USERDIR/$file" ]; then mv "$USERDIR/$file" "$USERDIR/$file.old.$DATE" fi make_script "$USERDIR/$file" show_end_message ���������������������WindowMaker-0.95.5/util/wdwrite.c�������������������������������������������������������������������0000644�0001750�0001750�00000005126�12214432632�013573� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* wdwrite.c - write key/value to defaults database * * WindowMaker window manager * * Copyright (c) 1997-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifdef __GLIBC__ #define _GNU_SOURCE /* getopt_long */ #endif /* * WindowMaker defaults DB writer */ #include <getopt.h> #include <limits.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <WINGs/WUtil.h> #include "../src/wconfig.h" extern char *__progname; static void print_help(int print_usage, int exitval) { printf("Usage: %s [OPTIONS] <domain> <key> <value>\n", __progname); if (print_usage) { puts("Write <value> for <key> in <domain>'s database"); puts(""); puts(" -h, --help display this help message"); puts(" -v, --version output version information and exit"); } exit(exitval); } int main(int argc, char **argv) { char path[PATH_MAX]; WMPropList *key, *value, *dict; int ch; struct option longopts[] = { { "version", no_argument, NULL, 'v' }, { "help", no_argument, NULL, 'h' }, { NULL, 0, NULL, 0 } }; while ((ch = getopt_long(argc, argv, "hv", longopts, NULL)) != -1) switch(ch) { case 'v': printf("%s (Window Maker %s)\n", __progname, VERSION); return 0; /* NOTREACHED */ case 'h': print_help(1, 0); /* NOTREACHED */ case 0: break; default: print_help(0, 1); /* NOTREACHED */ } argc -= optind; argv += optind; if (argc != 3) print_help(0, 1); key = WMCreatePLString(argv[1]); value = WMCreatePropListFromDescription(argv[2]); if (!value) { printf("%s: syntax error in value \"%s\"", __progname, argv[2]); return 1; } snprintf(path, sizeof(path), "%s", wdefaultspathfordomain(argv[0])); dict = WMReadPropListFromFile(path); if (!dict) { dict = WMCreatePLDictionary(key, value, NULL); } else { WMPutInPLDictionary(dict, key, value); } WMWritePropListToFile(dict, path); return 0; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/Makefile.am�����������������������������������������������������������������0000644�0001750�0001750�00000004222�12214432632�013772� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������SUBDIRS = po AUTOMAKE_OPTIONS = pkgdatadir = $(datadir)/@PACKAGE@ bin_PROGRAMS = wxcopy wxpaste wdwrite wdread getstyle setstyle convertfonts \ seticons geticonset wmsetbg wmagnify wmgenmenu wmmenugen bin_SCRIPTS = wmaker.inst wm-oldmenu2new wkdemenu.pl EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wkdemenu.pl AM_CPPFLAGS = -DLOCALEDIR=\"$(NLSDIR)\" \ $(DFLAGS) -I$(top_srcdir)/WINGs -I$(top_srcdir)/wrlib \ @HEADER_SEARCH_PATH@ \ -DETCDIR=\"sysconfdir\" -DDATADIR=\"pkgdatadir\" liblist= @LIBRARY_SEARCH_PATH@ @INTLIBS@ wdwrite_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist) wdread_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist) wxcopy_LDADD = @XLFLAGS@ @XLIBS@ wxpaste_LDADD = @XLFLAGS@ @XLIBS@ getstyle_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist) getstyle_SOURCES = getstyle.c fontconv.c common.h setstyle_LDADD = \ $(top_builddir)/WINGs/libWUtil.la \ @XLFLAGS@ @XLIBS@ $(liblist) setstyle_SOURCES = setstyle.c fontconv.c common.h convertfonts_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist) convertfonts_SOURCES = convertfonts.c fontconv.c common.h seticons_LDADD= $(top_builddir)/WINGs/libWUtil.la $(liblist) geticonset_LDADD= $(top_builddir)/WINGs/libWUtil.la $(liblist) wmagnify_LDADD = \ $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/WINGs/libWUtil.la \ $(top_builddir)/wrlib/libwraster.la \ @XLFLAGS@ @XLIBS@ @INTLIBS@ wmsetbg_LDADD = \ $(top_builddir)/WINGs/libWINGs.la \ $(top_builddir)/WINGs/libWUtil.la \ $(top_builddir)/wrlib/libwraster.la \ @XLFLAGS@ @LIBXINERAMA@ @XLIBS@ @INTLIBS@ wmgenmenu_LDADD = \ $(top_builddir)/WINGs/libWUtil.la \ @INTLIBS@ wmgenmenu_SOURCES = wmgenmenu.c wmgenmenu.h wmmenugen_LDADD = \ $(top_builddir)/WINGs/libWUtil.la \ @INTLIBS@ wmmenugen_SOURCES = wmmenugen.c wmmenugen.h wmmenugen_misc.c \ wmmenugen_parse_wmconfig.c \ wmmenugen_parse_xdg.c CLEANFILES = wmaker.inst wmaker.inst: $(srcdir)/wmaker.inst.in ./Makefile -rm -f wmaker.inst sed -e "s|#pkgdatadir#|$(pkgdatadir)|" \ -e "s|#sysconfdir#|$(sysconfdir)/WindowMaker|" \ -e "s|#version#|$(VERSION)|" \ -e "s|#bindir#|$(bindir)|" \ $(srcdir)/wmaker.inst.in >wmaker.inst chmod 755 wmaker.inst ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/po/�������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434642�012437� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/po/Makefile.in��������������������������������������������������������������0000644�0001750�0001750�00000027424�12214434561�014435� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = util/po DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ CATALOGS = @UTILMOFILES@ nlsdir = $(NLSDIR) CLEANFILES = wmgenmenu.pot $(CATALOGS) EXTRA_DIST = de.po es.po fr.po pt.po POTFILES = \ $(top_srcdir)/util/wmgenmenu.c \ $(top_srcdir)/util/wmgenmenu.h SUFFIXES = .po .mo all: all-am .SUFFIXES: .SUFFIXES: .po .mo $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu util/po/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu util/po/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-data-local \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am .po.mo: msgfmt -c -o $@ $< all-local: $(CATALOGS) wmgenmenu.pot: $(POTFILES) xgettext --default-domain=wmgenmenu \ --add-comments --keyword=_ --keyword=N_ $(POTFILES) if cmp -s wmgenmenu.po wmgenmenu.pot; then \ rm -f wmgenmenu.po; \ else \ mv -f wmgenmenu.po wmgenmenu.pot; \ fi install-data-local: $(CATALOGS) $(mkinstalldirs) $(DESTDIR)$(nlsdir) chmod 755 $(DESTDIR)$(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_DATA) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/wmgenmenu.mo; \ fi; \ done # 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. .NOEXPORT: ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/po/Makefile.am��������������������������������������������������������������0000644�0001750�0001750�00000001732�12214432632�014413� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������CATALOGS = @UTILMOFILES@ nlsdir = $(NLSDIR) CLEANFILES = wmgenmenu.pot $(CATALOGS) EXTRA_DIST = de.po es.po fr.po pt.po POTFILES = \ $(top_srcdir)/util/wmgenmenu.c \ $(top_srcdir)/util/wmgenmenu.h SUFFIXES = .po .mo .po.mo: msgfmt -c -o $@ $< all-local: $(CATALOGS) wmgenmenu.pot: $(POTFILES) xgettext --default-domain=wmgenmenu \ --add-comments --keyword=_ --keyword=N_ $(POTFILES) if cmp -s wmgenmenu.po wmgenmenu.pot; then \ rm -f wmgenmenu.po; \ else \ mv -f wmgenmenu.po wmgenmenu.pot; \ fi install-data-local: $(CATALOGS) $(mkinstalldirs) $(DESTDIR)$(nlsdir) chmod 755 $(DESTDIR)$(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_DATA) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/wmgenmenu.mo; \ fi; \ done ��������������������������������������WindowMaker-0.95.5/util/po/es.po��������������������������������������������������������������������0000644�0001750�0001750�00000054145�12214432632�013334� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wmgenmenu Spanish translation # Copyright (C) 2011 Camille d'Alméras # This file is distributed under the same license as the Window Maker package. # Camille d'Alméras <camilledalmeras@yahoo.com>, 2011. # msgid "" msgstr "" "Project-Id-Version: wmgenmenu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-10 00:04+0100\n" "PO-Revision-Date: 2011-02-05 12:19-0500\n" "Last-Translator: Camille d'Alméras <camilledalmeras@yahoo.com>\n" "Language-Team: Spanish\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Root -> Applications #: ../../util/wmgenmenu.c:103 msgid "Applications" msgstr "Aplicaciones" #. Root -> Applications -> <category> #: ../../util/wmgenmenu.c:106 msgid "Terminals" msgstr "Terminales" #. always keep terminals the top item #: ../../util/wmgenmenu.c:107 msgid "Internet" msgstr "Internet" #: ../../util/wmgenmenu.c:108 msgid "Email" msgstr "Correo electrónico" #: ../../util/wmgenmenu.c:109 msgid "Mathematics" msgstr "Matemáticas" #: ../../util/wmgenmenu.c:110 msgid "File Managers" msgstr "Gestores de archivos" #: ../../util/wmgenmenu.c:111 msgid "Graphics" msgstr "Gráficos" #: ../../util/wmgenmenu.c:112 msgid "Multimedia" msgstr "Multimedia" #: ../../util/wmgenmenu.c:113 msgid "Editors" msgstr "Editores" #: ../../util/wmgenmenu.c:114 msgid "Development" msgstr "Desarrollo" #: ../../util/wmgenmenu.c:116 msgid "Office" msgstr "Ofimática" #: ../../util/wmgenmenu.c:117 msgid "Astronomy" msgstr "Astronomía" #: ../../util/wmgenmenu.c:118 msgid "Sound" msgstr "Sonido" #: ../../util/wmgenmenu.c:119 msgid "Comics" msgstr "Tiras cómicas" #: ../../util/wmgenmenu.c:120 msgid "Viewers" msgstr "Visualizadores" #: ../../util/wmgenmenu.c:121 msgid "Utilities" msgstr "Utilidades" #: ../../util/wmgenmenu.c:122 msgid "System" msgstr "Sistema" #: ../../util/wmgenmenu.c:123 msgid "Video" msgstr "Video" #: ../../util/wmgenmenu.c:124 msgid "Chat and Talk" msgstr "Conversación" #: ../../util/wmgenmenu.c:125 msgid "P2P Network" msgstr "Redes P2P" #: ../../util/wmgenmenu.c:126 msgid "Games" msgstr "Juegos" #: ../../util/wmgenmenu.c:134 msgid "Run..." msgstr "Ejecutar..." #: ../../util/wmgenmenu.c:136 #, c-format msgid "%A(Run, Type command:)" msgstr "%A(Ejecutar, Ingrese un comando:)" #. Root -> Appearance #: ../../util/wmgenmenu.c:142 msgid "Appearance" msgstr "Apariencia" #: ../../util/wmgenmenu.c:146 msgid "Themes" msgstr "Temas" #: ../../util/wmgenmenu.c:155 msgid "Styles" msgstr "Estilos" #: ../../util/wmgenmenu.c:164 msgid "Icon Sets" msgstr "Conjuntos de íconos" #. Root -> Appearance -> Background #: ../../util/wmgenmenu.c:172 msgid "Background" msgstr "Fondo de pantalla" #. Root -> Appearance -> Background -> Solid #: ../../util/wmgenmenu.c:175 msgid "Solid" msgstr "Plano" #. Root -> Appearance -> Background -> Solid -> <color> #: ../../util/wmgenmenu.c:187 msgid "Black" msgstr "Negro" #: ../../util/wmgenmenu.c:188 msgid "Blue" msgstr "Amatista oscuro" #: ../../util/wmgenmenu.c:189 msgid "Indigo" msgstr "Añil" #: ../../util/wmgenmenu.c:190 msgid "Bluemarine" msgstr "Turquí" #: ../../util/wmgenmenu.c:191 msgid "Purple" msgstr "Púrpura" #: ../../util/wmgenmenu.c:192 msgid "Wheat" msgstr "Pardo" #: ../../util/wmgenmenu.c:193 msgid "Dark Gray" msgstr "Gris de Payne" #: ../../util/wmgenmenu.c:194 msgid "Wine" msgstr "Vino tinto" #. Root -> Appearance -> Background -> Gradient #: ../../util/wmgenmenu.c:199 msgid "Gradient" msgstr "Degradado" #: ../../util/wmgenmenu.c:213 msgid "Sunset" msgstr "Puesta del sol" #: ../../util/wmgenmenu.c:220 msgid "Sky" msgstr "Cielo" #: ../../util/wmgenmenu.c:221 msgid "Blue Shades" msgstr "Degradado de amatista oscuro" #: ../../util/wmgenmenu.c:222 msgid "Indigo Shades" msgstr "Degradado de añil" #: ../../util/wmgenmenu.c:223 msgid "Purple Shades" msgstr "Degradado de púrpura" #: ../../util/wmgenmenu.c:224 msgid "Wheat Shades" msgstr "Degradado de pardo" #: ../../util/wmgenmenu.c:225 msgid "Grey Shades" msgstr "Degradado de gris de Payne" #: ../../util/wmgenmenu.c:226 msgid "Wine Shades" msgstr "Degradado de vino tinto" #: ../../util/wmgenmenu.c:232 msgid "Images" msgstr "Imágenes" #: ../../util/wmgenmenu.c:243 msgid "Save Theme" msgstr "Guardar el tema" #: ../../util/wmgenmenu.c:253 msgid "Save IconSet" msgstr "Guardar el conjunto de íconos" #: ../../util/wmgenmenu.c:264 msgid "Workspaces" msgstr "Escritorios" #. Root -> Workspace #: ../../util/wmgenmenu.c:271 msgid "Workspace" msgstr "Escritorio" #: ../../util/wmgenmenu.c:273 msgid "Hide Others" msgstr "Ocultar los demás" #: ../../util/wmgenmenu.c:281 msgid "Show All" msgstr "Mostrar todo" #: ../../util/wmgenmenu.c:289 msgid "Arrange Icons" msgstr "Ordenar los íconos" #: ../../util/wmgenmenu.c:297 msgid "Refresh" msgstr "Actualizar" #: ../../util/wmgenmenu.c:305 msgid "Save Session" msgstr "Guardar la sesión" #: ../../util/wmgenmenu.c:313 msgid "Clear Session" msgstr "Reiniciar la sesión" #: ../../util/wmgenmenu.c:322 msgid "Configure Window Maker" msgstr "Configurar Window Maker" #: ../../util/wmgenmenu.c:331 msgid "Info Panel" msgstr "Panel de información" #: ../../util/wmgenmenu.c:339 msgid "Restart Window Maker" msgstr "Reiniciar Window Maker" #: ../../util/wmgenmenu.c:352 msgid "Lock Screen" msgstr "Bloquear la pantalla" #: ../../util/wmgenmenu.c:363 msgid "Exit Window Maker" msgstr "Salir de Window Maker" #: ../../util/wmgenmenu.c:458 #, c-format msgid "Start %s" msgstr "Lanzar %s" #: ../../util/wmgenmenu.c:468 msgid "Other Window Managers" msgstr "Otros gestores de ventanas" #: ../../util/wmgenmenu.h:9 msgid "xterm" msgstr "" #: ../../util/wmgenmenu.h:10 msgid "mrxvt" msgstr "" #: ../../util/wmgenmenu.h:11 msgid "Konsole" msgstr "" #: ../../util/wmgenmenu.h:16 msgid "Dolphin" msgstr "" #: ../../util/wmgenmenu.h:17 msgid "Thunar" msgstr "" #: ../../util/wmgenmenu.h:18 msgid "ROX filer" msgstr "" #: ../../util/wmgenmenu.h:19 msgid "GWorkspace" msgstr "" #: ../../util/wmgenmenu.h:20 msgid "Midnight Commander" msgstr "" #: ../../util/wmgenmenu.h:21 msgid "XFTree" msgstr "" #: ../../util/wmgenmenu.h:22 ../../util/wmgenmenu.h:118 msgid "Konqueror" msgstr "" #: ../../util/wmgenmenu.h:23 msgid "Nautilus" msgstr "" #: ../../util/wmgenmenu.h:24 msgid "FSViewer" msgstr "" #: ../../util/wmgenmenu.h:25 msgid "Xfe" msgstr "" #: ../../util/wmgenmenu.h:30 msgid "Xmaxima" msgstr "" #: ../../util/wmgenmenu.h:31 msgid "Maxima" msgstr "" #: ../../util/wmgenmenu.h:32 msgid "Maple" msgstr "" #: ../../util/wmgenmenu.h:33 msgid "Scilab" msgstr "" #: ../../util/wmgenmenu.h:34 msgid "bc" msgstr "" #: ../../util/wmgenmenu.h:35 msgid "KCalc" msgstr "" #: ../../util/wmgenmenu.h:36 msgid "XCalc" msgstr "" #: ../../util/wmgenmenu.h:37 msgid "Mathematica" msgstr "" #: ../../util/wmgenmenu.h:38 msgid "Math" msgstr "" #. command-line Mathematica #: ../../util/wmgenmenu.h:39 msgid "Free42" msgstr "" #: ../../util/wmgenmenu.h:40 msgid "X48" msgstr "" #: ../../util/wmgenmenu.h:45 msgid "Xplns" msgstr "" #: ../../util/wmgenmenu.h:46 msgid "Stellarium" msgstr "" #: ../../util/wmgenmenu.h:51 msgid "GIMP" msgstr "" #: ../../util/wmgenmenu.h:52 msgid "Sodipodi" msgstr "" #: ../../util/wmgenmenu.h:53 msgid "Inkscape" msgstr "" #: ../../util/wmgenmenu.h:54 msgid "KIllustrator" msgstr "" #: ../../util/wmgenmenu.h:55 msgid "Krayon" msgstr "" #: ../../util/wmgenmenu.h:56 msgid "KPovModeler" msgstr "" #: ../../util/wmgenmenu.h:57 msgid "XBitmap" msgstr "" #: ../../util/wmgenmenu.h:58 msgid "XPaint" msgstr "" #: ../../util/wmgenmenu.h:59 msgid "XFig" msgstr "" #: ../../util/wmgenmenu.h:60 msgid "KPaint" msgstr "" #: ../../util/wmgenmenu.h:61 msgid "Blender" msgstr "" #: ../../util/wmgenmenu.h:62 msgid "KSnapshot" msgstr "" #: ../../util/wmgenmenu.h:63 msgid "GPhoto" msgstr "" #: ../../util/wmgenmenu.h:64 msgid "DigiKam" msgstr "" #: ../../util/wmgenmenu.h:65 msgid "Dia" msgstr "" #: ../../util/wmgenmenu.h:66 msgid "CompuPic" msgstr "" #: ../../util/wmgenmenu.h:67 msgid "GQview" msgstr "" #: ../../util/wmgenmenu.h:68 msgid "Geeqie" msgstr "" #: ../../util/wmgenmenu.h:69 msgid "KView" msgstr "" #: ../../util/wmgenmenu.h:70 msgid "Pixie" msgstr "" #: ../../util/wmgenmenu.h:71 msgid "ImageMagick Display" msgstr "" #: ../../util/wmgenmenu.h:72 msgid "XV" msgstr "" #: ../../util/wmgenmenu.h:73 msgid "Eye of GNOME" msgstr "" #: ../../util/wmgenmenu.h:74 msgid "Quick Image Viewer" msgstr "" #: ../../util/wmgenmenu.h:79 msgid "Audacious" msgstr "" #: ../../util/wmgenmenu.h:80 ../../util/wmgenmenu.h:216 msgid "Kaffeine" msgstr "" #: ../../util/wmgenmenu.h:81 msgid "Audacity" msgstr "" #: ../../util/wmgenmenu.h:82 msgid "Amarok" msgstr "" #: ../../util/wmgenmenu.h:83 msgid "XMMS" msgstr "" #: ../../util/wmgenmenu.h:84 msgid "K9Copy" msgstr "" #: ../../util/wmgenmenu.h:85 msgid "HandBrake" msgstr "" #: ../../util/wmgenmenu.h:86 msgid "OGMRip" msgstr "" #: ../../util/wmgenmenu.h:87 msgid "DVBcut" msgstr "" #: ../../util/wmgenmenu.h:88 msgid "AcidRip" msgstr "" #: ../../util/wmgenmenu.h:89 msgid "Avidemux" msgstr "" #: ../../util/wmgenmenu.h:90 msgid "GQmpeg" msgstr "" #: ../../util/wmgenmenu.h:91 msgid "Freeamp" msgstr "" #: ../../util/wmgenmenu.h:92 msgid "RealPlayer" msgstr "" #: ../../util/wmgenmenu.h:93 msgid "Mediathek" msgstr "" #: ../../util/wmgenmenu.h:94 msgid "KMid" msgstr "" #: ../../util/wmgenmenu.h:95 msgid "Kmidi" msgstr "" #: ../../util/wmgenmenu.h:96 msgid "Gtcd" msgstr "" #: ../../util/wmgenmenu.h:97 msgid "Grip" msgstr "" #: ../../util/wmgenmenu.h:98 msgid "AVIplay" msgstr "" #: ../../util/wmgenmenu.h:99 msgid "Gtv" msgstr "" #: ../../util/wmgenmenu.h:100 msgid "VLC" msgstr "" #: ../../util/wmgenmenu.h:101 msgid "Sinek" msgstr "" #: ../../util/wmgenmenu.h:102 msgid "xine" msgstr "" #: ../../util/wmgenmenu.h:103 msgid "aKtion" msgstr "" #: ../../util/wmgenmenu.h:104 msgid "Gcd" msgstr "" #: ../../util/wmgenmenu.h:105 msgid "XawTV" msgstr "" #: ../../util/wmgenmenu.h:106 msgid "X-CD-Roast" msgstr "" #: ../../util/wmgenmenu.h:107 msgid "XPlayCD" msgstr "" #: ../../util/wmgenmenu.h:112 ../../util/wmgenmenu.h:113 msgid "Chromium" msgstr "" #: ../../util/wmgenmenu.h:114 msgid "Google Chrome" msgstr "" #: ../../util/wmgenmenu.h:115 msgid "Mozilla Firefox" msgstr "" #: ../../util/wmgenmenu.h:116 msgid "Galeon" msgstr "" #: ../../util/wmgenmenu.h:117 msgid "SkipStone" msgstr "" #: ../../util/wmgenmenu.h:119 msgid "Dillo" msgstr "" #: ../../util/wmgenmenu.h:120 msgid "Epiphany" msgstr "" #: ../../util/wmgenmenu.h:121 msgid "Opera" msgstr "" #: ../../util/wmgenmenu.h:122 msgid "Midori" msgstr "" #: ../../util/wmgenmenu.h:123 msgid "Mozilla SeaMonkey" msgstr "" #: ../../util/wmgenmenu.h:124 msgid "Kazehakase" msgstr "" #: ../../util/wmgenmenu.h:125 msgid "Links" msgstr "" #: ../../util/wmgenmenu.h:126 msgid "Lynx" msgstr "" #: ../../util/wmgenmenu.h:127 msgid "W3M" msgstr "" #: ../../util/wmgenmenu.h:132 msgid "Mozilla Thunderbird" msgstr "" #: ../../util/wmgenmenu.h:133 msgid "Mutt" msgstr "" #: ../../util/wmgenmenu.h:134 msgid "GNUMail" msgstr "" #: ../../util/wmgenmenu.h:135 msgid "Evolution" msgstr "" #: ../../util/wmgenmenu.h:136 msgid "Kleopatra" msgstr "" #: ../../util/wmgenmenu.h:137 msgid "Sylpheed" msgstr "" #: ../../util/wmgenmenu.h:138 msgid "Spruce" msgstr "" #: ../../util/wmgenmenu.h:139 msgid "KMail" msgstr "" #: ../../util/wmgenmenu.h:140 msgid "Exmh" msgstr "" #: ../../util/wmgenmenu.h:141 msgid "Pine" msgstr "" #: ../../util/wmgenmenu.h:142 msgid "ELM" msgstr "" #: ../../util/wmgenmenu.h:143 msgid "Alpine" msgstr "" #: ../../util/wmgenmenu.h:148 msgid "soundKonverter" msgstr "" #: ../../util/wmgenmenu.h:149 msgid "Krecord" msgstr "" #: ../../util/wmgenmenu.h:150 msgid "Grecord" msgstr "" #: ../../util/wmgenmenu.h:151 msgid "ALSA mixer" msgstr "" #: ../../util/wmgenmenu.h:152 msgid "Sound configuration" msgstr "" #: ../../util/wmgenmenu.h:153 msgid "aumix" msgstr "" #: ../../util/wmgenmenu.h:154 msgid "Gmix" msgstr "" #: ../../util/wmgenmenu.h:159 msgid "XJed" msgstr "" #: ../../util/wmgenmenu.h:160 msgid "Jed" msgstr "" #: ../../util/wmgenmenu.h:161 msgid "Emacs" msgstr "" #: ../../util/wmgenmenu.h:162 msgid "XEmacs" msgstr "" #: ../../util/wmgenmenu.h:163 msgid "gVIM" msgstr "" #: ../../util/wmgenmenu.h:164 msgid "vi" msgstr "" #: ../../util/wmgenmenu.h:165 msgid "VIM" msgstr "" #: ../../util/wmgenmenu.h:166 msgid "gedit" msgstr "" #: ../../util/wmgenmenu.h:167 msgid "KEdit" msgstr "" #: ../../util/wmgenmenu.h:168 msgid "XEdit" msgstr "" #: ../../util/wmgenmenu.h:169 msgid "KWrite" msgstr "" #: ../../util/wmgenmenu.h:170 msgid "Kate" msgstr "" #: ../../util/wmgenmenu.h:171 msgid "Pico" msgstr "" #: ../../util/wmgenmenu.h:172 msgid "Nano" msgstr "" #: ../../util/wmgenmenu.h:173 msgid "Joe" msgstr "" #: ../../util/wmgenmenu.h:178 msgid "Omnia data" msgstr "" #: ../../util/wmgenmenu.h:179 msgid "Comix" msgstr "" #: ../../util/wmgenmenu.h:180 msgid "QComicBook" msgstr "" #: ../../util/wmgenmenu.h:185 msgid "Evince" msgstr "" #: ../../util/wmgenmenu.h:186 msgid "KGhostView" msgstr "" #: ../../util/wmgenmenu.h:187 msgid "gv" msgstr "" #: ../../util/wmgenmenu.h:188 msgid "GGv" msgstr "" #: ../../util/wmgenmenu.h:189 msgid "Xdvi" msgstr "" #: ../../util/wmgenmenu.h:190 msgid "KDVI" msgstr "" #: ../../util/wmgenmenu.h:191 msgid "Xpdf" msgstr "" #: ../../util/wmgenmenu.h:192 msgid "Adobe Reader" msgstr "" #: ../../util/wmgenmenu.h:193 msgid "Gless" msgstr "" #: ../../util/wmgenmenu.h:198 msgid "Google Desktop" msgstr "" #: ../../util/wmgenmenu.h:199 msgid "K3B" msgstr "" #: ../../util/wmgenmenu.h:200 msgid "gtkfind" msgstr "" #: ../../util/wmgenmenu.h:201 msgid "gdict" msgstr "" #: ../../util/wmgenmenu.h:202 msgid "gpsdrive" msgstr "" #: ../../util/wmgenmenu.h:203 msgid "wfcmgr" msgstr "" #: ../../util/wmgenmenu.h:204 msgid "switch" msgstr "" #: ../../util/wmgenmenu.h:205 msgid "kaddressbook" msgstr "" #: ../../util/wmgenmenu.h:206 msgid "kab" msgstr "" #: ../../util/wmgenmenu.h:207 msgid "kfind" msgstr "" #: ../../util/wmgenmenu.h:208 msgid "oclock" msgstr "" #: ../../util/wmgenmenu.h:209 msgid "rclock" msgstr "" #: ../../util/wmgenmenu.h:210 msgid "xclock" msgstr "" #: ../../util/wmgenmenu.h:211 msgid "kppp" msgstr "" #: ../../util/wmgenmenu.h:217 msgid "Ekiga" msgstr "" #: ../../util/wmgenmenu.h:222 msgid "Pidgin" msgstr "" #: ../../util/wmgenmenu.h:223 msgid "Skype" msgstr "" #: ../../util/wmgenmenu.h:224 msgid "Gizmo" msgstr "" #: ../../util/wmgenmenu.h:225 msgid "Kopete" msgstr "" #: ../../util/wmgenmenu.h:226 msgid "XChat" msgstr "" #: ../../util/wmgenmenu.h:227 msgid "KVIrc" msgstr "" #: ../../util/wmgenmenu.h:228 msgid "BitchX" msgstr "" #: ../../util/wmgenmenu.h:229 msgid "EPIC" msgstr "" #: ../../util/wmgenmenu.h:230 msgid "EPIC4" msgstr "" #: ../../util/wmgenmenu.h:231 msgid "Irssi" msgstr "" #: ../../util/wmgenmenu.h:232 msgid "TinyIRC" msgstr "" #: ../../util/wmgenmenu.h:233 msgid "Ksirc" msgstr "" #: ../../util/wmgenmenu.h:234 msgid "gtalk" msgstr "" #: ../../util/wmgenmenu.h:235 msgid "GnomeICU" msgstr "" #: ../../util/wmgenmenu.h:236 msgid "Licq" msgstr "" #: ../../util/wmgenmenu.h:237 msgid "aMSN" msgstr "" #: ../../util/wmgenmenu.h:242 msgid "aMule" msgstr "" #: ../../util/wmgenmenu.h:243 msgid "gFTP" msgstr "" #: ../../util/wmgenmenu.h:244 msgid "Smb4K" msgstr "" #: ../../util/wmgenmenu.h:245 msgid "KTorrent" msgstr "" #: ../../util/wmgenmenu.h:246 msgid "BitTorrent GUI" msgstr "" #: ../../util/wmgenmenu.h:247 msgid "ftp" msgstr "" #: ../../util/wmgenmenu.h:248 msgid "sftp" msgstr "" #: ../../util/wmgenmenu.h:249 msgid "Pavuk" msgstr "" #: ../../util/wmgenmenu.h:250 msgid "gtm" msgstr "" #: ../../util/wmgenmenu.h:251 msgid "Gnut" msgstr "" #: ../../util/wmgenmenu.h:252 msgid "GTK Gnutella" msgstr "" #: ../../util/wmgenmenu.h:253 msgid "Gnutmeg" msgstr "" #: ../../util/wmgenmenu.h:258 msgid "FlightGear Flight Simulator" msgstr "" #: ../../util/wmgenmenu.h:259 msgid "Tremulous" msgstr "" #: ../../util/wmgenmenu.h:260 msgid "XBoard" msgstr "" #: ../../util/wmgenmenu.h:261 msgid "GNOME Chess" msgstr "" #: ../../util/wmgenmenu.h:262 msgid "Quake 2" msgstr "" #: ../../util/wmgenmenu.h:263 msgid "Quake 3" msgstr "" #: ../../util/wmgenmenu.h:264 msgid "Quake 3: Urban Terror 2" msgstr "" #: ../../util/wmgenmenu.h:265 msgid "Soldier of Fortune" msgstr "" #: ../../util/wmgenmenu.h:266 msgid "Rune" msgstr "" #: ../../util/wmgenmenu.h:267 msgid "Tribes 2" msgstr "" #: ../../util/wmgenmenu.h:268 msgid "Unreal Tournament" msgstr "" #: ../../util/wmgenmenu.h:269 msgid "Descent 3" msgstr "" #: ../../util/wmgenmenu.h:270 msgid "Myth 2" msgstr "" #: ../../util/wmgenmenu.h:271 ../../util/wmgenmenu.h:272 msgid "Sauerbraten" msgstr "" #: ../../util/wmgenmenu.h:273 msgid "Railroad Tycoon 2" msgstr "" #: ../../util/wmgenmenu.h:274 msgid "Heretic 2" msgstr "" #: ../../util/wmgenmenu.h:275 msgid "Kohan" msgstr "" #: ../../util/wmgenmenu.h:276 msgid "XQF" msgstr "" #: ../../util/wmgenmenu.h:281 msgid "OpenOffice.org Writer" msgstr "" #: ../../util/wmgenmenu.h:282 msgid "OpenOffice.org Calc" msgstr "" #: ../../util/wmgenmenu.h:283 msgid "OpenOffice.org Draw" msgstr "" #: ../../util/wmgenmenu.h:284 msgid "OpenOffice.org Impress" msgstr "" #: ../../util/wmgenmenu.h:285 msgid "OpenOffice.org Math" msgstr "" #: ../../util/wmgenmenu.h:286 msgid "OpenOffice.org" msgstr "" #: ../../util/wmgenmenu.h:287 msgid "StarOffice Writer" msgstr "" #: ../../util/wmgenmenu.h:288 msgid "StarOffice Calc" msgstr "" #: ../../util/wmgenmenu.h:289 msgid "StarOffice Draw" msgstr "" #: ../../util/wmgenmenu.h:290 msgid "StarOffice Impress" msgstr "" #: ../../util/wmgenmenu.h:291 msgid "StarOffice Math" msgstr "" #: ../../util/wmgenmenu.h:292 msgid "StarOffice" msgstr "" #: ../../util/wmgenmenu.h:293 msgid "AbiWord" msgstr "" #: ../../util/wmgenmenu.h:294 msgid "KWord" msgstr "" #: ../../util/wmgenmenu.h:295 msgid "KPresenter" msgstr "" #: ../../util/wmgenmenu.h:296 msgid "KSpread" msgstr "" #: ../../util/wmgenmenu.h:297 msgid "KChart" msgstr "" #: ../../util/wmgenmenu.h:298 msgid "KOrganizer" msgstr "" #: ../../util/wmgenmenu.h:299 msgid "LyX" msgstr "" #: ../../util/wmgenmenu.h:300 msgid "Klyx" msgstr "" #: ../../util/wmgenmenu.h:301 msgid "GnuCash" msgstr "" #: ../../util/wmgenmenu.h:302 msgid "Gnumeric" msgstr "" #: ../../util/wmgenmenu.h:303 msgid "GnomeCal" msgstr "" #: ../../util/wmgenmenu.h:304 msgid "GnomeCard" msgstr "" #: ../../util/wmgenmenu.h:309 msgid "gitk" msgstr "" #: ../../util/wmgenmenu.h:310 msgid "gitview" msgstr "" #: ../../util/wmgenmenu.h:311 msgid "qgit" msgstr "" #: ../../util/wmgenmenu.h:312 msgid "git-gui" msgstr "" #: ../../util/wmgenmenu.h:313 msgid "glimmer" msgstr "" #: ../../util/wmgenmenu.h:314 msgid "glade" msgstr "" #: ../../util/wmgenmenu.h:315 msgid "kdevelop" msgstr "" #: ../../util/wmgenmenu.h:316 msgid "designer" msgstr "" #: ../../util/wmgenmenu.h:317 msgid "kbabel" msgstr "" #: ../../util/wmgenmenu.h:318 msgid "idle" msgstr "" #: ../../util/wmgenmenu.h:319 msgid "ghex" msgstr "" #: ../../util/wmgenmenu.h:320 msgid "hexedit" msgstr "" #: ../../util/wmgenmenu.h:321 msgid "memprof" msgstr "" #: ../../util/wmgenmenu.h:322 msgid "tclsh" msgstr "" #: ../../util/wmgenmenu.h:323 msgid "gdb" msgstr "" #: ../../util/wmgenmenu.h:324 msgid "xxgdb" msgstr "" #: ../../util/wmgenmenu.h:325 msgid "xev" msgstr "" #: ../../util/wmgenmenu.h:330 msgid "Iotop" msgstr "" #: ../../util/wmgenmenu.h:331 msgid "Iostat" msgstr "" #: ../../util/wmgenmenu.h:332 msgid "keybconf" msgstr "" #: ../../util/wmgenmenu.h:333 msgid "GNOME System Monitor" msgstr "" #: ../../util/wmgenmenu.h:334 msgid "top" msgstr "" #: ../../util/wmgenmenu.h:335 msgid "KDE Process Monitor" msgstr "" #: ../../util/wmgenmenu.h:336 msgid "gw" msgstr "" #: ../../util/wmgenmenu.h:337 msgid "GNOME Control Center" msgstr "" #: ../../util/wmgenmenu.h:338 msgid "GKrellM" msgstr "" #: ../../util/wmgenmenu.h:339 msgid "tksysv" msgstr "" #: ../../util/wmgenmenu.h:340 msgid "ksysv" msgstr "" #: ../../util/wmgenmenu.h:341 msgid "GNOME PPP" msgstr "" #: ../../util/wmgenmenu.h:346 msgid "YaST 2" msgstr "" #: ../../util/wmgenmenu.h:347 msgid "YaST" msgstr "" #: ../../util/wmgenmenu.h:348 msgid "System Settings" msgstr "" #: ../../util/wmgenmenu.h:349 msgid "UMTSMon" msgstr "" #: ../../util/wmgenmenu.h:354 msgid "DrakNetCenter" msgstr "" #: ../../util/wmgenmenu.h:355 msgid "RPMDrake" msgstr "" #: ../../util/wmgenmenu.h:356 msgid "HardDrake" msgstr "" #: ../../util/wmgenmenu.h:357 msgid "DrakConf" msgstr "" #: ../../util/wmgenmenu.h:358 msgid "MandrakeUpdate" msgstr "" #: ../../util/wmgenmenu.h:359 msgid "XDrakRes" msgstr "" #: ../../util/wmgenmenu.h:364 msgid "Docker" msgstr "" #: ../../util/wmgenmenu.h:365 msgid "Net" msgstr "" #: ../../util/wmgenmenu.h:366 ../../util/wmgenmenu.h:387 msgid "Power" msgstr "" #: ../../util/wmgenmenu.h:367 msgid "Laptop" msgstr "" #: ../../util/wmgenmenu.h:368 msgid "WiFi" msgstr "" #: ../../util/wmgenmenu.h:369 msgid "Interface Info" msgstr "" #: ../../util/wmgenmenu.h:370 ../../util/wmgenmenu.h:373 msgid "Weather" msgstr "" #: ../../util/wmgenmenu.h:371 msgid "Sticky Notes" msgstr "" #: ../../util/wmgenmenu.h:372 msgid "Mixer" msgstr "" #: ../../util/wmgenmenu.h:374 msgid "CPU Load" msgstr "" #: ../../util/wmgenmenu.h:375 msgid "CPU Freq" msgstr "" #: ../../util/wmgenmenu.h:376 msgid "Clock Mon" msgstr "" #: ../../util/wmgenmenu.h:377 msgid "Network Devices" msgstr "" #: ../../util/wmgenmenu.h:378 msgid "Calendar & Clock" msgstr "" #: ../../util/wmgenmenu.h:379 msgid "Time" msgstr "" #: ../../util/wmgenmenu.h:380 msgid "Date" msgstr "" #: ../../util/wmgenmenu.h:381 ../../util/wmgenmenu.h:382 msgid "System Monitor" msgstr "" #: ../../util/wmgenmenu.h:383 msgid "SMP Monitor" msgstr "" #: ../../util/wmgenmenu.h:384 msgid "Interfaces" msgstr "" #: ../../util/wmgenmenu.h:385 msgid "Button" msgstr "" #: ../../util/wmgenmenu.h:386 msgid "xmms" msgstr "" #: ../../util/wmgenmenu.h:388 msgid "Magnify" msgstr "" #: ../../util/wmgenmenu.h:393 msgid "IceWM" msgstr "" #: ../../util/wmgenmenu.h:394 msgid "KWin" msgstr "" #: ../../util/wmgenmenu.h:395 msgid "twm" msgstr "" #: ../../util/wmgenmenu.h:396 msgid "Fluxbox" msgstr "" #: ../../util/wmgenmenu.h:397 msgid "Blackbox" msgstr "" #: ../../util/wmgenmenu.h:398 msgid "Ion" msgstr "" #: ../../util/wmgenmenu.h:399 msgid "Motif Window Manager" msgstr "" #: ../../util/wmgenmenu.h:400 msgid "FVWM" msgstr "" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/po/fr.po��������������������������������������������������������������������0000644�0001750�0001750�00000054214�12214432632�013331� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wmgenmenu French translation # Copyright (C) 2011 Camille d'Alméras # This file is distributed under the same license as the Window Maker package. # Camille d'Alméras <camilledalmeras@yahoo.com>, 2011. # msgid "" msgstr "" "Project-Id-Version: wmgenmenu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-10 00:04+0100\n" "PO-Revision-Date: 2011-02-05 12:19-0500\n" "Last-Translator: Camille d'Alméras <camilledalmeras@yahoo.com>\n" "Language-Team: French\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Root -> Applications #: ../../util/wmgenmenu.c:103 msgid "Applications" msgstr "Applications" #. Root -> Applications -> <category> #: ../../util/wmgenmenu.c:106 msgid "Terminals" msgstr "Terminaux" #. always keep terminals the top item #: ../../util/wmgenmenu.c:107 msgid "Internet" msgstr "Internet" #: ../../util/wmgenmenu.c:108 msgid "Email" msgstr "Courriel" #: ../../util/wmgenmenu.c:109 msgid "Mathematics" msgstr "Mathématiques" #: ../../util/wmgenmenu.c:110 msgid "File Managers" msgstr "Gestionnaires de fichiers" #: ../../util/wmgenmenu.c:111 msgid "Graphics" msgstr "Graphisme" #: ../../util/wmgenmenu.c:112 msgid "Multimedia" msgstr "Multimédia" #: ../../util/wmgenmenu.c:113 msgid "Editors" msgstr "Éditeurs" #: ../../util/wmgenmenu.c:114 msgid "Development" msgstr "Développement" #: ../../util/wmgenmenu.c:116 msgid "Office" msgstr "Bureautique" #: ../../util/wmgenmenu.c:117 msgid "Astronomy" msgstr "Astronomie" #: ../../util/wmgenmenu.c:118 msgid "Sound" msgstr "Son" #: ../../util/wmgenmenu.c:119 msgid "Comics" msgstr "Bandes dessinées" #: ../../util/wmgenmenu.c:120 msgid "Viewers" msgstr "Visualiseurs" #: ../../util/wmgenmenu.c:121 msgid "Utilities" msgstr "Utilitaires" #: ../../util/wmgenmenu.c:122 msgid "System" msgstr "Système" #: ../../util/wmgenmenu.c:123 msgid "Video" msgstr "Vidéo" #: ../../util/wmgenmenu.c:124 msgid "Chat and Talk" msgstr "Conversation" #: ../../util/wmgenmenu.c:125 msgid "P2P Network" msgstr "Partage poste à poste" #: ../../util/wmgenmenu.c:126 msgid "Games" msgstr "Jeux" #: ../../util/wmgenmenu.c:134 msgid "Run..." msgstr "Exécuter..." #: ../../util/wmgenmenu.c:136 #, c-format msgid "%A(Run, Type command:)" msgstr "%A(Exécuter, Tapez une commande:)" #. Root -> Appearance #: ../../util/wmgenmenu.c:142 msgid "Appearance" msgstr "Apparence" #: ../../util/wmgenmenu.c:146 msgid "Themes" msgstr "Thèmes" #: ../../util/wmgenmenu.c:155 msgid "Styles" msgstr "Styles" #: ../../util/wmgenmenu.c:164 msgid "Icon Sets" msgstr "Jeux d'icônes" #. Root -> Appearance -> Background #: ../../util/wmgenmenu.c:172 msgid "Background" msgstr "Fond d'écran" #. Root -> Appearance -> Background -> Solid #: ../../util/wmgenmenu.c:175 msgid "Solid" msgstr "Uni" #. Root -> Appearance -> Background -> Solid -> <color> #: ../../util/wmgenmenu.c:187 msgid "Black" msgstr "Noir" #: ../../util/wmgenmenu.c:188 msgid "Blue" msgstr "Bleu turquin" #: ../../util/wmgenmenu.c:189 msgid "Indigo" msgstr "Bleu de cobalt" #: ../../util/wmgenmenu.c:190 msgid "Bluemarine" msgstr "Bleu marine" #: ../../util/wmgenmenu.c:191 msgid "Purple" msgstr "Améthyste foncé" #: ../../util/wmgenmenu.c:192 msgid "Wheat" msgstr "Bistre" #: ../../util/wmgenmenu.c:193 msgid "Dark Gray" msgstr "Gris de Payne" #: ../../util/wmgenmenu.c:194 msgid "Wine" msgstr "Bordeaux" #. Root -> Appearance -> Background -> Gradient #: ../../util/wmgenmenu.c:199 msgid "Gradient" msgstr "Dégradé" #: ../../util/wmgenmenu.c:213 msgid "Sunset" msgstr "Coucher de soleil" #: ../../util/wmgenmenu.c:220 msgid "Sky" msgstr "Ciel" #: ../../util/wmgenmenu.c:221 msgid "Blue Shades" msgstr "Dégradé de bleu turquin" #: ../../util/wmgenmenu.c:222 msgid "Indigo Shades" msgstr "Dégradé de bleu de cobalt" #: ../../util/wmgenmenu.c:223 msgid "Purple Shades" msgstr "Dégradé d'améthyste foncé" #: ../../util/wmgenmenu.c:224 msgid "Wheat Shades" msgstr "Dégradé de bistre" #: ../../util/wmgenmenu.c:225 msgid "Grey Shades" msgstr "Dégradé d'anthracite" #: ../../util/wmgenmenu.c:226 msgid "Wine Shades" msgstr "Dégradé de bordeaux" #: ../../util/wmgenmenu.c:232 msgid "Images" msgstr "Images" #: ../../util/wmgenmenu.c:243 msgid "Save Theme" msgstr "Enregistrer le thème" #: ../../util/wmgenmenu.c:253 msgid "Save IconSet" msgstr "Enregistrer le jeu d'icônes" #: ../../util/wmgenmenu.c:264 msgid "Workspaces" msgstr "Bureaux" #. Root -> Workspace #: ../../util/wmgenmenu.c:271 msgid "Workspace" msgstr "Bureau" #: ../../util/wmgenmenu.c:273 msgid "Hide Others" msgstr "Cacher les autres" #: ../../util/wmgenmenu.c:281 msgid "Show All" msgstr "Tout montrer" #: ../../util/wmgenmenu.c:289 msgid "Arrange Icons" msgstr "Organiser les icônes" #: ../../util/wmgenmenu.c:297 msgid "Refresh" msgstr "Actualiser" #: ../../util/wmgenmenu.c:305 msgid "Save Session" msgstr "Enregistrer la session" #: ../../util/wmgenmenu.c:313 msgid "Clear Session" msgstr "Réinitialiser la session" #: ../../util/wmgenmenu.c:322 msgid "Configure Window Maker" msgstr "Configurer Window Maker" #: ../../util/wmgenmenu.c:331 msgid "Info Panel" msgstr "Panneau d'information" #: ../../util/wmgenmenu.c:339 msgid "Restart Window Maker" msgstr "Redémarrer Window Maker" #: ../../util/wmgenmenu.c:352 msgid "Lock Screen" msgstr "Verrouiller l'écran" #: ../../util/wmgenmenu.c:363 msgid "Exit Window Maker" msgstr "Quitter Window Maker" #: ../../util/wmgenmenu.c:458 #, c-format msgid "Start %s" msgstr "Lancer %s" #: ../../util/wmgenmenu.c:468 msgid "Other Window Managers" msgstr "Autres gestionnaires de fenêtres" #: ../../util/wmgenmenu.h:9 msgid "xterm" msgstr "" #: ../../util/wmgenmenu.h:10 msgid "mrxvt" msgstr "" #: ../../util/wmgenmenu.h:11 msgid "Konsole" msgstr "" #: ../../util/wmgenmenu.h:16 msgid "Dolphin" msgstr "" #: ../../util/wmgenmenu.h:17 msgid "Thunar" msgstr "" #: ../../util/wmgenmenu.h:18 msgid "ROX filer" msgstr "" #: ../../util/wmgenmenu.h:19 msgid "GWorkspace" msgstr "" #: ../../util/wmgenmenu.h:20 msgid "Midnight Commander" msgstr "" #: ../../util/wmgenmenu.h:21 msgid "XFTree" msgstr "" #: ../../util/wmgenmenu.h:22 ../../util/wmgenmenu.h:118 msgid "Konqueror" msgstr "" #: ../../util/wmgenmenu.h:23 msgid "Nautilus" msgstr "" #: ../../util/wmgenmenu.h:24 msgid "FSViewer" msgstr "" #: ../../util/wmgenmenu.h:25 msgid "Xfe" msgstr "" #: ../../util/wmgenmenu.h:30 msgid "Xmaxima" msgstr "" #: ../../util/wmgenmenu.h:31 msgid "Maxima" msgstr "" #: ../../util/wmgenmenu.h:32 msgid "Maple" msgstr "" #: ../../util/wmgenmenu.h:33 msgid "Scilab" msgstr "" #: ../../util/wmgenmenu.h:34 msgid "bc" msgstr "" #: ../../util/wmgenmenu.h:35 msgid "KCalc" msgstr "" #: ../../util/wmgenmenu.h:36 msgid "XCalc" msgstr "" #: ../../util/wmgenmenu.h:37 msgid "Mathematica" msgstr "" #: ../../util/wmgenmenu.h:38 msgid "Math" msgstr "" #. command-line Mathematica #: ../../util/wmgenmenu.h:39 msgid "Free42" msgstr "" #: ../../util/wmgenmenu.h:40 msgid "X48" msgstr "" #: ../../util/wmgenmenu.h:45 msgid "Xplns" msgstr "" #: ../../util/wmgenmenu.h:46 msgid "Stellarium" msgstr "" #: ../../util/wmgenmenu.h:51 msgid "GIMP" msgstr "" #: ../../util/wmgenmenu.h:52 msgid "Sodipodi" msgstr "" #: ../../util/wmgenmenu.h:53 msgid "Inkscape" msgstr "" #: ../../util/wmgenmenu.h:54 msgid "KIllustrator" msgstr "" #: ../../util/wmgenmenu.h:55 msgid "Krayon" msgstr "" #: ../../util/wmgenmenu.h:56 msgid "KPovModeler" msgstr "" #: ../../util/wmgenmenu.h:57 msgid "XBitmap" msgstr "" #: ../../util/wmgenmenu.h:58 msgid "XPaint" msgstr "" #: ../../util/wmgenmenu.h:59 msgid "XFig" msgstr "" #: ../../util/wmgenmenu.h:60 msgid "KPaint" msgstr "" #: ../../util/wmgenmenu.h:61 msgid "Blender" msgstr "" #: ../../util/wmgenmenu.h:62 msgid "KSnapshot" msgstr "" #: ../../util/wmgenmenu.h:63 msgid "GPhoto" msgstr "" #: ../../util/wmgenmenu.h:64 msgid "DigiKam" msgstr "" #: ../../util/wmgenmenu.h:65 msgid "Dia" msgstr "" #: ../../util/wmgenmenu.h:66 msgid "CompuPic" msgstr "" #: ../../util/wmgenmenu.h:67 msgid "GQview" msgstr "" #: ../../util/wmgenmenu.h:68 msgid "Geeqie" msgstr "" #: ../../util/wmgenmenu.h:69 msgid "KView" msgstr "" #: ../../util/wmgenmenu.h:70 msgid "Pixie" msgstr "" #: ../../util/wmgenmenu.h:71 msgid "ImageMagick Display" msgstr "" #: ../../util/wmgenmenu.h:72 msgid "XV" msgstr "" #: ../../util/wmgenmenu.h:73 msgid "Eye of GNOME" msgstr "" #: ../../util/wmgenmenu.h:74 msgid "Quick Image Viewer" msgstr "" #: ../../util/wmgenmenu.h:79 msgid "Audacious" msgstr "" #: ../../util/wmgenmenu.h:80 ../../util/wmgenmenu.h:216 msgid "Kaffeine" msgstr "" #: ../../util/wmgenmenu.h:81 msgid "Audacity" msgstr "" #: ../../util/wmgenmenu.h:82 msgid "Amarok" msgstr "" #: ../../util/wmgenmenu.h:83 msgid "XMMS" msgstr "" #: ../../util/wmgenmenu.h:84 msgid "K9Copy" msgstr "" #: ../../util/wmgenmenu.h:85 msgid "HandBrake" msgstr "" #: ../../util/wmgenmenu.h:86 msgid "OGMRip" msgstr "" #: ../../util/wmgenmenu.h:87 msgid "DVBcut" msgstr "" #: ../../util/wmgenmenu.h:88 msgid "AcidRip" msgstr "" #: ../../util/wmgenmenu.h:89 msgid "Avidemux" msgstr "" #: ../../util/wmgenmenu.h:90 msgid "GQmpeg" msgstr "" #: ../../util/wmgenmenu.h:91 msgid "Freeamp" msgstr "" #: ../../util/wmgenmenu.h:92 msgid "RealPlayer" msgstr "" #: ../../util/wmgenmenu.h:93 msgid "Mediathek" msgstr "" #: ../../util/wmgenmenu.h:94 msgid "KMid" msgstr "" #: ../../util/wmgenmenu.h:95 msgid "Kmidi" msgstr "" #: ../../util/wmgenmenu.h:96 msgid "Gtcd" msgstr "" #: ../../util/wmgenmenu.h:97 msgid "Grip" msgstr "" #: ../../util/wmgenmenu.h:98 msgid "AVIplay" msgstr "" #: ../../util/wmgenmenu.h:99 msgid "Gtv" msgstr "" #: ../../util/wmgenmenu.h:100 msgid "VLC" msgstr "" #: ../../util/wmgenmenu.h:101 msgid "Sinek" msgstr "" #: ../../util/wmgenmenu.h:102 msgid "xine" msgstr "" #: ../../util/wmgenmenu.h:103 msgid "aKtion" msgstr "" #: ../../util/wmgenmenu.h:104 msgid "Gcd" msgstr "" #: ../../util/wmgenmenu.h:105 msgid "XawTV" msgstr "" #: ../../util/wmgenmenu.h:106 msgid "X-CD-Roast" msgstr "" #: ../../util/wmgenmenu.h:107 msgid "XPlayCD" msgstr "" #: ../../util/wmgenmenu.h:112 ../../util/wmgenmenu.h:113 msgid "Chromium" msgstr "" #: ../../util/wmgenmenu.h:114 msgid "Google Chrome" msgstr "" #: ../../util/wmgenmenu.h:115 msgid "Mozilla Firefox" msgstr "" #: ../../util/wmgenmenu.h:116 msgid "Galeon" msgstr "" #: ../../util/wmgenmenu.h:117 msgid "SkipStone" msgstr "" #: ../../util/wmgenmenu.h:119 msgid "Dillo" msgstr "" #: ../../util/wmgenmenu.h:120 msgid "Epiphany" msgstr "" #: ../../util/wmgenmenu.h:121 msgid "Opera" msgstr "" #: ../../util/wmgenmenu.h:122 msgid "Midori" msgstr "" #: ../../util/wmgenmenu.h:123 msgid "Mozilla SeaMonkey" msgstr "" #: ../../util/wmgenmenu.h:124 msgid "Kazehakase" msgstr "" #: ../../util/wmgenmenu.h:125 msgid "Links" msgstr "" #: ../../util/wmgenmenu.h:126 msgid "Lynx" msgstr "" #: ../../util/wmgenmenu.h:127 msgid "W3M" msgstr "" #: ../../util/wmgenmenu.h:132 msgid "Mozilla Thunderbird" msgstr "" #: ../../util/wmgenmenu.h:133 msgid "Mutt" msgstr "" #: ../../util/wmgenmenu.h:134 msgid "GNUMail" msgstr "" #: ../../util/wmgenmenu.h:135 msgid "Evolution" msgstr "" #: ../../util/wmgenmenu.h:136 msgid "Kleopatra" msgstr "" #: ../../util/wmgenmenu.h:137 msgid "Sylpheed" msgstr "" #: ../../util/wmgenmenu.h:138 msgid "Spruce" msgstr "" #: ../../util/wmgenmenu.h:139 msgid "KMail" msgstr "" #: ../../util/wmgenmenu.h:140 msgid "Exmh" msgstr "" #: ../../util/wmgenmenu.h:141 msgid "Pine" msgstr "" #: ../../util/wmgenmenu.h:142 msgid "ELM" msgstr "" #: ../../util/wmgenmenu.h:143 msgid "Alpine" msgstr "" #: ../../util/wmgenmenu.h:148 msgid "soundKonverter" msgstr "" #: ../../util/wmgenmenu.h:149 msgid "Krecord" msgstr "" #: ../../util/wmgenmenu.h:150 msgid "Grecord" msgstr "" #: ../../util/wmgenmenu.h:151 msgid "ALSA mixer" msgstr "" #: ../../util/wmgenmenu.h:152 msgid "Sound configuration" msgstr "" #: ../../util/wmgenmenu.h:153 msgid "aumix" msgstr "" #: ../../util/wmgenmenu.h:154 msgid "Gmix" msgstr "" #: ../../util/wmgenmenu.h:159 msgid "XJed" msgstr "" #: ../../util/wmgenmenu.h:160 msgid "Jed" msgstr "" #: ../../util/wmgenmenu.h:161 msgid "Emacs" msgstr "" #: ../../util/wmgenmenu.h:162 msgid "XEmacs" msgstr "" #: ../../util/wmgenmenu.h:163 msgid "gVIM" msgstr "" #: ../../util/wmgenmenu.h:164 msgid "vi" msgstr "" #: ../../util/wmgenmenu.h:165 msgid "VIM" msgstr "" #: ../../util/wmgenmenu.h:166 msgid "gedit" msgstr "" #: ../../util/wmgenmenu.h:167 msgid "KEdit" msgstr "" #: ../../util/wmgenmenu.h:168 msgid "XEdit" msgstr "" #: ../../util/wmgenmenu.h:169 msgid "KWrite" msgstr "" #: ../../util/wmgenmenu.h:170 msgid "Kate" msgstr "" #: ../../util/wmgenmenu.h:171 msgid "Pico" msgstr "" #: ../../util/wmgenmenu.h:172 msgid "Nano" msgstr "" #: ../../util/wmgenmenu.h:173 msgid "Joe" msgstr "" #: ../../util/wmgenmenu.h:178 msgid "Omnia data" msgstr "" #: ../../util/wmgenmenu.h:179 msgid "Comix" msgstr "" #: ../../util/wmgenmenu.h:180 msgid "QComicBook" msgstr "" #: ../../util/wmgenmenu.h:185 msgid "Evince" msgstr "" #: ../../util/wmgenmenu.h:186 msgid "KGhostView" msgstr "" #: ../../util/wmgenmenu.h:187 msgid "gv" msgstr "" #: ../../util/wmgenmenu.h:188 msgid "GGv" msgstr "" #: ../../util/wmgenmenu.h:189 msgid "Xdvi" msgstr "" #: ../../util/wmgenmenu.h:190 msgid "KDVI" msgstr "" #: ../../util/wmgenmenu.h:191 msgid "Xpdf" msgstr "" #: ../../util/wmgenmenu.h:192 msgid "Adobe Reader" msgstr "" #: ../../util/wmgenmenu.h:193 msgid "Gless" msgstr "" #: ../../util/wmgenmenu.h:198 msgid "Google Desktop" msgstr "" #: ../../util/wmgenmenu.h:199 msgid "K3B" msgstr "" #: ../../util/wmgenmenu.h:200 msgid "gtkfind" msgstr "" #: ../../util/wmgenmenu.h:201 msgid "gdict" msgstr "" #: ../../util/wmgenmenu.h:202 msgid "gpsdrive" msgstr "" #: ../../util/wmgenmenu.h:203 msgid "wfcmgr" msgstr "" #: ../../util/wmgenmenu.h:204 msgid "switch" msgstr "" #: ../../util/wmgenmenu.h:205 msgid "kaddressbook" msgstr "" #: ../../util/wmgenmenu.h:206 msgid "kab" msgstr "" #: ../../util/wmgenmenu.h:207 msgid "kfind" msgstr "" #: ../../util/wmgenmenu.h:208 msgid "oclock" msgstr "" #: ../../util/wmgenmenu.h:209 msgid "rclock" msgstr "" #: ../../util/wmgenmenu.h:210 msgid "xclock" msgstr "" #: ../../util/wmgenmenu.h:211 msgid "kppp" msgstr "" #: ../../util/wmgenmenu.h:217 msgid "Ekiga" msgstr "" #: ../../util/wmgenmenu.h:222 msgid "Pidgin" msgstr "" #: ../../util/wmgenmenu.h:223 msgid "Skype" msgstr "" #: ../../util/wmgenmenu.h:224 msgid "Gizmo" msgstr "" #: ../../util/wmgenmenu.h:225 msgid "Kopete" msgstr "" #: ../../util/wmgenmenu.h:226 msgid "XChat" msgstr "" #: ../../util/wmgenmenu.h:227 msgid "KVIrc" msgstr "" #: ../../util/wmgenmenu.h:228 msgid "BitchX" msgstr "" #: ../../util/wmgenmenu.h:229 msgid "EPIC" msgstr "" #: ../../util/wmgenmenu.h:230 msgid "EPIC4" msgstr "" #: ../../util/wmgenmenu.h:231 msgid "Irssi" msgstr "" #: ../../util/wmgenmenu.h:232 msgid "TinyIRC" msgstr "" #: ../../util/wmgenmenu.h:233 msgid "Ksirc" msgstr "" #: ../../util/wmgenmenu.h:234 msgid "gtalk" msgstr "" #: ../../util/wmgenmenu.h:235 msgid "GnomeICU" msgstr "" #: ../../util/wmgenmenu.h:236 msgid "Licq" msgstr "" #: ../../util/wmgenmenu.h:237 msgid "aMSN" msgstr "" #: ../../util/wmgenmenu.h:242 msgid "aMule" msgstr "" #: ../../util/wmgenmenu.h:243 msgid "gFTP" msgstr "" #: ../../util/wmgenmenu.h:244 msgid "Smb4K" msgstr "" #: ../../util/wmgenmenu.h:245 msgid "KTorrent" msgstr "" #: ../../util/wmgenmenu.h:246 msgid "BitTorrent GUI" msgstr "" #: ../../util/wmgenmenu.h:247 msgid "ftp" msgstr "" #: ../../util/wmgenmenu.h:248 msgid "sftp" msgstr "" #: ../../util/wmgenmenu.h:249 msgid "Pavuk" msgstr "" #: ../../util/wmgenmenu.h:250 msgid "gtm" msgstr "" #: ../../util/wmgenmenu.h:251 msgid "Gnut" msgstr "" #: ../../util/wmgenmenu.h:252 msgid "GTK Gnutella" msgstr "" #: ../../util/wmgenmenu.h:253 msgid "Gnutmeg" msgstr "" #: ../../util/wmgenmenu.h:258 msgid "FlightGear Flight Simulator" msgstr "" #: ../../util/wmgenmenu.h:259 msgid "Tremulous" msgstr "" #: ../../util/wmgenmenu.h:260 msgid "XBoard" msgstr "" #: ../../util/wmgenmenu.h:261 msgid "GNOME Chess" msgstr "" #: ../../util/wmgenmenu.h:262 msgid "Quake 2" msgstr "" #: ../../util/wmgenmenu.h:263 msgid "Quake 3" msgstr "" #: ../../util/wmgenmenu.h:264 msgid "Quake 3: Urban Terror 2" msgstr "" #: ../../util/wmgenmenu.h:265 msgid "Soldier of Fortune" msgstr "" #: ../../util/wmgenmenu.h:266 msgid "Rune" msgstr "" #: ../../util/wmgenmenu.h:267 msgid "Tribes 2" msgstr "" #: ../../util/wmgenmenu.h:268 msgid "Unreal Tournament" msgstr "" #: ../../util/wmgenmenu.h:269 msgid "Descent 3" msgstr "" #: ../../util/wmgenmenu.h:270 msgid "Myth 2" msgstr "" #: ../../util/wmgenmenu.h:271 ../../util/wmgenmenu.h:272 msgid "Sauerbraten" msgstr "" #: ../../util/wmgenmenu.h:273 msgid "Railroad Tycoon 2" msgstr "" #: ../../util/wmgenmenu.h:274 msgid "Heretic 2" msgstr "" #: ../../util/wmgenmenu.h:275 msgid "Kohan" msgstr "" #: ../../util/wmgenmenu.h:276 msgid "XQF" msgstr "" #: ../../util/wmgenmenu.h:281 msgid "OpenOffice.org Writer" msgstr "" #: ../../util/wmgenmenu.h:282 msgid "OpenOffice.org Calc" msgstr "" #: ../../util/wmgenmenu.h:283 msgid "OpenOffice.org Draw" msgstr "" #: ../../util/wmgenmenu.h:284 msgid "OpenOffice.org Impress" msgstr "" #: ../../util/wmgenmenu.h:285 msgid "OpenOffice.org Math" msgstr "" #: ../../util/wmgenmenu.h:286 msgid "OpenOffice.org" msgstr "" #: ../../util/wmgenmenu.h:287 msgid "StarOffice Writer" msgstr "" #: ../../util/wmgenmenu.h:288 msgid "StarOffice Calc" msgstr "" #: ../../util/wmgenmenu.h:289 msgid "StarOffice Draw" msgstr "" #: ../../util/wmgenmenu.h:290 msgid "StarOffice Impress" msgstr "" #: ../../util/wmgenmenu.h:291 msgid "StarOffice Math" msgstr "" #: ../../util/wmgenmenu.h:292 msgid "StarOffice" msgstr "" #: ../../util/wmgenmenu.h:293 msgid "AbiWord" msgstr "" #: ../../util/wmgenmenu.h:294 msgid "KWord" msgstr "" #: ../../util/wmgenmenu.h:295 msgid "KPresenter" msgstr "" #: ../../util/wmgenmenu.h:296 msgid "KSpread" msgstr "" #: ../../util/wmgenmenu.h:297 msgid "KChart" msgstr "" #: ../../util/wmgenmenu.h:298 msgid "KOrganizer" msgstr "" #: ../../util/wmgenmenu.h:299 msgid "LyX" msgstr "" #: ../../util/wmgenmenu.h:300 msgid "Klyx" msgstr "" #: ../../util/wmgenmenu.h:301 msgid "GnuCash" msgstr "" #: ../../util/wmgenmenu.h:302 msgid "Gnumeric" msgstr "" #: ../../util/wmgenmenu.h:303 msgid "GnomeCal" msgstr "" #: ../../util/wmgenmenu.h:304 msgid "GnomeCard" msgstr "" #: ../../util/wmgenmenu.h:309 msgid "gitk" msgstr "" #: ../../util/wmgenmenu.h:310 msgid "gitview" msgstr "" #: ../../util/wmgenmenu.h:311 msgid "qgit" msgstr "" #: ../../util/wmgenmenu.h:312 msgid "git-gui" msgstr "" #: ../../util/wmgenmenu.h:313 msgid "glimmer" msgstr "" #: ../../util/wmgenmenu.h:314 msgid "glade" msgstr "" #: ../../util/wmgenmenu.h:315 msgid "kdevelop" msgstr "" #: ../../util/wmgenmenu.h:316 msgid "designer" msgstr "" #: ../../util/wmgenmenu.h:317 msgid "kbabel" msgstr "" #: ../../util/wmgenmenu.h:318 msgid "idle" msgstr "" #: ../../util/wmgenmenu.h:319 msgid "ghex" msgstr "" #: ../../util/wmgenmenu.h:320 msgid "hexedit" msgstr "" #: ../../util/wmgenmenu.h:321 msgid "memprof" msgstr "" #: ../../util/wmgenmenu.h:322 msgid "tclsh" msgstr "" #: ../../util/wmgenmenu.h:323 msgid "gdb" msgstr "" #: ../../util/wmgenmenu.h:324 msgid "xxgdb" msgstr "" #: ../../util/wmgenmenu.h:325 msgid "xev" msgstr "" #: ../../util/wmgenmenu.h:330 msgid "Iotop" msgstr "" #: ../../util/wmgenmenu.h:331 msgid "Iostat" msgstr "" #: ../../util/wmgenmenu.h:332 msgid "keybconf" msgstr "" #: ../../util/wmgenmenu.h:333 msgid "GNOME System Monitor" msgstr "" #: ../../util/wmgenmenu.h:334 msgid "top" msgstr "" #: ../../util/wmgenmenu.h:335 msgid "KDE Process Monitor" msgstr "" #: ../../util/wmgenmenu.h:336 msgid "gw" msgstr "" #: ../../util/wmgenmenu.h:337 msgid "GNOME Control Center" msgstr "" #: ../../util/wmgenmenu.h:338 msgid "GKrellM" msgstr "" #: ../../util/wmgenmenu.h:339 msgid "tksysv" msgstr "" #: ../../util/wmgenmenu.h:340 msgid "ksysv" msgstr "" #: ../../util/wmgenmenu.h:341 msgid "GNOME PPP" msgstr "" #: ../../util/wmgenmenu.h:346 msgid "YaST 2" msgstr "" #: ../../util/wmgenmenu.h:347 msgid "YaST" msgstr "" #: ../../util/wmgenmenu.h:348 msgid "System Settings" msgstr "" #: ../../util/wmgenmenu.h:349 msgid "UMTSMon" msgstr "" #: ../../util/wmgenmenu.h:354 msgid "DrakNetCenter" msgstr "" #: ../../util/wmgenmenu.h:355 msgid "RPMDrake" msgstr "" #: ../../util/wmgenmenu.h:356 msgid "HardDrake" msgstr "" #: ../../util/wmgenmenu.h:357 msgid "DrakConf" msgstr "" #: ../../util/wmgenmenu.h:358 msgid "MandrakeUpdate" msgstr "" #: ../../util/wmgenmenu.h:359 msgid "XDrakRes" msgstr "" #: ../../util/wmgenmenu.h:364 msgid "Docker" msgstr "" #: ../../util/wmgenmenu.h:365 msgid "Net" msgstr "" #: ../../util/wmgenmenu.h:366 ../../util/wmgenmenu.h:387 msgid "Power" msgstr "" #: ../../util/wmgenmenu.h:367 msgid "Laptop" msgstr "" #: ../../util/wmgenmenu.h:368 msgid "WiFi" msgstr "" #: ../../util/wmgenmenu.h:369 msgid "Interface Info" msgstr "" #: ../../util/wmgenmenu.h:370 ../../util/wmgenmenu.h:373 msgid "Weather" msgstr "" #: ../../util/wmgenmenu.h:371 msgid "Sticky Notes" msgstr "" #: ../../util/wmgenmenu.h:372 msgid "Mixer" msgstr "" #: ../../util/wmgenmenu.h:374 msgid "CPU Load" msgstr "" #: ../../util/wmgenmenu.h:375 msgid "CPU Freq" msgstr "" #: ../../util/wmgenmenu.h:376 msgid "Clock Mon" msgstr "" #: ../../util/wmgenmenu.h:377 msgid "Network Devices" msgstr "" #: ../../util/wmgenmenu.h:378 msgid "Calendar & Clock" msgstr "" #: ../../util/wmgenmenu.h:379 msgid "Time" msgstr "" #: ../../util/wmgenmenu.h:380 msgid "Date" msgstr "" #: ../../util/wmgenmenu.h:381 ../../util/wmgenmenu.h:382 msgid "System Monitor" msgstr "" #: ../../util/wmgenmenu.h:383 msgid "SMP Monitor" msgstr "" #: ../../util/wmgenmenu.h:384 msgid "Interfaces" msgstr "" #: ../../util/wmgenmenu.h:385 msgid "Button" msgstr "" #: ../../util/wmgenmenu.h:386 msgid "xmms" msgstr "" #: ../../util/wmgenmenu.h:388 msgid "Magnify" msgstr "" #: ../../util/wmgenmenu.h:393 msgid "IceWM" msgstr "" #: ../../util/wmgenmenu.h:394 msgid "KWin" msgstr "" #: ../../util/wmgenmenu.h:395 msgid "twm" msgstr "" #: ../../util/wmgenmenu.h:396 msgid "Fluxbox" msgstr "" #: ../../util/wmgenmenu.h:397 msgid "Blackbox" msgstr "" #: ../../util/wmgenmenu.h:398 msgid "Ion" msgstr "" #: ../../util/wmgenmenu.h:399 msgid "Motif Window Manager" msgstr "" #: ../../util/wmgenmenu.h:400 msgid "FVWM" msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/po/pt.po��������������������������������������������������������������������0000755�0001750�0001750�00000053731�12214432632�013353� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wmgenmenu Portuguese translation # Copyright (C) 2012 Leandro Vital # This file is distributed under the same license as the Window Maker package. # Leandro Vital<leandro.vital@yahoo.com.br>, 2012. # msgid "" msgstr "" "Project-Id-Version: wmgenmenu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-10 00:04+0100\n" "PO-Revision-Date: 2011-02-05 12:19-0500\n" "Last-Translator: Leandro Vital <leandro.vital@yahoo.com.br>\n" "Language-Team: Portuguese\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Root -> Applications #: ../../util/wmgenmenu.c:103 msgid "Applications" msgstr "Aplicativos" #. Root -> Applications -> <category> #: ../../util/wmgenmenu.c:106 msgid "Terminals" msgstr "Terminais" #. always keep terminals the top item #: ../../util/wmgenmenu.c:107 msgid "Internet" msgstr "Internet" #: ../../util/wmgenmenu.c:108 msgid "Email" msgstr "Email" #: ../../util/wmgenmenu.c:109 msgid "Mathematics" msgstr "Matemática" #: ../../util/wmgenmenu.c:110 msgid "File Managers" msgstr "Gerenciadores de arquivos" #: ../../util/wmgenmenu.c:111 msgid "Graphics" msgstr "Gráficos" #: ../../util/wmgenmenu.c:112 msgid "Multimedia" msgstr "Multimídia" #: ../../util/wmgenmenu.c:113 msgid "Editors" msgstr "Editores" #: ../../util/wmgenmenu.c:114 msgid "Development" msgstr "Desenvolvimento" #: ../../util/wmgenmenu.c:116 msgid "Office" msgstr "Suítes Office" #: ../../util/wmgenmenu.c:117 msgid "Astronomy" msgstr "Astronomía" #: ../../util/wmgenmenu.c:118 msgid "Sound" msgstr "Som" #: ../../util/wmgenmenu.c:119 msgid "Comics" msgstr "Revistas em quadrinhos" #: ../../util/wmgenmenu.c:120 msgid "Viewers" msgstr "Visualizadores" #: ../../util/wmgenmenu.c:121 msgid "Utilities" msgstr "Utilitários" #: ../../util/wmgenmenu.c:122 msgid "System" msgstr "Sistema" #: ../../util/wmgenmenu.c:123 msgid "Video" msgstr "Video" #: ../../util/wmgenmenu.c:124 msgid "Chat and Talk" msgstr "Bate-papo" #: ../../util/wmgenmenu.c:125 msgid "P2P Network" msgstr "Redes P2P" #: ../../util/wmgenmenu.c:126 msgid "Games" msgstr "Jogos" #: ../../util/wmgenmenu.c:134 msgid "Run..." msgstr "Executar..." #: ../../util/wmgenmenu.c:136 #, c-format msgid "%A(Run, Type command:)" msgstr "%A(Executar, digite o comando:)" #. Root -> Appearance #: ../../util/wmgenmenu.c:142 msgid "Appearance" msgstr "Aparência" #: ../../util/wmgenmenu.c:146 msgid "Themes" msgstr "Temas" #: ../../util/wmgenmenu.c:155 msgid "Styles" msgstr "Estilos" #: ../../util/wmgenmenu.c:164 msgid "Icon Sets" msgstr "Ãcones" #. Root -> Appearance -> Background #: ../../util/wmgenmenu.c:172 msgid "Background" msgstr "Plano de fundo" #. Root -> Appearance -> Background -> Solid #: ../../util/wmgenmenu.c:175 msgid "Solid" msgstr "Sólido" #. Root -> Appearance -> Background -> Solid -> <color> #: ../../util/wmgenmenu.c:187 msgid "Black" msgstr "Preto" #: ../../util/wmgenmenu.c:188 msgid "Blue" msgstr "Ametista escuro" #: ../../util/wmgenmenu.c:189 msgid "Indigo" msgstr "Anil" #: ../../util/wmgenmenu.c:190 msgid "Bluemarine" msgstr "Turquesa" #: ../../util/wmgenmenu.c:191 msgid "Purple" msgstr "Púrpura" #: ../../util/wmgenmenu.c:192 msgid "Wheat" msgstr "Pardo" #: ../../util/wmgenmenu.c:193 msgid "Dark Gray" msgstr "Cinza escuro" #: ../../util/wmgenmenu.c:194 msgid "Wine" msgstr "Vinho" #. Root -> Appearance -> Background -> Gradient #: ../../util/wmgenmenu.c:199 msgid "Gradient" msgstr "Degradê" #: ../../util/wmgenmenu.c:213 msgid "Sunset" msgstr "Pôr do sol" #: ../../util/wmgenmenu.c:220 msgid "Sky" msgstr "Céu" #: ../../util/wmgenmenu.c:221 msgid "Blue Shades" msgstr "Ametista escuro" #: ../../util/wmgenmenu.c:222 msgid "Indigo Shades" msgstr "Anil" #: ../../util/wmgenmenu.c:223 msgid "Purple Shades" msgstr "Púrpura" #: ../../util/wmgenmenu.c:224 msgid "Wheat Shades" msgstr "Pardo" #: ../../util/wmgenmenu.c:225 msgid "Grey Shades" msgstr "Cinza Escuro" #: ../../util/wmgenmenu.c:226 msgid "Wine Shades" msgstr "Vinho" #: ../../util/wmgenmenu.c:232 msgid "Images" msgstr "Imagens" #: ../../util/wmgenmenu.c:243 msgid "Save Theme" msgstr "Salvar tema" #: ../../util/wmgenmenu.c:253 msgid "Save IconSet" msgstr "Salvar ícones" #: ../../util/wmgenmenu.c:264 msgid "Workspaces" msgstr "Ãreas de trabalho" #. Root -> Workspace #: ../../util/wmgenmenu.c:271 msgid "Workspace" msgstr "Ãrea de trabalho" #: ../../util/wmgenmenu.c:273 msgid "Hide Others" msgstr "Minimizar janelas" #: ../../util/wmgenmenu.c:281 msgid "Show All" msgstr "Maximizar janelas" #: ../../util/wmgenmenu.c:289 msgid "Arrange Icons" msgstr "Organizar ícones" #: ../../util/wmgenmenu.c:297 msgid "Refresh" msgstr "Atualizar" #: ../../util/wmgenmenu.c:305 msgid "Save Session" msgstr "Salvar sessão" #: ../../util/wmgenmenu.c:313 msgid "Clear Session" msgstr "Reiniciar sessão" #: ../../util/wmgenmenu.c:322 msgid "Configure Window Maker" msgstr "Configurar WindowMaker" #: ../../util/wmgenmenu.c:331 msgid "Info Panel" msgstr "Painel de informações" #: ../../util/wmgenmenu.c:339 msgid "Restart Window Maker" msgstr "Reiniciar Window Maker" #: ../../util/wmgenmenu.c:352 msgid "Lock Screen" msgstr "Bloquear sessão" #: ../../util/wmgenmenu.c:363 msgid "Exit Window Maker" msgstr "Sair do Window Maker" #: ../../util/wmgenmenu.c:458 #, c-format msgid "Start %s" msgstr "Iniciar %s" #: ../../util/wmgenmenu.c:468 msgid "Other Window Managers" msgstr "Gerenciadores de janela" #: ../../util/wmgenmenu.h:9 msgid "xterm" msgstr "" #: ../../util/wmgenmenu.h:10 msgid "mrxvt" msgstr "" #: ../../util/wmgenmenu.h:11 msgid "Konsole" msgstr "" #: ../../util/wmgenmenu.h:16 msgid "Dolphin" msgstr "" #: ../../util/wmgenmenu.h:17 msgid "Thunar" msgstr "" #: ../../util/wmgenmenu.h:18 msgid "ROX filer" msgstr "" #: ../../util/wmgenmenu.h:19 msgid "GWorkspace" msgstr "" #: ../../util/wmgenmenu.h:20 msgid "Midnight Commander" msgstr "" #: ../../util/wmgenmenu.h:21 msgid "XFTree" msgstr "" #: ../../util/wmgenmenu.h:22 ../../util/wmgenmenu.h:118 msgid "Konqueror" msgstr "" #: ../../util/wmgenmenu.h:23 msgid "Nautilus" msgstr "" #: ../../util/wmgenmenu.h:24 msgid "FSViewer" msgstr "" #: ../../util/wmgenmenu.h:25 msgid "Xfe" msgstr "" #: ../../util/wmgenmenu.h:30 msgid "Xmaxima" msgstr "" #: ../../util/wmgenmenu.h:31 msgid "Maxima" msgstr "" #: ../../util/wmgenmenu.h:32 msgid "Maple" msgstr "" #: ../../util/wmgenmenu.h:33 msgid "Scilab" msgstr "" #: ../../util/wmgenmenu.h:34 msgid "bc" msgstr "" #: ../../util/wmgenmenu.h:35 msgid "KCalc" msgstr "" #: ../../util/wmgenmenu.h:36 msgid "XCalc" msgstr "" #: ../../util/wmgenmenu.h:37 msgid "Mathematica" msgstr "" #: ../../util/wmgenmenu.h:38 msgid "Math" msgstr "" #. command-line Mathematica #: ../../util/wmgenmenu.h:39 msgid "Free42" msgstr "" #: ../../util/wmgenmenu.h:40 msgid "X48" msgstr "" #: ../../util/wmgenmenu.h:45 msgid "Xplns" msgstr "" #: ../../util/wmgenmenu.h:46 msgid "Stellarium" msgstr "" #: ../../util/wmgenmenu.h:51 msgid "GIMP" msgstr "" #: ../../util/wmgenmenu.h:52 msgid "Sodipodi" msgstr "" #: ../../util/wmgenmenu.h:53 msgid "Inkscape" msgstr "" #: ../../util/wmgenmenu.h:54 msgid "KIllustrator" msgstr "" #: ../../util/wmgenmenu.h:55 msgid "Krayon" msgstr "" #: ../../util/wmgenmenu.h:56 msgid "KPovModeler" msgstr "" #: ../../util/wmgenmenu.h:57 msgid "XBitmap" msgstr "" #: ../../util/wmgenmenu.h:58 msgid "XPaint" msgstr "" #: ../../util/wmgenmenu.h:59 msgid "XFig" msgstr "" #: ../../util/wmgenmenu.h:60 msgid "KPaint" msgstr "" #: ../../util/wmgenmenu.h:61 msgid "Blender" msgstr "" #: ../../util/wmgenmenu.h:62 msgid "KSnapshot" msgstr "" #: ../../util/wmgenmenu.h:63 msgid "GPhoto" msgstr "" #: ../../util/wmgenmenu.h:64 msgid "DigiKam" msgstr "" #: ../../util/wmgenmenu.h:65 msgid "Dia" msgstr "" #: ../../util/wmgenmenu.h:66 msgid "CompuPic" msgstr "" #: ../../util/wmgenmenu.h:67 msgid "GQview" msgstr "" #: ../../util/wmgenmenu.h:68 msgid "Geeqie" msgstr "" #: ../../util/wmgenmenu.h:69 msgid "KView" msgstr "" #: ../../util/wmgenmenu.h:70 msgid "Pixie" msgstr "" #: ../../util/wmgenmenu.h:71 msgid "ImageMagick Display" msgstr "" #: ../../util/wmgenmenu.h:72 msgid "XV" msgstr "" #: ../../util/wmgenmenu.h:73 msgid "Eye of GNOME" msgstr "" #: ../../util/wmgenmenu.h:74 msgid "Quick Image Viewer" msgstr "" #: ../../util/wmgenmenu.h:79 msgid "Audacious" msgstr "" #: ../../util/wmgenmenu.h:80 ../../util/wmgenmenu.h:216 msgid "Kaffeine" msgstr "" #: ../../util/wmgenmenu.h:81 msgid "Audacity" msgstr "" #: ../../util/wmgenmenu.h:82 msgid "Amarok" msgstr "" #: ../../util/wmgenmenu.h:83 msgid "XMMS" msgstr "" #: ../../util/wmgenmenu.h:84 msgid "K9Copy" msgstr "" #: ../../util/wmgenmenu.h:85 msgid "HandBrake" msgstr "" #: ../../util/wmgenmenu.h:86 msgid "OGMRip" msgstr "" #: ../../util/wmgenmenu.h:87 msgid "DVBcut" msgstr "" #: ../../util/wmgenmenu.h:88 msgid "AcidRip" msgstr "" #: ../../util/wmgenmenu.h:89 msgid "Avidemux" msgstr "" #: ../../util/wmgenmenu.h:90 msgid "GQmpeg" msgstr "" #: ../../util/wmgenmenu.h:91 msgid "Freeamp" msgstr "" #: ../../util/wmgenmenu.h:92 msgid "RealPlayer" msgstr "" #: ../../util/wmgenmenu.h:93 msgid "Mediathek" msgstr "" #: ../../util/wmgenmenu.h:94 msgid "KMid" msgstr "" #: ../../util/wmgenmenu.h:95 msgid "Kmidi" msgstr "" #: ../../util/wmgenmenu.h:96 msgid "Gtcd" msgstr "" #: ../../util/wmgenmenu.h:97 msgid "Grip" msgstr "" #: ../../util/wmgenmenu.h:98 msgid "AVIplay" msgstr "" #: ../../util/wmgenmenu.h:99 msgid "Gtv" msgstr "" #: ../../util/wmgenmenu.h:100 msgid "VLC" msgstr "" #: ../../util/wmgenmenu.h:101 msgid "Sinek" msgstr "" #: ../../util/wmgenmenu.h:102 msgid "xine" msgstr "" #: ../../util/wmgenmenu.h:103 msgid "aKtion" msgstr "" #: ../../util/wmgenmenu.h:104 msgid "Gcd" msgstr "" #: ../../util/wmgenmenu.h:105 msgid "XawTV" msgstr "" #: ../../util/wmgenmenu.h:106 msgid "X-CD-Roast" msgstr "" #: ../../util/wmgenmenu.h:107 msgid "XPlayCD" msgstr "" #: ../../util/wmgenmenu.h:112 ../../util/wmgenmenu.h:113 msgid "Chromium" msgstr "" #: ../../util/wmgenmenu.h:114 msgid "Google Chrome" msgstr "" #: ../../util/wmgenmenu.h:115 msgid "Mozilla Firefox" msgstr "" #: ../../util/wmgenmenu.h:116 msgid "Galeon" msgstr "" #: ../../util/wmgenmenu.h:117 msgid "SkipStone" msgstr "" #: ../../util/wmgenmenu.h:119 msgid "Dillo" msgstr "" #: ../../util/wmgenmenu.h:120 msgid "Epiphany" msgstr "" #: ../../util/wmgenmenu.h:121 msgid "Opera" msgstr "" #: ../../util/wmgenmenu.h:122 msgid "Midori" msgstr "" #: ../../util/wmgenmenu.h:123 msgid "Mozilla SeaMonkey" msgstr "" #: ../../util/wmgenmenu.h:124 msgid "Kazehakase" msgstr "" #: ../../util/wmgenmenu.h:125 msgid "Links" msgstr "" #: ../../util/wmgenmenu.h:126 msgid "Lynx" msgstr "" #: ../../util/wmgenmenu.h:127 msgid "W3M" msgstr "" #: ../../util/wmgenmenu.h:132 msgid "Mozilla Thunderbird" msgstr "" #: ../../util/wmgenmenu.h:133 msgid "Mutt" msgstr "" #: ../../util/wmgenmenu.h:134 msgid "GNUMail" msgstr "" #: ../../util/wmgenmenu.h:135 msgid "Evolution" msgstr "" #: ../../util/wmgenmenu.h:136 msgid "Kleopatra" msgstr "" #: ../../util/wmgenmenu.h:137 msgid "Sylpheed" msgstr "" #: ../../util/wmgenmenu.h:138 msgid "Spruce" msgstr "" #: ../../util/wmgenmenu.h:139 msgid "KMail" msgstr "" #: ../../util/wmgenmenu.h:140 msgid "Exmh" msgstr "" #: ../../util/wmgenmenu.h:141 msgid "Pine" msgstr "" #: ../../util/wmgenmenu.h:142 msgid "ELM" msgstr "" #: ../../util/wmgenmenu.h:143 msgid "Alpine" msgstr "" #: ../../util/wmgenmenu.h:148 msgid "soundKonverter" msgstr "" #: ../../util/wmgenmenu.h:149 msgid "Krecord" msgstr "" #: ../../util/wmgenmenu.h:150 msgid "Grecord" msgstr "" #: ../../util/wmgenmenu.h:151 msgid "ALSA mixer" msgstr "" #: ../../util/wmgenmenu.h:152 msgid "Sound configuration" msgstr "" #: ../../util/wmgenmenu.h:153 msgid "aumix" msgstr "" #: ../../util/wmgenmenu.h:154 msgid "Gmix" msgstr "" #: ../../util/wmgenmenu.h:159 msgid "XJed" msgstr "" #: ../../util/wmgenmenu.h:160 msgid "Jed" msgstr "" #: ../../util/wmgenmenu.h:161 msgid "Emacs" msgstr "" #: ../../util/wmgenmenu.h:162 msgid "XEmacs" msgstr "" #: ../../util/wmgenmenu.h:163 msgid "gVIM" msgstr "" #: ../../util/wmgenmenu.h:164 msgid "vi" msgstr "" #: ../../util/wmgenmenu.h:165 msgid "VIM" msgstr "" #: ../../util/wmgenmenu.h:166 msgid "gedit" msgstr "" #: ../../util/wmgenmenu.h:167 msgid "KEdit" msgstr "" #: ../../util/wmgenmenu.h:168 msgid "XEdit" msgstr "" #: ../../util/wmgenmenu.h:169 msgid "KWrite" msgstr "" #: ../../util/wmgenmenu.h:170 msgid "Kate" msgstr "" #: ../../util/wmgenmenu.h:171 msgid "Pico" msgstr "" #: ../../util/wmgenmenu.h:172 msgid "Nano" msgstr "" #: ../../util/wmgenmenu.h:173 msgid "Joe" msgstr "" #: ../../util/wmgenmenu.h:178 msgid "Omnia data" msgstr "" #: ../../util/wmgenmenu.h:179 msgid "Comix" msgstr "" #: ../../util/wmgenmenu.h:180 msgid "QComicBook" msgstr "" #: ../../util/wmgenmenu.h:185 msgid "Evince" msgstr "" #: ../../util/wmgenmenu.h:186 msgid "KGhostView" msgstr "" #: ../../util/wmgenmenu.h:187 msgid "gv" msgstr "" #: ../../util/wmgenmenu.h:188 msgid "GGv" msgstr "" #: ../../util/wmgenmenu.h:189 msgid "Xdvi" msgstr "" #: ../../util/wmgenmenu.h:190 msgid "KDVI" msgstr "" #: ../../util/wmgenmenu.h:191 msgid "Xpdf" msgstr "" #: ../../util/wmgenmenu.h:192 msgid "Adobe Reader" msgstr "" #: ../../util/wmgenmenu.h:193 msgid "Gless" msgstr "" #: ../../util/wmgenmenu.h:198 msgid "Google Desktop" msgstr "" #: ../../util/wmgenmenu.h:199 msgid "K3B" msgstr "" #: ../../util/wmgenmenu.h:200 msgid "gtkfind" msgstr "" #: ../../util/wmgenmenu.h:201 msgid "gdict" msgstr "" #: ../../util/wmgenmenu.h:202 msgid "gpsdrive" msgstr "" #: ../../util/wmgenmenu.h:203 msgid "wfcmgr" msgstr "" #: ../../util/wmgenmenu.h:204 msgid "switch" msgstr "" #: ../../util/wmgenmenu.h:205 msgid "kaddressbook" msgstr "" #: ../../util/wmgenmenu.h:206 msgid "kab" msgstr "" #: ../../util/wmgenmenu.h:207 msgid "kfind" msgstr "" #: ../../util/wmgenmenu.h:208 msgid "oclock" msgstr "" #: ../../util/wmgenmenu.h:209 msgid "rclock" msgstr "" #: ../../util/wmgenmenu.h:210 msgid "xclock" msgstr "" #: ../../util/wmgenmenu.h:211 msgid "kppp" msgstr "" #: ../../util/wmgenmenu.h:217 msgid "Ekiga" msgstr "" #: ../../util/wmgenmenu.h:222 msgid "Pidgin" msgstr "" #: ../../util/wmgenmenu.h:223 msgid "Skype" msgstr "" #: ../../util/wmgenmenu.h:224 msgid "Gizmo" msgstr "" #: ../../util/wmgenmenu.h:225 msgid "Kopete" msgstr "" #: ../../util/wmgenmenu.h:226 msgid "XChat" msgstr "" #: ../../util/wmgenmenu.h:227 msgid "KVIrc" msgstr "" #: ../../util/wmgenmenu.h:228 msgid "BitchX" msgstr "" #: ../../util/wmgenmenu.h:229 msgid "EPIC" msgstr "" #: ../../util/wmgenmenu.h:230 msgid "EPIC4" msgstr "" #: ../../util/wmgenmenu.h:231 msgid "Irssi" msgstr "" #: ../../util/wmgenmenu.h:232 msgid "TinyIRC" msgstr "" #: ../../util/wmgenmenu.h:233 msgid "Ksirc" msgstr "" #: ../../util/wmgenmenu.h:234 msgid "gtalk" msgstr "" #: ../../util/wmgenmenu.h:235 msgid "GnomeICU" msgstr "" #: ../../util/wmgenmenu.h:236 msgid "Licq" msgstr "" #: ../../util/wmgenmenu.h:237 msgid "aMSN" msgstr "" #: ../../util/wmgenmenu.h:242 msgid "aMule" msgstr "" #: ../../util/wmgenmenu.h:243 msgid "gFTP" msgstr "" #: ../../util/wmgenmenu.h:244 msgid "Smb4K" msgstr "" #: ../../util/wmgenmenu.h:245 msgid "KTorrent" msgstr "" #: ../../util/wmgenmenu.h:246 msgid "BitTorrent GUI" msgstr "" #: ../../util/wmgenmenu.h:247 msgid "ftp" msgstr "" #: ../../util/wmgenmenu.h:248 msgid "sftp" msgstr "" #: ../../util/wmgenmenu.h:249 msgid "Pavuk" msgstr "" #: ../../util/wmgenmenu.h:250 msgid "gtm" msgstr "" #: ../../util/wmgenmenu.h:251 msgid "Gnut" msgstr "" #: ../../util/wmgenmenu.h:252 msgid "GTK Gnutella" msgstr "" #: ../../util/wmgenmenu.h:253 msgid "Gnutmeg" msgstr "" #: ../../util/wmgenmenu.h:258 msgid "FlightGear Flight Simulator" msgstr "" #: ../../util/wmgenmenu.h:259 msgid "Tremulous" msgstr "" #: ../../util/wmgenmenu.h:260 msgid "XBoard" msgstr "" #: ../../util/wmgenmenu.h:261 msgid "GNOME Chess" msgstr "" #: ../../util/wmgenmenu.h:262 msgid "Quake 2" msgstr "" #: ../../util/wmgenmenu.h:263 msgid "Quake 3" msgstr "" #: ../../util/wmgenmenu.h:264 msgid "Quake 3: Urban Terror 2" msgstr "" #: ../../util/wmgenmenu.h:265 msgid "Soldier of Fortune" msgstr "" #: ../../util/wmgenmenu.h:266 msgid "Rune" msgstr "" #: ../../util/wmgenmenu.h:267 msgid "Tribes 2" msgstr "" #: ../../util/wmgenmenu.h:268 msgid "Unreal Tournament" msgstr "" #: ../../util/wmgenmenu.h:269 msgid "Descent 3" msgstr "" #: ../../util/wmgenmenu.h:270 msgid "Myth 2" msgstr "" #: ../../util/wmgenmenu.h:271 ../../util/wmgenmenu.h:272 msgid "Sauerbraten" msgstr "" #: ../../util/wmgenmenu.h:273 msgid "Railroad Tycoon 2" msgstr "" #: ../../util/wmgenmenu.h:274 msgid "Heretic 2" msgstr "" #: ../../util/wmgenmenu.h:275 msgid "Kohan" msgstr "" #: ../../util/wmgenmenu.h:276 msgid "XQF" msgstr "" #: ../../util/wmgenmenu.h:281 msgid "OpenOffice.org Writer" msgstr "" #: ../../util/wmgenmenu.h:282 msgid "OpenOffice.org Calc" msgstr "" #: ../../util/wmgenmenu.h:283 msgid "OpenOffice.org Draw" msgstr "" #: ../../util/wmgenmenu.h:284 msgid "OpenOffice.org Impress" msgstr "" #: ../../util/wmgenmenu.h:285 msgid "OpenOffice.org Math" msgstr "" #: ../../util/wmgenmenu.h:286 msgid "OpenOffice.org" msgstr "" #: ../../util/wmgenmenu.h:287 msgid "StarOffice Writer" msgstr "" #: ../../util/wmgenmenu.h:288 msgid "StarOffice Calc" msgstr "" #: ../../util/wmgenmenu.h:289 msgid "StarOffice Draw" msgstr "" #: ../../util/wmgenmenu.h:290 msgid "StarOffice Impress" msgstr "" #: ../../util/wmgenmenu.h:291 msgid "StarOffice Math" msgstr "" #: ../../util/wmgenmenu.h:292 msgid "StarOffice" msgstr "" #: ../../util/wmgenmenu.h:293 msgid "AbiWord" msgstr "" #: ../../util/wmgenmenu.h:294 msgid "KWord" msgstr "" #: ../../util/wmgenmenu.h:295 msgid "KPresenter" msgstr "" #: ../../util/wmgenmenu.h:296 msgid "KSpread" msgstr "" #: ../../util/wmgenmenu.h:297 msgid "KChart" msgstr "" #: ../../util/wmgenmenu.h:298 msgid "KOrganizer" msgstr "" #: ../../util/wmgenmenu.h:299 msgid "LyX" msgstr "" #: ../../util/wmgenmenu.h:300 msgid "Klyx" msgstr "" #: ../../util/wmgenmenu.h:301 msgid "GnuCash" msgstr "" #: ../../util/wmgenmenu.h:302 msgid "Gnumeric" msgstr "" #: ../../util/wmgenmenu.h:303 msgid "GnomeCal" msgstr "" #: ../../util/wmgenmenu.h:304 msgid "GnomeCard" msgstr "" #: ../../util/wmgenmenu.h:309 msgid "gitk" msgstr "" #: ../../util/wmgenmenu.h:310 msgid "gitview" msgstr "" #: ../../util/wmgenmenu.h:311 msgid "qgit" msgstr "" #: ../../util/wmgenmenu.h:312 msgid "git-gui" msgstr "" #: ../../util/wmgenmenu.h:313 msgid "glimmer" msgstr "" #: ../../util/wmgenmenu.h:314 msgid "glade" msgstr "" #: ../../util/wmgenmenu.h:315 msgid "kdevelop" msgstr "" #: ../../util/wmgenmenu.h:316 msgid "designer" msgstr "" #: ../../util/wmgenmenu.h:317 msgid "kbabel" msgstr "" #: ../../util/wmgenmenu.h:318 msgid "idle" msgstr "" #: ../../util/wmgenmenu.h:319 msgid "ghex" msgstr "" #: ../../util/wmgenmenu.h:320 msgid "hexedit" msgstr "" #: ../../util/wmgenmenu.h:321 msgid "memprof" msgstr "" #: ../../util/wmgenmenu.h:322 msgid "tclsh" msgstr "" #: ../../util/wmgenmenu.h:323 msgid "gdb" msgstr "" #: ../../util/wmgenmenu.h:324 msgid "xxgdb" msgstr "" #: ../../util/wmgenmenu.h:325 msgid "xev" msgstr "" #: ../../util/wmgenmenu.h:330 msgid "Iotop" msgstr "" #: ../../util/wmgenmenu.h:331 msgid "Iostat" msgstr "" #: ../../util/wmgenmenu.h:332 msgid "keybconf" msgstr "" #: ../../util/wmgenmenu.h:333 msgid "GNOME System Monitor" msgstr "" #: ../../util/wmgenmenu.h:334 msgid "top" msgstr "" #: ../../util/wmgenmenu.h:335 msgid "KDE Process Monitor" msgstr "" #: ../../util/wmgenmenu.h:336 msgid "gw" msgstr "" #: ../../util/wmgenmenu.h:337 msgid "GNOME Control Center" msgstr "" #: ../../util/wmgenmenu.h:338 msgid "GKrellM" msgstr "" #: ../../util/wmgenmenu.h:339 msgid "tksysv" msgstr "" #: ../../util/wmgenmenu.h:340 msgid "ksysv" msgstr "" #: ../../util/wmgenmenu.h:341 msgid "GNOME PPP" msgstr "" #: ../../util/wmgenmenu.h:346 msgid "YaST 2" msgstr "" #: ../../util/wmgenmenu.h:347 msgid "YaST" msgstr "" #: ../../util/wmgenmenu.h:348 msgid "System Settings" msgstr "" #: ../../util/wmgenmenu.h:349 msgid "UMTSMon" msgstr "" #: ../../util/wmgenmenu.h:354 msgid "DrakNetCenter" msgstr "" #: ../../util/wmgenmenu.h:355 msgid "RPMDrake" msgstr "" #: ../../util/wmgenmenu.h:356 msgid "HardDrake" msgstr "" #: ../../util/wmgenmenu.h:357 msgid "DrakConf" msgstr "" #: ../../util/wmgenmenu.h:358 msgid "MandrakeUpdate" msgstr "" #: ../../util/wmgenmenu.h:359 msgid "XDrakRes" msgstr "" #: ../../util/wmgenmenu.h:364 msgid "Docker" msgstr "" #: ../../util/wmgenmenu.h:365 msgid "Net" msgstr "" #: ../../util/wmgenmenu.h:366 ../../util/wmgenmenu.h:387 msgid "Power" msgstr "" #: ../../util/wmgenmenu.h:367 msgid "Laptop" msgstr "" #: ../../util/wmgenmenu.h:368 msgid "WiFi" msgstr "" #: ../../util/wmgenmenu.h:369 msgid "Interface Info" msgstr "" #: ../../util/wmgenmenu.h:370 ../../util/wmgenmenu.h:373 msgid "Weather" msgstr "" #: ../../util/wmgenmenu.h:371 msgid "Sticky Notes" msgstr "" #: ../../util/wmgenmenu.h:372 msgid "Mixer" msgstr "" #: ../../util/wmgenmenu.h:374 msgid "CPU Load" msgstr "" #: ../../util/wmgenmenu.h:375 msgid "CPU Freq" msgstr "" #: ../../util/wmgenmenu.h:376 msgid "Clock Mon" msgstr "" #: ../../util/wmgenmenu.h:377 msgid "Network Devices" msgstr "" #: ../../util/wmgenmenu.h:378 msgid "Calendar & Clock" msgstr "" #: ../../util/wmgenmenu.h:379 msgid "Time" msgstr "" #: ../../util/wmgenmenu.h:380 msgid "Date" msgstr "" #: ../../util/wmgenmenu.h:381 ../../util/wmgenmenu.h:382 msgid "System Monitor" msgstr "" #: ../../util/wmgenmenu.h:383 msgid "SMP Monitor" msgstr "" #: ../../util/wmgenmenu.h:384 msgid "Interfaces" msgstr "" #: ../../util/wmgenmenu.h:385 msgid "Button" msgstr "" #: ../../util/wmgenmenu.h:386 msgid "xmms" msgstr "" #: ../../util/wmgenmenu.h:388 msgid "Magnify" msgstr "" #: ../../util/wmgenmenu.h:393 msgid "IceWM" msgstr "" #: ../../util/wmgenmenu.h:394 msgid "KWin" msgstr "" #: ../../util/wmgenmenu.h:395 msgid "twm" msgstr "" #: ../../util/wmgenmenu.h:396 msgid "Fluxbox" msgstr "" #: ../../util/wmgenmenu.h:397 msgid "Blackbox" msgstr "" #: ../../util/wmgenmenu.h:398 msgid "Ion" msgstr "" #: ../../util/wmgenmenu.h:399 msgid "Motif Window Manager" msgstr "" #: ../../util/wmgenmenu.h:400 msgid "FVWM" msgstr "" ���������������������������������������WindowMaker-0.95.5/util/po/de.po��������������������������������������������������������������������0000644�0001750�0001750�00000007663�12214432632�013320� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wmgenmenu German translation # Copyright (C) 2010 Carlos R. Mafra # This file is distributed under the same license as the Window Maker package. # Carlos R. Mafra <crmafra@gmail.com>, 2010. # msgid "" msgstr "" "Project-Id-Version: wmgenmenu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-01-27 12:57+0100\n" "PO-Revision-Date: 2010-04-02 10:39+0200\n" "Last-Translator: Carlos R. Mafra <crmafra@gmail.com>\n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../util/wmgenmenu.c:78 ../../util/wmgenmenu.c:91 msgid "Window Maker" msgstr "Window Maker" #: ../../util/wmgenmenu.c:79 msgid "Applications" msgstr "Anwendungen" #. Submenus in Applications #: ../../util/wmgenmenu.c:82 msgid "Terminals" msgstr "Terminals" #: ../../util/wmgenmenu.c:83 msgid "Internet" msgstr "Internet" #: ../../util/wmgenmenu.c:84 msgid "Email" msgstr "E-Mail" #: ../../util/wmgenmenu.c:85 msgid "Mathematics" msgstr "Mathematik" #: ../../util/wmgenmenu.c:86 msgid "File Managers" msgstr "Dateimanager" #: ../../util/wmgenmenu.c:87 msgid "Graphics" msgstr "Grafik" #: ../../util/wmgenmenu.c:88 msgid "Multimedia" msgstr "Multimedia" #: ../../util/wmgenmenu.c:89 msgid "Editors" msgstr "Text-Editoren" #: ../../util/wmgenmenu.c:90 msgid "Development" msgstr "Entwicklung" #: ../../util/wmgenmenu.c:92 msgid "Office" msgstr "Büro" #: ../../util/wmgenmenu.c:93 msgid "Astronomy" msgstr "Astronomie" #: ../../util/wmgenmenu.c:94 msgid "Sound" msgstr "Audio" #: ../../util/wmgenmenu.c:95 msgid "Comics" msgstr "Comic" #: ../../util/wmgenmenu.c:96 msgid "Viewers" msgstr "Dokumentbetrachter" #: ../../util/wmgenmenu.c:97 msgid "Utilities" msgstr "Hilfsprogramme" #: ../../util/wmgenmenu.c:98 msgid "System" msgstr "System" #: ../../util/wmgenmenu.c:99 msgid "Video" msgstr "Video" #: ../../util/wmgenmenu.c:100 msgid "Chat and Talk" msgstr "Chat und Besprechung" #: ../../util/wmgenmenu.c:101 msgid "P2P-Network" msgstr "P2P-Netzwerk" #: ../../util/wmgenmenu.c:102 msgid "Games" msgstr "Spiele" #: ../../util/wmgenmenu.c:103 msgid "OpenSUSE" msgstr "" #: ../../util/wmgenmenu.c:104 msgid "Mandriva" msgstr "" #: ../../util/wmgenmenu.c:110 msgid "Run..." msgstr "Ausführen..." #: ../../util/wmgenmenu.c:112 msgid "%A(Run, Type command:)" msgstr "%A(Ausführen, Befehl zum Ausführen eingeben:)" #. Appearance-related items #: ../../util/wmgenmenu.c:118 msgid "Appearance" msgstr "Erscheinungsbild" #: ../../util/wmgenmenu.c:120 msgid "Themes" msgstr "Themen" #: ../../util/wmgenmenu.c:128 msgid "Icons" msgstr "Iconsätze" #: ../../util/wmgenmenu.c:136 msgid "Background" msgstr "Hintergrund" #: ../../util/wmgenmenu.c:144 msgid "Save Theme" msgstr "Thema speichern" #: ../../util/wmgenmenu.c:152 msgid "Save Icons" msgstr "Iconsatz speichern" #: ../../util/wmgenmenu.c:162 msgid "Workspaces" msgstr "Arbeitsflächen" #: ../../util/wmgenmenu.c:168 msgid "Workspace" msgstr "Arbeitsfläche" #: ../../util/wmgenmenu.c:170 msgid "Hide Others" msgstr "Ändere verstecken" #: ../../util/wmgenmenu.c:176 msgid "Show All" msgstr "Alle anzeigen" #: ../../util/wmgenmenu.c:182 msgid "Arrange Icons" msgstr "Icons anordnen" #: ../../util/wmgenmenu.c:189 msgid "Refresh" msgstr "Neuzeichen" #: ../../util/wmgenmenu.c:195 msgid "Save Session" msgstr "Arbeitsplatz sichern" #: ../../util/wmgenmenu.c:201 msgid "Clear Session" msgstr "X Sitzung leeren" #: ../../util/wmgenmenu.c:209 msgid "Configure Window Maker" msgstr "Window Maker Einstellungen" #: ../../util/wmgenmenu.c:217 msgid "Info Panel" msgstr "Info-Panel" #: ../../util/wmgenmenu.c:224 msgid "Restart" msgstr "Neustart" #: ../../util/wmgenmenu.c:237 msgid "Lock Screen" msgstr "Bildschirm sperren" #: ../../util/wmgenmenu.c:248 msgid "Exit Window Maker" msgstr "Window Maker beenden" #: ../../util/wmgenmenu.c:317 #, c-format msgid "Start %s" msgstr "%s starten" #: ../../util/wmgenmenu.c:325 msgid "Other Window Managers" msgstr "Andere Fenstermanager" �����������������������������������������������������������������������������WindowMaker-0.95.5/util/wm-oldmenu2new��������������������������������������������������������������0000755�0001750�0001750�00000011760�12214432632�014551� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # # wm-oldmenu2new: script to convert from old-style WindowMaker # menu file to the new PropertyList style of the WMRootMenu. # # Note: ex in all the Linux systems I've used is badly # broken, except for nex. perl can be relied on however. # Re-written to use perl. # # Local dependencies: # None. # # Authors: Luke Kendall, Toby J Sargeant # # Copyright waived; no warranty provided. # GLW=GNUstep/Library/WindowMaker GD=GNUstep/Defaults WLW=$HOME/$GLW WD=$HOME/$GD MYNAME=`basename $0` USAGE="usage: $MYNAME [menu-file-specifier] E.g. $MYNAME menu.pt or $MYNAME pt The default menu if no arguments are given is the English one, 'menu'." # # Process arguments - work out which language menu we're converting. # Note that foreign language locales do *not* have the .lang suffix # attached to the WMRootMenu name. # OLD_MENU=menu NEW_MENU=WMRootMenu if [ $# = 1 ] then if [ -s "$WLW/menu.$1" ] then OLD_MENU="menu.$1" NEW_MENU="WMRootMenu" elif [ -s "$WLW/$1" ] then OLD_MENU="$1" x=`expr "$1" : "menu\.\(.*\)"` [ "x$x" != "x" ] && NEW_MENU="WMRootMenu" else echo "$MYNAME: $WLW/$1 does not exist" >&2 exit 1 fi elif [ $# != 0 ] then echo "$USAGE" >&2 exit 1 fi # # For working out what cc is installed # which1() { oldpath=$PATH PATH=/bin:/usr/bin:/usr/local/bin IFS=":" for j in $oldpath do test -x $j/$1 && test ! -d $j/$1 && echo $j/$1 && return 0 done IFS=" " return 1 } # # Expand macros if necessary. # Create a temp copy of the menu file to edit to turn into the new. # TD=$(/bin/mktemp -d /tmp/wmmenu.XXXXXX) || { echo "$0: can not create temporary file" >& 2; exit 1; } T=$TD/wmmenu$$ echo "Converting $GLW/$OLD_MENU --> $GD/$NEW_MENU" cd $WLW || exit 1 if [ ! -s "$OLD_MENU" ] then echo "$MYNAME: $WLW/$OLD_MENU does not exist" >&2 exit 1 fi # # Always pre-process, to join lines split with \, and to strip comments. # Not to mention the main purpose, include & process wmmacros if used. # set -e CC=`which1 cc` [ "x$CC" = "x" ] && CC=`which1 gcc` [ "x$CC" = "x" ] && "$MYNAME: no cc, gcc found - can't preprocess" >&2 && exit 1 # # Use the "parse as if it's C option" if cc is gcc, because # newer versions apparently get confused. Apparently gcc -E does # not simply run the preprocessor (that's sad). # strings "$CC" | grep -l gcc > /dev/null && GCC_FLAGS="-x c" cp $OLD_MENU $T-c # # Given the set -e, the exit 1 shouldn't be needed. But it is, on my NeXT! # $CC -E -I. $GCC_FLAGS $T-c > $T+c || exit 1 sed '/^#/d;/^[ ]*$/d' $T+c > $T rm $T-c $T+c set +e # # This is the interesting bit. Edit the old style menu and # convert into new style property-list menu. # perl - $T <<-'EOF' > $T-p $v=chr(22); for (<>) { push @foo,$_; } for (@foo) { s/\s*$//; s/^(\s*)"*(Workspaces*)"*\s\s*(WORKSPACE_MENU)/\1(\2, \3),/; s/^(\s*)("[^"]*")\s+MENU/\1($v\n\1\2,/; push @foo2,split "\n"; } @foo=(); for (@foo2) { s/^(\s*)"([^"]*)"\s\s*END/\1),/; s/^(\s*)"([^"]*)"\s\s*EXEC\s\s*(.*)$/\1($v\n\1"\2",$v\n\1EXEC,$v\n\1"\3"$v\n\1),/; s/^(\s*)"([^"]*)"\s\s*SHEXEC\s\s*(.*)$/\1($v\n\1"\2",$v\n\1SHEXEC,$v\n\1"\3"$v\n\1),/; push @foo,split "\n"; } @foo2=(); for (@foo) { s/^(\s*)"([^"]*)"\s\s*OPEN_MENU\s\s*(.*)$/\1($v\n\1"\2",$v\n\1OPEN_MENU,$v\n\1"\3"$v\n\1),/; push @foo2,split "\n"; } @foo=(); for (@foo2) { s/^(\s*)([^ ]*)\s\s*MENU/\1($v\n\1"\2",/; push @foo,split "\n"; } @foo2=(); for (@foo) { s/^(\s*)([^ ]*)\s\s*END/\1),/; s/^(\s*)([^ ]*)\s\s*EXEC\s\s*(.*)$/\1($v\n\1"\2",$v\n\1EXEC,$v\n\1"\3"$v\n\1),/; s/^(\s*)([^ ]*)\s\s*SHEXEC\s\s*(.*)$/\1($v\n\1"\2",$v\n\1SHEXEC,$v\n\1"\3"$v\n\1),/; push @foo2,split "\n"; } @foo=(); for (@foo2) { s/^(\s*)([^ ]*)\s\s*OPEN_MENU\s\s*(.*)$/\1($v\n\1"\2",$v\n\1OPEN_MENU,$v\n\1"\3"$v\n\1),/; push @foo,split "\n"; } @foo2=(); for (@foo) { s/ WITH / QQQjjQQQ /; s/^(\s*)"([^"]*)"\s\s*([A-Z_][A-Z_]*)$/\1("\2", \3),/; s/^(\s*)"([^"]*)"\s+([A-Z_][A-Z_]*)\s\s*(.*)$/\1("\2", \3, \4),/; s/"(.*".*)"/JJJqqJJJ\1JJJqqJJJ/; /JJJqqJJJ/ && s/"/\\"/g; s/JJJqqJJJ/"/g; s/ QQQjjQQQ / WITH /; print "$_\n"; } EOF mv $T-p $T # # Now strip off spurious commas from lines like: # ), # ) # since comma is a property separator, not terminator. Sigh. # Also correct for another problem - Linux ex's require the CTRL-V # above; a real vi/ex doesn't; so we have to strip out any spurious # CTRL-V characters if we're using a real ex: # sed 's///g' $T | awk ' { if (last_line != null) { if ((last_line ~ /,$/) && ($0 ~ /^[ ]*\)/)) print substr(last_line, 0, length(last_line)-1) else print last_line } last_line = $0 } END { if (last_line != null) { if (last_line ~ /,$/) print substr(last_line, 0, length(last_line)-1) else print last_line } } ' > $WD/$NEW_MENU.new || exit 1 rm -f $T rm -fr $TD # # Now install it. # cd $WD if [ -s $NEW_MENU ] then echo "Preserving $NEW_MENU as $NEW_MENU.sav in $WD" mv $NEW_MENU $NEW_MENU.sav fi mv $NEW_MENU.new $NEW_MENU && echo "Created new $WD/$NEW_MENU" ����������������WindowMaker-0.95.5/util/wmgenmenu.h�����������������������������������������������������������������0000644�0001750�0001750�00000042131�12214432632�014112� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* wmgenmenu.h * * Copyright (C) 2010 Carlos R. Mafra * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ /* * If the program should run from inside a terminal it has * to end with a space followed by '!', e.g. "mutt !" */ char *Terminals[MAX_NR_APPS][2] = { { N_("xterm"), "xterm -bg black -fg white +sb +sm -fn 10x20 -sl 4000 -cr yellow" }, { N_("mrxvt"), "mrxvt +bt +bc -shade 00 -vb +sb +sm -tr -sl 2000 -trt -itabbg black -hb -tabfg yellow -fn 10x20 -cr yellow" }, { N_("Konsole"), "konsole" }, { N_("Urxvt"), "urxvt" }, { NULL, NULL } }; char *File_managers[MAX_NR_APPS][2] = { { N_("Dolphin"), "dolphin" }, { N_("Thunar"), "thunar" }, { N_("ROX filer"), "rox" }, { N_("PCManFM"), "pcmanfm" }, { N_("GWorkspace"), "GWorkspace" }, { N_("Midnight Commander"), "mc !" }, { N_("XFTree"), "xftree" }, { N_("Konqueror"), "konqueror" }, { N_("Nautilus"), "nautilus --no-desktop" }, { N_("FSViewer"), "FSViewer" }, { N_("Xfe"), "xfe" }, { NULL, NULL } }; char *Mathematics[MAX_NR_APPS][2] = { { N_("Xmaxima"), "xmaxima" }, { N_("Maxima"), "maxima !" }, { N_("Maple"), "maple" }, { N_("Scilab"), "scilab" }, { N_("bc"), "bc !" }, { N_("KCalc"), "kcalc" }, { N_("XCalc"), "xcalc" }, { N_("Mathematica"), "mathematica" }, { N_("Math"), "math !" }, /* command-line Mathematica */ { N_("Free42"), "free42" }, { N_("X48"), "x48" }, { NULL, NULL } }; char *Astronomy[MAX_NR_APPS][2] = { { N_("Xplns"), "xplns" }, { N_("Stellarium"), "stellarium" }, { NULL, NULL } }; char *Graphics[MAX_NR_APPS][2] = { { N_("GIMP"), "gimp" }, { N_("Sodipodi"), "sodipodi" }, { N_("Inkscape"), "inkscape" }, { N_("KIllustrator"), "killustrator" }, { N_("Krayon"), "krayon" }, { N_("KPovModeler"), "kpovmodeler" }, { N_("XBitmap"), "bitmap" }, { N_("XPaint"), "xpaint" }, { N_("XFig"), "xfig" }, { N_("KPaint"), "kpaint" }, { N_("Blender"), "blender" }, { N_("KSnapshot"), "ksnapshot" }, { N_("GPhoto"), "gphoto" }, { N_("DigiKam"), "digikam" }, { N_("GQview"), "gqview" }, { N_("Geeqie"), "geeqie" }, { N_("KView"), "kview" }, { N_("Dia"), "dia" }, { N_("CompuPic"), "compupic" }, { N_("Pixie"), "pixie" }, { N_("ImageMagick Display"), "display" }, { N_("XV"), "xv" }, { N_("Eye of GNOME"), "eog" }, { N_("Quick Image Viewer"), "qiv" }, { NULL, NULL }, }; char *Multimedia[MAX_NR_APPS][2] = { { N_("Audacious"), "audacious" }, { N_("Kaffeine"), "kaffeine", }, { N_("Audacity"), "audacity" }, { N_("Amarok"), "amarok" }, { N_("XMMS"), "xmms" }, { N_("K9Copy"), "k9copy" }, { N_("HandBrake"), "HandBrakeGUI" }, { N_("OGMRip"), "ogmrip" }, { N_("DVBcut"), "dvbcut" }, { N_("AcidRip"), "acidrip" }, { N_("RipperX"), "ripperX" }, { N_("Avidemux"), "avidemux2_gtk" }, { N_("GQmpeg"), "gqmpeg" }, { N_("SMPlayer"), "smplayer" }, { N_("Linux MultiMedia Studio"), "lmms" }, { N_("Freeamp"), "freeamp" }, { N_("RealPlayer"), "realplay" }, { N_("Mediathek"), "Mediathek.sh" }, { N_("KMid"), "kmid" }, { N_("Kmidi"), "kmidi" }, { N_("Gtcd"), "gtcd" }, { N_("Grip"), "grip" }, { N_("AVIplay"), "aviplay" }, { N_("Gtv"), "gtv" }, { N_("VLC"), "vlc" }, { N_("Sinek"), "sinek" }, { N_("xine"), "xine" }, { N_("aKtion"), "aktion" }, { N_("Gcd"), "gcd" }, { N_("XawTV"), "xawtv" }, { N_("XPlayCD"), "xplaycd" }, { N_("XBMC"), "xbmc" }, { NULL, NULL} }; char *Internet[MAX_NR_APPS][2] = { { N_("Chromium"), "chromium" }, { N_("Chromium"), "chromium-browser" }, { N_("Google Chrome"), "google-chrome" }, { N_("Mozilla Firefox"), "firefox" }, { N_("Galeon"), "galeon" }, { N_("SkipStone"), "skipstone" }, { N_("Konqueror"), "konqueror" }, { N_("Dillo"), "dillo" }, { N_("Epiphany"), "epiphany" }, { N_("Opera"), "opera" }, { N_("Midori"), "midori" }, { N_("Mozilla SeaMonkey"), "seamonkey" }, { N_("Kazehakase"), "kazehakase" }, { N_("Links"), "links !" }, { N_("Lynx"), "lynx !" }, { N_("W3M"), "w3m !" }, { NULL, NULL } }; char *Email[MAX_NR_APPS][2] = { { N_("Mozilla Thunderbird"), "thunderbird" }, { N_("Mutt"), "mutt !" }, { N_("GNUMail"), "GNUMail" }, { N_("Claws Mail"), "claws-mail" }, { N_("Evolution"), "evolution" }, { N_("Kleopatra"), "kleopatra" }, { N_("Sylpheed"), "sylpheed" }, { N_("Spruce"), "spruce" }, { N_("KMail"), "kmail" }, { N_("Exmh"), "exmh" }, { N_("Pine"), "pine !" }, { N_("ELM"), "elm !" }, { N_("Alpine"), "alpine !" }, { NULL, NULL } }; char *Sound[MAX_NR_APPS][2] = { { N_("soundKonverter"), "soundkonverter" }, { N_("Krecord"), "krecord" }, { N_("Grecord"), "grecord" }, { N_("ALSA mixer"), "alsamixer !" }, { N_("VolWheel"), "volwheel" }, { N_("Sound configuration"), "sndconfig !" }, { N_("aumix"), "aumix !" }, { N_("Gmix"), "gmix" }, { NULL, NULL } }; char *Editors[MAX_NR_APPS][2] = { { N_("XJed"), "xjed" }, { N_("Jed"), "jed !" }, { N_("Emacs"), "emacs" }, { N_("XEmacs"), "xemacs" }, { N_("SciTE"), "scite" }, { N_("Bluefish"), "bluefish" }, { N_("gVIM"), "gvim" }, { N_("vi"), "vi !" }, { N_("VIM"), "vim !" }, { N_("gedit"), "gedit" }, { N_("KEdit"), "kedit" }, { N_("XEdit"), "xedit" }, { N_("KWrite"), "kwrite" }, { N_("Kate"), "kate" }, { N_("Pico"), "pico !" }, { N_("Nano"), "nano !" }, { N_("Joe"), "joe !" }, { NULL, NULL } }; char *Comics[MAX_NR_APPS][2] = { { N_("Omnia data"), "omnia_data" }, { N_("Comix"), "comix" }, { N_("QComicBook"), "qcomicbook" }, { NULL, NULL } }; char *Viewers[MAX_NR_APPS][2] = { { N_("Evince"), "evince" }, { N_("KGhostView"), "kghostview" }, { N_("gv"), "gv" }, { N_("ePDFView"), "epdfview" }, { N_("GGv"), "ggv" }, { N_("Xdvi"), "xdvi" }, { N_("KDVI"), "kdvi" }, { N_("Xpdf"), "xpdf" }, { N_("Adobe Reader"), "acroread" }, { N_("Gless"), "gless" }, { NULL, NULL } }; char *Utilities[MAX_NR_APPS][2] = { { N_("Google Desktop"), "gdlinux" }, { N_("K3B"), "k3b" }, { N_("X-CD-Roast"), "xcdroast" }, { N_("Nero Linux"), "nero" }, { N_("Nero Linux Express"), "neroexpress" }, { N_("gtkfind"), "gtkfind" }, { N_("gdict"), "gdict" }, { N_("gpsdrive"), "gpsdrive" }, { N_("Task Coach"), "taskcoach" }, { N_("XSnap"), "xsnap" }, { N_("Screengrab"), "screengrab" }, { N_("XSane"), "xsane" }, { N_("wfcmgr"), "wfcmgr" }, { N_("switch"), "switch" }, { N_("Cairo Clock"), "cairo-clock" }, { N_("Conky"), "conky" }, { N_("GNU Privacy Assistant"), "gpa" }, { N_("Vidalia (tor)"), "vidalia" }, { N_("kaddressbook"), "kaddressbook" }, { N_("kab"), "kab" }, { N_("Filezilla"), "filezilla" }, { N_("Bleachbit"), "bleachbit" }, { N_("Teamviewer"), "teamviewer" }, { N_("gUVCView"), "guvcview" }, { N_("LinPopUp"), "linpopup" }, { N_("Wine Configurator"), "winecfg" }, { N_("NMap"), "nmapfe" }, { N_("Hydra"), "xhydra" }, { N_("XTeddy"), "xteddy" }, { N_("XTeddy TEST"), "xteddy_test" }, { N_("VNC Viewer"), "vncviewer" }, { N_("Java Control Panel"), "ControlPanel" }, { N_("kfind"), "kfind" }, { N_("oclock"), "oclock" }, { N_("rclock"), "rclock" }, { N_("Isomaster"), "isomaster" }, { N_("xclock"), "xclock" }, { N_("HP Systray"), "hp-systray" }, { N_("kppp"), "kppp" }, { N_("Xarchiver"), "xarchiver" }, { NULL, NULL } }; char *Video[MAX_NR_APPS][2] = { { NULL, NULL } }; char *Chat[MAX_NR_APPS][2] = { { N_("Pidgin"), "pidgin" }, { N_("Skype"), "skype" }, { N_("Gizmo"), "gizmo" }, { N_("Gajim"), "gajim" }, { N_("Kopete"), "kopete" }, { N_("XChat"), "xchat" }, { N_("Ekiga"), "Ekiga" }, { N_("KVIrc"), "kvirc" }, { N_("BitchX"), "BitchX !" }, { N_("EPIC"), "epic !" }, { N_("Linphone"), "linphone" }, { N_("Mumble"), "mumble" }, { N_("EPIC4"), "epic4 !" }, { N_("Irssi"), "irssi !" }, { N_("TinyIRC"), "tinyirc !" }, { N_("Ksirc"), "ksirc" }, { N_("gtalk"), "gtalk" }, { N_("GnomeICU"), "gnome-icu" }, { N_("Licq"), "licq" }, { N_("aMSN"), "amsn" }, { NULL, NULL } }; char *P2P[MAX_NR_APPS][2] = { { N_("aMule"), "amule" }, { N_("gFTP"), "gftp" }, { N_("Smb4K"), "smb4k" }, { N_("KTorrent"), "ktorrent" }, { N_("BitTorrent GUI"), "bittorrent-gui" }, { N_("Transmission GTK"), "transmission-gtk" }, { N_("ftp"), "ftp !" }, { N_("Deluge"), "deluge-gtk" }, { N_("sftp"), "sftp !" }, { N_("Pavuk"), "pavuk" }, { N_("gtm"), "gtm !" }, { N_("Gnut"), "gnut !" }, { N_("GTK Gnutella"), "gtk-gnutella" }, { N_("Gnutmeg"), "gnutmeg" }, { NULL, NULL } }; char *Games[MAX_NR_APPS][2] = { { N_("FlightGear Flight Simulator"), "fgfs" }, { N_("Tremulous"), "tremulous" }, { N_("XBoard"), "xboard" }, { N_("GNOME Chess"), "gnome-chess" }, { N_("Darkplaces (Quake 1)"), "darkplaces" }, { N_("QuakeSpasm (Quake 1)"), "quakespasm" }, { N_("Quake 2"), "quake2" }, { N_("KM Quake 2 (Quake 2"), "kmquake2" }, { N_("QMax (Quake 2"), "quake2-qmax" }, { N_("Quake 3"), "quake3" }, { N_("Quake 4"), "quake4" }, { N_("Quake 4 SMP"), "quake4-smp" }, { N_("Openarena"), "openarena" }, { N_("Quake 3: Urban Terror 2"), "q3ut2" }, { N_("Soldier of Fortune"), "sof" }, { N_("Rune"), "rune" }, { N_("Doom 3"), "doom3" }, { N_("Zelda Solarus"), "solarus" }, { N_("Solarwolf"), "solarwolf" }, { N_("Pachi"), "pachi" }, { N_("Tribes 2"), "tribes2" }, { N_("GNUjump"), "gnujump" }, { N_("Supertransball 2"), "supertransball2" }, { N_("Supertux"), "supertux" }, { N_("Supertux 2"), "supertux2" }, { N_("Mega Mario"), "megamario" }, { N_("Frogatto"), "frogatto" }, { N_("Minecraft"), "minecraft" }, { N_("Alienarena"), "alienarena" }, { N_("Nexuiz"), "nexuiz" }, { N_("Bomberclone"), "bomberclone" }, { N_("Chromium-BSU"), "chromium-bsu" }, { N_("Clanbomber"), "clanbomber" }, { N_("Clanbomber 2"), "clanbomber2" }, { N_("Defendguin"), "defendguin" }, { N_("Dosbox"), "dosbox" }, { N_("Duke Nukem 3D"), "duke3d" }, { N_("eDuke32"), "eduke32" }, { N_("Emilia Pinball"), "emilia-pinball" }, { N_("Extreme-Tuxracer"), "etracer" }, { N_("Freedroid RPG"), "freedroidRPG" }, { N_("Frozen Bubble"), "frozen-bubble" }, { N_("Frozen Bubble Editor"), "frozen-bubble-editor" }, { N_("GL 117"), "gl-117" }, { N_("LBreakout 2"), "lbreakout2" }, { N_("Legends"), "legends" }, { N_("Lincity-NG"), "lincity-ng" }, { N_("Neverball"), "neverball" }, { N_("Neverput"), "neverput" }, { N_("Openastromenace"), "openastromenace" }, { N_("Penguin Command"), "penguin-command" }, { N_("Powermanga"), "powermanga" }, { N_("Return to Castle Wolfenstein SP"), "rtcwsp" }, { N_("Return to Castle Wolfenstein MP"), "rtcwmp" }, { N_("Snes9X"), "snes9x-gtk" }, { N_("Slune"), "slune" }, { N_("Torcs"), "torcs" }, { N_("Speed Dreams"), "speed-dreams" }, { N_("Trackballs"), "trackballs" }, { N_("VDrift"), "vdrift" }, { N_("Warmux"), "warmux" }, { N_("Warsow"), "warsow" }, { N_("Wesnoth"), "wesnoth" }, { N_("World of Padman"), "worldofpadman" }, { N_("XBlast"), "xblast" }, { N_("XPenguins"), "xpenguins" }, { N_("XTux"), "xtux" }, { N_("The Mana World"), "tmw" }, { N_("The Mana World"), "mana" }, { N_("Super Mario Chronicles"), "smc" }, { N_("Unreal"), "unreal" }, { N_("Unreal Tournament"), "ut" }, { N_("Unreal Tournament 2004"), "ut2004" }, { N_("Xonotic"), "xonotic" }, { N_("Descent 3"), "descent3" }, { N_("Myth 2"), "myth2" }, { N_("Sauerbraten"), "sauerbraten" }, { N_("Sauerbraten"), "sauerbraten-client" }, { N_("Sauerbraten"), "sauer_client" }, { N_("Railroad Tycoon 2"), "rt2" }, { N_("Heretic 2"), "heretic2" }, { N_("Kohan"), "kohan" }, { N_("XQF"), "xqf" }, { NULL, NULL } }; char *Office[MAX_NR_APPS][2] = { { N_("OpenOffice.org Writer"), "oowriter" }, { N_("OpenOffice.org Calc"), "oocalc" }, { N_("OpenOffice.org Draw"), "oodraw" }, { N_("OpenOffice.org Impress"), "ooimpress" }, { N_("OpenOffice.org Math"), "oomath" }, { N_("OpenOffice.org"), "ooffice" }, { N_("StarOffice Writer"), "swriter" }, { N_("StarOffice Calc"), "scalc" }, { N_("StarOffice Draw"), "sdraw" }, { N_("StarOffice Impress"), "simpress" }, { N_("StarOffice Math"), "smath" }, { N_("StarOffice"), "soffice" }, { N_("LibreOffice Writer"), "lowriter" }, { N_("LibreOffice Calc"), "localc" }, { N_("LibreOffice Draw"), "lodraw" }, { N_("LibreOffice Impress"), "loimpress" }, { N_("LibreOffice Math"), "lomath" }, { N_("LibreOffice Base"), "lobase" }, { N_("LibreOffice Web"), "loweb" }, { N_("LibreOffice"), "libreoffice" }, { N_("AbiWord"), "abiword" }, { N_("KWord"), "kword" }, { N_("KPresenter"), "kpresenter" }, { N_("KSpread"), "kspread" }, { N_("KChart"), "kchart" }, { N_("KOrganizer"), "Korganizer" }, { N_("LyX"), "lyx" }, { N_("Klyx"), "klyx" }, { N_("GnuCash"), "gnucash" }, { N_("Gnumeric"), "gnumeric" }, { N_("GnomeCal"), "gnomecal" }, { N_("GnomeCard"), "gnomecard" }, { NULL, NULL } }; char *Development[MAX_NR_APPS][2] = { { N_("gitk"), "gitk" }, { N_("gitview"), "gitview" }, { N_("qgit"), "qgit" }, { N_("git-gui"), "git-gui" }, { N_("glimmer"), "glimmer" }, { N_("glade"), "glade" }, { N_("Geany"), "geany" }, { N_("Codeblocks"), "codeblocks" }, { N_("kdevelop"), "kdevelop" }, { N_("designer"), "designer" }, { N_("kbabel"), "kbabel" }, { N_("idle"), "idle" }, { N_("ghex"), "ghex" }, { N_("hexedit"), "hexedit !" }, { N_("memprof"), "memprof" }, { N_("tclsh"), "tclsh !" }, { N_("gdb"), "gdb !" }, { N_("xxgdb"), "xxgdb" }, { N_("xev"), "xev !" }, { NULL, NULL } }; char *System[MAX_NR_APPS][2] = { { N_("Iotop"), "iotop -d 4 --only !" }, { N_("Iostat"), "iostat -p -k 5 !" }, { N_("keybconf"), "keybconf" }, { N_("GNOME System Monitor"), "gtop" }, { N_("top"), "top !" }, { N_("KDE Process Monitor"), "kpm" }, { N_("gw"), "gw" }, { N_("GNOME Control Center"), "gnomecc" }, { N_("GKrellM"), "gkrellm" }, { N_("tksysv"), "tksysv" }, { N_("ksysv"), "ksysv" }, { N_("GNOME PPP"), "gnome-ppp" }, { NULL, NULL } }; char *OpenSUSE[MAX_NR_APPS][2] = { { N_("YaST 2"), "yast2" }, { N_("YaST"), "yast !" }, { N_("System Settings"), "systemsettings" }, { N_("UMTSMon"), "umtsmon" }, { NULL, NULL } }; char *Mandriva[MAX_NR_APPS][2] = { { N_("DrakNetCenter"), "draknetcenter" }, { N_("RPMDrake"), "rpmdrake" }, { N_("HardDrake"), "harddrake" }, { N_("DrakConf"), "drakconf" }, { N_("MandrakeUpdate"), "MandrakeUpdate" }, { N_("XDrakRes"), "Xdrakres" }, { NULL, NULL } }; char *WindowMaker[MAX_NR_APPS][2] = { { N_("Docker"), "docker -wmaker" }, { N_("Net"), "wmnet -d 100000 -Weth0" }, { N_("Net Load"), "wmnetload" }, { N_("Ping"), "wmping" }, { N_("Ping"), "wmpiki" }, { N_("Power"), "wmpower" }, { N_("Audacious"), "wmauda" }, { N_("Harddisk Monitor"), "wmdiskmon" }, { N_("Download"), "wmdl" }, { N_("Dots"), "wmdots" }, { N_("Matrix"), "wmMatrix" }, { N_("Fire"), "wmfire" }, { N_("Net send"), "wmpopup" }, { N_("Laptop"), "wmlaptop2" }, { N_("WiFi"), "wmwifi -s" }, { N_("Interface Info"), "wmifinfo" }, { N_("Weather"), "wmWeather" }, { N_("Weather"), "wmWeather+" }, { N_("Sticky Notes"), "wmstickynotes" }, { N_("Pinboard"), "wmpinboard" }, { N_("Mixer"), "wmmixer++ -w" }, { N_("Mixer"), "wmmixer" }, { N_("Weather"), "wmWeather -m -s EDDB" }, { N_("CPU Load"), "wmcpuload" }, { N_("CPU Freq"), "wmcpufreq" }, { N_("Memory Load"), "wmmemload" }, { N_("Memory Free"), "wmmemfree" }, { N_("Memory Monitor"), "wmmemmon" }, { N_("Clock Mon"), "wmclockmon" }, { N_("Network Devices"), "wmnd" }, { N_("Calendar & Clock"), "wmCalclock -S" }, { N_("Time"), "wmtime" }, { N_("Date"), "wmdate" }, { N_("Time & Date"), "wmclock" }, { N_("System Monitor"), "wmmon" }, { N_("System Monitor"), "wmsysmon" }, { N_("Sensor Monitor"), "wmsorsen" }, { N_("System Tray"), "wmsystemtray" }, { N_("System Tray"), "wmsystray" }, { N_("SMP Monitor"), "wmSMPmon" }, { N_("Timer"), "wmtimer" }, { N_("Mounter"), "wmudmount" }, { N_("Mounter"), "wmvolman" }, { N_("Uptime"), "wmupmon" }, { N_("Work Timer"), "wmwork" }, { N_("Interfaces"), "wmifs" }, { N_("Button"), "wmbutton" }, { N_("xmms"), "wmxmms" }, { N_("Power"), "wmpower" }, { N_("Magnify"), "wmagnify" }, { NULL, NULL } }; char *other_wm[MAX_WMS][2] = { { N_("IceWM"), "icewm" }, { N_("KWin"), "kwin" }, { N_("twm"), "twm" }, { N_("Fluxbox"), "fluxbox" }, { N_("Blackbox"), "blackbox" }, { N_("Ion"), "ion" }, { N_("Motif Window Manager"), "mwm" }, { N_("FVWM"), "fvwm" }, { N_("FVWM-Crystal"), "fvwm-crystal" }, { NULL, NULL } }; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/common.h��������������������������������������������������������������������0000644�0001750�0001750�00000002140�12214432632�013374� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Command-line utilities for WindowMaker * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 2004 Dan Pascu * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ /* * Functions that are used by more than one tool */ #ifndef UTIL_COMMON_H #define UTIL_COMMON_H /* ---[ util/fontconv.c ]------------------------------------------------- */ char *convertFont(char *font, Bool keepXLFD); #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/wmmenugen.c�����������������������������������������������������������������0000644�0001750�0001750�00000022211�12214432632�014102� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * wmmenugen - Window Maker PropList menu generator * * Copyright (c) 2010. Tamas Tevesz <ice@extreme.hu> * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include <sys/types.h> #include <sys/stat.h> #include <ctype.h> #include <ftw.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> #include <unistd.h> #include "wmmenugen.h" static void addWMMenuEntryCallback(WMMenuEntry *aEntry); static void assemblePLMenuFunc(WMTreeNode *aNode, void *data); static int dirParseFunc(const char *filename, const struct stat *st, int tflags, struct FTW *ftw); static int menuSortFunc(const void *left, const void *right); static int nodeFindSubMenuByNameFunc(const void *item, const void *cdata); static WMTreeNode *findPositionInMenu(const char *submenu); static void (*parse)(const char *file, void (*addWMMenuEntryCallback)(WMMenuEntry *aEntry)); static Bool (*validateFilename)(const char *filename, const struct stat *st, int tflags, struct FTW *ftw); static WMArray *plMenuNodes; char *terminal; extern char *__progname; /* Global Variables from wmmenugen.h */ WMTreeNode *menu; char *env_lang, *env_ctry, *env_enc, *env_mod; int main(int argc, char **argv) { struct stat st; int i; int *previousDepth; plMenuNodes = WMCreateArray(8); /* grows on demand */ menu = (WMTreeNode *)NULL; parse = NULL; validateFilename = NULL; /* assemblePLMenuFunc passes this around */ previousDepth = (int *)wmalloc(sizeof(int)); *previousDepth = -1; /* currently this is used only by the xdg parser, but it might be useful * in the future localizing other menus, so it won't hurt to have it here. */ parse_locale(NULL, &env_lang, &env_ctry, &env_enc, &env_mod); terminal = find_terminal_emulator(); if (argc < 3) { fprintf(stderr, "Usage: %s -parser:<parser> fspec [fpsec...] " "[-parser:<parser> fspec [fpsec...]...]\n", __progname); fputs( "Known parsers: xdg wmconfig\n", stderr); return 1; } for (i = 1; i < argc; i++) { if (strncmp(argv[i], "-parser:", 8) == 0) { if (strcmp(argv[i] + 8, "xdg") == 0) { #if DEBUG fputs("Using parser \"xdg\"\n", stderr); #endif parse = &parse_xdg; } else if (strcmp(argv[i] + 8, "wmconfig") == 0) { #if DEBUG fputs("Using parser \"wmconfig\"\n", stderr); #endif parse = &parse_wmconfig; validateFilename = &wmconfig_validate_file; } else { fprintf(stderr, "%s: Unknown parser \"%s\"\n", __progname, argv[i] + 8); } continue; } if (parse) { if (stat(argv[i], &st) == -1) { fprintf(stderr, "%s: unable to stat \"%s\"\n", __progname, argv[i]); } else if (S_ISREG(st.st_mode)) { parse(argv[i], addWMMenuEntryCallback); } else if (S_ISDIR(st.st_mode)) { nftw(argv[i], dirParseFunc, 16, FTW_PHYS); } else { fprintf(stderr, "%s: \"%s\" is not a file or directory\n", __progname, argv[i]); } } else { fprintf(stderr, "%s: argument \"%s\" with no valid parser\n", __progname, argv[i]); } } if (!menu) { fprintf(stderr, "%s: parsers failed to create a valid menu\n", __progname); return 1; } WMSortTree(menu, menuSortFunc); WMTreeWalk(menu, assemblePLMenuFunc, previousDepth, True); i = WMGetArrayItemCount(plMenuNodes); if (i > 2) { /* more than one submenu unprocessed is almost certainly an error */ fprintf(stderr, "%s: unprocessed levels on the stack. fishy.\n", __progname); return 1; } else if (i > 1 ) { /* possibly the top-level attachment is not yet done */ WMPropList *first, *next; next = WMPopFromArray(plMenuNodes); first = WMPopFromArray(plMenuNodes); WMAddToPLArray(first, next); WMAddToArray(plMenuNodes, first); } printf("%s\n", WMGetPropListDescription((WMPropList *)WMGetFromArray(plMenuNodes, 0), True)); return 0; } static int dirParseFunc(const char *filename, const struct stat *st, int tflags, struct FTW *ftw) { (void)st; (void)tflags; (void)ftw; if (validateFilename && !validateFilename(filename, st, tflags, ftw)) return 0; parse(filename, addWMMenuEntryCallback); return 0; } /* upon fully deducing one particular menu entry, parsers call back to this * function to have said menu entry added to the wm menu. initializes wm menu * with a root element if needed. */ static void addWMMenuEntryCallback(WMMenuEntry *aEntry) { WMMenuEntry *wm; WMTreeNode *at; wm = (WMMenuEntry *)wmalloc(sizeof(WMMenuEntry)); /* this entry */ at = (WMTreeNode *)NULL; /* will be a child of this entry */ if (!menu) { WMMenuEntry *root; root = (WMMenuEntry *)wmalloc(sizeof(WMMenuEntry)); root->Name = "Applications"; root->CmdLine = NULL; root->SubMenu = NULL; root->Flags = 0; menu = WMCreateTreeNode(root); } if (aEntry->SubMenu) at = findPositionInMenu(wstrdup(aEntry->SubMenu)); if (!at) at = menu; wm->Flags = aEntry->Flags; wm->Name = wstrdup(aEntry->Name); wm->CmdLine = wstrdup(aEntry->CmdLine); wm->SubMenu = NULL; WMAddItemToTree(at, wm); } /* creates the proplist menu out of the abstract menu representation in `menu'. */ static void assemblePLMenuFunc(WMTreeNode *aNode, void *data) { WMMenuEntry *wm; WMPropList *pl; int pDepth, cDepth; wm = (WMMenuEntry *)WMGetDataForTreeNode(aNode); cDepth = WMGetTreeNodeDepth(aNode); pDepth = *(int *)data; if (pDepth > cDepth) { /* just ascended out of a/several submenu(s) */ WMPropList *last, *but; /* merge the tail up to the current position */ int i; for (i = pDepth - cDepth; i > 0; i--) { last = WMPopFromArray(plMenuNodes); but = WMPopFromArray(plMenuNodes); WMAddToPLArray(but, last); WMAddToArray(plMenuNodes, but); } } if (!wm->CmdLine) { /* new submenu */ WMAddToArray(plMenuNodes, WMCreatePLArray(WMCreatePLString(wm->Name), NULL)); } else { /* new menu item */ pl = WMPopFromArray(plMenuNodes); if (wm->Flags & F_RESTART_OTHER) { /* RESTART, somewm */ char buf[1024]; memset(buf, 0, sizeof(buf)); snprintf(buf, sizeof(buf), "%s %s", _("Restart"), wm->Name); WMAddToPLArray(pl, WMCreatePLArray( WMCreatePLString(buf), WMCreatePLString("RESTART"), WMCreatePLString(wm->CmdLine), NULL) ); } else if (wm->Flags & F_RESTART_SELF) {/* RESTART */ WMAddToPLArray(pl, WMCreatePLArray( WMCreatePLString(_("Restart Window Maker")), WMCreatePLString("RESTART"), NULL) ); } else if (wm->Flags & F_QUIT) { /* EXIT */ WMAddToPLArray(pl, WMCreatePLArray( WMCreatePLString(_("Exit Window Maker")), WMCreatePLString("EXIT"), NULL) ); } else { /* plain simple command */ char buf[1024]; memset(buf, 0, sizeof(buf)); if (wm->Flags & F_TERMINAL) /* XXX: quoting! */ snprintf(buf, sizeof(buf), "%s -e \"%s\"", terminal, wm->CmdLine); else snprintf(buf, sizeof(buf), "%s", wm->CmdLine); WMAddToPLArray(pl, WMCreatePLArray( WMCreatePLString(wm->Name), WMCreatePLString("SHEXEC"), WMCreatePLString(buf), NULL) ); } WMAddToArray(plMenuNodes, pl); } *(int *)data = cDepth; return; } /* sort the menu tree; callback for WMSortTree() */ static int menuSortFunc(const void *left, const void *right) { WMMenuEntry *leftwm; WMMenuEntry *rightwm; leftwm = (WMMenuEntry *)WMGetDataForTreeNode(*(WMTreeNode **)left); rightwm = (WMMenuEntry *)WMGetDataForTreeNode(*(WMTreeNode **)right); /* submenus first */ if (!leftwm->CmdLine && rightwm->CmdLine) return -1; if (leftwm->CmdLine && !rightwm->CmdLine) return 1; /* the rest lexicographically */ return strcasecmp(leftwm->Name, rightwm->Name); } /* returns the leaf an entry with the submenu spec `submenu' attaches to. * creates `submenu' path (anchored to the root) along the way. */ static WMTreeNode *findPositionInMenu(const char *submenu) { char *q; WMMenuEntry *wm; WMTreeNode *node, *pnode; char buf[1024]; /* qualify submenu with "Applications/" (the root node) */ memset(buf, 0, sizeof(buf)); snprintf(buf, sizeof(buf), "Applications/%s", submenu); /* start at the root */ node = menu; q = strtok(buf, "/"); while (q) { pnode = node; node = WMFindInTreeWithDepthLimit(pnode, nodeFindSubMenuByNameFunc, q, 1); if (!node) { wm = (WMMenuEntry *)wmalloc(sizeof(WMMenuEntry)); wm->Flags = 0; wm->Name = wstrdup(q); wm->CmdLine = NULL; wm->SubMenu = NULL; node = WMAddNodeToTree(pnode, WMCreateTreeNode(wm)); } q = strtok(NULL, "/"); } return node; } /* find node where Name = cdata and node is a submenu */ static int nodeFindSubMenuByNameFunc(const void *item, const void *cdata) { WMMenuEntry *wm; wm = (WMMenuEntry *)item; if (wm->CmdLine) /* if it has a cmdline, it can't be a submenu */ return 0; return strcmp(wm->Name, (const char *)cdata) == 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/fontconv.c������������������������������������������������������������������0000644�0001750�0001750�00000007424�12214432632�013745� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <WINGs/WUtil.h> #include "../src/wconfig.h" #include "common.h" #define DEFAULT_FONT "sans serif:pixelsize=12" /* X Font Name Suffix field names */ enum { FOUNDRY, FAMILY_NAME, WEIGHT_NAME, SLANT, SETWIDTH_NAME, ADD_STYLE_NAME, PIXEL_SIZE, POINT_SIZE, RESOLUTION_X, RESOLUTION_Y, SPACING, AVERAGE_WIDTH, CHARSET_REGISTRY, CHARSET_ENCODING }; static int countChar(const char *str, char c) { int count = 0; if (!str) return 0; for (; *str != 0; str++) { if (*str == c) { count++; } } return count; } typedef struct str { const char *str; int len; } str; #define XLFD_TOKENS 14 static str *getXLFDTokens(const char *xlfd) { static str tokens[XLFD_TOKENS]; int i, len, size; const char *ptr; /* XXX: why does this assume there can't ever be XFNextPrefix? */ if (!xlfd || *xlfd != '-' || countChar(xlfd, '-') != XLFD_TOKENS) return NULL; memset(tokens, 0, sizeof(str) * XLFD_TOKENS); len = strlen(xlfd); for (ptr = xlfd, i = 0; i < XLFD_TOKENS && len > 0; i++) { /* skip one '-' */ ptr++; len--; if (len <= 0) break; size = strcspn(ptr, "-,"); tokens[i].str = ptr; tokens[i].len = size; ptr += size; len -= size; } return tokens; } static int strToInt(str * token) { static char buf[32]; /* enough for an Incredibly Big Number */ if (token->len == 0 || token->str[0] == '*' || token->len >= sizeof(buf)) return -1; memset(buf, 0, sizeof(buf)); strncpy(buf, token->str, token->len); /* the code using this will gracefully handle overflows */ return (int)strtol(buf, NULL, 10); } static char *mapWeightToName(str * weight) { char *normalNames[] = { "medium", "normal", "regular" }; static char buf[32]; size_t i; if (weight->len == 0) return ""; for (i = 0; i < sizeof(normalNames) / sizeof(normalNames[0]); i++) { if (strlen(normalNames[i]) == weight->len && strncmp(normalNames[i], weight->str, weight->len)) { return ""; } } snprintf(buf, sizeof(buf), ":%.*s", weight->len, weight->str); return buf; } static char *mapSlantToName(str * slant) { if (slant->len == 0) return ""; switch (slant->str[0]) { case 'i': return ":italic"; case 'o': return ":oblique"; case 'r': default: return ""; } } static char *xlfdToFc(const char *xlfd, const char *useFamily, Bool keepXLFD) { str *tokens, *family, *weight, *slant; char *name, buf[64]; int size, pixelsize; tokens = getXLFDTokens(xlfd); if (!tokens) return wstrdup(DEFAULT_FONT); family = &(tokens[FAMILY_NAME]); weight = &(tokens[WEIGHT_NAME]); slant = &(tokens[SLANT]); pixelsize = strToInt(&tokens[PIXEL_SIZE]); size = strToInt(&tokens[POINT_SIZE]); if (useFamily) { name = wstrdup(useFamily); } else { if (family->len == 0 || family->str[0] == '*') return wstrdup(DEFAULT_FONT); snprintf(buf, sizeof(buf), "%.*s", family->len, family->str); name = wstrdup(buf); } if (size > 0 && pixelsize <= 0) { snprintf(buf, sizeof(buf), "-%d", size / 10); name = wstrappend(name, buf); } name = wstrappend(name, mapWeightToName(weight)); name = wstrappend(name, mapSlantToName(slant)); if (size <= 0 && pixelsize <= 0) { name = wstrappend(name, ":pixelsize=12"); } else if (pixelsize > 0) { /* if pixelsize is present size will be ignored so we skip it */ snprintf(buf, sizeof(buf), ":pixelsize=%d", pixelsize); name = wstrappend(name, buf); } if (keepXLFD) { name = wstrappend(name, ":xlfd="); name = wstrappend(name, xlfd); } return name; } /* return converted font (if conversion is needed) else the original font */ char *convertFont(char *font, Bool keepXLFD) { if (font[0] == '-') { if (MB_CUR_MAX < 2) { return xlfdToFc(font, NULL, keepXLFD); } else { return xlfdToFc(font, "sans serif", keepXLFD); } } else { return font; } } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/wmmenugen_parse_wmconfig.c��������������������������������������������������0000644�0001750�0001750�00000016102�12214432632�017167� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * wmmenugen - Window Maker PropList menu generator * * Wmconfig <http://www.arrishq.net/> parser functions * * Copyright (c) 2010. Tamas Tevesz <ice@extreme.hu> * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include <sys/types.h> #include <sys/stat.h> #include <ctype.h> #include <ftw.h> #if DEBUG #include <errno.h> #endif #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include "wmmenugen.h" typedef struct { char *Name; char *Exec; char *Category; char *Restart; int Flags; } WMConfigMenuEntry; static Bool wmc_to_wm(WMConfigMenuEntry **wmc, WMMenuEntry **wm); static void parse_wmconfig_line(char **label, char **key, char **value, const char *line); static void init_wmconfig_storage(WMConfigMenuEntry **wmc); void parse_wmconfig(const char *file, void (*addWMMenuEntryCallback)(WMMenuEntry *aEntry)) { FILE *fp; char buf[1024]; char *p, *lastlabel, *label, *key, *value; WMConfigMenuEntry *wmc; WMMenuEntry *wm; lastlabel = label = key = value = NULL; fp = fopen(file, "r"); if (!fp) { #if DEBUG fprintf(stderr, "Error opening file %s: %s\n", file, strerror(errno)); #endif return; } wmc = (WMConfigMenuEntry *)wmalloc(sizeof(WMConfigMenuEntry)); wmc->Name = NULL; wmc->Exec = NULL; wmc->Category = NULL; wmc->Restart = NULL; wmc->Flags = 0; wm = (WMMenuEntry *)wmalloc(sizeof(WMMenuEntry)); memset(buf, 0, sizeof(buf)); while (fgets(buf, sizeof(buf), fp)) { p = buf; /* skip whitespaces */ while (isspace(*p)) p++; /* skip comments, empty lines */ if (*p == '\r' || *p == '\n' || *p == '#') { memset(buf, 0, sizeof(buf)); continue; } /* trim crlf */ buf[strcspn(buf, "\r\n")] = '\0'; if (strlen(buf) == 0) continue; parse_wmconfig_line(&label, &key, &value, p); if (label && strlen(label) == 0) continue; if (!lastlabel && label) lastlabel = wstrdup(label); if (strcmp(lastlabel, label) != 0) { if (wmc_to_wm(&wmc, &wm)) { (*addWMMenuEntryCallback)(wm); init_wmconfig_storage(&wmc); } wfree(lastlabel); lastlabel = wstrdup(label); } if (key && value) { if (strcmp(key, "name") == 0) wmc->Name = value; else if (strcmp(key, "exec") == 0) wmc->Exec = value; else if (strcmp(key, "group") == 0) wmc->Category = value; else if (strcmp(key, "restart") == 0) wmc->Restart = value; else if (strcmp(key, "terminal") == 0) wmc->Flags |= F_TERMINAL; } } fclose(fp); if (wmc_to_wm(&wmc, &wm)) { (*addWMMenuEntryCallback)(wm); init_wmconfig_storage(&wmc); } } /* an example to illustrate validateFilename. * with wmconfig, no special handling is needed */ Bool wmconfig_validate_file(const char *filename, const struct stat *st, int tflags, struct FTW *ftw) { (void)filename; (void)st; (void)tflags; (void)ftw; return True; #if 0 /* not dead code, example */ /* or we could have gone intro extremes */ char *base_name; Bool ret; (void)tflags; base_name = wstrdup(filename + ftw->base); ret = True; if (!S_ISREG(st->st_mode) || /* not a regular file */ (st->st_uid != 0 && st->st_uid != getuid()) || /* bad guy injected this file */ strpbrk(base_name, ".") || /* wmconfig typically has no extension */ st->st_size >= 128 * 131072 || /* noone writes wmconfig files > 128K */ st->st_size == 0 || /* nor empty ones */ ftw->level > 16) /* how did we get this deep? */ ret = False; wfree(base_name); return ret; #endif } /* get a line allocating label, key and value as necessary */ static void parse_wmconfig_line(char **label, char **key, char **value, const char *line) { const char *p; int kstart, kend; p = line; *label = *key = *value = NULL; kstart = kend = 0; /* skip whitespace */ while (isspace(*(p + kstart))) kstart++; kend = kstart; /* find end of label */ while (*(p + kend) && !isspace(*(p + kend))) kend++; /* label */ *label = wstrndup(p + kstart, kend - kstart); kstart = kend + 1; /* skip whitespace */ while (isspace(*(p + kstart))) kstart++; kend = kstart; /* find end of key */ while (*(p + kend) && !isspace(*(p + kend))) kend++; /* key */ *key = wstrndup(p + kstart, kend - kstart); kstart = kend + 1; /* skip until after " */ while (*(p + kstart) && *(p + kstart) != '"') kstart++; kstart++; kend = kstart; /* skip until " */ while (*(p + kend) && *(p + kend) != '"') kend++; /* value */ *value = wstrndup(p + kstart, kend - kstart); } /* normalize and convert one wmconfig-format entry to wm format */ static Bool wmc_to_wm(WMConfigMenuEntry **wmc, WMMenuEntry **wm) { char *p; size_t slen; /* only Exec is mandatory, and it's better exist in a known place */ if (!((*wmc)->Exec && *(*wmc)->Exec && fileInPath((*wmc)->Exec))) return False; /* normalize Exec: wmconfig tends to stick an ampersand * at the end of everything, which we don't need */ slen = strlen((*wmc)->Exec) - 1; p = (*wmc)->Exec; while (slen > 0 && (isspace(*(p + slen)) || *(p + slen) == '&')) *(p + slen--) = '\0'; /* if there's no Name, use the first word of Exec; still better * than nothing. i realize it's highly arguable whether `xterm' from * `xterm -e "ssh dev push-to-prod"' is helpful or not, but since * the alternative is to completely lose the entry, i opt for this. * you could just fix the descriptor file to have a label <G> */ if (!(*wmc)->Name) { (*wmc)->Name = wstrdup((*wmc)->Exec); p = strchr((*wmc)->Name, ' '); if (p) *p = '\0'; } /* if there's no Category, use "Applications"; apparently "no category" * can manifest both as no `group' descriptor at all, or a group * descriptor of "" */ if (!(*wmc)->Category || !*(*wmc)->Category) (*wmc)->Category = wstrdup("Applications"); /* the `restart' type is used for restart, restart other * wm and quit current wm too. separate these cases. */ if ((*wmc)->Restart) { if (strcmp((*wmc)->Restart, "restart") == 0) (*wmc)->Flags |= F_RESTART_SELF; else if (strcmp((*wmc)->Restart, "quit") == 0) (*wmc)->Flags |= F_QUIT; else (*wmc)->Flags |= F_RESTART_OTHER; } (*wm)->Name = (*wmc)->Name; (*wm)->CmdLine = (*wmc)->Exec; (*wm)->SubMenu = (*wmc)->Category; (*wm)->Flags = (*wmc)->Flags; return True; } static void init_wmconfig_storage(WMConfigMenuEntry **wmc) { if ((*wmc)->Category) wfree((*wmc)->Category); (*wmc)->Category = NULL; if ((*wmc)->Name) wfree((*wmc)->Name); (*wmc)->Name = NULL; if ((*wmc)->Restart) wfree((*wmc)->Restart); (*wmc)->Restart = NULL; (*wmc)->Flags = 0; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/wmgenmenu.c�����������������������������������������������������������������0000644�0001750�0001750�00000032333�12214432632�014110� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2010 Carlos R. Mafra */ #ifdef __GLIBC__ #define _GNU_SOURCE /* getopt_long */ #endif #include <ctype.h> #include <getopt.h> #include <limits.h> #include <locale.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <WINGs/WUtil.h> #include "../src/wconfig.h" #define MAX_NR_APPS 128 /* Maximum number of entries in each apps list */ #define MAX_WMS 10 /* Maximum number of other window managers to check */ #include "wmgenmenu.h" static void find_and_write(const char *group, char *list[][2], int this_is_terminals); static void other_window_managers(void); static void print_help(int print_usage, int exitval); extern char *__progname; char *path, *terminal = NULL; WMPropList *RMenu, *L1Menu, *L2Menu, *L3Menu, *L4Menu; int main(int argc, char *argv[]) { char *t; int ch; struct option longopts[] = { { "version", no_argument, NULL, 'v' }, { "help", no_argument, NULL, 'h' }, { NULL, 0, NULL, 0 } }; while ((ch = getopt_long(argc, argv, "hv", longopts, NULL)) != -1) switch (ch) { case 'v': printf("%s (Window Maker %s)\n", __progname, VERSION); return 0; /* NOTREACHED */ case 'h': print_help(1, 0); /* NOTREACHED */ default: print_help(0, 1); /* NOTREACHED */ } argc -= optind; argv += optind; if (argc != 0) print_help(0, 1); path = getenv("PATH"); setlocale(LC_ALL, ""); #if HAVE_LIBINTL_H && I18N if (getenv("NLSPATH")) bindtextdomain("wmgenmenu", getenv("NLSPATH")); else bindtextdomain("wmgenmenu", LOCALEDIR); bind_textdomain_codeset("wmgenmenu", "UTF-8"); textdomain("wmgenmenu"); #endif /* * The menu generated is a five-level hierarchy, of which the * top level (RMenu) is only used to hold the others (a single * PLString, which will be the title of the root menu) * * RMenu Window Maker * L1Menu Applications * L2Menu Terminals * L3Menu XTerm * L3Menu RXVT * L2Menu Internet * L3Menu Firefox * L2Menu E-mail * L1Menu Appearance * L2Menu Themes * L2Menu Background * L3Menu Solid * L4Menu Indigo * L1Menu Configure Window Maker * */ /* Root */ RMenu = WMCreatePLArray(WMCreatePLString("Window Maker"), NULL); /* Root -> Applications */ L1Menu = WMCreatePLArray(WMCreatePLString(_("Applications")), NULL); /* Root -> Applications -> <category> */ find_and_write(_("Terminals"), Terminals, 1); /* always keep terminals the top item */ find_and_write(_("Internet"), Internet, 0); find_and_write(_("Email"), Email, 0); find_and_write(_("Mathematics"), Mathematics, 0); find_and_write(_("File Managers"), File_managers, 0); find_and_write(_("Graphics"), Graphics, 0); find_and_write(_("Multimedia"), Multimedia, 0); find_and_write(_("Editors"), Editors, 0); find_and_write(_("Development"), Development, 0); find_and_write("Window Maker", WindowMaker, 0); find_and_write(_("Office"), Office, 0); find_and_write(_("Astronomy"), Astronomy, 0); find_and_write(_("Sound"), Sound, 0); find_and_write(_("Comics"), Comics, 0); find_and_write(_("Viewers"), Viewers, 0); find_and_write(_("Utilities"), Utilities, 0); find_and_write(_("System"), System, 0); find_and_write(_("Video"), Video, 0); find_and_write(_("Chat and Talk"), Chat, 0); find_and_write(_("P2P Network"), P2P, 0); find_and_write(_("Games"), Games, 0); find_and_write("OpenSUSE", OpenSUSE, 0); find_and_write("Mandriva", Mandriva, 0); WMAddToPLArray(RMenu, L1Menu); /* Root -> `Run' dialog */ L1Menu = WMCreatePLArray( WMCreatePLString(_("Run...")), WMCreatePLString("SHEXEC"), WMCreatePLString(_("%A(Run, Type command:)")), NULL ); WMAddToPLArray(RMenu, L1Menu); /* Root -> Appearance */ L1Menu = WMCreatePLArray(WMCreatePLString(_("Appearance")), NULL); /* Root -> Appearance -> Themes */ L2Menu = WMCreatePLArray( WMCreatePLString(_("Themes")), WMCreatePLString("OPEN_MENU"), WMCreatePLString("-noext /usr/local/share/WindowMaker/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), NULL ); WMAddToPLArray(L1Menu, L2Menu); /* Root -> Appearance -> Styles */ L2Menu = WMCreatePLArray( WMCreatePLString(_("Styles")), WMCreatePLString("OPEN_MENU"), WMCreatePLString("-noext /usr/local/share/WindowMaker/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), NULL ); WMAddToPLArray(L1Menu, L2Menu); /* Root -> Appearance -> Icon Sets */ L2Menu = WMCreatePLArray( WMCreatePLString(_("Icon Sets")), WMCreatePLString("OPEN_MENU"), WMCreatePLString("-noext /usr/local/share/WindowMaker/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), NULL ); WMAddToPLArray(L1Menu, L2Menu); /* Root -> Appearance -> Background */ L2Menu = WMCreatePLArray(WMCreatePLString(_("Background")), NULL); /* Root -> Appearance -> Background -> Solid */ L3Menu = WMCreatePLArray(WMCreatePLString(_("Solid")), NULL); #define SOLID_BACK(label, colorspec) \ L4Menu = WMCreatePLArray( \ WMCreatePLString(label), \ WMCreatePLString("EXEC"), \ WMCreatePLString("wdwrite WindowMaker WorkspaceBack '(solid, \"" colorspec "\")'"), \ NULL \ ); \ WMAddToPLArray(L3Menu, L4Menu) /* Root -> Appearance -> Background -> Solid -> <color> */ SOLID_BACK(_("Black"), "black"); SOLID_BACK(_("Blue"), "#505075"); SOLID_BACK(_("Indigo"), "#243e6c"); SOLID_BACK(_("Bluemarine"), "#243e6c"); SOLID_BACK(_("Purple"), "#554466"); SOLID_BACK(_("Wheat"), "wheat4"); SOLID_BACK(_("Dark Gray"), "#333340"); SOLID_BACK(_("Wine"), "#400020"); #undef SOLID_BACK WMAddToPLArray(L2Menu, L3Menu); /* Root -> Appearance -> Background -> Gradient */ L3Menu = WMCreatePLArray(WMCreatePLString(_("Gradient")), NULL); #define GRADIENT_BACK(label, fcolorspec, tcolorspec) \ L4Menu = WMCreatePLArray( \ WMCreatePLString(label), \ WMCreatePLString("EXEC"), \ WMCreatePLString("wdwrite WindowMaker WorkspaceBack '(vgradient, \"" \ fcolorspec "\", \"" tcolorspec "\"'"), \ NULL \ ); \ WMAddToPLArray(L3Menu, L4Menu) /* Root -> Appearance -> Background -> Gradient -> <color> */ L4Menu = WMCreatePLArray( WMCreatePLString(_("Sunset")), WMCreatePLString("EXEC"), WMCreatePLString("wdwrite WindowMaker WorkspaceBack " "'(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), NULL ); WMAddToPLArray(L3Menu, L4Menu); GRADIENT_BACK(_("Sky"), "blue4", "white"); GRADIENT_BACK(_("Blue Shades"), "#7080a5", "#101020"); GRADIENT_BACK(_("Indigo Shades"), "#746ebc", "#242e4c"); GRADIENT_BACK(_("Purple Shades"), "#654c66", "#151426"); GRADIENT_BACK(_("Wheat Shades"), "#a09060", "#302010"); GRADIENT_BACK(_("Grey Shades"), "#636380", "#131318"); GRADIENT_BACK(_("Wine Shades"), "#600040", "#180010"); #undef GRADIENT_BACK WMAddToPLArray(L2Menu, L3Menu); /* Root -> Appearance -> Background -> Images */ L3Menu = WMCreatePLArray( WMCreatePLString(_("Images")), WMCreatePLString("OPEN_MENU"), WMCreatePLString("-noext $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t"), NULL ); WMAddToPLArray(L2Menu, L3Menu); WMAddToPLArray(L1Menu, L2Menu); /* Root -> Appearance -> Save Theme */ L2Menu = WMCreatePLArray( WMCreatePLString(_("Save Theme")), WMCreatePLString("SHEXEC"), WMCreatePLString("getstyle -p \"%a(Theme name, Name to save theme as)\""), NULL ); WMAddToPLArray(L1Menu, L2Menu); /* Root -> Appearance -> Save IconSet */ L2Menu = WMCreatePLArray( WMCreatePLString(_("Save IconSet")), WMCreatePLString("SHEXEC"), WMCreatePLString("geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/" "\"%a(IconSet name,Name to save icon set as)\""), NULL ); WMAddToPLArray(L1Menu, L2Menu); WMAddToPLArray(RMenu, L1Menu); /* Root -> Workspaces */ L1Menu = WMCreatePLArray( WMCreatePLString(_("Workspaces")), WMCreatePLString("WORKSPACE_MENU"), NULL ); WMAddToPLArray(RMenu, L1Menu); /* Root -> Workspace */ L1Menu = WMCreatePLArray(WMCreatePLString(_("Workspace")), NULL); L2Menu = WMCreatePLArray( WMCreatePLString(_("Hide Others")), WMCreatePLString("HIDE_OTHERS"), NULL ); WMAddToPLArray(L1Menu, L2Menu); /* Root -> Workspace -> Show All */ L2Menu = WMCreatePLArray( WMCreatePLString(_("Show All")), WMCreatePLString("SHOW_ALL"), NULL ); WMAddToPLArray(L1Menu, L2Menu); /* Root -> Workspace -> Arrange Icons */ L2Menu = WMCreatePLArray( WMCreatePLString(_("Arrange Icons")), WMCreatePLString("ARRANGE_ICONS"), NULL ); WMAddToPLArray(L1Menu, L2Menu); /* Root -> Workspace -> Refresh */ L2Menu = WMCreatePLArray( WMCreatePLString(_("Refresh")), WMCreatePLString("REFRESH"), NULL ); WMAddToPLArray(L1Menu, L2Menu); /* Root -> Workspace -> Save Session */ L2Menu = WMCreatePLArray( WMCreatePLString(_("Save Session")), WMCreatePLString("SAVE_SESSION"), NULL ); WMAddToPLArray(L1Menu, L2Menu); /* Root -> Workspace -> Clear Session */ L2Menu = WMCreatePLArray( WMCreatePLString(_("Clear Session")), WMCreatePLString("CLEAR_SESSION"), NULL ); WMAddToPLArray(L1Menu, L2Menu); WMAddToPLArray(RMenu, L1Menu); /* Root -> Configure Window Maker */ L1Menu = WMCreatePLArray( WMCreatePLString(_("Configure Window Maker")), WMCreatePLString("EXEC"), WMCreatePLString("WPrefs"), NULL ); WMAddToPLArray(RMenu, L1Menu); /* Root -> Info Panel */ L1Menu = WMCreatePLArray( WMCreatePLString(_("Info Panel")), WMCreatePLString("INFO_PANEL"), NULL ); WMAddToPLArray(RMenu, L1Menu); /* Root -> Restart Window Maker */ L1Menu = WMCreatePLArray( WMCreatePLString(_("Restart Window Maker")), WMCreatePLString("RESTART"), NULL ); WMAddToPLArray(RMenu, L1Menu); /* Root -> Other Window Managers [-> <other window manager> ...] */ other_window_managers(); /* Root -> Lock Screen */ t = wfindfile(path, "xlock"); if (t) { L1Menu = WMCreatePLArray( WMCreatePLString(_("Lock Screen")), WMCreatePLString("EXEC"), WMCreatePLString("xlock -allowroot -usefirst -mode matrix"), NULL ); WMAddToPLArray(RMenu, L1Menu); wfree(t); } /* Root -> Exit Window Maker */ L1Menu = WMCreatePLArray( WMCreatePLString(_("Exit Window Maker")), WMCreatePLString("EXIT"), NULL ); WMAddToPLArray(RMenu, L1Menu); printf("%s", WMGetPropListDescription(RMenu, True)); puts(""); return 0; } /* * Creates an L2Menu made of L3Menu items * Attaches to L1Menu * - make sure previous menus of these levels are * attached to their parent before calling */ static void find_and_write(const char *group, char *list[][2], int this_is_terminals) { int i, argc; char *t, **argv, buf[PATH_MAX]; /* or else pre-existing menus of these levels * will badly disturb empty group detection */ L2Menu = NULL; L3Menu = NULL; i = 0; while (list[i][0]) { /* Before checking if app exists, split its options */ wtokensplit(list[i][1], &argv, &argc); t = wfindfile(path, argv[0]); if (t) { /* find a terminal to be used for cmnds that need a terminal */ if (this_is_terminals && !terminal) terminal = wstrdup(list[i][1]); if (*(argv[argc-1]) != '!') { L3Menu = WMCreatePLArray( WMCreatePLString(_(list[i][0])), WMCreatePLString("EXEC"), WMCreatePLString(list[i][1]), NULL ); } else { char comm[PATH_MAX], *ptr; strcpy(comm, list[i][1]); /* delete character " !" from the command */ ptr = strchr(comm, '!'); while (ptr >= comm && (*ptr == '!' || isspace(*ptr))) *ptr-- = '\0'; snprintf(buf, sizeof(buf), "%s -e %s", terminal ? terminal : "xterm" , comm); /* Root -> Applications -> <category> -> <application> */ L3Menu = WMCreatePLArray( WMCreatePLString(_(list[i][0])), WMCreatePLString("EXEC"), WMCreatePLString(buf), NULL ); } if (!L2Menu) L2Menu = WMCreatePLArray( WMCreatePLString(group), NULL ); WMAddToPLArray(L2Menu, L3Menu); wfree(t); } i++; } if (L2Menu) WMAddToPLArray(L1Menu, L2Menu); } /* * Creates an L1Menu made of L2Menu items * - make sure previous menus of these levels are * attached to their parent before calling * Attaches to RMenu */ static void other_window_managers(void) { int i; char *t, buf[PATH_MAX]; /* or else pre-existing menus of these levels * will badly disturb empty group detection */ L1Menu = NULL; L2Menu = NULL; i = 0; while (other_wm[i][0]) { t = wfindfile(path, other_wm[i][1]); if (t) { snprintf(buf, sizeof(buf), _("Start %s"), _(other_wm[i][0])); /* Root -> Other Window Managers -> <other window manager> */ L2Menu = WMCreatePLArray( WMCreatePLString(buf), WMCreatePLString("RESTART"), WMCreatePLString(other_wm[i][1]), NULL ); if (!L1Menu) L1Menu = WMCreatePLArray( WMCreatePLString(_("Other Window Managers")), NULL ); WMAddToPLArray(L1Menu, L2Menu); wfree(t); } i++; } if (L1Menu) WMAddToPLArray(RMenu, L1Menu); } void print_help(int print_usage, int exitval) { printf("Usage: %s [-h] [-v]\n", __progname); if (print_usage) { puts("Writes a menu structure usable as ~/GNUstep/Defaults/WMRootMenu to stdout"); puts(""); puts(" -h, --help display this help and exit"); puts(" -v, --version output version information and exit"); } exit(exitval); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/wdread.c��������������������������������������������������������������������0000644�0001750�0001750�00000005041�12214432632�013350� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* wdread.c - read value from defaults database * * WindowMaker window manager * * Copyright (c) 1997-2003 Alfredo K. Kojima * (cowardly remade from wdwrite.c; by judas@hell on Jan 26 2001) * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifdef __GLIBC__ #define _GNU_SOURCE /* getopt_long */ #endif /* * WindowMaker defaults DB reader */ #include <getopt.h> #include <limits.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <WINGs/WUtil.h> #include "../src/wconfig.h" extern char *__progname; static void print_help(int print_usage, int exitval) { printf("Usage: %s [OPTIONS] <domain> <key>\n", __progname); if (print_usage) { puts("Read <key> from <domain>'s database"); puts(""); puts(" -h, --help display this help message"); puts(" -v, --version output version information and exit"); } exit(exitval); } int main(int argc, char **argv) { char path[PATH_MAX]; WMPropList *key, *value, *dict; int ch; struct option longopts[] = { { "version", no_argument, NULL, 'v' }, { "help", no_argument, NULL, 'h' }, { NULL, 0, NULL, 0 } }; while ((ch = getopt_long(argc, argv, "hv", longopts, NULL)) != -1) switch(ch) { case 'v': printf("%s (Window Maker %s)\n", __progname, VERSION); return 0; /* NOTREACHED */ case 'h': print_help(1, 0); /* NOTREACHED */ case 0: break; default: print_help(0, 1); /* NOTREACHED */ } argc -= optind; argv += optind; if (argc != 2) print_help(0, 1); key = WMCreatePLString(argv[1]); snprintf(path, sizeof(path), "%s", wdefaultspathfordomain(argv[0])); dict = WMReadPropListFromFile(path); if (dict == NULL) return 1; /* bad domain */ value = WMGetFromPLDictionary(dict, key); if (value == NULL) return 2; /* bad key */ printf("%s\n", WMGetPropListDescription(value, True)); return 0; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/wmmenugen_parse_xdg.c�������������������������������������������������������0000644�0001750�0001750�00000034122�12214432632�016142� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * wmmenugen - Window Maker PropList menu generator * * Desktop Entry Specification parser functions * * Copyright (c) 2010. Tamas Tevesz <ice@extreme.hu> * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ /* * http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.1.html * http://standards.freedesktop.org/menu-spec/menu-spec-1.1.html * * We will only deal with Type == "Application" entries in [Desktop Entry] * groups. Since there is no passing of file name arguments or anything of * the sort to applications from the menu, execname is determined as follows: * - If `TryExec' is present, use that; * - else use `Exec' with any switches stripped * * Only the (first, though there should not be more than one) `Main Category' * is used to place the entry in a submenu. * * Basic validation of the .desktop file is done. */ #include <sys/types.h> #include <sys/stat.h> #include <ctype.h> #include <ftw.h> #if DEBUG #include <errno.h> #endif #include <stdio.h> #include <stdlib.h> #include <string.h> #include "wmmenugen.h" /* LocaleString match levels */ enum { MATCH_DEFAULT, MATCH_LANG, MATCH_LANG_MODIFIER, MATCH_LANG_COUNTRY, MATCH_LANG_COUNTRY_MODIFIER }; typedef struct { char *Name; /* Name */ /* localestring */ int MatchLevel; /* LocaleString match type */ /* int */ char *TryExec; /* TryExec */ /* string */ char *Exec; /* Exec */ /* string */ char *Path; /* Path */ /* string */ int Flags; /* Flags */ char *Category; /* Categories (first item only) */ /* string */ } XDGMenuEntry; static void getKey(char **target, const char *line); static void getStringValue(char **target, const char *line); static void getLocalizedStringValue(char **target, const char *line, int *match_level); static int getBooleanValue(const char *line); static void getMenuHierarchyFor(char **xdgmenuspec); static int compare_matchlevel(int *current_level, const char *found_locale); static Bool xdg_to_wm(XDGMenuEntry **xdg, WMMenuEntry **wmentry); static void init_xdg_storage(XDGMenuEntry **xdg); static void init_wm_storage(WMMenuEntry **wm); void parse_xdg(const char *file, void (*addWMMenuEntryCallback)(WMMenuEntry *aEntry)) { FILE *fp; char buf[1024]; char *p, *tmp, *key; WMMenuEntry *wm; XDGMenuEntry *xdg; int InGroup; fp = fopen(file, "r"); if (!fp) { #if DEBUG fprintf(stderr, "Error opening file %s: %s\n", file, strerror(errno)); #endif return; } xdg = (XDGMenuEntry *)wmalloc(sizeof(XDGMenuEntry)); wm = (WMMenuEntry *)wmalloc(sizeof(WMMenuEntry)); InGroup = 0; memset(buf, 0, sizeof(buf)); while (fgets(buf, sizeof(buf), fp)) { p = buf; /* skip whitespaces */ while (isspace(*p)) p++; /* skip comments, empty lines */ if (*p == '\r' || *p == '\n' || *p == '#') { memset(buf, 0, sizeof(buf)); continue; } /* trim crlf */ buf[strcspn(buf, "\r\n")] = '\0'; if (strlen(buf) == 0) continue; if (strcmp(p, "[Desktop Entry]") == 0) { /* if currently processing a group, we've just hit the * end of its definition, try processing it */ if (InGroup && xdg_to_wm(&xdg, &wm)) { (*addWMMenuEntryCallback)(wm); } init_xdg_storage(&xdg); init_wm_storage(&wm); InGroup = 1; /* start processing group */ memset(buf, 0, sizeof(buf)); continue; } if (!InGroup) { memset(buf, 0, sizeof(buf)); continue; } getKey(&key, p); if (key == NULL) { /* not `key' = `value' */ memset(buf, 0, sizeof(buf)); continue; } if (strcmp(key, "Type") == 0) { getStringValue(&tmp, p); if (strcmp(tmp, "Application") != 0) InGroup = 0; /* if not application, skip current group */ wfree(tmp); tmp = NULL; } else if (strcmp(key, "Name") == 0) { getLocalizedStringValue(&xdg->Name, p, &xdg->MatchLevel); } else if (strcmp(key, "NoDisplay") == 0) { if (getBooleanValue(p)) /* if nodisplay, skip current group */ InGroup = 0; } else if (strcmp(key, "Hidden") == 0) { if (getBooleanValue(p)) InGroup = 0; /* if hidden, skip current group */ } else if (strcmp(key, "TryExec") == 0) { getStringValue(&xdg->TryExec, p); } else if (strcmp(key, "Exec") == 0) { getStringValue(&xdg->Exec, p); } else if (strcmp(key, "Path") == 0) { getStringValue(&xdg->Path, p); } else if (strcmp(key, "Terminal") == 0) { if (getBooleanValue(p)) xdg->Flags |= F_TERMINAL; } else if (strcmp(key, "Categories") == 0) { getStringValue(&xdg->Category, p); getMenuHierarchyFor(&xdg->Category); } wfree(key); key = NULL; } fclose(fp); /* at the end of the file, might as well try to menuize what we have * unless there was no group at all or it was marked as hidden */ if (InGroup && xdg_to_wm(&xdg, &wm)) (*addWMMenuEntryCallback)(wm); } /* coerce an xdg entry type into a wm entry type */ static Bool xdg_to_wm(XDGMenuEntry **xdg, WMMenuEntry **wm) { char *p; /* Exec or TryExec is mandatory */ if (!((*xdg)->Exec || (*xdg)->TryExec)) return False; /* if there's no Name, use the first word of Exec or TryExec */ if ((*xdg)->Name) { (*wm)->Name = (*xdg)->Name; } else { if ((*xdg)->Exec) (*wm)->Name = wstrdup((*xdg)->Exec); else /* (*xdg)->TryExec */ (*wm)->Name = wstrdup((*xdg)->TryExec); p = strchr((*wm)->Name, ' '); if (p) *p = '\0'; } if ((*xdg)->Exec) (*wm)->CmdLine = (*xdg)->Exec; else /* (*xdg)->TryExec */ (*wm)->CmdLine = (*xdg)->TryExec; (*wm)->SubMenu = (*xdg)->Category; (*wm)->Flags = (*xdg)->Flags; return True; } /* (re-)initialize a XDGMenuEntry storage */ static void init_xdg_storage(XDGMenuEntry **xdg) { if ((*xdg)->Name) wfree((*xdg)->Name); if ((*xdg)->TryExec) wfree((*xdg)->TryExec); if ((*xdg)->Exec) wfree((*xdg)->Exec); if ((*xdg)->Category) wfree((*xdg)->Category); if ((*xdg)->Path) wfree((*xdg)->Path); (*xdg)->Name = NULL; (*xdg)->TryExec = NULL; (*xdg)->Exec = NULL; (*xdg)->Category = NULL; (*xdg)->Path = NULL; (*xdg)->Flags = 0; (*xdg)->MatchLevel = -1; } /* (re-)initialize a WMMenuEntry storage */ static void init_wm_storage(WMMenuEntry **wm) { (*wm)->Name = NULL; (*wm)->CmdLine = NULL; (*wm)->Flags = 0; } /* get a key from line. allocates target, which must be wfreed later */ static void getKey(char **target, const char *line) { const char *p; int kstart, kend; p = line; if (strchr(p, '=') == NULL) { /* not `key' = `value' */ *target = NULL; return; } kstart = 0; /* skip whitespace */ while (isspace(*(p + kstart))) kstart++; /* skip up until first whitespace or '[' (localestring) or '=' */ kend = kstart + 1; while (*(p + kend) && !isspace(*(p + kend)) && *(p + kend) != '=' && *(p + kend) != '[') kend++; *target = wstrndup(p + kstart, kend - kstart); } /* get a string value from line. allocates target, which must be wfreed later. */ static void getStringValue(char **target, const char *line) { const char *p; int kstart; p = line; kstart = 0; /* skip until after '=' */ while (*(p + kstart) && *(p + kstart) != '=') kstart++; kstart++; /* skip whitespace */ while (*(p + kstart) && isspace(*(p + kstart))) kstart++; *target = wstrdup(p + kstart); } /* get a localized string value from line. allocates target, which must be wfreed later. * matching is dependent on the current value of target as well as on the * level the current value is matched on. guts matching algorithm is in * compare_matchlevel(). */ static void getLocalizedStringValue(char **target, const char *line, int *match_level) { const char *p; char *locale; int kstart; int sqbstart, sqbend; p = line; kstart = 0; sqbstart = 0; sqbend = 0; locale = NULL; /* skip until after '=', mark if '[' and ']' is found */ while (*(p + kstart) && *(p + kstart) != '=') { switch (*(p + kstart)) { case '[': sqbstart = kstart + 1;break; case ']': sqbend = kstart; break; default : break; } kstart++; } kstart++; /* skip whitespace */ while (isspace(*(p + kstart))) kstart++; if (sqbstart > 0 && sqbend > sqbstart) locale = wstrndup(p + sqbstart, sqbend - sqbstart); /* if there is no value yet and this is the default key, return */ if (!*target && !locale) { *match_level = MATCH_DEFAULT; *target = wstrdup(p + kstart); return; } if (compare_matchlevel(match_level, locale)) { wfree(locale); *target = wstrdup(p + kstart); return; } return; } /* get a boolean value from line */ static Bool getBooleanValue(const char *line) { char *p; int ret; ret = 0; getStringValue(&p, line); ret = strcmp(p, "true") == 0 ? True : False; wfree(p); return ret; } /* perform locale matching by implementing the algorithm specified in * xdg desktop entry specification, section "localized values for keys". */ static Bool compare_matchlevel(int *current_level, const char *found_locale) { /* current key locale */ char *key_lang, *key_ctry, *key_enc, *key_mod; parse_locale(found_locale, &key_lang, &key_ctry, &key_enc, &key_mod); if (env_lang && key_lang && /* Shortcut: if key and env languages don't match, */ strcmp(env_lang, key_lang) != 0) /* don't even bother. This takes care of the great */ return False; /* majority of the cases without having to go through */ /* the more theoretical parts of the spec'd algo. */ if (!env_mod && key_mod) /* If LC_MESSAGES does not have a MODIFIER field, */ return False; /* then no key with a modifier will be matched. */ if (!env_ctry && key_ctry) /* Similarly, if LC_MESSAGES does not have a COUNTRY field, */ return False; /* then no key with a country specified will be matched. */ /* LC_MESSAGES value: lang_COUNTRY@MODIFIER */ if (env_lang && env_ctry && env_mod) { /* lang_COUNTRY@MODIFIER */ if (key_lang && key_ctry && key_mod && strcmp(env_lang, key_lang) == 0 && strcmp(env_ctry, key_ctry) == 0 && strcmp(env_mod, key_mod) == 0) { *current_level = MATCH_LANG_COUNTRY_MODIFIER; return True; } else if (key_lang && key_ctry && /* lang_COUNTRY */ strcmp(env_lang, key_lang) == 0 && strcmp(env_ctry, key_ctry) == 0 && *current_level < MATCH_LANG_COUNTRY) { *current_level = MATCH_LANG_COUNTRY; return True; } else if (key_lang && key_mod && /* lang@MODIFIER */ strcmp(env_lang, key_lang) == 0 && strcmp(env_mod, key_mod) == 0 && *current_level < MATCH_LANG_MODIFIER) { *current_level = MATCH_LANG_MODIFIER; return True; } else if (key_lang && /* lang */ strcmp(env_lang, key_lang) == 0 && *current_level < MATCH_LANG) { *current_level = MATCH_LANG; return True; } else { return False; } } /* LC_MESSAGES value: lang_COUNTRY */ if (env_lang && env_ctry) { /* lang_COUNTRY */ if (key_lang && key_ctry && strcmp(env_lang, key_lang) == 0 && strcmp(env_ctry, key_ctry) == 0 && *current_level < MATCH_LANG_COUNTRY) { *current_level = MATCH_LANG_COUNTRY; return True; } else if (key_lang && /* lang */ strcmp(env_lang, key_lang) == 0 && *current_level < MATCH_LANG) { *current_level = MATCH_LANG; return True; } else { return False; } } /* LC_MESSAGES value: lang@MODIFIER */ if (env_lang && env_mod) { /* lang@MODIFIER */ if (key_lang && key_mod && strcmp(env_lang, key_lang) == 0 && strcmp(env_mod, key_mod) == 0 && *current_level < MATCH_LANG_MODIFIER) { *current_level = MATCH_LANG_MODIFIER; return True; } else if (key_lang && /* lang */ strcmp(env_lang, key_lang) == 0 && *current_level < MATCH_LANG) { *current_level = MATCH_LANG; return True; } else { return False; } } /* LC_MESSAGES value: lang */ if (env_lang) { /* lang */ if (key_lang && strcmp(env_lang, key_lang) == 0 && *current_level < MATCH_LANG) { *current_level = MATCH_LANG; return True; } else { return False; } } /* MATCH_DEFAULT is handled in getLocalizedStringValue */ return False; } /* get the (first) xdg main category from a list of categories */ static void getMenuHierarchyFor(char **xdgmenuspec) { char *category, *p; char buf[1024]; if (!*xdgmenuspec || !**xdgmenuspec) return; category = wstrdup(*xdgmenuspec); wfree(*xdgmenuspec); memset(buf, 0, sizeof(buf)); p = strtok(category, ";"); while (p) { /* get a known category */ if (strcmp(p, "AudioVideo") == 0) { snprintf(buf, sizeof(buf), "%s", _("Audio & Video")); break; } else if (strcmp(p, "Audio") == 0) { snprintf(buf, sizeof(buf), "%s", _("Audio")); break; } else if (strcmp(p, "Video") == 0) { snprintf(buf, sizeof(buf), "%s", _("Video")); break; } else if (strcmp(p, "Development") == 0) { snprintf(buf, sizeof(buf), "%s", _("Development")); break; } else if (strcmp(p, "Education") == 0) { snprintf(buf, sizeof(buf), "%s", _("Education")); break; } else if (strcmp(p, "Game") == 0) { snprintf(buf, sizeof(buf), "%s", _("Game")); break; } else if (strcmp(p, "Graphics") == 0) { snprintf(buf, sizeof(buf), "%s", _("Graphics")); break; } else if (strcmp(p, "Network") == 0) { snprintf(buf, sizeof(buf), "%s", _("Network")); break; } else if (strcmp(p, "Office") == 0) { snprintf(buf, sizeof(buf), "%s", _("Office")); break; } else if (strcmp(p, "Settings") == 0) { snprintf(buf, sizeof(buf), "%s", _("Settings")); break; } else if (strcmp(p, "System") == 0) { snprintf(buf, sizeof(buf), "%s", _("System")); break; } else if (strcmp(p, "Utility") == 0) { snprintf(buf, sizeof(buf), "%s", _("Utility")); break; } p = strtok(NULL, ";"); } if (!*buf) /* come up with something if nothing found */ snprintf(buf, sizeof(buf), "%s", _("Applications")); *xdgmenuspec = wstrdup(buf); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/wmsetbg.c�������������������������������������������������������������������0000644�0001750�0001750�00000101617�12214432632�013560� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* wmsetbg.c- sets root window background image and also works as * workspace background setting helper for wmaker * * WindowMaker window manager * * Copyright (c) 1998-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ /* * TODO: rewrite, too dirty */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <X11/Xlib.h> #include <X11/Xutil.h> #include <X11/Xatom.h> #include <string.h> #include <strings.h> #include <pwd.h> #include <signal.h> #include <sys/types.h> #include <ctype.h> #include "../config.h" #ifdef XINERAMA # ifdef SOLARIS_XINERAMA /* sucks */ # include <X11/extensions/xinerama.h> # else # include <X11/extensions/Xinerama.h> # endif #endif #include "../src/wconfig.h" #ifndef GLOBAL_DEFAULTS_SUBDIR #define GLOBAL_DEFAULTS_SUBDIR "WindowMaker" #endif #include <WINGs/WINGs.h> #include <wraster.h> typedef struct { WMRect *screens; int count; /* screen count, 0 = inactive */ } WXineramaInfo; #define WORKSPACE_COUNT (MAX_WORKSPACES+1) Display *dpy; char *display = ""; Window root; int scr; int scrWidth; int scrHeight; int scrX, scrY; WXineramaInfo xineInfo; Bool smooth = False; #ifdef XINERAMA Bool xineStretch = False; #endif Pixmap CurrentPixmap = None; char *PixmapPath = NULL; extern char *__progname; typedef struct BackgroundTexture { int refcount; int solid; char *spec; XColor color; Pixmap pixmap; /* for all textures, including solid */ int width; /* size of the pixmap */ int height; } BackgroundTexture; static void initXinerama(void) { xineInfo.screens = NULL; xineInfo.count = 0; #ifdef XINERAMA # ifdef SOLARIS_XINERAMA if (XineramaGetState(dpy, scr)) { XRectangle head[MAXFRAMEBUFFERS]; unsigned char hints[MAXFRAMEBUFFERS]; int i; if (XineramaGetInfo(dpy, scr, head, hints, &xineInfo.count)) { xineInfo.screens = wmalloc(sizeof(WMRect) * (xineInfo.count + 1)); for (i = 0; i < xineInfo.count; i++) { xineInfo.screens[i].pos.x = head[i].x; xineInfo.screens[i].pos.y = head[i].y; xineInfo.screens[i].size.width = head[i].width; xineInfo.screens[i].size.height = head[i].height; } } } # else /* !SOLARIS_XINERAMA */ if (XineramaIsActive(dpy)) { XineramaScreenInfo *xine_screens; int i; xine_screens = XineramaQueryScreens(dpy, &xineInfo.count); xineInfo.screens = wmalloc(sizeof(WMRect) * (xineInfo.count + 1)); for (i = 0; i < xineInfo.count; i++) { xineInfo.screens[i].pos.x = xine_screens[i].x_org; xineInfo.screens[i].pos.y = xine_screens[i].y_org; xineInfo.screens[i].size.width = xine_screens[i].width; xineInfo.screens[i].size.height = xine_screens[i].height; } XFree(xine_screens); } # endif /* !SOLARIS_XINERAMA */ #endif /* XINERAMA */ } static RImage *loadImage(RContext * rc, const char *file) { char *path; RImage *image; if (access(file, F_OK) != 0) { path = wfindfile(PixmapPath, file); if (!path) { wwarning("%s:could not find image file used in texture", file); return NULL; } } else { path = wstrdup(file); } image = RLoadImage(rc, path, 0); if (!image) { wwarning("%s:could not load image file used in texture:%s", path, RMessageForError(RErrorCode)); } wfree(path); return image; } static void applyImage(RContext * rc, BackgroundTexture * texture, RImage * image, char type, int x, int y, int width, int height) { int w, h; Bool fimage = False; switch (toupper(type)) { case 'S': case 'M': case 'F': if (toupper(type) == 'S') { w = width; h = height; } else if(toupper(type) == 'F') { if (image->width * height > image->height * width) { w = (height * image->width) / image->height; h = height; } else { w = width; h = (width * image->height) / image->width; } } else { if (image->width * height > image->height * width) { w = width; h = (width * image->height) / image->width; } else { w = (height * image->width) / image->height; h = height; } } if (w != image->width || h != image->height) { RImage *simage; if (smooth) { simage = RSmoothScaleImage(image, w, h); } else { simage = RScaleImage(image, w, h); } if (!simage) { wwarning("could not scale image:%s", RMessageForError(RErrorCode)); return; } fimage = True; image = simage; } /* fall through */ case 'C': { Pixmap pixmap; if (!RConvertImage(rc, image, &pixmap)) { wwarning("could not convert texture:%s", RMessageForError(RErrorCode)); return; } if (image->width != width || image->height != height) { int sx, sy, w, h; if (image->height < height) { h = image->height; y += (height - h) / 2; sy = 0; } else { sy = (image->height - height) / 2; h = height; } if (image->width < width) { w = image->width; x += (width - w) / 2; sx = 0; } else { sx = (image->width - width) / 2; w = width; } XCopyArea(dpy, pixmap, texture->pixmap, DefaultGC(dpy, scr), sx, sy, w, h, x, y); } else XCopyArea(dpy, pixmap, texture->pixmap, DefaultGC(dpy, scr), 0, 0, width, height, x, y); XFreePixmap(dpy, pixmap); if (fimage) { RReleaseImage(image); } } break; } } static BackgroundTexture *parseTexture(RContext * rc, char *text) { BackgroundTexture *texture = NULL; WMPropList *texarray; WMPropList *val; int count; char *tmp; char *type; #define GETSTRORGOTO(val, str, i, label) \ val = WMGetFromPLArray(texarray, i);\ if (!WMIsPLString(val)) {\ wwarning("could not parse texture %s", text);\ goto label;\ }\ str = WMGetFromPLString(val) texarray = WMCreatePropListFromDescription(text); if (!texarray || !WMIsPLArray(texarray) || (count = WMGetPropListItemCount(texarray)) < 2) { wwarning("could not parse texture %s", text); if (texarray) WMReleasePropList(texarray); return NULL; } texture = wmalloc(sizeof(BackgroundTexture)); GETSTRORGOTO(val, type, 0, error); if (strcasecmp(type, "solid") == 0) { XColor color; Pixmap pixmap; texture->solid = 1; GETSTRORGOTO(val, tmp, 1, error); if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) { wwarning("could not parse color %s in texture %s", tmp, text); goto error; } XAllocColor(dpy, DefaultColormap(dpy, scr), &color); pixmap = XCreatePixmap(dpy, root, 8, 8, DefaultDepth(dpy, scr)); XSetForeground(dpy, DefaultGC(dpy, scr), color.pixel); XFillRectangle(dpy, pixmap, DefaultGC(dpy, scr), 0, 0, 8, 8); texture->pixmap = pixmap; texture->color = color; texture->width = 8; texture->height = 8; } else if (strcasecmp(type, "vgradient") == 0 || strcasecmp(type, "dgradient") == 0 || strcasecmp(type, "hgradient") == 0) { XColor color; RColor color1, color2; RImage *image; Pixmap pixmap; int gtype; int iwidth, iheight; GETSTRORGOTO(val, tmp, 1, error); if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) { wwarning("could not parse color %s in texture %s", tmp, text); goto error; } color1.red = color.red >> 8; color1.green = color.green >> 8; color1.blue = color.blue >> 8; GETSTRORGOTO(val, tmp, 2, error); if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) { wwarning("could not parse color %s in texture %s", tmp, text); goto error; } color2.red = color.red >> 8; color2.green = color.green >> 8; color2.blue = color.blue >> 8; switch (type[0]) { 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(iwidth, iheight, &color1, &color2, gtype); if (!image) { wwarning("could not render gradient texture:%s", RMessageForError(RErrorCode)); goto error; } if (!RConvertImage(rc, image, &pixmap)) { wwarning("could not convert texture:%s", RMessageForError(RErrorCode)); RReleaseImage(image); goto error; } texture->width = image->width; texture->height = image->height; RReleaseImage(image); texture->pixmap = pixmap; } else if (strcasecmp(type, "mvgradient") == 0 || strcasecmp(type, "mdgradient") == 0 || strcasecmp(type, "mhgradient") == 0) { XColor color; RColor **colors; RImage *image; Pixmap pixmap; int i, j; int gtype; int iwidth, iheight; colors = malloc(sizeof(RColor *) * (count - 1)); if (!colors) { wwarning("out of memory while parsing texture"); goto error; } memset(colors, 0, sizeof(RColor *) * (count - 1)); for (i = 2; i < count; i++) { val = WMGetFromPLArray(texarray, i); if (!WMIsPLString(val)) { wwarning("could not parse texture %s", text); for (j = 0; colors[j] != NULL; j++) wfree(colors[j]); wfree(colors); goto error; } tmp = WMGetFromPLString(val); if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) { wwarning("could not parse color %s in texture %s", tmp, text); for (j = 0; colors[j] != NULL; j++) wfree(colors[j]); wfree(colors); goto error; } if (!(colors[i - 2] = malloc(sizeof(RColor)))) { wwarning("out of memory while parsing texture"); for (j = 0; colors[j] != NULL; j++) wfree(colors[j]); wfree(colors); goto error; } colors[i - 2]->red = color.red >> 8; colors[i - 2]->green = color.green >> 8; colors[i - 2]->blue = color.blue >> 8; } switch (type[1]) { 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(iwidth, iheight, colors, gtype); for (j = 0; colors[j] != NULL; j++) wfree(colors[j]); wfree(colors); if (!image) { wwarning("could not render gradient texture:%s", RMessageForError(RErrorCode)); goto error; } if (!RConvertImage(rc, image, &pixmap)) { wwarning("could not convert texture:%s", RMessageForError(RErrorCode)); RReleaseImage(image); goto error; } texture->width = image->width; texture->height = image->height; RReleaseImage(image); texture->pixmap = pixmap; } else if (strcasecmp(type, "cpixmap") == 0 || strcasecmp(type, "spixmap") == 0 || strcasecmp(type, "fpixmap") == 0 || strcasecmp(type, "mpixmap") == 0 || strcasecmp(type, "tpixmap") == 0) { XColor color; Pixmap pixmap = None; RImage *image = NULL; int iwidth = 0, iheight = 0; RColor rcolor; GETSTRORGOTO(val, tmp, 1, error); /* if (toupper(type[0]) == 'T' || toupper(type[0]) == 'C') pixmap = LoadJPEG(rc, tmp, &iwidth, &iheight); */ if (!pixmap) { image = loadImage(rc, tmp); if (!image) { goto error; } iwidth = image->width; iheight = image->height; } GETSTRORGOTO(val, tmp, 2, error); if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) { wwarning("could not parse color %s in texture %s", tmp, text); RReleaseImage(image); goto error; } if (!XAllocColor(dpy, DefaultColormap(dpy, scr), &color)) { rcolor.red = color.red >> 8; rcolor.green = color.green >> 8; rcolor.blue = color.blue >> 8; RGetClosestXColor(rc, &rcolor, &color); } else { rcolor.red = 0; rcolor.green = 0; rcolor.blue = 0; } /* for images with a transparent color */ if (image->data[3]) { RCombineImageWithColor(image, &rcolor); } switch (toupper(type[0])) { case 'T': texture->width = iwidth; texture->height = iheight; if (!pixmap && !RConvertImage(rc, image, &pixmap)) { wwarning("could not convert texture:%s", RMessageForError(RErrorCode)); RReleaseImage(image); goto error; } if (image) RReleaseImage(image); texture->pixmap = pixmap; texture->color = color; break; case 'S': case 'M': case 'C': case 'F': { Pixmap tpixmap = XCreatePixmap(dpy, root, scrWidth, scrHeight, DefaultDepth(dpy, scr)); XSetForeground(dpy, DefaultGC(dpy, scr), color.pixel); XFillRectangle(dpy, tpixmap, DefaultGC(dpy, scr), 0, 0, scrWidth, scrHeight); texture->pixmap = tpixmap; texture->color = color; texture->width = scrWidth; texture->height = scrHeight; #ifdef XINERAMA if (xineInfo.count && ! xineStretch) { int i; for (i = 0; i < xineInfo.count; ++i) { applyImage(rc, texture, image, type[0], xineInfo.screens[i].pos.x, xineInfo.screens[i].pos.y, xineInfo.screens[i].size.width, xineInfo.screens[i].size.height); } } else { applyImage(rc, texture, image, type[0], 0, 0, scrWidth, scrHeight); } #else /* !XINERAMA */ applyImage(rc, texture, image, type[0], 0, 0, scrWidth, scrHeight); #endif /* !XINERAMA */ RReleaseImage(image); } break; } } else if (strcasecmp(type, "thgradient") == 0 || strcasecmp(type, "tvgradient") == 0 || strcasecmp(type, "tdgradient") == 0) { XColor color; RColor color1, color2; RImage *image; RImage *gradient; RImage *tiled; Pixmap pixmap; int opaq; char *file; int gtype; int twidth, theight; GETSTRORGOTO(val, file, 1, error); GETSTRORGOTO(val, tmp, 2, error); opaq = atoi(tmp); GETSTRORGOTO(val, tmp, 3, error); if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) { wwarning("could not parse color %s in texture %s", tmp, text); goto error; } color1.red = color.red >> 8; color1.green = color.green >> 8; color1.blue = color.blue >> 8; GETSTRORGOTO(val, tmp, 4, error); if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) { wwarning("could not parse color %s in texture %s", tmp, text); goto error; } color2.red = color.red >> 8; color2.green = color.green >> 8; color2.blue = color.blue >> 8; image = loadImage(rc, file); if (!image) { goto error; } switch (type[1]) { case 'h': case 'H': gtype = RHorizontalGradient; twidth = scrWidth; theight = image->height > scrHeight ? scrHeight : image->height; break; case 'V': case 'v': gtype = RVerticalGradient; twidth = image->width > scrWidth ? scrWidth : image->width; theight = scrHeight; break; default: gtype = RDiagonalGradient; twidth = scrWidth; theight = scrHeight; break; } gradient = RRenderGradient(twidth, theight, &color1, &color2, gtype); if (!gradient) { wwarning("could not render texture:%s", RMessageForError(RErrorCode)); RReleaseImage(gradient); RReleaseImage(image); goto error; } tiled = RMakeTiledImage(image, twidth, theight); if (!tiled) { wwarning("could not render texture:%s", RMessageForError(RErrorCode)); RReleaseImage(gradient); RReleaseImage(image); goto error; } RReleaseImage(image); RCombineImagesWithOpaqueness(tiled, gradient, opaq); RReleaseImage(gradient); if (!RConvertImage(rc, tiled, &pixmap)) { wwarning("could not convert texture:%s", RMessageForError(RErrorCode)); RReleaseImage(tiled); goto error; } texture->width = tiled->width; texture->height = tiled->height; RReleaseImage(tiled); texture->pixmap = pixmap; } else if (strcasecmp(type, "function") == 0) { /* Leave this in to handle the unlikely case of * someone actually having function textures configured */ wwarning("function texture support has been removed"); goto error; } else { wwarning("invalid texture type %s", text); goto error; } texture->spec = wstrdup(text); return texture; error: if (texture) wfree(texture); if (texarray) WMReleasePropList(texarray); return NULL; } static void freeTexture(BackgroundTexture * texture) { if (texture->solid) { unsigned long pixel[1]; pixel[0] = texture->color.pixel; /* dont free black/white pixels */ if (pixel[0] != BlackPixelOfScreen(DefaultScreenOfDisplay(dpy)) && pixel[0] != WhitePixelOfScreen(DefaultScreenOfDisplay(dpy))) XFreeColors(dpy, DefaultColormap(dpy, scr), pixel, 1, 0); } if (texture->pixmap) { XFreePixmap(dpy, texture->pixmap); } wfree(texture->spec); wfree(texture); } static void setupTexture(RContext * rc, BackgroundTexture ** textures, int *maxTextures, int workspace, char *texture) { BackgroundTexture *newTexture = NULL; int i; /* unset the texture */ if (!texture) { if (textures[workspace] != NULL) { textures[workspace]->refcount--; if (textures[workspace]->refcount == 0) freeTexture(textures[workspace]); } textures[workspace] = NULL; return; } if (textures[workspace] && strcasecmp(textures[workspace]->spec, texture) == 0) { /* texture did not change */ return; } /* check if the same texture is already created */ for (i = 0; i < *maxTextures; i++) { if (textures[i] && strcasecmp(textures[i]->spec, texture) == 0) { newTexture = textures[i]; break; } } if (!newTexture) { /* create the texture */ newTexture = parseTexture(rc, texture); } if (!newTexture) return; if (textures[workspace] != NULL) { textures[workspace]->refcount--; if (textures[workspace]->refcount == 0) freeTexture(textures[workspace]); } newTexture->refcount++; textures[workspace] = newTexture; if (*maxTextures < workspace) *maxTextures = workspace; } static Pixmap duplicatePixmap(Pixmap pixmap, int width, int height) { Display *tmpDpy; Pixmap copyP; /* must open a new display or the RetainPermanent will * leave stuff allocated in RContext unallocated after exit */ tmpDpy = XOpenDisplay(display); if (!tmpDpy) { wwarning("could not open display to update background image information"); return None; } else { XSync(dpy, False); copyP = XCreatePixmap(tmpDpy, root, width, height, DefaultDepth(tmpDpy, scr)); XCopyArea(tmpDpy, pixmap, copyP, DefaultGC(tmpDpy, scr), 0, 0, width, height, 0, 0); XSync(tmpDpy, False); XSetCloseDownMode(tmpDpy, RetainPermanent); XCloseDisplay(tmpDpy); } return copyP; } static int dummyErrorHandler(Display * dpy, XErrorEvent * err) { return 0; } static void setPixmapProperty(Pixmap pixmap) { static Atom prop = 0; Atom type; int format; unsigned long length, after; unsigned char *data; int mode; if (!prop) { prop = XInternAtom(dpy, "_XROOTPMAP_ID", False); } XGrabServer(dpy); /* Clear out the old pixmap */ XGetWindowProperty(dpy, root, prop, 0L, 1L, False, AnyPropertyType, &type, &format, &length, &after, &data); if ((type == XA_PIXMAP) && (format == 32) && (length == 1)) { XSetErrorHandler(dummyErrorHandler); XKillClient(dpy, *((Pixmap *) data)); XSync(dpy, False); XSetErrorHandler(NULL); mode = PropModeReplace; } else { mode = PropModeAppend; } if (pixmap) XChangeProperty(dpy, root, prop, XA_PIXMAP, 32, mode, (unsigned char *)&pixmap, 1); else XDeleteProperty(dpy, root, prop); XUngrabServer(dpy); XFlush(dpy); } static void changeTexture(BackgroundTexture * texture) { if (!texture) { return; } if (texture->solid) { XSetWindowBackground(dpy, root, texture->color.pixel); } else { XSetWindowBackgroundPixmap(dpy, root, texture->pixmap); } XClearWindow(dpy, root); XSync(dpy, False); { Pixmap pixmap; pixmap = duplicatePixmap(texture->pixmap, texture->width, texture->height); setPixmapProperty(pixmap); } } static int readmsg(int fd, char *buffer, int size) { int count; count = 0; while (size > 0) { count = read(fd, buffer, size); if (count < 0) return -1; size -= count; buffer += count; *buffer = 0; } return size; } /* * Message Format: * sizeSntexture_spec - sets the texture for workspace n * sizeCn - change background texture to the one for workspace n * sizePpath - set the pixmap search path * * n is 4 bytes * size = 4 bytes for length of the message data */ static void helperLoop(RContext * rc) { BackgroundTexture *textures[WORKSPACE_COUNT]; int maxTextures = 0; char buffer[2048], buf[8]; int size; int errcount = 4; memset(textures, 0, WORKSPACE_COUNT * sizeof(BackgroundTexture *)); while (1) { int workspace = -1; /* get length of message */ if (readmsg(0, buffer, 4) < 0) { werror("error reading message from Window Maker"); errcount--; if (errcount == 0) { wfatal("quitting"); exit(1); } continue; } memcpy(buf, buffer, 4); buf[4] = 0; size = atoi(buf); /* get message */ if (readmsg(0, buffer, size) < 0) { werror("error reading message from Window Maker"); errcount--; if (errcount == 0) { wfatal("quitting"); exit(1); } continue; } #ifdef DEBUG printf("RECEIVED %s\n", buffer); #endif if (buffer[0] != 'P' && buffer[0] != 'K') { memcpy(buf, &buffer[1], 4); buf[4] = 0; workspace = atoi(buf); if (workspace < 0 || workspace >= WORKSPACE_COUNT) { wwarning("received message with invalid workspace number %i", workspace); continue; } } switch (buffer[0]) { case 'S': #ifdef DEBUG printf("set texture %s\n", &buffer[5]); #endif setupTexture(rc, textures, &maxTextures, workspace, &buffer[5]); break; case 'C': #ifdef DEBUG printf("change texture %i\n", workspace); #endif if (!textures[workspace]) { changeTexture(textures[0]); } else { changeTexture(textures[workspace]); } break; case 'P': #ifdef DEBUG printf("change pixmappath %s\n", &buffer[1]); #endif if (PixmapPath) wfree(PixmapPath); PixmapPath = wstrdup(&buffer[1]); break; case 'U': #ifdef DEBUG printf("unset workspace %i\n", workspace); #endif setupTexture(rc, textures, &maxTextures, workspace, NULL); break; case 'K': #ifdef DEBUG printf("exit command\n"); #endif exit(0); default: wwarning("unknown message received"); break; } } } static void updateDomain(const char *domain, const char *key, const char *texture) { char *program = "wdwrite"; /* here is a mem leak */ system(wstrconcat("wdwrite ", wstrconcat(domain, smooth ? " SmoothWorkspaceBack YES" : " SmoothWorkspaceBack NO"))); execlp(program, program, domain, key, texture, NULL); wwarning("warning could not run \"%s\"", program); } static WMPropList *getValueForKey(const char *domain, const char *keyName) { char *path; WMPropList *key, *val, *d; key = WMCreatePLString(keyName); /* try to find PixmapPath in user defaults */ path = wdefaultspathfordomain(domain); d = WMReadPropListFromFile(path); if (!d) { wwarning("could not open domain file %s", path); } wfree(path); if (d && !WMIsPLDictionary(d)) { WMReleasePropList(d); d = NULL; } if (d) { val = WMGetFromPLDictionary(d, key); } else { val = NULL; } /* try to find PixmapPath in global defaults */ if (!val) { path = wglobaldefaultspathfordomain(domain); if (!path) { wwarning("could not locate file for domain %s", domain); d = NULL; } else { d = WMReadPropListFromFile(path); wfree(path); } if (d && !WMIsPLDictionary(d)) { WMReleasePropList(d); d = NULL; } if (d) { val = WMGetFromPLDictionary(d, key); } else { val = NULL; } } if (val) WMRetainPropList(val); WMReleasePropList(key); if (d) WMReleasePropList(d); return val; } static char *getPixmapPath(const char *domain) { WMPropList *val; char *ptr, *data; int len, i, count; val = getValueForKey(domain, "PixmapPath"); if (!val || !WMIsPLArray(val)) { if (val) WMReleasePropList(val); return wstrdup(""); } count = WMGetPropListItemCount(val); len = 0; for (i = 0; i < count; i++) { WMPropList *v; v = WMGetFromPLArray(val, i); if (!v || !WMIsPLString(v)) { continue; } len += strlen(WMGetFromPLString(v)) + 1; } ptr = data = wmalloc(len + 1); *ptr = 0; for (i = 0; i < count; i++) { WMPropList *v; v = WMGetFromPLArray(val, i); if (!v || !WMIsPLString(v)) { continue; } strcpy(ptr, WMGetFromPLString(v)); ptr += strlen(WMGetFromPLString(v)); *ptr = ':'; ptr++; } if (i > 0) ptr--; *(ptr--) = 0; WMReleasePropList(val); return data; } static char *getFullPixmapPath(const char *file) { char *tmp; if (!PixmapPath || !(tmp = wfindfile(PixmapPath, file))) { int bsize = 512; char *path = wmalloc(bsize); while (!getcwd(path, bsize)) { bsize += bsize / 2; path = wrealloc(path, bsize); } tmp = wstrconcat(path, "/"); wfree(path); path = wstrconcat(tmp, file); wfree(tmp); return path; } /* the file is in the PixmapPath */ wfree(tmp); return wstrdup(file); } void wAbort(void) { wfatal("aborting"); exit(1); } static void print_help(void) { printf("Usage: %s [options] [image]\n", __progname); puts("Sets the workspace background to the specified image or a texture and"); puts("optionally update Window Maker configuration"); puts(""); puts(" -display display to use"); puts(" -d, --dither dither image"); puts(" -m, --match match colors"); puts(" -S, --smooth smooth scaled image"); #ifdef XINERAMA puts(" -X, --xinerama stretch image across Xinerama heads"); #endif puts(" -b, --back-color <color> background color"); puts(" -t, --tile tile image"); puts(" -e, --center center image"); puts(" -s, --scale scale image (default)"); puts(" -a, --maxscale scale image and keep aspect ratio"); puts(" -f, --fillscale scale image to fill screen and keep aspect ratio"); puts(" -u, --update-wmaker update WindowMaker domain database"); puts(" -D, --update-domain <domain> update <domain> database"); puts(" -c, --colors <cpc> colors per channel to use"); puts(" -p, --parse <texture> proplist style texture specification"); puts(" -w, --workspace <workspace> update background for the specified workspace"); puts(" -v, --version show version of wmsetbg and exit"); puts(" -h, --help show this help and exit"); } static void changeTextureForWorkspace(const char *domain, char *texture, int workspace) { WMPropList *array, *val; char *value; int j; val = WMCreatePropListFromDescription(texture); if (!val) { wwarning("could not parse texture %s", texture); return; } array = getValueForKey("WindowMaker", "WorkspaceSpecificBack"); if (!array) { array = WMCreatePLArray(NULL, NULL); } j = WMGetPropListItemCount(array); if (workspace >= j) { WMPropList *empty; empty = WMCreatePLArray(NULL, NULL); while (j++ < workspace - 1) { WMAddToPLArray(array, empty); } WMAddToPLArray(array, val); } else { WMDeleteFromPLArray(array, workspace); WMInsertInPLArray(array, workspace, val); } value = WMGetPropListDescription(array, False); updateDomain(domain, "WorkspaceSpecificBack", value); } int main(int argc, char **argv) { int i; int helperMode = 0; RContext *rc; RContextAttributes rattr; char *style = "spixmap"; char *back_color = "gray20"; char *image_name = NULL; char *domain = "WindowMaker"; int update = 0, cpc = 4, render_mode = RDitheredRendering, obey_user = 0; char *texture = NULL; int workspace = -1; signal(SIGINT, SIG_DFL); signal(SIGTERM, SIG_DFL); signal(SIGQUIT, SIG_DFL); signal(SIGSEGV, SIG_DFL); signal(SIGBUS, SIG_DFL); signal(SIGFPE, SIG_DFL); signal(SIGABRT, SIG_DFL); signal(SIGHUP, SIG_DFL); signal(SIGPIPE, SIG_DFL); signal(SIGCHLD, SIG_DFL); WMInitializeApplication("wmsetbg", &argc, argv); for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-helper") == 0) { helperMode = 1; } else if (strcmp(argv[i], "-display") == 0) { i++; if (i >= argc) { wfatal("too few arguments for %s", argv[i - 1]); exit(1); } display = argv[i]; } else if (strcmp(argv[i], "-s") == 0 || strcmp(argv[i], "--scale") == 0) { style = "spixmap"; } else if (strcmp(argv[i], "-t") == 0 || strcmp(argv[i], "--tile") == 0) { style = "tpixmap"; } else if (strcmp(argv[i], "-e") == 0 || strcmp(argv[i], "--center") == 0) { style = "cpixmap"; } else if (strcmp(argv[i], "-a") == 0 || strcmp(argv[i], "--maxscale") == 0) { style = "mpixmap"; } else if (strcmp(argv[i], "-f") == 0 || strcmp(argv[i], "--fillscale") == 0) { style = "fpixmap"; } else if (strcmp(argv[i], "-d") == 0 || strcmp(argv[i], "--dither") == 0) { render_mode = RDitheredRendering; obey_user++; } else if (strcmp(argv[i], "-m") == 0 || strcmp(argv[i], "--match") == 0) { render_mode = RBestMatchRendering; obey_user++; } else if (strcmp(argv[i], "-S") == 0 || strcmp(argv[i], "--smooth") == 0) { smooth = True; #ifdef XINERAMA } else if (strcmp(argv[i], "-X") == 0 || strcmp(argv[i], "--xinerama") == 0) { xineStretch = True; #endif } else if (strcmp(argv[i], "-u") == 0 || strcmp(argv[i], "--update-wmaker") == 0) { update++; } else if (strcmp(argv[i], "-D") == 0 || strcmp(argv[i], "--update-domain") == 0) { update++; i++; if (i >= argc) { wfatal("too few arguments for %s", argv[i - 1]); exit(1); } domain = wstrdup(argv[i]); } else if (strcmp(argv[i], "-c") == 0 || strcmp(argv[i], "--colors") == 0) { i++; if (i >= argc) { wfatal("too few arguments for %s", argv[i - 1]); exit(1); } if (sscanf(argv[i], "%i", &cpc) != 1) { wfatal("bad value for colors per channel: \"%s\"", argv[i]); exit(1); } } else if (strcmp(argv[i], "-b") == 0 || strcmp(argv[i], "--back-color") == 0) { i++; if (i >= argc) { wfatal("too few arguments for %s", argv[i - 1]); exit(1); } back_color = argv[i]; } else if (strcmp(argv[i], "-p") == 0 || strcmp(argv[i], "--parse") == 0) { i++; if (i >= argc) { wfatal("too few arguments for %s", argv[i - 1]); exit(1); } texture = argv[i]; } else if (strcmp(argv[i], "-w") == 0 || strcmp(argv[i], "--workspace") == 0) { i++; if (i >= argc) { wfatal("too few arguments for %s", argv[i - 1]); exit(1); } if (sscanf(argv[i], "%i", &workspace) != 1) { wfatal("bad value for workspace number: \"%s\"", argv[i]); exit(1); } } else if (strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--version") == 0) { printf("%s (Window Maker %s)\n", __progname, VERSION); exit(0); } else if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) { print_help(); exit(0); } else if (argv[i][0] != '-') { image_name = argv[i]; } else { printf("%s: invalid argument '%s'\n", __progname, argv[i]); printf("Try '%s --help' for more information\n", __progname); exit(1); } } if (!image_name && !texture && !helperMode) { printf("%s: you must specify a image file name or a texture\n", __progname); printf("Try '%s --help' for more information\n", __progname); exit(1); } PixmapPath = getPixmapPath(domain); if (!smooth) { WMPropList *val; /* carlos, don't remove this */ #if 0 /* some problem with Alpha... TODO: check if its right */ val = WMGetFromPLDictionary(domain, WMCreatePLString("SmoothWorkspaceBack")); #else val = getValueForKey(domain, "SmoothWorkspaceBack"); #endif if (val && WMIsPLString(val) && strcasecmp(WMGetFromPLString(val), "YES") == 0) smooth = True; } dpy = XOpenDisplay(display); if (!dpy) { wfatal("could not open display"); exit(1); } #if 0 XSynchronize(dpy, 1); #endif root = DefaultRootWindow(dpy); scr = DefaultScreen(dpy); scrWidth = WidthOfScreen(DefaultScreenOfDisplay(dpy)); scrHeight = HeightOfScreen(DefaultScreenOfDisplay(dpy)); scrX = scrY = 0; initXinerama(); if (!obey_user && DefaultDepth(dpy, scr) <= 8) render_mode = RDitheredRendering; rattr.flags = RC_RenderMode | RC_ColorsPerChannel | RC_StandardColormap | RC_DefaultVisual; rattr.render_mode = render_mode; rattr.colors_per_channel = cpc; rattr.standard_colormap_mode = RCreateStdColormap; rc = RCreateContext(dpy, scr, &rattr); if (!rc) { rattr.standard_colormap_mode = RIgnoreStdColormap; rc = RCreateContext(dpy, scr, &rattr); } if (!rc) { wfatal("could not initialize wrlib: %s", RMessageForError(RErrorCode)); exit(1); } if (helperMode) { /* lower priority, so that it wont use all the CPU */ nice(15); helperLoop(rc); } else { BackgroundTexture *tex; char buffer[4098]; if (!texture) { char *image_path = getFullPixmapPath(image_name); sprintf(buffer, "(%s, \"%s\", %s)", style, image_path, back_color); wfree(image_path); texture = (char *)buffer; } if (update && workspace < 0) { updateDomain(domain, "WorkspaceBack", texture); } tex = parseTexture(rc, texture); if (!tex) exit(1); if (workspace < 0) changeTexture(tex); else { /* always update domain */ changeTextureForWorkspace(domain, texture, workspace); } } return 0; } �����������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/wxpaste.c�������������������������������������������������������������������0000644�0001750�0001750�00000013474�12214432632�013606� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* wxpaste.c- paste contents of cutbuffer to stdout * * Copyright (c) 1997-2003 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., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include "../config.h" #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <errno.h> #include <X11/Xlib.h> #include <X11/Xatom.h> #include <sys/time.h> #include <sys/types.h> #ifdef HAVE_SYS_SELECT_H # include <sys/select.h> #endif #define MAXDATA (4*1024*1024) extern char *__progname; static void print_help(void) { printf("Usage: %s [OPTIONS] [FILE]\n", __progname); puts("Copies data from X selection or cutbuffer to FILE or stdout."); puts(""); puts(" -display display display to use"); puts(" --cutbuffer number cutbuffer number to get data from"); puts(" --selection [selection] reads data from named selection instead of cutbuffer"); puts(" -h, --help display this help and exit"); puts(" -v, --version output version information and exit"); } static Time getTimestamp(Display * dpy, Window win) { XEvent ev; /* So we do this trickery to get a time stamp: * * 1. Grab the server because we are paranoid and don't want to * get in a race with another instance of wxpaste being ran at the * same time. * * 2. Set a dummy property in our window. * * 3. Get the PropertyNotify event and get it's timestamp. * * 4. Ungrab the server. */ XSelectInput(dpy, win, PropertyChangeMask); /* Generate a PropertyNotify event */ XStoreName(dpy, win, "shit"); /* wait for the event */ while (1) { XNextEvent(dpy, &ev); if (ev.type == PropertyNotify) break; } return ev.xproperty.time; } static char *fetchSelection(Display * dpy, const char *selection, const char *progName) { Atom selatom = XInternAtom(dpy, selection, False); Atom clipatom = XInternAtom(dpy, "CLIPBOARD", False); Time now; XEvent ev; Window win; int ok = 0; struct timeval timeout; fd_set fdset; win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 0, 0, 1, 1, 0, 0, 0); /* * The ICCCM says that we can't pass CurrentTime as the timestamp * for XConvertSelection(), but we don't have anything to use as * a timestamp... */ now = getTimestamp(dpy, win); XConvertSelection(dpy, selatom, XA_STRING, clipatom, win, now); timeout.tv_sec = 1; timeout.tv_usec = 0; /* wait for the convertion */ while (0) { int res; if (XPending(dpy) == 0) { FD_ZERO(&fdset); FD_SET(ConnectionNumber(dpy), &fdset); res = select(ConnectionNumber(dpy) + 1, &fdset, NULL, NULL, &timeout); if (res <= 0) { ok = 0; break; } } if (res > 0 || XPending(dpy) > 0) { XNextEvent(dpy, &ev); if (ev.type == SelectionNotify && ev.xany.window == win) { ok = 1; break; } } } /* if success, return the data */ if (ok) { Atom rtype; int bits; unsigned long len, bytes; unsigned char *data; if (XGetWindowProperty(dpy, win, clipatom, 0, MAXDATA / 4, False, XA_STRING, &rtype, &bits, &len, &bytes, &data) != 0) return NULL; if ((rtype != XA_STRING) || (bits != 8)) { return NULL; } else { return (char *)data; } } return NULL; } int main(int argc, char **argv) { Display *dpy; int i, l; int buffer = 0; char *buf; int status; char *display_name = ""; char *selection_name = NULL; for (i = 1; i < argc; i++) { if (argv[i][0] == '-') { if (argv[i][1] == 'h' || strcmp(argv[i], "--help") == 0) { print_help(); exit(0); } else if (argv[i][1] == 'v' || strcmp(argv[i], "--version") == 0) { printf("%s (Window Maker %s)\n", __progname, VERSION); exit(0); } else if (strcmp(argv[i], "-selection") == 0 || strcmp(argv[i], "--selection") == 0) { if (i < argc - 1) { selection_name = argv[++i]; } else { selection_name = "PRIMARY"; } } else if (strcmp(argv[i], "-display") == 0) { if (i < argc - 1) { display_name = argv[++i]; } else { print_help(); exit(0); } } else if (strcmp(argv[i], "-cutbuffer") == 0 || strcmp(argv[i], "--cutbuffer") == 0) { if (i < argc - 1) { i++; if (sscanf(argv[i], "%i", &buffer) != 1) { fprintf(stderr, "%s: could not convert \"%s\" to int\n", __progname, argv[i]); exit(1); } if (buffer < 0 || buffer > 7) { fprintf(stderr, "%s: invalid buffer number %i\n", __progname, buffer); exit(1); } } else { fprintf(stderr, "%s: invalid argument '%s'\n", __progname, argv[i]); fprintf(stderr, "Try '%s --help' for more information.\n", __progname); exit(1); } } } else { fprintf(stderr, "%s: invalid argument '%s'\n", __progname, argv[i]); fprintf(stderr, "Try '%s --help' for more information.\n", __progname); exit(1); } } dpy = XOpenDisplay(display_name); if (!dpy) { fprintf(stderr, "%s: could not open display \"%s\"\n", __progname, XDisplayName(display_name)); exit(1); } if (selection_name) { buf = fetchSelection(dpy, selection_name, __progname); } else { buf = NULL; } if (buf == NULL) { buf = XFetchBuffer(dpy, &l, buffer); } if (buf == NULL) { status = 1; } else { if (write(STDOUT_FILENO, buf, l) == -1) status = errno; else status = 0; } XCloseDisplay(dpy); exit(status); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/convertfonts.c��������������������������������������������������������������0000644�0001750�0001750�00000010034�12214432632�014632� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* convertfonts.c - converts fonts in a style file to fontconfig format * * WindowMaker window manager * * Copyright (c) 2004 Dan Pascu * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifdef __GLIBC__ #define _GNU_SOURCE /* getopt_long */ #endif #include <sys/stat.h> #include <getopt.h> #include <locale.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <WINGs/WUtil.h> #include "../src/wconfig.h" #include "common.h" char *FontOptions[] = { "IconTitleFont", "ClipTitleFont", "DisplayFont", "LargeDisplayFont", "MenuTextFont", "MenuTitleFont", "WindowTitleFont", "SystemFont", "BoldSystemFont", NULL }; extern char *__progname; static void print_help(int print_usage, int exitval) { printf("Usage: %s [-h] [-v] [--keep-xlfd] <style_file>\n", __progname); if (print_usage) { puts("Converts fonts in a style file into fontconfig format"); puts(""); puts(" -h, --help display this help and exit"); puts(" -v, --version output version information and exit"); puts(" --keep-xlfd preserve the original xlfd by appending a ':xlfd=<xlfd>' hint"); puts(" to the font name. This property is not used by the fontconfig"); puts(" matching engine to find the font, but it is useful as a hint"); puts(" about what the original font was to allow hand tuning the"); puts(" result or restoring the xlfd. The default is to not add it"); puts(" as it results in long, unreadable and confusing names."); } exit(exitval); } int main(int argc, char **argv) { WMPropList *style, *key, *val; char *file = NULL, *oldfont, *newfont; struct stat st; Bool keepXLFD = False; int i, ch; struct option longopts[] = { { "version", no_argument, NULL, 'v' }, { "help", no_argument, NULL, 'h' }, { "keep-xlfd", no_argument, &keepXLFD, True }, { NULL, 0, NULL, 0 } }; while ((ch = getopt_long(argc, argv, "hv", longopts, NULL)) != -1) switch(ch) { case 'v': printf("%s (Window Maker %s)\n", __progname, VERSION); return 0; /* NOTREACHED */ case 'h': print_help(1, 0); /* NOTREACHED */ case 0: break; default: print_help(0, 1); /* NOTREACHED */ } argc -= optind; argv += optind; if (argc != 1) print_help(0, 1); file = argv[0]; if (stat(file, &st) != 0) { perror(file); return 1; } if (!S_ISREG(st.st_mode)) { /* maybe symlink too? */ fprintf(stderr, "%s: `%s' is not a regular file\n", __progname, file); return 1; } /* we need this in order for MB_CUR_MAX to work */ /* this contradicts big time with getstyle */ setlocale(LC_ALL, ""); WMPLSetCaseSensitive(False); style = WMReadPropListFromFile(file); if (!style) { perror(file); printf("%s: could not load style file\n", __progname); return 1; } if (!WMIsPLDictionary(style)) { printf("%s: '%s' is not a well formatted style file\n", __progname, file); return 1; } for (i = 0; FontOptions[i] != NULL; i++) { key = WMCreatePLString(FontOptions[i]); val = WMGetFromPLDictionary(style, key); if (val) { oldfont = WMGetFromPLString(val); newfont = convertFont(oldfont, keepXLFD); if (oldfont != newfont) { val = WMCreatePLString(newfont); WMPutInPLDictionary(style, key, val); WMReleasePropList(val); wfree(newfont); } } WMReleasePropList(key); } WMWritePropListToFile(style, file); return 0; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/util/wmmenugen_misc.c������������������������������������������������������������0000644�0001750�0001750�00000006734�12214432632�015131� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * wmmenugen - Window Maker PropList menu generator * * miscellaneous functions * * Copyright (c) 2010. Tamas Tevesz <ice@extreme.hu> * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include <libgen.h> #include <stdlib.h> #include <string.h> #include <WINGs/WUtil.h> static char *terminals[] = { "x-terminal-emulator", "aterm","eterm", "gnome-terminal", "konsole", "kterm", "mlterm", "rxvt", "mrxvt", "pterm", "xterm", "dtterm", NULL }; /* pick a terminal emulator by finding the first existing entry of `terminals' * in $PATH. the returned pointer should be wfreed later. * if $WMMENU_TERMINAL exists in the environment, it's value overrides this * detection. */ char *find_terminal_emulator(void) { char *path, *t, *ret; int i; path = t = ret = NULL; t = getenv("WMMENU_TERMINAL"); if (t) { ret = wstrdup(t); return ret; } path = getenv("PATH"); if (!path) return NULL; for (i = 0; terminals[i]; i++) { t = wfindfile(path, terminals[i]); if (t) break; } if (t) ret = wstrdup(basename(t)); else ret = wstrdup(t); wfree(t); return ret; } /* tokenize `what' (LC_MESSAGES or LANG if `what' is NULL) in the form of * `language[_territory][.codeset][@modifier]' into separate language, country, * encoding, modifier components, which are allocated on demand and should be * wfreed later. components that do not exist in `what' are set to NULL. */ void parse_locale(const char *what, char **language, char **country, char **encoding, char **modifier) { char *e, *p; *language = *country = *encoding = *modifier = NULL; if (what == NULL) { e = getenv("LC_MESSAGES"); if (e == NULL) { e = getenv("LANG"); /* this violates the spec */ if (e == NULL) return; } e = wstrdup(e); } else { e = wstrdup(what); } if (strlen(e) == 0 || strcmp(e, "POSIX") == 0 || strcmp(e, "C") == 0) goto out; p = strchr(e, '@'); if (p) { *modifier = wstrdup(p + 1); *p = '\0'; } p = strchr(e, '.'); if (p) { *encoding = wstrdup(p + 1); *p = '\0'; } p = strchr(e, '_'); if (p) { *country = wstrdup(p + 1); *p = '\0'; } if (strlen(e) > 0) *language = wstrdup(e); out: free(e); return; } /* determine whether (first token of) given file is in $PATH */ Bool fileInPath(const char *file) { char *p, *t; static char *path = NULL; if (!file || !*file) return False; /* if it's an absolute path spec, don't override the user. * s/he might just know better. */ if (*file == '/') return True; /* if it has a directory separator at random places, * we might know better. */ p = strchr(file, '/'); if (p) return False; if (!path) { path = getenv("PATH"); if (!path) return False; } p = wstrdup(file); t = strpbrk(p, " \t"); if (t) *t = '\0'; t = wfindfile(path, p); wfree(p); if (t) { wfree(t); return True; } return False; } ������������������������������������WindowMaker-0.95.5/util/wmmenugen.h�����������������������������������������������������������������0000644�0001750�0001750�00000004265�12214432632�014120� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * wmmenugen - Window Maker PropList menu generator * * Copyright (c) 2010. Tamas Tevesz <ice@extreme.hu> * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WMMENUGEN_H #define WMMENUGEN_H #include <WINGs/WUtil.h> #include "../src/wconfig.h" /* flags attached to a particular WMMenuEntry */ #define F_TERMINAL (1 << 0) #define F_RESTART_SELF (1 << 1) #define F_RESTART_OTHER (1 << 2) #define F_QUIT (1 << 3) /* a representation of a Window Maker menu entry. all menus are * transformed into this form. */ typedef struct { char *Name; /* display name; submenu path of submenu */ char *CmdLine; /* command to execute, NULL if submenu */ char *SubMenu; /* submenu to place entry in; only used when an entry is */ /* added to the tree by the parser; new entries created in */ /* main (submenu creation) should set this to NULL */ int Flags; /* flags */ } WMMenuEntry; /* the abstract menu tree */ extern WMTreeNode *menu; extern char *env_lang, *env_ctry, *env_enc, *env_mod; /* wmmenu_misc.c */ void parse_locale(const char *what, char **env_lang, char **env_ctry, char **env_enc, char **env_mod); char *find_terminal_emulator(void); Bool fileInPath(const char *file); /* implemented parsers */ void parse_xdg(const char *file, void (*addWMMenuEntryCallback)(WMMenuEntry *aEntry)); void parse_wmconfig(const char *file, void (*addWMMenuEntryCallback)(WMMenuEntry *aEntry)); Bool wmconfig_validate_file(const char *filename, const struct stat *st, int tflags, struct FTW *ftw); #endif /* WMMENUGEN_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/NEWS�����������������������������������������������������������������������������0000644�0001750�0001750�00000266741�12214432632�011500� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ NEWS for veteran Window Maker users ----------------------------------- --- 0.95.X New application Relaunching functionality ----------------------------------------- There are now several ways to launch a new instance of an application with the same command line that was originally used to start it. 1. By selecting Launch from the application's window menu. 2. By using the "Launch new instance of application" keyboard shortcut. 3. By clicking the application's appicon with the middle button. 4. By double-clicking the application's appicon while holding Control. For example, if you have two xterms open, one started with "xterm" and one started with "xterm -rv", using the Relaunch functionality on the first xterm would run "xterm" and using it on the second would run "xterm -rv". Thus Relaunching can also be thought of as "cloning" an application. Application Relaunching works by examining the window's WM_COMMAND property and so will not work if it is not set. Options to limit the window/menu title height --------------------------------------------- You can now set the minimum and maximum titlebar heights. For example, to force all titlebars to 24 pixels execute the following commands: $ wdwrite WindowMaker WindowTitleMinHeight 24 $ wdwrite WindowMaker WindowTitleMaxHeight 24 $ wdwrite WindowMaker MenuTitleMinHeight 24 $ wdwrite WindowMaker MenuTitleMaxHeight 24 Options to configure window/menu borders ---------------------------------------- You can now configure the width and color of window and menu borders. For example, the default settings could be configured as follows: $ wdwrite WindowMaker FrameBorderWidth 1 $ wdwrite WindowMaker FrameBorderColor black $ wdwrite WindowMaker FrameSelectedBorderColor white Keyboard shortcuts to move windows between workspaces ----------------------------------------------------- You can now bind keyboard shortcuts - or use the window dropdown menus - to move windows to other workspaces. You can either move a window directly to a particular workspace or to the "next" or "previous" workspace. The new shortcuts can be configured in WPrefs. Improved switchpanel functionality ---------------------------------- The switchpanel can be used to switch between windows of the same WM_CLASS, for example between all open xterms. If the switchpanel is opened as normal with either the "FocusNextKey" or "FocusPrevKey" shortcut, you can switch to the next (or previous) window of the same type as the focused window with the "GroupNextKey" or "GroupPrevKey" shortcut. If the switchpanel is opened with the "GroupNextKey" or "GroupPrevKey" shortcut, it will show only windows of the same type as the window which was focused at the time the panel was opened, and no difference will be seen between the two types of window selection shortcut. The new shortcuts can be configured in WPrefs, where they are described as allowing switching between windows of the same group. To maintain consistency with other popular operating systems, the switchpanel is now configured so that it no longer automatically closes when the shift key is pressed and released. To configure the switchpanel so that it does close on release of the shift key, which was the traditional Window Maker behaviour, run the following command: $ wdwrite WindowMaker StrictWindozeCycling NO If you find yourself regularly opening the switchpanel just to visualise open windows, you can run the following command to force the first "FocusNextKey" or similar shortcut to open the panel without switching to a new window. $ wdwrite WindowMaker SwitchPanelOnlyOpen YES --- 0.95.2 New Resizing functionality -------------------------- You can now use the mouse wheel and modifier keys to resize windows. MOD+Wheel will resize windows vertically and CTRL+Wheel will resize windows horizontally. MOD+CTRL+Wheel will resize both at the same time. The resize step, or increment can be set in WPrefs in the "Window Handling" page, or in the config file with "ResizeIncrement". If this intrudes into a specific application's functionality, you can disable it on an application- by-application basis by setting the "Do not bind mouse clicks" attribute in "Advanced Options". New Maximize functionality -------------------------- Maximus/Maximumize. A new tiled maximization, configured with a keyboard shortcut. Using it will maximize the window to the greatest area such that it will not overlap any other window of the same workspace. This can be configured in WPrefs in the "Keyboard Shortcuts" page, or in the config file with "MaximusKey". Left/right maximization. Now wmaker supports maximizing a window to the left or right half of the screen, making it occupy 50% of the area. This is useful on widescreen displays where you want to bring up two windows side-by- side. The shortcut keys for this can be configured in WPrefs in the "Keyboard Shortcuts" page, or in the config file with "LHMaximizeKey" and "RHMaximizeKey" History and AutoComplete in the run dialog ------------------------------------------ The "Run..." dialog now autocompletes executables in your path (triggered by the TAB key) and records the history of past commands (last 500 by default). It can also complete folder names if you start the complete with a "/" To use it replace %a with %A in the "Run..." entry in your WMRootMenu file. See commit 05720d97076ffc1569e5 for more details. Automatic menu generator (wmgenmenu) ----------------------------------- There is now a new utility to generate the Window Maker menu automatically, called wmgenmenu. It searches from a list of pre-defined applications the ones which exist in your $PATH and adds them to the corresponding submenus ("Internet", "Terminals", "Editors" etc) of your WM menu. It also supports localization (currently English and German). You can use it like: $ wmgenmenu > WMRootMenu-new $ cp WMRootMenu-new $HOME/GNUstep/Defaults/WMRootMenu and WM will automatically detect the new menu file and use it without restarting wmaker (made possible by the 'inotify' mechanism) Automatic detection of menu changes (via inotify) ------------------------------------------------- Window Maker now uses the 'inotify' mechanism from the linux kernel to automatically detect changes in the WMRootMenu file. So the --no-polling option is now gone and Window Maker does not wake up your CPU unnecessarily (0 wakeups when idle, instead of 4). So if you edit the WMRootMenu file by hand (or by using 'wmgenmenu'), there is no need to restart wmaker for the changes to take effect. DockApp recognition ------------------- In addition to applications with only Withdrawn windows, Window Maker will now treat any application with its WM_CLASS res_class set as "DockApp". This provides an easy workaround for toolkits like gtk+ that do not allow creation of windows with the initial_state member of XWMHints set to WithdrawnState. --- 0.92.0 GNUstep Installation Directory ------------------------------ WPrefs is now installed in /usr/local/bin and /usr/local/share by default. If you use GNUstep and want it to install in /usr/GNUstep/Applications, you may specify --with-gnustepdir=/usr/GNUstep If the GNUSTEP_LOCAL_ROOT environment variable is defined when configure is executed, it will be used (and you don't need to use --with-gnustepdir) Cached Pixmaps Directory ------------------------ The directory where Window Maker stores the cached application pixmaps for its later use has changed from ~/GNUstep/.AppInfo/WindowMaker to ~/GNUstep/Library/WindowMaker/CachedPixmaps for better compatibility with the GNUstep path structure. Also WPrefs now stores internal data in ~/GNUstep/Library/WindowMaker/WPrefs (it was ~/GNUstep/.AppInfo/WPrefs before) X Input Methods support in WINGs -------------------------------- Preliminary support for X Input Methods was added to textfield and text widgets in WINGs. Input for text in other languages than English should work now (except for kanji which will most likely not work, even though it wasn't tested). Disabling the switch panel -------------------------- To disable the panel shown during Alt-tabbing, you may put the following in ~/GNUstep/Defaults/WindowMaker SwitchPanelImages= None; --- 0.91.0 Alt-Tab Window Switching ------------------------ You can change the appearance of the panel shown during Alt-Tab window switching with the SwitchPanelImages option: (selected_icon_tile_image, background_image, width, height) selected_icon_tile_image is the image used to highlight the currently selected window icon. It must be 64x64 pixels. background_image is the image used in the background of the panel. It must be at least 64x80. width and height are the width and size of the central part of the image. When drawing the panel, the image will be split as: |W | +--+--+--+ | | | | +--+--+--+ - | | | | H +--+--+--+ - | | | | +--+--+--+ The 4 corner images will be copied in their original sizes and the rest will be scaled to the final panel size. background_image, width and height are optional. If you leave them out, a gray panel will be used. If your machine is not very fast, you may want to use it. --- 0.90.0 NetWM / EWMH Support -------------------- Support for the EWMH standard has been added. Applications from GNOME 2.x and KDE 3.x should now interoperate better with Window Maker. Support for the obsolete/legacy GNOME 1.x, KDE 1.x and OpenLook(!) hints was wiped out for the sake of sanity. Antialiased font support ------------------------ With the addition of Xft2 support in the WINGs library, now Window Maker can display antialiased text with TrueType or any scalable fonts. You can pick fonts for Window Maker in the Font configuration section of WPrefs. Antialiased text is enabled by default, but can be disabled by adding AntialiasedText = NO; in ~/GNUstep/Defaults/WMGLOBAL This will disable antialiased text for any WINGs based application. If you only want to disable them for a specific application only, like WindowMaker for example, then add the same option in the applications configuration file, in this case ~/GNUstep/Defaults/WindowMaker For WindowMaker, this can also be achieved from the Expert panel in WPrefs. Note that bitmapped fonts look much better than TrueType when antialiasing is disabled. Global Submenus --------------- Global menus allow for system wide menus that are added to every users application menus. They are located in /usr/etc/WindowMaker/, /usr/local/etc/WindowMaker or whatever is your sysconf directory for WindowMaker. There are 2 files: GlobalMenu.pre, which is added to the beginning of the menu and GlobalMenu.post, which is added to the end of the menu. These are to be proplist format menus, for example: (("Foobar", EXEC, foobar), ("Blabla", EXEC, blabla)) or, in case you want a submenu: (("Submenu", ("Foobar", EXEC, foobar), ("Blabla", EXEC, blabla))) UTF-8 Support ------------- Window Maker now uses UTF-8 internally (and thus can display UTF-8 text in window titles and other places). Menus and po files must now be encoded in UTF-8. If your menus contain non ASCII characters, you can convert them to UTF-8 with the following command: iconv -f <current-file-encoding> -t utf-8 <filename> > <filename>.utf8 For example: iconv -f iso-8859-1 -t utf-8 menu > menu.utf mv menu.utf menu Icon Panel for Alt-Tabbing -------------------------- A panel with icons for the windows that you can switch to will appear when you press Alt-Tab. You can navigate through the windows with Alt-Tab (Alt-Shift-Tab) or with the left/right keys once the panel is shown. --- 0.80.0 Shading/Unshading windows using mouse wheel on their titlebar ------------------------------------------------------------- In addition to the known methods of shading/unshading a window, one can now do this by using the mouse wheel on the window's titlebar. The mouse events are interpreted via a mapping in the global WINGs configuration file, WMGLOBAL, by the MouseWheelUp and MouseWheelDown directives which will do shading and unshading respectfully. However, to avoid unwanted triggers of shading/unshading the window, two consecutive mouse wheel events in the same direction are required. The trigger won't occur if the events are separated by more than a double-click's worth of time, which is technically speaking like making a double-click with the button that corresponds to the mouse wheel direction. Practically speaking, this means that you have to move the mouse wheel up or down quickly, like when you want to quickly scroll over something big. Shared application icons ------------------------ Real application icon sharing was implemented in place of the collapse appicon thing. With this applications of the same instance.class will have a single shared application icon and hiding will hide all windows of the aplications attached to that appicon as if there is a single application. This feature is enabled by default for all applications in the global WMWindowAttributes defaults domain using: "*" = {SharedAppIcon = Yes;}; If you're not satisfied with this or want the old behaviour back you can revert this (either in the global domain for all users or in your personal WMWindowAttibutes domain) using SharedAppIcon = No; for "*" It can also be enabled/disabled for individual applications as needed. Setting this option can be done using the window's inspector panel in the "Application Specific" section. You can set/unset it for all applications by using the "Defaults for all windows" in the "Window Specification" section Basically using this can have 2 major scenarios: 1. Leave it on by default, but disable it for the few specific applications that do not behave well with it. (default) 2. Leave it off by default, and enable it for all applications for which you want it enabled. At this point all applications we tested work ok, some of them even work better with this feature turned on: for example xmms and Corel's WorkPerfect8 now only have 1 appicon (they used to have 2 without this feature). This feature is turned off by default for the following applications because it's incompatible with them: 1. all GNUstep applications 2. applications with an application menu (wterm, Aileron, etc) 3. all applications with withdrawn windows only (this means all dockapps) As a side note: wterm can use the shared appicon feature as long as it doesn't use the appmenu (will do this by default). If you start it using the appmenu (wterm -wm) it will disable the shared appicon feature because apps with appmenus are incompatible with this feature. If an application is a GNUstep application or if it has an appmenu, it's detected automatically and the shared appicon is disabled automatically without any user intervention or need to configure anything. Dock/Clip stealing appicons --------------------------- This feature is different form the Clip's "Autoattract Icons" feature as it won't attach any new icon to the dock/clip. What it does, is when you start an application by other means than dock/clip, like for example using the main menu or a terminal, it will search the dock/clips for the presence of an appicon for that application, that is not already running at that moment and will attach the started application to that appicon in the dock/clip if available, making it look like the dock/clip just stole the appicon for the started application. There is an animation for this to offer visual feedback that this happened. --- 0.70.0 New dock option --------------- Copy/paste launch in dock. ========================== For example, put netscape %s in the Docked icon for Netscape, select an url somewhere and then middle-click the icon. The command will be launched with the "pasted" string. Xinerama Support ================ Supported Xinerama features: - Normal maximization of windows will maximize to only one of the screens, the one where the cursor pointer is. - Full Maximize command in window menu - Place dialogs in the middle of the head where the pointer is - Try to place windows inside one head in non-manual placement modes Less dependancies ----------------- starting with 0.70.0 libPropList is no longer required to build Window Maker. PropList handling code was added to WINGs being now better integrated with all the rest. For more details check the Changelog and the following files: ./WINGs/ChangeLog ./WINGs/NEWS ./WINGs/WINGs/WUtil.h ./WINGs/WINGs/proplist-compat.h --- 0.65.1 Removed FocusFollowMouse option, only SloppyFocus present now. Added None option to MoveDisplay and ResizeDisplay --- 0.65.0 Single AppIcon -------------- Removed --single-appicon patch and replaced it with a application specific collapsing option. Check inspector panel and appicon menu. New options to configure the workspace mouse actions ---------------------------------------------------- The following options were removed from the WindowMaker defaults configuration file: SelectWindowsMouseButton, WindowListMouseButton and ApplicationMenuMouseButton. They were replaced with the following 3+1: MouseLeftButtonAction, MouseMiddleButtonAction and MouseRightButtonAction plus MouseWheelAction In the old way because all gravitated around the workspace actions to which specific mouse buttons could have been bound, it allowed one to specify in the configuration file settings which would have led to weird situations that also had undesirable results. For example the same mouse button (for example left) could have been assigned to all workspace actions: 'select windows', 'show window list menu' and 'show applications menu' which of course were not only impossible to accomplish while still having a properly working workspace, but they also allowed one to specify some settings in the configuration file that were never in fact translatable to proper workspace actions. To void this kind of user interface inconsistency, the new options now gravitate around the physical device (the mouse and its buttons) to which specific workspace actions can be bound. This way, even if one assigns the same action to all mouse buttons, that situation while gives redundant and unpractical settings it will still translatable to proper workspace actions: all buttons will execute the same action, but a button will execute only one action at a time. The new options take the following values: all Mouse...ButtonAction can have one of the following values: None, SelectWindows, OpenApplicationsMenu or OpenWindowListMenu MouseWheelAction can be one of None or SwitchWorkspaces If you had the default actions bound to mouse buttons before, then it will work for you without any intervention in the configuration files. Else you need to use WPrefs.app to bind the actions to the mouse buttons again to your old settings. Also if you want to change the mouse wheel behavior regarding workspaces you can now (use WPrefs.app to do this). Client supplied icons --------------------- Window Maker saves the client supplied icons in ~/GNUstep/Library/WindowMaker/CachedPixmaps in XPM format for later use when the app is no longer running (to have the image to display for docked icons for example). Until recently the XPM images saved by Window Maker were incorrect, but a recent fix in the code to save XPM's fixed them. But with this fix, all previously saved XPM's in that directory are no longer readable (they give wrong images on screen or fail to load). To avoid the need for the user to fix this by hand editing WMWindowAttributes and removing all references to icons in ~/GNUstep/Library/WindowMaker/CachedPixmaps which can be annoying, new code was added to Window Maker to permit the regeneration of images in ~/GNUstep/Library/WindowMaker/CachedPixmaps if they are missing. With this addition, all you need to do to fix your old broken images, is to delete all *.xpm files from ~/GNUstep/Library/WindowMaker/CachedPixmaps. Next time the application that is supplying an icon image will start the icon will be recreated if missing, but this time it will be saved with the new XPM save code which produces good XPM images. All the rest of the process is transparent to the user. Hermes library support ---------------------- If configure finds hermes library (an optimized pixel format conversion library) installed it will use it to do the pixel format conversion in the wraster library for some cases (TrueColor visuals without dithering). Currently the hermes routines cannot convert to an indexed destination, so we can't use hermes for PseudoColor, GrayScale and StaticGray visuals. Also hermes only does dithering for just 2 combinations of source/destination bits/masks none of them useful to out needs so for dithering we still use out routines. The Hermes library is completely optional, you can build Window Maker without having it, it just speeds up the things a little for some situations. hermes library is available here: http://www.clanlib.org/hermes/ --- 0.64.0 No Polling of Configuration Files --------------------------------- Running Window Maker with one of -nopolling or --no-polling command line options will make it not to poll every 3 seconds for changes in its configuration files (good for laptops to let them spin disks down when idle). Note: For the ones used with Jim Knoble's 'no polling' patch, this is the same, except that the need to #define ENABLE_NO_POLLING in wconfig.h was removed and the behaviour is always available if you use the command line option. --- 0.63.0 Interwoven Gradient ------------------- interwoven gradients rip^Winspired on blackbox. Will render a texture that interweaves 2 different ones. (igradient, from1, to1, thickness1, from2, to2, thickness2) Will render a interwoven texture with the 2 specified gradients, with each section having the specified thickness. wmagnify -------- The wmagnify utility will magnify the area on teh screen where your mouse pointer is located, updating it in real-time. tip: maximize it horizontally, make it Omnipresent and Always at Bottom. Then leave it in the bottom of the screen. workspace border ---------------- 2 options (WorkspaceBorder and WorkspaceBorderSize) were added to allow one to set a small (0..5 pixels) border for the workspace. This border will not be covered by windows when maximizing, allowing one to easily access the clip or map a menu using the mouse in the border area, even when there are windows maximized in both horizontal and vertical directions. WorkspaceBorder can be one of (None, LeftRight, TopBottom, AllDirections) while WorkspaceBorderSize is the size in pixles of the border not to be covered by windows when maximizing (usually a small amount 0..5 pixles). Both options can be set using WPrefs.app in the "Miscelaneous Ergonomic Preferences" section. WPrefs will always limit WorkspaceBorderSize in the (0..5) range. Note that if "full screen maximization" option is set for a window, that window will ignore this border area, maximizing to full screen. --- 0.62.0 Optimizations!! --------------- Code for converting wrlib images into X Pixmaps was optimized in many ways, both in the original C code and in assembly for Pentium(tm) processors (with and without MMX(tm)). Depending on the bit depth/color mode and CPU model, performance increases can go up to 150% Weendoze Window Cycling (alt-tab) --------------------------------- Window cycling was changed to weendoze style. NoBorder Window Attribute -------------------------- The NoBorder window attribute (to be put in ~/GNUstep/Defaults/WindowAttributes) was added and will remove the 1 pixel border around windows. Removed "Keep Attracted Icons" option from Clip's menu ------------------------------------------------------ Since this option brought more confusion than usefulness among users, and since it was usable only in a very limited context, being able to fill up the Clip very easily, it was removed. An alternative way of gaining the same functionality is to use the "Keep icon" entry in the Clip's main menu. Or select multiple icons before calling that entry, to make it apply to more than one icon. Note: "Keep icon", as the obsoleted "Keep Attracted Icons" had nothing to do with holding icons in Clip, while the application is running. Once they are attracted, they are kept until the application close. Using "Keep icon", will only assure that the icon will be kept, even after the application is closed. Please don't ask for this option back. It's error prone, and very unintuitive. Considering it's very restrictive usability, and it's very ambiguous topic, it does not need a special entry in the Clip's menu, taking in count that there are already better alternative ways of gaining the same functionality. Removed DisplayFont Option --------------------------- The font for the geometry size will be controlled by the default WINGs font (SystemFont in WMGLOBAL) now. Others ------ - added DONT_SCALE_ICONS compile time option - added --dont-restore cmd line option. When passed to wmaker, it wont restore the state saved previously. --- 0.61.1 New libPropList --------------- new libPropList-0.9.1 is REQUIRED to build Window Maker 0.61.1. go grab it and install it first. --- 0.60.1 Window Edge Attraction ---------------------- Window edge attraction was now added. Attraction = YES/NO; will enable/disable gravity to edge's boder. The strength of gravity can be controled by modify `EdgeResistance' value in WindowMaker configuration file. Titlebar Draw String Plugin --------------------------- FTitleColor, UTitleColor, PTitleColor, MenuTitleColor can be assigend with drawstring plugin instead of plain color. For example: FTitleColor = ( function, libwmfun.so, drawPlainString, gold, black, gray49 ); will invoke function drawplainstring from libwmfun.so and pass 3 colors for arguments. To code new plugin, please see plugin.h for more informations. --- 0.60.0 User Menu --------- The user menu is now a compile time option disabled by default. Supply --enable-usermenu to configure to enable it. root menu INCOMPATIBLE changes ------------------------------ EXEC <program> will execute the named program SHEXEC <command> will execute the shell command. If you want to execute something like blabla > /dev/null, then use SHEXEC Dont forget to update your menus. New Option For setstyle ----------------------- The --ignore flag will tell setstyle to not change the option that is specified, when modifying the Window Maker configurations. For example: setstyle --ignore MenuStyle sometheme.themed will cause the MenuStyle option to not be changed. setstyle --ignore FTitleBack --ignore UTitleBack --ignore PTitleBack bla.themed will load the theme, but keep the titlebar background related options as before. MultiByte Text Support Changes ------------------------------ The --enable-kanji configure option is not needed anymore and was removed. To enable support for multibyte text, you must: - set the LANG environment variable to the appropriate value - change the font configurations to contain font sets in the appropriate encodings in both ~/G/D/WindowMaker and ~/G/D/WMGLOBAL (for WPrefs) - set the MultiByteText option to YES in both of the above files New Options ----------- WorkspaceNameDisplayPosition = none/center/top/bottom/topleft/topright/bottomleft/bottomright SmoothWorkspaceBack = YES/NO will enable smoothing of scaled workspace background images. Application User Menu Path Changes ---------------------------------- Default configuration for user specific menus installed in /usr/local/share/WindowMaker/UserMenus or $(datadir)/WindowMaker/UserMenus and ~/GNUstep/Library/WindowMaker/UserMenus. Omnipresent icons in Clip ------------------------- Added ability to set icons docked in Clip to be omnipresent on all workspaces. To set/reset this flag use the clip menu. The Clip menu changed in the following way: - if you bring up the menu from the Clip's main icon, it will contain as before the "Rename Workspace" entry in the second position. - however, if you bring up the menu from any other icon in clip, the "Rename Workspace" menu entry is replaced by "Omnipresent" or "Toggle Omnipresent" depending on the context. This entry will work in the following way, depending on the context: 1. If there is no icon selected in the clip, then the menu will contain the entry named "Omnipresent" which will be checked accordingly to the current state of the icon (omnipresent or not), and will let you change the omnipresent state of the icon you brought the menu from. 2. If one or more icons are already selected when the Clip menu is called, the entry will be named "Toggle Omnipresent" and will apply to all selected icons trying to toggle their omnipresent state. The icons which will be succesfully changed to their new state as requested, will be unselected, while the ones that will fail for some reason to gain their new state, will remain selected. In both cases if there is no success in setting what user requested a panel will inform user of the failure. (Note: trying to set an icon to not-omnipresent will never fail. Failures can be met only when trying to set omnipresent for an icon). The icons set to omnipresent will be marked with a triangle in the upper left corner, having the color of the IconTitleColor. An icon can be set to omnipresent, only if its position is free in all the workspaces, else you will be informed of the problem and asked to fix it first. Also when dragging an omnipresent icon around in Clip, all the icons docked in all the workspaces are shown while the dragging is done, to let one easily see where are free slots in all workspaces. For advanced users, there is also a shortcut to set/reset the omnipresent state of an icon: just use "Shift+MiddleButton" (button2) on the icon you want to change. In this case only the mark in the upper left corner will appear in case of success, or nothing will happen if icon cannot be made omnipresent (advanced users are expected to know why the icon failed to be made omnipresent, so they don't need a panel to explain them why ;) ). Now before you load your gun to start a flame war because this is against your principles you love so much, please sit down and think that this is a feature, which, if you don't use, the old behaviour of the Clip is totally preserved. It just adds some extra capabilities to the Clip for people who think that this is useful. XDND drop on dock support ------------------------- Support for XDE on dock is now replaced by XDND. To enable, edit src/wconfig.h --- 0.53.0 New Options ----------- ** MenuStyle MenuStyle=<style>; will change the menu texture style. <style> can be: normal (default): for the traditional one texture per item, with bevels in each singleTexture: for a single texture that spans the whole menu, with bevels in each item flat: singleTexture without the bevels ** ResizebarBack ResizebarBack=<texture>; where <texture> is any of the textures you normally use in titlebars and other places. If the style file/theme does not contain a ResizebarBack option, setstyle will automatically hack it so that wmaker will make the theme work like before. New crash dialog panel ---------------------- From now on, whenever a fatal situation appears, Window Maker will display a dialog panel to the user and let him choose what to do. The options are: - Abort and leave a core file (usefull for debugging and getting backtraces) - Restart Window Maker (default behaviour) - Start alternate window manager (the one defined as fallback, or if not possible fvwm or twm in this order). If it will not be able to restart or start the alternate window manager, it will abort and leave the core file. Application User Menu --------------------- Applications with an appicon can have a user defined menu. This menu will emulate keyboard events, and will be sent to the applications' window(s), thus the application must accept key combinations (CTRL+N for instance). To enable this feature, #define USER_MENU in src/wconfig.h and place menu files in ~/GNUstep/Defaults/UserMenus (/usr/local/etc/WindowMaker/UserMenus globally). The user menu is in PropList format and the filename is in: <instance name>.<class name>.menu or application's main window. (Example: the menu for xcalc would be - xcalc.XCalc.menu) Example user menu syntax: ( "Calculator", ("Put 1", SHORTCUT, "2"), ("Functions", ("Put 2", SHORTCUT, "2"), ("Put 3,4 and 5", SHORTCUT, (3,4,5)) ), ("Exit", SHORTCUT, "Control+q") ) --- 0.52.0 Appearance Editing in WPrefs ---------------------------- Added Appearance/Texture editing capability in WPrefs. Workspace background selection is not yet finished. Themes ------ Removed all themes from the source tree, and moved them in a separate package. You can download the new package from the same place as this package: ftp://ftp.windowmaker.info/pub/beta/srcs/ Look after WindowMaker-extra-<version-number>.tar.gz Also WindowMaker-extra pack include the old WindowMaker-data.tar.gz which only contained icons. Look for the greatest version number when you download this package. get-wraster-flags script change ------------------------------- The name of the options passed to get-wraster-flags changed, to allow a better name compatibility with the naming conventions used by other software. The name change was as follows: --lflags was changed in --ldflags To allow backward compatibility, with already written software, the old --lflags option is still recognized, but you are encouraged to move the the new --ldflags. --- 0.51.2 New Themes ---------- Added 2 new cool themes (actually I added in 0.51.1, but forgot to put it here...) from largo (LeetWM) and BadlandZ (STEP2000). Full Screen Maximization ------------------------ The FullMaximize window attribute will allow the window to be maximized to the full size of the screen (ignoring anything like titlebar, resizebar, dock, panels etc). It should be usefull for programs that must use the whole screen, like games or things like presentation programs. --- 0.51.1 KDE Application Menu script --------------------------- wkdemenu.pl 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). Title text drop shadow ---------------------- drop shadow option added for titlebar text. This is a compile time option which needs to be defined in src/wconfig.h after you run configure and before you run make. New options and syntax for your WindowMaker domain file are: Shadow = yes/no; FShadowColor = <color>; PShadowColor = <color>; UShadowColor = <color>; MShadowColor = <color>; The shadow option is dynamic (no need for a restart). MShadowColor is for the menu title text. libPropList ----------- WARNING!!! libPropList was removed from the Window Maker distribution and is being distributed separately. If you dont have it installed yet, get it from ftp.windowmaker.info/pub/libs and install before building Window Maker. signal handling change ---------------------- SIGHUP will exit wmaker instead of restarting it!!! This is because GNOME expects the window manager to exit instead of restarting... Complaints should go to gnome people. SIGUSR1 will restart wmaker now. script change ------------- WINGs-flags was removed, and replaced by get-wraster-flags. Please remove WINGs-flags from your system, since it was obsoloted by get-wraster-flags. Continuing to use WINGs-flags can lead to hazardous effects, since is no longer updated. docklib ------- docklib is a little library for making dock applets. It's in the docklib-0.0.tar.gz file. Unpack it and read the README file there. Option Changes -------------- Removed OnTopTransients option Added OpenTransientOnOwnerWorkspace Olwm Hint Support ----------------- OPEN LOOK(tm)/olwm hints support was added. Read the appropriate section in the README file. --- 0.50.1 New option for WorkspaceBack. mpixmap is the same as spixmap, but it will scale the pixmap by keeping the aspect ratio (maximize or maxpect). The option only works for workspace backgrounds. Also added IGNORE_PPOSITION compile time flag, which is equivalent to NoPPosition from fvwm. --- 0.50.0 KDE and GNOME ------------- Added full support for GNOME and KWM hints. Read the INSTALL file to see how enable them. Everything in the so called GNOME window manager bla bla bla pseudo-spec is implemented. As for KDE stuff, it implements 90% of everything kwm does, adds some Window Maker specific extensions to it and still uses half of the memory kwm does, which should be enough to let you dump kwm ;) For details on what exactly is implemented, see comments in src/kwm.c Read the README.KDE file for more information. WARNING: Some KDE hints are badly designed, so doing things like using kpanel's desktop switcher/pager and Window Maker's internal workspace management functions to create, destroy and rename workspaces at the same time might cause unknown effects. To be on the safe side, only use either of them to manage workspaces. Switching workspaces is hopefully, safe, so you can switch workspaces from wherever you want. Workspace Specific Background Images ------------------------------------ Use the WorkspaceSpecificBack to set background images for specific workspaces. The WorkspaceBack is used as the default background image. Example: WorkspaceSpecificBack = ((solid, red), (cpixmap, ship.jpg, gray), (), (dgradient, red, blue)) This will set the background image of workspace 1 to (solid, 0), 2 to ship.jpg and 4 to a gradient. Workspace 3 and other workspaces will have the image defined by WorkspaceBack. Note that this uses quite some memory... setstyle/getstyle ----------------- setstyle now accepts the -nofonts flag, which will load the style file ignoring all font related options. Example: setstyle -nofonts Blabla.style getstyle can be used to create theme packs. See the usage in the WindowMaker/README.themes file. New Texture Type ---------------- Textured gradients will tile a texture pixmap and combine it with a gradient, using an arbitrary opaqueness. Syntax is (thgradient, <file>, <opaqueness>, <color1>, <color2>) (tvgradient, <file>, <opaqueness>, <color1>, <color2>) (tdgradient, <file>, <opaqueness>, <color1>, <color2>) where: <color1> and <color2> are the colors for the gradient, <file> is the texture file and <opaqueness> is the opaqueness to merge the texture witht the gradient, ranging from 0 to 255. Example: (thgradient, "BlueImage.jpeg", 120, white, black) The BlackTexture style and Checker theme are examples. Hints: You can use any type of pixmap file for this, but small (like 64x32) grayscale pixmap files should get the best results (fast and low memory usage). You can use color pixmaps, but it is harder to get the desired effect with them. Be warned that this texture type is the slowest. New Options ----------- IconTitleBack and IconTitleColor control the color of the miniwindow title. Both of them are colors. Example: IconTitleColor=white; IconTitleBack=black; Since this introduces an incompatibility in themes and getting flamed by the themes ppl isn't the most pleasant thing ("Whaddafuk you're thinking!? You just broke 500 themes!!!" ;) the setstyle command was hacked so that it will make old themes work as before, by trying to automatically set the above options. Note that in some cases it will not have exactly the same results as before. StartMaximized window attribute. Will maximize the window when it is mapped. AutoRaiseLower option for the Clip. This allows automatic Raise/Lower of the Clip icons when the mouse pointer enter/leave the Clip. To avoid unwanted raising/lowering there is a time threshold before raising/lowering. The thresholds can be changed in wconfig.h by changing one or both of AUTO_LOWER_DELAY and AUTO_RAISE_DELAY (expressed in miliseconds). For example if you set AUTO_RAISE_DELAY to 0, then the Clip will be raised as soon as the mouse pointer enters it's area. Setting AUTO_RAISE_DELAY to a very big value, will make the Clip to practically do not auto raise unless clicked, but to be automatically lowered after AUTO_LOWER_DELAY (ms) when leaved. New ThemePack Format -------------------- Starting with this version, a new format of themes is being supported. Before you open pine and start composing your flame, rest assured that the old format is still supported. The new format is documented in the WindowMaker/README.themes file. Root Menu --------- The -noext option for OPEN_MENU will strip whatever is after the last . in file names that appear on the opened directory. So, OPEN_MENU ~/bg WITH xv -root -quit will create a menu with all the images in ~/bg without the extension. --- 0.20.3 Icon (miniwindow) stacking -------------------------- If you want miniwindows to reside under normal windows, edit wconfig.h and change WNormalLevel (just grep for it) to WDesktopLevel 5 Button Mouse -------------- If you have a 5 button mouse and want to give some utility for the extra 2 buttons, edit the appropriate line in src/wconfig.h Clicking Button4 in the root window will switch you to the previous workspace and Button5 will do that for the next. Option Changes -------------- put NoWindowOverDock back KeepOnBottom window attribute -static command line option --------------------------- wmaker -static will start Window Maker in static mode. This will prevent wmaker from checking or making any configuration changes. That makes it possible to run wmaker before running wmaker.inst Hysteresis for menu item selection ---------------------------------- Hopefully it's intelligent enough, so you won't notice it. In case you want to know what's it, it's equivalent to that (insanely long) 2 second delay present in that Windoze95 menu, but more usefull than annoying (I hope :). To see it, do the following with your current wmaker version and later with 0.20.3: - open the apps menu and stick it - click in the item for the "Workspaces" submenu and hold - drag the mouse to the 4th or bigger entry (like "Workspace 4") in a straight line, trying to select the target item before the submenu is unmapped when you dragged over other items in the main menu Window Shortcuts ---------------- Window shortcuts are shortcuts to arbitrary windows. You can make up to 4 shortcuts. To assign a previously bound shortcut to a window use the "Select Shortcut" submenu in the window commands menu. If the shortcut is not yet assigned for any window, you can hit the shortcut to assign it to the active window. The shortcut will do the same as clicking in an entry in the window list menu. The keys for the shortcuts are defined in the ~/G/D/WindowMaker file or in WPrefs.app Option names are: WindowShortcut1Key through WindowShortcut4Key --- 0.20.2 The name of WindowMaker was changed to Window Maker. Window creation animation disabled by default. xdaliclock -shape ----------------- If you use it edit src/wconfig.h and #define OPTIMIZE_SHAPE or disable the titlebar and resizebar for the window. OPTIMIZE_SHAPE will remove the flickering for xdaliclock and other programs that change their shapes often, but will increase network traffic considerably. So, if you use xdaliclock from a remote machine it can get slow. Applications Menu ----------------- The applications menu will now use the shell in the SHELL environment variable to execute EXEC menu commands. If it is unset (I think it's always automatically set by the shell program) it will use /bin/sh Extra fancy icon kaboom :) -------------------------- Edit src/wconfig.h and #define ICON_KABOOM_EXTRA to get more effects for the icon undocking animation. Options for superfluous stuff are even more superfluous, so this will not become runtime. XDE drag and drop support ------------------------- Support for XDE drag and drop was added (by "]d" <id@maliwan.org>). To enable, edit src/wconfig.h The support works with gtk 1.1.2 libPropList ----------- libPropList will now be built automatically by wmaker. Wich means the (simplified) building process is now: ./configure make make install instead of: tar xzf libPropList.tar.gz (cd libPropList; make) make make install You also don't need to worry about GNOME libPropList incompatibilities anymore. Bug with focus lost in sloppy focus fixed ----------------------------------------- The bug only occurs in sloppy or auto focus modes, with AutoFocus disabled and Superfluous enabled. There is no easy/clean way to fix this, so Window Maker will disable the animation of window creation if the focus mode is either sloppy or auto AND AutoFocus=NO. If you want the animation, enable AutoFocus or use manual focus mode (prefered). The NoWindowUnderDock option was removed ---------------------------------------- To obtain the same result, use the "Keep Dock On Top" option in the dock menu. Persistent Program Suplied Icons -------------------------------- Application supplied icons are now stored, so that the dock will keep showing them after the app is exited. The icons are stored at ~/GNUstep/Library/WindowMaker/CachedPixmaps Sound support ------------- Sound support is now on by default. Even if you don't use sound the overhead is very small, and has no impact on performance. If you still want to optimize it and remove a few hundred of bytes, then use --disable-sound or --enable-sound=no options when you configure Window Maker. --- 0.20.0 Multihead support. wmaker will now manage all screens that are attached to the display. ------------------------------------------------------------------------------ It does so from a single process (instead of spawning a new process for each screen, like fvwm does). This keeps memory usage a lot lower than fvwm. State files have a suffix .n, where n is the number of the screen. Since I don't have a real multiheaded machine, it probably has bugs. Superfluous ----------- Yet another useless superfluous animation. Find out what exactly it is by yourself :) exitscript ---------- ~/G/L/W/exitscript will be called automatically when wmaker is exited. New runtime options ------------------- 1. Miniaturization animation is now selectable by a runtime option Add a line with IconificationStyle = <style>; to your WindowMaker configuration file. <style> can be one of: Zoom, Twist, Flip or None Case doesn't matter, and default is Zoom. 2. Edge resistance. This can be controlled by setting: EdgeResistance = xxx; in your WindowMaker configuration file. xxx is an integer greater than 0 and represents the number of pixels of edge resistance. Setting it to 0 (default) will disable this feature. New theme --------- A new theme named Night, is available in this distribution. --- 0.19.3 GIF support was added. You will need libgif 2.2 to use it. cpixmap added. Syntax is the same as tpixmap or spixmap --- 0.19.2 getstyle will include IconBack info in Style files. --- 0.19.0 libPropList was updated. If you have it installed, you must upgrade or WPrefs will crash because of bugs in libPropList. New options ----------- Balloons! --------- WindowTitleBalloons = YES; will enable balloons for window titles that are not fully visible. MiniwindowTitleBalloons = YES; will enable balloons for miniwindow titles. AppIconBalloons = YES; for application icons (docked or not) IconPosition ------------ IconPosition (the position of the icons) is specified as: IconPosition = c1c2c3; where: c1 can be t or b (meaning top or bottom) c2 can be l or r (meaning left or right) c3 can be v or h (meaning vertical or horizontal) case is insensitive. For example, IconPosition = blh; is the old iconPosition position. IconPosition = trv; will place the icons over the Dock. New window attribute -------------------- EmulateAppIcon = YES; will make the window have an application icon. Only use this option for fully specified windows (like rxvt.Rxvt). NEVER use in generic window specifications (like * or rxvt). You must restart the application for the attribute to take effect. WPrefs.app ---------- Read WPrefs/README --- 0.18.1 Boolean balues have changed!!! YES, Y and any non-zero integer will mean TRUE and anything else (including True) will mean FALSE. This is to conform to the OpenStep values used for booleans and not cause headaches later, when GNUstep apps also starts using defaults and users will try using True wich won't get recognized. --- 0.18.0 Clip ---- Clip button layout was changed. IT IS TEMPORARY AND THE DEFINITIVE LOOK WILL BE DIFFERENT!!! libPropList ----------- More bugs were fixed in it. Upgrade the library if you have an older version installed, with the one included. Property list menus ------------------- Format for property list menus has changed! The redundant array for submenus was removed, so a menu that looked like: ( Applications, ("Xterm", EXEC, "xterm"), ( (Paint, ("Gimp", EXEC, "gimp"), ("XV", EXEC, "xv") ) ) ) must be changed to: ( Applications, ("Xterm", EXEC, "xterm"), (Paint, ("Gimp", EXEC, "gimp"), ("XV", EXEC, "xv") ) ) Misc ---- NUMLOCK_HACK is back. This time it works and is enabled by default. If you think you don't need it and promise me that you won't send "bug" reports saying that shortcuts stop working after a while, you can disable it ;) It will save some memory and CPU. Configuration ------------- Removed the SwapMenuButton option and added 3 finer grained options: SelectWindowsMouseButton WindowListMouseButton ApplicationMenuMouseButton Values that can be used are Left, Middle, Right and Button1 through Button5 Left is equivalent to Button1, Middle to Button2 and Right to Button3 Removed the WorkspaceChangeDelay option and corresponding action. Removed AClipColor and IClipColor Added the SelectKey back Changed default binding of Window commands menu from F10 to Control+Escape --- 0.17.4 Misc ----- libPropList has changed! Upgrade it before compiling wmaker. Hopefully the bugs that caused wmaker to crash if an error is found in the config files is fixed. If you do crash wmaker with a bad file, please try to find out the smallest possible portion of the file that still crashes wmaker and send it to me. New Options ----------- PixmapPath was split to PixmapPath and IconPath. PixmapPath is the path for the pixmaps used as textures and IconPath is for the icons. Don't forget to add IconPath to your current configuration file. There's also a new library in ~/GNUstep/Library/Icons. You should place your icons there, since icons are not a WindowMaker specific resource. DontConfirmKill=YES; will disable the confirmation panel for Kill --- 0.17.3 Interface Changes ----------------- Unhide Here in the appicon menu was changed to be the first entry. This way you can unhide the appicon with a single click without even moving the pointer. Clip Commands ------------- The collect icons commands was renamed to attract icons and the attract icons options was renamed to Auto attract icons. The Remove Selected Icons was renamed to Remove Icon(s). It will act as before if some icon is selected and will remove the clicked icon (without confirmation) if it is not. Added a Keep Icon(s) command that will keep the selected icons if any is selected and the current one if none. The Move To command was renamed to Move Icon(s) To. --- 0.17.0 If you have libPropList installed, you might want to reinstall it, replacing with the included libPropList. It has a small bug fix. Misc. Changes ------------- Removed --with-gnome and made MWM_HINTS defined by default. This means that "GNOME support" will work with no additional flags passed to configure. Added support for KDE, by adding a DisableWorkspaceMouseActions option. Set it to YES and run krootwm to be able to use everything in kfm. Shortcuts for Root Menu ----------------------- There is now a new SHORTCUT optional keyword for the menus. For example, you can bind Control-F1 to xterm with: "XTerm" SHORTCUT Control+F1 EXEC xterm or F2 to ARRANGE_ICONS with: "Arrange Icons" SHORTCUT F2 ARRANGE_ICONS All commands allowed in the menu file accept the keyword, except for MENU and OPEN_MENU Interface Changes ----------------- ** Configuration of docked applications is now done in a panel instead of in the menu. ** Added a command menu for application icons ** Shift double-click on the application icon will unhide the app in the current workspace. Option Changes -------------- NotMiniaturizable option changed to NoMiniaturizeButton NotClosable option changed to NoCloseButton Speed options values are now UltraFast, Fast, Medium, Slow or UltraSlow ^^^^^^ Removed the Select keyboard binding. You can access it in the window commands menu. Removed the ClipMaxIcons option and made it a compile time option. Removed the ConstrainWindowSize option Renamed NoSound to DisableSound Renamed NoAutowrap to DontLinkWorkspaces Renamed NoDithering to DisableDithering Renamed NoAnimations to DisableAnimations Removed the LeftHanded option and added a SwapMenuButton option. SwapMenuButton will make the rubberband selection in the root window be bound to the right button and the root menu to the left button. New way to display temporary icons ---------------------------------- The icons that are attracted by Clip, but will not be kept after the application close, are now using a different color for shading, unlike previous version that always used white. This will improve look for very different color combinations, and allow the user to control the look of the shaded icon. The color used for shading the icons is computed as follows: First a color is computed depending on the IconBack type: - for solid the color is the solid color itself. - for simple gradients the color is (from_color + to_color)/2. - for multiple gradients, the color is the first color in list. - for pixmaps, the color is the solid color specified for that pixmap. Then the color is made lighter by multiplying each red/green/blue filed with 1.7 and limiting each field to 0xff in case they exceed this value. Then this new color will be used by superposing it with the icon we want to shade, using a proper alpha value. To control the color for shading is simple: - In case of multi gradients you just need to put the first color, as the color you like. WindowMaker do not use the first color in the list to directly build the gradient, but only when it needs a solid color for something (like in this case). - For pixmaps, put the needed color as the solid color the syntax for pixmaps require. This color is also not used when displaying normal icons, just when solid colors are needed (like this case). - For solid color, or simple gradients, in case the color it uses after computing is not good enough, you can always convert the solid or simple gradient to a multi gradient with the same look, and use that one. In this case is simple, just put the needed color as first color in list. Please note that this will not slow down WindowMaker, because the IconBack is read only once at startup, and then only if it is changed. After reading it WM will construct the image of the tile, and use the image instead of recomputing the gradient every time. Here are 2 examples of converting solid or simple gradient to a same looking multi gradient: IconBack = (solid, Blue); will become IconBack = (mhgradient , LightBlue, Blue, Blue); using LightBlue as color for shading. IconBack = (dgradient, "#284569", "#082420"); will become IconBack = (mdgradient, "#183454", "#284569", "#082420"); looking the same, but using #183454 for shading. New Sound Server Location ------------------------- The sound server new URL is http://www.frontiernet.net/~southgat/wmsound Also it seems to be running on FreeBSD too (with little changes maybe). --- 0.16.1 WINGs ----- The path for the WINGs resource files was changed. If you don't do make install, you must move /usr/local/share/WindowMaker/Resources to /usr/local/share/WINGs New Options ----------- The following new options are available: NewStyle = Yes/No; (static) Replaces --enable-newstyle DisableDock = Yes/No; (static) Same as -nodock command line option. DisableClip = Yes/No; (static) Same as -noclip. Superfluous = Yes/No; (dynamic) Replaces --enable-superfluous. NOTES. - The static options are only read at startup. Changing them, needs to restart, so they will be accounted. - DisableDock and DisableClip have lower precedence than -nodock -noclip command line options. If both option/command line option are given, then the command line option will be accounted. Start Hidden option ------------------- The start hidden option was fixed, and made to be an application wide option. It will apply to every window the application owns. Also its place in the Attribute Inspector panel, changed accordingly, to reflect this. The start miniaturized is however still applying to particular windows of an application, unless the option is set for the class. Start miniaturized, will override start hidden if both set. IMPORTANT NOTE. Because of the way Netscape Communicator is implemented, it is NOT possible to set the start hidden or miniatirized flags for it. This is because Netscape chooses to send a second map event to the window it maps. This makes the window to receive a second map request and to be unhidden or maximized back, immediately after it was hidden or miniaturized by WindowMaker at startup. --- 0.16.0 Misc. Changes ------------- The NextMenuBehaviour option was renamed to WrapMenus The WorkspaceTiedMiniwindows option was renamed to StickyIcons The .tif files were renamed to .tiff Selecting Mini Windows ---------------------- Now miniaturized windows can be selected as well as normal windows. You can do this by Shift-Click-ing them. They will be marked, and will follow you through workspaces like normal selected windows do. Miniaturizing a window will no longer deselect the window, but will place the icon and mark it as selected. The only difference between miniaturized and normal window selection is that for the moment the rubber-band selecting method works only for normal windows. Icon Selection Panel in Attributes Editor ----------------------------------------- Now, selecting icons is as easy as clicking in the file name in a list. Simplified Options ------------------ IconSlideStep, IconSlideSlowDown and IconSlideDelay were merged to IconSlideSpeed MenuScrollStep and MenuScrollDelay were merged to MenuScrollSpeed ShadeStep and ShadeDelay were merged to ShadeSpeed Valid values for them are: Fast, Normal, Slow or UltraSlow If you want to fine tune the values, they can be changed in wconfig.h Send me your set of values with an indication of how fast is your hardware, so that I can make the default values more adequate. New Window Attributes --------------------- Added StartMiniaturized and StartHidden as window attributes and removed the previous implementation. Also removed the dock menu entries. They are now settable in the Attributes Panel. Also added DontSaveSession attribute. This way, you won't end up with multiple unwanted copies of the same app after the previous session is restored. I start X with a xterm in .xinitrc instead of wmaker, wich will cause the xterm restored by wmaker be duplicate. Just add -name something to the xterm started form .xinitrc and mark DontSaveSession=YES for that window. User Specifiable Visual IDs --------------------------- wmaker now supports different visuals than the default one. It isn't of much use for most people, but can be usefull for lucky SGI users who want it to use TrueColor instead of the default PseudoColor. wmaker -visualid VISUAL_ID where VISUAL_ID is the hex code for the visual you want. Note: I don't have an SGI box and haven't tested it... Starting Workspace ------------------ The starting workspace is identified in the following order: 1. If the app is omnipresent will be mapped on the current workspace. 2. Else if the application have a StartWorkspace option set as attribute then this one will be used. 3. Else, if the application was started from Clip, the workspace on which the Clip from where it was started is used. 4. Else the current workspace is used. Restoring saved sessions will always use the saved workspace, no matter what other options are, except onmipresent. --- 0.15.1 Workspace specific mini windows ------------------------------- The minimized windows can be workspace specific, being more consistent with the rest. This is because minimized window represents just another state of a window (like normal or shaded), which all are workspace specific. This (or the old "present anywhere") behavior can be set using an option in the WindowMaker database: WorkspaceTiedMiniWindows = Yes/No; New way to animate the blowing icons ------------------------------------ There is now a compile time option that allows one to set how the icons are animated when detaching from dock/clip in superfluous mode. By default the classic "Falling pieces" animation is used. If SPREAD_ICON is #define-ed in wconfig.h, then a "Spread in four directions" animation is used instead. Take a look at the section where this is described in src/wconfig.h By default there is #undef SPREAD_ICON to select "Falling pieces" animation. Auto Colapse for Clip --------------------- The clip now supports an option named "Auto Collapse" which can be set from the clip main menu. When set, clip will stay collapsed, and will show itself when the mouse moves over it. While the mouse is over it, or over any of the icons attached to the clip, the clip will stay uncollapsed, letting you to access the attached icons. This is not true for applications like asclock, or applets of that kind, because the icon window do not belongs to WindowMaker, but to the application itself. For such icons you must keep the mouse over the icon groundplate, else it will collapse back. But usually these type of icons will not stay in a collapsed clip, since one needs to see what they show. When the clip is leaved it will collapse back after a delay of 1 second, unless the mouse is moved back to the clip area. The delay can be set modifying AUTO_COLLAPSE_DELAY in wconfig.h. Default is 1000 (ms) which means 1 second. --- 0.15.0 Changed name from Fiend to Clip ----------------------------------- All occurrences of word Fiend with or without capital F were replaced with the corresponding Clip (same capital). This affects all configuration files under ~/GNUstep that contain this word. It can be refered as "Workspace Dock" too. New option in Clip menu, and extended Clip behavior --------------------------------------------------- The following new items are available in the dock menu: 1. Attract Icons 2. Keep Attracted Icons 3. Collect Icons 4. (Un)select All Icons 5. Remove Selected Icons 6. Move To 7. Start miniaturized (also available for regular dock) 8. Start hidden (also available for regular dock) 9. Selected 10. Set icon... (also available for regular dock) Here is what they do: 1. "Attract Icons" will let the Clip to attract and attach any new appicon that is created when an application starts. It will not do this if the Clip is full. If the Clip is Collapsed then the appicon will be hidden after it is attached. 2. "Keep Attracted Icons" will tell the Clip to keep the attracted appicons, after the application is closed. Without this the appicons will vanish, leaving the Clip in the original state. If you move an appicon that was attracted from Clip to regular Dock, it will be kept when closed, no matter what "Keep Attracted Icons" is set to in Clip. 3. "Collect Icons" will collect all appicons that are not yet attached to Dock or Clip, and attach them to the current workspace Clip. The value of "Keep Attracted Icons" will apply when applications close. If Clip is collapsed, the appicons will be hidden. 4. "(Un)select All Icons" will select all icons in the clip if none is selected, or it will deselect all selected ones. The selected icons are marked using a small triangle in the bottom right corner of the appicon. The color of the mark is set using SClipColor in WindowMaker domain database. 5. "Remove Selected Icons" will remove from Clip all selected icons. The ones that still run, will be detached, all the others will vanish. 6. "Move To" will transfer all selected icons to another workspace and attach them to the Clip in that workspace. If none is selected, only the one the mouse was pressed on will be moved. 7. "Start miniaturized" will launch (or autolaunch if set) the application in a miniaturized state. 8. "Start hidden" will launch (or autolaunch if set) the application in a hidden state. Note that only one of the two can be set at a time. 9. "Selected" can be used to toggle the selected state of the appicon individually. The same can be achieved using Shift-LeftClick on the appicon. In fact the intended way of toggling the selected state is by using the Shift-LeftClick on icon. The menu entry is just another way to do the same. 10. "Set icon..." will allow one to set the image for the appicon. The image will be updated without restart, and also all appicons in the same instance.class as the one we set for, will be updated. So a simple way of avoiding the screen to be filled up with appicons is to set the "Attract Icons" in the Clip. Also the "Keep Attracted Icons" can be set to No, so the attracted icons will be deleted when application exits, thus leaving the Clip clean. If also one to not want to see the appicons that keep filling the Clip, he can set the Clip to be Collapsed. Getting rid of unneeded icons in Clip is as simple as selecting them individually using Shift-LeftClick, and then using the "Remove selected Icons" entry in menu. Support for different visuals. ------------------------------ WindowMaker is now able to support any visual, except DirectColor, in any depth from 1bpp to 32bpp. One can start the X server with different visuals, by passing the X server the right option. For XFree 3.3.x is -cc <id>. WindowMaker is not yet able to choose a different visual from the Default one on a given screen, but can use any default visual it finds, except the direct color visual. For example starting X like (for XFree 3.3.x, and if the driver for the card supports this. Read the man page for your X server): startx -- -bpp 8 -cc 0 will give you the StaticGray visual. startx -- -bpp 8 -cc 1 will give the GrayScale visual and so on. Wrlib code is now generic, and will support any visual except DirectColor in any depth. Programs written with wrlib can work on different visuals from the default visual for a given screen. Behavior in different visuals can be tested using the testgrad program in wrlib subdirectory in distribution. testgrad -h will show the usage. Multidiagonal gradients are also implemented now in wrlib, and a new algorithm is used to speed up the generation of diagonal gradients. New arrangement of the directory structure under ~/GNUstep/ --------------------------------------------------------------- To better adapt to theme support the directory structure changed under ~/GNUstep/Library/WindowMaker 1. Style directory moved to Styles. 2. Added the following directories: Backgrounds, IconSets, Pixmaps, Sounds and Themes. 3. The .style files no longer get copied in the user's Styles directory. Instead they are read from the global /usr/local/share/WindowMaker/Styles directory. Under ~/GNUstep/Defaults the following changes occurred: 1. A default WMState is installed by wmaker.inst. It contains the dockit program assigned to the top icon of the dock, and the wmsetbg program assigned for the drop command on both dock's and clip's main icon. Double clicking the dock's main icon will bring up dockit that will let you dock any application that do not have an application icon. Dropping an image on dock's or clip's main icon, from an Offix DND aware application, will put the image on the background tiled, and will update WindowMaker domain database file. 2. Syntax of WMState changed a little. The old position will not be restored when you will first start the new version, but after that it will be normally remembered. This is because now the main clip icons is only saved once, not for every workspace. You should replace Fiend with Clip in any place where it appears, if you want to keep the old WMState file, else it will not work. 3. At compile time, it will detect if you have support for tif, and will install a WMWindowAttributes with corresponding image name extension (.tif or .xpm). This is true only for pixmaps that come with the source distribution and get installed under /usr/local/share/WindowMaker/Pixmaps The menu file changed a lot. Old menu file will *not* work with new theme support, so please upgrade. New behavior of OPEN_MENU command --------------------------------- The OPEN_MENU command now supports the following syntax: 1. File menu handling. // opens file.menu which must contain a valid menu file and inserts // it in current position OPEN_MENU file.menu 2. Pipe menu handling. // opens command and uses it's stdout to construct menu. // Command's output must be a valid menu description. OPEN_MENU | command 3. Directory handling. // Opens one or more directories and construct a menu with all // the subdirectories and executable files in them sorted alphabetically. OPEN_MENU /some/dir [/some/other/dir ...] 4. Directory handling with command. // Opens one or more directories and construct menu with all // subdirectories and readable files in them sorted alphabetically, // preceding each of them with command. // WITH is a required keyword!!! OPEN_MENU /some/dir [/some/other/dir ...] WITH command -options Please note that because of the 'WITH' keyword old menu files no longer work for the OPEN_MENU with a command. Theme support ------------- Theme support is now as easy as untar-ing a tarball in the right place. Because of the way OPEN_MENU works, they can be installed on a global shareable basis, or for personal user use. Themes installed under ~/GNUstep will be available only for a user, but if if they are installed under /usr/local/share/WindowMaker they will be seen by all users. This is also true for style files, background images, pixmaps, etc that get installed under /usr/local/share/WindowMaker. Themes can be saved or loaded using the Appereance menu. Also support for different IconSets is available. You can save or load a new IconSet using the Appereance menu. Setting background images is now as simple as putting the images in the right place (~/GNUstep/Library/WindowMaker/Backgrounds or /usr/local/share/WindowMaker/Backgrounds, or any other place in your PixmapPath). Then use the Appereance menu. They will be instantly available since they are opened by a OPEN_MENU command. Also the image do not need to have a .jpg or any other extension. It will be recognized anyhow. As an example please see the OpenStep theme supplied with WindowMaker. The OpenStep image is a jpeg file without extension. Please keep in mind that anything under /usr/local/share/WindowMaker will be available for all users. New options for wmsetbg and getstyle ------------------------------------ wmsetbg now accepts the following options: usage: wmsetbg [-options] image options: -d dither image -m match colors -t tile image -s scale image (default) -u update WindowMaker domain database -D <domain> update <domain> database -c <cpc> colors per channel to use By default, it will try to guess if dithering is needed or not and proceed accordingly. Using -d or -m will force it to dither or match colors. Dithering for more than 15bpp is generally not needed, and will only result in a slower processing. Don't use dithering except when needed, because it is slower. Else rely on wmsetbg which will detect if dithering is needed and use it. -u will update the WorkspaceBack in the default database domain file in ~/GNUstep/Defaults/WindowMaker, and let WindowMaker refresh the screen. Please note that this option only works under WindowMaker, and will have no effect under other window managers, since it rely on WindowMaker to update the image after it reads the updated defaults database. -D <domain> is same as above, but will update the domain <domain> instead of the default WindowMaker domain. -c <cpc> will set the color per channel to use. Only needed for PseudoColor visuals. WindowMaker will automatically pass the value read from the WindowMaker domain database. getstyle now have the -t option, that instructs it to read all options related to theme. Without -t getstyle will read only style options that means it will not read WorkspaceBack and IconBack. Use -t when you want to make a theme and need all theme options to be saved. Else it will extract just a style file. Session management support -------------------------- Two new commands are available for use in menus: SAVE_SESSION and CLEAR_SESSION. SAVE_SESSION: will take a snapshot of all running applications, and their current hints (shaded, hidden, minimized, geometry and workspace they are on), and save it inside the WMState file. Also the current workspace we are on is saved. The applications that are running and were started from dock or clip are marked, so they will be attached to the corresponding dock/clip when restored. This state is restored every next session, until a new one is saved or CLEAR_SESSION is used. CLEAR_SESSION: will clear any previous saved session. There is also a run time option named SaveSessionOnExit = Yes/No; that allows one to automatically save the state of desktop when leaving WindowMaker. This way next session, the state of the desktop before last exit is restored. Please note that if this option is set to Yes, than any manual saving of the state, or any clearing of the state will be overridden when exiting WindowMaker. These options are available under the "Workspace" menu. User WindowMaker configuration files are now merged with global ones -------------------------------------------------------------------- When starts WindowMaker will look for database domain files under $GNUSTEP_USER_ROOT/Defaults or ~/GNUstep/Deafults to be read. (In this order). If they are not available then it will scan for them in $GNUSTEP_LOCAL_ROOT/Defaults, $GNUSTEP_SYSTEM_ROOT/Defaults or /usr/local/GNUstep/Defaults (in this order). Even if the file was found or not, it will always load the corresponding domain file under /usr/local/share/WindowMaker/Defaults. Then if the user file was found it will merge it over the global file, else the global file will be used. This way any settings that are set by the system administrator in the shared file will be available for users that do not have them in their config files. Any option the user have in his config file will override the one in the shared domain file. So any new runtime options that appear in WindowMaker domain, do not need to be set in all user files, except the ones the user wants a different behavior from the default set for all users in the shared file. Also it is possible for the user to not have any personal domain databases, and the global shared ones will be used, but it still needs to have the directory structure, so WMState gets written on session exit. So all it needs to have is ~/GNUstep/Defaults directory available. New behavior of the Slide Icons ------------------------------- Animation constants are now runtime. They are: IconSlideDelay = 0; IconSlideStep = 5; IconSlideSlowDown = 50; To better adapt both slow and fast machines the behavior of sliding icons changed in the following manner: Old one was to keep moving the icon with a constant step (default 5 pixels) until it reached the destination. Now it will use a new parameter named IconSlideSlowDown to speed up or slow down the moving. Instead of moving it with a constant step it will use IconSlideSlowDown to divide the distance to the destination, and use this value as the first step. Then is will compute the remaining distance and will again use IconSlideSlowDown to divide it and get the new step. And so on. When the step to move becomes smaller than IconSlideStep, IconSlideStep will be used further until the destination is reached. This way a nice deceleration effect is achieved, since while the icon approaches destination, it will use smaller steps, gibing the illusion that the icons is moving slower. IconSlideDelay will give the pause between steps, and is expressed in ms. Giving large values to IconSlideSlowDown (>1024 for 1024x768 screen) will result in the old "constant step advance" behavior, since the computed step will always be smaller than IconSlideStep, and the last will be used instead. Making IconSlideSlowDown = 0 or 1, will result in an instant jump to the destination without any animation. Attribute editor ---------------- Because the icon images on screen automatically update after any change in WMWindowAttributes domain file, the use of both Save and Apply buttons is no longer needed. If one wants to just apply the setting to the current window only, he will only use the Apply button. If he wants them saved for all applications in the same instance and/or class the using the Save button will write them to disk, and automatically WindowMaker will update all the icons that need to be updated on screen. Sound support ------------- Some basic sound support is now part of WindowMaker. The sound server is not yet part of WindowMaker distribution, so you need to download it separately. This is because is linux specific, and need some changes before it can be included. Until them if you have a linux system and want to use sound, use the wmsound-0.5 available at http://www.geocities.com/SiliconValley/Bay/7874 Download that package, and only build the sound server there. DO NO APPLY ANY PATCHES FROM THERE!, because they are already applied. Just build the sound and copy the executable in /usr/local/bin Follow the rest of the install steps described there, except the patch-ing procedure. To enable sound for WindowMaker pass --enable-sound to configure. Also use NoSound = Yes/No; to enable/disable sound at runtime without killing the sound server. If you cannot set the sound to work yet, then is not for you. Wait until the sound server will be fixed and will be part of WindowMaker. New entries in WindowMaker domain database ------------------------------------------ The following entries have been added to the runtime options: SaveSessionOnExit = No; will autosave (or not) the session state on exit. WindowPlaceOrigin = "64, 64"; will offset all windows in auto or cascade placement mode with the value (in pixels) before placing them on screen. First is horizontal direction and second is vertical. This do not apply to windows that request a specific position on screen. This is useful if you want your Clip on the top left corner to not be overlapped by mapping windows. It will let it to have a row and a column of docked appicons near the screen edge, that will not be overlapped by windows. If you set it to "128, 128" it will have 2 rows and 2 columns not overlapped. NoSound = No; Enable/disable sound at runtime without the need of killing the sound server. MenuScrollDelay = 10; MenuScrollStep = 5; Constants for the menu scrolling animation. IconSlideDelay = 0; IconSlideStep = 5; IconSlideSlowDown = 50; Constants for the icons sliding on screen. Explained above. ShadeDelay = 0; ShadeSteps = 15; Animation parameters for shading a window. How many steps it will take, and the delay between steps in ms. DoubleClickTime = 250; The time for the double click to be considered so. Expressed in ms. SClipColor = "#6f8ae2"; Color for selected icons in Clip. All delays are expressed in ms. --- 0.14.1 *** Enhanced fiend clone. Here are the new fiend features: 1. Keys for raising/lowering the fiend, and their default values: FiendLowerKey = None; FiendRaiseKey = None; FiendRaiseLowerKey = None; All reside in WindowMaker configuration file. 2. Added posibility to launch the workspace menu with button1 click on the idle indicator of fiend, or with button3 click on workspace name on the fiend. 3. Added Control-button1-click on fiend's idle indicator, to create a new workspace and move to it. Same action as New item in Workspace menu. 4. Fiend's idle indicator do have a color that reflects its normal/collapsed state. 5. The delay between changing workspaces from fiend is now a runtime option: WorkspaceChangeDelay = 700; in WindowMaker configuration file. 6. Application icons can be moved between dock and fiend now. 7. The way workspaces are changed is controlled now by two runtime options: AdvanceToNewWorkspace=Yes/No; CycleWorkspaces=Yes/No; Both apply to either fiend navigating buttons or to next/prev worksapace keybindings. Both default to No, and are in WindowMaker configuration file. 8. Also added posibility to advance to new workspace, no matter what value AdvanceToNewWorkspace have, with Control-button1-click on "next workspace" fiend button. *** Theme support *** Spixmap and tpixmap now work. Their syntax is: SomeStyleOption = (spixmap, file, color); SomeStyleOption = (tpixmap, file, color); - spixmap means scaled pixmap, so the image in the file will be scaled to adapt to the destination's size. - tpixmap means tiled pixmap, and the image from file will be tiled in the destination. file is searched in the PixmapPath, but can be a full path name. Color is used depending on which Style option is applied. For example in case of titlebars, color is used for miniwindows titles color. You are not restricted in selecting that color, but is better to put one that matches the overall color of the image. Currently they apply to all the options that accept (solid, color), or any type of gradient. This means they also apply to WorkspaceBack and IconBack, which allows theme support with the simple use of the setstyle and getstyle utilities. There is no need for an extra theme manager, just to include the needed options in the style files. In case of WorkspaceBack, color is used to be set in the background until the image gets loaded and displayed. This is to avoid the stippled screen the X server shows, in case the image is big and loads slow. There is a small utility in the util directory, named wmsetbg which is used to set the background image. This is needed for windowmaker not to freeze while loading and scaling the image. Currently it is hardcoded in windowmaker to use wmsetbg to set the background image, and is better to use it since is smaller that other image manipulation programs, and it is compiled with support for same image types as windowmaker. Since it comes and is installed with WindowMaker, there will be no need to download and use an external app, which also may not have support for the same image types as windowmaker. --- 0.14.0 *** Fiend clone. The fiend clone is a dock extender, that lets you dock more than the default 10-12 icons in the dock. It actually lets you dock how many icons you like, with a current default of 25 per workspace. The fiend have different docked icons on every workspace. Also the fiend main icon shows you the workspace you're on and lets you navigate through the workspaces with the small green buttons on the low right corner. To save screen space the fiend can be collapsed to the main icon either from the fiend menu (available with right click on the fiend icons), or with a double left click on the main fiend icon, which is a toggle for the collapsed/uncollapsed state. Collapsed state is marked by a different title color. Pressing on the small buttons on the low right corner, the workspaces are changed in increments of 1 to the left or right, but keeping the button pressed over them will continuously advance through workspaces until the mouse is moved away from the buttons or the button is released. The delay between workspace changes is set by FIEND_WKS_CHANGE_DELAY in src/wconfig.h, and defaults to 700 ms. Unlike the dock, fiend can hold icons in any directions, and can be placed in any position on screen. When an icons is to be docked, but the position can be either in the dock or in the fiend, the dock will be used first, and the icon will be docked there. Here are the new runtime options introduced by the fiend: Files are located in ~/GNUstep/Defaults/ In WMWindowAttributes: "Logo.WMFiend" = {Icon = "Cone.xpm";}; - icon for the fiend In Windowmaker: FiendMaxIcons = 25; - the max number of icons in fiend per workspace FiendTitleFont = "-*-helvetica-bold-r-normal-*-10-*-*-*-*-*-*-*"; - the font used to show the current workspace FiendTitleColor = black; - color for the uncollapsed fiend title CFiendTitleColor = "#616161"; - color for the collapsed fiend title AFiendColor = "#00ba70"; - color for the workspace changing buttons, when active IFiendColor = "#008000"; - color for the workspace changing buttons, when idle For the ones who don't want to use fiend, there is a option to wmaker named -nofiend that can be feed to the command line when starting wmaker. (This is the equivalent for -nodock, but removes fiend clone). The syntax of WMState file have changed, but you don't have to worry because WindowMaker will know to read the old format and will save it and further will use the new one. You do not need to change your file, for the new version to work. --- 0.13.1 *** Enhanced Attribute editor. Now you can save defaults for all windows. Please note that only Icon, KeepInsideScree, and sometimes NoAppIcon can be useful in a normal environment. But others may have other opinion ;) If you set AlwaysUserIcon default for all windows, note that apps like asclock, wmload, wmmail, wmrack, will show that icon instead of their window. Now Attribute editor also counts for defaults saved for all windows, (not only the default "No" for all options hardcoded in WindowMaker), when saving options for some instance.class specification. This is to save disk space by saving only the options that differs from global defaults (either defaults for all windows or the hardcoded valued in WindowMaker). Attribute Editor now updates on the fly the appicon image or creates/deletes the appicon if you set that options in the Inspector panel and Apply them. Modifying Icon file, NoAppIcon or AlwaysUserIcon and Applying them will result in the image update for the app-icon. Note that if you apply but not save these options, the miniwindow image will not be updated. This is because app-icon is always on screen so it can be updated, but miniwindow image is read from the defaults database and from disk every time you minimize the window and is destroyed when you restore. --- 0.13.0 *** Atribute editor is working ;). How it works is quite obvious. Anyway, here is a short description. Save - only save the configuration in defaults database and updates WMWindowAttributes Apply - only applies the values to the current window Revert - reverts the values from the defaults database Note that Save and Revert count for the window specification (instance & class), that are selected, and save/use the values for/from that. The Update button will show the icon who's name was typed in the textfield If the textfield is empty, will try to use the default icon. Also saving with and empty textfield for icon, uses the default icon. The Default button will use the icon in the textfield as default icon and save that value in WMWindowAttributes (Note that in this case is no need to press the Save button!). Also if the textfield is empty it will try to use the old default icon, if available. *** Now menus are saved between sessions, or over a restart. Just stick them to the desktop, and you will find them over sessions until you close them. Please note that only the root_menu, the window switch_menu and the workspaces_menu can be saved this way. *** Changed the lousy Windoze menu behaviour. This applies to 'NextMenuBehaviour = NO;' Now the items are no more automatically selected if you launch the menu and the mouse is over some item, if you use a short click to launch the menu (shorter than the default DBL click time). If you use a longer click or keep the mouse pressed, the item under mouse will be selected after that delay, and launched when you will release the mouse button. If the click was short, a second one is needed to launch the item. *** Autoarrange icons is now a runtime option Use AutoArrangeIcons = YES/NO; in 'WindowMaker'. *** Added configurable horizontal resize threshold Use HorizontalResizeThreshold = <n>; This will make the n pixels at the exterior side of the corner handle of the resize bar to restrict to horizontal only resize. Also you can use Shift-click&drag anywhere on the corner handle to restrict the resize only to horizontal. Note that the Shift-click&drag does not depend of the configured threshold and works completely independent. *** New option for OPEN_MENU (pipe from command) OPEN_MENU | /foo/bar/script will make a menu that is dinamically constructed by /foo/bar/script --- 0.12.0 *** New option for OPEN_MENU OPEN_MENU /foo/bar/pics xv -root -quit will make a menu with all files in /foo/bar/pics and precede them with EXEC xv -root -quit thus, making a menu with entries like: "marble.gif" EXEC xv -root -quit marble.gif "water.jpg" EXEC xv -root -quit water.jpg ... *** Multicolor gradients (mhgradient, colorX, color1, color2, color3, ..., colorn) (mvgradient, colorX, color1, color2, color3, ..., colorn) You can put any number of colors >= 2. colorX is a special color that is used as the solid color of the texture when wmaker needs a solid color (like in miniwindow title and resizebar) *** PixmapPath format changed What used to be PixmapPath = "/usr/local/share/pixmaps:~/foobar"; must now be PixmapPath = ("/usr/local/share/pixmaps", "~/foobar"); *** Added OffiX DND in dock Use the "Set drop arguments..." command in the menu and put a %d where the dropped object string should be substituted, like: xedit %d *** Escape thingies for menu and dock commands: %w - substitute with current selected X window ID %s - substitute with current selection %d - substitute with last dropped object %a(some text) - opens a input box with "some text" as a title. Then, the text typed will be substituted there \r, \n - substitute with corresponding characters *** The WMState file format has changed a little. The Command field for the dock application list is now a normal string, instead of a list. So, remove the parentheses and the commas for the command and join all the parts. Example: if it used to be Command = ( xterm," -geometry", "+10+10" ); then make it Command = "xterm -geometry +10+10"; --- 0.10.2 AutoFocus = NO; disables automatic focusing of windows when they are first mapped --- 0.10.1 titlebar gradients are in a single piece now the WMDock file was merged into the WMState file. You can insert this file in WMState and set it's key to Dock. For example, if your WMDock contains: { Applications = { {Command = (); }}; Position = "-64,0"; Lowered = NO; } and WMState contains: { Workspaces = ( "Workspace 1" ); } then you can merge both and have: { Workspaces = ( "Workspace 1" ); Dock = { Applications = { {Command = (); }}; Position = "-64,0"; Lowered = NO; }; } The configuration format has changed!! Forget everything about the old format. dockapp was removed and the old version will not work anymore. the dialogs require tcl/tk. they will be rewritten in plain C These are some tips for people upgrading from older versions and don't want too many unused files around. There is no problem if you decide to keep them for a while. you can rm -r ~/gnustep if you don't want anything from there remove the files in /usr/local/share/WindowMaker before installation the /usr/local/share/pixmaps directory can be removed �������������������������������WindowMaker-0.95.5/config.guess���������������������������������������������������������������������0000755�0001750�0001750�00000131054�12214434560�013307� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-06-10' # 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 # 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner <per@bothner.com>. # Please send patches to <config-patches@gnu.org>. Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown 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 # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # 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. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-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 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include <stdio.h> /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include <sys/systemcfg.h> main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include <stdlib.h> #include <unistd.h> 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 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include <unistd.h> int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd | genuineintel) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include <features.h> #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # 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. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` echo ${UNAME_MACHINE}-pc-isc$UNAME_REL elif /bin/uname -X 2>/dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says <Richard.M.Bartel@ccMail.Census.GOV> echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes <hewes@openmarket.com>. # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c <<EOF #ifdef _SEQUENT_ # include <sys/types.h> # include <sys/utsname.h> #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include <sys/param.h> printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #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); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include <sys/param.h> # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 <<EOF $0: unable to guess system type This script, last modified $timestamp, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD and http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD If the version you run ($0) is already up to date, please send the following data and any information you think might be pertinent to <config-patches@gnu.org> in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/config.h.in����������������������������������������������������������������������0000644�0001750�0001750�00000013522�12214434560�013011� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the <bsd/string.h> header file. */ #undef HAVE_BSD_STRING_H /* Define to 1 if you have the <ctype.h> header file. */ #undef HAVE_CTYPE_H /* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you don't. */ #undef HAVE_DECL_SYS_SIGLIST /* Define to 1 if you have the <dlfcn.h> header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ #undef HAVE_DOPRNT /* Define to 1 if you have the <fcntl.h> header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `gethostname' function. */ #undef HAVE_GETHOSTNAME /* Check for inotify */ #undef HAVE_INOTIFY /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the <libintl.h> header file. */ #undef HAVE_LIBINTL_H /* Define to 1 if you have the <limits.h> header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the `mallinfo' function. */ #undef HAVE_MALLINFO /* Define to 1 if you have the <malloc.h> header file. */ #undef HAVE_MALLOC_H /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `mkstemp' function. */ #undef HAVE_MKSTEMP /* Define to 1 if you have the `poll' function. */ #undef HAVE_POLL /* Define to 1 if you have the <poll.h> header file. */ #undef HAVE_POLL_H /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT /* Define to 1 if you have the `setsid' function. */ #undef HAVE_SETSID /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H /* Defined if header "stdnoreturn.h" exists, it defines ISO C11 attribute 'noreturn' and it works */ #undef HAVE_STDNORETURN /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the <strings.h> header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H /* Define if strlcpy is available */ #undef HAVE_STRLCAT /* Define to 1 if you have the `strncasecmp' function. */ #undef HAVE_STRNCASECMP /* Define to 1 if you have the `sysconf' function. */ #undef HAVE_SYSCONF /* Define to 1 if you have the <sys/inotify.h> header file. */ #undef HAVE_SYS_INOTIFY_H /* Define to 1 if you have the <sys/ioctl.h> header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the <sys/stat.h> header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the <sys/types.h> header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `vprintf' function. */ #undef HAVE_VPRINTF /* define if your X server has XConvertCase() (set by configure) */ #undef HAVE_XCONVERTCASE /* define if your X server has XInternAtoms() (set by configure) */ #undef HAVE_XINTERNATOMS /* define if you want support for XRandR (set by configure) */ #undef HAVE_XRANDR /* Internationalization (I18N) support (set by configure) */ #undef I18N /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define as the return type of signal handlers (`int' or `void'). */ #undef RETSIGTYPE /* define if you want support for shaped windows (set by configure) */ #undef SHAPE /* define if you want support for the XINERAMA extension and are in Solaris (set by configure) */ #undef SOLARIS_XINERAMA /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ #undef TIME_WITH_SYS_TIME /* define if you want user defined menus for applications */ #undef USER_MENU /* Define if Boehm GC is to be used */ #undef USE_BOEHM_GC /* define if GIF libraries are available (set by configure) */ #undef USE_GIF /* define if JPEG libraries are available (set by configure) */ #undef USE_JPEG /* define if PNG libraries are available (set by configure) */ #undef USE_PNG /* define if TIFF libraries are available (set by configure) */ #undef USE_TIFF /* define if XPM libraries are available (set by configure) */ #undef USE_XPM /* Version number of package */ #undef VERSION /* define if you want support for the XINERAMA extension (set by configure) */ #undef XINERAMA /* whether XKB language MODELOCK should be enabled */ #undef XKB_MODELOCK /* define if X's shared memory extension is available (set by configure) */ #undef XSHM /* Define to 1 if the X Window System is missing or not being used. */ #undef X_DISPLAY_MISSING /* define if you want support for X window's X_LOCALE (set by configure) */ #undef X_LOCALE /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Defines the attribute to tell the compiler that a function never returns, if the ISO C11 attribute does not work */ #undef noreturn /* Define to `int' if <sys/types.h> does not define. */ #undef pid_t /* Define to `unsigned int' if <sys/types.h> does not define. */ #undef size_t #include "config-paths.h" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/autogen.sh�����������������������������������������������������������������������0000755�0001750�0001750�00000000677�12214432632�012774� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh autoreconf -vfi -I m4 exit 0 if [ -x config.status -a -z "$*" ]; then ./config.status --recheck else if test -z "$*"; then echo "I am going to run ./configure with no arguments - if you wish " echo "to pass any to it, please specify them on the $0 command line." echo "If you do not wish to run ./configure, press Ctrl-C now." trap 'echo "configure aborted" ; exit 0' 1 2 15 sleep 1 fi ./configure "$@" fi �����������������������������������������������������������������WindowMaker-0.95.5/ChangeLog������������������������������������������������������������������������0000644�0001750�0001750�00000330042�12214432632�012535� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Changes since version 0.92.0: ............................. - added check for --with-gnustepdir option to configure to verify that its argument is an absolute path - updated german translations (Torsten Marek <shlomme@gmx.net>) - fixed WPrefs.app to find its icons when not installed under GNUstep paths - fixed gcc-4 compilation issues (Vladimir Nadvornik <nadvornik@suse.cz>) - fixed amd64 compilation issues (Vladimir Nadvornik <nadvornik@suse.cz>) - eliminated gcc-4 compilation warnings - small fix for compilation in a different directory than the source (Balaton Zoltan <balaton@eik.bme.hu>) - fixed some warnings on 64bit platforms (Balaton Zoltan <balaton@eik.bme.hu>) - fixed issue with invisible modal windows from Qt and Gtk applications on 64bit platforms (Max Loparyev <max@city.veganet.ru>) - fixed issue with icon colors on big endian platforms (Max Loparyev <max@city.veganet.ru>) - release colors to avoid issues with the reference count overflowing a small integer and causing unexpected color releases that can crash Window Maker (Martin Frydl <martin.frydl@systinet.com>) - fixed a small memory leak in WINGs/wview.c caused by not releasing the background color of a view (Martin Frydl <martin.frydl@systinet.com>) - updated estonian translation (Ivar Smolin <okul@linux.ee>) - updated the XDND code in WINGs to work with GDK based applications. WINGs based applications should now work with both KDE and GNOME applications (Sylvain Reynal <sreynal@nerim.net>) - better check for the XDND protocol version when interoperating with other applications. As it seems xdnd version 3 (which WINGs supports) and newer are not backward compatible with xdnd version 1 and 2. This is why WINGs applications cannot interoperate with GNUstep applications (which uses xdnd version 2). Xdnd version 4 and 5 are backwards compatible with version 3 though. (Sylvain Reynal <sreynal@nerim.net>) - Improved Info panel layout and fonts. - Fixed missing library paths when linking some binaries on certain platforms with a recent pkg-config (debian unstable/sid for one) - Fixed buggy handling of UTF8 characters in textfields in WINGs. (Stanislav Maslovski <stanislav.maslovski@gmail.com>) - Fixed segfault in WPrefs when some font description is missing from the configuration file (Stanislav Maslovski <stanislav.maslovski@gmail.com>) - Removed WINGs' dependency on rgb.txt (from X11) and issues with locating it on the filesystem for different systems/distributions. - Fixed segfault when unhiding an application in certain conditions (seen with KDE applications with transient windows) Changes since version 0.91.0: ............................. - fixed crash with info panel and alt-tabbing - updated Japanese translations (Takeo Hashimoto <HashimotoTakeo@mac.com>) - allow disable of switch panel when SwitchPanelImages=None - added X Input Methods support in WINGs - fixed issues with compiling on Solaris with openwin - reduced minimum required version number for the Xft library to 2.1.0 - fixed some compilation issues with gcc-2.9x - removed --with-appsdir option and replaced it with --with-gnustepdir. Also, default installation path (for non GNUstep users) is now $(prefix)/bin - fixed bug with infinite loop in some circumstances in fitText() in WINGs - fixed to allow parallel builds on SMP systems using make -j - updated Italian translation (Marco Colombo <m.colombo@ed.ac.uk>) - applied .AppInfo --> Library path rename patch (Alex Perez <aperez@student.santarosa.edu>) - added code to automatically update the icon paths from the old .AppInfo style to the new Library/WindowMaker style in WMWindowAttributes when Window Maker starts to make transition transparent for users. - fixed issue with window being moved by 1 pixel up and left when the window move was initiated by the client - improved hide/unhide animation for applications with multiple windows (only animate the active window hiding/unhiding, which makes Window Maker faster and more responsive for such applications). This also makes the restart operation much faster. - fixed bug with windows shrinking to very small sizes when Unmaximize was used on them, after they were closed in a maximized state. - fixed bug with restoring maximized state from NetWM atoms. - fixed issue with GNUstep applications losing focus when all their windows are closed and there remains only their menu (Matt Rice <ratmice@yahoo.com>) - try fixed font for the technical drawing font if helvetica-12 is not available to avoid crashing (Timo Juhani Lindfors <timo.lindfors@iki.fi>) - new algorithm for placing miniwindows after unhiding the application they belong to, that works without auto-arranging the icons, while still avoiding multiple icons in the same spot by moving the miniwindows to a new slot if their old slot was occupied in the meantime. - double clicking an appicon will also raise the miniwindows that belong to that application to the front (along with the normal windows). Changes since version 0.90.0: ............................. - added _NET_WM_NAME, _NET_WM_ICON_NAME and _NET_WM_ICON to WINGs - new WPrefs icon (thanks to Largo) - replaced VirtualEdgeThickness option, with EnableVirtualDesktop (boolean) - enhanced alt-tab panel, added theming ability - fixed issues with broken crash dialog - removed obsoleted options from wconfig.h - changed animation delay constants to fix issues with 2.6.x linux kernels (patch provided by Eric Piel <Eric.Piel@lifl.fr>) - fixed several broken po files - increased libwraster version number to 3.1.0 (added a RCopyArea function) Changes since version 0.80.2: ............................. - Some updates to WINGs WMConnection. See WINGs/ChangeLog for details. - Fixed empty window list menu, if the window list menu was launched through the root menu (sent by "Marc-Christian Petersen" <m.c.p@wolk-project.de>) - Fixed dock's menu mapping position when dock is on the right side. - Map clip's menu so that it never gets out of screen on the left or the right. - Patch to add binary mode on opening files (needed for Windows with Cygwin) (sent by luke <luke@posh.optushome.com.au>) - Updated French translations (Antoine Hulin <antoine@origan.fdn.org>) - Removed Hermes lib dependency in wrlib - Put back asm/MMX code in wrlib - Updated Russian locale files ("Andrew W. Nosenko" <awn@bcs.zp.ua>) - API change in WINGs for WMDraw*String(). Details in WINGs/Changelog - Removed obsoleted acconfig.h and implemented its functionality using AC_DEFINE and AC_DEFINE_UNQUOTED as autoconf 2.5x recommends. This will definitely enforce the need to use autoconf 2.5x - Added Xft2 support to WINGs, for rendering antialiased fonts with transparency. Details in WINGs/ChangeLog. - Fixed problem with long, preset workspace names (Wanderlei Antonio Cavassin <cavassin@conectiva.com.br>) - Added kinput2 bug workaround to stock WMWindowAttributes (Seiichi SATO <sato@cvs-net.co.jp>) - Added Belarusian translation (Ihar Viarheichyk <iverg@mail.ru>) - Fixed wrlib not to load braindead images with 0 sized width or height - Removed double no-position-display when cycling position display types with Shift key while moving windows. - Changed the default position display while moving a window to 'Center'. - Better outline when drawing balloons. - Fixed wrlib to not accept too large images (fixes buffer overflow) - Patched FAQ (David Coe <davidc@debian.org>) - Fixed bug with resizebars appearing out of nothing when reloading configs - Fixed sloppy focus bug (Pawel S. Veselov <Pawel.Veselov@Sun.COM>) - Applied Xinerama patch (after fixes) from (Peter Zijlstra <a.p.zijlstra@chello.nl>) - Added switch to enable/disable antialiased fonts in WPrefs's Expert Settings panel. (Temporary until the Font Settings panel in WPrefs is finished). - Added a check that only %d is used in a font specification in WMGLOBAL and at most once for each font in a fontset (eliminates a possible security exploit) - Added fontpanel callback - Fixed focus handling for windows that set WM_HINTS.take_focus = False. - Fixed a problem in the stacking code which could lead to segmentation faults (Jeff Teunissen <deek@d2dc.net>) - Fixed a crashing bug in the menu code with modal panels involved. - Fixed incorrect focusing of application's windows after an unhide (sometimes the incorrect window got focus instead of the apps's last focused window) - Unshade application's shaded windows when Dbl-MiddleClick-ing its appicon. (this is to be consistent with deminiaturizing application's miniwindows which also happens in this case, since shading is a form of miniaturization) - Fixed bug with tpixmap from previous xinerama patch (reported by g0sh) - Fixed edge resistance and move/resize frame drawing for borderless windows - Fixed wrong display position for the move/resize widgets after xinerama patch (Peter Zijlstra <a.p.zijlstra@chello.nl>) - Fixed bug with cursor locked in drag mode after Alt-dragging a window - Added Catalan translation (Ernest Adrogué <eadrogue@gmx.net>) - Fixed a bug with deminiaturizing windows when the application is hidden and the miniaturized window is selected from the window list menu - Fixed a bug with not showing shaded window frames when the application is hidden and another window belonging to the app is selected in the window list menu - Autoarrange icons after unhiding an application that has miniaturized windows, else they may cover other icons which are now in the positions they have occupied before hiding - Fixed Clip's workspace menu mapping to be consistent with the others - Fixed bug in wmsetbg that caused scale and maxscale to both do maxscale (Alexey Voinov <voins@voins.program.ru>) - Fixed bug with scrolling menus introduced by the xinerama patch. - Fixed bug that could cause SIGSEGV by accessing beyond the end of text in a WINGs textfield widget. - Fixed small memory leak in WINGs' font panel code. - Fixed memory leak in WINGs' file panel code. - Updated Bulgarian translations (Anton Zinoviev <zinoviev@debian.org>) - Fixed a bug in WINGs' hashtable which free'd the wrong memory in the WMResetHashTable() function (possible source of SIGSEGVs) - Fixed 2 syntax errors in plmenu.zh_TW.Big5 (Mike FABIAN <mfabian@suse.de>) - Some .po file fixes (Mike FABIAN <mfabian@suse.de>) - Fixed the problem with the root menu code changing the locale setting as a side effect of loading a localized menu - Fixed e memory leak in the code that reads a localized root menu - Added support for generating pkgconfig files for WINGS, wmlib and wrlib. ("Marcelo E. Magallon" <mmagallo@debian.org>) - Support for multiline balloons (Vitaly Ovtchinnikov <ov@rbcmail.ru>) - Improved wsetfont (Mike FABIAN <mfabian@suse.de>) - Updated single-click contrib patch (steve lion <steve.lion@verizon.net> and vlaad) - Updated French translations (Antoine Hulin <antoine@origan.fdn.org>) - Xinerama support for Solaris - Added global menu support (see NEWS) - Fixed sloppy focus bug - Made maximize behave differently with keyboard/mouse for xinerama (Peter Zijlstra <a.p.zijlstra@chello.nl>) - A few leftover xinerama fixes (Peter Zijlstra <a.p.zijlstra@chello.nl>) - Extended the 'strut' to multiple heads (Peter Zijlstra <a.p.zijlstra@chello.nl>) - Icon placement now takes into account the new xinerama extended 'strut' (Peter Zijlstra <a.p.zijlstra@chello.nl>) - Icon arrangement that takes the new extended xinerama 'strut' into account (Peter Zijlstra <a.p.zijlstra@chello.nl>) - Fixed the 'KDE omnipresent' bug. - Fixed bug with focusing a deminiaturized window with sloppy focus mode - Fixed aspect of window list menu (window name was too close to workspace indicator) - Fixed menu panel in WPrefs.app. Explanatory text did not fit into the label - Implemented a better logic to preserve the window's old geometry when maximizing to support succesive maximizations in different directions without the need to do an intermediary un-maximize step (eliminates flicker) - Made keyboard/mouse maximization behavior consinstent relative to each other - Enhanced wmsetbg's man page with description for -b | --back-color (Marcelo E. Magallon <marcelo.magallon@bigfoot.com>) - Do not use the disabled clip color for the clip's workspace navigation arrows when the clip is collapsed (it made them look like disabled) - Fixed bug with incorrect un-escaping if there is a dot in wm_class. - Updated Catalan translations (Ernest Adrogue <eadrogue@gmx.net>) - Updated Spanish translation of WPrefs (Alberto Gimenez <algibe@teleline.es>) - Fixed synchronization problem between hair cursor and mouse cursor in wmagnify with mouse cursor at the screen edge (Jon Diercks <jon@diercks.net>) - Fixed 2 focus switching related bugs (Allan Peramaki <aperamak@cc.hut.fi>) - Fixed a bug that made the crash panel to be shown again and again when the 'Restart Window Maker' option was selected, under some circumstances. - Added workaround in global WMWindowAttributes, to avoid creating a second appicon when a KDE3 application opens a config panel. - Updated slovak translation (Jan Tomka <judas@linux.sk>) - Added xdnd v3 support in WINGs (Sylvain Reynal <sreynal@nerim.net>) - Check whether libXft is at least version 2.1.2 else refuse to compile. - Fixed bug in icon chooser dialog that could cause a segmentation fault in some cases (Pascal Hofstee <caelian@gmail.com>) - Fixed crash in asm code in wrlib, with new versions of gcc. - Fixed bug in the x86_PseudoColor_32_to_8() function which incorrectly used the r, g, b fields in the conversion. - Fixed x86 ASM code in wrlib to work on 64 bit architectures. - Fixed the focus flicker seen with some apps (notably gtk2) (Alexey Spiridonov <snarkmaster@gmail.com>) - Fixed all crashing bugs that were generated by wmaker starting with the WMState file missing. - Added NetWM support (a modified version of the patch originaly written by Peter Zijlstra <a.p.zijlstra@chello.nl>) - Applied patch to enhance the Virtual Desktop behaviour, and to integrate it with the NetWM code (Peter Zijlstra <a.p.zijlstra@chello.nl>) - Applied a few xinerama and placement fixes (Peter Zijlstra <a.p.zijlstra@chello.nl>) - Fixed memory leak in dock code. - Fixed and enhanced the text wrapping in WINGs. - Fixed the layout of some elements in WPrefs.app - Added workaround for aplications that don't set the required hints on the client leader window, but they set them on normal windows (observer with KDE 3.3.0 mainly). This will allow these apps to get an appicon again. (they should be fixed still) - Added workaround for applications that do not set a command with XSetCommand(), but instead they set the _NET_WM_PID property. This works with operating systems that offer a /proc interface similar to what linux has. (This also is to fix problems with KDE 3.3.0 apps, but not only them). - Fixed bug with autostart and exit scripts not being executed if user GNUstep path was different from ~/GNUstep (when setting GNUSTEP_USER_ROOT) - Removed legacy OFFIX_DND support code - Fixed the signal handler for crashes (ie, removed it) and made wmaker restarting be made automatically by a monitoring process. - Made NetWM support be enabled by default - Removed old code to store/restore workspace state (now relies on netwm) - Added a (simple) Font Configuration for fontconfig fonts - MacOS X style window switching panel (navigate through windows with Alt-Tab or arrow keys) - Added support for NET_WM_NAME/NET_WM_ICON_NAME - Moved out font name conversion code from getstyle/setstyle/convertfonts and made it support fontsets - Converted all menu and po files to UTF-8 - Updated de.po (Thomas Otto <3.1415926535897932384626433832@gmx.net>) - Fixed a crash bug when switching workspaces - Removed obsoleted scripts from util: wsetfont, wmchlocale, wcopy, wpaste Changes since version 0.80.1: ............................. - Fixed a buffer overflow when allocating a RImage struct. Changes since version 0.80.0: ............................. - Fixed a bug that crashed wmaker when closing a window if multiple screens were managed by wmaker (Valery Kotchiev <aggregator@nospam.dk>) - Fixed a problem that crashed wmaker when trying to read an unexisting WMState.<number> file on multihead system. - Fixed problem with keyboard shortcuts executed an every screen for multihead systems. - Updated traditional chinese translations - Fixed buglet in non-caching rootmenu option ("John H. Robinson, IV" <jhriv@ucsd.edu>) - Added Malay translation - Fixed problem with kcalc not having a miniaturize button. - Added "Hide Others" to the window menu. - Fixed text in info panel for multibyte (Seiichi SATO <ssato@sh.rim.or.jp>) - Separated the font caches for normal fonts and fontsets in WINGs (they can have the same names and collide in the cache giving unwanted results) - Fixed Legal Panel not to display rectangles in place of new lines. - Fixed problem with losing focus when changing to an empty workspace and back. - Fixed another focus related problem when changing workspaces. - Fixed problem with saving session when shared appicon is enabled (not all instances were saved in the session, only one per shared appicon) - Added support for the ukrainian language in wsetfont (Bohdan Vlasyuk <bohdan@bodq.vstu.vinnica.ua>) - Fixed a bug that crashed Window Maker when setting the "Emulate AppIcon" option for a window using the window Inspector. - Let XRender transparent window be see-through to desktop - Added Greek (el) language pixmap (Michalis Kabrianis <Michalis@bigfoot.com>) - Fixes icons being reduced twice when icon size != 64x64 Eduardo Pereira Habkost <ehabkost@conectiva.com.br> - Fixed a bug that crashed wmaker when selecting the "Start alternate window manager" option in the crashing dialog panel. - Window Maker will now use the WINDOWMAKER_ALT_WM environment variable (if it is defined) to overwrite the default hardcoded fallback window manager. - Fixed marks for menu entries to be grayed as the text for disabled entries. - Fixed Clip's "Autoraise" option to be marked as disabled when the "Keep on Top" option is active. - Added ability to browse for files/directories in the WPrefs menu editor. - Added Czech translations of documentation (Jiri Hnidek <Jiri.Hnidek@vslib.cz>) - Fixed segfault with incomplete WM_CLASS specifications. - Fixed a bug about arranging subviews in a WMBox after removing a subview and a memleak occuring in the same situation. - Fixed a bug in wdread - Fixed bug with windows that have WM_HINTS.take_focus = False. These windows will not receive focus at all. - Fixed a buffer overflow in winmenu.c Changes since version 0.70.0: ............................. - Disabled window birth animation by default (while it was ok with normal windows, it was very annoying with menus editing in WPrefs.app) - Added ability to shade/unshade a window using the mouse wheel. - Fixed compilation for systems that required -lintl for WINGs (Jim Knoble <jmknoble@pobox.com>) - Removed redundant include/lib paths from the get-*-flags scripts - Updated slovak .po files (Jan Tomka <judas@linux.sk>) - Added "Save workspace state" switch button on the exit confirmation panel (based on a patch sent by Jan Tomka <judas@linux.sk>) - Fixed WPrefs crash when clicking on the menu editor to keep the current menu (Alexey Voinov <voins@voins.program.ru>) - Added patch to fix some gnome issues (Les Schaffer <schaffer@optonline.net>) - SIGTERM is now handled and saves the internal state before exiting (like SIGHUP and SIGINT already do). Now a "kill wmaker_pid" will exit cleanly saving dock/clip/session information on exit. - Added an internal strcasecmp() to WINGs (only on systems where's not present) - Deminiaturizing a window that is also shaded, will perform an unshade too. (Note that this only applies to deminiaturizing shaded windows. Unhiding an application will keep the shaded/unshaded state of windows.) - Removed compile time option for definable cursors and made them available by default. - Mapping a new window that belongs to a running application that is hidden, will unhide the application. - Added || pipe menu for generating non-cached menus - Removed the collapse appicons thing. - Added real appicon sharing (apps of the same kind will have a single shared appicon). - Fixed user and global defaults domain merging to preserve values present in global but not in user, in sub-dictionaries. - Made dock/clip steal appicons of applications that were started from a shell/xterm or from the main menu, if there is a docked appicon of that class that is not running at the time the app is launched. - Added animation to show that the appicon was stolen by the dock (the way NEXTSTEP did - map an appicon as it normally would have been, then slide it to the position the docked appicon is). - Updated the animation constants for scrolling/sliding/shading to better adapt to newer/faster machines. Also used wusleep(10) when the delay was 0 to get rid of the jerky animation when there was no delay. - Fixed bug with Unhide mapping windows from other workspaces. - keyboard shortcuts are active during mouse window drag - Saving a domain file will first strip all entries that are also present in the global domain as well and are exactly the same. This fixes a bug where settings from the global domain file were merged in the user domain file and further changes in the global domain file for those merged values was ignored making a system admin unable to set global defaults for all users using the global domains. - Fixed bug with improper setting of root/titlebar cursor (definable cursors). Changes since version 0.65.1: ............................. - fixed crash when saving empty menu item in WPrefs - Fixed some more bash specific constructs in wsetfont. (Marcelo E. Magallon <marcelo.magallon@bigfoot.com>) - fixed crash with broken apps that set null WM_CLASS - fixed crash when with gnome panel and multi-screens, some menu updates and applied various other patches from (Crutcher Dunnavant <crutcher@redhat.com>) - po file fixes (Crutcher Dunnavant <crutcher@redhat.com>) - replaced I18N_MB with I18N in one place in src/wconfig.h.in - fixed default clip title font in WindowMaker.in - fixed some locale related problems (Yukihiro Nakai <ynakai@redhat.com>) - fixed a bug in RCombineAreaWithOpaqueness() (Brad <lists@anomie.yi.org>) - added spanish INSTALL file (Efrain Maximiliano Palermo <max_drake2001@yahoo.com.ar>) - updated Finnish pots (Tomi Kajala <tomi@iki.fi>) - copy/paste launching in Dock - fixed switch to wrong workspace bug (Masashi Shimbo <shimbo@cis.ibaraki.ac.jp>) - added snprintf and removed XConvertCase usage for portability - added wcopy/wpaste scripts from (<luke@research.canon.com.au>) - added Xinerama support: see details in NEWS - fixed artifact pattern left in TrueColor dithering code (visible with tiled gradients) - fixed bug in positioning of window list menu when opened by kbd - internal code clean-up with notifications for window state change and other stuff - removed the libPropList dependancy by adding property list handling code to WINGs. This code is not only better integrated with the other WINGs data structures, but it's also more robust. Also a backward compatibility header file is provided which maps old libPropList function names to the new WINGs based proplist names allowing old code to be linked to WINGs with minimal changes. For details on how to use the compat mode, read the comments on top of WINGs/WINGs/proplist-compat.h More details about this can be found in WINGs/ChangeLog and WINGs/NEWS. Say bye, bye libPropList =) - rewrote all Window Maker code to use the new WINGs based proplist functions. - fixed a few compilation warnings and a problem caused by an uninitialized variable. Changes since version 0.65.0: ............................. - removed FocusFollowMouse from wmaker and WPrefs - fixed problem with alpha images showing a blue tint on big endian machines - fixed problem with WINGs based apps exiting with a "X_RotateProperties" related error when text was selected in a textfiled (including WPrefs.app and Window Maker itself). - fixed bug with maximization of windows with fixed resize increments - added None geometry display type - fixed window enumeration bug - removed GNUisms from wsetfont (Marcelo E. Magallon <marcelo.magallon@bigfoot.com>, Masahide -mac- NODA <mac@clave.gr.jp>) - added slovakian translations from (tomka@oalevice.sk) - added WINGs i18n patch from tomka@oalevice.sk - fixed wmsetbg.c to work in servers capable of multiple depths (overlay) - added HMaximizeKey (Ruda Moura <ruda@conectiva.com.br>) - fixed bad SIGPIPE handling setup across forks (Philippe Troin <phil@fifi.org>) - added workaround for bug in locale handling on font set creation (Seiichi SATO <sato@cvs-net.co.jp>) - Fixed some non-portable shell constructs used in installed scripts (Johnny C. Lam <lamj@stat.cmu.edu>) - Fixed crash with long titles in the window list menu (buffer overflow) (Alban Hertroys <dalroi@wit401310.student.utwente.nl>, reported by Robert Marshall <robert@chezmarshall.freeserve.co.uk>) - Replaced almost all sprintf() calls with snprintf() - fixed crash when removing menu entry for Window List or Workspace submenu - added WINDOW_BIRTH_ZOOM2 (Éric Tremblay <delt@razorback.yi.org>) Changes since version 0.64.0: ............................. - fix with gnome hints stuff, related to tasklist/bar - ripped off single appicon stuff - added better appicon handling of apps of the same type - applied patch for wkdemenu (Malcolm Cowe <malk@bruhaha.co.uk>) - added WINDOWS_MENU submenu type for root menu (Bastien Nocera <hadess@hadess.net>) - added kbd shortcuts for icon chooser - use Hermes in wrlib - removed MOUSE_WS_WHEEL #defines - fixed bug with multibyte text on libc5 systems (Osamu Ajiki <osam-a@astroarts.co.jp>) - fixed race conditions on signal handlers - SIGINT will gently exit, SIGTERM will not be handled - When Window Maker calls wmsetbg to set the background, it will consider the value of the DisableDithering option and pass the right switch to wmsetbg. - fixed a memleak in the dialog panels. - made "Keep on Top" in the dock/clip menu a checked menu entry. It's _much_ easier to work with it this way. - Fixed problem with GNOME apps that have windows which need to stay on the desktop level. - Fixed incorrect parsing of display and screen number from $DISPLAY. - Organized the inspector panel a bit better. - Replaced bags with arrays wherever appropriate. This will improve performance a bit. - Made the Gnome tasklist skip the windows with the "Skip window list" flag enabled. (Bastien Nocera <hadess@hadess.net>) - Fixed crashing bug when name and class were empty for a docked app. - Removed MIN() and MAX() macros and replaced them with WMIN() and WMAX() from WINGs. - Added a hint that Window Maker crashed, to allow windows to be placed correctly after a crash situation. - Added a hint that Window Maker crashed, to allow windows to be placed in their correct previous positions after a crash situation and also to preserve their state before the crash (minimized, shaded, hidden, ...) - Fixed wrong mapping position of the "Docked Applications Panel" for some icons. - Smoother animation for the smiley =) - Added retain/release mechanism for RImages. RDestroyImage() has become obsolete. More about this can be found in wrlib/Changelog and wrlib/NEWS. - Small API change in WINGs to allow images with alpha blending set as the application icons be shown correctly. More about this in WINGs/Changelog and WINGs/NEWS. - Made images with alpha blending be shown correctly in the panels and the icon chooser. - The icon image set to be shown in panels ("Logo.WMPanel") will be automatically updated if its entry in WMWindowAttributes changes (without a need to restart as until now). - Fixed a bug in the icon chooser dialog that made the selected icon look wrong if it had alpha blending. - Removed the following 3 options from configuration: SelectWindowsMouseButton, WindowListMouseButton and ApplicationMenuMouseButton. - Added 4 options to the configuration file for binding workspace actions to mouse buttons: MouseLeftButtonAction, MouseMiddleButtonAction, MouseRightButtonAction and MouseWheelAction. They replace the above 3 removed options, but use a different semantic. More in NEWS. - client supplied icons that were saved by Window Maker in the directory ~/GNUstep/.AppInfo/WindowMaker/ will be recreated if missing when the application starts. - fixed a small memleak when the client supplied icon was extracted and saved. Changes since version 0.63.1: ............................. - fixed messup in get-{wings,wutil,wraster}-flags - fixed #wmdatadir# substitution in wmaker.inst (Seiichi SATO <sato@cvs-net.co.jp>) - Removed spurious focus disabling for GNUstep applications - but retain code that lets GNUstep apps control their window titlebar. (Richard Frith-Macdonald <rfm@gnu.org>) - Fixed broken panels. - Renamed se.po to sv.po - New version of wkdemenu.pl (from Malcolm Cowe <malk@bruhaha.co.uk>) - new updated Slovak translations (Jan Tomka/judas@hell <tomka@oalevice.sk>) - integrated the 'no polling' patch from Jim Knoble <jmknoble@jmknoble.cx>. - new wsetfont script (Anton Zinoviev <zinoviev@debian.org>) - lots of i18n fixes (Jan Tomka/judas@hell <tomka@oalevice.sk>) - window levels changed to match GNUstep <rfm@gnu.org> ... src/GNUstep.h src/WindowMaker.h src/window.c wmlib/WMaker.h WINGs/WINGs/WINGs.h Changes since version 0.63.0: ............................. - fixed compile prob with SGI compiler - decreased nice() value in wmsetbg - applied gnome panel not-covering patch from (Bastien Nocera <hadess@hadess.net>) - added item copy to WPrefs menu editor - added locale selection code for menu in wmaker.inst (Eliphas Levy Theodoro <eliphas@conectiva.com.br>) - fixed bug in built-in xpm support (Alessandro Strada <a.strada@libero.it>) - removed plugin support - fixed a crash bug in WPrefs menu editor - added es and pt potfiles from conectiva/eliphas - added updated galician potfile (Jesus Bravo Alvarez <jba@pobox.com>) - added update hungarian potfiles (HORVATH Szabolcs <horvaths@inf.elte.hu>) - added updated single-click patch from John Morrissey <jwm@horde.net> - added updated danish translations (Birger Langkjer <birger.langkjer@image.dk>) - fixed WindozeCycling config in WPrefs - fixed circulate raise withour WindozeCycling Changes since version 0.62.1: ............................. - added blackbox style igradient (interwoven) - added wmagnify utility - changed behaviour of control/shift double click on titlebar for maximize - updated getstyle to account for extendspace options - fixed weird color bug in jpeg loader (Alban Hertroys <dalroi@wit401310.student.utwente.nl>) - improved and simplified fonts configuration for multibyte languages (Tomohiro KUBOTA <kubota@debian.or.jp>) - cleaned ParseCommand() and renamed to TokenizeString() - rewrote menu editor in WPrefs - added definable workspace border (0..5 pixels). See NEWS. - fixed circulateraise on non-windoze cycling mode - fixed bug in RCombineAreaWithOpaqueness (Tim Malone <tmalone3@uswest.net>) - fixed bug with hangling of WM_COMMAND update in client.c (Andrew M. Langmead <aml@world.std.com>) - fixed bug with incorrect reading of ppm files (Adam Fedor <fedor@gnu.org>) - fixed bug with incorrect window placement using automatic placement, while there were shaded windows on other workspaces - fixed some buffer overflow issues in WINGs - fixed bug with WPrefs.app not selecting the menu appearance options after startup. - replaced free() with wfree() wherever appropriate - fixed some memory leaks generated by wstrappend() - fixed code that was dependant on the order of evaluation in wrlib. This fixed a number of problems, like greyscale jpegs that showed up in red and possibly the problems with pseudocolor displays. - made clicks on unfocused windows be effective on focus follow mouse/sloppy Changes since version 0.62.0: ............................. - made shortcuts available during alt+tab - save lowered state of menus - fixed portability bugs for old X servers - added check for XInternAtoms in configure and replacement code - fixed window cycling with single key shortcut - fixed WPrefs crash on menu editor - install only needed icons for WPrefs.app - updated Finnish translations - fixed user-whining-windoze-cycling bug - added option for f'n windoze cycling.. - added --create-stdcmap and made std colormap creation off by default - updated get/setstyle to account for new options - fixed crash on restart bug - made GNOME wm hints take precedence over KDE.. KDE hint will only be read if GNOME hints dont exist - updated kwm hint support (maximize hint) - added memory usage in info panel - fixed sticky hint handling in GNOME - fixed saving of maximized state for restart Changes since version 0.61.1: ............................. - fixed bug with menu editor in WPrefs placing cut/paste-ed entries in wrong positions. - removed "Keep Attracted Icons" option from Clip's menu. See NEWS. - fixed bug in Xdnd code to be able to work with QT. (This is QT's bug so it will change again in future) - replaced debugging output stuff with Nana - fixed problem with session restoring and dock autolaunch (Jacek Naglak <nag@promail.pl>) - put WorkspaceNamePosition in WPrefs - added a lock to docked icons - fixed crashing bug in WPrefs.app's Appearance section. - fixed sorting of names in icon chooser, and file browser. - fixed name completion problem in file browser. - added new sound events (from pascal) - fixed bug when moving/resizing internal windows - propagation of -noext for submenus (David Reviejo <dreviejo@arrakis.es>) - fixed problem with mouse sampling rate in SGIs - optimized frame drawing (Swivel <swivel@gnugeneration.com>) - removed broken optimized frame drawing patch - added Select Window button in attribute inspector - made icon images scale by a constant factor when changing icon size - added support for standard colormaps in PseudoColor visuals - changed geometry view for move/resize to a WINGs widget - removed DisplayFont option - added NoBorder attribute - changed semantics of GNUstep window attribute hints - added get-wings-flags and get-wutil-flags with the same purpose as get-wraster-flags, but for compiling and linking with WINGs/WUtil - fixed bug handling non-string values given to string valued options in defaults.c - fixed colormap_window crash bug (appears when launching some apps from dock, or removing apps from gnome panel etc) - added DONT_SCALE_ICONS #define - added --no-autolaunch patch (John Bafford <dshadow@zort.net>) - made Apply button work on window inspector for windows with no WM_CLASS - changed sound server code to be more efficient - fixed crash with broken apps that set mask size != pixmap size in icons - made wmsetbg accept relative paths for images that are not in PixmapPath - fixed windoze cycling - replaced XSync with XFlush in wUnshadeWindow() - added GNUstep window recognition through WM_CLASS->class == GNUstep - made window focusing not change titlebar color of GNUstep windows - disabled passive mouse grabbing in client area of GNUstep window when they are unfocused - added Jim Knoble <jmknoble@pobox.com>'s cursor thing patch - fixed lock of wmaker when clicking on menu multiple times - made transients appear near their owner - fixed crash bug with broken java implementations (Miguel Covarrubias <mcovarr@tigr.org>) - made Revert on attributes panel apply the reverted changes immediately to avoid inconsistent internal state - color dragging works correctly now - arbitrary stacking levels - save window shortcuts in state - changed license of Marco's icons to GPL - added --dont-restore cmd line option to not restore previous state - fixed focus bug when moving wmaker panel windows in focus-follow mouse Changes since version 0.61.0: ............................. - fixed Xdnd by cropping filename with "" - fixed OPEN_MENU - fixed crash when moving a shaded window with keyboard - fixed problem with window shortcut assignment from the menu - fixed problem with fonts in WINGs (Masahide -mac- NODA <mac@flab.fujitsu.co.jp>) - fixed multihead bugs (Morten Bøgeskov" <mb@dbc.dk>) - fixed crashing bug when saving session information. - fixed crashing bug related to onmipresent icons in Clip - added _WINDOWMAKER_ICON_TILE and _WINDOWMAKER_ICON_SIZE hint in the noticeboard window Changes since version 0.60.0: ............................. - fixed bug in window attribute panel - SGI portability fix (Graham Whitted <gbw@sgrail.com>) - fixed compilation problem with --enable-singleicon - fixed compilation problem with WS_INDICATOR - fixed crash bug with SGI (defaults.c) (Graham Whitted <gbw@sgrail.com>) - fixed sloppyfocus problem in multihead dpys (Morten Bøgeskov <morten@bogeskov.dk>) - fixed WorkspaceSpecificBackground bug in wmsetbg - give preference to windows in window list when switching focus after workspace change (Richard Kilgore <rkilgore@ece.utexas.edu>) - brought back --locale cmd line option - fixed bug with WorkspaceNameDisplayPosition (Emanuele Caratti <wiz@iol.it>) - added missing kbd shortcut definitions for window shortcuts (Michael Smith <mjsmith@spirit.com.au>) - fixed floppy button layout in filepanel (Matthew Ashton <mrashton@home.com>) - fixed bug with documentedited close button (Felipe A. Rodriguez <farz@mindspring.com>) - fixed some buffer overflows - fixed some problem with the alpha - fixed some problems with non gcc compilers. - fixed problem with showing instance.class in the inspector window. - fixed crash when displaying workspace name in some positions. - fixed compilation problem when WS_INDICATOR was defined. - added edge attraction. See NEWS. - fixed buggy RSaveXPM() in wraster library. Its output was messed up, and caused crashes for icons with more than 1024 colors. - sinking windows (such as gmc icons) won't be calculated in edge resistance or attraction. - removed drop shadow for text on title bar code. (TITLE_TEXT_SHADOW) - text on title bar is now possible to be drawn by plugin. See NEWS. - WPrefs: added support for button4/5 - fixed scrolling of menus outside screen (Vito Caputo <swivel@virtual-webworld.com) - added dialog window for menu commands that can't be executed - fixed crash when deiconifying windows when icons are disabled - better smart placement (Gabor Melis <gabor.melis@essnet.se>) - replaced old linkedlist code with WMBag - fixed wmsetbg to use right bg color with transparent background images - fixed crash with Assertion "bad_root_window" && 0' failed. on startup - fixed crash when more than 1 dockapp fails to launch on startup - added a different dock setup config for each screen size - fixed PPosition handling - New "Smart placement" mode. 'Smart' is no longer an alias to 'Auto' but a different mode of placing windows. 'Auto' keeps the old behavior. - added the dir where the menu is being read from to the search path given to cpp - doing a multiwindow selection shortcut and hitting the shortcut repeatedly will cycle through the selected windows - fixed crash when overwriting a string constant (default font specs) in WINGs Changes since version 0.53.0: ............................. - fixed a bug that caused icon overlaping in Clip, when icon was moved around. - this time really added libwmfun to distribution. - made deiconification not automatically focus window in sloppy focus - fixed crash with DisableMiniwindows and icon pixmap changes - fixed crash when changing icon of window without WM_CLASS - added hysteresys for offscreen menu scrollback - fixed bug with IgnoreFocusClick - fixed crash with windows with width == 1 (Alban Hertroys <dalroi@wit401310.student.utwente.nl>) - added SHEXEC command - fixed resizebarback for SHADOW_RESIZEBAR ( jim knoble jmknoble@pobox.com) - added balloon help everywhere - fixed bug with FullMaximize attribute - GNOME: button events not bound in wmaker are proxyized (to gmc) (Paul Warren <pdw@ferret.lmh.ox.ac.uk>) - fixed bug with restoration of maximized window after restart with --enable-kde - added high-quality filtered rescaling (smoothed rescaling) to wrlib/wmsetbg - added SmoothWorkspaceBack - fixed crash bug in Paths section of WPrefs - optimized image rendering for 15/16 bpp - user menus' paths were changed. See NEWS. - added a timeout for the workspace name fading - HP-UX compiler compatibility workarounds (Sebastien Bauer seb_bauer@bigfoot.com) - fixed crash with attributes panel - save state of all menus when exiting (Sebastien Bauer seb_bauer@bigfoot.com) - added GNUstep info panel (still needs beautification..) - made the paths selector in WPrefs.app use the open file panel - fixed crash bug with hiding apps without dock/clip - fixed a mem leak in superfluous mode caused by the ghost icon. - added possibility to set omnipresent icons in Clip. See NEWS. - fixed bug in WPrefs menu editor - fixed crash when moving internal window with kbd - fixed compilation problem on IRIX machines (Neil Muller <neil@octane.sun.ac.za>) - replace xde support drop on dock with xdnd. - added an (internal use) environment variable for telling WPrefs whats's the name of the wmaker binary being ran. - more elegant text entries in Clip's menu, regarding single/multiple selected icons. - fixed cosmetic bug in geom. dpy window for 8bpp - removed --enable-kanji and added MultiByteText option - rewrote font code to use WINGs - made autoraise only work for the active window - fixed compilation problem with OpenWindows and other non-X11R6 systems.. - fixed crash bug when iconsize=24 - fixed portability prob with raise() in SunOS - fixed icon placement bug (Markus Schoder <Markus.Schoder@online.de>) - added delete and floppy buttons in file panel. Changes since version 0.52.0: ............................. - patched wmsetbg to work with dynamically loadable texture renderer code - added libwmfun to distribution (forgot to do so in 0.52.0) - added MenuStyle option - changed configuration updating to use notifications - fixed window move through workspaces in nonopaquemove - added message to immediately reread configuration data - fixed some bug in XKB modelock toggling - fixed crash bug when hiding apps with appicon disabled - fixed wrong initial workspace # being shown on attributes panel - XSMP updates - update colorpanel - applied WMSound patch from "Quinn, Anthony" <Anthony.Quinn@usa.xerox.com> - fixed focus bug with unfocusable window (I swear I had fixed that before...) - applied windoze cycle patch from Paul Warren <pdw@ferret.lmh.ox.ac.uk> - changed initscript and exitscript execution from fork()/exec() to system() - added ResizebarBack and added appropriate backwards compat. hacks in setstyle - applied ]d's patch to allow DEMATERIALIZE_ICON over windows - made clip arrows gradiented - added a crashing dialog panel to select what to do on crashes. - fixed the problem with showing a window as focused in the window list menu while it was on another workspace. - show workspace name on screen when switching workspaces - made setstyle support WorkspaceSpecificBack - fixed getstyle prob with filenames with spaces (Pierre Phaneuf <pp@ludusdesign.com) - fixed crash with InfoPanel in multihead dpy - Fixed bug in WPrefs that added a new line at the end of autostart script at every save, growing it indefinitely. - fixed a memory leak in wrlib (Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>) - fixed crash during forced shutdown of X (Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>) Changes since version 0.51.2: ............................. - made the Attributes panel be available for all windows, even for completely broken apps (although settings wont be saved for completely broken apps) - fixed compilation problems with compile time #defines - workaround for crash during startup related to hiding miniaturized windows from Matt Armstrong <matt_armstrong@bigfoot.com> - fixed focus problem with unfocusable windows - fixed bug in WPrefs that changed EXIT to SHUTDOWN - fixed menu title messup bug in WPrefs - added a dot to mark hidden applications (compile time) (id@windowmaker.info) - enhancements to the modelock patch (id@windowmaker.info) - show kbd mode for modelock (id@windowmaker.info) - enhanced positioning of transient windows - added dynamically loadable texture renderer code from Tobias Gloth <gloth@online.de> - added DisableMiniwindows option - kde: miniaturize animation will match the taskbar icon (KWM_WIN_ICON_GEOMETRY) - miniwindows show the title of the window if there is none set for it - fixed crash on kpanel restart - remember window shortcuts after restart - change edge resistance to account for panels and stuffs - narrower menus - fixed auto raise/lower behaviour of clip for docked applications that have their own window (applets). - cleaned up Clip's autocollapsing code, and made it to be similar to the auto raise/lower code (much cleaner). - fixed a race condition in Clip behavior when changing workspaces, if set to autocollapsing. Changes since version 0.51.1: ............................. - fixed bug with window that can get focus if both shaded and hidden. - maximize for full screen - fixed problem with frame drawing in non-opaque - fixed installation path prob [jmknoble@pobox.com] - fixed bug moving window when only one window is on screen - fixed bug with ignored GNUstep attributes - fixed WPrefs crash in Mouse Preferences - fixed crash bug in WINGs/wmaker startup - added workaround for kde pager crash bug - made %W in root menu and wmsetbg -w take numbers starting from 1 - fixed crash bugs with kpanel Changes since version 0.51.0: ............................. - put . to mark hidden apps - 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 - fixed crash with CalendarManager deiconify - fixed heisencrash when mapping new windows - fixed totally buggy wmaker.inst ~/.xinitrc checker Changes since version 0.50.2: ............................. - added some new icons made by Marco - kde: fixed stacking order reporting for modules - gnome: fixed state change request handling - fixed handling of file names with non-alphanum characters in wmsetbg - hopefully fixed timestamp problem that caused regeneration of configure - fixed a bug in the auto raise code - made SIGHUP exit wmaker and SIGUSR1 restart for GNOME compatibility - fixed %a() bug (now it really is fixed!) - fixed docking icons in last icon - fixed WMInsertPopUpButtonItem() - fixed bug that caused fonts of themes to be ignored - fixed bug in path handling in getstyle - stop icon explosion animation by clicking on root window - made SAVE_SESSION save the state of the dock - added command line option aliases that adhere to the GNU standards - fixed png gamma bug (actually unmade buggy fix) - fixed bug in property notify handling - removed KeepTransientsOnTop - fixed window focus when switching workspaces - fixed attribute inspector Apply for dont bind keys - fixed bad colormap bug (I hope) - added acceleration to keyboard window move - %W expand to current workspace # - fixed background pixmap color problem (cpixmap etc) - applied drop shadow patch - fixed crash on startup with xconsole and xdm - fixed portability prob with MkLinux/PPC - fixed portability prob with Alpha - added color panel to WINGs - added support for olwm/OPEN LOOK(tm) hints - added SaveYourself support - 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: ............................. - fixed wmsetbg - fixed parsing of WorkspaceSpecificBack - fixed initial workspace for new windows - added the workspace button proxy thingy for GNOME - added more GNOME compatibility fixes - fixed bug in %a() macro in root menu Changes since version 0.50.0: ............................. - fixed bug that allowed docking of icons to outside the screen - added extra code to handle kpager bug - fixed crash when opening appicon menu - fixed problem that caused Motif hints to be sometimes ignored - fixed bug in layer treatment of GNOME hints - fixed weirdness in initial window workspace - fixed problem with Sun compilers - fixed bug with () Workspace{Specific,}Back specs - added --disable-rpath option (from KDE) by request - maybe fixed bug with StarOffice - fixed pipe fd inheritance mess - fixed bug in kde workspace renaming - fixed installation problems Changes since version 0.20.3: ............................. - window list is ordered by workspace - preliminary grid move mode - fixed prob with docked apps with the same name switching places (like wmmon and wmmon -s) - wrapping of workspace switching for 5button mice - added restart in fallback menu - fixed buglet in modifier error reporting - extra options in window command menu - changed select() used in wevent.c to poll() - fixed bug in SGI boxes (black dialogs) - added IconTitleBack, IconTitleColor - made error checking stricter - fixed crash when saving application supplied icons that have many colors - added move threshold to menus - added textured gradient textures - added -nofont flag for setstyle - added -p flag and theme pack support for getstyle - fixed crash bug when clicking on menu title opened with kbd - fixed bug that caused incorrect saving of icon configuration (the -name bug) - scale pixmap texture for workspaceback type will maintain aspect ratio - fixed memory leak in jpeg loader - started XStandardColormap support - added StartMaximized window flag - fixed bug of mixed up Unfocusable and StartMiniaturized flags - yet another try to switch to shared libraries - workspace specific background images - stack new windows to under focused window if autofocus is off (disabled) - added kde support - implemented the "GNOME Window Manager Compliance" stuff - window move/resize by keyboard - rewrote window attribute code to make it cleaner - added --enable-lite configure option - added support to change prompt in %a() for root menu - rewrote exit code - added KeepInsideScreen=YES; for scilab in default WMWindowAttributes - added an option to the Clip, to allow automatic Raise/Lower when the mouse cursor enter/leave the Clip. Changes since version 0.20.2: ............................. - hysteresis for menu item selection (delayed selection for selecting submenu items) - window shortcuts - removed Hide Others from window commands menu - window commands menu will close when the window for it is closed - made shade not set the Iconic state - fixed bug in miniaturizing atribute panel - made frame rectangles be more visible in PseudoColor (8bpp) - fixed bug for 64bit machines - added support for ICCCM 2.0 WM_COLORMAP_NOTIFY message - fixed bug for apps that put strings with . in WM_CLASS - added handling for reparented client windows - fixed bug with window positioning - fixed cascade window placement to account for dock - added modelock stuff - added X include path in gfx header when configure searches for headers - fixed bug in window positioning by clients - added run-time test for shared pixmap support on server - changed order of link flags in Makefiles - fixed problem with random window placement - fixed multiple window selection for multiheads - grayscale and 8bit jpeg support - fixed client restoration in restart/exit in multiheads - started session management code - fixed problem with docked programs that have names with spaces - updated WPrefs.app for iconificationstyle - added -static command line option - put redundant NoWindowOverDock - fixed overlapping clip icon bug - extended window level code - added KeepOnBottom hint - added iconification style to WPrefs.app - fixed crash with bad value in defaults file - changed icon stacking code - added primitive support for 5 button mouse (for switching workspaces) - fixed BadAccess and crash on programs that do XGrabButton - fixed bug with rootmenu Exec not working when stty is called from ~/.tcshrc - fixed bug with Move menu and sloppy focus - temporarily removed SHELL support in apps menu Changes since version 0.20.1: ............................. - fixed timer bug - removed NoWindowUnderDock - error reporting mechanism has changed in wrlib. Instead of a writing the message in a string, it will place the error code in RErrorCode - smoother icon selection - persistent client supplied icon pixmaps - fixed yet another crash on emacs exit bug - fixed portability prob in wrlib shm code - fixed bug in DISPLAY variable setting in multiheads - fixed a few more portability problems related to storing struct properties - fixed damaged balloons on Suns/8bpp (I guess) - better "one of" type option handling - added a timeout for some animations - support for large binary files in wxcopy/wxpaste - fixed bug of losing focus when resizing/moving windows - fixed bug in libproplist - fixed focus with sloppy - changed permissions of shm segments to 0666. Now, if someone has a shm leak, we can know who it is. - faster titlebar texture update - faster icon kaboom - added different undocking animation - updated wmaker -version to output "Window Maker" instead of WindowMaker - fixed crash bug with transient windows (gimp etc) - fixed bug with popen()+wwarning() - problem opening cpp'ed menus - added test for header files in configure for gfx libraries - simplified building process, making libPropList be always built - fixed crash with bad mgradient color entry - docked appicons that are being edited/killed cant be moved (mutex fix) - more features in wxcopy/wxpaste - fixed bug with state file in multiheads - selection retrieval moved to WINGs - fixed workspacekey to switch workspaces in the current layer - fixed workspacekey to not switch to inexisting workspace unless AdvanceToNewWorkspace is YES - fixed bug with disappearing windows if a workspace switch is made on startup - fixed blocking of window creation/destroy events when opening menu with kbd - fixed aspect ratio setting bug - fixed crashing when miniaturized window is closed during animation - added XDE support - fixed stupid bug in shape stuff - raised threshold for removing docked icons - fixed HideOthers for windows with NoAppIcon=YES - if Cancel is pressed in dialog box of %a in menu cmd lines, the command will be canceled - slightly better dithering for 8bpp - apps menu will use $SHELL, instead of /bin/sh to run EXEC menu commands - cleaned up some code (GetNormalHints(), wManageWindow(), wGetWindowSavedState() et al, ) Changes since version 0.20.0: ............................. - fixed cpixmap to use the specified color for background around the image. - fixed compiling problem in wrlib. - fixed bug with bad shortcut names in menus. - fixed some compiling compatibilities. - added a new theme, named BlueWaves. Changes since version 0.19.3: ............................. - fixed crash when closing windows in autoraise - fixed a memory leak - fixed a crash when closing Lotus Notes - rewrote colormap code - incomplete multihead support - optimized wrlib dithering code - new superfluous animation - fixed cpixmap bug - fixed sound bugs - fixed miniaturization bug - added script to be called when wmaker exits - fixed GNUSTEP_WM_ATTR writing/reading - added quick and dirty selection pasting in text fields - fixed animation to be displayed again when unhiding an application. - made the miniaturize animation a runtime option. See NEWS. - fixed bug with reassigning keyboard shortcuts after they are changed. - added edge resistance. See NEWS. - fixed bug with long names when renaming workspaces. - fixed clip's balloon to not overlap the clip's buttons. - fixed bad update of clip's workspace menu after workspace name change. - fixed bug with cpixmap in wmsetbg. - fixed a memory allocation problem in wrlib. - AIX bug compatibility in XmbTextEntents() - fixed jpeg loading bug Changes since version 0.19.2: ............................. - fixed visual problem when mapping internal panels - better looking bevels for solid textures - centered pixmap texture (cpixmap) - added compile-time selectable animations for miniaturization - fixed bug with moveto workspace, omnipresent and miniaturize - fixed doubleclick bug - added GIF file support (through libgif) - implemented close color allocation in WINGs - fixed bug with visuals different than default - finished balloons Changes since version 0.19.1: ............................. - clip balloon under the clip - fixed setting of DISPLAY env var from wmaker. - fixed bug of passing focus to shaded window in other workspace - changed ballon font from titlebar font to displayfont - update menu when menu file path is changed in WMRootMenu - fixed OPEN_MENU stuff in WPrefs - fixed bug with mdgradient - fixed maximize with NoWindowOverIcons - fixed bug with kbd focus change - fixed race in autoraise - fixed bug in menu section of WPrefs - fixed problem with modifier keys Changes since version 0.19.0: ............................. - fixed bug in balloon titles - fixed stupid bug in workspace renaming from menu - fixed bug with iconsize != 64 - fixed forgotten menu saving in WPrefs - fixed various bugs in WPrefs - fixed kbd menu traversal bug - fixed bug with multiple depth supporting servers - fixed disappearing outer border of shaped windows - kluged bug with shaped window resize - fixed bug in WPrefs for systems without TIFF - fixed bug with Info/Legal panel closure - fixed Clip's look. Changes since version 0.18.1: ............................. - added shade indicator for window list - fixed small problem in menu autoscrolling - fixed bug when reading a corrupted defaults file - visual depths different than the default works now - fixed problem with non-ascii characters in localized dialogs - workspace rename from clip menu - fixed memory leak in internal proplist parser - fixed infinite loop when parsing mgradient with bad color name - fixed bug with paths containing ~ in iconchooser - cleaned up double-click code - balloon help - fixed bug with launching of ForcedDock apps - fixed cosmetic bug with miniwindows and titlebar - fixed bug with applications that steal input focus - EmulateAppIcon window attribute - Revert in attribs panel will not apply the changes - fixed bug with focus being left in old workspace after switching to an empty workspace. - finished clip remakeup - more generic and faster icon placement algorithm - icon yard - fixed wxcopy bugs Changes since version 0.18.0: ............................. - fixed cosmetic bug in beveling of pixmap/gradient textures - fixed bug in titlebar mouse bindings - fixed some bugs in proplist menu - fixed bug in window list menu indicator - fixed a very old bug related to unwanted button grabs in non-click-to-focus - fixed bug when opening settings panel for appicon with invalid icon file - winspector appicon related bug fix Changes since version 0.17.5: ............................. - fixed handling of signals when the X event queue is empty - fixed blank window titles - made current workspace entry be disabled in Move To window menu command, and in the Clip's Move To submenu. - fixed menu width calculation - fixed bug with buttonpress/release events - fixed problem with WMRootMenu with a ~ in the path - fixed bug caused that caused the clip to not function properly, unless a workspace switch was made - added a hack to make everything work even if NumLock or ScrollLock is on - added a little more verbosity to error messages - fixed kluged workspace menu in clip - removed workspace menu mapped through the microbutton in the clip. - remade clip button layout to be more usable - fixed bug with keepontop and apps with Motif hints (x11amp) - changed menu border drawing - fixed bug in clip free slot finder code - fixed infinite reproduction of OPEN_MENU submenus bug - added support for future extension to dock totally broken apps (wharf-like dumb launching) - changed icon of close button when app doesn't understand WM_DELETE_WINDOW - removed SwapMenuButton and added 3 finer grained equivalent options - better docked application settings panel - fixed positioning problem with attributes panel - removed WorkspaceChangeDelay and cleaned up related stuff - removed AClipColor and IClipColor - added SelectKey back - removed install -d from po/Makefile - i18n support in WINGs (dialog panels) - rewrote menu scrolling code (possibly fixed related crashing bug) - fixed crash with icons bigger than the tile - fixed bug in attributes editor to apply changes to dont bind {keys, mouse} - fixed bug in unhide that unhided all windows in the same workspace - moved noappicon to Application Specific options. - fixed revert for StartHidden - changed style in default WindowMaker domain file - fixed bug in hash table - fixed bug with transients for leaders that don't have their leader hint set to themselves - changed all window_flags to have default values of 0 (closable -> no_closable) - fixed bug with workspace change of hidden miniwindows - added descriptive icons in window list - fixed bug of having to keep mouse over window to edit textfields of wmaker panels - extended menu shortcuts to proplist menus - changed proplist menu format: removed redundant array for submenus - made arrangement of icons when workspace is switched to not arrange moved icons - fixed bug in focusfollowmouse that made windows under the currently focused window that close, to not get the focus - if the app is a .app, it will try to find it's icon in the .app directory and save it in the WMWindowAttributes, so that the dock can use it. - drag docklets that select for mouse events to with Alt+drag Changes since version 0.17.4: ............................. - fixed bug titlebar when closing transient of unfocusable window - fixed crashing bug with attributes editor when saving Changes since version 0.17.3: ............................. - added Info panel - fixed crashing bug in libproplist - do not crash anymore if config files are bad - better handling of libjpeg errors - changed method to select icons - fixed bug in dock panel - fixed bug in Remove Icon in clip - fixed serious memory leak in wrlib - fixed bug that allowed addition of more than 1 WORKSPACE_MENU - rewrote proplist parser by hand. Seems to work with no crashes, but I'm sure someone will crash it... - fixed invisible text in geometry display when unfocused titlebar is black - fixed bug with rootmenu that caused twin menus to be left mapped - added DontConfirmKill option to remove confirmation panel for Kill - fixed bug with hide of app with wmaker menu - changed all NSsomething internal flags for the GNUstep attributes to WMsomething Changes since version 0.17.2: ............................. - fixed bug in attributes panel with Disable Resizebar - fixed save in attribs panel with windows other than the client leader - bug in attribs panel with Revert that made it save attributes with the wrong name - fixed (by kluging) bugs related to destroying dialog panels in a bad order - fixed various bug with hide in empty screens - fixed various potential races in miniaturize/shade code - added Keep Icon command in clip - made remove selected icons to remove current icon - changed clientdata of clip to the clicked icon instead of the clip. - renamed collect icons, made clip icons have a more uniform behaviour, added keep icon command. - fixed docking of apps that dont have WM_COMMAND and when the user clicks Cancel in the command input dialog. - fixed bugs in moving commandless icons between dock/clip or workspaces - fixed bug hiding miniaturized windows - fixed bug when reloading rootmenu with more than one shortcut - fixed bug that launched shortcut entries without modifier together with modified shortcuts - even algorithm to find free slot in clip Changes since version 0.17.1: ............................. - Makefile.am fixes - removed libtoolized libPropList - fixed cascade placement Changes since version 0.17.0: ............................. - updated Makefile of the po directory - removed useless strdup() in proplist.l - fixed problem with systems that dont have PATH_MAX in <limits.h> Changes since version 0.16.1: ............................. - removed the Select key binding. - changed Normal speed type to Medium and added UltraFast. - Shift-dbl-click on appicon brings the app to current workspace. - replaced menu based configuration of docked apps with a panel. - added Unhide Here command for appicon menus - partially corrected bug in icon selection code in window inspector. Was not working correctly for multiwindow apps with appicon. - added command menu for appicons - removed global variables from winmenu.c - fixed some memory leaks and removed redundant code in icon choosing code - made Kill in dock menu to unconditionally XKillClient() the app. Sending WM_DELETE_WINDOW would not close the app if the app had multiple windows - added confirmation dialogs for Kill in appicon menus - made ClipMaxIcons to be compile time settable - renamed NoSound to DisableSound - changed NoAutowrap to DontLinkWorkspaces - fixed bug that prevented windows moved to other workspaces break Unhide - fixed bug that made titlebar buttons disappear when font sizes were changed in NewStyle - changed Hide command binding in miniaturize button from Alt-Click to Control-Click - changed decoration window attributes to affect only decorations and their names - fixed MWM_HINTS support, removed MWMHints from WWindow - removed Right button constrain window resize to horizontal only. It breaks Alt-Right button resizes through the client area of window. - fixed menu flicker problem when changing textures - fixed bug miniaturizing shaded transient windows - added shortcuts for menus - remade titlebar bevel drawing - fixed all known cosmetic bugs in titlebars and menu - better algorithm to find free slot in clip - user attributes have priority over program attributes - removed LeftHanded and wLeftBtn/wRightBtn stuff - added DisableWSMouseActions - added SwapMenuButton - renamed all NoSomething option names to DisableSomething, except NoWindow* - removed ConstrainWindowSize - fixed focus bug when changing workspaces in sloppy focus - Changed the look of temporary attracted icons in Clip. - Better detecting of graphic libraries. - Made the menu scrolling with mouse button pressed to be smooth and clean. - fixed a bug that left empty frames if a window was withdrawn on a different workspace - removed iconification animations for windows not in the current workspace - readded shm support in wrlib - merged libwwm.a with WINGs - major cleanup of library function names. - detect "lapses of memory" that cause forgetting to build libPropList and build it automatically. Changes since version 0.16.0: ............................. - Fixed bug with applications set to start hidden. - Fixed buggy getSpeed() that caused crash on some systems. - Miscellaneous bug fixes. - The resizebar cornewr handle is correctly rescaled when resizing. - OPEN_MENU will read again menus from files. - Right drag in corner handle of resizebar restrict resize to only horizontal. - Corrected typo with default fonts used in WINGs. - Implemented superfluous stuff as a runtime option. Is Superfluous = Yes/No; - Disabling dock and/or clip can be done now from WindowMaker domain too. - Selecting new style buttons is now done at run time. See NEWS. - Fixed docked appicons to switch to last workspace the app was on when unhiding (like not docked appicons do). - Moved wNextEvent() and timer events stuff to WINGs. - Added autoscroll for scrollers in WINGs. - Optimized WMList and WMBrowser in WINGs. - Button2 on clip opens workspace menu - Changed cycling colors of selected icons. - Made icon chooser display a better rendering of alpha-channeled icons. - Sorted list/browser entries. - Fixed bug in timer code that was causing some timer events to be lost. - New Pastel theme. - Attracted icons in Clip will have a shadowed look if they are to be removed when closed. Changes since version 0.15.1: ............................. - Modified how the wNextEvent() works, so it will go to sleep when there is nothing to do. This changed the busy 5ms checking WindowMaker main loop, with one that is active only when there are X events or timer events. - Changed WorkspaceTiedMiniWindows option name to StickyIcons. - Fixed some bugs with the miniwindows being sticky to workspace. - WorkspaceBack now accepts the key None. WorkspaceBack = (None); will not set any workspace back. - Changed the fix for restoring window stacking order after restart and fixed window stacking order on exit. - OPEN_MENU command now expands paths with environment variables ($HOME) and tildes (~user) - automatic restart of another window manager on SIGSEGV, SIGFPE, SIGBUS - removed HorizontalResizeThreshold option. To restrict resize to only horizontal use Shift-drag in the corner handle. - Added option to allow vertical maximizing not to overlap the minimized windows. It is NoWindowOverIcons = Yes/No; - Applications written with XForms library will get an app-icon now. - Included the MWM hints for GNOME support. There is also a configure option --with-gnome=yes/no. - The dialog to enter the docked icon command is no longer called, if icons are collected/attracted and the "Keep Attracted Icons" is not set. - fixed start workspace in Attributes inspector. Current Workspace is the workspace the user is when the app is started. - clicking on the appicon switches to the workspace where the app was last focused before unhiding - fixed problem with aspect ratio setting (gr_osview etc.) - changed some extensions in the default config/data files and removed Sound.{xpm,tif} because it seem to be copyrighted. - added icon selection panel - changed selection indication of icons. Removed SClipColor option - simplified animation speed options (IconSlideDelay, IconDelayStep, MenuScrollDelay, MenuScrollStep etc. etc) to IconSlideSpeed etc. - removed Start miniaturized/hidden items from Dock/Clip and added them as attributes - fixed Save in Attributes Panel. It should apply the changes before saving - changed format of geometry information in WMState - added DontSaveSession window attribute - changed name of NextMenuBehaviour option to WrapMenus - turned graphics_exposures off for all GCs created - Fixed the big memory leak problem for oldstyle buttons in title bars. - Solved problem with undefined ($RM) on Solaris, and maybe *BSD. - Fixed how icon extension is set in WMWindowAttributes to be portable. - Fixed buggy behavior when dragging a window from first workspace to next. - Implemented selecting of miniwindows. - Split the Clip menu to be smaller. - Modified how selected app-icons/miniwindows are marked. - Included patch for single appicon per instance.class pair. - StartWorkspace was changed to take precedence over the workspace in which application was started from Clip. - Applications launched from dock will no longer start on the workspace they were launched, but the one the user is in, when the window is mapping. - Miscellaneous bug fixes. Changes since version 0.15.0: ............................. - Fixed bug that kept an appicon selected after detaching. - Fixed bug that crashed WindowMaker if starting an application with. NoAppIcon = Yes; while AutoArrangeIcons = True; - Fixed the installed .xinitrc file. - Fixed some ANSI C incompatibilities. - Applications with omnipresent flag set will be mapped on the current workspace, no matter from which Workspace Dock they were started from. - mkmenu no longer gets installed, since is no longer needed. - Fixed a problem for systems which do bad things for free(NULL); - Attracted icons in Clip will not be saved in WMState if "Keep Attracted Icons" is not set. - Fixed code in defaults.c to use default hard coded values, if a syntax error is encountered when parsing the default domain WindowMaker database. This avoids a crashing bug if an image for spixmap or tpixmap is not found. - Fixed some missing parameter in a call to wWarning() in texture.c which could have caused hazardous (even crash) behavior if the pixmap image for texture was not found. - Fixed code in session handling, to save only one entry for applications with multiple windows opened on screen. - Implemented option to allow miniwindows to be workspace specific. It is named WorkspaceTiedMiniWindows = Yes/No; It is set in WindowMaker domain. Read NEWS - Fixed bug with incorrect height restoral of window when unshading requested from client. - Fixed problem with solid IconBack. - Fixed problem with hardcoded /usr/local. The value given to configure with --prefix=/some/path is now used. - Implemented some workaround to avoid crashing of applications that expect WM_STATE hint set before the window is mapped. - Changed how the bevel for the menu title is drawn for solid color titlebars. They now look nicer, and more consistent with the rest. - Implemented a new animation method when blowing the detached icons. See NEWS. - Fixed some places in code where hardcoded values (8) were used instead of TITLEBAR_EXTRA_HEIGHT. - Implemented a marking for the HorizontalResizeThreshold option. It will mark the corresponding number of pixels on the resizebar corner if the option is greater than 0. - Changed WindowPlaceOrigin format from string to array. It should now be: WindowPlaceOrigin = (64, 64); Default is (0, 0). - The geometry window is now constrained to be always visible on screen, if the geometry is set to be displayed Floating. - The geometry window size is decided based on the font size. Also the geometry window is correctly updated if the font size is changed while running. - Deleted unnecessary redrawing code in moveres.c. - Many fixes to moveres.c. - Put all the keys from defaults.c in WindowMaker domain database. - Fixed a crashing bug when workspace names were as long (or longer) as MAX_WORKSPACENAME_WIDTH (16 characters). In this case a right click on a window title caused WindowMaker to crash. - Included support for detecting if system requires to include libxpg4, which is needed by some FreeBSD systems, when using --enable-kanji. - Some fixes to configure.in and some Makefile.am files to allow the use of VPATH feature of 'make', which will let the source and build directories to be separate. - Changed the application launching code, so it put fork()-ed processes in process groups of their own, to avoid locking of entire session, due to a badly configure launching child. Only for systems which have setpgrp(). This is autodetected by configure, and used if available, else it will revert to old behavior. - Added the AutoCollapse feature to clip. This (when set) will allow the clip to stay collapsed, and show when moving the mouse over it. When the mouse leaves it, it will collapse back after a delay. Read NEWS. Changes since version 0.14.1: ............................. - Fixed icon tiles and icon titles to update correctly after changes in the configuration, without restarting. - Added code to deal with different visuals in wrlib. See NEWS. - Many things fixed in wrlib. - Fixed bug that crashed WindowMaker when the background image was no found. - Fixed crashing bug in wRemoveTimerInstance(). - Changed name of fiend to Clip. It can also be refered like "Workspace dock". This means all references should be changed in all configuration files, and the command line options. - Fixed crashing bug when moving icon between dock and full Clip. - Fixed bug in wrlib (RCreateImage), that could crash WindowMaker if trying to create an image with not enough virtual memory. - Changed code for diagonal rendering in wrlib, to be faster. - Implemented multi-diagonal gradients. - Fixed problem when shading a window without titlebar. - Fixed code in rootmenu.c to substitute ~/ with user's homedir in OPEN_MENU. - Implemented sorting feature for OPEN_MENU. Now files in directories are sorted alphabetically, with directories first. - Some small fixes to the code in generic/list.c - Fixed jpeg and png loading in wrlib to be faster. - Renamed Style directory to Styles. - Striped the .style extension from the style file names. This is to let them better be handled by OPEN_MENU. - Changed Appereance submenu to include Theme support. - Fixed bug when updating clip's main icon. - Improved version of wmsetbg. See NEWS for new options. - Small gradient testing program in wrlib/testgrad.c - Fixed problem with zombie wmsetbg. - Integrated dockit in WindowMaker. dockit now gets installed with WindowMaker. - Implemented runtime option to allow user to select the origin from where windows are placed on screen with auto and cascade placement modes. Default is WindowPlaceOrigin = "0, 0"; See NEWS. - New behavior of OPEN_MENU. See NEWS. - Fixed applications autolaunched from Clip, to be mapped on the same workspace as the Clip they were autolaunched from. - A default WMState is now installed with WindowMaker, containing only the top most dock icon configured to run dockit. - Install will automatically detect if you have TIFF, PNG or XPM support compiled in WindowMaker (in this order), and update WMWindowAttributes accordingly with icon file extensions. - Directory structure under .../GNUstep/Library/WindowMaker changed to easily support themes. - Syntax of WMState was slightly modified. See NEWS. - Fixed WindowMaker when using -nodock and/or -noclip command line options to preserve the state of old dock and/or clip in WMState. - Fixed some mem leaks. - Fixed crashing bug in window.c. - Fixed bug that allowed a shaded window on other workspace to get focus. - New options in dock/clip menu. They allow one to start the app either miniaturized or hidden. See NEWS. - Applications launched from dock/clip now will be mapped on the workspace they were started from, even if meanwhile user change workspaces. - Implemented SAVE_SESSION, and CLEAR_SESSION commands for the root menu. They are intended to save (or clear) a shapshot a the current session state. Read NEWS for details. - Added SaveSessionOnExit = Yes/No; option in WindowMaker, to allow autosaving the state of the workspace on exit, and its restoral on next session. Defaults to No. See also NEWS. - Converted menu scrolling parameters to run time. They are (with default): MenuScrollDelay = 10; and MenuScrollStep = 5; - getstyle now accepts -t to get theme options too. Without -t getstyle will only get options for style (without WorkspaceBack and IconBack). - Added option in clip menu to allow moving of an icon to another workspace. - Fixed clip to remember the drop command over sessions. - Added option to clip menu to attract application icons from bottom of screen when they are launched, and attach them to the clip. Also there is a flag to allow the attracted icons to be kept in clip or destroyed when the application is closed. See NEWS. - Added option to dock/clip menu to allow one to set the icon image. - Fixed bug that not updated the default icon pixmap after the icon background changed. - Added posibility to (un)select icons in clip with Shift Left click, or using the clip menu. Read NEWS. - New option for color to mark selected icons. SClipColor = color; - Added option to clip to remove selected icons. Read NEWS. - Move between clips now applies to all selected icons, or if none selected, to the one the mouse was pressed on. See NEWS. - Fixed OPEN_MENU to accept names with spaces in them when used for opening directories. "foo bar" files or subdirectories are now correctly proccessed. - Fixed crashing bug when hiding/showing all windows with inspector panel open. - Fixed bug that raised unfocusable windows, (if RaiseDelay>0 and Sloppy or Auto focus mode was used) when the mouse pointer got over them. Unfocusable windows can still be raised, if selected from the window switch menu, or with click on title-bar. Meta click on titlebar will lower them. - Fixes in moveres.c to allow a smoother draw of frames while moving and resizing windows. - Fixed a problem when resizing with Meta+RightClick. - Fixed a bug that freezed WindowMaker when dragging a window from one workspace to other, with OpaqueMove = No; - WindowMaker now uses the values set for MoveToNewWorkspace and CycleWorkspaces when dragging windows from one workspace to other, making this more consistent with the behaviour of Clip and Next/PrevWorkspaceKeys. - Fixed problem with the geometry window not showing up, showing in the wrong place or with the wrong numbers in some cases. - Put all transparent drawing code into a single function, to ensure consistency. - Fixed really ugly crashing bug, when editing workspace names with Control-LeftClick on the workspace menu name, for workspaces above 10. - WindowMaker now reads domains from /usr/local/share/WindowMaker/Defaults and merge them with the user domain files. This way new options, or global settings are available for old users, without reinstalling these files for every user. See NEWS for details. - Basic icons needed to run WindowMaker are now part of the main package. They are icons for dock, clip, defaultAppIcon, sound server and for xterm. All the rest needed for apps that can be started from menu, and have entries in WMWindowAttributes, are in WindowMaker-data.tar.gz which can be found on http://windowmaker.info/ or ftp://ftp.windowmaker.info/pub/contrib/icons - Changed the SlideWindow() function to better adapt to slow machines. Also the animation constants are now run time. They are IconSlideDelay = 0; IconSlideStep = 5; and IconSlideSlowDown = 50; See NEWS for a more in depth description of how it works, and what all these options mean. - Changed behavior of AutoArrangeIcons to avoid unnecessarily shuffling of icons. - Changing icons in WMWindowAttributes domain, now automatically reflect on screen, without the need of restarting WindowMaker. - Added sound support in WindowMaker. Sound can now be enabled at compile time using --enable-sound option to configure. Also there is a runtime option named NoSound = Yes/No; See NEWS for details, as sound support is not yet fully functional. - Some animation constants are now runtime configurable. Please read NEWS file for a complete list of all the new entries in WindowMaker domain database. - Added option to clip menu to collect all icons on the screen that are not already docked. Changes since version 0.14.0: ............................. - Fixed stacking problem with main fiend icon. - Fixed bug that made fiend's rewind button to not work on IRIX and PPC. - Removed "Default" button in panel 4 of the attribute editor and replaced with "Browse", to avoid confusion about it. But please note that Browse does not work yet. - Solved a bug in attribute editor that incorrectly create the appicon for an application. This could made WindowMaker to crash in certain conditions. - Fixed bug that gived focus to shaded&hidden windows. - Added keys to Raise/Lower the fiend. Read NEWS. - Added posibility to move app-icons between dock and fiend. - Fixed bug in winmenu.c, that caused incorrect menu item disabling in window menu, making the attribute editor inaccessible in certain cases. - Fiend enhancements. Read NEWS. - Added options for advancing to new workspace, and cycling through existing workspaces. Read NEWS. - Made the delay between changing workspaces with the fiend a runtime option. - Fixed bug that caused crash in certain condition when using Sloppy focus. - Fixed getstyle to include new options in WindowMaker configuration file. - Changed the default color for active fiend buttons and updated it in WindowMaker configuration file. You should update this, since the old active color was too close to the inactive color. - Made the fiend middle button have Active/Inactive color, corresponding to its normal/collapsed state. - Fixed a small mem-leak when destroying a workspace. - Fixed a bug in superfluous.c related to swapping dock position. - Fixed resize frame to show the window size numbers. Also fixed the numbers shown in that frame to reflect the real window size. Nicer arrows too. - Added posibility to send only a synthetic ConfigureNotify event, at the end of window moving, instead of every movement, to increase performance. - Fixed a bug in docking code, to allow strings with spaces in command name be properly quoted. - Changed the included asclock.tgz to better adapt to 8 bit displays. - Fixed window title updating after changes made with the attribute editor, when not using NEWSTYLE. - Made spixmap and tpixmap to work. See NEWS. - Theme support now available. See NEWS. - Fixed bug when loading missing domains that caused WindowMaker to crash. - Fixed typo in domain loading to count for global files if user files are not available. - Fixed bug in Attribute Editor, that crashed WindowMaker when restarting or exiting, while an Attribute Editor panel is open. - Put clip.tif, clip.png, clip.xpm, clip2.tif, clip2.xpm, Cone.xpm and Penguin.xpm in WindowMaker-data_tar.gz. These are icons intended for fiend. It can be found on ftp://ftp.windowmaker.info/pub/wmaker/contrib/icons Changes since version 0.13.1: ............................. - put back libPropList tarball in archive. This will not count for people with already installed libPropList, since configure will first look for the installed version. Read the INSTALL file for details. - made a clean-up to let WindowMaker compile with DOCK undefined. - working fiend clone. Read the NEWS file for details. - fixed bug that caused crash when using FocusNext or FocusPrevious keys with no opened window. - some small bug fixes. - Added handler for SIGHUP. <kill -1 wmaker_pid> will cause wmaker to restart. Changes since version 0.13.0: ............................. - Enhanced Attribute Editor. It will allow you to set options that apply to all windows. Also some new features. Read NEWS file. - Fixed bug in Attribute Editor that caused crash when icon was not found. - Fixed bug that crashed WindowMaker when some transient windows closed and the Attribute Editor remained open. - Fixed sloppy focus to correctly transfer the focus to the root window when there is no window open, or no window under the pointer. - Fixed sloppy focus to correctly focus the window under pointer after a restart or workspace change. - Fixed shift dbl-click on titlebar to not select the window. - libPropList is no more part of distribution. You need to have it installed or else you need to download it and compile. See INSTALL file. - Added Manome Tomonori's patch to fix kanji supprot. This added a new option to configure: --with-x-locale. See INSTALL and FAQ for more info. - Fix for clean compile under Irix. - Fixed autoarrange icons to do autoarrange after the dbl-click on app-icon. This way the appicon will not slip to the bottom left corner at the first touch, but let you first unhide the window. - Fixed icon box position when dock on the left side. Now dock will not cover the app-icons. - Fixed typo in application.c that inverted instance and class, thus making instance.class options saved in WMWindowAttributes unavailable. - Added option SelectKey in WindowMaker config file, that lets one bind a key to select/unselect the focused window. Also the same option added to the window menu. SelectKey = "some_key_bind"; - Changed stream->_fileno to fileno(stream) in isEof() in misc.c for portability. - Fixed window to not place themselves under dock if dock on the left side and auto/cascade mode is used. - Fixed auto/cascade window placement to not place a new window over a shadowed window. - Fixed bug in wdefaults.c that do not correctly initialized all bits in WWindowAttributes structure to 1. Changes since version 0.12.3: ............................. - Attribute editor is working. - Now menus positions are remembered between sesions if they are sticky when WindowMaker exits/restarts. - Fixed menu behaviour when using lousy Windoze behaviour, not to select the item under mouse pointer if the launching click is shorter than the default double-click time. - fixed window menu (Move to), to correctly update after a workspace delete. - fixed stacking order after restart. - fixed FocusPrevious/Next keybindings to skip windows with skip_window_list enabled. - added horizontal restricted resizing, if modifier key (Shift) is used to drag the corner handle of resizebar. - minor fixes in WINGs related to the return of some function and string update for NULL strings. Also a new function for getting the state of a button. - fixed some bugs that crashed WindowMaker because of NULL pointers. - fixed a crasing bug in the window stacking code. - fixed Hide item in window menu to be disabled for windows that do not have an application icon, or have set "NoAppIcon = YES". - fixed problems with hiding applications without application icon. - put back the patches that lost between 0.12.0 and 0.12.3 - changed autoarrange icons from a compile-time to a runtime option. Use AutoArrangeIcons = YES/NO; in 'WindowMaker' options file. Default is NO. - added compile time option for shading the resizebar. Default is no shade, which is default Openstep/NextStep4.0 look. - added pipe menus. '"Name" OPEN_MENU | script_that_constructs_menu' See the NEWS file. - added configurable horizontal resize threshold. Changes since version 0.12.2: ............................. - fixed typos and a bug that could cause a crash on machines where sizeof(int) was different from sizeof(pointer). - this is mainly intended for clarifying the confusion about patches that was done in the last releases. Changes since version 0.12.1: ............................. - fixed stupid, stupid typographical error that caused menus to segfault when NexMenuBehaviour / ScrollableMenus were set to YES (which is/was default) - changed configure so you can specify the location of graphics libraries and their header files (useful for building on different architectures) - fixed window focus problem Changes since version 0.12.0: ............................. - now maintained by Matthew Hawkins <matt@mail.goldweb.com.au> while our esteemed friend Alfredo is away. Have a great holiday in Japan, mate! - fixed __DuMmY install problems - made NextMenuBehaviour and ScrollableMenus run-time configuration options instead of compile-time options Changes since version 0.11.1: ............................. - added Launch command in dock menu - fixed manual window placement - fixed problem during installation in po/ directory - changed Command format for dock state - added OffiX DND support for the dock - added Move To submenu in window commands menu - right click on root window does not deselect windows (to allow workspace switch through menu) - various 8bpp Colormap related glitches fixed - fixed keyboard bindings when all windows are closed - OPEN_MENU in unreadable directory fix - changed PixmapPath format from : separated paths to array of paths - multi color horizontal and vertical gradient - fixed crash in unhide application with transient windows - OPEN_MENU with optional command Changes since version 0.11.0: ............................. - fixed bug with menus that caused wmaker to crash - brought program parameter dialog box back - fixed autoplacement - changed window matching precedence for WMWindowAttributes (complete, just instance, just class, global) - event compression while moving windows for slow videos and ultra-high mouse sampling rates - fixed private colormap change in 8bpp - fixed titlebar redraw on unshade - renamed atom _GNUSTEP_WM_MINIATURIZE_WINDOW to _WINDOWMAKER_WM_MINIATURIZE_WINDOW - fixed a bug with focusing windows in AutoFocus=NO; Changes since version 0.10.2: ............................. - fixed autoraise - fixed menu weirdness - many features brought back - fixed maximize bug - added a widget set and new dialog panels - fixed titlebar update after font change - renamed back _WINDOWMAKER_COMMAND to _WINDOWMAKER_WM_FUNCTION - fixed bug with miniaturization of bad behaved apps (vtcl) Changes since version 0.10.1: ............................. - fixed bug with "invisible" menus - added AutoFocus option - support for pixmap files for dock tile - fixed focusmode - tile pixmap for icons Changes since version 0.10.0: ............................. - fixed bug with input focus in sloppy focus mode - implemented pixmap mask creation in wrlib - root window pixmap option - added ppm support in wrlib - fixed portability stuff in libPropList - merged wmsound and bug fix patches - fixed dock icon border width - readded focusable option - autostart apps on startup - added jpeg support in wrlib - fixed bug with menus that did not end with a newline - RaiseLower now acts on the window under the pointer, as in olwm - fixed docked icon move - option for left handed ppl (swap left button with right button) - generalized titlebar and window frame stuff for windows and menus - changed event handling - single piece titlebar gradients - option and escape expansion for dock commands - save workspace state - initial workspace window option - corrected order of window names for dock state file (was class.instance, is instance.class now) Changes since version 0.9.0: ............................ - option to make maximize and window placement account for the Dock - fixed modifier binding - new menu configuration: OPEN_MENU. Get menu data from file, directory or pipe - removed rename_ws menu command - fixed IgnoreFocusClick - more apps can be docked (ghostview et. al) - fixed diagonal/horizontal resize detection to be like in NS - simplified titlebar button code: removed possibility to add more buttons - fixed window gravity handling (xclock -geometry 100x100-0-0) - removed shadeable window attribute, added DontMoveOff - window resize with Meta-Click3 on window - fixed bug that caused keyboard locks if a invalid key was used in a shortcut Changes since version 0.6.3: ............................ - moved to automake - changed preference directory from gnustep to GNUstep - added tiff support - changed preferences to be dynamically modifiable - several memory leaks fixed - changed meta-dblclick in dock button to start app to control-dblclick - fixed bug with unhide app and window list menu - miniaturized windows are now hidden when hiding an app - fixed bug in random window placement - renamed _GNUSTEP_WM_FUNCTION to _WINDOWMAKER_COMMAND - close stdin from forked processes, so that they don't block wmaker - fixed crash when closing a selected window - fixed timer event stuff to be more robust - rewrote dialog boxes with Athena - removed focusable window option - savews now puts -geometry as the first argument of the command line - new superfluous stuff: better ghost image/shadow for dock - changed handling of menus that fall outside of screen to be like in NS - icon caching - resize with button2 don't raise window - option to change menu highlight color - lower miniwindow when miniaturize - option for setting icon size - keyboard traversal of menus - all dock state information saved across sessions - must hold Alt to undock running app - added focused window indicator in window list - CirculateRaise option - ModifierKey option - fixed duplicated menu bug Changes since version 0.6.2: ............................ - fixed problem with window command menu (click3 on titlebar) - fixed appmenus that were not unmapped when focus switched from the app - fixed bug with exit dialog when NEWSTYLE is defined - miniaturized menus are not mapped when activating an app Changes since version 0.6.1: ............................ - dynamic update of WM_COMMAND hint - fixed crash bug with dock and application icons - fixed bug with application defined menus - selecting a window through the window list, brings windows that fall outside the visible area back - fixed bug with multiple window moving - various platform specific bug fixes - removed grab icon application icons Changes since version 0.6.0: ............................ - --enable-shape is the default now - fixed group leader change for windows that are already mapped - NEWSTYLE button images have the same color as the title text - fixed noappicon bugs related to dock - fixed starticonic hint (-iconic) - broke menu code so that it will not work as OpenStep says. ie: submenus are not mapped below the mainmenu. If you want it to be like before, undefine SINGLE_MENULEVEL in src/wconfig.h - switch to next window (alt+tab) raises the window - fixed window title handling for titles that don't fit on the window - drag select for window command menu - gamma correction for 8bpp - fixed bug in full docks - workspace switching by window drag - added patches for smart and random placement - added dgradient fix patch - workspace state restoration after restart - added PNG support to wrlib - changed RLoadImage() support in wrlib - set DISPLAY environment variable to what was passed with -display option - added animations preference option - fixed winitrc - restore main menu, workspace menu and window list menu after restart - changed gethostname() with getenv("HOSTNAME") || getenv("HOST") to setup cpp - fixed bug with program defined titlebar button image in NEWSTYLE - added kluge for buggy MetroX servers (look at wconfig.h) - ignore CapsLock when handling windows - ability to drag windows between workspaces - ability to drag icons with a icon window - fixed bug with arrange icons for appicons without any window mapped - display window's workspace in window list menu - if a sticked menu is opened again, a new instance of the menu is created Changes since version 0.5.1: ............................ - fixed bug that crashed wmaker on HPs - fixed bug that crashed wmaker with the window list - fixed bug with window focus after window miniturization - fixed bug that made wmaker crash when it didn't figure a docked app has quit. (probably the same problem with XFMail and others) - documented ColormapFollowsMouse option - workspace renaming through current selection - autolaunch indicator - dbl-click3 will not start app anymore - better handling of long text - limited windowlist menu width - fixed arrange icons - changed geometry display to account for base size if it's not in the technical drawing style - meta-dbl-click on appicon does hide others - changed RaiseOnFocus option with RaiseDelay - dbl-click on root window or open submenu entry brings the root menu to the cursor. - removed AllowMenuLowering option and made menu ontopness work like on dock - changed meta-click on dock with meta-dbl-click, to change ontopness - moved gradient and image code to a library. - added support for icons with alpha channel - simplified dithering setup - many clean ups - not-so-good looking gradients for 8bpp - changed application menu stuff - started wmaker client library. Try out test/test.c Changes since version 0.5.0: ............................ - startup stuff has changed!!! Instead of placing ~/.workspace_state in your .xinitrc, you must now call ~/gnustep/Library/WindowMaker/winitrc from there. Don't forget to update your menu files!!! Read the INSTALL file. - persistent root background colors (read the above item) - Spanish, Korean, Czech, Swedish and Dutch locales - menu commands can use the current selection as parameter (read the menu config file) - fixed bug in dock icons with 3 dots on some platforms - opaque window move - skipwindowlist option - better miniaturize animation - new silly animation(s) if --enable-superfluous is configured - button3 on miniaturize button hides the app - fixed bug on multi-window move - keyboard bindings ignores capslock state (but not NumLock, ScrollLock etc.) - fixed focus in unhide under sloppy focus mode Changes since version 0.4.3: ............................ - dock remembers ontop state - OnTopTransients works correctly now - removed startWithdrawn option - added option to put text over icons (iconText) - fixed slippery window move - fixed another bug with NEWSTYLE - fixed problem with large app_options files - more i18n stuff. japanese, german and portuguese locale support. Changes since version 0.4.2: ............................ - fixed black icon bug - fixed icon specification for dock - fixed docking on left side dock - fixed bug in window command menu - fixed bug in narrow windows with NEWSTYLE enabled - fixed Hide Others crash - I18N fixes - hopefully stable again Changes since version 0.4.1: ............................ - fixed some crash on startup bugs - fixed bug that made excessive use of colors in PseudoColor - (re)binding of application icons to Dock icons on (re)start - startWithdrawn window attribute - finished window list menu (button2) - implemented GSClientResizebar, GSMenuWindow, GSIconWindow, GSFullKeyboardEvents - implemented WINDOWMAKER_COMMAND ClientMessage handler - OffiX DND support in icons (for Trash) - portability fix for SunOS 4.x - fixed hide for windows with .noAppIcon: true - remember if window was hidden on restart - remember workspace on restart - do not auto-launch apps that are already running - asclock (and other docked apps) do not die on restart - forced application docking for undockable apps. See utils/dockapp - raiseOnFocus option for focus-follow-mouse mode - window command menu - fixed NEWSTYLE titlebars and converted menu titlebar button too Changes since version 0.4.0: ............................ - fixed bug in I18N support - fixed bug that caused crash when patched xv was ran - cosmetic fix for transparent icon images - tell about apps that couldn't be launched - auto-launch in dock - patch for asclock to work on dock - raise/lower dock - fixed bug in workspace change when there are no windows - allow screen side change for dock Changes since version 0.3.2: ............................ - application icons (not mini-windows) like I think how it is on NEXTSTEP(tm) - fixed "slippery" icon movement - added a Dock (not for GNUstep, as it will have it's own) Changes since version 0.3.1: ............................ - fixed bug that caused window frames to be left after window closure - submenus are opened to the left/right if it is too close to the right/left edge (not perfect, but better than before) - remember window state (shade) on restart - fixed resize bug - FreeBSD portability fixes - fixed bug in workspace menu with more than 9 workspaces - removed _GNUSTEP_WM_RESIZE_WINDOW, _GNUSTEP_WM_RESIZED_WINDOW protocols - fixed bug that caused crash when closing miniaturized apps - fixed little bug in resize - changed default shortcuts to be closer to NEXTSTEP(tm) (raise/lower window) Changes since version 0.3.0: ............................ - added diagonal gradients - ignoreHideOthers window flag - optimized/fixed window raising and lowering - fixed menu handling: don't need to click on the menu after it's opened to select items, just drag the pointer - _GNUSTEP_WM_RESIZE_WINDOW, _GNUSTEP_WM_RESIZED_WINDOW protocols - application specified titlebar button pixmaps - transient owners get a different titlebar color when the focus is in the transient (e.g, in NeXTese: mainWindow is highlighted correctly when the keyWindow is a panel) - when transient is closed, it's owner always get the focus - fixed XGrabButton/BadAccess bug - fixed window_count error (this time I'm 90% sure) - fixed focusNextWindow through Alt-Tab bug with non-focusable windows - fixed resize in windows without a titlebar - fixed bug with PAspect XSizeHint Changes since version 0.2.2: ............................ - fixed problem that made multiple applications be launched with accidental dbl-clicks on the root menu. - _GNUSTEP_WM_MINIATURIZE_WINDOW protocol - added hideOtherApplications command (meta-dbl-click3 on titlebar) - new SHOW_ALL (windows) menu command - new HIDE_OTHERS (windows) menu command - changed icon/window title to show only end part of text if it doesn't fit - remade application group code (more stable) - undid stacking code change from 0.2.0 - fixed bug that caused hangs (not sure) - fixed bug that caused window_count error and associated crashes - remade application defined menus - vertical gradient - I18N support - fixed multiple window selection bug with windows in other workspaces - changed workspace numbering - fixed problem with series of X errors when a window is destroyed - fixed cosmetic bug in gradient bevels - added UseSaveUnders option (problem with Netscape redrawing) Changes since version 0.2.1: ............................ - fixed segfault on startup - changed source tree Changes since version 0.2.0: ............................ - fixed various miscelaneous bugs - fixed icon pixmap update code - fixed bugs related to focus-follows-mouse mode (workspace switching, keyboard focus after unshading etc) - changed some options in preferences - changed window stacking order code - fixed icon handling - added option to display the root menu on startup - shaded windows are unshaded on restart, instead of getting iconified - fixed {ResizeDisplay,MoveDisplay}=corner - fixed problem with icon windows during restart - works OK from XDM Changes since version 0.1.3: ............................ - fixed color freeing bug - fixed bug that allowed a window to keep the input focus when you focus a shaded window - fixed bug that allowed on top window to be lowered - disappearing xconsole and other initial-state==IconicState windows fixed - menus open always inside screen area - open submenus are moved with their parents - keyboard support - faster menu drawing - hide for applications that use window_group hint fixed (LyX et al) - dynamic font setup (just a test) Changes since version 0.1.2: ............................ - worked around problems when freeing colors under some buggy X servers - vertical gradients - floatingmenu option Changes since version 0.1.1: ............................ - fixed list.c to compile in non-debug mode - sticked root menus cannot be unmapped clicking button3 (workspace unreachable problem) Changes since version 0.1.0: ............................ - texture structure changed - application menu prototype (not finished) - arrange icons command - menu window levels (menus are kept on top of other windows) - crash-on-alt-move-in-borderless-windows fixed - lot's of other bugs killed - delete last workspace command - titlebar text justification - start iconic hint is honored now - font setting in preferences - color setting in preferences - window dragging only occurs after 4 pixels of movement - restart command Changes since version 0.0.4: ............................ - changed configuration file syntax (just a little bit) - removed box class - finished multiple window move - changed window list order from focus order to stacking order - implemented OpenStep window levels and OnTop windows - added refresh command to menu - added shutdown command to menu - make default menu when menu config can't be parsed - finally added window focusing when clicking on client window area - added visual clue to menu item invocation - shaped window support - in-memory size got bigger than AfterStep - various client window state transition bug fixes - icon placement - added multiple workspaces (no Pager yet) - added option for submenu alignment in relation to their parents - rewrote preference parser - added focus-follows-mouse and sloppy-focus - added cpp preprocessing - zombie process bug fixed - interactive and dumb (cascade) window placement - floating transient windows - disable mapped submenu entry on parent - added colormap handling stolen from fvwm (temporary) Changes since version 0.0.3: ............................ - hide application implemented (just for apps that have the window_group field of WMHints set or the WM_CLIENT_LEADER property set, apparently most Xt based apps) - fixed a crashing bug caused by icons - internal change on button pixmap structure and other places - handling of property changes on mapped windows - fixed bug in event handling (MapRequest) - added support for systems without libXpm - added configure script, although it's still almost useless. - remade icon painting - icon background pixmap - internal icon pixmap dithering ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/ltmain.sh������������������������������������������������������������������������0000755�0001750�0001750�00000733415�12214434555�012627� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to <bug-libtool@gnu.org>. PROGRAM=ltmain.sh PACKAGE=libtool VERSION="2.2.6b Debian-2.2.6b-2ubuntu1" TIMESTAMP="" package_revision=1.3017 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <<EOF $* EOF exit $EXIT_SUCCESS fi magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. # $mode is unset nonopt= execute_dlfiles= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 opt_dry_run=false opt_duplicate_deps=false opt_silent=false opt_debug=: # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { $ECHO "host: $host" if test "$build_libtool_libs" = yes; then $ECHO "enable shared libraries" else $ECHO "disable shared libraries" fi if test "$build_old_libs" = yes; then $ECHO "enable static libraries" else $ECHO "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <<EOF # $write_libobj - a libtool object file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # Name of the PIC object. pic_object=$write_lobj # Name of the non-PIC object non_pic_object=$write_oldobj EOF $MV "${write_libobj}T" "${write_libobj}" } } # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) pie_flag="$pie_flag $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_quote_for_eval "$arg" lastarg="$lastarg $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_quote_for_eval "$lastarg" base_compile="$base_compile $func_quote_for_eval_result" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.obj | *.sx) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 </dev/null >/dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat <<EOF /* $cwrappersource - temporary wrapper executable for $objdir/$outputname Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION The $output program cannot be directly executed until all the libtool libraries that it depends on are installed. This wrapper executable should never be moved out of the build directory. If it is, it will not operate correctly. Currently, it simply execs the wrapper *script* "$SHELL $output", but could eventually absorb all of the scripts functionality and exec $objdir/$outputname directly. */ EOF cat <<"EOF" #include <stdio.h> #include <stdlib.h> #ifdef _MSC_VER # include <direct.h> # include <process.h> # include <io.h> # define setmode _setmode #else # include <unistd.h> # include <stdint.h> # ifdef __CYGWIN__ # include <io.h> # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include <malloc.h> #include <stdarg.h> #include <assert.h> #include <string.h> #include <ctype.h> #include <errno.h> #include <fcntl.h> #include <sys/stat.h> #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <<EOF static const char *script_text_part2 = EOF func_emit_wrapper_part2 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <<EOF const char * MAGIC_EXE = "$magic_exe"; const char * LIB_PATH_VARNAME = "$shlibpath_var"; EOF if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then func_to_host_pathlist "$temp_rpath" cat <<EOF const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; EOF else cat <<"EOF" const char * LIB_PATH_VALUE = ""; EOF fi if test -n "$dllsearchpath"; then func_to_host_pathlist "$dllsearchpath:" cat <<EOF const char * EXE_PATH_VARNAME = "PATH"; const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; EOF else cat <<"EOF" const char * EXE_PATH_VARNAME = ""; const char * EXE_PATH_VALUE = ""; EOF fi if test "$fast_install" = yes; then cat <<EOF const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ EOF else cat <<EOF const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ EOF fi cat <<"EOF" #define LTWRAPPER_OPTION_PREFIX "--lt-" #define LTWRAPPER_OPTION_PREFIX_LENGTH 5 static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7; static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set"; /* argument is putenv-style "foo=bar", value of foo is set to bar */ static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11; static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend"; /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */ static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10; static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append"; /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */ int main (int argc, char *argv[]) { char **newargz; int newargc; char *tmp_pathspec; char *actual_cwrapper_path; char *actual_cwrapper_name; char *target_name; char *lt_argv_zero; intptr_t rval = 127; int i; program_name = (char *) xstrdup (base_name (argv[0])); LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); /* very simple arg parsing; don't want to rely on getopt */ for (i = 1; i < argc; i++) { if (strcmp (argv[i], dumpscript_opt) == 0) { EOF case "$host" in *mingw* | *cygwin* ) # make stdout use "unix" line endings echo " setmode(1,_O_BINARY);" ;; esac cat <<"EOF" printf ("%s", script_text_part1); printf ("%s", script_text_part2); return 0; } } newargz = XMALLOC (char *, argc + 1); tmp_pathspec = find_executable (argv[0]); if (tmp_pathspec == NULL) lt_fatal ("Couldn't find %s", argv[0]); LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", tmp_pathspec)); actual_cwrapper_path = chase_symlinks (tmp_pathspec); LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", actual_cwrapper_path)); XFREE (tmp_pathspec); actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); strendzap (actual_cwrapper_path, actual_cwrapper_name); /* wrapper name transforms */ strendzap (actual_cwrapper_name, ".exe"); tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); XFREE (actual_cwrapper_name); actual_cwrapper_name = tmp_pathspec; tmp_pathspec = 0; /* target_name transforms -- use actual target program name; might have lt- prefix */ target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); strendzap (target_name, ".exe"); tmp_pathspec = lt_extend_str (target_name, ".exe", 1); XFREE (target_name); target_name = tmp_pathspec; tmp_pathspec = 0; LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", target_name)); EOF cat <<EOF newargz[0] = XMALLOC (char, (strlen (actual_cwrapper_path) + strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); strcpy (newargz[0], actual_cwrapper_path); strcat (newargz[0], "$objdir"); strcat (newargz[0], "/"); EOF cat <<"EOF" /* stop here, and copy so we don't have to do this twice */ tmp_pathspec = xstrdup (newargz[0]); /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ strcat (newargz[0], actual_cwrapper_name); /* DO want the lt- prefix here if it exists, so use target_name */ lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); XFREE (tmp_pathspec); tmp_pathspec = NULL; EOF case $host_os in mingw*) cat <<"EOF" { char* p; while ((p = strchr (newargz[0], '\\')) != NULL) { *p = '/'; } while ((p = strchr (lt_argv_zero, '\\')) != NULL) { *p = '/'; } } EOF ;; esac cat <<"EOF" XFREE (target_name); XFREE (actual_cwrapper_path); XFREE (actual_cwrapper_name); lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ lt_setenv ("DUALCASE", "1"); /* for MSK sh */ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); newargc=0; for (i = 1; i < argc; i++) { if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0) { if (argv[i][env_set_opt_len] == '=') { const char *p = argv[i] + env_set_opt_len + 1; lt_opt_process_env_set (p); } else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc) { lt_opt_process_env_set (argv[++i]); /* don't copy */ } else lt_fatal ("%s missing required argument", env_set_opt); continue; } if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0) { if (argv[i][env_prepend_opt_len] == '=') { const char *p = argv[i] + env_prepend_opt_len + 1; lt_opt_process_env_prepend (p); } else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc) { lt_opt_process_env_prepend (argv[++i]); /* don't copy */ } else lt_fatal ("%s missing required argument", env_prepend_opt); continue; } if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0) { if (argv[i][env_append_opt_len] == '=') { const char *p = argv[i] + env_append_opt_len + 1; lt_opt_process_env_append (p); } else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc) { lt_opt_process_env_append (argv[++i]); /* don't copy */ } else lt_fatal ("%s missing required argument", env_append_opt); continue; } if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) { /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX namespace, but it is not one of the ones we know about and have already dealt with, above (inluding dump-script), then report an error. Otherwise, targets might begin to believe they are allowed to use options in the LTWRAPPER_OPTION_PREFIX namespace. The first time any user complains about this, we'll need to make LTWRAPPER_OPTION_PREFIX a configure-time option or a configure.ac-settable value. */ lt_fatal ("Unrecognized option in %s namespace: '%s'", ltwrapper_option_prefix, argv[i]); } /* otherwise ... */ newargz[++newargc] = xstrdup (argv[i]); } newargz[++newargc] = NULL; LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : "<NULL>"), (value ? value : "<NULL>"))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : "<NULL>"), (value ? value : "<NULL>"))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : "<NULL>"), (value ? value : "<NULL>"))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c <<EOF int main() { return 0; } EOF $opt_dry_run || $RM conftest if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then ldd_output=`ldd conftest` for i in $deplibs; do case $i in -l*) func_stripname -l '' "$i" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) newdeplibs="$newdeplibs $i" i="" ;; esac fi if test -n "$i" ; then libname=`eval "\\$ECHO \"$libname_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then newdeplibs="$newdeplibs $i" else droppeddeps=yes $ECHO $ECHO "*** Warning: dynamic linker does not accept needed library $i." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which I believe you do not have" $ECHO "*** because a test_compile did reveal that the linker did not use it for" $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." fi fi ;; *) newdeplibs="$newdeplibs $i" ;; esac done else # Error occurred in the first compile. Let's try to salvage # the situation: Compile a separate program for each library. for i in $deplibs; do case $i in -l*) func_stripname -l '' "$i" name=$func_stripname_result $opt_dry_run || $RM conftest if $LTCC $LTCFLAGS -o conftest conftest.c $i; then ldd_output=`ldd conftest` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) newdeplibs="$newdeplibs $i" i="" ;; esac fi if test -n "$i" ; then libname=`eval "\\$ECHO \"$libname_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then newdeplibs="$newdeplibs $i" else droppeddeps=yes $ECHO $ECHO "*** Warning: dynamic linker does not accept needed library $i." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because a test_compile did reveal that the linker did not use this one" $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." fi fi else droppeddeps=yes $ECHO $ECHO "*** Warning! Library $i is needed by this library but I was not able to" $ECHO "*** make it link in! You will probably need to install it or some" $ECHO "*** library that it depends on before this library will be fully" $ECHO "*** functional. Installing it before continuing would be even better." fi ;; *) newdeplibs="$newdeplibs $i" ;; esac done fi ;; file_magic*) set dummy $deplibs_check_method; shift file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/The-perfect-Window-Maker-patch.txt�����������������������������������������������0000644�0001750�0001750�00000012273�12214432632�017274� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������____________ Introduction ------------ These notes are meant to help you in the process of making and submitting patches to the git repository of wmaker-crm. It assumes you have 'git' correctly installed and you have set the most basic configuration options via 'git config'. See the end of this file for an example .gitconfig. To clone the wmaker-crm repository you can do: git clone git://repo.or.cz/wmaker-crm.git __________________________ Producing a patch with git -------------------------- You have the wmaker source and you want to write a patch in order to fix a bug or improve something. A possible workflow is the following. # Optional: Create a new branch (to be safe in case you screw up) git checkout -b fixbug Now you fix the bug... # Check what you did, review etc git diff # if it looks good, commit your changes git commit -a Git will open the editor set in your .gitconfig and you'll have to write a commit message. Writing a good message is as important as the source code modifications you've just made! See "Writing the commit log" for advice. # Prepare the patch to submit to the mailing-list. # (use HEAD~2 if you want patches for the last 2 commits etc) git format-patch HEAD~1 ______________________ Writing the commit log ---------------------- You had a motivation to write your patch, you studied the sources and you found a way to do what you wanted to do. This whole process takes time and other people will not want to invest that time to rediscover what you've already found. So the main reason for the commit message is to explain to other people what you did, _why_ and _how_. And you must assume that the person you must explain these things to will not be as familiar with the code you just modified as you are right after writing the patch -- and that includes yourself in a year or so. Be verbose in all the steps below. The good commit log will start with the reason for writing the patch. For example, if you use wmaker in some way and you expect that X happens but you get Y, you should say that very clearly. Sometimes that's enough for other more experienced people to know how to solve your issue. They will be able to judge your patch better if they know what you wanted to do -- sometimes there can be a better way to fix it. Then you should explain why the wmaker source leads to Y and not to X. Technicall stuff can be expected at this point, e.g. "upon doing xyz in function foobar(), wmaker sets the variable foo to 'y' instead of setting it to 'x', and that will lead to blabla happening in function foobar_squared()...". And finally you explain how you fixed it. "You have to set foo to 'x', because then when the function foobar_squared() is called it will do X instead of Y because..." At this point other people will have a clear understanding of what you did with minimal effort. And that leads to better patch reviews. Furthermore, the above reasons should also tell you that you must not do more than one thing in the same patch. Again: "Each patch must do one thing and one thing only." If your patch does too much of unrelated stuff, it makes reviewing a nightmare and long-term mantainance much worse (think about a patch which introduces a regression in the middle of many other nice improvements, and now you have to get rid of the regression without removing the improvements -- 'git revert' will not help you here). If you find yourself having troubles to write what you did in the commit message, perhaps you did too much. In this case you should split your patch into smaller unrelated pieces and produce a patch series. Unfortunately it's more work for you, but it's much better for wmaker. _____________________________________ Sending the patch to the mailing list ------------------------------------- Send your patches to: wmaker-dev@lists.windowmaker.org Please do not send patches to any individual developer unless you have a very good reason to avoid more people being able to comment (and improve) on your patches. Sending the patch _properly_ is not as trivial as you might think. Some mail clients convert TABs to spaces or word wrap long lines automatically, which will result in your patch being rejected as it will not apply with 'git apply'. Ideally your patch should contain a very good commit message that explains why you wrote the patch in the first place (see "Writing the commit log"). In this case you can simply send the file(s) created in the 'git format-patch' step above as the sole content of your email to the mailing list. All your reasons and explanations will be in the commit log, and your email will look like: ********************************** From: someone@someplace Subject: [PATCH] Fix something The commit message. The diff itself. ********************************** Read the file email-clients.txt in the topdir of the wmaker-crm repository to be adviced on how to tweak your email client to avoid common pitfalls. ___________________ Example .gitconfig ------------------- [user] name = Erwin Schrodinger email = schrodinger@gmail.com [core] editor = xjed [status] showUntrackedFiles = no [color] branch = auto status = auto diff = auto ui = auto [apply] whitespace = fix �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/�����������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434645�011614� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/WindowMaker.1x���������������������������������������������������������������0000644�0001750�0001750�00000000023�12214432632�014222� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.so man1/wmaker.1x �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/setstyle.1x������������������������������������������������������������������0000644�0001750�0001750�00000003611�12214432632�013655� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH setstyle 1x "January 1999" .SH NAME setstyle \- set style related options for Window Maker or loads a theme .SH SYNOPSIS .B setstyle .I "[--no-fonts] [--no-cursors] [--help] [--version]" .I stylefile .SH DESCRIPTION .B setstyle 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 \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. If the \fB\-\-no\-cursors\fP flag is specified, any mouse cursor definitions (\fINormalCursor\fP, \fIArrowCursor\fP, \fIMoveCursor\fP, \fITopLeftResizeCursor\fP, \fITopRightResizeCursor\fP, \fIBottomLeftResizeCursor\fP, \fIBottomRightResizeCursor\fP, \fIVerticalResizeCursor\fP, \fIHorizontalResizeCursor\fP, \fIWaitCursor\fP, \fIQuestionCursor\fP, \fITextCursor\fP, \fISelectCursor\fP) in the style or theme will be ignored. .SH OPTIONS .TP .B \-\-no\-fonts ignore font related options in style file. .TP .B \-\-no\-cursors ignore cursor definition 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 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. .SH SEE ALSO .BR getstyle (1x), .BR wmaker (1x) .SH AUTHOR This man page was written by Marcelo Magallon <mmagallo@debian.org>. .PP Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>. �����������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/Makefile.in������������������������������������������������������������������0000644�0001750�0001750�00000056320�12214434561�013604� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)" man8dir = $(mandir)/man8 NROFF = nroff MANS = $(man_MANS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ SUBDIRS = sk cs ru man_MANS = \ geticonset.1x \ getstyle.1x \ get-wings-flags.1 \ get-wraster-flags.1 \ get-wutil-flags.1 \ seticons.1x \ setstyle.1x \ upgrade-windowmaker-defaults.8 \ wdread.1 \ wdwrite.1x \ WindowMaker.1x \ wmagnify.1x \ wmaker.1x \ wmgenmenu.1 \ wmmenugen.1 \ wmsetbg.1x \ WPrefs.1x \ wxcopy.1x \ wxpaste.1x EXTRA_DIST = $(man_MANS) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list=''; test -n "$(man1dir)" || exit 0; \ { for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ test -z "$$files" || { \ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } install-man8: $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)" @list=''; test -n "$(man8dir)" || exit 0; \ { for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.8[a-z]*$$/p'; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ done; } uninstall-man8: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man8dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.8[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ test -z "$$files" || { \ echo " ( cd '$(DESTDIR)$(man8dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(man8dir)" && rm -f $$files; } # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(MANS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-man install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-man1 install-man8 install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-man uninstall-man: uninstall-man1 uninstall-man8 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-man1 install-man8 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-man uninstall-man1 uninstall-man8 # 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. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/wxpaste.1x�������������������������������������������������������������������0000644�0001750�0001750�00000002356�12214432632�013501� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wxpaste 1x "March 1998" .SH NAME wxpaste \- output a cutbuffer to stdout .SH SYNOPSIS .B wxpaste [options] .SH DESCRIPTION .B wxpaste outputs the contents of the specified cutbuffer to stdout. If no cutbuffer is specified, the cutbuffer 0 will be used as default. .PP .SH OPTIONS .TP .B \-cutbuffer number The data will be pasted from the specified cutbuffer, instead of the default 0. .TP .B \-display display\-name Specifies the display where wxpaste should look for the data to be pasted. .TP .B \-selection [selection\-name] The data will be copied from the named selection. If cutting from the selection fails, the cutbuffer will be used. The default value for the selection name is PRIMARY. .PP .SH BUGS .TP The \-selection option must be the last one. The syntax could be cleaned, but backwards compatibility prevents that... INCR and MULTIPLE selection types are not handled. Actually, only simple text selections are handled, wich should be enough for most uses of a utility such as this. .SH SEE ALSO .BR wxcopy (1x), .BR wmaker (1x) .SH AUTHOR This man page was written by Marcelo Magallon <mmagallo@debian.org>. .PP Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/cs/��������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434645�012221� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/cs/setstyle.1x���������������������������������������������������������������0000644�0001750�0001750�00000002721�12214432632�014263� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH setstyle 1x "Leden 1999" .SH JMÉNO setstyle \- zmìní nastavení Window Makera související se stylem nebo zavede téma .SH SYNTAXE .B setstyle .I "[--no-fonts] [--help] [--version]" .I soubor se stylem .SH DESCRIPTION .B setstyle naèítá .I soubor se stylem a zapí¹e jeho obsah do domény Window Makera, èím¾ nastaví aktuální styl Window Makera. Jakmile je poskytnutá cesta, adresáø bude pova¾ovaný za balík s tématem a podla toho bude i zavedený. Jakmile je daný argument \fB\-\-no\-fonts\fP, nastavení související s fonty (\fIIconTitleFont\fP, \fIClipTitleFont\fP, \fIDisplayFont\fP, \fIMenuTextFont\fP, \fIMenuTitleFont\fP, \fIWindowTitleFont\fP) v souboru se stylem budou ignorované. .SH VOLBY .TP .B \-\-no\-fonts ignorovat nastavení fontù v souboru se stylem. .TP .B \-\-help vypí¹e nápovìdu .TP .B \-\-version vypí¹e èíslo verze .SH PROMìNNÉ PROSTØEDÍ .IP GNUSTEP_USER_ROOT specifikuje cestu k adresáøi Defaults. Øetìzec "Defaults/" je pøidán k této promìnné, èím¾ se urèí umístìní databází. Jakmile promìnná není nastavená, tak její implicitní hodnota je "~/GNUstep" .SH SOUBORY .IP GNUSTEP_USER_ROOT/Defaults/WindowMaker Toto je soubor, který se zapí¹e. .SH PODÍVEJTE SE TAKÉ .BR getstyle (1x), .BR wmaker (1x) .SH AUTOR Autorem Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Tuto manuálovou stránku napsal Marcelo Magallon <mmagallo@debian.org>. .PP Do èe¹tiny pøelo¾il Jiøí Hnídek <jiri.hnidek@vslib.cz>. �����������������������������������������������WindowMaker-0.95.5/doc/cs/Makefile.in���������������������������������������������������������������0000644�0001750�0001750�00000034470�12214434561�014213� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/cs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@/cs menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ man_MANS = \ geticonset.1x \ setstyle.1x \ wxpaste.1x \ getstyle.1x \ wdwrite.1x \ wmsetbg.1x \ seticons.1x \ wmaker.1x \ wxcopy.1x EXTRA_DIST = $(man_MANS) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/cs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/cs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list=''; test -n "$(man1dir)" || exit 0; \ { for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ test -z "$$files" || { \ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-man uninstall-man1 # 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. .NOEXPORT: ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/cs/wxpaste.1x����������������������������������������������������������������0000644�0001750�0001750�00000002406�12214432632�014102� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wxpaste 1x "Bøezen 1998" .SH JMÉNO wxpaste \- zapí¹e vyrovnávací pamì» na standardní výstup .SH SYNTAXE .B wxpaste [volby] .SH POPIS .B wxpaste vypí¹e obsah dané vyrovnávací pamìti na standardní výstup. Jakmile není zadána ¾ádná vyrovnávací pamì», tak se pou¾ije vyrovnávací pamì» 0. .PP .SH VOLBY .TP .B \-cutbuffer èíslo Data budou vlo¾ena z dané vyrovnávací pamìti namísto standardní 0. .TP .B \-display displej Data se budou kopírovat z vyrovnávací pamìti daného displeje/obrazovky. .TP .B \-selection [selekcia] Data budou kopírované z dané selekce. Jakmile se výbìr ze selekce nepodaøí, tak se pou¾ije vyrovnávací pamì». Implicitní hodnota pro selekci je PRIMARY. .PP .SH CHYBY \-selection musí být poslední volba. Syntaxe mù¾e být upravená, ale brání tomu ¹patná kompatibilita. Typy selekcí INCR a MULTIPLE nejsou podporované. Ve skuteènosti je podporovaný jen jednoduchý text, co¾ by mìlo staèit pro vìt¹inu u¾ivatelù takovéto jednoduché utilitky. .SH PODÍVEJTE SE TAKÉ .BR wxcopy (1x), .BR wmaker (1x) .SH AUTOR Autorem Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Tuto manuálovou stránku napsal Marcelo Magallon <mmagallo@debian.org>. .PP Do èe¹tiny pøelo¾il Jiøí Hnídek <jiri.hnidek@vslib.cz>. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/cs/wxcopy.1x�����������������������������������������������������������������0000644�0001750�0001750�00000002652�12214432632�013743� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wxcopy 1x "Záøí 1998" .SH JMÉNO wxcopy \- kopíruje standartní vstup do vyrovnávací pamìti .SH SYNOPSIS .B wxcopy [volby] [soubor] .SH POPIS .B wxcopy kopíruje standartní vstup nebo .I soubor do vyrovnávací pamìti. Jakmile není dáná nìjaká vyrovnávací pamì», tak se data kopírují do vyrovnávací pamìti 0 a ostaní vyrovnávací pamìti rotují, jestli¾e ov¹em existují. Pokud je dáná vyrovnávací pamì», tak se data kopírují do ní a nevykoná se ¾ádné rotování. .SH VOLBY .TP .B \-cutbuffer èíslo Specifikuje èíslo vyrovnávací pamìti, do které se budou kopírovat data. .TP .B \-display displej Data se budou kopírovat do vyrovnávací pamìti daného displeje/obrazovky. .TP .B \-nolimit Vypne normální limit velikosti dat 64kb, èím¾ se umo¾ní zvìt¹ování vyrovnávací pamìti podla potøeby. .TP .B \-clearselection Vyprázdní vlastníka PRIMARY selekce. V praxi to znamená, ¾e kdy¾ se pokusíte vlo¾it data prostøedním tlaèítkem (napøíklad), tak vlo¾í se data z vyrovnávací pamìti 0, namísto pøípadného spu¹tìní selelekce my¹i. .PP .SH PODÍVEJTE SE TAKÉ .BR wxpaste (1x), .BR wmaker (1x) .SH AUTOR Autorem Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Tuto manuálovou stránku napsal Marcelo Magallon <mmagallo@debian.org>. .PP Do èe¹tiny pøelo¾il Jiøí Hnídek <jiri.hnidek@vslib.cz>. .PP Kompatibilitu s binárními daty a \-nolimit implementoval Luke Kendall <luke@research.canon.com.au>. ��������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/cs/wmaker.1x�����������������������������������������������������������������0000644�0001750�0001750�00000011254�12214432632�013676� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH Window\ Maker 1x "Srpen 1998" .SH JMÉNO wmaker \- okenní mana¾er pro X11 se vzhledem NEXTSTEPu .SH SYNTAXE .B wmaker .I "[-volby]" .SH "POPIS" Window Maker je okenní mana¾er pro X11 se vzhledem NEXTSTEPu. Sna¾í se napodobit vzhled NeXTu jak jen to je mo¾né, ale v pøípadì potøeby tento trend nedodr¾uje. .SH "VOLBY" .TP .B \-\-no\-cpp zakázat preprocessing konfiguraèních souborù .TP .B \-\-no\-dock neotvírat Dok aplikací .TP .B \-\-no\-clip neotvírat Sponku pracovních ploch .TP .B \-display host:display.screen pou¾ít danou obrazovku. Na strojích s více obrazovkami bude Window Maker automaticky spravovat v¹echny obrazovky. Pokud chcete, aby Window Maker spravoval jen specifickou obrazovku, musíte zadat èíslo obrazovky pomocí argumentu pøíkazové øádky .B \-display. Napøíklad, pokud chcete, aby Window Maker spravoval jen obrazovku 1, spus»te ho takto: .B wmaker -display :0.1 .TP .B \-\-version vypí¹e verzi a ukonèí se .TP .B \-\-visual\-id urèí èísla obrazového re¾imu. Spus»te .BR xdpyinfo (1x) pro seznam obrazových re¾imù dostupných na va¹em displeji. .TP .B \-\-help vypí¹e krátký pomocný text .PP .SH SOUBORY .TP .B ~/GNUstep/Defaults/WindowMaker v¹eobecné nastavení Window Makera. .TP .B ~/GNUstep/Defaults/WMState informace o Doku a Sponce. Neditujte za bìhu Window Makera. Bude pøepsaný. .TP .B ~/GNUstep/Defaults/WMRootMenu Obsahuje jméno souboru, z kterého se má naèíst hlavní menu nebo menu samotné ve formátu proplist. .TP .B ~/GNUstep/Defaults/WMWindowAttributes Atributy pro rùzné tøídy a instance aplikací. Pou¾ijte editor nastavení (stisknìte pravé tlaèítko my¹i na horní li¹tì aplikace, zvolte Atributy) namísto pøímého editování tohoto souboru. Je jen málo nastavení, která nejsou dostupná z editora nastavení. .TP .B /usr/share/WindowMaker/Defaults/ V¹echny vý¹e uvedené soubory se NAèÍTAJÍ odtud. Pokud se je nepodaøí najít, kromì WMState, který se odtud ZKOPÍRUJE. Nezále¾í na tom, odkud jsou naèítané. Pokud je potøeba zapsat zmìnu konfigurace zpìt do tìchto souborù, zapí¹ou se do u¾ivatelských souborù. .TP .B ~/GNUstep/Library/WindowMaker/autostart Tento skript se automaticky vykoná pri startu Window Makera. .TP .B ~/GNUstep/Library/WindowMaker/exitscript Tento skript se automaticky vykoná bezprostøednì pøed ukonèením Window Makera. .B Poznámka: Kdy¾ potøebujete spustit z tohoto skriptu nìco, co vy¾aduje spu¹tìný X server, tak nepou¾ívejte na ukonèení Window Makera pøíkaz .I SHUTDOWN z hlavního menu. Jinak se mù¾e stát, ¾e X server se ukonèí døív ne¾ se vykoná tento skript. .TP .B ~/GNUstep/Library/WindowMaker/ Soubor menu, jeho¾ název je uveden v souboru WMRootMenu, se hledá zde... .TP .B /etc/X11/WindowMaker/ a zde, v tomto poøadí, pokud název není absolutní cesta. .TP .B ~/GNUstep/Library/WindowMaker/Pixmaps/ Zde hledá Window Maker obrázky .TP .B ~/GNUstep/Library/WindowMaker/Backgrounds/ Zde hledá Window Maker pozadí .TP .B ~/GNUstep/Library/WindowMaker/Styles/ Zde hledá Window Maker soubory se styly (ne úplnì... vypadá to tak, ale i tak musíte zadat úplnou cestu. Je to jen vyhrazené místo, aby byly vìci pìknì uspoøádané) .TP .B ~/GNUstep/Library/WindowMaker/Themes/ Zde hledá Window Maker soubory s tématy (viz. vý¹e) .TP .B /usr/share/WindowMaker/Pixmaps/ Obrázky spoloèné pro celý systém se nacházejí zde... .TP .B /usr/share/WindowMaker/Pixmaps/ a zde. .TP .B /usr/share/WindowMaker/Styles/ Styly spoloèné pro celý systém se nacházejí zde .TP .B /usr/share/WindowMaker/Themes/ A teï to zkuste sami... ;-) .SH PROMÌNNÉ PROSØEDÍ .IP GNUSTEP_USER_ROOT specifikuje cestu k adresáøi Defaults. "Defaults/" je pøidán k této promìnné, èím¾ se urèí umístìní databází. Pokud promìnná není nastavená, ta její implicitní hodnota je "~/GNUstep" .IP GNUSTEP_LOCAL_ROOT specifikuje umístìní systémového \fBlokálního\fP GNUstep adresáøe (to je u¾iteèné v pøípadì, ¾e umístìní adresáøe spoleèného pro celý systém je ve skuteènosti spoleèné pro celou sí»). Kdy¾ je tato promìnná prázdna, pou¾ije se GNUSTEP_SYSTEM_ROOT. .IP GNUSTEP_SYSTEM_ROOT specifikuje umístìní systémového GNUstep adresáøe. Pokud je tato promìnná prázdna, tak její implicitní hodnota je /etc/GNUstep .SH PODÍVEJTE SE TAKÉ The Window Maker User Guide (U¾ivatelská pøíruèka Window Makera) .PP The Window Maker FAQ (Èasto kladené dotazy) .PP .BR X (1x), .BR wdwrite (1x), .BR wxcopy (1x), .BR geticonset (1x), .BR seticons (1x), .BR wmaker (1x), .BR wxpaste (1x), .BR getstyle (1x), .BR setstyle (1x), .BR wmsetbg (1x) .SH AUTOR Autoøi Window Makera jsou Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.info> a mnoho dal¹ích lidí z celého svìta. .PP Tuto manuálovou stránku napsal Marcelo E. Magallon, <mmagallo@debian.org>. .PP Do èe¹tiny pøelo¾il Jiøí Hnídek <jiri.hnidek@vslib.cz> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/cs/wdwrite.1x����������������������������������������������������������������0000644�0001750�0001750�00000001625�12214432632�014076� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wdwrite 1x "Leden 1999" .SH JMÉNO wdwrite \- zapí¹e klíèe a hodnoty do databáze standardních nastavení .SH SYNTAXE .B wdwrite .I doména .I volba .I hodnota .SH POPIS .B wdwrite zapí¹e .I volbu a .I hodnotu do dané .I domény. .SH VOLBY .TP .B \-\-help vypí¹e nápovìdu .TP .B \-\-version vypí¹e èíslo verze .SH PROMÌNNÉ PROSTØEDÍ .IP GNUSTEP_USER_ROOT specifikuje cestu k adresáøi Defaults. Øetìzec "Defaults/" je pøidán k této promìnné, èím¾ se urèí umístìní databází. Jakmile promìnná není nastavená, tak její implicitní hodnota je "~/GNUstep" .SH SOUBORY Domény se nacházejí v GNUSTEP_USER_ROOT/Defaults/ .SH PODÍVEJTE SE TAKÉ .BR wmaker (1x) .SH AUTOR Autorem Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Tuto manuálovou stránku napsal Marcelo Magallon <mmagallo@debian.org>. .PP Do èe¹tiny pøelo¾il Jiøí Hnídek <jiri.hnidek@vslib.cz> �����������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/cs/Makefile.am���������������������������������������������������������������0000644�0001750�0001750�00000000367�12214432632�014175� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in mandir=@mandir@/cs man_MANS = \ geticonset.1x \ setstyle.1x \ wxpaste.1x \ getstyle.1x \ wdwrite.1x \ wmsetbg.1x \ seticons.1x \ wmaker.1x \ wxcopy.1x EXTRA_DIST = $(man_MANS) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/cs/seticons.1x���������������������������������������������������������������0000644�0001750�0001750�00000002053�12214432632�014234� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH seticons 1x "Bøezen 1998" .SH JMÉNO seticons \- nastaví ikony pro Window Maker .SH SYNTAXe .B seticons .I soubor .SH POPIS .B seticons naèíta .I soubor a zapí¹e jeho obsah do domény WMWindowAttributes, èím¾ se nastaví ikony, které pou¾ívá Window Maker pro dané tøídy (napøíklad XTerm, "xterm.XTerm", "pine.XTerm", atd.) .SH VOLBY .TP .B \-\-help vypí¹e nápovìdu .TP .B \-\-version vypí¹e èíslo verze .SH PROMÌNNÉ PROSTØEDÍ .IP GNUSTEP_USER_ROOT specifikuje cestu k adresáøi Defaults. Øetìzec "Defaults/" je pøidán k této promìnné, èím¾ se urèí umístìní databází. Jakmile promìnná není nastavená, tak její implicitní hodnota je "~/GNUstep" .SH SOUBORY .IP GNUSTEP_USER_ROOT/Defaults/WMWindowAttributes Toto je soubor, který se zapí¹e. .SH PODÍVEJTE SE TAKÉ .BR geticonset (1x), .BR wmaker (1x) .SH AUTOR Autorem Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Tuto manuálovou stránku napsal Marcelo Magallon <mmagallo@debian.org>. .PP Do èe¹tiny pøelo¾il Jiøí Hnídek <jiri.hnidek@vslib.cz>. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/cs/getstyle.1x���������������������������������������������������������������0000644�0001750�0001750�00000004064�12214432632�014251� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH getstyle 1x "Leden 1999" .SH JMÉNO getstyle \- vytvoøí balík s aktuálním stylem Window Makera. .SH SYNTAXE .B getstyle [[\-t|\-\-theme-options] [\-p|\-\-pack] [soubor se stylem]] .SH POPIS .B getstyle mù¾e buï vypsat konfiguraèní informace aktuálního stylu Window Makera do souboru/standardního výstupu nebo vytvoøit samostatný balík s tématem. Balík s tématem je adresáø, který obsahuje v¹echno potøebné pro distributovatelné téma, informace o stylech a obrázcích. Dejte pozor na to, ¾e informace o stylu ulo¾ené v globální konfiguraci systému se nenaèítají. Standardnì se ulo¾í nasledné vlastnosti: \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. Jakmile je dána volba \fB-t\fP nebo \fB--theme-options\fP, vlastnost \fIWorkspaceBack\fP se ulo¾í také. .SH VOLBY .TP .B \-t ulo¾í i informace související s tématem, co¾ je textura pozadí hlavního okna. Tato volba je v¾dy nastavená, jakmile je pou¾itá volba \-p. .TP .B \-p vytvoøí balík s tématem v adresáøi nazvaným podla jména tématu s pøíponou .themed. .SH PROMÌNNÉ PROSTØEDÍ .IP GNUSTEP_USER_ROOT specifikuje cestu k adresáøi Defaults. Øetìzec "Defaults/" je pøidán k této promìnné, èím¾ se urèí umístìní databází. Jakmile promìnná není nastavená, tak její implicitní hodnota je "~/GNUstep" .SH SOUBORY .IP GNUSTEP_USER_ROOT/Defaults/WindowMaker Toto je soubor, který se zapí¹e. .SH PODÍVEJTE SE TAKÉ .BR setstyle (1x), .BR wmaker (1x) .SH AUTOR Autorem Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Tuto manuálovou stránku napsal Marcelo Magallon <mmagallo@debian.org>. .PP Do èe¹tiny pølo¾il Jiøí Hnídek <jiri.hnidek@vslib.cz>. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/cs/wmsetbg.1x����������������������������������������������������������������0000644�0001750�0001750�00000003447�12214432632�014065� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wmsetbg 1x "Leden 1999" .SH JMÉNO wmsetbg \- nastaví pozadí hlavního okna v X11 .SH SYNTAXE .B wmsetbg [\-display] [\-\-version] [\-\-help] [{\-b|\-\-back\-color} \fIbarva\fP] [{\-t|\-\-tile}|{\-e|\-\-center}|{\-s|\-\-scale}|{\-a|\-\-maxscale} \fIobrázek\fP] [{\-d|\-\-dither}|{\-m|\-\-match}] [\-u|\-\-update\-wmaker] [{\-D|\-\-update\-domain} \fIdoména\fP] [{\-c|\-\-colors} \fIcpc\fP] [{\-p|\-\-parse} \fItextura\fP] [{\-w|\-\-workspace} \fIpracovní plocha\fP] .SH POPIS .B wmsetbg naèítá daný .I obrázek (XPM, PNG, jpeg, Tiff, raw PPM) a vlo¾í ho do hlavního okna. Obrázek je mo¾né zvìt¹it, nebo ho opakovat aby vyplnil hlavní okno. Window Maker pou¾íva tento pøíkaz internì na nastavení pozadí pøi startu. .SH VOLBY .TP .B \-a|\-\-maxscale zvìt¹í daný \fIobrázek\fP pøi dodr¾ení pomìru stran .TP .B \-e|\-\-center vlo¾í \fIobrázek\fP do støedu okna .TP .B \-t|\-\-tile vytvoøí z \fIobrázku\fP dla¾dice .TP .B \-s|\-\-scale roztáhne daný \fIobrázek\fP (standartnì) .TP .B \-d|\-\-dither rezervuje barvy .TP .B \-m|\-\-match shodné barvy .TP .B \-u|\-\-update\-wmaker zapí¹e zmìnu do databáze nastavení Window Makera .TP .B \-D|\-\-update\-domain zapí¹e zmìnu do databáze \fIdomény\fP .TP .B \-c|\-\-colors pou¾íje urèitý poèet barev na kanál .TP .B \-p|\-\-parse parsuje danou \fItexturu\fP jako \fIproplist stylu textur\fP .TP .B \-w|\-\-workspace nastaví pozadí jen na dané \fIpracovní plo¹e\fP .TP .B \-\-help vypí¹e nápovìdu .TP .B \-\-version vypí¹e èíslo verze .SH PODÍVEJTE SE TAKÉ .BR wmaker (1x) .SH AUTOR Autorem Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. wmsetbg napsal Dan Pascu <dan@windowmaker.info> .PP Tuto manuálovou stránku napsal Marcelo Magallon <mmagallo@debian.org>. .PP Do èe¹tiny pøelo¾il Jiøí Hnídek <jiri.hnidek@vslib.cz>. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/cs/geticonset.1x�������������������������������������������������������������0000644�0001750�0001750�00000001772�12214432632�014560� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH geticonset 1x "Leden 1999" .SH JMÉNO geticonset \- extrahuje aktuální sadu ikon Window Makera .SH SYNTAXE .B geticonset .I [volby] [soubor] .SH POPIS .B geticonset naèíta doménu WMWindowAttributes a zapí¹e sadu nalezených ikon buï na standardtní výstup nebo do .I souboru. .SH VOLBY .TP .B \-\-help vypí¹e nápovìdu .TP .B \-\-version vypí¹e èíslo verze .SH PROMÌNNÉ PROSTØEDÍ .IP GNUSTEP_USER_ROOT specifikuje cestu k adresáøi Defaults. Øetìzec "Defaults/" je pøidán k této promìnné, èím¾ se urèí umístìní databází. Jakmile promìnná není nastavená, tak její implicitní hodnota je "~/GNUstep" .SH SOUBORY .IP GNUSTEP_USER_ROOT/Defaults/WMWindowAttributes Toto je soubor, který se zapí¹e. .SH PODÍVEJTE SE TAKÉ .BR seticons (1x), .BR wmaker (1x) .SH AUTOR Autorem Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Tuto manuálovou stránku napsal Marcelo Magallon <mmagallo@debian.org>. .PP Do èe¹tiny pøelo¾il Jiøí Hnídek <jiri.hnidek@vslib.cz>. ������WindowMaker-0.95.5/doc/sk/��������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434645�012231� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/sk/setstyle.1x���������������������������������������������������������������0000644�0001750�0001750�00000002571�12214432632�014276� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH setstyle 1x "January 1999" .SH MENO setstyle \- zmení nastavenia Window Makera súvisiace so ¹týlmi alebo zavedie tému .SH SYNTAX .B setstyle .I "[--no-fonts] [--help] [--version]" .I súbor so ¹týlom .SH DESCRIPTION .B setstyle naèíta .I súbor so ¹týlom a zapí¹e jeho obsah do domény Window Makera, èím nastaví aktuálny ¹týl Window Makera. Ak je poskytnutá cesta adresár, bude pova¾ovaný za balík s témou a podµa toho bude aj zavedený. Ak je daný argument \fB\-\-no\-fonts\fP, nastavenia súvisiace s fontami (\fIIconTitleFont\fP, \fIClipTitleFont\fP, \fIDisplayFont\fP, \fIMenuTextFont\fP, \fIMenuTitleFont\fP, \fIWindowTitleFont\fP) v súbore so ¹týlom budú ignorované. .SH VO¥BY .TP .B \-\-no\-fonts ignorova» nastavenia fontov v súbore so ¹týlom. .TP .B \-\-help vypí¹e pomocný text .TP .B \-\-version vypí¹e èíslo verzie .SH PREMENNÉ PROSTREDIA .IP GNUSTEP_USER_ROOT ¹pecifikuje cestu k adresáru Defaults. "Defaults/" je pridané k tejto premennej, èím sa urèí umiestnenie databáz. Ak premenná nie je nastavená, jej implicitná hodnota je "~/GNUstep" .SH SÚBORY .IP GNUSTEP_USER_ROOT/Defaults/WindowMaker Toto je súbor, ktorý sa zapí¹e. .SH POZRI TIE® .BR getstyle (1x), .BR wmaker (1x) .SH AUTOR Autorom Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Túto manuálovú stránku napísal Marcelo Magallon <mmagallo@debian.org>. ���������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/sk/Makefile.in���������������������������������������������������������������0000644�0001750�0001750�00000034470�12214434561�014223� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/sk DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@/sk menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ man_MANS = \ geticonset.1x \ setstyle.1x \ wxpaste.1x \ getstyle.1x \ wdwrite.1x \ wmsetbg.1x \ seticons.1x \ wmaker.1x \ wxcopy.1x EXTRA_DIST = $(man_MANS) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/sk/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/sk/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list=''; test -n "$(man1dir)" || exit 0; \ { for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ test -z "$$files" || { \ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-man uninstall-man1 # 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. .NOEXPORT: ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/sk/wxpaste.1x����������������������������������������������������������������0000644�0001750�0001750�00000002204�12214432632�014106� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wxpaste 1x "March 1998" .SH MENO wxpaste \- zapí¹e cutbuffer na ¹tandardný výstup .SH SYNTAX .B wxpaste [voµby] .SH POPIS .B wxpaste vypí¹e obsah daného cutbuffera na ¹tandardný výstup. Ak nie je daný ¾iadny cutbuffer, pou¾ije sa cutbuffer 0. .PP .SH VO¥BY .TP .B \-cutbuffer èíslo Dáta budú vlo¾ené do daného cutbuffera namiesto ¹tandardného 0. .TP .B \-display displej Dáta sa budú kopírova» do cutbufferov daného displeja/obrazovky. .TP .B \-selection [selekcia] Dáta budú kopírované z danej selekcie. Ak sa výber zo selekcie nepodarí, pou¾ije sa cutbuffer. Implicitná hodnota pre selekciu je PRIMARY. .PP .SH CHYBY .TP \-selection musí by» posledá voµba. Syntax mô¾e by» upravená, ale bráni tomu spätná kompatibilita. Typy selekcií INCR a MULTIPLE nie sú podporované. V skutoènosti je podporovaný len jednoduchý text, èo by malo staèi» pre väè¹inu u¾ívateµov takejto jednoduchej utilitky. .SH POZRI TIE® .BR wxcopy (1x), .BR wmaker (1x) .SH AUTOR Autorom Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Túto manuálovú stránku napísal Marcelo Magallon <mmagallo@debian.org>. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/sk/wxcopy.1x�����������������������������������������������������������������0000644�0001750�0001750�00000002407�12214432632�013751� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wxcopy 1x "September 1998" .SH NAME wxcopy \- kopíruje ¹tandardný vstup do cutbuffera .SH SYNOPSIS .B wxcopy [voµby] [súbor] .SH DESCRIPTION .B wxcopy kopíruje ¹tandardný vstup alebo .I súbor do cutbuffera. Ak nie je daný cutbuffer, dáta sa kopírujú do cutbuffera 0 a ostané cutbuffery rotujú, ak existujú. Ak je daný cutbuffer, dáta sa kopírujú do toho cutbuffera a nevykoná sa ¾iadne rotovanie. .SH VO¥BY .TP .B \-cutbuffer èíslo ©pecifikuje èíslo cutbuffera, do ktorého sa budú kopírova» dáta. .TP .B \-display displej Dáta sa budú kopírova» do cutbufferov daného displeja/obrazovky. .TP .B \-nolimit Vypne normálny limit veµkosti dát 64kb, èím sa umo¾ní zväè¹ovanie buffera podµa potreby. .TP .B \-clearselection Vyprázdni vlastníka PRIMARY selekcie. V praxi to znamená, ¾e keï sa pokúsite vlo¾i» dáta stredným tlaèítkom (napríklad), vlo¾ia sa dáta z cutbuffera 0, namiesto prípadnej existujúcej selelekcie my¹i. .PP .SH POZRI TIE® .BR wxpaste (1x), .BR wmaker (1x) .SH AUTOR Autorom Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Túto manuálovú stránku napísal Marcelo Magallon <mmagallo@debian.org>. Kompatibilitu s binárnymi dátami a \-nolimit implementoval Luke Kendall <luke@research.canon.com.au>. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/sk/wmaker.1x�����������������������������������������������������������������0000644�0001750�0001750�00000011027�12214432632�013704� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH Window\ Maker 1x "August 1998" .SH MENO wmaker \- mana¾ér okien pre X11 so vzhµadom NEXTSTEP .SH SYNTAX .B wmaker .I "[-voµby]" .SH "POPIS" Window Maker je mana¾ér okien pre X11 so vzhµadom NEXTSTEP. Sna¾í sa napodobni» vzhµad NeXT ako je to len mo¾né, ale v prípade potreby tento trend nedodr¾uje. .SH "VO¥BY" .TP .B \-\-no\-cpp zakáza» preprocessing konfiguraèných súborov .TP .B \-\-no\-dock neotvára» Dok aplikácií .TP .B \-\-no\-clip neotvára» Spinku pracovných plôch .TP .B \-display host:display.screen pou¾i» daný display. Na strojoch s viacerými obrazovkami bude Window Maker automaticky spravova» v¹etky obrazovky. Ak chcete, aby Window Maker spravoval len ¹pecifickú obrazovku, musíte zada» èíslo obrazovky pomocou argumentu príkazového riadku .B \-display. Napríklad, ak chcete, aby Window Maker spravoval len obrazovku 1, spustite ho takto: .B wmaker -display :0.1 .TP .B \-\-version vypí¹e verziu a ukonèí sa .TP .B \-\-visual\-id urèenie èísla obrazového re¾imu. Viï .BR xdpyinfo (1x) pre zoznam obrazových re¾imov dostupných na va¹om display-i. .TP .B \-\-help vypí¹e krátky pomocný text .PP .SH SÚBORY .TP .B ~/GNUstep/Defaults/WindowMaker v¹eobecné nastavenia Window Makera. .TP .B ~/GNUstep/Defaults/WMState informácie o Doku a Spinke. NEeditujte za behu Window Makeru. Bude prepísaný. .TP .B ~/GNUstep/Defaults/WMRootMenu Obsahuje meno súboru, z ktorého sa má naèíta» hlavné menu alebo menu samotné vo formáte proplist. .TP .B ~/GNUstep/Defaults/WMWindowAttributes Atribúty pre rôzne triedy a in¹tancie aplikácií. Pou¾ite editor nastavení (»ahajte pravé tlaèítko na hornej li¹te aplikácie, zvoµte Nastavenia) namiesto priameho editovania tohto súboru. Je len málo nastavení, ktoré nie sú dostupné z editora nastavení. .TP .B /usr/share/WindowMaker/Defaults/ V¹etky spomenuté súbory sa NAÈÍTAJÚ odtiaµto ak sa nepodarí nájs» ich, okrem WMState, ktorý sa odtiaµto SKOPÍRUJE. Nezále¾í na tom, odkiaµ sú naèítané, ak je potrebné zapísa» zmenu konfigurácie spä» do týchto súborov, zapí¹u sa do u¾ívateµských súborov. .TP .B ~/GNUstep/Library/WindowMaker/autostart Tento skript sa automaticky vykoná pri ¹tarte Window Makera. .TP .B ~/GNUstep/Library/WindowMaker/exitscript Tento skript sa automaticky vykoná bezprostredne pred ukonèením Window Makera. .B Poznámka: Ak potrebujete spusti» z tohto skriptu nieèo, èo vy¾aduje spustený X server, nepou¾ívajte na ukonèenie Window Makera príkaz .I SHUTDOWN z hlavného menu. Inak sa mô¾e sta», ¾e X server sa ukonèí skôr ne¾ sa vykoná skript. .TP .B ~/GNUstep/Library/WindowMaker/ Súbor menu, ktorého názov je vo WMRootMenu, sa hµadá tu... .TP .B /etc/X11/WindowMaker/ a tu, v tomto poradí, pokiaµ nie je názov absolútna cesta. .TP .B ~/GNUstep/Library/WindowMaker/Pixmaps/ Tu hµadá Window Maker obrázky .TP .B ~/GNUstep/Library/WindowMaker/Backgrounds/ Tu hµadá Window Maker pozadia .TP .B ~/GNUstep/Library/WindowMaker/Styles/ Tu hµadá Window Maker súbory so ¹týlmi (nie celkom... vyzerá to tak, ale aj tak musíte zada» úplnú cestu. Je to len vyhradené miesto, aby boli veci pekne usporiadané) .TP .B ~/GNUstep/Library/WindowMaker/Themes/ Tu hµadá Window Maker súbory s témami (viï vy¹¹ie) .TP .B /usr/share/WindowMaker/Pixmaps/ Obrázky spoloèné pre celý systém sa nachádzajú tu... .TP .B /usr/share/WindowMaker/Pixmaps/ a tu. .TP .B /usr/share/WindowMaker/Styles/ ©týly spoloèné pre celý systém sa nachádzajú tu .TP .B /usr/share/WindowMaker/Themes/ Teraz to skús sám... ;-) .SH PREMENNÉ PROSTREDIA .IP GNUSTEP_USER_ROOT ¹pecifikuje cestu k adresáru Defaults. "Defaults/" je pridané k tejto premennej, èím sa urèí umiestnenie databáz. Ak premenná nie je nastavená, jej implicitná hodnota je "~/GNUstep" .IP GNUSTEP_LOCAL_ROOT ¹pecifikuje umiestnenie systémového \fBlokálneho\fP GNUstep adresára (toto je u¾itoèné v prípade, ¾e umiestnenie adresára spoloèného pre celý systém je v skutoènosti spoloèné pre celú sie»). Ak je táto premenná prázdna, pou¾ije sa GNUSTEP_SYSTEM_ROOT. .IP GNUSTEP_SYSTEM_ROOT ¹pecifikuje umiestnenie systémového GNUstep adresára. Ak je táto premenná prázdna, jej implicitná hodnota je /etc/GNUstep .SH POZRI TIE® The Window Maker User Guide .PP The Window Maker FAQ .PP .BR X (1x), .BR wdwrite (1x), .BR wxcopy (1x), .BR geticonset (1x), .BR seticons (1x), .BR wmaker (1x), .BR wxpaste (1x), .BR getstyle (1x), .BR setstyle (1x), .BR wmsetbg (1x) .SH AUTOR Autormi Window Makera sú Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.info> s pomocou mnohých µudí z celého Internetu. .PP Túto manuálovú stránku napísal Marcelo E. Magallon, <mmagallo@debian.org>. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/sk/wdwrite.1x����������������������������������������������������������������0000644�0001750�0001750�00000001516�12214432632�014105� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wdwrite 1x "January 1999" .SH MENO wdwrite \- zapí¹e kµúèe a hodnoty do databázy ¹tandardných nastavení .SH SYNTAX .B wdwrite .I doména .I voµba .I hodnota .SH POPIS .B wdwrite zapí¹e .I voµbu a .I hodnotu do danej .I domény. .SH VO¥BY .TP .B \-\-help vypí¹e pomocný text .TP .B \-\-version vypí¹e èíslo verzie .SH PREMENNÉ PROSTREDIA .IP GNUSTEP_USER_ROOT ¹pecifikuje cestu k adresáru Defaults. "Defaults/" je pridané k tejto premennej, èím sa urèí umiestnenie databáz. Ak premenná nie je nastavená, jej implicitná hodnota je "~/GNUstep" .SH SÚBORY Domény sa nachádzajú v GNUSTEP_USER_ROOT/Defaults/ .SH POZRI TIE® .BR wmaker (1x) .SH AUTOR Autorom Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Túto manuálovú stránku napísal Marcelo Magallon <mmagallo@debian.org>. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/sk/Makefile.am���������������������������������������������������������������0000644�0001750�0001750�00000000367�12214432632�014205� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in mandir=@mandir@/sk man_MANS = \ geticonset.1x \ setstyle.1x \ wxpaste.1x \ getstyle.1x \ wdwrite.1x \ wmsetbg.1x \ seticons.1x \ wmaker.1x \ wxcopy.1x EXTRA_DIST = $(man_MANS) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/sk/seticons.1x���������������������������������������������������������������0000644�0001750�0001750�00000001743�12214432632�014251� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH seticons 1x "March 1998" .SH MENO seticons \- nastaví obrázky ikon pre Window Maker .SH SYNTAX .B seticons .I súbor .SH POPIS .B seticons naèíta .I súbor a zapí¹e jeho obsah do domény WMWindowAttributes, èím sa nastavia ikony, ktoré pou¾íva Window Maker pre dané triedy (napríklad XTerm, "xterm.XTerm", "pine.XTerm", atï.) .SH VO¥BY .TP .B \-\-help vypí¹e pomocný text .TP .B \-\-version vypí¹e èíslo verzie .SH PREMENNÉ PROSTREDIA .IP GNUSTEP_USER_ROOT ¹pecifikuje cestu k adresáru Defaults. "Defaults/" je pridané k tejto premennej, èím sa urèí umiestnenie databáz. Ak premenná nie je nastavená, jej implicitná hodnota je "~/GNUstep" .SH SÚBORY .IP GNUSTEP_USER_ROOT/Defaults/WMWindowAttributes Toto je súbor, ktorý sa zapí¹e. .SH POZRI TIE® .BR geticonset (1x), .BR wmaker (1x) .SH AUTOR Autorom Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Túto manuálovú stránku napísal Marcelo Magallon <mmagallo@debian.org>. �����������������������������WindowMaker-0.95.5/doc/sk/getstyle.1x���������������������������������������������������������������0000644�0001750�0001750�00000003742�12214432632�014263� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH getstyle 1x "January 1999" .SH MENO getstyle \- vytvorí balík s aktuálnym ¹týlom Window Makera. .SH SYNTAX .B getstyle [[\-t|\-\-theme-options] [\-p|\-\-pack] [súbor so ¹týlom]] .SH POPIS .B getstyle mô¾e buï vypísa» configuraèné informácie aktuálneho ¹týlu Window Makera do súboru/¹tandardného výstupu alebo vytvori» samostatný balík s témou. Balík s témou je adresár, ktorý obsahuje v¹etko potrebné pre distribuovateµnú tému, vrátane informácií o ¹týle a obrázkov. Dajte pozor na to, ¾e informácie o ¹týle ulo¾ené v globálnej konfigurácii systému sa nenaèítajú. ©tandardne sa ulo¾ia nasledovné vlastnosti: \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. Ak je daná voµba \fB-t\fP alebo \fB--theme-options\fP, vlastnos» \fIWorkspaceBack\fP sa \fItie¾\fP ulo¾í. .SH VO¥BY .TP .B \-t ulo¾í aj informácie súvisiace s témou, èo je textúra pozadia hlavného okna. Táto voµba je v¾dy nastavená, ak je pou¾itá voµba \-p. .TP .B \-p vytvorí balík s témou v adresári nazvanom podµa mena témy s príponou .themed. .SH PREMENNÉ PROSTREDIA .IP GNUSTEP_USER_ROOT ¹pecifikuje cestu k adresáru Defaults. "Defaults/" je pridané k tejto premennej, èím sa urèí umiestnenie databáz. Ak premenná nie je nastavená, jej implicitná hodnota je "~/GNUstep" .SH SÚBORY .IP GNUSTEP_USER_ROOT/Defaults/WindowMaker Toto je súbor, ktorý sa zapí¹e. .SH POZRI TIE® .BR setstyle (1x), .BR wmaker (1x) .SH AUTOR Autorom Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Túto manuálovú stránku napísal Marcelo Magallon <mmagallo@debian.org>. ������������������������������WindowMaker-0.95.5/doc/sk/wmsetbg.1x����������������������������������������������������������������0000644�0001750�0001750�00000003351�12214432632�014067� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wmsetbg 1x "January 1999" .SH MENO wmsetbg \- nastaví pozadie hlavného okna v X11 .SH SYNTAX .B wmsetbg [\-display] [\-\-version] [\-\-help] [{\-b|\-\-back\-color} \fIfarba\fP] [{\-t|\-\-tile}|{\-e|\-\-center}|{\-s|\-\-scale}|{\-a|\-\-maxscale} \fIobrázok\fP] [{\-d|\-\-dither}|{\-m|\-\-match}] [\-u|\-\-update\-wmaker] [{\-D|\-\-update\-domain} \fIdoména\fP] [{\-c|\-\-colors} \fIcpc\fP] [{\-p|\-\-parse} \fItextúra\fP] [{\-w|\-\-workspace} \fIpracovná plocha\fP] .SH POPIS .B wmsetbg naèíta daný .I obrázok (XPM, PNG, jpeg, Tiff, raw PPM) a vlo¾í ho do hlavného okna. Obrázok mo¾no zväè¹i», alebo ho opakova» aby vyplnil hlavné okno. Window Maker pou¾íva tento príkaz interne na nastavenie pozadia pri ¹tarte. .SH VO¥BY .TP .B \-a|\-\-maxscale zväè¹í daný \fIobrázok\fP pri dodr¾aní pomeru strán .TP .B \-e|\-\-center vlo¾í \fIobrázok\fP do stredu okna .TP .B \-t|\-\-tile vytvára z \fIobrázku\fP dla¾dice .TP .B \-s|\-\-scale roztiahne daný \fIobrázok\fP (¹tandardne) .TP .B \-d|\-\-dither rezervuje farby .TP .B \-m|\-\-match zhodné farby .TP .B \-u|\-\-update\-wmaker zapí¹e zmenu do databázy nastavení Window Makera .TP .B \-D|\-\-update\-domain zapí¹e zmenu do databázy \fIdoména\fP .TP .B \-c|\-\-colors pou¾i» poèet farieb na kanál .TP .B \-p|\-\-parse parsuje danú \fItextúru\fP ako \fIproplist style textúru\fP .TP .B \-w|\-\-workspace nastaví pozadie len na danej \fIpracovnej ploche\fP .TP .B \-\-help vypí¹e pomocný text .TP .B \-\-version vypí¹e èíslo verzie .SH POZRI TIE® .BR wmaker (1x) .SH AUTOR Autorom Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. wmsetbg napísal Dan Pascu <dan@windowmaker.info> .PP Túto manuálovú stránku napísal Marcelo Magallon <mmagallo@debian.org>. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/sk/geticonset.1x�������������������������������������������������������������0000644�0001750�0001750�00000001654�12214432632�014567� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH geticonset 1x "January 1999" .SH MENO geticonset \- extrahuje aktuálnu sadu ikon Window Makera .SH SYNTAX .B geticonset .I [voµby] [súbor] .SH POPIS .B geticonset naèíta doménu WMWindowAttributes a zapí¹e sadu nájdených ikon buï na ¹tandardný výstup alebo do .I súboru. .SH VO¥BY .TP .B \-\-help vypí¹e pomocný text .TP .B \-\-version vypí¹e èíslo verzie .SH PREMENNÉ PROSTREDIA .IP GNUSTEP_USER_ROOT ¹pecifikuje cestu k adresáru Defaults. "Defaults/" je pridané k tejto premennej, èím sa urèí umiestnenie databáz. Ak premenná nie je nastavená, jej implicitná hodnota je "~/GNUstep" .SH SÚBORY .IP GNUSTEP_USER_ROOT/Defaults/WMWindowAttributes Toto je súbor, ktorý sa zapí¹e. .SH POZRI TIE® .BR seticons (1x), .BR wmaker (1x) .SH AUTOR Autorom Window Makera je Alfredo K. Kojima <kojima@windowmaker.info>. .PP Túto manuálovú stránku napísal Marcelo Magallon <mmagallo@debian.org>. ������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/wxcopy.1x��������������������������������������������������������������������0000644�0001750�0001750�00000002546�12214432632�013340� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wxcopy 1x "September 1998" .SH NAME wxcopy \- copy stdin or file into cutbuffer .SH SYNOPSIS .B wxcopy [options] [filename] .SH DESCRIPTION .B wxcopy copies stdin or .I filename into the cutbuffer. If no cutbuffer is specified, the data will be copied into cutbuffer 0 and the other cutbuffers will be rotated, if present. If a cutbuffer is specified, the data is copied into that cutbuffer, and no rotation of buffers is performed. .SH OPTIONS .TP .B \-cutbuffer number Specifies the number of the cutbuffer to copy data to. .TP .B \-display display\-name The data will be copied in the cutbuffers of the specified display/screen. .TP .B \-nolimit Makes the normal 64kb limit check not to be performed, making the buffer attempt to grow to whatever size is required. .TP .B \-clearselection Clears the PRIMARY selection owner. In practice it means that when you try to paste the data with the middle mouse button (for example) it will paste the data from cut buffer 0, instead of any eventually existing mouse selection. .PP .SH SEE ALSO .BR wxpaste (1x), .BR wmaker (1x) .SH AUTHOR This man page was written by Marcelo Magallon <mmagallo@debian.org>. .PP Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>. Binary data compatibility and \-nolimit stuff by Luke Kendall <luke@research.canon.com.au>. ����������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/wmaker.1x��������������������������������������������������������������������0000644�0001750�0001750�00000011643�12214432632�013273� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH "Window Maker" 1x "January 1999" .SH NAME wmaker \- X11 window manager with a NEXTSTEP look .SH SYNOPSIS .B wmaker .I "[-options]" .SH "DESCRIPTION" Window Maker is a X11 window manager with a NEXTSTEP look. It tries to emulate NeXT's look as much as possible, but it deviates from it as necessary. .SH "OPTIONS" .TP .B \-display host:display.screen specify display to use. On multiheaded machines, Window Maker will automatically manage all screens. If you want Window Maker to manage only a specific screen, you must supply the screen number you want to have managed with the .B \-display 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 \-\-no\-cpp disable preprocessing of configuration files .TP .B \-\-no\-dock do not show the application Dock .TP .B \-\-no\-clip do not show the workspace Clip .TP .B \-\-no\-autolaunch do not autolaunch applications .TP .B \-\-dont\-restore do not restore saved session .TP .B \-\-locale locale specify the locale to use .TP .B \-\-create-stdcmap create the standard colormap hint in PseudoColor visuals .TP .B \-\-visual\-id visual id of visual to use .TP .B \-\-static do not update or save configurations .TP .B \-\-version display version number and exit .TP .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 .B ~/GNUstep/Defaults/WindowMaker general Window Maker defaults. .TP .B ~/GNUstep/Defaults/WMState information about the Dock and Clip. DON'T edit this while running Window Maker. It will be overwritten. .TP .B ~/GNUstep/Defaults/WMRootMenu Contains the name of the file to read the root menu from or the menu itself, in property list format. .TP .B ~/GNUstep/Defaults/WMWindowAttributes Attributes for different application classes and instances. Use the Attribute Editor (right drag the application's title bar, select Attributes) instead of modifying this file directly. There are just a few options not available using the Attributes Editor. .TP .B /usr/share/WindowMaker/Defaults/ All the above-mentioned files are READ from here if not found except for WMState, which is COPIED from here. No matter where they are read from, if it's necessary to write configuration changes back into this files, user's files will be written to. .TP .B ~/GNUstep/Library/WindowMaker/autostart This script is automatically executed when Window Maker is started. .TP .B ~/GNUstep/Library/WindowMaker/exitscript This script is automatically executed immediately before Window Maker is exited. .B Note: If you need to run something that requires the X server to be running from this script, make sure you do not use the .I SHUTDOWN command from the root menu to exit Window Maker. Otherwise, the X server might be shut down before the script is executed. .TP .B ~/GNUstep/Library/WindowMaker/ The menu file indicated in WMRootMenu is looked for here... .TP .B /etc/X11/WindowMaker/ and here, in that order. Unless, the indicated path is an absolute path. .TP .B ~/GNUstep/Library/WindowMaker/Pixmaps/ Window Maker looks for \fBpixmaps\fP here .TP .B ~/GNUstep/Library/WindowMaker/Backgrounds/ Window Maker looks for backgrounds here .TP .B ~/GNUstep/Library/WindowMaker/Styles/ Window Maker looks for style files here (not true... it looks like it does, but you have to specify the full path anyway, it's just a place to keep things nicely ordered) .TP .B ~/GNUstep/Library/WindowMaker/Themes/ Window Maker looks for theme files here (ibid) .TP .B /usr/share/WindowMaker/Pixmaps/ System-wide (Window Maker-specific) pixmaps are located here .TP .B /usr/share/WindowMaker/Styles/ System wide styles are here .TP .B /usr/share/WindowMaker/Themes/ Guess... ;-) .SH ENVIRONMENT .IP GNUSTEP_USER_ROOT specifies the initial path for the Defaults directory. "Defaults/" is appended to this variable to determine the actual location of the databases. If the varialbe is not set, it defaults to "~/GNUstep" .IP GNUSTEP_LOCAL_ROOT specifies the location of the system-wide \fBlocal\fP GNUstep directory (this is useful, for example, in those cases where the system-wide location is really a network wide location). If this variable is empty, GNUSTEP_SYSTEM_ROOT is looked for. .IP GNUSTEP_SYSTEM_ROOT specifies the location of the system-wide GNUstep directory. If this variable is empty, it defaults to /etc/GNUstep .SH SEE ALSO The Window Maker User Guide .PP The Window Maker FAQ .PP .BR X (1x), .BR wdwrite (1x), .BR wxcopy (1x), .BR geticonset (1x), .BR seticons (1x), .BR wmaker (1x), .BR wxpaste (1x), .BR getstyle (1x), .BR setstyle (1x), .BR wmsetbg (1x) .SH AUTHOR Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.info> with contributions from many people around the Internet. .PP This manual page was written by Marcelo E. Magallon, <mmagallo@debian.org>. ���������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/wdwrite.1x�������������������������������������������������������������������0000644�0001750�0001750�00000001542�12214432632�013467� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wdwrite 1x "January 1999" .SH NAME wdwrite \- writes keys and values to the defaults database .SH SYNOPSIS .B wdwrite .I domain .I option .I value .SH DESCRIPTION .B wdwrite writes .I option 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 appended to this variable to determine the actual location of the databases. If the varialbe is not set, it defaults to "~/GNUstep" .SH FILES The domains reside in GNUSTEP_USER_ROOT/Defaults/ .SH SEE ALSO .BR wmaker (1x) .SH AUTHOR This man page was written by Marcelo Magallon <mmagallo@debian.org>. .PP Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>. ��������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/Makefile.am������������������������������������������������������������������0000644�0001750�0001750�00000000662�12214432632�013566� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in SUBDIRS = sk cs ru man_MANS = \ geticonset.1x \ getstyle.1x \ get-wings-flags.1 \ get-wraster-flags.1 \ get-wutil-flags.1 \ seticons.1x \ setstyle.1x \ upgrade-windowmaker-defaults.8 \ wdread.1 \ wdwrite.1x \ WindowMaker.1x \ wmagnify.1x \ wmaker.1x \ wmgenmenu.1 \ wmmenugen.1 \ wmsetbg.1x \ WPrefs.1x \ wxcopy.1x \ wxpaste.1x EXTRA_DIST = $(man_MANS) ������������������������������������������������������������������������������WindowMaker-0.95.5/doc/get-wings-flags.1������������������������������������������������������������0000644�0001750�0001750�00000002116�12214432632�014606� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "get-wings-flags" "1" "22 March 2005" .SH "NAME" \fBget-wings-flags\fR \- output libWINGs compile and linker flags .PP .SH "SYNOPSIS" .B get-wings-flags \fR[ \fI\-\-cflags \fR] [ \fI\-\-ldflags \fR] [ \fI\-\-libs \fR] .PP .SH "DESCRIPTION" \fBget-wings-flags \fR\- output include path, library search path or library archive names needed to compile and link with libWINGs. .PP .SH "OPTIONS" .TP .B \-\-cflags \fRoutput include file search path to find all header files needed to compile source code using libWINGs functions. .TP .B \-\-ldflags \fRoutput library search path required to find all library archives needed to link object files with libWINGs. .TP .B \-\-libs \fRoutput library archive names required to link object filed with libWINGs. .PP .SH "AUTHOR" get-wings-flags is a part of Window Maker, wich was written by Alfredo K. Kojima <kojima@windowmaker.info> and Dan Pascu <dan@windowmaker.info>, with contributions from many people around the Internet. .PP This manpage was written by Frederik Schueler <fschueler@gmx.net> for the Debian GNU/Linux system (but may be used by others). ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/seticons.1x������������������������������������������������������������������0000644�0001750�0001750�00000002044�12214432632�013627� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH seticons 1x "March 1998" .SH NAME seticons \- sets the icon images used in Window Maker .SH SYNOPSIS .B seticons .I iconsfile .SH DESCRIPTION .B seticons reads .I iconsfile 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 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/WMWindowAttributes This is the actual file that's written. .SH SEE ALSO .BR geticonset (1x), .BR wmaker (1x) .SH AUTHOR This man page was written by Marcelo Magallon <mmagallo@debian.org>. .PP Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/getstyle.1x������������������������������������������������������������������0000644�0001750�0001750�00000004753�12214432632�013651� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .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|\-\-theme-options] [\-p|\-\-pack] [style file]] .SH DESCRIPTION .B getstyle can either dump the current Window Maker style related configuration information to a file/stdout or create a self-contained theme pack. A theme pack is a directory that contains everything that is needed by a 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 specified, in addition to the previous options, \fIWorkspaceBack\fP is \fIalso\fP stored, along with any user-definable mouse cursor settings (\fINormalCursor\fP, \fIArrowCursor\fP, \fIMoveCursor\fP, \fITopLeftResizeCursor\fP, \fITopRightResizeCursor\fP, \fIBottomLeftResizeCursor\fP, \fIBottomRightResizeCursor\fP, \fIVerticalResizeCursor\fP, \fIHorizontalResizeCursor\fP, \fIWaitCursor\fP, \fIQuestionCursor\fP, \fITextCursor\fP, \fISelectCursor\fP) that are present. .SH OPTIONS .TP .B \-t dumps theme related information too, which includes the root background texture. This option is always enabled when the \-p option is used. .TP .B \-p creates a theme pack in the directory named by the theme name appended with the .themed suffix. .SH ENVIRONMENT .IP GNUSTEP_USER_ROOT specifies the initial path for the Defaults directory. "Defaults/" is 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 gets written. .SH SEE ALSO .BR setstyle (1x), .BR wmaker (1x) .SH AUTHOR This man page was written by Marcelo Magallon <mmagallo@debian.org>. .PP Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>. ���������������������WindowMaker-0.95.5/doc/wmmenugen.1������������������������������������������������������������������0000644�0001750�0001750�00000001222�12214432632�013607� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "wmmenugen" "1" "15 August 2011" .SH "NAME" \fBwmmenugen\fR \- Window Maker PropList menu generator .PP .SH "SYNOPSIS" .B wmmenugen \fI\-parser:<parser> fspec \fR[ fpsec ... \fR] \fR[\fI\-parser:<parser> fspec \fR[ fpsec ... \fR] ... \fR] .PP .SH "DESCRIPTION" \fBwmmenugen \fR\- Window Maker PropList menu generator .PP .SH "OPTIONS" .TP .B \-parser \fRspecify the parser. Known parsers are xdg and wmconfig. .TP .B \-fspec \fRspecify the file. .PP .SH "AUTHOR" wmmenugen is a part of Window Maker. It was written by Tamas TEVESZ. .PP This manpage was written by Rodolfo García Peñas (kix) for the Debian GNU/Linux system (but may be used by others). ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/wmgenmenu.1������������������������������������������������������������������0000644�0001750�0001750�00000001326�12214432632�013614� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "wmgenmenu" "1" "15 August 2011" .SH "NAME" \fBwmgenmenu\fR \- Writes a menu structure usable as ~/GNUstep/Defaults/WMRootMenu to stdout .PP .SH "SYNOPSIS" .B wmgenmenu \fR[ \fI\-\-options \fR] .PP .SH "DESCRIPTION" \fBwmgenmenu \fR\- Writes a menu structure usable as ~/GNUstep/Defaults/WMRootMenu to stdout .PP .SH "OPTIONS" .TP .B \-\-help \fRdisplay this help and exit .TP .B \-\-version \fRoutput version information and exit .TP .B \-\-h \fRlike \-\-help .TP .B \-\-v \fRlike \-\-version .PP .SH "AUTHOR" wmgenmenu is a part of Window Maker. It was written by Carlos R. Mafra and Tamas TEVESZ. .PP This manpage was written by Rodolfo García Peñas (kix) for the Debian GNU/Linux system (but may be used by others). ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/WPrefs.1x��������������������������������������������������������������������0000644�0001750�0001750�00000003367�12214432632�013217� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "Window Maker" 1x "March 2001" "Debian Project" .SH NAME WPrefs \- Window Maker configuration tool .SH SYNOPSIS .B WPrefs .I "[-options]" .SH "DESCRIPTION" WPrefs.app is the preferences "editor" for the WindowMaker window manager. It can be used to set most of the preference options of WindowMaker and define it's applications menu. It also can change some settings that do not belong to WindowMaker. .PP Although WPrefs.app is designed to be easy to use, you should read the user guide to be fully aware of all available options and other features of WindowMaker that are not related to configuration. .PP \fIOnly options that have different values than what is found in the system-wide configuration file is saved.\fP .SH "OPTIONS" .TP .B \-display host:display.screen specify display to use. .TP .B \-\-version display version number and exit .TP .B \-\-help display help message and exit .SH FILES .TP .B ~/GNUstep/Defaults/WindowMaker general Window Maker defaults. .TP .B /etc/GNUstep/Defaults/WindowMaker system wide Window Maker defaults. .TP .B ~/GNUstep/Defaults/WMRootMenu Contains the name of the file to read the root menu from or the menu itself, in property list format. .TP .B ~/GNUstep/Library/WindowMaker/autostart This script is automatically executed when Window Maker is started. WPrefs saves the mouse speed configuration is saved as a call for xset here. .SH SEE ALSO The Window Maker User Guide .PP The Window Maker FAQ .PP .BR wmaker (1x) .SH AUTHOR Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.info> with contributions from many people around the Internet. .PP This manual page was written by Marcelo E. Magallon, <mmagallo@debian.org>, for the Debian Project and might be used freely by others. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/ru/��������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434645�012242� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/ru/setstyle.1x���������������������������������������������������������������0000644�0001750�0001750�00000005635�12214432632�014313� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH setstyle 1x "January 1999" .SH "ÐÐИМЕÐОВÐÐИЕ" setstyle \- уÑтанавливает опции ÑвÑзанные Ñо Ñтилем Window Maker или загружает тему оформлениÑ. .SH "СИÐТÐКСИС" .B setstyle .I "[\-\-no\-fonts] [\-\-no\-cursors] [\-\-help] [\-\-version]" .I файл .SH "ОПИСÐÐИЕ" .B setstyle читает .I файл и запиÑывает его Ñодержимое в домен WindowMaker, Ñффективно уÑÑ‚Ð°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°Ñ Ñ‚ÐµÐ¼Ñƒ Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð¸Ñ Window Maker. ЕÑли указанный путь ÑвлÑетÑÑ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸ÐµÐ¹, то он будет обработан как тема Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¸ загружен ÑоответÑтвенно. ЕÑли уÑтановлен флаг \fB\-\-no\-fonts\fP, то наÑтройки, ÑвÑзанные Ñо шрифтами (\fIIconTitleFont\fP, \fIClipTitleFont\fP, \fIDisplayFont\fP, \fIMenuTextFont\fP, \fIMenuTitleFont\fP, \fIWindowTitleFont\fP), будут проигнорированы. ЕÑли указан флаг \fB\-\-no\-cursors\fP, то наÑтройки курÑора мыши (\fINormalCursor\fP, \fIArrowCursor\fP, \fIMoveCursor\fP, \fITopLeftResizeCursor\fP, \fITopRightResizeCursor\fP, \fIBottomLeftResizeCursor\fP, \fIBottomRightResizeCursor\fP, \fIVerticalResizeCursor\fP, \fIHorizontalResizeCursor\fP, \fIWaitCursor\fP, \fIQuestionCursor\fP, \fITextCursor\fP, \fISelectCursor\fP) в Ñтиле или теме будут игнорироватьÑÑ. .SH "ОПЦИИ" .TP .B \-\-no\-fonts Игнорировать ÑвÑзанные Ñо шрифтами наÑтройки. .TP .B \-\-no\-cursors Игнорировать ÑвÑзанные Ñо Ñтилем курÑора наÑтройки .TP .B \-\-help ВывеÑти Ñправочную информацию .TP .B \-\-version ВывеÑти номер верÑии .SH "ОКРУЖЕÐИЕ" .IP GNUSTEP_USER_ROOT Указывает начальный путь к папке Defaults. "Defaults/" припиÑываетÑÑ Ðº Ñтой переменной, чтобы определить наÑтоÑщее раÑположение данных. ЕÑли Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ уÑтановлена, то её значение: "~/GNUstep". .SH "ФÐЙЛЫ" .IP GNUSTEP_USER_ROOT/Defaults/WindowMaker Это файл Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ идёт взаимодейÑтвие. .SH "СМОТРИ ТÐКЖЕ" .BR getstyle (1x), .BR wmaker (1x) .SH "ÐВТОРЫ" Window Maker напиÑан Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.org> и дополнен вкладом многих людей по вÑему интернету. .PP Это руководÑтво было напиÑано Marcelo E. Magallon, <mmagallo@debian.org>. Перевод на руÑÑкий Ñзык оÑущеÑтвил NIR aka Ginko <faust@gmx.com>. ���������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/ru/Makefile.in���������������������������������������������������������������0000644�0001750�0001750�00000034470�12214434561�014234� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/ru DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@/ru menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ man_MANS = \ geticonset.1x \ setstyle.1x \ wxpaste.1x \ getstyle.1x \ wdwrite.1x \ wmsetbg.1x \ seticons.1x \ wmaker.1x \ wxcopy.1x EXTRA_DIST = $(man_MANS) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/ru/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/ru/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list=''; test -n "$(man1dir)" || exit 0; \ { for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ test -z "$$files" || { \ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-man uninstall-man1 # 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. .NOEXPORT: ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/ru/wxpaste.1x����������������������������������������������������������������0000644�0001750�0001750�00000004362�12214432632�014126� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wxpaste 1x "March 1998" .SH "ÐÐИМЕÐОВÐÐИЕ" wxpaste \- выводит Ñодержимое буфера на Ñтандартный вывод. .SH "СИÐТÐКСИС" .B wxpaste [опции] .SH "ОПИСÐÐИЕ" .B wxpaste выводит Ñодержимое указанного буфера на Ñтандартный вывод. ЕÑли буфер не указан, то по умолчанию будет иÑпользоватьÑÑ Ð±ÑƒÑ„ÐµÑ€ 0. .PP .SH "ОПЦИИ" .TP .B \-cutbuffer номер Данные будут братьÑÑ Ð¸Ð· указанного буфера замеÑто умолчального буфера 0. .TP .B \-display имÑ\-диÑÐ¿Ð»ÐµÑ Ð£ÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÑ‚ диÑплей откуда wxpaste будет брать данные. .TP .B \-selection [имÑ] Данные будут Ñкопированы из именованого выбора. ЕÑли выборка из именованого Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½Ðµ удаётÑÑ, то иÑпользуетÑÑ Ð±ÑƒÑ„ÐµÑ€ по умолчанию. Умолчальное значение именованого выбора \- PRIMARY. .PP .SH "ОШИБКИ" .TP ÐžÐ¿Ñ†Ð¸Ñ \-selection должна быть поÑледней. СинтакÑÐ¸Ñ Ð¼Ð¾Ð³ бы быть и лучше, но Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð°Ñ ÑовмеÑтимоÑть не позволÑет Ñтого Ñделать… Типы выбора INCR и MULTIPLE не поддерживаютÑÑ. Ðа Ñамом деле поддерживаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ проÑтые текÑтовые выделениÑ, которых должно быть доÑтаточно Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð½Ñтва Ñлучаев иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтой утилиты. .SH "СМОТРИ ТÐКЖЕ" .BR wxcopy (1x), .BR wmaker (1x) .SH "ÐВТОРЫ" Window Maker напиÑан Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.org> и дополнен вкладом многих людей по вÑему интернету. .PP Это руководÑтво было напиÑано Marcelo E. Magallon, <mmagallo@debian.org>. Перевод на руÑÑкий Ñзык оÑущеÑтвил NIR aka Ginko <faust@gmx.com>. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/ru/wxcopy.1x�����������������������������������������������������������������0000644�0001750�0001750�00000004454�12214432632�013766� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wxcopy 1x "September 1998" .SH "ÐÐИМЕÐОВÐÐИЕ" wxcopy \- копирует Ñтандартный ввод или файл в буфер. .SH "СИÐТÐКСИС" .B wxcopy [опции] [файл] .SH "ОПИСÐÐИЕ" .B wxcopy копирует Ñтандартный ввод или .I файл в буфер. ЕÑли буфер не указан, то данные будут помещены в буфер 0 и Ñодержимое других буферов будет Ñмещено, в Ñлучае Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ñ‚Ð°ÐºÐ¾Ð²Ð¾Ð³Ð¾. ЕÑли буфер указан, то данные будут Ñкопированы в Ñтот буфер и Ñ€Ð¾Ñ‚Ð°Ñ†Ð¸Ñ Ð±ÑƒÑ„ÐµÑ€Ð¾Ð² произведена не будет. .SH "ОПЦИИ" .TP .B \-cutbuffer номер Указывает номер буфера, в который будут Ñкопированы данные. .TP .B \-display имÑ\-диÑÐ¿Ð»ÐµÑ Ð”Ð°Ð½Ð½Ñ‹Ðµ будут Ñкопированы в буфер указанного диÑплеÑ/Ñкрана. .TP .B \-nolimit Отключает проверку допуÑтимого размера данных в 64 килобайта, позволÑÑ Ð±ÑƒÑ„ÐµÑ€Ñƒ раÑти до нужного размера. .TP .B \-clearselection СбраÑывает владельца PRIMARY буфера. Ðа практике Ñто означает, что когда Ð’Ñ‹ пытаетеÑÑŒ вÑтавить данные кликом Ñредней кнопки мыши (например), то данные будут выбиратьÑÑ Ð¸Ð· буфера 0, вмеÑто ÑущеÑтвующего выделениÑ. .PP .SH "СМОТРИ ТÐКЖЕ" .BR wxpaste (1x), .BR wmaker (1x) .SH "ÐВТОРЫ" Window Maker напиÑан Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.org> и дополнен вкладом многих людей по вÑему интернету. СовмеÑтимоÑть двоичных данных и Ð¾Ð¿Ñ†Ð¸Ñ \-nolimit реализованы Luke Kendall <luke@research.canon.com.au>. .PP Это руководÑтво было напиÑано Marcelo E. Magallon, <mmagallo@debian.org>. Перевод на руÑÑкий Ñзык оÑущеÑтвил NIR aka Ginko <faust@gmx.com>. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/ru/wmaker.1x�����������������������������������������������������������������0000644�0001750�0001750�00000016262�12214432632�013723� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH Window\ Maker 1x "August 1998" .SH "ÐÐИМЕÐОВÐÐИЕ" wmaker \- оконный менеджер Ð´Ð»Ñ X11 Ñмулирующий Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ NEXTSTEP. .SH "СИÐТÐКСИС" .B wmaker .I "[\-options]" .SH "ОПИСÐÐИЕ" Window Maker Ñто оконный менеджер Ð´Ð»Ñ X11 Ñмулирующий Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ NEXTSTEP. Он пытаетÑÑ Ð±Ñ‹Ñ‚ÑŒ макÑимально похожим на Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ NeXT, но отличаетÑÑ Ð¿Ñ€Ð¸ необходимоÑти. .SH "ОПЦИИ" .TP .B \-\-no\-cpp Отключить препроцеÑÑор файлов конфигурации. .TP .B \-\-no\-dock Ðе показывать док. .TP .B \-\-no\-clip Ðе показывать Ñкрепку-индикатор рабочего Ñтола. .TP .B \-display host:display.screen Указать диÑплей Ð´Ð»Ñ Ð¸ÑпользованиÑ. Ðа машинах Ñ Ð½ÐµÑколькими мониторами Window Maker автоматичеÑки будет контролировать вÑе Ñкраны. ЕÑли Ð’Ñ‹ хотите, чтобы Window Maker запуÑтилÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на определённом Ñкране, то Вам понадобитÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ номер Ñкрана Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ опции .B \-display Ðапример, еÑли Ð’Ñ‹ хотите, чтобы Window Maker запуÑтилÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на первом Ñкране, то команда запуÑка будет выглÑдеть как: .B wmaker \-display :0.1 .TP .B \-\-version Указать номер верÑии и выйти. .TP .B \-\-visual\-id Указать ID графичеÑкого режима. Смотрите .BR xdpyinfo (1x) Ð´Ð»Ñ ÑпиÑка доÑпупных графичеÑких режимов. .TP .B \-\-help Показать краткую Ñправку. .PP .SH "ФÐЙЛЫ" .TP .B ~/GNUstep/Defaults/WindowMaker ОÑновные наÑтройки Window Maker. .TP .B ~/GNUstep/Defaults/WMState Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ доке (Dock) и индикаторе рабочих Ñтолов (Clip). ÐЕ редактируйте Ñтот файл во Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Window Maker. Он будет перезапиÑан. .TP .B ~/GNUstep/Defaults/WMRootMenu Содержит Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° корневого меню или Ñамо меню в формате ÑпиÑка ÑвойÑтв. .TP .B ~/GNUstep/Defaults/WMWindowAttributes Ðтрибуты различных клаÑÑов и копий приложений. ИÑпользуйте редактор ÑвойÑтв (клик правой клавишей мыши на заголовке, в выпавшем меню выбрать пункт "СвойÑтва...") вмеÑто прÑмой модификации Ñтого файла. Ð’Ñего пара опций недоÑтупны в редакторе ÑвойÑтв. .TP .B /usr/share/WindowMaker/Defaults/ Ð’Ñе указанные выше файлы ЧИТÐЮТСЯ из Ñтой папки, в том Ñлучае, еÑли они отÑутÑтвуют Ñреди пользовательÑких наÑтроек, за иÑключением WMState, который КОПИРУЕТСЯ. Ðе важно, откуда файлы Ñчитаны; еÑли необходимо запиÑать наÑтройки в Ñти файлы, то они будут запиÑаны также и в пользовательÑкие. .TP .B ~/GNUstep/Library/WindowMaker/autostart Этот Ñкрипт автоматичеÑки выполнÑетÑÑ Ð¿Ñ€Ð¸ Ñтарте Window Maker. .TP .B ~/GNUstep/Library/WindowMaker/exitscript Этот Ñкрипт автоматичеÑки выполнÑетÑÑ Ð¿ÐµÑ€ÐµÐ´ завершением работы Window Maker. .B Заметка: ЕÑли Ð’Ñ‹ хотите запуÑтить из Ñтого Ñкрипта что либо требующее работы Ñервера X, то убедитеÑÑŒ, что вы не иÑпользуете команду .I SHUTDOWN из корневого меню Ð´Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð° из Window Maker. Ð’ противном Ñлучае Ñервер X может быть оÑтановлен до иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñрипта. .TP .B ~/GNUstep/Library/WindowMaker/ ЗдеÑÑŒ производитÑÑ Ð¿Ð¾Ð¸Ñк файла меню, указанного в WMRootMenu… .TP .B /etc/X11/WindowMaker/ и здеÑÑŒ. Ð’ указанном порÑдке. Ð’ том Ñлучае, еÑли указан не абÑолютный путь. .TP .B ~/GNUstep/Library/WindowMaker/Pixmaps/ ЗдеÑÑŒ Window Maker производит поиÑк картинок. .TP .B ~/GNUstep/Library/WindowMaker/Backgrounds/ ЗдеÑÑŒ Window Maker ищет обои. .TP .B ~/GNUstep/Library/WindowMaker/Styles/ ЗдеÑÑŒ Window Maker производит поиÑк Ñтилей (неправда… выглÑдит так, но Вам вÑÑ‘ равно придётÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ полный путь; Ñто проÑто меÑто Ð´Ð»Ñ ÐºÑ€Ð°Ñивой организации). .TP .B ~/GNUstep/Library/WindowMaker/Themes/ ЗдеÑÑŒ Window Maker ищет файлы тем (там же). .TP .B /usr/share/WindowMaker/Pixmaps/ СиÑтемные пиктограммы находÑÑ‚ÑÑ Ð·Ð´ÐµÑь… .TP .B /usr/share/WindowMaker/Pixmaps/ и здеÑÑŒ. .TP .B /usr/share/WindowMaker/Styles/ СиÑтемные Ñтили находÑÑ‚ÑÑ Ð·Ð´ÐµÑь… .TP .B /usr/share/WindowMaker/Themes/ Угадайте… ;-) .SH "ОКРУЖЕÐИЕ" .IP GNUSTEP_USER_ROOT Указывает начальный путь к папке Defaults. "Defaults/" припиÑываетÑÑ Ðº Ñтой переменной, чтобы определить наÑтоÑщее раÑположение данных. ЕÑли Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ уÑтановлена, то её значение: "~/GNUstep". .IP GNUSTEP_LOCAL_ROOT Указыввает раÑположение общеÑиÑтемной папки \fBlocal\fP GNUstep (Ñто полезно, например, в тех ÑлучаÑÑ…, где общеÑиÑтемные наÑтройки находÑÑ‚ÑÑ Ð½Ð° Ñетевом реÑурÑе). ЕÑли Ñта Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¿ÑƒÑта, то поиÑк проиÑходит то ищетÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ GNUSTEP_SYSTEM_ROOT. .IP GNUSTEP_SYSTEM_ROOT указывает общеÑиÑтемное раÑположение папки GNUstep. ЕÑли Ñта Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¿ÑƒÑта, то её значение: /etc/GNUstep .SH "СМОТРИ ТÐКЖЕ" The Window Maker User Guide .PP The Window Maker FAQ .PP .BR X (1x), .BR wdwrite (1x), .BR wxcopy (1x), .BR geticonset (1x), .BR seticons (1x), .BR wmaker (1x), .BR wxpaste (1x), .BR getstyle (1x), .BR setstyle (1x), .BR wmsetbg (1x) .SH "ÐВТОРЫ" Window Maker напиÑан Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.org> и дополнен вкладом многих людей по вÑему интернету. .PP Это руководÑтво было напиÑано Marcelo E. Magallon, <mmagallo@debian.org>. Перевод на руÑÑкий Ñзык оÑущеÑтвил NIR aka Ginko <faust@gmx.com>. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/ru/wdwrite.1x����������������������������������������������������������������0000644�0001750�0001750�00000002746�12214432632�014124� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wdwrite 1x "January 1999" .SH "ÐÐИМЕÐОВÐÐИЕ" wdwrite \- запиÑывает пары ключ/значение в домен. .SH "СИÐТÐКСИС" .B wdwrite .I домен .I Ð¾Ð¿Ñ†Ð¸Ñ .I значение .SH "ОПИСÐÐИЕ" .B wdwrite запиÑывает .I опцию и .I значение в указанный .I домен. .SH "ОПЦИИ" .TP .B \-\-help ВывеÑти Ñправочную информацию. .TP .B \-\-version ВывеÑти номер верÑии. .SH "ОКРУЖЕÐИЕ" .IP GNUSTEP_USER_ROOT Указывает начальный путь к папке Defaults. "Defaults/" припиÑываетÑÑ Ðº Ñтой переменной, чтобы определить наÑтоÑщее раÑположение данных. ЕÑли Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ уÑтановлена, то её значение: "~/GNUstep". .SH "ФÐЙЛЫ" Домены находÑÑ‚ÑÑ Ð² директории GNUSTEP_USER_ROOT/Defaults/ . .SH "СМОТРИ ТÐКЖЕ" .BR wmaker (1x) .SH "ÐВТОРЫ" Window Maker напиÑан Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.org> и дополнен вкладом многих людей по вÑему интернету. .PP Это руководÑтво было напиÑано Marcelo E. Magallon, <mmagallo@debian.org>. Перевод на руÑÑкий Ñзык оÑущеÑтвил NIR aka Ginko <faust@gmx.com>. ��������������������������WindowMaker-0.95.5/doc/ru/Makefile.am���������������������������������������������������������������0000644�0001750�0001750�00000000366�12214432632�014215� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in mandir=@mandir@/ru man_MANS = \ geticonset.1x \ setstyle.1x \ wxpaste.1x \ getstyle.1x \ wdwrite.1x \ wmsetbg.1x \ seticons.1x \ wmaker.1x \ wxcopy.1x EXTRA_DIST = $(man_MANS) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/ru/seticons.1x���������������������������������������������������������������0000644�0001750�0001750�00000003341�12214432632�014256� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH seticons 1x "March 1998" .SH "ÐÐИМЕÐОВÐÐИЕ" seticons \- уÑтанавливает набор иконок Window Maker. .SH "СИÐТÐКСИС" .B seticons .I iconsfile .SH "ОПИСÐÐИЕ" .B seticons читает .I iconsfile и пишет его Ñодержимое в домен WMWindowAttributes, Ñффективно уÑÑ‚Ð°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°Ñ Ð½Ð°Ð±Ð¾Ñ€ иконок, который Window Maker иÑпользует Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ клаÑÑа программ (например: XTerm, "xterm.XTerm", "rxvt.XTerm", "pine.XTerm", etc.) .SH "ОПЦИИ" .TP .B \-\-help Выводит Ñправку. .TP .B \-\-version Выводит номер верÑии. .SH "ОКРУЖЕÐИЕ" .IP GNUSTEP_USER_ROOT Указывает начальный путь к папке Defaults. "Defaults/" припиÑываетÑÑ Ðº Ñтой переменной, чтобы определить наÑтоÑщее раÑположение данных. ЕÑли Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ уÑтановлена, то её значение: "~/GNUstep". .SH "ОКРУЖЕÐИЕ" .IP GNUSTEP_USER_ROOT/Defaults/WMWindowAttributes Это файл, в который идёт запиÑÑŒ. .SH "СМОТРИ ТÐКЖЕ" .BR geticonset (1x), .BR wmaker (1x) .SH "ÐВТОРЫ" Window Maker напиÑан Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.org> и дополнен вкладом многих людей по вÑему интернету. .PP Это руководÑтво было напиÑано Marcelo E. Magallon, <mmagallo@debian.org>. Перевод на руÑÑкий Ñзык оÑущеÑтвил NIR aka Ginko <faust@gmx.com>. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/ru/getstyle.1x���������������������������������������������������������������0000644�0001750�0001750�00000006772�12214432632�014302� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH getstyle 1x "January 1999" .SH "ÐÐИМЕÐОВÐÐИЕ" getstyle \- делает дамп темы Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð¸Ñ Window Maker. .SH "СИÐТÐКСИС" .B getstyle [[\-t|\-\-theme-options] [\-p|\-\-pack] [файл ÑтилÑ]] .SH "ОПИСÐÐИЕ" .B getstyle может как произвеÑти дамп ÑÑ‚Ð¸Ð»Ñ Window Maker в файл или на Ñтандартный вывод, так как Ñоздать файл темы оформлениÑ. Тема Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð¸Ñ Ñто директориÑ, ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ñ‰Ð°Ñ Ð²ÑÑ‘, что необходимо Ð´Ð»Ñ Ñ€Ð°ÑпроÑÑ‚Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ‚ÐµÐ¼Ñ‹ оформлениÑ, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð½Ð°Ñтройки ÑÑ‚Ð¸Ð»Ñ Ð¸ иÑпользуемую графику. Заметьте, что Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ Ñтиле не читаетÑÑ Ð¸Ð· файлов глобальных наÑтроек. По умолчанию ÑохранÑÑŽÑ‚ÑÑ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ðµ опции: \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 и \fIMenuTextBack\fP. ЕÑли указан \fB\-t\fP или \fB\-\-theme-options\fP, то в дополнение к предыдущим опциÑм \fIтакже\fP ÑохранÑетÑÑ \fIWorkspaceBack\fP вмеÑте Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑкими наÑтройками ÑÑ‚Ð¸Ð»Ñ ÐºÑƒÑ€Ñора мыши (\fINormalCursor\fP, \fIArrowCursor\fP, \fIMoveCursor\fP, \fITopLeftResizeCursor\fP, \fITopRightResizeCursor\fP, \fIBottomLeftResizeCursor\fP, \fIBottomRightResizeCursor\fP, \fIVerticalResizeCursor\fP, \fIHorizontalResizeCursor\fP, \fIWaitCursor\fP, \fIQuestionCursor\fP, \fITextCursor\fP, \fISelectCursor\fP), которые указаны. .SH "ОПЦИИ" .TP .B \-t Делает дамп ÑвÑзанных Ñ Ñ‚ÐµÐ¼Ð¾Ð¹ Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ñ„Ð¾Ð½ корневого окна. Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð²Ñегда включена при применении опции \-p. .TP .B \-p Создаёт тему Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð¸Ñ Ð² директории, названной по имени темы Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ ÑуффикÑа .themed. .SH "ОКРУЖЕÐИЕ" .IP GNUSTEP_USER_ROOT Указывает начальный путь к папке Defaults. "Defaults/" припиÑываетÑÑ Ðº Ñтой переменной, чтобы определить наÑтоÑщее раÑположение данных. ЕÑли Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ уÑтановлена, то её значение: "~/GNUstep". .SH "ФÐЙЛЫ" .IP GNUSTEP_USER_ROOT/Defaults/WindowMaker Ð’ указанный файл идёт запиÑÑŒ данных. .SH "СМОТРИ ТÐКЖЕ" .BR setstyle (1x), .BR wmaker (1x) .SH "ÐВТОРЫ" Window Maker напиÑан Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.org> и дополнен вкладом многих людей по вÑему интернету. .PP Это руководÑтво было напиÑано Marcelo E. Magallon, <mmagallo@debian.org>. Перевод на руÑÑкий Ñзык оÑущеÑтвил NIR aka Ginko <faust@gmx.com>. ������WindowMaker-0.95.5/doc/ru/wmsetbg.1x����������������������������������������������������������������0000644�0001750�0001750�00000007060�12214432632�014101� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wmsetbg 1x "January 1999" .SH "ÐÐИМЕÐОВÐÐИЕ" wmsetbg \- уÑтанавливает фон диÑÐ¿Ð»ÐµÑ X11. .SH "СИÐТÐКСИС" .B wmsetbg [\-display] [\-\-version] [\-\-help] [{\-b|\-\-back\-color} \fIцвет\fP] [{\-t|\-\-tile}|{\-e|\-\-center}|{\-s|\-\-scale}|{\-a|\-\-maxscale} . \fIизображение\fP] [{\-d|\-\-dither}|{\-m|\-\-match}] [\-u|\-\-update\-wmaker] [{\-D|\-\-update\-domain} \fIдомен\fP] [{\-c|\-\-colors} \fIцвета\fP] [{\-p|\-\-parse} \fIтекÑтура\fP] [{\-w|\-\-workspace} \fIрабочий Ñтол\fP] .SH "ОПИСÐÐИЕ" .B wmsetbg читает указаное .I изображение (XPM, PNG, jpeg, Tiff, raw PPM) и размещает его в корневом окне. Возможно как раÑÑ‚Ñнуть изображение, так и раÑположить его аналогично плитке, чтобы оно занÑло вÑÑ‘ проÑтранÑтво. WindowMaker вызывает Ñту команду Ð´Ð»Ñ ÑƒÑтановки Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð½ÐµÐ²Ð¾Ð³Ð¾ окна при Ñтарте. .SH "ОПЦИИ" .TP .B \-a|\-\-maxscale РаÑÑ‚Ñгивает указаное \fIизображение\fP ÑохранÑÑ Ñоотношение Ñторон. .TP .B \-b|\-\-back\-color Указанный \fIцвет\fP иÑпользуетÑÑ ÐºÐ°Ðº фоновый цвет Ð´Ð»Ñ \fIтекÑтуры\fP. Window Maker временно уÑтанавливает фон указанного цвета на то времÑ, пока загружаетÑÑ Ð¸ обрабатываетÑÑ Ñ‚ÐµÐºÑтура. Ð’Ñ‹ можете указать цвета иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ ÐºÐ°Ðº их имена, так и RGB нотацию (или как "rgb:RR/GG/BB" или "#RRGGBB") (Смотрите .BR showrgb(1) Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ полной информации). Ð’ поÑледнем Ñлучае \fIцвет\fB указываетÑÑ Ð² кавычках. .TP .B \-e|\-\-center Центрирует указанное \fIизображение\fP. .TP .B \-t|\-\-tile Размещает указанное \fIизображение\fP аналогично плитке. .TP .B \-s|\-\-scale РаÑÑ‚Ñгивает указанное \fIизображение\fP (по умолчанию). .TP .B \-d|\-\-dither Размывать цвета. .TP .B \-m|\-\-match СоответÑтвовать цветам. .TP .B \-u|\-\-update\-wmaker Обновить базу умолчальных наÑтроек Window Maker. .TP .B \-D|\-\-update\-domain Обновить указанную \fIдоменную\fP базу. .TP .B \-c|\-\-colors Сколько цветов на канал иÑпользовать. .TP .B \-p|\-\-parse Обрабатывает указанную \fIтекÑтуру\fP как \fIтекÑтуру формата proplist\fP. .TP .B \-w|\-\-workspace Обновить фон только на указанном \fIрабочем Ñтоле\fP. .TP .B \-\-help ВывеÑти Ñправочную информацию. .TP .B \-\-version ВывеÑти номер верÑии. .SH "СМОТРИ ТÐКЖЕ" .BR wmaker (1x) .SH "ÐВТОРЫ" Window Maker напиÑан Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.org> и дополнен вкладом многих людей по вÑему интернету. .PP Это руководÑтво было напиÑано Marcelo E. Magallon, <mmagallo@debian.org>. Перевод на руÑÑкий Ñзык оÑущеÑтвил NIR aka Ginko <faust@gmx.com>. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/ru/geticonset.1x�������������������������������������������������������������0000644�0001750�0001750�00000003115�12214432632�014572� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH geticonset 1x "January 1999" .SH "ÐÐИМЕÐОВÐÐИЕ" geticonset \- Ñчитывает данные о наборе иконок Window Maker. .SH "СИÐТÐКСИС" .B geticonset .I [опции] [iconsetfile] .SH "ОПИСÐÐИЕ" .B geticonset читает домен WMWindowAttributes, и выводит наÑтройки набора иконок на Ñтандартный вывод или в файл .I iconsetfile. .SH "ОПЦИИ" .TP .B \-\-help Выводит Ñправку. .TP .B \-\-version Выводит номер верÑии. .SH "ОКРУЖЕÐИЕ" .IP GNUSTEP_USER_ROOT Указывает начальный путь к папке Defaults. "Defaults/" припиÑываетÑÑ Ðº Ñтой переменной, чтобы определить наÑтоÑщее раÑположение данных. ЕÑли Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ уÑтановлена, то её значение: "~/GNUstep". .SH "ФÐЙЛЫ" .IP GNUSTEP_USER_ROOT/Defaults/WMWindowAttributes Файл, из которого читаютÑÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ. .SH "СМОТРИ ТÐКЖЕ" .BR seticons (1x), .BR wmaker (1x) .SH "ÐВТОРЫ" Window Maker напиÑан Alfredo K. Kojima <kojima@windowmaker.info>, Dan Pascu <dan@windowmaker.org> и дополнен вкладом многих людей по вÑему интернету. .PP Это руководÑтво было напиÑано Marcelo E. Magallon, <mmagallo@debian.org>. Перевод на руÑÑкий Ñзык оÑущеÑтвил NIR aka Ginko <faust@gmx.com>. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/get-wraster-flags.1����������������������������������������������������������0000644�0001750�0001750�00000002142�12214432632�015145� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "get-wraster-flags" "1" "22 March 2005" .SH "NAME" \fBget-wraster-flags\fR \- output libwraster compile and linker flags .PP .SH "SYNOPSIS" .B get-wraster-flags \fR[ \fI\-\-cflags \fR] [ \fI\-\-ldflags \fR] [ \fI\-\-libs \fR] .PP .SH "DESCRIPTION" \fBget-wraster-flags \fR\- output include path, library search path or library archive names needed to compile and link with libwraster. .PP .SH "OPTIONS" .TP .B \-\-cflags \fRoutput include file search path to find all header files needed to compile source code using libwraster functions. .TP .B \-\-ldflags \fRoutput library search path required to find all library archives needed to link object files with libwraster. .TP .B \-\-libs \fRoutput library archive names required to link object filed with libwraster. .PP .SH "AUTHOR" get-wraster-flags is a part of Window Maker, wich was written by Alfredo K. Kojima <kojima@windowmaker.info> and Dan Pascu <dan@windowmaker.info>, with contributions from many people around the Internet. .PP This manpage was written by Frederik Schueler <fschueler@gmx.net> for the Debian GNU/Linux system (but may be used by others). ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/wmsetbg.1x�������������������������������������������������������������������0000644�0001750�0001750�00000004305�12214432632�013452� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH wmsetbg 1x "January 1999" .SH NAME wmsetbg \- sets the background on the X11 display .SH SYNOPSIS .B wmsetbg [\-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. .SH OPTIONS .TP .B \-a|\-\-maxscale scales the specified \fIimage\fP preserving its aspect ratio .TP .B \-b|\-\-back\-color the specified \fIcolor\fP is used as the background color for the \fItexture\fP. Window Maker temporarely sets the background to this color while loading and processing the texture. You can specify colors using their X11 names or as an RGB tiplet (either as "rgb:RR/GG/BB" or "#RRGGBB") (reference to appropriate manpage should be here). In the later case \fIcolor\fB is a quoted string. .TP .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|\-\-dither dithers colors .TP .B \-m|\-\-match matches colors .TP .B \-u|\-\-update\-wmaker updates the Window Maker defaults database .TP .B \-D|\-\-update\-domain updates the specified \fIdomain\fP database .TP .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 This man page was written by Marcelo Magallon <mmagallo@debian.org>. .PP Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>. wmsetbg was written by Dan Pascu <dan@windowmaker.info> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/wdread.1���������������������������������������������������������������������0000644�0001750�0001750�00000001316�12214432632�013057� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "wdread" "1" "15 August 2011" .SH "NAME" \fBwdread\fR \- read value from defaults database .PP .SH "SYNOPSIS" .B wdread \fR[ \fI\-\-options \fR] .PP .SH "DESCRIPTION" \fBwdread \fR\- read value from defaults database .PP .SH "OPTIONS" .TP .B \-\-help \fRdisplay this help and exit .TP .B \-\-version \fRoutput version information and exit .TP .B \-\-h \fRlike \-\-help .TP .B \-\-v \fRlike \-\-version .PP .SH "AUTHOR" Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>, wdread is a part of Window Maker, was cowardly remade from wdwrite.c; by judas@hell on Jan 26 2001 .PP This manpage was written by Rodolfo García Peñas (kix) for the Debian GNU/Linux system (but may be used by others). ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/geticonset.1x����������������������������������������������������������������0000644�0001750�0001750�00000001712�12214432632�014145� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Hey, Emacs! This is an -*- nroff -*- source file. .TH geticonset 1x "January 1999" .SH NAME geticonset \- gets the current Window Maker iconset .SH SYNOPSIS .B geticonset .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 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/WMWindowAttributes is the actual file that's read. .SH SEE ALSO .BR seticons (1x), .BR wmaker (1x) .SH AUTHOR This man page was written by Marcelo Magallon <mmagallo@debian.org>. .PP Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.info>. ������������������������������������������������������WindowMaker-0.95.5/doc/wmagnify.1x������������������������������������������������������������������0000644�0001750�0001750�00000002333�12214432632�013622� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH WMAGNIFY 1 "March 22, 2006" "" "User Commands" .SH NAME wmagnify \- magnify parts of the screen .SH SYNOPSIS \fBwmagnify\fR [\fIoptions\fR] .SH DESCRIPTION \fBwmagnify\fR is a tool which allows you to magnify parts of the screen. The main difference from \fBxmag\fR is that the image is refreshed automatically, following the cursor on the screen. .SH OPTIONS The following command line options are available. .TP \fB\-m\fR \fIfactor\fR Change the magnification factor, default is 2. You can change this also while running the program, using the keys described below. .TP \fB\-r\fR \fIdelay\fR Change the refresh delay, in milliseconds. Default is 200. .TP \fB\-display\fR \fIdisplay\fR Use \fIdisplay\fR instead of the default one. .SH KEYS The following keys can be pressed while \fBwmagnify\fR is running to change its behaviour. .TP \fB1,2,3,4,5,6,7,8,9\fR Change the magnification factor. .TP \fB<space>, f\fR Freeze the camera, making it magnify only the current position. .TP \fBn\fR Create a new window. .TP \fBm\fR Show/hide the pointer hotspot mark. .SH SEE ALSO \fBxmag(1)\fR, \fBwmaker(1)\fR .SH AUTHOR This manual page was written by Andrea Bolognani <eof@kiyuko.org> for the Debian project, but may be used by others. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/upgrade-windowmaker-defaults.8�����������������������������������������������0000644�0001750�0001750�00000001501�12214432632�017375� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "Window Maker" 8 "March 2001" "Debian Project" .SH NAME upgrade-windowmaker-defaults \- Convert old wmaker configuration files .SH SYNOPSIS .B upgrade-windowmaker-defaults .SH DESCRIPTION Some old versions of Window Maker used different names or different syntax for some configuration options, which in turn used to cause some newer versions of Window Maker not to start up correctly. Nowadays this is no longer a problem but this utility is provided to support upgrades from these old versions of Window Maker. .SH SEE ALSO The Window Maker User Guide .PP The Window Maker FAQ .PP The Window Maker changelog and NEWS files (in /usr/share/doc/wmaker) .PP .BR wmaker (1x) .SH AUTHOR This utility and manpage were written by Marcelo E. Magallon, <mmagallo@debian.org>, for the Debian Project. It might be used freely by others. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/doc/get-wutil-flags.1������������������������������������������������������������0000644�0001750�0001750�00000002116�12214432632�014623� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "get-wutil-flags" "1" "22 March 2005" .SH "NAME" \fBget-wutil-flags\fR \- output libwutil compile and linker flags .PP .SH "SYNOPSIS" .B get-wutil-flags \fR[ \fI\-\-cflags \fR] [ \fI\-\-ldflags \fR] [ \fI\-\-libs \fR] .PP .SH "DESCRIPTION" \fBget-wutil-flags \fR\- output include path, library search path or library archive names needed to compile and link with libWUtil. .PP .SH "OPTIONS" .TP .B \-\-cflags \fRoutput include file search path to find all header files needed to compile source code using libWUtil functions. .TP .B \-\-ldflags \fRoutput library search path required to find all library archives needed to link object files with libWUtil. .TP .B \-\-libs \fRoutput library archive names required to link object filed with libWUtil. .PP .SH "AUTHOR" get-wutil-flags is a part of Window Maker, wich was written by Alfredo K. Kojima <kojima@windowmaker.info> and Dan Pascu <dan@windowmaker.info>, with contributions from many people around the Internet. .PP This manpage was written by Frederik Schueler <fschueler@gmx.net> for the Debian GNU/Linux system (but may be used by others). ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/FAQ������������������������������������������������������������������������������0000644�0001750�0001750�00000153767�12214432632�011336� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ WindowMaker FAQ ==================================================================== Last modified: Tue Apr 20 20:15:17 EST 1999 the latest info can be found at http://www.dpo.uab.edu/~grapeape/wmfaq.html or http://wm.current.nu/wmfaq/ -------------------------- Summary of Contents: 1 - Introduction 1.1 What is Window Maker? 1.2 Where can I get Window Maker? 1.3 Where are the mailing list archives? 1.4 Where is more documentation on configuring Window Maker? 1.5 What is an App Icon? 1.6 How can I get a question added to the FAQ? 1.7 How do I report bugs? 1.8 Is there an anomymous cvs server? 2 - Installation 2.1 Where can I get proplist.h? 2.2 Why do no icons show up after installing Window Maker 0.15.0 when I've followed all the directions? 2.3 How do I get libtiff to work? 2.4 How do I get libjpeg to work? 2.5 How do I get libpng to work? 2.6 How do I get libgif (or libungif) to work? 2.7 Does wmsound work with 0.1x.x? 2.8 Can I use WindowMaker with KDE or GNOME or CDE? 2.9 How do I get Window Maker working with xdm in Redhat 5.[01]? 2.10 Do I need to rerun wmaker.inst with every new version of Window Maker? 2.11 When I install Window Maker, I've used wmaker.inst correctly and I only get aroot menu with xterm and exit. How do I fix this? 2.12 How do I get Window Maker to use more than 16 colors on my SGI Indy Workstation? 2.13 Using WindowMaker with Solaris 2.6 CDE 2.14 How do I switch CDE's windowmanager to use Window Maker? 2.15 When I run wmaker it quits complaing about something "__register_frame_info". 2.16 When I run wmaker it complains about something like library is 62, caller expects 61 3 - Usage 3.1 How do I get new apps on the dock (The line of pixmaps on the right side of the screen by default) 3.2 What is the difference between the Exit and Exit Session Option? 3.3 How do I "dock" AppIcons on the Clip? 3.4 Why do none of my Key Bindings work in Window Maker 0.1x.x 3.5 How do I rename workspaces? 3.6 How can I resize a window if the window is larger than my currect desktop? 3.7 How do I "undock" AppIcons? 3.8 I docked an application but when I run it the button is permanently shaded and I can't run new instances. 3.9 When I run wmaker it complains about not being able to load any fonts. 3.10 When I set the root background with wmsetbg by hand it works, but when I do that from the configuration files it doesnt! 4 - Configuration 4.1 What are those files inside my ~/GNUstep directory? 4.2 How do I enable the normal X sloppy focus mode? 4.3 How do I get my auto-arrange icons to work? 4.4 How do I get my Meta-Tab to cycle through windows correctly? 4.5 How can I define my own Icon for a program? (instead of the Icon the Application Supplies?) 4.6 How do I get a pixmap background for my appicons (those things in the dock)? 4.7 How do you dock <insert program here> that doesn't have an appicon in the new version of Window Maker? 4.8 How do I get x11amp to not have a title bar? (or any other program for that matter?) 4.9 How do I set a pixmap background? 4.10 Can I put pixmaps in my root menu and title bars? 4.11 How do I get my Minimize Icon to look like the triangle I see in screenshots? 4.12 How do I get superfluous bells and whistles working? 4.13 How do I get my oldstyle back? 4.14 How do I get the window menu with only a two button mouse? 4.15 How do I edit my root menu? 4.16 How can I set dock/clip to use single click to launch applications, instead of double click? 5 - Other Applications 5.1 How do I assign gimp an appicon? 5.2 How do I get an appicon for XEmacs 20.3+? 5.3 Where do you get that clock program I always see on people's desktops? 5.4 How do you dock asclock? 5.5 How do you dock wmload? 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? 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! 5.14 I'm using RedHat 6.0 and Netscape dies without reason. 6 - Programming 6.1 How do I get a normal X application to produce an appicon? 6.2 How do I get my tcl/tk application to produce an appicon? 6.3 What is WINGs? 6.4 Where can I get more information about WINGs? 7 - Miscellaneous Questions 7.1 Is there a pager for Window Maker? 7.2 Can I have folders like in AfterStep? 7.3 How do I use getstyle and setstyle? 7.4 Why don't you distribute {normal diff, xdelta} patches? 7.5 Will you add GNOME support? 8 - Themes 8.1 What exactly are Themes? 8.2 How do I install a Theme? 8.3 How do I make a Theme? ======================================================================== -=-=-=-=-=-=- Introduction: -=-=-=-=-=-=- 1.1 What is Window Maker? ---------------------------------- Window Maker is an elegant X11 window manger that emulates the OpenStep desktop with some noticeable enhancements. Look at http://wm.current.nu/themes/my-themes.html and http://wm.current.nu/themes/screenshots.html here for example screenshots. 1.2 Where can I get Window Maker? ---------------------------------- The official site to get new developmental versions from is http://windowmaker.org/pub/source/beta/ The mercurial repository is available at https://hg.windowmaker.org/wmaker The development versions are usually very stable themselves, so if you want to have all the newest features, you can rather safetly go with the development versions. Just remember to save any unsaved data before you go playing around with the config files. Also, remember they are developmental versions, so your mileage may vary, don't get angry if they crash. 1.3 Where are the mailing list archives? ---------------------------------------- Please read the information on the web pages at http://lists.windowmaker.org/ for information on how to subscribe, the posting guidelines, and how to access the web archives. 1.4 Where is more documentation on configuring Window Maker? ---------------------------------- Besides the mailing list archives, there are nice documents in http://windowmaker.org/documentation.php 1.5 What is an appicon? ---------------------------------- An appicon is the icon (without the tiny titlebar a minimized application icon has) produced by most applications that initially is in the bottom left corner of the screen while an application is running. For an example, run xterm and notice the icon in the corner. 1.6. How can I get a question added to the FAQ? ---------------------------------- Ask on the mailing list, or send your request to faqs@windowmaker.org Other avenues are the Window Maker wiki http://bugs.windowmaker.org/projects/wmaker/wiki and the forums http://bugs.windowmaker.org/projects/wmaker/boards 1.7. How do I report bugs? ---------------------------------- You can look at the BUGFORM file in your tarball of Window Maker. Alternatively, you can use the Window Maker Bugtracker at http://bugs.windowmaker.org/projects/wmaker/issues 1.8. Is there a public source code repository? ---------------------------------- Yes there is. To check out from mercurial use: hg clone http://hg.windowmaker.org/wmaker wmaker To update your source tree, cd to the wmaker directory and type hg pull -=-=-=-=-=-=- Installation: -=-=-=-=-=-=- 2.1 Where can I get libPropList/proplist.h? ------------------------------------------- starting with Window Maker 0.70.0, libPropList is no longer needed. It was obsoleted by adding property list handling code to the WINGs library. 2.2 Why do no icons show up after installing Window Maker >= 0.15.x when I've followed all the directions? ------------------------------------------------------------------- Under normal circumstances, this should not happen because Window Maker should detect if libtiff is going to be compiled in and then it will make the default theme use .tiff or .xpm icons, depending if TIFF support is compiled in or not. As of Window Maker version 0.15.0, the default setup includes .tiff icons which require you to have compiled Window Maker with libtiff support, if you want them to be used. If you are happy with the .xpm icons, then you don't need libtiff. Window Maker will detect that TIFF support is not available and use .xpm icons instead. For some help on compiling with libtiff, look at the libtiff section of this FAQ. 2.3 How do I get libtiff to work? ---------------------------------- The whole key to getting libtiff working for me was to upgrade to >= tiff-v3.4beta037-tar.gz availible at ftp.sgi.com. Rerun ./configure and make and it should work. I had previously been using tiff-v3.4-tar.gz instead so the library was there just not working. A note to keep in mind, is that the tiff libs are versioned rather oddly, version tiff-v3.4beta037 is actually newer than tiff-v3.4. Make sure to rm config.cache and rerun ./configure before attempting to compile again. Also, make sure to use gnu-make for the Window Maker compile. 2.4 How do I get libjpeg to work? ---------------------------------- The newest jpeg libs are availible at ftp://ftp.uu.net/graphics/jpeg/. How many of you have seen that darned "lib reports 62 caller expects 61" type of error? Well, I have more than once, and here are some answers to possibly help you out. First things first. As always, make sure there are not older copies of libjpeg floating around on your system. By default my Slackware distribution came with an old libjpeg.so.1 in the /usr/X11R6/lib/ directory. This can simply be deleted. Or if something complains after you delete it, recompile it if you can to look for the new lib in the right place, or if that fails, as a last resort, you might add a symlink to the new lib like so: ln -s /usr/local/lib/libjpeg.so.6.0.2 libjpeg.so.1 Now on to the error. This is basically caused by your application having been compiled to dynamically use the libjpeg.so shared library. When you install a new lib and then try to run your program again, it expects the lib it was compiled against, in this case the older libjpeg.so.6.0.1 and instead finds libjpeg.so.6.0.2 and reports the error. The fix is actually rather simple. Along with adding a libjpeg.so.6 symlink like so (just in case): ln -s libjpeg.so.6.0.2 libjpeg.so.6 where you installed your new lib, you simply need to recompile your app to link it against the new library. :) Make sure to rm config.cache and rerun ./configure before attempting to compile again. Also, make sure to use gnu-make for the Window Maker compile. 2.5 How do I get libpng to work? ---------------------------------- The newest png libs are availible at http://www.cdrom.com/pub/png/pngcode.html. You should also get the newest zlib libs from http://www.cdrom.com/pub/infozip/zlib/. I had a few problems with this lib as well, basically I had an old libz.so in my /usr/X11R6/lib/ directory which configure was finding first, and which failed the test, being an older lib. Generally the same applies here as with libjpeg, make sure there are no older versions of the necessary libs floating around on your system, then try and configure and make again. Make sure to rm config.cache and rerun ./configure before attempting to compile again. Also, make sure to use gnu-make for the Window Maker compile. 2.6 How do I get libgif (or libungif) to work? ---------------------------------- The newest libgif is availible at ftp://sunsite.unc.edu/pub/Linux/libs/giflib/. The newest libungif is availible at ftp://sunsite.unc.edu/pub/Linux/libs/graphics/. I had a few problems with libgif... it seems that the install process didn't install the header file libgif.h, so although the Window Maker configure found the lib (libgif.so.x), when you actually try to compile, it fails when it looks for the header to include the make. I simply copied it from the libgif source directory to the system include directory. (/usr/local/include/ on my system). Make sure to rm config.cache and rerun ./configure before attempting to compile again. Also, make sure to use gnu-make for the Window Maker compile. 2.7 Does wmsound work with 0.1x.x? ---------------------------------- As of Window Maker 0.15.x, sound is now included by default but requires the authors sound server. For more information, read the NEWS file in the Window Maker distribution. The author Anthony Quinn <southgat@frontiernet.net> has released a version that works with Window Maker >= 0.15.x. It is available from it's home page at http://www.frontiernet.net/~southgat/wmsound/ or on Largo's site at http://wm.current.nu/files.html#wmsound for your convenience. 2.8 Can I use WindowMaker with KDE or GNOME or CDE? --------------------------------------------------- Contrary to what a lot of people think, KDE is NOT a window manager. KDE is a suite of various applications that includes a custom window manager (kwm). The same is true for CDE. Now, answering the question: Yes, you can use WindowMaker in these environments. To use Window Maker with GNOME, you don't need to do anything special. To use it with CDE, read the answer for "How do I switch CDE's windowmanager to use Window Maker?" To use it with KDE, read it's documentation to get rid of kwm (and possibly kpanel) and replace it with wmaker. Then, start WPrefs.app, go to "Mouse Preferences" and set the "Disable mouse actions" check box. You will need to restart Window Maker to make this change take effect. The "Disable mouse actions" change is needed to allow you to use krootwm, wich enables you to use kfm's desktop icons, but will prevent you from accessing Window Maker's Applications and Window List menus with the mouse. 2.9 How do I get Window Maker working with xdm in Redhat 5.[01]? ---------------------------------------------------------------- After running wmaker.inst and letting it write to .xinitrc, cp .xinitrc .xsession and make sure that /usr/local/bin is in your $PATH for the Xserver. You can make sure of this by including a statement like export PATH=$PATH:/usr/local/bin in your .xsession file. Make sure to chmod +x .xsession so that the Xsession script of xdm can execute it. This is how the Xsession script is designed: startup=$HOME/.xsession if [ -x "$startup" ]; then exec "$startup" elif [ -x "$HOME/.Xclients" ]; then exec "$HOME/.Xclients" elif [ -x /etc/X11/xinit/Xclients ]; then exec /etc/X11/xinit/Xclients else if [ -f "$resources" ]; then xrdb -load "$resources" fi exec xsm fi You could also have a .Xclients file as was mentioned in previous revisions of this question. 2.10 Do I need to rerun wmaker.inst with every new version of Window Maker? ---------------------------------- There is no need to do this. You can do it, but keep in mind, that all your preferences will be lost, overwritten by the defaults. You can update the files and add the changes yourself if you need to, but else in most cases is sufficient to rely on WPrefs and it will update for you the new missing options if they differ from the default ones. The way domain files are read beginning from 0.15.0 makes the need for update almost redundant. The user config files are merged with the global ones in /usr/local/share/WindowMaker/Defaults. So even if new options are added, they will be reflected in the user configuration. Only if user wishes to change the default behavior, he needs to add that option to the config file. If there ever happens to be a need for all users to rerun wmaker.inst in a future version, this will be noted in the NEWS file. 2.11 When I install Window Maker, I've used wmaker.inst correctly and I only get aroot menu with xterm and exit. How do I fix this? ---------------------------------- Most likely, the problem is that Window Maker can not find a copy of the C pre processor in a directory such as /lib. The file /lib/cpp should be a symbolic link to whatever c compiler's cpp you are using. Mine reads as: cpp -> ../usr/lib/gcc-lib/i586-pc-linux-gnu/pgcc-2.90.29/cpp* There seems to be another common problem that exhibits this same behavior. If you find another solution that matches this question please email <sprout@dok.org> or <largo@current.nu>. 2.12 How do I get Window Maker to use more than 16 colors on my SGI Indy Workstation? ---------------------------------- Thanks to Peter H. Chou <pchou@leland.Stanford.EDU> for this answer: By default, the SGI X Server uses 8-bit Pseudocolor mode. To change it, edit (as root) the file /usr/lib/X11/xdm/Xservers. Change it to read: :0 secure /usr/bin/X11/X -bs -c -class TrueColor -depth 24 2.13 Using WindowMaker with Solaris 2.6 CDE ---------------------------------- (thanks to Rob Funk, Unix God of osu.edu) Assuming you installed Window Maker according to the README's that come with the source, all you need to run Window Maker on a Solaris box is an entry in the .xinitrc. Only 0.17 - 0.19 versions have been tested, but when you run the configure script, let it make changes to the .xinitrc file. It should look something like this: #!/bin/sh # Window Maker Default .xinitrc exec /usr/local/bin/wmaker Believe it or not, that's all that it takes. This, in fact, runs WindowMaker instead of OpenWindows. In order to choose WindowMaker, you simply choose "OpenWindows Desktop" in the "Options - Session" Menus. Choose "CDE Desktop" if you want CDE. The Color schemes and settings for Window Maker are seperate from CDE. Tested on a SPARC 10, Solaris x86 should work also. (better, hopefully) 2.14 How do I switch CDE's window-manager to use Window Maker? ---------------------------------- Method 1: Peter Ilberg <peter.ilberg@natinst.com> gives us this answer: Install WM wherever you want it, mine is in /opt/WindowMaker-0.16.0 (eg. use ./configure --prefix=/opt/WindowMaker-0.16.0). Run the install script wmaker.inst in your home directory. Add the following two lines to .dtprofile in your home directory: SESSIONTYPE=xdm; export SESSIONTYPE PATH=:/usr/contrib/bin/X11:$PATH:.; export PATH This tells CDE to go looking for an .xinitrc/.xsession instead of using the default environment. Make your .xsession/.xinitrc executable (VERY IMPORTANT, wmaker.inst did NOT do this automatically for me) using eg. chmod ugo+x .xsession Your .xsession/.xinitrc should look something like this: #!/bin/sh <some other init stuff that you want/need> exec wmaker Things to try if it doesn't work: (somewhat fuzzy and random) This should do it although I did have problems sometimes initially which I fixed by randomly trying absolute pathes for wmaker in .xsession/.xinitrc and/or making the dtprofile/.xinitrc/etc executable. It helps logging in on the console (select from CDE login screen) and start X manually using 'X'. If it works that way it should work when logging into the CDE environment. Remember to Check your paths! If it doesn't work, you can also substitute some other window manager for wmaker in the .xinitrc and see if that works. If it does you know at least that .xinitrc is getting called/executed, so your WM path is wrong or not set. Method 2: Thomas Hanselman gave this alternative answer (via Peter Ilberg): Build and install WM wherever you want, as described in Method 1. You can install and run WM just fine from your home directory. That's what I'm doing, since I don't have root access at work :(. Then, in your .Xdefaults file in your home directory, add the following line: Dtsession*wmStartupCommand: <path to Window Maker executable> Then, log out, and log back in, and, unless I've forgotten a step (or this is a custom Nortel thing), you should be in Window Maker heaven ;). Difference between the methods: (according to Thomas) I've been told that the difference between setting the resource and Peter's method is that if you override the window manager with the resouce, you still get the CDE resources read into the resource database (so you still have your color settings & such from CDE), whereas with Peter's, the CDE resource don't get read into the database. I don't know if this is true or not, however. Also, another thing to note with Window Maker and HP-UX 10.20 -- if you select "Exit Session" from the WM root menu, Window Maker and all of your applications are killed, but you may not be logged out. Again, this might be an artifact from my work environment, or the way I start Window Maker. Owen Stenseth <iplenergy.com> adds: When using this method it is possible to exit Window Maker cleanly by using the dtaction command. I use the following in my Window Maker menu: "Exit Session" EXEC dtaction ExitSession The only problem I have at the moment is I seem to get multiple copies of asclock running when I log in again. You can also use the normal "Exit Session" command from the WM root menu and place additional commands required to shutdown CDE in ~/GNUstep/Library/WindowMaker/exitscript So, if you add "dtaction ExitSession" in that file, the command to shutdown CDE will be automatically executed when you exit WindowMaker. 2.15 When I run wmaker it quits complaing about something __register_frame_info. ---------------------------------- This is due to using gcc >= 2.8.0 or egcs to compile Window Maker or a library it uses, then running these precompiled binaries on a system using libraries compiled with gcc 2.7.2.x You will have to compile Window Maker yourself on this system. Please read the INSTALL file for the instructions on how to do so. 2.16 When I run wmaker it complains about something like expected libjpeg 61 got 62. ---------------------------------- Upgrade your libjpeg library and/or recompile Window Maker. 2.17 How do I fix an error such as "libwraster.so.1: cannot open shared object file" ? ---------------------------------- Like most software using GNU autoconf, Window Maker by default will install under the /usr/local prefix. This has the repercussion on many systems that the libraries that are part of Window Maker will be installed in /usr/local/lib, which is usually not in the default system LD_LIBRARY_PATH. This is why the library cannot be found. Under Linux, you will need to list this directory in /etc/ld.so.conf and run /sbin/ldconfig. Both these operations will need to be performed as the superuser. Under BSD, as the superuser you will need to run ldconfig -m /usr/local/lib which will merge this directory into the system library path. If the problem persists, you may be able to use "ldd" to track down why the library cannot be loaded (it will print a list of dynamic objects used by the executable or library listed on the command line, and where it is expecting to find it). -=-=-=- Usage: -=-=-=- 3.1 How do I get new apps on the dock (The icon or line of icons on the right side of the screen by default) ---------------------------------- Launch an application. If there is a little icon that pops up in the bottom corner of the screen, drag it over to the dock icon(s). You should see a whiteish square indicating when it is close enough to dock, and where it will be placed. To make sure this application will be there next time you start up windowmaker, exit windowmaker with the "exit session" option. 3.2 What is the difference between the 'Exit' and 'Exit Session' Options? ---------------------------------- 'Exit' exits wmaker, but leaves the other apps running, and if wmaker was not the last app launched in the .xinitrc the X server is not closed, until the last app started by .xinitrc is closed. 'Exit session' will exit wmaker, but also will close all running apps, thus the X server will be closed, and your session will end. 3.3 How do I "dock" AppIcons on the Clip? ----------------------------------------- Just drag icons near it like you would for the dock. Note that if you place the clip near the dock, you may have problems docking appicons in either. Move the clip away first. 3.4 Why do none of my Key Bindings (ie: Alt+#) work in Window Maker 0.1x.x ---------------------------------- If you are using XFree86, make sure scroll lock and numlock are off or no bindings will work (XFree bug). You can try using the XFree86 Numlock Hack by editing the line #undef NUMLOCK_HACK in $WindowMakerdir/src/wconfig.h and changing it to #define NUMLOCK_HACK. As of 0.18.0, this hack functions properly. 3.5 How do I rename workspaces? ---------------------------------- Right click on the "desktop" (root window) to show the menu (don't hold the button down). Go to the workspaces menu and hold the Control key down and click on the workspace you would like to rename and type the name. If you use the clip, use the "Rename Workspace" command in the clip menu. 3.6 How can I resize a window if the window is larger than my currect desktop? ---------------------------------- David Reviejo <dreviejo@arrakis.es> best summed up this answer: "Maybe you know: Alt+Left click and drag to move the window. Try this: Alt+Right click and drag to resize (by moving the nearest window corner) Another move/resize tip: while you are moving or resizing a window, you can change the move/resize mode by pressing the SHIFT key." 3.7 How do I "undock" AppIcons? ---------------------------------- If the program is not running, just drag the icon to the middle of your desktop (away from the dock and clip) and watch it disappear. If the program is running, hold down Meta (usually CTRL) and drag the icon off the dock. You can also right click on it and choose 'Kill', then undock as usual. 3.8 I docked an application but when I run it the button is permanently shaded and I can't run new instances. ---------------------------------- You probably docked the application with dockit. To fix it remove the icon and use the "Emulate Application Icon" checkbox in the Advanced Options section of the Attributes panel for the window. Then restart the application to get the application icon you must use to dock the application. It can also mean that you did something you shouldn't, which is changing the program that is ran from the docked icon. For example, if you docked rxvt you must NOT change it to xterm, for example. You also can't do any changes that might alter the contents of the WM_CLASS hint for the window, like the -name parameter for xterm, rxvt and other programs. 3.9 When I run wmaker it complains about not being able to load any fonts. ---------------------------------- Check if the locale settings are correct. If you're not sure what to do, unset the LANG environment variable before running wmaker. TODO: give complete explanation 3.10 When I set the root background with wmsetbg by hand it works, but when I do that from the configuration files it doesnt! ---------------------------------- DOH! If you set the root background with wmsetbg by hand, it will obviously find the image, since you have explicitly specified it by hand. But if you simply put it in ~/GNUstep/Defaults/WindowMaker in some option like WorkspaceBack, it will not find the image because Window Maker can't read your mind to figure where you put the image. So, to fix it, you have to either place the full path for the image in the texture specification or put the path for the directory you put your background images in the PixmapPath option. You can also put all your background images in places like ~/GNUstep/Library/WindowMaker/Backgrounds or /usr/local/share/WindowMaker/Backgrounds These directories will be listed under the "Search Path" section of WPrefs. -=-=-=-=-=-=-=- Configuration: -=-=-=-=-=-=-=- 4.1 What are those files inside my ~/GNUstep directory? ---------------------------------- ~/GNUstep/WindowMaker/WindowMaker The main config file. This file controls options such as keybindings, fonts, pixmaps, and focus modes. ~/GNUstep/WindowMaker/WMWindowAttributes The Controls "attributes" for individual applications and appicons. Options such as what icon to use are set here. For the most part, this is now best accessed via a right click on a title bar of an application and selecting "Attributes" ~/GNUstep/Defaults/WMState This is the file that is automatically generated and contains the current dock settings. It is not recommended to edit this file by hand. ~/GNUstep/Defaults/WMRootMenu This file specifies what file to use as the root menu. In Window Maker 0.19.0 and higher, you can replace this file with the one called plmenu in ~/GNUstep/Defaults/WindowMaker, and you can then use WPrefs to edit the menu. ~/GNUstep/Library/WindowMaker/menu This is the file to edit to change your root menu. ~/GNUstep/Library/WindowMaker/plmenu This is the same menu file, in property list format - WPrefs needs a menu in this format if you wish to edit it using WPrefs. 4.2 How do I enable the normal X sloppy focus mode? ---------------------------------- In the ~/GNUstep/Defaults/WindowMaker, change the following: FocusMode = sloppy; 4.3 How do I get my auto-arrange icons to work? ---------------------------------- In ~/GNUstep/Defaults/WindowMaker set AutoArrangeIcons=Yes; and the icons should now auto-arrange. 4.4 How do I get my Meta-Tab to cycle through windows correctly? ---------------------------------- Make sure that these settings are true in your ~/GNUstep/Defaults/WindowMaker file: CirculateRaise = Yes; RaiseDelay = 1; This will not give you MS Windows(tm) style application switching where alt-tab is changes context. Paul Warren <<pdw@ferret.lmh.ox.ac.uk>> has released a patch that will give this style of Context Switching to Window Maker. It is availible from http://ferret.lmh.ox.ac.uk/~pdw/patches/ 4.5 How can I define my own Icon for a program? (instead of the Icon the Application Supplies?) ---------------------------------- You can right click on the titlebar of the running app and choose the "Attributes..." option, then click on the "Ignore client supplied icon" checkbox. Click "Apply", "Save" and close the Attributes Editor. Another method is to edit ~/GNUstep/Defaults/WMWindowAttributes by hand and use the AlwaysUserIcon=YES; option for the app. For example: xmcd = { Icon = "Radio.xpm"; AlwaysUserIcon=Yes; }; 4.6 How do I get a Tile background for my AppIcons (those things in the dock)? ---------------------------------- You need to change 1 line to your ~/GNUstep/Defaults/WindowMaker file. IconBack = (spixmap, tile.black.xpm, white); or IconBack = (tpixmap, tile.black.xpm, white); spixmap will scale the pixmap to fit the tile, tpixmap will tile it as is. As Random@efnet says, The last parameter is the color that fills in any Transparent parts of your icon. IconBack takes other options too, search the NEWS file. 4.7 How do you dock <insert program here> that doesn't have an appicon in the new version of Window Maker? ---------------------------------- There is now an option available to emulate appicons so that Window Maker can dock just about anything now. To dock a misbehaving application, right click on the title bar and select the attributes menu. Next, select the pull down menu's "Advanced Options" item. Under the ``Advanced Options'' menu, select the ``Emulate Application Icon'' Option then Save, Apply and close the dialog. This should allow you do dock the program normally. Emulate Appicon does exactly the same thing as dockit, a small app distributed with ancient versions of Window Maker before the Attribute Editor existed (now depricated for the obvious reason). If Emulate Appicon does not work, dockit will not work either. Such applications violate the ICCCM (Inter-Client Communication Conventions Manual) and are considered badly coded for not setting the instance.class hints. 4.8 How do I get x11amp to not have a title bar? (or any other program for that matter?) ---------------------------------- Right Click on the title bar and choose "Attributes". Click on Panel 2 and click the "Disable titlebar" and "Disable resizebar" options. Click "Save", "Apply" and then close the Attributes panel. By Default, to get back to the attributes menu once you've removed the titlebar, hit the key F10 while the window is focused. Here is an example entry in ~/GNUstep/WMWindowAttributes for x11amp. x11amp={ Icon="x11amp.xpm"; NoTitlebar=Yes; NoResizebar=Yes; NoAppIcon=Yes; }; 4.9 How do I set a pixmap background? ---------------------------------- Here is the in depth explanation straight from the NEWS file: wmsetbg now accepts the following options: usage: wmsetbg [-options] image options: -d dither image -m match colors -t tile image -s scale image (default) -u update Window Maker domain database -D <domain> update <domain> database -c <cpc> colors per channel to use By default, it will try to guess if dithering is needed or not and proceed accordingly. Using -d or -m will force it to dither or match colors. Dithering for more than 15bpp is generally not needed, and will only result in a slower processing. Don't use dithering except when needed, because it is slower. Else rely on wmsetbg which will detect if dithering is needed and use it. -u will update the WorkspaceBack in the default database domain file in ~/GNUstep/Defaults/WindowMaker, and let Window Maker refresh the screen. Please note that this option only works under Window Maker, and will have no effect under other window managers, since it rely on Window Maker to update the image after it reads the updated defaults database. -D <domain> is same as above, but will update the domain <domain> instead of the default Window Maker domain. -c <cpc> will set the color per channel to use. Only needed for PseudoColor visuals. Window Maker will automatically pass the value read from the Window Maker domain database. The following line is straight from your WindowMaker-0.15.x ~/GNUstep/Library/WindowMaker/menu file and should all be on one line. "Images" OPEN_MENU BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t This should give you an idea on how to add other entries for different image directories. See the help info at the top of the ~/GNUstep/Library/WindowMaker/menu file for more information. If you for some reason would like to set your background image with XV, for instance to use an image format not yet supported by wmsetbg or to use one of XV's special modes, edit the file ~/GNUstep/Library/WindowMaker/autostart and insert the line xv -root -quit -maxpect ~/background.jpg or xv -root -quit -max ~/background.jpg you can also try variations of this to get different tiling and other effects (where X is a number 1-9 I believe): 'xv -root -quit -rmodeX ~/background.jpg' If you would like xv functionality in your menu, heres a nice little tip from Alfredo: Add the following line to your ~/GNUstep/Library/WindowMaker/menu file. (all on one line) "More Backgrounds" OPEN_MENU /home/whoever/backgrounds xv -root -maxpect -quit 4.10 Can I put pixmaps in my root menu and title bars? ---------------------------------- With the release of WindowMaker-0.14.1, you can now put pixmaps anywhere you would have either a gradient or a color. This means now that MenuTextBack=(tpixmap, foo.xpm, acolor); in ~/GNUstep/Defaults/WindowMaker will put the correct pixmap tiled in your menu. FTitleBack = (spixmap, foo.xpm, black); Would have the effect of streching a pixmap to fit the titlebar of the active window. You can use png, gif, ppm, tiff, jpeg and xpm images interchangeably in Window Maker if you have compiled in support for those formats. 4.11 How do I get my Minimize Icon to look like the triangle I see in screenshots? ---------------------------------- This involves a minor source tweak. Instructions are available at http://wm.current.nu/tips.html#titlebar_icons Example screenshot at http://wm.current.nu/themes/images/screenshots/Midnight3.jpg 4.12 How do I get superfluous bells and whistles working? ---------------------------------- Add Superfluous=YES; to your ~/GNUstep/Defaults/Windowmaker file. This option was added as a runtime option in Window Maker >= 0.16.1. 4.13 How do I get the classic NeXT(tm)-like style back? ---------------------------------- Add NewStyle=NO; to your ~/GNUstep/Defaults/Windowmaker file. This option was added as a runtime option in Window Maker >= 0.16.1 4.14 How do I get the window menu with only a two button mouse? ---------------------------------- Jim Noble <jmknoble@ntrnet.net> writes: If you've got a two-button mouse under some versions of Solaris x86, there's no way (that i'm aware of) to emulate a 3-button mouse. The right button can be either MB2 or MB3, but chording doesn't work. ApplicationMenuMouseButton = Left; and WindowListMouseButton = Right; in ~/GNUstep/Defaults/WindowMaker ought to allow the left button to activate the root menu, and the right button (as MB2) to activate the windows menu. 4.15 How do I edit my root menu? ---------------------------------- You can now use WPrefs.app (see http://wm.current.nu/features/configuration.html for more info) if you have the new PropList style menu, or you can manually edit the oldstyle menu file ~/GNUstep/Library/WindowMaker/menu (or you can also manually edit the newstyle menu file) ~/GNUstep/Defaults/WMRootMenu and save your changes. Window Maker should detect the change and automatically update. If you are having a problem getting it to reload the menu, try touch ~/GNUstep/Library/WindowMaker/menu (or 'touch ~/GNUstep/Defaults/WMRootMenu' for the newstyle menu) to force the modification time into the future. 4.16 How can I set dock/clip to use single click to launch applications, instead of double click? ---------------------------------- This question was officially answered as follows: You cannot do this. This is because single click is used to select app-icons, or to raise/lower the app-icon or the dock/clip. If this is impelmented then you will be unable to select or raise/lower dock/clip or app-icons, without also launching the application it represents. So don't ask for this to be implemented, because it will not be. Double click is used for a reason, is not just some weird idea we got in a morning when we wake up too early. Regardless of that, there is now an option in WPrefs, under "Expert User Preferences," which allows you to set "Launch applications and restore windows with a single click." (See the files contrib/README and contrib/single_click.diff in the source package for details.) If you set that option, a left button single click will launch or restore, rather than select, the app-icon. You can use other methods (or temporarily turn the option off again) to select app-icons or raise/lower the dock/clip. You can toggle the selected state of any app-icon via its right button menu, and there are auto-raise and keep-on-top options for the dock and clip. 4.18 How do I restore the configuration app to the dock? ----------------------------------] You should start it from a terminal using its full path name, which is /usr/local/GNUstep/Applications/WPrefs.app/WPrefs by default. 4.19 How do I define my own icon for a program? I don't like the one it supplies. ---------------------------------- Right-click the titlebar of the running application and start the Attributes Editor. Check the "Ignore client supplied icon" box. "Apply" and "Save", and close the Attributes Editor. Another method is to edit ~/GNUstep/Defaults/WMWindowAttributes by hand and use the AlwaysUserIcon=YES; option for the app. For example: xmcd = { Icon = "Radio.xpm"; AlwaysUserIcon=Yes; }; -=-=-=-=-=-=-=-=-=- Other Applications: -=-=-=-=-=-=-=-=-=- 5.1 How do I assign gimp an appicon? ---------------------------------- Window Maker now can assign Icons from within the windowmanager, to do so, right click on the title bar of an app or hit F10 while the desired app is focused, choose "Attributes...", click on the "4" Button, enter the icon file name (make sure this is in your pixmap path, or you can type in the full path without using ~/ type path names), click "Update", "Apply", "Save" and then close the Attributes Editor. You can also enter the following line in ~/GNUstep/Library/WindowMaker/WMWindowAttributes: gimp={Icon="gimp.xpm";}; 5.2 How do I get an appicon for XEmacs 20.3+? ---------------------------------- Thanks to Michael Hafner <hayfi@rz.fh-augsburg.de> for this answer. You don't need to patch the XEmacs code, just run ./configure --with-session=yes (in addition to any other options you use) in your XEmacs 20.3+ sourcedir and rebuild it. Then XEmacs shows an appicon when running and you can easily dock it. 5.3 Where do you get that clock program I always see on people's desktops? ---------------------------------- Its called asclock. It was included with each version of Window Maker until version 0.17.5, and was no longer included in 0.18.0 and above. You could find it in ./WindowMaker-0.xx.x/misc/asclock.tgz and it was prepatched to be able to dock. Some other (older) versions you might find on the net don't dock. Since it was pulled from the distribution (probably to save space), I've included it at http://wm.current.nu/files.html#asclock for your convenience. 5.4 How do you dock asclock? ---------------------------------- asclock -shape -iconic -12 & Drag it from the top right corner of the clock to the dock. Right click on the icon and select autolaunch. You have to drag the appicon by clicking on the edge of the icon, because the actual pixmap belongs to the app itself, and any clicks on the pixmap are interpreted by the app rather than X or the window manager. Therefor, you need to click somewhere on the appicon where the background tile shows through (usually the edges), and drag it that way. 5.5 How do you dock wmload? ---------------------------------- wmload -withdrawn -shape & Then dock it similar to asclock. 5.6 What other apps exist for the dock? ---------------------------------- Several Nice applications are available: wmmixer and wmcd and wmmount http://www.geocities.com/SiliconValley/Vista/2471/linux.htm#xapps ascd,WMRack,asmixer,asmodem, and others ftp://ftp.windowmaker.info/pub/wmaker/contrib/srcs/apps/ wmavgload, wmmount, and wmload ftp://ftp.windowmaker.info/pub/wmaker/contrib/srcs/utils/ wmppp-wmifs, wmtime, wmmon and other nifty apps http://windowmaker.mezaway.org/ A huge index of most available dockapps is available at: http://www.bensinclair.com/dockapp/ 5.7 How do I get an appicon for rxvt so I can dock it? ---------------------------------- The default rxvt that comes with most distribtions is an outdated version of rxvt. The newest development version of rxvt is availible from ftp://ftp.math.fu-berlin.de/pub/rxvt/devel/. As of the time of this writing, the version is 2.4.7 and it natively produces an appicon without a patch. John Eikenberry has also created an rpm which is available from ftp://ftp.coe.uga.edu/users/jae/windowmaker/ For your convenience, I have rxvt-2.4.7.tar.gz at http://wm.current.nu/files/rxvt-2.4.7.tar.gz for download. As of version 2.4.7, rxvt includes Window Maker support as well as John Eikenberry's NeXT scrollbar hack. 5.8 How do I get different icons for rxvt's (or xterms) running different programs? ---------------------------------- The simplest way is to run each rxvt with a different -name parameter. For example, I want to run an rxvt for irc and one for mail. This is an example of what I'd do: for the irc rxvt: rxvt -name "irc" -e "irc" for the mail rxvt: rxvt -name "mail" -e "pine" This would result in each rxvt now having the instance and class of irc.Xterm and mail.Xterm respectively, so that Window Maker can now set Attributes for them individually. 5.9 How do I launch multiple instances of XTerm from one appicon? ---------------------------------- The easiest way to accomplish this is to dock XTerm as normal. Then Go to the 'Attributes menu' -> 'Application Specific' and select 'no application icon' for XTerm. You can also right-click on the docked appicon and select settings. Change the 'Application Path with arguments' section to foo.sh where foo.sh is the following script #!/bin/sh exec xterm This should allow unlimited XTerms without appicon clutter. 5.10 How do I allow Alt+# to work in an rxvt session? (with irc for example) ---------------------------------- First, Launch a unique instance of rxvt or xterm. This can be done using the -name option of rxvt. For example: rxvt -name foo -e irc Then, go to the Attributes menu (right click on titlebar (or hit F10) and choose 'Attributes...') Then choose 'Advanced Options' from the listbox and enable 'Don't Bind Keyboard shortcuts'. Click 'Save' and 'Apply' and you should be able to run your session without the shortcuts. 5.11 Window Maker breaks scilab ---------------------------------- If you refer to the problem of the "graphics" window of scilab not showing up in Window Maker, this is caused by a bug in scilab. You can see the cause of the problem by yourself, by running xprop on the graphic window: WM_NORMAL_HINTS(WM_SIZE_HINTS): user specified location: 136679205, 1074468360 user specified size: 400 by 300 program specified minimum size: 400 by 300 Now, when scilab opens it's window, Window Maker nicely does exactly what it is told, that is, map the window at position 136679205, 1074468360 which obviously falls outside the screen no matter how big is your monitor ;) Meanwhile, the workaround for this is to open the window list menu (click on the root window with the middle mouse button) and click on the ScilabGraphic entry. The window should be brought to your reach. Then, open the window commands menu (right click on window's titlebar) and open the Attributes panel. Go to the "Advanced Options" section, check the "Keep inside screen" option and save. If you can recompile Scilab, this came from a Scilab developer: replace size_hints.flags = USPosition | USSize | PMinSize; with size_hints.flags = /** USPosition |**/ USSize | PMinSize; in routines/xsci/jpc_SGraph.c 5.12 Netscape shows black and white icons ---------------------------------- I have seen this happen on some systems if you run Netscape in a high colour depth (32bpp). That is a Netscape bug. Therefore, bug Netscape. 5.13 Snow flakes from xsnow don't acumulate on titlebars! ---------------------------------- 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. 5.14 I'm using RedHat 6.0 and Netscape dies without reason. ---------------------------------- Er... well, I don't know why you're looking in this Window Maker FAQ for a RedHat/Netscape problem, but anyway, the answer is in: http://www.redhat.com/cgi-bin/support?solution&11-990511-0082&100-926468988&14-0&15-0&25-&3-&30- -=-=-=-=-=-=- Programming: -=-=-=-=-=-=- 6.1 How do I get a normal X application to produce an appicon? ---------------------------------- You must define the WM_CLASS (XSetClassHint()) and the CLIENT_LEADER or XWMHints.window_group properties, which are automatically set by most applications that use Xt (Motif, Athena ...), but if you use plain Xlib you must set them by hand. Also you must make a call to XSetCommand(dpy, leader, argv, argc); Take a look at Window Maker-0.1x.x/test/test.c that is an example for writing such an app (which also have an app menu). 6.2 How do I get my tcl/tk application to produce an appicon? ---------------------------------- Oliver Graf <ograf@fga.de> writes: The main window (normally this is called '.' [dot] in tk) should use the following lines: wm command . [concat $argv0 $argv] wm group . . All child windows attached to the same app-icon should use: toplevel .child wm group .child . where .child should be replaced by the actual window path. Replace '.' with the actual main-window path and 'wm group .child .' should be added for each 'toplevel .child' call. 6.3 What is WINGs? ---------------------------------- WINGs Is Not GNUstep. ;) It is the Widget Library written for the widgets in Window Maker. It is currently under heavy development but several people have started writing applications in it. Its goal is to emulate the NeXT(tm)-style widgets. http://www.ozemail.com.au/~crn/wm/wings.html is the closest thing to an information center about WINGs by <crn@ozemail.com.au>. 6.4 Where can I get more information about WINGs? ---------------------------------- Nic Berstein <nic@postilion.org> has created a WINGs Developement list. The purpose of this list is to provide a forum for support, ideas, suggestions, bug reports etc. for the WINGs widget set library. To subscribe to this list, send a message with the word ``subscribe'' in the _BODY_ of the message to: <wings-request@postilion.org>. -=-=-=-=-=-=-=-=-=-=-=-=- Miscellaneous Questions: -=-=-=-=-=-=-=-=-=-=-=-=- 7.1 Is there a pager for Window Maker? ---------------------------------- Not at the moment because there is not a pressing need for a pager. The concept of multiple desktops does exist and there are currently 3 ways to switch between them. First, the Alt+Number combination will switch between desktops. The Workspaces menu will also let you switch workspaces. Lastly, the Clip will also scroll one through workspaces. For those that would like to send an application to a specific workspace, either drag it to an edge of the desktop onto the next workspace or you can right click on the titlebar, choose "Move to..." and choose the appropriate workspace. BUT, Window Maker does support KDE and GNOME protocols, including the workspace management stuff, so you can use Window Maker in these environments and use their pagers. 7.2 Can I have folders like in AfterStep? ---------------------------------- No. Window Maker does however support the collapsable Clip per desktop for a similar functionality. 7.3 How do I use getstyle and setstyle? ---------------------------------- To capture the current Window Maker style, use the command getstyle > current.style To replace the current style, use the command setstyle filename.style 7.4 Why don't you distribute {normal diff, xdelta} patches? ---------------------------------- Whenever possible plain diff patches are distributed. If the new version has new binary files, normal diff won't be able to handle them, so a patch package is distributed, instead. We don't use xdelta because: - most systems do not have xdelta installed; - xdelta is picky and require the file to be patched to be exactly the same as the one used to make the patch. The patch package scheme used is much more flexible. We do not distribute a simple diff with the binary files separately (and variations, like uuencoding the binary files) because: - it is more complicated and error prone to require the user to manually move the files to the correct places; - the current patch package scheme *does* distribute the binary files and diff files separately. If the user wants to install everything by hand, nobody will object to that; - sooner or later someone will certainly ask for a script to automate the file moving stuff. So we hacked a script (mkpatch) that automatically creates a patch package with the normal text diff file, a list of removed files and the binary files that have changed or been added, plus a script that does the patching automatically. If you don't like the script, you can apply the patch and move the files manually. Or download the whole distribution. 7.5 Will you add GNOME or KDE support? -------------------------------------- Support for GNOME (and KDE) hints is included since 0.50.0. You have to enable them at compile-time using the appropriate arguments to ./configure. Please read the INSTALL file for more details. Note: starting with version 0.90.0, support for legacy Gnome-1.x and KDE-2.x was dropped in favor of NETWM support (used by both Gnome-2.x and KDE-3.x) -=-=-=-=- Themes: -=-=-=-=- 8.1 What exactly are themes? ---------------------------------- Themes are a great aspect of Window Maker allowing a user to simply save the entire 'look' of their desktop in a Archive to distribute freely among friends, fellow users and/or the whole net in general. :) See the theme-HOWTO at http://wm.current.nu/themes/theme-HOWTO.html for an in-depth walk-through on making a Theme archive. 8.2 How do I install a Theme? ---------------------------------- This should be as simple as untarring the Theme.tar.gz into one of two places. You can untar it to the global /usr/local/share/WindowMaker/* directory, and have it be accessable to all users, or you can untar it to your own ~/GNUstep/Library/WindowMaker/ directory for your own personal use. Use your favorite variation of the following: gzip -dc "Theme.tar.gz" | tar xvf - *(directory may differ on some systems) 8.3 How do I make a Theme? ---------------------------------- There is a neat little file called README.themes distributed with Window Maker that explains everything in intricate detail. You can also read http://wm.current.nu/themes/themepacks.html ==================================================================== and they lived happily ever after. ==================================================================== (The End.) ���������WindowMaker-0.95.5/aclocal.m4�����������������������������������������������������������������������0000644�0001750�0001750�00000106025�12214434556�012634� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, [m4_warning([this file was generated for autoconf 2.65. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # 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. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # (`yes' being less verbose, `no' or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [ --enable-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0')]) case $enable_silent_rules in yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar <conftest.tar]) grep GrepMe conftest.dir/file >/dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/ax_cflags_gcc_option.m4]) m4_include([m4/ld-version-script.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) m4_include([m4/windowmaker.m4]) m4_include([m4/wm_attributes.m4]) m4_include([m4/wm_libmath.m4]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/���������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434641�012162� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/README���������������������������������������������������������������������0000644�0001750�0001750�00000001513�12214432632�012760� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ WindowMaker raster graphics library This library is used to manipulate images and convert them to a format that can be displayed through the X window system. Read the wraster.h header for an idea of what is available This Library is LGPL and Copyright (c) Alfredo K. Kojima <kojima@inf.ufrgs.br> The following environment variables control some parameters: RIMAGE_CACHE <integer> Is the maximum number of images to store in the internal cache. Default is 8 RIMAGE_CACHE_SIZE <integer> Is the size of the biggest image to store in the cache. Default is 4k (64x64) Porting ======= It should be fairly easy to port it to other environments (svgalib, libggi etc), probably only requiring wraster.h, context.c and convert.c to be changed. Note that the X specific code should be disabled in that case, including support for libXpm. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/scale.c��������������������������������������������������������������������0000644�0001750�0001750�00000025767�12214432632�013354� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* scale.c - image scaling * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <X11/Xlib.h> #include <math.h> #ifndef PI #define PI 3.14159265358979323846 #endif #include <assert.h> #include "wraster.h" /* *---------------------------------------------------------------------- * RScaleImage-- * Creates a scaled copy of an image. * * Returns: * The new scaled image. * *---------------------------------------------------------------------- */ RImage *RScaleImage(RImage * image, unsigned new_width, unsigned new_height) { int ox; int px, py; register int x, y, t; int dx, dy; unsigned char *s; unsigned char *d; RImage *img; if (new_width == image->width && new_height == image->height) return RCloneImage(image); img = RCreateImage(new_width, new_height, image->format == RRGBAFormat); if (!img) return NULL; /* fixed point math idea taken from Imlib by * Carsten Haitzler (Rasterman) */ dx = (image->width << 16) / new_width; dy = (image->height << 16) / new_height; py = 0; d = img->data; if (image->format == RRGBAFormat) { for (y = 0; y < new_height; y++) { t = image->width * (py >> 16); s = image->data + (t << 2); /* image->data+t*4 */ ox = 0; px = 0; for (x = 0; x < new_width; x++) { px += dx; *(d++) = *(s); *(d++) = *(s + 1); *(d++) = *(s + 2); *(d++) = *(s + 3); t = (px - ox) >> 16; ox += t << 16; s += t << 2; /* t*4 */ } py += dy; } } else { for (y = 0; y < new_height; y++) { t = image->width * (py >> 16); s = image->data + (t << 1) + t; /* image->data+t*3 */ ox = 0; px = 0; for (x = 0; x < new_width; x++) { px += dx; *(d++) = *(s); *(d++) = *(s + 1); *(d++) = *(s + 2); t = (px - ox) >> 16; ox += t << 16; s += (t << 1) + t; /* t*3 */ } py += dy; } } return img; } /* * Filtered Image Rescaling code copy/pasted from * Graphics Gems III * Public Domain 1991 by Dale Schumacher */ /* * filter function definitions */ #define box_support (0.5) static double box_filter(double t) { if ((t > -0.5) && (t <= 0.5)) return (1.0); return (0.0); } #define triangle_support (1.0) static double triangle_filter(double t) { if (t < 0.0) t = -t; if (t < 1.0) return (1.0 - t); return (0.0); } #define bell_support (1.5) static double bell_filter(double t) /* box (*) box (*) box */ { if (t < 0) t = -t; if (t < .5) return (.75 - (t * t)); if (t < 1.5) { t = (t - 1.5); return (.5 * (t * t)); } return (0.0); } #define B_spline_support (2.0) static double B_spline_filter(double t) /* box (*) box (*) box (*) box */ { double tt; if (t < 0) t = -t; if (t < 1) { tt = t * t; return ((.5 * tt * t) - tt + (2.0 / 3.0)); } else if (t < 2) { t = 2 - t; return ((1.0 / 6.0) * (t * t * t)); } return (0.0); } static double sinc(double x) { /* * The original code did this: * if (x != 0) ... * This code is unsafe, it should be: * if (fabs(x) > EPSILON) ... * * But the call to fabs is already done in the *ONLY* function * that call sinc: 'Lanczos3_filter' * * The goal was to avoid a Divide-by-0 error, now we also * avoid a +/-inf result too */ x *= PI; if (x > 1.0E-9) return (sin(x) / x); return (1.0); } #define Lanczos3_support (3.0) static double Lanczos3_filter(double t) { if (t < 0) t = -t; if (t < 3.0) return (sinc(t) * sinc(t / 3.0)); return (0.0); } #define Mitchell_support (2.0) #define B (1.0 / 3.0) #define C (1.0 / 3.0) static double Mitchell_filter(double t) { double tt; tt = t * t; if (t < 0) t = -t; if (t < 1.0) { t = (((12.0 - 9.0 * B - 6.0 * C) * (t * tt)) + ((-18.0 + 12.0 * B + 6.0 * C) * tt) + (6.0 - 2 * B)); return (t / 6.0); } else if (t < 2.0) { t = (((-1.0 * B - 6.0 * C) * (t * tt)) + ((6.0 * B + 30.0 * C) * tt) + ((-12.0 * B - 48.0 * C) * t) + (8.0 * B + 24 * C)); return (t / 6.0); } return (0.0); } static double (*filterf)(double) = Mitchell_filter; static double fwidth = Mitchell_support; void _wraster_change_filter(int type) { switch (type) { case RBoxFilter: filterf = box_filter; fwidth = box_support; break; case RTriangleFilter: filterf = triangle_filter; fwidth = triangle_support; break; case RBellFilter: filterf = bell_filter; fwidth = bell_support; break; case RBSplineFilter: filterf = B_spline_filter; fwidth = B_spline_support; break; case RLanczos3Filter: filterf = Lanczos3_filter; fwidth = Lanczos3_support; break; default: case RMitchellFilter: filterf = Mitchell_filter; fwidth = Mitchell_support; break; } } /* * image rescaling routine */ typedef struct { int pixel; double weight; } CONTRIB; typedef struct { int n; /* number of contributors */ CONTRIB *p; /* pointer to list of contributions */ } CLIST; /* clamp the input to the specified range */ #define CLAMP(v,l,h) ((v)<(l) ? (l) : (v) > (h) ? (h) : v) /* return of calloc is not checked if NULL in the function below! */ RImage *RSmoothScaleImage(RImage * src, unsigned new_width, unsigned new_height) { CLIST *contrib; /* array of contribution lists */ RImage *tmp; /* intermediate image */ double xscale, yscale; /* zoom scale factors */ int i, j, k; /* loop variables */ int n; /* pixel number */ double center, left, right; /* filter calculation variables */ double width, fscale; /* filter calculation variables */ double rweight, gweight, bweight; RImage *dst; unsigned char *p; unsigned char *sp; int sch = src->format == RRGBAFormat ? 4 : 3; dst = RCreateImage(new_width, new_height, False); /* create intermediate image to hold horizontal zoom */ tmp = RCreateImage(dst->width, src->height, False); xscale = (double)new_width / (double)src->width; yscale = (double)new_height / (double)src->height; /* pre-calculate filter contributions for a row */ contrib = (CLIST *) calloc(new_width, sizeof(CLIST)); if (xscale < 1.0) { width = fwidth / xscale; fscale = 1.0 / xscale; for (i = 0; i < new_width; ++i) { contrib[i].n = 0; contrib[i].p = (CONTRIB *) calloc((int) ceil(width * 2 + 1), sizeof(CONTRIB)); center = (double)i / xscale; left = ceil(center - width); right = floor(center + width); for (j = left; j <= right; ++j) { rweight = center - (double)j; rweight = (*filterf) (rweight / fscale) / fscale; if (j < 0) { n = -j; } else if (j >= src->width) { n = (src->width - j) + src->width - 1; } else { n = j; } k = contrib[i].n++; contrib[i].p[k].pixel = n * sch; contrib[i].p[k].weight = rweight; } } } else { for (i = 0; i < new_width; ++i) { contrib[i].n = 0; contrib[i].p = (CONTRIB *) calloc((int) ceil(fwidth * 2 + 1), sizeof(CONTRIB)); center = (double)i / xscale; left = ceil(center - fwidth); right = floor(center + fwidth); for (j = left; j <= right; ++j) { rweight = center - (double)j; rweight = (*filterf) (rweight); if (j < 0) { n = -j; } else if (j >= src->width) { n = (src->width - j) + src->width - 1; } else { n = j; } k = contrib[i].n++; contrib[i].p[k].pixel = n * sch; contrib[i].p[k].weight = rweight; } } } /* apply filter to zoom horizontally from src to tmp */ p = tmp->data; for (k = 0; k < tmp->height; ++k) { CONTRIB *pp; sp = src->data + src->width * k * sch; for (i = 0; i < tmp->width; ++i) { rweight = gweight = bweight = 0.0; pp = contrib[i].p; for (j = 0; j < contrib[i].n; ++j) { rweight += sp[pp[j].pixel] * pp[j].weight; gweight += sp[pp[j].pixel + 1] * pp[j].weight; bweight += sp[pp[j].pixel + 2] * pp[j].weight; } *p++ = CLAMP(rweight, 0, 255); *p++ = CLAMP(gweight, 0, 255); *p++ = CLAMP(bweight, 0, 255); } } /* free the memory allocated for horizontal filter weights */ for (i = 0; i < new_width; ++i) { free(contrib[i].p); } free(contrib); /* pre-calculate filter contributions for a column */ contrib = (CLIST *) calloc(dst->height, sizeof(CLIST)); if (yscale < 1.0) { width = fwidth / yscale; fscale = 1.0 / yscale; for (i = 0; i < dst->height; ++i) { contrib[i].n = 0; contrib[i].p = (CONTRIB *) calloc((int) ceil(width * 2 + 1), sizeof(CONTRIB)); center = (double)i / yscale; left = ceil(center - width); right = floor(center + width); for (j = left; j <= right; ++j) { rweight = center - (double)j; rweight = (*filterf) (rweight / fscale) / fscale; if (j < 0) { n = -j; } else if (j >= tmp->height) { n = (tmp->height - j) + tmp->height - 1; } else { n = j; } k = contrib[i].n++; contrib[i].p[k].pixel = n * 3; contrib[i].p[k].weight = rweight; } } } else { for (i = 0; i < dst->height; ++i) { contrib[i].n = 0; contrib[i].p = (CONTRIB *) calloc((int) ceil(fwidth * 2 + 1), sizeof(CONTRIB)); center = (double)i / yscale; left = ceil(center - fwidth); right = floor(center + fwidth); for (j = left; j <= right; ++j) { rweight = center - (double)j; rweight = (*filterf) (rweight); if (j < 0) { n = -j; } else if (j >= tmp->height) { n = (tmp->height - j) + tmp->height - 1; } else { n = j; } k = contrib[i].n++; contrib[i].p[k].pixel = n * 3; contrib[i].p[k].weight = rweight; } } } /* apply filter to zoom vertically from tmp to dst */ sp = malloc(tmp->height * 3); for (k = 0; k < new_width; ++k) { CONTRIB *pp; p = dst->data + k * 3; /* copy a column into a row */ { int i; unsigned char *p, *d; d = sp; for (i = tmp->height, p = tmp->data + k * 3; i-- > 0; p += tmp->width * 3) { *d++ = *p; *d++ = *(p + 1); *d++ = *(p + 2); } } for (i = 0; i < new_height; ++i) { rweight = gweight = bweight = 0.0; pp = contrib[i].p; for (j = 0; j < contrib[i].n; ++j) { rweight += sp[pp[j].pixel] * pp[j].weight; gweight += sp[pp[j].pixel + 1] * pp[j].weight; bweight += sp[pp[j].pixel + 2] * pp[j].weight; } *p = CLAMP(rweight, 0, 255); *(p + 1) = CLAMP(gweight, 0, 255); *(p + 2) = CLAMP(bweight, 0, 255); p += new_width * 3; } } free(sp); /* free the memory allocated for vertical filter weights */ for (i = 0; i < dst->height; ++i) { free(contrib[i].p); } free(contrib); RReleaseImage(tmp); return dst; } ���������WindowMaker-0.95.5/wrlib/context.c������������������������������������������������������������������0000644�0001750�0001750�00000045644�12214432632�013745� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* context.c - X context management * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <X11/Xlib.h> #include <X11/Xutil.h> #include <X11/Xatom.h> #include <X11/Xmu/StdCmap.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> #include <math.h> #include "wraster.h" extern void _wraster_change_filter(int type); static Bool bestContext(Display * dpy, int screen_number, RContext * context); static RContextAttributes DEFAULT_CONTEXT_ATTRIBS = { RC_UseSharedMemory | RC_RenderMode | RC_ColorsPerChannel, /* flags */ RDitheredRendering, /* render_mode */ 4, /* colors_per_channel */ 0, 0, 0, 0, True, /* use_shared_memory */ RMitchellFilter, RUseStdColormap }; /* * * Colormap allocation for PseudoColor visuals: * * * switch standardColormap: * none: * allocate colors according to colors_per_channel * * best/default: * if there's a std colormap defined then use it * * else * create a std colormap and set it */ /* *---------------------------------------------------------------------- * allocateStandardPseudoColor * Creates the internal colormap for PseudoColor, setting the * color values according to the supplied standard colormap. * * Returns: - * * Side effects: - * * Notes: - *---------------------------------------------------------------------- */ static Bool allocateStandardPseudoColor(RContext * ctx, XStandardColormap * stdcmap) { int i; ctx->ncolors = stdcmap->red_max * stdcmap->red_mult + stdcmap->green_max * stdcmap->green_mult + stdcmap->blue_max * stdcmap->blue_mult + 1; if (ctx->ncolors <= 1) { RErrorCode = RERR_INTERNAL; puts("wraster: bad standard colormap"); return False; } ctx->colors = malloc(sizeof(XColor) * ctx->ncolors); if (!ctx->colors) { RErrorCode = RERR_NOMEMORY; return False; } ctx->pixels = malloc(sizeof(unsigned long) * ctx->ncolors); if (!ctx->pixels) { free(ctx->colors); ctx->colors = NULL; RErrorCode = RERR_NOMEMORY; return False; } #define calc(max,mult) (((i / stdcmap->mult) % \ (stdcmap->max + 1)) * 65535) / stdcmap->max for (i = 0; i < ctx->ncolors; i++) { ctx->colors[i].pixel = i + stdcmap->base_pixel; ctx->colors[i].red = calc(red_max, red_mult); ctx->colors[i].green = calc(green_max, green_mult); ctx->colors[i].blue = calc(blue_max, blue_mult); ctx->pixels[i] = ctx->colors[i].pixel; } #undef calc return True; } static Bool setupStandardColormap(RContext * ctx, Atom property) { if (!XmuLookupStandardColormap(ctx->dpy, ctx->screen_number, ctx->visual->visualid, ctx->depth, property, True, True)) { RErrorCode = RERR_STDCMAPFAIL; return False; } return True; } static Bool allocatePseudoColor(RContext * ctx) { XColor *colors; XColor avcolors[256]; int avncolors; int i, ncolors, r, g, b; int retries; int cpc = ctx->attribs->colors_per_channel; ncolors = cpc * cpc * cpc; if (ncolors > (1 << ctx->depth)) { /* reduce colormap size */ cpc = ctx->attribs->colors_per_channel = 1 << ((int)ctx->depth / 3); ncolors = cpc * cpc * cpc; } assert(cpc >= 2 && ncolors <= (1 << ctx->depth)); colors = malloc(sizeof(XColor) * ncolors); if (!colors) { RErrorCode = RERR_NOMEMORY; return False; } ctx->pixels = malloc(sizeof(unsigned long) * ncolors); if (!ctx->pixels) { free(colors); RErrorCode = RERR_NOMEMORY; return False; } i = 0; if ((ctx->attribs->flags & RC_GammaCorrection) && ctx->attribs->rgamma > 0 && ctx->attribs->ggamma > 0 && ctx->attribs->bgamma > 0) { double rg, gg, bg; double tmp; /* do gamma correction */ rg = 1.0 / ctx->attribs->rgamma; gg = 1.0 / ctx->attribs->ggamma; bg = 1.0 / ctx->attribs->bgamma; for (r = 0; r < cpc; r++) { for (g = 0; g < cpc; g++) { for (b = 0; b < cpc; b++) { colors[i].red = (r * 0xffff) / (cpc - 1); colors[i].green = (g * 0xffff) / (cpc - 1); colors[i].blue = (b * 0xffff) / (cpc - 1); colors[i].flags = DoRed | DoGreen | DoBlue; tmp = (double)colors[i].red / 65536.0; colors[i].red = (unsigned short)(65536.0 * pow(tmp, rg)); tmp = (double)colors[i].green / 65536.0; colors[i].green = (unsigned short)(65536.0 * pow(tmp, gg)); tmp = (double)colors[i].blue / 65536.0; colors[i].blue = (unsigned short)(65536.0 * pow(tmp, bg)); i++; } } } } else { for (r = 0; r < cpc; r++) { for (g = 0; g < cpc; g++) { for (b = 0; b < cpc; b++) { colors[i].red = (r * 0xffff) / (cpc - 1); colors[i].green = (g * 0xffff) / (cpc - 1); colors[i].blue = (b * 0xffff) / (cpc - 1); colors[i].flags = DoRed | DoGreen | DoBlue; i++; } } } } /* try to allocate the colors */ for (i = 0; i < ncolors; i++) { if (!XAllocColor(ctx->dpy, ctx->cmap, &(colors[i]))) { colors[i].flags = 0; /* failed */ } else { colors[i].flags = DoRed | DoGreen | DoBlue; } } /* try to allocate close values for the colors that couldn't * be allocated before */ avncolors = (1 << ctx->depth > 256 ? 256 : 1 << ctx->depth); for (i = 0; i < avncolors; i++) avcolors[i].pixel = i; XQueryColors(ctx->dpy, ctx->cmap, avcolors, avncolors); for (i = 0; i < ncolors; i++) { if (colors[i].flags == 0) { int j; unsigned long cdiff = 0xffffffff, diff; unsigned long closest = 0; retries = 2; while (retries--) { /* find closest color */ for (j = 0; j < avncolors; j++) { r = (colors[i].red - avcolors[i].red) >> 8; g = (colors[i].green - avcolors[i].green) >> 8; b = (colors[i].blue - avcolors[i].blue) >> 8; diff = r * r + g * g + b * b; if (diff < cdiff) { cdiff = diff; closest = j; } } /* allocate closest color found */ colors[i].red = avcolors[closest].red; colors[i].green = avcolors[closest].green; colors[i].blue = avcolors[closest].blue; if (XAllocColor(ctx->dpy, ctx->cmap, &colors[i])) { colors[i].flags = DoRed | DoGreen | DoBlue; break; /* succeeded, don't need to retry */ } #ifdef WRLIB_DEBUG fputs("close color allocation failed. Retrying...\n", stderr); #endif } } } ctx->colors = colors; ctx->ncolors = ncolors; /* fill the pixels shortcut array */ for (i = 0; i < ncolors; i++) { ctx->pixels[i] = ctx->colors[i].pixel; } return True; } static XColor *allocateGrayScale(RContext * ctx) { XColor *colors; XColor avcolors[256]; int avncolors; int i, ncolors, r, g, b; int retries; int cpc = ctx->attribs->colors_per_channel; ncolors = cpc * cpc * cpc; if (ctx->vclass == StaticGray) { /* we might as well use all grays */ ncolors = 1 << ctx->depth; } else { if (ncolors > (1 << ctx->depth)) { /* reduce colormap size */ cpc = ctx->attribs->colors_per_channel = 1 << ((int)ctx->depth / 3); ncolors = cpc * cpc * cpc; } assert(cpc >= 2 && ncolors <= (1 << ctx->depth)); } if (ncolors >= 256 && ctx->vclass == StaticGray) { /* don't need dithering for 256 levels of gray in StaticGray visual */ ctx->attribs->render_mode = RBestMatchRendering; } colors = malloc(sizeof(XColor) * ncolors); if (!colors) { RErrorCode = RERR_NOMEMORY; return False; } for (i = 0; i < ncolors; i++) { colors[i].red = (i * 0xffff) / (ncolors - 1); colors[i].green = (i * 0xffff) / (ncolors - 1); colors[i].blue = (i * 0xffff) / (ncolors - 1); colors[i].flags = DoRed | DoGreen | DoBlue; } /* try to allocate the colors */ for (i = 0; i < ncolors; i++) { #ifdef WRLIB_DEBUG fprintf(stderr, "trying:%x,%x,%x\n", colors[i].red, colors[i].green, colors[i].blue); #endif if (!XAllocColor(ctx->dpy, ctx->cmap, &(colors[i]))) { colors[i].flags = 0; /* failed */ #ifdef WRLIB_DEBUG fprintf(stderr, "failed:%x,%x,%x\n", colors[i].red, colors[i].green, colors[i].blue); #endif } else { colors[i].flags = DoRed | DoGreen | DoBlue; #ifdef WRLIB_DEBUG fprintf(stderr, "success:%x,%x,%x\n", colors[i].red, colors[i].green, colors[i].blue); #endif } } /* try to allocate close values for the colors that couldn't * be allocated before */ avncolors = (1 << ctx->depth > 256 ? 256 : 1 << ctx->depth); for (i = 0; i < avncolors; i++) avcolors[i].pixel = i; XQueryColors(ctx->dpy, ctx->cmap, avcolors, avncolors); for (i = 0; i < ncolors; i++) { if (colors[i].flags == 0) { int j; unsigned long cdiff = 0xffffffff, diff; unsigned long closest = 0; retries = 2; while (retries--) { /* find closest color */ for (j = 0; j < avncolors; j++) { r = (colors[i].red - avcolors[i].red) >> 8; g = (colors[i].green - avcolors[i].green) >> 8; b = (colors[i].blue - avcolors[i].blue) >> 8; diff = r * r + g * g + b * b; if (diff < cdiff) { cdiff = diff; closest = j; } } /* allocate closest color found */ #ifdef WRLIB_DEBUG fprintf(stderr, "best match:%x,%x,%x => %x,%x,%x\n", colors[i].red, colors[i].green, colors[i].blue, avcolors[closest].red, avcolors[closest].green, avcolors[closest].blue); #endif colors[i].red = avcolors[closest].red; colors[i].green = avcolors[closest].green; colors[i].blue = avcolors[closest].blue; if (XAllocColor(ctx->dpy, ctx->cmap, &colors[i])) { colors[i].flags = DoRed | DoGreen | DoBlue; break; /* succeeded, don't need to retry */ } #ifdef WRLIB_DEBUG fputs("close color allocation failed. Retrying...\n", stderr); #endif } } } return colors; } static Bool setupPseudoColorColormap(RContext * context) { Atom property = 0; if (context->attribs->standard_colormap_mode == RCreateStdColormap) { property = XInternAtom(context->dpy, "RGB_DEFAULT_MAP", False); if (!setupStandardColormap(context, property)) { return False; } } if (context->attribs->standard_colormap_mode != RIgnoreStdColormap) { XStandardColormap *maps; int count, i; if (!property) { property = XInternAtom(context->dpy, "RGB_BEST_MAP", False); if (!XGetRGBColormaps(context->dpy, DefaultRootWindow(context->dpy), &maps, &count, property)) { maps = NULL; } if (!maps) { property = XInternAtom(context->dpy, "RGB_DEFAULT_MAP", False); if (!XGetRGBColormaps(context->dpy, DefaultRootWindow(context->dpy), &maps, &count, property)) { maps = NULL; } } } else { if (!XGetRGBColormaps(context->dpy, DefaultRootWindow(context->dpy), &maps, &count, property)) { maps = NULL; } } if (maps) { int theMap = -1; for (i = 0; i < count; i++) { if (maps[i].visualid == context->visual->visualid) { theMap = i; break; } } if (theMap < 0) { puts("wrlib: no std cmap found"); } if (theMap >= 0 && allocateStandardPseudoColor(context, &maps[theMap])) { context->std_rgb_map = XAllocStandardColormap(); *context->std_rgb_map = maps[theMap]; context->cmap = context->std_rgb_map->colormap; XFree(maps); return True; } XFree(maps); } } context->attribs->standard_colormap_mode = RIgnoreStdColormap; /* RIgnoreStdColormap and fallback */ return allocatePseudoColor(context); } static char *mygetenv(const char *var, int scr) { char *p; char varname[64]; snprintf(varname, sizeof(varname), "%s%i", var, scr); p = getenv(varname); if (!p) { p = getenv(var); } return p; } static void gatherconfig(RContext * context, int screen_n) { char *ptr; ptr = mygetenv("WRASTER_GAMMA", screen_n); if (ptr) { float g1, g2, g3; if (sscanf(ptr, "%f/%f/%f", &g1, &g2, &g3) != 3 || g1 <= 0.0 || g2 <= 0.0 || g3 <= 0.0) { printf("wrlib: invalid value(s) for gamma correction \"%s\"\n", ptr); } else { context->attribs->flags |= RC_GammaCorrection; context->attribs->rgamma = g1; context->attribs->ggamma = g2; context->attribs->bgamma = g3; } } ptr = mygetenv("WRASTER_COLOR_RESOLUTION", screen_n); if (ptr) { int i; if (sscanf(ptr, "%d", &i) != 1 || i < 2 || i > 6) { printf("wrlib: invalid value for color resolution \"%s\"\n", ptr); } else { context->attribs->flags |= RC_ColorsPerChannel; context->attribs->colors_per_channel = i; } } ptr = mygetenv("WRASTER_OPTIMIZE_FOR_SPEED", screen_n); if (ptr) { context->flags.optimize_for_speed = 1; } else { context->flags.optimize_for_speed = 0; } } static void getColormap(RContext * context, int screen_number) { Colormap cmap = None; XStandardColormap *cmaps; int ncmaps, i; if (XGetRGBColormaps(context->dpy, RootWindow(context->dpy, screen_number), &cmaps, &ncmaps, XA_RGB_DEFAULT_MAP)) { for (i = 0; i < ncmaps; ++i) { if (cmaps[i].visualid == context->visual->visualid) { cmap = cmaps[i].colormap; break; } } XFree(cmaps); } if (cmap == None) { XColor color; cmap = XCreateColormap(context->dpy, RootWindow(context->dpy, screen_number), context->visual, AllocNone); color.red = color.green = color.blue = 0; XAllocColor(context->dpy, cmap, &color); context->black = color.pixel; color.red = color.green = color.blue = 0xffff; XAllocColor(context->dpy, cmap, &color); context->white = color.pixel; } context->cmap = cmap; } static int count_offset(unsigned long mask) { int i; i = 0; while ((mask & 1) == 0) { i++; mask = mask >> 1; } return i; } RContext *RCreateContext(Display * dpy, int screen_number, const RContextAttributes * attribs) { RContext *context; XGCValues gcv; context = malloc(sizeof(RContext)); if (!context) { RErrorCode = RERR_NOMEMORY; return NULL; } memset(context, 0, sizeof(RContext)); context->dpy = dpy; context->screen_number = screen_number; context->attribs = malloc(sizeof(RContextAttributes)); if (!context->attribs) { free(context); RErrorCode = RERR_NOMEMORY; return NULL; } if (!attribs) *context->attribs = DEFAULT_CONTEXT_ATTRIBS; else *context->attribs = *attribs; if (!(context->attribs->flags & RC_StandardColormap)) { context->attribs->standard_colormap_mode = RUseStdColormap; } if (!(context->attribs->flags & RC_ScalingFilter)) { context->attribs->flags |= RC_ScalingFilter; context->attribs->scaling_filter = RMitchellFilter; } /* get configuration from environment variables */ gatherconfig(context, screen_number); _wraster_change_filter(context->attribs->scaling_filter); if ((context->attribs->flags & RC_VisualID)) { XVisualInfo *vinfo, templ; int nret; templ.screen = screen_number; templ.visualid = context->attribs->visualid; vinfo = XGetVisualInfo(context->dpy, VisualIDMask | VisualScreenMask, &templ, &nret); if (!vinfo || nret == 0) { free(context); RErrorCode = RERR_BADVISUALID; return NULL; } if (vinfo[0].visual == DefaultVisual(dpy, screen_number)) { context->attribs->flags |= RC_DefaultVisual; } else { XSetWindowAttributes attr; unsigned long mask; context->visual = vinfo[0].visual; context->depth = vinfo[0].depth; context->vclass = vinfo[0].class; getColormap(context, screen_number); attr.colormap = context->cmap; attr.override_redirect = True; attr.border_pixel = 0; attr.background_pixel = 0; mask = CWBorderPixel | CWColormap | CWOverrideRedirect | CWBackPixel; context->drawable = XCreateWindow(dpy, RootWindow(dpy, screen_number), 1, 1, 1, 1, 0, context->depth, CopyFromParent, context->visual, mask, &attr); } XFree(vinfo); } /* use default */ if (!context->visual) { if ((context->attribs->flags & RC_DefaultVisual) || !bestContext(dpy, screen_number, context)) { context->visual = DefaultVisual(dpy, screen_number); context->depth = DefaultDepth(dpy, screen_number); context->cmap = DefaultColormap(dpy, screen_number); context->drawable = RootWindow(dpy, screen_number); context->black = BlackPixel(dpy, screen_number); context->white = WhitePixel(dpy, screen_number); context->vclass = context->visual->class; } } gcv.function = GXcopy; gcv.graphics_exposures = False; context->copy_gc = XCreateGC(dpy, context->drawable, GCFunction | GCGraphicsExposures, &gcv); if (context->vclass == PseudoColor || context->vclass == StaticColor) { if (!setupPseudoColorColormap(context)) { free(context); return NULL; } } else if (context->vclass == GrayScale || context->vclass == StaticGray) { context->colors = allocateGrayScale(context); if (!context->colors) { free(context); return NULL; } } else if (context->vclass == TrueColor) { /* calc offsets to create a TrueColor pixel */ context->red_offset = count_offset(context->visual->red_mask); context->green_offset = count_offset(context->visual->green_mask); context->blue_offset = count_offset(context->visual->blue_mask); /* disable dithering on 24 bits visuals */ if (context->depth >= 24) context->attribs->render_mode = RBestMatchRendering; } /* check avaiability of MIT-SHM */ #ifdef XSHM if (!(context->attribs->flags & RC_UseSharedMemory)) { context->attribs->flags |= RC_UseSharedMemory; context->attribs->use_shared_memory = True; } if (context->attribs->use_shared_memory) { int major, minor; Bool sharedPixmaps; context->flags.use_shared_pixmap = 0; if (!XShmQueryVersion(context->dpy, &major, &minor, &sharedPixmaps)) { context->attribs->use_shared_memory = False; } else { if (XShmPixmapFormat(context->dpy) == ZPixmap) context->flags.use_shared_pixmap = sharedPixmaps; } } #endif return context; } static Bool bestContext(Display * dpy, int screen_number, RContext * context) { XVisualInfo *vinfo = NULL, rvinfo; int best = -1, numvis, i; long flags; XSetWindowAttributes attr; rvinfo.class = TrueColor; rvinfo.screen = screen_number; flags = VisualClassMask | VisualScreenMask; vinfo = XGetVisualInfo(dpy, flags, &rvinfo, &numvis); if (vinfo) { /* look for a TrueColor, 24-bit or more (pref 24) */ for (i = numvis - 1, best = -1; i >= 0; i--) { if (vinfo[i].depth == 24) best = i; else if (vinfo[i].depth > 24 && best < 0) best = i; } } if (best > -1) { context->visual = vinfo[best].visual; context->depth = vinfo[best].depth; context->vclass = vinfo[best].class; getColormap(context, screen_number); attr.colormap = context->cmap; attr.override_redirect = True; attr.border_pixel = 0; context->drawable = XCreateWindow(dpy, RootWindow(dpy, screen_number), 1, 1, 1, 1, 0, context->depth, CopyFromParent, context->visual, CWBorderPixel | CWColormap | CWOverrideRedirect, &attr); } if (vinfo) XFree((char *)vinfo); if (best < 0) return False; else return True; } ��������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/Makefile.in����������������������������������������������������������������0000644�0001750�0001750�00000074321�12214434561�014157� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @HAVE_LD_VERSION_SCRIPT_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/libwraster.map subdir = wrlib DIST_COMMON = README $(include_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in AUTHORS COPYING ChangeLog INSTALL NEWS \ TODO ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libwraster_la_DEPENDENCIES = am_libwraster_la_OBJECTS = raster.lo alpha_combine.lo draw.lo color.lo \ load.lo save.lo gradient.lo xpixmap.lo convert.lo context.lo \ misc.lo scale.lo rotate.lo convolve.lo nxpm.lo xpm.lo xutil.lo \ ppm.lo png.lo jpeg.lo tiff.lo gif.lo libwraster_la_OBJECTS = $(am_libwraster_la_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent libwraster_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libwraster_la_LDFLAGS) $(LDFLAGS) -o $@ SCRIPTS = $(bin_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libwraster_la_SOURCES) DIST_SOURCES = $(libwraster_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive DATA = $(pkgconfig_DATA) HEADERS = $(include_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ SUBDIRS = . AUTOMAKE_OPTIONS = EXTRA_DIST = tests libwraster.map get-wraster-flags.in lib_LTLIBRARIES = libwraster.la libwraster_la_LDFLAGS = -version-info @WRASTER_VERSION@ \ $(am__append_1) bin_SCRIPTS = get-wraster-flags include_HEADERS = wraster.h libwraster_la_SOURCES = \ imgformat.h \ raster.c \ alpha_combine.c \ draw.c \ color.c \ load.c \ save.c \ gradient.c \ xpixmap.c \ convert.c \ context.c \ misc.c \ scale.c \ rotate.c \ convolve.c \ nxpm.c \ xpm.c \ xutil.c \ ppm.c \ png.c \ jpeg.c \ tiff.c \ gif.c LTCOMPILE2 = `echo $(LTCOMPILE) | sed -e s/-fomit-frame-pointer//` COMPILE2 = `echo $(COMPILE) | sed -e s/-fomit-frame-pointer//` AM_CPPFLAGS = $(DFLAGS) @HEADER_SEARCH_PATH@ libwraster_la_LIBADD = @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ @LIBXMU@ -lm pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = wrlib.pc DISTCLEANFILES = $(pkgconfig_DATA) get-wraster-flags all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu wrlib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu wrlib/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libwraster.la: $(libwraster_la_OBJECTS) $(libwraster_la_DEPENDENCIES) $(AM_V_CCLD)$(libwraster_la_LINK) -rpath $(libdir) $(libwraster_la_OBJECTS) $(libwraster_la_LIBADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alpha_combine.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/context.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convert.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convolve.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/draw.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gif.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gradient.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jpeg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nxpm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/png.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/raster.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rotate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/save.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scale.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tiff.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xpixmap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xpm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xutil.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(includedir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(SCRIPTS) $(DATA) $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-includeHEADERS install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binSCRIPTS install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binSCRIPTS uninstall-includeHEADERS \ uninstall-libLTLIBRARIES uninstall-pkgconfigDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binSCRIPTS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-pkgconfigDATA install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-binSCRIPTS uninstall-includeHEADERS \ uninstall-libLTLIBRARIES uninstall-pkgconfigDATA wrlib.pc: Makefile @echo "Generating $@" @echo 'Name: wrlib' > $@ @echo 'Description: Image manipulation and conversion library' >> $@ @echo 'Version: $(VERSION)' >> $@ @echo 'Libs: $(lib_search_path) -lwraster' >> $@ @echo 'Libs.private: $(GFXLIBS) $(XLIBS) -lm' >> $@ @echo 'Cflags: $(inc_search_path)' >> $@ get-wraster-flags: get-wraster-flags.in Makefile @echo "Generating $@" @$(SED) -e 's#$${inc_search_path}#$(inc_search_path)#;' \ -e 's#$${lib_search_path}#$(lib_search_path)#;' \ -e 's#$${GFXLIBS}#$(GFXLIBS)#;' \ -e 's#$${XLIBS}#$(XLIBS)#;' < $(abs_srcdir)/get-wraster-flags.in > $@ @chmod 755 $@ # 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. .NOEXPORT: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/COPYING��������������������������������������������������������������������0000644�0001750�0001750�00000061447�12214432632�013147� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code 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 distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, 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 Library, 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. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "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 AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY 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 LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the library's name and a brief idea of what it does.> Copyright (C) <year> <name of author> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. <signature of Ty Coon>, 1 April 1990 Ty Coon, President of Vice That's all there is to it! �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/xpixmap.c������������������������������������������������������������������0000644�0001750�0001750�00000010552�12214432632�013735� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xpixmap.c - Make RImage from Pixmap or XImage * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <X11/Xlib.h> #include <X11/Xutil.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <assert.h> #include "wraster.h" static int get_shifts(unsigned long mask) { int i = 0; while (mask) { mask >>= 1; i++; } return i; } #define NORMALIZE_RED(pixel) ((rshift>0) ? ((pixel) & rmask) >> rshift \ : ((pixel) & rmask) << -rshift) #define NORMALIZE_GREEN(pixel) ((gshift>0) ? ((pixel) & gmask) >> gshift \ : ((pixel) & gmask) << -gshift) #define NORMALIZE_BLUE(pixel) ((bshift>0) ? ((pixel) & bmask) >> bshift \ : ((pixel) & bmask) << -bshift) RImage *RCreateImageFromXImage(RContext * context, XImage * image, XImage * mask) { RImage *img; int x, y; unsigned long pixel; unsigned char *data; int rshift, gshift, bshift; int rmask, gmask, bmask; assert(image != NULL); assert(image->format == ZPixmap); assert(!mask || mask->format == ZPixmap); img = RCreateImage(image->width, image->height, mask != NULL); if (!img) { return NULL; } /* I don't know why, but XGetImage() for pixmaps don't set the * {red,green,blue}_mask values correctly. */ if (context->depth == image->depth) { rmask = context->visual->red_mask; gmask = context->visual->green_mask; bmask = context->visual->blue_mask; } else { rmask = image->red_mask; gmask = image->green_mask; bmask = image->blue_mask; } /* how many bits to shift to normalize the color into 8bpp */ rshift = get_shifts(rmask) - 8; gshift = get_shifts(gmask) - 8; bshift = get_shifts(bmask) - 8; data = img->data; if (image->depth == 1) { for (y = 0; y < image->height; y++) { for (x = 0; x < image->width; x++) { pixel = XGetPixel(image, x, y); if (pixel) { *data++ = 0; *data++ = 0; *data++ = 0; } else { *data++ = 0xff; *data++ = 0xff; *data++ = 0xff; } if (mask) data++; } } } else { for (y = 0; y < image->height; y++) { for (x = 0; x < image->width; x++) { pixel = XGetPixel(image, x, y); *(data++) = NORMALIZE_RED(pixel); *(data++) = NORMALIZE_GREEN(pixel); *(data++) = NORMALIZE_BLUE(pixel); if (mask) data++; } } } #define MIN(a,b) ((a)<(b)?(a):(b)) if (mask) { data = img->data + 3; /* Skip R, G & B */ for (y = 0; y < MIN(mask->height, image->height); y++) { for (x = 0; x < MIN(mask->width, image->width); x++) { if (mask->width <= image->width && XGetPixel(mask, x, y)) { *data = 0xff; } else { *data = 0; } data += 4; } for (; x < image->width; x++) { *data = 0; data += 4; } } for (; y < image->height; y++) { for (x = 0; x < image->width; x++) { *data = 0; data += 4; } } } return img; } RImage *RCreateImageFromDrawable(RContext * context, Drawable drawable, Pixmap mask) { RImage *image; XImage *pimg, *mimg; unsigned int w, h, bar; int foo; Window baz; assert(drawable != None); if (!XGetGeometry(context->dpy, drawable, &baz, &foo, &foo, &w, &h, &bar, &bar)) { printf("wrlib: invalid window or pixmap passed to RCreateImageFromPixmap\n"); return NULL; } pimg = XGetImage(context->dpy, drawable, 0, 0, w, h, AllPlanes, ZPixmap); if (!pimg) { RErrorCode = RERR_XERROR; return NULL; } mimg = NULL; if (mask) { if (XGetGeometry(context->dpy, mask, &baz, &foo, &foo, &w, &h, &bar, &bar)) { mimg = XGetImage(context->dpy, mask, 0, 0, w, h, AllPlanes, ZPixmap); } } image = RCreateImageFromXImage(context, pimg, mimg); XDestroyImage(pimg); if (mimg) XDestroyImage(mimg); return image; } ������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/png.c����������������������������������������������������������������������0000644�0001750�0001750�00000012000�12214432632�013021� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* png.c - load PNG image from file * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #ifdef USE_PNG #include <stdlib.h> #include <stdio.h> #include <string.h> #include <png.h> #include "wraster.h" #include "imgformat.h" RImage *RLoadPNG(RContext *context, const char *file) { char *tmp; RImage *image = NULL; FILE *f; png_structp png; png_infop pinfo, einfo; png_color_16p bkcolor; int alpha; int x, y, i; double gamma, sgamma; png_uint_32 width, height; int depth, junk, color_type; png_bytep *png_rows; unsigned char *ptr; f = fopen(file, "rb"); if (!f) { RErrorCode = RERR_OPEN; return NULL; } png = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, (png_error_ptr) NULL, (png_error_ptr) NULL); if (!png) { RErrorCode = RERR_NOMEMORY; fclose(f); return NULL; } pinfo = png_create_info_struct(png); if (!pinfo) { RErrorCode = RERR_NOMEMORY; fclose(f); png_destroy_read_struct(&png, NULL, NULL); return NULL; } einfo = png_create_info_struct(png); if (!einfo) { RErrorCode = RERR_NOMEMORY; fclose(f); png_destroy_read_struct(&png, &pinfo, NULL); return NULL; } RErrorCode = RERR_INTERNAL; #if PNG_LIBPNG_VER - 0 < 10400 if (setjmp(png->jmpbuf)) { #else if (setjmp(png_jmpbuf(png))) { #endif fclose(f); png_destroy_read_struct(&png, &pinfo, &einfo); if (image) RReleaseImage(image); return NULL; } png_init_io(png, f); png_read_info(png, pinfo); png_get_IHDR(png, pinfo, &width, &height, &depth, &color_type, &junk, &junk, &junk); /* sanity check */ if (width < 1 || height < 1) { fclose(f); png_destroy_read_struct(&png, &pinfo, &einfo); RErrorCode = RERR_BADIMAGEFILE; return NULL; } /* check for an alpha channel */ if (png_get_valid(png, pinfo, PNG_INFO_tRNS)) alpha = True; else alpha = (color_type & PNG_COLOR_MASK_ALPHA); /* allocate RImage */ image = RCreateImage(width, height, alpha); if (!image) { fclose(f); png_destroy_read_struct(&png, &pinfo, &einfo); return NULL; } /* normalize to 8bpp with alpha channel */ if (color_type == PNG_COLOR_TYPE_PALETTE && depth <= 8) png_set_expand(png); if (color_type == PNG_COLOR_TYPE_GRAY && depth <= 8) png_set_expand(png); if (png_get_valid(png, pinfo, PNG_INFO_tRNS)) png_set_expand(png); if (depth == 16) png_set_strip_16(png); if (color_type == PNG_COLOR_TYPE_GRAY || color_type == PNG_COLOR_TYPE_GRAY_ALPHA) png_set_gray_to_rgb(png); /* set gamma correction */ if ((context->attribs->flags & RC_GammaCorrection) && context->depth != 8) { sgamma = (context->attribs->rgamma + context->attribs->ggamma + context->attribs->bgamma) / 3; } else if ((tmp = getenv("DISPLAY_GAMMA")) != NULL) { sgamma = atof(tmp); if (sgamma < 1.0E-3) sgamma = 1; } else { /* blah */ sgamma = 2.2; } if (png_get_gAMA(png, pinfo, &gamma)) png_set_gamma(png, sgamma, gamma); else png_set_gamma(png, sgamma, 0.45); /* do the transforms */ png_read_update_info(png, pinfo); /* set background color */ if (png_get_bKGD(png, pinfo, &bkcolor)) { image->background.red = bkcolor->red >> 8; image->background.green = bkcolor->green >> 8; image->background.blue = bkcolor->blue >> 8; } png_rows = calloc(height, sizeof(char *)); if (!png_rows) { RErrorCode = RERR_NOMEMORY; fclose(f); RReleaseImage(image); png_destroy_read_struct(&png, &pinfo, &einfo); return NULL; } for (y = 0; y < height; y++) { png_rows[y] = malloc(png_get_rowbytes(png, pinfo)); if (!png_rows[y]) { RErrorCode = RERR_NOMEMORY; fclose(f); RReleaseImage(image); png_destroy_read_struct(&png, &pinfo, &einfo); while (y-- > 0) if (png_rows[y]) free(png_rows[y]); free(png_rows); return NULL; } } /* read data */ png_read_image(png, png_rows); png_read_end(png, einfo); png_destroy_read_struct(&png, &pinfo, &einfo); fclose(f); ptr = image->data; /* convert to RImage */ if (alpha) { for (y = 0; y < height; y++) { for (x = 0, i = width * 4; x < i; x++, ptr++) { *ptr = *(png_rows[y] + x); } } } else { for (y = 0; y < height; y++) { for (x = 0, i = width * 3; x < i; x++, ptr++) { *ptr = *(png_rows[y] + x); } } } for (y = 0; y < height; y++) if (png_rows[y]) free(png_rows[y]); free(png_rows); return image; } #endif /* USE_PNG */ WindowMaker-0.95.5/wrlib/AUTHORS��������������������������������������������������������������������0000644�0001750�0001750�00000000000�12214432632�013136� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/convert.c������������������������������������������������������������������0000644�0001750�0001750�00000062151�12214432632�013731� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* convert.c - convert RImage to Pixmap * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ /* Problems: * 1. Using Grayscale visual with Dithering crashes wmaker * 2. Ghost dock/appicon is wrong in Pseudocolor, Staticgray, Grayscale */ #include <config.h> #include <X11/Xlib.h> #include <X11/Xutil.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <assert.h> #include "wraster.h" #ifdef XSHM extern Pixmap R_CreateXImageMappedPixmap(RContext * context, RXImage * ximage); #endif #define NFREE(n) if (n) free(n) #define HAS_ALPHA(I) ((I)->format == RRGBAFormat) typedef struct RConversionTable { unsigned short table[256]; unsigned short index; struct RConversionTable *next; } RConversionTable; typedef struct RStdConversionTable { unsigned int table[256]; unsigned short mult; unsigned short max; struct RStdConversionTable *next; } RStdConversionTable; static RConversionTable *conversionTable = NULL; static RStdConversionTable *stdConversionTable = NULL; static unsigned short *computeTable(unsigned short mask) { RConversionTable *tmp = conversionTable; int i; while (tmp) { if (tmp->index == mask) break; tmp = tmp->next; } if (tmp) return tmp->table; tmp = (RConversionTable *) malloc(sizeof(RConversionTable)); if (tmp == NULL) return NULL; for (i = 0; i < 256; i++) tmp->table[i] = (i * mask + 0x7f) / 0xff; tmp->index = mask; tmp->next = conversionTable; conversionTable = tmp; return tmp->table; } static unsigned int *computeStdTable(unsigned int mult, unsigned int max) { RStdConversionTable *tmp = stdConversionTable; unsigned int i; while (tmp) { if (tmp->mult == mult && tmp->max == max) break; tmp = tmp->next; } if (tmp) return tmp->table; tmp = (RStdConversionTable *) malloc(sizeof(RStdConversionTable)); if (tmp == NULL) return NULL; for (i = 0; i < 256; i++) { tmp->table[i] = (i * max) / 0xff * mult; } tmp->mult = mult; tmp->max = max; tmp->next = stdConversionTable; stdConversionTable = tmp; return tmp->table; } /***************************************************************************/ static void convertTrueColor_generic(RXImage * ximg, RImage * image, signed char *err, signed char *nerr, const unsigned short *rtable, const unsigned short *gtable, const unsigned short *btable, const int dr, const int dg, const int db, const unsigned short roffs, const unsigned short goffs, const unsigned short boffs) { signed char *terr; int x, y, r, g, b; int pixel; int rer, ger, ber; unsigned char *ptr = image->data; int channels = (HAS_ALPHA(image) ? 4 : 3); /* convert and dither the image to XImage */ for (y = 0; y < image->height; y++) { nerr[0] = 0; nerr[1] = 0; nerr[2] = 0; for (x = 0; x < image->width; x++, ptr += channels) { /* reduce pixel */ pixel = *ptr + err[x]; if (pixel < 0) pixel = 0; else if (pixel > 0xff) pixel = 0xff; r = rtable[pixel]; /* calc error */ rer = pixel - r * dr; /* reduce pixel */ pixel = *(ptr + 1) + err[x + 1]; if (pixel < 0) pixel = 0; else if (pixel > 0xff) pixel = 0xff; g = gtable[pixel]; /* calc error */ ger = pixel - g * dg; /* reduce pixel */ pixel = *(ptr + 2) + err[x + 2]; if (pixel < 0) pixel = 0; else if (pixel > 0xff) pixel = 0xff; b = btable[pixel]; /* calc error */ ber = pixel - b * db; pixel = (r << roffs) | (g << goffs) | (b << boffs); XPutPixel(ximg->image, x, y, pixel); /* distribute error */ r = (rer * 3) / 8; g = (ger * 3) / 8; b = (ber * 3) / 8; /* x+1, y */ err[x + 3 * 1] += r; err[x + 1 + 3 * 1] += g; err[x + 2 + 3 * 1] += b; /* x, y+1 */ nerr[x] += r; nerr[x + 1] += g; nerr[x + 2] += b; /* x+1, y+1 */ nerr[x + 3 * 1] = rer - 2 * r; nerr[x + 1 + 3 * 1] = ger - 2 * g; nerr[x + 2 + 3 * 1] = ber - 2 * b; } /* skip to next line */ terr = err; err = nerr; nerr = terr; } /* redither the 1st line to distribute error better */ ptr = image->data; y = 0; nerr[0] = 0; nerr[1] = 0; nerr[2] = 0; for (x = 0; x < image->width; x++, ptr += channels) { /* reduce pixel */ pixel = *ptr + err[x]; if (pixel < 0) pixel = 0; else if (pixel > 0xff) pixel = 0xff; r = rtable[pixel]; /* calc error */ rer = pixel - r * dr; /* reduce pixel */ pixel = *(ptr + 1) + err[x + 1]; if (pixel < 0) pixel = 0; else if (pixel > 0xff) pixel = 0xff; g = gtable[pixel]; /* calc error */ ger = pixel - g * dg; /* reduce pixel */ pixel = *(ptr + 2) + err[x + 2]; if (pixel < 0) pixel = 0; else if (pixel > 0xff) pixel = 0xff; b = btable[pixel]; /* calc error */ ber = pixel - b * db; pixel = (r << roffs) | (g << goffs) | (b << boffs); XPutPixel(ximg->image, x, y, pixel); /* distribute error */ r = (rer * 3) / 8; g = (ger * 3) / 8; b = (ber * 3) / 8; /* x+1, y */ err[x + 3 * 1] += r; err[x + 1 + 3 * 1] += g; err[x + 2 + 3 * 1] += b; /* x, y+1 */ nerr[x] += r; nerr[x + 1] += g; nerr[x + 2] += b; /* x+1, y+1 */ nerr[x + 3 * 1] = rer - 2 * r; nerr[x + 1 + 3 * 1] = ger - 2 * g; nerr[x + 2 + 3 * 1] = ber - 2 * b; } } static RXImage *image2TrueColor(RContext * ctx, RImage * image) { RXImage *ximg; unsigned short rmask, gmask, bmask; unsigned short roffs, goffs, boffs; unsigned short *rtable, *gtable, *btable; int channels = (HAS_ALPHA(image) ? 4 : 3); ximg = RCreateXImage(ctx, ctx->depth, image->width, image->height); if (!ximg) { return NULL; } roffs = ctx->red_offset; goffs = ctx->green_offset; boffs = ctx->blue_offset; rmask = ctx->visual->red_mask >> roffs; gmask = ctx->visual->green_mask >> goffs; bmask = ctx->visual->blue_mask >> boffs; rtable = computeTable(rmask); gtable = computeTable(gmask); btable = computeTable(bmask); if (rtable == NULL || gtable == NULL || btable == NULL) { RErrorCode = RERR_NOMEMORY; RDestroyXImage(ctx, ximg); return NULL; } if (ctx->attribs->render_mode == RBestMatchRendering) { int ofs, r, g, b; int x, y; unsigned long pixel; unsigned char *ptr = image->data; /* fake match */ #ifdef WRLIB_DEBUG fputs("true color match\n", stderr); #endif if (rmask == 0xff && gmask == 0xff && bmask == 0xff) { for (y = 0; y < image->height; y++) { for (x = 0; x < image->width; x++, ptr += channels) { /* reduce pixel */ pixel = (*(ptr) << roffs) | (*(ptr + 1) << goffs) | (*(ptr + 2) << boffs); XPutPixel(ximg->image, x, y, pixel); } } } else { for (y = 0, ofs = 0; y < image->height; y++) { for (x = 0; x < image->width; x++, ofs += channels - 3) { /* reduce pixel */ r = rtable[ptr[ofs++]]; g = gtable[ptr[ofs++]]; b = btable[ptr[ofs++]]; pixel = (r << roffs) | (g << goffs) | (b << boffs); XPutPixel(ximg->image, x, y, pixel); } } } } else { /* dither */ const int dr = 0xff / rmask; const int dg = 0xff / gmask; const int db = 0xff / bmask; #ifdef WRLIB_DEBUG fputs("true color dither\n", stderr); #endif { signed char *err; signed char *nerr; int ch = (HAS_ALPHA(image) ? 4 : 3); err = malloc(ch * (image->width + 2)); nerr = malloc(ch * (image->width + 2)); if (!err || !nerr) { NFREE(err); NFREE(nerr); RErrorCode = RERR_NOMEMORY; RDestroyXImage(ctx, ximg); return NULL; } memset(err, 0, ch * (image->width + 2)); memset(nerr, 0, ch * (image->width + 2)); convertTrueColor_generic(ximg, image, err, nerr, rtable, gtable, btable, dr, dg, db, roffs, goffs, boffs); free(err); free(nerr); } } return ximg; } /***************************************************************************/ static void convertPseudoColor_to_8(RXImage * ximg, RImage * image, signed char *err, signed char *nerr, const unsigned short *rtable, const unsigned short *gtable, const unsigned short *btable, const int dr, const int dg, const int db, unsigned long *pixels, int cpc) { signed char *terr; int x, y, r, g, b; int pixel; int rer, ger, ber; unsigned char *ptr = image->data; unsigned char *optr = (unsigned char *)ximg->image->data; int channels = (HAS_ALPHA(image) ? 4 : 3); int cpcpc = cpc * cpc; /* convert and dither the image to XImage */ for (y = 0; y < image->height; y++) { nerr[0] = 0; nerr[1] = 0; nerr[2] = 0; for (x = 0; x < image->width * 3; x += 3, ptr += channels) { /* reduce pixel */ pixel = *ptr + err[x]; if (pixel < 0) pixel = 0; else if (pixel > 0xff) pixel = 0xff; r = rtable[pixel]; /* calc error */ rer = pixel - r * dr; /* reduce pixel */ pixel = *(ptr + 1) + err[x + 1]; if (pixel < 0) pixel = 0; else if (pixel > 0xff) pixel = 0xff; g = gtable[pixel]; /* calc error */ ger = pixel - g * dg; /* reduce pixel */ pixel = *(ptr + 2) + err[x + 2]; if (pixel < 0) pixel = 0; else if (pixel > 0xff) pixel = 0xff; b = btable[pixel]; /* calc error */ ber = pixel - b * db; *optr++ = pixels[r * cpcpc + g * cpc + b]; /* distribute error */ r = (rer * 3) / 8; g = (ger * 3) / 8; b = (ber * 3) / 8; /* x+1, y */ err[x + 3 * 1] += r; err[x + 1 + 3 * 1] += g; err[x + 2 + 3 * 1] += b; /* x, y+1 */ nerr[x] += r; nerr[x + 1] += g; nerr[x + 2] += b; /* x+1, y+1 */ nerr[x + 3 * 1] = rer - 2 * r; nerr[x + 1 + 3 * 1] = ger - 2 * g; nerr[x + 2 + 3 * 1] = ber - 2 * b; } /* skip to next line */ terr = err; err = nerr; nerr = terr; optr += ximg->image->bytes_per_line - image->width; } } static RXImage *image2PseudoColor(RContext * ctx, RImage * image) { RXImage *ximg; register int x, y, r, g, b; unsigned char *ptr; unsigned long pixel; const int cpc = ctx->attribs->colors_per_channel; const unsigned short rmask = cpc - 1; /* different sizes could be used */ const unsigned short gmask = rmask; /* for r,g,b */ const unsigned short bmask = rmask; unsigned short *rtable, *gtable, *btable; const int cpccpc = cpc * cpc; int channels = (HAS_ALPHA(image) ? 4 : 3); ximg = RCreateXImage(ctx, ctx->depth, image->width, image->height); if (!ximg) { return NULL; } ptr = image->data; /* Tables are same at the moment because rmask==gmask==bmask. */ rtable = computeTable(rmask); gtable = computeTable(gmask); btable = computeTable(bmask); if (rtable == NULL || gtable == NULL || btable == NULL) { RErrorCode = RERR_NOMEMORY; RDestroyXImage(ctx, ximg); return NULL; } if (ctx->attribs->render_mode == RBestMatchRendering) { /* fake match */ #ifdef WRLIB_DEBUG fprintf(stderr, "pseudo color match with %d colors per channel\n", cpc); #endif for (y = 0; y < image->height; y++) { for (x = 0; x < image->width; x++, ptr += channels - 3) { /* reduce pixel */ r = rtable[*ptr++]; g = gtable[*ptr++]; b = btable[*ptr++]; pixel = r * cpccpc + g * cpc + b; /*data[ofs] = ctx->colors[pixel].pixel; */ XPutPixel(ximg->image, x, y, ctx->colors[pixel].pixel); } } } else { /* dither */ signed char *err; signed char *nerr; const int dr = 0xff / rmask; const int dg = 0xff / gmask; const int db = 0xff / bmask; #ifdef WRLIB_DEBUG fprintf(stderr, "pseudo color dithering with %d colors per channel\n", cpc); #endif err = malloc(4 * (image->width + 3)); nerr = malloc(4 * (image->width + 3)); if (!err || !nerr) { NFREE(err); NFREE(nerr); RErrorCode = RERR_NOMEMORY; RDestroyXImage(ctx, ximg); return NULL; } memset(err, 0, 4 * (image->width + 3)); memset(nerr, 0, 4 * (image->width + 3)); convertPseudoColor_to_8(ximg, image, err + 4, nerr + 4, rtable, gtable, btable, dr, dg, db, ctx->pixels, cpc); free(err); free(nerr); } return ximg; } /* * For standard colormap */ static RXImage *image2StandardPseudoColor(RContext * ctx, RImage * image) { RXImage *ximg; register int x, y, r, g, b; unsigned char *ptr; unsigned long pixel; unsigned char *data; unsigned int *rtable, *gtable, *btable; unsigned int base_pixel = ctx->std_rgb_map->base_pixel; int channels = (HAS_ALPHA(image) ? 4 : 3); ximg = RCreateXImage(ctx, ctx->depth, image->width, image->height); if (!ximg) { return NULL; } ptr = image->data; data = (unsigned char *)ximg->image->data; rtable = computeStdTable(ctx->std_rgb_map->red_mult, ctx->std_rgb_map->red_max); gtable = computeStdTable(ctx->std_rgb_map->green_mult, ctx->std_rgb_map->green_max); btable = computeStdTable(ctx->std_rgb_map->blue_mult, ctx->std_rgb_map->blue_max); if (rtable == NULL || gtable == NULL || btable == NULL) { RErrorCode = RERR_NOMEMORY; RDestroyXImage(ctx, ximg); return NULL; } if (ctx->attribs->render_mode == RBestMatchRendering) { for (y = 0; y < image->height; y++) { for (x = 0; x < image->width; x++, ptr += channels) { /* reduce pixel */ pixel = (rtable[*ptr] + gtable[*(ptr + 1)] + btable[*(ptr + 2)] + base_pixel) & 0xffffffff; XPutPixel(ximg->image, x, y, pixel); } } } else { /* dither */ signed short *err, *nerr; signed short *terr; int rer, ger, ber; int x1, ofs; #ifdef WRLIB_DEBUG fprintf(stderr, "pseudo color dithering with %d colors per channel\n", ctx->attribs->colors_per_channel); #endif err = (short *)malloc(3 * (image->width + 2) * sizeof(short)); nerr = (short *)malloc(3 * (image->width + 2) * sizeof(short)); if (!err || !nerr) { NFREE(err); NFREE(nerr); RErrorCode = RERR_NOMEMORY; RDestroyXImage(ctx, ximg); return NULL; } for (x = 0, x1 = 0; x < image->width * 3; x1 += channels - 3) { err[x++] = ptr[x1++]; err[x++] = ptr[x1++]; err[x++] = ptr[x1++]; } err[x] = err[x + 1] = err[x + 2] = 0; /* convert and dither the image to XImage */ for (y = 0, ofs = 0; y < image->height; y++) { if (y < image->height - 1) { int x1; for (x = 0, x1 = (y + 1) * image->width * channels; x < image->width * 3; x1 += channels - 3) { nerr[x++] = ptr[x1++]; nerr[x++] = ptr[x1++]; nerr[x++] = ptr[x1++]; } /* last column */ x1 -= channels; nerr[x++] = ptr[x1++]; nerr[x++] = ptr[x1++]; nerr[x++] = ptr[x1++]; } for (x = 0; x < image->width * 3; x += 3, ofs++) { /* reduce pixel */ if (err[x] > 0xff) err[x] = 0xff; else if (err[x] < 0) err[x] = 0; if (err[x + 1] > 0xff) err[x + 1] = 0xff; else if (err[x + 1] < 0) err[x + 1] = 0; if (err[x + 2] > 0xff) err[x + 2] = 0xff; else if (err[x + 2] < 0) err[x + 2] = 0; r = rtable[err[x]]; g = gtable[err[x + 1]]; b = btable[err[x + 2]]; pixel = r + g + b; data[ofs] = base_pixel + pixel; /* calc error */ rer = err[x] - (ctx->colors[pixel].red >> 8); ger = err[x + 1] - (ctx->colors[pixel].green >> 8); ber = err[x + 2] - (ctx->colors[pixel].blue >> 8); /* distribute error */ err[x + 3 * 1] += (rer * 7) / 16; err[x + 1 + 3 * 1] += (ger * 7) / 16; err[x + 2 + 3 * 1] += (ber * 7) / 16; nerr[x] += (rer * 5) / 16; nerr[x + 1] += (ger * 5) / 16; nerr[x + 2] += (ber * 5) / 16; if (x > 0) { nerr[x - 3 * 1] += (rer * 3) / 16; nerr[x - 3 * 1 + 1] += (ger * 3) / 16; nerr[x - 3 * 1 + 2] += (ber * 3) / 16; } nerr[x + 3 * 1] += rer / 16; nerr[x + 1 + 3 * 1] += ger / 16; nerr[x + 2 + 3 * 1] += ber / 16; } /* skip to next line */ terr = err; err = nerr; nerr = terr; ofs += ximg->image->bytes_per_line - image->width; } free(err); free(nerr); } ximg->image->data = (char *)data; return ximg; } static RXImage *image2GrayScale(RContext * ctx, RImage * image) { RXImage *ximg; register int x, y, g; unsigned char *ptr; const int cpc = ctx->attribs->colors_per_channel; unsigned short gmask; unsigned short *table; unsigned char *data; int channels = (HAS_ALPHA(image) ? 4 : 3); ximg = RCreateXImage(ctx, ctx->depth, image->width, image->height); if (!ximg) { return NULL; } ptr = image->data; data = (unsigned char *)ximg->image->data; if (ctx->vclass == StaticGray) gmask = (1 << ctx->depth) - 1; /* use all grays */ else gmask = cpc * cpc * cpc - 1; table = computeTable(gmask); if (table == NULL) { RErrorCode = RERR_NOMEMORY; RDestroyXImage(ctx, ximg); return NULL; } if (ctx->attribs->render_mode == RBestMatchRendering) { /* fake match */ #ifdef WRLIB_DEBUG fprintf(stderr, "grayscale match with %d colors per channel\n", cpc); #endif for (y = 0; y < image->height; y++) { for (x = 0; x < image->width; x++) { /* reduce pixel */ g = table[(*ptr * 30 + *(ptr + 1) * 59 + *(ptr + 2) * 11) / 100]; ptr += channels; /*data[ofs] = ctx->colors[g].pixel; */ XPutPixel(ximg->image, x, y, ctx->colors[g].pixel); } } } else { /* dither */ short *gerr; short *ngerr; short *terr; int ger; const int dg = 0xff / gmask; #ifdef WRLIB_DEBUG fprintf(stderr, "grayscale dither with %d colors per channel\n", cpc); #endif gerr = (short *)malloc((image->width + 2) * sizeof(short)); ngerr = (short *)malloc((image->width + 2) * sizeof(short)); if (!gerr || !ngerr) { NFREE(gerr); NFREE(ngerr); RErrorCode = RERR_NOMEMORY; RDestroyXImage(ctx, ximg); return NULL; } for (x = 0, y = 0; x < image->width; x++, y += channels) { gerr[x] = (ptr[y] * 30 + ptr[y + 1] * 59 + ptr[y + 2] * 11) / 100; } gerr[x] = 0; /* convert and dither the image to XImage */ for (y = 0; y < image->height; y++) { if (y < image->height - 1) { int x1; for (x = 0, x1 = (y + 1) * image->width * channels; x < image->width; x++, x1 += channels) { ngerr[x] = (ptr[x1] * 30 + ptr[x1 + 1] * 59 + ptr[x1 + 2] * 11) / 100; } /* last column */ x1 -= channels; ngerr[x] = (ptr[x1] * 30 + ptr[x1 + 1] * 59 + ptr[x1 + 2] * 11) / 100; } for (x = 0; x < image->width; x++) { /* reduce pixel */ if (gerr[x] > 0xff) gerr[x] = 0xff; else if (gerr[x] < 0) gerr[x] = 0; g = table[gerr[x]]; /*data[ofs] = ctx->colors[g].pixel; */ XPutPixel(ximg->image, x, y, ctx->colors[g].pixel); /* calc error */ ger = gerr[x] - g * dg; /* distribute error */ g = (ger * 3) / 8; /* x+1, y */ gerr[x + 1] += g; /* x, y+1 */ ngerr[x] += g; /* x+1, y+1 */ ngerr[x + 1] += ger - 2 * g; } /* skip to next line */ terr = gerr; gerr = ngerr; ngerr = terr; } free(gerr); free(ngerr); } ximg->image->data = (char *)data; return ximg; } static RXImage *image2Bitmap(RContext * ctx, RImage * image, int threshold) { RXImage *ximg; unsigned char *alpha; int x, y; ximg = RCreateXImage(ctx, 1, image->width, image->height); if (!ximg) { return NULL; } alpha = image->data + 3; for (y = 0; y < image->height; y++) { for (x = 0; x < image->width; x++) { XPutPixel(ximg->image, x, y, (*alpha <= threshold ? 0 : 1)); alpha += 4; } } return ximg; } int RConvertImage(RContext * context, RImage * image, Pixmap * pixmap) { RXImage *ximg = NULL; #ifdef XSHM Pixmap tmp; #endif assert(context != NULL); assert(image != NULL); assert(pixmap != NULL); switch (context->vclass) { case TrueColor: ximg = image2TrueColor(context, image); break; case PseudoColor: case StaticColor: if (context->attribs->standard_colormap_mode != RIgnoreStdColormap) ximg = image2StandardPseudoColor(context, image); else ximg = image2PseudoColor(context, image); break; case GrayScale: case StaticGray: ximg = image2GrayScale(context, image); break; } if (!ximg) { return False; } *pixmap = XCreatePixmap(context->dpy, context->drawable, image->width, image->height, context->depth); #ifdef XSHM if (context->flags.use_shared_pixmap && ximg->is_shared) tmp = R_CreateXImageMappedPixmap(context, ximg); else tmp = None; if (tmp) { /* * We have to copy the shm Pixmap into a normal Pixmap because * otherwise, we would have to control when Pixmaps are freed so * that we can detach their shm segments. This is a problem if the * program crash, leaving stale shared memory segments in the * system (lots of them). But with some work, we can optimize * things and remove this XCopyArea. This will require * explicitly freeing all pixmaps when exiting or restarting * wmaker. */ XCopyArea(context->dpy, tmp, *pixmap, context->copy_gc, 0, 0, image->width, image->height, 0, 0); XFreePixmap(context->dpy, tmp); } else { RPutXImage(context, *pixmap, context->copy_gc, ximg, 0, 0, 0, 0, image->width, image->height); } #else /* !XSHM */ RPutXImage(context, *pixmap, context->copy_gc, ximg, 0, 0, 0, 0, image->width, image->height); #endif /* !XSHM */ RDestroyXImage(context, ximg); return True; } /* make the gc permanent (create with context creation). * GC creation is very expensive. altering its properties is not. -Dan */ int RConvertImageMask(RContext * context, RImage * image, Pixmap * pixmap, Pixmap * mask, int threshold) { GC gc; XGCValues gcv; RXImage *ximg = NULL; assert(context != NULL); assert(image != NULL); assert(pixmap != NULL); assert(mask != NULL); if (!RConvertImage(context, image, pixmap)) return False; if (image->format == RRGBFormat) { *mask = None; return True; } ximg = image2Bitmap(context, image, threshold); if (!ximg) { return False; } *mask = XCreatePixmap(context->dpy, context->drawable, image->width, image->height, 1); gcv.foreground = context->black; gcv.background = context->white; gcv.graphics_exposures = False; gc = XCreateGC(context->dpy, *mask, GCForeground | GCBackground | GCGraphicsExposures, &gcv); RPutXImage(context, *mask, gc, ximg, 0, 0, 0, 0, image->width, image->height); RDestroyXImage(context, ximg); XFreeGC(context->dpy, gc); return True; } Bool RGetClosestXColor(RContext * context, const RColor * color, XColor * retColor) { if (context->vclass == TrueColor) { unsigned short rmask, gmask, bmask; unsigned short roffs, goffs, boffs; unsigned short *rtable, *gtable, *btable; roffs = context->red_offset; goffs = context->green_offset; boffs = context->blue_offset; rmask = context->visual->red_mask >> roffs; gmask = context->visual->green_mask >> goffs; bmask = context->visual->blue_mask >> boffs; rtable = computeTable(rmask); gtable = computeTable(gmask); btable = computeTable(bmask); retColor->pixel = (rtable[color->red] << roffs) | (gtable[color->green] << goffs) | (btable[color->blue] << boffs); retColor->red = color->red << 8; retColor->green = color->green << 8; retColor->blue = color->blue << 8; retColor->flags = DoRed | DoGreen | DoBlue; } else if (context->vclass == PseudoColor || context->vclass == StaticColor) { if (context->attribs->standard_colormap_mode != RIgnoreStdColormap) { unsigned int *rtable, *gtable, *btable; rtable = computeStdTable(context->std_rgb_map->red_mult, context->std_rgb_map->red_max); gtable = computeStdTable(context->std_rgb_map->green_mult, context->std_rgb_map->green_max); btable = computeStdTable(context->std_rgb_map->blue_mult, context->std_rgb_map->blue_max); if (rtable == NULL || gtable == NULL || btable == NULL) { RErrorCode = RERR_NOMEMORY; return False; } retColor->pixel = (rtable[color->red] + gtable[color->green] + btable[color->blue] + context->std_rgb_map->base_pixel) & 0xffffffff; retColor->red = color->red << 8; retColor->green = color->green << 8; retColor->blue = color->blue << 8; retColor->flags = DoRed | DoGreen | DoBlue; } else { const int cpc = context->attribs->colors_per_channel; const unsigned short rmask = cpc - 1; /* different sizes could be used */ const unsigned short gmask = rmask; /* for r,g,b */ const unsigned short bmask = rmask; unsigned short *rtable, *gtable, *btable; const int cpccpc = cpc * cpc; int index; rtable = computeTable(rmask); gtable = computeTable(gmask); btable = computeTable(bmask); if (rtable == NULL || gtable == NULL || btable == NULL) { RErrorCode = RERR_NOMEMORY; return False; } index = rtable[color->red] * cpccpc + gtable[color->green] * cpc + btable[color->blue]; *retColor = context->colors[index]; } } else if (context->vclass == GrayScale || context->vclass == StaticGray) { const int cpc = context->attribs->colors_per_channel; unsigned short gmask; unsigned short *table; int index; if (context->vclass == StaticGray) gmask = (1 << context->depth) - 1; /* use all grays */ else gmask = cpc * cpc * cpc - 1; table = computeTable(gmask); if (!table) return False; index = table[(color->red * 30 + color->green * 59 + color->blue * 11) / 100]; *retColor = context->colors[index]; } else { RErrorCode = RERR_INTERNAL; return False; } return True; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/wraster.h������������������������������������������������������������������0000644�0001750�0001750�00000027656�12214432632�013760� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ /* * Environment variables: * * WRASTER_GAMMA <rgamma>/<ggamma>/<bgamma> * gamma correction value. Must be greater than 0 * Only for PseudoColor visuals. * * Default: * WRASTER_GAMMA 1/1/1 * * * If you want a specific value for a screen, append the screen number * preceded by a hash to the variable name as in * WRASTER_GAMMA#1 * for screen number 1 */ #ifndef RLRASTER_H_ #define RLRASTER_H_ /* version of the header for the library */ #define WRASTER_HEADER_VERSION 22 #include <X11/Xlib.h> #include <X11/Xutil.h> #ifdef XSHM #include <X11/extensions/XShm.h> #endif #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* RBestMatchRendering or RDitheredRendering */ #define RC_RenderMode (1<<0) /* number of colors per channel for colormap in PseudoColor mode */ #define RC_ColorsPerChannel (1<<1) /* do gamma correction */ #define RC_GammaCorrection (1<<2) /* visual id to use */ #define RC_VisualID (1<<3) /* shared memory usage */ #define RC_UseSharedMemory (1<<4) /* use default instead of best visual */ #define RC_DefaultVisual (1<<5) /* filter type for smoothed scaling */ #define RC_ScalingFilter (1<<6) /* standard colormap usage */ #define RC_StandardColormap (1<<7) /* std colormap usage/creation modes */ enum { RUseStdColormap, /* default. fallbacks to RIgnore.. if there is none defined */ RCreateStdColormap, RIgnoreStdColormap }; typedef struct RContextAttributes { int flags; int render_mode; int colors_per_channel; /* for PseudoColor */ float rgamma; /* gamma correction for red, */ float ggamma; /* green, */ float bgamma; /* and blue */ VisualID visualid; /* visual ID to use */ int use_shared_memory; /* True of False */ int scaling_filter; int standard_colormap_mode; /* what to do with std cma */ } RContextAttributes; /* * describes a screen in terms of depth, visual, number of colors * we can use, if we should do dithering, and what colors to use for * dithering. */ typedef struct RContext { Display *dpy; int screen_number; Colormap cmap; RContextAttributes *attribs; GC copy_gc; Visual *visual; int depth; Window drawable; /* window to pass for XCreatePixmap().*/ /* generally = root */ int vclass; unsigned long black; unsigned long white; int red_offset; /* only used in 24bpp */ int green_offset; int blue_offset; /* only used for pseudocolor and grayscale */ XStandardColormap *std_rgb_map; /* standard RGB colormap */ XStandardColormap *std_gray_map; /* standard grayscale colormap */ int ncolors; /* total number of colors we can use */ XColor *colors; /* internal colormap */ unsigned long *pixels; /* RContext->colors[].pixel */ struct { unsigned int use_shared_pixmap:1; unsigned int optimize_for_speed:1; } flags; } RContext; typedef struct RColor { unsigned char red; unsigned char green; unsigned char blue; unsigned char alpha; } RColor; typedef struct RHSVColor { unsigned short hue; /* 0-359 */ unsigned char saturation; /* 0-255 */ unsigned char value; /* 0-255 */ } RHSVColor; typedef struct RPoint { int x, y; } RPoint; typedef struct RSegment { int x1, y1, x2, y2; } RSegment; /* image formats */ enum RImageFormat { RRGBFormat, RRGBAFormat }; /* * internal 24bit+alpha image representation */ typedef struct RImage { unsigned char *data; /* image data RGBA or RGB */ int width, height; /* size of the image */ enum RImageFormat format; RColor background; /* background color */ int refCount; } RImage; /* * internal wrapper for XImage. Used for shm abstraction */ typedef struct RXImage { XImage *image; /* Private data. Do not access */ #ifdef XSHM XShmSegmentInfo info; char is_shared; #endif } RXImage; /* image display modes */ enum { RDitheredRendering = 0, RBestMatchRendering = 1 }; /* smoothed scaling filter types */ enum { RBoxFilter, RTriangleFilter, RBellFilter, RBSplineFilter, RLanczos3Filter, RMitchellFilter }; /* note that not all operations are supported in all functions */ enum { RClearOperation, /* clear with 0 */ RCopyOperation, RNormalOperation, /* same as combine */ RAddOperation, RSubtractOperation }; enum { RAbsoluteCoordinates = 0, RRelativeCoordinates = 1 }; enum { RSunkenBevel = -1, RNoBevel = 0, RRaisedBevel = 1 }; /* bw compat */ #define RBEV_SUNKEN RSunkenBevel /* 1 pixel wide */ #define RBEV_RAISED RRaisedBevel /* 1 pixel wide on top/left 2 on bottom/right */ #define RBEV_RAISED2 2 /* 2 pixel width */ #define RBEV_RAISED3 3 enum { RHorizontalGradient = 2, RVerticalGradient = 3, RDiagonalGradient = 4 }; /* for backwards compatibility */ #define RGRD_HORIZONTAL RHorizontalGradient #define RGRD_VERTICAL RVerticalGradient #define RGRD_DIAGONAL RDiagonalGradient /* error codes */ #define RERR_NONE 0 #define RERR_OPEN 1 /* cant open file */ #define RERR_READ 2 /* error reading from file */ #define RERR_WRITE 3 /* error writing to file */ #define RERR_NOMEMORY 4 /* out of memory */ #define RERR_NOCOLOR 5 /* out of color cells */ #define RERR_BADIMAGEFILE 6 /* image file is corrupted or invalid */ #define RERR_BADFORMAT 7 /* image file format is unknown */ #define RERR_BADINDEX 8 /* no such image index in file */ #define RERR_BADVISUALID 16 /* invalid visual ID requested for context */ #define RERR_STDCMAPFAIL 17 /* failed to created std colormap */ #define RERR_XERROR 127 /* internal X error */ #define RERR_INTERNAL 128 /* should not happen */ /* * 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); char *RGetImageFileFormat(const char *file); /* * Xlib contexts */ RContext *RCreateContext(Display *dpy, int screen_number, const RContextAttributes *attribs); void RDestroyContext(RContext *context); Bool RGetClosestXColor(RContext *context, const RColor *color, XColor *retColor); /* * RImage creation */ RImage *RCreateImage(unsigned width, unsigned height, int alpha); RImage *RCreateImageFromXImage(RContext *context, XImage *image, XImage *mask); RImage *RCreateImageFromDrawable(RContext *context, Drawable drawable, Pixmap mask); RImage *RLoadImage(RContext *context, const char *file, int index); RImage* RRetainImage(RImage *image); void RReleaseImage(RImage *image); RImage *RGetImageFromXPMData(RContext *context, char **xpmData); /* * RImage storing */ Bool RSaveImage(RImage *image, const char *filename, const char *format); /* * Area manipulation */ RImage *RCloneImage(RImage *image); RImage *RGetSubImage(RImage *image, int x, int y, unsigned width, unsigned height); void RCombineImageWithColor(RImage *image, const RColor *color); void RCombineImages(RImage *image, RImage *src); void RCombineArea(RImage *image, RImage *src, int sx, int sy, unsigned width, unsigned height, int dx, int dy); void RCopyArea(RImage *image, RImage *src, int sx, int sy, unsigned width, unsigned height, int dx, int dy); void RCombineImagesWithOpaqueness(RImage *image, RImage *src, int opaqueness); void RCombineAreaWithOpaqueness(RImage *image, RImage *src, int sx, int sy, unsigned width, unsigned height, int dx, int dy, int opaqueness); void RCombineAlpha(unsigned char *d, unsigned char *s, int s_has_alpha, int width, int height, int dwi, int swi, int opacity); RImage *RScaleImage(RImage *image, unsigned new_width, unsigned new_height); RImage *RSmoothScaleImage(RImage *src, unsigned new_width, unsigned new_height); RImage *RRotateImage(RImage *image, float angle); RImage *RMakeTiledImage(RImage *tile, unsigned width, unsigned height); RImage* RMakeCenteredImage(RImage *image, unsigned width, unsigned height, const RColor *color); /* * Drawing */ Bool RGetPixel(RImage *image, int x, int y, RColor *color); void RPutPixel(RImage *image, int x, int y, const RColor *color); void ROperatePixel(RImage *image, int operation, int x, int y, const RColor *color); void RPutPixels(RImage *image, const RPoint *points, int npoints, int mode, const RColor *color); void ROperatePixels(RImage *image, int operation, const RPoint *points, int npoints, int mode, const RColor *color); int RDrawLine(RImage *image, int x0, int y0, int x1, int y1, const RColor *color); int ROperateLine(RImage *image, int operation, int x0, int y0, int x1, int y1, const RColor *color); void RDrawLines(RImage *image, const RPoint *points, int npoints, int mode, const RColor *color); void ROperateLines(RImage *image, int operation, const RPoint *points, int npoints, int mode, const RColor *color); void RDrawSegments(RImage *image, const RSegment *segs, int nsegs, const RColor *color); void ROperateSegments(RImage *image, int operation, const RSegment *segs, int nsegs, const RColor *color); /* * Color convertion */ void RRGBtoHSV(const RColor *color, RHSVColor *hsv); void RHSVtoRGB(const RHSVColor *hsv, RColor *rgb); /* * Painting */ void RClearImage(RImage *image, const RColor *color); void RLightImage(RImage *image, const RColor *color); void RFillImage(RImage *image, const RColor *color); void RBevelImage(RImage *image, int bevel_type); RImage *RRenderGradient(unsigned width, unsigned height, const RColor *from, const RColor *to, int style); RImage *RRenderMultiGradient(unsigned width, unsigned height, RColor **colors, int style); RImage *RRenderInterwovenGradient(unsigned width, unsigned height, RColor colors1[2], int thickness1, RColor colors2[2], int thickness2); /* * Convertion into X Pixmaps */ int RConvertImage(RContext *context, RImage *image, Pixmap *pixmap); int RConvertImageMask(RContext *context, RImage *image, Pixmap *pixmap, Pixmap *mask, int threshold); /* * misc. utilities */ RXImage *RCreateXImage(RContext *context, int depth, unsigned width, unsigned height); RXImage *RGetXImage(RContext *context, Drawable d, int x, int y, unsigned width, unsigned height); void RDestroyXImage(RContext *context, RXImage *ximage); void RPutXImage(RContext *context, Drawable d, GC gc, RXImage *ximage, int src_x, int src_y, int dest_x, int dest_y, unsigned width, unsigned height); /* do not free the returned string! */ const char *RMessageForError(int errorCode); int RBlurImage(RImage *image); /****** Global Variables *******/ extern int RErrorCode; #ifdef __cplusplus } #endif /* __cplusplus */ #endif ����������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/xutil.c��������������������������������������������������������������������0000644�0001750�0001750�00000014644�12214432632�013422� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xutil.c - utility functions for X * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <X11/Xlib.h> #include <X11/Xutil.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <assert.h> #ifdef XSHM #include <sys/ipc.h> #include <sys/shm.h> #endif /* XSHM */ #include "wraster.h" #ifdef XSHM static int shmError; static int (*oldErrorHandler)(Display *dpy, XErrorEvent *err); static int errorHandler(Display * dpy, XErrorEvent * err) { shmError = 1; if (err->error_code != BadAccess) (*oldErrorHandler) (dpy, err); return 0; } #endif RXImage *RCreateXImage(RContext * context, int depth, unsigned width, unsigned height) { RXImage *rximg; Visual *visual = context->visual; rximg = malloc(sizeof(RXImage)); if (!rximg) { RErrorCode = RERR_NOMEMORY; return NULL; } #ifndef XSHM rximg->image = XCreateImage(context->dpy, visual, depth, ZPixmap, 0, NULL, width, height, 8, 0); if (!rximg->image) { free(rximg); RErrorCode = RERR_XERROR; return NULL; } rximg->image->data = malloc(rximg->image->bytes_per_line * height); if (!rximg->image->data) { XDestroyImage(rximg->image); free(rximg); RErrorCode = RERR_NOMEMORY; return NULL; } #else /* XSHM */ if (!context->attribs->use_shared_memory) { retry_without_shm: context->attribs->use_shared_memory = 0; rximg->is_shared = 0; rximg->image = XCreateImage(context->dpy, visual, depth, ZPixmap, 0, NULL, width, height, 8, 0); if (!rximg->image) { free(rximg); RErrorCode = RERR_XERROR; return NULL; } rximg->image->data = malloc(rximg->image->bytes_per_line * height); if (!rximg->image->data) { XDestroyImage(rximg->image); free(rximg); RErrorCode = RERR_NOMEMORY; return NULL; } } else { rximg->is_shared = 1; rximg->info.readOnly = False; rximg->image = XShmCreateImage(context->dpy, visual, depth, ZPixmap, NULL, &rximg->info, width, height); rximg->info.shmid = shmget(IPC_PRIVATE, rximg->image->bytes_per_line * height, IPC_CREAT | 0777); if (rximg->info.shmid < 0) { context->attribs->use_shared_memory = 0; perror("wrlib: could not allocate shared memory segment"); XDestroyImage(rximg->image); goto retry_without_shm; } rximg->info.shmaddr = shmat(rximg->info.shmid, 0, 0); if (rximg->info.shmaddr == (void *)-1) { context->attribs->use_shared_memory = 0; if (shmctl(rximg->info.shmid, IPC_RMID, 0) < 0) perror("wrlib: shmctl"); perror("wrlib: could not allocate shared memory"); XDestroyImage(rximg->image); goto retry_without_shm; } shmError = 0; XSync(context->dpy, False); oldErrorHandler = XSetErrorHandler(errorHandler); XShmAttach(context->dpy, &rximg->info); XSync(context->dpy, False); XSetErrorHandler(oldErrorHandler); rximg->image->data = rximg->info.shmaddr; /* rximg->image->obdata = &(rximg->info); */ if (shmError) { context->attribs->use_shared_memory = 0; XDestroyImage(rximg->image); if (shmdt(rximg->info.shmaddr) < 0) perror("wrlib: shmdt"); if (shmctl(rximg->info.shmid, IPC_RMID, 0) < 0) perror("wrlib: shmctl"); /* printf("wrlib:error attaching shared memory segment to XImage\n"); */ goto retry_without_shm; } } #endif /* XSHM */ return rximg; } void RDestroyXImage(RContext * context, RXImage * rximage) { #ifndef XSHM XDestroyImage(rximage->image); #else /* XSHM */ if (rximage->is_shared) { XSync(context->dpy, False); XShmDetach(context->dpy, &rximage->info); XDestroyImage(rximage->image); if (shmdt(rximage->info.shmaddr) < 0) perror("wrlib: shmdt"); if (shmctl(rximage->info.shmid, IPC_RMID, 0) < 0) perror("wrlib: shmctl"); } else { XDestroyImage(rximage->image); } #endif free(rximage); } static unsigned getDepth(Display * dpy, Drawable d) { Window w; int foo; unsigned bar; unsigned depth; XGetGeometry(dpy, d, &w, &foo, &foo, &bar, &bar, &bar, &depth); return depth; } RXImage *RGetXImage(RContext * context, Drawable d, int x, int y, unsigned width, unsigned height) { RXImage *ximg = NULL; #ifdef XSHM if (context->attribs->use_shared_memory && 0) { ximg = RCreateXImage(context, getDepth(context->dpy, d), width, height); if (ximg && !ximg->is_shared) { RDestroyXImage(context, ximg); ximg = NULL; } if (ximg) { XShmGetImage(context->dpy, d, ximg->image, x, y, AllPlanes); } } if (!ximg) { ximg = malloc(sizeof(RXImage)); if (!ximg) { RErrorCode = RERR_NOMEMORY; return NULL; } ximg->is_shared = 0; ximg->image = XGetImage(context->dpy, d, x, y, width, height, AllPlanes, ZPixmap); } return ximg; #else /* !XSHM */ ximg = malloc(sizeof(RXImage)); if (!ximg) { RErrorCode = RERR_NOMEMORY; return NULL; } ximg->image = XGetImage(context->dpy, d, x, y, width, height, AllPlanes, ZPixmap); return ximg; #endif /* !XSHM */ } void RPutXImage(RContext * context, Drawable d, GC gc, RXImage * ximage, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height) { #ifndef XSHM XPutImage(context->dpy, d, gc, ximage->image, src_x, src_y, dest_x, dest_y, width, height); #else if (ximage->is_shared) { XShmPutImage(context->dpy, d, gc, ximage->image, src_x, src_y, dest_x, dest_y, width, height, False); } else { XPutImage(context->dpy, d, gc, ximage->image, src_x, src_y, dest_x, dest_y, width, height); } XFlush(context->dpy); #endif /* XSHM */ } #ifdef XSHM Pixmap R_CreateXImageMappedPixmap(RContext * context, RXImage * rximage) { Pixmap pix; pix = XShmCreatePixmap(context->dpy, context->drawable, rximage->image->data, &rximage->info, rximage->image->width, rximage->image->height, rximage->image->depth); return pix; } #endif /* XSHM */ ��������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/TODO�����������������������������������������������������������������������0000644�0001750�0001750�00000000332�12214432632�012566� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������- support for other types of displays and convertion modes (currently only supports PseudoColor and TrueColor in some depths) - Gimp's xcf format? - add clipping code to RCombineArea() - remake and optimize converters ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/���������������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434624�013325� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/testdraw.c�����������������������������������������������������������0000644�0001750�0001750�00000037661�12214432632�015260� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #include <X11/Xlib.h> #include "wraster.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/time.h> #include <time.h> Display *dpy; RContext *ctx; char *ProgName; void testDraw() { RImage *img, *tile, *icon, *tmp; RColor color, from, to; RColor cdelta; RSegment segs[20]; int i, x, y; XSetWindowAttributes val; Pixmap pix, back; Window win; val.background_pixel = ctx->black; val.colormap = ctx->cmap; win = XCreateWindow(dpy, DefaultRootWindow(dpy), 10, 10, 128, 256, 0, ctx->depth, InputOutput, ctx->visual, CWColormap | CWBackPixel, &val); back = XCreatePixmap(ctx->dpy, ctx->drawable, 128, 256, ctx->depth); /* Dark blue tile gradient */ from.red = 0x28; from.green = 0x45; from.blue = 0x69; from.alpha = 0xff; to.red = 0x08; to.green = 0x24; to.blue = 0x20; to.alpha = 0xff; /* Standard gray tile gradient */ /*from.red = 0xa6; from.green = 0xa6; from.blue = 0xb6; from.alpha = 0xff; to.red = 0x51; to.green = 0x55; to.blue = 0x61; to.alpha = 0xff; */ /* Make the tile, and put it as a sample in the first place */ tile = RRenderGradient(64, 64, &from, &to, RGRD_DIAGONAL); img = RCloneImage(tile); RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 0, 0); /* Read the image, and combine it with the tile. Put it as a sample * in the second slot, and also save a copy for later use. */ icon = RLoadImage(ctx, "ballot_box.xpm", 0); if (!icon) { puts(RMessageForError(RErrorCode)); exit(1); } RCombineArea(img, icon, 0, 0, icon->width, icon->height, 8, 8); RReleaseImage(icon); tmp = img; RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 64, 0); img = RCloneImage(tile); /* Draw random pixels on image */ for (i = 0; i < 200; i++) { color.red = rand() % 256; color.green = rand() % 256; color.blue = rand() % 256; color.alpha = 255; x = rand() % 64; y = rand() % 64; RPutPixel(img, x, y, &color); } RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 0, 64); RReleaseImage(img); img = RCloneImage(tile); /* Alter random pixels in image with the same amount for r/g/b */ for (i = 0; i < 200; i++) { cdelta.red = cdelta.green = cdelta.blue = rand() % 511 - 255; cdelta.alpha = 0; x = rand() % 64; y = rand() % 64; ROperatePixel(img, RAddOperation, x, y, &cdelta); } RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 64, 64); RReleaseImage(img); img = RCloneImage(tile); /* Draw lines in all directions to test different slopes */ color.red = 0xff; color.green = 0x7d; color.blue = 0x52; color.alpha = 0xff; for (i = 0; i < 16; i++) segs[i].x1 = segs[i].y1 = 31; segs[6].x2 = segs[7].x2 = segs[8].x2 = segs[9].x2 = segs[10].x2 = 0; segs[2].y2 = segs[3].y2 = segs[4].y2 = segs[5].y2 = segs[6].y2 = 0; segs[5].x2 = segs[11].x2 = 16; segs[1].y2 = segs[7].y2 = 16; segs[4].x2 = segs[12].x2 = 31; segs[0].y2 = segs[8].y2 = 31; segs[3].x2 = segs[13].x2 = 46; segs[9].y2 = segs[15].y2 = 46; segs[0].x2 = segs[1].x2 = segs[2].x2 = segs[14].x2 = segs[15].x2 = 62; segs[10].y2 = segs[11].y2 = segs[12].y2 = segs[13].y2 = segs[14].y2 = 62; RDrawSegments(img, segs, 9, &color); /* Also test how alpha channel behaves when drawing lines */ color.alpha = 0x80; RDrawSegments(img, &segs[9], 7, &color); RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 0, 128); RReleaseImage(img); img = RCloneImage(tile); /* Alter lines in all directions (test different slopes) */ cdelta.red = cdelta.green = cdelta.blue = 80; cdelta.alpha = 0; ROperateSegments(img, RAddOperation, segs, 16, &cdelta); RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 64, 128); RReleaseImage(img); /* Create a bevel around the icon, and save it for a later use */ img = tmp; cdelta.red = cdelta.green = cdelta.blue = 80; cdelta.alpha = 0; ROperateLine(img, RAddOperation, 8, 8, 56, 8, &cdelta); ROperateLine(img, RAddOperation, 8, 9, 8, 56, &cdelta); cdelta.red = cdelta.green = cdelta.blue = 40; cdelta.alpha = 0; ROperateLine(img, RSubtractOperation, 8, 56, 56, 56, &cdelta); ROperateLine(img, RSubtractOperation, 56, 8, 56, 55, &cdelta); RReleaseImage(tile); tmp = RCloneImage(img); /* Draw some solid lines over the icon */ color.red = 0xff; color.green = 0x7d; color.blue = 0x52; color.alpha = 0xff; for (i = 16; i < 24; i++) { RDrawLine(img, 9, i, 55, i, &color); } /* Also try some lines with alpha over the icon */ color.alpha = 0x80; for (i = 40; i < 48; i++) { RDrawLine(img, 9, i, 55, i, &color); } RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 0, 192); RReleaseImage(img); /* Restore the image with the icon, and alter some lines */ img = tmp; cdelta.red = cdelta.green = cdelta.blue = 80; cdelta.alpha = 0; for (i = 16; i < 24; i++) { ROperateLine(img, RSubtractOperation, 9, i, 55, i, &cdelta); } cdelta.red = cdelta.green = cdelta.blue = 80; for (i = 40; i < 48; i++) { ROperateLine(img, RAddOperation, 9, i, 55, i, &cdelta); } RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 64, 192); XSetWindowBackgroundPixmap(dpy, win, back); XMapRaised(dpy, win); XClearWindow(dpy, win); XFlush(dpy); } void testBevel() { RImage *img, *tile; RColor color, from, to; XSetWindowAttributes val; Pixmap pix, back; Window win; val.background_pixel = ctx->black; val.colormap = ctx->cmap; win = XCreateWindow(dpy, DefaultRootWindow(dpy), 10, 10, 140, 140, 0, ctx->depth, InputOutput, ctx->visual, CWColormap | CWBackPixel, &val); back = XCreatePixmap(ctx->dpy, ctx->drawable, 140, 140, ctx->depth); /* Standard gray tile gradient */ from.red = 0xa6; from.green = 0xa6; from.blue = 0xb6; from.alpha = 0xff; to.red = 0x51; to.green = 0x55; to.blue = 0x61; to.alpha = 0xff; /* Dark blue tile gradient */ /*from.red = 0x28; from.green = 0x45; from.blue = 0x69; from.alpha = 0xff; to.red = 0x08; to.green = 0x24; to.blue = 0x20; to.alpha = 0xff; */ /* Create Background */ img = RCreateImage(140, 140, True); color.red = 0x28; color.green = 0x45; color.blue = 0x69; color.alpha = 0xff; RClearImage(img, &color); RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 140, 140, 0, 0); RReleaseImage(img); tile = RRenderGradient(64, 64, &from, &to, RGRD_DIAGONAL); img = RCloneImage(tile); RBevelImage(img, RBEV_SUNKEN); RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 3, 3); RReleaseImage(img); img = RCloneImage(tile); RBevelImage(img, RBEV_RAISED); RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 73, 3); RReleaseImage(img); img = RCloneImage(tile); RBevelImage(img, RBEV_RAISED2); RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 3, 73); RReleaseImage(img); img = RCloneImage(tile); RBevelImage(img, RBEV_RAISED3); RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 73, 73); RReleaseImage(img); XSetWindowBackgroundPixmap(dpy, win, back); XMapRaised(dpy, win); XClearWindow(dpy, win); XFlush(dpy); } void testScale() { RImage *image; RImage *scaled; XSetWindowAttributes val; Pixmap pix; Window win; val.background_pixel = ctx->black; val.colormap = ctx->cmap; win = XCreateWindow(dpy, DefaultRootWindow(dpy), 10, 10, 140, 140, 0, ctx->depth, InputOutput, ctx->visual, CWColormap | CWBackPixel, &val); XStoreName(dpy, win, "Scale"); pix = XCreatePixmap(ctx->dpy, ctx->drawable, 140, 140, ctx->depth); image = RLoadImage(ctx, "ballot_box.xpm", 0); if (!image) { puts("couldnt load ballot_box.xpm"); return; } scaled = RScaleImage(image, 140, 140); RReleaseImage(image); RConvertImage(ctx, scaled, &pix); XSetWindowBackgroundPixmap(dpy, win, pix); XMapRaised(dpy, win); XClearWindow(dpy, win); XFlush(dpy); } void testRotate() { RImage *image; RImage *rotated; XSetWindowAttributes val; Pixmap pix; Window win; image = RLoadImage(ctx, "ballot_box.xpm", 0); if (!image) { puts("couldnt load ballot_box.xpm"); return; } image = RScaleImage(image, 90, 180); val.background_pixel = ctx->black; val.colormap = ctx->cmap; win = XCreateWindow(dpy, DefaultRootWindow(dpy), 10, 10, image->height, image->width, 0, ctx->depth, InputOutput, ctx->visual, CWColormap | CWBackPixel, &val); XStoreName(dpy, win, "Rotate"); pix = XCreatePixmap(ctx->dpy, ctx->drawable, image->height, image->width, ctx->depth); rotated = RRotateImage(image, 90.0); RReleaseImage(image); RConvertImage(ctx, rotated, &pix); XSetWindowBackgroundPixmap(dpy, win, pix); XMapRaised(dpy, win); XClearWindow(dpy, win); XFlush(dpy); } void drawClip() { RImage *img; RColor color, from, to, tmp; RColor cdelta, cdelta1; RSegment segs[20]; XSetWindowAttributes val; Pixmap pix, back; Window win; val.background_pixel = ctx->black; val.colormap = ctx->cmap; win = XCreateWindow(dpy, DefaultRootWindow(dpy), 10, 10, 64, 64, 0, ctx->depth, InputOutput, ctx->visual, CWColormap | CWBackPixel, &val); back = XCreatePixmap(ctx->dpy, ctx->drawable, 64, 64, ctx->depth); /* Standard gray tile gradient */ from.red = 0xa6; from.green = 0xa6; from.blue = 0xb6; from.alpha = 0xff; to.red = 0x51; to.green = 0x55; to.blue = 0x61; to.alpha = 0xff; /* Dark blue tile gradient */ from.red = 0x28; from.green = 0x45; from.blue = 0x69; from.alpha = 0xff; to.red = 0x08; to.green = 0x24; to.blue = 0x20; to.alpha = 0xff; img = RRenderGradient(64, 64, &from, &to, RGRD_DIAGONAL); RBevelImage(img, RBEV_RAISED3); #if 1 color.alpha = 255; color.red = color.green = color.blue = 0; cdelta.alpha = 0; cdelta.red = cdelta.green = cdelta.blue = 80; cdelta1.alpha = 0; cdelta1.red = cdelta1.green = cdelta1.blue = 40; segs[0].x1 = segs[2].y1 = segs[4].x1 = segs[4].x2 = 63 - 21; segs[0].x2 = segs[2].y2 = segs[1].x2 = segs[3].y2 = 63 - 2; segs[0].y1 = segs[2].x1 = segs[1].y1 = segs[3].x1 = 2; segs[0].y2 = segs[2].x2 = segs[6].x1 = segs[6].x2 = 21; segs[1].x1 = segs[3].y1 = segs[5].x1 = segs[5].x2 = 63 - 22; segs[1].y2 = segs[3].x2 = segs[7].x1 = segs[7].x2 = 22; segs[4].y1 = segs[5].y1 = segs[10].x1 = segs[11].x1 = 0; segs[4].y2 = segs[5].y2 = segs[10].x2 = segs[11].x2 = 1; segs[6].y1 = segs[7].y1 = segs[8].x1 = segs[9].x1 = 63 - 1; segs[6].y2 = segs[7].y2 = segs[8].x2 = segs[9].x2 = 63; segs[8].y1 = segs[8].y2 = 21; segs[9].y1 = segs[9].y2 = 22; segs[10].y1 = segs[10].y2 = 63 - 21; segs[11].y1 = segs[11].y2 = 63 - 22; /* Black segments */ RDrawSegments(img, segs, 12, &color); segs[0].x1 = segs[3].y1 = 63 - 20; segs[0].x2 = segs[1].y2 = segs[2].x2 = segs[3].y2 = 63 - 2; segs[0].y1 = segs[1].x1 = segs[2].y1 = segs[3].x1 = 2; segs[1].y1 = segs[2].x1 = 63 - 23; segs[0].y2 = segs[3].x2 = 20; segs[1].x2 = segs[2].y2 = 23; /* Bevels arround black segments */ ROperateSegments(img, RAddOperation, segs, 2, &cdelta); ROperateSegments(img, RSubtractOperation, &segs[2], 2, &cdelta1); RGetPixel(img, 63 - 2, 20, &tmp); /*RPutPixel(img, 63-1, 23, &tmp); */ RDrawLine(img, 63 - 1, 23, 63, 23, &tmp); RGetPixel(img, 63 - 23, 2, &tmp); RDrawLine(img, 63 - 23, 0, 63 - 23, 1, &tmp); RGetPixel(img, 23, 63 - 2, &tmp); /*RPutPixel(img, 23, 63-1, &tmp); */ RDrawLine(img, 23, 63 - 1, 23, 63, &tmp); RGetPixel(img, 2, 63 - 20, &tmp); RDrawLine(img, 0, 63 - 23, 1, 63 - 23, &tmp); #else color.alpha = 255; color.red = color.green = color.blue = 0; cdelta.alpha = 0; cdelta.red = cdelta.green = cdelta.blue = 80; cdelta1.alpha = 0; cdelta1.red = cdelta1.green = cdelta1.blue = 40; RDrawLine(img, 63 - 21, 2, 63 - 2, 21, &color); /* upper 2 black lines */ ROperateLine(img, RAddOperation, 63 - 20, 2, 63 - 2, 20, &cdelta); /* the bevel arround them */ ROperateLine(img, RSubtractOperation, 63 - 22, 2, 63 - 2, 22, &cdelta1); RDrawLine(img, 63 - 21, 0, 63 - 21, 1, &color); /* upper small black lines */ RDrawLine(img, 63 - 1, 21, 63, 21, &color); RGetPixel(img, 63 - 2, 20, &tmp); RPutPixel(img, 63 - 1, 22, &tmp); RGetPixel(img, 2, 63 - 22, &tmp); RDrawLine(img, 63 - 22, 0, 63 - 22, 1, &tmp); RDrawLine(img, 2, 63 - 21, 21, 63 - 2, &color); /* lower 2 black lines */ ROperateLine(img, RSubtractOperation, 2, 63 - 20, 20, 63 - 2, &cdelta1); /* the bevel arround them */ ROperateLine(img, RAddOperation, 2, 63 - 22, 22, 63 - 2, &cdelta); RDrawLine(img, 21, 63 - 1, 21, 63, &color); /* lower small black lines */ RDrawLine(img, 0, 63 - 21, 1, 63 - 21, &color); ROperateLine(img, RAddOperation, 22, 63 - 1, 22, 63, &cdelta); /*ROperateLine(img, RAddOperation, 22, 63-1, 22, 63, &cdelta); *//* the bevel arround them */ ROperateLine(img, RSubtractOperation, 0, 63 - 22, 1, 63 - 22, &cdelta1); #endif RConvertImage(ctx, img, &pix); XCopyArea(dpy, pix, back, ctx->copy_gc, 0, 0, 64, 64, 0, 0); RReleaseImage(img); XSetWindowBackgroundPixmap(dpy, win, back); XMapRaised(dpy, win); XClearWindow(dpy, win); XFlush(dpy); } void benchmark() { RImage *img; RColor color; RColor cdelta; double t1, t2, total, d1 = 0, d2 = 0, d3 = 0; struct timeval timev; int i, j; puts("Starting benchmark"); gettimeofday(&timev, NULL); t1 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); img = RCreateImage(1024, 768, True); gettimeofday(&timev, NULL); t2 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); total = t2 - t1; printf("Image created in %f sec\n", total); gettimeofday(&timev, NULL); t1 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); color.red = 0x28; color.green = 0x45; color.blue = 0x69; color.alpha = 0xff; RClearImage(img, &color); color.red = 0xff; color.green = 0x7d; color.blue = 0x52; color.alpha = 0xff; cdelta.red = cdelta.green = cdelta.blue = 80; cdelta.alpha = 0; gettimeofday(&timev, NULL); t2 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); total = t2 - t1; printf("Image filled in %f sec\n", total); for (j = 1; j < 6; j++) { printf("Pass %d...\n", j); gettimeofday(&timev, NULL); t1 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); color.alpha = 0xff; for (i = 0; i < 10000; i++) { RDrawLine(img, 0, i % 64, i % 64, 63, &color); } gettimeofday(&timev, NULL); t2 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); total = t2 - t1; printf("Drawing 10000 lines in %f sec\n", total); d1 += total; gettimeofday(&timev, NULL); t1 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); color.alpha = 80; for (i = 0; i < 10000; i++) { RDrawLine(img, 0, i % 64, i % 64, 63, &color); } gettimeofday(&timev, NULL); t2 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); total = t2 - t1; printf("Drawing 10000 lines with alpha in %f sec\n", total); d2 += total; gettimeofday(&timev, NULL); t1 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); for (i = 0; i < 10000; i++) { ROperateLine(img, RAddOperation, 0, i % 64, i % 64, 63, &cdelta); } gettimeofday(&timev, NULL); t2 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); total = t2 - t1; printf("Altering 10000 lines in %f sec\n", total); d3 += total; } printf("Average: %f, %f, %f\n", d1 / 5, d2 / 5, d3 / 5); RReleaseImage(img); } int main(int argc, char **argv) { RContextAttributes attr; int visualID = -1; ProgName = strrchr(argv[0], '/'); if (!ProgName) ProgName = argv[0]; else ProgName++; dpy = XOpenDisplay(""); if (!dpy) { puts("cant open display"); exit(1); } attr.flags = RC_RenderMode | RC_ColorsPerChannel; attr.render_mode = RDitheredRendering; attr.colors_per_channel = 4; if (visualID >= 0) { attr.flags |= RC_VisualID; attr.visualid = visualID; } ctx = RCreateContext(dpy, DefaultScreen(dpy), &attr); if (!ctx) { printf("could not initialize graphics library context: %s\n", RMessageForError(RErrorCode)); exit(1); } /* Here are the things we want to test */ testDraw(); testBevel(); drawClip(); testScale(); testRotate(); /* benchmark(); */ getchar(); return 0; } �������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/view.c���������������������������������������������������������������0000644�0001750�0001750�00000003163�12214432632�014363� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <X11/Xlib.h> #include "wraster.h" #include <stdlib.h> #include <stdio.h> #include "tile.xpm" Display *dpy; Window win; RContext *ctx; RImage *img; Pixmap pix; int main(int argc, char **argv) { RContextAttributes attr; dpy = XOpenDisplay(""); if (!dpy) { puts("cant open display"); exit(1); } attr.flags = RC_RenderMode | RC_ColorsPerChannel; attr.render_mode = RDitheredRendering; attr.colors_per_channel = 4; ctx = RCreateContext(dpy, DefaultScreen(dpy), &attr); if (argc < 2) img = RGetImageFromXPMData(ctx, image_name); else img = RLoadImage(ctx, argv[1], 0); if (!img) { puts(RMessageForError(RErrorCode)); exit(1); } if (argc > 2) { RImage *tmp = img; img = RScaleImage(tmp, tmp->width * atol(argv[2]), tmp->height * atol(argv[2])); /*img = RSmoothScaleImage(tmp, tmp->width*atol(argv[2]), tmp->height*atol(argv[2])); */ RReleaseImage(tmp); } #if 0 if (argc > 2) { img = RScaleImage(img, img->width * atof(argv[2]), img->height * atof(argv[2])); } { RImage *tmp = RCreateImage(200, 200, True); RColor col = { 0, 0, 255, 255 }; if (img->format == RRGBAFormat) puts("alpha"); else puts("no alpha"); RClearImage(tmp, &col); RCombineArea(tmp, img, 0, 0, 20, 20, 10, 10); img = tmp; } #endif if (!RConvertImage(ctx, img, &pix)) { puts(RMessageForError(RErrorCode)); exit(1); } printf("%ix%i\n", img->width, img->height); win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 10, 10, img->width, img->height, 0, 0, 0); XSetWindowBackgroundPixmap(dpy, win, pix); XClearWindow(dpy, win); XMapRaised(dpy, win); XFlush(dpy); getchar(); return 0; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/Makefile.in����������������������������������������������������������0000644�0001750�0001750�00000042277�12214434562�015327� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = testdraw$(EXEEXT) testgrad$(EXEEXT) testrot$(EXEEXT) \ view$(EXEEXT) subdir = wrlib/tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_testdraw_OBJECTS = testdraw.$(OBJEXT) testdraw_OBJECTS = $(am_testdraw_OBJECTS) testdraw_DEPENDENCIES = $(LIBLIST) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent am_testgrad_OBJECTS = testgrad.$(OBJEXT) testgrad_OBJECTS = $(am_testgrad_OBJECTS) testgrad_DEPENDENCIES = $(LIBLIST) am_testrot_OBJECTS = testrot.$(OBJEXT) testrot_OBJECTS = $(am_testrot_OBJECTS) testrot_DEPENDENCIES = $(LIBLIST) am_view_OBJECTS = view.$(OBJEXT) view_OBJECTS = $(am_view_OBJECTS) view_DEPENDENCIES = $(LIBLIST) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(testdraw_SOURCES) $(testgrad_SOURCES) $(testrot_SOURCES) \ $(view_SOURCES) DIST_SOURCES = $(testdraw_SOURCES) $(testgrad_SOURCES) \ $(testrot_SOURCES) $(view_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ AUTOMAKE_OPTIONS = EXTRA_DIST = test.png tile.xpm ballot_box.xpm AM_CPPFLAGS = -I$(srcdir)/.. $(DFLAGS) @HEADER_SEARCH_PATH@ LIBLIST = $(top_builddir)/wrlib/libwraster.la testdraw_SOURCES = testdraw.c testdraw_LDADD = $(LIBLIST) testgrad_SOURCES = testgrad.c testgrad_LDADD = $(LIBLIST) testrot_SOURCES = testrot.c testrot_LDADD = $(LIBLIST) view_SOURCES = view.c view_LDADD = $(LIBLIST) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu wrlib/tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu wrlib/tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list testdraw$(EXEEXT): $(testdraw_OBJECTS) $(testdraw_DEPENDENCIES) @rm -f testdraw$(EXEEXT) $(AM_V_CCLD)$(LINK) $(testdraw_OBJECTS) $(testdraw_LDADD) $(LIBS) testgrad$(EXEEXT): $(testgrad_OBJECTS) $(testgrad_DEPENDENCIES) @rm -f testgrad$(EXEEXT) $(AM_V_CCLD)$(LINK) $(testgrad_OBJECTS) $(testgrad_LDADD) $(LIBS) testrot$(EXEEXT): $(testrot_OBJECTS) $(testrot_DEPENDENCIES) @rm -f testrot$(EXEEXT) $(AM_V_CCLD)$(LINK) $(testrot_OBJECTS) $(testrot_LDADD) $(LIBS) view$(EXEEXT): $(view_OBJECTS) $(view_DEPENDENCIES) @rm -f view$(EXEEXT) $(AM_V_CCLD)$(LINK) $(view_OBJECTS) $(view_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdraw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testgrad.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testrot.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # 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. .NOEXPORT: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/tile.xpm�������������������������������������������������������������0000644�0001750�0001750�00000012302�12214432632�014723� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char *image_name[] = { /* width height num_colors chars_per_pixel */ " 64 64 54 1", /* colors */ ". c #ffffff", "# c #000000", "a c #516161", "b c #a2a2b2", "c c #a2a2a2", "d c #a292b2", "e c #92a2a2", "f c #a292a2", "g c #9292a2", "h c #929292", "i c #9282a2", "j c #829292", "k c #928292", "l c #828292", "m c #828282", "n c #827192", "o c #615161", "p c #92a2b2", "q c #9292b2", "r c #8292a2", "s c #8282a2", "t c #718292", "u c #718282", "v c #515161", "w c #515151", "x c #827182", "y c #415151", "z c #514151", "A c #717192", "B c #717182", "C c #717171", "D c #414151", "E c #716182", "F c #617182", "G c #415141", "H c #414141", "I c #617171", "J c #413041", "K c #304141", "L c #716171", "M c #616171", "N c #616182", "O c #303030", "P c #616161", "Q c #303041", "R c #516171", "S c #304130", "T c #615171", "U c #203030", "V c #302030", "W c #515171", "X c #202030", "Y c #202020", "Z c #413051", /* pixels */ "...............................................................#", "..............................................................a#", "..bcbcdcdcdcdefgdefgfgfgggfgghihihihijijijklkjklklkllmlllmnmnmo#", "..bbebpbebebededeqegegegegegrgggjgjgjijijsjijsjljljllllltltlula#", "..bcdcbcfcdefefefgfefgfhfgghghghihijkhijkjkjklklkllmlmlmnmnmnmv#", "..pbbbededededeqefeqegggggggggjgrgjijijijijsjllljllllltlllununw#", "..dcdcdcdefgfefgfgfgghggghihihihijkjijklkjklllkllmlllmnmnunmnuv#", "..ebebebededeqegegegggegrgrgjgjgjijijsjkjsjljljlllllultlunulunw#", "..dcfcdefefefgfgfgfhfhghihghihijkjijkjkjklklkllmlmlmnmnmnmnuxuv#", "..ededededeqefegegggggggggjgjgjijijijijsjllljllllltlllununununy#", "..fcdefgfefgfgfgghggghihihihijkjijklklklllkllmnmlmnmnununuxunuz#", "..ebeqedeqegegegggggrgrgjgjgjijijsjkjsjljljlllllululununununuAy#", "..defefefgfgfgghfhghihghihijkjijkjkjklklkllmlmlmnmnmnmnuxuxuxBz#", "..ededeqegggegggggrgggjijgjijijijijsjllllllllltltlununununuAuBy#", "..fgfefgfgfgghggghihihihijklijklklklllkllmnmnmnmnununuxunuxBxBz#", "..efeqegegegggggjgrgjgjgjijijsjljsjljljltlllululununununuAuBuBy#", "..fefgfgfgghghghihghihijkjkjklkjklkmkllmlmlmnmnuxmnuxuxuxBxBxBz#", "..eqegggegggggrgggjijijijijijkjsjlllllllllultlununununuAuBBAuBy#", "..fgfgfgghghghihihihijklijklklkllllllmnmnmnmnununuxBxuxBBBxBBBz#", "..egegegggggjgrgjgjgjijijsjljljllljltltlululununununuAuBuBuBBBy#", "..fgfgghghghihihihijkjkjklklklkmkllmnmlmnmnuxunuxuxuxBxBxBBCBCz#", "..ggegggggjgggjijijijijsjkjsjlllllllllultlununununuAuBBBuBBBBBD#", "..fgghghghihijihijklijklklkllllllmnmnmnmnununuxBxBxBBBxBBCEBBCz#", "..egggggjgrgjijgjsjijsjljljllllltltlululununuAunuAuBuBuBBBBBFBG#", "..ghghghihihkhijkjkjklklkllmkllmnmlmnmnuxunuxuxuxBxBxBBCBCBCECD#", "..ggggjgrgjijijijijsjllsjllllltllluntlununununuAuBBBBBBBBBFBFBH#", "..ihghihijijijklkjklklkllmlllmnmnmnmnununuxBxBxBBBxBBCEBECECEIJ#", "..ggjgjgjijijsjijsjljljllllltltlululununuAuBuAuBuBuBFBBBIBFBIEH#", "..ghihijkhijkjkjklklkllmlmlmnmlmnmnuxunuxBxuxBxBxBBCBCBCECEIECH#", "..jgrgjijijijijsjllljllllltlllununununununuAuBBBBBBBBBFBFBIEIEK#", "..ihijkjijklkjklklkllmlllmnmnmnmnununuxBxBxBBBBBBCEBECECEIEIEIJ#", "..jgjijijsjijsjljljllllltltlululununuAuBuBuBBBuBFBFBIBIBIEIBIEK#", "..ijkjijkjkjklklkllmlmlmnmnmnmnuxunuxBxBxBxBxBBCECBCECEIECEILIJ#", "..jijijijijsjllljllllltlllununununuAunuAuBBBBBBBBBFBFBIEIEIEIEK#", "..kjijklkjklllkllmlllmnmnunmnuxunuxBxBxBBBBBBCECECECEIEIEILMEMJ#", "..jijsjkjsjljljlllllultlunulununuAuBuBuBBBBBFBFBIBIBIEIBINIEINK#", "..ijkjkjklklkllmlmlmnmnmnmnuxuxuxBxBxBBBxBBCECBCECEIECEILILILMJ#", "..jijijsjllljllllltltlununununuAuBBAuBBBBBFBBBIEFBIEIEIEIEINIMK#", "..klklklllkllmnmlmnmnununuxunuxBxBxBBBBBBCECECECEIEIEILMEMLMMMJ#", "..jkjsjljljlllllululununununuAuBuBuBBBBBFBFBIBIBIEIBINININIMIMK#", "..kjklklkllmlmlmnmnunmnuxuxuxBxBxBBCBCBCECBCECEIECEILMLILMLMLMJ#", "..jsjlllllllllultlununununuAuBBAuBBBBBFBBBIEIEIEIEIEIEINIMMMMMO#", "..klllkllmnmnmnmnununuxunuxBxBxBBBBBBCECECECEIEIEILMLMLMMMMMMPQ#", "..jllljltlllululununununuAuBuBuBBBBBFBFBIBIBIEIEINININIMMMIMRMS#", "..kmkllmnmlmnmnuxunuxuxuxBxBxBBCBCBCECECECEIECEILMLMLMLMLMMPTPQ#", "..llllllllultlununununuAuBBAuBBBBBFBBBIEIEIEIEINIEINIMMMMMMMMMU#", "..lllmnmnmnmnununuxBxuxBBBxBBCBBBCECEIECEIEIEILMLMLMMMMMMPTPTPV#", "..lltltlululununununuAuBuBuBBBBBFBFBIEIBIEIEINININIMMMMMRMRMaMU#", "..lmnmlmnmnuxunuxuxuxBxBxBBCBCBCECECECEILILILMLMLMMMLMMPTPMPTPO#", "..llllultlununununuAuBBBuBBBBBFBFBIEIEIEIEININMNIMMMMMRMMMRTRMU#", "..nmnmnmnununuxBxBxBBBxBBCEBBCECEIEIEIEIEILMLMLMMMMMMPTPTPTPTaV#", "..tlululununuAunuAuBuBuBBBBBFBFBIEIBIEIEINIMIMIMMMMMRMRMaMaMaTU#", "..lmnmnuxunuxBxuxBxBxBBCBCBCECEIECEILILILMLMLMMMMMMPTPMPTPTaTPV#", "..unulununununuAuBBBBBBBBBFBFBIEIEIEIEININMNIMMMMMRMMMRTRMaTaTU#", "..nmnununuxBxBxBBBxBBCEBECECEIEIEILIEILMLMLMMMMMMPTPTPTPTaTaTaV#", "..ulununuAuBuAuBBBuBFBBBIBFBIEIBIEIEINIMIMIMMMMMRMRMaMaMaTaTaWU#", "..nuxunuxBxBxBxBxBBCECBCECEIECEILILILMLMLMMMMMMPTPTPTPTaTPTaovV#", "..ununununuAuBBBBBBBBBFBFBIEIEIEIEINIMMNIMMMMMRMMMaTRMaTaTaWaTU#", "..nunuxBxBxBBBBBBCECECECEIEIEILMEILMMMLMMMMMMPTPTaTPTaTaTaovovV#", "..unuAuBuBuBBBBBFBFBIBIBIEIBIEIEINIMIMIMMMMMRMRMaTaMaTaTaWaWaWU#", "..nuxBxBxBxBxBBCECBCECEIECEILILILMLMLMMPMMMPTPTPTPTaTaTaovovovX#", "..uAunuAuBBBBBBBBBIBFBIEIEIEIEINIMMMIMMMMMRMRMaTRTaTaTaWaWvWavY#", "..owvwvwvwzwzyzyzGzDzHzHDHZHDHJHJKJKJSJOQOQOQOVOVOVOVUVXVYVYXYX#", ".###############################################################" }; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/Makefile.am����������������������������������������������������������0000644�0001750�0001750�00000000737�12214432632�015305� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## automake input file for wrlib AUTOMAKE_OPTIONS = noinst_PROGRAMS = testdraw testgrad testrot view EXTRA_DIST = test.png tile.xpm ballot_box.xpm AM_CPPFLAGS = -I$(srcdir)/.. $(DFLAGS) @HEADER_SEARCH_PATH@ LIBLIST = $(top_builddir)/wrlib/libwraster.la testdraw_SOURCES = testdraw.c testdraw_LDADD = $(LIBLIST) testgrad_SOURCES = testgrad.c testgrad_LDADD = $(LIBLIST) testrot_SOURCES = testrot.c testrot_LDADD = $(LIBLIST) view_SOURCES= view.c view_LDADD = $(LIBLIST) ���������������������������������WindowMaker-0.95.5/wrlib/tests/test.png�������������������������������������������������������������0000644�0001750�0001750�00000006575�12214432632�014744� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR��� ��� ���#ꦷ���gAMA�† 1è–_���bKGDÿÿÿÿ��·~å#�� "IDATxœÝ™_l×uÆó³KrM.åZŽK ¬‡‘�Ê´ÛØÆR‰ËMˆ Y.RÔ2ZÀ[ÉŠ”^qýb,µZÉŠ (0PÀrŠ�¶åB¡Ñ&ˆ\Ó)‰(‰šD~D4•K¸K/ÉÝáüëÃ9w©UU4AßÎ;wîwî½ç|猕¦i Ð|�šíؘ¸}ûË}+Mÿ!3߀ޱæ&}ðÿÁææß¯ßZÓšïf¶ÕFÝ5[ð,@f.3ùrZ–ÆtL01ø7‚ñqÁHÛÿtõÚÑço Z?TÔûìR4ïÙ¢ø×:þOõ~ôô-ï{Dñ`ðkE½ßU4×Ù"¾)s¡Z‚æHfn2@ª6êÙR¶½åtX‰O)Þ¯;¬ÒvoR'¤£¸ÏÚzßÖûÖ½ŠOéÛ´=5ãߣøDûø‘¿OqD Oµc3«ø¨`cÊo”³£µ47eæ�‚ ¸k§$9¦SQ› õÎáÎaÈ—Ó~íõU5€®`ô¯Šó:±OÔ�¶ óE5ÀCJü :Ÿu'¥ú|¢ÿVÇMtÜ?\ý3%ü'ŠÏ*áËJSŸ_™7ÄW&; Õ4Ç2£�ÍÑÌ@ðªÿTÛHtíZ›]m'Ô»6tm€Þrº¨wÿK'Z׉^щ~¤›QCü»bV ¡í–bªí‰^ÇŠ‘Á‡•¸^«JøºŽ•æ‚àr‹øòå®Z SÙ¬ Øà_XèØÖf€xŸNEO¹ÙìfÍ…z÷–î-/§?Õ»§u¢5€®Dp^ÐÓvGÑV—Ë¿£ãèýøG¯W5|ó %¬íË¿\š5Ä—fº«%XYèìhNf†‚ßø÷¿öÿ ü·¯Ý�§uSšSn6»Ys¡ž;’;½åäïÔ�:Ápë-þ'AW¯í½‚Öû:š…äUGÏpxø–qþB‰ëõò¿Ö?7ÄëGsÅZ –ïîú  g€`Ê/�ÇüÃ�áfï@ø%ïã6mWÔ#Ðr?zÊÍf7k.Ô{zzz _Nô¬F‘àªÙª AÏt5€¥HutÝÊa¨ÄÁ†>¿¼¬4u‹-â‹‹=wTK°\é*¬ìí< ÐÌeê7 ñÆÂMÞ@xÎÛÞ¶"õ& ¿nÜ›9åf³›5êù|>½åäIE½tSqEÑU´vªvèhÆ«ëó ½^R\T¬ŽâÕj¾·V‚z=—X©tšodö�ýþ€ÕÉŽa€p̈~î~ špÛ}€c˜‰´Æ ê×{3§Ülv³æB}ÝÛëÞ†|9:§„^TèÊyJÐÖû‰zõð5%þW‚õçkÚïF‹øëÆ«%X<Ñs`y¹«  YÉ‚E¿`uµ£ < šs7DO»¯�ÄN»l] #aL$7ÍøuãÞÌé4›Ý¬¹P_¿}ývè-‡sj�õÒµÿÔ·ÜâqšM%®q~áSÁ«ïâWÏ­¤V‚ÚHï8ÀRµ;Ðhd³�ÁQÿÀêC碇Ý_�D—Ü{¢Sî>€¸Çù ùgûoÛ|€­§Øh7#aL$7ÍøuãÞÌ)7›Ý¬¹Pï?Ôò妤ª*>·WÍU4^üúYÁ+/âWŽ÷·Z‚…Oûî¨?—{ 1“ß+^ |Á{ šw�âß ƒä ûu€ø'Â0™°oÙûh5ÚÍHÉM@3~ݸ7sÊÍf7k.Ô7¾¼ñeè-/NKë?¦æRÂ×î¼xÀ¿¸ãÉZ ®Ÿ½s'@½/·�ÐøeöA€àYÿ@Ê ¢Š[ˆ?p�ˆ¿ì| œ·HÆìQ€t³u yÙÞßf�KϼQë-ѪÚÍHÉM@3~ݸ7sÊÍf7k.Ô‡††† _¾|IïV§?4ħ§‡î«–àÚ»N,º'š[3“�ákò†¨êæâXf|ß>¬³o�$_µNYÃ�é%a”n²æ�Ò «}ðMEûF­Ñj´›‘0&’›€füºqoæ”›ÍnÖ\¨ï~|÷ãÐ[~|!~æÍÝ»j%¨Vóy€àÇþN€¨&#Ä“HFìq€ô¬õ@šÊ ÒŠUà;2ÃtÞ�`Š@úª2zKþ”o¶ù�TÛµò3=-µn´–j7#aL$7ÍøõV¾¨§Ülv³ækÔe„ݻμ ÏKÿ@pR (#8§âg�ìrR°KÏX–<oM�0Ë €UIÅ “ XO¥"¶vñ�ÿÀ?Þ>4‰©ÉLš¢;ÀˆV£ÝŒ„1‘Ü4ã×{3§\6û™7a÷®Zi÷.ùæ­3oí~`è¾éi€»Þ»¶  {pi 3ÙÜ à=)op«QÀqdv%)Ø3É�{>�°¦Ò€5–ŽXaêXiûHŒ4ÑŒ¼•˜šṳ̈+ªÖ[¢Õh7#aL$×€füº¸·éiº¯ZªV!Ÿ—_µ C÷ɽé§?Øxòâ~€;wʹ1[oä�ü’ zžÌÀ­DE�癡3�Ø“IÀ~]Rlë‡ÂÐ~%yºÝ�Z+1¥“‘·S5€ISZj݈VÝF˜H.íâ~Øx²Vºv�î: ÁÁß þNÂ]ïÁµm°ñ¤ô½xàâ/4ç3�}÷Ȉ¹å ÙÁÆ €ïË ¼cá÷�¼çÃ�ÜËÑ�'ŠÝ› àlŽ/�ØIb·×*aSƒ1¹€Qù&1½%?3j݈V£ÝDÂ\9ýß­–®Ÿ…;wÂRº'Å3¸½ò‹jÐ=K3ÒçúY ž™¸òÒ•—ú„xç�‚ {vi ›•ø• Ð1»ºÀ�\[¸û¢S�ΦxÀ>‘lÏÕ´ŠO¦cJF Þ’Ÿ™4Ũu­WÏÁúGj¥…O¡ï9¹hn…Ì$Ä8‰ñ3ÒÖÜ*}ê}ò̧RúòÎÁÕw®¾³~;@4îî�ßó¾k’7s´yÀï‘v|´ú�ïaàŽE%�÷aèLÄí> ú¶¢Éô ·j0&¿3¹Âäg’¦ÜØëÆ«¥ÚôŽËȽ_BöAq‘Þ“Œ€=v’’´…¯A¶œ<S‚ðÇ!wܹ1²îm€¤×®D‘ëÂMJp÷€%èèx_xã"ÖݯE?pÿ-úv›B=»­r£‘¶Z|25˜V)B3rIL«UÈ÷ÖJ‹' ç ,U¡;ÈJéÊ?QÜ<¤gÁzL~éYp«å¥Oð¬<Ó˜îYX„ð=ð¾I/ØU¨Öª5Ñ IbÛ°¦£Óî^€¨îæ�¢Iwøfx¿ ¿�à ·ù€ðKЦÎjÊZu3Å'Sƒ‘RÄâ"ôÜQ-ÕëËÉèêÏÍŠ‹ô}‰ž'AÓq$ö[–üÒTÚâXú„¡<2F£!)WG‡äž®+I¸mÃâ狟÷ô�$»|fß ;N M¹�ÿpp :î‚Û¤Ãán%l ̦Ϊé¯Ñö×ëG!W¬•–+ÐU”}ÑY„f2EŽ‚Db†W”*‚[„äû`„´V¬£»IÜ DEðŽAø=ð+!sš·¯vê•z%w ÍšôÙ �ñ”S�ˆËN Àß\�ˆ÷9?h3Àª:ÁVe]㼩³J¹qiº«¥å»¡ë3XÙ §Å3döˆ‹ô{`õ!è8á à=/êÁy�’u`ß@ôä€Y`P2d‹ô‰?g cV·È˜Á"„{À{¢Óàî…ä3°ï†tPÄúÒìÒl÷€tÀº LÚÃ�ÉÏìG’Möܦh\o}RÐʺ˜—/C×@­´²�}r ²4s©CÐþ•›¶êÃàþBêIî�Ä_çc)±Ú¿}i €U´ö<$àÌC<�îeˆ6€;Ñ�t|«_‘wýÕÁÍAì€CÒö¤`]†åùåù® �é”Uh3€f…É1ûp›´èi¾¥È'…•Iè,TK)È 9 ™a9 ~a W'¡cÂ�<¢KàÞ+2Êù"$çÁ~P¶5 L`k Ò‚$áIœbWÊ1QÞ';Þ—¸M‚;,jÅ-@<N’I°‡õ=X™Z™ê”lpÌ’tX³ÁÿU0 ùˆÔ(Cv´VjŽAfTÌ’…à7àßÁ1ðK¬ðÆ!o¢9p7At Ü}¢'í×åkƒ= é%I´ÓW%ß´žÒÿcŽjß'ÖÐݧcATÒw¬¡Xæ—Á)Aò3°]Ãt ¬QhŒ5Ʋ%€ô‚$þé¸5Všf¶)ñ óq4sA>&fçþolnþýúý¡õonù4–ÙÖ|·6j™d¶ù.d¶‰nÆÆdoÓþGqÿð?eØìí۵ó����IEND®B`‚�����������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/.deps/���������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434624�014336� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/.deps/testdraw.Po����������������������������������������������������0000644�0001750�0001750�00000000010�12214434624�016402� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# dummy ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/.deps/view.Po��������������������������������������������������������0000644�0001750�0001750�00000000010�12214434624�015517� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# dummy ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/.deps/testgrad.Po����������������������������������������������������0000644�0001750�0001750�00000000010�12214434624�016362� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# dummy ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/.deps/testrot.Po�����������������������������������������������������0000644�0001750�0001750�00000000010�12214434624�016251� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# dummy ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/ballot_box.xpm�������������������������������������������������������0000644�0001750�0001750�00000044152�12214432632�016123� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * ballot_box_xpm[] = { "48 48 855 2", " c None", ". c #B8B8B8", "+ c #A0A0A0", "@ c #4A2511", "# c #A7A7A7", "$ c #EDEDED", "% c #EBE8E7", "& c #A6948D", "* c #904B22", "= c #B4622D", "- c #9F5427", "; c #87431F", "> c #4B2410", ", c #BFBFBF", "' c #464646", ") c #818181", "! c #D4D4D4", "~ c #FEFEFE", "{ c #E79860", "] c #E38848", "^ c #F4E2D5", "/ c #F0E7E2", "( c #C1804A", "_ c #9B562B", ": c #7D3E1C", "< c #8A8A8A", "[ c #ECDEDF", "} c #B68183", "| c #E2E2E2", "1 c #6A6A6A", "2 c #686868", "3 c #C6C6C6", "4 c #F7F7F7", "5 c #F5D6C1", "6 c #E7C9B3", "7 c #D1D1D1", "8 c #FBFBFB", "9 c #E7A966", "0 c #E7AC69", "a c #D79A5D", "b c #B77642", "c c #9B562C", "d c #743819", "e c #3E1C0C", "f c #717171", "g c #B4B4B4", "h c #C1A7A8", "i c #B37F80", "j c #BC8E90", "k c #797979", "l c #343434", "m c #E0E0E0", "n c #DABFC0", "o c #924345", "p c #E3CFCF", "q c #A46264", "r c #D1B0B1", "s c #91857C", "t c #ABABAB", "u c #EADBCA", "v c #C98D54", "w c #E7AA67", "x c #E8AC69", "y c #E8AD6B", "z c #EAAF6C", "A c #D99E61", "B c #AD6E3E", "C c #884723", "D c #663015", "E c #503C33", "F c #565656", "G c #7E7878", "H c #978383", "I c #E8E8E8", "J c #DBDBDB", "K c #5F5F5F", "L c #444444", "M c #343130", "N c #EEEEEE", "O c #BF9192", "P c #C8A0A1", "Q c #9B5254", "R c #DDDDDD", "S c #BDBDBD", "T c #646464", "U c #CEC3BA", "V c #8D5730", "W c #E6A865", "X c #E2A466", "Y c #EAB270", "Z c #ECB472", "` c #BC8450", " . c #9A5C32", ".. c #763E20", "+. c #4F3120", "@. c #3A312C", "#. c #5D5D5D", "$. c #999999", "%. c #2C2C2C", "&. c #834D28", "*. c #3D3834", "=. c #C0C0C0", "-. c #E1E1E1", ";. c #414141", ">. c #BBBBBB", ",. c #3B1407", "'. c #2F2113", "). c #764A2A", "!. c #DFA061", "~. c #E8AC6A", "{. c #E9AE6B", "]. c #EAB06D", "^. c #EBB270", "/. c #EDB673", "(. c #D9A368", "_. c #B17848", ":. c #8A4B27", "<. c #470C06", "[. c #4B220E", "}. c #9D562A", "|. c #CB7F43", "1. c #D98D4C", "2. c #AF7B4F", "3. c #4F4F4F", "4. c #D3C0C0", "5. c #AB7D7E", "6. c #C7C7C7", "7. c #989898", "8. c #535353", "9. c #201714", "0. c #8E8E8E", "a. c #413531", "b. c #B07042", "c. c #E7AB68", "d. c #EAB77D", "e. c #ECB87E", "f. c #EAB06E", "g. c #EDB674", "h. c #EEB877", "i. c #F2C17E", "j. c #D0B17B", "k. c #693E29", "l. c #34160A", "m. c #854520", "n. c #BB6F38", "o. c #DC965F", "p. c #E4AE81", "q. c #F4E1D1", "r. c #C4C4C4", "s. c #333333", "t. c #929292", "u. c #DACDCD", "v. c #A47071", "w. c #7A7A7A", "x. c #212121", "y. c #252525", "z. c #626262", "A. c #CFD8D4", "B. c #F4DABD", "C. c #E9AF6C", "D. c #EAB16F", "E. c #EBB371", "F. c #EDB875", "G. c #F8D693", "H. c #FCDD9A", "I. c #E19151", "J. c #3A1407", "K. c #6B3316", "L. c #B16532", "M. c #D07F41", "N. c #DC9A67", "O. c #AEAEAE", "P. c #9E9E9E", "Q. c #9C9C9C", "R. c #2F2F2F", "S. c #8F8F8F", "T. c #B0B0B0", "U. c #9A9A9A", "V. c #6D6D6D", "W. c #363636", "X. c #0F0F0F", "Y. c #2D2D2D", "Z. c #757575", "`. c #A9ACAA", " + c #91A59C", ".+ c #C0CBC6", "++ c #637F72", "@+ c #F0CAA1", "#+ c #EEBB78", "$+ c #FADA98", "%+ c #F8D18E", "&+ c #E58D48", "*+ c #CB6830", "=+ c #502510", "-+ c #9B5328", ";+ c #C9773B", ">+ c #D27F40", ",+ c #D38141", "'+ c #D48344", ")+ c #BF8253", "!+ c #85532C", "~+ c #361A0C", "{+ c #686260", "]+ c #CFCFCF", "^+ c #5A5A5A", "/+ c #1A1A1A", "(+ c #5E5E5E", "_+ c #5C5C5C", ":+ c #3A3A3A", "<+ c #0D0D0D", "[+ c #3E3E3E", "}+ c #828282", "|+ c #C4C7C6", "1+ c #DFE4E2", "2+ c #15402C", "3+ c #A1B2AA", "4+ c #F6E2CD", "5+ c #EBB882", "6+ c #EFBE7C", "7+ c #FCE09D", "8+ c #F2BC79", "9+ c #D77334", "0+ c #DF7D3A", "a+ c #E07E3B", "b+ c #8B4821", "c+ c #BF6C34", "d+ c #CE7A3D", "e+ c #D07C3E", "f+ c #D17E3F", "g+ c #CA7A3E", "h+ c #864722", "i+ c #511F0C", "j+ c #491909", "k+ c #4B2211", "l+ c #6C6360", "m+ c #323232", "n+ c #131313", "o+ c #191919", "p+ c #393939", "q+ c #C9C9C9", "r+ c #728C80", "s+ c #967568", "t+ c #66331A", "u+ c #E6A965", "v+ c #F4CB88", "w+ c #FEE4A1", "x+ c #E89F5D", "y+ c #DC7736", "z+ c #DD7937", "A+ c #DE7A37", "B+ c #D77536", "C+ c #AF5F2C", "D+ c #E2813C", "E+ c #D77C3B", "F+ c #CD783C", "G+ c #CF7A3D", "H+ c #CA793D", "I+ c #B06733", "J+ c #B26835", "K+ c #815636", "L+ c #1D1715", "M+ c #1B0D08", "N+ c #706F6F", "O+ c #939393", "P+ c #050505", "Q+ c #040404", "R+ c #000000", "S+ c #0D0401", "T+ c #1F0A03", "U+ c #444140", "V+ c #F7E6D6", "W+ c #7A492D", "X+ c #A96F3F", "Y+ c #E6A966", "Z+ c #F8D491", "`+ c #F9D593", " @ c #DF8748", ".@ c #DA7434", "+@ c #DB7635", "@@ c #DB7736", "#@ c #D47234", "$@ c #793E24", "%@ c #361F1A", "&@ c #4D1C0A", "*@ c #783919", "=@ c #D87A38", "-@ c #D77B3B", ";@ c #CD773B", ">@ c #D07D3E", ",@ c #D27E40", "'@ c #D38041", ")@ c #D48243", "!@ c #D7894A", "~@ c #B28E5F", "{@ c #2A261D", "]@ c #030100", "^@ c #222121", "/@ c #171717", "(@ c #1B0F0B", "_@ c #441708", ":@ c #57240E", "<@ c #4D4743", "[@ c #FCF7F3", "}@ c #E5AA70", "|@ c #E2A05E", "1@ c #E8AE6B", "2@ c #FADC99", "3@ c #F3C685", "4@ c #D87638", "5@ c #D77132", "6@ c #D87233", "7@ c #D97334", "8@ c #BF642D", "9@ c #4F1F0D", "0@ c #3A3432", "a@ c #555555", "b@ c #C1C1C1", "c@ c #120000", "d@ c #411608", "e@ c #4D1B09", "f@ c #5C260F", "g@ c #A85A28", "h@ c #D77A3A", "i@ c #CC763A", "j@ c #CE793C", "k@ c #CF7B3D", "l@ c #D07D3F", "m@ c #D78849", "n@ c #FBDD9B", "o@ c #5F553C", "p@ c #1F1F1F", "q@ c #7D5737", "r@ c #D79154", "s@ c #DD9352", "t@ c #804724", "u@ c #733F21", "v@ c #E3A66E", "w@ c #E19C5B", "x@ c #ECB876", "y@ c #EBAE6F", "z@ c #D46B30", "A@ c #D56C30", "B@ c #D66E31", "C@ c #D77032", "D@ c #994B20", "E@ c #46190A", "F@ c #312825", "G@ c #6C6C6C", "H@ c #D2D2D2", "I@ c #B68F90", "J@ c #D7BDBE", "K@ c #060200", "L@ c #331106", "M@ c #8B3712", "N@ c #68270D", "O@ c #59240E", "P@ c #A35829", "Q@ c #CF7B3E", "R@ c #D17D3F", "S@ c #F1C584", "T@ c #7F7250", "U@ c #0D0804", "V@ c #5E3C20", "W@ c #B57642", "X@ c #DA8E4D", "Y@ c #DB8F4F", "Z@ c #DC9150", "`@ c #804725", " # c #D58F51", ".# c #E19D5C", "+# c #F2C886", "@# c #FBDC99", "## c #DD8D51", "$# c #D1682E", "%# c #D2692E", "&# c #D36B2F", "*# c #CC672E", "=# c #7D3918", "-# c #4D1A09", ";# c #290E05", "># c #321A11", ",# c #3B3B3B", "'# c #3D3D3D", ")# c #1E0A03", "!# c #903A13", "~# c #873511", "{# c #63250C", "]# c #693015", "^# c #AC5F2E", "/# c #CD783B", "(# c #D38142", "_# c #DD9656", ":# c #D68647", "<# c #D88848", "[# c #D88A49", "}# c #D98C4C", "|# c #DC9151", "1# c #DD9453", "2# c #E29F5E", "3# c #F8D592", "4# c #F4CB8A", "5# c #D67B41", "6# c #CD642C", "7# c #CF662D", "8# c #D0672E", "9# c #C15F2A", "0# c #632810", "a# c #7D3817", "b# c #C4642C", "c# c #873F1A", "d# c #7C2B0F", "e# c #8D401A", "f# c #290801", "g# c #803310", "h# c #823311", "i# c #5A210B", "j# c #6A3015", "k# c #BC6C35", "l# c #D37F40", "m# c #D58344", "n# c #D58445", "o# c #D88948", "p# c #D88B4A", "q# c #DA8F4E", "r# c #DB904F", "s# c #E4A665", "t# c #FCDF9C", "u# c #EAB274", "v# c #CD6831", "w# c #CB612A", "x# c #CC632B", "y# c #AD5324", "z# c #511D0B", "A# c #763013", "B# c #CB642C", "C# c #C9612B", "D# c #AC4A1E", "E# c #9D4F22", "F# c #1B0500", "G# c #180902", "H# c #50200A", "I# c #7E3110", "J# c #7B3D1C", "K# c #BE6E36", "L# c #D58546", "M# c #D78748", "N# c #D88949", "O# c #D98B4A", "P# c #ECB977", "Q# c #DE975C", "R# c #C75D27", "S# c #C85F28", "T# c #CA6029", "U# c #93421C", "V# c #622911", "W# c #943412", "X# c #BE5825", "Y# c #D56E31", "Z# c #A55525", "`# c #310802", " $ c #240601", ".$ c #150500", "+$ c #200C03", "@$ c #702D0E", "#$ c #752D0F", "$$ c #511D0A", "%$ c #82401D", "&$ c #C8773B", "*$ c #D68546", "=$ c #FADB99", "-$ c #D27C44", ";$ c #C55B25", ">$ c #C65C26", ",$ c #C05B26", "'$ c #793315", ")$ c #060606", "!$ c #2E2E2E", "~$ c #EEE1DB", "{$ c #F8EBE4", "]$ c #D5723B", "^$ c #A45425", "/$ c #260D04", "($ c #2C0F05", "_$ c #0C0501", ":$ c #070402", "<$ c #3C1807", "[$ c #883611", "}$ c #8D4B24", "|$ c #CA783C", "1$ c #D58444", "2$ c #DD9757", "3$ c #F6D290", "4$ c #F2C989", "5$ c #C55F2B", "6$ c #C25824", "7$ c #C35925", "8$ c #AF4F21", "9$ c #60250E", "0$ c #1C0A04", "a$ c #0A0A0A", "b$ c #87595A", "c$ c #F2D8C9", "d$ c #D0672D", "e$ c #A35224", "f$ c #0D0200", "g$ c #0F0501", "h$ c #282828", "i$ c #070707", "j$ c #0D0501", "k$ c #56220B", "l$ c #6C290E", "m$ c #9B5126", "n$ c #E4A766", "o$ c #FBDE9B", "p$ c #E5AD71", "q$ c #BE5322", "r$ c #BF5523", "s$ c #C15623", "t$ c #9D451C", "u$ c #4C1B0A", "v$ c #100704", "w$ c #3F2C2C", "x$ c #AB9898", "y$ c #EAE3E3", "z$ c #F7EAE3", "A$ c #CE662D", "B$ c #A25123", "C$ c #878787", "D$ c #7F7F7F", "E$ c #DFDFDF", "F$ c #425F51", "G$ c #3E4F47", "H$ c #121212", "I$ c #1F0C03", "J$ c #58210D", "K$ c #DEB67D", "L$ c #D38750", "M$ c #BB5020", "N$ c #BC5221", "O$ c #853816", "P$ c #3F1507", "Q$ c #0A0402", "R$ c #0E0E0E", "S$ c #616161", "T$ c #B69C9D", "U$ c #893336", "V$ c #DB926C", "W$ c #7C3617", "X$ c #EAEDEB", "Y$ c #ACB7B2", "Z$ c #8E9994", "`$ c #424E48", " % c #595959", ".% c #130602", "+% c #100601", "@% c #401907", "#% c #9F411D", "$% c #B84D1E", "%% c #B94F1F", "&% c #B54E20", "*% c #6D2B10", "=% c #160702", "-% c #554338", ";% c #787878", ">% c #382B24", ",% c #97481F", "'% c #C55F29", ")% c #723114", "!% c #230B02", "~% c #302A28", "{% c #C2C0BE", "]% c #EEF1F0", "^% c #A1AFA8", "/% c #C4CAC7", "(% c #585858", "_% c #280D05", ":% c #361207", "<% c #401708", "[% c #280F04", "}% c #551F09", "|% c #9A3E18", "1% c #B74C1D", "2% c #A4451B", "3% c #5E230D", "4% c #742E12", "5% c #963714", "6% c #883111", "7% c #77290E", "8% c #983814", "9% c #9A3814", "0% c #91421B", "a% c #C96029", "b% c #C25C28", "c% c #5E250E", "d% c #1F0A02", "e% c #0A0200", "f% c #311205", "g% c #B8A8A2", "h% c #82998E", "i% c #CECECE", "j% c #140602", "k% c #3F1608", "l% c #712B0F", "m% c #833311", "n% c #57210B", "o% c #170802", "p% c #250C03", "q% c #6B250C", "r% c #993D17", "s% c #B54A1D", "t% c #A2421A", "u% c #873615", "v% c #9D411A", "w% c #B95020", "x% c #BB5121", "y% c #A9441A", "z% c #9C3A15", "A% c #C05723", "B% c #C45B25", "C% c #C75C27", "D% c #B05122", "E% c #55200C", "F% c #160701", "G% c #9E8075", "H% c #BEBEBE", "I% c #371307", "J% c #6A280D", "K% c #813211", "L% c #803111", "M% c #7F3111", "N% c #7E3011", "O% c #762D0F", "P% c #451A08", "Q% c #360B03", "R% c #7C240B", "S% c #481808", "T% c #983C17", "U% c #782E11", "V% c #B74D1E", "W% c #BD5322", "X% c #B44C1E", "Y% c #B84F20", "Z% c #C35924", "`% c #C45A25", " & c #AE4F20", ".& c #461909", "+& c #130600", "@& c #2D1105", "#& c #66260D", "$& c #703D2A", "%& c #8F7165", "&& c #6E341C", "*& c #7D3010", "=& c #7C3010", "-& c #7B2F10", ";& c #7A2F10", ">& c #792E10", ",& c #782E10", "'& c #6A280E", ")& c #2F1205", "!& c #331206", "~& c #541E0B", "{& c #843313", "]& c #AE451A", "^& c #B1471B", "/& c #BF5422", "(& c #9C451C", "_& c #867872", ":& c #A68574", "<& c #3F1B0F", "[& c #0C0300", "}& c #2C1005", "|& c #501D0A", "1& c #772D10", "2& c #752C0F", "3& c #742C0F", "4& c #6F2A0E", "5& c #722B0F", "6& c #511E0A", "7& c #6E270E", "8& c #A93F18", "9& c #B0461B", "0& c #B4491C", "a& c #B54A1C", "b& c #BC5121", "c& c #9A431B", "d& c #3B3431", "e& c #E9E9E9", "f& c #838181", "g& c #260400", "h& c #6B280E", "i& c #732B0F", "j& c #712A0F", "k& c #702A0F", "l& c #6F2A0F", "m& c #6E290E", "n& c #5C220C", "o& c #3D1407", "p& c #832F11", "q& c #AD4419", "r& c #AF451A", "s& c #B2481B", "t& c #B84E1F", "u& c #8C3C18", "v& c #CACACA", "w& c #454545", "x& c #371506", "y& c #702A0E", "z& c #6D290E", "A& c #6C280E", "B& c #6A270E", "C& c #69270E", "D& c #3E1507", "E& c #8B3413", "F& c #AE431A", "G& c #B1461B", "H& c #B5491C", "I& c #893816", "J& c #452B1F", "K& c #A3A3A3", "L& c #DEDEE1", "M& c #E6E6E6", "N& c #0F0000", "O& c #090300", "P& c #160801", "Q& c #531F0A", "R& c #461A09", "S& c #545454", "T& c #724C3D", "U& c #68260E", "V& c #67260D", "W& c #66250D", "X& c #65250D", "Y& c #3D1507", "Z& c #863213", "`& c #AC4119", " * c #B0461A", ".* c #863514", "+* c #53382D", "@* c #959595", "#* c #C6C6C9", "$* c #4D4F60", "%* c #7F808D", "&* c #404154", "** c #CECED3", "=* c #BEBFC5", "-* c #040100", ";* c #0E0500", ">* c #270E04", ",* c #382F2C", "'* c #6B4638", ")* c #64250D", "!* c #63240D", "~* c #62230D", "{* c #401608", "]* c #722A0F", "^* c #AB4018", "/* c #AD421A", "(* c #AF441A", "_* c #7E3B20", ":* c #D3D1D1", "<* c #ECECEC", "[* c #5F6170", "}* c #EEEEEF", "|* c #303246", "1* c #969696", "2* c #CCCCCC", "3* c #5B3324", "4* c #61230C", "5* c #60230C", "6* c #5F230C", "7* c #5E220C", "8* c #70290F", "9* c #AA3F18", "0* c #973916", "a* c #301006", "b* c #312117", "c* c #31302F", "d* c #CDCDCD", "e* c #8F909B", "f* c #1E1E1E", "g* c #D2D2D1", "h* c #696969", "i* c #583224", "j* c #5E220B", "k* c #5D220B", "l* c #5C210B", "m* c #6E280F", "n* c #A83E17", "o* c #A43E18", "p* c #561E0C", "q* c #2B0E05", "r* c #505162", "s* c #9F9FA9", "t* c #BCBDC3", "u* c #D6D6D6", "v* c #9D9D9D", "w* c #737373", "x* c #694F45", "y* c #5B200B", "z* c #5A200B", "A* c #591F0B", "B* c #581F0A", "C* c #381306", "D* c #6D270E", "E* c #A63D17", "F* c #993915", "G* c #240500", "H* c #AEAFB7", "I* c #F0F0F0", "J* c #575757", "K* c #CCCCD1", "L* c #D8D7D7", "M* c #A49590", "N* c #561E0A", "O* c #551D0A", "P* c #351206", "Q* c #6B260E", "R* c #A53C16", "S* c #903514", "T* c #8E8E96", "U* c #9B9BA0", "V* c #F5F5F5", "W* c #342721", "X* c #290E04", "Y* c #4F1B09", "Z* c #521C0A", "`* c #511C09", " = c #69250D", ".= c #A33B15", "+= c #822F11", "@= c #1D0200", "#= c #838383", "$= c #6F707E", "%= c #030000", "&= c #0B0400", "*= c #140701", "== c #3B1406", "-= c #4E1A09", ";= c #311005", ">= c #68240C", ",= c #802D10", "'= c #050100", ")= c #919191", "!= c #010000", "~= c #0A0300", "{= c #1D0A02", "]= c #270D04", "^= c #351005", "/= c #100000", "(= c #111111", "_= c #0E0501", ":= c #0E0400", "<= c #070000", "[= c #909090", " ", " . + @ ", " # $ % & * = - ; > , # ' ", " ) ! ~ ~ ~ ~ { ] ^ / ( _ : > < [ } | + 1 1 ' ' ", " 2 3 4 ~ ~ ~ ~ ~ 5 6 7 8 9 0 a b c d e f g h i j ~ ~ 4 3 k ", " l m ~ n o p q r ~ 4 s t u v w x y z A B C D E F G H 7 I J K L ", " M N O P Q [ ~ I R S T U V W w x y X Y Z ` ...+.@.#.$.%. ", " D &.*.N p r ~ I J =.-.;.>.,.'.).!.~.{.].^.Z /.(._.:...<. ", " [.}.|.1.2.3.~ [ 4.5.7 6.7.8.f 9.0.a.b.c.d.e.f.^.Z g.h.i.j.k. ", " l.m.n.o.p.q.r.s.t.u.v.R S w.L x.y.z.! ~ ~ A.~ B.C.D.E.F.G.H.I.J. ", " K.L.M.N.O.P.N 4 Q.R.S.T.U.V.W.X.Y.Z.`. +.+++ +~ @+y z #+$+%+&+*+J. ", " =+-+;+>+,+'+)+!+~+{+]+^+/+(+_+:+<+[+}+|+++1+2+3+4+5+w x 6+7+8+9+0+a+J. ", " l.b+c+d+e+f+>+g+h+i+j+k+l+r.m+n+l o+p+(+q+~ ~ r+A.s+j+t+u+v+w+x+y+z+A+B+J. ", " K.C+D+E+F+G+e+f+H+I+J+K+L+M+N+O+P+Q+X.R+S+T+U+N ~ V+W+X+Y+Z+`+ @.@+@@@#@$@%@ ' ' ' ", " &@*@=@D+-@;@F+G+>@,@'@)@!@~@{@]@^@/@Q+R+(@_@j+:@<@[@}@|@1@2@3@4@5@6@7@8@9@0@a@b@| | t.", " c@d@e@f@g@h@i@;@j@k@l@,@'@m@n@o@R+]@p@X.q@r@s@t@j+u@v@w@x@w+y@z@A@B@C@D@E@F@G@H@I@J@| ' ", " K@L@M@N@j+O@P@i@;@j@Q@R@,@'@m@S@T@U@V@W@X@Y@Z@s@`@ #.#+#@###$#%#&#*#=#-#;#>#F ,#'#R+x. ", " K@)#!#!#~#{#j+]#^#/#j@e+f+>+(#'+_#:#<#[#}#X@Y@|#1#2#3#4#5#6#7#8#9#0#a#b#c#d#e#L@ ", " K@f#g#!#!#!#h#i#j+j#k#d+e+f+l#(#m#n#:#o#p#1.q#r#s#t#u#v#w#x#6#y#z#A#B#C#B@D#E#J. ", " c@F#G#H#!#!#!#!#I#i#j+J#K#e+f+'@)@m#L#M#N#O#1.P#w+Q#R#S#T#w#U#,.V#W#X#&#A@Y#Z#J. ", " `# $.$+$@$!#!#!#!##$$$j+%$&$,@'@)@m#*$M#q#+#=$-$;$>$R#,$'$;#)$!$~${$]$&#A@^$J. ", " `#/$($_$:$<$[$!#!#!#!##$$$i+}$|$'@)@1$2$3$4$5$6$7$;$8$9$0$a$W.b$N c$d$%#&#e$J. ", " f$g$_+#.h$i$j$k$!#!#!#!#M@l$e@i+m$R@n$o$p$q$r$s$6$t$u$v$X.w$x$y$z$6#A$d$%#B$J. ", " C$D$0.N E$F$G$p+n+H$I$@$!#!#!#!#M@l$j+J$K$L$M$N$q$r$O$P$Q$R$S$T$U$~ V$x#6#A$d$W$($ ", " k . 4 ~ X$Y$Z$`$ %L .%+%@%[$!#!#!#!#~#j+#%$%%%M$&%*%P$=%,.-%F ;%D$>%,%w#x#'%)%!% ", " ~%{%]%++^%/%(%_%:%<%[%G#}%!#!#!#!#j+|%1%$%2%3%4%5%6%7%W#8%9%0%R#S#a%b%c%d% ", " e%f%g%~ h%i%j%:%k%l%m%n%o%p%q%!#!#j+r%s%t%u%v%M$w%x%y%8%z%A%B%>$C%D%E%F% ", " e%/$:%G%1+H%I%J%K%L%M%N%O%P%+%Q%R%S%T%U%U%1%V%%%M$N$W%X%Y%6$Z%`% &.&+& ", " K@@&#&J.$&%&&&N%*&=&-&;&>&,&'&)&.$!&~&{&]&^&1%V%%%M$N$W%/&(&_&:&<&[& ", " K@}&M%l%|&|&#&;&>&,&1&O%2&3&4&5&6&L@7&8&9&0&a&1%V%%%M$b&c&d&T.e&f&' ", " g&-&;&>&3&h&O%2&3&i&5&j&k&l&m&n&o&p&q&r&s&0&a&1%V%t&u&d&# E$~ R v&< S$w& ", " +%x&y&2&3&i&h&j&k&l&m&z&A&h&B&C&D&E&F&r&G&s&0&H&I&J&p+K&-.8 L&~ ~ ~ M&| 3 . $.1 ", " N&O&P&Q&k&R&S&T&A&h&B&C&U&V&W&X&Y&Z&`&F&r& *.*+*S&@*q+#*$*%*&***=*~ ~ ~ ~ ~ ~ S. ", " R+R+-*;*>*,*@*}+'*V&W&X&)*!*!*~*{*]*^*`&/*(*_*m+. :*<*[*%*&*=*&*L&}*|*~ ~ ~ ! ", " R+R+R+f$1*2*O+Z.3*!*~*4*5*6*7*Y&8*9*^*`&0*:%a*b*c*d*=*e*=*&*}*}*&***~ ~ 4 f ", " R+R+f*8 g*2*7.h*i*7*j*k*l*l*J.m*n*9*^*o*p*q*[&R+R+D$~ r*}*~ [*s*~ ~ ~ , ", " R+f*i%L&t*-.u*v*w*x*y*z*A*B*C*D*E*n*9*F*_@G*R+R+R+R+!$i%~ e*e*H*~ ~ I*J* ", " R+R+R+R$3.0.~ ~ }*&*K*-.u*L*M*-#N*O*O*P*Q*R*E*S*_@[& R+R+R+R+D$~ %*s*~ 4 $. ", " l | ~ ~ ~ ~ ~ ~ T*%*L&&*U*-.V*W*X*Y*Z*`*L@ =.=+=J.@= R+R+R+!$i%~ e&$. ", " i$#=I*~ e***~ =***=*[*H*$=8 K&%=&=*===-=;=>=,=L@'= R+R+R$)=w. ", " R+o+$.4 }*$=s*L&&*[*s*s*~ ! l R+R+!=~={=]=C*^=/= R+R+(= ", " R+R+l # $ ~ s*$=L&s*L&~ e&K R+R+R+R+_=:=<= ", " R+R+s.[=e&~ **e*~ ~ | ) R+R+R+ ", " R+R+i$3.! ~ d*4 , ' ", " R+R+s.# J ) o+ ", " R+R+X.'# ", " ", " "}; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/testgrad.c�����������������������������������������������������������0000644�0001750�0001750�00000007131�12214432632�015225� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #include <X11/Xlib.h> #include "wraster.h" #include <stdio.h> #include <stdlib.h> #include <string.h> Display *dpy; Window win; RContext *ctx; RImage *imgh, *imgv, *imgd; Pixmap pix; char *ProgName; void print_help() { printf("usage: %s [-options] color1 [color2 ...]\n", ProgName); puts("options:"); puts(" -m match colors"); puts(" -d dither colors (default)"); puts(" -c <cpc> colors per channel to use"); puts(" -v <vis-id> visual id to use"); } int main(int argc, char **argv) { RContextAttributes attr; RColor **colors = NULL; int i, rmode = RDitheredRendering, ncolors = 0, cpc = 4; char **color_name; XColor color; XSetWindowAttributes val; int visualID = -1; ProgName = strrchr(argv[0], '/'); if (!ProgName) ProgName = argv[0]; else ProgName++; color_name = (char **)malloc(sizeof(char *) * argc); if (color_name == NULL) { fprintf(stderr, "Cannot allocate memory!\n"); exit(1); } if (argc > 1) { for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-m") == 0) { rmode = RBestMatchRendering; } else if (strcmp(argv[i], "-d") == 0) { rmode = RDitheredRendering; } else if (strcmp(argv[i], "-c") == 0) { i++; if (i >= argc) { fprintf(stderr, "too few arguments for %s\n", argv[i - 1]); exit(0); } if (sscanf(argv[i], "%i", &cpc) != 1) { fprintf(stderr, "bad value for colors per channel: \"%s\"\n", argv[i]); exit(0); } } else if (strcmp(argv[i], "-v") == 0) { i++; if (i >= argc) { fprintf(stderr, "too few arguments for %s\n", argv[i - 1]); exit(0); } if (sscanf(argv[i], "%i", &visualID) != 1) { fprintf(stderr, "bad value for visual ID: \"%s\"\n", argv[i]); exit(0); } } else if (argv[i][0] != '-') { color_name[ncolors++] = argv[i]; } else { print_help(); exit(1); } } } if (ncolors == 0) { print_help(); exit(1); } dpy = XOpenDisplay(""); if (!dpy) { puts("cant open display"); exit(1); } attr.flags = RC_RenderMode | RC_ColorsPerChannel; attr.render_mode = rmode; attr.colors_per_channel = cpc; if (visualID >= 0) { attr.flags |= RC_VisualID; attr.visualid = visualID; } ctx = RCreateContext(dpy, DefaultScreen(dpy), &attr); if (!ctx) { printf("could not initialize graphics library context: %s\n", RMessageForError(RErrorCode)); exit(1); } colors = malloc(sizeof(RColor *) * (ncolors + 1)); for (i = 0; i < ncolors; i++) { if (!XParseColor(dpy, ctx->cmap, color_name[i], &color)) { printf("could not parse color \"%s\"\n", color_name[i]); exit(1); } else { colors[i] = malloc(sizeof(RColor)); colors[i]->red = color.red >> 8; colors[i]->green = color.green >> 8; colors[i]->blue = color.blue >> 8; printf("0x%02x%02x%02x\n", colors[i]->red, colors[i]->green, colors[i]->blue); } } colors[i] = NULL; val.background_pixel = ctx->black; val.colormap = ctx->cmap; val.backing_store = Always; win = XCreateWindow(dpy, DefaultRootWindow(dpy), 10, 10, 750, 250, 0, ctx->depth, InputOutput, ctx->visual, CWColormap | CWBackPixel | CWBackingStore, &val); XMapRaised(dpy, win); XFlush(dpy); imgh = RRenderMultiGradient(250, 250, colors, RGRD_HORIZONTAL); imgv = RRenderMultiGradient(250, 250, colors, RGRD_VERTICAL); imgd = RRenderMultiGradient(250, 250, colors, RGRD_DIAGONAL); RConvertImage(ctx, imgh, &pix); XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, 250, 250, 0, 0); RConvertImage(ctx, imgv, &pix); XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, 250, 250, 250, 0); RConvertImage(ctx, imgd, &pix); XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, 250, 250, 500, 0); XFlush(dpy); getchar(); return 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/Makefile�������������������������������������������������������������0000644�0001750�0001750�00000041160�12214434623�014706� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # wrlib/tests/Makefile. Generated from Makefile.in by configure. # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. pkgdatadir = $(datadir)/WindowMaker pkgincludedir = $(includedir)/WindowMaker pkglibdir = $(libdir)/WindowMaker pkglibexecdir = $(libexecdir)/WindowMaker am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = i686-pc-linux-gnu host_triplet = i686-pc-linux-gnu noinst_PROGRAMS = testdraw$(EXEEXT) testgrad$(EXEEXT) testrot$(EXEEXT) \ view$(EXEEXT) subdir = wrlib/tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_testdraw_OBJECTS = testdraw.$(OBJEXT) testdraw_OBJECTS = $(am_testdraw_OBJECTS) testdraw_DEPENDENCIES = $(LIBLIST) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent am_testgrad_OBJECTS = testgrad.$(OBJEXT) testgrad_OBJECTS = $(am_testgrad_OBJECTS) testgrad_DEPENDENCIES = $(LIBLIST) am_testrot_OBJECTS = testrot.$(OBJEXT) testrot_OBJECTS = $(am_testrot_OBJECTS) testrot_DEPENDENCIES = $(LIBLIST) am_view_OBJECTS = view.$(OBJEXT) view_OBJECTS = $(am_view_OBJECTS) view_DEPENDENCIES = $(LIBLIST) DEFAULT_INCLUDES = -I. -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(testdraw_SOURCES) $(testgrad_SOURCES) $(testrot_SOURCES) \ $(view_SOURCES) DIST_SOURCES = $(testdraw_SOURCES) $(testgrad_SOURCES) \ $(testrot_SOURCES) $(view_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = ${SHELL} /home/jaqque/wmaker/missing --run aclocal-1.11 AMTAR = ${SHELL} /home/jaqque/wmaker/missing --run tar AM_DEFAULT_VERBOSITY = 1 AR = ar AUTOCONF = ${SHELL} /home/jaqque/wmaker/missing --run autoconf AUTOHEADER = ${SHELL} /home/jaqque/wmaker/missing --run autoheader AUTOMAKE = ${SHELL} /home/jaqque/wmaker/missing --run automake-1.11 AWK = mawk CC = gcc CCDEPMODE = depmode=gcc3 CFLAGS = -g -O2 -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-deprecated -Wno-deprecated-declarations CPP = gcc -E CPPFLAGS = -D_XOPEN_SOURCE=600 CYGPATH_W = echo DEFS = -DHAVE_CONFIG_H DEPDIR = .deps DSYMUTIL = DUMPBIN = ECHO_C = ECHO_N = -n ECHO_T = EGREP = /bin/grep -E EXEEXT = FCLIBS = -lfontconfig FGREP = /bin/grep -F GFXLIBS = GREP = /bin/grep HEADER_SEARCH_PATH = -I${includedir} ICONEXT = xpm INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} INSTALL_STRIP_PROGRAM = $(install_sh) -c -s INTLIBS = LD = /usr/bin/ld LDFLAGS = LIBBSD = LIBM = -lm LIBOBJS = LIBRARY_SEARCH_PATH = -L${libdir} LIBS = LIBTOOL = $(SHELL) $(top_builddir)/libtool LIBXINERAMA = LIBXMU = -lXmu LIBXRANDR = LIPO = LN_S = ln -s LTLIBOBJS = MAKEINFO = ${SHELL} /home/jaqque/wmaker/missing --run makeinfo MKDIR_P = /bin/mkdir -p MOFILES = NLSDIR = $(prefix)/lib/locale NM = /usr/bin/nm -B NMEDIT = OBJDUMP = objdump OBJEXT = o OTOOL = OTOOL64 = PACKAGE = WindowMaker PACKAGE_BUGREPORT = PACKAGE_NAME = WindowMaker PACKAGE_STRING = WindowMaker 0.95.5 PACKAGE_TARNAME = WindowMaker PACKAGE_URL = http://www.windowmaker.org/ PACKAGE_VERSION = 0.95.5 PATH_SEPARATOR = : PKGCONFIG = pkg-config RANLIB = ranlib SED = /bin/sed SET_MAKE = SHELL = /bin/bash STRIP = strip UTILMOFILES = VERSION = 0.95.5 WINGSMOFILES = WINGS_VERSION = 2:1:0 WPMOFILES = WRASTER_VERSION = 4:1:1 WUTIL_VERSION = 3:0:0 XCFLAGS = XFTCONFIG = pkg-config xft XFTFLAGS = -I/usr/include/freetype2 XFTLIBS = -lXft XGETTEXT = XLFLAGS = XLIBS = -lXext -lXext -lX11 XMKMF = X_CFLAGS = X_EXTRA_LIBS = X_LIBRARY_PATH = X_LIBS = X_PRE_LIBS = -lSM -lICE abs_builddir = /home/jaqque/wmaker/wrlib/tests abs_srcdir = /home/jaqque/wmaker/wrlib/tests abs_top_builddir = /home/jaqque/wmaker abs_top_srcdir = /home/jaqque/wmaker ac_ct_CC = gcc ac_ct_DUMPBIN = am__include = include am__leading_dot = . am__quote = am__tar = ${AMTAR} chof - "$$tardir" am__untar = ${AMTAR} xf - bindir = ${exec_prefix}/bin build = i686-pc-linux-gnu build_alias = build_cpu = i686 build_os = linux-gnu build_vendor = pc builddir = . datadir = ${datarootdir} datarootdir = ${prefix}/share docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} dvidir = ${docdir} exec_prefix = ${prefix} host = i686-pc-linux-gnu host_alias = host_cpu = i686 host_os = linux-gnu host_vendor = pc htmldir = ${docdir} inc_search_path = -I${includedir} includedir = ${prefix}/include infodir = ${datarootdir}/info install_sh = ${SHELL} /home/jaqque/wmaker/install-sh lcov_output_directory = lib_search_path = -L${libdir} libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale localstatedir = ${prefix}/var lt_ECHO = echo mandir = ${datarootdir}/man menutextdomain = mkdir_p = /bin/mkdir -p oldincludedir = /usr/include pdfdir = ${docdir} pixmapdir = ${datadir}/pixmaps prefix = /usr/local program_transform_name = s,x,x, psdir = ${docdir} sbindir = ${exec_prefix}/sbin sharedstatedir = ${prefix}/com srcdir = . supported_locales = be bg bs ca cs da de el es et fi fr gl hr hu hy it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW sysconfdir = ${prefix}/etc target_alias = top_build_prefix = ../../ top_builddir = ../.. top_srcdir = ../.. wprefs_bindir = ${exec_prefix}/bin wprefs_datadir = ${datarootdir}/WPrefs AUTOMAKE_OPTIONS = EXTRA_DIST = test.png tile.xpm ballot_box.xpm AM_CPPFLAGS = -I$(srcdir)/.. $(DFLAGS) -I${includedir} LIBLIST = $(top_builddir)/wrlib/libwraster.la testdraw_SOURCES = testdraw.c testdraw_LDADD = $(LIBLIST) testgrad_SOURCES = testgrad.c testgrad_LDADD = $(LIBLIST) testrot_SOURCES = testrot.c testrot_LDADD = $(LIBLIST) view_SOURCES = view.c view_LDADD = $(LIBLIST) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu wrlib/tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu wrlib/tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list testdraw$(EXEEXT): $(testdraw_OBJECTS) $(testdraw_DEPENDENCIES) @rm -f testdraw$(EXEEXT) $(AM_V_CCLD)$(LINK) $(testdraw_OBJECTS) $(testdraw_LDADD) $(LIBS) testgrad$(EXEEXT): $(testgrad_OBJECTS) $(testgrad_DEPENDENCIES) @rm -f testgrad$(EXEEXT) $(AM_V_CCLD)$(LINK) $(testgrad_OBJECTS) $(testgrad_LDADD) $(LIBS) testrot$(EXEEXT): $(testrot_OBJECTS) $(testrot_DEPENDENCIES) @rm -f testrot$(EXEEXT) $(AM_V_CCLD)$(LINK) $(testrot_OBJECTS) $(testrot_LDADD) $(LIBS) view$(EXEEXT): $(view_OBJECTS) $(view_DEPENDENCIES) @rm -f view$(EXEEXT) $(AM_V_CCLD)$(LINK) $(view_OBJECTS) $(view_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c include ./$(DEPDIR)/testdraw.Po include ./$(DEPDIR)/testgrad.Po include ./$(DEPDIR)/testrot.Po include ./$(DEPDIR)/view.Po .c.o: $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po # $(AM_V_CC) \ # source='$<' object='$@' libtool=no \ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ # $(COMPILE) -c $< .c.obj: $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po # $(AM_V_CC) \ # source='$<' object='$@' libtool=no \ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ # $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo # $(AM_V_CC) \ # source='$<' object='$@' libtool=yes \ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ # $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # 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. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tests/testrot.c������������������������������������������������������������0000644�0001750�0001750�00000002345�12214432632�015116� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #include <X11/Xlib.h> #include "wraster.h" #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include "tile.xpm" Display *dpy; Window win; RContext *ctx; RImage *img; Pixmap pix; #define MAX(a,b) (a)>(b) ? (a) : (b) int main(int argc, char **argv) { RContextAttributes attr; float a; dpy = XOpenDisplay(""); if (!dpy) { puts("cant open display"); exit(1); } attr.flags = RC_RenderMode | RC_ColorsPerChannel; attr.render_mode = RDitheredRendering; attr.colors_per_channel = 4; ctx = RCreateContext(dpy, DefaultScreen(dpy), &attr); if (argc < 2) img = RGetImageFromXPMData(ctx, image_name); else img = RLoadImage(ctx, argv[1], 0); if (!img) { puts(RMessageForError(RErrorCode)); exit(1); } win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 10, 10, MAX(img->width, img->height), MAX(img->height, img->width), 0, 0, 0); XMapRaised(dpy, win); XFlush(dpy); a = 0; while (1) { RImage *tmp; a = a + 1.0; tmp = RRotateImage(img, a); if (!RConvertImage(ctx, tmp, &pix)) { puts(RMessageForError(RErrorCode)); exit(1); } RReleaseImage(tmp); XSetWindowBackgroundPixmap(dpy, win, pix); XFreePixmap(dpy, pix); XClearWindow(dpy, win); XSync(dpy, 0); usleep(50000); } exit(0); } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/get-wraster-flags.in�������������������������������������������������������0000644�0001750�0001750�00000000725�12214432632�015772� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh WCFLAGS="${inc_search_path}" WLFLAGS="${lib_search_path}" WLIBS="-lwraster ${GFXLIBS} ${XLIBS} -lm" usage="Usage: get-wraster-flags [--cflags] [--ldflags] [--libs]" if test $# -eq 0; then echo "${usage}" 1>&2 exit 1 fi while test $# -gt 0; do case $1 in --cflags) echo $WCFLAGS ;; --ldflags|--lflags) echo $WLFLAGS ;; --libs) echo $WLIBS ;; *) echo "${usage}" 1>&2 exit 1 ;; esac shift done �������������������������������������������WindowMaker-0.95.5/wrlib/Makefile.am����������������������������������������������������������������0000644�0001750�0001750�00000003252�12214432632�014136� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## automake input file for wrlib SUBDIRS = . AUTOMAKE_OPTIONS = EXTRA_DIST = tests libwraster.map get-wraster-flags.in lib_LTLIBRARIES = libwraster.la libwraster_la_LDFLAGS = -version-info @WRASTER_VERSION@ if HAVE_LD_VERSION_SCRIPT libwraster_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libwraster.map endif bin_SCRIPTS = get-wraster-flags include_HEADERS = wraster.h libwraster_la_SOURCES = \ imgformat.h \ raster.c \ alpha_combine.c \ draw.c \ color.c \ load.c \ save.c \ gradient.c \ xpixmap.c \ convert.c \ context.c \ misc.c \ scale.c \ rotate.c \ convolve.c \ nxpm.c \ xpm.c \ xutil.c \ ppm.c \ png.c \ jpeg.c \ tiff.c \ gif.c LTCOMPILE2=`echo $(LTCOMPILE) | sed -e s/-fomit-frame-pointer//` COMPILE2=`echo $(COMPILE) | sed -e s/-fomit-frame-pointer//` AM_CPPFLAGS = $(DFLAGS) @HEADER_SEARCH_PATH@ libwraster_la_LIBADD = @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ @LIBXMU@ -lm pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = wrlib.pc DISTCLEANFILES = $(pkgconfig_DATA) get-wraster-flags wrlib.pc: Makefile @echo "Generating $@" @echo 'Name: wrlib' > $@ @echo 'Description: Image manipulation and conversion library' >> $@ @echo 'Version: $(VERSION)' >> $@ @echo 'Libs: $(lib_search_path) -lwraster' >> $@ @echo 'Libs.private: $(GFXLIBS) $(XLIBS) -lm' >> $@ @echo 'Cflags: $(inc_search_path)' >> $@ get-wraster-flags: get-wraster-flags.in Makefile @echo "Generating $@" @$(SED) -e 's#$${inc_search_path}#$(inc_search_path)#;' \ -e 's#$${lib_search_path}#$(lib_search_path)#;' \ -e 's#$${GFXLIBS}#$(GFXLIBS)#;' \ -e 's#$${XLIBS}#$(XLIBS)#;' < $(abs_srcdir)/get-wraster-flags.in > $@ @chmod 755 $@ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/load.c���������������������������������������������������������������������0000644�0001750�0001750�00000015223�12214432632�013166� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* load.c - load image from file * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <errno.h> #include <X11/Xlib.h> #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <sys/stat.h> #include <string.h> #include <time.h> #include <assert.h> #ifdef USE_PNG #include <png.h> #endif #include "wraster.h" #include "imgformat.h" #define RETRY( x ) do { \ x; \ } while (errno == EINTR); typedef struct RCachedImage { RImage *image; char *file; time_t last_modif; /* last time file was modified */ time_t last_use; /* last time image was used */ } RCachedImage; /* * Size of image cache */ static int RImageCacheSize = -1; /* * Max. size of image to store in cache */ static int RImageCacheMaxImage = -1; /* 0 = any size */ #define IMAGE_CACHE_SIZE 8 #define IMAGE_CACHE_MAX_IMAGE 64*64 static RCachedImage *RImageCache; static WRImgFormat identFile(const char *path); char **RSupportedFileFormats(void) { static char *tmp[IM_TYPES + 1]; int i = 0; /* built-in */ tmp[i++] = "XPM"; /* built-in */ tmp[i++] = "PPM"; #ifdef USE_TIFF tmp[i++] = "TIFF"; #endif #ifdef USE_PNG tmp[i++] = "PNG"; #endif #ifdef USE_JPEG tmp[i++] = "JPEG"; #endif #ifdef USE_GIF tmp[i++] = "GIF"; #endif tmp[i] = NULL; return tmp; } static void init_cache(void) { char *tmp; tmp = getenv("RIMAGE_CACHE"); if (!tmp || sscanf(tmp, "%i", &RImageCacheSize) != 1) { RImageCacheSize = IMAGE_CACHE_SIZE; } if (RImageCacheSize < 0) RImageCacheSize = 0; tmp = getenv("RIMAGE_CACHE_SIZE"); if (!tmp || sscanf(tmp, "%i", &RImageCacheMaxImage) != 1) { RImageCacheMaxImage = IMAGE_CACHE_MAX_IMAGE; } if (RImageCacheSize > 0) { RImageCache = malloc(sizeof(RCachedImage) * RImageCacheSize); if (RImageCache == NULL) { printf("wrlib: out of memory for image cache\n"); return; } memset(RImageCache, 0, sizeof(RCachedImage) * RImageCacheSize); } } RImage *RLoadImage(RContext * context, const char *file, int index) { RImage *image = NULL; int i; struct stat st; assert(file != NULL); if (RImageCacheSize < 0) { init_cache(); } if (RImageCacheSize > 0) { for (i = 0; i < RImageCacheSize; i++) { if (RImageCache[i].file && strcmp(file, RImageCache[i].file) == 0) { if (stat(file, &st) == 0 && st.st_mtime == RImageCache[i].last_modif) { RImageCache[i].last_use = time(NULL); return RCloneImage(RImageCache[i].image); } else { free(RImageCache[i].file); RImageCache[i].file = NULL; RReleaseImage(RImageCache[i].image); } } } } switch (identFile(file)) { case IM_ERROR: return NULL; case IM_UNKNOWN: RErrorCode = RERR_BADFORMAT; return NULL; case IM_XPM: image = RLoadXPM(context, file); break; #ifdef USE_TIFF case IM_TIFF: image = RLoadTIFF(file, index); break; #endif /* USE_TIFF */ #ifdef USE_PNG case IM_PNG: image = RLoadPNG(context, file); break; #endif /* USE_PNG */ #ifdef USE_JPEG case IM_JPEG: image = RLoadJPEG(context, file); break; #endif /* USE_JPEG */ #ifdef USE_GIF case IM_GIF: image = RLoadGIF(file, index); break; #endif /* USE_GIF */ case IM_PPM: image = RLoadPPM(file); break; default: RErrorCode = RERR_BADFORMAT; return NULL; } /* store image in cache */ if (RImageCacheSize > 0 && image && (RImageCacheMaxImage == 0 || RImageCacheMaxImage >= image->width * image->height)) { time_t oldest = time(NULL); int oldest_idx = 0; int done = 0; for (i = 0; i < RImageCacheSize; i++) { if (!RImageCache[i].file) { RImageCache[i].file = malloc(strlen(file) + 1); strcpy(RImageCache[i].file, file); RImageCache[i].image = RCloneImage(image); RImageCache[i].last_modif = st.st_mtime; RImageCache[i].last_use = time(NULL); done = 1; break; } else { if (oldest > RImageCache[i].last_use) { oldest = RImageCache[i].last_use; oldest_idx = i; } } } /* if no slot available, dump least recently used one */ if (!done) { free(RImageCache[oldest_idx].file); RReleaseImage(RImageCache[oldest_idx].image); RImageCache[oldest_idx].file = malloc(strlen(file) + 1); strcpy(RImageCache[oldest_idx].file, file); RImageCache[oldest_idx].image = RCloneImage(image); RImageCache[oldest_idx].last_modif = st.st_mtime; RImageCache[oldest_idx].last_use = time(NULL); } } return image; } char *RGetImageFileFormat(const char *file) { switch (identFile(file)) { case IM_XPM: return "XPM"; #ifdef USE_TIFF case IM_TIFF: return "TIFF"; #endif /* USE_TIFF */ #ifdef USE_PNG case IM_PNG: return "PNG"; #endif /* USE_PNG */ #ifdef USE_JPEG case IM_JPEG: return "JPEG"; #endif /* USE_JPEG */ #ifdef USE_GIF case IM_GIF: return "GIF"; #endif /* USE_GIF */ case IM_PPM: return "PPM"; default: return NULL; } } static WRImgFormat identFile(const char *path) { FILE *file; unsigned char buffer[32]; size_t nread; assert(path != NULL); RETRY( file = fopen(path, "rb") ) if (file == NULL) { RErrorCode = RERR_OPEN; return IM_ERROR; } RETRY( nread = fread(buffer, 1, sizeof(buffer), file) ) if (nread < sizeof(buffer) || ferror(file)) { RETRY( fclose(file) ) RErrorCode = RERR_READ; return IM_ERROR; } RETRY( fclose(file) ) /* check for XPM */ if (strncmp((char *)buffer, "/* XPM */", 9) == 0) return IM_XPM; /* check for TIFF */ if ((buffer[0] == 'I' && buffer[1] == 'I' && buffer[2] == '*' && buffer[3] == 0) || (buffer[0] == 'M' && buffer[1] == 'M' && buffer[2] == 0 && buffer[3] == '*')) return IM_TIFF; #ifdef USE_PNG /* check for PNG */ if (!png_sig_cmp(buffer, 0, 8)) return IM_PNG; #endif /* check for raw PPM or PGM */ if (buffer[0] == 'P' && (buffer[1] == '5' || buffer[1] == '6')) return IM_PPM; /* check for JPEG */ if (buffer[0] == 0xff && buffer[1] == 0xd8) return IM_JPEG; /* check for GIF */ if (buffer[0] == 'G' && buffer[1] == 'I' && buffer[2] == 'F') return IM_GIF; return IM_UNKNOWN; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/draw.c���������������������������������������������������������������������0000644�0001750�0001750�00000025664�12214432632�013216� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* draw.c - pixel plotting, line drawing * * Raster graphics library * * Copyright (c) 1998-2003 Dan Pascu * Copyright (c) 2000-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <stdio.h> #include <stdlib.h> #include <assert.h> #include "wraster.h" #define MIN(a,b) ((a) < (b) ? (a) : (b)) #define MAX(a,b) ((a) > (b) ? (a) : (b)) /* * Returns the color of the pixel at coordinates (x, y) in "color". */ Bool RGetPixel(RImage * image, int x, int y, RColor * color) { int ofs; assert(image != NULL); if (x < 0 || x >= image->width || y < 0 || y >= image->height) return False; if (image->format == RRGBAFormat) { ofs = (y * image->width + x) * 4; color->red = image->data[ofs++]; color->green = image->data[ofs++]; color->blue = image->data[ofs++]; color->alpha = image->data[ofs]; } else { ofs = (y * image->width + x) * 3; color->red = image->data[ofs++]; color->green = image->data[ofs++]; color->blue = image->data[ofs]; /* If the image does not have alpha channel, we consider alpha 255 */ color->alpha = 255; } return True; } void RPutPixel(RImage *image, int x, int y, const RColor *color) { unsigned char *ptr; assert(image != NULL); assert(color != NULL); if (x < 0 || x >= image->width || y < 0 || y >= image->height) return; if (image->format == RRGBAFormat) { ptr = image->data + (y * image->width + x) * 4; } else { ptr = image->data + (y * image->width + x) * 3; } if (color->alpha == 255) { *ptr++ = color->red; *ptr++ = color->green; *ptr++ = color->blue; if (image->format == RRGBAFormat) { *ptr = 255; } } else { register int alpha, nalpha, r, g, b; r = color->red; g = color->green; b = color->blue; alpha = color->alpha; nalpha = 255 - alpha; *ptr = (((int)*ptr * nalpha) + (r * alpha)) / 256; ptr++; *ptr = (((int)*ptr * nalpha) + (g * alpha)) / 256; ptr++; *ptr = (((int)*ptr * nalpha) + (b * alpha)) / 256; ptr++; if (image->format == RRGBAFormat) { *ptr = alpha + ((int)*ptr * nalpha) / 256; } } } static void operatePixel(RImage * image, int ofs, int operation, const RColor * color) { unsigned char *sr, *sg, *sb, *sa; register int alpha, nalpha, tmp; int hasAlpha = image->format == RRGBAFormat; alpha = color->alpha; nalpha = 255 - alpha; sr = image->data + ofs * (hasAlpha ? 4 : 3); sg = image->data + ofs * (hasAlpha ? 4 : 3) + 1; sb = image->data + ofs * (hasAlpha ? 4 : 3) + 2; sa = image->data + ofs * (hasAlpha ? 4 : 3) + 3; switch (operation) { case RClearOperation: *sr = 0; *sg = 0; *sb = 0; if (hasAlpha) *sa = 0; break; case RCopyOperation: *sr = color->red; *sg = color->green; *sb = color->blue; if (hasAlpha) *sa = color->alpha; break; case RNormalOperation: if (color->alpha == 255) { *sr = color->red; *sg = color->green; *sb = color->blue; if (hasAlpha) *sa = 255; } else { *sr = (((int)*sr * nalpha) + ((int)color->red * alpha)) / 256; *sg = (((int)*sg * nalpha) + ((int)color->green * alpha)) / 256; *sb = (((int)*sb * nalpha) + ((int)color->blue * alpha)) / 256; *sa = alpha + ((int)*sa * nalpha) / 256; } break; case RAddOperation: tmp = color->red + *sr; *sr = MIN(255, tmp); tmp = color->green + *sg; *sg = MIN(255, tmp); tmp = color->blue + *sb; *sb = MIN(255, tmp); if (hasAlpha) *sa = MIN(*sa, color->alpha); break; case RSubtractOperation: tmp = *sr - color->red; *sr = MAX(0, tmp); tmp = *sg - color->green; *sg = MAX(0, tmp); tmp = *sb - color->blue; *sb = MAX(0, tmp); if (hasAlpha) *sa = MIN(*sa, color->alpha); break; } } void ROperatePixel(RImage * image, int operation, int x, int y, const RColor * color) { int ofs; assert(image != NULL); assert(color != NULL); assert(x >= 0 && x < image->width); assert(y >= 0 && y < image->height); ofs = y * image->width + x; operatePixel(image, ofs, operation, color); } void RPutPixels(RImage * image, const RPoint * points, int npoints, int mode, const RColor * color) { register int x, y, i; assert(image != NULL); assert(points != NULL); x = y = 0; for (i = 0; i < npoints; i++) { if (mode == RAbsoluteCoordinates) { x = points[i].x; y = points[i].y; } else { x += points[i].x; y += points[i].y; } RPutPixel(image, x, y, color); } } void ROperatePixels(RImage * image, int operation, const RPoint * points, int npoints, int mode, const RColor * color) { register int x, y, i; assert(image != NULL); assert(points != NULL); x = y = 0; for (i = 0; i < npoints; i++) { if (mode == RAbsoluteCoordinates) { x = points[i].x; y = points[i].y; } else { x += points[i].x; y += points[i].y; } ROperatePixel(image, operation, x, y, color); } } static Bool clipLineInRectangle(int xmin, int ymin, int xmax, int ymax, int *x1, int *y1, int *x2, int *y2) { #define TOP (1<<0) #define BOT (1<<1) #define LEF (1<<2) #define RIG (1<<3) #define CHECK_OUT(X,Y) (((Y) > ymax ? TOP : ((Y) < ymin ? BOT : 0))\ | ((X) > xmax ? RIG : ((X) < xmin ? LEF : 0))) int ocode1, ocode2, ocode; int accept = 0; int x, y; ocode1 = CHECK_OUT(*x1, *y1); ocode2 = CHECK_OUT(*x2, *y2); for (;;) { if (!ocode1 && !ocode2) { /* completely inside */ accept = 1; break; } else if (ocode1 & ocode2) { break; } if (ocode1) ocode = ocode1; else ocode = ocode2; if (ocode & TOP) { x = *x1 + (*x2 - *x1) * (ymax - *y1) / (*y2 - *y1); y = ymax; } else if (ocode & BOT) { x = *x1 + (*x2 - *x1) * (ymin - *y1) / (*y2 - *y1); y = ymin; } else if (ocode & RIG) { y = *y1 + (*y2 - *y1) * (xmax - *x1) / (*x2 - *x1); x = xmax; } else { /* //if (ocode & LEF) { */ y = *y1 + (*y2 - *y1) * (xmax - *x1) / (*x2 - *x1); x = xmin; } if (ocode == ocode1) { *x1 = x; *y1 = y; ocode1 = CHECK_OUT(x, y); } else { *x2 = x; *y2 = y; ocode2 = CHECK_OUT(x, y); } } return accept; } /* * This routine is a generic drawing routine, based on Bresenham's line * drawing algorithm. */ static int genericLine(RImage * image, int x0, int y0, int x1, int y1, const RColor * color, int operation, int polyline) { int i, err, du, dv, du2, dv2, uofs, vofs, last; assert(image != NULL); if (!clipLineInRectangle(0, 0, image->width - 1, image->height - 1, &x0, &y0, &x1, &y1)) return True; if (x0 < x1) { du = x1 - x0; uofs = 1; } else { du = x0 - x1; uofs = -1; } if (y0 < y1) { dv = y1 - y0; vofs = image->width; } else { dv = y0 - y1; vofs = -image->width; } if (du < dv) { /* Swap coordinates between them, so that always du>dv */ i = du; du = dv; dv = i; i = uofs; uofs = vofs; vofs = i; } err = 0; du2 = du << 1; dv2 = dv << 1; last = (polyline) ? du - 1 : du; if (color->alpha == 255 || operation == RCopyOperation) { unsigned char *ptr; if (image->format == RRGBAFormat) i = (y0 * image->width + x0) * 4; else i = (y0 * image->width + x0) * 3; ptr = image->data + i; for (i = 0; i <= last; i++) { /* Draw the pixel */ *ptr = color->red; *(ptr + 1) = color->green; *(ptr + 2) = color->blue; if (image->format == RRGBAFormat) *(ptr + 3) = 255; /* Compute error for NeXT Step */ err += dv2; if (err >= du) { if (image->format == RRGBAFormat) ptr += vofs * 4; else ptr += vofs * 3; err -= du2; } if (image->format == RRGBAFormat) ptr += uofs * 4; else ptr += uofs * 3; } } else { register int ofs = y0 * image->width + x0; for (i = 0; i <= last; i++) { /* Draw the pixel */ operatePixel(image, ofs, operation, color); /* Compute error for NeXT Step */ err += dv2; if (err >= du) { ofs += vofs; err -= du2; } ofs += uofs; } } return True; } int RDrawLine(RImage * image, int x0, int y0, int x1, int y1, const RColor * color) { return genericLine(image, x0, y0, x1, y1, color, RNormalOperation, False); } int ROperateLine(RImage * image, int operation, int x0, int y0, int x1, int y1, const RColor * color) { return genericLine(image, x0, y0, x1, y1, color, operation, False); } void RDrawLines(RImage * image, const RPoint * points, int npoints, int mode, const RColor * color) { register int x1, y1, x2, y2, i; assert(points != NULL); if (npoints == 0) return; x1 = points[0].x; y1 = points[0].y; x2 = y2 = 0; for (i = 1; i < npoints - 1; i++) { if (mode == RAbsoluteCoordinates) { x2 = points[i].x; y2 = points[i].y; } else { x2 += points[i - 1].x; y2 += points[i - 1].y; } /* Don't draw pixels at junction points twice */ genericLine(image, x1, y1, x2, y2, color, RNormalOperation, True); x1 = x2; y1 = y2; } i = npoints - 1; /* last point */ if (mode == RAbsoluteCoordinates) { x2 = points[i].x; y2 = points[i].y; } else { x2 += points[i - 1].x; y2 += points[i - 1].y; } i = (points[0].x == x2 && points[0].y == y2 && npoints > 1); genericLine(image, x1, y1, x2, y2, color, RNormalOperation, i); } void ROperateLines(RImage * image, int operation, const RPoint * points, int npoints, int mode, const RColor * color) { register int x1, y1, x2, y2, i; assert(points != NULL); if (npoints == 0) return; x1 = points[0].x; y1 = points[0].y; x2 = y2 = 0; for (i = 1; i < npoints - 1; i++) { if (mode == RAbsoluteCoordinates) { x2 = points[i].x; y2 = points[i].y; } else { x2 += points[i - 1].x; y2 += points[i - 1].y; } /* Don't draw pixels at junction points twice */ genericLine(image, x1, y1, x2, y2, color, operation, True); x1 = x2; y1 = y2; } i = npoints - 1; /* last point */ if (mode == RAbsoluteCoordinates) { x2 = points[i].x; y2 = points[i].y; } else { x2 += points[i - 1].x; y2 += points[i - 1].y; } i = (points[0].x == x2 && points[0].y == y2 && npoints > 1); genericLine(image, x1, y1, x2, y2, color, operation, i); } void RDrawSegments(RImage * image, const RSegment * segs, int nsegs, const RColor * color) { register int i; assert(segs != NULL); for (i = 0; i < nsegs; i++) { genericLine(image, segs->x1, segs->y1, segs->x2, segs->y2, color, RNormalOperation, False); segs++; } } void ROperateSegments(RImage * image, int operation, const RSegment * segs, int nsegs, const RColor * color) { register int i; assert(segs != NULL); for (i = 0; i < nsegs; i++) { genericLine(image, segs->x1, segs->y1, segs->x2, segs->y2, color, operation, False); segs++; } } ����������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/misc.c���������������������������������������������������������������������0000644�0001750�0001750�00000014212�12214432632�013177� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <X11/Xlib.h> #include "wraster.h" void RBevelImage(RImage * image, int bevel_type) { RColor color; RColor cdelta; int w, h; if (image->width < 3 || image->height < 3) return; w = image->width; h = image->height; if (bevel_type > 0) { /* raised */ /* top */ cdelta.alpha = 0; cdelta.red = cdelta.green = cdelta.blue = 80; ROperateLine(image, RAddOperation, 0, 0, w - 1, 0, &cdelta); if (bevel_type == RBEV_RAISED3 && w > 3) ROperateLine(image, RAddOperation, 1, 1, w - 3, 1, &cdelta); /* left */ ROperateLine(image, RAddOperation, 0, 1, 0, h - 1, &cdelta); if (bevel_type == RBEV_RAISED3 && h > 3) ROperateLine(image, RAddOperation, 1, 2, 1, h - 3, &cdelta); /* bottom */ color.alpha = 255; color.red = color.green = color.blue = 0; cdelta.red = cdelta.green = cdelta.blue = 40; if (bevel_type == RBEV_RAISED2 || bevel_type == RBEV_RAISED3) { ROperateLine(image, RSubtractOperation, 0, h - 2, w - 3, h - 2, &cdelta); RDrawLine(image, 0, h - 1, w - 1, h - 1, &color); } else { ROperateLine(image, RSubtractOperation, 0, h - 1, w - 1, h - 1, &cdelta); } /* right */ if (bevel_type == RBEV_RAISED2 || bevel_type == RBEV_RAISED3) { ROperateLine(image, RSubtractOperation, w - 2, 0, w - 2, h - 2, &cdelta); RDrawLine(image, w - 1, 0, w - 1, h - 2, &color); } else { ROperateLine(image, RSubtractOperation, w - 1, 0, w - 1, h - 2, &cdelta); } } else { /* sunken */ cdelta.alpha = 0; cdelta.red = cdelta.green = cdelta.blue = 40; ROperateLine(image, RSubtractOperation, 0, 0, w - 1, 0, &cdelta); /* top */ ROperateLine(image, RSubtractOperation, 0, 1, 0, h - 1, &cdelta); /* left */ cdelta.red = cdelta.green = cdelta.blue = 80; ROperateLine(image, RAddOperation, 0, h - 1, w - 1, h - 1, &cdelta); /* bottom */ ROperateLine(image, RAddOperation, w - 1, 0, w - 1, h - 2, &cdelta); /* right */ } } void RFillImage(RImage * image, const RColor * color) { unsigned char *d = image->data; unsigned lineSize; int i; if (image->format == RRGBAFormat) { for (i = 0; i < image->width; i++) { *d++ = color->red; *d++ = color->green; *d++ = color->blue; *d++ = color->alpha; } lineSize = image->width * 4; for (i = 1; i < image->height; i++, d += lineSize) { memcpy(d, image->data, lineSize); } } else { for (i = 0; i < image->width; i++) { *d++ = color->red; *d++ = color->green; *d++ = color->blue; } lineSize = image->width * 3; for (i = 1; i < image->height; i++, d += lineSize) { memcpy(d, image->data, lineSize); } } } void RClearImage(RImage * image, const RColor * color) { unsigned char *d = image->data; unsigned lineSize; int i; if (color->alpha == 255) { if (image->format == RRGBAFormat) { for (i = 0; i < image->width; i++) { *d++ = color->red; *d++ = color->green; *d++ = color->blue; *d++ = 0xff; } lineSize = image->width * 4; for (i = 1; i < image->height; i++, d += lineSize) { memcpy(d, image->data, lineSize); } } else { for (i = 0; i < image->width; i++) { *d++ = color->red; *d++ = color->green; *d++ = color->blue; } lineSize = image->width * 3; for (i = 1; i < image->height; i++, d += lineSize) { memcpy(d, image->data, lineSize); } } } else { int bytes = image->width * image->height; int alpha, nalpha, r, g, b, s; alpha = color->alpha; r = color->red * alpha; g = color->green * alpha; b = color->blue * alpha; nalpha = 255 - alpha; s = (image->format == RRGBAFormat) ? 4 : 3; for (i = 0; i < bytes; i++, d += s) { d[0] = (((int)d[0] * nalpha) + r)/256; d[1] = (((int)d[1] * nalpha) + g)/256; d[2] = (((int)d[2] * nalpha) + b)/256; } } } static inline unsigned char clip(int c) { if (c > 255) c = 255; return (unsigned char)c; } void RLightImage(RImage *image, const RColor *color) { unsigned char *d = image->data; unsigned char *dd; int alpha, r, g, b, s; s = (image->format == RRGBAFormat) ? 4 : 3; dd = d + s*image->width*image->height; r = color->red; g = color->green; b = color->blue; alpha = color->alpha; if (r == 0 && g == 0 && b == 0) { for (; d < dd; d += s) { d[0] = clip(((int)d[0] * alpha)/128); d[1] = clip(((int)d[1] * alpha)/128); d[2] = clip(((int)d[2] * alpha)/128); } } else { for (; d < dd; d += s) { d[0] = clip((((int)d[0] * alpha) + r)/128); d[1] = clip((((int)d[1] * alpha) + g)/128); d[2] = clip((((int)d[2] * alpha) + b)/128); } } } const char *RMessageForError(int errorCode) { switch (errorCode) { case RERR_NONE: return "no error"; case RERR_OPEN: return "could not open file"; case RERR_READ: return "error reading from file"; case RERR_WRITE: return "error writing to file"; case RERR_NOMEMORY: return "out of memory"; case RERR_NOCOLOR: return "out of color cells"; case RERR_BADIMAGEFILE: return "invalid or corrupted image file"; case RERR_BADFORMAT: return "the image format in the file is not supported and can't be loaded"; case RERR_BADINDEX: return "image file does not contain requested image index"; case RERR_BADVISUALID: return "request for an invalid visual ID"; case RERR_STDCMAPFAIL: return "failed to create standard colormap"; case RERR_XERROR: return "internal X error"; default: case RERR_INTERNAL: return "internal error"; } } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/ppm.c����������������������������������������������������������������������0000644�0001750�0001750�00000006256�12214432632�013051� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* ppm.c - load PPM image from file * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <X11/Xlib.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include "wraster.h" #include "imgformat.h" static RImage *load_graymap(FILE * file, int w, int h, int max, int raw) { RImage *image; image = RCreateImage(w, h, 0); if (!image) { return NULL; } if (!raw) { } else { if (max < 256) { unsigned char *ptr; char *buf; int x, y; buf = malloc(w + 1); if (!buf) { return NULL; } ptr = image->data; for (y = 0; y < h; y++) { if (!fread(buf, w, 1, file)) { free(buf); goto short_file; } for (x = 0; x < w; x++) { *(ptr++) = buf[x]; *(ptr++) = buf[x]; *(ptr++) = buf[x]; } } free(buf); } else { } } return image; short_file: RErrorCode = RERR_BADIMAGEFILE; return NULL; } static RImage *load_pixmap(FILE * file, int w, int h, int max, int raw) { RImage *image; int i; char buf[3]; unsigned char *ptr; image = RCreateImage(w, h, 0); if (!image) { return NULL; } ptr = image->data; if (!raw) { } else { if (max < 256) { i = 0; while (i < w * h) { if (fread(buf, 1, 3, file) != 3) goto short_file; *(ptr++) = buf[0]; *(ptr++) = buf[1]; *(ptr++) = buf[2]; i++; } } else { } } return image; short_file: RErrorCode = RERR_BADIMAGEFILE; return NULL; } RImage *RLoadPPM(const char *file_name) { FILE *file; RImage *image = NULL; char buffer[256]; int w, h, m; int type; #define GETL() if (!fgets(buffer, 255, file)) goto short_file file = fopen(file_name, "rb"); if (!file) { RErrorCode = RERR_OPEN; return NULL; } /* get signature */ GETL(); /* only accept raw pixmaps or graymaps */ if (buffer[0] != 'P' || (buffer[1] != '5' && buffer[1] != '6')) { RErrorCode = RERR_BADFORMAT; fclose(file); return NULL; } type = buffer[1]; /* skip comments */ while (1) { GETL(); if (buffer[0] != '#') break; } /* get size */ if (sscanf(buffer, "%i %i", &w, &h) != 2 || w < 1 || h < 1) goto bad_file; GETL(); if (sscanf(buffer, "%i", &m) != 1 || m < 1) goto bad_file; if (type == '5') image = load_graymap(file, w, h, m, type == '5'); else if (type == '6') image = load_pixmap(file, w, h, m, type == '6'); fclose(file); return image; bad_file: short_file: RErrorCode = RERR_BADIMAGEFILE; fclose(file); return NULL; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/xpm.c����������������������������������������������������������������������0000644�0001750�0001750�00000014613�12214432632�013055� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xpm.c - load XPM image from file * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #ifdef USE_XPM #include <X11/Xlib.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <X11/xpm.h> #include "wraster.h" #include "imgformat.h" RImage *RGetImageFromXPMData(RContext * context, char **xpmData) { Display *dpy = context->dpy; Colormap cmap = context->cmap; RImage *image; XpmImage xpm; unsigned char *color_table[4]; unsigned char *data; int *p; int i; i = XpmCreateXpmImageFromData(xpmData, &xpm, (XpmInfo *) NULL); if (i != XpmSuccess) { switch (i) { case XpmOpenFailed: RErrorCode = RERR_OPEN; break; case XpmFileInvalid: RErrorCode = RERR_BADIMAGEFILE; break; case XpmNoMemory: RErrorCode = RERR_NOMEMORY; break; default: RErrorCode = RERR_BADIMAGEFILE; break; } return NULL; } if (xpm.height < 1 || xpm.width < 1) { RErrorCode = RERR_BADIMAGEFILE; XpmFreeXpmImage(&xpm); return NULL; } if (xpm.colorTable == NULL) { RErrorCode = RERR_BADIMAGEFILE; XpmFreeXpmImage(&xpm); return NULL; } image = RCreateImage(xpm.width, xpm.height, True); if (!image) { XpmFreeXpmImage(&xpm); return NULL; } /* make color table */ for (i = 0; i < 4; i++) { color_table[i] = malloc(xpm.ncolors * sizeof(char)); if (!color_table[i]) { for (i = i - 1; i >= 0; i--) { if (color_table[i]) free(color_table[i]); } RReleaseImage(image); RErrorCode = RERR_NOMEMORY; XpmFreeXpmImage(&xpm); return NULL; } } for (i = 0; i < xpm.ncolors; i++) { XColor xcolor; char *color = NULL; if (xpm.colorTable[i].c_color) color = xpm.colorTable[i].c_color; else if (xpm.colorTable[i].g_color) color = xpm.colorTable[i].g_color; else if (xpm.colorTable[i].g4_color) color = xpm.colorTable[i].g4_color; else if (xpm.colorTable[i].m_color) color = xpm.colorTable[i].m_color; else if (xpm.colorTable[i].symbolic) color = xpm.colorTable[i].symbolic; if (!color) { color_table[0][i] = 0xbe; color_table[1][i] = 0xbe; color_table[2][i] = 0xbe; color_table[3][i] = 0xff; continue; } if (strncmp(color, "None", 4) == 0) { color_table[0][i] = 0; color_table[1][i] = 0; color_table[2][i] = 0; color_table[3][i] = 0; continue; } if (XParseColor(dpy, cmap, color, &xcolor)) { color_table[0][i] = xcolor.red >> 8; color_table[1][i] = xcolor.green >> 8; color_table[2][i] = xcolor.blue >> 8; color_table[3][i] = 0xff; } else { color_table[0][i] = 0xbe; color_table[1][i] = 0xbe; color_table[2][i] = 0xbe; color_table[3][i] = 0xff; } } /* convert pixmap to RImage */ p = (int *)xpm.data; data = image->data; for (i = 0; i < xpm.width * xpm.height; i++) { *(data++) = color_table[0][*p]; *(data++) = color_table[1][*p]; *(data++) = color_table[2][*p]; *(data++) = color_table[3][*p]; p++; } for (i = 0; i < 4; i++) { free(color_table[i]); } XpmFreeXpmImage(&xpm); return image; } RImage *RLoadXPM(RContext * context, const char *file) { Display *dpy = context->dpy; Colormap cmap = context->cmap; RImage *image; XpmImage xpm; unsigned char *color_table[4]; unsigned char *data; int *p; int i; i = XpmReadFileToXpmImage((char *)file, &xpm, (XpmInfo *) NULL); if (i != XpmSuccess) { switch (i) { case XpmOpenFailed: RErrorCode = RERR_OPEN; break; case XpmFileInvalid: RErrorCode = RERR_BADIMAGEFILE; break; case XpmNoMemory: RErrorCode = RERR_NOMEMORY; break; default: RErrorCode = RERR_BADIMAGEFILE; break; } return NULL; } if (xpm.height < 1 || xpm.width < 1) { RErrorCode = RERR_BADIMAGEFILE; XpmFreeXpmImage(&xpm); return NULL; } if (xpm.colorTable == NULL) { RErrorCode = RERR_BADIMAGEFILE; XpmFreeXpmImage(&xpm); return NULL; } image = RCreateImage(xpm.width, xpm.height, True); if (!image) { XpmFreeXpmImage(&xpm); return NULL; } /* make color table */ for (i = 0; i < 4; i++) { color_table[i] = malloc(xpm.ncolors * sizeof(char)); if (!color_table[i]) { for (i = i - 1; i >= 0; i--) { if (color_table[i]) free(color_table[i]); } RReleaseImage(image); RErrorCode = RERR_NOMEMORY; XpmFreeXpmImage(&xpm); return NULL; } } for (i = 0; i < xpm.ncolors; i++) { XColor xcolor; char *color = NULL; if (xpm.colorTable[i].c_color) color = xpm.colorTable[i].c_color; else if (xpm.colorTable[i].g_color) color = xpm.colorTable[i].g_color; else if (xpm.colorTable[i].g4_color) color = xpm.colorTable[i].g4_color; else if (xpm.colorTable[i].m_color) color = xpm.colorTable[i].m_color; else if (xpm.colorTable[i].symbolic) color = xpm.colorTable[i].symbolic; if (!color) { color_table[0][i] = 0xbe; color_table[1][i] = 0xbe; color_table[2][i] = 0xbe; color_table[3][i] = 0xff; continue; } if (strncmp(color, "None", 4) == 0) { color_table[0][i] = 0; color_table[1][i] = 0; color_table[2][i] = 0; color_table[3][i] = 0; continue; } if (XParseColor(dpy, cmap, color, &xcolor)) { color_table[0][i] = xcolor.red >> 8; color_table[1][i] = xcolor.green >> 8; color_table[2][i] = xcolor.blue >> 8; color_table[3][i] = 0xff; } else { color_table[0][i] = 0xbe; color_table[1][i] = 0xbe; color_table[2][i] = 0xbe; color_table[3][i] = 0xff; } } /* convert pixmap to RImage */ p = (int *)xpm.data; data = image->data; for (i = 0; i < xpm.width * xpm.height; i++, p++) { *(data++) = color_table[0][*p]; *(data++) = color_table[1][*p]; *(data++) = color_table[2][*p]; *(data++) = color_table[3][*p]; } for (i = 0; i < 4; i++) { free(color_table[i]); } XpmFreeXpmImage(&xpm); return image; } #endif /* USE_XPM */ ���������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/jpeg.c���������������������������������������������������������������������0000644�0001750�0001750�00000013261�12214432632�013174� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* jpeg.c - load JPEG image from file * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> /* Avoid a compiler warning */ #undef HAVE_STDLIB_H #ifdef USE_JPEG #include <stdlib.h> #include <stdio.h> #include <string.h> #include <jpeglib.h> #include "wraster.h" #include "imgformat.h" /* * <setjmp.h> is used for the optional error recovery mechanism shown in * the second part of the example. */ #include <setjmp.h> /* * ERROR HANDLING: * * The JPEG library's standard error handler (jerror.c) is divided into * several "methods" which you can override individually. This lets you * adjust the behavior without duplicating a lot of code, which you might * have to update with each future release. * * Our example here shows how to override the "error_exit" method so that * control is returned to the library's caller when a fatal error occurs, * rather than calling exit() as the standard error_exit method does. * * We use C's setjmp/longjmp facility to return control. This means that the * routine which calls the JPEG library must first execute a setjmp() call to * establish the return point. We want the replacement error_exit to do a * longjmp(). But we need to make the setjmp buffer accessible to the * error_exit routine. To do this, we make a private extension of the * standard JPEG error handler object. (If we were using C++, we'd say we * were making a subclass of the regular error handler.) * * Here's the extended error handler struct: */ struct my_error_mgr { struct jpeg_error_mgr pub; /* "public" fields */ jmp_buf setjmp_buffer; /* for return to caller */ }; typedef struct my_error_mgr *my_error_ptr; /* * Here's the routine that will replace the standard error_exit method: */ static void my_error_exit(j_common_ptr cinfo) { /* cinfo->err really points to a my_error_mgr struct, so coerce pointer */ my_error_ptr myerr = (my_error_ptr) cinfo->err; /* Always display the message. */ /* We could postpone this until after returning, if we chose. */ (*cinfo->err->output_message) (cinfo); /* Return control to the setjmp point */ longjmp(myerr->setjmp_buffer, 1); } RImage *RLoadJPEG(RContext * context, const char *file_name) { RImage *image = NULL; struct jpeg_decompress_struct cinfo; int i; unsigned char *ptr; JSAMPROW buffer[1], bptr; FILE *file; /* We use our private extension JPEG error handler. * Note that this struct must live as long as the main JPEG parameter * struct, to avoid dangling-pointer problems. */ struct my_error_mgr jerr; file = fopen(file_name, "rb"); if (!file) { RErrorCode = RERR_OPEN; return NULL; } cinfo.err = jpeg_std_error(&jerr.pub); jerr.pub.error_exit = my_error_exit; /* Establish the setjmp return context for my_error_exit to use. */ if (setjmp(jerr.setjmp_buffer)) { /* If we get here, the JPEG code has signaled an error. * We need to clean up the JPEG object, close the input file, and return. */ jpeg_destroy_decompress(&cinfo); fclose(file); return NULL; } jpeg_create_decompress(&cinfo); jpeg_stdio_src(&cinfo, file); jpeg_read_header(&cinfo, TRUE); if (cinfo.image_width < 1 || cinfo.image_height < 1) { RErrorCode = RERR_BADIMAGEFILE; goto bye; } bptr = buffer[0] = (JSAMPROW) malloc(cinfo.image_width * cinfo.num_components); if (!buffer[0]) { RErrorCode = RERR_NOMEMORY; goto bye; } if (cinfo.jpeg_color_space == JCS_GRAYSCALE) { cinfo.out_color_space = JCS_GRAYSCALE; } else cinfo.out_color_space = JCS_RGB; cinfo.quantize_colors = FALSE; cinfo.do_fancy_upsampling = FALSE; cinfo.do_block_smoothing = FALSE; jpeg_calc_output_dimensions(&cinfo); if (context->flags.optimize_for_speed) image = RCreateImage(cinfo.image_width, cinfo.image_height, True); else image = RCreateImage(cinfo.image_width, cinfo.image_height, False); if (!image) { RErrorCode = RERR_NOMEMORY; goto bye; } jpeg_start_decompress(&cinfo); ptr = image->data; if (cinfo.out_color_space == JCS_RGB) { if (context->flags.optimize_for_speed) { while (cinfo.output_scanline < cinfo.output_height) { jpeg_read_scanlines(&cinfo, buffer, (JDIMENSION) 1); bptr = buffer[0]; for (i = 0; i < cinfo.image_width; i++) { *ptr++ = *bptr++; *ptr++ = *bptr++; *ptr++ = *bptr++; ptr++; /* skip alpha channel */ } } } else { while (cinfo.output_scanline < cinfo.output_height) { jpeg_read_scanlines(&cinfo, buffer, (JDIMENSION) 1); bptr = buffer[0]; memcpy(ptr, bptr, cinfo.image_width * 3); ptr += cinfo.image_width * 3; } } } else { while (cinfo.output_scanline < cinfo.output_height) { jpeg_read_scanlines(&cinfo, buffer, (JDIMENSION) 1); bptr = buffer[0]; for (i = 0; i < cinfo.image_width; i++) { *ptr++ = *bptr; *ptr++ = *bptr; *ptr++ = *bptr++; } } } jpeg_finish_decompress(&cinfo); bye: jpeg_destroy_decompress(&cinfo); fclose(file); if (buffer[0]) free(buffer[0]); return image; } #endif /* USE_JPEG */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/NEWS�����������������������������������������������������������������������0000644�0001750�0001750�00000002116�12214432632�012577� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������** API and ABI modifications since wmaker 0.92.0 RLightImage: ADDED ---------------------------------------------------- Sat Apr 21 09:12:09 EEST 2001 -Dan API change ---------- To allow a retain/release mechanism to be implemented for RImages, the following new functions were introduced: RImage* RRetainImage(RImage* image); void RReleaseImage(RImage* image); RDestroyImage() is now aliased to RReleaseImage(), but because it's no longer compatible with the new semantics, it was only kept to allow a smoother transition and the ability to run programs that were not updated yet. Do _NOT_ continue to use RDestroyImage(), because it will be removed in a future version. You should start using RReleaseImage() in your code, and also update all your existing programs to use RReleaseImage(). Also keep in mind that its name is also misleading: RDestroyImage() no longer destroys images, unless they are not retained in some other place. All existing code will continue to function with the new lib, even if not recompiled, but you are encouraged to update your code to these changes ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/tiff.c���������������������������������������������������������������������0000644�0001750�0001750�00000006132�12214432632�013176� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tiff.c - load TIFF image from file * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #ifdef USE_TIFF #include <stdlib.h> #include <stdio.h> #include <string.h> #include <tiff.h> #include <tiffio.h> #include "wraster.h" #include "imgformat.h" RImage *RLoadTIFF(const char *file, int index) { RImage *image = NULL; TIFF *tif; int i; unsigned char *r, *g, *b, *a; uint16 alpha, amode; uint32 width, height; uint32 *data, *ptr; uint16 extrasamples; uint16 *sampleinfo; int ch; tif = TIFFOpen(file, "r"); if (!tif) return NULL; /* seek index */ i = index; while (i > 0) { if (!TIFFReadDirectory(tif)) { RErrorCode = RERR_BADINDEX; TIFFClose(tif); return NULL; } i--; } /* get info */ TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &width); TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &height); TIFFGetFieldDefaulted(tif, TIFFTAG_EXTRASAMPLES, &extrasamples, &sampleinfo); alpha = (extrasamples == 1 && ((sampleinfo[0] == EXTRASAMPLE_ASSOCALPHA) || (sampleinfo[0] == EXTRASAMPLE_UNASSALPHA))); amode = (extrasamples == 1 && sampleinfo[0] == EXTRASAMPLE_ASSOCALPHA); if (width < 1 || height < 1) { RErrorCode = RERR_BADIMAGEFILE; TIFFClose(tif); return NULL; } /* read data */ ptr = data = (uint32 *) _TIFFmalloc(width * height * sizeof(uint32)); if (!data) { RErrorCode = RERR_NOMEMORY; } else { if (!TIFFReadRGBAImage(tif, width, height, data, 0)) { RErrorCode = RERR_BADIMAGEFILE; } else { /* convert data */ image = RCreateImage(width, height, alpha); if (alpha) ch = 4; else ch = 3; if (image) { int x, y; r = image->data; g = image->data + 1; b = image->data + 2; a = image->data + 3; /* data seems to be stored upside down */ data += width * (height - 1); for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { *(r) = (*data) & 0xff; *(g) = (*data >> 8) & 0xff; *(b) = (*data >> 16) & 0xff; if (alpha) { *(a) = (*data >> 24) & 0xff; if (amode && (*a > 0)) { *r = (*r * 255) / *(a); *g = (*g * 255) / *(a); *b = (*b * 255) / *(a); } a += 4; } r += ch; g += ch; b += ch; data++; } data -= 2 * width; } } } _TIFFfree(ptr); } TIFFClose(tif); return image; } #endif /* USE_TIFF */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/gradient.c�����������������������������������������������������������������0000644�0001750�0001750�00000034404�12214432632�014046� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gradient.c - renders gradients * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * Copyright (c) 1998-2003 Dan Pascu * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <assert.h> #include "wraster.h" static RImage *renderHGradient(unsigned width, unsigned height, int r0, int g0, int b0, int rf, int gf, int bf); static RImage *renderVGradient(unsigned width, unsigned height, int r0, int g0, int b0, int rf, int gf, int bf); static RImage *renderDGradient(unsigned width, unsigned height, int r0, int g0, int b0, int rf, int gf, int bf); static RImage *renderMHGradient(unsigned width, unsigned height, RColor ** colors, int count); static RImage *renderMVGradient(unsigned width, unsigned height, RColor ** colors, int count); static RImage *renderMDGradient(unsigned width, unsigned height, RColor ** colors, int count); RImage *RRenderMultiGradient(unsigned width, unsigned height, RColor ** colors, int style) { int count; count = 0; while (colors[count] != NULL) count++; if (count > 2) { switch (style) { case RHorizontalGradient: return renderMHGradient(width, height, colors, count); case RVerticalGradient: return renderMVGradient(width, height, colors, count); case RDiagonalGradient: return renderMDGradient(width, height, colors, count); } } else if (count > 1) { return RRenderGradient(width, height, colors[0], colors[1], style); } else if (count > 0) { return RRenderGradient(width, height, colors[0], colors[0], style); } assert(0); return NULL; } RImage *RRenderGradient(unsigned width, unsigned height, const RColor * from, const RColor * to, int style) { switch (style) { case RHorizontalGradient: return renderHGradient(width, height, from->red, from->green, from->blue, to->red, to->green, to->blue); case RVerticalGradient: return renderVGradient(width, height, from->red, from->green, from->blue, to->red, to->green, to->blue); case RDiagonalGradient: return renderDGradient(width, height, from->red, from->green, from->blue, to->red, to->green, to->blue); } assert(0); return NULL; } /* *---------------------------------------------------------------------- * renderHGradient-- * Renders a horizontal linear gradient of the specified size in the * RImage format with a border of the specified type. * * Returns: * A 24bit RImage with the gradient (no alpha channel). * * Side effects: * None *---------------------------------------------------------------------- */ static RImage *renderHGradient(unsigned width, unsigned height, int r0, int g0, int b0, int rf, int gf, int bf) { int i; long r, g, b, dr, dg, db; unsigned lineSize = width * 3; RImage *image; unsigned char *ptr; image = RCreateImage(width, height, False); if (!image) { return NULL; } ptr = image->data; r = r0 << 16; g = g0 << 16; b = b0 << 16; dr = ((rf - r0) << 16) / (int)width; dg = ((gf - g0) << 16) / (int)width; db = ((bf - b0) << 16) / (int)width; /* render the first line */ for (i = 0; i < width; i++) { *(ptr++) = (unsigned char)(r >> 16); *(ptr++) = (unsigned char)(g >> 16); *(ptr++) = (unsigned char)(b >> 16); r += dr; g += dg; b += db; } /* copy the first line to the other lines */ for (i = 1; i < height; i++) { memcpy(&(image->data[i * lineSize]), image->data, lineSize); } return image; } /* *---------------------------------------------------------------------- * renderVGradient-- * Renders a vertical linear gradient of the specified size in the * RImage format with a border of the specified type. * * Returns: * A 24bit RImage with the gradient (no alpha channel). * * Side effects: * None *---------------------------------------------------------------------- */ static RImage *renderVGradient(unsigned width, unsigned height, int r0, int g0, int b0, int rf, int gf, int bf) { int i, j; long r, g, b, dr, dg, db; RImage *image; unsigned char *ptr; unsigned char rr, gg, bb; image = RCreateImage(width, height, False); if (!image) { return NULL; } ptr = image->data; r = r0 << 16; g = g0 << 16; b = b0 << 16; dr = ((rf - r0) << 16) / (int)height; dg = ((gf - g0) << 16) / (int)height; db = ((bf - b0) << 16) / (int)height; for (i = 0; i < height; i++) { rr = r >> 16; gg = g >> 16; bb = b >> 16; for (j = 0; j < width / 8; j++) { *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; } switch (width % 8) { case 7: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; case 6: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; case 5: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; case 4: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; case 3: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; case 2: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; case 1: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; } r += dr; g += dg; b += db; } return image; } /* *---------------------------------------------------------------------- * renderDGradient-- * Renders a diagonal linear gradient of the specified size in the * RImage format with a border of the specified type. * * Returns: * A 24bit RImage with the gradient (no alpha channel). * * Side effects: * None *---------------------------------------------------------------------- */ static RImage *renderDGradient(unsigned width, unsigned height, int r0, int g0, int b0, int rf, int gf, int bf) { RImage *image, *tmp; int j; float a, offset; unsigned char *ptr; if (width == 1) return renderVGradient(width, height, r0, g0, b0, rf, gf, bf); else if (height == 1) return renderHGradient(width, height, r0, g0, b0, rf, gf, bf); image = RCreateImage(width, height, False); if (!image) { return NULL; } tmp = renderHGradient(2 * width - 1, 1, r0, g0, b0, rf, gf, bf); if (!tmp) { RReleaseImage(image); return NULL; } ptr = tmp->data; a = ((float)(width - 1)) / ((float)(height - 1)); width = width * 3; /* copy the first line to the other lines with corresponding offset */ for (j = 0, offset = 0.0; j < width * height; j += width) { memcpy(&(image->data[j]), &ptr[3 * (int)offset], width); offset += a; } RReleaseImage(tmp); return image; } static RImage *renderMHGradient(unsigned width, unsigned height, RColor ** colors, int count) { int i, j, k; long r, g, b, dr, dg, db; unsigned lineSize = width * 3; RImage *image; unsigned char *ptr; unsigned width2; assert(count > 2); image = RCreateImage(width, height, False); if (!image) { return NULL; } ptr = image->data; if (count > width) count = width; if (count > 1) width2 = width / (count - 1); else width2 = width; k = 0; r = colors[0]->red << 16; g = colors[0]->green << 16; b = colors[0]->blue << 16; /* render the first line */ for (i = 1; i < count; i++) { dr = ((int)(colors[i]->red - colors[i - 1]->red) << 16) / (int)width2; dg = ((int)(colors[i]->green - colors[i - 1]->green) << 16) / (int)width2; db = ((int)(colors[i]->blue - colors[i - 1]->blue) << 16) / (int)width2; for (j = 0; j < width2; j++) { *ptr++ = (unsigned char)(r >> 16); *ptr++ = (unsigned char)(g >> 16); *ptr++ = (unsigned char)(b >> 16); r += dr; g += dg; b += db; k++; } r = colors[i]->red << 16; g = colors[i]->green << 16; b = colors[i]->blue << 16; } for (j = k; j < width; j++) { *ptr++ = (unsigned char)(r >> 16); *ptr++ = (unsigned char)(g >> 16); *ptr++ = (unsigned char)(b >> 16); } /* copy the first line to the other lines */ for (i = 1; i < height; i++) { memcpy(&(image->data[i * lineSize]), image->data, lineSize); } return image; } static RImage *renderMVGradient(unsigned width, unsigned height, RColor ** colors, int count) { int i, j, k; long r, g, b, dr, dg, db; unsigned lineSize = width * 3; RImage *image; unsigned char *ptr, *tmp; unsigned height2; int x; unsigned char rr, gg, bb; assert(count > 2); image = RCreateImage(width, height, False); if (!image) { return NULL; } ptr = image->data; if (count > height) count = height; if (count > 1) height2 = height / (count - 1); else height2 = height; k = 0; r = colors[0]->red << 16; g = colors[0]->green << 16; b = colors[0]->blue << 16; for (i = 1; i < count; i++) { dr = ((int)(colors[i]->red - colors[i - 1]->red) << 16) / (int)height2; dg = ((int)(colors[i]->green - colors[i - 1]->green) << 16) / (int)height2; db = ((int)(colors[i]->blue - colors[i - 1]->blue) << 16) / (int)height2; for (j = 0; j < height2; j++) { rr = r >> 16; gg = g >> 16; bb = b >> 16; for (x = 0; x < width / 4; x++) { *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; } switch (width % 4) { case 3: *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; case 2: *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; case 1: *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; } r += dr; g += dg; b += db; k++; } r = colors[i]->red << 16; g = colors[i]->green << 16; b = colors[i]->blue << 16; } rr = r >> 16; gg = g >> 16; bb = b >> 16; if (k < height) { tmp = ptr; for (x = 0; x < width / 4; x++) { *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; } switch (width % 4) { case 3: *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; case 2: *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; case 1: *ptr++ = rr; *ptr++ = gg; *ptr++ = bb; default: break; } for (j = k + 1; j < height; j++) { memcpy(ptr, tmp, lineSize); ptr += lineSize; } } return image; } static RImage *renderMDGradient(unsigned width, unsigned height, RColor ** colors, int count) { RImage *image, *tmp; float a, offset; int j; unsigned char *ptr; assert(count > 2); if (width == 1) return renderMVGradient(width, height, colors, count); else if (height == 1) return renderMHGradient(width, height, colors, count); image = RCreateImage(width, height, False); if (!image) { return NULL; } if (count > width) count = width; if (count > height) count = height; if (count > 2) tmp = renderMHGradient(2 * width - 1, 1, colors, count); else tmp = renderHGradient(2 * width - 1, 1, colors[0]->red << 8, colors[0]->green << 8, colors[0]->blue << 8, colors[1]->red << 8, colors[1]->green << 8, colors[1]->blue << 8); if (!tmp) { RReleaseImage(image); return NULL; } ptr = tmp->data; a = ((float)(width - 1)) / ((float)(height - 1)); width = width * 3; /* copy the first line to the other lines with corresponding offset */ for (j = 0, offset = 0; j < width * height; j += width) { memcpy(&(image->data[j]), &ptr[3 * (int)offset], width); offset += a; } RReleaseImage(tmp); return image; } RImage *RRenderInterwovenGradient(unsigned width, unsigned height, RColor colors1[2], int thickness1, RColor colors2[2], int thickness2) { int i, j, k, l, ll; long r1, g1, b1, dr1, dg1, db1; long r2, g2, b2, dr2, dg2, db2; RImage *image; unsigned char *ptr; unsigned char rr, gg, bb; image = RCreateImage(width, height, False); if (!image) { return NULL; } ptr = image->data; r1 = colors1[0].red << 16; g1 = colors1[0].green << 16; b1 = colors1[0].blue << 16; r2 = colors2[0].red << 16; g2 = colors2[0].green << 16; b2 = colors2[0].blue << 16; dr1 = ((colors1[1].red - colors1[0].red) << 16) / (int)height; dg1 = ((colors1[1].green - colors1[0].green) << 16) / (int)height; db1 = ((colors1[1].blue - colors1[0].blue) << 16) / (int)height; dr2 = ((colors2[1].red - colors2[0].red) << 16) / (int)height; dg2 = ((colors2[1].green - colors2[0].green) << 16) / (int)height; db2 = ((colors2[1].blue - colors2[0].blue) << 16) / (int)height; for (i = 0, k = 0, l = 0, ll = thickness1; i < height; i++) { if (k == 0) { rr = r1 >> 16; gg = g1 >> 16; bb = b1 >> 16; } else { rr = r2 >> 16; gg = g2 >> 16; bb = b2 >> 16; } for (j = 0; j < width / 8; j++) { *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; } switch (width % 8) { case 7: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; case 6: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; case 5: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; case 4: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; case 3: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; case 2: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; case 1: *(ptr++) = rr; *(ptr++) = gg; *(ptr++) = bb; } if (++l == ll) { if (k == 0) { k = 1; ll = thickness2; } else { k = 0; ll = thickness1; } l = 0; } r1 += dr1; g1 += dg1; b1 += db1; r2 += dr2; g2 += dg2; b2 += db2; } return image; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/raster.c�������������������������������������������������������������������0000644�0001750�0001750�00000033152�12214432632�013550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* raster.c - main and other misc stuff * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <X11/Xlib.h> #include "wraster.h" #include <assert.h> char *WRasterLibVersion = "0.9"; int RErrorCode = RERR_NONE; #define HAS_ALPHA(I) ((I)->format == RRGBAFormat) #define MAX_WIDTH 20000 #define MAX_HEIGHT 20000 /* 20000^2*4 < 2G */ RImage *RCreateImage(unsigned width, unsigned height, int alpha) { RImage *image = NULL; assert(width > 0 && height > 0); if (width > MAX_WIDTH || height > MAX_HEIGHT) { RErrorCode = RERR_NOMEMORY; return NULL; } image = malloc(sizeof(RImage)); if (!image) { RErrorCode = RERR_NOMEMORY; return NULL; } memset(image, 0, sizeof(RImage)); image->width = width; image->height = height; image->format = alpha ? RRGBAFormat : RRGBFormat; image->refCount = 1; /* the +4 is to give extra bytes at the end of the buffer, * so that we can optimize image conversion for MMX(tm).. see convert.c */ image->data = malloc(width * height * (alpha ? 4 : 3) + 4); if (!image->data) { RErrorCode = RERR_NOMEMORY; free(image); image = NULL; } return image; } RImage *RRetainImage(RImage * image) { if (image) image->refCount++; return image; } void RReleaseImage(RImage * image) { assert(image != NULL); image->refCount--; if (image->refCount < 1) { free(image->data); free(image); } } RImage *RCloneImage(RImage * image) { RImage *new_image; assert(image != NULL); new_image = RCreateImage(image->width, image->height, HAS_ALPHA(image)); if (!new_image) return NULL; new_image->background = image->background; memcpy(new_image->data, image->data, image->width * image->height * (HAS_ALPHA(image) ? 4 : 3)); return new_image; } RImage *RGetSubImage(RImage * image, int x, int y, unsigned width, unsigned height) { int i, ofs; RImage *new_image; unsigned total_line_size, line_size; assert(image != NULL); assert(x >= 0 && y >= 0); assert(x < image->width && y < image->height); assert(width > 0 && height > 0); if (x + width > image->width) width = image->width - x; if (y + height > image->height) height = image->height - y; new_image = RCreateImage(width, height, HAS_ALPHA(image)); if (!new_image) return NULL; new_image->background = image->background; total_line_size = image->width * (HAS_ALPHA(image) ? 4 : 3); line_size = width * (HAS_ALPHA(image) ? 4 : 3); ofs = x * (HAS_ALPHA(image) ? 4 : 3) + y * total_line_size;; for (i = 0; i < height; i++) { memcpy(&new_image->data[i * line_size], &image->data[i * total_line_size + ofs], line_size); } return new_image; } /* *---------------------------------------------------------------------- * RCombineImages- * Combines two equal sized images with alpha image. The second * image will be placed on top of the first one. *---------------------------------------------------------------------- */ void RCombineImages(RImage * image, RImage * src) { assert(image->width == src->width); assert(image->height == src->height); if (!HAS_ALPHA(src)) { if (!HAS_ALPHA(image)) { memcpy(image->data, src->data, image->height * image->width * 3); } else { int x, y; unsigned char *d, *s; d = image->data; s = src->data; for (y = 0; y < image->height; y++) { for (x = 0; x < image->width; x++) { *d++ = *s++; *d++ = *s++; *d++ = *s++; *d++ = 255; } } } } else { register int i; unsigned char *d; unsigned char *s; int alpha, calpha; d = image->data; s = src->data; if (!HAS_ALPHA(image)) { for (i = 0; i < image->height * image->width; i++) { alpha = *(s + 3); calpha = 255 - alpha; *d = (((int)*d * calpha) + ((int)*s * alpha)) / 256; d++; s++; *d = (((int)*d * calpha) + ((int)*s * alpha)) / 256; d++; s++; *d = (((int)*d * calpha) + ((int)*s * alpha)) / 256; d++; s++; s++; } } else { RCombineAlpha(d, s, 1, image->width, image->height, 0, 0, 255); } } } void RCombineImagesWithOpaqueness(RImage * image, RImage * src, int opaqueness) { register int i; unsigned char *d; unsigned char *s; int c_opaqueness; assert(image->width == src->width); assert(image->height == src->height); d = image->data; s = src->data; c_opaqueness = 255 - opaqueness; #define OP opaqueness #define COP c_opaqueness if (!HAS_ALPHA(src)) { if (!HAS_ALPHA(image)) { for (i = 0; i < image->width * image->height; i++) { *d = (((int)*d * (int)COP) + ((int)*s * (int)OP)) / 256; d++; s++; *d = (((int)*d * (int)COP) + ((int)*s * (int)OP)) / 256; d++; s++; *d = (((int)*d * (int)COP) + ((int)*s * (int)OP)) / 256; d++; s++; } } else { RCombineAlpha(d, s, 0, image->width, image->height, 0, 0, OP); } } else { int tmp; if (!HAS_ALPHA(image)) { for (i = 0; i < image->width * image->height; i++) { tmp = (*(s + 3) * opaqueness) / 256; *d = (((int)*d * (255 - tmp)) + ((int)*s * tmp)) / 256; d++; s++; *d = (((int)*d * (255 - tmp)) + ((int)*s * tmp)) / 256; d++; s++; *d = (((int)*d * (255 - tmp)) + ((int)*s * tmp)) / 256; d++; s++; s++; } } else { RCombineAlpha(d, s, 1, image->width, image->height, 0, 0, opaqueness); } } #undef OP #undef COP } static int calculateCombineArea(RImage *des, int *sx, int *sy, unsigned int *swidth, unsigned int *sheight, int *dx, int *dy) { int width = (int)*swidth, height = (int)*sheight; if (*dx < 0) { *sx = -*dx; width = width + *dx; *dx = 0; } if (*dx + width > des->width) { width = des->width - *dx; } if (*dy < 0) { *sy = -*dy; height = height + *dy; *dy = 0; } if (*dy + height > des->height) { height = des->height - *dy; } if (height > 0 && width > 0) { *swidth = width; *sheight = height; return True; } return False; } void RCombineArea(RImage * image, RImage * src, int sx, int sy, unsigned width, unsigned height, int dx, int dy) { int x, y, dwi, swi; unsigned char *d; unsigned char *s; int alpha, calpha; if (!calculateCombineArea(image, &sx, &sy, &width, &height, &dx, &dy)) return; if (!HAS_ALPHA(src)) { if (!HAS_ALPHA(image)) { swi = src->width * 3; dwi = image->width * 3; s = src->data + (sy * (int)src->width + sx) * 3; d = image->data + (dy * (int)image->width + dx) * 3; for (y = 0; y < height; y++) { memcpy(d, s, width * 3); d += dwi; s += swi; } } else { swi = (src->width - width) * 3; dwi = (image->width - width) * 4; s = src->data + (sy * (int)src->width + sx) * 3; d = image->data + (dy * (int)image->width + dx) * 4; for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { *d++ = *s++; *d++ = *s++; *d++ = *s++; *d++ = 255; } d += dwi; s += swi; } } } else { int dalpha = HAS_ALPHA(image); swi = (src->width - width) * 4; s = src->data + (sy * (int)src->width + sx) * 4; if (dalpha) { dwi = (image->width - width) * 4; d = image->data + (dy * (int)image->width + dx) * 4; } else { dwi = (image->width - width) * 3; d = image->data + (dy * (int)image->width + dx) * 3; } if (!dalpha) { for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { alpha = *(s + 3); calpha = 255 - alpha; *d = (((int)*d * calpha) + ((int)*s * alpha)) / 256; s++; d++; *d = (((int)*d * calpha) + ((int)*s * alpha)) / 256; s++; d++; *d = (((int)*d * calpha) + ((int)*s * alpha)) / 256; s++; d++; s++; } d += dwi; s += swi; } } else { RCombineAlpha(d, s, 1, width, height, dwi, swi, 255); } } } void RCopyArea(RImage * image, RImage * src, int sx, int sy, unsigned width, unsigned height, int dx, int dy) { int x, y, dwi, swi; unsigned char *d; unsigned char *s; if (!calculateCombineArea(image, &sx, &sy, &width, &height, &dx, &dy)) return; if (!HAS_ALPHA(src)) { if (!HAS_ALPHA(image)) { swi = src->width * 3; dwi = image->width * 3; s = src->data + (sy * (int)src->width + sx) * 3; d = image->data + (dy * (int)image->width + dx) * 3; for (y = 0; y < height; y++) { memcpy(d, s, width * 3); d += dwi; s += swi; } } else { swi = (src->width - width) * 3; dwi = (image->width - width) * 4; s = src->data + (sy * (int)src->width + sx) * 3; d = image->data + (dy * (int)image->width + dx) * 4; for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { *d++ = *s++; *d++ = *s++; *d++ = *s++; d++; } d += dwi; s += swi; } } } else { int dalpha = HAS_ALPHA(image); swi = src->width * 4; s = src->data + (sy * (int)src->width + sx) * 4; if (dalpha) { dwi = image->width * 4; d = image->data + (dy * (int)image->width + dx) * 4; } else { dwi = image->width * 3; d = image->data + (dy * (int)image->width + dx) * 3; } if (dalpha) { for (y = 0; y < height; y++) { memcpy(d, s, width * 4); d += dwi; s += swi; } } else { for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { *d++ = *s++; *d++ = *s++; *d++ = *s++; s++; } d += dwi; s += swi; } } } } void RCombineAreaWithOpaqueness(RImage * image, RImage * src, int sx, int sy, unsigned width, unsigned height, int dx, int dy, int opaqueness) { int x, y, dwi, swi; int c_opaqueness; unsigned char *s, *d; int dalpha = HAS_ALPHA(image); int dch = (dalpha ? 4 : 3); if (!calculateCombineArea(image, &sx, &sy, &width, &height, &dx, &dy)) return; d = image->data + (dy * image->width + dx) * dch; dwi = (image->width - width) * dch; c_opaqueness = 255 - opaqueness; #define OP opaqueness #define COP c_opaqueness if (!HAS_ALPHA(src)) { s = src->data + (sy * src->width + sx) * 3; swi = (src->width - width) * 3; if (!dalpha) { for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { *d = (((int)*d * (int)COP) + ((int)*s * (int)OP)) / 256; s++; d++; *d = (((int)*d * (int)COP) + ((int)*s * (int)OP)) / 256; s++; d++; *d = (((int)*d * (int)COP) + ((int)*s * (int)OP)) / 256; s++; d++; } d += dwi; s += swi; } } else { RCombineAlpha(d, s, 0, width, height, dwi, swi, OP); } } else { int tmp; s = src->data + (sy * src->width + sx) * 4; swi = (src->width - width) * 4; if (!dalpha) { for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { tmp = (*(s + 3) * opaqueness) / 256; *d = (((int)*d * (255 - tmp)) + ((int)*s * tmp)) / 256; d++; s++; *d = (((int)*d * (255 - tmp)) + ((int)*s * tmp)) / 256; d++; s++; *d = (((int)*d * (255 - tmp)) + ((int)*s * tmp)) / 256; d++; s++; s++; } d += dwi; s += swi; } } else { RCombineAlpha(d, s, 1, width, height, dwi, swi, OP); } } #undef OP #undef COP } void RCombineImageWithColor(RImage * image, const RColor * color) { register int i; unsigned char *d; int alpha, nalpha, r, g, b; d = image->data; if (!HAS_ALPHA(image)) { /* Image has no alpha channel, so we consider it to be all 255. * Thus there are no transparent parts to be filled. */ return; } r = color->red; g = color->green; b = color->blue; for (i = 0; i < image->width * image->height; i++) { alpha = *(d + 3); nalpha = 255 - alpha; *d = (((int)*d * alpha) + (r * nalpha)) / 256; d++; *d = (((int)*d * alpha) + (g * nalpha)) / 256; d++; *d = (((int)*d * alpha) + (b * nalpha)) / 256; d++; d++; } } RImage *RMakeTiledImage(RImage * tile, unsigned width, unsigned height) { int x, y; unsigned w; unsigned long tile_size = tile->width * tile->height; unsigned long tx = 0; RImage *image; unsigned char *s, *d; if (width == tile->width && height == tile->height) image = RCloneImage(tile); else if (width <= tile->width && height <= tile->height) image = RGetSubImage(tile, 0, 0, width, height); else { int has_alpha = HAS_ALPHA(tile); image = RCreateImage(width, height, has_alpha); d = image->data; s = tile->data; for (y = 0; y < height; y++) { for (x = 0; x < width; x += tile->width) { w = (width - x < tile->width) ? width - x : tile->width; if (has_alpha) { w *= 4; memcpy(d, s + tx * 4, w); } else { w *= 3; memcpy(d, s + tx * 3, w); } d += w; } tx = (tx + tile->width) % tile_size; } } return image; } RImage *RMakeCenteredImage(RImage * image, unsigned width, unsigned height, const RColor * color) { int x, y, w, h, sx, sy; RImage *tmp; tmp = RCreateImage(width, height, HAS_ALPHA(image)); if (!tmp) { return NULL; } RFillImage(tmp, color); if (image->height < height) { h = image->height; y = (height - h) / 2; sy = 0; } else { sy = (image->height - height) / 2; y = 0; h = height; } if (image->width < width) { w = image->width; x = (width - w) / 2; sx = 0; } else { sx = (image->width - width) / 2; x = 0; w = width; } RCombineArea(tmp, image, sx, sy, w, h, x, y); return tmp; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/convolve.c�����������������������������������������������������������������0000644�0001750�0001750�00000005632�12214432632�014105� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <X11/Xlib.h> #include "wraster.h" /* *---------------------------------------------------------------------- * RBlurImage-- * Apply 3x3 1 1 1 low pass, convolution mask to image. * 1 2 1 * 1 1 1 /10 *---------------------------------------------------------------------- */ int RBlurImage(RImage * image) { register int x, y; register int tmp; unsigned char *ptr, *nptr; unsigned char *pptr = NULL, *tmpp; int ch = image->format == RRGBAFormat ? 4 : 3; pptr = malloc(image->width * ch); if (!pptr) { RErrorCode = RERR_NOMEMORY; return False; } #define MASK(prev, cur, next, ch)\ (*(prev-ch) + *prev + *(prev+ch)\ +*(cur-ch) + 2 * *cur + *(cur+ch)\ +*(next-ch) + *next + *(next+ch)) / 10 memcpy(pptr, image->data, image->width * ch); ptr = image->data; nptr = ptr + image->width * ch; tmpp = pptr; if (ch == 3) { ptr += 3; nptr += 3; pptr += 3; for (y = 1; y < image->height - 1; y++) { for (x = 1; x < image->width - 1; x++) { tmp = *ptr; *ptr = MASK(pptr, ptr, nptr, 3); *pptr = tmp; ptr++; nptr++; pptr++; tmp = *ptr; *ptr = MASK(pptr, ptr, nptr, 3); *pptr = tmp; ptr++; nptr++; pptr++; tmp = *ptr; *ptr = MASK(pptr, ptr, nptr, 3); *pptr = tmp; ptr++; nptr++; pptr++; } pptr = tmpp; ptr += 6; nptr += 6; pptr += 6; } } else { ptr += 4; nptr += 4; pptr += 4; for (y = 1; y < image->height - 1; y++) { for (x = 1; x < image->width - 1; x++) { tmp = *ptr; *ptr = MASK(pptr, ptr, nptr, 4); *pptr = tmp; ptr++; nptr++; pptr++; tmp = *ptr; *ptr = MASK(pptr, ptr, nptr, 4); *pptr = tmp; ptr++; nptr++; pptr++; tmp = *ptr; *ptr = MASK(pptr, ptr, nptr, 4); *pptr = tmp; ptr++; nptr++; pptr++; tmp = *ptr; *ptr = MASK(pptr, ptr, nptr, 4); *pptr = tmp; ptr++; nptr++; pptr++; } pptr = tmpp; ptr += 8; nptr += 8; pptr += 8; } } return True; } ������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/ChangeLog������������������������������������������������������������������0000644�0001750�0001750�00000004316�12214432632�013656� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������- removed obsoleted RDestroyImage() - removed Hermes code. - Put back asm/mmx optimized code. - fixed a bug in RCombineAreaWithOpaqueness() (Brad <lists@anomie.yi.org>) - Added retain/release mechanism to RImage by adding RRetainImage() and RReleaseImage(). RDestroyImage() is an alias to RReleaseImage() now, but will be removed in a future release because it no longer fits with the semantics. Will be kept for a while to allow a smoother transition. More about in NEWS - Fixed crashing for Pseudocolor visuals with BestMatchRendering - Small speed improvement for 24 and 32 bpp, if internal converter is used - Small speed improvement for generating gradients. - Fixed RSaveXPM() to output correct xpm images. - Fixed speckles (white dots) on dithered images (bug still present on the PowerPC architecture, because on LinuxPPC char is unsigned by default, not signed like on the other platforms). Bug fixed by Philip Derrin <philipd@student.unsw.edu.au> - Fixed not working Grayscale visual (was crashing) - Fixed wrong display of images with alpha in StaticGray and GrayScale visuals - fixed code dependant on the order of evaluation. code like *ptr++ = *ptr++ = *ptr++ = color; is wrong, because there is no guarantee that ptr will be incremented _between_ the assignment operations. it can be incremented after all assignment operations as well. Because of this both of these are valid implementations for a compiler: a. assign, increment, assign, increment, assign, increment b. assign, assign, assign, increment by 3 In case b. only the first memory location of the 3 will be modified, being assigned 3 times the same value, while the other 2 remain unchanged. For example egcs-2.91.66 (and possibly gcc-2.95.x too) implement this in the second way (like in case b.) Also the order in which the assignement is made is undefined (left to right or right to left). - added RMakeCenteredImage() - Added code to draw pixels and lines. Both writing absolute values, or offseting existing pixels with delta values are supported. - Remade the beveling code to be simpler, using the RAlterLine() functions. - Fixed some pixels in the bevels. - Changed RAlter* functions to more generic ROperate* ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/nxpm.c���������������������������������������������������������������������0000644�0001750�0001750�00000033176�12214432632�013240� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* nxpm.c - load "normalized" XPM image * * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <assert.h> #include <errno.h> #include "wraster.h" #include "imgformat.h" /* * Restricted support for XPM images. * * The images must be in the following "normalized" format: * * * line content * 1 signature comment * 2 ignored ( normally "static char *xpm[] = {" ) * 3 "width height color_count chars" where chars is 1 or 2 * 4 color definitions. Only c values with #rrggbb or #rrrrggggbbb * format OR None * n data * * - no comments or blank lines are allowed, except for the signature * - all lines must have at most 256 characters * - no white spaces allowed at left of each line */ #define LINEWIDTH 64 #ifndef USE_XPM static void free_color_symbol_table(unsigned char *color_table[], unsigned short *symbol_table) { if (color_table[0]) free(color_table[0]); if (color_table[1]) free(color_table[1]); if (color_table[2]) free(color_table[2]); if (color_table[3]) free(color_table[3]); if (symbol_table) free(symbol_table); } RImage *RGetImageFromXPMData(RContext * context, char **data) { RImage *image = NULL; unsigned char *color_table[4] = { NULL, NULL, NULL, NULL }; unsigned short *symbol_table = NULL; unsigned char *r, *g, *b, *a; int i, j, k, line = 0; int transp; unsigned short color; int bsize; int w, h, ccount, csize; if (sscanf(data[line++], "%i %i %i %i", &w, &h, &ccount, &csize) != 4 || w <= 0 || h <= 0 || ccount <= 0 || csize <= 0) goto bad_format; if (csize != 1 && csize != 2) goto bad_format; color_table[0] = malloc(ccount); color_table[1] = malloc(ccount); color_table[2] = malloc(ccount); color_table[3] = malloc(ccount); symbol_table = malloc(ccount * sizeof(unsigned short)); bsize = csize * w + 16; if (!color_table[0] || !color_table[1] || !color_table[2] || !color_table[3] || !symbol_table || !bsize) { RErrorCode = RERR_NOMEMORY; free_color_symbol_table(color_table, symbol_table); return NULL; } transp = 0; /* get color table */ for (i = 0; i < ccount; i++) { symbol_table[i] = data[line][0]; if (csize == 2) symbol_table[i] |= data[line][1] << 8; j = csize; while (data[line][j] != '#' && data[line][j] != 0 && data[line][j] != 'N') j++; if (data[line][j] == '#') { unsigned int red, green, blue; k = 0; j++; while (data[line][j + k] != 0) k++; if (k == 6) { if (sscanf(&(data[line][j]), "%2x%2x%2x", &red, &green, &blue) != 3) goto bad_format; } else if (k == 12) { if (sscanf(&(data[line][j]), "%4x%4x%4x", &red, &green, &blue) != 3) goto bad_format; red >>= 8; green >>= 8; blue >>= 8; } else goto bad_format; color_table[0][i] = red; color_table[1][i] = green; color_table[2][i] = blue; color_table[3][i] = 255; } else if (strncmp(&(data[line][j]), "None", 4) == 0 || strncmp(&(data[line][j]), "none", 4) == 0) { color_table[3][i] = 0; transp = 1; } else { goto bad_format; } line++; } image = RCreateImage(w, h, transp); if (!image) { free_color_symbol_table(color_table, symbol_table); return NULL; } r = image->data; g = image->data + 1; b = image->data + 2; if (image->format == RRGBAFormat) a = image->data + 3; else a = NULL; for (i = 0; i < h; i++) { if (csize == 1) { for (j = 0; j < w; j++) { color = data[line][j]; for (k = 0; k < ccount; k++) { if (symbol_table[k] == color) break; } if (k == ccount) k = 0; *r = color_table[0][k]; *g = color_table[1][k]; *b = color_table[2][k]; if (a) { *a = color_table[3][k]; r += 4; g += 4; b += 4; a += 4; } else { r += 3; g += 3; b += 3; } } } else { for (j = 0; j < w * 2; j++) { color = data[line][j++]; color |= data[line][j]; for (k = 0; k < ccount; k++) { if (symbol_table[k] == color) break; } if (k == ccount) k = 0; *r = color_table[0][k]; *g = color_table[1][k]; *b = color_table[2][k]; if (a) { *a = color_table[3][k]; r += 4; g += 4; b += 4; a += 4; } else { r += 3; g += 3; b += 3; } } } line++; } free_color_symbol_table(color_table, symbol_table); return image; bad_format: RErrorCode = RERR_BADIMAGEFILE; free_color_symbol_table(color_table, symbol_table); if (image) RReleaseImage(image); return NULL; } RImage *RLoadXPM(RContext * context, const char *file) { RImage *image = NULL; char line[LINEWIDTH + 1]; char *buffer = NULL; unsigned char *color_table[4] = { NULL, NULL, NULL, NULL }; unsigned short *symbol_table = NULL; unsigned char *r, *g, *b, *a; int i, j, k; int transp; unsigned short color; int bsize; int w, h, ccount, csize; FILE *f; f = fopen(file, "rb"); if (!f) { RErrorCode = RERR_OPEN; return NULL; } /* sig */ if (!fgets(line, LINEWIDTH, f)) goto bad_file; /* declaration */ if (!fgets(line, LINEWIDTH, f)) goto bad_file; /* data */ if (!fgets(line, LINEWIDTH, f)) goto bad_file; if (line[0] == '/') if (!fgets(line, LINEWIDTH, f)) goto bad_file; if (sscanf(line, "\"%i %i %i %i\"", &w, &h, &ccount, &csize) != 4 || w <= 0 || h <= 0 || ccount <= 0 || csize <= 0) goto bad_file; if (csize != 1 && csize != 2) goto bad_format; color_table[0] = malloc(ccount); color_table[1] = malloc(ccount); color_table[2] = malloc(ccount); color_table[3] = malloc(ccount); symbol_table = malloc(ccount * sizeof(unsigned short)); bsize = csize * w + 16; buffer = malloc(bsize); if (!color_table[0] || !color_table[1] || !color_table[2] || !color_table[3] || !symbol_table || !bsize || !buffer) { RErrorCode = RERR_NOMEMORY; fclose(f); free_color_symbol_table(color_table, symbol_table); if (buffer) free(buffer); return NULL; } transp = 0; /* get color table */ for (i = 0; i < ccount; i++) { if (!fgets(line, LINEWIDTH, f)) goto bad_file; if (line[0] == '/') if (!fgets(line, LINEWIDTH, f)) goto bad_file; symbol_table[i] = line[1]; if (csize == 2) symbol_table[i] |= line[2] << 8; j = csize + 1; while (line[j] != '#' && line[j] != '"' && line[j] != 0 && line[j] != 'N') j++; if (line[j] == '#') { unsigned int red, green, blue; k = 0; j++; while (line[j + k] != '"' && line[j + k] != 0) k++; if (k == 6) { if (sscanf(&(line[j]), "%2x%2x%2x", &red, &green, &blue) != 3) goto bad_format; } else if (k == 12) { if (sscanf(&(line[j]), "%4x%4x%4x", &red, &green, &blue) != 3) goto bad_format; red >>= 8; green >>= 8; blue >>= 8; } else goto bad_format; color_table[0][i] = red; color_table[1][i] = green; color_table[2][i] = blue; color_table[3][i] = 255; } else if (strncmp(&(line[j]), "None", 4) == 0 || strncmp(&(line[j]), "none", 4) == 0) { color_table[3][i] = 0; transp = 1; } else { goto bad_format; } } image = RCreateImage(w, h, transp); if (!image) { fclose(f); free_color_symbol_table(color_table, symbol_table); if (buffer) free(buffer); return NULL; } r = image->data; g = image->data + 1; b = image->data + 2; if (image->format == RRGBAFormat) a = image->data + 3; else a = NULL; for (i = 0; i < h; i++) { if (!fgets(buffer, bsize, f)) goto bad_file; if (buffer[0] == '/') if (!fgets(buffer, bsize, f)) goto bad_file; if (csize == 1) { for (j = 1; j <= w; j++) { color = buffer[j]; for (k = 0; k < ccount; k++) { if (symbol_table[k] == color) break; } if (k == ccount) k = 0; *r = color_table[0][k]; *g = color_table[1][k]; *b = color_table[2][k]; if (a) { *a = color_table[3][k]; r += 4; g += 4; b += 4; a += 4; } else { r += 3; g += 3; b += 3; } } } else { for (j = 1; j <= w * 2; j++) { color = buffer[j++]; color |= buffer[j] << 8; for (k = 0; k < ccount; k++) { if (symbol_table[k] == color) break; } if (k == ccount) { k = 0; } *r = color_table[0][k]; *g = color_table[1][k]; *b = color_table[2][k]; if (a) { *a = color_table[3][k]; r += 4; g += 4; b += 4; a += 4; } else { r += 3; g += 3; b += 3; } } } } fclose(f); free_color_symbol_table(color_table, symbol_table); if (buffer) free(buffer); return image; bad_format: RErrorCode = RERR_BADIMAGEFILE; fclose(f); free_color_symbol_table(color_table, symbol_table); if (buffer) free(buffer); if (image) RReleaseImage(image); return NULL; bad_file: RErrorCode = RERR_BADIMAGEFILE; fclose(f); free_color_symbol_table(color_table, symbol_table); if (buffer) free(buffer); if (image) RReleaseImage(image); return NULL; } #endif typedef struct XPMColor { unsigned char red; unsigned char green; unsigned char blue; int index; struct XPMColor *next; } XPMColor; #define I2CHAR(i) ((i)<12 ? (i)+'0' : ((i)<38 ? (i)+'A'-12 : (i)+'a'-38)) #define CINDEX(xpmc) (((unsigned)(xpmc)->red)<<16|((unsigned)(xpmc)->green)<<8|((unsigned)(xpmc)->blue)) static XPMColor *lookfor(XPMColor * list, int index) { if (!list) return NULL; for (; list != NULL; list = list->next) { if (CINDEX(list) == index) return list; } return NULL; } /* * Looks for the color in the colormap and inserts if it is not found. * * list is a binary search list. The unbalancing problem is just ignored. * * Returns False on error */ static Bool addcolor(XPMColor ** list, unsigned r, unsigned g, unsigned b, int *colors) { XPMColor *tmpc; XPMColor *newc; int index; index = r << 16 | g << 8 | b; tmpc = *list; tmpc = lookfor(*list, index); if (tmpc) return True; newc = malloc(sizeof(XPMColor)); if (!newc) { RErrorCode = RERR_NOMEMORY; return False; } newc->red = r; newc->green = g; newc->blue = b; newc->next = *list; *list = newc; (*colors)++; return True; } static char *index2str(char *buffer, int index, int charsPerPixel) { int i; for (i = 0; i < charsPerPixel; i++) { buffer[i] = I2CHAR(index & 63); index >>= 6; } buffer[i] = 0; return buffer; } static void outputcolormap(FILE * file, XPMColor * colormap, int charsPerPixel) { int index; char buf[128]; if (!colormap) return; for (index = 0; colormap != NULL; colormap = colormap->next, index++) { colormap->index = index; fprintf(file, "\"%s c #%02x%02x%02x\",\n", index2str(buf, index, charsPerPixel), colormap->red, colormap->green, colormap->blue); } } static void freecolormap(XPMColor * colormap) { XPMColor *tmp; while (colormap) { tmp = colormap->next; free(colormap); colormap = tmp; } } /* save routine is common to internal support and library support */ Bool RSaveXPM(RImage * image, const char *filename) { FILE *file; int x, y; int colorCount = 0; int charsPerPixel; XPMColor *colormap = NULL; XPMColor *tmpc; int i; int ok = 0; unsigned char *r, *g, *b, *a; char transp[16]; char buf[128]; file = fopen(filename, "wb+"); if (!file) { RErrorCode = RERR_OPEN; return False; } fprintf(file, "/* XPM */\n"); fprintf(file, "static char *image[] = {\n"); r = image->data; g = image->data + 1; b = image->data + 2; if (image->format == RRGBAFormat) a = image->data + 3; else a = NULL; /* first pass: make colormap for the image */ if (a) colorCount = 1; for (y = 0; y < image->height; y++) { for (x = 0; x < image->width; x++) { if (!a || *a > 127) { if (!addcolor(&colormap, *r, *g, *b, &colorCount)) { goto uhoh; } } if (a) { r += 4; g += 4; b += 4; a += 4; } else { r += 3; g += 3; b += 3; } } } charsPerPixel = 1; while ((1 << charsPerPixel * 6) < colorCount) charsPerPixel++; /* write header info */ fprintf(file, "\"%i %i %i %i\",\n", image->width, image->height, colorCount, charsPerPixel); /* write colormap data */ if (a) { for (i = 0; i < charsPerPixel; i++) transp[i] = ' '; transp[i] = 0; fprintf(file, "\"%s c None\",\n", transp); } i = 0; outputcolormap(file, colormap, charsPerPixel); r = image->data; g = image->data + 1; b = image->data + 2; if (image->format == RRGBAFormat) a = image->data + 3; else a = NULL; /* write data */ for (y = 0; y < image->height; y++) { fprintf(file, "\""); for (x = 0; x < image->width; x++) { if (!a || *a > 127) { tmpc = lookfor(colormap, (unsigned)*r << 16 | (unsigned)*g << 8 | (unsigned)*b); fprintf(file, "%s", index2str(buf, tmpc->index, charsPerPixel)); } else { fprintf(file, "%s", transp); } if (a) { r += 4; g += 4; b += 4; a += 4; } else { r += 3; g += 3; b += 3; } } if (y < image->height - 1) fprintf(file, "\",\n"); else fprintf(file, "\"};\n"); } ok = 1; uhoh: errno = 0; fclose(file); if (ok && errno == ENOSPC) { RErrorCode = RERR_WRITE; } freecolormap(colormap); return ok ? True : False; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/imgformat.h����������������������������������������������������������������0000644�0001750�0001750�00000003632�12214432632�014242� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Raster graphics library * * Copyright (c) 1997-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ /* * Functions to load and save RImage from/to file in a specific file format * * These functions are for WRaster library's internal use only, please use * the RLoadImage function defined in 'wraster.h' */ #ifndef IMGFORMAT_INTERNAL_H #define IMGFORMAT_INTERNAL_H typedef enum { IM_ERROR = -1, IM_UNKNOWN = 0, IM_XPM = 1, IM_TIFF = 2, IM_PNG = 3, IM_PPM = 4, IM_JPEG = 5, IM_GIF = 6 } WRImgFormat; /* How many image types we have. */ /* Increase this when adding new image types! */ #define IM_TYPES 6 /* * Function for Loading in a specific format */ RImage *RLoadPPM(const char *file); RImage *RLoadXPM(RContext *context, const char *file); #ifdef USE_TIFF RImage *RLoadTIFF(const char *file, int index); #endif #ifdef USE_PNG RImage *RLoadPNG(RContext *context, const char *file); #endif #ifdef USE_JPEG RImage *RLoadJPEG(RContext *context, const char *file); #endif #ifdef USE_GIF RImage *RLoadGIF(const char *file, int index); #endif /* * Function for Saving in a specific format */ Bool RSaveXPM(RImage *image, const char *file); #endif ������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/color.c��������������������������������������������������������������������0000644�0001750�0001750�00000005167�12214432632�013373� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* color.c - color stuff (rgb -> hsv convertion etc.) * * Raster graphics library * * Copyright (c) 1998-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <X11/Xlib.h> #include <assert.h> #include "wraster.h" #define MIN(a,b) ((a)<(b) ? (a) : (b)) #define MAX(a,b) ((a)>(b) ? (a) : (b)) #define MIN3(a,b,c) MIN(MIN(a,b), c) #define MAX3(a,b,c) MAX(MAX(a,b), c) void RHSVtoRGB(const RHSVColor * hsv, RColor * rgb) { int h = hsv->hue % 360; int s = hsv->saturation; int v = hsv->value; int i, f; int p, q, t; if (s == 0) { rgb->red = rgb->green = rgb->blue = v; return; } i = h / 60; f = h % 60; p = v * (255 - s) / 255; q = v * (255 - s * f / 60) / 255; t = v * (255 - s * (60 - f) / 60) / 255; switch (i) { case 0: rgb->red = v; rgb->green = t; rgb->blue = p; break; case 1: rgb->red = q; rgb->green = v; rgb->blue = p; break; case 2: rgb->red = p; rgb->green = v; rgb->blue = t; break; case 3: rgb->red = p; rgb->green = q; rgb->blue = v; break; case 4: rgb->red = t; rgb->green = p; rgb->blue = v; break; case 5: rgb->red = v; rgb->green = p; rgb->blue = q; break; } } void RRGBtoHSV(const RColor * rgb, RHSVColor * hsv) { int h, s, v; int max = MAX3(rgb->red, rgb->green, rgb->blue); int min = MIN3(rgb->red, rgb->green, rgb->blue); v = max; if (max == 0) s = 0; else s = (max - min) * 255 / max; if (s == 0) h = 0; else { int rc, gc, bc; rc = (max - rgb->red) * 255 / (max - min); gc = (max - rgb->green) * 255 / (max - min); bc = (max - rgb->blue) * 255 / (max - min); if (rgb->red == max) { h = ((bc - gc) * 60 / 255); } else if (rgb->green == max) { h = 2 * 60 + ((rc - bc) * 60 / 255); } else { h = 4 * 60 + ((gc - rc) * 60 / 255); } if (h < 0) h += 360; } hsv->hue = h; hsv->saturation = s; hsv->value = v; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/rotate.c�������������������������������������������������������������������0000644�0001750�0001750�00000017277�12214432632�013560� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* rotate.c - image rotation * * Raster graphics library * * Copyright (c) 2000-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <X11/Xlib.h> #include "wraster.h" #include <math.h> #ifndef PI #define PI 3.14159265358979323846 #endif static RImage *rotateImage(RImage * image, float angle); RImage *RRotateImage(RImage * image, float angle) { RImage *img; int nwidth, nheight; int x, y; int bpp = image->format == RRGBAFormat ? 4 : 3; /* * Angle steps below this value would represent a rotation * of less than 1 pixel for a 4k wide image, so not worth * bothering the difference. That makes it a perfect * candidate for an Epsilon when trying to compare angle * to known values */ static const float min_usable_angle = 0.00699; angle = fmod(angle, 360.0); if (angle < 0.0) angle += 360.0; if (angle < min_usable_angle) { /* Rotate by 0 degree */ return RCloneImage(image); } else if ((angle > 90.0 - min_usable_angle) && (angle < 90.0 + min_usable_angle)) { nwidth = image->height; nheight = image->width; img = RCreateImage(nwidth, nheight, True); if (!img) { return NULL; } if (bpp == 3) { unsigned char *optr, *nptr; unsigned offs; offs = nwidth * 4; optr = image->data; nptr = img->data; for (x = 0; x < nwidth; x++) { nptr = img->data + x * 4; for (y = nheight; y; y--) { nptr[0] = *optr++; nptr[1] = *optr++; nptr[2] = *optr++; nptr[3] = 255; nptr += offs; } } } else { unsigned *optr, *nptr; unsigned *p; optr = (unsigned *)image->data; p = (unsigned *)img->data; for (x = 0; x < nwidth; x++) { nptr = p++; for (y = nheight; y; y--) { *nptr = *optr++; nptr += nwidth; } } } } else if ((angle > 180.0 - min_usable_angle) && (angle < 180.0 + min_usable_angle)) { nwidth = image->width; nheight = image->height; img = RCreateImage(nwidth, nheight, True); if (!img) { return NULL; } if (bpp == 3) { unsigned char *optr, *nptr; optr = image->data; nptr = img->data + nwidth * nheight * 4 - 4; for (y = 0; y < nheight; y++) { for (x = 0; x < nwidth; x++) { nptr[0] = optr[0]; nptr[1] = optr[1]; nptr[2] = optr[2]; nptr[3] = 255; optr += 3; nptr -= 4; } } } else { unsigned *optr, *nptr; optr = (unsigned *)image->data; nptr = (unsigned *)img->data + nwidth * nheight - 1; for (y = nheight * nwidth - 1; y >= 0; y--) { *nptr = *optr; optr++; nptr--; } } } else if ((angle > 270.0 - min_usable_angle) && (angle < 270.0 + min_usable_angle)) { nwidth = image->height; nheight = image->width; img = RCreateImage(nwidth, nheight, True); if (!img) { return NULL; } if (bpp == 3) { unsigned char *optr, *nptr; unsigned offs; offs = nwidth * 4; optr = image->data; nptr = img->data; for (x = 0; x < nwidth; x++) { nptr = img->data + x * 4; for (y = nheight; y; y--) { nptr[0] = *optr++; nptr[1] = *optr++; nptr[2] = *optr++; nptr[3] = 255; nptr += offs; } } } else { unsigned *optr, *nptr; unsigned *p; optr = (unsigned *)image->data; p = (unsigned *)img->data + nwidth * nheight; for (x = 0; x < nwidth; x++) { nptr = p--; for (y = nheight; y; y--) { *nptr = *optr++; nptr -= nwidth; } } } } else { img = rotateImage(image, angle); } return img; } /* * Image rotation through Bresenham's line algorithm: * * If a square must be rotate by angle a, like in: * _______ * | B | * | /4\ | * | /3 8\| * | /2 7 /| * |A1 6 / | A_______B * | \5 / a| <--- |1 2 3 4| * |__C/_)_| |5 6 7 8| * C------- * * for each point P1 in the line from C to A * for each point P2 in the perpendicular line starting at P1 * get pixel from the source and plot at P2 * increment pixel location from source * */ static void copyLine(int x1, int y1, int x2, int y2, int nwidth, int format, unsigned char *dst, unsigned char **src) { unsigned char *s = *src; int dx, dy; int xi, yi; int offset; int dpr, dpru, p; dx = abs(x2 - x1); dy = abs(y2 - y1); if (x1 > x2) xi = -1; else xi = 1; if (y1 > y2) yi = -1; else yi = 1; if (dx >= dy) { dpr = dy << 1; dpru = dpr - (dx << 1); p = dpr - dx; while (dx-- >= 0) { /* fetch and draw the pixel */ offset = (x1 + y1 * nwidth) << 2; dst[offset++] = *s++; dst[offset++] = *s++; dst[offset++] = *s++; if (format == RRGBAFormat) dst[offset++] = *s++; else dst[offset++] = 255; /* calc next step */ if (p > 0) { x1 += xi; y1 += yi; p += dpru; } else { x1 += xi; p += dpr; } } } else { dpr = dx << 1; dpru = dpr - (dy << 1); p = dpr - dy; while (dy-- >= 0) { /* fetch and draw the pixel */ offset = (x1 + y1 * nwidth) << 2; dst[offset++] = *s++; dst[offset++] = *s++; dst[offset++] = *s++; if (format == RRGBAFormat) dst[offset++] = *s++; else dst[offset++] = 255; /* calc next step */ if (p > 0) { x1 += xi; y1 += yi; p += dpru; } else { y1 += yi; p += dpr; } } } *src = s; } static RImage *rotateImage(RImage * image, float angle) { RImage *img; int nwidth, nheight; int x1, y1; int x2, y2; int dx, dy; int xi, yi; int xx, yy; unsigned char *src, *dst; int dpr, dpru, p; /* only 180o for now */ if (angle > 180.0) angle -= 180.0; angle = (angle * PI) / 180.0; nwidth = ceil(abs(cos(angle) * image->width)) + ceil(abs(cos(PI / 2 - angle) * image->width)); nheight = ceil(abs(sin(angle) * image->height)) + ceil(abs(cos(PI / 2 - angle) * image->height)); img = RCreateImage(nwidth, nheight, True); if (!img) return NULL; src = image->data; dst = img->data; x1 = floor(abs(cos(PI / 2 - angle) * image->width)); y1 = 0; x2 = 0; y2 = floor(abs(sin(PI / 2 - angle) * image->width)); xx = floor(abs(cos(angle) * image->height)) - 1; yy = nheight - 1; printf("%ix%i, %i %i %i %i %i\n", nwidth, nheight, x1, y1, x2, y2, (int)((angle * 180.0) / PI)); dx = abs(x2 - x1); dy = abs(y2 - y1); if (x1 > x2) xi = -1; else xi = 1; if (y1 > y2) yi = -1; else yi = 1; if (dx >= dy) { dpr = dy << 1; dpru = dpr - (dx << 1); p = dpr - dx; while (dx-- >= 0) { copyLine(x1, y1, xx, yy, nwidth, image->format, dst, &src); /* calc next step */ if (p > 0) { x1 += xi; y1 += yi; xx += xi; yy += yi; p += dpru; } else { x1 += xi; xx += xi; p += dpr; } } } else { puts("NOT IMPLEMTENED"); return img; dpr = dx << 1; dpru = dpr - (dy << 1); p = dpr - dy; while (dy-- >= 0) { xx = abs(x1 * sin(angle * PI / 180.0)); yy = abs(y1 * cos(angle * PI / 180.0)); copyLine(x1, y1, xx, yy, nwidth, image->format, dst, &src); /* calc next step */ if (p > 0) { x1 += xi; y1 += yi; p += dpru; } else { y1 += yi; p += dpr; } } } return img; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/libwraster.map�������������������������������������������������������������0000644�0001750�0001750�00000004227�12214432632�014762� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* libwraster.map - libtool symbol version script for libwraster * Copyright (c) 2010 Andreas Metzler * * This file is part of the Raster graphics library * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see <http://www.gnu.org/licenses/>. */ LIBWRASTER3 { global: RBevelImage; RBlurImage; RClearImage; RCloneImage; RCombineArea; RCombineAreaWithOpaqueness; RCombineImages; RCombineImagesWithOpaqueness; RCombineImageWithColor; RConvertImage; RConvertImageMask; RCopyArea; RCreateContext; RCreateImage; RCreateImageFromDrawable; RCreateImageFromXImage; RCreateXImage; RDestroyXImage; RDrawLine; RDrawLines; RDrawSegments; RErrorCode; RFillImage; RGetClosestXColor; RGetImageFileFormat; RGetImageFromXPMData; RGetPixel; RGetSubImage; RGetXImage; RHSVtoRGB; RLightImage; RLoadImage; RMakeCenteredImage; RMakeTiledImage; RMessageForError; ROperateLine; ROperateLines; ROperatePixel; ROperatePixels; ROperateSegments; RPutPixel; RPutPixels; RPutXImage; RReleaseImage; RRenderGradient; RRenderInterwovenGradient; RRenderMultiGradient; RRetainImage; RRGBtoHSV; RRotateImage; RSaveImage; RScaleImage; RSmoothScaleImage; RSupportedFileFormats; local: # _edata # _end # _fini # _init # __bss_start # calculateCombineArea # contrib # R_CreateXImageMappedPixmap # RLoadGIF # RLoadJPEG # RLoadPNG # RLoadPPM # RLoadTIFF # RLoadXPM # RSaveXPM # _wraster_change_filter # WRasterLibVersion *; }; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/save.c���������������������������������������������������������������������0000644�0001750�0001750�00000002420�12214432632�013200� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* save.c - save image to file * * Raster graphics library * * Copyright (c) 1998-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #include <X11/Xlib.h> #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <sys/stat.h> #include <string.h> #include <time.h> #include "wraster.h" #include "imgformat.h" Bool RSaveImage(RImage * image, const char *filename, const char *format) { if (strcmp(format, "XPM") != 0) { RErrorCode = RERR_BADFORMAT; return False; } return RSaveXPM(image, filename); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/alpha_combine.c������������������������������������������������������������0000644�0001750�0001750�00000003441�12214432632�015027� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* alpha_combine.c - Alpha channel combination, based on Gimp 1.1.24 * The GIMP -- an image manipulation program * Copyright (C) 1995 Spencer Kimball and Peter Mattis * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include "wraster.h" void RCombineAlpha(unsigned char *d, unsigned char *s, int s_has_alpha, int width, int height, int dwi, int swi, int opacity) { int x, y; int t, sa; int alpha; float ratio, cratio; for (y=0; y<height; y++) { for (x=0; x<width; x++) { sa=s_has_alpha?*(s+3):255; if (opacity!=255) { t = sa * opacity + 0x80; sa = ((t>>8)+t)>>8; } t = *(d+3) * (255-sa) + 0x80; alpha = sa + (((t>>8)+t)>>8); if (sa==0 || alpha==0) { ratio = 0; cratio = 1.0; } else if(sa == alpha) { ratio = 1.0; cratio = 0; } else { ratio = (float)sa / alpha; cratio = 1.0 - ratio; } *d = (int)*d * cratio + (int)*s * ratio; s++; d++; *d = (int)*d * cratio + (int)*s * ratio; s++; d++; *d = (int)*d * cratio + (int)*s * ratio; s++; d++; *d = alpha; d++; if (s_has_alpha) s++; } d+=dwi; s+=swi; } } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/INSTALL��������������������������������������������������������������������0000644�0001750�0001750�00000000040�12214432632�013123� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ./configure make make install ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/wrlib/gif.c����������������������������������������������������������������������0000644�0001750�0001750�00000011536�12214432632�013017� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gif.c - load GIF image from file * * Raster graphics library * * Copyright (c) 1998-2003 Alfredo K. Kojima * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include <config.h> #ifdef USE_GIF #include <stdlib.h> #include <stdio.h> #include <string.h> #include <gif_lib.h> #include "wraster.h" #include "imgformat.h" static int InterlacedOffset[] = { 0, 4, 2, 1 }; static int InterlacedJumps[] = { 8, 8, 4, 2 }; /* * Partially based on code in gif2rgb from giflib, by Gershon Elber. */ RImage *RLoadGIF(const char *file, int index) { RImage *image = NULL; unsigned char *cptr; GifFileType *gif = NULL; GifPixelType *buffer = NULL; int i, j, k; int width, height; GifRecordType recType; ColorMapObject *colormap; unsigned char rmap[256]; unsigned char gmap[256]; unsigned char bmap[256]; if (index < 0) index = 0; /* default error message */ RErrorCode = RERR_BADINDEX; gif = DGifOpenFileName(file); if (!gif) { switch (GifLastError()) { case D_GIF_ERR_OPEN_FAILED: RErrorCode = RERR_OPEN; break; case D_GIF_ERR_READ_FAILED: RErrorCode = RERR_READ; break; default: RErrorCode = RERR_BADIMAGEFILE; break; } return NULL; } if (gif->SWidth < 1 || gif->SHeight < 1) { DGifCloseFile(gif); RErrorCode = RERR_BADIMAGEFILE; return NULL; } colormap = gif->SColorMap; i = 0; do { int extCode; GifByteType *extension; if (DGifGetRecordType(gif, &recType) == GIF_ERROR) { goto giferr; } switch (recType) { case IMAGE_DESC_RECORD_TYPE: if (i++ != index) break; if (DGifGetImageDesc(gif) == GIF_ERROR) { goto giferr; } width = gif->Image.Width; height = gif->Image.Height; if (gif->Image.ColorMap) colormap = gif->Image.ColorMap; /* the gif specs talk about a default colormap, but it * doesnt say what the heck is this default colormap */ if (!colormap) { /* * Well, since the spec says the colormap can be anything, * lets just render it with whatever garbage the stack * has :) * goto bye; */ } else { for (j = 0; j < colormap->ColorCount; j++) { rmap[j] = colormap->Colors[j].Red; gmap[j] = colormap->Colors[j].Green; bmap[j] = colormap->Colors[j].Blue; } } buffer = malloc(width * sizeof(GifColorType)); if (!buffer) { RErrorCode = RERR_NOMEMORY; goto bye; } image = RCreateImage(width, height, False); if (!image) { goto bye; } if (gif->Image.Interlace) { int l; int pelsPerLine; if (RRGBAFormat == image->format) pelsPerLine = width * 4; else pelsPerLine = width * 3; for (j = 0; j < 4; j++) { for (k = InterlacedOffset[j]; k < height; k += InterlacedJumps[j]) { if (DGifGetLine(gif, buffer, width) == GIF_ERROR) { goto giferr; } cptr = image->data + (k * pelsPerLine); for (l = 0; l < width; l++) { int pixel = buffer[l]; *cptr++ = rmap[pixel]; *cptr++ = gmap[pixel]; *cptr++ = bmap[pixel]; } } } } else { cptr = image->data; for (j = 0; j < height; j++) { if (DGifGetLine(gif, buffer, width) == GIF_ERROR) { goto giferr; } for (k = 0; k < width; k++) { int pixel = buffer[k]; *cptr++ = rmap[pixel]; *cptr++ = gmap[pixel]; *cptr++ = bmap[pixel]; if (RRGBAFormat == image->format) cptr++; } } } break; case EXTENSION_RECORD_TYPE: /* skip all extension blocks */ if (DGifGetExtension(gif, &extCode, &extension) == GIF_ERROR) { goto giferr; } while (extension) { if (DGifGetExtensionNext(gif, &extension) == GIF_ERROR) { goto giferr; } } break; default: break; } } while (recType != TERMINATE_RECORD_TYPE && i <= index); /* yuck! */ goto did_not_get_any_errors; giferr: switch (GifLastError()) { case D_GIF_ERR_OPEN_FAILED: RErrorCode = RERR_OPEN; break; case D_GIF_ERR_READ_FAILED: RErrorCode = RERR_READ; break; default: RErrorCode = RERR_BADIMAGEFILE; break; } bye: if (image) RReleaseImage(image); image = NULL; did_not_get_any_errors: if (buffer) free(buffer); if (gif) DGifCloseFile(gif); return image; } #endif /* USE_GIF */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/config.sub�����������������������������������������������������������������������0000755�0001750�0001750�00000102425�12214434560�012752� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-06-11' # 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. # # 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 # 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to <config-patches@gnu.org>. Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # 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*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434644�013033� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/README����������������������������������������������������������������0000644�0001750�0001750�00000007512�12214432632�013633� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ WPrefs.app ========== The WindowMaker Prerefences Application WPrefs.app is the preferences "editor" for the WindowMaker window manager. It can be used to set most of the preference options of WindowMaker and define it's applications menu. It also can change some settings that do not belong to WindowMaker. Although WPrefs.app is designed to be easy to use, you should read the user guide to be fully aware of all available options and other features of WindowMaker that are not related to configuration. To run WPrefs, do not put it in your search path. Instead, run it with the full path, like /usr/local/GNUstep/Applications/WPrefs.app/WPrefs Then, dock it's application icon. The dock will automatically detect it's icon and use it. If you change configuration often, you might want to leave WPrefs always running, leaving it hidden while not in use. You can also make it be automatically started with WindowMaker and toggle the Start Hidden option in the attributes panel for the WPrefs window. Of course, it will use some memory, but by leaving it hidden it'll probably be swapped out and stay there until you unhide it. WPrefs is still under development. Some of the configuration options are not yet configurable from WPrefs, notably the appearance related options. It might contain bugs that can corrupt your configuration files, so backup the contents of the ~/GNUstep/Defaults directory before using it. License ------- Like Window Maker, WPrefs is distributed with through the General Public License (as stated in the file COPYING). Notes ----- The mouse speed configuration is saved as a call for xset in ~/G/D/L/W/autostart. WindowMaker calls this file when it is started. If you don't want or can't use the menu definition section, do not open it's section (or if you do open it, do not Save), or WPrefs will overwrite your ~/G/D/WMRootMenu file. Only options that have different values than what is found in the system-wide configuration file is saved. WPrefs only supports property list menus. If you have a plain text file menu, it will not be read by WPrefs. You can either recreate the menu from scratch or not use WPrefs for menu definition. The old menu will not be overwritten if you recreate it. Build ----- WPrefs will be built automatically and installed with the rest of WindowMaker. Customized Installation ----------------------- By default, WPrefs.app will be installed in the GNUstep applications directory, which is /usr/local/GNUstep/Applications. If you want to install it somewhere else, like in /some_weird_path/Applications, set the GNUSTEP_LOCAL_ROOT environment variable to some_weird_path before running configure for WindowMaker. You can also configure Window Maker supplying the --with-gnustepdir option to configure, like ./configure --with-gnustepdir=/usr/GNUstep/Applications If you change your mind after installing, you can move the .app directory to one of the following GNUstep/Applications directories: /usr/GNUstep/Applications OR /usr/local/GNUstep/Applications OR ~/GNUstep/Applications Credits ------- User interface design, programming and a few icons: Alfredo K. Kojima <kojima@windowmaker.info> Additional programming: James Thompson <jamest@math.ksu.edu> Dan Pascu <dan@windowmaker.info> ]d <id@windowmaker.info> Icon and image artwork: Jesse Kaufman <glandix@linuxfreak.com> Marco van Hylckama Vlieg <marco@windowmaker.info> See details in README in tiff/ directory WindowMaker ----------- If for some weird reason you end up with this preferences program and don't have Window Maker yet, you can get more information about it at http://windowmaker.info and download it at ftp://ftp.windowmaker.info Contact ------- Send comments and bug reports to kojima@windowmaker.info Use the WindowMaker BUGFORM to report bugs. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/TexturePanel.c��������������������������������������������������������0000644�0001750�0001750�00000117735�12214432632�015550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* TexturePanel.c- texture editting panel * * WPrefs - WindowMaker Preferences Program * * Copyright (c) 1998-2003 Alfredo K. Kojima * Copyright (c) 1998 James Thompson * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <ctype.h> #include <X11/Xlib.h> #include <WINGs/WINGs.h> #include "WPrefs.h" #include "TexturePanel.h" #define MAX_SECTION_PARTS 5 typedef struct _TexturePanel { WMWindow *win; /* texture name */ WMFrame *nameF; WMTextField *nameT; /* texture type */ WMPopUpButton *typeP; /* default color */ WMFrame *defcF; WMColorWell *defcW; WMFont *listFont; /*-- Gradient --*/ Pixmap gimage; /* colors */ WMFrame *gcolF; WMList *gcolL; WMButton *gcolaB; WMButton *gcoldB; WMSlider *ghueS; WMSlider *gsatS; WMSlider *gvalS; WMSlider *gbriS; WMSlider *gconS; /* direction (common) */ WMFrame *dirF; WMButton *dirhB; WMButton *dirvB; WMButton *dirdB; /*-- Simple Gradient --*/ /*-- Textured Gradient --*/ WMFrame *tcolF; WMColorWell *tcol1W; WMColorWell *tcol2W; WMFrame *topaF; WMSlider *topaS; /*-- Image --*/ WMFrame *imageF; WMScrollView *imageV; WMTextField *imageT; WMLabel *imageL; WMButton *browB; WMButton *dispB; WMPopUpButton *arrP; RImage *image; char *imageFile; /*****/ WMButton *okB; WMButton *cancelB; WMCallback *okAction; void *okData; WMCallback *cancelAction; void *cancelData; /****/ WMWidget *sectionParts[5][MAX_SECTION_PARTS]; int currentType; WMPropList *pathList; } _TexturePanel; #define TYPE_SOLID 0 #define TYPE_GRADIENT 1 #define TYPE_SGRADIENT 2 #define TYPE_TGRADIENT 3 #define TYPE_PIXMAP 4 #define PTYPE_TILE 0 #define PTYPE_SCALE 1 #define PTYPE_CENTER 2 #define PTYPE_MAXIMIZE 3 /* *-------------------------------------------------------------------------- * Private Functions *-------------------------------------------------------------------------- */ /************/ static void updateGradButtons(TexturePanel * panel) { RImage *image; WMPixmap *pixmap; int colorn; RColor **colors; colorn = WMGetListNumberOfRows(panel->gcolL); if (colorn < 1) { pixmap = NULL; } else { int i; WMListItem *item; colors = wmalloc(sizeof(RColor *) * (colorn + 1)); for (i = 0; i < colorn; i++) { item = WMGetListItem(panel->gcolL, i); colors[i] = (RColor *) item->clientData; } colors[i] = NULL; image = RRenderMultiGradient(80, 30, colors, RHorizontalGradient); pixmap = WMCreatePixmapFromRImage(WMWidgetScreen(panel->gcolL), image, 128); RReleaseImage(image); WMSetButtonImage(panel->dirhB, pixmap); WMReleasePixmap(pixmap); image = RRenderMultiGradient(80, 30, colors, RVerticalGradient); pixmap = WMCreatePixmapFromRImage(WMWidgetScreen(panel->gcolL), image, 128); RReleaseImage(image); WMSetButtonImage(panel->dirvB, pixmap); WMReleasePixmap(pixmap); image = RRenderMultiGradient(80, 30, colors, RDiagonalGradient); pixmap = WMCreatePixmapFromRImage(WMWidgetScreen(panel->gcolL), image, 128); RReleaseImage(image); WMSetButtonImage(panel->dirdB, pixmap); WMReleasePixmap(pixmap); wfree(colors); } } static void updateTGradImage(TexturePanel * panel) { RImage *image, *gradient; WMPixmap *pixmap; RColor from; RColor to; WMColor *color; if (!panel->image) return; color = WMGetColorWellColor(panel->tcol1W); from.red = WMRedComponentOfColor(color) >> 8; from.green = WMGreenComponentOfColor(color) >> 8; from.blue = WMBlueComponentOfColor(color) >> 8; color = WMGetColorWellColor(panel->tcol2W); to.red = WMRedComponentOfColor(color) >> 8; to.green = WMGreenComponentOfColor(color) >> 8; to.blue = WMBlueComponentOfColor(color) >> 8; if (panel->image->width < 141 || panel->image->height < 91) { image = RMakeTiledImage(panel->image, 141, 91); } else { image = RCloneImage(panel->image); } if (WMGetButtonSelected(panel->dirhB)) { gradient = RRenderGradient(image->width, image->height, &from, &to, RHorizontalGradient); } else if (WMGetButtonSelected(panel->dirvB)) { gradient = RRenderGradient(image->width, image->height, &from, &to, RVerticalGradient); } else { gradient = RRenderGradient(image->width, image->height, &from, &to, RDiagonalGradient); } RCombineImagesWithOpaqueness(image, gradient, WMGetSliderValue(panel->topaS)); RReleaseImage(gradient); pixmap = WMCreatePixmapFromRImage(WMWidgetScreen(panel->win), image, 128); WMSetLabelImage(panel->imageL, pixmap); WMReleasePixmap(pixmap); WMResizeWidget(panel->imageL, image->width, image->height); RReleaseImage(image); } static void updateSGradButtons(TexturePanel * panel) { RImage *image; WMPixmap *pixmap; RColor from; RColor to; WMColor *color; color = WMGetColorWellColor(panel->tcol1W); from.red = WMRedComponentOfColor(color) >> 8; from.green = WMGreenComponentOfColor(color) >> 8; from.blue = WMBlueComponentOfColor(color) >> 8; color = WMGetColorWellColor(panel->tcol2W); to.red = WMRedComponentOfColor(color) >> 8; to.green = WMGreenComponentOfColor(color) >> 8; to.blue = WMBlueComponentOfColor(color) >> 8; image = RRenderGradient(80, 30, &from, &to, RHorizontalGradient); pixmap = WMCreatePixmapFromRImage(WMWidgetScreen(panel->gcolL), image, 128); RReleaseImage(image); WMSetButtonImage(panel->dirhB, pixmap); WMReleasePixmap(pixmap); image = RRenderGradient(80, 30, &from, &to, RVerticalGradient); pixmap = WMCreatePixmapFromRImage(WMWidgetScreen(panel->gcolL), image, 128); RReleaseImage(image); WMSetButtonImage(panel->dirvB, pixmap); WMReleasePixmap(pixmap); image = RRenderGradient(80, 30, &from, &to, RDiagonalGradient); pixmap = WMCreatePixmapFromRImage(WMWidgetScreen(panel->gcolL), image, 128); RReleaseImage(image); WMSetButtonImage(panel->dirdB, pixmap); WMReleasePixmap(pixmap); } /*********** Gradient ************/ static void updateSVSlider(WMSlider * sPtr, Bool saturation, WMFont * font, RHSVColor * hsv) { RImage *image; WMPixmap *pixmap; WMScreen *scr = WMWidgetScreen(sPtr); RColor from, to; RHSVColor tmp; char *buffer; tmp = *hsv; if (saturation) { tmp.saturation = 0; RHSVtoRGB(&tmp, &from); tmp.saturation = 255; RHSVtoRGB(&tmp, &to); } else { tmp.value = 0; RHSVtoRGB(&tmp, &from); tmp.value = 255; RHSVtoRGB(&tmp, &to); } image = RRenderGradient(130, 16, &from, &to, RHorizontalGradient); pixmap = WMCreatePixmapFromRImage(scr, image, 128); RReleaseImage(image); if (saturation) buffer = wstrdup(_("Saturation")); else buffer = wstrdup(_("Brightness")); if (hsv->value < 128 || !saturation) { WMColor *col = WMWhiteColor(scr); WMDrawString(scr, WMGetPixmapXID(pixmap), col, font, 2, (16 - WMFontHeight(font)) / 2 - 1, buffer, strlen(buffer)); WMReleaseColor(col); } else { WMColor *col = WMBlackColor(scr); WMDrawString(scr, WMGetPixmapXID(pixmap), col, font, 2, (16 - WMFontHeight(font)) / 2 - 1, buffer, strlen(buffer)); WMReleaseColor(col); } wfree(buffer); WMSetSliderImage(sPtr, pixmap); WMReleasePixmap(pixmap); } static void updateHueSlider(WMSlider * sPtr, WMFont * font, RHSVColor * hsv) { RColor *colors[8]; RImage *image; WMPixmap *pixmap; WMScreen *scr = WMWidgetScreen(sPtr); RHSVColor thsv; int i; thsv = *hsv; for (i = 0; i <= 6; i++) { thsv.hue = (360 * i) / 6; colors[i] = wmalloc(sizeof(RColor)); RHSVtoRGB(&thsv, colors[i]); } colors[i] = NULL; image = RRenderMultiGradient(130, 16, colors, RGRD_HORIZONTAL); pixmap = WMCreatePixmapFromRImage(scr, image, 128); RReleaseImage(image); if (hsv->value < 128) { WMColor *col = WMWhiteColor(scr); WMDrawString(scr, WMGetPixmapXID(pixmap), col, font, 2, (16 - WMFontHeight(font)) / 2 - 1, _("Hue"), strlen(_("Hue"))); WMReleaseColor(col); } else { WMColor *col = WMBlackColor(scr); WMDrawString(scr, WMGetPixmapXID(pixmap), col, font, 2, (16 - WMFontHeight(font)) / 2 - 1, _("Hue"), strlen(_("Hue"))); WMReleaseColor(col); } WMSetSliderImage(sPtr, pixmap); WMReleasePixmap(pixmap); for (i = 0; i <= 6; i++) wfree(colors[i]); } static void sliderChangeCallback(WMWidget * w, void *data) { TexturePanel *panel = (TexturePanel *) data; RHSVColor hsv; int row, rows; WMListItem *item; RColor **colors; int i; RImage *image; WMScreen *scr = WMWidgetScreen(w); hsv.hue = WMGetSliderValue(panel->ghueS); hsv.saturation = WMGetSliderValue(panel->gsatS); hsv.value = WMGetSliderValue(panel->gvalS); row = WMGetListSelectedItemRow(panel->gcolL); if (row >= 0) { RColor *rgb; item = WMGetListItem(panel->gcolL, row); rgb = (RColor *) item->clientData; RHSVtoRGB(&hsv, rgb); sprintf(item->text, "%02x,%02x,%02x", rgb->red, rgb->green, rgb->blue); } if (w == panel->ghueS) { updateSVSlider(panel->gsatS, True, panel->listFont, &hsv); updateSVSlider(panel->gvalS, False, panel->listFont, &hsv); } else if (w == panel->gsatS) { updateHueSlider(panel->ghueS, panel->listFont, &hsv); updateSVSlider(panel->gvalS, False, panel->listFont, &hsv); } else { updateHueSlider(panel->ghueS, panel->listFont, &hsv); updateSVSlider(panel->gsatS, True, panel->listFont, &hsv); } rows = WMGetListNumberOfRows(panel->gcolL); if (rows == 0) return; colors = wmalloc(sizeof(RColor *) * (rows + 1)); for (i = 0; i < rows; i++) { item = WMGetListItem(panel->gcolL, i); colors[i] = (RColor *) item->clientData; } colors[i] = NULL; if (panel->gimage != None) { XFreePixmap(WMScreenDisplay(scr), panel->gimage); } image = RRenderMultiGradient(30, i * WMGetListItemHeight(panel->gcolL), colors, RVerticalGradient); RConvertImage(WMScreenRContext(scr), image, &panel->gimage); RReleaseImage(image); wfree(colors); WMRedisplayWidget(panel->gcolL); updateGradButtons(panel); } static void paintGradListItem(WMList * lPtr, int index, Drawable d, char *text, int state, WMRect * rect) { TexturePanel *panel = (TexturePanel *) WMGetHangedData(lPtr); WMScreen *scr = WMWidgetScreen(lPtr); WMColor *white = WMWhiteColor(scr); WMColor *black = WMBlackColor(scr); WMColor *gray = WMGrayColor(scr); int width, height, x, y; Display *dpy; dpy = WMScreenDisplay(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 XFillRectangle(dpy, d, WMColorGC(gray), x, y, width, height); if (panel->gimage) { XCopyArea(WMScreenDisplay(scr), panel->gimage, d, WMColorGC(white), 0, height * index, 30, height, x + 5, y); } WMDrawString(scr, d, black, panel->listFont, x + 40, y + 1, text, strlen(text)); WMReleaseColor(white); WMReleaseColor(black); WMReleaseColor(gray); } static void gradAddCallback(WMWidget * w, void *data) { TexturePanel *panel = (TexturePanel *) data; WMListItem *item; int row; RColor *rgb; row = WMGetListSelectedItemRow(panel->gcolL) + 1; item = WMInsertListItem(panel->gcolL, row, "00,00,00"); rgb = wmalloc(sizeof(RColor)); item->clientData = rgb; WMSelectListItem(panel->gcolL, row); updateGradButtons(panel); sliderChangeCallback(panel->ghueS, panel); WMSetButtonEnabled(panel->okB, WMGetListNumberOfRows(panel->gcolL) > 1); } static void gradClickCallback(WMWidget * w, void *data) { TexturePanel *panel = (TexturePanel *) data; WMListItem *item; int row; RHSVColor hsv; row = WMGetListSelectedItemRow(w); if (row < 0) return; item = WMGetListItem(panel->gcolL, row); RRGBtoHSV((RColor *) item->clientData, &hsv); WMSetSliderValue(panel->ghueS, hsv.hue); WMSetSliderValue(panel->gsatS, hsv.saturation); WMSetSliderValue(panel->gvalS, hsv.value); sliderChangeCallback(panel->ghueS, panel); sliderChangeCallback(panel->gsatS, panel); } static void gradDeleteCallback(WMWidget * w, void *data) { TexturePanel *panel = (TexturePanel *) data; WMListItem *item; int row; row = WMGetListSelectedItemRow(panel->gcolL); if (row < 0) return; item = WMGetListItem(panel->gcolL, row); wfree(item->clientData); WMRemoveListItem(panel->gcolL, row); WMSelectListItem(panel->gcolL, row - 1); updateGradButtons(panel); gradClickCallback(panel->gcolL, panel); WMSetButtonEnabled(panel->okB, WMGetListNumberOfRows(panel->gcolL) > 1); } /*************** Simple Gradient ***************/ static void colorWellObserver(void *self, WMNotification * n) { updateSGradButtons(self); } static void opaqChangeCallback(WMWidget * w, void *data) { TexturePanel *panel = (TexturePanel *) data; updateTGradImage(panel); } /****************** Image ******************/ static void updateImage(TexturePanel * panel, const char *path) { WMScreen *scr = WMWidgetScreen(panel->win); RImage *image; WMPixmap *pixmap; WMSize size; if (path) { image = RLoadImage(WMScreenRContext(scr), path, 0); if (!image) { char *message; message = wstrconcat(_("Could not load the selected file: "), (char *)RMessageForError(RErrorCode)); WMRunAlertPanel(scr, panel->win, _("Error"), message, _("OK"), NULL, NULL); if (!panel->image) WMSetButtonEnabled(panel->okB, False); wfree(message); return; } WMSetButtonEnabled(panel->okB, True); if (panel->image) RReleaseImage(panel->image); panel->image = image; } else { image = panel->image; } if (WMGetPopUpButtonSelectedItem(panel->typeP) == TYPE_PIXMAP) { if (image) { pixmap = WMCreatePixmapFromRImage(scr, image, 128); size = WMGetPixmapSize(pixmap); WMSetLabelImage(panel->imageL, pixmap); WMResizeWidget(panel->imageL, size.width, size.height); WMReleasePixmap(pixmap); } } else { updateTGradImage(panel); } } static void browseImageCallback(WMWidget * w, void *data) { TexturePanel *panel = (TexturePanel *) data; WMOpenPanel *opanel; WMScreen *scr = WMWidgetScreen(w); static char *ipath = NULL; opanel = WMGetOpenPanel(scr); WMSetFilePanelCanChooseDirectories(opanel, False); WMSetFilePanelCanChooseFiles(opanel, True); if (!ipath) ipath = wstrdup(wgethomedir()); if (WMRunModalFilePanelForDirectory(opanel, panel->win, ipath, _("Open Image"), NULL)) { char *path, *fullpath; char *tmp, *tmp2; tmp = WMGetFilePanelFileName(opanel); if (!tmp) return; fullpath = tmp; wfree(ipath); ipath = fullpath; path = wstrdup(fullpath); tmp2 = strrchr(fullpath, '/'); if (tmp2) tmp2++; tmp = wfindfileinarray(panel->pathList, tmp2); if (tmp) { if (strcmp(fullpath, tmp) == 0) { wfree(path); path = tmp2; } wfree(tmp); } if (!RGetImageFileFormat(fullpath)) { WMRunAlertPanel(scr, panel->win, _("Error"), _("The selected file does not contain a supported image."), _("OK"), NULL, NULL); wfree(path); } else { updateImage(panel, fullpath); wfree(panel->imageFile); panel->imageFile = path; WMSetTextFieldText(panel->imageT, path); } } } static void buttonCallback(WMWidget * w, void *data) { TexturePanel *panel = (TexturePanel *) data; if (w == panel->okB) { (*panel->okAction) (panel->okData); } else { (*panel->cancelAction) (panel->cancelData); } } static void changeTypeCallback(WMWidget * w, void *data) { TexturePanel *panel = (TexturePanel *) data; int newType; int i; newType = WMGetPopUpButtonSelectedItem(w); if (newType == panel->currentType) return; if (panel->currentType >= 0) { for (i = 0; i < MAX_SECTION_PARTS; i++) { if (panel->sectionParts[panel->currentType][i] == NULL) break; WMUnmapWidget(panel->sectionParts[panel->currentType][i]); } } for (i = 0; i < MAX_SECTION_PARTS; i++) { if (panel->sectionParts[newType][i] == NULL) break; WMMapWidget(panel->sectionParts[newType][i]); } panel->currentType = newType; switch (newType) { case TYPE_SGRADIENT: updateSGradButtons(panel); WMSetButtonEnabled(panel->okB, True); break; case TYPE_GRADIENT: updateGradButtons(panel); WMSetButtonEnabled(panel->okB, WMGetListNumberOfRows(panel->gcolL) > 1); break; case TYPE_TGRADIENT: case TYPE_PIXMAP: updateImage(panel, NULL); WMSetButtonEnabled(panel->okB, panel->image != NULL); break; default: WMSetButtonEnabled(panel->okB, True); break; } } /* *-------------------------------------------------------------------------- * Public functions *-------------------------------------------------------------------------- */ void DestroyTexturePanel(TexturePanel * panel) { } void ShowTexturePanel(TexturePanel * panel) { Display *dpy = WMScreenDisplay(WMWidgetScreen(panel->win)); Screen *scr = DefaultScreenOfDisplay(dpy); WMSetWindowInitialPosition(panel->win, (WidthOfScreen(scr) - WMWidgetWidth(panel->win)) / 2, (HeightOfScreen(scr) - WMWidgetHeight(panel->win)) / 2); WMMapWidget(panel->win); } void HideTexturePanel(TexturePanel * panel) { WMUnmapWidget(panel->win); } void SetTexturePanelOkAction(TexturePanel * panel, WMCallback * action, void *clientData) { panel->okAction = action; panel->okData = clientData; } void SetTexturePanelCancelAction(TexturePanel * panel, WMCallback * action, void *clientData) { panel->cancelAction = action; panel->cancelData = clientData; } void SetTexturePanelTexture(TexturePanel * panel, const char *name, WMPropList * texture) { WMScreen *scr = WMWidgetScreen(panel->win); char *str, *type; WMPropList *p; WMColor *color; int i; char buffer[64]; int gradient = 0; WMSetTextFieldText(panel->nameT, name); if (!texture) return; p = WMGetFromPLArray(texture, 0); if (!p) { goto bad_texture; } type = WMGetFromPLString(p); /*............................................... */ if (strcasecmp(type, "solid") == 0) { WMSetPopUpButtonSelectedItem(panel->typeP, TYPE_SOLID); p = WMGetFromPLArray(texture, 1); if (!p) { str = "black"; } else { str = WMGetFromPLString(p); } color = WMCreateNamedColor(scr, str, False); WMSetColorWellColor(panel->defcW, color); WMReleaseColor(color); /*............................................... */ } else if (strcasecmp(type, "hgradient") == 0 || strcasecmp(type, "vgradient") == 0 || strcasecmp(type, "dgradient") == 0) { WMSetPopUpButtonSelectedItem(panel->typeP, TYPE_SGRADIENT); p = WMGetFromPLArray(texture, 1); if (!p) { str = "black"; } else { str = WMGetFromPLString(p); } color = WMCreateNamedColor(scr, str, False); WMSetColorWellColor(panel->tcol1W, color); WMReleaseColor(color); p = WMGetFromPLArray(texture, 2); if (!p) { str = "black"; } else { str = WMGetFromPLString(p); } color = WMCreateNamedColor(scr, str, False); WMSetColorWellColor(panel->tcol2W, color); WMReleaseColor(color); gradient = type[0]; /*............................................... */ } else if (strcasecmp(type, "thgradient") == 0 || strcasecmp(type, "tvgradient") == 0 || strcasecmp(type, "tdgradient") == 0) { int i; WMSetPopUpButtonSelectedItem(panel->typeP, TYPE_TGRADIENT); gradient = type[1]; WMSetTextFieldText(panel->imageT, WMGetFromPLString(WMGetFromPLArray(texture, 1))); if (panel->imageFile) wfree(panel->imageFile); panel->imageFile = wstrdup(WMGetFromPLString(WMGetFromPLArray(texture, 1))); i = 180; sscanf(WMGetFromPLString(WMGetFromPLArray(texture, 2)), "%i", &i); WMSetSliderValue(panel->topaS, i); p = WMGetFromPLArray(texture, 3); if (!p) { str = "black"; } else { str = WMGetFromPLString(p); } color = WMCreateNamedColor(scr, str, False); WMSetColorWellColor(panel->tcol1W, color); WMReleaseColor(color); p = WMGetFromPLArray(texture, 4); if (!p) { str = "black"; } else { str = WMGetFromPLString(p); } color = WMCreateNamedColor(scr, str, False); WMSetColorWellColor(panel->tcol2W, color); WMReleaseColor(color); WMSetTextFieldText(panel->imageT, WMGetFromPLString(WMGetFromPLArray(texture, 1))); if (panel->imageFile) wfree(panel->imageFile); if ((panel->imageFile = wfindfileinarray(panel->pathList, WMGetFromPLString(WMGetFromPLArray(texture, 1)))) != NULL) { panel->image = RLoadImage(WMScreenRContext(scr), panel->imageFile, 0); updateTGradImage(panel); updateSGradButtons(panel); } else wwarning(_("could not load file '%s': %s"), panel->imageFile, RMessageForError(RErrorCode)); /*............................................... */ } else if (strcasecmp(type, "mhgradient") == 0 || strcasecmp(type, "mvgradient") == 0 || strcasecmp(type, "mdgradient") == 0) { WMListItem *item; for (i = 0; i < WMGetListNumberOfRows(panel->gcolL); i++) { item = WMGetListItem(panel->gcolL, i); wfree(item->clientData); } WMClearList(panel->gcolL); WMSetPopUpButtonSelectedItem(panel->typeP, TYPE_GRADIENT); p = WMGetFromPLArray(texture, 1); if (!p) { str = "black"; } else { str = WMGetFromPLString(p); } color = WMCreateNamedColor(scr, str, False); WMSetColorWellColor(panel->defcW, color); WMReleaseColor(color); for (i = 2; i < WMGetPropListItemCount(texture); i++) { RColor *rgb; XColor xcolor; p = WMGetFromPLArray(texture, i); if (!p) { str = "black"; } else { str = WMGetFromPLString(p); } XParseColor(WMScreenDisplay(scr), WMScreenRContext(scr)->cmap, str, &xcolor); rgb = wmalloc(sizeof(RColor)); rgb->red = xcolor.red >> 8; rgb->green = xcolor.green >> 8; rgb->blue = xcolor.blue >> 8; sprintf(buffer, "%02x,%02x,%02x", rgb->red, rgb->green, rgb->blue); item = WMAddListItem(panel->gcolL, buffer); item->clientData = rgb; } sliderChangeCallback(panel->ghueS, panel); gradient = type[1]; /*............................................... */ } else if (strcasecmp(type, "cpixmap") == 0 || strcasecmp(type, "spixmap") == 0 || strcasecmp(type, "mpixmap") == 0 || strcasecmp(type, "tpixmap") == 0) { WMSetPopUpButtonSelectedItem(panel->typeP, TYPE_PIXMAP); switch (toupper(type[0])) { case 'C': WMSetPopUpButtonSelectedItem(panel->arrP, PTYPE_CENTER); break; case 'S': WMSetPopUpButtonSelectedItem(panel->arrP, PTYPE_SCALE); break; case 'M': WMSetPopUpButtonSelectedItem(panel->arrP, PTYPE_MAXIMIZE); break; default: case 'T': WMSetPopUpButtonSelectedItem(panel->arrP, PTYPE_TILE); break; } WMSetTextFieldText(panel->imageT, WMGetFromPLString(WMGetFromPLArray(texture, 1))); if (panel->imageFile) wfree(panel->imageFile); panel->imageFile = wfindfileinarray(panel->pathList, WMGetFromPLString(WMGetFromPLArray(texture, 1))); color = WMCreateNamedColor(scr, WMGetFromPLString(WMGetFromPLArray(texture, 2)), False); WMSetColorWellColor(panel->defcW, color); WMReleaseColor(color); updateImage(panel, panel->imageFile); } changeTypeCallback(panel->typeP, panel); if (gradient > 0) { updateGradButtons(panel); switch (toupper(gradient)) { case 'H': WMPerformButtonClick(panel->dirhB); break; case 'V': WMPerformButtonClick(panel->dirvB); break; default: case 'D': WMPerformButtonClick(panel->dirdB); break; } } return; bad_texture: str = WMGetPropListDescription(texture, False); wwarning(_("error creating texture %s"), str); wfree(str); } char *GetTexturePanelTextureName(TexturePanel * panel) { return WMGetTextFieldText(panel->nameT); } WMPropList *GetTexturePanelTexture(TexturePanel * panel) { WMPropList *prop = NULL; WMColor *color; char *str, *str2; char buff[32]; int i; switch (WMGetPopUpButtonSelectedItem(panel->typeP)) { case TYPE_SOLID: color = WMGetColorWellColor(panel->defcW); str = WMGetColorRGBDescription(color); prop = WMCreatePLArray(WMCreatePLString("solid"), WMCreatePLString(str), NULL); wfree(str); break; case TYPE_PIXMAP: color = WMGetColorWellColor(panel->defcW); str = WMGetColorRGBDescription(color); switch (WMGetPopUpButtonSelectedItem(panel->arrP)) { case PTYPE_SCALE: prop = WMCreatePLArray(WMCreatePLString("spixmap"), WMCreatePLString(panel->imageFile), WMCreatePLString(str), NULL); break; case PTYPE_MAXIMIZE: prop = WMCreatePLArray(WMCreatePLString("mpixmap"), WMCreatePLString(panel->imageFile), WMCreatePLString(str), NULL); break; case PTYPE_CENTER: prop = WMCreatePLArray(WMCreatePLString("cpixmap"), WMCreatePLString(panel->imageFile), WMCreatePLString(str), NULL); break; case PTYPE_TILE: prop = WMCreatePLArray(WMCreatePLString("tpixmap"), WMCreatePLString(panel->imageFile), WMCreatePLString(str), NULL); break; } wfree(str); break; case TYPE_TGRADIENT: color = WMGetColorWellColor(panel->tcol1W); str = WMGetColorRGBDescription(color); color = WMGetColorWellColor(panel->tcol2W); str2 = WMGetColorRGBDescription(color); sprintf(buff, "%i", WMGetSliderValue(panel->topaS)); if (WMGetButtonSelected(panel->dirdB)) { prop = WMCreatePLArray(WMCreatePLString("tdgradient"), WMCreatePLString(panel->imageFile), WMCreatePLString(buff), WMCreatePLString(str), WMCreatePLString(str2), NULL); } else if (WMGetButtonSelected(panel->dirvB)) { prop = WMCreatePLArray(WMCreatePLString("tvgradient"), WMCreatePLString(panel->imageFile), WMCreatePLString(buff), WMCreatePLString(str), WMCreatePLString(str2), NULL); } else { prop = WMCreatePLArray(WMCreatePLString("thgradient"), WMCreatePLString(panel->imageFile), WMCreatePLString(buff), WMCreatePLString(str), WMCreatePLString(str2), NULL); } wfree(str); wfree(str2); break; case TYPE_SGRADIENT: color = WMGetColorWellColor(panel->tcol1W); str = WMGetColorRGBDescription(color); color = WMGetColorWellColor(panel->tcol2W); str2 = WMGetColorRGBDescription(color); if (WMGetButtonSelected(panel->dirdB)) { prop = WMCreatePLArray(WMCreatePLString("dgradient"), WMCreatePLString(str), WMCreatePLString(str2), NULL); } else if (WMGetButtonSelected(panel->dirvB)) { prop = WMCreatePLArray(WMCreatePLString("vgradient"), WMCreatePLString(str), WMCreatePLString(str2), NULL); } else { prop = WMCreatePLArray(WMCreatePLString("hgradient"), WMCreatePLString(str), WMCreatePLString(str2), NULL); } wfree(str); wfree(str2); break; case TYPE_GRADIENT: color = WMGetColorWellColor(panel->defcW); str = WMGetColorRGBDescription(color); if (WMGetButtonSelected(panel->dirdB)) { prop = WMCreatePLArray(WMCreatePLString("mdgradient"), WMCreatePLString(str), NULL); } else if (WMGetButtonSelected(panel->dirvB)) { prop = WMCreatePLArray(WMCreatePLString("mvgradient"), WMCreatePLString(str), NULL); } else { prop = WMCreatePLArray(WMCreatePLString("mhgradient"), WMCreatePLString(str), NULL); } wfree(str); for (i = 0; i < WMGetListNumberOfRows(panel->gcolL); i++) { RColor *rgb; WMListItem *item; item = WMGetListItem(panel->gcolL, i); rgb = (RColor *) item->clientData; sprintf(buff, "#%02x%02x%02x", rgb->red, rgb->green, rgb->blue); WMAddToPLArray(prop, WMCreatePLString(buff)); } break; } return prop; } void SetTexturePanelPixmapPath(TexturePanel * panel, WMPropList * array) { panel->pathList = array; } TexturePanel *CreateTexturePanel(WMWindow * keyWindow) /*CreateTexturePanel(WMScreen *scr)*/ { TexturePanel *panel; WMScreen *scr = WMWidgetScreen(keyWindow); panel = wmalloc(sizeof(TexturePanel)); panel->listFont = WMSystemFontOfSize(scr, 12); panel->win = WMCreatePanelWithStyleForWindow(keyWindow, "texturePanel", WMTitledWindowMask | WMClosableWindowMask); /* panel->win = WMCreateWindowWithStyle(scr, "texturePanel", WMTitledWindowMask |WMClosableWindowMask); */ WMResizeWidget(panel->win, 325, 423); WMSetWindowTitle(panel->win, _("Texture Panel")); WMSetWindowCloseAction(panel->win, buttonCallback, panel); /* texture name */ panel->nameF = WMCreateFrame(panel->win); WMResizeWidget(panel->nameF, 185, 50); WMMoveWidget(panel->nameF, 15, 10); WMSetFrameTitle(panel->nameF, _("Texture Name")); panel->nameT = WMCreateTextField(panel->nameF); WMResizeWidget(panel->nameT, 160, 20); WMMoveWidget(panel->nameT, 12, 18); WMMapSubwidgets(panel->nameF); /* texture types */ panel->typeP = WMCreatePopUpButton(panel->win); WMResizeWidget(panel->typeP, 185, 20); WMMoveWidget(panel->typeP, 15, 65); WMAddPopUpButtonItem(panel->typeP, _("Solid Color")); WMAddPopUpButtonItem(panel->typeP, _("Gradient Texture")); WMAddPopUpButtonItem(panel->typeP, _("Simple Gradient Texture")); WMAddPopUpButtonItem(panel->typeP, _("Textured Gradient")); WMAddPopUpButtonItem(panel->typeP, _("Image Texture")); WMSetPopUpButtonSelectedItem(panel->typeP, 0); WMSetPopUpButtonAction(panel->typeP, changeTypeCallback, panel); /* color */ panel->defcF = WMCreateFrame(panel->win); WMResizeWidget(panel->defcF, 100, 75); WMMoveWidget(panel->defcF, 210, 10); WMSetFrameTitle(panel->defcF, _("Default Color")); panel->defcW = WMCreateColorWell(panel->defcF); WMResizeWidget(panel->defcW, 60, 45); WMMoveWidget(panel->defcW, 20, 20); WMMapSubwidgets(panel->defcF); /****** Gradient ******/ panel->gcolF = WMCreateFrame(panel->win); WMResizeWidget(panel->gcolF, 295, 205); WMMoveWidget(panel->gcolF, 15, 95); WMSetFrameTitle(panel->gcolF, _("Gradient Colors")); panel->gcolL = WMCreateList(panel->gcolF); WMResizeWidget(panel->gcolL, 130, 140); WMMoveWidget(panel->gcolL, 10, 25); WMHangData(panel->gcolL, panel); WMSetListUserDrawProc(panel->gcolL, paintGradListItem); WMSetListAction(panel->gcolL, gradClickCallback, panel); panel->gcolaB = WMCreateCommandButton(panel->gcolF); WMResizeWidget(panel->gcolaB, 64, 24); WMMoveWidget(panel->gcolaB, 10, 170); WMSetButtonText(panel->gcolaB, _("Add")); WMSetButtonAction(panel->gcolaB, gradAddCallback, panel); panel->gcoldB = WMCreateCommandButton(panel->gcolF); WMResizeWidget(panel->gcoldB, 64, 24); WMMoveWidget(panel->gcoldB, 75, 170); WMSetButtonText(panel->gcoldB, _("Delete")); WMSetButtonAction(panel->gcoldB, gradDeleteCallback, panel); #if 0 panel->gbriS = WMCreateSlider(panel->gcolF); WMResizeWidget(panel->gbriS, 130, 16); WMMoveWidget(panel->gbriS, 150, 25); WMSetSliderKnobThickness(panel->gbriS, 8); WMSetSliderMaxValue(panel->gbriS, 100); WMSetSliderAction(panel->gbriS, sliderChangeCallback, panel); { WMPixmap *pixmap; WMColor *color; pixmap = WMCreatePixmap(scr, 130, 16, WMScreenDepth(scr), False); color = WMDarkGrayColor(scr); XFillRectangle(WMScreenDisplay(scr), WMGetPixmapXID(pixmap), WMColorGC(color), 0, 0, 130, 16); WMReleaseColor(color); color = WMWhiteColor(color); WMDrawString(scr, WMGetPixmapXID(pixmap), color, panel->listFont, 2, (16 - WMFontHeight(panel->listFont)) / 2 - 1, "Brightness", 10); WMSetSliderImage(panel->gbriS, pixmap); WMReleasePixmap(pixmap); } panel->gconS = WMCreateSlider(panel->gcolF); WMResizeWidget(panel->gconS, 130, 16); WMMoveWidget(panel->gconS, 150, 50); WMSetSliderKnobThickness(panel->gconS, 8); WMSetSliderMaxValue(panel->gconS, 100); WMSetSliderAction(panel->gconS, sliderChangeCallback, panel); { WMPixmap *pixmap; WMColor *color; pixmap = WMCreatePixmap(scr, 130, 16, WMScreenDepth(scr), False); color = WMDarkGrayColor(scr); XFillRectangle(WMScreenDisplay(scr), WMGetPixmapXID(pixmap), WMColorGC(color), 0, 0, 130, 16); WMReleaseColor(color); color = WMWhiteColor(scr); WMDrawString(scr, WMGetPixmapXID(pixmap), color, panel->listFont, 2, (16 - WMFontHeight(panel->listFont)) / 2 - 1, "Contrast", 8); WMSetSliderImage(panel->gconS, pixmap); WMReleasePixmap(pixmap); } #endif panel->ghueS = WMCreateSlider(panel->gcolF); WMResizeWidget(panel->ghueS, 130, 16); WMMoveWidget(panel->ghueS, 150, 100); WMSetSliderKnobThickness(panel->ghueS, 8); WMSetSliderMaxValue(panel->ghueS, 359); WMSetSliderAction(panel->ghueS, sliderChangeCallback, panel); panel->gsatS = WMCreateSlider(panel->gcolF); WMResizeWidget(panel->gsatS, 130, 16); WMMoveWidget(panel->gsatS, 150, 125); WMSetSliderKnobThickness(panel->gsatS, 8); WMSetSliderMaxValue(panel->gsatS, 255); WMSetSliderAction(panel->gsatS, sliderChangeCallback, panel); panel->gvalS = WMCreateSlider(panel->gcolF); WMResizeWidget(panel->gvalS, 130, 16); WMMoveWidget(panel->gvalS, 150, 150); WMSetSliderKnobThickness(panel->gvalS, 8); WMSetSliderMaxValue(panel->gvalS, 255); WMSetSliderAction(panel->gvalS, sliderChangeCallback, panel); WMMapSubwidgets(panel->gcolF); /** Direction **/ panel->dirF = WMCreateFrame(panel->win); WMSetFrameTitle(panel->dirF, _("Direction")); WMResizeWidget(panel->dirF, 295, 75); WMMoveWidget(panel->dirF, 15, 305); panel->dirvB = WMCreateButton(panel->dirF, WBTOnOff); WMSetButtonImagePosition(panel->dirvB, WIPImageOnly); WMResizeWidget(panel->dirvB, 90, 40); WMMoveWidget(panel->dirvB, 10, 20); panel->dirhB = WMCreateButton(panel->dirF, WBTOnOff); WMSetButtonImagePosition(panel->dirhB, WIPImageOnly); WMResizeWidget(panel->dirhB, 90, 40); WMMoveWidget(panel->dirhB, 102, 20); panel->dirdB = WMCreateButton(panel->dirF, WBTOnOff); WMSetButtonImagePosition(panel->dirdB, WIPImageOnly); WMResizeWidget(panel->dirdB, 90, 40); WMMoveWidget(panel->dirdB, 194, 20); WMGroupButtons(panel->dirvB, panel->dirhB); WMGroupButtons(panel->dirvB, panel->dirdB); WMMapSubwidgets(panel->dirF); /****************** Textured Gradient ******************/ panel->tcolF = WMCreateFrame(panel->win); WMResizeWidget(panel->tcolF, 100, 135); WMMoveWidget(panel->tcolF, 210, 10); WMSetFrameTitle(panel->tcolF, _("Gradient")); panel->tcol1W = WMCreateColorWell(panel->tcolF); WMResizeWidget(panel->tcol1W, 60, 45); WMMoveWidget(panel->tcol1W, 20, 25); WMAddNotificationObserver(colorWellObserver, panel, WMColorWellDidChangeNotification, panel->tcol1W); panel->tcol2W = WMCreateColorWell(panel->tcolF); WMResizeWidget(panel->tcol2W, 60, 45); WMMoveWidget(panel->tcol2W, 20, 75); WMAddNotificationObserver(colorWellObserver, panel, WMColorWellDidChangeNotification, panel->tcol2W); /** Opacity */ panel->topaF = WMCreateFrame(panel->win); WMResizeWidget(panel->topaF, 185, 50); WMMoveWidget(panel->topaF, 15, 95); WMSetFrameTitle(panel->topaF, _("Gradient Opacity")); panel->topaS = WMCreateSlider(panel->topaF); WMResizeWidget(panel->topaS, 155, 18); WMMoveWidget(panel->topaS, 15, 20); WMSetSliderMaxValue(panel->topaS, 255); WMSetSliderValue(panel->topaS, 200); WMSetSliderContinuous(panel->topaS, False); WMSetSliderAction(panel->topaS, opaqChangeCallback, panel); WMMapSubwidgets(panel->topaF); { WMPixmap *pixmap; Pixmap p; WMColor *color; pixmap = WMCreatePixmap(scr, 155, 18, WMScreenDepth(scr), False); p = WMGetPixmapXID(pixmap); color = WMDarkGrayColor(scr); XFillRectangle(WMScreenDisplay(scr), p, WMColorGC(color), 0, 0, 155, 18); WMReleaseColor(color); color = WMWhiteColor(scr); WMDrawString(scr, p, color, panel->listFont, 2, 1, "0%", 2); WMDrawString(scr, p, color, panel->listFont, 153 - WMWidthOfString(panel->listFont, "100%", 4), 1, "100%", 4); WMReleaseColor(color); WMSetSliderImage(panel->topaS, pixmap); WMReleasePixmap(pixmap); } WMMapSubwidgets(panel->tcolF); /****************** Image ******************/ panel->imageF = WMCreateFrame(panel->win); WMResizeWidget(panel->imageF, 295, 150); WMMoveWidget(panel->imageF, 15, 150); WMSetFrameTitle(panel->imageF, _("Image")); panel->imageL = WMCreateLabel(panel->imageF); WMSetLabelImagePosition(panel->imageL, WIPImageOnly); panel->imageT = WMCreateTextField(panel->imageF); WMResizeWidget(panel->imageT, 90, 20); WMMoveWidget(panel->imageT, 190, 25); panel->imageV = WMCreateScrollView(panel->imageF); WMResizeWidget(panel->imageV, 165, 115); WMMoveWidget(panel->imageV, 15, 20); WMSetScrollViewRelief(panel->imageV, WRSunken); WMSetScrollViewHasHorizontalScroller(panel->imageV, True); WMSetScrollViewHasVerticalScroller(panel->imageV, True); WMSetScrollViewContentView(panel->imageV, WMWidgetView(panel->imageL)); panel->browB = WMCreateCommandButton(panel->imageF); WMResizeWidget(panel->browB, 90, 24); WMMoveWidget(panel->browB, 190, 50); WMSetButtonText(panel->browB, _("Browse...")); WMSetButtonAction(panel->browB, browseImageCallback, panel); /* panel->dispB = WMCreateCommandButton(panel->imageF); WMResizeWidget(panel->dispB, 90, 24); WMMoveWidget(panel->dispB, 190, 80); WMSetButtonText(panel->dispB, _("Show")); */ panel->arrP = WMCreatePopUpButton(panel->imageF); WMResizeWidget(panel->arrP, 90, 20); WMMoveWidget(panel->arrP, 190, 120); WMAddPopUpButtonItem(panel->arrP, _("Tile")); WMAddPopUpButtonItem(panel->arrP, _("Scale")); WMAddPopUpButtonItem(panel->arrP, _("Center")); WMAddPopUpButtonItem(panel->arrP, _("Maximize")); WMSetPopUpButtonSelectedItem(panel->arrP, 0); WMMapSubwidgets(panel->imageF); /****/ panel->okB = WMCreateCommandButton(panel->win); WMResizeWidget(panel->okB, 84, 24); WMMoveWidget(panel->okB, 225, 390); WMSetButtonText(panel->okB, _("OK")); WMSetButtonAction(panel->okB, buttonCallback, panel); panel->cancelB = WMCreateCommandButton(panel->win); WMResizeWidget(panel->cancelB, 84, 24); WMMoveWidget(panel->cancelB, 130, 390); WMSetButtonText(panel->cancelB, _("Cancel")); WMSetButtonAction(panel->cancelB, buttonCallback, panel); WMMapWidget(panel->nameF); WMMapWidget(panel->typeP); WMMapWidget(panel->okB); WMMapWidget(panel->cancelB); WMUnmapWidget(panel->arrP); WMRealizeWidget(panel->win); panel->currentType = -1; panel->sectionParts[TYPE_SOLID][0] = panel->defcF; panel->sectionParts[TYPE_GRADIENT][0] = panel->defcF; panel->sectionParts[TYPE_GRADIENT][1] = panel->gcolF; panel->sectionParts[TYPE_GRADIENT][2] = panel->dirF; panel->sectionParts[TYPE_SGRADIENT][0] = panel->tcolF; panel->sectionParts[TYPE_SGRADIENT][1] = panel->dirF; panel->sectionParts[TYPE_TGRADIENT][0] = panel->tcolF; panel->sectionParts[TYPE_TGRADIENT][1] = panel->dirF; panel->sectionParts[TYPE_TGRADIENT][2] = panel->imageF; panel->sectionParts[TYPE_TGRADIENT][3] = panel->topaF; panel->sectionParts[TYPE_TGRADIENT][4] = panel->arrP; panel->sectionParts[TYPE_PIXMAP][0] = panel->defcF; panel->sectionParts[TYPE_PIXMAP][1] = panel->imageF; panel->sectionParts[TYPE_PIXMAP][2] = panel->arrP; /* setup for first time */ changeTypeCallback(panel->typeP, panel); sliderChangeCallback(panel->ghueS, panel); sliderChangeCallback(panel->gsatS, panel); return panel; } /* *-------------------------------------------------------------------------- * Test stuff *-------------------------------------------------------------------------- */ #if 0 char *ProgName = "test"; void testOKButton(WMWidget * self, void *data) { char *test; Display *dpy; Window win; Pixmap pix; RImage *image; TexturePanel *panel = (TexturePanel *) data; /* test = GetTexturePanelTextureString(panel); */ wwarning(test); dpy = WMScreenDisplay(WMWidgetScreen(panel->okB)); win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 10, 10, 250, 250, 0, 0, 0); XMapRaised(dpy, win); XFlush(dpy); /* image = RenderTexturePanelTexture(panel, 250, 250); */ RConvertImage(WMScreenRContext(WMWidgetScreen(panel->okB)), image, &pix); XCopyArea(dpy, pix, win, (WMScreenRContext(WMWidgetScreen(panel->okB)))->copy_gc, 0, 0, image->width, image->height, 0, 0); wfree(test); } void testCancelButton(WMWidget * self, void *data) { wwarning("Exiting test...."); exit(0); } void wAbort() { exit(1); } int main(int argc, char **argv) { TexturePanel *panel; Display *dpy = XOpenDisplay(""); WMScreen *scr; /* char *test; */ WMInitializeApplication("Test", &argc, argv); if (!dpy) { wfatal("could not open display"); exit(1); } scr = WMCreateSimpleApplicationScreen(dpy); panel = CreateTexturePanel(scr); SetTexturePanelOkAction(panel, (WMAction *) testOKButton, panel); SetTexturePanelCancelAction(panel, (WMAction *) testCancelButton, panel); SetTexturePanelTexture(panel, "pinky", WMCreatePropListFromDescription("(mdgradient, pink, red, blue, yellow)")); ShowTexturePanel(panel); WMScreenMainLoop(scr); return 0; } #endif �����������������������������������WindowMaker-0.95.5/WPrefs.app/Makefile.in�����������������������������������������������������������0000644�0001750�0001750�00000067334�12214434561�015033� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ wpexecbin_PROGRAMS = WPrefs$(EXEEXT) subdir = WPrefs.app DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(wpexecbindir)" "$(DESTDIR)$(wpdatadir)" PROGRAMS = $(wpexecbin_PROGRAMS) am_WPrefs_OBJECTS = main.$(OBJEXT) WPrefs.$(OBJEXT) \ Appearance.$(OBJEXT) Configurations.$(OBJEXT) Docks.$(OBJEXT) \ Expert.$(OBJEXT) Focus.$(OBJEXT) FontSimple.$(OBJEXT) \ Icons.$(OBJEXT) KeyboardSettings.$(OBJEXT) \ KeyboardShortcuts.$(OBJEXT) Menu.$(OBJEXT) \ MenuPreferences.$(OBJEXT) MouseSettings.$(OBJEXT) \ Paths.$(OBJEXT) Preferences.$(OBJEXT) TexturePanel.$(OBJEXT) \ Themes.$(OBJEXT) WindowHandling.$(OBJEXT) Workspace.$(OBJEXT) \ double.$(OBJEXT) editmenu.$(OBJEXT) xmodifier.$(OBJEXT) WPrefs_OBJECTS = $(am_WPrefs_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(WPrefs_SOURCES) DIST_SOURCES = $(WPrefs_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' DATA = $(wpdata_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ SUBDIRS = xpm tiff po AUTOMAKE_OPTIONS = wpexecbindir = @wprefs_bindir@ wpdatadir = @wprefs_datadir@ wpdata_DATA = WPrefs.tiff WPrefs.xpm EXTRA_DIST = $(wpdata_DATA) WPrefs_SOURCES = \ main.c \ WPrefs.c \ WPrefs.h \ Appearance.c \ Configurations.c \ Docks.c \ Expert.c \ Focus.c \ FontSimple.c \ Icons.c \ KeyboardSettings.c \ KeyboardShortcuts.c \ Menu.c \ MenuPreferences.c \ MouseSettings.c \ Paths.c \ Preferences.c \ TexturePanel.c \ TexturePanel.h \ Themes.c \ WindowHandling.c \ Workspace.c \ double.c \ editmenu.c \ editmenu.h \ xmodifier.c AM_CFLAGS = AM_CPPFLAGS = -DLOCALEDIR=\"$(NLSDIR)\" -DRESOURCE_PATH=\"$(wpdatadir)\" -DWMAKER_RESOURCE_PATH=\"$(pkgdatadir)\" \ -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@ WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la WPrefs_LDADD = \ $(top_builddir)/WINGs/libWINGs.la\ $(top_builddir)/WINGs/libWUtil.la\ $(top_builddir)/wrlib/libwraster.la \ @XLFLAGS@ @XLIBS@ \ @FCLIBS@ \ @INTLIBS@ all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WPrefs.app/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WPrefs.app/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-wpexecbinPROGRAMS: $(wpexecbin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(wpexecbindir)" || $(MKDIR_P) "$(DESTDIR)$(wpexecbindir)" @list='$(wpexecbin_PROGRAMS)'; test -n "$(wpexecbindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(wpexecbindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(wpexecbindir)$$dir" || exit $$?; \ } \ ; done uninstall-wpexecbinPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(wpexecbin_PROGRAMS)'; test -n "$(wpexecbindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(wpexecbindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(wpexecbindir)" && rm -f $$files clean-wpexecbinPROGRAMS: @list='$(wpexecbin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list WPrefs$(EXEEXT): $(WPrefs_OBJECTS) $(WPrefs_DEPENDENCIES) @rm -f WPrefs$(EXEEXT) $(AM_V_CCLD)$(LINK) $(WPrefs_OBJECTS) $(WPrefs_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Appearance.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Configurations.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Docks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Expert.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Focus.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FontSimple.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Icons.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/KeyboardSettings.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/KeyboardShortcuts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Menu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MenuPreferences.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MouseSettings.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Paths.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Preferences.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TexturePanel.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Themes.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WPrefs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WindowHandling.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Workspace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/double.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/editmenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmodifier.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-wpdataDATA: $(wpdata_DATA) @$(NORMAL_INSTALL) test -z "$(wpdatadir)" || $(MKDIR_P) "$(DESTDIR)$(wpdatadir)" @list='$(wpdata_DATA)'; test -n "$(wpdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(wpdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(wpdatadir)" || exit $$?; \ done uninstall-wpdataDATA: @$(NORMAL_UNINSTALL) @list='$(wpdata_DATA)'; test -n "$(wpdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(wpdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(wpdatadir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(wpexecbindir)" "$(DESTDIR)$(wpdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-wpexecbinPROGRAMS \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-wpdataDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-wpexecbinPROGRAMS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-wpdataDATA uninstall-wpexecbinPROGRAMS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ clean-wpexecbinPROGRAMS ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip install-wpdataDATA install-wpexecbinPROGRAMS \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-wpdataDATA uninstall-wpexecbinPROGRAMS # 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. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/editmenu.h������������������������������������������������������������0000644�0001750�0001750�00000006650�12214432632�014740� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* editmenu.h - editable menus * * WPrefs - Window Maker Preferences Program * * Copyright (c) 2000-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _editmenu_h_ #define _editmenu_h_ typedef struct W_EditMenu WEditMenu; typedef struct W_EditMenuItem WEditMenuItem; typedef struct WEditMenuDelegate { void *data; void (*itemCloned)(struct WEditMenuDelegate*, WEditMenu*, WEditMenuItem*, WEditMenuItem *); void (*itemEdited)(struct WEditMenuDelegate*, WEditMenu*, WEditMenuItem*); void (*itemSelected)(struct WEditMenuDelegate*, WEditMenu*, WEditMenuItem*); void (*itemDeselected)(struct WEditMenuDelegate*, WEditMenu*, WEditMenuItem*); Bool (*shouldRemoveItem)(struct WEditMenuDelegate*, WEditMenu*, WEditMenuItem*); } WEditMenuDelegate; WEditMenuItem *WCreateEditMenuItem(WMWidget *parent, const char *title, Bool isTitle); char *WGetEditMenuItemTitle(WEditMenuItem *item); void *WGetEditMenuItemData(WEditMenuItem *item); void WSetEditMenuItemData(WEditMenuItem *item, void *data, WMCallback *destroyer); void WSetEditMenuItemImage(WEditMenuItem *item, WMPixmap *pixmap); WEditMenu *WCreateEditMenu(WMScreen *scr, const char *title); WEditMenu *WCreateEditMenuPad(WMWidget *parent); void WSetEditMenuDelegate(WEditMenu *mPtr, WEditMenuDelegate *delegate); WEditMenuItem *WInsertMenuItemWithTitle(WEditMenu *mPtr, int index, const char *title); WEditMenuItem *WAddMenuItemWithTitle(WEditMenu *mPtr, const char *title); WEditMenuItem *WGetEditMenuItem(WEditMenu *mPtr, int index); void WSetEditMenuTitle(WEditMenu *mPtr, const char *title); char *WGetEditMenuTitle(WEditMenu *mPtr); void WSetEditMenuAcceptsDrop(WEditMenu *mPtr, Bool flag); void WSetEditMenuSubmenu(WEditMenu *mPtr, WEditMenuItem *item, WEditMenu *submenu); WEditMenu *WGetEditMenuSubmenu(WEditMenu *mPtr, WEditMenuItem *item); void WRemoveEditMenuItem(WEditMenu *mPtr, WEditMenuItem *item); void WSetEditMenuSelectable(WEditMenu *mPtr, Bool flag); void WSetEditMenuEditable(WEditMenu *mPtr, Bool flag); void WSetEditMenuIsFactory(WEditMenu *mPtr, Bool flag); void WSetEditMenuMinSize(WEditMenu *mPtr, WMSize size); void WSetEditMenuMaxSize(WEditMenu *mPtr, WMSize size); WMPoint WGetEditMenuLocationForSubmenu(WEditMenu *mPtr, WEditMenu *submenu); void WTearOffEditMenu(WEditMenu *menu, WEditMenu *submenu); Bool WEditMenuIsTornOff(WEditMenu *mPtr); void WEditMenuHide(WEditMenu *menu); void WEditMenuUnhide(WEditMenu *menu); void WEditMenuShowAt(WEditMenu *menu, int x, int y); #endif ����������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/main.c����������������������������������������������������������������0000644�0001750�0001750�00000010144�12214432632�014036� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" #include <assert.h> #include <X11/Xlocale.h> #include <X11/XKBlib.h> #include <sys/wait.h> #include <unistd.h> char *NOptionValueChanged = "NOptionValueChanged"; Bool xext_xkb_supported = False; #define MAX_DEATHS 64 struct { pid_t pid; void *data; void (*handler) (void *); } DeadHandlers[MAX_DEATHS]; static pid_t DeadChildren[MAX_DEATHS]; static int DeadChildrenCount = 0; static void wAbort(Bool foo) { exit(1); } static void print_help(const char *progname) { printf(_("usage: %s [options]\n"), progname); puts(_("options:")); puts(_(" -display <display> display to be used")); puts(_(" --version print version number and exit")); puts(_(" --help print this message and exit")); } #if 0 static RETSIGTYPE handleDeadChild(int sig) { pid_t pid; int status; pid = waitpid(-1, &status, WNOHANG); if (pid > 0) { DeadChildren[DeadChildrenCount++] = pid; } } #endif void AddDeadChildHandler(pid_t pid, void (*handler) (void *), void *data) { int i; for (i = 0; i < MAX_DEATHS; i++) { if (DeadHandlers[i].pid == 0) { DeadHandlers[i].pid = pid; DeadHandlers[i].handler = handler; DeadHandlers[i].data = data; break; } } assert(i != MAX_DEATHS); } int main(int argc, char **argv) { Display *dpy; WMScreen *scr; char *path; int i; char *display_name = ""; wsetabort(wAbort); memset(DeadHandlers, 0, sizeof(DeadHandlers)); WMInitializeApplication("WPrefs", &argc, argv); WMSetResourcePath(RESOURCE_PATH); path = WMPathForResourceOfType("WPrefs.tiff", NULL); if (!path) { /* maybe it is run directly from the source directory */ WMSetResourcePath("."); path = WMPathForResourceOfType("WPrefs.tiff", NULL); if (!path) { WMSetResourcePath(".."); } } if (path) { wfree(path); } if (argc > 1) { for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-version") == 0 || strcmp(argv[i], "--version") == 0) { printf("WPrefs (Window Maker) %s\n", VERSION); exit(0); } else if (strcmp(argv[i], "-display") == 0) { i++; if (i >= argc) { wwarning(_("too few arguments for %s"), argv[i - 1]); exit(0); } display_name = argv[i]; } else { print_help(argv[0]); exit(0); } } } setlocale(LC_ALL, ""); #ifdef I18N if (getenv("NLSPATH")) bindtextdomain("WPrefs", getenv("NLSPATH")); else bindtextdomain("WPrefs", LOCALEDIR); bind_textdomain_codeset("WPrefs", "UTF-8"); textdomain("WPrefs"); if (!XSupportsLocale()) { wwarning(_("X server does not support locale")); } if (XSetLocaleModifiers("") == NULL) { wwarning(_("cannot set locale modifiers")); } #endif dpy = XOpenDisplay(display_name); if (!dpy) { wfatal(_("could not open display %s"), XDisplayName(display_name)); exit(0); } #if 0 XSynchronize(dpy, 1); #endif scr = WMCreateScreen(dpy, DefaultScreen(dpy)); if (!scr) { wfatal(_("could not initialize application")); exit(0); } xext_xkb_supported = XkbQueryExtension(dpy, NULL, NULL, NULL, NULL, NULL); WMPLSetCaseSensitive(False); Initialize(scr); while (1) { XEvent event; WMNextEvent(dpy, &event); while (DeadChildrenCount-- > 0) { int i; for (i = 0; i < MAX_DEATHS; i++) { if (DeadChildren[i] == DeadHandlers[i].pid) { (*DeadHandlers[i].handler) (DeadHandlers[i].data); DeadHandlers[i].pid = 0; } } } WMHandleEvent(&event); } } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xmodifier.c�����������������������������������������������������������0000644�0001750�0001750�00000023317�12214432632�015106� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Grok X modifier mappings for shortcuts. Most of this code was taken from src/event-Xt.c in XEmacs 20.3-b17. The copyright(s) from the original XEmacs code are included below. Perpetrator: Sudish Joseph <sj@eng.mindspring.net>, Sept. 1997. */ /* * More changes for WPrefs by Alfredo Kojima, Aug 1998 */ /* The event_stream interface for X11 with Xt, and/or tty frames. Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. Copyright (C) 1995 Sun Microsystems, Inc. Copyright (C) 1996 Ben Wing. This file is part of XEmacs. XEmacs 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, or (at your option) any later version. XEmacs 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 XEmacs; see the file COPYING. if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include <string.h> #include <strings.h> #include <X11/Xlib.h> #include <X11/keysym.h> #include <X11/XKBlib.h> #include <WINGs/WUtil.h> #include "WPrefs.h" /************************************************************************/ /* keymap handling */ /************************************************************************/ /* X bogusly doesn't define the interpretations of any bits besides ModControl, ModShift, and ModLock; so the Interclient Communication Conventions Manual says that we have to bend over backwards to figure out what the other modifier bits mean. According to ICCCM: - Any keycode which is assigned ModControl is a "control" key. - Any modifier bit which is assigned to a keycode which generates Meta_L or Meta_R is the modifier bit meaning "meta". Likewise for Super, Hyper, etc. - Any keypress event which contains ModControl in its state should be interpreted as a "control" character. - Any keypress event which contains a modifier bit in its state which is generated by a keycode whose corresponding keysym is Meta_L or Meta_R should be interpreted as a "meta" character. Likewise for Super, Hyper, etc. - It is illegal for a keysym to be associated with more than one modifier bit. This means that the only thing that emacs can reasonably interpret as a "meta" key is a key whose keysym is Meta_L or Meta_R, and which generates one of the modifier bits Mod1-Mod5. Unfortunately, many keyboards don't have Meta keys in their default configuration. So, if there are no Meta keys, but there are "Alt" keys, emacs will interpret Alt as Meta. If there are both Meta and Alt keys, then the Meta keys mean "Meta", and the Alt keys mean "Alt" (it used to mean "Symbol," but that just confused the hell out of way too many people). This works with the default configurations of the 19 keyboard-types I've checked. Emacs detects keyboard configurations which violate the above rules, and prints an error message on the standard-error-output. (Perhaps it should use a pop-up-window instead.) */ static int MetaIndex, HyperIndex, SuperIndex, AltIndex, ModeIndex; static const char *index_to_name(int indice) { switch (indice) { case ShiftMapIndex: return "ModShift"; case LockMapIndex: return "ModLock"; case ControlMapIndex: return "ModControl"; case Mod1MapIndex: return "Mod1"; case Mod2MapIndex: return "Mod2"; case Mod3MapIndex: return "Mod3"; case Mod4MapIndex: return "Mod4"; case Mod5MapIndex: return "Mod5"; default: return "???"; } } static void x_reset_modifier_mapping(Display * display) { int modifier_index, modifier_key, column, mkpm; int meta_bit = 0; int hyper_bit = 0; int super_bit = 0; int alt_bit = 0; int mode_bit = 0; XModifierKeymap *x_modifier_keymap = XGetModifierMapping(display); #define modwarn(name,old,other) \ wwarning ("%s (0x%x) generates %s, which is generated by %s.", \ name, code, index_to_name (old), other) #define modbarf(name,other) \ wwarning ("%s (0x%x) generates %s, which is nonsensical.", \ name, code, other) #define check_modifier(name,mask) \ if ((1<<modifier_index) != mask) \ wwarning ("%s (0x%x) generates %s, which is nonsensical.", \ name, code, index_to_name (modifier_index)) #define store_modifier(name,old) \ if (old && old != modifier_index) \ wwarning ("%s (0x%x) generates both %s and %s, which is nonsensical.", \ name, code, index_to_name (old), \ index_to_name (modifier_index)); \ if (modifier_index == ShiftMapIndex) modbarf (name,"ModShift"); \ else if (modifier_index == LockMapIndex) modbarf (name,"ModLock"); \ else if (modifier_index == ControlMapIndex) modbarf (name,"ModControl"); \ else if (sym == XK_Mode_switch) \ mode_bit = modifier_index; /* Mode_switch is special, see below... */ \ else if (modifier_index == meta_bit && old != meta_bit) \ modwarn (name, meta_bit, "Meta"); \ else if (modifier_index == super_bit && old != super_bit) \ modwarn (name, super_bit, "Super"); \ else if (modifier_index == hyper_bit && old != hyper_bit) \ modwarn (name, hyper_bit, "Hyper"); \ else if (modifier_index == alt_bit && old != alt_bit) \ modwarn (name, alt_bit, "Alt"); \ else \ old = modifier_index; mkpm = x_modifier_keymap->max_keypermod; for (modifier_index = 0; modifier_index < 8; modifier_index++) for (modifier_key = 0; modifier_key < mkpm; modifier_key++) { KeySym last_sym = 0; for (column = 0; column < 4; column += 2) { KeyCode code = x_modifier_keymap->modifiermap[modifier_index * mkpm + modifier_key]; KeySym sym; if (code) { if (xext_xkb_supported) sym = XkbKeycodeToKeysym(display, code, 0, column); else sym = XKeycodeToKeysym(display, code, column); } else { sym = NoSymbol; } if (sym == last_sym) continue; last_sym = sym; switch (sym) { case XK_Mode_switch: store_modifier("Mode_switch", mode_bit); break; case XK_Meta_L: store_modifier("Meta_L", meta_bit); break; case XK_Meta_R: store_modifier("Meta_R", meta_bit); break; case XK_Super_L: store_modifier("Super_L", super_bit); break; case XK_Super_R: store_modifier("Super_R", super_bit); break; case XK_Hyper_L: store_modifier("Hyper_L", hyper_bit); break; case XK_Hyper_R: store_modifier("Hyper_R", hyper_bit); break; case XK_Alt_L: store_modifier("Alt_L", alt_bit); break; case XK_Alt_R: store_modifier("Alt_R", alt_bit); break; case XK_Control_L: check_modifier("Control_L", ControlMask); break; case XK_Control_R: check_modifier("Control_R", ControlMask); break; case XK_Shift_L: check_modifier("Shift_L", ShiftMask); break; case XK_Shift_R: check_modifier("Shift_R", ShiftMask); break; case XK_Shift_Lock: check_modifier("Shift_Lock", LockMask); break; case XK_Caps_Lock: check_modifier("Caps_Lock", LockMask); break; /* It probably doesn't make any sense for a modifier bit to be assigned to a key that is not one of the above, but OpenWindows assigns modifier bits to a couple of random function keys for no reason that I can discern, so printing a warning here would be annoying. */ } } } #undef store_modifier #undef check_modifier #undef modwarn #undef modbarf /* If there was no Meta key, then try using the Alt key instead. If there is both a Meta key and an Alt key, then the Alt key is not disturbed and remains an Alt key. */ if (!meta_bit && alt_bit) meta_bit = alt_bit, alt_bit = 0; /* mode_bit overrides everything, since it's processed down inside of XLookupString() instead of by us. If Meta and Mode_switch both generate the same modifier bit (which is an error), then we don't interpret that bit as Meta, because we can't make XLookupString() not interpret it as Mode_switch; and interpreting it as both would be totally wrong. */ if (mode_bit) { const char *warn = 0; if (mode_bit == meta_bit) warn = "Meta", meta_bit = 0; else if (mode_bit == hyper_bit) warn = "Hyper", hyper_bit = 0; else if (mode_bit == super_bit) warn = "Super", super_bit = 0; else if (mode_bit == alt_bit) warn = "Alt", alt_bit = 0; if (warn) { wwarning("%s is being used for both Mode_switch and %s.", index_to_name(mode_bit), warn); } } MetaIndex = meta_bit; HyperIndex = hyper_bit; SuperIndex = super_bit; AltIndex = alt_bit; ModeIndex = mode_bit; if (x_modifier_keymap != NULL) XFreeModifiermap(x_modifier_keymap); } int ModifierFromKey(Display * dpy, const char *key) { static int eqw = 0; if (!eqw) x_reset_modifier_mapping(dpy); eqw = 1; if (strcasecmp(key, "SHIFT") == 0) return ShiftMapIndex; else if (strcasecmp(key, "CONTROL") == 0) return ControlMapIndex; else if (strcasecmp(key, "ALT") == 0) return AltIndex; else if (strcasecmp(key, "META") == 0) return MetaIndex; else if (strcasecmp(key, "SUPER") == 0) return SuperIndex; else if (strcasecmp(key, "HYPER") == 0) return HyperIndex; else if (strcasecmp(key, "MOD1") == 0) return Mod1MapIndex; else if (strcasecmp(key, "MOD2") == 0) return Mod2MapIndex; else if (strcasecmp(key, "MOD3") == 0) return Mod3MapIndex; else if (strcasecmp(key, "MOD4") == 0) return Mod4MapIndex; else if (strcasecmp(key, "MOD5") == 0) return Mod5MapIndex; else return -1; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/Expert.c��������������������������������������������������������������0000644�0001750�0001750�00000012564�12214432632�014371� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Expert.c- expert user options * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" /* This structure containts the list of all the check-buttons to display in the * expert tab of the window with the corresponding information for effect */ static const struct { const char *label; /* Text displayed to user */ int def_state; /* True/False: the default value, if not defined in current config */ enum { OPTION_WMAKER, OPTION_USERDEF } class; const char *op_name; /* The identifier for the option in the config file */ } expert_options[] = { { N_("Disable miniwindows (icons for minimized windows). For use with KDE/GNOME."), /* default: */ False, OPTION_WMAKER, "DisableMiniwindows" }, { N_("Do not set non-WindowMaker specific parameters (do not use xset)."), /* default: */ False, OPTION_USERDEF, "NoXSetStuff" }, { N_("Automatically save session when exiting Window Maker."), /* default: */ False, OPTION_WMAKER, "SaveSessionOnExit" }, { N_("Use SaveUnder in window frames, icons, menus and other objects."), /* default: */ False, OPTION_WMAKER, "UseSaveUnders" }, { N_("Disable confirmation panel for the Kill command."), /* default: */ False, OPTION_WMAKER, "DontConfirmKill" }, { N_("Disable selection animation for selected icons."), /* default: */ False, OPTION_WMAKER, "DisableBlinking" }, { N_("Smooth font edges (needs restart)."), /* default: */ True, OPTION_WMAKER, "AntialiasedText" }, { N_("Cycle windows only on the active head."), /* default: */ False, OPTION_WMAKER, "CycleActiveHeadOnly" }, { N_("Ignore minimized windows when cycling."), /* default: */ False, OPTION_WMAKER, "CycleIgnoreMinimized" }, { N_("Show workspace title on Clip."), /* default: */ True, OPTION_WMAKER, "ShowClipTitle" }, { N_("Highlight the icon of the application when it has the focus."), /* default: */ True, OPTION_WMAKER, "HighlightActiveApp" }, #ifdef XKB_MODELOCK { N_("Enable keyboard language switch button in window titlebars."), /* default: */ False, OPTION_WMAKER, "KbdModeLock" } #endif /* XKB_MODELOCK */ }; typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMButton *swi[sizeof(expert_options) / sizeof(expert_options[0])]; } _Panel; #define ICON_FILE "expert" static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; WMScrollView *sv; WMFrame *f; WMUserDefaults *udb; int i, state; panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); sv = WMCreateScrollView(panel->box); WMResizeWidget(sv, 500, 215); WMMoveWidget(sv, 12, 10); WMSetScrollViewRelief(sv, WRSunken); WMSetScrollViewHasVerticalScroller(sv, True); WMSetScrollViewHasHorizontalScroller(sv, False); f = WMCreateFrame(panel->box); WMResizeWidget(f, 495, (sizeof(expert_options) / sizeof(expert_options[0])) * 25 + 8); WMSetFrameRelief(f, WRFlat); udb = WMGetStandardUserDefaults(); for (i = 0; i < sizeof(expert_options) / sizeof(expert_options[0]); i++) { panel->swi[i] = WMCreateSwitchButton(f); WMResizeWidget(panel->swi[i], FRAME_WIDTH - 40, 25); WMMoveWidget(panel->swi[i], 5, 5 + i * 25); WMSetButtonText(panel->swi[i], _(expert_options[i].label)); switch (expert_options[i].class) { case OPTION_WMAKER: if (GetStringForKey(expert_options[i].op_name)) state = GetBoolForKey(expert_options[i].op_name); else state = expert_options[i].def_state; break; case OPTION_USERDEF: state = WMGetUDBoolForKey(udb, expert_options[i].op_name); break; } WMSetButtonSelected(panel->swi[i], state); } WMMapSubwidgets(panel->box); WMSetScrollViewContentView(sv, WMWidgetView(f)); WMRealizeWidget(panel->box); } static void storeDefaults(_Panel * panel) { WMUserDefaults *udb = WMGetStandardUserDefaults(); int i; for (i = 0; i < sizeof(expert_options) / sizeof(expert_options[0]); i++) { switch (expert_options[i].class) { case OPTION_WMAKER: SetBoolForKey(WMGetButtonSelected(panel->swi[i]), expert_options[i].op_name); break; case OPTION_USERDEF: WMSetUDBoolForKey(udb, WMGetButtonSelected(panel->swi[i]), expert_options[i].op_name); break; } } } Panel *InitExpert(WMScreen * scr, WMWidget * parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Expert User Preferences"); panel->description = _("Options for people who know what they're doing...\n" "Also has some other misc. options."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeDefaults; AddSection(panel, ICON_FILE); return panel; } ��������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/WPrefs.h��������������������������������������������������������������0000644�0001750�0001750�00000012314�12214432632�014326� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* WPrefs.h- general definitions * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WPREFS_H_ #define WPREFS_H_ #include <stdlib.h> #include <stdio.h> #include <string.h> #include <strings.h> #include <signal.h> #include <X11/Xlib.h> #include <wraster.h> #include <WINGs/WINGs.h> /* Needed for HAVE_LIBINTL_H and EXTENDED_WINDOWSHORTCUT */ #include "../src/wconfig.h" /****/ extern char *NOptionValueChanged; extern Bool xext_xkb_supported; typedef struct _Panel Panel; typedef struct { unsigned flags; /* reserved for WPrefs.c Don't access it */ void (*createWidgets)(Panel*); /* called when showing for first time */ void (*updateDomain)(Panel*); /* save the changes to the dictionary */ Bool (*requiresRestart)(Panel*); /* return True if some static option was changed */ void (*undoChanges)(Panel*); /* reset values to those in the dictionary */ void (*prepareForClose)(Panel*); /* called when exiting WPrefs */ void (*showPanel)(Panel*); /* called when entering the panel */ void (*hidePanel)(Panel*); /* called when exiting the panel */ } CallbackRec; /* all Panels must start with the following layout */ typedef struct PanelRec { WMBox *box; char *sectionName; /* section name to display in titlebar */ char *description; CallbackRec callbacks; } PanelRec; /* ---[ Wprefs.c ] ------------------------------------------------------- */ void AddSection(Panel *panel, const char *iconFile); char *LocateImage(const char *name); void SetButtonAlphaImage(WMScreen *scr, WMButton *bPtr, const char *file, const char *title1, const char *title2); /* Loads `file' into `icon_normal'. If `icon_greyed' is not NULL, * combine `icon_normal' with some grey and then optionally with image * `xis', and store it in `icon_greyed' (typically to produce a * greyed-out, red-crossed version of `icon_normal') */ void CreateImages(WMScreen *scr, RContext *rc, RImage *xis, const char *file, WMPixmap **icon_normal, WMPixmap **icon_greyed); WMWindow *GetWindow(Panel *panel); /* manipulate the dictionary for the WindowMaker domain */ WMPropList *GetObjectForKey(const char *defaultName); void SetObjectForKey(WMPropList *object, const char *defaultName); void RemoveObjectForKey(const char *defaultName); char *GetStringForKey(const char *defaultName); int GetIntegerForKey(const char *defaultName); Bool GetBoolForKey(const char *defaultName); int GetSpeedForKey(const char *defaultName); void SetIntegerForKey(int value, const char *defaultName); void SetStringForKey(const char *value, const char *defaultName); void SetBoolForKey(Bool value, const char *defaultName); void SetSpeedForKey(int speed, const char *defaultName); /* ---[ KeyboardShortcuts.c ] -------------------------------------------- */ char *capture_shortcut(Display *dpy, Bool *capturing, Bool convert_case); /* ---[ double.c ] ------------------------------------------------------- */ typedef struct W_DoubleTest DoubleTest; DoubleTest *CreateDoubleTest(WMWidget *parent, const char *text); /* ---[ main.c ] --------------------------------------------------------- */ void AddDeadChildHandler(pid_t pid, void (*handler)(void*), void *data); /* ---[ xmodifier.c ] ---------------------------------------------------- */ int ModifierFromKey(Display * dpy, const char *key); /* ---[ Panel Initializers ]---------------------------------------------- */ void Initialize(WMScreen *scr); /* in alphabetical order - in case you'd want to add one */ Panel *InitAppearance(WMScreen *scr, WMWidget *parent); Panel *InitConfigurations(WMScreen *scr, WMWidget *parent); Panel *InitDocks(WMScreen *scr, WMWidget *parent); Panel *InitExpert(WMScreen *scr, WMWidget *parent); Panel *InitFocus(WMScreen *scr, WMWidget *parent); Panel *InitFontSimple(WMScreen *scr, WMWidget *parent); Panel *InitIcons(WMScreen *scr, WMWidget *parent); Panel *InitKeyboardShortcuts(WMScreen *scr, WMWidget *parent); Panel *InitMenu(WMScreen *scr, WMWidget *parent); Panel *InitMenuPreferences(WMScreen *scr, WMWidget *parent); Panel *InitMouseSettings(WMScreen *scr, WMWidget *parent); Panel *InitPaths(WMScreen *scr, WMWidget *parent); Panel *InitPreferences(WMScreen *scr, WMWidget *parent); Panel *InitWindowHandling(WMScreen *scr, WMWidget *parent); Panel *InitWorkspace(WMScreen *scr, WMWidget *parent); #define FRAME_TOP 105 #define FRAME_LEFT -2 #define FRAME_WIDTH 524 #define FRAME_HEIGHT 235 #endif /* WPREFS_H_ */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/Preferences.c���������������������������������������������������������0000644�0001750�0001750�00000024363�12214432632�015363� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Preferences.c- misc ergonomic preferences * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMFrame *sizeF; WMPopUpButton *sizeP; WMFrame *posiF; WMPopUpButton *posiP; WMFrame *ballF; WMButton *ballB[4]; WMFrame *optF; WMButton *bounceB; WMButton *bounceUrgB; WMButton *bounceRaisB; WMFrame *borderF; WMSlider *borderS; WMLabel *borderL; WMButton *lrB; WMButton *tbB; } _Panel; #define ICON_FILE "ergonomic" static void borderCallback(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; char buffer[64]; int i; i = WMGetSliderValue(panel->borderS); if (i == 0) sprintf(buffer, _("OFF")); else if (i == 1) sprintf(buffer, _("1 pixel")); else if (i <= 4) /* 2-4 */ sprintf(buffer, _("%i pixels"), i); else /* >4 */ sprintf(buffer, _("%i pixels "), i); /* note space! */ WMSetLabelText(panel->borderL, buffer); } static void showData(_Panel * panel) { char *str; int x; str = GetStringForKey("ResizeDisplay"); if (!str) str = "corner"; if (strcasecmp(str, "corner") == 0) WMSetPopUpButtonSelectedItem(panel->sizeP, 0); else if (strcasecmp(str, "center") == 0) WMSetPopUpButtonSelectedItem(panel->sizeP, 1); else if (strcasecmp(str, "floating") == 0) WMSetPopUpButtonSelectedItem(panel->sizeP, 2); else if (strcasecmp(str, "line") == 0) WMSetPopUpButtonSelectedItem(panel->sizeP, 3); else if (strcasecmp(str, "none") == 0) WMSetPopUpButtonSelectedItem(panel->sizeP, 4); str = GetStringForKey("MoveDisplay"); if (!str) str = "corner"; if (strcasecmp(str, "corner") == 0) WMSetPopUpButtonSelectedItem(panel->posiP, 0); else if (strcasecmp(str, "center") == 0) WMSetPopUpButtonSelectedItem(panel->posiP, 1); else if (strcasecmp(str, "floating") == 0) WMSetPopUpButtonSelectedItem(panel->posiP, 2); else if (strcasecmp(str, "none") == 0) WMSetPopUpButtonSelectedItem(panel->posiP, 3); x = GetIntegerForKey("WorkspaceBorderSize"); x = x < 0 ? 0 : x; x = x > 5 ? 5 : x; WMSetSliderValue(panel->borderS, x); borderCallback(NULL, panel); str = GetStringForKey("WorkspaceBorder"); if (!str) str = "none"; if (strcasecmp(str, "LeftRight") == 0) { WMSetButtonSelected(panel->lrB, True); } else if (strcasecmp(str, "TopBottom") == 0) { WMSetButtonSelected(panel->tbB, True); } else if (strcasecmp(str, "AllDirections") == 0) { WMSetButtonSelected(panel->tbB, True); WMSetButtonSelected(panel->lrB, True); } WMSetButtonSelected(panel->bounceB, GetBoolForKey("DoNotMakeAppIconsBounce")); if (GetStringForKey("BounceAppIconsWhenUrgent")) WMSetButtonSelected(panel->bounceUrgB, GetBoolForKey("BounceAppIconsWhenUrgent")); WMSetButtonSelected(panel->bounceRaisB, GetBoolForKey("RaiseAppIconsWhenBouncing")); WMSetButtonSelected(panel->ballB[0], GetBoolForKey("WindowTitleBalloons")); WMSetButtonSelected(panel->ballB[1], GetBoolForKey("MiniwindowTitleBalloons")); WMSetButtonSelected(panel->ballB[2], GetBoolForKey("AppIconBalloons")); WMSetButtonSelected(panel->ballB[3], GetBoolForKey("HelpBalloons")); } static void storeData(_Panel * panel) { char *str; Bool lr, tb; switch (WMGetPopUpButtonSelectedItem(panel->sizeP)) { case 0: str = "corner"; break; case 1: str = "center"; break; case 2: str = "floating"; break; case 4: str = "none"; break; default: str = "line"; break; } SetStringForKey(str, "ResizeDisplay"); switch (WMGetPopUpButtonSelectedItem(panel->posiP)) { case 0: str = "corner"; break; case 1: str = "center"; break; case 3: str = "none"; break; default: str = "floating"; break; } SetStringForKey(str, "MoveDisplay"); lr = WMGetButtonSelected(panel->lrB); tb = WMGetButtonSelected(panel->tbB); if (lr && tb) str = "AllDirections"; else if (lr) str = "LeftRight"; else if (tb) str = "TopBottom"; else str = "None"; SetStringForKey(str, "WorkspaceBorder"); SetIntegerForKey(WMGetSliderValue(panel->borderS), "WorkspaceBorderSize"); SetBoolForKey(WMGetButtonSelected(panel->bounceB), "DoNotMakeAppIconsBounce"); SetBoolForKey(WMGetButtonSelected(panel->bounceUrgB), "BounceAppIconsWhenUrgent"); SetBoolForKey(WMGetButtonSelected(panel->bounceRaisB), "RaiseAppIconsWhenBouncing"); SetBoolForKey(WMGetButtonSelected(panel->ballB[0]), "WindowTitleBalloons"); SetBoolForKey(WMGetButtonSelected(panel->ballB[1]), "MiniwindowTitleBalloons"); SetBoolForKey(WMGetButtonSelected(panel->ballB[2]), "AppIconBalloons"); SetBoolForKey(WMGetButtonSelected(panel->ballB[3]), "HelpBalloons"); } static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; int i; panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); /***************** Size Display ****************/ panel->sizeF = WMCreateFrame(panel->box); WMResizeWidget(panel->sizeF, 240, 60); WMMoveWidget(panel->sizeF, 15, 10); WMSetFrameTitle(panel->sizeF, _("Size Display")); WMSetBalloonTextForView(_("The position or style of the window size\n" "display that's shown when a window is resized."), WMWidgetView(panel->sizeF)); panel->sizeP = WMCreatePopUpButton(panel->sizeF); WMResizeWidget(panel->sizeP, 200, 20); WMMoveWidget(panel->sizeP, 20, 24); WMAddPopUpButtonItem(panel->sizeP, _("Corner of screen")); WMAddPopUpButtonItem(panel->sizeP, _("Center of screen")); WMAddPopUpButtonItem(panel->sizeP, _("Center of resized window")); WMAddPopUpButtonItem(panel->sizeP, _("Technical drawing-like")); WMAddPopUpButtonItem(panel->sizeP, _("Disabled")); WMMapSubwidgets(panel->sizeF); /***************** Position Display ****************/ panel->posiF = WMCreateFrame(panel->box); WMResizeWidget(panel->posiF, 240, 60); WMMoveWidget(panel->posiF, 15, 75); WMSetFrameTitle(panel->posiF, _("Position Display")); WMSetBalloonTextForView(_("The position or style of the window position\n" "display that's shown when a window is moved."), WMWidgetView(panel->posiF)); panel->posiP = WMCreatePopUpButton(panel->posiF); WMResizeWidget(panel->posiP, 200, 20); WMMoveWidget(panel->posiP, 20, 24); WMAddPopUpButtonItem(panel->posiP, _("Corner of screen")); WMAddPopUpButtonItem(panel->posiP, _("Center of screen")); WMAddPopUpButtonItem(panel->posiP, _("Center of resized window")); WMAddPopUpButtonItem(panel->posiP, _("Disabled")); WMMapSubwidgets(panel->posiF); /***************** Balloon Text ****************/ panel->ballF = WMCreateFrame(panel->box); WMResizeWidget(panel->ballF, 240, 109); WMMoveWidget(panel->ballF, 265, 10); WMSetFrameTitle(panel->ballF, _("Show balloon text for...")); for (i = 0; i < 4; i++) { panel->ballB[i] = WMCreateSwitchButton(panel->ballF); WMResizeWidget(panel->ballB[i], 210, 20); WMMoveWidget(panel->ballB[i], 15, 16 + i * 22); } WMSetButtonText(panel->ballB[0], _("incomplete window titles")); WMSetButtonText(panel->ballB[1], _("miniwindow titles")); WMSetButtonText(panel->ballB[2], _("application/dock icons")); WMSetButtonText(panel->ballB[3], _("internal help")); WMMapSubwidgets(panel->ballF); /***************** Options ****************/ panel->optF = WMCreateFrame(panel->box); WMResizeWidget(panel->optF, 240, 101); WMMoveWidget(panel->optF, 265, 124); WMSetFrameTitle(panel->optF, _("AppIcon bouncing")); panel->bounceB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->bounceB, 210, 25); WMMoveWidget(panel->bounceB, 15, 14); WMSetButtonText(panel->bounceB, _("Disable AppIcon bounce.")); panel->bounceUrgB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->bounceUrgB, 210, 30); WMMoveWidget(panel->bounceUrgB, 15, 39); WMSetButtonText(panel->bounceUrgB, _("Bounce AppIcon when the application wants attention.")); WMSetButtonSelected(panel->bounceUrgB, True); /* defaults to true */ panel->bounceRaisB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->bounceRaisB, 210, 25); WMMoveWidget(panel->bounceRaisB, 15, 70); WMSetButtonText(panel->bounceRaisB, _("Raise AppIcons when bouncing.")); WMMapSubwidgets(panel->optF); /***************** Workspace border ****************/ panel->borderF = WMCreateFrame(panel->box); WMResizeWidget(panel->borderF, 240, 80); WMMoveWidget(panel->borderF, 15, 145); WMSetFrameTitle(panel->borderF, _("Workspace border")); panel->borderS = WMCreateSlider(panel->borderF); WMResizeWidget(panel->borderS, 80, 15); WMMoveWidget(panel->borderS, 20, 20); WMSetSliderMinValue(panel->borderS, 0); WMSetSliderMaxValue(panel->borderS, 5); WMSetSliderAction(panel->borderS, borderCallback, panel); panel->borderL = WMCreateLabel(panel->borderF); WMResizeWidget(panel->borderL, 100, 15); WMMoveWidget(panel->borderL, 105, 20); panel->lrB = WMCreateSwitchButton(panel->borderF); WMMoveWidget(panel->lrB, 20, 40); WMResizeWidget(panel->lrB, 100, 30); WMSetButtonText(panel->lrB, _("Left/Right")); panel->tbB = WMCreateSwitchButton(panel->borderF); WMMoveWidget(panel->tbB, 120, 40); WMResizeWidget(panel->tbB, 100, 30); WMSetButtonText(panel->tbB, _("Top/Bottom")); WMMapSubwidgets(panel->borderF); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); showData(panel); } Panel *InitPreferences(WMScreen * scr, WMWidget * parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Miscellaneous Ergonomic Preferences"); panel->description = _("Various settings like balloon text, geometry\n" "displays etc."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; AddSection(panel, ICON_FILE); return panel; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/TexturePanel.h��������������������������������������������������������0000644�0001750�0001750�00000003471�12214432632�015544� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* TexturePanel.h- texture editting panel * * WPrefs - WindowMaker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef TEXTUREPANEL_H_ #define TEXTUREPANEL_H_ typedef struct _TexturePanel TexturePanel; TexturePanel *CreateTexturePanel(WMWindow *keyWindow); void DestroyTexturePanel(TexturePanel *panel); void ShowTexturePanel(TexturePanel *panel); void HideTexturePanel(TexturePanel *panel); void SetTexturePanelTexture(TexturePanel *panel, const char *name, WMPropList *texture); char *GetTexturePanelTextureName(TexturePanel *panel); WMPropList *GetTexturePanelTexture(TexturePanel *panel); RImage *RenderTexturePanelTexture(TexturePanel *panel, unsigned width, unsigned height); void SetTexturePanelOkAction(TexturePanel *panel, WMCallback *action, void *clientData); void SetTexturePanelCancelAction(TexturePanel *panel, WMCallback *action, void *clientData); void SetTexturePanelPixmapPath(TexturePanel *panel, WMPropList *array); #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/WPrefs.tiff�����������������������������������������������������������0000644�0001750�0001750�00000022522�12214432632�015031� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�$��•�À”�À”�À“�À“�À“�À ’�À ’�À ’�À ’�À ’�À ‘�À ‘�À �À �À �À �À �À�À�À�ÀŽ�ÀŽ�À�À�À�ÀŒ�ÀŒ�ÀŒ�ÀŒ�ÀŒ�À‹�À‹�ÀŠ�ÀŠ�ÀŠ�À‰�À‰�À‰�À‰�À‰�Àˆ�Àˆ�À‡�À‡�À‡�À†�À†�À”�À---W---W---W,,,W,,,W+++W+++W***W***W***W)))W)))W(((W(((W �À'''W'''W'''W&&&W&&&W&&&W%%%W%%%W$$$W$$$W$$$W###W###W###W"""W"""WŠ�À!!!W!!!W W W WWWWWWWWWW†�À”�À---W---W,,,W,,,Wê���ÿ���ÿŽ***W)))W)))W(((W(((W(((W �À'''W'''W&&&W&&&W&&&W%%%W%%%W$$$W$$$W$$$W###W###W###W"""W"""W"""WŠ�À!!!W W W WWWWWWWWWWW†�À“�À---W,,,W,,,Wê===ó“““Äû���ÿ���ü)))W(((W(((W(((W'''W�À'''W&&&W&&&W&&&W%%%W'''YDDDolllŽrrr“OOOy+++]###W"""W"""W"""W!!!WŠ�À W W WWWWWWWWWWWW†�À“�À,,,W,,,W+++W���ÿ–––ÀÈÈÈÈÂÂÂÆ]]]éÿ���ÿ(((W(((W'''W'''W�À&&&W&&&W&&&W(((Y@@@lxxx˜±±±Ä§§§¼›››³¶¶¶È‹‹‹§NNNy)))]"""W!!!W!!!W‰�À W WWWWWWWWWWWWW…�À“�À,,,W+++W+++W���ÿ$$$ðÄÄÄÄÈÈÈÈÈÈÈÈ™™™Ù���ÿ(((W'''W'''W'''W�À&&&W(((Y>>>juuu•°°°Ã¬¬¬Àˆˆˆ¤ttttttttttttµ¶¶¶È†††£KKKw&&&[ W‰�À WWWWWWWWWWWWWW…�À ’�À+++W+++W***WŽ���ÿjjj›ÈÈÈÈÈÈÈȺººÃÿ���ÿ'''W'''W&&&WŽ�À(((YQQQy£££¹®®®Â‰‰‰¥tttttttttttttttttttttttttttt   ¸µµµÈ„„„£JJJw#’ ÖWWWWWWWWWWWWWW…�À ’�À+++W***W***W***W���üÿ­­­ÀÌÌÌØÈÈÈÈ………Èÿò&&&W&&&WŽ�À@@@lŽŽŽ¼‡‡‡Ússs}tttttttttttttttttttttttttttttttttttttttt   ¸µµµÈ‚‚‚¡FFFu$$$[WWWWWWWWWWWW„�À ’�À***W***W***W)))W)))W���ÿ���ÿ þ››››ÈÈÈÈ„„„ÉÿòWWW}q¾f圜œ¹¸¸¸Þ���ÿê[[[sssutttttttttttttttttttttttttttttttttttttttt¡¡¡º´´´Ç~~~ŸAAAq"""[WWWWWWWWWW„�À ’�À***W***W)))W)))W(((W(((W(((W���ÿþ±±±ÃÈÈÈÈ………âÿ ûewbùþ���ÿ���ÿ���ÿÿ111Ômmmtttttttttttttttttttttttttttttttttttttttttttt¥¥¥¼³³³Ç{{{@@@q!!![WWWWWWWWƒ�À ’�À***W)))W)))W(((W(((W(((W'''W'''W���ÿ þ¹¹¹ËÈÈÈȃƒƒêÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ þIIItttttttttttttttttttttttttttttttttttttttttttttttt¤¤¤¼±±±Æxxxœ<<<o [WWWWWWƒ�À ‘�À)))W)))W(((W(((W(((W'''W///]ZZZŸŸŸ½���ÿÿ¥¥¥µÈÈÈÈyyyà���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���Ù$$$ceeeetttttttttttttttttttttttttttttttttttttttttttttttttttttttt¤¤¤¼±±±Ættt™888mYWWWWƒ�À ‘�À)))W(((W(((W(((W'''W444asss“¥¥¥Ô###õ���ÿ���ÿÿ¥¥¥¶ÇÇÇÇqqqåÿ���ÿ���ÿ���ñTTTXttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttƒƒƒ¤¨¨¨À®®®Äqqq˜777mYWWƒ�À �À(((W(((W(((W'''W666c†††¢”””Üþ���ÿ���ÿ���ÿ���ÿÿ©©©¸ÈÈÈÈsssä���ÿ���û<<<Poooottttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttƒƒƒ¥¨¨¨À­­­Äqqq˜777mY ƒ�À �À(((W(((W'''W444a‡‡‡¤ƒƒƒà���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿ¯¯¯¹ÈÈÈÈlllÝ���ÿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt¤§§§Àžžž»;;;q ‚�À �À �À �À›Öp¿g勤ˆ÷���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿ¬¬¬¹ÈÈÈÈqqqß ôttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttsss{šzõo¯Yã!‚�À �À'''W'''W\\\£££×þ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþ®®®¹ÈÈÈÈkkkã òttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttsss‚CCC犊Šß]]]Š!‚�À �À'''W===h   ¿÷���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþ±±±»ÈÈÈÈffféõttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttrrr‹444æ���ÿ   Ó???u!�À�À'''Wlllˆˆˆà���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþµµµ½ÆÆÆÆ```íðttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttqqq”***ï���ÿþ”””¹###a"�À�À555cœœœ»û���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþ¸¸¸¾ÇÇÇÇYYYñøttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttnnnŸ ÷���ÿ���ÿ[[[ëzzzŸW"€�À�ÀTTT{×���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ!!!þ···¾ÇÇÇÇWWWæù���ÿüüÿiiittttttttttttttttttttttttttttttttttttiii©ý���ÿ���ÿ���ÿ\\\êxxxŸW#€�ÀŽ�Àoooyyyã���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ)))ù¹¹¹ºÆÆÆÆTTTì666óÀÀÀÀÈÈÈÈ­­­Åýttttttttttttttttttttttttttttttttggg´þ���ÿ���ÿ���ÿ���ÿþµ _#€�ÀŽ�À€€€EEEï���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���åW���ÿ...ø¼¼¼¾ÆÆÆÆÁÁÁÁÈÈÈÈÈÈÈÈÈÈÈÈHHHðUUU—ttttttttttttttttttttsssvaaaÄÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ˜˜˜È///j$€�À�À‡‡‡£ú���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���¬...?oooo___Œ���ÿ^^^ØÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈȰ°°Ä(((úÿZZZ’ttttttttsss{ZZZÑ ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿšššÐ;;;s$€�À�À‡‡‡£ú���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ð cQQQQtttttttt���ÿ000ô½½½½ÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈȲ²²ÃýZZZ’sss‚QQQÝÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿšššÐ:::s$�À�À~~~EEEï���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���À!!!<iiiitttttttttttt���ÿ°°°°ÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈȱ±±Ãý000ðÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ™™™Ê111l%�ÀŒ�Ànnnxxxä���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ù@@@nsssstttttttttttttttt���ÿ¬¬¬¬ÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ­­­Êÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþ¶_%�ÀŒ�ÀRRR{œœœ×���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ!!!ùnnn tttttttttttttttt���ÿ[[[çÆÆÆÆÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ«««Éÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿVVVêqqqšW&~�ÀŒ�À555e›››¼ ü���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿüiii°tttttttttttttttt���ÿþeeeâÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ¥¥¥Êÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ———ØJJJW&~�ÀŒ�À###WjjjŽƒƒƒà���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿccc¾sssvtttttttttttt___Œ���ÿ««««ÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ£££Éÿ���ÿ���ÿ���ÿ���ÿ���ÿ%%%õŽŽŽµ"""cW'}�ÀŒ�À"""W888hžžž¿÷���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ ÿ[[[Îsssytttttttttttt���ÿeeeäÇÇÇÇÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ¡¡¡Ê ÿ���ÿ���ÿ���ÿ���ÿšššÙOOO‚WW'}�À‹�À"""W"""WXXX¢¢¢×þ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿRRRÙsss}tttttttttttt���ÿlllàÇÇÇÇÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ   Ë ÿ���ÿ���ÿhhhå|||¤_WW'}�À‹�ÀŠ�ÀŠ�À$•Öu»h剟„÷���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿMMMãsss„ttttttttmmm„���ÿcccìÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÌ ÿ)))ôžÃŽî?ŽÙ'}�À'}�À'}�À(|�ÀŠ�À!!!W!!!W W---a………¤ƒƒƒà���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿCCCìssssss‡\\\æ ÿÿlllæÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈžžžß ÿ###£WWWW(|�ÀŠ�À!!!W W W W///c¢’’’Üþ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ888ôSSSðÿ���ÿ���ÿ���ÿnnnæÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈŸŸŸÖ ÿ WWW)|�ÀŠ�À W W WWW,,,annn“¥¥¥Õ###õ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿuuuâÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ“““¾ÿ ’WW)|�À‰�À W WWWWW&&&]PPP}›››½„„„àþ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿxxxáÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ™™™ÀÿWW*|�À‰�À WWWWWWWW222gkkk’¢¢¢Ç†††àú���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿyyyàÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈbbbç���ÿW*{�À‰�ÀWWWWWWWWWY555jeeeŽ———º›››×dr_ùû���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿFFFîÿåÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈȤ¤¤Á���ÿW*{�À‰�ÀWWWWWWWWWWWW(((aKKK{w·eåµÎ———Ú‡‡‡ã ü���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþŒŒŒâŸŸŸÕ˜˜˜ÀxxxŸe¦Káÿ„„„ÜÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÅÅÅÇ���ÿW+z�À‰�ÀWWWWWWWWWWWWWW„�À###_999oQQQ{{{Ÿ¦¦¦Øþ���ÿ���ÿ���ÿ���ÿþ˜˜˜Û}}}£CCCy'''eY%�Àfÿ‹‹‹ÚÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈȬ¬¬Â���ÿ W+z�Àˆ�ÀWWWWWWWWWWWWWWƒ�ÀWWW]fffŸŸŸÙþ���ÿ���ÿ���ÿŽŽŽÜrrrš_WWW%�ÀWWÿ‹‹‹ÚÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈlllá���ÿ W,z�Àˆ�ÀWWWWWWWWWWWWWWƒ�ÀWWWW]iii“›››Ùþ���ÿŽŽŽÝxxxŸ"""aWWWW&~�ÀWWWÿÙÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ©©©Áþ���þ W,y�À‡�ÀWWWWWWWWWWWWWWƒ�ÀWWWWW!!!_kkk•‹‹‹Ó}}}ÙxxxŸ"""aWWWWW&~�ÀWWWWúbbbç³³³×ÇÇÇǺººÄxxxÝ þ���ÿ W W-y�À‡�ÀWWWWWWWWWWWWWWƒ�ÀWWWWWW _CCCyJJJ}"""aWWWWWW'}�ÀWWWWW���û���ÿ���ÿ���ÿ���ÿ���ý _ W W-y�À‡�ÀWWWWWWWWWWWWWW ƒ�ÀWWWWWWWWWWWWWWWW'}�ÀWWWWWWWW W W W W W W-y�À†�ÀWWWWWWWWWWWWWW ‚�ÀWWWWWWWWWWWWWWWW'}�ÀWWWWWWW W W W W W W W.y�À†�À†�À†�À†�À…�À…�À…�À„�À„�Àƒ�Àƒ�Àƒ�Àƒ�À ƒ�À ‚�À!‚�À!‚�À!�À"�À"€�À#€�À#€�À$€�À$€�À$�À%�À%�À&~�À&~�À'}�À'}�À'}�À(|�À(|�À)|�À)|�À*|�À*{�À*{�À+z�À+z�À,z�À,y�À-y�À-y�À-y�À.y�À.x�À�þ��������������0�������0�������æ$���������������� �/���î$���#���%���������������������������@��������$������B%������J%���������(�������R���������������/home/largo/newicons/new/GNUstep-glow17-21.tif��by largo for Window Maker 20030413���a0X����a0X���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/editmenu.c������������������������������������������������������������0000644�0001750�0001750�00000072626�12214432632�014741� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* editmenu.c - editable menus * * WPrefs - Window Maker Preferences Program * * Copyright (c) 2000-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include <WINGs/WINGsP.h> #include <WINGs/WUtil.h> #include <stdlib.h> #include <stdint.h> #include <assert.h> #include <ctype.h> #include "editmenu.h" typedef struct W_EditMenuItem { W_Class widgetClass; WMView *view; struct W_EditMenu *parent; char *label; WMPixmap *pixmap; /* pixmap to show at left */ void *data; WMCallback *destroyData; struct W_EditMenu *submenu; /* if it's a cascade, NULL otherwise */ struct { unsigned isTitle:1; unsigned isHighlighted:1; } flags; } EditMenuItem; typedef struct W_EditMenu { W_Class widgetClass; WMView *view; struct W_EditMenu *parent; WMArray *items; /* EditMenuItem */ EditMenuItem *selectedItem; WMTextField *tfield; WMButton *closeB; int titleHeight; int itemHeight; WEditMenuDelegate *delegate; WMTextFieldDelegate *tdelegate; /* item dragging */ int draggedItem; int dragX, dragY; /* only for non-standalone menu */ WMSize maxSize; WMSize minSize; struct { unsigned standalone:1; unsigned isTitled:1; unsigned acceptsDrop:1; unsigned isFactory:1; unsigned isSelectable:1; unsigned isEditable:1; unsigned isTornOff:1; unsigned isDragging:1; unsigned isEditing:1; unsigned wasMapped:1; } flags; } EditMenu; /******************** WEditMenuItem ********************/ static void destroyEditMenuItem(WEditMenuItem * iPtr); static void paintEditMenuItem(WEditMenuItem * iPtr); static void handleItemEvents(XEvent * event, void *data); static void handleItemClick(XEvent * event, void *data); 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(); } return EditMenuItemClass; } WEditMenuItem *WCreateEditMenuItem(WMWidget * parent, const char *title, Bool isTitle) { WEditMenuItem *iPtr; WMScreen *scr = WMWidgetScreen(parent); if (!EditMenuItemClass) InitEditMenuItem(scr); iPtr = wmalloc(sizeof(WEditMenuItem)); iPtr->widgetClass = EditMenuItemClass; iPtr->view = W_CreateView(W_VIEW(parent)); if (!iPtr->view) { wfree(iPtr); return NULL; } iPtr->view->self = iPtr; iPtr->parent = parent; iPtr->label = wstrdup(title); iPtr->flags.isTitle = isTitle; if (isTitle) { WMSetWidgetBackgroundColor(iPtr, WMBlackColor(scr)); } WMCreateEventHandler(iPtr->view, ExposureMask | StructureNotifyMask, handleItemEvents, iPtr); WMCreateEventHandler(iPtr->view, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask, handleItemClick, iPtr); return iPtr; } char *WGetEditMenuItemTitle(WEditMenuItem * item) { return item->label; } void *WGetEditMenuItemData(WEditMenuItem * item) { return item->data; } void WSetEditMenuItemData(WEditMenuItem * item, void *data, WMCallback * destroyer) { item->data = data; item->destroyData = destroyer; } void WSetEditMenuItemImage(WEditMenuItem * item, WMPixmap * pixmap) { if (item->pixmap) WMReleasePixmap(item->pixmap); item->pixmap = WMRetainPixmap(pixmap); } static void paintEditMenuItem(WEditMenuItem * iPtr) { WMScreen *scr = WMWidgetScreen(iPtr); WMColor *color; Window win = W_VIEW(iPtr)->window; int w = W_VIEW(iPtr)->size.width; int h = W_VIEW(iPtr)->size.height; WMFont *font = (iPtr->flags.isTitle ? scr->boldFont : scr->normalFont); if (!iPtr->view->flags.realized) return; color = scr->black; if (iPtr->flags.isTitle && !iPtr->flags.isHighlighted) { color = scr->white; } XClearWindow(scr->display, win); W_DrawRelief(scr, win, 0, 0, w + 1, h, WRRaised); WMDrawString(scr, win, color, font, 5, 3, iPtr->label, strlen(iPtr->label)); if (iPtr->pixmap) { WMSize size = WMGetPixmapSize(iPtr->pixmap); WMDrawPixmap(iPtr->pixmap, win, w - size.width - 5, (h - size.height) / 2); } else if (iPtr->submenu) { /* draw the cascade indicator */ XDrawLine(scr->display, win, WMColorGC(scr->darkGray), w - 11, 6, w - 6, h / 2 - 1); XDrawLine(scr->display, win, WMColorGC(scr->white), w - 11, h - 8, w - 6, h / 2 - 1); XDrawLine(scr->display, win, WMColorGC(scr->black), w - 12, 6, w - 12, h - 8); } } static void highlightItem(WEditMenuItem * iPtr, Bool high) { if (iPtr->flags.isTitle) return; iPtr->flags.isHighlighted = high; if (high) { WMSetWidgetBackgroundColor(iPtr, WMWhiteColor(WMWidgetScreen(iPtr))); } else { if (!iPtr->flags.isTitle) { WMSetWidgetBackgroundColor(iPtr, WMGrayColor(WMWidgetScreen(iPtr))); } else { WMSetWidgetBackgroundColor(iPtr, WMBlackColor(WMWidgetScreen(iPtr))); } } } static int getItemTextWidth(WEditMenuItem * iPtr) { WMScreen *scr = WMWidgetScreen(iPtr); if (iPtr->flags.isTitle) { return WMWidthOfString(scr->boldFont, iPtr->label, strlen(iPtr->label)); } else { return WMWidthOfString(scr->normalFont, 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 destroyEditMenuItem(WEditMenuItem * iPtr) { if (iPtr->label) wfree(iPtr->label); if (iPtr->data && iPtr->destroyData) (*iPtr->destroyData) (iPtr->data); if (iPtr->submenu) WMDestroyWidget(iPtr->submenu); wfree(iPtr); } /******************** WEditMenu *******************/ static void destroyEditMenu(WEditMenu * mPtr); static void updateMenuContents(WEditMenu * mPtr); static void handleEvents(XEvent * event, void *data); static void editItemLabel(WEditMenuItem * item); static void stopEditItem(WEditMenu * menu, Bool apply); static void deselectItem(WEditMenu * menu); 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(); } 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); } static void itemSelectObserver(void *self, WMNotification * notif) { WEditMenu *menu = (WEditMenu *) self; WEditMenu *rmenu; rmenu = (WEditMenu *) WMGetNotificationObject(notif); /* check whether rmenu is from the same hierarchy of menu? */ if (rmenu == menu) { return; } if (menu->selectedItem) { if (!menu->selectedItem->submenu) deselectItem(menu); if (menu->flags.isEditing) stopEditItem(menu, False); } } static WEditMenu *makeEditMenu(WMScreen * scr, WMWidget * parent, const char *title) { WEditMenu *mPtr; WEditMenuItem *item; if (!EditMenuClass) InitEditMenu(scr); mPtr = wmalloc(sizeof(WEditMenu)); mPtr->widgetClass = EditMenuClass; if (parent) { mPtr->view = W_CreateView(W_VIEW(parent)); mPtr->flags.standalone = 0; } else { mPtr->view = W_CreateTopView(scr); mPtr->flags.standalone = 1; } if (!mPtr->view) { wfree(mPtr); return NULL; } mPtr->view->self = mPtr; mPtr->flags.isSelectable = 1; mPtr->flags.isEditable = 1; W_SetViewBackgroundColor(mPtr->view, scr->darkGray); WMAddNotificationObserver(realizeObserver, mPtr, WMViewRealizedNotification, mPtr->view); WMAddNotificationObserver(itemSelectObserver, mPtr, "EditMenuItemSelected", NULL); mPtr->items = WMCreateArray(4); WMCreateEventHandler(mPtr->view, ExposureMask | StructureNotifyMask, handleEvents, mPtr); if (title != NULL) { item = WCreateEditMenuItem(mPtr, title, True); WMMapWidget(item); WMAddToArray(mPtr->items, item); mPtr->flags.isTitled = 1; } mPtr->itemHeight = WMFontHeight(scr->normalFont) + 6; mPtr->titleHeight = WMFontHeight(scr->boldFont) + 8; updateMenuContents(mPtr); return mPtr; } WEditMenu *WCreateEditMenu(WMScreen * scr, const char *title) { return makeEditMenu(scr, NULL, title); } WEditMenu *WCreateEditMenuPad(WMWidget * parent) { return makeEditMenu(WMWidgetScreen(parent), parent, NULL); } void WSetEditMenuDelegate(WEditMenu * mPtr, WEditMenuDelegate * delegate) { mPtr->delegate = delegate; } WEditMenuItem *WInsertMenuItemWithTitle(WEditMenu * mPtr, int index, const char *title) { WEditMenuItem *item; item = WCreateEditMenuItem(mPtr, title, False); WMMapWidget(item); if (index >= WMGetArrayItemCount(mPtr->items)) { WMAddToArray(mPtr->items, item); } else { if (index < 0) index = 0; if (mPtr->flags.isTitled) index++; WMInsertInArray(mPtr->items, index, item); } updateMenuContents(mPtr); return item; } WEditMenuItem *WGetEditMenuItem(WEditMenu * mPtr, int index) { if (index >= WMGetArrayItemCount(mPtr->items)) return NULL; return WMGetFromArray(mPtr->items, index + (mPtr->flags.isTitled ? 1 : 0)); } WEditMenuItem *WAddMenuItemWithTitle(WEditMenu * mPtr, const char *title) { return WInsertMenuItemWithTitle(mPtr, WMGetArrayItemCount(mPtr->items), title); } void WSetEditMenuTitle(WEditMenu * mPtr, const char *title) { WEditMenuItem *item; item = WMGetFromArray(mPtr->items, 0); wfree(item->label); item->label = wstrdup(title); updateMenuContents(mPtr); WMRedisplayWidget(item); } char *WGetEditMenuTitle(WEditMenu * mPtr) { WEditMenuItem *item; item = WMGetFromArray(mPtr->items, 0); return item->label; } void WSetEditMenuAcceptsDrop(WEditMenu * mPtr, Bool flag) { mPtr->flags.acceptsDrop = flag; } void WSetEditMenuSubmenu(WEditMenu * mPtr, WEditMenuItem * item, WEditMenu * submenu) { item->submenu = submenu; submenu->parent = mPtr; paintEditMenuItem(item); } WEditMenu *WGetEditMenuSubmenu(WEditMenu * mPtr, WEditMenuItem * item) { return item->submenu; } void WRemoveEditMenuItem(WEditMenu * mPtr, WEditMenuItem * item) { if (WMRemoveFromArray(mPtr->items, item) != 0) { updateMenuContents(mPtr); } } void WSetEditMenuSelectable(WEditMenu * mPtr, Bool flag) { mPtr->flags.isSelectable = flag; } void WSetEditMenuEditable(WEditMenu * mPtr, Bool flag) { mPtr->flags.isEditable = flag; } void WSetEditMenuIsFactory(WEditMenu * mPtr, Bool flag) { mPtr->flags.isFactory = flag; } void WSetEditMenuMinSize(WEditMenu * mPtr, WMSize size) { mPtr->minSize.width = size.width; mPtr->minSize.height = size.height; } void WSetEditMenuMaxSize(WEditMenu * mPtr, WMSize size) { mPtr->maxSize.width = size.width; mPtr->maxSize.height = size.height; } WMPoint WGetEditMenuLocationForSubmenu(WEditMenu * mPtr, WEditMenu * submenu) { WMArrayIterator iter; WEditMenuItem *item; int y; if (mPtr->flags.isTitled) y = -mPtr->titleHeight; else y = 0; WM_ITERATE_ARRAY(mPtr->items, item, iter) { if (item->submenu == submenu) { WMPoint pt = WMGetViewScreenPosition(mPtr->view); return wmkpoint(pt.x + mPtr->view->size.width, pt.y + y); } y += W_VIEW_HEIGHT(item->view); } puts("invalid submenu passed to WGetEditMenuLocationForSubmenu()"); return wmkpoint(0, 0); } static void closeMenuAction(WMWidget * w, void *data) { WEditMenu *menu = (WEditMenu *) data; WMAddIdleHandler(WMDestroyWidget, menu->closeB); menu->closeB = NULL; WEditMenuHide(menu); } void WTearOffEditMenu(WEditMenu * menu, WEditMenu * submenu) { WEditMenuItem *item; submenu->flags.isTornOff = 1; item = (WEditMenuItem *) WMGetFromArray(submenu->items, 0); submenu->closeB = WMCreateCommandButton(item); WMResizeWidget(submenu->closeB, 15, 15); WMMoveWidget(submenu->closeB, W_VIEW(submenu)->size.width - 20, 3); WMRealizeWidget(submenu->closeB); WMSetButtonText(submenu->closeB, "X"); WMSetButtonAction(submenu->closeB, closeMenuAction, submenu); WMMapWidget(submenu->closeB); if (menu->selectedItem && menu->selectedItem->submenu == submenu) deselectItem(menu); } Bool WEditMenuIsTornOff(WEditMenu * mPtr) { return mPtr->flags.isTornOff; } void WEditMenuHide(WEditMenu * mPtr) { WEditMenuItem *item; int i = 0; if (WMWidgetIsMapped(mPtr)) { WMUnmapWidget(mPtr); mPtr->flags.wasMapped = 1; } else { mPtr->flags.wasMapped = 0; } while ((item = WGetEditMenuItem(mPtr, i++))) { WEditMenu *submenu; submenu = WGetEditMenuSubmenu(mPtr, item); if (submenu) { WEditMenuHide(submenu); } } } void WEditMenuUnhide(WEditMenu * mPtr) { WEditMenuItem *item; int i = 0; if (mPtr->flags.wasMapped) { WMMapWidget(mPtr); } while ((item = WGetEditMenuItem(mPtr, i++))) { WEditMenu *submenu; submenu = WGetEditMenuSubmenu(mPtr, item); if (submenu) { WEditMenuUnhide(submenu); } } } void WEditMenuShowAt(WEditMenu * menu, int x, int y) { XSizeHints *hints; hints = XAllocSizeHints(); hints->flags = USPosition; hints->x = x; hints->y = y; WMMoveWidget(menu, x, y); XSetWMNormalHints(W_VIEW_DISPLAY(menu->view), W_VIEW_DRAWABLE(menu->view), hints); XFree(hints); WMMapWidget(menu); } static void updateMenuContents(WEditMenu * mPtr) { int newW, newH; int w; int i; int iheight = mPtr->itemHeight; int offs = 1; WMArrayIterator iter; WEditMenuItem *item; newW = 0; newH = offs; i = 0; WM_ITERATE_ARRAY(mPtr->items, item, iter) { w = getItemTextWidth(item); newW = WMAX(w, newW); WMMoveWidget(item, offs, newH); if (i == 0 && mPtr->flags.isTitled) { newH += mPtr->titleHeight; } else { newH += iheight; } i = 1; } newW += iheight + 10; newH--; if (mPtr->minSize.width) newW = WMAX(newW, mPtr->minSize.width); if (mPtr->maxSize.width) newW = WMIN(newW, mPtr->maxSize.width); if (mPtr->minSize.height) newH = WMAX(newH, mPtr->minSize.height); if (mPtr->maxSize.height) newH = WMIN(newH, mPtr->maxSize.height); if (W_VIEW(mPtr)->size.width == newW && mPtr->view->size.height == newH + 1) return; W_ResizeView(mPtr->view, newW, newH + 1); if (mPtr->closeB) WMMoveWidget(mPtr->closeB, newW - 20, 3); newW -= 2 * offs; i = 0; WM_ITERATE_ARRAY(mPtr->items, item, iter) { if (i == 0 && mPtr->flags.isTitled) { WMResizeWidget(item, newW, mPtr->titleHeight); } else { WMResizeWidget(item, newW, iheight); } i = 1; } } static void deselectItem(WEditMenu * menu) { WEditMenu *submenu; WEditMenuItem *item = menu->selectedItem; highlightItem(item, False); if (menu->delegate && menu->delegate->itemDeselected) { (*menu->delegate->itemDeselected) (menu->delegate, menu, item); } submenu = item->submenu; if (submenu && !WEditMenuIsTornOff(submenu)) { WEditMenuHide(submenu); } menu->selectedItem = NULL; } static void selectItem(WEditMenu * menu, WEditMenuItem * item) { if (!menu->flags.isSelectable || menu->selectedItem == item) { return; } if (menu->selectedItem) { deselectItem(menu); } if (menu->flags.isEditing) { stopEditItem(menu, False); } if (item && !item->flags.isTitle) { highlightItem(item, True); if (item->submenu && !W_VIEW_MAPPED(item->submenu->view)) { WMPoint pt; pt = WGetEditMenuLocationForSubmenu(menu, item->submenu); WEditMenuShowAt(item->submenu, pt.x, pt.y); item->submenu->flags.isTornOff = 0; } WMPostNotificationName("EditMenuItemSelected", menu, NULL); if (menu->delegate && menu->delegate->itemSelected) { (*menu->delegate->itemSelected) (menu->delegate, menu, item); } } menu->selectedItem = item; } static void paintMenu(WEditMenu * mPtr) { W_View *view = mPtr->view; W_DrawRelief(W_VIEW_SCREEN(view), W_VIEW_DRAWABLE(view), 0, 0, W_VIEW_WIDTH(view), W_VIEW_HEIGHT(view), WRSimple); } static void handleEvents(XEvent * event, void *data) { WEditMenu *mPtr = (WEditMenu *) data; switch (event->type) { case DestroyNotify: destroyEditMenu(mPtr); break; case Expose: if (event->xexpose.count == 0) paintMenu(mPtr); break; } } /* -------------------------- Menu Label Editing ------------------------ */ static void stopEditItem(WEditMenu * menu, Bool apply) { char *text; if (apply) { text = WMGetTextFieldText(menu->tfield); wfree(menu->selectedItem->label); menu->selectedItem->label = wstrdup(text); updateMenuContents(menu); if (menu->delegate && menu->delegate->itemEdited) { (*menu->delegate->itemEdited) (menu->delegate, menu, menu->selectedItem); } } WMUnmapWidget(menu->tfield); menu->flags.isEditing = 0; } static void textEndedEditing(struct WMTextFieldDelegate *self, WMNotification * notif) { WEditMenu *menu = (WEditMenu *) self->data; uintptr_t reason; int i; WEditMenuItem *item; if (!menu->flags.isEditing) return; reason = (uintptr_t)WMGetNotificationClientData(notif); switch (reason) { case WMEscapeTextMovement: stopEditItem(menu, False); break; case WMReturnTextMovement: stopEditItem(menu, True); break; case WMTabTextMovement: stopEditItem(menu, True); i = WMGetFirstInArray(menu->items, menu->selectedItem); item = WMGetFromArray(menu->items, i + 1); if (item != NULL) { selectItem(menu, item); editItemLabel(item); } break; case WMBacktabTextMovement: stopEditItem(menu, True); i = WMGetFirstInArray(menu->items, menu->selectedItem); item = WMGetFromArray(menu->items, i - 1); if (item != NULL) { selectItem(menu, item); editItemLabel(item); } break; } } static WMTextFieldDelegate textFieldDelegate = { NULL, NULL, NULL, textEndedEditing, NULL, NULL }; static void editItemLabel(WEditMenuItem * item) { WEditMenu *mPtr = item->parent; WMTextField *tf; if (!mPtr->flags.isEditable) { return; } if (!mPtr->tfield) { mPtr->tfield = WMCreateTextField(mPtr); WMSetTextFieldBeveled(mPtr->tfield, False); WMRealizeWidget(mPtr->tfield); mPtr->tdelegate = wmalloc(sizeof(WMTextFieldDelegate)); memcpy(mPtr->tdelegate, &textFieldDelegate, sizeof(WMTextFieldDelegate)); mPtr->tdelegate->data = mPtr; WMSetTextFieldDelegate(mPtr->tfield, mPtr->tdelegate); } tf = mPtr->tfield; WMSetTextFieldText(tf, item->label); WMSelectTextFieldRange(tf, wmkrange(0, strlen(item->label))); WMResizeWidget(tf, mPtr->view->size.width, mPtr->itemHeight); WMMoveWidget(tf, 0, item->view->pos.y); WMMapWidget(tf); WMSetFocusToWidget(tf); mPtr->flags.isEditing = 1; } /* -------------------------------------------------- */ static void slideWindow(Display * dpy, Window win, int srcX, int srcY, int dstX, int dstY) { double x, y, dx, dy; int i; int iterations; iterations = WMIN(25, WMAX(abs(dstX - srcX), abs(dstY - srcY))); x = srcX; y = srcY; dx = (double)(dstX - srcX) / iterations; dy = (double)(dstY - srcY) / iterations; for (i = 0; i <= iterations; i++) { XMoveWindow(dpy, win, x, y); XFlush(dpy); wusleep(800); x += dx; y += dy; } } static int errorHandler(Display * d, XErrorEvent * ev) { /* just ignore */ return 0; } static WEditMenu *findMenuInWindow(Display * dpy, Window toplevel, int x, int y) { Window foo, bar; Window *children; unsigned nchildren; int i; WEditMenu *menu; WMView *view; int (*oldHandler) (Display *, XErrorEvent *); view = W_GetViewForXWindow(dpy, toplevel); if (view && view->self && WMWidgetClass(view->self) == EditMenuClass) { menu = (WEditMenu *) view->self; if (menu->flags.acceptsDrop) { return menu; } } if (!XQueryTree(dpy, toplevel, &foo, &bar, &children, &nchildren) || children == NULL) { return NULL; } oldHandler = XSetErrorHandler(errorHandler); /* first window that contains the point is the one */ for (i = nchildren - 1; i >= 0; i--) { XWindowAttributes attr; if (XGetWindowAttributes(dpy, children[i], &attr) && attr.map_state == IsViewable && x >= attr.x && y >= attr.y && x < attr.x + attr.width && y < attr.y + attr.height) { Window tmp; tmp = children[i]; menu = findMenuInWindow(dpy, tmp, x - attr.x, y - attr.y); if (menu) { XFree(children); return menu; } } } XSetErrorHandler(oldHandler); XFree(children); return NULL; } static void handleDragOver(WEditMenu * menu, WMView * view, WEditMenuItem * item, int x, int y) { WMScreen *scr = W_VIEW_SCREEN(menu->view); Window blaw; int mx, my; int offs; XTranslateCoordinates(scr->display, W_VIEW_DRAWABLE(menu->view), scr->rootWin, 0, 0, &mx, &my, &blaw); offs = menu->flags.standalone ? 0 : 1; W_MoveView(view, mx + offs, y); if (view->size.width != menu->view->size.width) { W_ResizeView(view, menu->view->size.width - 2 * offs, menu->itemHeight); W_ResizeView(item->view, menu->view->size.width - 2 * offs, menu->itemHeight); } } static void handleItemDrop(WEditMenu * menu, WEditMenuItem * item, int x, int y) { WMScreen *scr = W_VIEW_SCREEN(menu->view); Window blaw; int mx, my; int index; XTranslateCoordinates(scr->display, W_VIEW_DRAWABLE(menu->view), scr->rootWin, 0, 0, &mx, &my, &blaw); index = y - my; if (menu->flags.isTitled) { index -= menu->titleHeight; } index = (index + menu->itemHeight / 2) / menu->itemHeight; if (index < 0) index = 0; if (menu->flags.isTitled) { index++; } if (index > WMGetArrayItemCount(menu->items)) { WMAddToArray(menu->items, item); } else { WMInsertInArray(menu->items, index, item); } W_ReparentView(item->view, menu->view, 0, index * menu->itemHeight); item->parent = menu; if (item->submenu) { item->submenu->parent = menu; } updateMenuContents(menu); } static void dragMenu(WEditMenu * menu) { WMScreen *scr = W_VIEW_SCREEN(menu->view); XEvent ev; Bool done = False; int dx, dy; unsigned blau; Window blaw; XGetGeometry(scr->display, W_VIEW_DRAWABLE(menu->view), &blaw, &dx, &dy, &blau, &blau, &blau, &blau); XTranslateCoordinates(scr->display, W_VIEW_DRAWABLE(menu->view), scr->rootWin, dx, dy, &dx, &dy, &blaw); dx = menu->dragX - dx; dy = menu->dragY - dy; XGrabPointer(scr->display, scr->rootWin, False, ButtonReleaseMask | ButtonMotionMask, GrabModeAsync, GrabModeAsync, None, scr->defaultCursor, CurrentTime); if (menu->parent) WTearOffEditMenu(menu->parent, menu); while (!done) { WMNextEvent(scr->display, &ev); switch (ev.type) { case ButtonRelease: done = True; break; case MotionNotify: while (XCheckMaskEvent(scr->display, ButtonMotionMask, &ev)) ; WMMoveWidget(menu, ev.xmotion.x_root - dx, ev.xmotion.y_root - dy); break; default: WMHandleEvent(&ev); break; } } XUngrabPointer(scr->display, CurrentTime); } static WEditMenuItem *duplicateItem(WEditMenuItem * item) { WEditMenuItem *nitem; nitem = WCreateEditMenuItem(item->parent, item->label, False); if (item->pixmap) nitem->pixmap = WMRetainPixmap(item->pixmap); return nitem; } static WEditMenu *duplicateMenu(WEditMenu * menu) { WEditMenu *nmenu; WEditMenuItem *item; WMArrayIterator iter; Bool first = menu->flags.isTitled; nmenu = WCreateEditMenu(WMWidgetScreen(menu), WGetEditMenuTitle(menu)); memcpy(&nmenu->flags, &menu->flags, sizeof(menu->flags)); nmenu->delegate = menu->delegate; WM_ITERATE_ARRAY(menu->items, item, iter) { WEditMenuItem *nitem; if (first) { first = False; continue; } nitem = WAddMenuItemWithTitle(nmenu, item->label); if (item->pixmap) WSetEditMenuItemImage(nitem, item->pixmap); if (menu->delegate && menu->delegate->itemCloned) { (*menu->delegate->itemCloned) (menu->delegate, menu, item, nitem); } } WMRealizeWidget(nmenu); return nmenu; } static void dragItem(WEditMenu * menu, WEditMenuItem * item, Bool copy) { static XColor black = { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 }; static XColor green = { 0x0045b045, 0x4500, 0xb000, 0x4500, DoRed | DoGreen | DoBlue, 0 }; static XColor back = { 0, 0xffff, 0xffff, 0xffff, DoRed | DoGreen | DoBlue, 0 }; Display *dpy = W_VIEW_DISPLAY(menu->view); WMScreen *scr = W_VIEW_SCREEN(menu->view); int x, y; int dx, dy; Bool done = False; Window blaw; int blai; unsigned blau; Window win; WMView *dview; int orix, oriy; Bool enteredMenu = False; WMSize oldSize = item->view->size; WEditMenuItem *dritem = item; WEditMenu *dmenu = NULL; if (item->flags.isTitle) { WMRaiseWidget(menu); dragMenu(menu); return; } selectItem(menu, NULL); win = scr->rootWin; XTranslateCoordinates(dpy, W_VIEW_DRAWABLE(item->view), win, 0, 0, &orix, &oriy, &blaw); dview = W_CreateUnmanagedTopView(scr); W_SetViewBackgroundColor(dview, scr->black); W_ResizeView(dview, W_VIEW_WIDTH(item->view), W_VIEW_HEIGHT(item->view)); W_MoveView(dview, orix, oriy); W_RealizeView(dview); if (menu->flags.isFactory || copy) { dritem = duplicateItem(item); W_ReparentView(dritem->view, dview, 0, 0); WMResizeWidget(dritem, oldSize.width, oldSize.height); WMRealizeWidget(dritem); WMMapWidget(dritem); } else { W_ReparentView(item->view, dview, 0, 0); } W_MapView(dview); dx = menu->dragX - orix; dy = menu->dragY - oriy; XGrabPointer(dpy, scr->rootWin, False, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask, GrabModeAsync, GrabModeAsync, None, scr->defaultCursor, CurrentTime); if (menu->flags.acceptsDrop) XRecolorCursor(dpy, scr->defaultCursor, &green, &back); while (!done) { XEvent ev; WMNextEvent(dpy, &ev); switch (ev.type) { case MotionNotify: while (XCheckMaskEvent(dpy, ButtonMotionMask, &ev)) ; XQueryPointer(dpy, win, &blaw, &blaw, &blai, &blai, &x, &y, &blau); dmenu = findMenuInWindow(dpy, win, x, y); if (dmenu) { handleDragOver(dmenu, dview, dritem, x - dx, y - dy); if (!enteredMenu) { enteredMenu = True; XRecolorCursor(dpy, scr->defaultCursor, &green, &back); } } else { if (enteredMenu) { W_ResizeView(dview, oldSize.width, oldSize.height); W_ResizeView(dritem->view, oldSize.width, oldSize.height); enteredMenu = False; XRecolorCursor(dpy, scr->defaultCursor, &black, &back); } W_MoveView(dview, x - dx, y - dy); } break; case ButtonRelease: done = True; break; default: WMHandleEvent(&ev); break; } } XRecolorCursor(dpy, scr->defaultCursor, &black, &back); XUngrabPointer(dpy, CurrentTime); if (!enteredMenu) { Bool rem = True; if (!menu->flags.isFactory && !copy) { W_UnmapView(dview); if (menu->delegate && menu->delegate->shouldRemoveItem) { rem = (*menu->delegate->shouldRemoveItem) (menu->delegate, menu, item); } W_MapView(dview); } if (!rem || menu->flags.isFactory || copy) { slideWindow(dpy, W_VIEW_DRAWABLE(dview), x - dx, y - dy, orix, oriy); if (!menu->flags.isFactory && !copy) { WRemoveEditMenuItem(menu, dritem); handleItemDrop(dmenu ? dmenu : menu, dritem, orix, oriy); } } else { WRemoveEditMenuItem(menu, dritem); } } else { WRemoveEditMenuItem(menu, dritem); if (menu->delegate && menu->delegate->itemCloned && (menu->flags.isFactory || copy)) { (*menu->delegate->itemCloned) (menu->delegate, menu, item, dritem); } handleItemDrop(dmenu, dritem, x - dy, y - dy); if (item->submenu && (menu->flags.isFactory || copy)) { WEditMenu *submenu; submenu = duplicateMenu(item->submenu); WSetEditMenuSubmenu(dmenu, dritem, submenu); } } /* can't destroy now because we're being called from * the event handler of the item. and destroying now, * would mean destroying the item too in some cases. */ WMAddIdleHandler((WMCallback *) W_DestroyView, dview); } static void handleItemClick(XEvent * event, void *data) { WEditMenuItem *item = (WEditMenuItem *) data; WEditMenu *menu = item->parent; switch (event->type) { case ButtonPress: selectItem(menu, item); if (WMIsDoubleClick(event)) { editItemLabel(item); } menu->flags.isDragging = 1; menu->dragX = event->xbutton.x_root; menu->dragY = event->xbutton.y_root; break; case ButtonRelease: menu->flags.isDragging = 0; break; case MotionNotify: if (menu->flags.isDragging) { if (abs(event->xbutton.x_root - menu->dragX) > 5 || abs(event->xbutton.y_root - menu->dragY) > 5) { menu->flags.isDragging = 0; dragItem(menu, item, event->xbutton.state & ControlMask); } } break; } } static void destroyEditMenu(WEditMenu * mPtr) { WMRemoveNotificationObserver(mPtr); WMFreeArray(mPtr->items); wfree(mPtr->tdelegate); wfree(mPtr); } ����������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/WPrefs.c��������������������������������������������������������������0000644�0001750�0001750�00000055665�12214432632�014341� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* WPrefs.c- main window and other basic stuff * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" #include <assert.h> #define ICON_TITLE_FONT "sans serif:pixelsize=9" #define ICON_TITLE_VFONT "sans serif:pixelsize=9:weight=100" #define MAX_SECTIONS 16 typedef struct _WPrefs { WMWindow *win; WMScrollView *scrollV; WMFrame *buttonF; WMButton *sectionB[MAX_SECTIONS]; int sectionCount; WMButton *saveBtn; WMButton *closeBtn; WMButton *undoBtn; WMButton *undosBtn; WMButton *balloonBtn; WMFrame *banner; WMLabel *nameL; WMLabel *versionL; WMLabel *statusL; Panel *currentPanel; } _WPrefs; static _WPrefs WPrefs; /* system wide defaults dictionary. Read-only */ static WMPropList *GlobalDB = NULL; /* user defaults dictionary */ static WMPropList *WindowMakerDB = NULL; static char *WindowMakerDBPath = NULL; static Bool TIFFOK = False; #define INITIALIZED_PANEL (1<<0) static void loadConfigurations(WMScreen * scr, WMWindow * mainw); static void savePanelData(Panel * panel); static void prepareForClose(void); static void quit(WMWidget *w, void *data) { prepareForClose(); exit(0); } static void save(WMWidget * w, void *data) { int i; WMPropList *p1, *p2; WMPropList *keyList; WMPropList *key; XEvent ev; /* puts("gathering data"); */ for (i = 0; i < WPrefs.sectionCount; i++) { PanelRec *rec = WMGetHangedData(WPrefs.sectionB[i]); if ((rec->callbacks.flags & INITIALIZED_PANEL)) savePanelData((Panel *) rec); } /* puts("compressing data"); */ /* compare the user dictionary with the global and remove redundant data */ keyList = WMGetPLDictionaryKeys(GlobalDB); /* puts(WMGetPropListDescription(WindowMakerDB, False)); */ for (i = 0; i < WMGetPropListItemCount(keyList); i++) { key = WMGetFromPLArray(keyList, i); /* We don't have this value anyway, so no problem. * Probably a new option */ p1 = WMGetFromPLDictionary(WindowMakerDB, key); if (!p1) continue; /* The global doesn't have it, so no problem either. */ p2 = WMGetFromPLDictionary(GlobalDB, key); if (!p2) continue; /* If both values are the same, don't save. */ if (WMIsPropListEqualTo(p1, p2)) WMRemoveFromPLDictionary(WindowMakerDB, key); } /* puts(WMGetPropListDescription(WindowMakerDB, False)); */ WMReleasePropList(keyList); /* puts("storing data"); */ WMWritePropListToFile(WindowMakerDB, WindowMakerDBPath); memset(&ev, 0, sizeof(XEvent)); ev.xclient.type = ClientMessage; ev.xclient.message_type = XInternAtom(WMScreenDisplay(WMWidgetScreen(w)), "_WINDOWMAKER_COMMAND", False); ev.xclient.window = DefaultRootWindow(WMScreenDisplay(WMWidgetScreen(w))); ev.xclient.format = 8; strncpy(ev.xclient.data.b, "Reconfigure", sizeof(ev.xclient.data.b)); XSendEvent(WMScreenDisplay(WMWidgetScreen(w)), DefaultRootWindow(WMScreenDisplay(WMWidgetScreen(w))), False, SubstructureRedirectMask, &ev); XFlush(WMScreenDisplay(WMWidgetScreen(w))); } static void undo(WMWidget * w, void *data) { PanelRec *rec = (PanelRec *) WPrefs.currentPanel; if (!rec) return; if (rec->callbacks.undoChanges && (rec->callbacks.flags & INITIALIZED_PANEL)) { (*rec->callbacks.undoChanges) (WPrefs.currentPanel); } } static void undoAll(WMWidget * w, void *data) { int i; for (i = 0; i < WPrefs.sectionCount; i++) { PanelRec *rec = WMGetHangedData(WPrefs.sectionB[i]); if (rec->callbacks.undoChanges && (rec->callbacks.flags & INITIALIZED_PANEL)) (*rec->callbacks.undoChanges) ((Panel *) rec); } } static void prepareForClose(void) { int i; for (i = 0; i < WPrefs.sectionCount; i++) { PanelRec *rec = WMGetHangedData(WPrefs.sectionB[i]); if (rec->callbacks.prepareForClose && (rec->callbacks.flags & INITIALIZED_PANEL)) (*rec->callbacks.prepareForClose) ((Panel *) rec); } } static void toggleBalloons(WMWidget *w, void *data) { WMUserDefaults *udb = WMGetStandardUserDefaults(); Bool flag; flag = WMGetButtonSelected(WPrefs.balloonBtn); WMSetBalloonEnabled(WMWidgetScreen(WPrefs.win), flag); WMSetUDBoolForKey(udb, flag, "BalloonHelp"); } static void createMainWindow(WMScreen * scr) { WMScroller *scroller; WMFont *font; char buffer[128]; WPrefs.win = WMCreateWindow(scr, "wprefs"); WMResizeWidget(WPrefs.win, 520, 390); WMSetWindowTitle(WPrefs.win, _("Window Maker Preferences")); WMSetWindowCloseAction(WPrefs.win, quit, NULL); WMSetWindowMaxSize(WPrefs.win, 520, 390); WMSetWindowMinSize(WPrefs.win, 520, 390); WMSetWindowMiniwindowTitle(WPrefs.win, "Preferences"); WPrefs.scrollV = WMCreateScrollView(WPrefs.win); WMResizeWidget(WPrefs.scrollV, 500, 87); WMMoveWidget(WPrefs.scrollV, 10, 10); WMSetScrollViewRelief(WPrefs.scrollV, WRSunken); WMSetScrollViewHasHorizontalScroller(WPrefs.scrollV, True); WMSetScrollViewHasVerticalScroller(WPrefs.scrollV, False); scroller = WMGetScrollViewHorizontalScroller(WPrefs.scrollV); WMSetScrollerArrowsPosition(scroller, WSANone); WPrefs.buttonF = WMCreateFrame(WPrefs.win); WMSetFrameRelief(WPrefs.buttonF, WRFlat); WMSetScrollViewContentView(WPrefs.scrollV, WMWidgetView(WPrefs.buttonF)); WPrefs.undosBtn = WMCreateCommandButton(WPrefs.win); WMResizeWidget(WPrefs.undosBtn, 90, 28); WMMoveWidget(WPrefs.undosBtn, 135, 350); WMSetButtonText(WPrefs.undosBtn, _("Revert Page")); WMSetButtonAction(WPrefs.undosBtn, undo, NULL); WPrefs.undoBtn = WMCreateCommandButton(WPrefs.win); WMResizeWidget(WPrefs.undoBtn, 90, 28); WMMoveWidget(WPrefs.undoBtn, 235, 350); WMSetButtonText(WPrefs.undoBtn, _("Revert All")); WMSetButtonAction(WPrefs.undoBtn, undoAll, NULL); WPrefs.saveBtn = WMCreateCommandButton(WPrefs.win); WMResizeWidget(WPrefs.saveBtn, 80, 28); WMMoveWidget(WPrefs.saveBtn, 335, 350); WMSetButtonText(WPrefs.saveBtn, _("Save")); WMSetButtonAction(WPrefs.saveBtn, save, NULL); WPrefs.closeBtn = WMCreateCommandButton(WPrefs.win); WMResizeWidget(WPrefs.closeBtn, 80, 28); WMMoveWidget(WPrefs.closeBtn, 425, 350); WMSetButtonText(WPrefs.closeBtn, _("Close")); WMSetButtonAction(WPrefs.closeBtn, quit, NULL); WPrefs.balloonBtn = WMCreateSwitchButton(WPrefs.win); WMResizeWidget(WPrefs.balloonBtn, 200, 28); WMMoveWidget(WPrefs.balloonBtn, 15, 350); WMSetButtonText(WPrefs.balloonBtn, _("Balloon Help")); WMSetButtonAction(WPrefs.balloonBtn, toggleBalloons, NULL); { WMUserDefaults *udb = WMGetStandardUserDefaults(); Bool flag = WMGetUDBoolForKey(udb, "BalloonHelp"); WMSetButtonSelected(WPrefs.balloonBtn, flag); WMSetBalloonEnabled(scr, flag); } /* banner */ WPrefs.banner = WMCreateFrame(WPrefs.win); WMResizeWidget(WPrefs.banner, FRAME_WIDTH, FRAME_HEIGHT); WMMoveWidget(WPrefs.banner, FRAME_LEFT, FRAME_TOP); WMSetFrameRelief(WPrefs.banner, WRFlat); font = WMCreateFont(scr, "Lucida Sans,URW Gothic L,Times New Roman,serif" ":bold:pixelsize=26:antialias=true"); WPrefs.nameL = WMCreateLabel(WPrefs.banner); WMSetLabelTextAlignment(WPrefs.nameL, WACenter); WMResizeWidget(WPrefs.nameL, FRAME_WIDTH - 20, 60); WMMoveWidget(WPrefs.nameL, 10, 50); WMSetLabelFont(WPrefs.nameL, font); WMSetLabelText(WPrefs.nameL, _("Window Maker Preferences")); WMReleaseFont(font); WPrefs.versionL = WMCreateLabel(WPrefs.banner); WMResizeWidget(WPrefs.versionL, FRAME_WIDTH - 20, 20); WMMoveWidget(WPrefs.versionL, 10, 120); WMSetLabelTextAlignment(WPrefs.versionL, WACenter); sprintf(buffer, _("Version %s"), VERSION); WMSetLabelText(WPrefs.versionL, buffer); WPrefs.statusL = WMCreateLabel(WPrefs.banner); WMResizeWidget(WPrefs.statusL, FRAME_WIDTH - 20, 60); WMMoveWidget(WPrefs.statusL, 10, 150); WMSetLabelTextAlignment(WPrefs.statusL, WACenter); WMSetLabelText(WPrefs.statusL, _("Starting...")); WMMapSubwidgets(WPrefs.win); WMUnmapWidget(WPrefs.undosBtn); WMUnmapWidget(WPrefs.undoBtn); WMUnmapWidget(WPrefs.saveBtn); } static void showPanel(Panel * panel) { PanelRec *rec = (PanelRec *) panel; if (!(rec->callbacks.flags & INITIALIZED_PANEL)) { (*rec->callbacks.createWidgets) (panel); rec->callbacks.flags |= INITIALIZED_PANEL; } WMSetWindowTitle(WPrefs.win, rec->sectionName); if (rec->callbacks.showPanel) (*rec->callbacks.showPanel) (panel); WMMapWidget(rec->box); } static void hidePanel(Panel * panel) { PanelRec *rec = (PanelRec *) panel; WMUnmapWidget(rec->box); if (rec->callbacks.hidePanel) (*rec->callbacks.hidePanel) (panel); } static void savePanelData(Panel * panel) { PanelRec *rec = (PanelRec *) panel; if (rec->callbacks.updateDomain) { (*rec->callbacks.updateDomain) (panel); } } static void changeSection(WMWidget * self, void *data) { if (WPrefs.currentPanel == data) return; if (WPrefs.currentPanel == NULL) { WMDestroyWidget(WPrefs.nameL); WMDestroyWidget(WPrefs.versionL); WMDestroyWidget(WPrefs.statusL); WMSetFrameRelief(WPrefs.banner, WRGroove); /* WMMapWidget(WPrefs.undosBtn); WMMapWidget(WPrefs.undoBtn); */ WMMapWidget(WPrefs.saveBtn); } showPanel(data); if (WPrefs.currentPanel) hidePanel(WPrefs.currentPanel); WPrefs.currentPanel = data; } char *LocateImage(const char *name) { char *path; char *tmp = wmalloc(strlen(name) + 8); if (TIFFOK) { sprintf(tmp, "%s.tiff", name); path = WMPathForResourceOfType(tmp, "tiff"); } else { sprintf(tmp, "%s.xpm", name); path = WMPathForResourceOfType(tmp, "xpm"); } wfree(tmp); if (!path) { wwarning(_("could not locate image file %s"), name); } return path; } void CreateImages(WMScreen *scr, RContext *rc, RImage *xis, const char *file, WMPixmap **icon_normal, WMPixmap **icon_greyed) { RImage *icon; char *path; RColor gray = { 0xae, 0xaa, 0xae, 0 }; path = LocateImage(file); if (!path) { *icon_normal = NULL; if (icon_greyed) *icon_greyed = NULL; return; } *icon_normal = WMCreatePixmapFromFile(scr, path); if (!*icon_normal) { wwarning(_("could not load icon %s"), path); if (icon_greyed) *icon_greyed = NULL; wfree(path); return; } if (!icon_greyed) // Greyed-out version not requested, we are done { wfree(path); return; } icon = RLoadImage(rc, path, 0); if (!icon) { wwarning(_("could not load icon %s"), path); *icon_greyed = NULL; wfree(path); return; } RCombineImageWithColor(icon, &gray); if (xis) { RCombineImagesWithOpaqueness(icon, xis, 180); } *icon_greyed = WMCreatePixmapFromRImage(scr, icon, 127); if (!*icon_greyed) { wwarning(_("could not process icon %s: %s"), path, RMessageForError(RErrorCode)); } RReleaseImage(icon); wfree(path); } static WMPixmap *makeTitledIcon(WMScreen * scr, WMPixmap * icon, const char *title1, const char *title2) { return WMRetainPixmap(icon); #if 0 static GC gc = NULL; static XFontStruct *hfont = NULL; static XFontStruct *vfont = NULL; WMPixmap *tmp; Pixmap pix, mask; Display *dpy = WMScreenDisplay(scr); WMColor *black = WMBlackColor(scr); GC fgc; WMSize size = WMGetPixmapSize(icon); tmp = WMCreatePixmap(scr, 60, 60, WMScreenDepth(scr), True); pix = WMGetPixmapXID(tmp); mask = WMGetPixmapMaskXID(tmp); if (gc == NULL) { gc = XCreateGC(dpy, mask, 0, NULL); hfont = XLoadQueryFont(dpy, ICON_TITLE_FONT); vfont = XLoadQueryFont(dpy, ICON_TITLE_VFONT); } if (hfont == NULL) { return WMRetainPixmap(icon); } XSetForeground(dpy, gc, 0); XFillRectangle(dpy, mask, gc, 0, 0, 60, 60); fgc = WMColorGC(black); XSetForeground(dpy, gc, 1); XCopyArea(dpy, WMGetPixmapXID(icon), pix, fgc, 0, 0, size.width, size.height, 12, 12); if (WMGetPixmapMaskXID(icon) != None) XCopyPlane(dpy, WMGetPixmapMaskXID(icon), mask, gc, 0, 0, size.width, size.height, 12, 12, 1); else XFillRectangle(dpy, mask, gc, 12, 12, 48, 48); if (title1) { XSetFont(dpy, fgc, vfont->fid); XSetFont(dpy, gc, vfont->fid); XDrawString(dpy, pix, fgc, 0, vfont->ascent, title1, strlen(title1)); XDrawString(dpy, mask, gc, 0, vfont->ascent, title1, strlen(title1)); } if (title2) { XSetFont(dpy, fgc, hfont->fid); XSetFont(dpy, gc, hfont->fid); XDrawString(dpy, pix, fgc, (title1 ? 12 : 0), hfont->ascent, title2, strlen(title2)); XDrawString(dpy, mask, gc, (title1 ? 12 : 0), hfont->ascent, title2, strlen(title2)); } return tmp; #endif } void SetButtonAlphaImage(WMScreen * scr, WMButton * bPtr, const char *file, const char *title1, const char *title2) { WMPixmap *icon; WMPixmap *icon2; RColor color; char *iconPath; iconPath = LocateImage(file); color.red = 0xae; color.green = 0xaa; color.blue = 0xae; color.alpha = 0; if (iconPath) { icon = WMCreateBlendedPixmapFromFile(scr, iconPath, &color); if (!icon) wwarning(_("could not load icon file %s"), iconPath); } else { icon = NULL; } if (icon) { icon2 = makeTitledIcon(scr, icon, title1, title2); if (icon) WMReleasePixmap(icon); } else { icon2 = NULL; } WMSetButtonImage(bPtr, icon2); if (icon2) WMReleasePixmap(icon2); color.red = 0xff; color.green = 0xff; color.blue = 0xff; color.alpha = 0; if (iconPath) { icon = WMCreateBlendedPixmapFromFile(scr, iconPath, &color); if (!icon) wwarning(_("could not load icon file %s"), iconPath); } else { icon = NULL; } WMSetButtonAltImage(bPtr, icon); if (icon) WMReleasePixmap(icon); if (iconPath) wfree(iconPath); } void AddSection(Panel * panel, const char *iconFile) { WMButton *bPtr; assert(WPrefs.sectionCount < MAX_SECTIONS); bPtr = WMCreateCustomButton(WPrefs.buttonF, WBBStateLightMask | WBBStateChangeMask); WMResizeWidget(bPtr, 64, 64); WMMoveWidget(bPtr, WPrefs.sectionCount * 64, 0); WMSetButtonImagePosition(bPtr, WIPImageOnly); WMSetButtonAction(bPtr, changeSection, panel); WMHangData(bPtr, panel); WMSetBalloonTextForView(((PanelRec *) panel)->description, WMWidgetView(bPtr)); { char *t1, *t2; t1 = wstrdup(((PanelRec *) panel)->sectionName); t2 = strchr(t1, ' '); if (t2) { *t2 = 0; t2++; } SetButtonAlphaImage(WMWidgetScreen(bPtr), bPtr, iconFile, t1, t2); wfree(t1); } WMMapWidget(bPtr); WPrefs.sectionB[WPrefs.sectionCount] = bPtr; if (WPrefs.sectionCount > 0) { WMGroupButtons(WPrefs.sectionB[0], bPtr); } WPrefs.sectionCount++; WMResizeWidget(WPrefs.buttonF, WPrefs.sectionCount * 64, 64); } void Initialize(WMScreen * scr) { char **list; int i; char *path; list = RSupportedFileFormats(); for (i = 0; list[i] != NULL; i++) { if (strcmp(list[i], "TIFF") == 0) { TIFFOK = True; break; } } if (TIFFOK) path = WMPathForResourceOfType("WPrefs.tiff", NULL); else path = WMPathForResourceOfType("WPrefs.xpm", NULL); if (path) { RImage *tmp; tmp = RLoadImage(WMScreenRContext(scr), path, 0); if (!tmp) { wwarning(_("could not load image file %s:%s"), path, RMessageForError(RErrorCode)); } else { WMSetApplicationIconImage(scr, tmp); RReleaseImage(tmp); } wfree(path); } memset(&WPrefs, 0, sizeof(_WPrefs)); createMainWindow(scr); WMRealizeWidget(WPrefs.win); WMSetWindowMiniwindowImage(WPrefs.win, WMGetApplicationIconImage(scr)); WMMapWidget(WPrefs.win); XFlush(WMScreenDisplay(scr)); WMSetLabelText(WPrefs.statusL, _("Loading Window Maker configuration files...")); XFlush(WMScreenDisplay(scr)); loadConfigurations(scr, WPrefs.win); WMSetLabelText(WPrefs.statusL, _("Initializing configuration panels...")); InitFocus(scr, WPrefs.banner); InitWindowHandling(scr, WPrefs.banner); InitMenuPreferences(scr, WPrefs.banner); InitIcons(scr, WPrefs.banner); InitPreferences(scr, WPrefs.banner); InitPaths(scr, WPrefs.banner); InitDocks(scr, WPrefs.banner); InitWorkspace(scr, WPrefs.banner); InitConfigurations(scr, WPrefs.banner); InitMenu(scr, WPrefs.banner); #ifdef not_yet_fully_implemented InitKeyboardSettings(scr, WPrefs.banner); #endif InitKeyboardShortcuts(scr, WPrefs.banner); InitMouseSettings(scr, WPrefs.banner); InitAppearance(scr, WPrefs.banner); InitFontSimple(scr, WPrefs.banner); #ifdef not_yet_fully_implemented InitThemes(scr, WPrefs.banner); #endif InitExpert(scr, WPrefs.banner); WMRealizeWidget(WPrefs.scrollV); WMSetLabelText(WPrefs.statusL, ""); } WMWindow *GetWindow(Panel * panel) { return WPrefs.win; } static void loadConfigurations(WMScreen * scr, WMWindow * mainw) { WMPropList *db, *gdb; char *path; FILE *file; char buffer[1024]; char mbuf[1024]; int v1, v2, v3; path = wdefaultspathfordomain("WindowMaker"); WindowMakerDBPath = path; db = WMReadPropListFromFile(path); if (db) { if (!WMIsPLDictionary(db)) { WMReleasePropList(db); db = NULL; sprintf(mbuf, _("Window Maker domain (%s) is corrupted!"), path); WMRunAlertPanel(scr, mainw, _("Error"), mbuf, _("OK"), NULL, NULL); } } else { sprintf(mbuf, _("Could not load Window Maker domain (%s) from defaults database."), path); WMRunAlertPanel(scr, mainw, _("Error"), mbuf, _("OK"), NULL, NULL); } path = getenv("WMAKER_BIN_NAME"); if (!path) path = "wmaker"; { char *command; command = wstrconcat(path, " --version"); file = popen(command, "r"); wfree(command); } if (!file || !fgets(buffer, 1023, file)) { werror(_("could not extract version information from Window Maker")); wfatal(_("Make sure wmaker is in your search path.")); WMRunAlertPanel(scr, mainw, _("Error"), _ ("Could not extract version from Window Maker. Make sure it is correctly installed and is in your PATH environment variable."), _("OK"), NULL, NULL); exit(1); } if (file) pclose(file); 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 and the path " "where it installed is in the PATH environment " "variable."), _("OK"), NULL, NULL); exit(1); } if (v1 == 0 && (v2 < 18 || v3 < 0)) { sprintf(mbuf, _("WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n"), v1, v2, v3); WMRunAlertPanel(scr, mainw, _("Error"), mbuf, _("OK"), NULL, NULL); exit(1); } if (v1 > 1 || (v1 == 1 && (v2 > 0))) { sprintf(mbuf, _ ("Window Maker %i.%i.%i, which is installed in your system, is not fully supported by this version of WPrefs."), v1, v2, v3); WMRunAlertPanel(scr, mainw, _("Warning"), mbuf, _("OK"), NULL, NULL); } { char *command; command = wstrconcat(path, " --global_defaults_path"); file = popen(command, "r"); wfree(command); } if (!file || !fgets(buffer, 1023, file)) { werror(_("could not run \"%s --global_defaults_path\"."), path); exit(1); } else { char *ptr; ptr = strchr(buffer, '\n'); if (ptr) *ptr = 0; strcat(buffer, "/WindowMaker"); } if (file) pclose(file); gdb = WMReadPropListFromFile(buffer); if (gdb) { if (!WMIsPLDictionary(gdb)) { WMReleasePropList(gdb); gdb = NULL; sprintf(mbuf, _("Window Maker domain (%s) is corrupted!"), buffer); WMRunAlertPanel(scr, mainw, _("Error"), mbuf, _("OK"), NULL, NULL); } } else { sprintf(mbuf, _("Could not load global Window Maker domain (%s)."), buffer); WMRunAlertPanel(scr, mainw, _("Error"), mbuf, _("OK"), NULL, NULL); } if (!db) { db = WMCreatePLDictionary(NULL, NULL); } if (!gdb) { gdb = WMCreatePLDictionary(NULL, NULL); } GlobalDB = gdb; WindowMakerDB = db; } WMPropList *GetObjectForKey(const char *defaultName) { WMPropList *object = NULL; WMPropList *key = WMCreatePLString(defaultName); object = WMGetFromPLDictionary(WindowMakerDB, key); if (!object) object = WMGetFromPLDictionary(GlobalDB, key); WMReleasePropList(key); return object; } void SetObjectForKey(WMPropList * object, const char *defaultName) { WMPropList *key = WMCreatePLString(defaultName); WMPutInPLDictionary(WindowMakerDB, key, object); WMReleasePropList(key); } void RemoveObjectForKey(const char *defaultName) { WMPropList *key = WMCreatePLString(defaultName); WMRemoveFromPLDictionary(WindowMakerDB, key); WMReleasePropList(key); } char *GetStringForKey(const char *defaultName) { WMPropList *val; val = GetObjectForKey(defaultName); if (!val) return NULL; if (!WMIsPLString(val)) return NULL; return WMGetFromPLString(val); } WMPropList *GetArrayForKey(const char *defaultName) { WMPropList *val; val = GetObjectForKey(defaultName); if (!val) return NULL; if (!WMIsPLArray(val)) return NULL; return val; } WMPropList *GetDictionaryForKey(const char *defaultName) { WMPropList *val; val = GetObjectForKey(defaultName); if (!val) return NULL; if (!WMIsPLDictionary(val)) return NULL; return val; } int GetIntegerForKey(const char *defaultName) { WMPropList *val; char *str; int value; val = GetObjectForKey(defaultName); if (!val) return 0; if (!WMIsPLString(val)) return 0; str = WMGetFromPLString(val); if (!str) return 0; if (sscanf(str, "%i", &value) != 1) return 0; return value; } Bool GetBoolForKey(const char *defaultName) { int value; char *str; str = GetStringForKey(defaultName); if (!str) return False; if (sscanf(str, "%i", &value) == 1 && value != 0) return True; if (strcasecmp(str, "YES") == 0) return True; if (strcasecmp(str, "Y") == 0) return True; return False; } void SetIntegerForKey(int value, const char *defaultName) { WMPropList *object; char buffer[128]; sprintf(buffer, "%i", value); object = WMCreatePLString(buffer); SetObjectForKey(object, defaultName); WMReleasePropList(object); } void SetStringForKey(const char *value, const const char *defaultName) { WMPropList *object; object = WMCreatePLString(value); SetObjectForKey(object, defaultName); WMReleasePropList(object); } void SetBoolForKey(Bool value, const char *defaultName) { static WMPropList *yes = NULL, *no = NULL; if (!yes) { yes = WMCreatePLString("YES"); no = WMCreatePLString("NO"); } SetObjectForKey(value ? yes : no, defaultName); } void SetSpeedForKey(int speed, const char *defaultName) { char *str; switch (speed) { case 0: str = "ultraslow"; break; case 1: str = "slow"; break; case 2: str = "medium"; break; case 3: str = "fast"; break; case 4: str = "ultrafast"; break; default: str = NULL; } if (str) SetStringForKey(str, defaultName); } int GetSpeedForKey(const char *defaultName) { char *str; int i; str = GetStringForKey(defaultName); if (!str) return 2; if (strcasecmp(str, "ultraslow") == 0) i = 0; else if (strcasecmp(str, "slow") == 0) i = 1; else if (strcasecmp(str, "medium") == 0) i = 2; else if (strcasecmp(str, "fast") == 0) i = 3; else if (strcasecmp(str, "ultrafast") == 0) i = 4; else { wwarning(_("bad speed value for option %s; using default Medium"), defaultName); i = 2; } return i; } ���������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/Makefile.am�����������������������������������������������������������0000644�0001750�0001750�00000002017�12214432632�015002� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������SUBDIRS = xpm tiff po AUTOMAKE_OPTIONS = wpexecbindir = @wprefs_bindir@ wpexecbin_PROGRAMS = WPrefs wpdatadir = @wprefs_datadir@ wpdata_DATA = WPrefs.tiff WPrefs.xpm EXTRA_DIST = $(wpdata_DATA) WPrefs_SOURCES = \ main.c \ WPrefs.c \ WPrefs.h \ Appearance.c \ Configurations.c \ Docks.c \ Expert.c \ Focus.c \ FontSimple.c \ Icons.c \ KeyboardSettings.c \ KeyboardShortcuts.c \ Menu.c \ MenuPreferences.c \ MouseSettings.c \ Paths.c \ Preferences.c \ TexturePanel.c \ TexturePanel.h \ Themes.c \ WindowHandling.c \ Workspace.c \ double.c \ editmenu.c \ editmenu.h \ xmodifier.c AM_CFLAGS = AM_CPPFLAGS = -DLOCALEDIR=\"$(NLSDIR)\" -DRESOURCE_PATH=\"$(wpdatadir)\" -DWMAKER_RESOURCE_PATH=\"$(pkgdatadir)\" \ -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@ WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la WPrefs_LDADD = \ $(top_builddir)/WINGs/libWINGs.la\ $(top_builddir)/WINGs/libWUtil.la\ $(top_builddir)/wrlib/libwraster.la \ @XLFLAGS@ @XLIBS@ \ @FCLIBS@ \ @INTLIBS@ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/Docks.c���������������������������������������������������������������0000644�0001750�0001750�00000021561�12214432632�014162� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Workspace.c- workspace options * * WPrefs - Window Maker Preferences Program * * Copyright (c) 2012 Daniel Déchelotte (heavily inspired from file (c) 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMFrame *autoDelayF[2]; WMLabel *autoDelayL[4]; WMButton *autoDelayB[4][5]; WMTextField *autoDelayT[4]; WMFrame *dockF; WMButton *docksB[3]; } _Panel; #define ICON_FILE "dockclipdrawersection" #define ARQUIVO_XIS "xis" #define DELAY_ICON "timer%i" #define DELAY_ICON_S "timer%is" static char *autoDelayStrings[4]; static char *autoDelayKeys[4] = { "ClipAutoexpandDelay", "ClipAutocollapseDelay", "ClipAutoraiseDelay", "ClipAutolowerDelay" }; static char *autoDelayPresetValues[5] = { "0", "100", "250", "600", "1000" }; static char *dockDisablingKeys[3] = { "DisableDock", "DisableClip", "DisableDrawers" }; static char *dockFiles[3] = { "dock", "clip", "drawer" }; static void showData(_Panel *panel); static void storeData(_Panel *panel); static void pushAutoDelayButton(WMWidget *w, void *data) { _Panel *panel = (_Panel *) data; int i, j; for (i = 0; i < 4; i++) { for (j = 0; j < 5; j++) { if (w == panel->autoDelayB[i][j]) { WMSetTextFieldText(panel->autoDelayT[i], autoDelayPresetValues[j]); return; } } } } static void adjustButtonSelectionBasedOnValue(_Panel *panel, int row, const char *value) { int j; if (!value) return; for (j = 0; j < 5; j++) { int isThatOne = !strcmp(autoDelayPresetValues[j], value); WMSetButtonSelected(panel->autoDelayB[row][j], isThatOne); if (isThatOne) return; } } static void autoDelayChanged(void *observerData, WMNotification *notification) { _Panel *panel = (_Panel *) observerData; int row; WMTextField *anAutoDelayT = (WMTextField *) WMGetNotificationObject(notification); for (row = 0; row < 4; row++) { if (anAutoDelayT != panel->autoDelayT[row]) { continue; } char *value = WMGetTextFieldText(anAutoDelayT); adjustButtonSelectionBasedOnValue(panel, row, value); return; } } static void pushDockButton(WMWidget *w, void *data) { _Panel *panel = (_Panel *) data; WMButton *button = (WMButton *) w; if (button == panel->docksB[0] && !WMGetButtonSelected(panel->docksB[0])) { WMSetButtonSelected(panel->docksB[2], False); } if (button == panel->docksB[2] && WMGetButtonSelected(panel->docksB[2])) { WMSetButtonSelected(panel->docksB[0], True); } } static void createPanel(Panel *p) { _Panel *panel = (_Panel *) p; WMScreen *scr = WMWidgetScreen(panel->parent); WMPixmap *icon1, *icon2; RImage *xis = NULL; RContext *rc = WMScreenRContext(scr); char *path; int i, j, k; char *buf1, *buf2; path = LocateImage(ARQUIVO_XIS); if (path) { xis = RLoadImage(rc, path, 0); if (!xis) { wwarning(_("could not load image file %s"), path); } wfree(path); } panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); /***************** Auto-delays *****************/ buf1 = wmalloc(strlen(DELAY_ICON) + 1); buf2 = wmalloc(strlen(DELAY_ICON_S) + 1); for (k = 0; k < 2; k++) { panel->autoDelayF[k] = WMCreateFrame(panel->box); WMResizeWidget(panel->autoDelayF[k], 365, 100); WMMoveWidget(panel->autoDelayF[k], 15, 10 + k * 110); if (k == 0) WMSetFrameTitle(panel->autoDelayF[k], _("Delays in milliseconds for autocollapsing clips")); else WMSetFrameTitle(panel->autoDelayF[k], _("Delays in milliseconds for autoraising clips")); for (i = 0; i < 2; i++) { panel->autoDelayL[i + k * 2] = WMCreateLabel(panel->autoDelayF[k]); WMResizeWidget(panel->autoDelayL[i + k * 2], 165, 20); WMMoveWidget(panel->autoDelayL[i + k * 2], 10, 27 + 40 * i); WMSetLabelText(panel->autoDelayL[i + k * 2], autoDelayStrings[i + k * 2]); WMSetLabelTextAlignment(panel->autoDelayL[i + k * 2], WARight); for (j = 0; j < 5; j++) { panel->autoDelayB[i + k * 2][j] = WMCreateCustomButton(panel->autoDelayF[k], WBBStateChangeMask); WMResizeWidget(panel->autoDelayB[i + k * 2][j], 25, 25); WMMoveWidget(panel->autoDelayB[i + k * 2][j], 175 + (25 * j), 25 + 40 * i); WMSetButtonBordered(panel->autoDelayB[i + k * 2][j], False); WMSetButtonImagePosition(panel->autoDelayB[i + k * 2][j], WIPImageOnly); WMSetButtonAction(panel->autoDelayB[i + k * 2][j], pushAutoDelayButton, panel); if (j > 0) WMGroupButtons(panel->autoDelayB[i + k * 2][0], panel->autoDelayB[i + k * 2][j]); sprintf(buf1, DELAY_ICON, j); CreateImages(scr, rc, NULL, buf1, &icon1, NULL); if (icon1) { WMSetButtonImage(panel->autoDelayB[i + k * 2][j], icon1); WMReleasePixmap(icon1); } else { wwarning(_("could not load icon file %s"), buf1); } sprintf(buf2, DELAY_ICON_S, j); CreateImages(scr, rc, NULL, buf2, &icon2, NULL); if (icon2) { WMSetButtonAltImage(panel->autoDelayB[i + k * 2][j], icon2); WMReleasePixmap(icon2); } else { wwarning(_("could not load icon file %s"), buf2); } } panel->autoDelayT[i + k * 2] = WMCreateTextField(panel->autoDelayF[k]); WMResizeWidget(panel->autoDelayT[i + k * 2], 36, 20); WMMoveWidget(panel->autoDelayT[i + k * 2], 310, 27 + 40 * i); WMAddNotificationObserver(autoDelayChanged, panel, WMTextDidChangeNotification, panel->autoDelayT[i + k * 2]); } WMMapSubwidgets(panel->autoDelayF[k]); } wfree(buf1); wfree(buf2); /***************** Enable/disable clip/dock/drawers *****************/ panel->dockF = WMCreateFrame(panel->box); WMResizeWidget(panel->dockF, 115, 210); WMMoveWidget(panel->dockF, 390, 10); WMSetFrameTitle(panel->dockF, _("Dock/Clip/Drawer")); for (i = 0; i < 3; i++) { panel->docksB[i] = WMCreateButton(panel->dockF, WBTToggle); WMResizeWidget(panel->docksB[i], 56, 56); WMMoveWidget(panel->docksB[i], 30, 20 + 62 * i); WMSetButtonImagePosition(panel->docksB[i], WIPImageOnly); CreateImages(scr, rc, xis, dockFiles[i], &icon1, &icon2); if (icon2) { WMSetButtonImage(panel->docksB[i], icon2); WMReleasePixmap(icon2); } if (icon1) { WMSetButtonAltImage(panel->docksB[i], icon1); WMReleasePixmap(icon1); } switch(i) { case 0: WMSetBalloonTextForView(_("Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)."), WMWidgetView(panel->docksB[i])); break; case 1: WMSetBalloonTextForView(_("Disable/enable the Clip (that thing with\n" "a paper clip icon)."), WMWidgetView(panel->docksB[i])); break; case 2: WMSetBalloonTextForView(_("Disable/enable Drawers (a dock that stores\n" "application icons horizontally). The dock is required."), WMWidgetView(panel->docksB[i])); break; } WMSetButtonAction(panel->docksB[i], pushDockButton, panel); } WMMapSubwidgets(panel->dockF); if (xis) RReleaseImage(xis); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); showData(panel); } static void storeData(_Panel *panel) { int i; for (i = 0; i < 4; i++) { SetStringForKey(WMGetTextFieldText(panel->autoDelayT[i]), autoDelayKeys[i]); } for (i = 0; i < 3; i++) { SetBoolForKey(!WMGetButtonSelected(panel->docksB[i]), dockDisablingKeys[i]); } } static void showData(_Panel *panel) { char *value; int i; for (i = 0; i < 4; i++) { value = GetStringForKey(autoDelayKeys[i]); WMSetTextFieldText(panel->autoDelayT[i], value); adjustButtonSelectionBasedOnValue(panel, i, value); } for (i = 0; i < 3; i++) { WMSetButtonSelected(panel->docksB[i], !GetBoolForKey(dockDisablingKeys[i])); } } Panel *InitDocks(WMScreen *scr, WMWidget *parent) { _Panel *panel; autoDelayStrings[0] = _("Delay before auto-expansion"); autoDelayStrings[1] = _("Delay before auto-collapsing"); autoDelayStrings[2] = _("Delay before auto-raise"); autoDelayStrings[3] = _("Delay before auto-lowering"); panel = wmalloc(sizeof(_Panel)); memset(panel, 0, sizeof(_Panel)); panel->sectionName = _("Dock Preferences"); panel->description = _("Dock and clip features.\n" "Enable/disable the Dock and Clip, and tune some delays."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; AddSection(panel, ICON_FILE); return panel; } �����������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/�������������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434645�013452� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/ca.po��������������������������������������������������������������0000644�0001750�0001750�00000167050�12214432632�014320� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Catalan messages for WindowMaker WPrefs.app. # Copyright (C) 2002 Ernest Adrogué <eadrogue@gmx.net>. # This file is distributed under the terms of the GNU General Public License. # # Version history: # WP-ver author email date # 0.45 Ernest Adrogué eadrogue@gmx.net 04 Dec 2002 # CVS-20030914 Ernest Adrogué eadrogue@gmx.net 15 Set 2003 # msgid "" msgstr "" "Project-Id-Version: wprefs 0.45\n" "POT-Creation-Date: 2003-09-16 22:59+0200\n" "PO-Revision-Date: 2003-09-16 23:15+0200\n" "Last-Translator: Ernest Adrogué <eadrogue@gmx.net>\n" "Language-Team: Catalan <ca@dodds.net>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../WPrefs.app/Appearance.c:1154 msgid "Select File" msgstr "Trieu un fitxer" #: ../../WPrefs.app/Appearance.c:1555 msgid "Focused Window" msgstr "Finestra enfocada" #: ../../WPrefs.app/Appearance.c:1560 msgid "Unfocused Window" msgstr "Finestra desenfocada" #: ../../WPrefs.app/Appearance.c:1565 msgid "Owner of Focused Window" msgstr "Amo de la finestra enfocada" #: ../../WPrefs.app/Appearance.c:1570 ../../WPrefs.app/Appearance.c:1893 #: ../../WPrefs.app/Font.c:408 msgid "Menu Title" msgstr "Títol de menú" #: ../../WPrefs.app/Appearance.c:1575 ../../WPrefs.app/Appearance.c:1578 msgid "Normal Item" msgstr "Ãtem normal" #: ../../WPrefs.app/Appearance.c:1583 msgid "Disabled Item" msgstr "Deshabilitat" #: ../../WPrefs.app/Appearance.c:1595 msgid "Highlighted" msgstr "Seleccionat" #: ../../WPrefs.app/Appearance.c:1786 msgid "Texture" msgstr "Textura" #: ../../WPrefs.app/Appearance.c:1794 msgid "Titlebar of Focused Window" msgstr "Barra de títol enfocada" #: ../../WPrefs.app/Appearance.c:1795 msgid "Titlebar of Unfocused Windows" msgstr "Barra de títol no enfocada" #: ../../WPrefs.app/Appearance.c:1796 msgid "Titlebar of Focused Window's Owner" msgstr "Barra de títol semienfocada" #: ../../WPrefs.app/Appearance.c:1797 msgid "Window Resizebar" msgstr "Barra inferior" #: ../../WPrefs.app/Appearance.c:1798 msgid "Titlebar of Menus" msgstr "Barra de títol de menú" #: ../../WPrefs.app/Appearance.c:1799 msgid "Menu Items" msgstr "Ãtems de menú" #: ../../WPrefs.app/Appearance.c:1800 msgid "Icon Background" msgstr "Fons de les icones" #: ../../WPrefs.app/Appearance.c:1815 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "Feu doble clic sobre la textura que volgueu\n" "utilitzar per a l'element seleccionat." #: ../../WPrefs.app/Appearance.c:1829 msgid "New" msgstr "Nova" #: ../../WPrefs.app/Appearance.c:1833 msgid "Create a new texture." msgstr "Crea una textura nova." #: ../../WPrefs.app/Appearance.c:1841 msgid "Extract..." msgstr "Extreu..." #: ../../WPrefs.app/Appearance.c:1845 msgid "Extract texture(s) from a theme or a style file." msgstr "" "Extreu una textura (o vàries)\n" "d'un fitxer de tema o estil." #: ../../WPrefs.app/Appearance.c:1855 msgid "Edit" msgstr "Edita" #: ../../WPrefs.app/Appearance.c:1858 msgid "Edit the highlighted texture." msgstr "Edita la textura seleccionada." #: ../../WPrefs.app/Appearance.c:1866 ../../WPrefs.app/TexturePanel.c:1318 msgid "Delete" msgstr "Elimina" #: ../../WPrefs.app/Appearance.c:1870 msgid "Delete the highlighted texture." msgstr "Elimina la textura seleccionada." #: ../../WPrefs.app/Appearance.c:1883 msgid "Color" msgstr "Color" #: ../../WPrefs.app/Appearance.c:1890 msgid "Focused Window Title" msgstr "Títol de la finestra enfocada" #: ../../WPrefs.app/Appearance.c:1891 msgid "Unfocused Window Title" msgstr "Títol de finestra desenfocada" #: ../../WPrefs.app/Appearance.c:1892 msgid "Owner of Focused Window Title" msgstr "Títol de l'amo de la finestra enfocada" #: ../../WPrefs.app/Appearance.c:1894 msgid "Menu Item Text" msgstr "Text d'ítem de menú" #: ../../WPrefs.app/Appearance.c:1895 msgid "Disabled Menu Item Text" msgstr "Text d'ítem de menú deshabilitat" #: ../../WPrefs.app/Appearance.c:1896 msgid "Menu Highlight Color" msgstr "Color d'ítem de menú seleccionat" #: ../../WPrefs.app/Appearance.c:1897 msgid "Highlighted Menu Text Color" msgstr "Color de text d'ítem seleccionat" #: ../../WPrefs.app/Appearance.c:1936 msgid "Background" msgstr "Fons" #: ../../WPrefs.app/Appearance.c:1948 ../../WPrefs.app/TexturePanel.c:1504 msgid "Browse..." msgstr "Vés a..." #: ../../WPrefs.app/Appearance.c:1961 msgid "Options" msgstr "Opcions" #: ../../WPrefs.app/Appearance.c:1968 msgid "Menu Style" msgstr "Estil dels menús" #: ../../WPrefs.app/Appearance.c:1996 ../../WPrefs.app/Configurations.c:242 #: ../../WPrefs.app/Configurations.c:254 ../../WPrefs.app/Focus.c:288 #: ../../WPrefs.app/Focus.c:299 ../../WPrefs.app/MenuPreferences.c:134 #: ../../WPrefs.app/MenuPreferences.c:145 #: ../../WPrefs.app/MenuPreferences.c:173 #: ../../WPrefs.app/MenuPreferences.c:188 ../../WPrefs.app/MouseSettings.c:560 #: ../../WPrefs.app/MouseSettings.c:571 ../../WPrefs.app/WPrefs.c:558 #: ../../WPrefs.app/WPrefs.c:583 #, c-format msgid "could not load icon file %s" msgstr "no s'ha pogut carregar el fitxer d'icona %s" #: ../../WPrefs.app/Appearance.c:2010 msgid "Title Alignment" msgstr "Alineació del títol" #: ../../WPrefs.app/Appearance.c:2017 msgid "Left" msgstr "Esquerra" # s'usa en contexts diferents. eac #: ../../WPrefs.app/Appearance.c:2020 ../../WPrefs.app/TexturePanel.c:1518 #: ../../WPrefs.app/Workspace.c:270 msgid "Center" msgstr "Centre" #: ../../WPrefs.app/Appearance.c:2023 msgid "Right" msgstr "Dreta" #: ../../WPrefs.app/Appearance.c:2247 msgid "Appearance Preferences" msgstr "Preferències d'aparença" #: ../../WPrefs.app/Appearance.c:2249 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "Configuració de les textures de fons\n" "per a finestres, menús i icones." #: ../../WPrefs.app/Appearance.c:2294 msgid "Extract Texture" msgstr "Extreu textura" #: ../../WPrefs.app/Appearance.c:2314 msgid "Textures" msgstr "Textures" #: ../../WPrefs.app/Appearance.c:2325 ../../WPrefs.app/WPrefs.c:302 msgid "Close" msgstr "Tanca" #: ../../WPrefs.app/Appearance.c:2330 msgid "Extract" msgstr "Extreu" #: ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 #: ../../WPrefs.app/MouseSettings.c:490 ../../WPrefs.app/WindowHandling.c:339 #: ../../WPrefs.app/WindowHandling.c:351 ../../WPrefs.app/Workspace.c:90 #: ../../WPrefs.app/Workspace.c:101 #, c-format msgid "could not load icon %s" msgstr "no s'ha pogut carregar el fitxer d'icona %s" #: ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:109 #, c-format msgid "could not process icon %s: %s" msgstr "no s'ha pogut processar l'icona %s: %s" #: ../../WPrefs.app/Configurations.c:189 ../../WPrefs.app/Workspace.c:164 #, c-format msgid "could not load image file %s" msgstr "no s'ha pogut carregar el fitxer d'imatge %s" #: ../../WPrefs.app/Configurations.c:203 msgid "Icon Slide Speed" msgstr "Velocitat de lliscament de les icones" #: ../../WPrefs.app/Configurations.c:209 msgid "Shade Animation Speed" msgstr "Velocitat de l'animació d'ombrejat" #: ../../WPrefs.app/Configurations.c:271 msgid "Smooth Scaling" msgstr "Escalat suau" #: ../../WPrefs.app/Configurations.c:272 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "Escala les imatges de fons amb suavitat, eliminant\n" "l'efecte de \"pixelització\". Això fa augmentar el temps\n" "de càrrega de les imatges considerablement." #: ../../WPrefs.app/Configurations.c:313 msgid "Titlebar Style" msgstr "Estil dels botons" #: ../../WPrefs.app/Configurations.c:351 msgid "Animations and Sound" msgstr "Animacions i sons" #: ../../WPrefs.app/Configurations.c:357 msgid "Animations" msgstr "Animacions" #: ../../WPrefs.app/Configurations.c:368 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "Habilita o deshabilita les animacions, com les\n" "que tenen lloc quan es miniaturitza una finestra,\n" "s'ombreja, et cetera." #: ../../WPrefs.app/Configurations.c:376 msgid "Superfluous" msgstr "Superflu" #: ../../WPrefs.app/Configurations.c:387 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "Habilita o deshabilita les funcions i animacions\n" "supèrflues, com per exemple l'imatge \"fantasme\" del\n" "Moll quan es canvia de lloc, o l'efecte d'explosió\n" "quan es desancora una icona." #: ../../WPrefs.app/Configurations.c:397 msgid "Sounds" msgstr "Sons" #: ../../WPrefs.app/Configurations.c:408 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://shadowmere.student.utwente.nl/" msgstr "" "Habilita o deshabilita els efectes de so que se\n" "senten, per exemple, quan s'ombreja o es tanca una\n" "finestra. Per habilitar aquesta funció necessiteu\n" "un mòdul que es distribueix per separat i que podeu\n" "trobar a: http://shadowmere.student.utwente.nl/" #: ../../WPrefs.app/Configurations.c:419 msgid "" "Note: sound requires a module distributed\n" "separately" msgstr "" "Nota: els efectes de so requereixen un mòdul que\n" "es distribueix per separat" #: ../../WPrefs.app/Configurations.c:429 msgid "Dithering colormap for 8bpp" msgstr "Difuminat del mapa de colors per 8bpp" #: ../../WPrefs.app/Configurations.c:431 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "Nombre de colors que es reserva Window Maker en\n" "pantalles que només suporten 8bpp (PseudoColor)." #: ../../WPrefs.app/Configurations.c:438 msgid "Disable dithering in any visual/depth" msgstr "Deshabilita el difuminat per totes les resolucions i profunditats" #: ../../WPrefs.app/Configurations.c:459 msgid "" "More colors for\n" "applications" msgstr "" "Més colors per\n" "les aplicacions" #: ../../WPrefs.app/Configurations.c:466 msgid "" "More colors for\n" "Window Maker" msgstr "" "Més colors per\n" "Window Maker" #: ../../WPrefs.app/Configurations.c:521 msgid "Other Configurations" msgstr "Altres configuracions" #: ../../WPrefs.app/Configurations.c:523 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "Velocitat de les animacions, estils de la barra de títol,\n" "diverses opcions generals i el nombre de colors que es\n" "reserva Window Maker en pantalles de 8 bits." #: ../../WPrefs.app/Expert.c:77 msgid "" "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." msgstr "Deshabilitar les minifinestres (per a l'ús amb KDE o GNOME)." #: ../../WPrefs.app/Expert.c:78 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "No usar paràmetres no específics de Window Maker (no usar xset)." #: ../../WPrefs.app/Expert.c:79 msgid "Automatically save session when exiting Window Maker." msgstr "Desar la sessió automàticament en sortir de Window Maker." #: ../../WPrefs.app/Expert.c:80 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "" "Usar la funció SaveUnder en marcs de finestres, icones, menús i altres " "objectes." #: ../../WPrefs.app/Expert.c:81 msgid "Use Windoze style cycling." msgstr "Usar l'estil de rotació de finestres de MS Windows." #: ../../WPrefs.app/Expert.c:82 msgid "Disable confirmation panel for the Kill command." msgstr "No demanar confirmació per l'ordre \"Finalitzar\"." #: ../../WPrefs.app/Expert.c:83 msgid "Disable selection animation for selected icons." msgstr "Deshabilitar l'animació de selecció per les icones seleccionades." #: ../../WPrefs.app/Expert.c:84 msgid "Smooth font edges (needs restart)." msgstr "Habilitar l'allisat de fonts (és necessari reiniciar)." #: ../../WPrefs.app/Expert.c:123 msgid "Expert User Preferences" msgstr "Preferències per a usuaris experimentats" #: ../../WPrefs.app/Expert.c:125 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "Opcions de configuració per a usuaris experts.\n" "I tambés algunes altres opcions diverses." #: ../../WPrefs.app/Focus.c:80 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "" "el valor %s de l'opció FocusModu no és vàlid. S'usa el valor per omissió " "\"Manual\"" #: ../../WPrefs.app/Focus.c:94 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "" "el valor %s de l'opció ColormapMode no és vàlid. S'usa el valor per omissió " "\"Auto\"" #: ../../WPrefs.app/Focus.c:214 msgid "Input Focus Mode" msgstr "Mode d'enfocament" #: ../../WPrefs.app/Focus.c:222 msgid "Manual: Click on the window to set keyboard input focus" msgstr "Manual: Fer clic sobre la finestra per tal d'enfocar-la" #: ../../WPrefs.app/Focus.c:229 msgid "Auto: Set keyboard input focus to the window under the mouse pointer" msgstr "Auto: Enfoca la finestra que es troba sota el punter del ratolí" #: ../../WPrefs.app/Focus.c:243 msgid "Install colormap in the window..." msgstr "Instal·lar el mapa de color a la finestra..." #: ../../WPrefs.app/Focus.c:248 msgid "...that has the input focus." msgstr "...que està enfocada." #: ../../WPrefs.app/Focus.c:253 msgid "...that is under the mouse pointer." msgstr "...que està sota el punter del ratolí." #: ../../WPrefs.app/Focus.c:262 msgid "Automatic Window Raise Delay" msgstr "Elevació automàtica de la finestra" #: ../../WPrefs.app/Focus.c:319 ../../WPrefs.app/MouseSettings.c:601 msgid "msec" msgstr "mseg" #: ../../WPrefs.app/Focus.c:336 msgid "" "Do not let applications receive\n" "the click used to focus windows." msgstr "" "No passar el clic utilitzat per\n" "enfocar la finestra a les aplicacions." #: ../../WPrefs.app/Focus.c:342 msgid "" "Automatically focus new\n" "windows." msgstr "" "Enfocar les finestres noves\n" "automàticament." #: ../../WPrefs.app/Focus.c:363 msgid "Window Focus Preferences" msgstr "Preferències d'enfocament de les finestres" #: ../../WPrefs.app/Focus.c:365 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "Mode d'alternança d'enfocament de finestres, mapes de\n" "color (per pantalles de 8bpp) i opcions relacionades." #: ../../WPrefs.app/Font.c:400 ../../WPrefs.app/Font.c:1872 msgid "Window Title Font" msgstr "Font pel títol de finestra" #: ../../WPrefs.app/Font.c:404 msgid "Display" msgstr "Pantalla" #: ../../WPrefs.app/Font.c:412 msgid "Menu Item" msgstr "Ãtem de menú" #: ../../WPrefs.app/Font.c:418 msgid "Clip title" msgstr "Títol del Clip" #: ../../WPrefs.app/Font.c:422 msgid "Icon Title" msgstr "Títol de les icones" #: ../../WPrefs.app/Font.c:726 msgid "error capturing \"original\" tile image" msgstr "error quan es capturava l'imatge \"original\" de l'icona" #: ../../WPrefs.app/Font.c:1130 msgid "Could not locate font information file WPrefs.app/font.data" msgstr "" "No s'ha trobat el fitxer d'informació de tipus de lletra WPrefs.app/font.data" #: ../../WPrefs.app/Font.c:1136 msgid "Could not read font information file WPrefs.app/font.data" msgstr "" "No s'ha pogut llegir el fitxer d'informació de tipus de lletra WPrefs.app/" "font.data" #: ../../WPrefs.app/Font.c:1147 msgid "" "Invalid data in font information file WPrefs.app/font.data.\n" "Encodings data not found." msgstr "" "Les dades del fitxer d'informació de tipus de lletra WPrefs.app/font.data\n" "no són vàlides. No s'han trobat les dades de codificació." #: ../../WPrefs.app/Font.c:1152 msgid "Current" msgstr "Actual" #: ../../WPrefs.app/Font.c:1197 ../../WPrefs.app/Menu.c:1592 #: ../../WPrefs.app/MouseSettings.c:140 ../../WPrefs.app/MouseSettings.c:160 #: ../../WPrefs.app/TexturePanel.c:615 ../../WPrefs.app/TexturePanel.c:695 #: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:759 #: ../../WPrefs.app/WPrefs.c:764 ../../WPrefs.app/WPrefs.c:781 #: ../../WPrefs.app/WPrefs.c:791 ../../WPrefs.app/WPrefs.c:801 #: ../../WPrefs.app/WPrefs.c:839 ../../WPrefs.app/WPrefs.c:844 msgid "Error" msgstr "Error" #: ../../WPrefs.app/Font.c:1197 ../../WPrefs.app/Font.c:1307 #: ../../WPrefs.app/Menu.c:1592 ../../WPrefs.app/MouseSettings.c:142 #: ../../WPrefs.app/MouseSettings.c:162 ../../WPrefs.app/TexturePanel.c:616 #: ../../WPrefs.app/TexturePanel.c:697 ../../WPrefs.app/TexturePanel.c:1529 #: ../../WPrefs.app/Themes.c:98 ../../WPrefs.app/WPrefs.c:759 #: ../../WPrefs.app/WPrefs.c:764 ../../WPrefs.app/WPrefs.c:783 #: ../../WPrefs.app/WPrefs.c:795 ../../WPrefs.app/WPrefs.c:801 #: ../../WPrefs.app/WPrefs.c:808 ../../WPrefs.app/WPrefs.c:839 #: ../../WPrefs.app/WPrefs.c:844 ../../WPrefs.app/imagebrowser.c:105 msgid "OK" msgstr "D'acord" #: ../../WPrefs.app/Font.c:1307 ../../WPrefs.app/Menu.c:1627 #: ../../WPrefs.app/WPrefs.c:808 msgid "Warning" msgstr "Atenció" #: ../../WPrefs.app/Font.c:1503 ../../WPrefs.app/Menu.c:1404 msgid "Yes" msgstr "Sí" #: ../../WPrefs.app/Font.c:1507 msgid "Auto" msgstr "Automàtic" #: ../../WPrefs.app/Font.c:1873 msgid "Large Display Font" msgstr "Visor gran de font" #: ../../WPrefs.app/Font.c:1874 msgid "Menu Title Font" msgstr "Font pel títol de menú" #: ../../WPrefs.app/Font.c:1875 msgid "Menu Item Font" msgstr "Font pels ítems de menú" #: ../../WPrefs.app/Font.c:1876 msgid "Clip Title Font" msgstr "Font pel títol del Clip" #: ../../WPrefs.app/Font.c:1877 msgid "Icon Title Font" msgstr "Font pel títol de les icones" #: ../../WPrefs.app/Font.c:1887 msgid "MultiByte" msgstr "Multi-octet" #: ../../WPrefs.app/Font.c:1901 msgid "Default Font Encodings" msgstr "Conjunt de caràcters per omissió" #: ../../WPrefs.app/Font.c:1917 msgid "Smooth Fonts" msgstr "Fonts allisades" #: ../../WPrefs.app/Font.c:1918 msgid "" "Smooth Font edges for the eye candy\n" "requires a restart after saving" msgstr "" "L'allisat de fonts requereix\n" "reiniciar el gestor de finestres." #: ../../WPrefs.app/Font.c:1927 msgid "Font Set" msgstr "Conjunt de fonts" #: ../../WPrefs.app/Font.c:1957 msgid "Add..." msgstr "Afegeix..." #: ../../WPrefs.app/Font.c:1963 ../../WPrefs.app/Font.c:1999 msgid "Change..." msgstr "Canvia..." #: ../../WPrefs.app/Font.c:1969 ../../WPrefs.app/Paths.c:284 #: ../../WPrefs.app/Paths.c:315 msgid "Remove" msgstr "Elimina" #: ../../WPrefs.app/Font.c:2095 msgid "Font Preferences" msgstr "Preferències de tipus de lletres" #: ../../WPrefs.app/Font.c:2096 msgid "Font Configurations for Windows, Menus etc" msgstr "Configuració dels tipus de lletra per finestres, menús, et cetera." #: ../../WPrefs.app/Icons.c:180 msgid "Icon Positioning" msgstr "Posició de les icones" #: ../../WPrefs.app/Icons.c:227 msgid "Iconification Animation" msgstr "Animació d'iconificació" #: ../../WPrefs.app/Icons.c:238 msgid "Shrinking/Zooming" msgstr "Reducció/Ampliació" #: ../../WPrefs.app/Icons.c:239 msgid "Spinning/Twisting" msgstr "Centrifugat" #: ../../WPrefs.app/Icons.c:240 msgid "3D-flipping" msgstr "Tombarelles" #: ../../WPrefs.app/Icons.c:241 ../../WPrefs.app/MouseSettings.c:838 #: ../../WPrefs.app/MouseSettings.c:843 msgid "None" msgstr "Cap" #: ../../WPrefs.app/Icons.c:254 msgid "Auto-arrange icons" msgstr "Arranjar les icones automàticament" #: ../../WPrefs.app/Icons.c:256 msgid "Keep icons and miniwindows arranged all the time." msgstr "Manté les icones i minifestres arranjades en tot moment." #: ../../WPrefs.app/Icons.c:262 msgid "Omnipresent miniwindows" msgstr "Minifinestres omnipresents" #: ../../WPrefs.app/Icons.c:264 msgid "Make miniwindows be present in all workspaces." msgstr "Fa les minifinestres presents a totes les àrees de treball." #: ../../WPrefs.app/Icons.c:273 msgid "Icon Size" msgstr "Mida de les icones" #: ../../WPrefs.app/Icons.c:275 msgid "The size of the dock/application icon and miniwindows" msgstr "Mida del moll, icones d'aplicació i minifinestres" #: ../../WPrefs.app/Icons.c:345 msgid "Icon Preferences" msgstr "Preferències d'icones" #: ../../WPrefs.app/Icons.c:347 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "Opcions d'icones i minifinestres. Posició, mides\n" "i estil de les animacions de miniaturització." #: ../../WPrefs.app/KeyboardSettings.c:73 msgid "Initial Key Repeat" msgstr "Repetició inicial de tecla" #: ../../WPrefs.app/KeyboardSettings.c:114 msgid "Key Repeat Rate" msgstr "Taxa de repetició" #: ../../WPrefs.app/KeyboardSettings.c:154 msgid "Type here to test" msgstr "Teclejeu aquí per provar-ho" #: ../../WPrefs.app/KeyboardSettings.c:173 msgid "Keyboard Preferences" msgstr "Preferències del teclat" #: ../../WPrefs.app/KeyboardSettings.c:175 msgid "Not done" msgstr "En preparació" #: ../../WPrefs.app/KeyboardShortcuts.c:307 ../../WPrefs.app/Menu.c:360 #: ../../WPrefs.app/TexturePanel.c:1535 ../../WPrefs.app/imagebrowser.c:100 msgid "Cancel" msgstr "Cancel·la" #: ../../WPrefs.app/KeyboardShortcuts.c:308 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "" "Premeu la tecla o tecles que volgueu vincular i després feu clic sobre " "Cancel·la." #: ../../WPrefs.app/KeyboardShortcuts.c:328 #: ../../WPrefs.app/KeyboardShortcuts.c:575 ../../WPrefs.app/Menu.c:371 #: ../../WPrefs.app/Menu.c:830 msgid "Capture" msgstr "Captura" #: ../../WPrefs.app/KeyboardShortcuts.c:329 #: ../../WPrefs.app/KeyboardShortcuts.c:583 msgid "Click Capture to interactively define the shortcut key." msgstr "Cliqueu sobre Captura per establir vincles de tecles interactivament." #: ../../WPrefs.app/KeyboardShortcuts.c:483 msgid "Actions" msgstr "Accions" #: ../../WPrefs.app/KeyboardShortcuts.c:497 msgid "Open applications menu" msgstr "Obrir el menú d'aplicacions" #: ../../WPrefs.app/KeyboardShortcuts.c:498 msgid "Open window list menu" msgstr "Obrir la llista de finestres" #: ../../WPrefs.app/KeyboardShortcuts.c:499 msgid "Open window commands menu" msgstr "Obrir el menú d'ordres de finestra" #: ../../WPrefs.app/KeyboardShortcuts.c:500 msgid "Hide active application" msgstr "Amagar l'aplicació activa" #: ../../WPrefs.app/KeyboardShortcuts.c:501 msgid "Hide other applications" msgstr "Amagar les altres aplicacions" #: ../../WPrefs.app/KeyboardShortcuts.c:502 msgid "Miniaturize active window" msgstr "Miniaturitzar l'aplicació activa" #: ../../WPrefs.app/KeyboardShortcuts.c:503 msgid "Close active window" msgstr "Tancar la finestra activa" #: ../../WPrefs.app/KeyboardShortcuts.c:504 msgid "Maximize active window" msgstr "Maximitzar la finestra activa" #: ../../WPrefs.app/KeyboardShortcuts.c:505 msgid "Maximize active window vertically" msgstr "Maximitzar verticalment la finestra activa" #: ../../WPrefs.app/KeyboardShortcuts.c:506 msgid "Maximize active window horizontally" msgstr "Maximitzar horitzontalment la finestra activa" #: ../../WPrefs.app/KeyboardShortcuts.c:507 msgid "Raise active window" msgstr "Elevar la finestra activa" #: ../../WPrefs.app/KeyboardShortcuts.c:508 msgid "Lower active window" msgstr "Abaixar la finestra activa" #: ../../WPrefs.app/KeyboardShortcuts.c:509 msgid "Raise/Lower window under mouse pointer" msgstr "Elevar/Abaixar la finestra sota el punter del ratolí" #: ../../WPrefs.app/KeyboardShortcuts.c:510 msgid "Shade active window" msgstr "Ombrejar la finestra activa" #: ../../WPrefs.app/KeyboardShortcuts.c:511 msgid "Move/Resize active window" msgstr "Moure o redimensionar la finestra activa" #: ../../WPrefs.app/KeyboardShortcuts.c:512 msgid "Select active window" msgstr "Seleccionar la finestra activa" #: ../../WPrefs.app/KeyboardShortcuts.c:513 msgid "Focus next window" msgstr "Enfocar la següent finestra" #: ../../WPrefs.app/KeyboardShortcuts.c:514 msgid "Focus previous window" msgstr "Enfocar la finestra prèvia" #: ../../WPrefs.app/KeyboardShortcuts.c:515 msgid "Switch to next workspace" msgstr "Anar a l'àrea de treball següent" #: ../../WPrefs.app/KeyboardShortcuts.c:516 msgid "Switch to previous workspace" msgstr "Anar a l'àrea de treball prèvia" #: ../../WPrefs.app/KeyboardShortcuts.c:517 msgid "Switch to next ten workspaces" msgstr "Saltar les deu àrees de treball següents" #: ../../WPrefs.app/KeyboardShortcuts.c:518 msgid "Switch to previous ten workspaces" msgstr "Saltar les deu àrees de treball prèvies" #: ../../WPrefs.app/KeyboardShortcuts.c:519 msgid "Switch to workspace 1" msgstr "Canviar a l'àrea de treball 1" #: ../../WPrefs.app/KeyboardShortcuts.c:520 msgid "Switch to workspace 2" msgstr "Canviar a l'àrea de treball 2" #: ../../WPrefs.app/KeyboardShortcuts.c:521 msgid "Switch to workspace 3" msgstr "Canviar a l'àrea de treball 3" #: ../../WPrefs.app/KeyboardShortcuts.c:522 msgid "Switch to workspace 4" msgstr "Canviar a l'àrea de treball 4" #: ../../WPrefs.app/KeyboardShortcuts.c:523 msgid "Switch to workspace 5" msgstr "Canviar a l'àrea de treball 5" #: ../../WPrefs.app/KeyboardShortcuts.c:524 msgid "Switch to workspace 6" msgstr "Canviar a l'àrea de treball 6" #: ../../WPrefs.app/KeyboardShortcuts.c:525 msgid "Switch to workspace 7" msgstr "Canviar a l'àrea de treball 7" #: ../../WPrefs.app/KeyboardShortcuts.c:526 msgid "Switch to workspace 8" msgstr "Canviar a l'àrea de treball 8" #: ../../WPrefs.app/KeyboardShortcuts.c:527 msgid "Switch to workspace 9" msgstr "Canviar a l'àrea de treball 9" #: ../../WPrefs.app/KeyboardShortcuts.c:528 msgid "Switch to workspace 10" msgstr "Canviar a l'àrea de treball 10" #: ../../WPrefs.app/KeyboardShortcuts.c:529 msgid "Shortcut for window 1" msgstr "Drecera a la finestra 1" #: ../../WPrefs.app/KeyboardShortcuts.c:530 msgid "Shortcut for window 2" msgstr "Drecera a la finestra 2" #: ../../WPrefs.app/KeyboardShortcuts.c:531 msgid "Shortcut for window 3" msgstr "Drecera a la finestra 3" #: ../../WPrefs.app/KeyboardShortcuts.c:532 msgid "Shortcut for window 4" msgstr "Drecera a la finestra 4" #: ../../WPrefs.app/KeyboardShortcuts.c:533 msgid "Shortcut for window 5" msgstr "Drecera a la finestra 5" #: ../../WPrefs.app/KeyboardShortcuts.c:534 msgid "Shortcut for window 6" msgstr "Drecera a la finestra 6" #: ../../WPrefs.app/KeyboardShortcuts.c:535 msgid "Shortcut for window 7" msgstr "Drecera a la finestra 7" #: ../../WPrefs.app/KeyboardShortcuts.c:536 msgid "Shortcut for window 8" msgstr "Drecera a la finestra 8" #: ../../WPrefs.app/KeyboardShortcuts.c:537 msgid "Shortcut for window 9" msgstr "Drecera a la finestra 9" #: ../../WPrefs.app/KeyboardShortcuts.c:538 msgid "Shortcut for window 10" msgstr "Drecera a la finestra 10" #: ../../WPrefs.app/KeyboardShortcuts.c:539 msgid "Switch to Next Screen/Monitor" msgstr "Canviar a la següent pantalla/monitor" #: ../../WPrefs.app/KeyboardShortcuts.c:540 msgid "Raise Clip" msgstr "Elevar el Clip" #: ../../WPrefs.app/KeyboardShortcuts.c:541 msgid "Lower Clip" msgstr "Abaixar el Clip" #: ../../WPrefs.app/KeyboardShortcuts.c:542 msgid "Raise/Lower Clip" msgstr "Elevar/Abaixar el Clip" #: ../../WPrefs.app/KeyboardShortcuts.c:544 msgid "Toggle keyboard language" msgstr "Commutar el llenguatge del teclat" #: ../../WPrefs.app/KeyboardShortcuts.c:558 msgid "Shortcut" msgstr "Vincula" #: ../../WPrefs.app/KeyboardShortcuts.c:569 ../../WPrefs.app/Menu.c:836 msgid "Clear" msgstr "Oblida" #: ../../WPrefs.app/KeyboardShortcuts.c:631 msgid "Keyboard Shortcut Preferences" msgstr "Preferències de vincles de tecla" #: ../../WPrefs.app/KeyboardShortcuts.c:633 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "Permet establir o canviar vincles de tecla per\n" "accions tals com canviar d'àrea de treball o\n" "obrir menús." #: ../../WPrefs.app/Menu.c:278 msgid "Select Program" msgstr "Trieu un programa" #: ../../WPrefs.app/Menu.c:510 msgid "New Items" msgstr "Elements Nous" #: ../../WPrefs.app/Menu.c:511 msgid "Sample Commands" msgstr "Ordres d'exemple" #: ../../WPrefs.app/Menu.c:512 msgid "Sample Submenus" msgstr "Submenús d'exemple" #: ../../WPrefs.app/Menu.c:526 msgid "Run Program" msgstr "Executar programa" #: ../../WPrefs.app/Menu.c:527 msgid "Internal Command" msgstr "Ordre interna" #: ../../WPrefs.app/Menu.c:528 msgid "Submenu" msgstr "Submenú" #: ../../WPrefs.app/Menu.c:529 msgid "External Submenu" msgstr "Submenú extern" #: ../../WPrefs.app/Menu.c:530 msgid "Generated Submenu" msgstr "Submenú generat" #: ../../WPrefs.app/Menu.c:531 msgid "Directory Contents" msgstr "Contingut d'un directori" #: ../../WPrefs.app/Menu.c:532 msgid "Workspace Menu" msgstr "Menú d'àrea" #: ../../WPrefs.app/Menu.c:533 ../../WPrefs.app/MouseSettings.c:840 msgid "Window List Menu" msgstr "Llista de finestres" #: ../../WPrefs.app/Menu.c:552 msgid "XTerm" msgstr "XTerm" #: ../../WPrefs.app/Menu.c:555 msgid "rxvt" msgstr "rxvt" #: ../../WPrefs.app/Menu.c:558 msgid "ETerm" msgstr "ETerm" #: ../../WPrefs.app/Menu.c:561 msgid "Run..." msgstr "Executa..." #: ../../WPrefs.app/Menu.c:562 msgid "%a(Run,Type command to run)" msgstr "%a(Executar,Entreu l'ordre a executar)" #: ../../WPrefs.app/Menu.c:564 msgid "Netscape" msgstr "Netscape" #: ../../WPrefs.app/Menu.c:567 msgid "gimp" msgstr "Gimp" #: ../../WPrefs.app/Menu.c:570 msgid "epic" msgstr "epic" #: ../../WPrefs.app/Menu.c:573 msgid "ee" msgstr "ee" #: ../../WPrefs.app/Menu.c:576 msgid "xv" msgstr "xv" #: ../../WPrefs.app/Menu.c:579 msgid "Acrobat Reader" msgstr "Acrobat Reader" #: ../../WPrefs.app/Menu.c:582 msgid "ghostview" msgstr "ghostview" #: ../../WPrefs.app/Menu.c:585 ../../WPrefs.app/Menu.c:857 msgid "Exit Window Maker" msgstr "Sortir de Window Maker" #: ../../WPrefs.app/Menu.c:608 msgid "Debian Menu" msgstr "Menú de Debian" #: ../../WPrefs.app/Menu.c:611 msgid "RedHat Menu" msgstr "Menú de RedHat" #: ../../WPrefs.app/Menu.c:614 msgid "Menu Conectiva" msgstr "Menú de Conectiva" #: ../../WPrefs.app/Menu.c:617 ../../WPrefs.app/Themes.c:250 msgid "Themes" msgstr "Temes" #: ../../WPrefs.app/Menu.c:622 msgid "Bg Images (scale)" msgstr "Imatge de fons (escalada)" #: ../../WPrefs.app/Menu.c:627 msgid "Bg Images (tile)" msgstr "Imatge de fons (repetida)" #: ../../WPrefs.app/Menu.c:632 msgid "Assorted XTerms" msgstr "Vàries XTerms" #: ../../WPrefs.app/Menu.c:634 msgid "XTerm Yellow on Blue" msgstr "XTerm groc sobre blau" #: ../../WPrefs.app/Menu.c:637 msgid "XTerm White on Black" msgstr "XTerm blanc sobre negre" #: ../../WPrefs.app/Menu.c:640 msgid "XTerm Black on White" msgstr "XTerm negre sobre blanc" #: ../../WPrefs.app/Menu.c:643 msgid "XTerm Black on Beige" msgstr "XTerm negre sobre beix" #: ../../WPrefs.app/Menu.c:646 msgid "XTerm White on Green" msgstr "XTerm blanc sobre verd" #: ../../WPrefs.app/Menu.c:649 msgid "XTerm White on Olive" msgstr "XTerm blanc sobre verd fosc" #: ../../WPrefs.app/Menu.c:652 msgid "XTerm Blue on Blue" msgstr "Xterm blau sobre blau" #: ../../WPrefs.app/Menu.c:655 msgid "XTerm BIG FONTS" msgstr "XTerm FONTS GRANS" #: ../../WPrefs.app/Menu.c:677 msgid "Program to Run" msgstr "Programa a executar" #: ../../WPrefs.app/Menu.c:687 msgid "Browse" msgstr "Vés a..." #: ../../WPrefs.app/Menu.c:698 msgid "Run the program inside a Xterm" msgstr "Executa en una XTerm" #: ../../WPrefs.app/Menu.c:708 msgid "Path for Menu" msgstr "Ubicació del menú" #: ../../WPrefs.app/Menu.c:721 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin" msgstr "" "Entreu l'ubicació d'un fitxer que contingui el menú, o\n" "una llista de directoris amb els programes que voleu\n" "que apareguin al menú. Per exemple:\n" "~/GNUstep/Library/WindowMaker/menu, o\n" "/usr/bin ~/xbin" #: ../../WPrefs.app/Menu.c:736 msgid "Command" msgstr "Ordre" #: ../../WPrefs.app/Menu.c:750 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "Entreu una ordre que generi una definició\n" "de menú a l'eixida estàndard quan s'invoca." #: ../../WPrefs.app/Menu.c:758 msgid "" "Cache menu contents after opening for\n" "the first time" msgstr "" "Fer una còpia \"cache\" del menú quan\n" "s'obra per primera vegada" #: ../../WPrefs.app/Menu.c:769 msgid "Command to Open Files" msgstr "Ordre per obrir els fitxers" #: ../../WPrefs.app/Menu.c:783 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "Indiqueu l'ordre que voleu usar per obrir els\n" "fitxers dels directoris llistats tot seguit." #: ../../WPrefs.app/Menu.c:792 msgid "Directories with Files" msgstr "Directoris amb fitxers" #: ../../WPrefs.app/Menu.c:805 msgid "Strip extensions from file names" msgstr "No mostrar les extensions dels fitxers" #: ../../WPrefs.app/Menu.c:817 msgid "Keyboard Shortcut" msgstr "Vincle de tecla" #: ../../WPrefs.app/Menu.c:853 msgid "Arrange Icons" msgstr "Arranjar les icones" #: ../../WPrefs.app/Menu.c:854 msgid "Hide All Windows Except For The Focused One" msgstr "Amagar totes les finestres tret de l'enfocada" #: ../../WPrefs.app/Menu.c:855 msgid "Show All Windows" msgstr "Mostrar totes les finestres" #: ../../WPrefs.app/Menu.c:858 msgid "Exit X Session" msgstr "Sortir de la sessió X" #: ../../WPrefs.app/Menu.c:859 msgid "Restart Window Maker" msgstr "Reiniciar Window Maker" #: ../../WPrefs.app/Menu.c:860 msgid "Start Another Window Manager : (" msgstr "Iniciar un altre gestor de finestres :(" #: ../../WPrefs.app/Menu.c:862 msgid "Save Current Session" msgstr "Desar la sessió actual" #: ../../WPrefs.app/Menu.c:863 msgid "Clear Saved Session" msgstr "Oblidar la sessió desada" #: ../../WPrefs.app/Menu.c:864 msgid "Refresh Screen" msgstr "Refrescar la pantalla" #: ../../WPrefs.app/Menu.c:865 msgid "Open Info Panel" msgstr "Obrir el panell d'informació" #: ../../WPrefs.app/Menu.c:866 msgid "Open Copyright Panel" msgstr "Obrir l'informació del copyright" #: ../../WPrefs.app/Menu.c:872 msgid "Window Manager to Start" msgstr "Gestor de finestres a iniciar" #: ../../WPrefs.app/Menu.c:888 msgid "Do not confirm action." msgstr "No confirmar" #: ../../WPrefs.app/Menu.c:896 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "Instruccions:\n" "\n" "- afegiu ítems movent-los des de l'esquerra al menú\n" "- moveu els ítems fora del menú per eliminar-los\n" "- canvieu la posició d'un ítem movent-lo dins del menú\n" "- copieu un ítem movent-lo prement la tecla Control\n" "- feu doble clic en un ítem per canviar-li la etiqueta\n" "- feu clic en un ítem per canviar-ne les propietats" #: ../../WPrefs.app/Menu.c:1120 #, c-format msgid "unknown command '%s' in menu" msgstr "ordre '%s' desconeguda en el menú" #: ../../WPrefs.app/Menu.c:1152 msgid ": Execute Program" msgstr ": Executar programa" #: ../../WPrefs.app/Menu.c:1156 msgid ": Perform Internal Command" msgstr ": Ordre interna" #: ../../WPrefs.app/Menu.c:1160 msgid ": Open a Submenu" msgstr ": Obrir submenú" #: ../../WPrefs.app/Menu.c:1164 msgid ": Program Generated Submenu" msgstr ": Submenú generat per un programa" #: ../../WPrefs.app/Menu.c:1168 msgid ": Directory Contents Menu" msgstr ": Contingut d'un directori" #: ../../WPrefs.app/Menu.c:1172 msgid ": Open Workspaces Submenu" msgstr ": Obrir menú d'àrea de treball" #: ../../WPrefs.app/Menu.c:1176 msgid ": Open Window List Submenu" msgstr ": Obrir llista de finestres" #: ../../WPrefs.app/Menu.c:1401 msgid "Remove Submenu" msgstr "Eliminar submenú" #: ../../WPrefs.app/Menu.c:1402 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "" "Eliminant aquest element també eliminareu tots els\n" "elements que es trobin dins del submenú.\n" "Esteu segurs que voleu fer això?" #: ../../WPrefs.app/Menu.c:1404 msgid "No" msgstr "No" #: ../../WPrefs.app/Menu.c:1405 msgid "Yes, don't ask again." msgstr "Sí, no preguntis més." #. if there is a localized plmenu for the tongue put it's filename here #: ../../WPrefs.app/Menu.c:1573 ../../WPrefs.app/Menu.c:1580 #, c-format msgid "%s/Library/WindowMaker/plmenu" msgstr "%s/Library/WindowMaker/plmenu" #: ../../WPrefs.app/Menu.c:1589 #, c-format msgid "Could not open default menu from '%s'" msgstr "No s'ha pogut obrir el menú per omissió de '%s'" #: ../../WPrefs.app/Menu.c:1628 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "Aquesta eina no suporta el format de menú usat\n" "actualment. Voleu descartar el menú actual?" #: ../../WPrefs.app/Menu.c:1631 msgid "Yes, Discard and Update" msgstr "Sí, descarta i actualitza" #: ../../WPrefs.app/Menu.c:1632 msgid "No, Keep Current Menu" msgstr "No, deixa el que hi ha ara" #: ../../WPrefs.app/Menu.c:1895 msgid "Applications Menu Definition" msgstr "Definició del menú d'aplicacions" #: ../../WPrefs.app/Menu.c:1897 msgid "Edit the menu for launching applications." msgstr "Edita el menú per executar aplicacions." #: ../../WPrefs.app/MenuPreferences.c:111 msgid "Menu Scrolling Speed" msgstr "Velocitat de desplaçament dels menús" #: ../../WPrefs.app/MenuPreferences.c:160 msgid "Submenu Alignment" msgstr "Alineació dels submenús" #: ../../WPrefs.app/MenuPreferences.c:204 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "Obrir sempre els submenús dins la pantalla, en lloc de desplaçar-los." #: ../../WPrefs.app/MenuPreferences.c:209 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "" "Desplaçar els menús que no caben a la pantalla amb el punter del ratolí." #: ../../WPrefs.app/MenuPreferences.c:229 msgid "Menu Preferences" msgstr "Preferències de menús" #: ../../WPrefs.app/MenuPreferences.c:231 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "Opcions relacionades amb l'ús de menús. Velocitat\n" "de desplaçament, alineació dels submenús, etc." #: ../../WPrefs.app/MouseSettings.c:141 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "" "El valor d'acceleració del ratolí no és vàlid. Ha de ser un nombre real " "positiu." #: ../../WPrefs.app/MouseSettings.c:161 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "" "El valor del llindar d'acceleració del ratolí no és vàlid. Ha de ser el " "nombre de píxels que es recorren abans de començar a accelerar." #: ../../WPrefs.app/MouseSettings.c:262 ../../WPrefs.app/MouseSettings.c:274 #: ../../WPrefs.app/MouseSettings.c:286 ../../WPrefs.app/MouseSettings.c:298 #, c-format msgid "bad value %s for option %s" msgstr "el valor %s de l'opció %s no és vàlid" #: ../../WPrefs.app/MouseSettings.c:357 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "" "la tecla de modificació %s en l'opció ModifierKey és desconeguda. S'usa el " "valor per omissió %s." #: ../../WPrefs.app/MouseSettings.c:382 msgid "could not retrieve keyboard modifier mapping" msgstr "no s'han pogut obtenir els codis de la tecla de modificació" #: ../../WPrefs.app/MouseSettings.c:477 msgid "Mouse Speed" msgstr "Velocitat del ratolí" #: ../../WPrefs.app/MouseSettings.c:507 msgid "Acceler.:" msgstr "Acceler.:" #: ../../WPrefs.app/MouseSettings.c:520 msgid "Threshold:" msgstr "Llindar:" #: ../../WPrefs.app/MouseSettings.c:535 msgid "Double-Click Delay" msgstr "Retard de doble-clic" #: ../../WPrefs.app/MouseSettings.c:579 msgid "Test" msgstr "Prova" #: ../../WPrefs.app/MouseSettings.c:609 msgid "Workspace Mouse Actions" msgstr "Accions del ratolí a l'àrea de treball" #: ../../WPrefs.app/MouseSettings.c:614 msgid "Disable mouse actions" msgstr "Deshabilita els vincles de menú" #: ../../WPrefs.app/MouseSettings.c:620 msgid "Left Button" msgstr "Botó esquerra" #: ../../WPrefs.app/MouseSettings.c:630 msgid "Middle Button" msgstr "Botó del mig" #: ../../WPrefs.app/MouseSettings.c:640 msgid "Right Button" msgstr "Botó dret" #: ../../WPrefs.app/MouseSettings.c:650 msgid "Mouse Wheel" msgstr "Roda" #: ../../WPrefs.app/MouseSettings.c:672 msgid "Mouse Grab Modifier" msgstr "Tecla de modificació" #: ../../WPrefs.app/MouseSettings.c:674 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "La tecla modificadora a usar per les accions\n" "que impliquin arrossegar finestres amb el ratolí,\n" "clicant dins de la finestra en qüestió." #: ../../WPrefs.app/MouseSettings.c:708 #, c-format msgid "could not create %s" msgstr "no s'ha pogut crear %s" #: ../../WPrefs.app/MouseSettings.c:724 #, c-format msgid "could not create temporary file %s" msgstr "no s'ha pogut crear el fitxer temporal %s" #: ../../WPrefs.app/MouseSettings.c:756 #, c-format msgid "could not rename file %s to %s\n" msgstr "no s'ha pogut reanomenar el fitxer %s a %s\n" #: ../../WPrefs.app/MouseSettings.c:829 msgid "Shift" msgstr "Shift" #: ../../WPrefs.app/MouseSettings.c:830 msgid "Lock" msgstr "Bloq" #: ../../WPrefs.app/MouseSettings.c:831 msgid "Control" msgstr "Control" #: ../../WPrefs.app/MouseSettings.c:832 msgid "Mod1" msgstr "Mod1" #: ../../WPrefs.app/MouseSettings.c:833 msgid "Mod2" msgstr "Mod2" #: ../../WPrefs.app/MouseSettings.c:834 msgid "Mod3" msgstr "Mod3" #: ../../WPrefs.app/MouseSettings.c:835 msgid "Mod4" msgstr "Mod4" #: ../../WPrefs.app/MouseSettings.c:836 msgid "Mod5" msgstr "Mod5" #: ../../WPrefs.app/MouseSettings.c:839 msgid "Applications Menu" msgstr "Menú d'aplicacions" #: ../../WPrefs.app/MouseSettings.c:841 msgid "Select Windows" msgstr "Selecciona" #: ../../WPrefs.app/MouseSettings.c:844 msgid "Switch Workspaces" msgstr "Canvia d'àrea" #: ../../WPrefs.app/MouseSettings.c:849 msgid "Mouse Preferences" msgstr "Preferències del ratolí" #: ../../WPrefs.app/MouseSettings.c:851 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "Volocitat i acceleració del ratolí, retard\n" "de doble clic, vincles dels botons, etc." #: ../../WPrefs.app/Paths.c:85 msgid "bad value in option IconPath. Using default path list" msgstr "" "valor incorrecte a l'opció IconPath. S'usa la llista de camins per omissió" #: ../../WPrefs.app/Paths.c:102 msgid "bad value in option PixmapPath. Using default path list" msgstr "" "valor incorrecte a l'opció PixmapPath. S'usa la llista de camins per omissió" #: ../../WPrefs.app/Paths.c:150 msgid "Select directory" msgstr "Trieu un directori" #: ../../WPrefs.app/Paths.c:266 msgid "Icon Search Paths" msgstr "Ubicació de les icones" #: ../../WPrefs.app/Paths.c:277 ../../WPrefs.app/Paths.c:308 #: ../../WPrefs.app/TexturePanel.c:1312 msgid "Add" msgstr "Afegeix" #: ../../WPrefs.app/Paths.c:297 msgid "Pixmap Search Paths" msgstr "Ubicació dels fitxers d'imatge" #: ../../WPrefs.app/Paths.c:337 msgid "Search Path Configuration" msgstr "Configuració dels camins de recerca" #: ../../WPrefs.app/Paths.c:339 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "Ubicacions on buscar icones i mapes de bits." #: ../../WPrefs.app/Preferences.c:75 msgid "OFF" msgstr "0 píxels" #: ../../WPrefs.app/Preferences.c:77 msgid "1 pixel" msgstr "1 píxel" #. 2-4 #: ../../WPrefs.app/Preferences.c:80 #, c-format msgid "%i pixels" msgstr "%i píxels" #. >4 #: ../../WPrefs.app/Preferences.c:83 #, c-format msgid "%i pixels " msgstr "%i píxels " #: ../../WPrefs.app/Preferences.c:229 msgid "Size Display" msgstr "Visor de mida" #: ../../WPrefs.app/Preferences.c:231 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "La posició o estil del visor de mida que\n" "apareix quan una finestra es redimensiona." #: ../../WPrefs.app/Preferences.c:238 ../../WPrefs.app/Preferences.c:259 msgid "Corner of screen" msgstr "Cantonada de la pantalla" #: ../../WPrefs.app/Preferences.c:239 ../../WPrefs.app/Preferences.c:260 msgid "Center of screen" msgstr "Centre de la pantalla" #: ../../WPrefs.app/Preferences.c:240 ../../WPrefs.app/Preferences.c:261 msgid "Center of resized window" msgstr "Centre de la finestra" #: ../../WPrefs.app/Preferences.c:241 msgid "Technical drawing-like" msgstr "Estil dibuix tècnic" #: ../../WPrefs.app/Preferences.c:242 ../../WPrefs.app/Preferences.c:262 msgid "Disabled" msgstr "Deshabilitat" #: ../../WPrefs.app/Preferences.c:250 msgid "Position Display" msgstr "Visor de posició" #: ../../WPrefs.app/Preferences.c:252 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "La posició o estil del visor de posició\n" "que apareix quan es mou una finestra." #: ../../WPrefs.app/Preferences.c:270 msgid "Show balloon text for..." msgstr "Mostrar text flotant per..." #: ../../WPrefs.app/Preferences.c:277 msgid "incomplete window titles" msgstr "títols incomplets de finestres" #: ../../WPrefs.app/Preferences.c:278 msgid "miniwindow titles" msgstr "títols de minifinestres" #: ../../WPrefs.app/Preferences.c:279 msgid "application/dock icons" msgstr "icones ancorades o d'aplicació" #: ../../WPrefs.app/Preferences.c:280 msgid "internal help" msgstr "ajuda interna" #: ../../WPrefs.app/Preferences.c:292 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "" "Elevar la finestra enfocada amb\n" "el teclat automàticament." #: ../../WPrefs.app/Preferences.c:298 msgid "" "Enable keyboard language\n" "switch button in window titlebars." msgstr "" "Mostrar el botó de canvi de\n" "llenguatge a les finestres." #: ../../WPrefs.app/Preferences.c:307 msgid "Workspace border" msgstr "Marc de l'àrea de treball" #: ../../WPrefs.app/Preferences.c:323 msgid "Left/Right" msgstr "Lateral" #: ../../WPrefs.app/Preferences.c:328 msgid "Top/Bottom" msgstr "Dalt/Baix" #: ../../WPrefs.app/Preferences.c:349 msgid "Miscellaneous Ergonomic Preferences" msgstr "Preferències ergonòmiques diverses" #: ../../WPrefs.app/Preferences.c:350 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "Diverses opcions com texts flotants,\n" "visors de geometria, etc." #: ../../WPrefs.app/TexturePanel.c:323 msgid "Saturation" msgstr "Saturació" #: ../../WPrefs.app/TexturePanel.c:325 msgid "Brightness" msgstr "Claror" #: ../../WPrefs.app/TexturePanel.c:373 ../../WPrefs.app/TexturePanel.c:380 msgid "Hue" msgstr "Matís" #: ../../WPrefs.app/TexturePanel.c:612 msgid "Could not load the selected file: " msgstr "No s'ha pogut carregar el fitxer seleccionat: " #: ../../WPrefs.app/TexturePanel.c:666 msgid "Open Image" msgstr "Obrir imatge" #: ../../WPrefs.app/TexturePanel.c:696 msgid "The selected file does not contain a supported image." msgstr "El fitxer seleccionat no conté cap tipus d'imatge suportat." #: ../../WPrefs.app/TexturePanel.c:947 #, c-format msgid "could not load file '%s': %s" msgstr "no s'ha pogut carregar el fitxer '%s': %s" #: ../../WPrefs.app/TexturePanel.c:1066 #, c-format msgid "error creating texture %s" msgstr "error quan es creava la textura %s" #: ../../WPrefs.app/TexturePanel.c:1256 msgid "Texture Panel" msgstr "Panell de textura" #: ../../WPrefs.app/TexturePanel.c:1264 msgid "Texture Name" msgstr "Nom de la textura" #: ../../WPrefs.app/TexturePanel.c:1276 msgid "Solid Color" msgstr "Color sòlid" #: ../../WPrefs.app/TexturePanel.c:1277 msgid "Gradient Texture" msgstr "Gradient" #: ../../WPrefs.app/TexturePanel.c:1278 msgid "Simple Gradient Texture" msgstr "Gradient simple" #: ../../WPrefs.app/TexturePanel.c:1279 msgid "Textured Gradient" msgstr "Gradient amb textura" #: ../../WPrefs.app/TexturePanel.c:1280 msgid "Image Texture" msgstr "Imatge" #: ../../WPrefs.app/TexturePanel.c:1288 msgid "Default Color" msgstr "Color per omissió" #: ../../WPrefs.app/TexturePanel.c:1300 msgid "Gradient Colors" msgstr "Colors del gradient" #: ../../WPrefs.app/TexturePanel.c:1396 msgid "Direction" msgstr "Direcció" #: ../../WPrefs.app/TexturePanel.c:1424 msgid "Gradient" msgstr "Gradient" #: ../../WPrefs.app/TexturePanel.c:1442 msgid "Gradient Opacity" msgstr "Opacitat del gradient" #: ../../WPrefs.app/TexturePanel.c:1484 msgid "Image" msgstr "Imatge" #: ../../WPrefs.app/TexturePanel.c:1516 msgid "Tile" msgstr "Mosaic" #: ../../WPrefs.app/TexturePanel.c:1517 msgid "Scale" msgstr "Escalat" #: ../../WPrefs.app/TexturePanel.c:1519 msgid "Maximize" msgstr "Maximitzat" #: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 msgid "Set" msgstr "Estableix" #: ../../WPrefs.app/Themes.c:132 msgid "Stop" msgstr "Atura" #: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:203 #: ../../WPrefs.app/Themes.c:223 msgid "Download" msgstr "Descarrega" #: ../../WPrefs.app/Themes.c:171 msgid "Save Current Theme" msgstr "Desa el tema actual" #: ../../WPrefs.app/Themes.c:180 msgid "Load" msgstr "Carrega" #: ../../WPrefs.app/Themes.c:185 msgid "Install" msgstr "Instal·la" #: ../../WPrefs.app/Themes.c:193 msgid "Tile of The Day" msgstr "Mosaic del dia" #: ../../WPrefs.app/Themes.c:213 msgid "Bar of The Day" msgstr "Barra del dia" #: ../../WPrefs.app/WPrefs.c:260 msgid "Window Maker Preferences" msgstr "Preferències de Window Maker" #: ../../WPrefs.app/WPrefs.c:284 msgid "Revert Page" msgstr "Tornar pàgina" #: ../../WPrefs.app/WPrefs.c:290 msgid "Revert All" msgstr "Tornar totes" #: ../../WPrefs.app/WPrefs.c:296 msgid "Save" msgstr "Desa" #: ../../WPrefs.app/WPrefs.c:309 msgid "Balloon Help" msgstr "Ajuda flotant" #: ../../WPrefs.app/WPrefs.c:334 msgid "Window Maker Preferences Utility" msgstr "Utilitat de preferències de Window Maker" #: ../../WPrefs.app/WPrefs.c:341 #, c-format msgid "Version %s for Window Maker %s or newer" msgstr "Versió %s per a Window Maker %s o posterior" #: ../../WPrefs.app/WPrefs.c:349 msgid "Starting..." msgstr "Iniciant..." #: ../../WPrefs.app/WPrefs.c:355 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg, Largo et al\n" "More Programming: James Thompson et al" msgstr "" "Programació i disseny: Alfredo K. Kojima\n" "Art: Marco van Hylckama Vlieg, Largo et al\n" "Més programació: James Thompson et al" #: ../../WPrefs.app/WPrefs.c:455 #, c-format msgid "could not locate image file %s\n" msgstr "no s'ha pogut localitzar el fitxer d'imatge %s\n" #: ../../WPrefs.app/WPrefs.c:670 #, c-format msgid "could not load image file %s:%s" msgstr "no s'ha pogut carregar el fitxer d'imatge %s:%s" #: ../../WPrefs.app/WPrefs.c:689 msgid "Loading Window Maker configuration files..." msgstr "S'estan carregant els fitxers de configuració de Window Maker..." #: ../../WPrefs.app/WPrefs.c:693 msgid "Initializing configuration panels..." msgstr "S'estan inicialitzant els panells de configuració..." #: ../../WPrefs.app/WPrefs.c:728 msgid "" "WPrefs is free software and is distributed WITHOUT ANY\n" "WARRANTY under the terms of the GNU General Public License." msgstr "" "WPrefs és programari lliure i es distribueix sense CAP MENA\n" "DE GARANTIA sota els termes de la GNU General Public License." #: ../../WPrefs.app/WPrefs.c:758 ../../WPrefs.app/WPrefs.c:838 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Domini de Window Maker (%s) malmès!" #: ../../WPrefs.app/WPrefs.c:762 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "" "No s'ha pogut carregar el domini de Window Maker (%s) de la base de dades " "per omissió." #: ../../WPrefs.app/WPrefs.c:778 msgid "could not extract version information from Window Maker" msgstr "no s'ha pogut obtenir informació sobre la versió de Window Maker" #: ../../WPrefs.app/WPrefs.c:779 msgid "Make sure wmaker is in your search path." msgstr "Assegureu-vos que wmaker es troba en el camí de recerca." #: ../../WPrefs.app/WPrefs.c:782 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." msgstr "" "No s'ha pogut obtenir la versió de Window Maker. Assegureu-vos que està " "instal·lat correctament i que es troba en el PATH." #: ../../WPrefs.app/WPrefs.c:792 msgid "" "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." msgstr "" "No s'ha pogut obtenir la versió de Window Maker. Assegureu-vos que està " "instal·lat correctament i que el lloc on està instal·lat es troba en la " "variable d'entorn PATH." #: ../../WPrefs.app/WPrefs.c:799 #, c-format msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "WPrefs només suporta Window Maker 0.18.0 o posterior.\n" "La versió instal·lada és %i.%i.%i\n" #: ../../WPrefs.app/WPrefs.c:806 #, 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, que està instal·lat en el sistema, no està suportat " "totalment per aquesta versió de WPrefs." #: ../../WPrefs.app/WPrefs.c:819 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr "no s'ha pogut executar \"%s --global_defaults_path\"." #: ../../WPrefs.app/WPrefs.c:842 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "No s'ha pogut carregar el domini global de Window Maker (%s)." #: ../../WPrefs.app/WPrefs.c:1091 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "valor de velocitat incorrecte a l'opció %s.\n" "S'usa el valor per omissió \"Medium\"" #: ../../WPrefs.app/WindowHandling.c:141 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "" "valor %s incorrecte a l'opció WindowPlacement. S'usa el valor per omissió" #: ../../WPrefs.app/WindowHandling.c:163 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "" "dada no vàlida a l'opció WindowPlaceOrigin. S'usa el valor per omissió (0,0)" #: ../../WPrefs.app/WindowHandling.c:243 msgid "Window Placement" msgstr "Ubicació de les finestres" #: ../../WPrefs.app/WindowHandling.c:244 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "Com disposar les finestres quan\n" "apareixen per primer cop en pantalla." #: ../../WPrefs.app/WindowHandling.c:250 msgid "Automatic" msgstr "Automàtic" #: ../../WPrefs.app/WindowHandling.c:251 msgid "Random" msgstr "Aleatori" #: ../../WPrefs.app/WindowHandling.c:252 msgid "Manual" msgstr "Manual" #: ../../WPrefs.app/WindowHandling.c:253 msgid "Cascade" msgstr "En cascada" #: ../../WPrefs.app/WindowHandling.c:254 msgid "Smart" msgstr "Intel·ligent" #: ../../WPrefs.app/WindowHandling.c:260 msgid "Placement Origin" msgstr "Ubicació original" #: ../../WPrefs.app/WindowHandling.c:321 msgid "Opaque Move" msgstr "Moviment opac" #: ../../WPrefs.app/WindowHandling.c:322 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "Si s'ha de moure o no el contingut d'una finestra\n" "quan és arrossegada o només es mostra un marc.\n" #: ../../WPrefs.app/WindowHandling.c:361 msgid "When maximizing..." msgstr "Quan es maximitza..." #: ../../WPrefs.app/WindowHandling.c:366 msgid "...do not cover icons" msgstr "...no cobrir les icones" #: ../../WPrefs.app/WindowHandling.c:372 msgid "...do not cover dock" msgstr "..no cobrir el moll" #: ../../WPrefs.app/WindowHandling.c:381 msgid "Edge Resistance" msgstr "Resistència dels marges" #: ../../WPrefs.app/WindowHandling.c:383 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "La resistència dels marges és el factor amb que\n" "una finestra es \"resisteix\" a ser moguda fora de\n" "la pantalla, o contra altres finestres." #: ../../WPrefs.app/WindowHandling.c:402 msgid "Resist" msgstr "Oposa" #: ../../WPrefs.app/WindowHandling.c:407 msgid "Attract" msgstr "Atreu" #: ../../WPrefs.app/WindowHandling.c:423 msgid "" "Open dialogs in same workspace\n" "as their owners" msgstr "" "Obrir els quadres de diàleg a la mateixa\n" "àrea de treball que els seus propietaris." #: ../../WPrefs.app/WindowHandling.c:450 msgid "Window Handling Preferences" msgstr "Preferències d'administració de finestres" #: ../../WPrefs.app/WindowHandling.c:452 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "Opcions d'administració de finestres. Estil de\n" "posicionament inicial, resistència a ser mogudes\n" "fora dels marges, moviment opac, et cetera." #: ../../WPrefs.app/Workspace.c:176 msgid "Workspace Navigation" msgstr "Navegació entre àrees de treball" #: ../../WPrefs.app/Workspace.c:183 msgid "" "wrap to the first workspace after the\n" "last workspace." msgstr "tornar a la primera àrea després de l'última" #: ../../WPrefs.app/Workspace.c:205 msgid "switch workspaces while dragging windows." msgstr "passar a l'àrea del costat en arrossegar finestres fora dels marges" #: ../../WPrefs.app/Workspace.c:227 msgid "automatically create new workspaces." msgstr "crear noves àrees de treball automàticament" #: ../../WPrefs.app/Workspace.c:250 msgid "" "Position of workspace\n" "name display" msgstr "" "Posició del nom de\n" "l'àrea de treball" #: ../../WPrefs.app/Workspace.c:269 msgid "Disable" msgstr "Deshabilitat" #: ../../WPrefs.app/Workspace.c:271 msgid "Top" msgstr "Dalt" #: ../../WPrefs.app/Workspace.c:272 msgid "Bottom" msgstr "Baix" #: ../../WPrefs.app/Workspace.c:273 msgid "Top/Left" msgstr "Dalt/Esquerra" #: ../../WPrefs.app/Workspace.c:274 msgid "Top/Right" msgstr "Dalt/Dreta" #: ../../WPrefs.app/Workspace.c:275 msgid "Bottom/Left" msgstr "Baix/Esquerra" #: ../../WPrefs.app/Workspace.c:276 msgid "Bottom/Right" msgstr "Baix/Dreta" #: ../../WPrefs.app/Workspace.c:284 msgid "Dock/Clip" msgstr "Moll/Clip" #: ../../WPrefs.app/Workspace.c:303 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "Habilita o deshabilita el Moll d'aplicacions\n" "(aquesta barra vertical amb icones que hi ha\n" "a un costat de la pantalla)." #: ../../WPrefs.app/Workspace.c:324 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "Habilita o deshabilita el Clip (aquesta cosa\n" "que té una icona amb una imatge d'un clip)." #: ../../WPrefs.app/Workspace.c:364 msgid "Workspace Preferences" msgstr "Preferències d'àrea de treball" #: ../../WPrefs.app/Workspace.c:366 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "Funcions de navegació entre àrees de treball. També podeu\n" "habilitar o deshabilitar tant el Moll com el Clip aquí." #: ../../WPrefs.app/imagebrowser.c:95 msgid "View" msgstr "Veure" #: ../../WPrefs.app/main.c:59 #, c-format msgid "usage: %s [options]\n" msgstr "sintaxi: %s [opcions]\n" #: ../../WPrefs.app/main.c:60 msgid "options:" msgstr "opcions:" #: ../../WPrefs.app/main.c:61 msgid " -display <display>\tdisplay to be used" msgstr " -display <display>\tpantalla a utilitzar" #: ../../WPrefs.app/main.c:62 msgid " --version\t\tprint version number and exit" msgstr " --version\t\tmostra la versió i surt" #: ../../WPrefs.app/main.c:63 msgid " --help\t\tprint this message and exit" msgstr " --help\t\tmostra aquest missatge i surt" #: ../../WPrefs.app/main.c:122 #, c-format msgid "too few arguments for %s" msgstr "falten arguments per a %s" #: ../../WPrefs.app/main.c:144 msgid "X server does not support locale" msgstr "el servidor X no suporta el local" #: ../../WPrefs.app/main.c:147 msgid "cannot set locale modifiers" msgstr "no s'han pogut establir els modificadors de local" #: ../../WPrefs.app/main.c:153 #, c-format msgid "could not open display %s" msgstr "no s'ha pogut obrir la pantalla %s" #: ../../WPrefs.app/main.c:161 msgid "could not initialize application" msgstr "no s'ha pogut inicialitzar l'aplicació" #~ msgid "- Custom -" #~ msgstr "- Personalitzat -" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/README�������������������������������������������������������������0000644�0001750�0001750�00000003405�12214432632�014246� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ General instructions for translating po files can be found in the po/README directory in the top of the WindowMaker source tree. To update one of the WPrefs.app translations (e.g. the German) do this: 1) make WPrefs.pot 2) edit the file WPrefs.pot, adding new translated strings or correcting previous entries 3) msgmerge de.po WPrefs.pot > de.po.new 4) After checking de.po.new is OK, rename it to de.po to overwrite the previous file. All files are now in UTF-8 File Language Current Maintainer ------------------------------------------------------------------------------ pt.po Portuguese Eliphas Levy Theodoro <eliphas@conectiva.com.br> hr.po Croatian Toni Biliæ <tbilic@oliver.efos.hr> fr.po French Bastien NOCERA <hadess@writeme.com> Hadess <hadess@infonie.fr> Antoine Hulin <antoine@origan.fdn.org> ko.po Korean Byeong-Chan Kim <redhands@linux.sarang.net> cs.po Czech Jiri Hnidek <Jiri.Hnidek@vslib.cz> ja.po Japanese Kazuhide Takahashi <kazu@dgra.ne.jp> Takeo Hashimoto <HashimotoTakeo@mac.com> zh_TW.Big5.po Chinese Li Wei Jih <lwj@manufacture.com.tw> zh_CN.po Chinese Wang Jian <larkw@263.net> es.po Spanish Alvaro Herrera <alvherre@webhost.cl> fi.po Finnish Tomi Kajala <tomi@iki.fi> it.po Italian Michele Campeotto <micampe@f2s.com> ru.po Russian Igor P. Roboul <igor@srcso.sochi.su> de.po German Torsten Marek <torsten.marek@vbdnet.de> Bernd Eggert <Bernd.Eggert@t-online.de> Guido Scholz <guido.scholz@bayernline.de> hu.po Hungarian Horvath Szabolcs <horvathsz@penguinpowered.com> bg.po Bulgarian Slavei Karadjov <slaff@exco.net> Anton Zinoviev <zinoviev@debian.org> sk.po Slovak Jan 'judas' Tomka <judas@linux.sk> et.po Estonian Ivar Smolin <okul@linux.ee> ca.po Catalan Ernest Adrogué <eadrogue@gmx.net> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/zh_CN.po�����������������������������������������������������������0000644�0001750�0001750�00000143667�12214432632�014746� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) 1999 Free Software Foundation, Inc. # Wang Jian <larkw@263.net> , 1999.4 # msgid "" msgstr "" "Project-Id-Version: Window Maker-0.51.0\n" "POT-Creation-Date: 1999-07-05 00:48+0800\n" "PO-Revision-Date: 1999-07-05 23:20+0800\n" "Last-Translator: Wang Jian <larkw@263.net>\n" "Language-Team: chinese <zh@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Translator: Wang Jian <larkw@263.net>\n" #: ../../WPrefs.app/main.c:74 #, c-format msgid "usage: %s [options]\n" msgstr "用法: %s [选项]\n" #: ../../WPrefs.app/main.c:75 msgid "options:" msgstr "选项:" #: ../../WPrefs.app/main.c:76 msgid " -display <display>\tdisplay to be used" msgstr " -display <display>\tè¦ä½¿ç”¨çš„æ˜¾ç¤ºæœåС噍" #: ../../WPrefs.app/main.c:77 msgid " --version\t\tprint version number and exit" msgstr " --version\t\t显示版本å·åŽé€€å‡º" #: ../../WPrefs.app/main.c:78 msgid " --help\t\tprint this message and exit" msgstr " --help\t\t显示本信æ¯åŽé€€å‡º" #: ../../WPrefs.app/main.c:137 #, c-format msgid "too few arguments for %s" msgstr "%s çš„å‚æ•°å¤ªå°‘" #: ../../WPrefs.app/main.c:159 msgid "X server does not support locale" msgstr "X æœåС噍䏿”¯æŒåœ°åŒºè®¾ç½®" #: ../../WPrefs.app/main.c:162 msgid "cannot set locale modifiers" msgstr "ä¸èƒ½è®¾ç½®åœ°åŒºè®¾ç½®ä¿®é¥°ç¬¦" #: ../../WPrefs.app/main.c:168 #, c-format msgid "could not open display %s" msgstr "ä¸èƒ½æ‰“开显示æœåС噍 %s" #: ../../WPrefs.app/main.c:176 msgid "could not initialize application" msgstr "ä¸èƒ½åˆå§‹åŒ–应用程åº" #: ../../WPrefs.app/WPrefs.c:254 msgid "Window Maker Preferences" msgstr "WindowMaker 设置" #: ../../WPrefs.app/WPrefs.c:278 msgid "Revert Page" msgstr "还原页é¢" #: ../../WPrefs.app/WPrefs.c:284 msgid "Revert All" msgstr "全部还原" #: ../../WPrefs.app/WPrefs.c:290 msgid "Save" msgstr "ä¿å­˜" #: ../../WPrefs.app/Appearance.c:2227 ../../WPrefs.app/WPrefs.c:296 msgid "Close" msgstr "关闭" #: ../../WPrefs.app/WPrefs.c:303 msgid "Balloon Help" msgstr "浮动帮助" #: ../../WPrefs.app/WPrefs.c:328 msgid "Window Maker Preferences Utility" msgstr "WindowMaker 设置程åº" #: ../../WPrefs.app/WPrefs.c:335 #, c-format msgid "Version %s for Window Maker %s or newer" msgstr "版本 %s, 用于 WindowMaker %s 或更新的版本" #: ../../WPrefs.app/WPrefs.c:343 msgid "Starting..." msgstr "正在å¯åЍ..." #: ../../WPrefs.app/WPrefs.c:349 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg\n" "More Programming: James Thompson" msgstr "" "程åº/设计:Alfredo K. Kojima\n" "美术:Marco van Hylckama Vlieg\n" "程åºï¼šJames Thompson" #: ../../WPrefs.app/WPrefs.c:437 #, c-format msgid "could not locate image file %s\n" msgstr "ä¸èƒ½å®šä½å›¾åƒæ–‡ä»¶ %s\n" #: ../../WPrefs.app/Appearance.c:1895 ../../WPrefs.app/Configurations.c:242 #: ../../WPrefs.app/Configurations.c:254 ../../WPrefs.app/Focus.c:316 #: ../../WPrefs.app/Focus.c:327 ../../WPrefs.app/MenuPreferences.c:137 #: ../../WPrefs.app/MenuPreferences.c:148 #: ../../WPrefs.app/MenuPreferences.c:176 #: ../../WPrefs.app/MenuPreferences.c:191 ../../WPrefs.app/MouseSettings.c:606 #: ../../WPrefs.app/MouseSettings.c:617 ../../WPrefs.app/MouseSettings.c:673 #: ../../WPrefs.app/MouseSettings.c:688 ../../WPrefs.app/MouseSettings.c:704 #: ../../WPrefs.app/WPrefs.c:460 ../../WPrefs.app/WPrefs.c:477 #, c-format msgid "could not load icon file %s" msgstr "ä¸èƒ½è½½å…¥å›¾æ ‡æ–‡ä»¶ %s" #: ../../WPrefs.app/WPrefs.c:553 #, c-format msgid "could not load image file %s:%s" msgstr "ä¸èƒ½è½½å…¥å›¾åƒæ–‡ä»¶ %s:%s" #: ../../WPrefs.app/WPrefs.c:572 msgid "Loading Window Maker configuration files..." msgstr "载入Window Makeré…置文件..." #: ../../WPrefs.app/WPrefs.c:576 msgid "Initializing configuration panels..." msgstr "åˆå§‹åŒ–è®¾ç½®é¢æ¿..." #: ../../WPrefs.app/WPrefs.c:607 msgid "" "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." msgstr "" "WPrefs 是自由软件,在GNU General Public\n" "Licenseæ¡æ¬¾ä¸‹æ— ä»»ä½•ä¿è¯åœ°åˆ†å‘.\n" "这个程åºä¸­çš„图标以OpenContent\n" "æ–¹å¼æŽˆæƒ." #: ../../WPrefs.app/WPrefs.c:638 ../../WPrefs.app/WPrefs.c:708 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Window Maker 域(%s)å·²æŸå!" #: ../../WPrefs.app/Menu.c:1384 ../../WPrefs.app/MouseSettings.c:149 #: ../../WPrefs.app/MouseSettings.c:169 ../../WPrefs.app/Text.c:183 #: ../../WPrefs.app/TexturePanel.c:608 ../../WPrefs.app/TexturePanel.c:686 #: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:639 #: ../../WPrefs.app/WPrefs.c:644 ../../WPrefs.app/WPrefs.c:658 #: ../../WPrefs.app/WPrefs.c:668 ../../WPrefs.app/WPrefs.c:678 #: ../../WPrefs.app/WPrefs.c:709 ../../WPrefs.app/WPrefs.c:714 msgid "Error" msgstr "错误" #: ../../WPrefs.app/Menu.c:1384 ../../WPrefs.app/MenuGuru.c:119 #: ../../WPrefs.app/MenuGuru.c:126 ../../WPrefs.app/MenuGuru.c:140 #: ../../WPrefs.app/MouseSettings.c:151 ../../WPrefs.app/MouseSettings.c:171 #: ../../WPrefs.app/Text.c:183 ../../WPrefs.app/TexturePanel.c:609 #: ../../WPrefs.app/TexturePanel.c:688 ../../WPrefs.app/TexturePanel.c:1520 #: ../../WPrefs.app/Themes.c:98 ../../WPrefs.app/WPrefs.c:639 #: ../../WPrefs.app/WPrefs.c:644 ../../WPrefs.app/WPrefs.c:660 #: ../../WPrefs.app/WPrefs.c:672 ../../WPrefs.app/WPrefs.c:678 #: ../../WPrefs.app/WPrefs.c:685 ../../WPrefs.app/WPrefs.c:709 #: ../../WPrefs.app/WPrefs.c:714 msgid "OK" msgstr "确定" #: ../../WPrefs.app/WPrefs.c:642 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "ä¸èƒ½ä»Žé»˜è®¤æ•°æ®åº“载入 Window Maker 域(%s)" #: ../../WPrefs.app/WPrefs.c:655 msgid "could not extract version information from Window Maker" msgstr "ä¸èƒ½æå– Window Maker 的版本信æ¯" #: ../../WPrefs.app/WPrefs.c:656 msgid "Make sure wmaker is in your search path." msgstr "确定 wmaker 在æœç´¢è·¯å¾„中." #: ../../WPrefs.app/WPrefs.c:659 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." msgstr "ä¸èƒ½æå– Window Makeri 的版本. 确定它安装正确,并且在PATH环境å˜é‡ä¸­." #: ../../WPrefs.app/WPrefs.c:669 msgid "" "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." msgstr "" "ä¸èƒ½æå–Window Maker的版本.确定它安装正确,并且它安装的ä½ç½®åœ¨PATH环境å˜é‡ä¸­." #: ../../WPrefs.app/WPrefs.c:676 #, 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:683 #, 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:685 msgid "Warning" msgstr "警告" #: ../../WPrefs.app/WPrefs.c:690 msgid "could not run \"wmaker --global_defaults_path\"." msgstr "ä¸èƒ½è¿è¡Œ \"wmaker --global_defaults_path\"." #: ../../WPrefs.app/WPrefs.c:712 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "ä¸èƒ½è½½å…¥å…¨å±€ Window Maker域 (%s)." #: ../../WPrefs.app/WPrefs.c:961 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "%s 选项速度值错误.\n" "使用默认的中间值" #: ../../WPrefs.app/Appearance.c:1089 msgid "Select File" msgstr "选择文件" #: ../../WPrefs.app/Appearance.c:1488 msgid "Focused Window" msgstr "èšç„¦çª—å£" #: ../../WPrefs.app/Appearance.c:1492 msgid "Unfocused Window" msgstr "éžèšç„¦çª—å£" #: ../../WPrefs.app/Appearance.c:1496 msgid "Owner of Focused Window" msgstr "èšç„¦çª—å£çš„æ‹¥æœ‰è€…" #: ../../WPrefs.app/Appearance.c:1500 ../../WPrefs.app/Appearance.c:1819 msgid "Menu Title" msgstr "èœå•标题" #: ../../WPrefs.app/Appearance.c:1504 ../../WPrefs.app/Appearance.c:1506 msgid "Normal Item" msgstr "普通项" #: ../../WPrefs.app/Appearance.c:1510 msgid "Disabled Item" msgstr "失效项" #: ../../WPrefs.app/Appearance.c:1519 msgid "Highlighted" msgstr "çªå‡ºçš„" #: ../../WPrefs.app/Appearance.c:1711 msgid "Texture" msgstr "纹ç†" #: ../../WPrefs.app/Appearance.c:1720 msgid "Titlebar of Focused Window" msgstr "èšç„¦çª—å£çš„æ ‡é¢˜è¡Œ" #: ../../WPrefs.app/Appearance.c:1721 msgid "Titlebar of Unfocused Windows" msgstr "éžèšç„¦çª—å£çš„æ ‡é¢˜è¡Œ" #: ../../WPrefs.app/Appearance.c:1722 msgid "Titlebar of Focused Window's Owner" msgstr "èšç„¦çª—壿‹¥æœ‰è€…的标题行" #: ../../WPrefs.app/Appearance.c:1723 msgid "Window Resizebar" msgstr "窗å£çš„调整大å°è¾¹æ¡†" #: ../../WPrefs.app/Appearance.c:1724 msgid "Titlebar of Menus" msgstr "èœå•标题行" #: ../../WPrefs.app/Appearance.c:1725 msgid "Menu Items" msgstr "èœå•项" #: ../../WPrefs.app/Appearance.c:1726 msgid "Icon Background" msgstr "图标背景" #: ../../WPrefs.app/Appearance.c:1740 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "在你想给选中的项使用的纹ç†å›¾ä¸ŠåŒå‡»." #: ../../WPrefs.app/Appearance.c:1754 msgid "New" msgstr "新建" #: ../../WPrefs.app/Appearance.c:1758 msgid "Create a new texture." msgstr "新建纹ç†å›¾." #: ../../WPrefs.app/Appearance.c:1766 msgid "Extract..." msgstr "æå–..." #: ../../WPrefs.app/Appearance.c:1770 msgid "Extract texture(s) from a theme or a style file." msgstr "从主题或风格文件中æå–纹ç†å›¾." #: ../../WPrefs.app/Appearance.c:1780 msgid "Edit" msgstr "编辑" #: ../../WPrefs.app/Appearance.c:1783 msgid "Edit the highlighted texture." msgstr "编辑çªå‡ºæ˜¾ç¤ºçº¹ç†å›¾." #: ../../WPrefs.app/Appearance.c:1791 ../../WPrefs.app/TexturePanel.c:1308 msgid "Delete" msgstr "删除" #: ../../WPrefs.app/Appearance.c:1795 msgid "Delete the highlighted texture." msgstr "删除çªå‡ºæ˜¾ç¤ºçº¹ç†å›¾." #: ../../WPrefs.app/Appearance.c:1808 msgid "Color" msgstr "颜色" #: ../../WPrefs.app/Appearance.c:1816 msgid "Focused Window Title" msgstr "èšç„¦çª—壿 ‡é¢˜" #: ../../WPrefs.app/Appearance.c:1817 msgid "Unfocused Window Title" msgstr "éžèšç„¦çª—壿 ‡é¢˜" #: ../../WPrefs.app/Appearance.c:1818 msgid "Owner of Focused Window Title" msgstr "èšç„¦çª—壿‹¥æœ‰è€…的标题" #: ../../WPrefs.app/Appearance.c:1820 msgid "Menu Item Text" msgstr "èœå•项文字" #: ../../WPrefs.app/Appearance.c:1821 msgid "Disabled Menu Item Text" msgstr "失效èœå•项文字" #: ../../WPrefs.app/Appearance.c:1822 msgid "Menu Highlight Color" msgstr "èœå•çªå‡ºæ˜¾ç¤ºé¢œè‰²" #: ../../WPrefs.app/Appearance.c:1823 msgid "Highlighted Menu Text Color" msgstr "çªå‡ºæ˜¾ç¤ºçš„èœå•文字颜色" #: ../../WPrefs.app/Appearance.c:1860 msgid "Options" msgstr "选项" #: ../../WPrefs.app/Appearance.c:1867 msgid "Menu Style" msgstr "èœå•风格" #: ../../WPrefs.app/Appearance.c:1909 msgid "Title Alignment" msgstr "标题对é½" #: ../../WPrefs.app/Appearance.c:1916 ../../WPrefs.app/Text.c:292 msgid "Left" msgstr "é å·¦" #: ../../WPrefs.app/Appearance.c:1919 ../../WPrefs.app/Text.c:298 #: ../../WPrefs.app/TexturePanel.c:1509 msgid "Center" msgstr "居中" #: ../../WPrefs.app/Appearance.c:1922 ../../WPrefs.app/Text.c:305 msgid "Right" msgstr "é å³" #: ../../WPrefs.app/Appearance.c:2149 msgid "Appearance Preferences" msgstr "外观设置" #: ../../WPrefs.app/Appearance.c:2151 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "窗å£, èœå•和图标的背景纹ç†å›¾." #: ../../WPrefs.app/Appearance.c:2196 msgid "Extract Texture" msgstr "æå–纹ç†" #: ../../WPrefs.app/Appearance.c:2216 msgid "Textures" msgstr "纹ç†" #: ../../WPrefs.app/Appearance.c:2232 msgid "Extract" msgstr "æå–" #: ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 #: ../../WPrefs.app/MouseSettings.c:536 ../../WPrefs.app/WindowHandling.c:319 #: ../../WPrefs.app/WindowHandling.c:331 ../../WPrefs.app/Workspace.c:73 #: ../../WPrefs.app/Workspace.c:79 #, c-format msgid "could not load icon %s" msgstr "ä¸èƒ½è½½å…¥å›¾æ ‡ %s" #: ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:87 #, c-format msgid "could not process icon %s: %s" msgstr "ä¸èƒ½å¤„ç†å›¾æ ‡ %s: %s" #: ../../WPrefs.app/Configurations.c:189 ../../WPrefs.app/Workspace.c:126 #, c-format msgid "could not load image file %s" msgstr "ä¸èƒ½è½½å…¥å›¾åƒæ–‡ä»¶ %s" #: ../../WPrefs.app/Configurations.c:203 msgid "Icon Slide Speed" msgstr "图标移动速度" #: ../../WPrefs.app/Configurations.c:209 msgid "Shade Animation Speed" msgstr "窗å£å·èµ·åŠ¨ç”»é€Ÿåº¦" #: ../../WPrefs.app/Configurations.c:271 msgid "Smooth Scaling" msgstr "平滑缩放" #: ../../WPrefs.app/Configurations.c:272 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "平滑缩放的背景图åƒ, 抑制了`åƒç´ åŒ–' 效应.\n" "这会相当地é™ä½ŽèƒŒæ™¯å›¾åƒçš„载入速度." #: ../../WPrefs.app/Configurations.c:313 msgid "Titlebar Style" msgstr "标题行风格" #: ../../WPrefs.app/Configurations.c:350 msgid "Animations and Sound" msgstr "动画与音效" #: ../../WPrefs.app/Configurations.c:356 msgid "Animations" msgstr "动画" #: ../../WPrefs.app/Configurations.c:367 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "å–æ¶ˆ/å…许动画, ä¾‹å¦‚çª—å£æœ€å°åŒ–, å·èµ·æ—¶æ˜¾ç¤º\n" "的动画." #: ../../WPrefs.app/Configurations.c:375 msgid "Superfluous" msgstr "大é‡çš„" #: ../../WPrefs.app/Configurations.c:386 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to the another side\n" "and the explosion animation for undocked icons." msgstr "" "å–æ¶ˆ/å…许 `大é‡çš„' 特性和动画. 这包括\n" "嵌入器在移动到å±å¹•对边时的`幻影'和图标\n" "从嵌入器上移开时的爆炸效果." #: ../../WPrefs.app/Configurations.c:396 msgid "Sounds" msgstr "音效" #: ../../WPrefs.app/Configurations.c:407 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://www.frontiernet.net/~southgat/wmsound" msgstr "" "å–æ¶ˆ/å…è®¸åŠ¨ä½œæ—¶æ’­æ”¾å£°å“æ•ˆæžœ, 比如å·èµ·çª—å£å’Œ\n" "å…³é—­çª—å£æ—¶. 你需è¦ä¸€ä¸ªå•独分å‘çš„æ¨¡å—æ¥ä½¿ç”¨\n" "这个功能. ä½ å¯ä»¥ä»Žä»¥ä¸‹åœ°å€å¾—到:\n" "http://www.frontiernet.net/~southgat/wmsound" #: ../../WPrefs.app/Configurations.c:418 msgid "Note: sound requires a module distributed separately" msgstr "注æ„:音效需è¦ä¸€ä¸ªå•独å‘行的模å—" #: ../../WPrefs.app/Configurations.c:428 msgid "Dithering colormap for 8bpp" msgstr "使用 8bpp 颜色表时å‡å°‘颜色" #: ../../WPrefs.app/Configurations.c:430 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "åœ¨åªæ”¯æŒ 8bpp (伪彩色) 的显示上为 Window\n" "Maker ä¿ç•™çš„颜色数." #: ../../WPrefs.app/Configurations.c:437 msgid "Disable dithering in any visual/depth" msgstr "在任何visual和颜色深度时都ä¸å‡å°‘颜色" #: ../../WPrefs.app/Configurations.c:458 msgid "More colors for applications" msgstr "把更多颜色ä¿ç•™ç»™åº”用程åº" #: ../../WPrefs.app/Configurations.c:465 msgid "More colors for WindowMaker" msgstr "WindowMaker 使用更多颜色" #: ../../WPrefs.app/Configurations.c:520 msgid "Other Configurations" msgstr "å…¶ä»–é…ç½®" #: ../../WPrefs.app/Configurations.c:522 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker in 8bit displays." msgstr "" "动画速度, 标题行风格, å„ç§é€‰é¡¹å’Œåœ¨ 8bit 显示上\n" "为 Window Maker ä¿ç•™çš„颜色数." #: ../../WPrefs.app/Expert.c:74 msgid "" "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." msgstr "å–æ¶ˆå¾®åž‹çª—å£(最å°åŒ–窗å£çš„图标)以便和 KDE 或 GNOME 一起使用." #: ../../WPrefs.app/Expert.c:75 msgid "Do not set non-WindowMaker specific parameters (do not use xset)" msgstr "ä¸è®¾ç½®éž WindowMaker ä½¿ç”¨çš„å‚æ•°(ä¸ä½¿ç”¨xset)" #: ../../WPrefs.app/Expert.c:76 msgid "Automatically save session when exiting WindowMaker" msgstr "退出 WindowMaker 时自动ä¿å­˜ä¼šè¯" #: ../../WPrefs.app/Expert.c:77 msgid "Use SaveUnder in window frames, icons, menus and other objects" msgstr "åœ¨çª—å£æ¡†æž¶,图标,èœå•和其它对象中使用 SaveUnder 特性" #: ../../WPrefs.app/Expert.c:78 msgid "Disable cycling color highlighting of icons." msgstr "å–æ¶ˆå›¾æ ‡çš„循环色彩çªå‡º" #: ../../WPrefs.app/Expert.c:110 msgid "Expert User Preferences" msgstr "熟练用户设置" #: ../../WPrefs.app/Expert.c:112 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "给那些知é“他们正在åšä»€ä¹ˆçš„人使用...\n" "å¦å¤–还有其他的æ‚项." #: ../../WPrefs.app/Focus.c:83 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "FocusModei 选项值 %s 错误. 使用默认的手工方å¼" #: ../../WPrefs.app/Focus.c:98 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "ColormapMode 选项值 %s 错误.使用默认的自动方å¼" #: ../../WPrefs.app/Focus.c:196 msgid "" "Click on the window to set\n" "keyboard input focus." msgstr "" "在窗å£ä¸Šç‚¹å‡»ä¸€ä¸‹ä»¥\n" "设置键盘输入焦点." #: ../../WPrefs.app/Focus.c:200 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:205 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:249 msgid "Input Focus Mode" msgstr "输入焦点模å¼" #: ../../WPrefs.app/Focus.c:254 msgid "Click window to focus" msgstr "点击窗å£èŽ·å¾—ç„¦ç‚¹" #: ../../WPrefs.app/Focus.c:255 msgid "Focus follows mouse" msgstr "焦点跟éšé¼ æ ‡" #: ../../WPrefs.app/Focus.c:256 msgid "\"Sloppy\" focus" msgstr "\"Sloppy\" 焦点" #: ../../WPrefs.app/Focus.c:271 msgid "Install colormap in the window..." msgstr "在窗å£é‡Œå®‰è£…颜色表..." #: ../../WPrefs.app/Focus.c:276 msgid "...that has the input focus." msgstr "...获得输入焦点的窗å£." #: ../../WPrefs.app/Focus.c:281 msgid "...that is under the mouse pointer." msgstr "...鼠标下é¢çš„窗å£." #: ../../WPrefs.app/Focus.c:290 msgid "Automatic Window Raise Delay" msgstr "自动å‡èµ·çª—å£çš„延迟" #: ../../WPrefs.app/Focus.c:347 msgid "msec" msgstr "毫秒" #: ../../WPrefs.app/Focus.c:364 msgid "Do not let applications receive the click used to focus windows." msgstr "ä¸è®©åº”用程åºå¾—到用æ¥è®¾ç½®çª—å£ç„¦ç‚¹çš„鼠标按键动作." #: ../../WPrefs.app/Focus.c:370 msgid "Automatically focus new windows." msgstr "新窗å£è‡ªåŠ¨å¾—åˆ°ç„¦ç‚¹." #: ../../WPrefs.app/Focus.c:391 msgid "Window Focus Preferences" msgstr "窗å£ç„¦ç‚¹è®¾ç½®" #: ../../WPrefs.app/Focus.c:393 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "键盘输入焦点切æ¢çš„ç­–ç•¥, 8使˜¾ç¤ºçš„颜色表切æ¢ç­–略和\n" "其他相关的选项." #: ../../WPrefs.app/Icons.c:182 msgid "Icon Positioning" msgstr "图标放置" #: ../../WPrefs.app/Icons.c:229 msgid "Iconification Animation" msgstr "图标化时动画" #: ../../WPrefs.app/Icons.c:240 msgid "Shrinking/Zooming" msgstr "缩å°/放大" #: ../../WPrefs.app/Icons.c:241 msgid "Spinning/Twisting" msgstr "回转/转å‘" #: ../../WPrefs.app/Icons.c:242 msgid "3D-flipping" msgstr "立体翻转" #: ../../WPrefs.app/Icons.c:243 msgid "None" msgstr "æ— " #: ../../WPrefs.app/Icons.c:256 msgid "Auto-arrange icons" msgstr "自动排列图标" #: ../../WPrefs.app/Icons.c:258 msgid "Keep icons and miniwindows arranged all the time." msgstr "总是让图标和å°çª—å£æŽ’åˆ—æ•´é½." #: ../../WPrefs.app/Icons.c:264 msgid "Omnipresent miniwindows" msgstr "最å°çª—å£åœ¨æ‰€æœ‰å·¥ä½œåŒº" #: ../../WPrefs.app/Icons.c:266 msgid "Make miniwindows be present in all workspaces." msgstr "让å°çª—å£åœ¨æ‰€æœ‰çš„工作区都有." #: ../../WPrefs.app/Icons.c:275 msgid "Icon Size" msgstr "图标大å°" #: ../../WPrefs.app/Icons.c:277 msgid "The size of the dock/application icon and miniwindows" msgstr "嵌入应用程åºå›¾æ ‡å’Œå°çª—å£çš„大å°" #: ../../WPrefs.app/Icons.c:347 msgid "Icon Preferences" msgstr "图标设置" #: ../../WPrefs.app/Icons.c:349 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "图标/å°çª—å£å¤„ç†é€‰é¡¹. 图标放置区域, 图标大å°,\n" "最å°åŒ–时的动画风格." #: ../../WPrefs.app/KeyboardSettings.c:74 msgid "Initial Key Repeat" msgstr "起始按键é‡å¤" #: ../../WPrefs.app/KeyboardSettings.c:115 msgid "Key Repeat Rate" msgstr "按键é‡å¤é€Ÿçއ" #: ../../WPrefs.app/KeyboardSettings.c:155 msgid "Type here to test" msgstr "在此输入测试" #: ../../WPrefs.app/KeyboardSettings.c:174 msgid "Keyboard Preferences" msgstr "键盘设置" #: ../../WPrefs.app/KeyboardSettings.c:176 msgid "Not done" msgstr "没有完æˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:185 ../../WPrefs.app/Menu.c:1010 #: ../../WPrefs.app/MenuGuru.c:263 ../../WPrefs.app/TexturePanel.c:1526 msgid "Cancel" msgstr "å–æ¶ˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:186 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "按下想è¦çš„å¿«æ·é”®æˆ–按下[å–æ¶ˆ]ä»¥åœæ­¢æ•获." #: ../../WPrefs.app/KeyboardShortcuts.c:206 #: ../../WPrefs.app/KeyboardShortcuts.c:454 ../../WPrefs.app/Menu.c:1022 #: ../../WPrefs.app/Menu.c:1245 msgid "Capture" msgstr "æ•获" #: ../../WPrefs.app/KeyboardShortcuts.c:207 #: ../../WPrefs.app/KeyboardShortcuts.c:461 msgid "Click Capture to interactively define the shortcut key." msgstr "按下[æ•获]å¯äº¤äº’定义快æ·é”®." #: ../../WPrefs.app/KeyboardShortcuts.c:361 msgid "Actions" msgstr "动作" #: ../../WPrefs.app/KeyboardShortcuts.c:377 msgid "Open applications menu" msgstr "打开应用程åºèœå•" #: ../../WPrefs.app/KeyboardShortcuts.c:378 msgid "Open window list menu" msgstr "打开窗å£åˆ—表èœå•" #: ../../WPrefs.app/KeyboardShortcuts.c:379 msgid "Open window commands menu" msgstr "打开窗å£å‘½ä»¤èœå•" #: ../../WPrefs.app/KeyboardShortcuts.c:380 msgid "Hide active application" msgstr "éšè—活动的应用程åº" #: ../../WPrefs.app/KeyboardShortcuts.c:381 msgid "Miniaturize active window" msgstr "最å°åŒ–活动窗å£" #: ../../WPrefs.app/KeyboardShortcuts.c:382 msgid "Close active window" msgstr "关闭活动窗å£" #: ../../WPrefs.app/KeyboardShortcuts.c:383 msgid "Maximize active window" msgstr "最大化活动窗å£" #: ../../WPrefs.app/KeyboardShortcuts.c:384 msgid "Maximize active window vertically" msgstr "垂直最大化活动窗å£" #: ../../WPrefs.app/KeyboardShortcuts.c:385 msgid "Raise active window" msgstr "æŠŠæ´»åŠ¨çª—å£æ”¾åœ¨æœ€å‰" #: ../../WPrefs.app/KeyboardShortcuts.c:386 msgid "Lower active window" msgstr "æŠŠæ´»åŠ¨çª—å£æ”¾åœ¨æœ€åŽ" #: ../../WPrefs.app/KeyboardShortcuts.c:387 msgid "Raise/Lower window under mouse pointer" msgstr "æŠŠé¼ æ ‡ä¸‹çš„çª—å£æ”¾ç½®åœ¨æœ€å‰/最åŽ" #: ../../WPrefs.app/KeyboardShortcuts.c:388 msgid "Shade active window" msgstr "å·èµ·æ´»åŠ¨çª—å£" #: ../../WPrefs.app/KeyboardShortcuts.c:389 msgid "Move/Resize active window" msgstr "移动/调整活动窗å£å¤§å°" #: ../../WPrefs.app/KeyboardShortcuts.c:390 msgid "Select active window" msgstr "选喿´»åŠ¨çª—å£" #: ../../WPrefs.app/KeyboardShortcuts.c:391 msgid "Focus next window" msgstr "焦点移至下一个窗å£" #: ../../WPrefs.app/KeyboardShortcuts.c:392 msgid "Focus previous window" msgstr "焦点移至上一个窗å£" #: ../../WPrefs.app/KeyboardShortcuts.c:393 msgid "Switch to next workspace" msgstr "切æ¢è‡³ä¸‹ä¸€ä¸ªå·¥ä½œåŒº" #: ../../WPrefs.app/KeyboardShortcuts.c:394 msgid "Switch to previous workspace" msgstr "切æ¢è‡³ä¸Šä¸€ä¸ªå·¥ä½œåŒº" #: ../../WPrefs.app/KeyboardShortcuts.c:395 msgid "Switch to next ten workspaces" msgstr "切æ¢è‡³åŽå个工作区" #: ../../WPrefs.app/KeyboardShortcuts.c:396 msgid "Switch to previous ten workspaces" msgstr "切æ¢è‡³å‰å个工作区" #: ../../WPrefs.app/KeyboardShortcuts.c:397 msgid "Switch to workspace 1" msgstr "切æ¢è‡³å·¥ä½œåŒº 1" #: ../../WPrefs.app/KeyboardShortcuts.c:398 msgid "Switch to workspace 2" msgstr "切æ¢è‡³å·¥ä½œåŒº 2" #: ../../WPrefs.app/KeyboardShortcuts.c:399 msgid "Switch to workspace 3" msgstr "切æ¢è‡³å·¥ä½œåŒº 3" #: ../../WPrefs.app/KeyboardShortcuts.c:400 msgid "Switch to workspace 4" msgstr "切æ¢è‡³å·¥ä½œåŒº 4" #: ../../WPrefs.app/KeyboardShortcuts.c:401 msgid "Switch to workspace 5" msgstr "切æ¢è‡³å·¥ä½œåŒº 5" #: ../../WPrefs.app/KeyboardShortcuts.c:402 msgid "Switch to workspace 6" msgstr "切æ¢è‡³å·¥ä½œåŒº 6" #: ../../WPrefs.app/KeyboardShortcuts.c:403 msgid "Switch to workspace 7" msgstr "切æ¢è‡³å·¥ä½œåŒº 7" #: ../../WPrefs.app/KeyboardShortcuts.c:404 msgid "Switch to workspace 8" msgstr "切æ¢è‡³å·¥ä½œåŒº 8" #: ../../WPrefs.app/KeyboardShortcuts.c:405 msgid "Switch to workspace 9" msgstr "切æ¢è‡³å·¥ä½œåŒº 9" #: ../../WPrefs.app/KeyboardShortcuts.c:406 msgid "Switch to workspace 10" msgstr "切æ¢è‡³å·¥ä½œåŒº 10" #: ../../WPrefs.app/KeyboardShortcuts.c:407 msgid "Shortcut for window 1" msgstr "çª—å£ 1 的快æ·é”®" #: ../../WPrefs.app/KeyboardShortcuts.c:408 msgid "Shortcut for window 2" msgstr "çª—å£ 2 的快æ·é”®" #: ../../WPrefs.app/KeyboardShortcuts.c:409 msgid "Shortcut for window 3" msgstr "çª—å£ 3 的快æ·é”®" #: ../../WPrefs.app/KeyboardShortcuts.c:410 msgid "Shortcut for window 4" msgstr "çª—å£ 4 的快æ·é”®" #: ../../WPrefs.app/KeyboardShortcuts.c:412 msgid "Shortcut for window 5" msgstr "çª—å£ 5 的快æ·é”®" #: ../../WPrefs.app/KeyboardShortcuts.c:413 msgid "Shortcut for window 6" msgstr "çª—å£ 6 的快æ·é”®" #: ../../WPrefs.app/KeyboardShortcuts.c:414 msgid "Shortcut for window 7" msgstr "çª—å£ 7 的快æ·é”®" #: ../../WPrefs.app/KeyboardShortcuts.c:415 msgid "Shortcut for window 8" msgstr "çª—å£ 8 的快æ·é”®" #: ../../WPrefs.app/KeyboardShortcuts.c:416 msgid "Shortcut for window 9" msgstr "çª—å£ 9 的快æ·é”®" #: ../../WPrefs.app/KeyboardShortcuts.c:417 msgid "Shortcut for window 10" msgstr "çª—å£ 10 的快æ·é”®" #: ../../WPrefs.app/KeyboardShortcuts.c:419 msgid "Raise Clip" msgstr "放置夹å­åœ¨æœ€å‰" #: ../../WPrefs.app/KeyboardShortcuts.c:420 msgid "Lower Clip" msgstr "放置夹å­åœ¨åŽ" #: ../../WPrefs.app/KeyboardShortcuts.c:421 msgid "Raise/Lower Clip" msgstr "æŠŠå¤¹å­æ”¾ç½®åœ¨å‰/åŽ" #: ../../WPrefs.app/KeyboardShortcuts.c:423 msgid "Toggle keyboard language" msgstr "切æ¢é”®ç›˜è¯­è¨€" #: ../../WPrefs.app/KeyboardShortcuts.c:437 ../../WPrefs.app/Menu.c:1234 msgid "Shortcut" msgstr "å¿«æ·é”®" #: ../../WPrefs.app/KeyboardShortcuts.c:448 msgid "Clear" msgstr "清除" #: ../../WPrefs.app/KeyboardShortcuts.c:509 msgid "Keyboard Shortcut Preferences" msgstr "å¿«æ·é”®è®¾ç½®" #: ../../WPrefs.app/KeyboardShortcuts.c:511 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "改å˜åŠ¨ä½œçš„é”®ç›˜å¿«æ·é”®, 例如改å˜å·¥ä½œç©ºé—´å’Œ\n" "打开èœå•." #: ../../WPrefs.app/Menu.c:422 msgid "Window Manager" msgstr "窗å£ç®¡ç†å™¨" #: ../../WPrefs.app/Menu.c:424 msgid "Program to Open Files" msgstr "打开文件的程åº" #: ../../WPrefs.app/Menu.c:426 msgid "Command to Execute" msgstr "è¦æ‰§è¡Œçš„命令" #: ../../WPrefs.app/Menu.c:428 ../../WPrefs.app/Menu.c:1221 msgid "Program to Run" msgstr "è¦è¿è¡Œçš„程åº" #: ../../WPrefs.app/Menu.c:477 ../../WPrefs.app/Menu.c:478 #, c-format msgid "New Command %i" msgstr "新建命令 %i" #: ../../WPrefs.app/Menu.c:485 msgid "New Submenu" msgstr "新建å­èœå•" #: ../../WPrefs.app/Menu.c:490 msgid "External Menu" msgstr "外部èœå•" #: ../../WPrefs.app/Menu.c:497 msgid "Workspaces" msgstr "工作区" #: ../../WPrefs.app/Menu.c:1102 ../../WPrefs.app/Menu.c:1117 msgid "Commands" msgstr "命令" #: ../../WPrefs.app/Menu.c:1103 ../../WPrefs.app/Menu.c:1118 msgid "Add Command" msgstr "添加命令" #: ../../WPrefs.app/Menu.c:1104 ../../WPrefs.app/Menu.c:1119 msgid "Add Submenu" msgstr "添加å­èœå•" #: ../../WPrefs.app/Menu.c:1105 ../../WPrefs.app/Menu.c:1120 msgid "Add External Menu" msgstr "添加外部èœå•" #: ../../WPrefs.app/Menu.c:1106 ../../WPrefs.app/Menu.c:1121 msgid "Add Workspace Menu" msgstr "添加工作区èœå•" #: ../../WPrefs.app/Menu.c:1107 ../../WPrefs.app/Menu.c:1122 msgid "Remove Item" msgstr "删除项目" #: ../../WPrefs.app/Menu.c:1108 ../../WPrefs.app/Menu.c:1123 msgid "Cut Item" msgstr "剪切项目" #: ../../WPrefs.app/Menu.c:1109 ../../WPrefs.app/Menu.c:1124 msgid "Copy Item" msgstr "å¤åˆ¶é¡¹ç›®" #: ../../WPrefs.app/Menu.c:1110 ../../WPrefs.app/Menu.c:1125 msgid "Paste Item" msgstr "粘贴项目" #: ../../WPrefs.app/Menu.c:1156 msgid "Label" msgstr "标签" #: ../../WPrefs.app/Menu.c:1169 msgid "Command" msgstr "命令" #: ../../WPrefs.app/Menu.c:1174 msgid "Run Program" msgstr "è¿è¡Œç¨‹åº" #: ../../WPrefs.app/Menu.c:1175 msgid "Execute Shell Command" msgstr "执行 shell 命令" #: ../../WPrefs.app/Menu.c:1176 msgid "Arrange Icons" msgstr "排列图标" #: ../../WPrefs.app/Menu.c:1177 msgid "Hide Others" msgstr "éšè—å…¶ä»–" #: ../../WPrefs.app/Menu.c:1178 msgid "Show All Windows" msgstr "显示所有窗å£" #: ../../WPrefs.app/Menu.c:1179 msgid "Exit WindowMaker" msgstr "退出 WindowMaker" #: ../../WPrefs.app/Menu.c:1180 msgid "Exit X Session" msgstr "退出 X 会è¯" #: ../../WPrefs.app/Menu.c:1181 msgid "Start Window Manager" msgstr "å¯åŠ¨çª—å£ç®¡ç†å™¨" #: ../../WPrefs.app/Menu.c:1182 msgid "Restart WindowMaker" msgstr "釿–°å¯åЍ WindowMaker" #: ../../WPrefs.app/Menu.c:1183 msgid "Save Session" msgstr "ä¿å­˜ä¼šè¯" #: ../../WPrefs.app/Menu.c:1184 msgid "Clear Session" msgstr "清除会è¯" #: ../../WPrefs.app/Menu.c:1185 msgid "Refresh Screen" msgstr "刷新å±å¹•" #: ../../WPrefs.app/Menu.c:1186 msgid "Info Panel" msgstr "ä¿¡æ¯é¢æ¿" #: ../../WPrefs.app/Menu.c:1187 msgid "Legal Panel" msgstr "版æƒé¢æ¿" #: ../../WPrefs.app/Menu.c:1195 msgid "Open workspace menu" msgstr "打开工作区èœå•" #: ../../WPrefs.app/Menu.c:1202 msgid "No confirmation panel" msgstr "æ²¡æœ‰ç¡®è®¤é¢æ¿" #: ../../WPrefs.app/Menu.c:1208 msgid "Menu Path/Directory List" msgstr "èœå•路径/目录列表" #: ../../WPrefs.app/Menu.c:1253 msgid "Ask help to the Guru" msgstr "å‘专家求助" #. if there is a localized plmenu for the tongue put it's filename here #: ../../WPrefs.app/Menu.c:1365 ../../WPrefs.app/Menu.c:1372 #, c-format msgid "%s/Library/WindowMaker/plmenu" msgstr "%s/Library/WindowMaker/plmenu" #: ../../WPrefs.app/Menu.c:1381 #, c-format msgid "Could not open default menu from '%s'" msgstr "ä¸èƒ½ä»Ž'%s'打开默认èœå•" #: ../../WPrefs.app/Menu.c:1491 msgid "Applications Menu Definition" msgstr "应用程åºèœå•定义" #: ../../WPrefs.app/Menu.c:1493 msgid "Edit the menu for launching applications." msgstr "编辑å¯åŠ¨åº”ç”¨ç¨‹åºçš„èœå•." #: ../../WPrefs.app/MenuPreferences.c:114 msgid "Menu Scrolling Speed" msgstr "èœå•滚动速度" #: ../../WPrefs.app/MenuPreferences.c:163 msgid "Submenu Alignment" msgstr "å­èœå•对é½" #: ../../WPrefs.app/MenuPreferences.c:207 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "总是在å±å¹•内显示å­èœå•,è€Œä¸æ˜¯æ»šåЍ." #: ../../WPrefs.app/MenuPreferences.c:212 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "当鼠标ä½äºŽå…¶ä¸Šæ—¶,把å±å¹•之外的èœå•滚动到å±å¹•内." #: ../../WPrefs.app/MenuPreferences.c:232 msgid "Menu Preferences" msgstr "èœå•设置" #: ../../WPrefs.app/MenuPreferences.c:234 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "èœå•å¯ç”¨æ€§ç›¸å…³çš„选项. 滚动速度, 坹齿ˆ–å­èœå•ç­‰." #: ../../WPrefs.app/MouseSettings.c:150 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:229 #, c-format msgid "mouse button %s not supported by WPrefs." msgstr "WPrefs 䏿”¯æŒé¼ æ ‡æŒ‰é’® %s." #: ../../WPrefs.app/MouseSettings.c:265 ../../WPrefs.app/MouseSettings.c:278 #: ../../WPrefs.app/MouseSettings.c:291 #, c-format msgid "bad value %s for option %s" msgstr "选项 %s 的值 %s 错误" #: ../../WPrefs.app/MouseSettings.c:351 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "ModifierKey 选项的修饰键 %s ä¸èƒ½è¾¨è®¤.使用默认值 %s " #: ../../WPrefs.app/MouseSettings.c:376 msgid "could not retrieve keyboard modifier mapping" msgstr "ä¸èƒ½æå–键盘修饰键映射" #: ../../WPrefs.app/MouseSettings.c:523 msgid "Mouse Speed" msgstr "鼠标速度" #: ../../WPrefs.app/MouseSettings.c:553 msgid "Acceler.:" msgstr "加速值:" #: ../../WPrefs.app/MouseSettings.c:566 msgid "Threshold:" msgstr "加速阈值:" #: ../../WPrefs.app/MouseSettings.c:581 msgid "Double-Click Delay" msgstr "åŒå‡»å»¶æ—¶" #: ../../WPrefs.app/MouseSettings.c:625 msgid "Test" msgstr "测试" #: ../../WPrefs.app/MouseSettings.c:655 msgid "Workspace Mouse Actions" msgstr "工作区鼠标动作" #: ../../WPrefs.app/MouseSettings.c:660 msgid "Disable mouse actions" msgstr "使鼠标动作失效" #: ../../WPrefs.app/MouseSettings.c:713 msgid "Applications menu" msgstr "应用程åºèœå•" #: ../../WPrefs.app/MouseSettings.c:719 msgid "Window list menu" msgstr "窗å£åˆ—表èœå•" #: ../../WPrefs.app/MouseSettings.c:725 msgid "Select windows" msgstr "选å–窗å£" #: ../../WPrefs.app/MouseSettings.c:760 msgid "Mouse Grab Modifier" msgstr "鼠标争夺修饰键" #: ../../WPrefs.app/MouseSettings.c:762 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "在æŸäº›åŠ¨ä½œä¸­ä½¿ç”¨åˆ°çš„é”®ç›˜ä¿®é¥°é”®, 这些动作\n" "有关用鼠标拖动窗å£, 在窗å£ä¸­ç‚¹å‡»ç­‰." #: ../../WPrefs.app/MouseSettings.c:796 #, c-format msgid "could not create %s" msgstr "ä¸èƒ½å»ºç«‹ %s" #: ../../WPrefs.app/MouseSettings.c:812 #, c-format msgid "could not create temporary file %s" msgstr "ä¸èƒ½å»ºç«‹ä¸´æ—¶æ–‡ä»¶ %s" #: ../../WPrefs.app/MouseSettings.c:843 #, c-format msgid "could not rename file %s to %s\n" msgstr "ä¸èƒ½æ”¹å˜æ–‡ä»¶å %s 到 %s\n" #: ../../WPrefs.app/MouseSettings.c:927 msgid "Mouse Preferences" msgstr "鼠标设置" #: ../../WPrefs.app/MouseSettings.c:929 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "鼠标速度/加速, åŒå‡»é—´éš”, 鼠标按钮关è”ç­‰." #: ../../WPrefs.app/NoMenuAlert.c:100 msgid "Copy Default Menu" msgstr "å¤åˆ¶é»˜è®¤èœå•" #: ../../WPrefs.app/NoMenuAlert.c:106 msgid "Keep Current Menu" msgstr "ä¿ç•™å½“å‰èœå•" #: ../../WPrefs.app/Paths.c:84 msgid "bad value in option IconPath. Using default path list" msgstr "IconPath 选项的值错误.使用默认路径列表" #: ../../WPrefs.app/Paths.c:101 msgid "bad value in option PixmapPath. Using default path list" msgstr "PixmapPath 选项的值错误.使用默认路径列表" #: ../../WPrefs.app/Paths.c:149 msgid "Select directory" msgstr "选择目录" #: ../../WPrefs.app/Paths.c:281 ../../WPrefs.app/Paths.c:312 #: ../../WPrefs.app/TexturePanel.c:1302 msgid "Add" msgstr "添加" #: ../../WPrefs.app/Paths.c:288 ../../WPrefs.app/Paths.c:319 msgid "Remove" msgstr "删除" #: ../../WPrefs.app/Paths.c:341 msgid "Search Path Configuration" msgstr "æœç´¢è·¯å¾„é…ç½®" #: ../../WPrefs.app/Paths.c:343 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "" "在寻找ä½å›¾å’Œå›¾æ ‡çš„æ—¶å€™ä½¿ç”¨çš„æœç´¢è·¯å¾„." #: ../../WPrefs.app/Preferences.c:159 msgid "Size Display" msgstr "窗å£å¤§å°æ˜¾ç¤º" #: ../../WPrefs.app/Preferences.c:161 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "当窗å£å¤§å°æ”¹å˜æ—¶çª—å£å¤§å°æ˜¾ç¤ºçš„ä½ç½®æˆ–风格." #: ../../WPrefs.app/Preferences.c:168 ../../WPrefs.app/Preferences.c:188 msgid "Corner of screen" msgstr "å±å¹•è§’è½" #: ../../WPrefs.app/Preferences.c:169 ../../WPrefs.app/Preferences.c:189 msgid "Center of screen" msgstr "å±å¹•中央" #: ../../WPrefs.app/Preferences.c:170 ../../WPrefs.app/Preferences.c:190 msgid "Center of resized window" msgstr "调整大å°åŽçš„窗å£ä¸­å¤®" #: ../../WPrefs.app/Preferences.c:171 msgid "Technical drawing-like" msgstr "技术制图风格" #: ../../WPrefs.app/Preferences.c:179 msgid "Position Display" msgstr "ä½ç½®æ˜¾ç¤º" #: ../../WPrefs.app/Preferences.c:181 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "当窗å£ç§»åŠ¨æ—¶çª—å£ä½ç½®æ˜¾ç¤ºçš„ä½ç½®æˆ–风格." #: ../../WPrefs.app/Preferences.c:198 msgid "Show balloon text for..." msgstr "显示浮动文字..." #: ../../WPrefs.app/Preferences.c:205 msgid "incomplete window titles" msgstr "ä¸å®Œæ•´çš„çª—å£æ ‡é¢˜" #: ../../WPrefs.app/Preferences.c:206 msgid "miniwindow titles" msgstr "å°çª—壿 ‡é¢˜" #: ../../WPrefs.app/Preferences.c:207 msgid "application/dock icons" msgstr "应用程åº/嵌入器图标" #: ../../WPrefs.app/Preferences.c:208 msgid "internal help" msgstr "内部帮助" #: ../../WPrefs.app/Preferences.c:220 msgid "Raise window when switching focus with keyboard (CirculateRaise)." msgstr "当使用键盘切æ¢ç„¦ç‚¹æ—¶æŠŠçª—壿”¾ç½®åœ¨å‰(CirculateRaise)" #: ../../WPrefs.app/Preferences.c:226 msgid "Keep keyboard language status for each window." msgstr "为æ¯ä¸ªçª—å£ä¿æŒé”®ç›˜è¯­è¨€çжæ€" #: ../../WPrefs.app/Preferences.c:247 msgid "Miscellaneous Ergonomic Preferences" msgstr "å…¶ä»–æ“作性设置" #: ../../WPrefs.app/Preferences.c:248 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "有关浮动文字, 几何傿•°æ˜¾ç¤ºå’Œå…¶ä»–选项的å„ç§è®¾ç½®." #: ../../WPrefs.app/Text.c:181 #, c-format msgid "Invalid font %s." msgstr "无效的字体 %s." #: ../../WPrefs.app/Text.c:258 msgid "Set Font..." msgstr "设置字体..." #: ../../WPrefs.app/Text.c:264 msgid "Window Title Font" msgstr "çª—å£æ ‡é¢˜å­—体" #: ../../WPrefs.app/Text.c:265 msgid "Menu Title Font" msgstr "èœå•标题字体" #: ../../WPrefs.app/Text.c:266 msgid "Menu Item Font" msgstr "èœå•项目字体" #: ../../WPrefs.app/Text.c:267 msgid "Icon Title Font" msgstr "图标标题字体" #: ../../WPrefs.app/Text.c:268 msgid "Clip Title Font" msgstr "夹孿 ‡é¢˜å­—体" #: ../../WPrefs.app/Text.c:269 msgid "Geometry Display Font" msgstr "几何傿•°æ˜¾ç¤ºå­—体" #: ../../WPrefs.app/Text.c:282 msgid "" "Sample Text\n" "abcdefghijklmnopqrstuvxywz\n" "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" "0123456789" msgstr "" "示例文字\n" "abcdefghijklmnopqrstuvxywz\n" "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" "0123456789" #: ../../WPrefs.app/Text.c:287 msgid "Alignment" msgstr "对é½" #: ../../WPrefs.app/Text.c:327 msgid "Text Preferences" msgstr "文字设置" #: ../../WPrefs.app/TexturePanel.c:605 msgid "Could not load the selected file: " msgstr "ä¸èƒ½è½½å…¥é€‰ä¸­çš„æ–‡ä»¶: " #: ../../WPrefs.app/TexturePanel.c:687 msgid "The selected file does not contain a supported image." msgstr "é€‰ä¸­çš„æ–‡ä»¶ä¸æ˜¯è¢«æ”¯æŒçš„æ ¼å¼çš„图åƒ." #: ../../WPrefs.app/TexturePanel.c:1246 msgid "Texture Panel" msgstr "纹ç†é¢æ¿" #: ../../WPrefs.app/TexturePanel.c:1254 msgid "Texture Name" msgstr "纹ç†åç§°" #: ../../WPrefs.app/TexturePanel.c:1266 msgid "Solid Color" msgstr "å•色" #: ../../WPrefs.app/TexturePanel.c:1267 msgid "Gradient Texture" msgstr "过渡纹ç†" #: ../../WPrefs.app/TexturePanel.c:1268 msgid "Simple Gradient Texture" msgstr "简å•的过渡纹ç†" #: ../../WPrefs.app/TexturePanel.c:1269 msgid "Textured Gradient" msgstr "纹ç†åŒ–的过渡色" #: ../../WPrefs.app/TexturePanel.c:1270 msgid "Image Texture" msgstr "图åƒçº¹ç†" #: ../../WPrefs.app/TexturePanel.c:1278 msgid "Default Color" msgstr "默认颜色" #: ../../WPrefs.app/TexturePanel.c:1290 msgid "Gradient Colors" msgstr "过渡色" #: ../../WPrefs.app/TexturePanel.c:1386 msgid "Direction" msgstr "æ–¹å‘" #: ../../WPrefs.app/TexturePanel.c:1414 msgid "Gradient" msgstr "过渡色" #: ../../WPrefs.app/TexturePanel.c:1432 msgid "Gradient Opacity" msgstr "过渡色ä¸é€æ˜Žåº¦" #: ../../WPrefs.app/TexturePanel.c:1475 msgid "Image" msgstr "图åƒ" #: ../../WPrefs.app/TexturePanel.c:1495 msgid "Browse..." msgstr "æµè§ˆ..." #: ../../WPrefs.app/TexturePanel.c:1507 msgid "Tile" msgstr "并列" #: ../../WPrefs.app/TexturePanel.c:1508 msgid "Scale" msgstr "缩放" #: ../../WPrefs.app/TexturePanel.c:1510 msgid "Maximize" 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:204 #: ../../WPrefs.app/Themes.c:224 msgid "Download" msgstr "下载" #: ../../WPrefs.app/Themes.c:172 msgid "Save Current Theme" msgstr "ä¿å­˜å½“å‰ä¸»é¢˜" #: ../../WPrefs.app/Themes.c:181 msgid "Load" msgstr "载入" #: ../../WPrefs.app/Themes.c:186 msgid "Install" msgstr "安装" #: ../../WPrefs.app/Themes.c:194 msgid "Tile of The Day" msgstr "本日标题" #: ../../WPrefs.app/Themes.c:214 msgid "Bar of The Day" msgstr "本日标题行" #: ../../WPrefs.app/Themes.c:251 msgid "Themes" msgstr "主题" #: ../../WPrefs.app/WindowHandling.c:136 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "WindowPlacement 选项 %s 错误.使用默认值" #: ../../WPrefs.app/WindowHandling.c:158 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "çª—å£æ”¾ç½®èµ·ç‚¹é€‰é¡¹ä¸­æ•°æ®æ— æ•ˆ.使用默认值(0,0)" #: ../../WPrefs.app/WindowHandling.c:225 msgid "Window Placement" msgstr "çª—å£æ”¾ç½®" #: ../../WPrefs.app/WindowHandling.c:226 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "当窗å£åˆæ¬¡å‡ºçŽ°åœ¨å±å¹•上时怎样放置窗å£." #: ../../WPrefs.app/WindowHandling.c:232 msgid "Automatic" msgstr "自动" #: ../../WPrefs.app/WindowHandling.c:233 msgid "Random" msgstr "éšæœº" #: ../../WPrefs.app/WindowHandling.c:234 msgid "Manual" msgstr "手工" #: ../../WPrefs.app/WindowHandling.c:235 msgid "Cascade" msgstr "层å " #: ../../WPrefs.app/WindowHandling.c:241 msgid "Placement Origin" msgstr "放置起点" #: ../../WPrefs.app/WindowHandling.c:301 msgid "Opaque Move" msgstr "ä¸é€æ˜Žç§»åЍ" #: ../../WPrefs.app/WindowHandling.c:302 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "åœ¨æ‹–åŠ¨çª—å£æ—¶æ˜¯å¦æ˜¾ç¤ºçª—å£çš„内容, 或者\n" "åªæ˜¾ç¤ºçª—å£çš„边框.\n" #: ../../WPrefs.app/WindowHandling.c:341 msgid "When maximizing..." msgstr "当最大化时..." #: ../../WPrefs.app/WindowHandling.c:346 msgid "...do not cover icons" msgstr "...ä¸è¦†ç›–图标" #: ../../WPrefs.app/WindowHandling.c:352 msgid "...do not cover dock" msgstr "...ä¸è¦†ç›–嵌入器" #: ../../WPrefs.app/WindowHandling.c:361 msgid "Edge Resistance" msgstr "边缘阻力" #: ../../WPrefs.app/WindowHandling.c:363 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "边缘阻力使窗å£ç§»åŠ¨åˆ°å…¶ä»–çª—å£æˆ–å±å¹•边缘\n" "æ—¶, æ ¹æ®å®šä¹‰çš„阈值对进一步移动进行`抵制'" #: ../../WPrefs.app/WindowHandling.c:390 msgid "Open dialogs in same workspace as their owners" msgstr "åœ¨ç¨‹åºæ‰€åœ¨çš„åŒä¸€å·¥ä½œåŒºæ‰“å¼€å¯¹è¯æ¡†" #: ../../WPrefs.app/WindowHandling.c:417 msgid "Window Handling Preferences" msgstr "窗å£å¤„ç†è®¾ç½®" #: ../../WPrefs.app/WindowHandling.c:419 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "窗å£å¤„ç†é€‰é¡¹. 起始放置风格, 边缘阻力, ä¸é€æ˜Ž\n" "移动等." #: ../../WPrefs.app/Workspace.c:139 msgid "Workspace Navigation" msgstr "工作区导航" #: ../../WPrefs.app/Workspace.c:163 msgid "drag windows between workspaces." msgstr "在工作区之间拖动窗å£." #: ../../WPrefs.app/Workspace.c:188 msgid "" "switch to first workspace when switching past the last workspace and " "vice-versa" msgstr "当切æ¢è¿‡æœ€åŽä¸€ä¸ªå·¥ä½œåŒºæ—¶åˆ‡æ¢åˆ°ç¬¬ä¸€ä¸ªå·¥ä½œåŒº,å之亦然." #: ../../WPrefs.app/Workspace.c:212 msgid "create a new workspace when switching past the last workspace." msgstr "当切æ¢è¿‡æœ€åŽä¸€ä¸ªå·¥ä½œåŒºæ—¶å»ºç«‹æ–°çš„工作区." #: ../../WPrefs.app/Workspace.c:220 msgid "Dock/Clip" msgstr "嵌入/夹å­" #: ../../WPrefs.app/Workspace.c:239 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "å–æ¶ˆ/å…许应用程åºåµŒå…¥å™¨ (在å±å¹•ä¾§é¢çš„\n" "垂直图标æ¡)." #: ../../WPrefs.app/Workspace.c:259 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "å–æ¶ˆ/å…许夹å­(带有纸夹图标的东西)." #: ../../WPrefs.app/Workspace.c:296 msgid "Workspace Preferences" msgstr "工作区设置" #: ../../WPrefs.app/Workspace.c:298 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "工作空间导航特性. ä½ å¯ä»¥åœ¨è¿™é‡Œ\n" "å–æ¶ˆ/å…许嵌入器和夹å­." #: ../../WPrefs.app/MenuGuru.c:106 msgid "Menu Guru - Select Type" msgstr "èœå•专家 - 选择类型" #: ../../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 "èœå•专家 - 选择èœå•文件" #: ../../WPrefs.app/MenuGuru.c:122 msgid "Menu Guru - Select Pipe Command" msgstr "èœå•专家 - 选择管é“命令" #: ../../WPrefs.app/MenuGuru.c:129 msgid "Menu Guru - Select Directories" msgstr "èœå•专家 - 选择目录" #: ../../WPrefs.app/MenuGuru.c:136 msgid "Menu Guru - Select Command" msgstr "èœå•专家 - 选择命令" #: ../../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 里" #: ../../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 里" #: ../../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 " "imagefile\" çš„èœå•项." �������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/Makefile.in��������������������������������������������������������0000644�0001750�0001750�00000031173�12214434561�015441� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WPrefs.app/po DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ CATALOGS = @WPMOFILES@ nlsdir = $(NLSDIR) CLEANFILES = WPrefs.pot $(CATALOGS) EXTRA_DIST = bg.po ca.po cs.po de.po es.po et.po fi.po fr.po hr.po hu.po \ it.po ja.po ko.po pt.po ru.po sk.po zh_CN.po zh_TW.po POTFILES = \ $(top_builddir)/WPrefs.app/Appearance.c \ $(top_builddir)/WPrefs.app/Configurations.c \ $(top_builddir)/WPrefs.app/Docks.c \ $(top_builddir)/WPrefs.app/Expert.c \ $(top_builddir)/WPrefs.app/Focus.c \ $(top_builddir)/WPrefs.app/FontSimple.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/MenuPreferences.c \ $(top_builddir)/WPrefs.app/MouseSettings.c \ $(top_builddir)/WPrefs.app/Paths.c \ $(top_builddir)/WPrefs.app/Preferences.c \ $(top_builddir)/WPrefs.app/TexturePanel.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 SUFFIXES = .po .mo all: all-am .SUFFIXES: .SUFFIXES: .po .mo $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WPrefs.app/po/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WPrefs.app/po/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-data-local \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am .po.mo: msgfmt -c -o $@ $< all-local: $(CATALOGS) WPrefs.pot: $(POTFILES) xgettext --default-domain=WPrefs \ --add-comments --keyword=_ --keyword=N_ $(POTFILES) if cmp -s WPrefs.po WPrefs.pot; then \ rm -f WPrefs.po; \ else \ mv -f WPrefs.po WPrefs.pot; \ fi install-data-local: $(CATALOGS) $(mkinstalldirs) $(DESTDIR)$(nlsdir) chmod 755 $(DESTDIR)$(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_DATA) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/WPrefs.mo; \ fi; \ done # 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. .NOEXPORT: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/hr.po��������������������������������������������������������������0000644�0001750�0001750�00000114571�12214432632�014346� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # msgid "" msgstr "" "Project-Id-Version: WindowMaker 0.80.2\n" "POT-Creation-Date: 1998-08-24 14:36:41-0300\n" "PO-Revision-Date: 1998-08-24 14:36:41-0300\n" "Last-Translator: Toni Bilić tbilic@oliver.efos.hr \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../WPrefs/Configurations.c:142 ../../WPrefs/Configurations.c:148 ../../WPrefs/MouseSettings.c:510 ../../WPrefs/WindowHandling.c:270 ../../WPrefs/WindowHandling.c:282 ../../WPrefs/Workspace.c:71 ../../WPrefs/Workspace.c:77 msgid "could not load icon %s" msgstr "ne mogu uÄitati ikonu %s" #: ../../WPrefs/Configurations.c:156 ../../WPrefs/Workspace.c:85 msgid "could not process icon %s: %s" msgstr "ne mogu procesirati ikonu %s: %s" #: ../../WPrefs/Configurations.c:181 ../../WPrefs/Workspace.c:124 msgid "could not load image file %s" msgstr "ne mogu uÄitati image datoteku %s" #: ../../WPrefs/Configurations.c:195 msgid "Icon Slide Speed" msgstr "Brzina klizanja ikone" #: ../../WPrefs/Configurations.c:201 msgid "Shade Animation Speed" msgstr "Brzina Shade animacije" #: ../../WPrefs/Configurations.c:234 ../../WPrefs/Configurations.c:246 ../../WPrefs/Focus.c:310 ../../WPrefs/Focus.c:321 ../../WPrefs/MenuPreferences.c:135 ../../WPrefs/MenuPreferences.c:146 ../../WPrefs/MenuPreferences.c:174 ../../WPrefs/MenuPreferences.c:189 ../../WPrefs/MouseSettings.c:538 ../../WPrefs/MouseSettings.c:549 ../../WPrefs/MouseSettings.c:604 ../../WPrefs/MouseSettings.c:615 ../../WPrefs/MouseSettings.c:651 ../../WPrefs/MouseSettings.c:666 ../../WPrefs/MouseSettings.c:682 ../../WPrefs/WPrefs.c:398 ../../WPrefs/WPrefs.c:416 msgid "could not load icon file %s" msgstr "ne mogu uÄitati ikonu %s" #: ../../WPrefs/Configurations.c:262 msgid "Titlebar Style" msgstr "Stil Titlebar-a" #: ../../WPrefs/Configurations.c:299 msgid "Animations and Sound" msgstr "Animacije i zvuk" #: ../../WPrefs/Configurations.c:305 msgid "Animations" msgstr "Animacije" #: ../../WPrefs/Configurations.c:321 msgid "Superfluous" msgstr "Superfluous" #: ../../WPrefs/Configurations.c:337 msgid "Sounds" msgstr "Zvukovi" #: ../../WPrefs/Configurations.c:354 msgid "Note: sound requires a module distributed separately" msgstr "Upozorenje: zvuk ovisi o zasebnom modulu" #: ../../WPrefs/Configurations.c:364 msgid "Dithering colormap for 8bpp" msgstr "Dithering colormap for 8bpp" #: ../../WPrefs/Configurations.c:369 msgid "Disable dithering in any visual/depth" msgstr "Onemogući dithering za bilo koji visual/dubinu" #: ../../WPrefs/Configurations.c:390 msgid "More colors for applications" msgstr "JoÅ¡ boja za aplikacije" #: ../../WPrefs/Configurations.c:397 msgid "More colors for WindowMaker" msgstr "JoÅ¡ boja za WindowMaker" #: ../../WPrefs/Configurations.c:450 msgid "Other Configurations" msgstr "Ostale konfiguracije" #: ../../WPrefs/Expert.c:70 msgid "Do not set non-WindowMaker specific parameters (do not use xset)" msgstr "Ne postavljaj ne-WindowMaker parametre (ne koristi xset)" #: ../../WPrefs/Expert.c:71 msgid "Automatically save session when exiting WindowMaker" msgstr "Automatski snimi sessoin pri izlazu iz WindowMakera" #: ../../WPrefs/Expert.c:72 msgid "Use SaveUnder in window frames, icons, menus and other objects" msgstr "Koristi SaveUnder u okvirima prozora, ikona, izbornika i drugih objekata" #: ../../WPrefs/Expert.c:73 msgid "Disable cycling color highlighting of icons." msgstr "Onemugući cycling color highlighting of icons." #: ../../WPrefs/Expert.c:103 msgid "Expert User Preferences" msgstr "StruÄne postavke" #: ../../WPrefs/Focus.c:79 msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "kriva vrijednost opcije %s za FokusMod. Koristim Manual" #: ../../WPrefs/Focus.c:92 msgid "bad option value %s for option ColormapMode. Using default Manual" msgstr "kriva vrijednost opcije %s za ColormapMod. Koristim Manual" #: ../../WPrefs/Focus.c:190 msgid "" "Click on the window to set\n" "keyboard input focus." msgstr "" "Kliknite na prozor da\n" "postavite fokus" #: ../../WPrefs/Focus.c:194 msgid "" "Set keyboard input focus to\n" "the window under the mouse pointer,\n" "including the root window." msgstr "" "Postavljanje fokusa na prozor\n" "ispod pokazivaÄa miÅ¡a,\n" "ukljuÄujući i root prozor." #: ../../WPrefs/Focus.c:199 msgid "" "Set keyboard input focus to\n" "the window under the mouse pointer,\n" "except the root window." msgstr "" "Postavljanje fokusa na prozor ispod\n" "pokazivaÄa miÅ¡a, osim root prozora." #: ../../WPrefs/Focus.c:243 msgid "Input Focus Mode" msgstr "NaÄin fokusiranja" #: ../../WPrefs/Focus.c:248 msgid "Click window to focus" msgstr "Klikni prozor za fokus" #: ../../WPrefs/Focus.c:249 msgid "Focus follows mouse" msgstr "Fokus prati miÅ¡a" #: ../../WPrefs/Focus.c:250 msgid "\"Sloppy\" focus" msgstr "\"Sloppy\" fokus" #: ../../WPrefs/Focus.c:265 msgid "Install colormap in the window..." msgstr "Instaliraj colormap u prozor..." #: ../../WPrefs/Focus.c:270 msgid "...that has the input focus." msgstr "Å¡to ima fokus." #: ../../WPrefs/Focus.c:275 msgid "...that is under the mouse pointer." msgstr "Å¡to je ispod kursora" #: ../../WPrefs/Focus.c:284 msgid "Automatic Window Raise Delay" msgstr "Automatsko zadržavanje podizanja prozora" #: ../../WPrefs/Focus.c:341 msgid "msec" msgstr "msec" #: ../../WPrefs/Focus.c:358 msgid "Do not let aplications receive the click used to focus windows." msgstr "Ne daj da aplikacije prime klik za fokusiranje prozora." #: ../../WPrefs/Focus.c:364 msgid "Automatically focus new windows." msgstr "Automatski fokusiraj nove prozore" #: ../../WPrefs/Focus.c:385 msgid "Window Focus Preferences" msgstr "Postavke fokusiranja prozora" #: ../../WPrefs/KeyboardSettings.c:72 msgid "Initial Key Repeat" msgstr "Prvotno ponavljanje kljuÄa" #: ../../WPrefs/KeyboardSettings.c:113 msgid "Key Repeat Rate" msgstr "Razmak izmeÄ‘u ponavljanja kljuÄa" #: ../../WPrefs/KeyboardSettings.c:153 msgid "Type here to test" msgstr "Ukucajte ovdje da testirate" #: ../../WPrefs/KeyboardSettings.c:172 msgid "Keyboard Preferences" msgstr "Postavke tastature" #: ../../WPrefs/KeyboardShortcuts.c:170 ../../WPrefs/Menu.c:923 ../../WPrefs/Menu.c:1290 ../../WPrefs/MenuGuru.c:263 msgid "Cancel" msgstr "Otkaži" #: ../../WPrefs/KeyboardShortcuts.c:171 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "Pritisnite željenu kraticu ili kliknite Otkaži za prekid hvatanja." #: ../../WPrefs/KeyboardShortcuts.c:189 ../../WPrefs/KeyboardShortcuts.c:390 ../../WPrefs/Menu.c:935 ../../WPrefs/Menu.c:1157 msgid "Capture" msgstr "Uhvati" #: ../../WPrefs/KeyboardShortcuts.c:190 ../../WPrefs/KeyboardShortcuts.c:397 msgid "Click Capture to interactively define the shortcut key." msgstr "Kliknite \"Uhvati\" da interaktivno definirate kraticu." #: ../../WPrefs/KeyboardShortcuts.c:308 msgid "Actions" msgstr "Akcije" #: ../../WPrefs/KeyboardShortcuts.c:322 msgid "Open applications menu" msgstr "Otvori izbornik aplikacija" #: ../../WPrefs/KeyboardShortcuts.c:323 msgid "Open window list menu" msgstr "Otvori izbornik liste prozora" #: ../../WPrefs/KeyboardShortcuts.c:324 msgid "Open window commands menu" msgstr "Otvori izbornik prozorskih naredbi" #: ../../WPrefs/KeyboardShortcuts.c:325 msgid "Hide active application" msgstr "Sakrij aktivnu aplikaciju" #: ../../WPrefs/KeyboardShortcuts.c:326 msgid "Miniaturize active window" msgstr "Minimiziraj aktivni prozor" #: ../../WPrefs/KeyboardShortcuts.c:327 msgid "Close active window" msgstr "Zatvori aktivni prozor" #: ../../WPrefs/KeyboardShortcuts.c:328 msgid "Maximize active window" msgstr "Maksimiziraj aktivni prozor" #: ../../WPrefs/KeyboardShortcuts.c:329 msgid "Maximize active window vertically" msgstr "Maksimiziraj aktivni prozor vertikalno" #: ../../WPrefs/KeyboardShortcuts.c:330 msgid "Raise active window" msgstr "Podigni aktivni prozor" #: ../../WPrefs/KeyboardShortcuts.c:331 msgid "Lower active window" msgstr "Spusti aktivni prozor" #: ../../WPrefs/KeyboardShortcuts.c:332 msgid "Raise/Lower window under mouse pointer" msgstr "Podigni/Spusti prozor ispod pokazivaÄa miÅ¡a" #: ../../WPrefs/KeyboardShortcuts.c:333 msgid "Shade active window" msgstr "Shade-iraj aktivni prozor" #: ../../WPrefs/KeyboardShortcuts.c:334 msgid "Select active window" msgstr "Selektiraj aktivni prozor" #: ../../WPrefs/KeyboardShortcuts.c:335 msgid "Focus next window" msgstr "Fokusiraj sljedeći prozor" #: ../../WPrefs/KeyboardShortcuts.c:336 msgid "Focus previous window" msgstr "Fokusiraj prethodni prozor" #: ../../WPrefs/KeyboardShortcuts.c:337 msgid "Switch to next workspace" msgstr "Prebacivanje na sljedeći radni prostor" #: ../../WPrefs/KeyboardShortcuts.c:338 msgid "Switch to previous workspace" msgstr "Prebacivanje na prethodni radni prostor" #: ../../WPrefs/KeyboardShortcuts.c:339 msgid "Switch to next ten workspaces" msgstr "Prebacivanje na sljedećih 10 radnih prostora" #: ../../WPrefs/KeyboardShortcuts.c:340 msgid "Switch to previous ten workspaces" msgstr "Prebacivanje na predhodnih 10 radnih prostora" #: ../../WPrefs/KeyboardShortcuts.c:341 msgid "Switch to workspace 1" msgstr "Prebacivanje na radni prostor 1" #: ../../WPrefs/KeyboardShortcuts.c:342 msgid "Switch to workspace 2" msgstr "Prebacivanje na radni prostor 2" #: ../../WPrefs/KeyboardShortcuts.c:343 msgid "Switch to workspace 3" msgstr "Prebacivanje na radni prostor 3" #: ../../WPrefs/KeyboardShortcuts.c:344 msgid "Switch to workspace 4" msgstr "Prebacivanje na radni prostor 4" #: ../../WPrefs/KeyboardShortcuts.c:345 msgid "Switch to workspace 5" msgstr "Prebacivanje na radni prostor 5" #: ../../WPrefs/KeyboardShortcuts.c:346 msgid "Switch to workspace 6" msgstr "Prebacivanje na radni prostor 6" #: ../../WPrefs/KeyboardShortcuts.c:347 msgid "Switch to workspace 7" msgstr "Prebacivanje na radni prostor 7" #: ../../WPrefs/KeyboardShortcuts.c:348 msgid "Switch to workspace 8" msgstr "Prebacivanje na radni prostor 8" #: ../../WPrefs/KeyboardShortcuts.c:349 msgid "Switch to workspace 9" msgstr "Prebacivanje na radni prostor 9" #: ../../WPrefs/KeyboardShortcuts.c:350 msgid "Switch to workspace 10" msgstr "Prebacivanje na radni prostor 10" #: ../../WPrefs/KeyboardShortcuts.c:351 msgid "Shortcut for window 1" msgstr "Kratica za prozor 1" #: ../../WPrefs/KeyboardShortcuts.c:352 msgid "Shortcut for window 2" msgstr "Kratica za prozor 2" #: ../../WPrefs/KeyboardShortcuts.c:353 msgid "Shortcut for window 3" msgstr "Kratica za prozor 3" #: ../../WPrefs/KeyboardShortcuts.c:354 msgid "Shortcut for window 4" msgstr "Kratica za prozor 4" #: ../../WPrefs/KeyboardShortcuts.c:355 msgid "Raise Clip" msgstr "Podigni Clip" #: ../../WPrefs/KeyboardShortcuts.c:356 msgid "Lower Clip" msgstr "Spusti Clip" #: ../../WPrefs/KeyboardShortcuts.c:357 msgid "Raise/Lower Clip" msgstr "Podigni/Spusti Clip" #: ../../WPrefs/KeyboardShortcuts.c:359 msgid "Toggle keyboard language" msgstr "Promjeni raspored tastature" #: ../../WPrefs/KeyboardShortcuts.c:373 ../../WPrefs/Menu.c:1146 msgid "Shortcut" msgstr "Kratica" #: ../../WPrefs/KeyboardShortcuts.c:384 msgid "Clear" msgstr "OÄisti" #: ../../WPrefs/KeyboardShortcuts.c:445 msgid "Keyboard Shortcut Preferences" msgstr "Postavke tastaturnih kratica" #: ../../WPrefs/Menu.c:373 msgid "Window Manager" msgstr "Window Manager" #: ../../WPrefs/Menu.c:375 msgid "Program to open files" msgstr "Program za otvaranje datoteka" #: ../../WPrefs/Menu.c:377 ../../WPrefs/Menu.c:1133 msgid "Program to Run" msgstr "Program za pokrenuti" #: ../../WPrefs/Menu.c:427 ../../WPrefs/Menu.c:428 msgid "New Command %i" msgstr "Nova naredba %i" #: ../../WPrefs/Menu.c:435 msgid "New Submenu" msgstr "Novi podizbornik" #: ../../WPrefs/Menu.c:440 msgid "External Menu" msgstr "Eksterni izbornik" #: ../../WPrefs/Menu.c:447 msgid "Workspaces" msgstr "Radni prostori" #: ../../WPrefs/Menu.c:1017 ../../WPrefs/Menu.c:1032 msgid "Commands" msgstr "Naredbe" #: ../../WPrefs/Menu.c:1018 ../../WPrefs/Menu.c:1033 msgid "Add Command" msgstr "Naredba" #: ../../WPrefs/Menu.c:1019 ../../WPrefs/Menu.c:1034 msgid "Add Submenu" msgstr "Podizbornik" #: ../../WPrefs/Menu.c:1020 ../../WPrefs/Menu.c:1035 msgid "Add External Menu" msgstr "Eksterni izbornik" #: ../../WPrefs/Menu.c:1021 ../../WPrefs/Menu.c:1036 msgid "Add Workspace Menu" msgstr "Izbornih r. prostora" #: ../../WPrefs/Menu.c:1022 ../../WPrefs/Menu.c:1037 msgid "Remove Item" msgstr "Obrisati stavku" #: ../../WPrefs/Menu.c:1023 ../../WPrefs/Menu.c:1038 msgid "Cut Item" msgstr "Izrezati stavku" #: ../../WPrefs/Menu.c:1024 ../../WPrefs/Menu.c:1039 msgid "Copy Item" msgstr "Kopirati stavku" #: ../../WPrefs/Menu.c:1025 ../../WPrefs/Menu.c:1040 msgid "Paste Item" msgstr "Naljepiti stavku" #: ../../WPrefs/Menu.c:1069 msgid "Label" msgstr "Oznaka" #: ../../WPrefs/Menu.c:1082 msgid "Command" msgstr "Naredba" #: ../../WPrefs/Menu.c:1087 msgid "Run Program" msgstr "Pokrenuti program" #: ../../WPrefs/Menu.c:1088 msgid "Arrange Icons" msgstr "Pospremiti ikone" #: ../../WPrefs/Menu.c:1089 msgid "Hide Others" msgstr "Sakriti ostale" #: ../../WPrefs/Menu.c:1090 msgid "Show All Windows" msgstr "Pokaži sve prozore" #: ../../WPrefs/Menu.c:1091 msgid "Exit WindowMaker" msgstr "Izaći iz Window Maker-a" #: ../../WPrefs/Menu.c:1092 msgid "Exit X Session" msgstr "Izaći is X sessiona" #: ../../WPrefs/Menu.c:1093 msgid "Start window manager" msgstr "Pokrenuti window manager" #: ../../WPrefs/Menu.c:1094 msgid "Restart WindowMaker" msgstr "Restartati Window Maker" #: ../../WPrefs/Menu.c:1095 msgid "Save Session" msgstr "Snimiti session" #: ../../WPrefs/Menu.c:1096 msgid "Clear Session" msgstr "OÄistiti session" #: ../../WPrefs/Menu.c:1097 msgid "Refresh Screen" msgstr "Osvježiti ekran" #: ../../WPrefs/Menu.c:1098 msgid "Info Panel" msgstr "Info panel" #: ../../WPrefs/Menu.c:1099 msgid "Legal Panel" msgstr "Legal panel" #: ../../WPrefs/Menu.c:1107 msgid "Open workspace menu" msgstr "Otvoriti izbornik radnih prostora" #: ../../WPrefs/Menu.c:1114 msgid "No confirmation panel" msgstr "Nema panela potvrde" #: ../../WPrefs/Menu.c:1120 msgid "Menu Path/Directory List" msgstr "Menu lista Staza/Direktorij" #: ../../WPrefs/Menu.c:1165 msgid "Ask help to the Guru" msgstr "Traži pomoć od Gurua" #: ../../WPrefs/Menu.c:1285 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 "" "Format trenutnog izbornika u ~/G/D/WMRootMenu nije podržan od WPrefs-a. Napravit ću novi izbornik.\n" "Možete zamjeniti ~/G/D/WMRootMenu da ~/G/L/W/plmenu da dobijete poÄetni izbornik." #: ../../WPrefs/Menu.c:1290 ../../WPrefs/Menu.c:1295 ../../WPrefs/WPrefs.c:585 msgid "Warning" msgstr "Upozorenje" #. WMMapWidget(panel->pathB); #: ../../WPrefs/Menu.c:1290 ../../WPrefs/Menu.c:1296 ../../WPrefs/MenuGuru.c:119 ../../WPrefs/MenuGuru.c:126 ../../WPrefs/MenuGuru.c:140 ../../WPrefs/MouseSettings.c:156 ../../WPrefs/Text.c:181 ../../WPrefs/WPrefs.c:546 ../../WPrefs/WPrefs.c:551 ../../WPrefs/WPrefs.c:562 ../../WPrefs/WPrefs.c:572 ../../WPrefs/WPrefs.c:578 ../../WPrefs/WPrefs.c:585 ../../WPrefs/WPrefs.c:602 ../../WPrefs/WPrefs.c:607 msgid "OK" msgstr "U redu" #: ../../WPrefs/Menu.c:1295 msgid "Any changes made in this section will not be saved" msgstr "Promjene uÄinjene u ovom dijelu neće biti snimljene" #: ../../WPrefs/Menu.c:1360 msgid "Applications Menu Definition" msgstr "Defincija izbornika aplikacija" #: ../../WPrefs/MenuGuru.c:106 msgid "Menu Guru - Select Type" msgstr "Izbornik guru - odabrati tip" #: ../../WPrefs/MenuGuru.c:111 ../../WPrefs/MenuGuru.c:133 ../../WPrefs/MenuGuru.c:251 msgid "Next" msgstr "Sljedeći" #: ../../WPrefs/MenuGuru.c:114 msgid "Menu Guru - Select Menu File" msgstr "Izbornik guru - Odabrati izbornik datoteku" #: ../../WPrefs/MenuGuru.c:122 msgid "Menu Guru - Select Pipe Command" msgstr "Izbornik guru - Odabrati pipe naredbu" #: ../../WPrefs/MenuGuru.c:129 msgid "Menu Guru - Select Directories" msgstr "Izbornik guru- Odabrati direktorije" #: ../../WPrefs/MenuGuru.c:136 msgid "Menu Guru - Select Command" msgstr "Izbornik guru - Odabrati naredbu" #: ../../WPrefs/MenuGuru.c:257 msgid "Back" msgstr "Natrag" #: ../../WPrefs/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 "" "Ovaj postupak će vam pomoći u kreiranju podizbornika Äija se definicija nalazi u drugoj datoteci ili se stvara dinamiÄki.\n" "Å to želite koristiti kao sadržaj podizbornika?" #: ../../WPrefs/MenuGuru.c:279 msgid "A file containing the menu definition in the plain text (non-property list) menu format." msgstr "Datoteka koja sadrži definiciju izbornika u Äistom tekst formatu." #: ../../WPrefs/MenuGuru.c:285 msgid "The menu definition generated by a script/program read through a pipe." msgstr "Definicja izbornika generirana pomoću skripte/programa proÄitanog kroz pipe." #: ../../WPrefs/MenuGuru.c:291 msgid "The files in one or more directories." msgstr "Datoteke u jednom ili viÅ¡e direktorija." #: ../../WPrefs/MenuGuru.c:303 msgid "Type the path for the menu file:" msgstr "UpiÅ¡i stazu za izbornik datoteku:" #: ../../WPrefs/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 "Menu datoteka mora sadržavati izbornik u Äistom tekst formatu. Ovaj format je opisan u menu datotekama u distribuciji, vjerojatno u ~/GNUstep/Library/WindowMaker/menu" #: ../../WPrefs/MenuGuru.c:328 msgid "Type the command that will generate the menu definition:" msgstr "UpiÅ¡i naredbu koja će generirati definiciju izbornika:" #: ../../WPrefs/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 "Navedana naredba mora stvoriti i ispisati važeću definiciju izbornika na stdout. Ova definicija mora biti u formatu opisanom u ~/GNUstep/Library/WindowMaker/menu" #: ../../WPrefs/MenuGuru.c:350 ../../WPrefs/MenuGuru.c:372 ../../WPrefs/MenuGuru.c:394 msgid "Type the path for the directory. You can type more than one path by separating them with spaces." msgstr "UpiÅ¡ite stazu za direktorij. Možete upisati viÅ¡e od jedne staze odvajajući ih razmacima." #: ../../WPrefs/MenuGuru.c:361 ../../WPrefs/MenuGuru.c:383 ../../WPrefs/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 "Generirani izbornik će imati stavku za svaku datoteku u direktoriju. Direktoriji mogu sadržavati izvrÅ¡ne programe ili podatke (kao jpeg slike)." #: ../../WPrefs/MenuGuru.c:415 msgid "If the directory contain data files, type the command used to open these files. Otherwise, leave it in blank." msgstr "Ako direktorij sadrži podatkovne datoteke, upiÅ¡ite naredbu koriÅ¡tenu za otvaranje tih datoteka, ili ostavit prazno." #: ../../WPrefs/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 "Svaka datoteka u direktoriju će imati stavku i bit će otvorene sa navedenom naredbom. Na primjer ako direktorij sadrži image datoteke i naredba je \"xv -root\", svaka datoteka u direktoriju će imati stavku \"xv -root image_datoteka\"." #: ../../WPrefs/MenuPreferences.c:112 msgid "Menu Scrolling Speed" msgstr "Brzina pomicanja izbornika" #: ../../WPrefs/MenuPreferences.c:161 msgid "Submenu Alignment" msgstr "Poravnanje podizbornika" #: ../../WPrefs/MenuPreferences.c:204 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "Uvijek otvori podizbornik unutar ekrana umjesto pomicanja." #: ../../WPrefs/MenuPreferences.c:209 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "Izbornike izvan ekrana pomakni unutra kada se pokazivaÄ miÄe iznad njih" #: ../../WPrefs/MenuPreferences.c:229 msgid "Menu Preferences" msgstr "Postavke izbornika" #: ../../WPrefs/MouseSettings.c:154 ../../WPrefs/Text.c:181 ../../WPrefs/WPrefs.c:546 ../../WPrefs/WPrefs.c:551 ../../WPrefs/WPrefs.c:560 ../../WPrefs/WPrefs.c:570 ../../WPrefs/WPrefs.c:578 ../../WPrefs/WPrefs.c:602 ../../WPrefs/WPrefs.c:607 msgid "Error" msgstr "GreÅ¡ka" #: ../../WPrefs/MouseSettings.c:155 msgid "Invalid mouse acceleration threshold value. Must be the number of pixels to travel before accelerating." msgstr "Kriva vrijednost ubrzavanja miÅ¡a. Mora biti broj pixela putovanja prije ubrzavanja." #: ../../WPrefs/MouseSettings.c:209 msgid "mouse button %s not supported by WPrefs." msgstr "tipka miÅ¡e %s nije podržana od WPrefs-a." #: ../../WPrefs/MouseSettings.c:243 ../../WPrefs/MouseSettings.c:254 ../../WPrefs/MouseSettings.c:265 msgid "bad value %s for option %s" msgstr "kriva vrijednost %s za opciju %s" #: ../../WPrefs/MouseSettings.c:325 msgid "modifier key %s for option ModifierKey was not recognized. Using %s as default" msgstr "modifier kljuÄ %s za opciju ModifierKey nije prepoznat. Koristim %s." #: ../../WPrefs/MouseSettings.c:350 msgid "could not retrieve keyboard modifier mapping" msgstr "ne mogu povući keyboard modifier mapping" #: ../../WPrefs/MouseSettings.c:497 msgid "Mouse Speed" msgstr "Brzina miÅ¡a" #: ../../WPrefs/MouseSettings.c:564 msgid "Threshold:" msgstr "Prag:" #: ../../WPrefs/MouseSettings.c:579 msgid "Double-Click Delay" msgstr "Razmak izmeÄ‘u dvostrukog klika" #: ../../WPrefs/MouseSettings.c:623 msgid "Test" msgstr "Test" #: ../../WPrefs/MouseSettings.c:633 msgid "Workspace Mouse Actions" msgstr "Akcije miÅ¡a na radnom prostoru" #: ../../WPrefs/MouseSettings.c:638 msgid "Disable mouse actions" msgstr "Onemogući akcije miÅ¡a" #: ../../WPrefs/MouseSettings.c:691 msgid "Applications menu" msgstr "Izbornik Aplikacija" #: ../../WPrefs/MouseSettings.c:697 msgid "Window list menu" msgstr "Izbornik Liste prozora" #: ../../WPrefs/MouseSettings.c:703 msgid "Select windows" msgstr "Odaberi prozore" #: ../../WPrefs/MouseSettings.c:738 msgid "Mouse Grab Modifier" msgstr "Modifier za \"hvatanje\" prozora miÅ¡om" #: ../../WPrefs/MouseSettings.c:772 msgid "could not create %s" msgstr "ne mogu kreirati %s" #: ../../WPrefs/MouseSettings.c:788 msgid "could not create temporary file %s" msgstr "ne mogu kreirati privremenu datoteku %s" #: ../../WPrefs/MouseSettings.c:813 msgid "could not rename file %s to %s\n" msgstr "ne mogu preimenovati datoteku %s u %s\n" #: ../../WPrefs/MouseSettings.c:896 msgid "Mouse Preferences" msgstr "Postavke miÅ¡a" #: ../../WPrefs/Paths.c:82 msgid "bad value in option IconPath. Using default path list" msgstr "kriva vrijednost IconPath opciji. Koristim poÄetnu listu staza" #: ../../WPrefs/Paths.c:99 msgid "bad value in option PixmapPath. Using default path list" msgstr "kriva vrijednost u PixmapPath opciji. Koristim poÄetnu listu staza" #: ../../WPrefs/Paths.c:301 msgid "Icon Search Paths" msgstr "Staze za ikone" #: ../../WPrefs/Paths.c:313 ../../WPrefs/Paths.c:349 msgid "Add" msgstr "Dodaj" #: ../../WPrefs/Paths.c:320 ../../WPrefs/Paths.c:356 msgid "Remove" msgstr "ObriÅ¡i" #: ../../WPrefs/Paths.c:337 msgid "Pixmap Search Paths" msgstr "Staze za pixmape" #: ../../WPrefs/Paths.c:385 msgid "Search Path Configuration" msgstr "Konfiguracija staza" #: ../../WPrefs/Preferences.c:151 msgid "Size Display" msgstr "Prikaz veliÄine" #: ../../WPrefs/Preferences.c:156 ../../WPrefs/Preferences.c:172 msgid "Corner of screen" msgstr "Kut ekrana" #: ../../WPrefs/Preferences.c:157 ../../WPrefs/Preferences.c:173 msgid "Center of screen" msgstr "SrediÅ¡te ekrana" #: ../../WPrefs/Preferences.c:158 ../../WPrefs/Preferences.c:174 msgid "Center of resized window" msgstr "SrediÅ¡te prozora" #: ../../WPrefs/Preferences.c:159 msgid "Technical drawing-like" msgstr "Poput tehniÄkog crtanja" #: ../../WPrefs/Preferences.c:167 msgid "Position Display" msgstr "Prikaz pozicije" #: ../../WPrefs/Preferences.c:182 msgid "Show balloon text for..." msgstr "Pokaži tekst u balonu za..." #: ../../WPrefs/Preferences.c:189 msgid "incomplete window titles" msgstr "nepotpune naslove prozora" #: ../../WPrefs/Preferences.c:190 msgid "miniwindow titles" msgstr "nalsove miniprozora" #: ../../WPrefs/Preferences.c:191 msgid "application/dock icons" msgstr "aplikacijske/dock ikone" #: ../../WPrefs/Preferences.c:204 msgid "Raise window when switching focus with keyboard (CirculateRaise)." msgstr "Podigni prozor pri mjenjanju fokusa tastaturom." #: ../../WPrefs/Preferences.c:210 msgid "Keep keyboard language status for each window." msgstr "Zadrži raspored tastature za svaki prozor" #: ../../WPrefs/Preferences.c:231 msgid "Miscellaneous Ergonomic Preferences" msgstr "Razne ergonomske postavke" #: ../../WPrefs/Text.c:179 msgid "Invalid font %s." msgstr "Krivi font %s." #: ../../WPrefs/Text.c:256 msgid "Set Font..." msgstr "Postavi font..." #: ../../WPrefs/Text.c:262 msgid "Window Title Font" msgstr "Font naslova prozora" #: ../../WPrefs/Text.c:263 msgid "Menu Title Font" msgstr "Font naslova izbornika" #: ../../WPrefs/Text.c:264 msgid "Menu Item Font" msgstr "Font stavke u izborniku" #: ../../WPrefs/Text.c:265 msgid "Icon Title Font" msgstr "Font naslova ikone" #: ../../WPrefs/Text.c:266 msgid "Clip Title Font" msgstr "Font naslova clipa" #: ../../WPrefs/Text.c:267 msgid "Geometry Display Font" msgstr "Font prikaza geometry" #: ../../WPrefs/Text.c:280 msgid "" "Sample Text\n" "abcdefghijklmnopqrstuvxywz\n" "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" "0123456789" msgstr "" "Primjer texta\n" "abcdefghijklmnopqrstuvxywz\n" "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" "0123456789" #: ../../WPrefs/Text.c:285 msgid "Alignment" msgstr "Poravnanje" #: ../../WPrefs/Text.c:290 msgid "Left" msgstr "Lijevo" #: ../../WPrefs/Text.c:296 msgid "Center" msgstr "Sredina" #: ../../WPrefs/Text.c:303 msgid "Right" msgstr "Desno" #: ../../WPrefs/Text.c:325 msgid "Text Preferences" msgstr "Postavke teksta" #: ../../WPrefs/TextureAndColor.c:384 msgid "Window Title Bar" msgstr "Title Bar prozora" #: ../../WPrefs/TextureAndColor.c:385 msgid "Menu Title Bar" msgstr "Title Bar izbornika" #: ../../WPrefs/TextureAndColor.c:386 msgid "Menu Items" msgstr "Stavke izbornika" #: ../../WPrefs/TextureAndColor.c:387 msgid "Workspace/Clip" msgstr "Radni prostor/Clip" #: ../../WPrefs/TextureAndColor.c:388 msgid "Icons" msgstr "Ikone" #: ../../WPrefs/TextureAndColor.c:399 msgid "Focused Window" msgstr "Fokusirani prozor" #: ../../WPrefs/TextureAndColor.c:412 ../../WPrefs/TextureAndColor.c:443 ../../WPrefs/TextureAndColor.c:474 msgid "Texture" msgstr "Tekstura" #: ../../WPrefs/TextureAndColor.c:418 ../../WPrefs/TextureAndColor.c:449 ../../WPrefs/TextureAndColor.c:480 msgid "Text Color" msgstr "Boja teksta" #: ../../WPrefs/TextureAndColor.c:423 ../../WPrefs/TextureAndColor.c:454 ../../WPrefs/TextureAndColor.c:485 ../../WPrefs/TextureAndColor.c:509 ../../WPrefs/TextureAndColor.c:575 ../../WPrefs/TextureAndColor.c:652 msgid "Set..." msgstr "Postavi..." #: ../../WPrefs/TextureAndColor.c:430 msgid "Unfocused Window" msgstr "Nefokusirani prozor" #: ../../WPrefs/TextureAndColor.c:461 msgid "Owner of Focused Window" msgstr "Vlasnik fokusiranog prozora" #: ../../WPrefs/TextureAndColor.c:494 msgid "Unselected Items" msgstr "Neselktirne stvari" #: ../../WPrefs/TextureAndColor.c:504 ../../WPrefs/TextureAndColor.c:558 msgid "Background" msgstr "Pozadina" #: ../../WPrefs/TextureAndColor.c:519 msgid "Normal Text" msgstr "Normalni tekst" #: ../../WPrefs/TextureAndColor.c:529 msgid "Disabled Text" msgstr "Onemogućeni tekst" #: ../../WPrefs/TextureAndColor.c:538 msgid "Selected Items" msgstr "Selektirani tekst" #: ../../WPrefs/TextureAndColor.c:548 msgid "Text" msgstr "Tekst" #: ../../WPrefs/TextureAndColor.c:566 msgid "Menu Title Background" msgstr "Pozadina naslova izbornika" #: ../../WPrefs/TextureAndColor.c:584 msgid "Menu Title Text" msgstr "Tekst naslova izbornika" #: ../../WPrefs/TextureAndColor.c:596 msgid "Workspace Background" msgstr "Pozadina radnog prostora" #: ../../WPrefs/TextureAndColor.c:605 msgid "Change" msgstr "Promjeni" #: ../../WPrefs/TextureAndColor.c:611 msgid "Clip Title Text" msgstr "Tekst naslova clipa" #: ../../WPrefs/TextureAndColor.c:621 msgid "Normal" msgstr "Normalan" #: ../../WPrefs/TextureAndColor.c:631 msgid "Collapsed" msgstr "SruÅ¡en" #: ../../WPrefs/TextureAndColor.c:643 msgid "Icon Background" msgstr "Pozadina ikone" #: ../../WPrefs/TextureAndColor.c:677 msgid "Texture and Color Preferences" msgstr "Postavke tekstura i boja" #: ../../WPrefs/WPrefs.c:196 msgid "Window Maker Preferences" msgstr "Postavke Window Maker-a" #: ../../WPrefs/WPrefs.c:220 msgid "Revert Page" msgstr "Povrati stranicu" #: ../../WPrefs/WPrefs.c:226 msgid "Revert All" msgstr "Povrati sve" #: ../../WPrefs/WPrefs.c:232 msgid "Save" msgstr "Snimi" #: ../../WPrefs/WPrefs.c:238 msgid "Close" msgstr "Zatvori" #: ../../WPrefs/WPrefs.c:262 msgid "Version %s for Window Maker %s" msgstr "Verzija %s za Window Maker %s" #: ../../WPrefs/WPrefs.c:269 msgid "Starting..." msgstr "Pokrećem..." #: ../../WPrefs/WPrefs.c:275 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg\n" "More Programming: James Thompson" msgstr "" #: ../../WPrefs/WPrefs.c:363 msgid "could not locate image file %s\n" msgstr "ne mogu naći image daoteku %s\n" #: ../../WPrefs/WPrefs.c:488 msgid "Loading Window Maker configuration files..." msgstr "UÄitavam konfiguracijske datoteke..." #: ../../WPrefs/WPrefs.c:492 msgid "Initializing configuration panels..." msgstr "Inicijaliziram konfiguracijske panele..." #: ../../WPrefs/WPrefs.c:545 ../../WPrefs/WPrefs.c:601 msgid "Window Maker domain (%s) is corrupted!" msgstr "Window Maker domena (%s) je oÅ¡tećena!" #: ../../WPrefs/WPrefs.c:549 msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "Ne mogu uÄitati Window Maker domenu (%s) iz baze postavki." #: ../../WPrefs/WPrefs.c:557 msgid "could not extract version information from Window Maker" msgstr "ne mogu naći informaciju o verziji Window Maker-a" #: ../../WPrefs/WPrefs.c:558 msgid "Make sure Window Maker is in your search path." msgstr "Provjerite da li je Window Maker u vaÅ¡em PATH-u." #: ../../WPrefs/WPrefs.c:561 msgid "Could not extract version from Window Maker. Make sure it is correctly installed and is in your PATH environment variable." msgstr "Ne mogu utvrditi verziju Window Makera. Provjerite da li je pravilno i da li je u PATH-u." #: ../../WPrefs/WPrefs.c:571 msgid "Could not extract version from Window Maker. Make sure it is correctly installed." msgstr "Ne mogu utvrditi verziju Window Maker-a. Provjerite da li pravlno instaliran." #: ../../WPrefs/WPrefs.c:576 msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "WPrefs podržava Window Maker 0.18.0 ili noviji.\n" "Instalirana verzija je %i.%i.%i\n" #: ../../WPrefs/WPrefs.c:583 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, koji je instaliran, nije potpuno podržan ovom verzijom WPrefs-a." #: ../../WPrefs/WPrefs.c:590 msgid "could not run \"wmaker -global_defaults_path\"." msgstr "ne mogu pokrenuti \"wmaker -global_defaults_path\"." #: ../../WPrefs/WPrefs.c:605 msgid "Could not load global Window Maker domain (%s)." msgstr "Ne mogu uÄitati Window Maker globalnu domenu (%s)." #: ../../WPrefs/WPrefs.c:851 msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "Kriva brzina za opciju %s\n" ". Koristim Medium" #: ../../WPrefs/WindowHandling.c:107 msgid "bad option value %s in WindowPlacement. Using default value" msgstr "kriva vrijednost opcije %s za WindowPlacement. Koristim poÄetnu vrijednost" #: ../../WPrefs/WindowHandling.c:129 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "krivi podaci u opciji WindowPlaceOrigin. Koristim poÄetno (0,0)" #: ../../WPrefs/WindowHandling.c:188 msgid "Window Placement" msgstr "Položaj prozora" #: ../../WPrefs/WindowHandling.c:193 msgid "Automatic" msgstr "Automatski" #: ../../WPrefs/WindowHandling.c:194 msgid "Random" msgstr "SluÄajno" #: ../../WPrefs/WindowHandling.c:195 msgid "Manual" msgstr "RuÄno" #: ../../WPrefs/WindowHandling.c:196 msgid "Cascade" msgstr "Cascade" #: ../../WPrefs/WindowHandling.c:202 msgid "Placement Origin" msgstr "PoÄetni položaj" #: ../../WPrefs/WindowHandling.c:256 msgid "Opaque Move" msgstr "Micanje punog prozora" #: ../../WPrefs/WindowHandling.c:292 msgid "When maximizing..." msgstr "Pri maksimiziranju..." #: ../../WPrefs/WindowHandling.c:297 msgid "...do not resize over icons" msgstr "ne pokrivati ikone" #: ../../WPrefs/WindowHandling.c:310 msgid "Keep transients above their owners" msgstr "Transient-i iznad svojih vlasnika" #: ../../WPrefs/WindowHandling.c:337 msgid "Window Handling Preferences" msgstr "Postavke postupanja prozorima" #: ../../WPrefs/Workspace.c:137 msgid "Workspace Navigation" msgstr "Navigacija radnim prostorima" #: ../../WPrefs/Workspace.c:161 msgid "drag windows between workspaces." msgstr "povlaÄenje prozora izmeÄ‘u radnih prostora." #: ../../WPrefs/Workspace.c:186 msgid "switch to first workspace when switching past the last workspace and vice-versa" msgstr "prebacivanje na prvi radni prostor pri prelaženju sa zadnjeg i obrnuto." #: ../../WPrefs/Workspace.c:210 msgid "create a new workspace when switching past the last workspace." msgstr "stvaranje novog radnog prostora pri prelaženju sa zadnjeg." #: ../../WPrefs/Workspace.c:218 msgid "Dock/Clip" msgstr "Dock/Clip" #: ../../WPrefs/Workspace.c:287 msgid "Workspace Preferences" msgstr "Postavke radnog prostora" #: ../../WPrefs/main.c:56 msgid "usage: %s [options]\n" msgstr "uporaba: %s [opcije]\n" #: ../../WPrefs/main.c:57 msgid "options:" msgstr "opcije:" #: ../../WPrefs/main.c:58 msgid " -display <display>\tdisplay to be used" msgstr " -display <disply>\tdisplay za koriÅ¡tenje" #: ../../WPrefs/main.c:59 msgid " -version\t\tprint version number and exit" msgstr " -version\t\tispiÅ¡i verziju u izaÄ‘i" #: ../../WPrefs/main.c:82 msgid "too few arguments for %s" msgstr "premalo argumenata za %s" #: ../../WPrefs/main.c:104 msgid "X server does not support locale" msgstr "X server ne podržava locale" #: ../../WPrefs/main.c:107 msgid "cannot set locale modifiers" msgstr "ne mogu postaviti locale modifiere" #: ../../WPrefs/main.c:113 msgid "could not open display %s" msgstr "ne mogu otvoriti display %s" #: ../../WPrefs/main.c:121 msgid "could not initialize application" msgstr "ne mogu inicijalizirati aplikaciju" # msgid "could not extract version information from WindowMaker" # msgstr "ne mogu izvuÄi informaciju o verziji WindowMaker-a" # # msgid "Could not load WindowMaker domain (%s) from defaults database." # msgstr "Ne mogu uÄitati WindowMaker domenu (%s) iz poÄetne baze." # # msgid "Version %s for WindowMaker %s" # msgstr "Verzija %s za WindowMaker %s" # # msgid "Could not extract version from WindowMaker. Make sure it is correctly installed." # msgstr "Ne mogu izvuÄi verziju WindowMakera. Provjerite da je ispravno instaliran." # # msgid "" # "Programming/Design: Alfredo K. Kojima\n" # "Artwork: Marco van Hylckama Vlieg" # msgstr "" # "Programiranje/Dizajn: Alfredo K. Kojima\n" # "Artwork: Marco van Hylckama Vlieg" # # msgid "WindowMaker domain (%s) is corrupted!" # msgstr "WindowMaker domena (%s) je oÅ¡tećena!" # # msgid "Raise window when switching focus with keyboard." # msgstr "Podići prozor pri mjenjanju fokusa tastaturom." # # msgid "WindowMaker %i.%i.%i, which is installed in your system, is not fully supported by this version of WPrefs." # msgstr "WindowMaker %i.%i.%i, koji je instaliran na vaÅ¡em sistemu, nije potpuno podržan ovom verzijom WPrefs-a." # # msgid "WindowMaker Preferences" # msgstr "Postavke WindowMaker-a" # # msgid "Make sure WindowMaker is in your search path." # msgstr "Provjerite da je WindowMaker u vaÅ¡oj search stazi." # # msgid "...do not resize over dock" # msgstr "ne pokrivati dock" # # msgid "" # "WPrefs only supports WindowMaker 0.18.0 or newer.\n" # "The version installed is %i.%i.%i\n" # msgstr "" # "WPrefs podržava samo WindowMaker 0.18.0 ili noviji.\n" # "Instalirana je verzija %i.%i.%i\n" # # msgid "Could not load global WindowMaker domain (%s)." # msgstr "Ne mogu uÄitati globlanu WindowMaker domenu (%s)." # # msgid "Loading WindowMaker configuration files..." # msgstr "UÄitavam WindowMaker konfiguracijske datoteke..." # # msgid "Aplications Menu Definition" # msgstr "Definiranje izbornika Aplikacije" # # 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, probably at ~/GNUstep/Library/WindowMaker/menu" # msgstr "PonuÄ‘ena naredba mora generirati i ispisati važeću definicuju izbornika na stdout. Ova bi definicja trebala biti u Äistom tekst menu formatu koji je opisan u menu datotekama iz distribucije, vjerojatno u ~/GNUstep/Library/WindowMaker/menu" # # msgid "" # "bad speed value for option %s.\n" # "Using default Medium" # msgstr "" # "kriva vrijednost za brzinu za opciju %s.\n" # "Koristm Medium" # # msgid "The format of the current menu file (%s) is not supported by WPrefs. A new menu will be created." # msgstr "Format trenutne datoteke izbornika (%s) nije podržan od strane WPrefs-a. Kreirat ću novi izbornik." # # msgid "Omnipresent miniwindows" # msgstr "SvugdjePrisutni mini prozori" # # msgid "Error extracting version from WindowMaker. Make sure it is correctly installed." # msgstr "GreÅ¡ka pri izvlaÄenju verzije WindowMakera. Provjerite da je ispravno instaliran." # # msgid "Auto-arrange icons" # msgstr "Auto-pospremanje ikona" # # msgid "Open submenus to the left if they don't fit inside the screen." # msgstr "Otvoriti podizbornike na lijevo ako ne stanu unutar ekrana." # # msgid "Use SaveUnders in icons, menus and other objects" # msgstr "Koristi SnimiIspod u ikonama, izbornicima i drugim objektima" # # msgid "Type the path for the directory. You can type more than one path by separating them with spaces." # msgstr "UpiÅ¡ite stazu za direktorij. Možete upisati viÅ¡e od jedne staze odvajajući ih razmacima." # # msgid "invalid data in option WindowPlacementOrigin. Using default (0,0)" # msgstr "krivi podaci u opciji WindowPlacementOrigin. Koristim (0,0)" # # msgid "Icon Size" # msgstr "VeliÄina ikone" # ���������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/fi.po��������������������������������������������������������������0000644�0001750�0001750�00000176357�12214432632�014345� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Finnish translation for WPrefs.app # Copyright (C) 1999 Free Software Foundation, Inc. # # Tomi Kajala <tomi@iki.fi>, 1999-2001 # Pauli Virtanen <pauli.virtanen@saunalahti.fi>, 2000 # msgid "" msgstr "" "Project-Id-Version: Window Maker-0.64.0\n" "POT-Creation-Date: 2001-09-03 16:27+0300\n" "PO-Revision-Date: 2001-09-03 22:18+03:00\n" "Last-Translator: Tomi Kajala <tomi@iki.fi>\n" "Language-Team: Finnish <fi@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../../WPrefs.app/main.c:74 #, c-format msgid "usage: %s [options]\n" msgstr "käyttö: %s [optiot]\n" #: ../../WPrefs.app/main.c:75 msgid "options:" msgstr "optiot:" #: ../../WPrefs.app/main.c:76 msgid " -display <display>\tdisplay to be used" msgstr " -display <display>\tkäytettävä näyttö" #: ../../WPrefs.app/main.c:77 msgid " --version\t\tprint version number and exit" msgstr " --version\t\ttulosta versionumero ja poistu" #: ../../WPrefs.app/main.c:78 msgid " --help\t\tprint this message and exit" msgstr " --help\t\ttulosta tämä viesti ja poistu" #: ../../WPrefs.app/main.c:137 #, c-format msgid "too few arguments for %s" msgstr "liian vähän argumentteja %s:lle" #: ../../WPrefs.app/main.c:159 msgid "X server does not support locale" msgstr "X-palvelin ei tue maa-asetusta" #: ../../WPrefs.app/main.c:162 msgid "cannot set locale modifiers" msgstr "maa-asetusmääreiden asettaminen epäonnistui" #: ../../WPrefs.app/main.c:168 #, c-format msgid "could not open display %s" msgstr "näytön %s avaus ei onnistunut" #: ../../WPrefs.app/main.c:176 msgid "could not initialize application" msgstr "sovelluksen käynnistäminen epäonnistui" #: ../../WPrefs.app/WPrefs.c:259 msgid "Window Maker Preferences" msgstr "Window Makerin asetukset" #: ../../WPrefs.app/WPrefs.c:283 msgid "Revert Page" msgstr "Peruuta sivun muutokset" #: ../../WPrefs.app/WPrefs.c:289 msgid "Revert All" msgstr "Peruuta kaikki muutokset" #: ../../WPrefs.app/WPrefs.c:295 msgid "Save" msgstr "Tallenna" #: ../../WPrefs.app/Appearance.c:2294 ../../WPrefs.app/WPrefs.c:301 msgid "Close" msgstr "Sulje" #: ../../WPrefs.app/WPrefs.c:308 msgid "Balloon Help" msgstr "Puhekuplaopastus" #: ../../WPrefs.app/WPrefs.c:333 msgid "Window Maker Preferences Utility" msgstr "Window Makerin asetusten säätöohjelma" #: ../../WPrefs.app/WPrefs.c:340 #, c-format msgid "Version %s for Window Maker %s or newer" msgstr "Versio %s Window Makerille %s tai uudemmalle" #: ../../WPrefs.app/WPrefs.c:348 msgid "Starting..." msgstr "Käynnistyy..." #: ../../WPrefs.app/WPrefs.c:354 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg, Largo et al\n" "More Programming: James Thompson et al" msgstr "" "Ohjelmointi/suunnittelu: Alfredo K. Kojima\n" "Grafiikka: Marco van Hylckama Vlieg, Largo et al\n" "Lisää ohjelmointia: James Thompson et al" #: ../../WPrefs.app/WPrefs.c:454 #, c-format msgid "could not locate image file %s\n" msgstr "Kuvatiedostoa %s ei löytynyt\n" #: ../../WPrefs.app/Appearance.c:1965 ../../WPrefs.app/Configurations.c:242 #: ../../WPrefs.app/Configurations.c:254 ../../WPrefs.app/Focus.c:289 #: ../../WPrefs.app/Focus.c:300 ../../WPrefs.app/MenuPreferences.c:135 #: ../../WPrefs.app/MenuPreferences.c:146 #: ../../WPrefs.app/MenuPreferences.c:174 #: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:560 #: ../../WPrefs.app/MouseSettings.c:571 ../../WPrefs.app/WPrefs.c:557 #: ../../WPrefs.app/WPrefs.c:582 #, c-format msgid "could not load icon file %s" msgstr "kuvaketiedoston %s lataus epäonnistui" #: ../../WPrefs.app/WPrefs.c:669 #, c-format msgid "could not load image file %s:%s" msgstr "kuvatiedoston %s:%s lataus epäonnistui" #: ../../WPrefs.app/WPrefs.c:688 msgid "Loading Window Maker configuration files..." msgstr "Lataan Window Makerin asetustiedostoja..." #: ../../WPrefs.app/WPrefs.c:692 msgid "Initializing configuration panels..." msgstr "Alustan asetuspaneeleja..." #: ../../WPrefs.app/WPrefs.c:726 msgid "" "WPrefs is free software and is distributed WITHOUT ANY\n" "WARRANTY under the terms of the GNU General Public License." msgstr "" "WPrefs on vapaa ohjelmisto ja sitä levitetään ILMAN\n" "MITÄÄN TAKUUTA, GNU General Public Licensen ehdoilla." #: ../../WPrefs.app/WPrefs.c:755 ../../WPrefs.app/WPrefs.c:835 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Window Makerin kenttä (%s) on vioittunut!" #: ../../WPrefs.app/Font.c:330 ../../WPrefs.app/Menu.c:1533 #: ../../WPrefs.app/MouseSettings.c:140 ../../WPrefs.app/MouseSettings.c:160 #: ../../WPrefs.app/TexturePanel.c:613 ../../WPrefs.app/TexturePanel.c:693 #: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:756 #: ../../WPrefs.app/WPrefs.c:761 ../../WPrefs.app/WPrefs.c:779 #: ../../WPrefs.app/WPrefs.c:789 ../../WPrefs.app/WPrefs.c:799 #: ../../WPrefs.app/WPrefs.c:836 ../../WPrefs.app/WPrefs.c:841 msgid "Error" msgstr "Virhe" #: ../../WPrefs.app/Font.c:330 ../../WPrefs.app/Menu.c:1533 #: ../../WPrefs.app/MouseSettings.c:142 ../../WPrefs.app/MouseSettings.c:162 #: ../../WPrefs.app/TexturePanel.c:614 ../../WPrefs.app/TexturePanel.c:695 #: ../../WPrefs.app/TexturePanel.c:1529 ../../WPrefs.app/Themes.c:98 #: ../../WPrefs.app/WPrefs.c:756 ../../WPrefs.app/WPrefs.c:761 #: ../../WPrefs.app/WPrefs.c:781 ../../WPrefs.app/WPrefs.c:793 #: ../../WPrefs.app/WPrefs.c:799 ../../WPrefs.app/WPrefs.c:806 #: ../../WPrefs.app/WPrefs.c:836 ../../WPrefs.app/WPrefs.c:841 msgid "OK" msgstr "OK" #: ../../WPrefs.app/WPrefs.c:759 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "Window Makerin kentän (%s) lataus oletustietokannasta epäonnistui." #: ../../WPrefs.app/WPrefs.c:776 msgid "could not extract version information from Window Maker" msgstr "Window Makerin versiotietojen selvitys epäonnistui" #: ../../WPrefs.app/WPrefs.c:777 msgid "Make sure wmaker is in your search path." msgstr "Varmista, että wmaker on hakupolussasi." #: ../../WPrefs.app/WPrefs.c:780 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." msgstr "" "Window Makerin versiota ei voitu selvittää. Varmista, että se on oikein " "asennettu ja että PATH-ympäristömuuttujasi sisältää polun, johon se on " "asennettu." #: ../../WPrefs.app/WPrefs.c:790 msgid "" "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." msgstr "" "Window Makerin versiota ei voitu selvittää. Varmista, että se on oikein " "asennettu ja että PATH-ympäristömuuttujasi sisältää polun, johon se on " "asennettu." #: ../../WPrefs.app/WPrefs.c:797 #, c-format msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "WPrefs tukee vain Window Makeria 0.18.0 tai uudempaa.\n" "Asennettu versio on %i.%i.%i\n" #: ../../WPrefs.app/WPrefs.c:804 #, c-format msgid "" "Window Maker %i.%i.%i, which is installed in your system, is not fully " "supported by this version of WPrefs." msgstr "" "Tämä WPrefs-versio ei tue täysin Window Makeria %i.%i.%i, joka on asennettu " "järjestelmääsi." #: ../../WPrefs.app/Menu.c:1568 ../../WPrefs.app/WPrefs.c:806 msgid "Warning" msgstr "Varoitus" #: ../../WPrefs.app/WPrefs.c:817 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr "" #: ../../WPrefs.app/WPrefs.c:839 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "Globaalia Window Makerin kenttää (%s) ei voitu ladata." #: ../../WPrefs.app/WPrefs.c:1088 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "virheellinen nopeusarvo valinnalle %s.\n" "Käytetään oletusta keskinopea" #: ../../WPrefs.app/Appearance.c:1131 msgid "Select File" msgstr "Valitse tiedosto" #: ../../WPrefs.app/Appearance.c:1533 msgid "Focused Window" msgstr "Aktiivinen ikkuna" #: ../../WPrefs.app/Appearance.c:1537 msgid "Unfocused Window" msgstr "Ei-aktiivinen ikkuna" #: ../../WPrefs.app/Appearance.c:1541 msgid "Owner of Focused Window" msgstr "Aktiivisen ikkunan omistaja" #: ../../WPrefs.app/Appearance.c:1545 ../../WPrefs.app/Appearance.c:1862 msgid "Menu Title" msgstr "Valikon otsikko" #: ../../WPrefs.app/Appearance.c:1549 ../../WPrefs.app/Appearance.c:1551 msgid "Normal Item" msgstr "Normaali alkio" #: ../../WPrefs.app/Appearance.c:1555 msgid "Disabled Item" msgstr "Ei käytössä" #: ../../WPrefs.app/Appearance.c:1564 msgid "Highlighted" msgstr "Korostettu" #: ../../WPrefs.app/Appearance.c:1755 msgid "Texture" msgstr "Kuvio" #: ../../WPrefs.app/Appearance.c:1763 msgid "Titlebar of Focused Window" msgstr "Aktiivisen ikkunan otsikkopalkki" #: ../../WPrefs.app/Appearance.c:1764 msgid "Titlebar of Unfocused Windows" msgstr "Ei-aktiivisten ikkunoiden otsikkopalkki" #: ../../WPrefs.app/Appearance.c:1765 msgid "Titlebar of Focused Window's Owner" msgstr "Aktiivisen ikkunan omistajan otsikkopalkki" #: ../../WPrefs.app/Appearance.c:1766 msgid "Window Resizebar" msgstr "Ikkunan koonsäätöpalkki" #: ../../WPrefs.app/Appearance.c:1767 msgid "Titlebar of Menus" msgstr "Valikoiden otsikkopalkki" #: ../../WPrefs.app/Appearance.c:1768 msgid "Menu Items" msgstr "Valikon alkiot" #: ../../WPrefs.app/Appearance.c:1769 msgid "Icon Background" msgstr "Kuvakkeen tausta" #: ../../WPrefs.app/Appearance.c:1784 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "Kaksoisnapauta kuviota, jota haluat käyttää\n" "valitussa kohdassa." #: ../../WPrefs.app/Appearance.c:1798 msgid "New" msgstr "Uusi" #: ../../WPrefs.app/Appearance.c:1802 msgid "Create a new texture." msgstr "Luo uusi kuvio" #: ../../WPrefs.app/Appearance.c:1810 msgid "Extract..." msgstr "Poimi..." #: ../../WPrefs.app/Appearance.c:1814 msgid "Extract texture(s) from a theme or a style file." msgstr "Poimi kuvio(ita) teemasta tai tyylitiedostosta." #: ../../WPrefs.app/Appearance.c:1824 msgid "Edit" msgstr "Muokkaa" #: ../../WPrefs.app/Appearance.c:1827 msgid "Edit the highlighted texture." msgstr "Muokkaa korostettua kuviota." #: ../../WPrefs.app/Appearance.c:1835 ../../WPrefs.app/TexturePanel.c:1317 msgid "Delete" msgstr "Poista" #: ../../WPrefs.app/Appearance.c:1839 msgid "Delete the highlighted texture." msgstr "Poista korostettu kuvio." #: ../../WPrefs.app/Appearance.c:1852 msgid "Color" msgstr "Väri" #: ../../WPrefs.app/Appearance.c:1859 msgid "Focused Window Title" msgstr "Aktiivisen ikkunan otsikko" #: ../../WPrefs.app/Appearance.c:1860 msgid "Unfocused Window Title" msgstr "Ei-aktiivisen ikkunan otsikko" #: ../../WPrefs.app/Appearance.c:1861 msgid "Owner of Focused Window Title" msgstr "Aktiivisen ikkunan omistajan otsikko" #: ../../WPrefs.app/Appearance.c:1863 msgid "Menu Item Text" msgstr "Valikkokohdan teksti" #: ../../WPrefs.app/Appearance.c:1864 msgid "Disabled Menu Item Text" msgstr "Pois käytöstä olevan valikkokohdan teksti" #: ../../WPrefs.app/Appearance.c:1865 msgid "Menu Highlight Color" msgstr "Valikon korostusväri" #: ../../WPrefs.app/Appearance.c:1866 msgid "Highlighted Menu Text Color" msgstr "Korostetun valikon tekstiväri" #: ../../WPrefs.app/Appearance.c:1905 msgid "Background" msgstr "Tausta" #: ../../WPrefs.app/Appearance.c:1917 ../../WPrefs.app/TexturePanel.c:1504 msgid "Browse..." msgstr "Selaa..." #: ../../WPrefs.app/Appearance.c:1930 msgid "Options" msgstr "Valintoja" #: ../../WPrefs.app/Appearance.c:1937 msgid "Menu Style" msgstr "Valikon tyyli" #: ../../WPrefs.app/Appearance.c:1979 msgid "Title Alignment" msgstr "Otsikon sijoitus" #: ../../WPrefs.app/Appearance.c:1986 msgid "Left" msgstr "Vasen" #: ../../WPrefs.app/Appearance.c:1989 ../../WPrefs.app/TexturePanel.c:1518 #: ../../WPrefs.app/Workspace.c:270 msgid "Center" msgstr "Keskitetty" #: ../../WPrefs.app/Appearance.c:1992 msgid "Right" msgstr "Oikea" #: ../../WPrefs.app/Appearance.c:2216 msgid "Appearance Preferences" msgstr "Ulkonäköasetukset" #: ../../WPrefs.app/Appearance.c:2218 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "Taustakuvion asetukset ikkunoille,\n" "valikoille ja kuvakkeille." #: ../../WPrefs.app/Appearance.c:2263 msgid "Extract Texture" msgstr "Poimi kuvio" #: ../../WPrefs.app/Appearance.c:2283 msgid "Textures" msgstr "Kuviot" #: ../../WPrefs.app/Appearance.c:2299 msgid "Extract" msgstr "Poimi" #: ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 #: ../../WPrefs.app/MouseSettings.c:490 ../../WPrefs.app/WindowHandling.c:339 #: ../../WPrefs.app/WindowHandling.c:351 ../../WPrefs.app/Workspace.c:90 #: ../../WPrefs.app/Workspace.c:101 #, c-format msgid "could not load icon %s" msgstr "kuvakkeen %s lataus ei onnistunut" #: ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:109 #, c-format msgid "could not process icon %s: %s" msgstr "ei voitu käsitellä kuvaketta %s: %s" #: ../../WPrefs.app/Configurations.c:189 ../../WPrefs.app/Workspace.c:164 #, c-format msgid "could not load image file %s" msgstr "kuvatiedoston %s lataus epäonnistui" #: ../../WPrefs.app/Configurations.c:203 msgid "Icon Slide Speed" msgstr "Kuvakkeen liukumisnopeus" #: ../../WPrefs.app/Configurations.c:209 msgid "Shade Animation Speed" msgstr "\"Vain otsikkopalkki\"-animaation nopeus" #: ../../WPrefs.app/Configurations.c:271 msgid "Smooth Scaling" msgstr "Pehmeä venytys" #: ../../WPrefs.app/Configurations.c:272 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "Pehmennä venytetyt taustakuvat, mikä\n" "poistaa `sahalaitaefektin'. Tämä hidastaa\n" "taustakuvan latausta huomattavasti." #: ../../WPrefs.app/Configurations.c:313 msgid "Titlebar Style" msgstr "Otsikkopalkin tyyli" #: ../../WPrefs.app/Configurations.c:351 msgid "Animations and Sound" msgstr "Animaatiot ja ääni" #: ../../WPrefs.app/Configurations.c:357 msgid "Animations" msgstr "Animaatiot" #: ../../WPrefs.app/Configurations.c:368 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "Ikkunan pienennys-, vain otsikkopalkki-, ym.\n" "animaatiot päälle/pois." #: ../../WPrefs.app/Configurations.c:376 msgid "Superfluous" msgstr "Ylimääräiset" #: ../../WPrefs.app/Configurations.c:387 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "\"Ylimääräiset\" ominaisuudet ja animaatiot\n" "päälle/pois. Ne sisältävät telakan \"haamuilun\",\n" "kun sitä siirretään toiselle puolelle, ja\n" "telakasta poistettavien kuvakkeiden räjähdyksen." #: ../../WPrefs.app/Configurations.c:397 msgid "Sounds" msgstr "Äänet" #: ../../WPrefs.app/Configurations.c:408 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://shadowmere.student.utwente.nl/" msgstr "" "Tuki äänitehosteille, joita soitetaan toiminnoille\n" "kuten Vain otsikkopalkki ja ikkunan sulkeminen.\n" "Tähän tarvitaan erikseen jaettava moduuli.\n" "Voit hakea sen osoitteesta\n" "http://shadowmere.student.utwente.nl/" #: ../../WPrefs.app/Configurations.c:419 msgid "" "Note: sound requires a module distributed\n" "separately" msgstr "" "Huomaa: ääni edellyttää erikseen\n" "jaettavaa moduulia" #: ../../WPrefs.app/Configurations.c:429 msgid "Dithering colormap for 8bpp" msgstr "Pehmennysvärikartta 8 bpp:lle" #: ../../WPrefs.app/Configurations.c:431 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "Värimäärä, joka Window Makerille varataan näytöissä,\n" "joissa käytetään vain 8 bittiä pikseliä kohti (PseudoColor)." #: ../../WPrefs.app/Configurations.c:438 msgid "Disable dithering in any visual/depth" msgstr "Ei pehmennystä missään visualissa/värisyvyydessä" #: ../../WPrefs.app/Configurations.c:459 msgid "" "More colors for\n" "applications" msgstr "" "Lisää värejä\n" "sovelluksille" #: ../../WPrefs.app/Configurations.c:466 msgid "" "More colors for\n" "Window Maker" msgstr "" "Lisää värejä\n" "Window Makerille" #: ../../WPrefs.app/Configurations.c:521 msgid "Other Configurations" msgstr "Muut asetukset" #: ../../WPrefs.app/Configurations.c:523 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "Animaationopeudet, otsikkopalkin tyylit, erilaisten\n" "asetusten valinta ja värimäärä, joka Window Makerille\n" "varataan kahdeksanbittisissä näytöissä." #: ../../WPrefs.app/Expert.c:75 msgid "" "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." msgstr "" "Ei mini-ikkunoita (pienennettyjen ikkunoiden kuvakkeita). KDE:tä/GNOMEa " "varten." #: ../../WPrefs.app/Expert.c:76 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "Älä aseta Window Makerin ulkopuolisia parametreja (älä käytä xset:iä)" #: ../../WPrefs.app/Expert.c:77 msgid "Automatically save session when exiting Window Maker." msgstr "Tallenna istunto automaattisesti, kun Window Maker suljetaan" #: ../../WPrefs.app/Expert.c:78 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "" "SaveUnder käytössä ikkunoiden kehyksissä, kuvakkeissa, valikoissa ja muissa " "kohteissa" #: ../../WPrefs.app/Expert.c:79 msgid "Use Windoze style cycling." msgstr "Käytä Windoze-tyylistä vaihtoa" #: ../../WPrefs.app/Expert.c:80 msgid "Disable confirmation panel for the Kill command." msgstr "Älä pyydä Tapa-komentoon vahvistusta." #: ../../WPrefs.app/Expert.c:81 msgid "Disable selection animation for selected icons." msgstr "Ei valittujen kuvakkeiden animaatiota" #: ../../WPrefs.app/Expert.c:115 msgid "Expert User Preferences" msgstr "Tehokäyttäjän asetukset" #: ../../WPrefs.app/Expert.c:117 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "Valintoja ihmisille, jotka tietävät, mitä tekevät...\n" "Sekä eräitä sekalaisia valintoja." #: ../../WPrefs.app/Focus.c:81 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "väärä arvo %s valinnalle FocusMode. Käytetään oletusta Manual" #: ../../WPrefs.app/Focus.c:95 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "väärä arvo %s valinnalle ColormapMode. Käytetään oletusta Auto" #: ../../WPrefs.app/Focus.c:215 msgid "Input Focus Mode" msgstr "Syöttökohdistuksen tila" #: ../../WPrefs.app/Focus.c:223 msgid "Manual: Click on the window to set keyboard input focus" msgstr "Manuaalinen: Napauta ikkunaa asettaaksesi sen näppäimistösyötön kohteeksi." #: ../../WPrefs.app/Focus.c:230 msgid "Auto: Set keyboard input focus to the window under the mouse pointer" msgstr "Automaattinen: Aseta hiiren osoittimen alla oleva ikkuna näppäimistösyötön kohteeksi." #: ../../WPrefs.app/Focus.c:244 msgid "Install colormap in the window..." msgstr "Asenna värikartta ikkunaan..." #: ../../WPrefs.app/Focus.c:249 msgid "...that has the input focus." msgstr "...jolla on syöttökohdistus." #: ../../WPrefs.app/Focus.c:254 msgid "...that is under the mouse pointer." msgstr "...joka on hiiren osoittimen alla." #: ../../WPrefs.app/Focus.c:263 msgid "Automatic Window Raise Delay" msgstr "Automaattisen ikkunannoston viive" #: ../../WPrefs.app/Focus.c:320 ../../WPrefs.app/MouseSettings.c:601 msgid "msec" msgstr "ms" #: ../../WPrefs.app/Focus.c:337 msgid "" "Do not let applications receive\n" "the click used to focus windows." msgstr "" "Älä välitä sovelluksille ikkunan\n" "aktivointipainallusta." #: ../../WPrefs.app/Focus.c:343 msgid "" "Automatically focus new\n" "windows." msgstr "" "Aktivoi uudet ikkunat\n" "automaattisesti." #: ../../WPrefs.app/Focus.c:364 msgid "Window Focus Preferences" msgstr "Ikkunoiden aktivointiasetukset" #: ../../WPrefs.app/Focus.c:366 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "Näppäimistökohdistuksen vaihtosäännöt, värikartan vaihto-\n" "säännöt 8 bittitason näytöille yms. valintoja." #: ../../WPrefs.app/Font.c:277 msgid "Could not locate font information file WPrefs.app/font.data" msgstr "Kirjasininfo-tiedostoa WPrefs.app/font.data ei löytynyt" #: ../../WPrefs.app/Font.c:283 msgid "Could not read font information file WPrefs.app/font.data" msgstr "Kirjasininfo-tiedostoa WPrefs.app/font.data ei voitu lukea" #: ../../WPrefs.app/Font.c:294 msgid "" "Invalid data in font information file WPrefs.app/font.data.\n" "Encodings data not found." msgstr "" "Virheellisiä tietoja kirjasininfo-tiedostossa WPrefs.app/font.data.\n" "Merkistötietoja ei löytynyt." #: ../../WPrefs.app/Font.c:299 msgid "- Custom -" msgstr "- Mukautettu -" #: ../../WPrefs.app/Font.c:376 msgid "Default Font Sets" msgstr "Oletuskirjasinvalikoima" #: ../../WPrefs.app/Font.c:389 msgid "Font Set" msgstr "Kirjasinvalikoima" #: ../../WPrefs.app/Font.c:418 msgid "Add..." msgstr "Lisää..." #: ../../WPrefs.app/Font.c:423 ../../WPrefs.app/Font.c:438 msgid "Change..." msgstr "Muuta..." #: ../../WPrefs.app/Font.c:428 ../../WPrefs.app/Paths.c:288 #: ../../WPrefs.app/Paths.c:319 msgid "Remove" msgstr "Poista" #: ../../WPrefs.app/Font.c:477 msgid "Font Preferences" msgstr "Kirjasinasetukset" #: ../../WPrefs.app/Font.c:478 msgid "Font Configurations for Windows, Menus etc" msgstr "Kirjasinasetukset ikkunoille, valikoille jne." #: ../../WPrefs.app/Icons.c:180 msgid "Icon Positioning" msgstr "Kuvakkeiden sijoitus" #: ../../WPrefs.app/Icons.c:227 msgid "Iconification Animation" msgstr "Pienennysanimaatio" #: ../../WPrefs.app/Icons.c:238 msgid "Shrinking/Zooming" msgstr "Kutistuva/kasvava" #: ../../WPrefs.app/Icons.c:239 msgid "Spinning/Twisting" msgstr "Pyörivä (Z-aks.)" #: ../../WPrefs.app/Icons.c:240 msgid "3D-flipping" msgstr "Pyörivä (X-aks.)" #: ../../WPrefs.app/Icons.c:241 ../../WPrefs.app/MouseSettings.c:838 #: ../../WPrefs.app/MouseSettings.c:843 msgid "None" msgstr "Ei mitään" #: ../../WPrefs.app/Icons.c:254 msgid "Auto-arrange icons" msgstr "Järjestä kuvakkeet automaattisesti" #: ../../WPrefs.app/Icons.c:256 msgid "Keep icons and miniwindows arranged all the time." msgstr "Pidä kuvakkeet ja mini-ikkunat aina järjestyksessä." #: ../../WPrefs.app/Icons.c:262 msgid "Omnipresent miniwindows" msgstr "Mini-ikkunat näkyvät kaikkialla" #: ../../WPrefs.app/Icons.c:264 msgid "Make miniwindows be present in all workspaces." msgstr "Näytä mini-ikkunat kaikissa työtiloissa." #: ../../WPrefs.app/Icons.c:273 msgid "Icon Size" msgstr "Kuvakkeiden koko" #: ../../WPrefs.app/Icons.c:275 msgid "The size of the dock/application icon and miniwindows" msgstr "Telakka/sovelluskuvakkeen ja mini-ikkunoiden koko." #: ../../WPrefs.app/Icons.c:345 msgid "Icon Preferences" msgstr "Kuvakeasetukset" #: ../../WPrefs.app/Icons.c:347 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "Kuvakkeiden/mini-ikkunoiden käsittelyasetukset:\n" "kuvakkeiden sijoituspaikka, niiden koot ja pienennys-\n" "animaation tyyli." #: ../../WPrefs.app/KeyboardSettings.c:73 msgid "Initial Key Repeat" msgstr "Näppäintoiston alkuviive" #: ../../WPrefs.app/KeyboardSettings.c:114 msgid "Key Repeat Rate" msgstr "Näppäintoiston nopeus" #: ../../WPrefs.app/KeyboardSettings.c:154 msgid "Type here to test" msgstr "Kokeile kirjoitusta tässä" #: ../../WPrefs.app/KeyboardSettings.c:173 msgid "Keyboard Preferences" msgstr "Näppäimistöasetukset" #: ../../WPrefs.app/KeyboardSettings.c:175 msgid "Not done" msgstr "Ei tehty" #: ../../WPrefs.app/KeyboardShortcuts.c:186 ../../WPrefs.app/Menu.c:327 #: ../../WPrefs.app/TexturePanel.c:1535 msgid "Cancel" msgstr "Peruuta" #: ../../WPrefs.app/KeyboardShortcuts.c:187 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "Paina haluamasi pikavalinnan näppäinyhdistelmä tai paina 'Peruuta'." #: ../../WPrefs.app/KeyboardShortcuts.c:207 #: ../../WPrefs.app/KeyboardShortcuts.c:456 ../../WPrefs.app/Menu.c:338 #: ../../WPrefs.app/Menu.c:782 msgid "Capture" msgstr "Sieppaa" #: ../../WPrefs.app/KeyboardShortcuts.c:208 #: ../../WPrefs.app/KeyboardShortcuts.c:464 msgid "Click Capture to interactively define the shortcut key." msgstr "Paina 'Sieppaa' määritelläksesi pikavalinnan interaktiivisesti." #: ../../WPrefs.app/KeyboardShortcuts.c:363 msgid "Actions" msgstr "Toiminnot" #: ../../WPrefs.app/KeyboardShortcuts.c:379 msgid "Open applications menu" msgstr "Avaa sovellusvalikko" #: ../../WPrefs.app/KeyboardShortcuts.c:380 msgid "Open window list menu" msgstr "Avaa ikkunalistavalikko" #: ../../WPrefs.app/KeyboardShortcuts.c:381 msgid "Open window commands menu" msgstr "Avaa ikkunakomennot-valikko" #: ../../WPrefs.app/KeyboardShortcuts.c:382 msgid "Hide active application" msgstr "Piilota aktiivinen sovellus" #: ../../WPrefs.app/KeyboardShortcuts.c:383 msgid "Miniaturize active window" msgstr "Pienennä aktiivinen ikkuna" #: ../../WPrefs.app/KeyboardShortcuts.c:384 msgid "Close active window" msgstr "Sulje aktiivinen ikkuna" #: ../../WPrefs.app/KeyboardShortcuts.c:385 msgid "Maximize active window" msgstr "Suurenna aktiivinen ikkuna" #: ../../WPrefs.app/KeyboardShortcuts.c:386 msgid "Maximize active window vertically" msgstr "Suurenna akt. ikkuna pystysuunnassa" #: ../../WPrefs.app/KeyboardShortcuts.c:387 msgid "Maximize active window horizontally" msgstr "Suurenna akt. ikkuna vaakasuunnassa" #: ../../WPrefs.app/KeyboardShortcuts.c:388 msgid "Raise active window" msgstr "Nosta aktiivinen ikkuna" #: ../../WPrefs.app/KeyboardShortcuts.c:389 msgid "Lower active window" msgstr "Laske aktiivinen ikkuna" #: ../../WPrefs.app/KeyboardShortcuts.c:390 msgid "Raise/Lower window under mouse pointer" msgstr "Nosta/laske hiiren os. alla oleva ikkuna" #: ../../WPrefs.app/KeyboardShortcuts.c:391 msgid "Shade active window" msgstr "Vain otsikkopalkki aktiivisesta ikkunasta" #: ../../WPrefs.app/KeyboardShortcuts.c:392 msgid "Move/Resize active window" msgstr "Muuta aktiivisen ikkunan paikkaa tai kokoa" #: ../../WPrefs.app/KeyboardShortcuts.c:393 msgid "Select active window" msgstr "Valitse aktiivinen ikkuna" #: ../../WPrefs.app/KeyboardShortcuts.c:394 msgid "Focus next window" msgstr "Aktivoi seuraava ikkuna" #: ../../WPrefs.app/KeyboardShortcuts.c:395 msgid "Focus previous window" msgstr "Aktivoi edellinen ikkuna" #: ../../WPrefs.app/KeyboardShortcuts.c:396 msgid "Switch to next workspace" msgstr "Siirry seuraavaan työtilaan" #: ../../WPrefs.app/KeyboardShortcuts.c:397 msgid "Switch to previous workspace" msgstr "Siirry edelliseen työtilaan" #: ../../WPrefs.app/KeyboardShortcuts.c:398 msgid "Switch to next ten workspaces" msgstr "Siirry seuraavalle työtilakymmenelle" #: ../../WPrefs.app/KeyboardShortcuts.c:399 msgid "Switch to previous ten workspaces" msgstr "Siirry edelliselle työtilakymmenelle" #: ../../WPrefs.app/KeyboardShortcuts.c:400 msgid "Switch to workspace 1" msgstr "Siirry työtilaan 1" #: ../../WPrefs.app/KeyboardShortcuts.c:401 msgid "Switch to workspace 2" msgstr "Siirry työtilaan 2" #: ../../WPrefs.app/KeyboardShortcuts.c:402 msgid "Switch to workspace 3" msgstr "Siirry työtilaan 3" #: ../../WPrefs.app/KeyboardShortcuts.c:403 msgid "Switch to workspace 4" msgstr "Siirry työtilaan 4" #: ../../WPrefs.app/KeyboardShortcuts.c:404 msgid "Switch to workspace 5" msgstr "Siirry työtilaan 5" #: ../../WPrefs.app/KeyboardShortcuts.c:405 msgid "Switch to workspace 6" msgstr "Siirry työtilaan 6" #: ../../WPrefs.app/KeyboardShortcuts.c:406 msgid "Switch to workspace 7" msgstr "Siirry työtilaan 7" #: ../../WPrefs.app/KeyboardShortcuts.c:407 msgid "Switch to workspace 8" msgstr "Siirry työtilaan 8" #: ../../WPrefs.app/KeyboardShortcuts.c:408 msgid "Switch to workspace 9" msgstr "Siirry työtilaan 9" #: ../../WPrefs.app/KeyboardShortcuts.c:409 msgid "Switch to workspace 10" msgstr "Siirry työtilaan 10" #: ../../WPrefs.app/KeyboardShortcuts.c:410 msgid "Shortcut for window 1" msgstr "Pikavalinta ikkunalle 1" #: ../../WPrefs.app/KeyboardShortcuts.c:411 msgid "Shortcut for window 2" msgstr "Pikavalinta ikkunalle 2" #: ../../WPrefs.app/KeyboardShortcuts.c:412 msgid "Shortcut for window 3" msgstr "Pikavalinta ikkunalle 3" #: ../../WPrefs.app/KeyboardShortcuts.c:413 msgid "Shortcut for window 4" msgstr "Pikavalinta ikkunalle 4" #: ../../WPrefs.app/KeyboardShortcuts.c:414 msgid "Shortcut for window 5" msgstr "Pikavalinta ikkunalle 5" #: ../../WPrefs.app/KeyboardShortcuts.c:415 msgid "Shortcut for window 6" msgstr "Pikavalinta ikkunalle 6" #: ../../WPrefs.app/KeyboardShortcuts.c:416 msgid "Shortcut for window 7" msgstr "Pikavalinta ikkunalle 7" #: ../../WPrefs.app/KeyboardShortcuts.c:417 msgid "Shortcut for window 8" msgstr "Pikavalinta ikkunalle 8" #: ../../WPrefs.app/KeyboardShortcuts.c:418 msgid "Shortcut for window 9" msgstr "Pikavalinta ikkunalle 9" #: ../../WPrefs.app/KeyboardShortcuts.c:419 msgid "Shortcut for window 10" msgstr "Pikavalinta ikkunalle 10" #: ../../WPrefs.app/KeyboardShortcuts.c:420 msgid "Switch to Next Screen/Monitor" msgstr "Vaihda seuraavaan ruutuun/monitoriin" #: ../../WPrefs.app/KeyboardShortcuts.c:421 msgid "Raise Clip" msgstr "Nosta Liitin" #: ../../WPrefs.app/KeyboardShortcuts.c:422 msgid "Lower Clip" msgstr "Laske Liitin" #: ../../WPrefs.app/KeyboardShortcuts.c:423 msgid "Raise/Lower Clip" msgstr "Nosta/Laske Liitin" #: ../../WPrefs.app/KeyboardShortcuts.c:425 msgid "Toggle keyboard language" msgstr "Vaihda näppäimistön kieli" #: ../../WPrefs.app/KeyboardShortcuts.c:439 msgid "Shortcut" msgstr "Pikavalinta" #: ../../WPrefs.app/KeyboardShortcuts.c:450 ../../WPrefs.app/Menu.c:788 msgid "Clear" msgstr "Tyhjennä" #: ../../WPrefs.app/KeyboardShortcuts.c:512 msgid "Keyboard Shortcut Preferences" msgstr "Näppäimistöpikavalintojen asetukset" #: ../../WPrefs.app/KeyboardShortcuts.c:514 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "Muuta näppäinpikavalintoja toiminnoille kuten\n" "työtilojen vaihto ja valikkojen avaus." #: ../../WPrefs.app/Menu.c:477 msgid "New Items" msgstr "Uudet alkiot" #: ../../WPrefs.app/Menu.c:478 msgid "Sample Commands" msgstr "Näytekomentoja" #: ../../WPrefs.app/Menu.c:479 msgid "Sample Submenus" msgstr "Näyte-alivalikkoja" #: ../../WPrefs.app/Menu.c:493 msgid "Run Program" msgstr "Käynnistä ohjelma" #: ../../WPrefs.app/Menu.c:494 msgid "Internal Command" msgstr "Sisäinen komento" #: ../../WPrefs.app/Menu.c:495 msgid "Submenu" msgstr "Alivalikko" #: ../../WPrefs.app/Menu.c:496 msgid "External Submenu" msgstr "Ulkoinen alivalikko" #: ../../WPrefs.app/Menu.c:497 msgid "Generated Submenu" msgstr "Ohjelman luoma alivalikko" #: ../../WPrefs.app/Menu.c:498 msgid "Directory Contents" msgstr "Hakemiston sisältö" #: ../../WPrefs.app/Menu.c:499 msgid "Workspace Menu" msgstr "Työtilavalikko" #: ../../WPrefs.app/Menu.c:500 ../../WPrefs.app/MouseSettings.c:840 msgid "Window List Menu" msgstr "Ikkunalistavalikko" #: ../../WPrefs.app/Menu.c:519 msgid "XTerm" msgstr "XTerm" #: ../../WPrefs.app/Menu.c:522 msgid "rxvt" msgstr "rxvt" #: ../../WPrefs.app/Menu.c:525 msgid "ETerm" msgstr "ETerm" #: ../../WPrefs.app/Menu.c:528 msgid "Run..." msgstr "Käynnistä..." #: ../../WPrefs.app/Menu.c:531 msgid "Netscape" msgstr "Netscape" #: ../../WPrefs.app/Menu.c:534 msgid "gimp" msgstr "gimp" #: ../../WPrefs.app/Menu.c:537 msgid "epic" msgstr "epic" #: ../../WPrefs.app/Menu.c:540 msgid "ee" msgstr "ee" #: ../../WPrefs.app/Menu.c:543 msgid "xv" msgstr "xv" #: ../../WPrefs.app/Menu.c:546 msgid "Acrobat Reader" msgstr "Acrobat Reader" #: ../../WPrefs.app/Menu.c:549 msgid "ghostview" msgstr "ghostview" #: ../../WPrefs.app/Menu.c:552 ../../WPrefs.app/Menu.c:809 msgid "Exit Window Maker" msgstr "Sulje Window Maker" #: ../../WPrefs.app/Menu.c:575 msgid "Debian Menu" msgstr "Debian-valikko" #: ../../WPrefs.app/Menu.c:578 msgid "RedHat Menu" msgstr "RedHat-valikko" #: ../../WPrefs.app/Menu.c:581 msgid "Menu Conectiva" msgstr "" #: ../../WPrefs.app/Menu.c:584 ../../WPrefs.app/Themes.c:250 msgid "Themes" msgstr "Teemat" #: ../../WPrefs.app/Menu.c:589 msgid "Bg Images (scale)" msgstr "Taustakuvat (venytys)" #: ../../WPrefs.app/Menu.c:594 msgid "Bg Images (tile)" msgstr "Taustakuvat (mosaiikki)" #: ../../WPrefs.app/Menu.c:599 msgid "Assorted XTerms" msgstr "XTerm-kokoelma" #: ../../WPrefs.app/Menu.c:601 msgid "XTerm Yellow on Blue" msgstr "XTerm, keltainen sinisellä" #: ../../WPrefs.app/Menu.c:604 msgid "XTerm White on Black" msgstr "XTerm, valkoinen mustalla" #: ../../WPrefs.app/Menu.c:607 msgid "XTerm Black on White" msgstr "XTerm, musta valkoisella" #: ../../WPrefs.app/Menu.c:610 msgid "XTerm Black on Beige" msgstr "XTerm, musta beigellä" #: ../../WPrefs.app/Menu.c:613 msgid "XTerm White on Green" msgstr "XTerm, valkoinen vihreällä" #: ../../WPrefs.app/Menu.c:616 msgid "XTerm White on Olive" msgstr "XTerm, valkoinen oliivinvihreällä" #: ../../WPrefs.app/Menu.c:619 msgid "XTerm Blue on Blue" msgstr "XTerm, sininen sinisellä" #: ../../WPrefs.app/Menu.c:622 msgid "XTerm BIG FONTS" msgstr "XTerm, SUURET FONTIT" #: ../../WPrefs.app/Menu.c:644 msgid "Program to Run" msgstr "Käynnistettävä ohjelma" #: ../../WPrefs.app/Menu.c:658 msgid "Run the program inside a Xterm" msgstr "Aja ohjelma Xtermissä" #: ../../WPrefs.app/Menu.c:668 msgid "Path for Menu" msgstr "Valikon polku" #: ../../WPrefs.app/Menu.c:681 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin" msgstr "" "Syötä valikon sisältävän tiedoston polku\n" "tai ne hakemistot, jotka sisältävät ohjelmat,\n" "jotka haluat mukaan valikkoon. Esim.\n" "~/GNUstep/Library/WindowMaker/menu\n" "tai\n" "/usr/bin ~/xbin" #: ../../WPrefs.app/Menu.c:696 msgid "Command" msgstr "Komento" #: ../../WPrefs.app/Menu.c:710 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "Syötä komento, joka tulostaa valikko-\n" "määritelmän vakiotulostusvirtaan." #: ../../WPrefs.app/Menu.c:721 msgid "Command to Open Files" msgstr "Tiedostojen avauskomento" #: ../../WPrefs.app/Menu.c:735 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "Kirjoita komento, jolla haluat avata alla näkyvien\n" "hakemistojen sisältämät tiedostot." #: ../../WPrefs.app/Menu.c:744 msgid "Directories with Files" msgstr "Hakemistot, jotka sisältävät tiedostot" #: ../../WPrefs.app/Menu.c:757 msgid "Strip extensions from file names" msgstr "Älä näytä tiedostonimien päätteitä" #: ../../WPrefs.app/Menu.c:769 msgid "Keyboard Shortcut" msgstr "Näppäimistöpikavalinta" #: ../../WPrefs.app/Menu.c:805 msgid "Arrange Icons" msgstr "Järjestä kuvakkeet" #: ../../WPrefs.app/Menu.c:806 msgid "Hide All Windows Except For The Focused One" msgstr "Piilota kaikki ikkunat aktiivista lukuunottamatta" #: ../../WPrefs.app/Menu.c:807 msgid "Show All Windows" msgstr "Näytä kaikki ikkunat" #: ../../WPrefs.app/Menu.c:810 msgid "Exit X Session" msgstr "Sulje X-istunto" #: ../../WPrefs.app/Menu.c:811 msgid "Restart Window Maker" msgstr "Käynnistä WM uudelleen" #: ../../WPrefs.app/Menu.c:812 msgid "Start Another Window Manager : (" msgstr "Käynnistä toinen ikkunamanageri : (" #: ../../WPrefs.app/Menu.c:814 msgid "Save Current Session" msgstr "Tallenna tämä istunto" #: ../../WPrefs.app/Menu.c:815 msgid "Clear Saved Session" msgstr "Tyhjennä tallennettu istunto" #: ../../WPrefs.app/Menu.c:816 msgid "Refresh Screen" msgstr "Virkistä ruutu" #: ../../WPrefs.app/Menu.c:817 msgid "Open Info Panel" msgstr "Avaa infopaneeli" #: ../../WPrefs.app/Menu.c:818 msgid "Open Copyright Panel" msgstr "Avaa copyright-paneeli" #: ../../WPrefs.app/Menu.c:824 msgid "Window Manager to Start" msgstr "Käynnistettävä ikkunamanageri" #: ../../WPrefs.app/Menu.c:840 msgid "Do not confirm action." msgstr "Ei vahvistuspaneelia" #: ../../WPrefs.app/Menu.c:850 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "Ohjeet:\n" " - valikkoon lisätään merkintöjä siirtämällä\n" " niitä vasemmalta\n" " - valikosta poistetaan merkintöjä siirtämällä\n" " niitä hiirellä pois\n" " - merkintöjen paikkaa vaihdetaan siirtämällä\n" " niitä hiirellä\n" " - merkintöjä kopioidaan siirtämällä niitä\n" " Control painettuna\n" " - merkinnän nimeä vaihdetaan kaksois-\n" " napauttamalla merkintää\n" " - merkintään liittyviä tietoja vaihdetaan\n" " painamalla merkintää" #: ../../WPrefs.app/Menu.c:1067 #, c-format msgid "unknown command '%s' in menu" msgstr "Valikossa on tuntematon komento '%s'" #: ../../WPrefs.app/Menu.c:1099 msgid ": Execute Program" msgstr ": Käynnistä ohjelma" #: ../../WPrefs.app/Menu.c:1103 msgid ": Perform Internal Command" msgstr ": Suorita sisäinen komento" #: ../../WPrefs.app/Menu.c:1107 msgid ": Open a Submenu" msgstr ": Avaa alivalikko" #: ../../WPrefs.app/Menu.c:1111 msgid ": Program Generated Submenu" msgstr ": Ohjelman luoma alivalikko" #: ../../WPrefs.app/Menu.c:1115 msgid ": Directory Contents Menu" msgstr ": Hakemiston sisällön mukainen valikko" #: ../../WPrefs.app/Menu.c:1119 msgid ": Open Workspaces Submenu" msgstr ": Avaa työtila-alivalikko" #: ../../WPrefs.app/Menu.c:1123 msgid ": Open Window List Submenu" msgstr "Avaa ikkunalista-alivalikko" #: ../../WPrefs.app/Menu.c:1343 msgid "Remove Submenu" msgstr "Poista alivalikko" #: ../../WPrefs.app/Menu.c:1344 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "" "Jos tämä merkintä poistetaan, kaikki alivalikon\n" "sisältämät alkiot häviävät. Haluatko silti poistaa sen?" #: ../../WPrefs.app/Menu.c:1346 msgid "Yes" msgstr "Kyllä" #: ../../WPrefs.app/Menu.c:1346 msgid "No" msgstr "Ei" #: ../../WPrefs.app/Menu.c:1347 msgid "Yes, don't ask again." msgstr "Kyllä, älä kysy enää." #. if there is a localized plmenu for the tongue put it's filename here #: ../../WPrefs.app/Menu.c:1514 ../../WPrefs.app/Menu.c:1521 #, c-format msgid "%s/Library/WindowMaker/plmenu" msgstr "%s/Library/WindowMaker/plmenu.fi" #: ../../WPrefs.app/Menu.c:1530 #, c-format msgid "Could not open default menu from '%s'" msgstr "Oletusvalikon '%s' avaaminen ei onnistunut" #: ../../WPrefs.app/Menu.c:1569 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "Tämä työkalu ei tue käytössä olevaa valikkotiedostomuotoa.\n" "Haluatko hylätä tämänhetkisen valikon, jotta voit käyttää\n" "tätä työkalua?" #: ../../WPrefs.app/Menu.c:1572 msgid "Yes, Discard and Update" msgstr "Kyllä, hylkää ja päivitä" #: ../../WPrefs.app/Menu.c:1573 msgid "No, Keep Current Menu" msgstr "Ei, pidä nykyinen valikko" #: ../../WPrefs.app/Menu.c:1821 msgid "Applications Menu Definition" msgstr "Sovellusvalikon määrittely" #: ../../WPrefs.app/Menu.c:1823 msgid "Edit the menu for launching applications." msgstr "Muokkaa sovellusten käynnistysvalikkoa." #: ../../WPrefs.app/MenuPreferences.c:112 msgid "Menu Scrolling Speed" msgstr "Valikon liukunopeus" #: ../../WPrefs.app/MenuPreferences.c:161 msgid "Submenu Alignment" msgstr "Alivalikon sijoitus" #: ../../WPrefs.app/MenuPreferences.c:205 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "Avaa alivalikot aina ruudun sisällä vierityksen sijaan." #: ../../WPrefs.app/MenuPreferences.c:210 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "" "Liu'uta ruudun ulkopuolinen valikko näkyviin, kun osoitin on sen päällä." #: ../../WPrefs.app/MenuPreferences.c:230 msgid "Menu Preferences" msgstr "Valikkoasetukset" #: ../../WPrefs.app/MenuPreferences.c:232 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "Valikon käyttöön liittyvät valinnat. Liukunopeus,\n" "alivalikoiden sijoitus, yms." #: ../../WPrefs.app/MouseSettings.c:141 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "Väärä hiiren kiihdytyksen arvo. Pitää olla positiivinen reaaliluku." #: ../../WPrefs.app/MouseSettings.c:161 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "" "Virheellinen hiiren kiihdytyksen kynnysarvo. Sen pitää olla pikselimäärä, " "joka voidaan liikuttaa ilman kiihdytystä." #: ../../WPrefs.app/MouseSettings.c:262 ../../WPrefs.app/MouseSettings.c:274 #: ../../WPrefs.app/MouseSettings.c:286 ../../WPrefs.app/MouseSettings.c:298 #, c-format msgid "bad value %s for option %s" msgstr "virheellinen arvo %s valinnalle %s" #: ../../WPrefs.app/MouseSettings.c:357 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "" "muunnosnäppäintä %s valintaa ModifierKey varten ei tunnistettu. Käytetään " "oletusta %s" #: ../../WPrefs.app/MouseSettings.c:382 msgid "could not retrieve keyboard modifier mapping" msgstr "muunnosnäppäimen sijoituksen noutaminen epäonnistui" #: ../../WPrefs.app/MouseSettings.c:477 msgid "Mouse Speed" msgstr "Hiiren nopeus" #: ../../WPrefs.app/MouseSettings.c:507 msgid "Acceler.:" msgstr "Kiihdytys:" #: ../../WPrefs.app/MouseSettings.c:520 msgid "Threshold:" msgstr "Kynnys:" #: ../../WPrefs.app/MouseSettings.c:535 msgid "Double-Click Delay" msgstr "Kaksoispainalluksen viive" #: ../../WPrefs.app/MouseSettings.c:579 msgid "Test" msgstr "Kokeile" #: ../../WPrefs.app/MouseSettings.c:609 msgid "Workspace Mouse Actions" msgstr "Työtilan hiiritoiminnot" #: ../../WPrefs.app/MouseSettings.c:614 msgid "Disable mouse actions" msgstr "Estä hiiritoiminnot" #: ../../WPrefs.app/MouseSettings.c:620 msgid "Left Button" msgstr "Vasen painike" #: ../../WPrefs.app/MouseSettings.c:630 msgid "Middle Button" msgstr "Keskipainike" #: ../../WPrefs.app/MouseSettings.c:640 msgid "Right Button" msgstr "Oikea painike" #: ../../WPrefs.app/MouseSettings.c:650 msgid "Mouse Wheel" msgstr "Hiiren rulla" #: ../../WPrefs.app/MouseSettings.c:672 msgid "Mouse Grab Modifier" msgstr "Hiirellätarttumisnäppäin" #: ../../WPrefs.app/MouseSettings.c:674 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "Muunnosnäppäin, jota käytetään toiminnoissa,\n" "joiden avulla ikkunoita voidaan siirtää\n" "vetämällä hiirellä muualta kuin otsikkopalkista." #: ../../WPrefs.app/MouseSettings.c:708 #, c-format msgid "could not create %s" msgstr "ei voitu luoda %s:aa" #: ../../WPrefs.app/MouseSettings.c:724 #, c-format msgid "could not create temporary file %s" msgstr "ei voitu luoda tilapäistä tiedostoa %s" #: ../../WPrefs.app/MouseSettings.c:756 #, c-format msgid "could not rename file %s to %s\n" msgstr "Ei voitu vaihtaa nimeä %s -> %s\n" #: ../../WPrefs.app/MouseSettings.c:829 msgid "Shift" msgstr "" #: ../../WPrefs.app/MouseSettings.c:830 msgid "Lock" msgstr "" #: ../../WPrefs.app/MouseSettings.c:831 msgid "Control" msgstr "" #: ../../WPrefs.app/MouseSettings.c:832 msgid "Mod1" msgstr "" #: ../../WPrefs.app/MouseSettings.c:833 msgid "Mod2" msgstr "" #: ../../WPrefs.app/MouseSettings.c:834 msgid "Mod3" msgstr "" #: ../../WPrefs.app/MouseSettings.c:835 msgid "Mod4" msgstr "" #: ../../WPrefs.app/MouseSettings.c:836 msgid "Mod5" msgstr "" #: ../../WPrefs.app/MouseSettings.c:839 msgid "Applications Menu" msgstr "Sovellusvalikko" #: ../../WPrefs.app/MouseSettings.c:841 msgid "Select Windows" msgstr "Ikkunoiden valinta" #: ../../WPrefs.app/MouseSettings.c:844 msgid "Switch Workspaces" msgstr "Työtilan vaihto" #: ../../WPrefs.app/MouseSettings.c:849 msgid "Mouse Preferences" msgstr "Hiiriasetukset" #: ../../WPrefs.app/MouseSettings.c:851 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "Hiiren nopeus, kiihdytys, kaksoisnapautuksen viive,\n" "hiiren nappien merkitys jne." #: ../../WPrefs.app/Paths.c:84 msgid "bad value in option IconPath. Using default path list" msgstr "Virheellinen arvo valinnassa IconPath. Käytetään oletushakupolkuja" #: ../../WPrefs.app/Paths.c:101 msgid "bad value in option PixmapPath. Using default path list" msgstr "" "valinta PixmapPath sisältää virheellisen arvon. Käytetään oletushakupolkuja" #: ../../WPrefs.app/Paths.c:149 msgid "Select directory" msgstr "Valitse hakemisto" #: ../../WPrefs.app/Paths.c:270 msgid "Icon Search Paths" msgstr "Kuvakkeiden hakupolut" #: ../../WPrefs.app/Paths.c:281 ../../WPrefs.app/Paths.c:312 #: ../../WPrefs.app/TexturePanel.c:1311 msgid "Add" msgstr "Lisää" #: ../../WPrefs.app/Paths.c:301 msgid "Pixmap Search Paths" msgstr "Kuvien hakupolut" #: ../../WPrefs.app/Paths.c:341 msgid "Search Path Configuration" msgstr "Hakupolkujen asetukset" #: ../../WPrefs.app/Paths.c:343 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "" "Kuvien ja kuvakkeiden hakemiseen käytettävät\n" "hakupolut." #: ../../WPrefs.app/Preferences.c:75 msgid "OFF" msgstr "POIS" #: ../../WPrefs.app/Preferences.c:77 msgid "1 pixel" msgstr "1 pikseli" #. 2-4 #: ../../WPrefs.app/Preferences.c:80 #, c-format msgid "%i pixels" msgstr "%i pikseliä" #. >4 #: ../../WPrefs.app/Preferences.c:83 #, c-format msgid "%i pixels " msgstr "%i pikseliä " #: ../../WPrefs.app/Preferences.c:229 msgid "Size Display" msgstr "Koon näyttö" #: ../../WPrefs.app/Preferences.c:231 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "Ikkunan kokoa muutettaessa näytettävän\n" "kokonäytön paikka tai tyyli." #: ../../WPrefs.app/Preferences.c:238 ../../WPrefs.app/Preferences.c:259 msgid "Corner of screen" msgstr "Ruudun kulmassa" #: ../../WPrefs.app/Preferences.c:239 ../../WPrefs.app/Preferences.c:260 msgid "Center of screen" msgstr "Ruudun keskipisteessä" #: ../../WPrefs.app/Preferences.c:240 ../../WPrefs.app/Preferences.c:261 msgid "Center of resized window" msgstr "Ks. ikkunan keskipisteessä" #: ../../WPrefs.app/Preferences.c:241 msgid "Technical drawing-like" msgstr "Teknisen piirr. tyyppinen" #: ../../WPrefs.app/Preferences.c:242 ../../WPrefs.app/Preferences.c:262 msgid "Disabled" msgstr "Ei käytössä" #: ../../WPrefs.app/Preferences.c:250 msgid "Position Display" msgstr "Sijainnin näyttö" #: ../../WPrefs.app/Preferences.c:252 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "Ikkunaa siirrettäessä näkyvän\n" "sijaintinäytön paikka tai tyyli." #: ../../WPrefs.app/Preferences.c:270 msgid "Show balloon text for..." msgstr "Näytä puhekuplateksti..." #: ../../WPrefs.app/Preferences.c:277 msgid "incomplete window titles" msgstr "epätäydellisille ikkunaotsikoille" #: ../../WPrefs.app/Preferences.c:278 msgid "miniwindow titles" msgstr "mini-ikkunoiden otsikoille" #: ../../WPrefs.app/Preferences.c:279 msgid "application/dock icons" msgstr "sovellus-/telakkakuvakkeille" #: ../../WPrefs.app/Preferences.c:280 msgid "internal help" msgstr "sisäinen apu" #: ../../WPrefs.app/Preferences.c:292 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "" "Nosta ikkuna, kun aktiivista ikku-\n" "naa vaihdetaan näppäimistöllä." #: ../../WPrefs.app/Preferences.c:298 msgid "" "Enable keyboard language\n" "switch button in window titlebars." msgstr "" "Näytä näppäimistön kielen vaihtopainike\n" "ikkunoiden otsikkopalkeissa." #: ../../WPrefs.app/Preferences.c:307 msgid "Workspace border" msgstr "Työtilan reuna" #: ../../WPrefs.app/Preferences.c:323 msgid "Left/Right" msgstr "Vas./oik." #: ../../WPrefs.app/Preferences.c:328 msgid "Top/Bottom" msgstr "Ylh./alh." #: ../../WPrefs.app/Preferences.c:349 msgid "Miscellaneous Ergonomic Preferences" msgstr "Sekalaiset ergonomia-asetukset" #: ../../WPrefs.app/Preferences.c:350 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "Erilaisia asetuksia kuten puhekuplateksti,\n" "geometrianäytöt jne." #: ../../WPrefs.app/TexturePanel.c:323 msgid "Saturation" msgstr "" #: ../../WPrefs.app/TexturePanel.c:325 msgid "Brightness" msgstr "Kirkkaus" #: ../../WPrefs.app/TexturePanel.c:373 ../../WPrefs.app/TexturePanel.c:380 msgid "Hue" msgstr "Sävy" #: ../../WPrefs.app/TexturePanel.c:610 msgid "Could not load the selected file: " msgstr "Ei voitu avata valittua tiedostoa: " #: ../../WPrefs.app/TexturePanel.c:664 msgid "Open Image" msgstr "Avaa kuva" #: ../../WPrefs.app/TexturePanel.c:694 msgid "The selected file does not contain a supported image." msgstr "Valittu tiedosto ei sisällä tuetun tyyppistä kuvaa." #: ../../WPrefs.app/TexturePanel.c:945 #, c-format msgid "could not load file '%s': %s" msgstr "tiedoston '%s': %s lataus epäonnistui" #: ../../WPrefs.app/TexturePanel.c:1064 #, c-format msgid "error creating texture %s" msgstr "" #: ../../WPrefs.app/TexturePanel.c:1255 msgid "Texture Panel" msgstr "Kuviopaneeli" #: ../../WPrefs.app/TexturePanel.c:1263 msgid "Texture Name" msgstr "Kuvion nimi" #: ../../WPrefs.app/TexturePanel.c:1275 msgid "Solid Color" msgstr "Yksivärinen" #: ../../WPrefs.app/TexturePanel.c:1276 msgid "Gradient Texture" msgstr "Liukuväri" #: ../../WPrefs.app/TexturePanel.c:1277 msgid "Simple Gradient Texture" msgstr "Yksinkertainen liukuväri" #: ../../WPrefs.app/TexturePanel.c:1278 msgid "Textured Gradient" msgstr "Liukuväritetty kuvio" #: ../../WPrefs.app/TexturePanel.c:1279 msgid "Image Texture" msgstr "Kuva" #: ../../WPrefs.app/TexturePanel.c:1287 msgid "Default Color" msgstr "Oletusväri" #: ../../WPrefs.app/TexturePanel.c:1299 msgid "Gradient Colors" msgstr "Liukuvärit" #: ../../WPrefs.app/TexturePanel.c:1395 msgid "Direction" msgstr "Suunta" #: ../../WPrefs.app/TexturePanel.c:1423 msgid "Gradient" msgstr "Liukuväri" #: ../../WPrefs.app/TexturePanel.c:1441 msgid "Gradient Opacity" msgstr "Liukuvärin peittävyys" #: ../../WPrefs.app/TexturePanel.c:1484 msgid "Image" msgstr "Kuva" #: ../../WPrefs.app/TexturePanel.c:1516 msgid "Tile" msgstr "Tiili" #: ../../WPrefs.app/TexturePanel.c:1517 msgid "Scale" msgstr "Venytä" #: ../../WPrefs.app/TexturePanel.c:1519 msgid "Maximize" msgstr "Suurenna" #: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 msgid "Set" msgstr "Aseta" #: ../../WPrefs.app/Themes.c:132 msgid "Stop" msgstr "Pysäytä" #: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:203 #: ../../WPrefs.app/Themes.c:223 msgid "Download" msgstr "Imuroi" #: ../../WPrefs.app/Themes.c:171 msgid "Save Current Theme" msgstr "Tallenna nykyinen teema" #: ../../WPrefs.app/Themes.c:180 msgid "Load" msgstr "Lataa" #: ../../WPrefs.app/Themes.c:185 msgid "Install" msgstr "Asenna" #: ../../WPrefs.app/Themes.c:193 msgid "Tile of The Day" msgstr "Päivän tiili" #: ../../WPrefs.app/Themes.c:213 msgid "Bar of The Day" msgstr "Päivän palkki" #: ../../WPrefs.app/WindowHandling.c:141 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "" "tiedolla WindowPlacement on virheellinen arvo %s. Käytetään oletusarvoa" #: ../../WPrefs.app/WindowHandling.c:163 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "" "asetuksessa WindowPlaceOrigin on virheellistä tietoa. Käytetään oletusta " "(0,0)" #: ../../WPrefs.app/WindowHandling.c:243 msgid "Window Placement" msgstr "Ikkunan sijoitus" #: ../../WPrefs.app/WindowHandling.c:244 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "Miten ikkunat sijoitetaan, kun ne tulevat\n" "ruudulle ensimmäisen kerran." #: ../../WPrefs.app/WindowHandling.c:250 msgid "Automatic" msgstr "Automaattinen" #: ../../WPrefs.app/WindowHandling.c:251 msgid "Random" msgstr "Satunnainen" #: ../../WPrefs.app/WindowHandling.c:252 msgid "Manual" msgstr "Käsin" #: ../../WPrefs.app/WindowHandling.c:253 msgid "Cascade" msgstr "Limittäin" #: ../../WPrefs.app/WindowHandling.c:254 msgid "Smart" msgstr "Älykäs" #: ../../WPrefs.app/WindowHandling.c:260 msgid "Placement Origin" msgstr "Sijoituksen origo" #: ../../WPrefs.app/WindowHandling.c:321 msgid "Opaque Move" msgstr "Näytä sisältö siirr." #: ../../WPrefs.app/WindowHandling.c:322 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "Pitääkö ikkunan sisällön liikkua ikkunoita\n" "siirreltäessä, vai pitääkö näyttää\n" "vain kehys.\n" #: ../../WPrefs.app/WindowHandling.c:361 msgid "When maximizing..." msgstr "Suurennettaessa..." #: ../../WPrefs.app/WindowHandling.c:366 msgid "...do not cover icons" msgstr "...älä peitä kuvakkeita" #: ../../WPrefs.app/WindowHandling.c:372 msgid "...do not cover dock" msgstr "...älä peitä sovellustelakkaa" #: ../../WPrefs.app/WindowHandling.c:381 msgid "Edge Resistance" msgstr "Reunavastus" #: ../../WPrefs.app/WindowHandling.c:383 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "Reunavastus saa ikkunat `vastustamaan'\n" "siirtämistä reunavastuksen määrällä, kun\n" "niitä siirretään toisten ikkunoiden tai\n" "ruudun reunojen yli." #: ../../WPrefs.app/WindowHandling.c:402 msgid "Resist" msgstr "Vastus" #: ../../WPrefs.app/WindowHandling.c:407 msgid "Attract" msgstr "Veto" #: ../../WPrefs.app/WindowHandling.c:423 msgid "" "Open dialogs in same workspace\n" "as their owners" msgstr "" "Avaa valintaikkunat\n" "omistajansa työtilassa" #: ../../WPrefs.app/WindowHandling.c:450 msgid "Window Handling Preferences" msgstr "Ikkunoidenkäsittelyn asetukset" #: ../../WPrefs.app/WindowHandling.c:452 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "Ikkunoidenkäsittelyn valinnat. Ensisijoituspaikka,\n" "reunavastus, näytä sisältö siirrettäessä jne." #: ../../WPrefs.app/Workspace.c:176 msgid "Workspace Navigation" msgstr "Työtilanavigointi" #: ../../WPrefs.app/Workspace.c:183 msgid "" "wrap to the first workspace after the\n" "last workspace." msgstr "siirry ensimmäiseen työtilaan siirryttäessä viimeisen yli." #: ../../WPrefs.app/Workspace.c:205 msgid "switch workspaces while dragging windows." msgstr "vaihda työtiloja ikkunoita vedettäessä." #: ../../WPrefs.app/Workspace.c:227 msgid "automatically create new workspaces." msgstr "luo uusia työtiloja automaattisesti." #: ../../WPrefs.app/Workspace.c:250 msgid "" "Position of workspace\n" "name display" msgstr "" "Työtilan nimi-\n" "näytön paikka" #: ../../WPrefs.app/Workspace.c:269 msgid "Disable" msgstr "Ei käytössä" #: ../../WPrefs.app/Workspace.c:271 msgid "Top" msgstr "Ylhäällä" #: ../../WPrefs.app/Workspace.c:272 msgid "Bottom" msgstr "Alhaalla" #: ../../WPrefs.app/Workspace.c:273 msgid "Top/Left" msgstr "Ylävasemmalla" #: ../../WPrefs.app/Workspace.c:274 msgid "Top/Right" msgstr "Yläoikealla" #: ../../WPrefs.app/Workspace.c:275 msgid "Bottom/Left" msgstr "Alavasemmalla" #: ../../WPrefs.app/Workspace.c:276 msgid "Bottom/Right" msgstr "Alaoikealla" #: ../../WPrefs.app/Workspace.c:284 msgid "Dock/Clip" msgstr "Telakka/Liitin" #: ../../WPrefs.app/Workspace.c:303 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "Sovellustelakka (pystysuuntainen kuvake-\n" "palkki ruudun reunassa) päälle/pois." #: ../../WPrefs.app/Workspace.c:324 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "Liitin (se laite, jossa on paperiliittimen\n" "kuva) päälle/pois." #: ../../WPrefs.app/Workspace.c:364 msgid "Workspace Preferences" msgstr "Työtila-asetukset" #: ../../WPrefs.app/Workspace.c:366 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "Työtilanavigoinnin ominaisuudet.\n" "Tästä voi myös laittaa Telakan ja Liittimen päälle/pois." #~ msgid "Disable cycling color highlighting of icons" #~ msgstr "Ei kuvakkeiden korostusta värikierrolla." #~ msgid "" #~ "Set keyboard input focus to\n" #~ "the window under the mouse pointer,\n" #~ "including the root window." #~ msgstr "" #~ "Aseta hiiren osoittimen alla oleva\n" #~ "ikkuna, juuri-ikkuna mukaanlukien,\n" #~ "näppäimistösyötön kohteeksi." #~ msgid "Click window to focus" #~ msgstr "Napauta ikkunaa kohdistaaksesi" #~ msgid "Focus follows mouse" #~ msgstr "Kohdistus seuraa hiirtä" #~ msgid "\"Sloppy\" focus" #~ msgstr "\"Huolimaton\" kohdistus" #~ msgid "Btn1 (left)" #~ msgstr "Painike 1 (vasen)" #~ msgid "Btn2 (middle)" #~ msgstr "Painike 2 (keski)" #~ msgid "Btn3 (right)" #~ msgstr "Painike 3 (oikea)" #~ msgid "Btn4" #~ msgstr "Painike 4" #~ msgid "Btn5" #~ msgstr "Painike 5" #~ msgid "Command to Execute" #~ msgstr "Suoritettava komento" #~ msgid "New Command %i" #~ msgstr "Uusi komento %i" #~ msgid "Workspaces" #~ msgstr "Työtilat" #~ msgid "Add Command" #~ msgstr "Lisää komento" #~ msgid "Add External Menu" #~ msgstr "Lisää ulkopuolinen valikko" #~ msgid "Remove Item" #~ msgstr "Poista alkio" #~ msgid "Cut Item" #~ msgstr "Leikkaa alkio" #~ msgid "Copy Item" #~ msgstr "Kopioi alkio" #~ msgid "Paste Item" #~ msgstr "Liitä alkio" #~ msgid "Label" #~ msgstr "Nimike" #~ msgid "Execute Shell Command" #~ msgstr "Suorita kuoren komento" #~ msgid "Hide Others" #~ msgstr "Piilota muut" #~ msgid "Legal Panel" #~ msgstr "Oikeudet-paneeli" #~ msgid "Menu Path/Directory List" #~ msgstr "Valikkopolku tai hakemistolistaus" #~ msgid "Ask help to the Guru" #~ msgstr "Pyydä Gurulta apua" #~ msgid "" #~ " 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 keep using the current menu, please read the '%s/%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. Window " #~ "Maker supports both formats." #~ msgstr "" #~ " Käytössä olevaa valikkoa ei voitu avata. Se tarkoittaa, että valikossa " #~ "on syntaksivirhe tai se on sellaisessa muodossa, jota WPrefs ei tue (WPrefs " #~ "tukee vain \"property list\"-valikoita).\n" #~ " Jos haluat käyttää edelleen nykyistä valikkoa, ole hyvä ja lue '%s/%s', " #~ "paina 'Pidä nykyinen valikko'-painiketta ja muokkaa valikkotiedostoa " #~ "tekstieditorilla.\n" #~ " Jos haluat käyttää WPrefsin valikkomuokkainta, paina \"Kopioi " #~ "oletusvalikko\"-painiketta. Se korvaa nykyisen valikon oletusvalikolla, jota " #~ "voi muokata.\n" #~ " Jos haluat enemmän joustavuutta, jatka nykyisen valikon käyttöä, sillä " #~ "se mahdollistaa C-esiprosessorin (cpp) makrojen käytön ja valikon helpon " #~ "käsin muokkauksen. Window Maker tukee molempia valikkomuotoja." #~ msgid "Copy Default Menu" #~ msgstr "Kopioi oletusvalikko" #~ msgid "Menu Guru - Select Type" #~ msgstr "Valikkoguru - Valitse tyyppi" #~ msgid "Next" #~ msgstr "Seuraava" #~ msgid "Menu Guru - Select Menu File" #~ msgstr "Valikkoguru - Valitse valikkotiedosto" #~ msgid "Menu Guru - Select Pipe Command" #~ msgstr "Valikkoguru - Valitse putkikomento" #~ msgid "Menu Guru - Select Directories" #~ msgstr "Valikkoguru - Valitse hakemistot" #~ msgid "Menu Guru - Select Command" #~ msgstr "Valikkoguru - Valitse komento" #~ msgid "Back" #~ msgstr "Taaksepäin" #~ 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 "" #~ "Tämä auttaa sinua luomaan alivalikon, jonka määritelmä sijaitsee muussa " #~ "tiedostossa tai joka luodaan dynaamisesti.\n" #~ "Mitä haluat käyttää alivalikon sisältönä?" #~ msgid "" #~ "A file containing the menu definition in the plain text (non-property list) " #~ "menu format." #~ msgstr "" #~ "Tiedosto, joka sisältää valikkomääritelmän \"pelkkä teksti\" (ei \"property " #~ "list\") -muodossa." #~ msgid "" #~ "The menu definition generated by a script/program read through a pipe." #~ msgstr "" #~ "Valikkomääritelmä, joka luodaan skriptillä tai ohjelmalla ja luetaan " #~ "putkituksen läpi." #~ msgid "The files in one or more directories." #~ msgstr "Tiedostot yhdessä tai useammassa hakemistossa." #~ msgid "Type the path for the menu file:" #~ msgstr "Kirjoita valikkotiedoston polku:" #~ 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 "" #~ "Valikkotiedoston pitää sisältää valikko pelkkä teksti -muodossa. Tämä muoto " #~ "kuvaillaan Window Makerin sisältämissä valikkotiedostoissa, luultavasti " #~ "paikassa ~/GNUstep/Library/WindowMaker/menu" #~ msgid "Type the command that will generate the menu definition:" #~ msgstr "Kirjoita komento, joka luo valikkomääritelmän:" #~ 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 "" #~ "Tämän komennon pitää muodostaa valikkomääritelmä ja tulostaa se " #~ "vakiotulostusvirtaan. Valikon pitää olla \"pelkkä teksti\" -tiedostomuodossa " #~ "(kuvailtu Window Makerin mukana tulevissa valikkotiedostoissa, yleensä " #~ "~/GNUstep/Library/WindowMaker/menu)." #~ msgid "" #~ "Type the path for the directory. You can type more than one path by " #~ "separating them with spaces." #~ msgstr "" #~ "Kirjoita hakemiston polku. Voit kirjoittaa useamman kuin yhden polun " #~ "erottamalla ne välilyönneillä." #~ 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 "" #~ "Luotu valikko sisältää yhden alkion jokaista hakemistossa olevaa tiedostoa " #~ "kohti. Hakemistot voivat sisältää suoritettavia ohjelmia tai datatiedostoja " #~ "(kuten jpeg-kuvia)." #~ msgid "" #~ "If the directory contain data files, type the command used to open these " #~ "files. Otherwise, leave it in blank." #~ msgstr "" #~ "Jos hakemisto sisältää datatiedostoja, kirjoita näiden tiedostojen " #~ "avaamiseen tarvittava komento. Muulloin jätä tyhjäksi." #~ 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 "" #~ "Jokainen hakemiston tiedosto näkyy yhtenä kohtana, ja ne avataan annetulla " #~ "komennolla. Esimerkiksi jos hakemisto sisältää kuvatiedostoja ja komento on " #~ "\"xv -root\", jokaisella hakemiston tiedostolla on valikkokohta kuten \"xv " #~ "-root kuvatiedosto\"." ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/et.po��������������������������������������������������������������0000644�0001750�0001750�00000153544�12214432632�014350� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Estonian translation of Window Maker # Copyright (C) 2000, 2001 Free Software Foundation, Inc. # Ivar Smolin <okul@linux.ee>, 2000, 2001 msgid "" msgstr "" "Project-Id-Version: Window Maker 0.65.1\n" "POT-Creation-Date: 2001-09-05 09:12+0200\n" "PO-Revision-Date: 2001-09-05 09:40+0200\n" "Last-Translator: Ivar Smolin <okul@linux.ee>\n" "Language-Team: Estonian <linux-ee@eenet.ee>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/appicon.c:542 ../src/dialog.c:224 ../src/dock.c:3276 #: ../src/dockedapp.c:230 ../src/main.c:256 ../src/rootmenu.c:1815 #: ../src/winspector.c:388 ../src/winspector.c:405 msgid "Error" msgstr "Viga" #: ../src/appicon.c:543 msgid "Could not open specified icon file" msgstr "Ei Å‘nnestu avada kirjeldatud ikoonifaili" #: ../src/appicon.c:544 ../src/dialog.c:121 ../src/dialog.c:224 #: ../src/dialog.c:672 ../src/dialog.c:1735 ../src/dock.c:493 #: ../src/dock.c:501 ../src/dock.c:525 ../src/dock.c:3277 #: ../src/dockedapp.c:231 ../src/dockedapp.c:426 ../src/main.c:256 #: ../src/rootmenu.c:1819 ../src/winspector.c:389 ../src/winspector.c:406 msgid "OK" msgstr "OK" #: ../src/appicon.c:571 ../src/dock.c:256 msgid "" " will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" " suletakse jÅ‘uga.\n" "KÅ‘ik salvestamata andmed lähevad kaotsi.\n" "Kas soovite seda teha?" #: ../src/appicon.c:577 ../src/dock.c:261 ../src/winmenu.c:128 msgid "Kill Application" msgstr "Programmi kÅ‘rvaldamine" #: ../src/appicon.c:578 ../src/dock.c:262 ../src/winmenu.c:130 msgid "Yes" msgstr "Jah" #: ../src/appicon.c:578 ../src/dock.c:262 ../src/winmenu.c:130 msgid "No" msgstr "Ei" #: ../src/appicon.c:596 ../src/dock.c:1144 ../src/dock.c:3442 msgid "Unhide Here" msgstr "Too siia töölauale" #: ../src/appicon.c:597 ../src/appicon.c:623 ../src/dock.c:1146 #: ../src/dock.c:1148 ../src/dock.c:3454 ../src/winmenu.c:465 msgid "Hide" msgstr "Peida" #: ../src/appicon.c:598 ../src/appicon.c:629 msgid "Collapse" msgstr "Ahenda" #: ../src/appicon.c:599 msgid "Set Icon..." msgstr "Vali ikoon..." #: ../src/appicon.c:600 ../src/dock.c:1152 ../src/rootmenu.c:223 #: ../src/rootmenu.c:237 ../src/winmenu.c:512 msgid "Kill" msgstr "KÅ‘rvalda" #: ../src/appicon.c:621 ../src/dock.c:3452 msgid "Unhide" msgstr "Too nähtavale" #: ../src/appicon.c:627 msgid "Uncollapse" msgstr "Tühista ahendamine" #: ../src/defaults.c:917 ../src/startup.c:889 ../src/startup.c:907 #: ../src/startup.c:913 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "ei Å‘nnestu lugeda domeeni \"%s\" vaikeväärtuste andmebaasist" #: ../src/defaults.c:963 ../src/defaults.c:1088 ../src/defaults.c:1127 #: ../src/defaults.c:1173 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "Domeen %s (%s) vaikeväärtuste andmebaasis on katki!" #: ../src/defaults.c:968 ../src/defaults.c:1109 ../src/defaults.c:1156 #: ../src/defaults.c:1182 #, c-format msgid "could not load domain %s from user defaults database" msgstr "ei Å‘nnestu lugeda domeeni %s kasutaja vaikeväärtuste andmebaasist" #: ../src/defaults.c:979 ../src/defaults.c:1073 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "Üldise vaikeväärtuste andmebaasi domeen %s (%s) on katki!" #: ../src/defaults.c:998 #, c-format msgid "could not load domain %s from global defaults database (%s)" msgstr "" "ei Å‘nnestu laadida domeeni %s üldisest vaikeväärtuste andmebaasist (%s)" #: ../src/defaults.c:1078 #, c-format msgid "could not load domain %s from global defaults database" msgstr "ei Å‘nnestu laadida domeeni %s globaalsete vaikeväärtuste andmebaasist" #: ../src/defaults.c:1146 ../src/screen.c:458 #, c-format msgid "could not load logo image for panels: %s" msgstr "ei Å‘nnestu laadida paneelide logopilti: %s" #. --------------------------- Local ----------------------- #: ../src/defaults.c:1391 ../src/defaults.c:1533 ../src/defaults.c:1645 #: ../src/defaults.c:2124 ../src/defaults.c:2141 ../src/defaults.c:2186 #: ../src/defaults.c:2233 ../src/defaults.c:2708 ../src/wdefaults.c:570 #: ../src/wdefaults.c:606 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Vigane formaat vÅ‘tmele \"%s\". Peaks olema %s." #: ../src/defaults.c:1393 ../src/defaults.c:1474 ../src/defaults.c:1506 #: ../src/defaults.c:1538 ../src/defaults.c:1551 ../src/defaults.c:1566 #: ../src/defaults.c:1580 ../src/defaults.c:1650 ../src/defaults.c:1662 #: ../src/defaults.c:2129 ../src/defaults.c:2146 ../src/defaults.c:2159 #: ../src/defaults.c:2191 ../src/defaults.c:2207 ../src/defaults.c:2238 #: ../src/defaults.c:2325 ../src/defaults.c:2713 ../src/defaults.c:2724 #, c-format msgid "using default \"%s\" instead" msgstr "selle asemel kasutan vaikimisi \"%s\"" #: ../src/defaults.c:1424 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "vigane valikuväärtus vÅ‘tmele \"%s\". Peab olema üks %s väärtustest" #: ../src/defaults.c:1469 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "ei Å‘nnestu teisendada \"%s\" vÅ‘tme \"%s\" loogikaväärtuseks" #: ../src/defaults.c:1503 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "ei Å‘nnestu teisendada \"%s\" täisarvuks vÅ‘tmele \"%s\"" #: ../src/defaults.c:1546 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Ebatäpne massiivi elementide arv vÅ‘tmele \"%s\"." #: ../src/defaults.c:1561 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Vale vÅ‘tme \"%s\" väärtus. Peaksid olemad koordinaadid." #: ../src/defaults.c:1576 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "ei Å‘nnestu teisendada massiivi täisarvudeks \"%s\" jaoks." #: ../src/defaults.c:1774 ../src/defaults.c:1806 ../src/defaults.c:1822 #: ../src/defaults.c:1851 ../src/defaults.c:1874 ../src/defaults.c:1927 #: ../src/defaults.c:1967 ../src/defaults.c:2005 ../src/defaults.c:2021 #, c-format msgid "\"%s\" is not a valid color name" msgstr "\"%s\" ei ole korrektne värvi nimetus" #: ../src/defaults.c:1787 ../src/defaults.c:1839 msgid "bad number of arguments in gradient specification" msgstr "vigane argumentide arv hajusülemineku kirjelduses" #: ../src/defaults.c:1900 msgid "too few arguments in multicolor gradient specification" msgstr "liiga vähe argumente mitmevärvilise hajusülemineku kirjelduses" #: ../src/defaults.c:1994 msgid "bad number of arguments in textured gradient specification" msgstr "vigane argumentide arv tekstuuriga hajusülemineku kirjelduses" #: ../src/defaults.c:2037 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" msgstr "" "vigane tumeduse väärtus tgradient tekstuurile \"%s\". Peaks olema [0..255]" #: ../src/defaults.c:2097 #, c-format msgid "could not initialize library %s" msgstr "ei Å‘nnestu lähtestada teeki %s" #: ../src/defaults.c:2100 #, c-format msgid "could not find function %s::%s" msgstr "ei Å‘nnestu leida funktsiooni %s::%s" #: ../src/defaults.c:2107 #, c-format msgid "invalid texture type %s" msgstr "vigane tekstuuri tüüp %s" #: ../src/defaults.c:2154 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Viga vÅ‘tme \"%s\" tekstuuri kirjelduses" #: ../src/defaults.c:2203 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Vigane töölaua tausta tüüp. Peaks olema tekstuur-tüüpi." #: ../src/defaults.c:2251 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "Vigane töölaua %i tausta tüüp. Peaks olema tekstuur-tüüpi." #: ../src/defaults.c:2293 msgid "could not load any usable font!!!" msgstr "ei Å‘nnestu laadid ühtki kasutuskÅ‘lblikku shrifti!!!" #: ../src/defaults.c:2320 #, c-format msgid "could not get color for key \"%s\"" msgstr "ei Å‘nnestu leida värvi vÅ‘tmele \"%s\"" #: ../src/defaults.c:2378 ../src/rootmenu.c:491 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s: vigane vÅ‘tme muutja \"%s\"" #: ../src/defaults.c:2390 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s: vigane kiirklahvi kirjeldus \"%s\"" #: ../src/defaults.c:2397 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s: vigane vÅ‘ti kiirklahvil \"%s\"" #: ../src/defaults.c:2422 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: muutmisklahv %s on vigane" #: ../src/defaults.c:2454 #, c-format msgid "could not load image in option %s: %s" msgstr "ei Å‘nnestu pildi laadimine valikus %s: %s" #: ../src/defaults.c:2573 #, c-format msgid "failed to open bitmap file \"%s\"" msgstr "ei Å‘nnestu avada pildifaili \"%s\"" #: ../src/defaults.c:2576 #, c-format msgid "\"%s\" is not a valid bitmap file" msgstr "\"%s\" ei ole korrektne pildifail" #: ../src/defaults.c:2579 #, c-format msgid "out of memory reading bitmap file \"%s\"" msgstr "mälu lÅ‘ppes pildifaili \"%s\" lugemisel" #: ../src/defaults.c:2618 ../src/defaults.c:2651 msgid "bad number of arguments in cursor specification" msgstr "vigane argumentide arv kursori kirjelduses" #: ../src/defaults.c:2634 #, c-format msgid "unknown builtin cursor name \"%s\"" msgstr "tundmatu sisseehitatud kursori nimi: \"%s\"" #: ../src/defaults.c:2661 ../src/defaults.c:2673 #, c-format msgid "could not find cursor bitmap file \"%s\"" msgstr "ei Å‘nnestu leida kursori pildifaili \"%s\"" #: ../src/defaults.c:2720 #, c-format msgid "Error in cursor specification for key \"%s\"" msgstr "Viga vÅ‘tme \"%s\" kursori kirjelduses" #: ../src/defaults.c:2807 msgid "could not render texture for icon background" msgstr "tekstuuri renderdamine ikooni taustapildiks ei Å‘nnestu" #: ../src/dialog.c:121 ../src/dialog.c:679 ../src/dock.c:525 #: ../src/dockedapp.c:431 ../src/rootmenu.c:185 ../src/rootmenu.c:223 #: ../src/rootmenu.c:237 msgid "Cancel" msgstr "Tühistan" #: ../src/dialog.c:219 msgid "Could not open directory " msgstr "Ei Å‘nnestu avada kataloogi " #: ../src/dialog.c:274 msgid "Could not load image file " msgstr "Ei Å‘nnestu avada pildifaili " #: ../src/dialog.c:606 msgid "Directories" msgstr "Kataloogid" #: ../src/dialog.c:615 msgid "Icons" msgstr "Ikoonid" #: ../src/dialog.c:648 msgid "Preview" msgstr "Eelvaade" #: ../src/dialog.c:661 msgid "File Name:" msgstr "Faili nimi:" #: ../src/dialog.c:685 msgid "Choose File" msgstr "Vali fail" #: ../src/dialog.c:703 ../src/dialog.c:705 msgid "Icon Chooser" msgstr "Ikooni valija" #: ../src/dialog.c:1162 ../src/dialog.c:1272 #, c-format msgid "Version %s" msgstr "Versioon %s" #: ../src/dialog.c:1269 msgid "Window Manager for X" msgstr "X'i aknahaldur" #: ../src/dialog.c:1292 #, c-format msgid "Using visual 0x%x: %s %ibpp " msgstr "Kasutan visuaali 0x%x: %s %ibpp " #: ../src/dialog.c:1300 msgid "(32 thousand colors)\n" msgstr "(32 tuhat värvi)\n" #: ../src/dialog.c:1303 msgid "(64 thousand colors)\n" msgstr "(64 tuhat värvi)\n" #: ../src/dialog.c:1307 msgid "(16 million colors)\n" msgstr "(16 miljonit värvi)\n" #: ../src/dialog.c:1310 #, c-format msgid "(%d colors)\n" msgstr "(%d värvi)\n" #: ../src/dialog.c:1320 #, c-format msgid "Total allocated memory: %i kB. Total memory in use: %i kB.\n" msgstr "Eraldatud mälu kokku: %i kB. Mälu kasutuses: %i kB.\n" #: ../src/dialog.c:1327 msgid "Supported image formats: " msgstr "Toetatud pildivormingud: " #: ../src/dialog.c:1334 msgid "" "\n" "Additional support for: " msgstr "" "\n" "Lisaks on toetatud: " #: ../src/dialog.c:1357 msgid " and " msgstr " ja " #: ../src/dialog.c:1367 msgid "" "\n" "Sound disabled" msgstr "" "\n" "Heli on keelatud" #: ../src/dialog.c:1369 msgid "" "\n" "Sound enabled" msgstr "" "\n" "Heli on lubatud" #: ../src/dialog.c:1393 msgid "Info" msgstr "Info" #: ../src/dialog.c:1416 msgid "Merry X'mas!" msgstr "Häid jÅ‘ule!" #: ../src/dialog.c:1486 msgid "" " Window Maker is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License, or (at your option) any later version.\n" "\n" "\n" " Window Maker is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty\n" "of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "See the GNU General Public License for more details.\n" "\n" "\n" " You should have received a copy of the GNU General Public\n" "License along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n" "02110-1301, USA." msgstr "" " Window Maker on vaba tarkvara. Te vÅ‘ite seda edasi\n" "levitada ja/vÅ‘i muuta vastavalt GNU Üldise Avaliku Litsentsi\n" "tingimustele, nagu need on Vaba Tarkvara Fondi poolt\n" "avaldatud; kas Litsentsi versioon number 2 vÅ‘i (vastavalt\n" "Teie valikule) ükskÅ‘ik milline hilisem versioon.\n" "\n" "\n" "Seda programmi levitatakse lootuses, et see on kasulik, kuid\n" "ILMA IGASUGUSE GARANTIITA; isegi KESKMISE/TAVALISE KVALITEEDI\n" "GARANTIITA vÅ‘i SOBIVUSELE TEATUD KINDLAKS EESMÄRGIKS.\n" "Üksikasjade suhtes vaata GNU Üldist Avalikku Litsentsi.\n" "\n" "\n" "Te peaks olema saanud GNU Üldise Avaliku Litsentsi koopia\n" "koos selle programmiga, kui ei, siis kontakteeruge Free\n" "Software Foundation'iga, 51 Franklin St, Fifth Floor,\n" "Boston, MA 02110-1301, USA." #: ../src/dialog.c:1507 msgid "Legal" msgstr "Litsentsiinfo" #: ../src/dialog.c:1658 ../src/startup.c:395 msgid "cannot open connection for crashing dialog panel. Aborting." msgstr "ei Å‘nnestu luua ühendust avariipaneeliga. Annan alla." #: ../src/dialog.c:1684 msgid "Fatal error" msgstr "Fataalviga" #: ../src/dialog.c:1695 #, c-format msgid "" "Window Maker received signal %i\n" "(%s)." msgstr "" "Window Maker vÅ‘ttis vastu signaali %i\n" "(%s)." #: ../src/dialog.c:1698 #, c-format msgid "Window Maker received signal %i." msgstr "Window Maker vÅ‘ttis vastu signaali %i." #: ../src/dialog.c:1707 msgid "" " This fatal error occured probably due to a bug. Please fill the included " "BUGFORM and report it to bugs@windowmaker.info." msgstr "" " See fataalviga on arvatavasti pÅ‘hjustatud programmi veast. Palun täitke " "kaasasolev vigadest teatamise vorm (BUGFORM) ja saatke see aadressil " "bugs@windowmaker.info." #: ../src/dialog.c:1716 msgid "What do you want to do now?" msgstr "Mida sa nüüd soovid teha?" #: ../src/dialog.c:1722 msgid "Select action" msgstr "Vali tegevus" #: ../src/dialog.c:1723 msgid "Abort and leave a core file" msgstr "LÅ‘petan töö ja salvestan mälutÅ‘mmise" #: ../src/dialog.c:1724 msgid "Restart Window Maker" msgstr "Taaskäivitan Window Makeri" #: ../src/dialog.c:1725 msgid "Start alternate window manager" msgstr "Käivitan alternatiivse aknahalduri" #: ../src/dialog.c:1903 msgid "" "Window Maker is part of the GNUstep project.\n" "The GNUstep project aims to create a free\n" "implementation of the OpenStep(tm) specification\n" "which is a object-oriented framework for\n" "creating advanced graphical, multi-platform\n" "applications. Additionally, a development and\n" "user desktop environment will be created on top\n" "of the framework. For more information about\n" "GNUstep, please visit: www.gnustep.org" msgstr "" "Window Maker on osa GNUstep projektist. GNUstep\n" "projekti eesmärgiks on OpenStep(tm) kirjelduse\n" "(objektorienteeritud framework graafiliste\n" "multiplatvorm rakenduste jaoks) vaba\n" "implementatsiooni loomine. Lisaeesmärgiks on \n" "ka sellel baseeruva ka arenduskeskkonna ja\n" "kasutaja töölauakeskkonna loomine. Lisateabe\n" "saamiseks palun külasada saidi www.gnustep.org" #: ../src/dialog.c:1923 msgid "About GNUstep" msgstr "GNUstep'ist lähemalt" #: ../src/dock.c:213 #, c-format msgid "Type the name for workspace %i:" msgstr "Sisesta töölaua %i nimi:" #: ../src/dock.c:214 ../src/dock.c:1108 ../src/dock.c:1111 ../src/dock.c:3360 msgid "Rename Workspace" msgstr "Töölaua ümbernimetamine" #: ../src/dock.c:487 ../src/dock.c:495 msgid "Warning" msgstr "Hoiatus" #: ../src/dock.c:488 msgid "" "Some icons cannot be made omnipresent. Please make sure that no other icon " "is docked in the same positions on the other workspaces and the Clip is not " "full in some workspace." msgstr "" "MÅ‘ningaid ikoone ei ole vÅ‘imalik kÅ‘ikidel töölaudadel nähtavaks teha. " "Veenduge, et teistel töölaudadel ei ole ükski ikoon dokitud samale " "positsioonile ja Klamber ei ole mÅ‘nel töölaual täis." #: ../src/dock.c:496 msgid "" "Icon cannot be made omnipresent. Please make sure that no other icon is " "docked in the same position on the other workspaces and the Clip is not full " "in some workspace." msgstr "" "Ikooni ei ole vÅ‘imalik kÅ‘ikidel töölaudadel nähtavaks teha. Veenduge, et " "teistel töölaudadel ei ole ükski ikoon dokitud samale positsioonile ja " "Klamber ei ole mÅ‘nel töölaual täis." #: ../src/dock.c:523 msgid "Workspace Clip" msgstr "Töölaua Klamber" #: ../src/dock.c:524 msgid "All selected icons will be removed!" msgstr "KÅ‘ik valitud ikoonid eemaldatakse!" #: ../src/dock.c:575 ../src/dock.c:1123 ../src/dock.c:1125 ../src/dock.c:3396 msgid "Keep Icon" msgstr "Hoia ikooni" #: ../src/dock.c:576 ../src/dock.c:2104 ../src/dock.c:2245 msgid "Type the command used to launch the application" msgstr "Tipi korraldus, mida kasutada rakenduse käivitamiseks" #: ../src/dock.c:932 #, c-format msgid "could not launch application %s\n" msgstr "ei Å‘nnestu käivitada rakendust %s\n" #: ../src/dock.c:987 msgid "could not create workspace submenu for Clip menu" msgstr "ei Å‘nnestu luua klambrimenüüle töölaua alammenüüd" #: ../src/dock.c:1045 msgid "could not create options submenu for Clip menu" msgstr "ei Å‘nnestu luua klambrimenüüle valikute alammenüüd" #: ../src/dock.c:1049 ../src/dock.c:1097 msgid "Keep on Top" msgstr "Hoia esiplaanil" #: ../src/dock.c:1055 msgid "Collapsed" msgstr "Ahendatud" #: ../src/dock.c:1061 msgid "Autocollapse" msgstr "Automaatselt ahenev" #: ../src/dock.c:1067 msgid "Autoraise" msgstr "Automaatselt esile tÅ‘usev" #: ../src/dock.c:1073 msgid "Autoattract Icons" msgstr "Ikoonide automaatne külgehaakimine" #: ../src/dock.c:1103 msgid "Clip Options" msgstr "Klambri valikud" #: ../src/dock.c:1113 msgid "Selected" msgstr "Valitud" #: ../src/dock.c:1118 ../src/dock.c:1121 ../src/dock.c:3387 msgid "Select All Icons" msgstr "Vali kÅ‘ik ikoonid" #: ../src/dock.c:1127 ../src/dock.c:1129 ../src/dock.c:3404 msgid "Move Icon To" msgstr "Teisalda ikoon->" #: ../src/dock.c:1134 ../src/dock.c:1137 ../src/dock.c:3415 msgid "Remove Icon" msgstr "Eemalda ikoon" #: ../src/dock.c:1139 msgid "Attract Icons" msgstr "Haagi ikoonid külge" #: ../src/dock.c:1142 msgid "Launch" msgstr "Käivita" #: ../src/dock.c:1150 msgid "Settings..." msgstr "Määrangud..." #: ../src/dock.c:1515 ../src/dock.c:1622 #, c-format msgid "bad value in docked icon state info %s" msgstr "vigane väärtus dokitud ikooni olekuinfos %s " #: ../src/dock.c:1630 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "vigane väärtus dokitud ikooni asukohal %i,%i" #: ../src/dock.c:1650 #, c-format msgid "bad value in dock state info:%s" msgstr "vigane väärtus doki olekuinfos:%s" #: ../src/dock.c:1886 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "" "dokki on salvestatud liiga palju ikoone. Eiran neid, mida ei suuda hallata" #. icon->forced_dock = 1; #: ../src/dock.c:2103 ../src/dock.c:2244 msgid "Dock Icon" msgstr "Dokin ikooni" #: ../src/dock.c:3267 ../src/dock.c:3270 ../src/dock.c:3273 #, c-format msgid "Could not execute command \"%s\"" msgstr "Ei Å‘nnestu täita korraldust \"%s\"" #: ../src/dock.c:3366 msgid "Toggle Omnipresent" msgstr "Näita/ära näita kÅ‘igil töölaudadel" #: ../src/dock.c:3371 ../src/winmenu.c:417 ../src/winspector.c:1395 msgid "Omnipresent" msgstr "Näita kÅ‘igil töölaudadel" #: ../src/dock.c:3385 msgid "Unselect All Icons" msgstr "Tühista ikoonivalik" #: ../src/dock.c:3394 msgid "Keep Icons" msgstr "Hoia ikoone" #: ../src/dock.c:3402 msgid "Move Icons To" msgstr "Teisalda ikoonid->" #: ../src/dock.c:3413 msgid "Remove Icons" msgstr "Eemalda ikoonid" #: ../src/dock.c:3444 msgid "Bring Here" msgstr "Too siia" #: ../src/dockedapp.c:149 #, c-format msgid "could not find icon %s, used in a docked application" msgstr "ei leia dokitud rakenduses kasutatavat ikooni %s" #: ../src/dockedapp.c:229 #, c-format msgid "Could not open specified icon file: %s" msgstr "Ei Å‘nnestu avada määratud ikoonifaili: %s" #: ../src/dockedapp.c:231 msgid "Ignore" msgstr "Eira" #: ../src/dockedapp.c:333 msgid "Start when Window Maker is started" msgstr "Käivita koos Window Maker'iga" #: ../src/dockedapp.c:340 msgid "Lock (prevent accidental removal)" msgstr "Lukustatud (ei saa kogemata kustutada)" #: ../src/dockedapp.c:344 msgid "Application path and arguments" msgstr "Rakenduse tee ja argumendid" #: ../src/dockedapp.c:357 msgid "Command for middle-click launch" msgstr "Korraldus, mis käivitatakse keskmise nupu vajutamisel" #: ../src/dockedapp.c:371 #, c-format msgid "%s will be replaced with current selection" msgstr "%s asendatakse antud valikuga" #: ../src/dockedapp.c:376 msgid "Command for files dropped with DND" msgstr "Korraldus DND abil saadetud failidele" #: ../src/dockedapp.c:390 #, c-format msgid "%d will be replaced with the file name" msgstr "%d asendatakse failinimega" #: ../src/dockedapp.c:394 msgid "DND support was not compiled in" msgstr "DND toetus ei ole sisse kompileeritud" #: ../src/dockedapp.c:399 msgid "Icon Image" msgstr "Ikooni pilt" #: ../src/dockedapp.c:413 ../src/winspector.c:1533 msgid "Browse..." msgstr "Kuva..." #: ../src/dockedapp.c:466 msgid "Docked Application Settings" msgstr "Dokitud rakenduse määrangud" #: ../src/framewin.c:649 ../src/framewin.c:744 ../src/menu.c:456 #: ../src/texture.c:594 #, c-format msgid "could not render texture: %s" msgstr "ei Å‘nnestu renderdada tekstuuri %s" #: ../src/framewin.c:672 ../src/framewin.c:683 ../src/framewin.c:699 #: ../src/framewin.c:710 ../src/framewin.c:717 ../src/framewin.c:724 #: ../src/icon.c:350 ../src/menu.c:485 #, c-format msgid "error rendering image:%s" msgstr "viga pildi renderdamisel:%s" #: ../src/framewin.c:777 #, c-format msgid "error rendering image: %s" msgstr "viga pildi renderdamisel: %s" #: ../src/icon.c:229 ../src/wdefaults.c:440 #, c-format msgid "error loading image file \"%s\"" msgstr "viga pildifaili \"%s\" laadimisel" #: ../src/icon.c:491 ../src/icon.c:500 #, c-format msgid "could not create directory %s" msgstr "ei Å‘nnestu luua kataloogi %s" #: ../src/icon.c:767 #, c-format msgid "could not find default icon \"%s\"" msgstr "ei Å‘nnestu leida vaikimisi kasutatavat ikooni \"%s\"" #: ../src/icon.c:773 #, c-format msgid "could not load default icon \"%s\":%s" msgstr "Ei Å‘nnestu laadida vaikimisi kasutatavat ikooni \"%s\":%s" #: ../src/main.c:205 msgid "failed to restart Window Maker." msgstr "Window Makeri taaskäivitamine ebaÅ‘nnestus." #: ../src/main.c:208 #, c-format msgid "could not exec %s" msgstr "ei Å‘nnestu käivitada %s" #: ../src/main.c:254 msgid "Could not execute command: " msgstr "Ei Å‘nnestu käivitada korraldust: " #: ../src/main.c:411 #, c-format msgid "%s aborted.\n" msgstr "%s katkestatud.\n" #: ../src/main.c:422 #, c-format msgid "Usage: %s [options]\n" msgstr "Kasuta: %s [valikud]\n" #: ../src/main.c:423 msgid "The Window Maker window manager for the X window system" msgstr "Window Maker on aknahaldur X window system'ile" #: ../src/main.c:425 msgid " -display host:dpy\tdisplay to use" msgstr " -display host:dpy\tmäärab, millist kuva kasutada" #: ../src/main.c:427 msgid " --no-cpp \t\tdisable preprocessing of configuration files" msgstr " --no-cpp \t\tkeelab häälestusfailide eeltöötluse" #: ../src/main.c:429 msgid " --no-dock\t\tdo not open the application Dock" msgstr " --no-dock\t\tkeelab rakenduste doki avamise" #: ../src/main.c:430 msgid " --no-clip\t\tdo not open the workspace Clip" msgstr " --no-clip\t\tkeelab töölaua klambri avamise" #: ../src/main.c:431 msgid " --no-autolaunch\tdo not autolaunch applications" msgstr " --no-autolaunch\tkeelab rakenduste automaatse käivitamise" #: ../src/main.c:432 msgid " --dont-restore\t\tdo not restore saved session" msgstr " --dont-restore\tei taasta salvestatud seanssi" #: ../src/main.c:434 msgid " --locale locale\tlocale to use" msgstr " --locale locale\t\tmillist locale't kasutada" #: ../src/main.c:436 msgid "" " --create-stdcmap\tcreate the standard colormap hint in PseudoColor visuals" msgstr "" #: ../src/main.c:437 msgid " --visual-id visualid\tvisual id of visual to use" msgstr " --visual-id visualid\tkasutatava visuaali id" #: ../src/main.c:438 msgid " --static\t\tdo not update or save configurations" msgstr " --static\t\thäälestusi ei salvestata ega uuendata" #: ../src/main.c:439 msgid " --no-polling\t\tdo not periodically check for configuration updates" msgstr " --no-polling\t\tkeelab ümberhäälestustuste regulaarse kontrolli" #: ../src/main.c:441 msgid " --synchronous\t\tturn on synchronous display mode" msgstr " --synchronous\t\tlülitab sisse sünkroonse ekraanirezhiimi" #: ../src/main.c:443 msgid " --version\t\tprint version and exit" msgstr " --version\t\tväljastab versiooninumbri ja lÅ‘petab programmi töö" #: ../src/main.c:444 msgid " --help\t\t\tshow this message" msgstr " --help\t\t\tnäitab seda teadet" #: ../src/main.c:457 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" "ei Å‘nnestu leida kasutaja GNUstep kataloogi (%s).\n" "Veendu, et Window Maker on korrektselt paigaldatud ja käivita wmaker.inst" #: ../src/main.c:462 #, c-format msgid "could not find user GNUstep directory (%s)." msgstr "ei Å‘nnestu leida kasutaja GNUstep kataloogi (%s)" #: ../src/main.c:465 msgid "" "There was an error while creating GNUstep directory, please make sure you " "have installed Window Maker correctly and run wmaker.inst" msgstr "" "Viga GNUstep kataloogi loomise käigus. Palun veendu, et Window Maker on " "korrektselt paigaldatud ja käivita wmaker.inst" #: ../src/main.c:468 #, c-format msgid "%s directory created with default configuration." msgstr "%s kataloog loodi vaikimisi häälestusega" #: ../src/main.c:488 ../src/main.c:493 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:ei Å‘nnestu käivitada lähtestamisskripti" #: ../src/main.c:513 ../src/main.c:518 #, c-format msgid "%s:could not execute exit script" msgstr "%s:ei Å‘nnestu käivitada lÅ‘petamisskripti" #: ../src/main.c:634 ../src/main.c:642 ../src/main.c:650 ../src/main.c:670 #, c-format msgid "too few arguments for %s" msgstr "liiga vähe argumente %s jaoks" #: ../src/main.c:654 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "vigane visualid väärtus: \"%s\"" #: ../src/main.c:678 #, c-format msgid "%s: invalid argument '%s'\n" msgstr "%s: vigane argument '%s'\n" #: ../src/main.c:679 #, c-format msgid "Try '%s --help' for more information\n" msgstr "Et saada rohkem informatsiooni, proovi '%s --help'\n" #: ../src/main.c:710 msgid "X server does not support locale" msgstr "X server ei toeta lokaliseerimist" #: ../src/main.c:714 msgid "cannot set locale modifiers" msgstr "" #: ../src/main.c:730 #, c-format msgid "could not open display \"%s\"" msgstr "ei Å‘nnestu avada kuva \"%s\"" #: ../src/menu.c:1255 msgid "could not grab keyboard" msgstr "ei suuda klaviatuuriga ühendust saada" #: ../src/menu.c:2569 #, c-format msgid "bad value in menus state info:%s" msgstr "vigane väärtus menüüde olekuinfos:%s" #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" msgstr "ei Å‘nnestu defineerida %s väärtust cpp jaoks" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" msgstr "ei Å‘nnestu leida UID %i paroolikirjet" #: ../src/misc.c:126 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" msgstr "Teie masin on häälestamata. HOSTNAME väärtus on %s" #: ../src/misc.c:132 #, c-format msgid "your machine is misconfigured. HOST is set to %s" msgstr "Teie masin on häälestamata. HOST väärtus on %s" #: ../src/misc.c:628 msgid "Program Arguments" msgstr "Programmi argumendid" #: ../src/misc.c:629 msgid "Enter command arguments:" msgstr "Sisesta käsu argumendid:" #: ../src/misc.c:722 msgid "unable to get dropped data from DND drop" msgstr "ei Å‘nnestu vastu vÅ‘tta DND saadetud andmeid" #: ../src/misc.c:730 msgid "error getting dropped data from DND drop" msgstr "viga DND saadetud andmete vastuvÅ‘tmisel" #: ../src/misc.c:736 msgid "out of memory while getting data from DND drop" msgstr "mälu lÅ‘ppes DND saadetud andmete vastuvÅ‘tmisel " #: ../src/misc.c:781 ../src/misc.c:921 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "mälu lÅ‘ppes \"%s\" laiendamise käigus" #: ../src/misc.c:835 msgid "out of memory during expansion of \"%w\"" msgstr "mälu lÅ‘ppes \"%w\" laiendamise käigus" #: ../src/misc.c:853 msgid "out of memory during expansion of \"%W\"" msgstr "mälu lÅ‘ppes \"%W\" laiendamise käigus" #: ../src/misc.c:869 msgid "out of memory during expansion of \"%a\"" msgstr "mälu lÅ‘ppes \"%a\" laiendamise käigus" #: ../src/misc.c:900 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "mälu lÅ‘ppes \"%d\" laiendamise käigus" #: ../src/misc.c:914 msgid "selection not available" msgstr "valik ei ole kättesaadav" #: ../src/misc.c:987 ../src/misc.c:993 #, c-format msgid "bad window name value in %s state info" msgstr "vigane akna nimi %s olekuinfos" #: ../src/misc.c:1250 msgid "could not send message to background image helper" msgstr "ei Å‘nnestu saata teadet taustapildiprogrammile" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" msgstr "ei Å‘nnestu laadida bitmap maskifaili \"%s\". Maski ei saa kasutada" #: ../src/proplist.c:151 #, c-format msgid "syntax error in %s, line %i:%s" msgstr "süntaksi viga failis %s, rida %i:%s" #: ../src/proplist.c:180 msgid "unterminated string" msgstr "lÅ‘petamata string" #: ../src/proplist.c:247 msgid "unterminated array" msgstr "lÅ‘petamata massiiv" #: ../src/proplist.c:256 msgid "missing , in array or unterminated array" msgstr "puudub, on massiivis vÅ‘i on massiv lÅ‘petamata" #: ../src/proplist.c:267 msgid "could not get array element" msgstr "ei saa massiivi elementi kätte" #: ../src/proplist.c:297 msgid "unterminated dictionary" msgstr "lÅ‘petamata sÅ‘nastik" #: ../src/proplist.c:315 msgid "missing dictionary key" msgstr "puudub sÅ‘nastiku vÅ‘ti" #: ../src/proplist.c:317 msgid "missing dictionary entry key or unterminated dictionary" msgstr "sÅ‘nastiku vÅ‘tmekirje puudub vÅ‘i on sÅ‘nastik ilma lÅ‘putunnuseta" #: ../src/proplist.c:323 msgid "error parsing dictionary key" msgstr "viga sÅ‘nastiku vÅ‘tme sÅ‘elumisel" #: ../src/proplist.c:332 msgid "missing = in dictionary entry" msgstr "puudub = sÅ‘nastiku kirjes" #: ../src/proplist.c:351 msgid "missing ; in dictionary entry" msgstr "puudub ; sÅ‘nastiku kirjes" #: ../src/proplist.c:432 msgid "" "was expecting a string, dictionary, data or array. If it's a string, try " "enclosing it with \"." msgstr "" "on arvatavasti string, sÅ‘nastik, andmehulk vÅ‘i massiiv. Kui see on string, " "proovi see sulgeda märgiga \"." #: ../src/proplist.c:434 msgid "Comments are not allowed inside WindowMaker owned domain files." msgstr "Window Makeri domeenifailides ei ole kommentaarid lubatud." #: ../src/proplist.c:453 #, c-format msgid "could not open domain file %s" msgstr "ei Å‘nnestu avada domeenifaili %s" #: ../src/proplist.c:466 msgid "extra data after end of file" msgstr "ülearused andmed peale faili lÅ‘putunnust" #: ../src/resources.c:44 #, c-format msgid "could not parse color \"%s\"" msgstr "ei Å‘nnestu sÅ‘eluda värvi \"%s\"" #: ../src/resources.c:48 #, c-format msgid "could not allocate color \"%s\"" msgstr "ei Å‘nnestu eraldada värvi \"%s\"" #: ../src/rootmenu.c:183 ../src/rootmenu.c:185 msgid "Exit" msgstr "LÅ‘petan töö" #: ../src/rootmenu.c:184 msgid "Exit window manager?" msgstr "Kas lÅ‘petan aknahalduri töö?" #: ../src/rootmenu.c:220 msgid "Close X session" msgstr "X seansi sulgemine" #: ../src/rootmenu.c:221 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." msgstr "" "Kas sulgeme X seansi.\n" "On vÅ‘imalik, et suletakse ka mÅ‘ned rakendused, mis sisaldavad salvestamata " "andmeid." #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. #: ../src/rootmenu.c:223 ../src/winmenu.c:505 msgid "Close" msgstr "Sulge" #: ../src/rootmenu.c:234 msgid "Kill X session" msgstr "X seansi kÅ‘rvaldamine" #: ../src/rootmenu.c:235 msgid "" "Kill Window System session?\n" "(all applications will be closed)" msgstr "" "Kas kÅ‘rvaldame X seansi?\n" "(kÅ‘ik rakendused suletakse)" #: ../src/rootmenu.c:504 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:vigane kiirklahvi kirjeldus \"%s\" kirjele %s" #: ../src/rootmenu.c:512 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s: vigane klahv kiirkorralduses \"%s\" kirjele %s" #: ../src/rootmenu.c:565 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: ebamäärane '\"' menüüfailis" #: ../src/rootmenu.c:615 #, c-format msgid "%s: missing command" msgstr "%s: puuduv korraldus" #: ../src/rootmenu.c:647 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "vigane OPEN_MENU kirjeldus: %s" #: ../src/rootmenu.c:695 #, c-format msgid "%s:could not stat menu" msgstr "" #: ../src/rootmenu.c:703 #, c-format msgid "%s:could not stat menu:%s" msgstr "" #: ../src/rootmenu.c:721 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "liiga palju parameetreid OPEN_MENU's: %s" #: ../src/rootmenu.c:765 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." msgstr "" "Rakenduste menüüs on rohkem kui üks WORKSPACE_MENU korraldus. Lubatud on " "ainult üks." #: ../src/rootmenu.c:799 msgid "" "There are more than one WINDOWS_MENU commands in the applications menu. Only " "one is allowed." msgstr "" "Rakenduste menüüs on rohkem kui üks WINDOWS_MENU korraldus. Lubatud on " "ainult üks." #: ../src/rootmenu.c:804 msgid "Window List" msgstr "Akende nimekiri" #: ../src/rootmenu.c:833 ../src/rootmenu.c:851 ../src/rootmenu.c:861 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:puuduvad parameetrid menüükorraldusele \"%s\"" #: ../src/rootmenu.c:929 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:tundmatu käsk menüü seadistuses: \"%s\"." #: ../src/rootmenu.c:937 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s:ei Å‘nnestu lisada kiirkorraldust kirjele \"%s\"" #: ../src/rootmenu.c:1074 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:maksimaalne rea pikkus ületatud menüü seadistuses: %s" #: ../src/rootmenu.c:1096 ../src/rootmenu.c:1189 ../src/rootmenu.c:1291 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:puudub korraldus menüü seadistuses: %s" #: ../src/rootmenu.c:1126 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:süntaksi viga menüüfaili: puudub lÅ‘putunnus END" #: ../src/rootmenu.c:1155 ../src/rootmenu.c:1255 msgid "could not make arguments for menu file preprocessor" msgstr "ei suuda luua argumente menüüfaili eeltöötlejale" #: ../src/rootmenu.c:1162 ../src/rootmenu.c:1263 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s:ei suuda avada/eeltöödelda menüüfaili" #: ../src/rootmenu.c:1174 ../src/rootmenu.c:1276 #, c-format msgid "%s:could not open menu file" msgstr "%s:menüüfaili avamine ebaÅ‘nnestus" #: ../src/rootmenu.c:1201 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:vigane menüüfail. Puudub MENU käsk" #: ../src/rootmenu.c:1210 msgid "error reading preprocessed menu data" msgstr "viga eelnevalt töödeldud menüüandmete lugemisel" #: ../src/rootmenu.c:1303 #, c-format msgid "%s:no title given for the root menu" msgstr "%s:juurmenüü pealkiri on puudu" #: ../src/rootmenu.c:1394 ../src/rootmenu.c:1467 ../src/rootmenu.c:1508 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "mälu lÅ‘ppes menüü %s loomise käigus" #: ../src/rootmenu.c:1404 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "" #: ../src/rootmenu.c:1562 msgid "Commands" msgstr "Korraldused" #: ../src/rootmenu.c:1565 msgid "Restart" msgstr "Taaskäivitamine" #: ../src/rootmenu.c:1566 msgid "Exit..." msgstr "LÅ‘petamine..." #: ../src/rootmenu.c:1611 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "ei Å‘nnestu leida menüüfaili \"%s\", millele viitab WMRootMenu" #: ../src/rootmenu.c:1618 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "ei Å‘nnestu ligi pääseda menüüle \"%s\", millele viitab WMRootMenu" #: ../src/rootmenu.c:1629 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "" "ei Å‘nnestu leida vaikimisi kasutatavat menüüfaili \"%s\", millele viitab " "WMRootMenu" #: ../src/rootmenu.c:1652 ../src/rootmenu.c:1728 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:vormingu viga juurmenüü häälestuses \"%s\"" #: ../src/rootmenu.c:1816 msgid "" "The applications menu could not be loaded. Look at the console output for a " "detailed description of the errors." msgstr "" "Ei Å‘nnestu lugeda rakenduste menüüd. PÅ‘hjalikuma vigade kirjelduse " "lugemiseks vaata konsooliväljundit." #: ../src/screen.c:740 #, c-format msgid "could not initialize graphics library context: %s" msgstr "ei Å‘nnesta lähtestada graafikateegi konteksti: %s" #: ../src/screen.c:771 msgid "could not do initialization of WINGs widget set" msgstr "" #: ../src/screen.c:1135 #, c-format msgid "could not save session state in %s" msgstr "ei Å‘nnestu salvestada seansi olekut %s" #: ../src/session.c:183 ../src/wdefaults.c:588 ../src/winspector.c:453 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "ei Å‘nnestu \"%s\" teisendamine boolean väärtuseks" #: ../src/session.c:1021 msgid "out of memory while saving session state" msgstr "mälu lÅ‘ppes seansi oleku salvestamise käigus" #: ../src/session.c:1112 msgid "end of memory while saving session state" msgstr "mälu lÅ‘pp seansi oleku salvestamise käigus" #. 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:1250 msgid "connection to the session manager was lost" msgstr "ühendus seansihalduriga on katkenud" #: ../src/stacking.c:73 msgid "could not get window list!!" msgstr "ei Å‘nnestu saada akende nimekirja!!" #: ../src/startup.c:202 #, c-format msgid "internal X error: %s\n" msgstr "X'i sisemine viga: %s\n" #: ../src/startup.c:260 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "sain signaali %i (%s) - stardin uuesti\n" #: ../src/startup.c:262 #, c-format msgid "got signal %i - restarting\n" msgstr "sain signaali %i - stardin uuesti\n" #: ../src/startup.c:272 #, c-format msgid "got signal %i (%s) - rereading defaults\n" msgstr "sain signaali %i (%s) - loen vaikeväärtused uuesti\n" #: ../src/startup.c:274 #, c-format msgid "got signal %i - rereading defaults\n" msgstr "sain signaali %i - loen vaikeväärtused uuesti\n" #: ../src/startup.c:284 #, c-format msgid "got signal %i (%s) - exiting...\n" msgstr "sain signaali %i (%s) - lÅ‘petan...\n" #: ../src/startup.c:286 #, c-format msgid "got signal %i - exiting...\n" msgstr "sain signaali %i - lÅ‘petan...\n" #: ../src/startup.c:329 #, c-format msgid "got signal %i (%s)\n" msgstr "sain signaali %i (%s)\n" #: ../src/startup.c:331 #, c-format msgid "got signal %i\n" msgstr "sain signaali %i\n" #: ../src/startup.c:342 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "" "järjekordne avarii ajal, mil tehti avariijärgseid puhastusi. Katkestan " "viivitamatult." #. we try to restart Window Maker #: ../src/startup.c:407 msgid "trying to restart Window Maker..." msgstr "proovin taaskäivitada Window Maker'it..." #: ../src/startup.c:412 msgid "trying to start alternate window manager..." msgstr "proovin käivitada alternatiivset aknahaldurit" #: ../src/startup.c:417 msgid "failed to start alternate window manager. Aborting." msgstr "ei Å‘nnestu käivitada alternatiivset aknahaldurit. Annan alla." #: ../src/startup.c:419 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" "aset on leidnud fataalne viga, arvatavasti programmi viga. Palun täida " "programmiga kaasa tulnud vearaport (BUGFORM) ja saada see programmi " "autoritele." #: ../src/startup.c:899 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "" "ikooni suuruseks on määratud %i, kuid see on liiga väike. Kasutan suurust " "16\n" #: ../src/startup.c:927 msgid "XKB is not supported. KbdModeLock is automatically disabled." msgstr "Puudub XKB tugi. KbdModeLock on automaatselt keelatud." #: ../src/startup.c:946 msgid "it seems that there is already a window manager running" msgstr "paistab, et mingi aknahaldur juba töötab" #: ../src/startup.c:952 #, c-format msgid "could not manage screen %i" msgstr "ei Å‘nnestu hallata ekraani %i" #: ../src/startup.c:1020 msgid "could not manage any screen" msgstr "ei Å‘nnestu hallata ühtegi ekraani" #: ../src/switchmenu.c:114 msgid "Windows" msgstr "Aknad" #: ../src/texture.c:329 ../src/texture.c:371 #, c-format msgid "image file \"%s\" used as texture could not be found." msgstr "ei Å‘nnestu leida tekstuuriks kasutatavat pildifaili \"%s\"." #: ../src/texture.c:335 ../src/texture.c:377 #, c-format msgid "could not load texture pixmap \"%s\":%s" msgstr "ei Å‘nnestu laadida tekstuuri pixmap faili \"%s\":%s" #: ../src/texture.c:437 #, c-format msgid "library \"%s\" cound not be opened." msgstr "ei Å‘nnestu avada teeki \"%s\"" #: ../src/texture.c:446 #, c-format msgid "function \"%s\" not found in library \"%s\"" msgstr "ei leia funktsiooni \"%s\" teegist \"%s\"" #: ../src/texture.c:453 msgid "function textures not supported on this system, sorry." msgstr "tekstuurifunktsioon ei ole selles süsteemis toetatud." #: ../src/texture.c:598 msgid "could not allocate image buffer" msgstr "ei Å‘nnestu eraldada pildi puhvrit" #: ../src/wdefaults.c:434 #, c-format msgid "could not find icon file \"%s\"" msgstr "ei Å‘nnestu leida ikoonifaili \"%s\"" #: ../src/window.c:2825 ../src/window.c:2960 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 "" "klahvid NumLock, ScrollLock (vÅ‘i sarnased) näivad olevat sisse lülitatud.\n" "Lülita need välja vÅ‘i muidu ei tööta mÅ‘ned hiire toimingud ja klaviatuuri\n" "kiirkorraldused." #: ../src/winmenu.c:129 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" "Please confirm." msgstr "" "Programm suletakse jÅ‘uga.\n" "KÅ‘ik salvestamata andmed lähevad kaotsi.\n" "Kas soovite seda teha?" #: ../src/winmenu.c:271 ../src/winmenu.c:280 msgid "Set Shortcut" msgstr "Määra kiirkorraldus" #: ../src/winmenu.c:358 ../src/winmenu.c:403 msgid "could not create submenu for window menu" msgstr "ei Å‘nnestu luua aknamenüü alammenüüd" #: ../src/winmenu.c:407 msgid "Keep on top" msgstr "Hoia esiplaanil" #: ../src/winmenu.c:412 msgid "Keep at bottom" msgstr "Hoia tagaplaanil" #. #. * 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:440 ../src/winmenu.c:575 msgid "Maximize" msgstr "Maksimeeri" #: ../src/winmenu.c:448 ../src/winmenu.c:561 msgid "Miniaturize" msgstr "Minimeeri" #: ../src/winmenu.c:457 ../src/winmenu.c:592 msgid "Shade" msgstr "Keri kokku" #: ../src/winmenu.c:473 msgid "Resize/Move" msgstr "Muuda suurust/liiguta" #: ../src/winmenu.c:481 msgid "Select" msgstr "Vali" #: ../src/winmenu.c:489 msgid "Move To" msgstr "Teisalda" #: ../src/winmenu.c:494 msgid "Attributes..." msgstr "Rekvisiidid..." #: ../src/winmenu.c:496 msgid "Options" msgstr "Valikud" #: ../src/winmenu.c:556 msgid "Deminiaturize" msgstr "Ava aken" #: ../src/winmenu.c:570 msgid "Unmaximize" msgstr "Taasta suurus" #: ../src/winmenu.c:587 msgid "Unshade" msgstr "Keri lahti" #: ../src/winspector.c:386 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Ei Å‘nnestu leida selle akna jaoks määratud ikooni \"%s\"" #: ../src/winspector.c:403 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Ei Å‘nnestu avada kirjeldatud ikooni \"%s\":%s" #: ../src/winspector.c:1141 #, c-format msgid "Inspecting %s.%s" msgstr "Vaatlen %s.%s" #: ../src/winspector.c:1167 msgid "Click in the window you wish to inspect." msgstr "Kliki aknale, mida soovid vaadelda." #: ../src/winspector.c:1206 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS\n" "property set to the above selected\n" "name, when saved." msgstr "" "Häälestuse salvestamisel laieneb see\n" "kÅ‘igile akendele, mille WM_CLASS\n" "omadus on üks ülalloetletud nimedest." #: ../src/winspector.c:1235 msgid "Save" msgstr "Salvesta" #: ../src/winspector.c:1243 msgid "Apply" msgstr "Rakenda" #: ../src/winspector.c:1249 msgid "Reload" msgstr "Taasta" #: ../src/winspector.c:1258 ../src/winspector.c:1268 msgid "Window Specification" msgstr "Akna kirjeldus" #: ../src/winspector.c:1259 msgid "Window Attributes" msgstr "Akna rekvisiidid" #: ../src/winspector.c:1260 msgid "Advanced Options" msgstr "Laiendatud valikud" #: ../src/winspector.c:1261 msgid "Icon and Initial Workspace" msgstr "Ikoon ja töölaud" #: ../src/winspector.c:1262 msgid "Application Specific" msgstr "Rakendusele omane" #: ../src/winspector.c:1276 msgid "Defaults for all windows" msgstr "Vaikimisi kÅ‘igile akendele" #: ../src/winspector.c:1330 msgid "Select window" msgstr "Vali aken" #: ../src/winspector.c:1344 msgid "Attributes" msgstr "Rekvisiidid" #: ../src/winspector.c:1355 msgid "Disable titlebar" msgstr "Keela tiitliriba" #: ../src/winspector.c:1357 msgid "" "Remove the titlebar of this window.\n" "To access the window commands menu of a window\n" "without it's titlebar, press Control+Esc (or the\n" "equivalent shortcut, if you changed the default\n" "settings)." msgstr "" "Keelab akna tiitelriba. Ilma tiitelribata\n" "akna parameetreid saab muuta, kui vajutada\n" "Control+Esc (vÅ‘i kui kontrollklahve muudetud,\n" "siis sellele vastavat klahvikombinatsiooni)." #: ../src/winspector.c:1364 msgid "Disable resizebar" msgstr "Keela suuruse muutmise riba" #: ../src/winspector.c:1366 msgid "Remove the resizebar of this window." msgstr "Keelab riba, mille abil saab muuta akna suurust." #: ../src/winspector.c:1369 msgid "Disable close button" msgstr "Keela sulgemisnupp" #: ../src/winspector.c:1371 msgid "Remove the `close window' button of this window." msgstr "Eemaldab sulgemisnupu akna tiitelribalt." #: ../src/winspector.c:1374 msgid "Disable miniaturize button" msgstr "Keela minimeerimisnupp" #: ../src/winspector.c:1376 msgid "Remove the `miniaturize window' button of the window." msgstr "Eemaldab minimeerimisnupu akna tiitliribalt." #: ../src/winspector.c:1379 msgid "Disable border" msgstr "Keela raam" #: ../src/winspector.c:1381 msgid "Remove the 1 pixel black border around the window." msgstr "Keelab akna ümbert ühepikslise musta raami." #: ../src/winspector.c:1384 msgid "Keep on top (floating)" msgstr "Hoia esiplaanil" #: ../src/winspector.c:1386 msgid "" "Keep the window over other windows, not allowing\n" "them to cover it." msgstr "Hoiab akent teiste akende suhtes esiplaanil." #: ../src/winspector.c:1390 msgid "Keep at bottom (sunken)" msgstr "Hoia tagaplaanil" #: ../src/winspector.c:1392 msgid "Keep the window under all other windows." msgstr "Hoia akent kÅ‘igi teiste akende taga." #: ../src/winspector.c:1397 msgid "Make window present in all workspaces." msgstr "Näita akent kÅ‘igil töölaudadel." #: ../src/winspector.c:1400 msgid "Start miniaturized" msgstr "Käivita minimeerituna" #: ../src/winspector.c:1402 msgid "" "Make the window be automatically miniaturized when it's\n" "first shown." msgstr "Programmi käivitamise hetkel minimeeri aken." #: ../src/winspector.c:1406 msgid "Start maximized" msgstr "Käivita maksimeerituna" #: ../src/winspector.c:1408 msgid "" "Make the window be automatically maximized when it's\n" "first shown." msgstr "Programmi käivitamise hetkel maksimeeri aken." #: ../src/winspector.c:1412 msgid "Full screen maximization" msgstr "Maksimeeri üle kogu ekraani" #: ../src/winspector.c:1414 msgid "" "Make the window use the whole screen space when it's\n" "maximized. The titlebar and resizebar will be moved\n" "to outside the screen." msgstr "" "Lubab akent maksimeerida kogu ekraani ulatuses.\n" "Kui lubatud, siis akna maksimeerimise korral\n" "jäävad akna tiitelriba ja suuruse muutmise riba\n" "väljapoole ekraani ulatust." #: ../src/winspector.c:1431 msgid "Advanced" msgstr "Laiendatud vÅ‘imalused" #: ../src/winspector.c:1448 msgid "Do not bind keyboard shortcuts" msgstr "Keela reageerimast kiirklahvidele" #: ../src/winspector.c:1450 msgid "" "Do not bind keyboard shortcuts from Window Maker\n" "when this window is focused. This will allow the\n" "window to receive all key combinations regardless\n" "of your shortcut configuration." msgstr "" "Keelab fookuses oleval aknal reageerimast\n" "Window Maker'i kiirklahvidele. See vÅ‘imaldab\n" "aknal vastu vÅ‘tta kÅ‘iki klaviatuurilt tulevaid\n" "koode." #: ../src/winspector.c:1456 msgid "Do not bind mouse clicks" msgstr "Keela reageerimast hiirevajutustele" #: ../src/winspector.c:1458 msgid "" "Do not bind mouse actions, such as `Alt'+drag\n" "in the window (when alt is the modifier you haveconfigured)." msgstr "" "Keelab aknal reageerimast hiiretoimingutele.\n" "Näiteks `Alt'+lohistamine (kui alt on määratud\n" "muuteklahviks)." #: ../src/winspector.c:1463 msgid "Do not show in the window list" msgstr "Keela näitamine akende nimekirjas" #: ../src/winspector.c:1465 msgid "Do not list the window in the window list menu." msgstr "Keelab akna nime näitamise akende nimekirjas." #: ../src/winspector.c:1468 msgid "Do not let it take focus" msgstr "Keela akna fokuseerimine" #: ../src/winspector.c:1470 msgid "" "Do not let the window take keyboard focus when you\n" "click on it." msgstr "" "Keelab akna fokuseerimise. Aknale ei\n" "mÅ‘ju klaviatuurilt saabuvad vajutused." #: ../src/winspector.c:1474 msgid "Keep inside screen" msgstr "Hoia ekraani sees" #: ../src/winspector.c:1476 msgid "" "Do not allow the window to move itself completely\n" "outside the screen. For bug compatibility.\n" msgstr "" "Keelab akna liigutamise\n" "väljapoole ekraani pinda.\n" #: ../src/winspector.c:1480 msgid "Ignore 'Hide Others'" msgstr "Eira käsku 'Peida teised aknad'" #: ../src/winspector.c:1482 msgid "" "Do not hide the window when issuing the\n" "`HideOthers' command." msgstr "" "Keelab reageerimise käsule\n" "\"Peida teised aknad\"." #: ../src/winspector.c:1486 msgid "Ignore 'Save Session'" msgstr "Keela seansi salvestamine" #: ../src/winspector.c:1488 msgid "" "Do not save the associated application in the\n" "session's state, so that it won't be restarted\n" "together with other applications when Window Maker\n" "starts." msgstr "" "Keelab akna andmete salvestamise seansi\n" "andmetesse. Rakendust ei käivitata koos\n" "seansi koosseisu kuuluvate akendega." #: ../src/winspector.c:1494 msgid "Emulate application icon" msgstr "Emuleeri rakenduse ikooni" #: ../src/winspector.c:1496 msgid "" "Make this window act as an application that provides\n" "enough information to Window Maker for a dockable\n" "application icon to be created." msgstr "Loob aknale dokitava rakenduse ikooni." #: ../src/winspector.c:1502 msgid "Disable language button" msgstr "Keela keelenupp" #: ../src/winspector.c:1504 msgid "Remove the `toggle language' button of the window." msgstr "Eemaldab keele sisse/väljalülitamise nupu akna tiitliribalt." #: ../src/winspector.c:1521 msgid "Miniwindow Image" msgstr "Pisiakna pilt" #: ../src/winspector.c:1548 msgid "Icon filename:" msgstr "Ikoonifaili nimi:" #: ../src/winspector.c:1561 msgid "Ignore client supplied icon" msgstr "Eira kliendi enda ikooni" #: ../src/winspector.c:1568 msgid "Initial Workspace" msgstr "Töölaud, millel käivitatakse" #: ../src/winspector.c:1570 msgid "The workspace to place the window when it'sfirst shown." msgstr "Töölaua nimi, mille peal akent esimest korda näidatakse." #: ../src/winspector.c:1576 msgid "Nowhere in particular" msgstr "Ei oma tähtsust" #: ../src/winspector.c:1594 msgid "Application Attributes" msgstr "Rakenduse rekvisiidid" #: ../src/winspector.c:1605 msgid "Start hidden" msgstr "Käivita peidetuna" #: ../src/winspector.c:1607 msgid "Automatically hide application when it's started." msgstr "Peidab akna programmi käivitamise hetkel." #: ../src/winspector.c:1610 msgid "No application icon" msgstr "Keela rakenduse ikoon" #: ../src/winspector.c:1612 msgid "" "Disable the application icon for the application.\n" "Note that you won't be able to dock it anymore,\n" "and any icons that are already docked will stop\n" "working correctly." msgstr "" "Keelab rakenduse ikooni. Keelamise korral ei ole\n" "vÅ‘imalik rakendust dokkida ja kÅ‘ik selle rakenduse\n" "juba dokitud ikoonid ei toimi enam korrektselt." #: ../src/winspector.c:1618 msgid "Collapse application icons" msgstr "Ahenda rakenduse ikoonid" #: ../src/winspector.c:1620 msgid "" "Collapse application icons from other instances\n" "of this application into one.\n" msgstr "" "Ahendab rakenduse teiste\n" "ekseplaride ikoonid üheks.\n" #: ../src/workspace.c:110 ../src/workspace.c:111 ../src/workspace.c:897 #, c-format msgid "Workspace %i" msgstr "Töölaud %i" #: ../src/workspace.c:954 msgid "Workspaces" msgstr "Töölauad" #: ../src/workspace.c:956 msgid "could not create Workspace menu" msgstr "ei Å‘nnestu luua töölaua menüüd" #: ../src/workspace.c:963 msgid "New" msgstr "Uus" #: ../src/workspace.c:964 msgid "Destroy Last" msgstr "Eemalda viimane" ������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/Makefile.am��������������������������������������������������������0000644�0001750�0001750�00000003450�12214432632�015422� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������CATALOGS = @WPMOFILES@ nlsdir = $(NLSDIR) CLEANFILES = WPrefs.pot $(CATALOGS) EXTRA_DIST = bg.po ca.po cs.po de.po es.po et.po fi.po fr.po hr.po hu.po \ it.po ja.po ko.po pt.po ru.po sk.po zh_CN.po zh_TW.po POTFILES = \ $(top_builddir)/WPrefs.app/Appearance.c \ $(top_builddir)/WPrefs.app/Configurations.c \ $(top_builddir)/WPrefs.app/Docks.c \ $(top_builddir)/WPrefs.app/Expert.c \ $(top_builddir)/WPrefs.app/Focus.c \ $(top_builddir)/WPrefs.app/FontSimple.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/MenuPreferences.c \ $(top_builddir)/WPrefs.app/MouseSettings.c \ $(top_builddir)/WPrefs.app/Paths.c \ $(top_builddir)/WPrefs.app/Preferences.c \ $(top_builddir)/WPrefs.app/TexturePanel.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 SUFFIXES = .po .mo .po.mo: msgfmt -c -o $@ $< all-local: $(CATALOGS) WPrefs.pot: $(POTFILES) xgettext --default-domain=WPrefs \ --add-comments --keyword=_ --keyword=N_ $(POTFILES) if cmp -s WPrefs.po WPrefs.pot; then \ rm -f WPrefs.po; \ else \ mv -f WPrefs.po WPrefs.pot; \ fi install-data-local: $(CATALOGS) $(mkinstalldirs) $(DESTDIR)$(nlsdir) chmod 755 $(DESTDIR)$(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_DATA) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/WPrefs.mo; \ fi; \ done ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/sk.po��������������������������������������������������������������0000644�0001750�0001750�00000161327�12214432632�014353� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Slovak messages for WPreffs.app # (C) 2001 Jan "judas" Tomka # # Original translation by Jan "judas" Tomka on Jan 21 2001 # Currently maintained by Jan "judas" Tomka <judas@linux.sk> # # Revision history: # WP-ver author email date # 0.43 Jan "judas" Tomka <tomka@oalevice.sk> Jan 28 2001 # 0.44 Jan "judas" Tomka <tomka@oalevice.sk> Feb 22 2001 # 0.45 Jan "judas" Tomka <judas@linux.sk> Aug 08 2001 # 0.45 Jan "judas" Tomka <judas@linux.sk> Oct 15 2001 # msgid "" msgstr "" "Project-Id-Version: WPrefs 0.45\n" "POT-Creation-Date: 2001-12-20 03:47+0100\n" "PO-Revision-Date: 2001-10-15 20:40+0100\n" "Last-Translator: Jan \"judas\" Tomka <judas@linux.sk>\n" "Language-Team: Slovak <sk@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../WPrefs.app/Appearance.c:1131 msgid "Select File" msgstr "Vyberte súbor" #: ../../WPrefs.app/Appearance.c:1533 msgid "Focused Window" msgstr "Aktívne okno" #: ../../WPrefs.app/Appearance.c:1537 msgid "Unfocused Window" msgstr "Neaktívne okno" #: ../../WPrefs.app/Appearance.c:1541 msgid "Owner of Focused Window" msgstr "Vlastník aktívneho okna" #: ../../WPrefs.app/Appearance.c:1545 ../../WPrefs.app/Appearance.c:1862 msgid "Menu Title" msgstr "Názov menu" #: ../../WPrefs.app/Appearance.c:1549 ../../WPrefs.app/Appearance.c:1551 msgid "Normal Item" msgstr "Normálna" #: ../../WPrefs.app/Appearance.c:1555 msgid "Disabled Item" msgstr "Zakázaná" #: ../../WPrefs.app/Appearance.c:1564 msgid "Highlighted" msgstr "Aktívna" #: ../../WPrefs.app/Appearance.c:1755 msgid "Texture" msgstr "Textúra" #: ../../WPrefs.app/Appearance.c:1763 msgid "Titlebar of Focused Window" msgstr "Horná liÅ¡ta aktívneho okna" #: ../../WPrefs.app/Appearance.c:1764 msgid "Titlebar of Unfocused Windows" msgstr "Horná liÅ¡ta neaktívneho okna" #: ../../WPrefs.app/Appearance.c:1765 msgid "Titlebar of Focused Window's Owner" msgstr "Horná liÅ¡ta vlastníka aktívneho okna" #: ../../WPrefs.app/Appearance.c:1766 msgid "Window Resizebar" msgstr "Spodná liÅ¡ta" #: ../../WPrefs.app/Appearance.c:1767 msgid "Titlebar of Menus" msgstr "Horná liÅ¡ta menu" #: ../../WPrefs.app/Appearance.c:1768 msgid "Menu Items" msgstr "Položky menu" #: ../../WPrefs.app/Appearance.c:1769 msgid "Icon Background" msgstr "Pozadie ikon" #: ../../WPrefs.app/Appearance.c:1784 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "Dvojkliknite na textúru, ktorú si želáte\n" "použiÅ¥ pre zvolenú položku." #: ../../WPrefs.app/Appearance.c:1798 msgid "New" msgstr "Nová" #: ../../WPrefs.app/Appearance.c:1802 msgid "Create a new texture." msgstr "VytvoriÅ¥ novú textúru." # info: je to o pol milimetra dlhÅ¡ie ako by bolo ideálne... #: ../../WPrefs.app/Appearance.c:1810 msgid "Extract..." msgstr "VytiahnuÅ¥..." #: ../../WPrefs.app/Appearance.c:1814 msgid "Extract texture(s) from a theme or a style file." msgstr "VytiahnuÅ¥ textúru/y zo súboru s témou alebo Å¡týlom." #: ../../WPrefs.app/Appearance.c:1824 msgid "Edit" msgstr "UpraviÅ¥" #: ../../WPrefs.app/Appearance.c:1827 msgid "Edit the highlighted texture." msgstr "UpraviÅ¥ zvýraznenú textúru." #: ../../WPrefs.app/Appearance.c:1835 ../../WPrefs.app/TexturePanel.c:1316 msgid "Delete" msgstr "OdstrániÅ¥" #: ../../WPrefs.app/Appearance.c:1839 msgid "Delete the highlighted texture." msgstr "OdstrániÅ¥ zvýraznenú textúru." #: ../../WPrefs.app/Appearance.c:1852 msgid "Color" msgstr "Farba" #: ../../WPrefs.app/Appearance.c:1859 msgid "Focused Window Title" msgstr "Názov aktívneho okna" #: ../../WPrefs.app/Appearance.c:1860 msgid "Unfocused Window Title" msgstr "Názov neaktívneho okna" #: ../../WPrefs.app/Appearance.c:1861 msgid "Owner of Focused Window Title" msgstr "Názov vlastníka aktívneho okna" #: ../../WPrefs.app/Appearance.c:1863 msgid "Menu Item Text" msgstr "Text položky menu" #: ../../WPrefs.app/Appearance.c:1864 msgid "Disabled Menu Item Text" msgstr "Text zakázanej položky menu" #: ../../WPrefs.app/Appearance.c:1865 msgid "Menu Highlight Color" msgstr "Farba zvýraznenej položky menu" #: ../../WPrefs.app/Appearance.c:1866 msgid "Highlighted Menu Text Color" msgstr "Text zvýraznenej položky menu" #: ../../WPrefs.app/Appearance.c:1905 msgid "Background" msgstr "Pozadie" #: ../../WPrefs.app/Appearance.c:1917 ../../WPrefs.app/TexturePanel.c:1503 msgid "Browse..." msgstr "HľadaÅ¥..." #: ../../WPrefs.app/Appearance.c:1930 msgid "Options" msgstr "Možnosti" #: ../../WPrefs.app/Appearance.c:1937 msgid "Menu Style" msgstr "Å týl menu" #: ../../WPrefs.app/Appearance.c:1965 ../../WPrefs.app/Configurations.c:242 #: ../../WPrefs.app/Configurations.c:254 ../../WPrefs.app/Focus.c:288 #: ../../WPrefs.app/Focus.c:299 ../../WPrefs.app/MenuPreferences.c:134 #: ../../WPrefs.app/MenuPreferences.c:145 #: ../../WPrefs.app/MenuPreferences.c:173 #: ../../WPrefs.app/MenuPreferences.c:188 ../../WPrefs.app/MouseSettings.c:560 #: ../../WPrefs.app/MouseSettings.c:571 ../../WPrefs.app/WPrefs.c:558 #: ../../WPrefs.app/WPrefs.c:583 #, c-format msgid "could not load icon file %s" msgstr "nemožno naÄítaÅ¥ súbor s ikonou %s" #: ../../WPrefs.app/Appearance.c:1979 msgid "Title Alignment" msgstr "UmiestniÅ¥ názov" #: ../../WPrefs.app/Appearance.c:1986 msgid "Left" msgstr "Vľavo" #: ../../WPrefs.app/Appearance.c:1989 ../../WPrefs.app/TexturePanel.c:1517 #: ../../WPrefs.app/Workspace.c:270 msgid "Center" msgstr "V strede" #: ../../WPrefs.app/Appearance.c:1992 msgid "Right" msgstr "Vpravo" #: ../../WPrefs.app/Appearance.c:2216 msgid "Appearance Preferences" msgstr "Nastavenia vzhľadu" #: ../../WPrefs.app/Appearance.c:2218 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "Konfigurácia textúr pozadia pre okná,\n" "menu a ikony." #: ../../WPrefs.app/Appearance.c:2263 msgid "Extract Texture" msgstr "VytiahnuÅ¥ textúru" #: ../../WPrefs.app/Appearance.c:2283 msgid "Textures" msgstr "Textúry" #: ../../WPrefs.app/Appearance.c:2294 ../../WPrefs.app/WPrefs.c:302 msgid "Close" msgstr "ZavrieÅ¥" #: ../../WPrefs.app/Appearance.c:2299 msgid "Extract" msgstr "VytiahnuÅ¥" #: ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 #: ../../WPrefs.app/MouseSettings.c:490 ../../WPrefs.app/WindowHandling.c:339 #: ../../WPrefs.app/WindowHandling.c:351 ../../WPrefs.app/Workspace.c:90 #: ../../WPrefs.app/Workspace.c:101 #, c-format msgid "could not load icon %s" msgstr "nemožno naÄítaÅ¥ ikonu %s" #: ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:109 #, c-format msgid "could not process icon %s: %s" msgstr "nemožno spracovaÅ¥ ikonu %s %s" #: ../../WPrefs.app/Configurations.c:189 ../../WPrefs.app/Workspace.c:164 #, c-format msgid "could not load image file %s" msgstr "nemožno naÄítaÅ¥ súbor s obrázkom %s" #: ../../WPrefs.app/Configurations.c:203 msgid "Icon Slide Speed" msgstr "RýchlosÅ¥ kĺzania ikony" #: ../../WPrefs.app/Configurations.c:209 msgid "Shade Animation Speed" msgstr "RýchlosÅ¥ zrolovania okna" #: ../../WPrefs.app/Configurations.c:271 msgid "Smooth Scaling" msgstr "Jemné prechody" #: ../../WPrefs.app/Configurations.c:272 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "Zjemnenie prechodov na obrázkoch v pozadí\n" "odstraňuje efekt pixelizácie. Podstatne\n" "spomaľuje naÄítavanie obrázkov v pozadí." #: ../../WPrefs.app/Configurations.c:313 msgid "Titlebar Style" msgstr "Å týl hornej liÅ¡ty" #: ../../WPrefs.app/Configurations.c:351 msgid "Animations and Sound" msgstr "Animácie a zvuk" #: ../../WPrefs.app/Configurations.c:357 msgid "Animations" msgstr "Animácie" #: ../../WPrefs.app/Configurations.c:368 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "ZakázaÅ¥/povoliÅ¥ animácie ako napr.\n" "minimalizácia okna, rolovanie, atÄ." #: ../../WPrefs.app/Configurations.c:376 msgid "Superfluous" msgstr "ZbytoÄnosti" #: ../../WPrefs.app/Configurations.c:387 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "ZakázaÅ¥/povoliÅ¥ `zbytoÄné' vlastnosti a animácie.\n" "Tieto zahŕňajú napr. priehľadnosÅ¥ Doku pri jeho\n" "presúvaní na opaÄnú stranu alebo výbuch\n" "odkotvenej ikony." #: ../../WPrefs.app/Configurations.c:397 msgid "Sounds" msgstr "Zvuky" #: ../../WPrefs.app/Configurations.c:408 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://shadowmere.student.utwente.nl/" msgstr "" "ZakázaÅ¥/povoliÅ¥ podporu zvukových efektov\n" "pri udalostiach ako rolovanie a zatváranie\n" "okna. Budete potrebovaÅ¥ samostatný modul,\n" "ktorý nájdete na adrese:\n" "http://www.frontiernet.net/~southgat/wmsound" #: ../../WPrefs.app/Configurations.c:419 msgid "" "Note: sound requires a module distributed\n" "separately" msgstr "Pozor: zvuk vyžaduje samostatný modul" #: ../../WPrefs.app/Configurations.c:429 msgid "Dithering colormap for 8bpp" msgstr "Rezervovanie farieb pri 8bpp" #: ../../WPrefs.app/Configurations.c:431 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "PoÄet farieb, ktoré rezervovaÅ¥ pre Window Maker na\n" "systémoch, ktoré podporujú len 8bpp (PseudoColor)." #: ../../WPrefs.app/Configurations.c:438 msgid "Disable dithering in any visual/depth" msgstr "ZakázaÅ¥ rezervovanie farieb" #: ../../WPrefs.app/Configurations.c:459 msgid "" "More colors for\n" "applications" msgstr "" "Viac farieb pre\n" "aplikácie" #: ../../WPrefs.app/Configurations.c:466 msgid "" "More colors for\n" "Window Maker" msgstr "" "Viac farieb pre\n" "Window Maker" #: ../../WPrefs.app/Configurations.c:521 msgid "Other Configurations" msgstr "Ostatné nastavenia" #: ../../WPrefs.app/Configurations.c:523 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "RýchlosÅ¥ animácií, Å¡týly horných líšt, nastavenia\n" "rôznych vlastností a poÄet farieb rezervovaných\n" "pre Window Maker pri 8bpp." #: ../../WPrefs.app/Expert.c:75 msgid "" "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." msgstr "" "ZakázaÅ¥ miniokná (ikony pre minimalizované okná). Pre použitie s KDE/GNOME." #: ../../WPrefs.app/Expert.c:76 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "NenastavovaÅ¥ parametre, ktoré nie sú Å¡pecifické pre WindowMaker." #: ../../WPrefs.app/Expert.c:77 msgid "Automatically save session when exiting Window Maker." msgstr "Automaticky ukladaÅ¥ sedenia pri odchode z Window Makeru." #: ../../WPrefs.app/Expert.c:78 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "PoužívaÅ¥ SaveUnder pre okná, ikony, menu a ostatné objekty." # fix me! keby tie okná naozaj rotovali, mali by z toho ľudia haluÅ¡ky... #: ../../WPrefs.app/Expert.c:79 msgid "Use Windoze style cycling." msgstr "PovoliÅ¥ Windoze Å¡týl prepínania okien." #: ../../WPrefs.app/Expert.c:80 msgid "Disable confirmation panel for the Kill command." msgstr "Vypnúť potvrdzovanie príkazu ZabiÅ¥." #: ../../WPrefs.app/Expert.c:81 msgid "Disable selection animation for selected icons." msgstr "ZakázaÅ¥ animáciu výberu pre vybraté ikony." #: ../../WPrefs.app/Expert.c:115 msgid "Expert User Preferences" msgstr "Nastavenia skúseného užívateľa" #: ../../WPrefs.app/Expert.c:117 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "Nastavenia pre tých, ktorí vedia, Äo robia..." #: ../../WPrefs.app/Focus.c:80 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "nesprávna hodnota %s vlastnosti FocusMode. Použitá Manual" #: ../../WPrefs.app/Focus.c:94 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "nesprávna hodnota %s vlastnosti ColormapMode. Použitá Auto" #: ../../WPrefs.app/Focus.c:214 msgid "Input Focus Mode" msgstr "Spôsob aktivovania okien" #: ../../WPrefs.app/Focus.c:222 msgid "Manual: Click on the window to set keyboard input focus" msgstr "Manuálne: Kliknutie na okno ho aktivuje" #: ../../WPrefs.app/Focus.c:229 msgid "Auto: Set keyboard input focus to the window under the mouse pointer" msgstr "Automatické: Aktivuje sa okno pod kurzorom myÅ¡i" #: ../../WPrefs.app/Focus.c:243 msgid "Install colormap in the window..." msgstr "NastaviÅ¥ paletu oknu..." #: ../../WPrefs.app/Focus.c:248 msgid "...that has the input focus." msgstr "...ktoré je aktívne." #: ../../WPrefs.app/Focus.c:253 msgid "...that is under the mouse pointer." msgstr "...ktoré sa nachádza pod kurzorom." #: ../../WPrefs.app/Focus.c:262 msgid "Automatic Window Raise Delay" msgstr "Zdržanie pred presunutím do popredia" #: ../../WPrefs.app/Focus.c:319 ../../WPrefs.app/MouseSettings.c:601 msgid "msec" msgstr "ms" #: ../../WPrefs.app/Focus.c:336 msgid "" "Do not let applications receive\n" "the click used to focus windows." msgstr "" "Aplikácia nesmie prijaÅ¥ kliknutie,\n" "ktoré spôsobilo aktiváciu okna." #: ../../WPrefs.app/Focus.c:342 msgid "" "Automatically focus new\n" "windows." msgstr "" "Automaticky aktivovaÅ¥\n" "nové okná." #: ../../WPrefs.app/Focus.c:363 msgid "Window Focus Preferences" msgstr "Nastavenia aktivácie okien" #: ../../WPrefs.app/Focus.c:365 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "Spôsob aktivovania okien, prepínanie paliet\n" "pre systémy s 8bpp a s tým súvisiace možnosti." #: ../../WPrefs.app/Font.c:276 msgid "Could not locate font information file WPrefs.app/font.data" msgstr "Nemožno nájsÅ¥ súbor s informáciami o fontoch WPrefs.app/font.data" #: ../../WPrefs.app/Font.c:282 msgid "Could not read font information file WPrefs.app/font.data" msgstr "Nemožno naÄítaÅ¥ súbor s informáciami o fontoch WPrefs.app/font.data" #: ../../WPrefs.app/Font.c:293 msgid "" "Invalid data in font information file WPrefs.app/font.data.\n" "Encodings data not found." msgstr "" "Nesprávne údaje v súbore s informáciami o fontoch WPrefs.app/font.data.\n" "Neboli nájdené údaje o kódovaní." #: ../../WPrefs.app/Font.c:298 msgid "- Custom -" msgstr "- Užívateľský -" #: ../../WPrefs.app/Font.c:329 ../../WPrefs.app/Menu.c:1534 #: ../../WPrefs.app/MouseSettings.c:140 ../../WPrefs.app/MouseSettings.c:160 #: ../../WPrefs.app/TexturePanel.c:613 ../../WPrefs.app/TexturePanel.c:693 #: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:758 #: ../../WPrefs.app/WPrefs.c:763 ../../WPrefs.app/WPrefs.c:780 #: ../../WPrefs.app/WPrefs.c:790 ../../WPrefs.app/WPrefs.c:800 #: ../../WPrefs.app/WPrefs.c:838 ../../WPrefs.app/WPrefs.c:843 msgid "Error" msgstr "Chyba" #: ../../WPrefs.app/Font.c:329 ../../WPrefs.app/Menu.c:1534 #: ../../WPrefs.app/MouseSettings.c:142 ../../WPrefs.app/MouseSettings.c:162 #: ../../WPrefs.app/TexturePanel.c:614 ../../WPrefs.app/TexturePanel.c:695 #: ../../WPrefs.app/TexturePanel.c:1528 ../../WPrefs.app/Themes.c:98 #: ../../WPrefs.app/WPrefs.c:758 ../../WPrefs.app/WPrefs.c:763 #: ../../WPrefs.app/WPrefs.c:782 ../../WPrefs.app/WPrefs.c:794 #: ../../WPrefs.app/WPrefs.c:800 ../../WPrefs.app/WPrefs.c:807 #: ../../WPrefs.app/WPrefs.c:838 ../../WPrefs.app/WPrefs.c:843 #: ../../WPrefs.app/imagebrowser.c:105 msgid "OK" msgstr "OK" #: ../../WPrefs.app/Font.c:376 msgid "Default Font Sets" msgstr "Implicitné sady fontov" #: ../../WPrefs.app/Font.c:389 msgid "Font Set" msgstr "Sada fontov" #: ../../WPrefs.app/Font.c:418 msgid "Add..." msgstr "PridaÅ¥..." #: ../../WPrefs.app/Font.c:423 ../../WPrefs.app/Font.c:438 msgid "Change..." msgstr "ZmeniÅ¥..." #: ../../WPrefs.app/Font.c:428 ../../WPrefs.app/Paths.c:288 #: ../../WPrefs.app/Paths.c:319 msgid "Remove" msgstr "OdstrániÅ¥" #: ../../WPrefs.app/Font.c:477 msgid "Font Preferences" msgstr "Nastavenia fontov" #: ../../WPrefs.app/Font.c:478 msgid "Font Configurations for Windows, Menus etc" msgstr "Nastavenia fontov pre okná, menu, atÄ." #: ../../WPrefs.app/Icons.c:180 msgid "Icon Positioning" msgstr "Umiestňovanie ikon" #: ../../WPrefs.app/Icons.c:227 msgid "Iconification Animation" msgstr "Animácia minimalizácie" #: ../../WPrefs.app/Icons.c:238 msgid "Shrinking/Zooming" msgstr "ZmenÅ¡enie/zväÄÅ¡enie" #: ../../WPrefs.app/Icons.c:239 msgid "Spinning/Twisting" msgstr "Vírenie/toÄenie" #: ../../WPrefs.app/Icons.c:240 msgid "3D-flipping" msgstr "3D saltá" #: ../../WPrefs.app/Icons.c:241 ../../WPrefs.app/MouseSettings.c:838 #: ../../WPrefs.app/MouseSettings.c:843 msgid "None" msgstr "Žiadna" #: ../../WPrefs.app/Icons.c:254 msgid "Auto-arrange icons" msgstr "Automaticky usporiadavaÅ¥ ikony" #: ../../WPrefs.app/Icons.c:256 msgid "Keep icons and miniwindows arranged all the time." msgstr "UdržiavaÅ¥ ikony a miniokná usporiadané." #: ../../WPrefs.app/Icons.c:262 msgid "Omnipresent miniwindows" msgstr "Miniokná na vÅ¡etkých plochách" #: ../../WPrefs.app/Icons.c:264 msgid "Make miniwindows be present in all workspaces." msgstr "Miniokná prítomné na vÅ¡etkých pracovných plochách." #: ../../WPrefs.app/Icons.c:273 msgid "Icon Size" msgstr "Rozmery ikony" #: ../../WPrefs.app/Icons.c:275 msgid "The size of the dock/application icon and miniwindows" msgstr "Rozmery ikon a miniokien" #: ../../WPrefs.app/Icons.c:345 msgid "Icon Preferences" msgstr "Nastavenia ikon" #: ../../WPrefs.app/Icons.c:347 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "Možnosti spravovania ikon a miniokien. Umiestňovanie\n" "ikon, ich veľkosÅ¥, Å¡týl minimalizácie." #: ../../WPrefs.app/KeyboardSettings.c:73 msgid "Initial Key Repeat" msgstr "Oneskorenie opakovania" #: ../../WPrefs.app/KeyboardSettings.c:114 msgid "Key Repeat Rate" msgstr "Frekvencia opakovania" #: ../../WPrefs.app/KeyboardSettings.c:154 msgid "Type here to test" msgstr "Skúste tu" #: ../../WPrefs.app/KeyboardSettings.c:173 msgid "Keyboard Preferences" msgstr "Nastavenia klávesnice" #: ../../WPrefs.app/KeyboardSettings.c:175 msgid "Not done" msgstr "EÅ¡te nie" #: ../../WPrefs.app/KeyboardShortcuts.c:186 ../../WPrefs.app/Menu.c:327 #: ../../WPrefs.app/TexturePanel.c:1534 ../../WPrefs.app/imagebrowser.c:100 msgid "Cancel" msgstr "ZruÅ¡iÅ¥" #: ../../WPrefs.app/KeyboardShortcuts.c:187 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "" "Zadajte klávesovú skratku alebo použite ZruÅ¡iÅ¥ na preruÅ¡enie zadávania." #: ../../WPrefs.app/KeyboardShortcuts.c:207 #: ../../WPrefs.app/KeyboardShortcuts.c:456 ../../WPrefs.app/Menu.c:338 #: ../../WPrefs.app/Menu.c:782 msgid "Capture" msgstr "ZadaÅ¥" #: ../../WPrefs.app/KeyboardShortcuts.c:208 #: ../../WPrefs.app/KeyboardShortcuts.c:464 msgid "Click Capture to interactively define the shortcut key." msgstr "Použite ZadaÅ¥ na definovanie klávesovej skratky." #: ../../WPrefs.app/KeyboardShortcuts.c:363 msgid "Actions" msgstr "ÄŒinnosti" #: ../../WPrefs.app/KeyboardShortcuts.c:379 msgid "Open applications menu" msgstr "OtvoriÅ¥ aplikaÄné menu" #: ../../WPrefs.app/KeyboardShortcuts.c:380 msgid "Open window list menu" msgstr "OtvoriÅ¥ menu Okná" #: ../../WPrefs.app/KeyboardShortcuts.c:381 msgid "Open window commands menu" msgstr "OtvoriÅ¥ menu Aplikácie" #: ../../WPrefs.app/KeyboardShortcuts.c:382 msgid "Hide active application" msgstr "SkryÅ¥ aktívnu aplikáciu" #: ../../WPrefs.app/KeyboardShortcuts.c:383 msgid "Miniaturize active window" msgstr "MinimalizovaÅ¥ aktívne okno" #: ../../WPrefs.app/KeyboardShortcuts.c:384 msgid "Close active window" msgstr "ZavrieÅ¥ aktívne okno" #: ../../WPrefs.app/KeyboardShortcuts.c:385 msgid "Maximize active window" msgstr "MaximalizovaÅ¥ aktívne okno" #: ../../WPrefs.app/KeyboardShortcuts.c:386 msgid "Maximize active window vertically" msgstr "MaximalizovaÅ¥ aktívne okno vertikálne" #: ../../WPrefs.app/KeyboardShortcuts.c:387 msgid "Maximize active window horizontally" msgstr "MaximalizovaÅ¥ aktívne okno horizontálne" #: ../../WPrefs.app/KeyboardShortcuts.c:388 msgid "Raise active window" msgstr "Presunúť aktívne okno do popredia" #: ../../WPrefs.app/KeyboardShortcuts.c:389 msgid "Lower active window" msgstr "Presunúť aktívne okno do pozadia" #: ../../WPrefs.app/KeyboardShortcuts.c:390 msgid "Raise/Lower window under mouse pointer" msgstr "Okno pod kurzorom do popredia/pozadia" #: ../../WPrefs.app/KeyboardShortcuts.c:391 msgid "Shade active window" msgstr "ZrolovaÅ¥ aktívne okno" #: ../../WPrefs.app/KeyboardShortcuts.c:392 msgid "Move/Resize active window" msgstr "Presun/veľkosÅ¥ aktívneho okna" #: ../../WPrefs.app/KeyboardShortcuts.c:393 msgid "Select active window" msgstr "VybraÅ¥ aktívne okno" #: ../../WPrefs.app/KeyboardShortcuts.c:394 msgid "Focus next window" msgstr "AktivovaÅ¥ nasledujúce okno" #: ../../WPrefs.app/KeyboardShortcuts.c:395 msgid "Focus previous window" msgstr "AktivovaÅ¥ predchádzajúce okno" #: ../../WPrefs.app/KeyboardShortcuts.c:396 msgid "Switch to next workspace" msgstr "Nasledujúca pracovná plocha" #: ../../WPrefs.app/KeyboardShortcuts.c:397 msgid "Switch to previous workspace" msgstr "Predchádzajúca pracovná plocha" #: ../../WPrefs.app/KeyboardShortcuts.c:398 msgid "Switch to next ten workspaces" msgstr "Nasledujúcich desaÅ¥ plôch" #: ../../WPrefs.app/KeyboardShortcuts.c:399 msgid "Switch to previous ten workspaces" msgstr "Predchádzajúcich desaÅ¥ plôch" #: ../../WPrefs.app/KeyboardShortcuts.c:400 msgid "Switch to workspace 1" msgstr "Pracovná plocha 1" #: ../../WPrefs.app/KeyboardShortcuts.c:401 msgid "Switch to workspace 2" msgstr "Pracovná plocha 2" #: ../../WPrefs.app/KeyboardShortcuts.c:402 msgid "Switch to workspace 3" msgstr "Pracovná plocha 3" #: ../../WPrefs.app/KeyboardShortcuts.c:403 msgid "Switch to workspace 4" msgstr "Pracovná plocha 4" #: ../../WPrefs.app/KeyboardShortcuts.c:404 msgid "Switch to workspace 5" msgstr "Pracovná plocha 5" #: ../../WPrefs.app/KeyboardShortcuts.c:405 msgid "Switch to workspace 6" msgstr "Pracovná plocha 6" #: ../../WPrefs.app/KeyboardShortcuts.c:406 msgid "Switch to workspace 7" msgstr "Pracovná plocha 7" #: ../../WPrefs.app/KeyboardShortcuts.c:407 msgid "Switch to workspace 8" msgstr "Pracovná plocha 8" #: ../../WPrefs.app/KeyboardShortcuts.c:408 msgid "Switch to workspace 9" msgstr "Pracovná plocha 9" #: ../../WPrefs.app/KeyboardShortcuts.c:409 msgid "Switch to workspace 10" msgstr "Pracovná plocha 10" #: ../../WPrefs.app/KeyboardShortcuts.c:410 msgid "Shortcut for window 1" msgstr "Klávesová skratka pre okno 1" #: ../../WPrefs.app/KeyboardShortcuts.c:411 msgid "Shortcut for window 2" msgstr "Klávesová skratka pre okno 2" #: ../../WPrefs.app/KeyboardShortcuts.c:412 msgid "Shortcut for window 3" msgstr "Klávesová skratka pre okno 3" #: ../../WPrefs.app/KeyboardShortcuts.c:413 msgid "Shortcut for window 4" msgstr "Klávesová skratka pre okno 4" #: ../../WPrefs.app/KeyboardShortcuts.c:414 msgid "Shortcut for window 5" msgstr "Klávesová skratka pre okno 5" #: ../../WPrefs.app/KeyboardShortcuts.c:415 msgid "Shortcut for window 6" msgstr "Klávesová skratka pre okno 6" #: ../../WPrefs.app/KeyboardShortcuts.c:416 msgid "Shortcut for window 7" msgstr "Klávesová skratka pre okno 7" #: ../../WPrefs.app/KeyboardShortcuts.c:417 msgid "Shortcut for window 8" msgstr "Klávesová skratka pre okno 8" #: ../../WPrefs.app/KeyboardShortcuts.c:418 msgid "Shortcut for window 9" msgstr "Klávesová skratka pre okno 9" #: ../../WPrefs.app/KeyboardShortcuts.c:419 msgid "Shortcut for window 10" msgstr "Klávesová skratka pre okno 10" #: ../../WPrefs.app/KeyboardShortcuts.c:420 msgid "Switch to Next Screen/Monitor" msgstr "Prepnúť na ÄalÅ¡iu obrazovku/monitor" #: ../../WPrefs.app/KeyboardShortcuts.c:421 msgid "Raise Clip" msgstr "Presunúť Spinku do popredia" #: ../../WPrefs.app/KeyboardShortcuts.c:422 msgid "Lower Clip" msgstr "Presunúť Spinku do pozadia" #: ../../WPrefs.app/KeyboardShortcuts.c:423 msgid "Raise/Lower Clip" msgstr "PresúvaÅ¥ Spinku do popredia/pozadia" #: ../../WPrefs.app/KeyboardShortcuts.c:425 msgid "Toggle keyboard language" msgstr "Prepnúť jazyk klávesnice" #: ../../WPrefs.app/KeyboardShortcuts.c:439 msgid "Shortcut" msgstr "Klávesová skratka" #: ../../WPrefs.app/KeyboardShortcuts.c:450 ../../WPrefs.app/Menu.c:788 msgid "Clear" msgstr "Žiadna" #: ../../WPrefs.app/KeyboardShortcuts.c:512 msgid "Keyboard Shortcut Preferences" msgstr "Nastavenia klávesových skratiek" #: ../../WPrefs.app/KeyboardShortcuts.c:514 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "Zmena klávesových skratiek pre Äinnosti ako\n" "zmena pracovnej plochy a otváranie menu." #: ../../WPrefs.app/Menu.c:477 msgid "New Items" msgstr "Nové položky" #: ../../WPrefs.app/Menu.c:478 msgid "Sample Commands" msgstr "Vzorové príkazy" #: ../../WPrefs.app/Menu.c:479 msgid "Sample Submenus" msgstr "Vzorové submenu" #: ../../WPrefs.app/Menu.c:493 msgid "Run Program" msgstr "SpustiÅ¥ program" #: ../../WPrefs.app/Menu.c:494 msgid "Internal Command" msgstr "Interný príkaz" #: ../../WPrefs.app/Menu.c:495 msgid "Submenu" msgstr "Submenu" #: ../../WPrefs.app/Menu.c:496 msgid "External Submenu" msgstr "Externé submenu" #: ../../WPrefs.app/Menu.c:497 msgid "Generated Submenu" msgstr "Generované menu" #: ../../WPrefs.app/Menu.c:498 msgid "Directory Contents" msgstr "Adresár s menu" #: ../../WPrefs.app/Menu.c:499 msgid "Workspace Menu" msgstr "Pracovné plochy" #: ../../WPrefs.app/Menu.c:500 ../../WPrefs.app/MouseSettings.c:840 msgid "Window List Menu" msgstr "Menu Okná" #: ../../WPrefs.app/Menu.c:519 msgid "XTerm" msgstr "" #: ../../WPrefs.app/Menu.c:522 msgid "rxvt" msgstr "" #: ../../WPrefs.app/Menu.c:525 msgid "ETerm" msgstr "" #: ../../WPrefs.app/Menu.c:528 msgid "Run..." msgstr "SpustiÅ¥..." #: ../../WPrefs.app/Menu.c:529 msgid "%a(Run,Type command to run)" msgstr "%a(SpustiÅ¥,Zadajte príkaz:)" #: ../../WPrefs.app/Menu.c:531 msgid "Netscape" msgstr "" #: ../../WPrefs.app/Menu.c:534 msgid "gimp" msgstr "" #: ../../WPrefs.app/Menu.c:537 msgid "epic" msgstr "" #: ../../WPrefs.app/Menu.c:540 msgid "ee" msgstr "" #: ../../WPrefs.app/Menu.c:543 msgid "xv" msgstr "" #: ../../WPrefs.app/Menu.c:546 msgid "Acrobat Reader" msgstr "" #: ../../WPrefs.app/Menu.c:549 msgid "ghostview" msgstr "" #: ../../WPrefs.app/Menu.c:552 ../../WPrefs.app/Menu.c:809 msgid "Exit Window Maker" msgstr "UkonÄiÅ¥ Window Maker" #: ../../WPrefs.app/Menu.c:575 msgid "Debian Menu" msgstr "" #: ../../WPrefs.app/Menu.c:578 msgid "RedHat Menu" msgstr "" #: ../../WPrefs.app/Menu.c:581 msgid "Menu Conectiva" msgstr "" #: ../../WPrefs.app/Menu.c:584 ../../WPrefs.app/Themes.c:250 msgid "Themes" msgstr "Témy" #: ../../WPrefs.app/Menu.c:589 msgid "Bg Images (scale)" msgstr "Obrázky pozadia (roztiahnuté)" #: ../../WPrefs.app/Menu.c:594 msgid "Bg Images (tile)" msgstr "Obrázky pozadia (vedľa seba)" #: ../../WPrefs.app/Menu.c:599 msgid "Assorted XTerms" msgstr "Rôzne XTermy" #: ../../WPrefs.app/Menu.c:601 msgid "XTerm Yellow on Blue" msgstr "XTerm žltá na modrej" #: ../../WPrefs.app/Menu.c:604 msgid "XTerm White on Black" msgstr "XTerm biela na Äiernej" #: ../../WPrefs.app/Menu.c:607 msgid "XTerm Black on White" msgstr "XTerm Äierna na bielej" # beige nie je maslo a tá farba nie je maslová... #: ../../WPrefs.app/Menu.c:610 msgid "XTerm Black on Beige" msgstr "XTerm Äierna na maslovej" #: ../../WPrefs.app/Menu.c:613 msgid "XTerm White on Green" msgstr "XTerm biela na zelenej" #: ../../WPrefs.app/Menu.c:616 msgid "XTerm White on Olive" msgstr "XTerm biela na olivovej" #: ../../WPrefs.app/Menu.c:619 msgid "XTerm Blue on Blue" msgstr "XTerm modrá na modrej" #: ../../WPrefs.app/Menu.c:622 msgid "XTerm BIG FONTS" msgstr "XTerm VEĽKÉ FONTY" #: ../../WPrefs.app/Menu.c:644 msgid "Program to Run" msgstr "SpustiÅ¥ program" #: ../../WPrefs.app/Menu.c:658 msgid "Run the program inside a Xterm" msgstr "SpustiÅ¥ program v XTerme" #: ../../WPrefs.app/Menu.c:668 msgid "Path for Menu" msgstr "Cesta k menu" #: ../../WPrefs.app/Menu.c:681 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin" msgstr "" "Zadajte cestu k súboru, ktorý obsahuje menu\n" "alebo zoznam adresárov s programami, ktoré chcete\n" "maÅ¥ zaradené do menu. Napr.\n" "~/GNUstep/Library/WindowMaker/menu\n" "alebo\n" "/usr/bin ~/xbin" #: ../../WPrefs.app/Menu.c:696 msgid "Command" msgstr "Príkaz" #: ../../WPrefs.app/Menu.c:710 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "Zadajte príkaz, ktorý po spustení\n" "generuje na výstup definíciu menu." #: ../../WPrefs.app/Menu.c:721 msgid "Command to Open Files" msgstr "OtváraÅ¥ súbory príkazom" #: ../../WPrefs.app/Menu.c:735 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "Zadajte príkaz, ktorým chcete otváraÅ¥ súbory\n" "v nasledovných adresároch." #: ../../WPrefs.app/Menu.c:744 msgid "Directories with Files" msgstr "Adresáre so súbormi" #: ../../WPrefs.app/Menu.c:757 msgid "Strip extensions from file names" msgstr "OdstrániÅ¥ prípony z mien súborov" #: ../../WPrefs.app/Menu.c:769 msgid "Keyboard Shortcut" msgstr "Klávesová skratka" #: ../../WPrefs.app/Menu.c:805 msgid "Arrange Icons" msgstr "VyrovnaÅ¥ ikony" #: ../../WPrefs.app/Menu.c:806 msgid "Hide All Windows Except For The Focused One" msgstr "SkryÅ¥ vÅ¡etky okná okrem aktívneho" #: ../../WPrefs.app/Menu.c:807 msgid "Show All Windows" msgstr "ZobraziÅ¥ vÅ¡etky okná" #: ../../WPrefs.app/Menu.c:810 msgid "Exit X Session" msgstr "UkonÄiÅ¥ sedenie X systému" #: ../../WPrefs.app/Menu.c:811 msgid "Restart Window Maker" msgstr "ReÅ¡tartovaÅ¥ Window Maker" #: ../../WPrefs.app/Menu.c:812 msgid "Start Another Window Manager : (" msgstr "SpustiÅ¥ iný manažér okien : (" #: ../../WPrefs.app/Menu.c:814 msgid "Save Current Session" msgstr "UložiÅ¥ súÄasné sedenie" #: ../../WPrefs.app/Menu.c:815 msgid "Clear Saved Session" msgstr "ZmazaÅ¥ uložené sedenie" #: ../../WPrefs.app/Menu.c:816 msgid "Refresh Screen" msgstr "ObnoviÅ¥ obrazovku" #: ../../WPrefs.app/Menu.c:817 msgid "Open Info Panel" msgstr "OtvoriÅ¥ panel Info" #: ../../WPrefs.app/Menu.c:818 msgid "Open Copyright Panel" msgstr "OtvoriÅ¥ panel Copyright" #: ../../WPrefs.app/Menu.c:824 msgid "Window Manager to Start" msgstr "SpustiÅ¥ manažér okien" #: ../../WPrefs.app/Menu.c:840 msgid "Do not confirm action." msgstr "NepotvrdzovaÅ¥ ÄinnosÅ¥." #: ../../WPrefs.app/Menu.c:850 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "Pokyny:\n" "\n" " - Å¥ahaním položiek z ľava do menu pridávate\n" " nové položky\n" " - Å¥ahaním položiek von z menu odstraňujete položky\n" " - Å¥ahaním položiek v menu meníte ich pozíciu\n" " - Å¥ahaním pri stlaÄenom Control kopírujete položky\n" " - dvojkliknutím na položku menu meníte jej názov\n" " - kliknutím na položku menu meníte súvisiace údaje" #: ../../WPrefs.app/Menu.c:1068 #, c-format msgid "unknown command '%s' in menu" msgstr "neznámy príkaz '%s' v menu" #: ../../WPrefs.app/Menu.c:1100 msgid ": Execute Program" msgstr ": SpustiÅ¥ program" #: ../../WPrefs.app/Menu.c:1104 msgid ": Perform Internal Command" msgstr ": VykonaÅ¥ interný príkaz" #: ../../WPrefs.app/Menu.c:1108 msgid ": Open a Submenu" msgstr ": OtvoriÅ¥ submenu" #: ../../WPrefs.app/Menu.c:1112 msgid ": Program Generated Submenu" msgstr ": Programom generované menu" #: ../../WPrefs.app/Menu.c:1116 msgid ": Directory Contents Menu" msgstr ": Adresár obsahujúci menu" #: ../../WPrefs.app/Menu.c:1120 msgid ": Open Workspaces Submenu" msgstr ": Menu pracovných plôch" #: ../../WPrefs.app/Menu.c:1124 msgid ": Open Window List Submenu" msgstr ": OtvoriÅ¥ submenu Okná" #: ../../WPrefs.app/Menu.c:1344 msgid "Remove Submenu" msgstr "OdstrániÅ¥ submenu" #: ../../WPrefs.app/Menu.c:1345 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "" "Odstránením tejto položky odstránite vÅ¡etky\n" "položky v submenu. Chcete odstrániÅ¥ položku?" #: ../../WPrefs.app/Menu.c:1347 msgid "Yes" msgstr "Ãno" #: ../../WPrefs.app/Menu.c:1347 msgid "No" msgstr "Nie" #: ../../WPrefs.app/Menu.c:1348 msgid "Yes, don't ask again." msgstr "Ãno, viac sa nepýtaÅ¥" #. if there is a localized plmenu for the tongue put it's filename here #: ../../WPrefs.app/Menu.c:1515 ../../WPrefs.app/Menu.c:1522 #, c-format msgid "%s/Library/WindowMaker/plmenu" msgstr "%s/Library/WindowMaker/plmenu.sk" #: ../../WPrefs.app/Menu.c:1531 #, c-format msgid "Could not open default menu from '%s'" msgstr "Nemožno otvoriÅ¥ implicitné menu z '%s'" #: ../../WPrefs.app/Menu.c:1569 ../../WPrefs.app/WPrefs.c:807 msgid "Warning" msgstr "Varovanie" #: ../../WPrefs.app/Menu.c:1570 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "Formát súboru menu, ktoré používate, nie je podporovaný\n" "týmto programom. Chcete sa vzdaÅ¥ súÄasného menu, aby ste\n" "mohli použiÅ¥ tento program?" #: ../../WPrefs.app/Menu.c:1573 msgid "Yes, Discard and Update" msgstr "Ãno, vzdaÅ¥ sa a vytvoriÅ¥ nové" #: ../../WPrefs.app/Menu.c:1574 msgid "No, Keep Current Menu" msgstr "Nie, ponechaÅ¥ súÄasné menu" # info: aplikaÄné menu ani menu aplikácii nie je celkom ono (ani hlavné menu...) #: ../../WPrefs.app/Menu.c:1834 msgid "Applications Menu Definition" msgstr "Definícia menu Aplikácie" #: ../../WPrefs.app/Menu.c:1836 msgid "Edit the menu for launching applications." msgstr "Úpravy menu Aplikácie, ktoré slúži na spúšťanie programov." #: ../../WPrefs.app/MenuPreferences.c:111 msgid "Menu Scrolling Speed" msgstr "RýchlosÅ¥ posunu menu" #: ../../WPrefs.app/MenuPreferences.c:160 msgid "Submenu Alignment" msgstr "Zarovnanie submenu" #: ../../WPrefs.app/MenuPreferences.c:204 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "Vždy otváraÅ¥ submenu vo vnútri obrazovky namiesto posúvania." #: ../../WPrefs.app/MenuPreferences.c:209 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "" "Pri prechode kurzoru nad menu, ktoré je ÄiastoÄne mimo\n" "obrazovky, posúvaÅ¥ toto menu do vnútra obrazovky." #: ../../WPrefs.app/MenuPreferences.c:229 msgid "Menu Preferences" msgstr "Nastavenia menu" #: ../../WPrefs.app/MenuPreferences.c:231 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "Možnosti spojené s používaním menu. RýchlosÅ¥\n" "posúvania, zarovnávanie submenu atÄ." #: ../../WPrefs.app/MouseSettings.c:141 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "Nesprávna hodnota zrýchlenia myÅ¡i. Musí byÅ¥ kladné reálne Äíslo." #: ../../WPrefs.app/MouseSettings.c:161 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "" "Nesprávna hodnota prahu zrýchlenia myÅ¡i. Musí byÅ¥ poÄet bodov pred zaÄatím " "zrýchlenia." #: ../../WPrefs.app/MouseSettings.c:262 ../../WPrefs.app/MouseSettings.c:274 #: ../../WPrefs.app/MouseSettings.c:286 ../../WPrefs.app/MouseSettings.c:298 #, c-format msgid "bad value %s for option %s" msgstr "nesprávna hodnota %s voľby %s" #: ../../WPrefs.app/MouseSettings.c:357 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "modifikátor %s voľby ModifierKey nie je správny. Pužitá hodnota %s." #: ../../WPrefs.app/MouseSettings.c:382 msgid "could not retrieve keyboard modifier mapping" msgstr "nemožno naÄítaÅ¥ mapu modifikátorov" #: ../../WPrefs.app/MouseSettings.c:477 msgid "Mouse Speed" msgstr "RýchlosÅ¥ myÅ¡i" #: ../../WPrefs.app/MouseSettings.c:507 msgid "Acceler.:" msgstr "Zrýchl.:" #: ../../WPrefs.app/MouseSettings.c:520 msgid "Threshold:" msgstr "Prah zrýchl.:" #: ../../WPrefs.app/MouseSettings.c:535 msgid "Double-Click Delay" msgstr "Interval dvojkliknutia" #: ../../WPrefs.app/MouseSettings.c:579 msgid "Test" msgstr "Test" #: ../../WPrefs.app/MouseSettings.c:609 msgid "Workspace Mouse Actions" msgstr "Akcie myÅ¡i na ploche" #: ../../WPrefs.app/MouseSettings.c:614 msgid "Disable mouse actions" msgstr "ZakázaÅ¥ akcie myÅ¡i" #: ../../WPrefs.app/MouseSettings.c:620 msgid "Left Button" msgstr "Ľavé tlaÄ." #: ../../WPrefs.app/MouseSettings.c:630 msgid "Middle Button" msgstr "Stredné tlaÄ." #: ../../WPrefs.app/MouseSettings.c:640 msgid "Right Button" msgstr "Pravé tlaÄ." #: ../../WPrefs.app/MouseSettings.c:650 msgid "Mouse Wheel" msgstr "Koliesko myÅ¡i" #: ../../WPrefs.app/MouseSettings.c:672 msgid "Mouse Grab Modifier" msgstr "Modifikátor Å¥ahania myÅ¡ou" #: ../../WPrefs.app/MouseSettings.c:674 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "Klávesa, pri ktorej držaní môžete\n" "Å¥ahaním presúvaÅ¥ (TlaÄ1) alebo meniÅ¥\n" "veľkosÅ¥ (TlaÄ2) okna." #: ../../WPrefs.app/MouseSettings.c:708 #, c-format msgid "could not create %s" msgstr "nemožno vytvoriÅ¥ %s" #: ../../WPrefs.app/MouseSettings.c:724 #, c-format msgid "could not create temporary file %s" msgstr "nemožno vytvoriÅ¥ doÄasný súbor %s" #: ../../WPrefs.app/MouseSettings.c:756 #, c-format msgid "could not rename file %s to %s\n" msgstr "nemožno premenovaÅ¥ súbor %s na %s\n" #: ../../WPrefs.app/MouseSettings.c:829 msgid "Shift" msgstr "" #: ../../WPrefs.app/MouseSettings.c:830 msgid "Lock" msgstr "" #: ../../WPrefs.app/MouseSettings.c:831 msgid "Control" msgstr "" #: ../../WPrefs.app/MouseSettings.c:832 msgid "Mod1" msgstr "" #: ../../WPrefs.app/MouseSettings.c:833 msgid "Mod2" msgstr "" #: ../../WPrefs.app/MouseSettings.c:834 msgid "Mod3" msgstr "" #: ../../WPrefs.app/MouseSettings.c:835 msgid "Mod4" msgstr "" #: ../../WPrefs.app/MouseSettings.c:836 msgid "Mod5" msgstr "" #: ../../WPrefs.app/MouseSettings.c:839 msgid "Applications Menu" msgstr "Menu Aplikácie" #: ../../WPrefs.app/MouseSettings.c:841 msgid "Select Windows" msgstr "Výber okien" #: ../../WPrefs.app/MouseSettings.c:844 msgid "Switch Workspaces" msgstr "Prepínanie pracovných plôch" #: ../../WPrefs.app/MouseSettings.c:849 msgid "Mouse Preferences" msgstr "Nastavenia myÅ¡i" #: ../../WPrefs.app/MouseSettings.c:851 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "RýchlosÅ¥/zrýchlenie myÅ¡i, interval dvoj-\n" "kliknutia, ÄinnosÅ¥ jednotlivých tlaÄidiel." #: ../../WPrefs.app/Paths.c:84 msgid "bad value in option IconPath. Using default path list" msgstr "nesprávna hodnota voľby IconPath. Použitý implicitný zoznam ciest" #: ../../WPrefs.app/Paths.c:101 msgid "bad value in option PixmapPath. Using default path list" msgstr "nesprávna hodnota voľby PixmapPath. Použitý implicitný zoznam ciest" #: ../../WPrefs.app/Paths.c:149 msgid "Select directory" msgstr "Vyberte adresár" #: ../../WPrefs.app/Paths.c:270 msgid "Icon Search Paths" msgstr "Cesty k ikonám" #: ../../WPrefs.app/Paths.c:281 ../../WPrefs.app/Paths.c:312 #: ../../WPrefs.app/TexturePanel.c:1310 msgid "Add" msgstr "PridaÅ¥" #: ../../WPrefs.app/Paths.c:301 msgid "Pixmap Search Paths" msgstr "Cesty k obrázkom" #: ../../WPrefs.app/Paths.c:341 msgid "Search Path Configuration" msgstr "Nastavenia prehľadávaných ciest" #: ../../WPrefs.app/Paths.c:343 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "" "Nastavenia prehľadávaných adresárov\n" "pri hľadaní obrázkov a ikon." #: ../../WPrefs.app/Preferences.c:75 msgid "OFF" msgstr "VYPNUTÉ" #: ../../WPrefs.app/Preferences.c:77 msgid "1 pixel" msgstr "1 bod" #. 2-4 #: ../../WPrefs.app/Preferences.c:80 #, c-format msgid "%i pixels" msgstr "%i body" #. >4 #: ../../WPrefs.app/Preferences.c:83 #, c-format msgid "%i pixels " msgstr "%i bodov" #: ../../WPrefs.app/Preferences.c:229 msgid "Size Display" msgstr "Zobrazenie rozmerov okna" #: ../../WPrefs.app/Preferences.c:231 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "Umiestnenie a Å¡týl zobrazenia\n" "rozmerov okna pri ich zmene." #: ../../WPrefs.app/Preferences.c:238 ../../WPrefs.app/Preferences.c:259 msgid "Corner of screen" msgstr "V rohu obrazovky" #: ../../WPrefs.app/Preferences.c:239 ../../WPrefs.app/Preferences.c:260 msgid "Center of screen" msgstr "V strede obrazovky" #: ../../WPrefs.app/Preferences.c:240 ../../WPrefs.app/Preferences.c:261 msgid "Center of resized window" msgstr "V strede okna" #: ../../WPrefs.app/Preferences.c:241 msgid "Technical drawing-like" msgstr "Ako technické kreslenie" #: ../../WPrefs.app/Preferences.c:242 ../../WPrefs.app/Preferences.c:262 msgid "Disabled" msgstr "Zakázané" #: ../../WPrefs.app/Preferences.c:250 msgid "Position Display" msgstr "Zobrazenie umiestnenia" #: ../../WPrefs.app/Preferences.c:252 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "Umiestnenie a Å¡týl zobrazenia\n" "pozície okna pri jej zmene." #: ../../WPrefs.app/Preferences.c:270 msgid "Show balloon text for..." msgstr "Zobrazovanie obláÄikov pre..." #: ../../WPrefs.app/Preferences.c:277 msgid "incomplete window titles" msgstr "neúplné názvy okien" #: ../../WPrefs.app/Preferences.c:278 msgid "miniwindow titles" msgstr "názvy miniokien" #: ../../WPrefs.app/Preferences.c:279 msgid "application/dock icons" msgstr "ikony aplikácií a v Doku" #: ../../WPrefs.app/Preferences.c:280 msgid "internal help" msgstr "internú nápovedu" #: ../../WPrefs.app/Preferences.c:292 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "" "Pri aktivovaní okna klávesnicou\n" "presunúť okno do popredia." #: ../../WPrefs.app/Preferences.c:298 msgid "" "Enable keyboard language\n" "switch button in window titlebars." msgstr "" "PovoliÅ¥ tlaÄítko prepínania jazyka\n" "klávesnice v hornej liÅ¡te okien." #: ../../WPrefs.app/Preferences.c:307 msgid "Workspace border" msgstr "Okraje pracovnej plochy" #: ../../WPrefs.app/Preferences.c:323 msgid "Left/Right" msgstr "Vertikálne" #: ../../WPrefs.app/Preferences.c:328 msgid "Top/Bottom" msgstr "Horizontálne" #: ../../WPrefs.app/Preferences.c:349 msgid "Miscellaneous Ergonomic Preferences" msgstr "Rôzne ergonomické nastavenia" #: ../../WPrefs.app/Preferences.c:350 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "Nastavenie zobrazovania obláÄikov, geometrie atÄ." #: ../../WPrefs.app/TexturePanel.c:323 msgid "Saturation" msgstr "Saturácia" #: ../../WPrefs.app/TexturePanel.c:325 msgid "Brightness" msgstr "SvetlosÅ¥" #: ../../WPrefs.app/TexturePanel.c:373 ../../WPrefs.app/TexturePanel.c:380 msgid "Hue" msgstr "Odtieň" #: ../../WPrefs.app/TexturePanel.c:610 msgid "Could not load the selected file: " msgstr "Nemožno naÄítaÅ¥ vybraný súbor: " #: ../../WPrefs.app/TexturePanel.c:664 msgid "Open Image" msgstr "Obrázok" #: ../../WPrefs.app/TexturePanel.c:694 msgid "The selected file does not contain a supported image." msgstr "Vybraný súbor neobsahuje podporovaný typ obrázku." #: ../../WPrefs.app/TexturePanel.c:945 #, c-format msgid "could not load file '%s': %s" msgstr "nemožno naÄítaÅ¥ súbor '%s': %s" #: ../../WPrefs.app/TexturePanel.c:1064 #, c-format msgid "error creating texture %s" msgstr "chyba pri vytváraní textúry %s" #: ../../WPrefs.app/TexturePanel.c:1254 msgid "Texture Panel" msgstr "Panel textúr" #: ../../WPrefs.app/TexturePanel.c:1262 msgid "Texture Name" msgstr "Meno textúry" #: ../../WPrefs.app/TexturePanel.c:1274 msgid "Solid Color" msgstr "Jedna farba" #: ../../WPrefs.app/TexturePanel.c:1275 msgid "Gradient Texture" msgstr "Prechod farieb" #: ../../WPrefs.app/TexturePanel.c:1276 msgid "Simple Gradient Texture" msgstr "Prechod dvoch farieb" # fix me! kombinácia prechodu dvoch farieb a obrázku pod tým... #: ../../WPrefs.app/TexturePanel.c:1277 msgid "Textured Gradient" msgstr "Prechod na obrázku" #: ../../WPrefs.app/TexturePanel.c:1278 msgid "Image Texture" msgstr "Obrázok" #: ../../WPrefs.app/TexturePanel.c:1286 msgid "Default Color" msgstr "Farba pozadia" #: ../../WPrefs.app/TexturePanel.c:1298 msgid "Gradient Colors" msgstr "Farby prechodu" #: ../../WPrefs.app/TexturePanel.c:1394 msgid "Direction" msgstr "Smer" #: ../../WPrefs.app/TexturePanel.c:1422 msgid "Gradient" msgstr "Prechod" #: ../../WPrefs.app/TexturePanel.c:1440 msgid "Gradient Opacity" msgstr "NepriehľadnosÅ¥ prechodu" #: ../../WPrefs.app/TexturePanel.c:1483 msgid "Image" msgstr "Obrázok" #: ../../WPrefs.app/TexturePanel.c:1515 msgid "Tile" msgstr "Vedľa seba" #: ../../WPrefs.app/TexturePanel.c:1516 msgid "Scale" msgstr "RoztiahnuÅ¥" # fix me! príliÅ¡ dlhé #: ../../WPrefs.app/TexturePanel.c:1518 msgid "Maximize" msgstr "Maximaliz." #: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 msgid "Set" msgstr "NastaviÅ¥" #: ../../WPrefs.app/Themes.c:132 msgid "Stop" msgstr "ZastaviÅ¥" #: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:203 #: ../../WPrefs.app/Themes.c:223 msgid "Download" msgstr "StiahnuÅ¥" #: ../../WPrefs.app/Themes.c:171 msgid "Save Current Theme" msgstr "UložiÅ¥ súÄasnú tému" #: ../../WPrefs.app/Themes.c:180 msgid "Load" msgstr "NaÄítaÅ¥" #: ../../WPrefs.app/Themes.c:185 msgid "Install" msgstr "InÅ¡talovaÅ¥" # fix me! tile = pozadie ikony #: ../../WPrefs.app/Themes.c:193 msgid "Tile of The Day" msgstr "Pozadie dňa" #: ../../WPrefs.app/Themes.c:213 msgid "Bar of The Day" msgstr "LiÅ¡ta dňa" #: ../../WPrefs.app/WPrefs.c:260 msgid "Window Maker Preferences" msgstr "Konfigurácia Window Makeru" #: ../../WPrefs.app/WPrefs.c:284 msgid "Revert Page" msgstr "ObnoviÅ¥ stranu" #: ../../WPrefs.app/WPrefs.c:290 msgid "Revert All" msgstr "ObnoviÅ¥ vÅ¡etko" #: ../../WPrefs.app/WPrefs.c:296 msgid "Save" msgstr "UložiÅ¥" #: ../../WPrefs.app/WPrefs.c:309 msgid "Balloon Help" msgstr "Nápoveda" #: ../../WPrefs.app/WPrefs.c:334 msgid "Window Maker Preferences Utility" msgstr "KonfiguraÄný nástroj Window Makeru" #: ../../WPrefs.app/WPrefs.c:341 #, c-format msgid "Version %s for Window Maker %s or newer" msgstr "Verzia %s pre Window Maker %s alebo novší" # info: nemáme radi slovesá v inom tvare ako neurÄitku (Å¡tartujem) #: ../../WPrefs.app/WPrefs.c:349 msgid "Starting..." msgstr "Inicializácia..." #: ../../WPrefs.app/WPrefs.c:355 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg, Largo et al\n" "More Programming: James Thompson et al" msgstr "" "Programovanie/dizajn: Alfredo K. Kojima\n" "Grafika: Marco van Hylckama Vlieg, Largo a kol.\n" "ÄŽalÅ¡ie programovanie: James Thompson a kol." #: ../../WPrefs.app/WPrefs.c:455 #, c-format msgid "could not locate image file %s\n" msgstr "nemožno nájsÅ¥ súbor s obrázkom %s\n" #: ../../WPrefs.app/WPrefs.c:670 #, c-format msgid "could not load image file %s:%s" msgstr "nemožno naÄítaÅ¥ súbor s obrázkom %s:%s" #: ../../WPrefs.app/WPrefs.c:689 msgid "Loading Window Maker configuration files..." msgstr "Čítajú sa konfiguraÄné súbory Window Makeru..." #: ../../WPrefs.app/WPrefs.c:693 msgid "Initializing configuration panels..." msgstr "Inicializujú sa konfiguraÄné panely..." #: ../../WPrefs.app/WPrefs.c:727 msgid "" "WPrefs is free software and is distributed WITHOUT ANY\n" "WARRANTY under the terms of the GNU General Public License." msgstr "" "WPrefs je free software a je rozÅ¡irovaný BEZ AKEJKOĽVEK\n" "ZÃRUKY v súlade s licenciou GNU General Public Licence." #: ../../WPrefs.app/WPrefs.c:757 ../../WPrefs.app/WPrefs.c:837 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Doména Window Makeru (%s) je poÅ¡kodená!" # info: jak zvažujem, tak zvažujem, prednastavenia vs. Å¡tandardné nastavenia # vs. implicitné nastavenia, vždy mi to vychádza rovnako #: ../../WPrefs.app/WPrefs.c:761 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "" "Nemožno naÄítaÅ¥ doménu Window Makeru (%s) z databázy implicitných nastavení." #: ../../WPrefs.app/WPrefs.c:777 msgid "could not extract version information from Window Maker" msgstr "nemožno získaÅ¥ informáciu o verzii Window Makeru" #: ../../WPrefs.app/WPrefs.c:778 msgid "Make sure wmaker is in your search path." msgstr "UbezpeÄte sa, že wmaker sa nachádza v prehľadávanom adresári." #: ../../WPrefs.app/WPrefs.c:781 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." msgstr "" "Nemožno zistiÅ¥ verziu Window Makeru. UbezpeÄte sa, že je správne " "nainÅ¡talovaný a cesta k nemu sa nachádza v premennej PATH." #: ../../WPrefs.app/WPrefs.c:791 msgid "" "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." msgstr "" "Nemožno zistiÅ¥ verziu Window Makeru. UbezpeÄte sa, že je správne " "nainÅ¡talovaný a cesta k nemu sa nachádza v premennej PATH." #: ../../WPrefs.app/WPrefs.c:798 #, c-format msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "WPrefs podporuje Window Maker 0.18.0 alebo novší.\n" "Verzia nainÅ¡talovaného je %i.%i.%i.\n" #: ../../WPrefs.app/WPrefs.c:805 #, 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, ktorý je nainÅ¡talovaný na vaÅ¡om systéme, nie je úplne " "podporovaný touto verziou WPrefs." #: ../../WPrefs.app/WPrefs.c:818 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr "nemožno spustiÅ¥ \"%s --global_defaults_path\"." #: ../../WPrefs.app/WPrefs.c:841 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "Nemožno naÄítaÅ¥ globálnu doménu Window Makeru (%s)." #: ../../WPrefs.app/WPrefs.c:1090 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "nesprávna hodnota rýchlosti pre voľbu %s.\n" "Použitá implicitná Medium" #: ../../WPrefs.app/WindowHandling.c:141 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "nesprávna hodnota voľby %s vo WindowPlacement. Použitá implicitná" #: ../../WPrefs.app/WindowHandling.c:163 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "nesprávne údaje voľby WindowPlaceOrigin. Požité (0, 0)" #: ../../WPrefs.app/WindowHandling.c:243 msgid "Window Placement" msgstr "Umiestňovanie okien" #: ../../WPrefs.app/WindowHandling.c:244 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "Kam sa majú umiestňovaÅ¥ okná\n" "pri ich prvom zobrazení." #: ../../WPrefs.app/WindowHandling.c:250 msgid "Automatic" msgstr "Automatické" #: ../../WPrefs.app/WindowHandling.c:251 msgid "Random" msgstr "Náhodné" #: ../../WPrefs.app/WindowHandling.c:252 msgid "Manual" msgstr "RuÄné" #: ../../WPrefs.app/WindowHandling.c:253 msgid "Cascade" msgstr "Do kaskády" # info: v krajnom prípade to možno zmeniÅ¥ na nieÄo # lepÅ¡ie (mňa niÄ také nenapadne) #: ../../WPrefs.app/WindowHandling.c:254 msgid "Smart" msgstr "Elegantné" #: ../../WPrefs.app/WindowHandling.c:260 msgid "Placement Origin" msgstr "" "UmiestňovaÅ¥ od\n" "pozície" #: ../../WPrefs.app/WindowHandling.c:321 msgid "Opaque Move" msgstr "Obsah pri presune" #: ../../WPrefs.app/WindowHandling.c:322 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "ZobrazovaÅ¥ pri presúvaní okna\n" "jeho obsah alebo len rámÄek.\n" #: ../../WPrefs.app/WindowHandling.c:361 msgid "When maximizing..." msgstr "Pri maximalizácii..." #: ../../WPrefs.app/WindowHandling.c:366 msgid "...do not cover icons" msgstr "...neprekrývaÅ¥ ikony" #: ../../WPrefs.app/WindowHandling.c:372 msgid "...do not cover dock" msgstr "...neprekrývaÅ¥ Dok" #: ../../WPrefs.app/WindowHandling.c:381 msgid "Edge Resistance" msgstr "Odpor okrajov" #: ../../WPrefs.app/WindowHandling.c:383 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "Nastavenie odporu okrajov umožní\n" "oknám klásÅ¥ odpor alebo priÅ¥ahovaÅ¥\n" "pri presúvaní proti inému oknu\n" "alebo mimo obrazovky." #: ../../WPrefs.app/WindowHandling.c:402 msgid "Resist" msgstr "Odpor" # info: sem sa vmestí najviac nejakých 8 znakov a nedá sa to zmeniÅ¥ #: ../../WPrefs.app/WindowHandling.c:407 msgid "Attract" msgstr "PriÅ¥ah." #: ../../WPrefs.app/WindowHandling.c:423 msgid "" "Open dialogs in same workspace\n" "as their owners" msgstr "OtváraÅ¥ dialógy na ploche vlastníka" #: ../../WPrefs.app/WindowHandling.c:450 msgid "Window Handling Preferences" msgstr "Nastavenia práce s oknami" #: ../../WPrefs.app/WindowHandling.c:452 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "Nastavenia pre okná. Å týl poÄiatoÄného umiestnenia,\n" "odpor okrajov, zobrazovanie obsahu pri presune atÄ." # info: nechajme my navigáciu napokoji #: ../../WPrefs.app/Workspace.c:176 msgid "Workspace Navigation" msgstr "Pracovné plochy" #: ../../WPrefs.app/Workspace.c:183 msgid "" "wrap to the first workspace after the\n" "last workspace." msgstr "" "za poslednou pracovnou plochou\n" "nasleduje prvá a naopak." #: ../../WPrefs.app/Workspace.c:205 msgid "switch workspaces while dragging windows." msgstr "Å¥ahanie okien medzi pracovnými plochami." #: ../../WPrefs.app/Workspace.c:227 msgid "automatically create new workspaces." msgstr "automaticky vytváraÅ¥ nové pracovné plochy." #: ../../WPrefs.app/Workspace.c:250 msgid "" "Position of workspace\n" "name display" msgstr "" "Umiestnenie názvu\n" "pracovnej plochy." #: ../../WPrefs.app/Workspace.c:269 msgid "Disable" msgstr "ZakázaÅ¥" #: ../../WPrefs.app/Workspace.c:271 msgid "Top" msgstr "Navrchu" #: ../../WPrefs.app/Workspace.c:272 msgid "Bottom" msgstr "Naspodu" # info: lomky si môžme odpustiÅ¥ - máme na to #: ../../WPrefs.app/Workspace.c:273 msgid "Top/Left" msgstr "Navrchu vľavo" #: ../../WPrefs.app/Workspace.c:274 msgid "Top/Right" msgstr "Navrchu vpravo" #: ../../WPrefs.app/Workspace.c:275 msgid "Bottom/Left" msgstr "Naspodu vľavo" #: ../../WPrefs.app/Workspace.c:276 msgid "Bottom/Right" msgstr "Naspodu vpravo" #: ../../WPrefs.app/Workspace.c:284 msgid "Dock/Clip" msgstr "Dok/Spinka" #: ../../WPrefs.app/Workspace.c:303 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "ZakázaÅ¥/povoliÅ¥ Dok aplikácií (vertikálny\n" "stĺpec ikon na kraji obrazovky)." #: ../../WPrefs.app/Workspace.c:324 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "ZakázaÅ¥/povoliÅ¥ Spinku (to je tá\n" "vec s ikonou spinky na papier)." #: ../../WPrefs.app/Workspace.c:364 msgid "Workspace Preferences" msgstr "Nastavenia pracovných plôch" #: ../../WPrefs.app/Workspace.c:366 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "Vlastnosti navigácie v pracovných plochách.\n" "Tu tiež možno povoliÅ¥/zakázaÅ¥ Dok a Spinku." #: ../../WPrefs.app/imagebrowser.c:95 msgid "View" msgstr "PrezeraÅ¥" #: ../../WPrefs.app/main.c:59 #, c-format msgid "usage: %s [options]\n" msgstr "použitie: %s [voľby]\n" #: ../../WPrefs.app/main.c:60 msgid "options:" msgstr "voľby:" #: ../../WPrefs.app/main.c:61 msgid " -display <display>\tdisplay to be used" msgstr " -display <display>\tpoužiÅ¥ daný display" #: ../../WPrefs.app/main.c:62 msgid " --version\t\tprint version number and exit" msgstr " --version\t\tvypísaÅ¥ verziu a ukonÄiÅ¥" #: ../../WPrefs.app/main.c:63 msgid " --help\t\tprint this message and exit" msgstr " --help\t\tvypísaÅ¥ tento text a ukonÄiÅ¥" #: ../../WPrefs.app/main.c:122 #, c-format msgid "too few arguments for %s" msgstr "málo argumentov pre voľbu %s" #: ../../WPrefs.app/main.c:144 msgid "X server does not support locale" msgstr "X server nepodporuje miestne nastavenia" #: ../../WPrefs.app/main.c:147 msgid "cannot set locale modifiers" msgstr "nemožno nastaviÅ¥ modifikátory miestnych nastavení" #: ../../WPrefs.app/main.c:153 #, c-format msgid "could not open display %s" msgstr "nemožno otvoriÅ¥ display %s" #: ../../WPrefs.app/main.c:161 msgid "could not initialize application" msgstr "nemožno inicializovaÅ¥ aplikáciu" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/bg.po��������������������������������������������������������������0000644�0001750�0001750�00000302573�12214432632�014326� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Message catalog for WPrefs.app # Copyright (C) 2000,2003 Free Software Foundation, Inc. # Anton Zinoviev <zinoviev@debian.org>, 2000,2003 msgid "" msgstr "" "Project-Id-Version: WPrefs for WindowMaker 0.80.2\n" "POT-Creation-Date: 2003-02-08 21:44+0200\n" "PO-Revision-Date: 2001-04-18 23:22+03:00\n" "Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n" "Language-Team: Bulgarian <dict@linux.zonebg.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" # ../../WPrefs.app/Appearance.c:1104 #: ../../WPrefs.app/Appearance.c:1131 msgid "Select File" msgstr "Избор на файл" # ../../WPrefs.app/Appearance.c:1506 #: ../../WPrefs.app/Appearance.c:1533 msgid "Focused Window" msgstr "ФокуÑиран прозорец" # ../../WPrefs.app/Appearance.c:1510 #: ../../WPrefs.app/Appearance.c:1537 msgid "Unfocused Window" msgstr "ÐефокуÑиран прозорец" # ../../WPrefs.app/Appearance.c:1514 #: ../../WPrefs.app/Appearance.c:1541 msgid "Owner of Focused Window" msgstr "СобÑтвеник на нефокуÑиран" # Изненада: използва Ñе на две меÑта, трÑбва ни "Име на меню", но на # едното мÑÑто не Ñе побира. # ../../WPrefs.app/Appearance.c:1518 ../../WPrefs.app/Appearance.c:1836 #: ../../WPrefs.app/Appearance.c:1545 ../../WPrefs.app/Appearance.c:1862 msgid "Menu Title" msgstr "Меню (име)" # ../../WPrefs.app/Appearance.c:1522 ../../WPrefs.app/Appearance.c:1524 #: ../../WPrefs.app/Appearance.c:1549 ../../WPrefs.app/Appearance.c:1551 msgid "Normal Item" msgstr "Ðормално" # ../../WPrefs.app/Appearance.c:1528 #: ../../WPrefs.app/Appearance.c:1555 msgid "Disabled Item" msgstr "Забранено" # ../../WPrefs.app/Appearance.c:1537 #: ../../WPrefs.app/Appearance.c:1564 msgid "Highlighted" msgstr "Маркирано" # ../../WPrefs.app/Appearance.c:1729 #: ../../WPrefs.app/Appearance.c:1755 msgid "Texture" msgstr "ТекÑтура" # ../../WPrefs.app/Appearance.c:1737 #: ../../WPrefs.app/Appearance.c:1763 msgid "Titlebar of Focused Window" msgstr "Заглавна ивица на фокуÑиран" # ../../WPrefs.app/Appearance.c:1738 #: ../../WPrefs.app/Appearance.c:1764 msgid "Titlebar of Unfocused Windows" msgstr "Заглавна ивица на нефокуÑиран" # Загл. ив. на ÑобÑтв. на фокуÑиран # Заглавна ивица на ÑобÑтвеник на Ñ„. # ../../WPrefs.app/Appearance.c:1739 #: ../../WPrefs.app/Appearance.c:1765 msgid "Titlebar of Focused Window's Owner" msgstr "Загл. на ÑобÑтвеник на фокуÑиран" # ../../WPrefs.app/Appearance.c:1740 #: ../../WPrefs.app/Appearance.c:1766 msgid "Window Resizebar" msgstr "Ивица за оразмерÑване" # ../../WPrefs.app/Appearance.c:1741 #: ../../WPrefs.app/Appearance.c:1767 msgid "Titlebar of Menus" msgstr "Заглавие на меню" # ../../WPrefs.app/Appearance.c:1742 #: ../../WPrefs.app/Appearance.c:1768 msgid "Menu Items" msgstr "Елементи на меню" # ../../WPrefs.app/Appearance.c:1743 #: ../../WPrefs.app/Appearance.c:1769 msgid "Icon Background" msgstr "Фон за иконките" # ../../WPrefs.app/Appearance.c:1758 #: ../../WPrefs.app/Appearance.c:1784 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "Щракнете двукратно по текÑтурата, коÑто желаете да\n" "Ñе използва на маркираното мÑÑто." # ../../WPrefs.app/Appearance.c:1772 #: ../../WPrefs.app/Appearance.c:1798 msgid "New" msgstr "Ðова" # ../../WPrefs.app/Appearance.c:1776 #: ../../WPrefs.app/Appearance.c:1802 msgid "Create a new texture." msgstr "За да Ñе направи нова текÑтура." # ../../WPrefs.app/Appearance.c:1784 #: ../../WPrefs.app/Appearance.c:1810 msgid "Extract..." msgstr "Извлечи" # ../../WPrefs.app/Appearance.c:1788 #: ../../WPrefs.app/Appearance.c:1814 msgid "Extract texture(s) from a theme or a style file." msgstr "" "Извлича текÑтура(и) от тема\n" "или файл ÑÑŠÑ Ñтил." # ../../WPrefs.app/Appearance.c:1798 #: ../../WPrefs.app/Appearance.c:1824 msgid "Edit" msgstr "Редакт." # ../../WPrefs.app/Appearance.c:1801 #: ../../WPrefs.app/Appearance.c:1827 msgid "Edit the highlighted texture." msgstr "Редактиране на маркираната текÑтура." # ../../WPrefs.app/Appearance.c:1809 ../../WPrefs.app/TexturePanel.c:1310 #: ../../WPrefs.app/Appearance.c:1835 ../../WPrefs.app/TexturePanel.c:1316 msgid "Delete" msgstr "Изтрий" # ../../WPrefs.app/Appearance.c:1813 #: ../../WPrefs.app/Appearance.c:1839 msgid "Delete the highlighted texture." msgstr "Изтрива маркираната текÑтура." # ../../WPrefs.app/Appearance.c:1826 #: ../../WPrefs.app/Appearance.c:1852 msgid "Color" msgstr "Цветове" # ../../WPrefs.app/Appearance.c:1833 #: ../../WPrefs.app/Appearance.c:1859 msgid "Focused Window Title" msgstr "Име на фокуÑиран прозорец" # ../../WPrefs.app/Appearance.c:1834 #: ../../WPrefs.app/Appearance.c:1860 msgid "Unfocused Window Title" msgstr "Име на нефокуÑиран прозорец" # ../../WPrefs.app/Appearance.c:1835 #: ../../WPrefs.app/Appearance.c:1861 msgid "Owner of Focused Window Title" msgstr "Име на ÑобÑтвеник на фокуÑиран" # ../../WPrefs.app/Appearance.c:1837 #: ../../WPrefs.app/Appearance.c:1863 msgid "Menu Item Text" msgstr "ТекÑÑ‚ на елемент на меню" # ../../WPrefs.app/Appearance.c:1838 #: ../../WPrefs.app/Appearance.c:1864 msgid "Disabled Menu Item Text" msgstr "ТекÑÑ‚ на забранен елемент" # ../../WPrefs.app/Appearance.c:1839 #: ../../WPrefs.app/Appearance.c:1865 msgid "Menu Highlight Color" msgstr "ЦвÑÑ‚ на маркиран елемент" # ../../WPrefs.app/Appearance.c:1840 #: ../../WPrefs.app/Appearance.c:1866 msgid "Highlighted Menu Text Color" msgstr "ЦвÑÑ‚ на текÑÑ‚ на маркиран" # ../../WPrefs.app/Appearance.c:1743 #: ../../WPrefs.app/Appearance.c:1905 msgid "Background" msgstr "Фон" # ../../WPrefs.app/TexturePanel.c:1497 #: ../../WPrefs.app/Appearance.c:1917 ../../WPrefs.app/TexturePanel.c:1503 msgid "Browse..." msgstr "Браузър..." # ../../WPrefs.app/Appearance.c:1877 #: ../../WPrefs.app/Appearance.c:1930 msgid "Options" msgstr "Варианти" # ../../WPrefs.app/Appearance.c:1884 #: ../../WPrefs.app/Appearance.c:1937 msgid "Menu Style" msgstr "Стил на менютата" # ../../WPrefs.app/Appearance.c:1912 ../../WPrefs.app/Configurations.c:242 # ../../WPrefs.app/Configurations.c:254 ../../WPrefs.app/Focus.c:316 # ../../WPrefs.app/Focus.c:327 ../../WPrefs.app/MenuPreferences.c:137 # ../../WPrefs.app/MenuPreferences.c:148 # ../../WPrefs.app/MenuPreferences.c:176 # ../../WPrefs.app/MenuPreferences.c:191 ../../WPrefs.app/MouseSettings.c:561 # ../../WPrefs.app/MouseSettings.c:572 ../../WPrefs.app/WPrefs.c:545 # ../../WPrefs.app/WPrefs.c:570 #: ../../WPrefs.app/Appearance.c:1965 ../../WPrefs.app/Configurations.c:242 #: ../../WPrefs.app/Configurations.c:254 ../../WPrefs.app/Focus.c:288 #: ../../WPrefs.app/Focus.c:299 ../../WPrefs.app/MenuPreferences.c:134 #: ../../WPrefs.app/MenuPreferences.c:145 #: ../../WPrefs.app/MenuPreferences.c:173 #: ../../WPrefs.app/MenuPreferences.c:188 ../../WPrefs.app/MouseSettings.c:560 #: ../../WPrefs.app/MouseSettings.c:571 ../../WPrefs.app/WPrefs.c:558 #: ../../WPrefs.app/WPrefs.c:583 #, c-format msgid "could not load icon file %s" msgstr "Ðе може да Ñе зареди файлът Ñ Ð¸ÐºÐ¾Ð½ÐºÐ° %s" # ../../WPrefs.app/Appearance.c:1926 #: ../../WPrefs.app/Appearance.c:1979 msgid "Title Alignment" msgstr "ЗаглавиÑ" # ../../WPrefs.app/Appearance.c:1933 #: ../../WPrefs.app/Appearance.c:1986 msgid "Left" msgstr "ОтлÑво" # ÐÑма мÑÑто за "Центрирано" # ../../WPrefs.app/Appearance.c:1936 ../../WPrefs.app/TexturePanel.c:1511 # ../../WPrefs.app/Workspace.c:271 #: ../../WPrefs.app/Appearance.c:1989 ../../WPrefs.app/TexturePanel.c:1517 #: ../../WPrefs.app/Workspace.c:270 msgid "Center" msgstr "Централно" # ../../WPrefs.app/Appearance.c:1939 #: ../../WPrefs.app/Appearance.c:1992 msgid "Right" msgstr "ОтдÑÑно" # ../../WPrefs.app/Appearance.c:2167 #: ../../WPrefs.app/Appearance.c:2216 msgid "Appearance Preferences" msgstr "ÐŸÑ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð·Ð° изгледа" # ../../WPrefs.app/Appearance.c:2169 #: ../../WPrefs.app/Appearance.c:2218 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "ÐаÑтройка на цветове и текÑтури\n" "за прозорците, менютата\n" "и иконките." # ../../WPrefs.app/Appearance.c:2214 #: ../../WPrefs.app/Appearance.c:2263 msgid "Extract Texture" msgstr "Извлечи текÑтура" # ../../WPrefs.app/Appearance.c:2234 #: ../../WPrefs.app/Appearance.c:2283 msgid "Textures" msgstr "ТекÑтури" # ../../WPrefs.app/Appearance.c:2245 ../../WPrefs.app/WPrefs.c:301 #: ../../WPrefs.app/Appearance.c:2294 ../../WPrefs.app/WPrefs.c:302 msgid "Close" msgstr "Затвори" # ../../WPrefs.app/Appearance.c:2250 #: ../../WPrefs.app/Appearance.c:2299 msgid "Extract" msgstr "Извлечи" # ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 # ../../WPrefs.app/MouseSettings.c:491 ../../WPrefs.app/WindowHandling.c:331 # ../../WPrefs.app/WindowHandling.c:343 ../../WPrefs.app/Workspace.c:90 # ../../WPrefs.app/Workspace.c:101 #: ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 #: ../../WPrefs.app/MouseSettings.c:490 ../../WPrefs.app/WindowHandling.c:339 #: ../../WPrefs.app/WindowHandling.c:351 ../../WPrefs.app/Workspace.c:90 #: ../../WPrefs.app/Workspace.c:101 #, c-format msgid "could not load icon %s" msgstr "не може да Ñе зареди иконката %s" # ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:109 #: ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:109 #, c-format msgid "could not process icon %s: %s" msgstr "не може да Ñе обработи иконката %s: %s" # ../../WPrefs.app/Configurations.c:189 ../../WPrefs.app/Workspace.c:164 #: ../../WPrefs.app/Configurations.c:189 ../../WPrefs.app/Workspace.c:164 #, c-format msgid "could not load image file %s" msgstr "не може да Ñе зареди файл Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ %s" # ../../WPrefs.app/Configurations.c:203 #: ../../WPrefs.app/Configurations.c:203 msgid "Icon Slide Speed" msgstr "СкороÑÑ‚ на плъзгане на иконките" # ../../WPrefs.app/Configurations.c:209 #: ../../WPrefs.app/Configurations.c:209 msgid "Shade Animation Speed" msgstr "СкороÑÑ‚ на Ñвиването" # ../../WPrefs.app/Configurations.c:271 #: ../../WPrefs.app/Configurations.c:271 msgid "Smooth Scaling" msgstr "Изглаждане" # ../../WPrefs.app/Configurations.c:272 #: ../../WPrefs.app/Configurations.c:272 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "Гладко мащабиране на изображениÑта за фон, при\n" "което Ñе неутрализира ефекта на „пикÑелизациÑ“.\n" "Във връзка Ñ Ñ‚Ð¾Ð²Ð° е възможно значително да Ñе\n" "забави зареждането на Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð·Ð° фон." # ../../WPrefs.app/Configurations.c:313 #: ../../WPrefs.app/Configurations.c:313 msgid "Titlebar Style" msgstr "Заглавна ивица" # ../../WPrefs.app/Configurations.c:351 #: ../../WPrefs.app/Configurations.c:351 msgid "Animations and Sound" msgstr "Ðнимации и звук" # ../../WPrefs.app/Configurations.c:357 #: ../../WPrefs.app/Configurations.c:357 msgid "Animations" msgstr "Ðнимации" # ../../WPrefs.app/Configurations.c:368 #: ../../WPrefs.app/Configurations.c:368 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "ЗабранÑва/позволÑва анимации като например\n" "за Ð¼Ð¸Ð½Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° прозорците, Ñвиване и др." # ../../WPrefs.app/Configurations.c:376 #: ../../WPrefs.app/Configurations.c:376 msgid "Superfluous" msgstr "Излишни" # ../../WPrefs.app/Configurations.c:387 #: ../../WPrefs.app/Configurations.c:387 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "ЗабранÑва/позволÑва „излишните“ възможноÑти и\n" "анимации. Това включва „привиждането“ на дока\n" "при премеÑтването му от другата Ñтрана, както\n" "и анимациÑта на екÑÐ¿Ð»Ð¾Ð·Ð¸Ñ Ð·Ð° откачените от\n" "дока иконки." # ../../WPrefs.app/Configurations.c:397 #: ../../WPrefs.app/Configurations.c:397 msgid "Sounds" msgstr "Звукове" # ../../WPrefs.app/Configurations.c:408 #: ../../WPrefs.app/Configurations.c:408 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://shadowmere.student.utwente.nl/" msgstr "" "ЗабранÑва/позволÑва поддръжката на звукови\n" "ефекти, проигравани при дейÑÑ‚Ð²Ð¸Ñ ÐºÐ°Ñ‚Ð¾ за-\n" "Ñенчване и затварÑне на прозорец. Ще е не-\n" "обходим модул, разпроÑтранÑван отделно.\n" "Може да го получите от адреÑ\n" "http://shadowmere.student.utwente.nl/" # ../../WPrefs.app/Configurations.c:419 #: ../../WPrefs.app/Configurations.c:419 msgid "" "Note: sound requires a module distributed\n" "separately" msgstr "" "Забележете, че за звук е необходим модул,\n" "който Ñе разпроÑтранÑва отделно." # ../../WPrefs.app/Configurations.c:429 #: ../../WPrefs.app/Configurations.c:429 msgid "Dithering colormap for 8bpp" msgstr "Палитра за Ð´Ð¸Ñ„ÑƒÐ·Ð¸Ñ Ð¿Ñ€Ð¸ 8 бита/пикÑел" # ../../WPrefs.app/Configurations.c:431 #: ../../WPrefs.app/Configurations.c:431 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "Брой на цветове, които да Ñе запазÑÑ‚ за\n" "Уиндоу Мейкър, при диÑплеи, поддържащи Ñамо\n" "8 бита/пикÑел (Ñ‚.н. PseudoColor)." # ../../WPrefs.app/Configurations.c:438 #: ../../WPrefs.app/Configurations.c:438 msgid "Disable dithering in any visual/depth" msgstr "Без никакво точкуване" # ../../WPrefs.app/Configurations.c:459 #: ../../WPrefs.app/Configurations.c:459 msgid "" "More colors for\n" "applications" msgstr "" "Повече цветове\n" "за приложe-\n" "ниÑта" # ../../WPrefs.app/Configurations.c:466 #: ../../WPrefs.app/Configurations.c:466 msgid "" "More colors for\n" "Window Maker" msgstr "" "Повече\n" "цветове за\n" "Уиндоу Мейкър" # ../../WPrefs.app/Configurations.c:521 #: ../../WPrefs.app/Configurations.c:521 msgid "Other Configurations" msgstr "Други наÑтройки" # ../../WPrefs.app/Configurations.c:523 #: ../../WPrefs.app/Configurations.c:523 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "СкороÑÑ‚ на анимациите, Ñтил на заглавните ивици,\n" "избор на разни опции и брой цветове за Уиндоу\n" "Мейкър при диÑплеи Ñ 8 бита/пикÑел." # ../../WPrefs.app/Expert.c:75 #: ../../WPrefs.app/Expert.c:75 msgid "" "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." msgstr "Без минипрозорчета (минимизирани прозорци). Полезно при Гном и КДЕ." # ../../WPrefs.app/Expert.c:76 #: ../../WPrefs.app/Expert.c:76 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "Без неÑпецифични за Уиндоу Мейкър параметри (да не Ñе ползва xset)." # ../../WPrefs.app/Expert.c:77 #: ../../WPrefs.app/Expert.c:77 msgid "Automatically save session when exiting Window Maker." msgstr "Ðвтоматично да Ñе запазва ÑеÑиÑта при изход от Уиндоу Мейкър." # ../../WPrefs.app/Expert.c:78 #: ../../WPrefs.app/Expert.c:78 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "Ðтрибут „SaveUnder“ за рамките на прозорци, за иконки, менюта и др." #: ../../WPrefs.app/Expert.c:79 msgid "Use Windoze style cycling." msgstr "Циклично преминаване през прозорците в Ñтил „УиндоуÑ“." # ../../WPrefs.app/Expert.c:80 #: ../../WPrefs.app/Expert.c:80 msgid "Disable confirmation panel for the Kill command." msgstr "Без диалог за потвърждение при команда за убиване." # ../../WPrefs.app/Expert.c:80 #: ../../WPrefs.app/Expert.c:81 msgid "Disable selection animation for selected icons." msgstr "Без Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° маркирането за маркирани иконки." # ../../WPrefs.app/Expert.c:113 #: ../../WPrefs.app/Expert.c:115 msgid "Expert User Preferences" msgstr "ÐаÑтройки за напреднали потребители" # ../../WPrefs.app/Expert.c:115 #: ../../WPrefs.app/Expert.c:117 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "ÐаÑтройки за хора, които знаÑÑ‚ какво правÑÑ‚...\n" "Също и разни други наÑтройки." # ../../WPrefs.app/Focus.c:83 #: ../../WPrefs.app/Focus.c:80 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "" "неправилна ÑтойноÑÑ‚ %s на опциÑта FocusMode. По подразбиране Ñе ползва Manual" # ../../WPrefs.app/Focus.c:98 #: ../../WPrefs.app/Focus.c:94 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "" "неправилна ÑтойноÑÑ‚ %s на опциÑта ColormapMode. По подразбиране Ñе ползва " "Auto" # ../../WPrefs.app/Focus.c:249 #: ../../WPrefs.app/Focus.c:214 msgid "Input Focus Mode" msgstr "Правило за фокуÑиране" # ../../WPrefs.app/Focus.c:196 #: ../../WPrefs.app/Focus.c:222 msgid "Manual: Click on the window to set keyboard input focus" msgstr "Ръчно: щракане върху прозореца, за да му Ñе даде ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð½Ð¸Ñ Ñ„Ð¾ÐºÑƒÑ." # ../../WPrefs.app/Focus.c:205 #: ../../WPrefs.app/Focus.c:229 msgid "Auto: Set keyboard input focus to the window under the mouse pointer" msgstr "Ðвтоматично: клавиатурниÑÑ‚ Ñ„Ð¾ÐºÑƒÑ Ñе получава от прозореца, върху който е мишката." # ../../WPrefs.app/Focus.c:271 #: ../../WPrefs.app/Focus.c:243 msgid "Install colormap in the window..." msgstr "Цветовата палитра е за прозореца,... " # ../../WPrefs.app/Focus.c:276 #: ../../WPrefs.app/Focus.c:248 msgid "...that has the input focus." msgstr "... който е фокуÑиран." # ../../WPrefs.app/Focus.c:281 #: ../../WPrefs.app/Focus.c:253 msgid "...that is under the mouse pointer." msgstr "... който е под мишката." # ../../WPrefs.app/Focus.c:290 #: ../../WPrefs.app/Focus.c:262 msgid "Automatic Window Raise Delay" msgstr "ЗабавÑне на автоматичното повдигане" # ../../WPrefs.app/Focus.c:347 #: ../../WPrefs.app/Focus.c:319 ../../WPrefs.app/MouseSettings.c:601 msgid "msec" msgstr "ms" # ../../WPrefs.app/Focus.c:364 #: ../../WPrefs.app/Focus.c:336 msgid "" "Do not let applications receive\n" "the click used to focus windows." msgstr "" "ПриложениÑта да не получават\n" "щраканиÑ, използвани за\n" "фокуÑиране на прозорец." # ../../WPrefs.app/Focus.c:370 #: ../../WPrefs.app/Focus.c:342 msgid "" "Automatically focus new\n" "windows." msgstr "" "Ðвтоматично да Ñе фокуÑират\n" "новите прозорци." # ../../WPrefs.app/Focus.c:391 #: ../../WPrefs.app/Focus.c:363 msgid "Window Focus Preferences" msgstr "ÐŸÑ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð·Ð° фокуÑирането на прозорците" # ../../WPrefs.app/Focus.c:393 #: ../../WPrefs.app/Focus.c:365 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "Правило за предаване на ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð½Ð¸Ñ Ñ„Ð¾ÐºÑƒÑ,\n" "предаване на цветовата палитра при диÑплеи\n" "Ñ 8 бита/пикÑел и други подобни опции." # ../../WPrefs.app/Font.c:277 #: ../../WPrefs.app/Font.c:276 msgid "Could not locate font information file WPrefs.app/font.data" msgstr "Ðе може да бъде открит информационниÑÑ‚ файл за шрифтовете WPrefs.app/font.data" # ../../WPrefs.app/Font.c:283 #: ../../WPrefs.app/Font.c:282 msgid "Could not read font information file WPrefs.app/font.data" msgstr "" "Ðе може да Ñе чете информационниÑÑ‚ файл за шрифтовете WPrefs.app/font.data" # ../../WPrefs.app/Font.c:294 #: ../../WPrefs.app/Font.c:293 msgid "" "Invalid data in font information file WPrefs.app/font.data.\n" "Encodings data not found." msgstr "" "Ðеправилни данни във информационниÑÑ‚ файл за шрифтовете WPrefs.app/font." "data\n" "ÐÑма данни за кодовата таблица." # ../../WPrefs.app/Font.c:299 #: ../../WPrefs.app/Font.c:298 msgid "- Custom -" msgstr "- ÐаглаÑен -" # ../../WPrefs.app/Font.c:330 ../../WPrefs.app/Menu.c:1401 # ../../WPrefs.app/MouseSettings.c:152 ../../WPrefs.app/MouseSettings.c:172 # ../../WPrefs.app/TexturePanel.c:608 ../../WPrefs.app/TexturePanel.c:686 # ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:743 # ../../WPrefs.app/WPrefs.c:748 ../../WPrefs.app/WPrefs.c:762 # ../../WPrefs.app/WPrefs.c:772 ../../WPrefs.app/WPrefs.c:782 # ../../WPrefs.app/WPrefs.c:813 ../../WPrefs.app/WPrefs.c:818 #: ../../WPrefs.app/Font.c:329 ../../WPrefs.app/Menu.c:1594 #: ../../WPrefs.app/MouseSettings.c:140 ../../WPrefs.app/MouseSettings.c:160 #: ../../WPrefs.app/TexturePanel.c:613 ../../WPrefs.app/TexturePanel.c:693 #: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:758 #: ../../WPrefs.app/WPrefs.c:763 ../../WPrefs.app/WPrefs.c:780 #: ../../WPrefs.app/WPrefs.c:790 ../../WPrefs.app/WPrefs.c:800 #: ../../WPrefs.app/WPrefs.c:838 ../../WPrefs.app/WPrefs.c:843 msgid "Error" msgstr "Грешка" # ../../WPrefs.app/Font.c:330 ../../WPrefs.app/Menu.c:1401 # ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126 # ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:154 # ../../WPrefs.app/MouseSettings.c:174 ../../WPrefs.app/TexturePanel.c:609 # ../../WPrefs.app/TexturePanel.c:688 ../../WPrefs.app/TexturePanel.c:1522 # ../../WPrefs.app/Themes.c:98 ../../WPrefs.app/WPrefs.c:743 # ../../WPrefs.app/WPrefs.c:748 ../../WPrefs.app/WPrefs.c:764 # ../../WPrefs.app/WPrefs.c:776 ../../WPrefs.app/WPrefs.c:782 # ../../WPrefs.app/WPrefs.c:789 ../../WPrefs.app/WPrefs.c:813 # ../../WPrefs.app/WPrefs.c:818 #: ../../WPrefs.app/Font.c:329 ../../WPrefs.app/Menu.c:1594 #: ../../WPrefs.app/MouseSettings.c:142 ../../WPrefs.app/MouseSettings.c:162 #: ../../WPrefs.app/TexturePanel.c:614 ../../WPrefs.app/TexturePanel.c:695 #: ../../WPrefs.app/TexturePanel.c:1528 ../../WPrefs.app/Themes.c:98 #: ../../WPrefs.app/WPrefs.c:758 ../../WPrefs.app/WPrefs.c:763 #: ../../WPrefs.app/WPrefs.c:782 ../../WPrefs.app/WPrefs.c:794 #: ../../WPrefs.app/WPrefs.c:800 ../../WPrefs.app/WPrefs.c:807 #: ../../WPrefs.app/WPrefs.c:838 ../../WPrefs.app/WPrefs.c:843 #: ../../WPrefs.app/imagebrowser.c:105 msgid "OK" msgstr "Приемам" # ../../WPrefs.app/Font.c:377 #: ../../WPrefs.app/Font.c:376 msgid "Default Font Sets" msgstr "Стандартни шрифтове" # ../../WPrefs.app/Font.c:390 #: ../../WPrefs.app/Font.c:389 msgid "Font Set" msgstr "Гарнитура" # ../../WPrefs.app/Font.c:419 #: ../../WPrefs.app/Font.c:418 msgid "Add..." msgstr "Добави" # ../../WPrefs.app/Font.c:424 ../../WPrefs.app/Font.c:439 #: ../../WPrefs.app/Font.c:423 ../../WPrefs.app/Font.c:438 msgid "Change..." msgstr "Смени..." # ../../WPrefs.app/Font.c:429 ../../WPrefs.app/Paths.c:288 # ../../WPrefs.app/Paths.c:319 #: ../../WPrefs.app/Font.c:428 ../../WPrefs.app/Paths.c:288 #: ../../WPrefs.app/Paths.c:319 msgid "Remove" msgstr "Премахни" # ../../WPrefs.app/Font.c:478 #: ../../WPrefs.app/Font.c:477 msgid "Font Preferences" msgstr "ÐŸÑ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð·Ð° шрифтовете" # ../../WPrefs.app/Font.c:479 #: ../../WPrefs.app/Font.c:478 msgid "Font Configurations for Windows, Menus etc" msgstr "" "ÐаÑтройка на шрифтовете за\n" "прозорците, менютата и др." # ../../WPrefs.app/Icons.c:182 #: ../../WPrefs.app/Icons.c:180 msgid "Icon Positioning" msgstr "Ðареждане на иконките" # ../../WPrefs.app/Icons.c:229 #: ../../WPrefs.app/Icons.c:227 msgid "Iconification Animation" msgstr "ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ минимизиране" # ../../WPrefs.app/Icons.c:240 #: ../../WPrefs.app/Icons.c:238 msgid "Shrinking/Zooming" msgstr "Свиване/разширÑване" # ../../WPrefs.app/Icons.c:241 #: ../../WPrefs.app/Icons.c:239 msgid "Spinning/Twisting" msgstr "Увиване/развиване" # ../../WPrefs.app/Icons.c:242 #: ../../WPrefs.app/Icons.c:240 msgid "3D-flipping" msgstr "Тримерно преобръщане" # ../../WPrefs.app/Icons.c:243 #: ../../WPrefs.app/Icons.c:241 ../../WPrefs.app/MouseSettings.c:838 #: ../../WPrefs.app/MouseSettings.c:843 msgid "None" msgstr "Ðикаква" # ../../WPrefs.app/Icons.c:256 #: ../../WPrefs.app/Icons.c:254 msgid "Auto-arrange icons" msgstr "Ðвтомат. подреждане на иконките" # ../../WPrefs.app/Icons.c:258 #: ../../WPrefs.app/Icons.c:256 msgid "Keep icons and miniwindows arranged all the time." msgstr "" "Иконките и минипрозорчетата да Ñе поддържат\n" "подредени през цÑлото време." # ../../WPrefs.app/Icons.c:264 #: ../../WPrefs.app/Icons.c:262 msgid "Omnipresent miniwindows" msgstr "ВездеÑъщни минипрозорчета" # ../../WPrefs.app/Icons.c:266 #: ../../WPrefs.app/Icons.c:264 msgid "Make miniwindows be present in all workspaces." msgstr "" "Минипрозорчетата да приÑÑŠÑтват на\n" "вÑички работни меÑта." # ../../WPrefs.app/Icons.c:275 #: ../../WPrefs.app/Icons.c:273 msgid "Icon Size" msgstr "Размер на иконките" # ../../WPrefs.app/Icons.c:277 #: ../../WPrefs.app/Icons.c:275 msgid "The size of the dock/application icon and miniwindows" msgstr "" "Размерът на иконките и минипрозорчетата\n" "от дока и на приложениÑта." # ../../WPrefs.app/Icons.c:347 #: ../../WPrefs.app/Icons.c:345 msgid "Icon Preferences" msgstr "ÐŸÑ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð·Ð° иконките" # ../../WPrefs.app/Icons.c:349 #: ../../WPrefs.app/Icons.c:347 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "Опции за поддържането на иконките и минипрозорчетата.\n" "МÑÑто, където да Ñе подреждат иконките, техниÑÑ‚\n" "размер, вид Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ минимизиране." # ../../WPrefs.app/KeyboardSettings.c:74 #: ../../WPrefs.app/KeyboardSettings.c:73 msgid "Initial Key Repeat" msgstr "" # ../../WPrefs.app/KeyboardSettings.c:115 #: ../../WPrefs.app/KeyboardSettings.c:114 msgid "Key Repeat Rate" msgstr "" # ../../WPrefs.app/KeyboardSettings.c:155 #: ../../WPrefs.app/KeyboardSettings.c:154 msgid "Type here to test" msgstr "Пишете тук за проба" # ../../WPrefs.app/KeyboardSettings.c:174 #: ../../WPrefs.app/KeyboardSettings.c:173 msgid "Keyboard Preferences" msgstr "ÐŸÑ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð·Ð° клавиатурата" # ../../WPrefs.app/KeyboardSettings.c:176 #: ../../WPrefs.app/KeyboardSettings.c:175 msgid "Not done" msgstr "Ðе е готово" # ../../WPrefs.app/KeyboardShortcuts.c:185 ../../WPrefs.app/Menu.c:1027 # ../../WPrefs.app/MenuGuru.c:263 ../../WPrefs.app/TexturePanel.c:1528 #: ../../WPrefs.app/KeyboardShortcuts.c:306 ../../WPrefs.app/Menu.c:360 #: ../../WPrefs.app/TexturePanel.c:1534 ../../WPrefs.app/imagebrowser.c:100 msgid "Cancel" msgstr "ОтменÑм" # ../../WPrefs.app/KeyboardShortcuts.c:186 #: ../../WPrefs.app/KeyboardShortcuts.c:307 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "" "Ðаберете клавишната\n" "ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð¸Ð»Ð¸ натиÑ-\n" "нете „ОтменÑм“ за да Ñе\n" "оÑвободи клавиатурата." # ../../WPrefs.app/KeyboardShortcuts.c:206 # ../../WPrefs.app/KeyboardShortcuts.c:454 ../../WPrefs.app/Menu.c:1039 # ../../WPrefs.app/Menu.c:1262 #: ../../WPrefs.app/KeyboardShortcuts.c:327 #: ../../WPrefs.app/KeyboardShortcuts.c:577 ../../WPrefs.app/Menu.c:371 #: ../../WPrefs.app/Menu.c:830 msgid "Capture" msgstr "Прихвани" # ../../WPrefs.app/KeyboardShortcuts.c:207 # ../../WPrefs.app/KeyboardShortcuts.c:461 #: ../../WPrefs.app/KeyboardShortcuts.c:328 #: ../../WPrefs.app/KeyboardShortcuts.c:585 msgid "Click Capture to interactively define the shortcut key." msgstr "" "ÐатиÑнете „Прихвани“ за да определите диалогово клавишната комбинациÑ." # ../../WPrefs.app/KeyboardShortcuts.c:361 #: ../../WPrefs.app/KeyboardShortcuts.c:483 msgid "Actions" msgstr "ДейÑтвиÑ" # ../../WPrefs.app/KeyboardShortcuts.c:377 #: ../../WPrefs.app/KeyboardShortcuts.c:499 msgid "Open applications menu" msgstr "Менюто на приложениÑта" # ../../WPrefs.app/KeyboardShortcuts.c:378 #: ../../WPrefs.app/KeyboardShortcuts.c:500 msgid "Open window list menu" msgstr "Менюто на ÑпиÑъка Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ñ†Ð¸Ñ‚Ðµ" # ../../WPrefs.app/KeyboardShortcuts.c:379 #: ../../WPrefs.app/KeyboardShortcuts.c:501 msgid "Open window commands menu" msgstr "Менюто Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ‡Ð½Ð¸Ñ‚Ðµ команди" # ../../WPrefs.app/KeyboardShortcuts.c:380 #: ../../WPrefs.app/KeyboardShortcuts.c:502 msgid "Hide active application" msgstr "Скриване на активното приложение" # ../../WPrefs.app/KeyboardShortcuts.c:380 #: ../../WPrefs.app/KeyboardShortcuts.c:503 msgid "Hide other applications" msgstr "Скриване на другите приложениÑ" # ../../WPrefs.app/KeyboardShortcuts.c:381 #: ../../WPrefs.app/KeyboardShortcuts.c:504 msgid "Miniaturize active window" msgstr "Минимизиране на Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†" # ../../WPrefs.app/KeyboardShortcuts.c:382 #: ../../WPrefs.app/KeyboardShortcuts.c:505 msgid "Close active window" msgstr "ЗатварÑне на Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†" # ../../WPrefs.app/KeyboardShortcuts.c:383 #: ../../WPrefs.app/KeyboardShortcuts.c:506 msgid "Maximize active window" msgstr "МакÑимизиране на Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†" # ../../WPrefs.app/KeyboardShortcuts.c:384 #: ../../WPrefs.app/KeyboardShortcuts.c:507 msgid "Maximize active window vertically" msgstr "Вертикално макÑимизиране на активниÑ" # ../../WPrefs.app/KeyboardShortcuts.c:384 #: ../../WPrefs.app/KeyboardShortcuts.c:508 msgid "Maximize active window horizontally" msgstr "Хоризонтално макÑимизиране на активниÑ" # ../../WPrefs.app/KeyboardShortcuts.c:385 #: ../../WPrefs.app/KeyboardShortcuts.c:509 msgid "Raise active window" msgstr "Повдигане на Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†" # ../../WPrefs.app/KeyboardShortcuts.c:386 #: ../../WPrefs.app/KeyboardShortcuts.c:510 msgid "Lower active window" msgstr "СпуÑкане на Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†" # ../../WPrefs.app/KeyboardShortcuts.c:387 #: ../../WPrefs.app/KeyboardShortcuts.c:511 msgid "Raise/Lower window under mouse pointer" msgstr "Вдигане/ÑпуÑкане на прозореца под мишката" # ../../WPrefs.app/KeyboardShortcuts.c:388 #: ../../WPrefs.app/KeyboardShortcuts.c:512 msgid "Shade active window" msgstr "Свиване на Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†" # ../../WPrefs.app/KeyboardShortcuts.c:389 #: ../../WPrefs.app/KeyboardShortcuts.c:513 msgid "Move/Resize active window" msgstr "МеÑтене/оразмерÑване на Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†" # ../../WPrefs.app/KeyboardShortcuts.c:390 #: ../../WPrefs.app/KeyboardShortcuts.c:514 msgid "Select active window" msgstr "Маркиране на Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†" # ../../WPrefs.app/KeyboardShortcuts.c:391 #: ../../WPrefs.app/KeyboardShortcuts.c:515 msgid "Focus next window" msgstr "ФокуÑиране на ÑÐ»ÐµÐ´Ð²Ð°Ñ‰Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†" # ../../WPrefs.app/KeyboardShortcuts.c:392 #: ../../WPrefs.app/KeyboardShortcuts.c:516 msgid "Focus previous window" msgstr "ФокуÑиране на Ð¿Ñ€ÐµÐ´Ñ…Ð¾Ð´Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†" # ../../WPrefs.app/KeyboardShortcuts.c:393 #: ../../WPrefs.app/KeyboardShortcuts.c:517 msgid "Switch to next workspace" msgstr "Преминаване към Ñледващото работно мÑÑто" # ../../WPrefs.app/KeyboardShortcuts.c:394 #: ../../WPrefs.app/KeyboardShortcuts.c:518 msgid "Switch to previous workspace" msgstr "Преминаване към предходното работно мÑÑто" # ../../WPrefs.app/KeyboardShortcuts.c:395 #: ../../WPrefs.app/KeyboardShortcuts.c:519 msgid "Switch to next ten workspaces" msgstr "Ðапред през деÑет работни мeÑта" # ../../WPrefs.app/KeyboardShortcuts.c:396 #: ../../WPrefs.app/KeyboardShortcuts.c:520 msgid "Switch to previous ten workspaces" msgstr "Ðазад през деÑет работни меÑта" # ../../WPrefs.app/KeyboardShortcuts.c:397 #: ../../WPrefs.app/KeyboardShortcuts.c:521 msgid "Switch to workspace 1" msgstr "Преминаване към работно мÑÑто 1" # ../../WPrefs.app/KeyboardShortcuts.c:398 #: ../../WPrefs.app/KeyboardShortcuts.c:522 msgid "Switch to workspace 2" msgstr "Преминаване към работно мÑÑто 2" # ../../WPrefs.app/KeyboardShortcuts.c:399 #: ../../WPrefs.app/KeyboardShortcuts.c:523 msgid "Switch to workspace 3" msgstr "Преминаване към работно мÑÑто 3" # ../../WPrefs.app/KeyboardShortcuts.c:400 #: ../../WPrefs.app/KeyboardShortcuts.c:524 msgid "Switch to workspace 4" msgstr "Преминаване към работно мÑÑто 4" # ../../WPrefs.app/KeyboardShortcuts.c:401 #: ../../WPrefs.app/KeyboardShortcuts.c:525 msgid "Switch to workspace 5" msgstr "Преминаване към работно мÑÑто 5" # ../../WPrefs.app/KeyboardShortcuts.c:402 #: ../../WPrefs.app/KeyboardShortcuts.c:526 msgid "Switch to workspace 6" msgstr "Преминаване към работно мÑÑто 6" # ../../WPrefs.app/KeyboardShortcuts.c:403 #: ../../WPrefs.app/KeyboardShortcuts.c:527 msgid "Switch to workspace 7" msgstr "Преминаване към работно мÑÑто 7" # ../../WPrefs.app/KeyboardShortcuts.c:404 #: ../../WPrefs.app/KeyboardShortcuts.c:528 msgid "Switch to workspace 8" msgstr "Преминаване към работно мÑÑто 8" # ../../WPrefs.app/KeyboardShortcuts.c:405 #: ../../WPrefs.app/KeyboardShortcuts.c:529 msgid "Switch to workspace 9" msgstr "Преминаване към работно мÑÑто 9" # ../../WPrefs.app/KeyboardShortcuts.c:406 #: ../../WPrefs.app/KeyboardShortcuts.c:530 msgid "Switch to workspace 10" msgstr "Преминаване към работно мÑÑто 10" # ../../WPrefs.app/KeyboardShortcuts.c:407 #: ../../WPrefs.app/KeyboardShortcuts.c:531 msgid "Shortcut for window 1" msgstr "Бърз клавиш за прозорец 1" # ../../WPrefs.app/KeyboardShortcuts.c:408 #: ../../WPrefs.app/KeyboardShortcuts.c:532 msgid "Shortcut for window 2" msgstr "Бърз клавиш за прозорец 2" # ../../WPrefs.app/KeyboardShortcuts.c:409 #: ../../WPrefs.app/KeyboardShortcuts.c:533 msgid "Shortcut for window 3" msgstr "Бърз клавиш за прозорец 3" # ../../WPrefs.app/KeyboardShortcuts.c:410 #: ../../WPrefs.app/KeyboardShortcuts.c:534 msgid "Shortcut for window 4" msgstr "Бърз клавиш за прозорец 4" # ../../WPrefs.app/KeyboardShortcuts.c:412 #: ../../WPrefs.app/KeyboardShortcuts.c:535 msgid "Shortcut for window 5" msgstr "Бърз клавиш за прозорец 5" # ../../WPrefs.app/KeyboardShortcuts.c:413 #: ../../WPrefs.app/KeyboardShortcuts.c:536 msgid "Shortcut for window 6" msgstr "Бърз клавиш за прозорец 6" # ../../WPrefs.app/KeyboardShortcuts.c:414 #: ../../WPrefs.app/KeyboardShortcuts.c:537 msgid "Shortcut for window 7" msgstr "Бърз клавиш за прозорец 7" # ../../WPrefs.app/KeyboardShortcuts.c:415 #: ../../WPrefs.app/KeyboardShortcuts.c:538 msgid "Shortcut for window 8" msgstr "Бърз клавиш за прозорец 8" # ../../WPrefs.app/KeyboardShortcuts.c:416 #: ../../WPrefs.app/KeyboardShortcuts.c:539 msgid "Shortcut for window 9" msgstr "Бърз клавиш за прозорец 9" # ../../WPrefs.app/KeyboardShortcuts.c:417 #: ../../WPrefs.app/KeyboardShortcuts.c:540 msgid "Shortcut for window 10" msgstr "Бърз клавиш за прозорец 10" # ../../WPrefs.app/KeyboardShortcuts.c:395 #: ../../WPrefs.app/KeyboardShortcuts.c:541 msgid "Switch to Next Screen/Monitor" msgstr "Ðапред през деÑет екрана/монитора" # ../../WPrefs.app/KeyboardShortcuts.c:419 #: ../../WPrefs.app/KeyboardShortcuts.c:542 msgid "Raise Clip" msgstr "Повдигане на Кламер" # ../../WPrefs.app/KeyboardShortcuts.c:420 #: ../../WPrefs.app/KeyboardShortcuts.c:543 msgid "Lower Clip" msgstr "СпуÑкане на Кламер" # ../../WPrefs.app/KeyboardShortcuts.c:421 #: ../../WPrefs.app/KeyboardShortcuts.c:544 msgid "Raise/Lower Clip" msgstr "Повдигане/ÑпуÑкане на Кламер" # ../../WPrefs.app/KeyboardShortcuts.c:423 #: ../../WPrefs.app/KeyboardShortcuts.c:546 msgid "Toggle keyboard language" msgstr "Превключвател КИР/ЛÐТ" # ../../WPrefs.app/KeyboardShortcuts.c:437 ../../WPrefs.app/Menu.c:1251 #: ../../WPrefs.app/KeyboardShortcuts.c:560 msgid "Shortcut" msgstr "Бърз клавиш" # ../../WPrefs.app/KeyboardShortcuts.c:448 #: ../../WPrefs.app/KeyboardShortcuts.c:571 ../../WPrefs.app/Menu.c:836 msgid "Clear" msgstr "ИзчиÑти" # ../../WPrefs.app/KeyboardShortcuts.c:509 #: ../../WPrefs.app/KeyboardShortcuts.c:633 msgid "Keyboard Shortcut Preferences" msgstr "ÐŸÑ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð·Ð° „бързи клавиши“" # ../../WPrefs.app/KeyboardShortcuts.c:511 #: ../../WPrefs.app/KeyboardShortcuts.c:635 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "ПромÑна на „бързи клавиши“ за дейÑÑ‚Ð²Ð¸Ñ ÐºÐ°Ñ‚Ð¾\n" "ÑмÑна на работното проÑтранÑтво и\n" "показване на менюта." #: ../../WPrefs.app/Menu.c:278 msgid "Select Program" msgstr "ПоÑочете програмата" #: ../../WPrefs.app/Menu.c:510 msgid "New Items" msgstr "Ðови елементи" #: ../../WPrefs.app/Menu.c:511 msgid "Sample Commands" msgstr "Примерни дейÑтвиÑ" # ../../WPrefs.app/Menu.c:485 #: ../../WPrefs.app/Menu.c:512 msgid "Sample Submenus" msgstr "Примерни подменюта" # ../../WPrefs.app/Menu.c:1191 #: ../../WPrefs.app/Menu.c:526 msgid "Run Program" msgstr "Стартиране на програма" # ../../WPrefs.app/Menu.c:1186 #: ../../WPrefs.app/Menu.c:527 msgid "Internal Command" msgstr "Вътрешна команда" # ../../WPrefs.app/Menu.c:485 #: ../../WPrefs.app/Menu.c:528 msgid "Submenu" msgstr "Подменю" # ../../WPrefs.app/Menu.c:490 #: ../../WPrefs.app/Menu.c:529 msgid "External Submenu" msgstr "Външно подменю" # ../../WPrefs.app/Menu.c:485 #: ../../WPrefs.app/Menu.c:530 msgid "Generated Submenu" msgstr "Генерирано подменю" #: ../../WPrefs.app/Menu.c:531 msgid "Directory Contents" msgstr "Файлове от директориÑ" #: ../../WPrefs.app/Menu.c:532 msgid "Workspace Menu" msgstr "Работни меÑта" # ../../WPrefs.app/MouseSettings.c:632 #: ../../WPrefs.app/Menu.c:533 ../../WPrefs.app/MouseSettings.c:840 msgid "Window List Menu" msgstr "СпиÑъка Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ñ†Ð¸Ñ‚Ðµ" #: ../../WPrefs.app/Menu.c:552 msgid "XTerm" msgstr "Терминал XTerm" #: ../../WPrefs.app/Menu.c:555 msgid "rxvt" msgstr "Терминал rxvt" #: ../../WPrefs.app/Menu.c:558 msgid "ETerm" msgstr "Терминал ETerm" #: ../../WPrefs.app/Menu.c:561 msgid "Run..." msgstr "Стартирай..." #: ../../WPrefs.app/Menu.c:562 msgid "%a(Run,Type command to run)" msgstr "%a(Команда,Въведете командата, коÑто да Ñе изпълни)" #: ../../WPrefs.app/Menu.c:564 msgid "Netscape" msgstr "Браузър Netscape" #: ../../WPrefs.app/Menu.c:567 msgid "gimp" msgstr "РаÑтерна графика Gimp" #: ../../WPrefs.app/Menu.c:570 msgid "epic" msgstr "IRCII клиент epic" #: ../../WPrefs.app/Menu.c:573 msgid "ee" msgstr "Редактор ee" #: ../../WPrefs.app/Menu.c:576 msgid "xv" msgstr "Визуализатор xv" #: ../../WPrefs.app/Menu.c:579 msgid "Acrobat Reader" msgstr "Acrobat Reader (PDF)" #: ../../WPrefs.app/Menu.c:582 msgid "ghostview" msgstr "ghostview (PS)" #: ../../WPrefs.app/Menu.c:585 ../../WPrefs.app/Menu.c:857 msgid "Exit Window Maker" msgstr "Изход от УиндоуМейкър" #: ../../WPrefs.app/Menu.c:608 msgid "Debian Menu" msgstr "Меню на Дебиан" #: ../../WPrefs.app/Menu.c:611 msgid "RedHat Menu" msgstr "Меню на RedHat" #: ../../WPrefs.app/Menu.c:614 msgid "Menu Conectiva" msgstr "Генерирано меню" # ../../WPrefs.app/Themes.c:251 #: ../../WPrefs.app/Menu.c:617 ../../WPrefs.app/Themes.c:250 msgid "Themes" msgstr "Теми" #: ../../WPrefs.app/Menu.c:622 msgid "Bg Images (scale)" msgstr "Фон (мащабиран)" #: ../../WPrefs.app/Menu.c:627 msgid "Bg Images (tile)" msgstr "Фон (мозайка)" #: ../../WPrefs.app/Menu.c:632 msgid "Assorted XTerms" msgstr "Разни XTerm-ове" #: ../../WPrefs.app/Menu.c:634 msgid "XTerm Yellow on Blue" msgstr "XTerm: жълто в/у Ñиньо" #: ../../WPrefs.app/Menu.c:637 msgid "XTerm White on Black" msgstr "XTerm: бÑло в/у черно" #: ../../WPrefs.app/Menu.c:640 msgid "XTerm Black on White" msgstr "XTerm: черно в/у бÑло" #: ../../WPrefs.app/Menu.c:643 msgid "XTerm Black on Beige" msgstr "XTerm: черно в/у резеда" #: ../../WPrefs.app/Menu.c:646 msgid "XTerm White on Green" msgstr "XTerm: бÑло в/у зелено" #: ../../WPrefs.app/Menu.c:649 msgid "XTerm White on Olive" msgstr "XTerm: бÑло в/у жабешко" #: ../../WPrefs.app/Menu.c:652 msgid "XTerm Blue on Blue" msgstr "XTerm: Ñиньо в/у бÑло" #: ../../WPrefs.app/Menu.c:655 msgid "XTerm BIG FONTS" msgstr "XTerm: ГОЛЯМ ШРИФТ" # ../../WPrefs.app/Menu.c:428 ../../WPrefs.app/Menu.c:1238 #: ../../WPrefs.app/Menu.c:677 msgid "Program to Run" msgstr "Да Ñе Ñтартира програмата" # ../../WPrefs.app/TexturePanel.c:1497 #: ../../WPrefs.app/Menu.c:687 msgid "Browse" msgstr "Браузър" #: ../../WPrefs.app/Menu.c:698 msgid "Run the program inside a Xterm" msgstr "ИзпълнÑвай програмата в Xterm" #: ../../WPrefs.app/Menu.c:708 msgid "Path for Menu" msgstr "Път за менюто" #: ../../WPrefs.app/Menu.c:721 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin" msgstr "" "Въведете Ð¿ÑŠÑ‚Ñ Ð½Ð° файл, Ñъдържащ меню или\n" "ÑпиÑък от директории Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸Ñ‚Ðµ, които\n" "желаете да бъдат включени в менюто. Ðапр.:\n" "~/GNUstep/Library/WindowMaker/menu\n" "или /usr/bin ~/xbin" # ../../WPrefs.app/Menu.c:1186 #: ../../WPrefs.app/Menu.c:736 msgid "Command" msgstr "Команда" #: ../../WPrefs.app/Menu.c:750 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "Въведете команда, извеждаща на ÑтандартниÑ\n" "Ñи изход Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ñ Ð½Ð° меню." #: ../../WPrefs.app/Menu.c:758 msgid "" "Cache menu contents after opening for\n" "the first time" msgstr "" #: ../../WPrefs.app/Menu.c:769 msgid "Command to Open Files" msgstr "Прог. за отварÑне файловете" #: ../../WPrefs.app/Menu.c:783 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "Въведете командата, коÑто желаете да Ñе използва\n" "за отварÑне на поÑочените по-долу файлове." #: ../../WPrefs.app/Menu.c:792 msgid "Directories with Files" msgstr "Директории Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ðµ" #: ../../WPrefs.app/Menu.c:805 msgid "Strip extensions from file names" msgstr "Съкращавай файловите разширениÑ" #: ../../WPrefs.app/Menu.c:817 msgid "Keyboard Shortcut" msgstr "ÐŸÑ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð·Ð° „бързи клавиши“" # ../../WPrefs.app/Menu.c:1193 #: ../../WPrefs.app/Menu.c:853 msgid "Arrange Icons" msgstr "Подреждане на иконките" #: ../../WPrefs.app/Menu.c:854 msgid "Hide All Windows Except For The Focused One" msgstr "Скриване на вÑички прозорци, оÑвен фокуÑираниÑ" # ../../WPrefs.app/Menu.c:1195 #: ../../WPrefs.app/Menu.c:855 msgid "Show All Windows" msgstr "Показване на вÑички прозорци" # ../../WPrefs.app/Menu.c:1197 #: ../../WPrefs.app/Menu.c:858 msgid "Exit X Session" msgstr "Край на X-ÑеÑиÑта" #: ../../WPrefs.app/Menu.c:859 msgid "Restart Window Maker" msgstr "РеÑтартиране на Уиндоу Мейкър" #: ../../WPrefs.app/Menu.c:860 msgid "Start Another Window Manager : (" msgstr "Стартиране на друг админиÑтратор : (" #: ../../WPrefs.app/Menu.c:862 msgid "Save Current Session" msgstr "Запазване на текущата ÑеÑиÑ" #: ../../WPrefs.app/Menu.c:863 msgid "Clear Saved Session" msgstr "ИзчиÑтване на запазената ÑеÑиÑта" # ../../WPrefs.app/Menu.c:1202 #: ../../WPrefs.app/Menu.c:864 msgid "Refresh Screen" msgstr "ОпреÑнÑване на ÑеÑиÑта" #: ../../WPrefs.app/Menu.c:865 msgid "Open Info Panel" msgstr "Информационен панел" #: ../../WPrefs.app/Menu.c:866 msgid "Open Copyright Panel" msgstr "Панел „ÐвторÑки права“" #: ../../WPrefs.app/Menu.c:872 msgid "Window Manager to Start" msgstr "ÐдминиÑтратор на прозорците" #: ../../WPrefs.app/Menu.c:888 msgid "Do not confirm action." msgstr "Да не Ñе потвърждава дейÑтвието." #: ../../WPrefs.app/Menu.c:898 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "Упътване:\n" "\n" " - влачете елементите отлÑво поÑтавÑйки ги върху менюто;\n" " - влачете елементите извън менюто, за да ги махнете;\n" " - влачете елементите в менюто, за пренареждане;\n" " - влачете елементите Ñ Ð½Ð°Ñ‚Ð¸Ñнат Control за копиране;\n" " - двукратно щракане за промÑна на заглавието и\n" " - щракане за промÑна на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° елемент." #: ../../WPrefs.app/Menu.c:1122 #, c-format msgid "unknown command '%s' in menu" msgstr "Ðепозната команда \"%s\" в менюто." #: ../../WPrefs.app/Menu.c:1154 msgid ": Execute Program" msgstr " (изпълнÑва програма)" #: ../../WPrefs.app/Menu.c:1158 msgid ": Perform Internal Command" msgstr " (изпълнÑва вътрешна команда)" #: ../../WPrefs.app/Menu.c:1162 msgid ": Open a Submenu" msgstr " (Ð¾Ñ‚Ð²Ð°Ñ€Ñ Ð¿Ð¾Ð´Ð¼ÐµÐ½ÑŽ)" #: ../../WPrefs.app/Menu.c:1166 msgid ": Program Generated Submenu" msgstr " (програмно генерирано подменю)" #: ../../WPrefs.app/Menu.c:1170 msgid ": Directory Contents Menu" msgstr " (Ñъдържание на директориÑ)" #: ../../WPrefs.app/Menu.c:1174 msgid ": Open Workspaces Submenu" msgstr " (менюто Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð½Ð¸Ñ‚Ðµ меÑта)" # ../../WPrefs.app/KeyboardShortcuts.c:378 #: ../../WPrefs.app/Menu.c:1178 msgid ": Open Window List Submenu" msgstr " (менюто ÑÑŠÑ ÑпиÑъка на прозорците)" # ../../WPrefs.app/Menu.c:485 #: ../../WPrefs.app/Menu.c:1403 msgid "Remove Submenu" msgstr "ОтÑтрани подменюто" #: ../../WPrefs.app/Menu.c:1404 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "" "Махането на този елемент би унищожило вÑички\n" "поделементи на подменюто. Желаете ли наиÑтина това?" #: ../../WPrefs.app/Menu.c:1406 msgid "Yes" msgstr "Да" #: ../../WPrefs.app/Menu.c:1406 msgid "No" msgstr "Ðе" #: ../../WPrefs.app/Menu.c:1407 msgid "Yes, don't ask again." msgstr "Да, не ме питай пак!" # ../../WPrefs.app/Menu.c:1382 ../../WPrefs.app/Menu.c:1389 #. if there is a localized plmenu for the tongue put it's filename here #: ../../WPrefs.app/Menu.c:1575 ../../WPrefs.app/Menu.c:1582 #, c-format msgid "%s/Library/WindowMaker/plmenu" msgstr "%s/Library/WindowMaker/plmenu.bg" # ../../WPrefs.app/Menu.c:1398 #: ../../WPrefs.app/Menu.c:1591 #, c-format msgid "Could not open default menu from '%s'" msgstr "Ðе може да Ñе отвори подразбиращото Ñе меню от \"%s\"" # ../../WPrefs.app/WPrefs.c:789 #: ../../WPrefs.app/Menu.c:1629 ../../WPrefs.app/WPrefs.c:807 msgid "Warning" msgstr "Внимание!" #: ../../WPrefs.app/Menu.c:1630 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "ИзползваниÑÑ‚ в момента формат на менюто не Ñе поддържа от\n" "този инÑтрумент. Ще Ñе откажете ли от наÑтоÑщото меню,\n" "за да използвате този инÑтрумент?" #: ../../WPrefs.app/Menu.c:1633 msgid "Yes, Discard and Update" msgstr "Да, отказвам Ñе, обнови го" # ../../WPrefs.app/NoMenuAlert.c:119 #: ../../WPrefs.app/Menu.c:1634 msgid "No, Keep Current Menu" msgstr "Ðе, запази Ñегашното" # ../../WPrefs.app/Menu.c:1508 #: ../../WPrefs.app/Menu.c:1897 msgid "Applications Menu Definition" msgstr "ÐаглаÑÑване на менюто Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ" # ../../WPrefs.app/Menu.c:1510 #: ../../WPrefs.app/Menu.c:1899 msgid "Edit the menu for launching applications." msgstr "" "Редактиране на менюто за\n" "Ñтартиране на приложениÑ" # ../../WPrefs.app/MenuPreferences.c:114 #: ../../WPrefs.app/MenuPreferences.c:111 msgid "Menu Scrolling Speed" msgstr "СкороÑÑ‚ за плъзгане на менютата" # ../../WPrefs.app/MenuPreferences.c:163 #: ../../WPrefs.app/MenuPreferences.c:160 msgid "Submenu Alignment" msgstr "ПодравнÑване на менютата" # ../../WPrefs.app/MenuPreferences.c:207 #: ../../WPrefs.app/MenuPreferences.c:204 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "Подменютата винаги да Ñе изобразÑват в рамките на екрана,\n" "вмеÑто да Ñе плъзгат." # ../../WPrefs.app/MenuPreferences.c:212 #: ../../WPrefs.app/MenuPreferences.c:209 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "Плъзгане на менютата извън екрана, когато мишката е върху Ñ‚ÑÑ…." # ../../WPrefs.app/MenuPreferences.c:232 #: ../../WPrefs.app/MenuPreferences.c:229 msgid "Menu Preferences" msgstr "ÐŸÑ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð·Ð° менютата" # ../../WPrefs.app/MenuPreferences.c:234 #: ../../WPrefs.app/MenuPreferences.c:231 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "Опции, каÑаещи използването на менютата.\n" "СкороÑÑ‚ на плъзгане, подравнÑване на \n" "подменютата и други подобни." # ../../WPrefs.app/MouseSettings.c:153 #: ../../WPrefs.app/MouseSettings.c:141 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "" "ÐедопуÑтима ÑтойноÑÑ‚ за уÑкорение на мишката. ТрÑбва да бъде положително " "реално чиÑло." # ../../WPrefs.app/MouseSettings.c:173 #: ../../WPrefs.app/MouseSettings.c:161 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "" "ÐедопуÑтим начален праг за уÑкорение на мишката. ТрÑбва да бъде брой " "изминати пикÑели, преди да започне уÑкорението." # ../../WPrefs.app/MouseSettings.c:269 ../../WPrefs.app/MouseSettings.c:283 # ../../WPrefs.app/MouseSettings.c:297 #: ../../WPrefs.app/MouseSettings.c:262 ../../WPrefs.app/MouseSettings.c:274 #: ../../WPrefs.app/MouseSettings.c:286 ../../WPrefs.app/MouseSettings.c:298 #, c-format msgid "bad value %s for option %s" msgstr "неправилна ÑтойноÑÑ‚ %s за опциÑта %s" # ../../WPrefs.app/MouseSettings.c:358 #: ../../WPrefs.app/MouseSettings.c:357 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "" "клавишът модификатор %s за опциÑта \"ModifierKey\" е непознат. По " "подразбиране Ñе използва %s" # ../../WPrefs.app/MouseSettings.c:383 #: ../../WPrefs.app/MouseSettings.c:382 msgid "could not retrieve keyboard modifier mapping" msgstr "не може да Ñе разбере на кои клавиши Ñа модификаторите" # ../../WPrefs.app/MouseSettings.c:478 #: ../../WPrefs.app/MouseSettings.c:477 msgid "Mouse Speed" msgstr "СкороÑÑ‚ на мишката" # ../../WPrefs.app/MouseSettings.c:508 #: ../../WPrefs.app/MouseSettings.c:507 msgid "Acceler.:" msgstr "УÑкорение" # ../../WPrefs.app/MouseSettings.c:521 #: ../../WPrefs.app/MouseSettings.c:520 msgid "Threshold:" msgstr "Ðач. праг" # ../../WPrefs.app/MouseSettings.c:536 #: ../../WPrefs.app/MouseSettings.c:535 msgid "Double-Click Delay" msgstr "Бързина при двукратно щракане" # ../../WPrefs.app/MouseSettings.c:580 #: ../../WPrefs.app/MouseSettings.c:579 msgid "Test" msgstr "Проба" # ../../WPrefs.app/MouseSettings.c:610 #: ../../WPrefs.app/MouseSettings.c:609 msgid "Workspace Mouse Actions" msgstr "Специални дейÑÑ‚Ð²Ð¸Ñ Ñ Ð¼Ð¸ÑˆÐºÐ°Ñ‚Ð°" # ../../WPrefs.app/MouseSettings.c:615 #: ../../WPrefs.app/MouseSettings.c:614 msgid "Disable mouse actions" msgstr "Без Ñпец. дейÑÑ‚Ð²Ð¸Ñ Ñ Ð¼Ð¸ÑˆÐºÐ°Ñ‚Ð°" #: ../../WPrefs.app/MouseSettings.c:620 msgid "Left Button" msgstr "ЛÑв бутон" #: ../../WPrefs.app/MouseSettings.c:630 msgid "Middle Button" msgstr "Среден бутон" #: ../../WPrefs.app/MouseSettings.c:640 msgid "Right Button" msgstr "ДеÑен бутон" # ../../WPrefs.app/MouseSettings.c:478 #: ../../WPrefs.app/MouseSettings.c:650 msgid "Mouse Wheel" msgstr "Колелце" # ../../WPrefs.app/MouseSettings.c:661 #: ../../WPrefs.app/MouseSettings.c:672 msgid "Mouse Grab Modifier" msgstr "Модификатор, прихващащ мишката" # ../../WPrefs.app/MouseSettings.c:663 #: ../../WPrefs.app/MouseSettings.c:674 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "Кой модификатор да Ñе използва за дейÑÑ‚Ð²Ð¸Ñ , които\n" "изиÑкват влачене на прозорците Ñ Ð¼Ð¸ÑˆÐºÐ° или\n" "щракане в рамките на прозореца." # ../../WPrefs.app/MouseSettings.c:697 #: ../../WPrefs.app/MouseSettings.c:708 #, c-format msgid "could not create %s" msgstr "не може да Ñе направи %s" # ../../WPrefs.app/MouseSettings.c:713 #: ../../WPrefs.app/MouseSettings.c:724 #, c-format msgid "could not create temporary file %s" msgstr "не може да Ñе направи временен файл %s" # ../../WPrefs.app/MouseSettings.c:744 #: ../../WPrefs.app/MouseSettings.c:756 #, c-format msgid "could not rename file %s to %s\n" msgstr "не може да Ñе преименува файлът %s на %s\n" #: ../../WPrefs.app/MouseSettings.c:829 msgid "Shift" msgstr "Shift" #: ../../WPrefs.app/MouseSettings.c:830 msgid "Lock" msgstr "Lock" # ÐÑма мÑÑто за "Центрирано" # ../../WPrefs.app/Appearance.c:1936 ../../WPrefs.app/TexturePanel.c:1511 # ../../WPrefs.app/Workspace.c:271 #: ../../WPrefs.app/MouseSettings.c:831 msgid "Control" msgstr "Control" #: ../../WPrefs.app/MouseSettings.c:832 msgid "Mod1" msgstr "Mod1" #: ../../WPrefs.app/MouseSettings.c:833 msgid "Mod2" msgstr "Mod2" #: ../../WPrefs.app/MouseSettings.c:834 msgid "Mod3" msgstr "Mod3" #: ../../WPrefs.app/MouseSettings.c:835 msgid "Mod4" msgstr "Mod4" #: ../../WPrefs.app/MouseSettings.c:836 msgid "Mod5" msgstr "Mod5" # ../../WPrefs.app/MouseSettings.c:622 #: ../../WPrefs.app/MouseSettings.c:839 msgid "Applications Menu" msgstr "Меню на прилож." # ../../WPrefs.app/MouseSettings.c:643 #: ../../WPrefs.app/MouseSettings.c:841 msgid "Select Windows" msgstr "Маркиране прозорец" # ../../WPrefs.app/KeyboardShortcuts.c:397 #: ../../WPrefs.app/MouseSettings.c:844 msgid "Switch Workspaces" msgstr "СменÑне на работното мÑÑто" # ../../WPrefs.app/MouseSettings.c:816 #: ../../WPrefs.app/MouseSettings.c:849 msgid "Mouse Preferences" msgstr "ÐŸÑ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð·Ð° мишката" # ../../WPrefs.app/MouseSettings.c:818 #: ../../WPrefs.app/MouseSettings.c:851 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "СкороÑÑ‚/уÑкорение на мишката, време на\n" "двойното щракане, приÑвоÑване на \n" "дейÑÑ‚Ð²Ð¸Ñ Ð½Ð° мишката и др." # ../../WPrefs.app/Paths.c:84 #: ../../WPrefs.app/Paths.c:84 msgid "bad value in option IconPath. Using default path list" msgstr "" "недопуÑтима ÑтойноÑÑ‚ в опциÑта \"IconPath\". Ползва Ñе подразбиращиÑÑ‚ Ñе " "ÑпиÑък пътеки" # ../../WPrefs.app/Paths.c:101 #: ../../WPrefs.app/Paths.c:101 msgid "bad value in option PixmapPath. Using default path list" msgstr "" "недопуÑтима ÑтойноÑÑ‚ за опциÑта \"PixmapPath. Ползва Ñе подразбиращиÑÑ‚ Ñе " "ÑпиÑък пътеки." # ../../WPrefs.app/Paths.c:149 #: ../../WPrefs.app/Paths.c:149 msgid "Select directory" msgstr "ПоÑочете директориÑ" # ../../WPrefs.app/Paths.c:270 #: ../../WPrefs.app/Paths.c:270 msgid "Icon Search Paths" msgstr "Пътеки за търÑене на иконките" # ../../WPrefs.app/Paths.c:281 ../../WPrefs.app/Paths.c:312 # ../../WPrefs.app/TexturePanel.c:1304 #: ../../WPrefs.app/Paths.c:281 ../../WPrefs.app/Paths.c:312 #: ../../WPrefs.app/TexturePanel.c:1310 msgid "Add" msgstr "Добави" # ../../WPrefs.app/Paths.c:301 #: ../../WPrefs.app/Paths.c:301 msgid "Pixmap Search Paths" msgstr "Пътеки за търÑене на картинки" # ../../WPrefs.app/Paths.c:341 #: ../../WPrefs.app/Paths.c:341 msgid "Search Path Configuration" msgstr "ÐаÑтройка на пътеките за търÑенe" # ../../WPrefs.app/Paths.c:343 #: ../../WPrefs.app/Paths.c:343 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "" "Директорни пътеки, в които да Ñе\n" "търÑÑÑ‚ картинки и иконки." #: ../../WPrefs.app/Preferences.c:75 msgid "OFF" msgstr "БЕЗ" #: ../../WPrefs.app/Preferences.c:77 msgid "1 pixel" msgstr "1 пикÑел" #. 2-4 #: ../../WPrefs.app/Preferences.c:80 #, c-format msgid "%i pixels" msgstr "%i пикÑела" #. >4 #: ../../WPrefs.app/Preferences.c:83 #, c-format msgid "%i pixels " msgstr "%i пикÑела" # ../../WPrefs.app/Preferences.c:159 #: ../../WPrefs.app/Preferences.c:229 msgid "Size Display" msgstr "ИзобразÑване на размера" # ../../WPrefs.app/Preferences.c:161 #: ../../WPrefs.app/Preferences.c:231 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "Положението или Ñтилът на размера на про-\n" "зорцеца при променÑне на размера му." # ../../WPrefs.app/Preferences.c:168 ../../WPrefs.app/Preferences.c:188 #: ../../WPrefs.app/Preferences.c:238 ../../WPrefs.app/Preferences.c:259 msgid "Corner of screen" msgstr "Ð’ ъгъла на екрана" # ../../WPrefs.app/Preferences.c:169 ../../WPrefs.app/Preferences.c:189 #: ../../WPrefs.app/Preferences.c:239 ../../WPrefs.app/Preferences.c:260 msgid "Center of screen" msgstr "Ð’ Ñредата на екрана" # ../../WPrefs.app/Preferences.c:170 ../../WPrefs.app/Preferences.c:190 #: ../../WPrefs.app/Preferences.c:240 ../../WPrefs.app/Preferences.c:261 msgid "Center of resized window" msgstr "Ð’ Ñредата на прозореца" # ../../WPrefs.app/Preferences.c:171 #: ../../WPrefs.app/Preferences.c:241 msgid "Technical drawing-like" msgstr "Като в техничеÑки чертеж" # ../../WPrefs.app/Workspace.c:270 #: ../../WPrefs.app/Preferences.c:242 ../../WPrefs.app/Preferences.c:262 msgid "Disabled" msgstr "Без изобразÑване" # ../../WPrefs.app/Preferences.c:179 #: ../../WPrefs.app/Preferences.c:250 msgid "Position Display" msgstr "ИзобразÑване на положението" # ../../WPrefs.app/Preferences.c:181 #: ../../WPrefs.app/Preferences.c:252 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "Положението или Ñтилът за изобразÑване на\n" "положението на прозореца при премеÑтване." # ../../WPrefs.app/Preferences.c:198 #: ../../WPrefs.app/Preferences.c:270 msgid "Show balloon text for..." msgstr "Да Ñе показва текÑÑ‚ в балони за ..." # ../../WPrefs.app/Preferences.c:205 #: ../../WPrefs.app/Preferences.c:277 msgid "incomplete window titles" msgstr "Ñъкратените имена на прозорци" # ../../WPrefs.app/Preferences.c:206 #: ../../WPrefs.app/Preferences.c:278 msgid "miniwindow titles" msgstr "имената на минипрозорчетата" # ../../WPrefs.app/Preferences.c:207 #: ../../WPrefs.app/Preferences.c:279 msgid "application/dock icons" msgstr "иконките на дока и приложениÑта" # ../../WPrefs.app/Preferences.c:208 #: ../../WPrefs.app/Preferences.c:280 msgid "internal help" msgstr "вътрешна Ñправка" #: ../../WPrefs.app/Preferences.c:292 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "" "Да Ñе повдига прозорецът при про-\n" "мÑна на фокуÑа Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð°Ñ‚Ð°." #: ../../WPrefs.app/Preferences.c:298 msgid "" "Enable keyboard language\n" "switch button in window titlebars." msgstr "" "Бутон КИР/ЛÐТ върху заглавна-\n" "та ивица на вÑеки прозорец." #: ../../WPrefs.app/Preferences.c:307 msgid "Workspace border" msgstr "Граница между работните меÑта" #: ../../WPrefs.app/Preferences.c:323 msgid "Left/Right" msgstr "ЛÑво/дÑÑно" #: ../../WPrefs.app/Preferences.c:328 msgid "Top/Bottom" msgstr "Горе/долу" # ../../WPrefs.app/Preferences.c:247 #: ../../WPrefs.app/Preferences.c:349 msgid "Miscellaneous Ergonomic Preferences" msgstr "Разни Ð¿Ñ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ ÐºÐ°Ñаещи ергономичноÑтта" # ../../WPrefs.app/Preferences.c:248 #: ../../WPrefs.app/Preferences.c:350 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "Различни наÑтройки като за текÑÑ‚ в балони,\n" "ÑÑŠÑтоÑние КИР/ЛÐТ и др." #: ../../WPrefs.app/TexturePanel.c:323 msgid "Saturation" msgstr "ÐаÑитеноÑÑ‚" #: ../../WPrefs.app/TexturePanel.c:325 msgid "Brightness" msgstr "ЯркоÑÑ‚" #: ../../WPrefs.app/TexturePanel.c:373 ../../WPrefs.app/TexturePanel.c:380 msgid "Hue" msgstr "ЦвÑÑ‚" # ../../WPrefs.app/TexturePanel.c:605 #: ../../WPrefs.app/TexturePanel.c:610 msgid "Could not load the selected file: " msgstr "Ðе може да Ñе зареди избраниÑÑ‚ файл: " # ../../WPrefs.app/TexturePanel.c:1477 #: ../../WPrefs.app/TexturePanel.c:664 msgid "Open Image" msgstr "Отвори изображение" # ../../WPrefs.app/TexturePanel.c:687 #: ../../WPrefs.app/TexturePanel.c:694 msgid "The selected file does not contain a supported image." msgstr "ИзбраниÑÑ‚ файл не Ñъдържа поддържано изображение." #: ../../WPrefs.app/TexturePanel.c:945 #, c-format msgid "could not load file '%s': %s" msgstr "не може да Ñе зареди файлът \"%s\": %s" #: ../../WPrefs.app/TexturePanel.c:1064 #, c-format msgid "error creating texture %s" msgstr "грешка при Ñъздаване на текÑтура %s" # ../../WPrefs.app/TexturePanel.c:1248 #: ../../WPrefs.app/TexturePanel.c:1254 msgid "Texture Panel" msgstr "Панел за текÑтури" # ../../WPrefs.app/TexturePanel.c:1256 #: ../../WPrefs.app/TexturePanel.c:1262 msgid "Texture Name" msgstr "Име на текÑтурата" # ../../WPrefs.app/TexturePanel.c:1268 #: ../../WPrefs.app/TexturePanel.c:1274 msgid "Solid Color" msgstr "Плътен цвÑÑ‚" # ../../WPrefs.app/TexturePanel.c:1269 #: ../../WPrefs.app/TexturePanel.c:1275 msgid "Gradient Texture" msgstr "Градиентна текÑтура" # ../../WPrefs.app/TexturePanel.c:1270 #: ../../WPrefs.app/TexturePanel.c:1276 msgid "Simple Gradient Texture" msgstr "ПроÑта градиентна текÑтура" # ../../WPrefs.app/TexturePanel.c:1271 #: ../../WPrefs.app/TexturePanel.c:1277 msgid "Textured Gradient" msgstr "ТекÑтуриран градиент" # ../../WPrefs.app/TexturePanel.c:1272 #: ../../WPrefs.app/TexturePanel.c:1278 msgid "Image Texture" msgstr "ТекÑтура за изображение" # ../../WPrefs.app/TexturePanel.c:1280 #: ../../WPrefs.app/TexturePanel.c:1286 msgid "Default Color" msgstr "ОÑновен цвÑÑ‚" # ../../WPrefs.app/TexturePanel.c:1292 #: ../../WPrefs.app/TexturePanel.c:1298 msgid "Gradient Colors" msgstr "Цветове на градиента" # ../../WPrefs.app/TexturePanel.c:1388 #: ../../WPrefs.app/TexturePanel.c:1394 msgid "Direction" msgstr "ПоÑока" # ../../WPrefs.app/TexturePanel.c:1416 #: ../../WPrefs.app/TexturePanel.c:1422 msgid "Gradient" msgstr "Градиент" # ../../WPrefs.app/TexturePanel.c:1434 #: ../../WPrefs.app/TexturePanel.c:1440 msgid "Gradient Opacity" msgstr "ПрозрачноÑÑ‚ на градиента" # ../../WPrefs.app/TexturePanel.c:1477 #: ../../WPrefs.app/TexturePanel.c:1483 msgid "Image" msgstr "Изображение" # ../../WPrefs.app/TexturePanel.c:1509 #: ../../WPrefs.app/TexturePanel.c:1515 msgid "Tile" msgstr "Мозайка" # ../../WPrefs.app/TexturePanel.c:1510 #: ../../WPrefs.app/TexturePanel.c:1516 msgid "Scale" msgstr "Уголемено" # ../../WPrefs.app/TexturePanel.c:1512 #: ../../WPrefs.app/TexturePanel.c:1518 msgid "Maximize" msgstr "МакÑималн." # ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 #: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 msgid "Set" msgstr "" # ../../WPrefs.app/Themes.c:132 #: ../../WPrefs.app/Themes.c:132 msgid "Stop" msgstr "" # ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:204 # ../../WPrefs.app/Themes.c:224 #: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:203 #: ../../WPrefs.app/Themes.c:223 msgid "Download" msgstr "" # ../../WPrefs.app/Themes.c:172 #: ../../WPrefs.app/Themes.c:171 msgid "Save Current Theme" msgstr "" # ../../WPrefs.app/Themes.c:181 #: ../../WPrefs.app/Themes.c:180 msgid "Load" msgstr "" # ../../WPrefs.app/Themes.c:186 #: ../../WPrefs.app/Themes.c:185 msgid "Install" msgstr "" # ../../WPrefs.app/Themes.c:194 #: ../../WPrefs.app/Themes.c:193 msgid "Tile of The Day" msgstr "" # ../../WPrefs.app/Themes.c:214 #: ../../WPrefs.app/Themes.c:213 msgid "Bar of The Day" msgstr "" # ../../WPrefs.app/WPrefs.c:259 #: ../../WPrefs.app/WPrefs.c:260 msgid "Window Maker Preferences" msgstr "ÐаÑтройки на Уиндоу Мейкър" # ../../WPrefs.app/WPrefs.c:283 #: ../../WPrefs.app/WPrefs.c:284 msgid "Revert Page" msgstr "Върни Ñтраница" # ../../WPrefs.app/WPrefs.c:289 #: ../../WPrefs.app/WPrefs.c:290 msgid "Revert All" msgstr "Върни вÑички" # ../../WPrefs.app/WPrefs.c:295 #: ../../WPrefs.app/WPrefs.c:296 msgid "Save" msgstr "Запази" # ../../WPrefs.app/WPrefs.c:308 #: ../../WPrefs.app/WPrefs.c:309 msgid "Balloon Help" msgstr "Помощ Ñ Ð±Ð°Ð»Ð¾Ð½Ð¸" # ../../WPrefs.app/WPrefs.c:333 #: ../../WPrefs.app/WPrefs.c:334 msgid "Window Maker Preferences Utility" msgstr "ИнÑтрумент за наÑтройване на Уиндоу Мейкър" # ../../WPrefs.app/WPrefs.c:340 #: ../../WPrefs.app/WPrefs.c:341 #, c-format msgid "Version %s for Window Maker %s or newer" msgstr "ВерÑÐ¸Ñ %s за Уиндоу Мейкър %s или по-нов" # ../../WPrefs.app/WPrefs.c:348 #: ../../WPrefs.app/WPrefs.c:349 msgid "Starting..." msgstr "Стартиране..." # ../../WPrefs.app/WPrefs.c:354 #: ../../WPrefs.app/WPrefs.c:355 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg, Largo et al\n" "More Programming: James Thompson et al" msgstr "" "ПрограмиÑÑ‚ и дизайнер: Ðлфреду К. Кожима\n" "Художник: Марко ван Хилцкама Влийг, Ларго и др.\n" "Помощник-програмиÑÑ‚: Ð”Ð¶ÐµÐ¹Ð¼Ñ Ð¢Ð¾Ð¼Ð¿Ñън и др." # ../../WPrefs.app/WPrefs.c:442 #: ../../WPrefs.app/WPrefs.c:455 #, c-format msgid "could not locate image file %s\n" msgstr "не може да Ñе открие файла Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ %s\n" # ../../WPrefs.app/WPrefs.c:657 #: ../../WPrefs.app/WPrefs.c:670 #, c-format msgid "could not load image file %s:%s" msgstr "не може да Ñе зареди файлът Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ %s:%s" # ../../WPrefs.app/WPrefs.c:676 #: ../../WPrefs.app/WPrefs.c:689 msgid "Loading Window Maker configuration files..." msgstr "Зареждат Ñе конфигурационните файлове на Уиндоу Мейкър..." # ../../WPrefs.app/WPrefs.c:680 #: ../../WPrefs.app/WPrefs.c:693 msgid "Initializing configuration panels..." msgstr "Инициализират Ñе конфигурационните панели..." # ../../WPrefs.app/WPrefs.c:713 #: ../../WPrefs.app/WPrefs.c:727 msgid "" "WPrefs is free software and is distributed WITHOUT ANY\n" "WARRANTY under the terms of the GNU General Public License." msgstr "" "WPrefs е Ñвободен Ñофтуер и Ñе разпроÑтранÑва БЕЗ ÐИКÐКВРГÐРÐÐЦИЯ\n" "Ñпоред уÑловиÑта на ОÑновната общодоÑтъпна Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Ð“ÐУ." # ../../WPrefs.app/WPrefs.c:742 ../../WPrefs.app/WPrefs.c:812 #: ../../WPrefs.app/WPrefs.c:757 ../../WPrefs.app/WPrefs.c:837 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "ОблаÑтта %s на Уиндоу Мейкър е повредена!" # ../../WPrefs.app/WPrefs.c:746 #: ../../WPrefs.app/WPrefs.c:761 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "Ðе може да Ñе зареди облаÑтта %s на Уиндоу Мейкър от базата-данни Ñ Ð¿Ñ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ." # ../../WPrefs.app/WPrefs.c:759 #: ../../WPrefs.app/WPrefs.c:777 msgid "could not extract version information from Window Maker" msgstr "не може да Ñе извлече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° верÑиÑта на Уиндоу Мейкър" # ../../WPrefs.app/WPrefs.c:760 #: ../../WPrefs.app/WPrefs.c:778 msgid "Make sure wmaker is in your search path." msgstr "Убедете Ñе, че wmaker Ñе намира в пътеката за търÑене ($PATH)." # ../../WPrefs.app/WPrefs.c:763 #: ../../WPrefs.app/WPrefs.c:781 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." msgstr "" "Ðе може да Ñе извлече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° верÑиÑта на Уиндоу Мейкър. Убедете Ñе,\n" "че той е инÑталиран правилно и е включен в променливата PATH на обкръжението." # ../../WPrefs.app/WPrefs.c:773 #: ../../WPrefs.app/WPrefs.c:791 msgid "" "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." msgstr "" "Ðе може да Ñе извлече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° верÑиÑта на Уиндоу Мейкър. Убедете Ñе,\n" "че той е инÑталиран правилно и че каталогът, в който той е инÑталиран, е\n" "включен в променливата от обкръжението PATH." # ../../WPrefs.app/WPrefs.c:780 #: ../../WPrefs.app/WPrefs.c:798 #, c-format msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "WPrefs поддържа Ñамо Уиндоу Мейкър верÑÐ¸Ñ 0.18.0 или Ñледваща.\n" "ИнÑталираната верÑÐ¸Ñ Ðµ %i.%i.%i.\n" # ../../WPrefs.app/WPrefs.c:787 #: ../../WPrefs.app/WPrefs.c:805 #, c-format msgid "" "Window Maker %i.%i.%i, which is installed in your system, is not fully " "supported by this version of WPrefs." msgstr "" "Уиндоу Мейкър %i.%i.%i, който е инÑталиран във Вашата ÑиÑтема, не Ñе\n" "поддържа напълно от тази верÑÐ¸Ñ Ð½Ð° WPrefs." # ../../WPrefs.app/WPrefs.c:794 #: ../../WPrefs.app/WPrefs.c:818 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr "Ðе може да Ñе Ñтартира \"%s --global_defaults_path\"." # ../../WPrefs.app/WPrefs.c:816 #: ../../WPrefs.app/WPrefs.c:841 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "Ðе може да Ñе зареди глобална облаÑÑ‚ на Уиндоу Мейкър (%s)." # ../../WPrefs.app/WPrefs.c:1065 #: ../../WPrefs.app/WPrefs.c:1090 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "неправилна ÑтойноÑÑ‚ за бързина на ключа %s\n" "По подразбиране Ñе използва \"Средна\"" # ../../WPrefs.app/WindowHandling.c:141 #: ../../WPrefs.app/WindowHandling.c:141 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "неправилна ÑтойноÑÑ‚ %s на Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ WindowPlacement. Ползва Ñе ÑтойноÑтта по подразбиране" # ../../WPrefs.app/WindowHandling.c:163 #: ../../WPrefs.app/WindowHandling.c:163 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "недопуÑтими данни при опциÑта WindowPlaceOrigin. Ползва Ñе ÑтойноÑтта по подразбиране (0,0)" # ../../WPrefs.app/WindowHandling.c:236 #: ../../WPrefs.app/WindowHandling.c:243 msgid "Window Placement" msgstr "Разполагане на прозорците" # ../../WPrefs.app/WindowHandling.c:237 #: ../../WPrefs.app/WindowHandling.c:244 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "Как да Ñе разполагат прозорците при първата\n" "им поÑва на екрана." # ../../WPrefs.app/WindowHandling.c:243 #: ../../WPrefs.app/WindowHandling.c:250 msgid "Automatic" msgstr "Ðвтоматично" # ../../WPrefs.app/WindowHandling.c:244 #: ../../WPrefs.app/WindowHandling.c:251 msgid "Random" msgstr "Случайно" # ../../WPrefs.app/WindowHandling.c:245 #: ../../WPrefs.app/WindowHandling.c:252 msgid "Manual" msgstr "Ръчно" # ../../WPrefs.app/WindowHandling.c:246 #: ../../WPrefs.app/WindowHandling.c:253 msgid "Cascade" msgstr "КаÑкадно" # ../../WPrefs.app/WindowHandling.c:247 #: ../../WPrefs.app/WindowHandling.c:254 msgid "Smart" msgstr "Хитро" # ../../WPrefs.app/WindowHandling.c:253 #: ../../WPrefs.app/WindowHandling.c:260 msgid "Placement Origin" msgstr "Ðачално мÑÑто" # ../../WPrefs.app/WindowHandling.c:313 #: ../../WPrefs.app/WindowHandling.c:321 msgid "Opaque Move" msgstr "ЦÑлоÑтно меÑтене" # ../../WPrefs.app/WindowHandling.c:314 #: ../../WPrefs.app/WindowHandling.c:322 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "Дали Ñъдържанието на прозореца трÑбва\n" "да Ñе премеÑтва при влачене Ñ Ð¼Ð¸ÑˆÐºÐ°Ñ‚Ð°,\n" "или Ñамо рамката на прозореца трÑбва\n" "да Ñе изобразÑва.\n" # ../../WPrefs.app/WindowHandling.c:353 #: ../../WPrefs.app/WindowHandling.c:361 msgid "When maximizing..." msgstr "При макÑимизиране ..." # ../../WPrefs.app/WindowHandling.c:358 #: ../../WPrefs.app/WindowHandling.c:366 msgid "...do not cover icons" msgstr "... да не Ñе закриват иконките" # ../../WPrefs.app/WindowHandling.c:364 #: ../../WPrefs.app/WindowHandling.c:372 msgid "...do not cover dock" msgstr "... да не Ñе закрива докът" # ../../WPrefs.app/WindowHandling.c:373 #: ../../WPrefs.app/WindowHandling.c:381 msgid "Edge Resistance" msgstr "Съпротивление по ръбовете" # ../../WPrefs.app/WindowHandling.c:375 #: ../../WPrefs.app/WindowHandling.c:383 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "„Съпротивление по ръбовете“ означава прозореца\n" "да Ñе ÑъпротивлÑва до определен праг при\n" "заÑтъпване на друг прозорец или напуÑкане\n" "на екрана." # ../../WPrefs.app/WindowHandling.c:394 #: ../../WPrefs.app/WindowHandling.c:402 msgid "Resist" msgstr "" "Съпро-\n" "тива" # ../../WPrefs.app/WindowHandling.c:399 #: ../../WPrefs.app/WindowHandling.c:407 msgid "Attract" msgstr "" "Прив-\n" "личане" #: ../../WPrefs.app/WindowHandling.c:423 msgid "" "Open dialogs in same workspace\n" "as their owners" msgstr "" "Диалоговите прозорци да Ñа на работното\n" "мÑÑто, на Ð²Ð»Ð°Ð´ÐµÐµÑ‰Ð¸Ñ Ð³Ð¸ прозорец." # ../../WPrefs.app/WindowHandling.c:442 #: ../../WPrefs.app/WindowHandling.c:450 msgid "Window Handling Preferences" msgstr "ÐŸÑ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð·Ð° управление на прозорците" # ../../WPrefs.app/WindowHandling.c:444 #: ../../WPrefs.app/WindowHandling.c:452 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "Опции за управление на прозорците. Ðачин\n" "за определÑне на началното меÑтоположение,\n" "Ñъпротивление по ръбовете, Ñтил на\n" "премеÑтване и др." # ../../WPrefs.app/Workspace.c:177 #: ../../WPrefs.app/Workspace.c:176 msgid "Workspace Navigation" msgstr "ÐÐ°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ Ð¿Ð¾ работните меÑта" #: ../../WPrefs.app/Workspace.c:183 msgid "" "wrap to the first workspace after the\n" "last workspace." msgstr "" "да Ñе минава към първото работно мÑÑто\n" "Ñлед задминаване на поÑледното" # ../../WPrefs.app/Workspace.c:206 #: ../../WPrefs.app/Workspace.c:205 msgid "switch workspaces while dragging windows." msgstr "" "да Ñе ÑÐ¼ÐµÐ½Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð½Ð¾Ñ‚Ð¾ мÑÑто при\n" "влачене на прозорец." # ../../WPrefs.app/Workspace.c:228 #: ../../WPrefs.app/Workspace.c:227 msgid "automatically create new workspaces." msgstr "" "автоматично да Ñе Ñъздават нови\n" "работни меÑта." # ../../WPrefs.app/Workspace.c:251 #: ../../WPrefs.app/Workspace.c:250 msgid "" "Position of workspace\n" "name display" msgstr "" "МÑÑто на името на\n" "работното мÑÑто" # ../../WPrefs.app/Workspace.c:270 #: ../../WPrefs.app/Workspace.c:269 msgid "Disable" msgstr "Без показване" # ../../WPrefs.app/Workspace.c:272 #: ../../WPrefs.app/Workspace.c:271 msgid "Top" msgstr "Горе" # ../../WPrefs.app/Workspace.c:273 #: ../../WPrefs.app/Workspace.c:272 msgid "Bottom" msgstr "Долу" # ../../WPrefs.app/Workspace.c:274 #: ../../WPrefs.app/Workspace.c:273 msgid "Top/Left" msgstr "Горе влÑво" # ../../WPrefs.app/Workspace.c:275 #: ../../WPrefs.app/Workspace.c:274 msgid "Top/Right" msgstr "Горе вдÑÑно" # ../../WPrefs.app/Workspace.c:276 #: ../../WPrefs.app/Workspace.c:275 msgid "Bottom/Left" msgstr "Долу влÑво" # ../../WPrefs.app/Workspace.c:277 #: ../../WPrefs.app/Workspace.c:276 msgid "Bottom/Right" msgstr "Долу вдÑÑно" # ../../WPrefs.app/Workspace.c:285 #: ../../WPrefs.app/Workspace.c:284 msgid "Dock/Clip" msgstr "Док и Кламер" # ../../WPrefs.app/Workspace.c:304 #: ../../WPrefs.app/Workspace.c:303 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "ЗабранÑва/разрешава Дока на приложениÑта\n" "(вертикалната ивица Ñ Ð¸ÐºÐ¾Ð½ÐºÐ¸, Ñтранично\n" "от екрана)." # ../../WPrefs.app/Workspace.c:325 #: ../../WPrefs.app/Workspace.c:324 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "ЗабранÑва/позволÑва Кламера\n" "(нещото, имащо иконка Ñ ÐºÐ»Ð°Ð¼ÐµÑ€)." # ../../WPrefs.app/Workspace.c:365 #: ../../WPrefs.app/Workspace.c:364 msgid "Workspace Preferences" msgstr "ÐŸÑ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð·Ð° работните меÑта" # ../../WPrefs.app/Workspace.c:367 #: ../../WPrefs.app/Workspace.c:366 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "СвойÑтва на навигациÑта през работните меÑта.\n" "От тук може да Ñе забрани/ползволи и Докът\n" "и Кламерът." #: ../../WPrefs.app/imagebrowser.c:95 msgid "View" msgstr "" # ../../WPrefs.app/main.c:74 #: ../../WPrefs.app/main.c:59 #, c-format msgid "usage: %s [options]\n" msgstr "използване: %s [параметри]\n" # ../../WPrefs.app/main.c:75 #: ../../WPrefs.app/main.c:60 msgid "options:" msgstr "параметри:" # ../../WPrefs.app/main.c:76 #: ../../WPrefs.app/main.c:61 msgid " -display <display>\tdisplay to be used" msgstr " -display <диÑплей>\tдиÑплей да Ñе използва" # ../../WPrefs.app/main.c:77 #: ../../WPrefs.app/main.c:62 msgid " --version\t\tprint version number and exit" msgstr " --version\t\tизвежда номер на верÑÐ¸Ñ Ð¸ изход" # ../../WPrefs.app/main.c:78 #: ../../WPrefs.app/main.c:63 msgid " --help\t\tprint this message and exit" msgstr " --help\t\tизвежда тази Ñправка и изход" # ../../WPrefs.app/main.c:137 #: ../../WPrefs.app/main.c:122 #, c-format msgid "too few arguments for %s" msgstr "недоÑтатъчно аргументи за %s" # ../../WPrefs.app/main.c:159 #: ../../WPrefs.app/main.c:144 msgid "X server does not support locale" msgstr "X-Ñървърът не поддържа локализациÑ" # ../../WPrefs.app/main.c:162 #: ../../WPrefs.app/main.c:147 msgid "cannot set locale modifiers" msgstr "не могат да Ñе уÑтановÑÑ‚ модификаторите на локализациÑта" # ../../WPrefs.app/main.c:168 #: ../../WPrefs.app/main.c:153 #, c-format msgid "could not open display %s" msgstr "не може да Ñе отвори диÑплеÑÑ‚ %s" # ../../WPrefs.app/main.c:176 #: ../../WPrefs.app/main.c:161 msgid "could not initialize application" msgstr "приложението не може да бъде инициализирано" # ../../WPrefs.app/Expert.c:79 #~ msgid "Disable cycling color highlighting of icons" #~ msgstr "Без въртене на пунктир около маркираните иконки." # ../../WPrefs.app/Focus.c:200 #~ msgid "" #~ "Set keyboard input focus to\n" #~ "the window under the mouse pointer,\n" #~ "including the root window." #~ msgstr "" #~ "ФокуÑÑŠÑ‚ е за прозореца, върху\n" #~ "който е мишката, в това чиÑло\n" #~ "и оÑÐ½Ð¾Ð²Ð½Ð¸Ñ (Ñ‚.н. root) прозорец." # ../../WPrefs.app/Focus.c:254 #~ msgid "Click window to focus" #~ msgstr "Щракни за фокуÑ" # ../../WPrefs.app/Focus.c:255 #~ msgid "Focus follows mouse" #~ msgstr "ФокуÑÑŠÑ‚ Ñледва мишката" # ../../WPrefs.app/Focus.c:256 #~ msgid "\"Sloppy\" focus" #~ msgstr "Преливащ (Ñ‚.н. sloppy) фокуÑ" #~ msgid "Btn1 (left)" #~ msgstr "Бут.1 (лÑв)" #~ msgid "Btn2 (middle)" #~ msgstr "Бут.2 (Ñреден)" #~ msgid "Btn3 (right)" #~ msgstr "Бут.3 (деÑен)" #~ msgid "Btn4" #~ msgstr "Бут.4" #~ msgid "Btn5" #~ msgstr "Бут.5" # ../../WPrefs.app/Menu.c:426 #~ msgid "Command to Execute" #~ msgstr "Да Ñе изпълни командата" # ../../WPrefs.app/Menu.c:477 ../../WPrefs.app/Menu.c:478 #~ msgid "New Command %i" #~ msgstr "Ðова команда %i" # ../../WPrefs.app/Menu.c:497 #~ msgid "Workspaces" #~ msgstr "Работни меÑта" # ../../WPrefs.app/Menu.c:1120 ../../WPrefs.app/Menu.c:1135 #~ msgid "Add Command" #~ msgstr "Добави команда" # ../../WPrefs.app/Menu.c:1121 ../../WPrefs.app/Menu.c:1136 #~ msgid "Add Submenu" #~ msgstr "Добави подменю" # ../../WPrefs.app/Menu.c:1122 ../../WPrefs.app/Menu.c:1137 #~ msgid "Add External Menu" #~ msgstr "Добави външно меню" # ../../WPrefs.app/Menu.c:1124 ../../WPrefs.app/Menu.c:1139 #~ msgid "Remove Item" #~ msgstr "Махни елемента" # ../../WPrefs.app/Menu.c:1125 ../../WPrefs.app/Menu.c:1140 #~ msgid "Cut Item" #~ msgstr "Отрежи елемента" # ../../WPrefs.app/Menu.c:1126 ../../WPrefs.app/Menu.c:1141 #~ msgid "Copy Item" #~ msgstr "Копирай елемента" # ../../WPrefs.app/Menu.c:1127 ../../WPrefs.app/Menu.c:1142 #~ msgid "Paste Item" #~ msgstr "Вмъкни елемента" # ../../WPrefs.app/Menu.c:1173 #~ msgid "Label" #~ msgstr "Етикет" # ../../WPrefs.app/Menu.c:1192 #~ msgid "Execute Shell Command" #~ msgstr "Команда на обвивката" # ../../WPrefs.app/Menu.c:1194 #~ msgid "Hide Others" #~ msgstr "Скрий другите" # ../../WPrefs.app/Menu.c:1204 #~ msgid "Legal Panel" #~ msgstr "Лицензионен панел" # ../../WPrefs.app/Menu.c:1225 #~ msgid "Menu Path/Directory List" #~ msgstr "СпиÑък файлове Ñ Ð¼ÐµÐ½ÑŽÑ‚Ð°" # ../../WPrefs.app/Menu.c:1270 #~ msgid "Ask help to the Guru" #~ msgstr "ИÑкам помощ от факира." # ../../WPrefs.app/NoMenuAlert.c:94 #~ msgid "" #~ " 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 keep using the current menu, please read the '%s/%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. " #~ "Window Maker supports both formats." #~ msgstr "" #~ " Използваното в момента меню не може да бъде отворено. Това означава, " #~ "че в него има Ñинтактична грешка или че менюто е във формат, който не Ñе " #~ "поддържа от WPrefs (WPrefs поддържа Ñамо обикновените менюта \"ÑпиÑък от " #~ "ÑвойÑтва\".)\n" #~ " Ðко желаете да запазите използването на текущото меню, Ð¼Ð¾Ð»Ñ Ð¿Ñ€Ð¾Ñ‡ÐµÑ‚ÐµÑ‚Ðµ " #~ "файла \"%s/%s\", натиÑнете бутона <Запази Ñегашното меню> и го " #~ "редактирайте Ñ Ñ‚ÐµÐºÑтов редактор.\n" #~ " Ðко желаете да използвате този редактор на менюта, натиÑнете <Копирай " #~ "Ñтандартното меню>. Това ще накара Уиндоу Мейкър да използва Ñтандартното " #~ "меню вмеÑто текущото.\n" #~ " Ðко желаети повече гъвкавоÑÑ‚, запазете използването на текущото меню, " #~ "защото то дава възможноÑÑ‚ да Ñе използва предпроцеÑорни макроÑи (като за " #~ "cpp), а Ñъщевременно е леÑно за редактиране. Уиндоу Мейкър поддържа и " #~ "двата формата." # ../../WPrefs.app/NoMenuAlert.c:113 #~ msgid "Copy Default Menu" #~ msgstr "Копирай Ñтандартното меню" # ../../WPrefs.app/MenuGuru.c:106 #~ msgid "Menu Guru - Select Type" #~ msgstr "Факир за менюта - какъв вид" # ../../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 "Факир за менюта - кой файл меню" # ../../WPrefs.app/MenuGuru.c:122 #~ msgid "Menu Guru - Select Pipe Command" #~ msgstr "Факир за менюта - какъв програмен канал" # ../../WPrefs.app/MenuGuru.c:129 #~ msgid "Menu Guru - Select Directories" #~ msgstr "Факир за менюта - кои директории" # ../../WPrefs.app/MenuGuru.c:136 #~ msgid "Menu Guru - Select Command" #~ msgstr "Факир за менюта - ÐºÐ¾Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°" # ../../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 "" #~ "Файлът Ñ Ð¼ÐµÐ½ÑŽ трÑбва да бъде в проÑÑ‚ текÑтов формат. Този формат е опиÑан " #~ "във файловете менюта, Ñъпровождащи Уиндоу Мейкър, вероÑтно в ~/GNUstep/" #~ "Library/WindowMaker/menu" # ../../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 "" #~ "Зададената команда трÑбва да генерира и изведе валидна Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ñ Ð½Ð° меню " #~ "на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ñи изход. Тази Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ñ Ñ‚Ñ€Ñбва да бъде в проÑÑ‚Ð¸Ñ Ñ‚ÐµÐºÑтов " #~ "формат, опиÑан във файловете менюта, Ñъпровождащи Уиндоу Мейкър, " #~ "обикновено в ~/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 "" #~ "Въведете Ð¿ÑŠÑ‚Ñ Ð´Ð¾ директориÑта. Може да въведете повече от един път, ако " #~ "го отделите Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð²Ð°Ð»Ð¸." # ../../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 файл\"." #~ msgid "drag windows between workspaces." #~ msgstr "прозорците да Ñе влачат през работни меÑта" #~ msgid "" #~ "switch to first workspace when switching past the last workspace and vice-" #~ "versa" #~ msgstr "" #~ "да Ñе мине към първото работно мÑÑто Ñлед задминаване на поÑледното и " #~ "обратно" �������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/zh_TW.po�����������������������������������������������������������0000644�0001750�0001750�00000173427�12214432632�014775� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# WPrefs PO file for Traditional Chinese. # Copyright (C) 1999 Free Software Foundation, Inc. # Li Wei Jih <lwj83@cs.ccu.edu.tw>, 1999, 2005. # msgid "" msgstr "" "Project-Id-Version: Window Maker-0.91.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-01-10 10:51+0800\n" "PO-Revision-Date: 2005-01-11 17:46+0800\n" "Last-Translator: Li Wei Jih <lwj83@cs.ccu.edu.tw>\n" "Language-Team: chinese <zh@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../../WPrefs.app/Appearance.c:1154 msgid "Select File" msgstr "é¸å–檔案" #: ../../WPrefs.app/Appearance.c:1555 msgid "Focused Window" msgstr "焦點視窗" #: ../../WPrefs.app/Appearance.c:1560 msgid "Unfocused Window" msgstr "éžç„¦é»žè¦–窗" #: ../../WPrefs.app/Appearance.c:1565 msgid "Owner of Focused Window" msgstr "ç„¦é»žè¦–çª—æ“æœ‰è€…" #: ../../WPrefs.app/Appearance.c:1570 ../../WPrefs.app/Appearance.c:1893 msgid "Menu Title" msgstr "é¸å–®æ¨™é¡Œ" #: ../../WPrefs.app/Appearance.c:1575 ../../WPrefs.app/Appearance.c:1578 msgid "Normal Item" msgstr "正常項目" #: ../../WPrefs.app/Appearance.c:1583 msgid "Disabled Item" msgstr "失效項目" #: ../../WPrefs.app/Appearance.c:1595 msgid "Highlighted" msgstr "加強標示" #: ../../WPrefs.app/Appearance.c:1786 msgid "Texture" msgstr "æè³ª" #: ../../WPrefs.app/Appearance.c:1794 msgid "Titlebar of Focused Window" msgstr "焦點視窗標題列" #: ../../WPrefs.app/Appearance.c:1795 msgid "Titlebar of Unfocused Windows" msgstr "éžç„¦é»žè¦–窗標題列" #: ../../WPrefs.app/Appearance.c:1796 msgid "Titlebar of Focused Window's Owner" msgstr "ç„¦é»žè¦–çª—æ“æœ‰è€…標題列" #: ../../WPrefs.app/Appearance.c:1797 msgid "Window Resizebar" msgstr "視窗大å°è®Šæ›´åˆ—" #: ../../WPrefs.app/Appearance.c:1798 msgid "Titlebar of Menus" msgstr "é¸å–®æ¨™é¡Œåˆ—" #: ../../WPrefs.app/Appearance.c:1799 msgid "Menu Items" msgstr "é¸å–®é …ç›®" #: ../../WPrefs.app/Appearance.c:1800 msgid "Icon Background" msgstr "圖示背景" #: ../../WPrefs.app/Appearance.c:1815 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "在你è¦ç”¨æ–¼é¸å–項目的æè³ªé»žå…©ä¸‹ã€‚" #: ../../WPrefs.app/Appearance.c:1829 msgid "New" msgstr "新增" #: ../../WPrefs.app/Appearance.c:1833 msgid "Create a new texture." msgstr "建立新æè³ªã€‚" #: ../../WPrefs.app/Appearance.c:1841 msgid "Extract..." msgstr "æå–..." #: ../../WPrefs.app/Appearance.c:1845 msgid "Extract texture(s) from a theme or a style file." msgstr "從主題或風格檔案æå–æè³ªã€‚" #: ../../WPrefs.app/Appearance.c:1855 msgid "Edit" msgstr "編輯" #: ../../WPrefs.app/Appearance.c:1858 msgid "Edit the highlighted texture." msgstr "編輯加強標示的æè³ªã€‚" #: ../../WPrefs.app/Appearance.c:1866 ../../WPrefs.app/TexturePanel.c:1318 msgid "Delete" msgstr "刪除" #: ../../WPrefs.app/Appearance.c:1870 msgid "Delete the highlighted texture." msgstr "編輯加強標示的æè³ªã€‚" #: ../../WPrefs.app/Appearance.c:1883 msgid "Color" msgstr "色彩" #: ../../WPrefs.app/Appearance.c:1890 msgid "Focused Window Title" msgstr "焦點視窗標題列" #: ../../WPrefs.app/Appearance.c:1891 msgid "Unfocused Window Title" msgstr "éžç„¦é»žè¦–窗標題列" #: ../../WPrefs.app/Appearance.c:1892 msgid "Owner of Focused Window Title" msgstr "ç„¦é»žè¦–çª—æ¨™é¡Œæ“æœ‰è€…" #: ../../WPrefs.app/Appearance.c:1894 msgid "Menu Item Text" msgstr "é¸å–®é …目文字" #: ../../WPrefs.app/Appearance.c:1895 msgid "Disabled Menu Item Text" msgstr "失效的é¸å–®é …目文字" #: ../../WPrefs.app/Appearance.c:1896 msgid "Menu Highlight Color" msgstr "é¸å–®åŠ å¼·æ¨™ç¤ºè‰²å½©" #: ../../WPrefs.app/Appearance.c:1897 msgid "Highlighted Menu Text Color" msgstr "加強標示的é¸å–®æ–‡å­—色彩" #: ../../WPrefs.app/Appearance.c:1936 msgid "Background" msgstr "背景" #: ../../WPrefs.app/Appearance.c:1948 ../../WPrefs.app/TexturePanel.c:1504 msgid "Browse..." msgstr "ç€è¦½..." #: ../../WPrefs.app/Appearance.c:1961 msgid "Options" msgstr "é¸é …" #: ../../WPrefs.app/Appearance.c:1968 msgid "Menu Style" msgstr "é¸å–®é¢¨æ ¼" #: ../../WPrefs.app/Appearance.c:1996 ../../WPrefs.app/Configurations.c:241 #: ../../WPrefs.app/Configurations.c:253 ../../WPrefs.app/Focus.c:288 #: ../../WPrefs.app/Focus.c:299 ../../WPrefs.app/MenuPreferences.c:134 #: ../../WPrefs.app/MenuPreferences.c:145 #: ../../WPrefs.app/MenuPreferences.c:173 #: ../../WPrefs.app/MenuPreferences.c:188 ../../WPrefs.app/MouseSettings.c:560 #: ../../WPrefs.app/MouseSettings.c:571 ../../WPrefs.app/WPrefs.c:546 #: ../../WPrefs.app/WPrefs.c:571 #, c-format msgid "could not load icon file %s" msgstr "無法載入圖示檔 %s" #: ../../WPrefs.app/Appearance.c:2010 msgid "Title Alignment" msgstr "標題å°é½Š" #: ../../WPrefs.app/Appearance.c:2017 msgid "Left" msgstr "é å·¦" #: ../../WPrefs.app/Appearance.c:2020 ../../WPrefs.app/TexturePanel.c:1518 #: ../../WPrefs.app/Workspace.c:270 msgid "Center" msgstr "置中" #: ../../WPrefs.app/Appearance.c:2023 msgid "Right" msgstr "é å³" #: ../../WPrefs.app/Appearance.c:2247 msgid "Appearance Preferences" msgstr "外觀設定" #: ../../WPrefs.app/Appearance.c:2249 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "視窗ã€é¸å–®èˆ‡åœ–示的背景æè³ªè¨­å®šã€‚" #: ../../WPrefs.app/Appearance.c:2294 msgid "Extract Texture" msgstr "æå–æè³ª" #: ../../WPrefs.app/Appearance.c:2314 msgid "Textures" msgstr "æè³ª" #: ../../WPrefs.app/Appearance.c:2325 ../../WPrefs.app/WPrefs.c:301 msgid "Close" msgstr "關閉" #: ../../WPrefs.app/Appearance.c:2330 msgid "Extract" msgstr "æå–" #: ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 #: ../../WPrefs.app/MouseSettings.c:490 ../../WPrefs.app/WindowHandling.c:339 #: ../../WPrefs.app/WindowHandling.c:351 ../../WPrefs.app/Workspace.c:90 #: ../../WPrefs.app/Workspace.c:101 #, c-format msgid "could not load icon %s" msgstr "無法載入圖示 %s" #: ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:109 #, c-format msgid "could not process icon %s: %s" msgstr "無法處ç†åœ–示 %s: %s" #: ../../WPrefs.app/Configurations.c:188 ../../WPrefs.app/Workspace.c:164 #, c-format msgid "could not load image file %s" msgstr "ç„¡æ³•è¼‰å…¥å½±åƒæª” %s" #: ../../WPrefs.app/Configurations.c:202 msgid "Icon Slide Speed" msgstr "圖示移動速度" #: ../../WPrefs.app/Configurations.c:208 msgid "Shade Animation Speed" msgstr "é®è”½å‹•畫速度" #: ../../WPrefs.app/Configurations.c:270 msgid "Smooth Scaling" msgstr "平滑縮放" #: ../../WPrefs.app/Configurations.c:271 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "å¹³æ»‘ç¸®æ”¾èƒŒæ™¯åœ–ï¼ŒæŠµæ¶ˆã€Œæ ¼æŸµåŒ–ã€æ•ˆæžœã€‚\n" "這會使背景圖載入變得相當慢。" #: ../../WPrefs.app/Configurations.c:312 msgid "Titlebar Style" msgstr "標題列風格" #: ../../WPrefs.app/Configurations.c:350 msgid "Animations and Sound" msgstr "動畫與音效" #: ../../WPrefs.app/Configurations.c:356 msgid "Animations" msgstr "å‹•ç•«" #: ../../WPrefs.app/Configurations.c:367 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "åœç”¨/啟用動畫,例如視窗最å°åŒ–ã€é®è”½ç­‰çš„顯示。" #: ../../WPrefs.app/Configurations.c:375 msgid "Superfluous" msgstr "多餘的" #: ../../WPrefs.app/Configurations.c:386 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "åœç”¨/啟用「多餘的ã€ç‰¹è‰²èˆ‡å‹•畫。\n" "這包括åœé å€è¢«ç§»åˆ°å¦ä¸€é‚Šæ™‚的「鬼影ã€\n" "與脫離圖示時的爆炸動畫。" #: ../../WPrefs.app/Configurations.c:396 msgid "Sounds" msgstr "音效" #: ../../WPrefs.app/Configurations.c:407 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://largo.windowmaker.info/files.php#WSoundServer" msgstr "" "åœç”¨/啟用é®è”½èˆ‡é—œé–‰è¦–窗動作時播放的音效支æ´ã€‚\n" "你需è¦åˆ†é–‹ç™¼é€çš„æ¨¡çµ„。你å¯ä»¥åœ¨é€™è£¡å–å¾—:\n" "http://largo.windowmaker.info/files.php#WSoundServer" #: ../../WPrefs.app/Configurations.c:418 msgid "" "Note: sound requires a module distributed\n" "separately" msgstr "註:音效需è¦åˆ†é–‹ç™¼é€çš„æ¨¡çµ„" #: ../../WPrefs.app/Configurations.c:428 msgid "Dithering colormap for 8bpp" msgstr "為 8bpp 色盤減色" #: ../../WPrefs.app/Configurations.c:430 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "åœ¨åªæ”¯æ´ 8bpp (虛擬色彩) 的螢幕上\n" "ä¿ç•™çµ¦ Window Maker 的色彩數。" #: ../../WPrefs.app/Configurations.c:437 msgid "Disable dithering in any visual/depth" msgstr "使任何視覺/深度中的減色失效" #: ../../WPrefs.app/Configurations.c:458 msgid "" "More colors for\n" "applications" msgstr "" "應用程å¼\n" "使用更多色彩" #: ../../WPrefs.app/Configurations.c:465 msgid "" "More colors for\n" "Window Maker" msgstr "" "Window Maker\n" "使用更多色彩" #: ../../WPrefs.app/Configurations.c:520 msgid "Other Configurations" msgstr "其他設定" #: ../../WPrefs.app/Configurations.c:522 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "å‹•ç•«é€Ÿåº¦ã€æ¨™é¡Œåˆ—風格ã€å„種é¸é …切æ›\n" "與在 8bit 螢幕上ä¿ç•™çµ¦ Window Maker 的色彩數。" #: ../../WPrefs.app/Expert.c:75 msgid "" "Disable miniwindows (icons for minimized windows). For use with KDE/GNOME." msgstr "" "åœç”¨è¿·ä½ è¦–窗 (最å°åŒ–視窗的圖示)。用於 KDE/GNOME。" #: ../../WPrefs.app/Expert.c:76 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "ä¸è¦è¨­éž WindowMaker æŒ‡å®šåƒæ•¸ï¼ˆä¸è¦ä½¿ç”¨ xset)。" #: ../../WPrefs.app/Expert.c:77 msgid "Automatically save session when exiting Window Maker." msgstr "離開 Window Maker 時自動儲存時段。" #: ../../WPrefs.app/Expert.c:78 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "在視窗框架ã€åœ–示ã€é¸å–®èˆ‡å…¶ä»–物件使用 SaveUnder。" #: ../../WPrefs.app/Expert.c:79 msgid "Disable confirmation panel for the Kill command." msgstr "åœç”¨ Kill 命令的確èªé¢æ¿ã€‚" #: ../../WPrefs.app/Expert.c:80 msgid "Disable selection animation for selected icons." msgstr "åœç”¨å·²é¸å–圖示的é¸å–動畫。" #: ../../WPrefs.app/Expert.c:81 msgid "Smooth font edges (needs restart)." msgstr "平滑字型邊緣 (需è¦é‡æ–°å•Ÿå‹•)。" #: ../../WPrefs.app/Expert.c:117 msgid "Expert User Preferences" msgstr "熟練使用者設定" #: ../../WPrefs.app/Expert.c:119 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "給知é“他們正在åšä»€éº¼çš„人的é¸é …...\n" "也有一些其他å„å¼å„樣的é¸é …。" #: ../../WPrefs.app/Focus.c:80 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "é¸é … FocusMode çš„é¸é …值 %s 錯誤。使用é è¨­å€¼ã€Œæ‰‹å‹•ã€" #: ../../WPrefs.app/Focus.c:94 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "é¸é … ColormapMode çš„é¸é …值 %s 錯誤。使用é è¨­å€¼ã€Œè‡ªå‹•ã€" #: ../../WPrefs.app/Focus.c:214 msgid "Input Focus Mode" msgstr "輸入焦點模å¼" #: ../../WPrefs.app/Focus.c:222 msgid "Manual: Click on the window to set keyboard input focus." msgstr "手動: 在視窗上按一下設定éµç›¤è¼¸å…¥ç„¦é»žã€‚" #: ../../WPrefs.app/Focus.c:229 msgid "Auto: Set keyboard input focus to the window under the mouse pointer." msgstr "自動: 設定éµç›¤è¼¸å…¥ç„¦é»žè‡³æ»‘鼠指標下é¢çš„視窗。" #: ../../WPrefs.app/Focus.c:243 msgid "Install colormap in the window..." msgstr "安è£è‰²ç›¤..." #: ../../WPrefs.app/Focus.c:248 msgid "...that has the input focus." msgstr "...輸入焦點所在視窗。" #: ../../WPrefs.app/Focus.c:253 msgid "...that's under the mouse pointer." msgstr "...滑鼠指標下é¢çš„視窗。" #: ../../WPrefs.app/Focus.c:262 msgid "Automatic Window Raise Delay" msgstr "自動å‡èµ·è¦–窗延é²" #: ../../WPrefs.app/Focus.c:319 ../../WPrefs.app/MouseSettings.c:601 msgid "msec" msgstr "毫秒" #: ../../WPrefs.app/Focus.c:336 msgid "Do not let applications receive the click used to focus windows." msgstr "ä¸è¦è®“應用程å¼å¾—到用來設定視窗焦點的滑鼠按éµå‹•作。" #: ../../WPrefs.app/Focus.c:342 msgid "Automatically focus new windows." msgstr "新視窗自動得到焦點。" #: ../../WPrefs.app/Focus.c:363 msgid "Window Focus Preferences" msgstr "視窗焦點設定" #: ../../WPrefs.app/Focus.c:365 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "éµç›¤ç„¦é»žåˆ‡æ›æ”¿ç­–ã€8bpp èž¢å¹•çš„è‰²ç›¤åˆ‡æ›æ”¿ç­–與其他相關é¸é …。" #: ../../WPrefs.app/FontSimple.c:689 msgid "Sample Text" msgstr "範例文字" #: ../../WPrefs.app/FontSimple.c:707 msgid "Family" msgstr "種類" #: ../../WPrefs.app/FontSimple.c:736 msgid "Style" msgstr "風格" #: ../../WPrefs.app/FontSimple.c:739 msgid "Size" msgstr "大å°" #: ../../WPrefs.app/FontSimple.c:777 msgid "Font Configuration" msgstr "字型設定" #: ../../WPrefs.app/FontSimple.c:779 msgid "Configure fonts for Window Maker titlebars, menus etc." msgstr "設定 Window Maker 標題列ã€é¸å–®ç­‰çš„字型。" #: ../../WPrefs.app/Icons.c:180 msgid "Icon Positioning" msgstr "圖示ä½ç½®" #: ../../WPrefs.app/Icons.c:227 msgid "Iconification Animation" msgstr "縮æˆåœ–示動畫" #: ../../WPrefs.app/Icons.c:238 msgid "Shrinking/Zooming" msgstr "縮å°/放大" #: ../../WPrefs.app/Icons.c:239 msgid "Spinning/Twisting" msgstr "迴轉/轉å‘" #: ../../WPrefs.app/Icons.c:240 msgid "3D-flipping" msgstr "立體翻轉" #: ../../WPrefs.app/Icons.c:241 ../../WPrefs.app/MouseSettings.c:838 #: ../../WPrefs.app/MouseSettings.c:843 msgid "None" msgstr "ç„¡" #: ../../WPrefs.app/Icons.c:254 msgid "Auto-arrange icons" msgstr "自動排列圖示" #: ../../WPrefs.app/Icons.c:256 msgid "Keep icons and miniwindows arranged all the time." msgstr "éš¨æ™‚ä¿æŒåœ–示與最å°è¦–窗的排列" #: ../../WPrefs.app/Icons.c:262 msgid "Omnipresent miniwindows" msgstr "最å°è¦–窗無所ä¸åœ¨" #: ../../WPrefs.app/Icons.c:264 msgid "Make miniwindows be present in all workspaces." msgstr "使最å°è¦–窗出ç¾åœ¨æ‰€æœ‰å·¥ä½œå€ã€‚" #: ../../WPrefs.app/Icons.c:273 msgid "Icon Size" msgstr "圖示大å°" #: ../../WPrefs.app/Icons.c:275 msgid "The size of the dock/application icon and miniwindows" msgstr "åœé å€/應用程å¼åœ–示和最å°è¦–窗的大å°" #: ../../WPrefs.app/Icons.c:345 msgid "Icon Preferences" msgstr "圖示設定" #: ../../WPrefs.app/Icons.c:347 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "圖示/最å°è¦–窗處ç†é¸é …。\n" "圖示放置å€åŸŸã€åœ–示大å°ã€æœ€å°åŒ–動畫風格。" #: ../../WPrefs.app/KeyboardSettings.c:73 msgid "Initial Key Repeat" msgstr "啟始按éµé‡è¤‡" #: ../../WPrefs.app/KeyboardSettings.c:114 msgid "Key Repeat Rate" msgstr "按éµé‡è¤‡é€Ÿçއ" #: ../../WPrefs.app/KeyboardSettings.c:154 msgid "Type here to test" msgstr "在此打字測試" #: ../../WPrefs.app/KeyboardSettings.c:173 msgid "Keyboard Preferences" msgstr "éµç›¤è¨­å®š" #: ../../WPrefs.app/KeyboardSettings.c:175 msgid "Not done" msgstr "未完æˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:310 ../../WPrefs.app/Menu.c:360 #: ../../WPrefs.app/TexturePanel.c:1535 ../../WPrefs.app/imagebrowser.c:100 msgid "Cancel" msgstr "å–æ¶ˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:311 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "按下想è¦çš„æ·å¾‘éµæˆ–æŒ‰ä¸‹å–æ¶ˆåœæ­¢æŠ“å–。" #: ../../WPrefs.app/KeyboardShortcuts.c:331 #: ../../WPrefs.app/KeyboardShortcuts.c:584 ../../WPrefs.app/Menu.c:371 #: ../../WPrefs.app/Menu.c:830 msgid "Capture" msgstr "抓å–" #: ../../WPrefs.app/KeyboardShortcuts.c:332 #: ../../WPrefs.app/KeyboardShortcuts.c:592 msgid "Click on Capture to interactively define the shortcut key." msgstr "按下抓å–å¯äº’å‹•å¼å®šç¾©æ·å¾‘éµã€‚" #: ../../WPrefs.app/KeyboardShortcuts.c:486 msgid "Actions" msgstr "動作" #: ../../WPrefs.app/KeyboardShortcuts.c:500 msgid "Open applications menu" msgstr "開啟應用程å¼é¸å–®" #: ../../WPrefs.app/KeyboardShortcuts.c:501 msgid "Open window list menu" msgstr "開啟視窗清單é¸å–®" #: ../../WPrefs.app/KeyboardShortcuts.c:502 msgid "Open window commands menu" msgstr "開啟視窗命令é¸å–®" #: ../../WPrefs.app/KeyboardShortcuts.c:503 msgid "Hide active application" msgstr "éš±è—æ´»å‹•中的應用程å¼" #: ../../WPrefs.app/KeyboardShortcuts.c:504 msgid "Hide other applications" msgstr "éš±è—其他的應用程å¼" #: ../../WPrefs.app/KeyboardShortcuts.c:505 msgid "Miniaturize active window" msgstr "最å°åŒ–活動中的視窗" #: ../../WPrefs.app/KeyboardShortcuts.c:506 msgid "Close active window" msgstr "關閉活動中的視窗" #: ../../WPrefs.app/KeyboardShortcuts.c:507 msgid "Maximize active window" msgstr "最大化活動中的視窗" #: ../../WPrefs.app/KeyboardShortcuts.c:508 msgid "Maximize active window vertically" msgstr "垂直最大化活動中的視窗" #: ../../WPrefs.app/KeyboardShortcuts.c:509 msgid "Maximize active window horizontally" msgstr "水平最大化活動中的視窗" #: ../../WPrefs.app/KeyboardShortcuts.c:510 msgid "Raise active window" msgstr "å‡èµ·æ´»å‹•中的視窗" #: ../../WPrefs.app/KeyboardShortcuts.c:511 msgid "Lower active window" msgstr "é™ä¸‹æ´»å‹•中的視窗" #: ../../WPrefs.app/KeyboardShortcuts.c:512 msgid "Raise/Lower window under mouse pointer" msgstr "å‡èµ·/é™ä¸‹æ»‘鼠指標下é¢çš„視窗" #: ../../WPrefs.app/KeyboardShortcuts.c:513 msgid "Shade active window" msgstr "é®è”½æ´»å‹•中的視窗" #: ../../WPrefs.app/KeyboardShortcuts.c:514 msgid "Move/Resize active window" msgstr "活動中的視窗移動/大å°è®Šæ›´" #: ../../WPrefs.app/KeyboardShortcuts.c:515 msgid "Select active window" msgstr "é¸å–活動中的視窗" #: ../../WPrefs.app/KeyboardShortcuts.c:516 msgid "Focus next window" msgstr "焦點移至下一個視窗" #: ../../WPrefs.app/KeyboardShortcuts.c:517 msgid "Focus previous window" msgstr "焦點移至上一個視窗" #: ../../WPrefs.app/KeyboardShortcuts.c:518 msgid "Switch to next workspace" msgstr "切æ›è‡³ä¸‹ä¸€å€‹å·¥ä½œå€" #: ../../WPrefs.app/KeyboardShortcuts.c:519 msgid "Switch to previous workspace" msgstr "切æ›è‡³ä¸Šä¸€å€‹å·¥ä½œå€" #: ../../WPrefs.app/KeyboardShortcuts.c:520 msgid "Switch to next ten workspaces" msgstr "切æ›è‡³å¾Œå個工作å€" #: ../../WPrefs.app/KeyboardShortcuts.c:521 msgid "Switch to previous ten workspaces" msgstr "切æ›è‡³å‰å個工作å€" #: ../../WPrefs.app/KeyboardShortcuts.c:522 msgid "Switch to workspace 1" msgstr "切æ›è‡³å·¥ä½œå€ 1" #: ../../WPrefs.app/KeyboardShortcuts.c:523 msgid "Switch to workspace 2" msgstr "切æ›è‡³å·¥ä½œå€ 2" #: ../../WPrefs.app/KeyboardShortcuts.c:524 msgid "Switch to workspace 3" msgstr "切æ›è‡³å·¥ä½œå€ 3" #: ../../WPrefs.app/KeyboardShortcuts.c:525 msgid "Switch to workspace 4" msgstr "切æ›è‡³å·¥ä½œå€ 4" #: ../../WPrefs.app/KeyboardShortcuts.c:526 msgid "Switch to workspace 5" msgstr "切æ›è‡³å·¥ä½œå€ 5" #: ../../WPrefs.app/KeyboardShortcuts.c:527 msgid "Switch to workspace 6" msgstr "切æ›è‡³å·¥ä½œå€ 6" #: ../../WPrefs.app/KeyboardShortcuts.c:528 msgid "Switch to workspace 7" msgstr "切æ›è‡³å·¥ä½œå€ 7" #: ../../WPrefs.app/KeyboardShortcuts.c:529 msgid "Switch to workspace 8" msgstr "切æ›è‡³å·¥ä½œå€ 8" #: ../../WPrefs.app/KeyboardShortcuts.c:530 msgid "Switch to workspace 9" msgstr "切æ›è‡³å·¥ä½œå€ 9" #: ../../WPrefs.app/KeyboardShortcuts.c:531 msgid "Switch to workspace 10" msgstr "切æ›è‡³å·¥ä½œå€ 10" #: ../../WPrefs.app/KeyboardShortcuts.c:532 msgid "Shortcut for window 1" msgstr "視窗 1 çš„æ·å¾‘" #: ../../WPrefs.app/KeyboardShortcuts.c:533 msgid "Shortcut for window 2" msgstr "視窗 2 çš„æ·å¾‘" #: ../../WPrefs.app/KeyboardShortcuts.c:534 msgid "Shortcut for window 3" msgstr "視窗 3 çš„æ·å¾‘" #: ../../WPrefs.app/KeyboardShortcuts.c:535 msgid "Shortcut for window 4" msgstr "視窗 4 çš„æ·å¾‘" #: ../../WPrefs.app/KeyboardShortcuts.c:536 msgid "Shortcut for window 5" msgstr "視窗 5 çš„æ·å¾‘" #: ../../WPrefs.app/KeyboardShortcuts.c:537 msgid "Shortcut for window 6" msgstr "視窗 6 çš„æ·å¾‘" #: ../../WPrefs.app/KeyboardShortcuts.c:538 msgid "Shortcut for window 7" msgstr "視窗 7 çš„æ·å¾‘" #: ../../WPrefs.app/KeyboardShortcuts.c:539 msgid "Shortcut for window 8" msgstr "視窗 8 çš„æ·å¾‘" #: ../../WPrefs.app/KeyboardShortcuts.c:540 msgid "Shortcut for window 9" msgstr "視窗 9 çš„æ·å¾‘" #: ../../WPrefs.app/KeyboardShortcuts.c:541 msgid "Shortcut for window 10" msgstr "視窗 10 çš„æ·å¾‘" #: ../../WPrefs.app/KeyboardShortcuts.c:542 msgid "Switch to Next Screen/Monitor" msgstr "切æ›è‡³å¾Œå個螢幕" #: ../../WPrefs.app/KeyboardShortcuts.c:544 msgid "Move VirtualDesktop to next left edge" msgstr "移動虛擬桌é¢è‡³ä¸‹ä¸€å€‹å·¦é‚Š" #: ../../WPrefs.app/KeyboardShortcuts.c:545 msgid "Move VirtualDesktop to next right edge" msgstr "移動虛擬桌é¢è‡³ä¸‹ä¸€å€‹å³é‚Š" #: ../../WPrefs.app/KeyboardShortcuts.c:546 msgid "Move VirtualDesktop to next top edge" msgstr "移動虛擬桌é¢è‡³ä¸‹ä¸€å€‹ä¸Šé‚Š" #: ../../WPrefs.app/KeyboardShortcuts.c:547 msgid "Move VirtualDesktop to next bottom edge" msgstr "移動虛擬桌é¢è‡³ä¸‹ä¸€å€‹ä¸‹é‚Š" #: ../../WPrefs.app/KeyboardShortcuts.c:549 msgid "Raise Clip" msgstr "å‡èµ·è¿´ç´‹é‡" #: ../../WPrefs.app/KeyboardShortcuts.c:550 msgid "Lower Clip" msgstr "é™ä¸‹è¿´ç´‹é‡" #: ../../WPrefs.app/KeyboardShortcuts.c:551 msgid "Raise/Lower Clip" msgstr "å‡èµ·/é™ä¸‹è¿´ç´‹é‡" #: ../../WPrefs.app/KeyboardShortcuts.c:553 msgid "Toggle keyboard language" msgstr "切æ›éµç›¤èªžè¨€" #: ../../WPrefs.app/KeyboardShortcuts.c:567 msgid "Shortcut" msgstr "æ·å¾‘" #: ../../WPrefs.app/KeyboardShortcuts.c:578 ../../WPrefs.app/Menu.c:836 msgid "Clear" msgstr "清除" #: ../../WPrefs.app/KeyboardShortcuts.c:640 msgid "Keyboard Shortcut Preferences" msgstr "éµç›¤æ·å¾‘設定" #: ../../WPrefs.app/KeyboardShortcuts.c:642 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "改變變更工作å€èˆ‡é–‹å•Ÿé¸å–®å‹•作的éµç›¤æ·å¾‘。" #: ../../WPrefs.app/Menu.c:278 msgid "Select Program" msgstr "é¸å–程å¼" #: ../../WPrefs.app/Menu.c:510 msgid "New Items" msgstr "新增項目" #: ../../WPrefs.app/Menu.c:511 msgid "Sample Commands" msgstr "範例命令" #: ../../WPrefs.app/Menu.c:512 msgid "Sample Submenus" msgstr "範例副é¸å–®" #: ../../WPrefs.app/Menu.c:526 msgid "Run Program" msgstr "執行程å¼" #: ../../WPrefs.app/Menu.c:527 msgid "Internal Command" msgstr "內部命令" #: ../../WPrefs.app/Menu.c:528 msgid "Submenu" msgstr "副é¸å–®" #: ../../WPrefs.app/Menu.c:529 msgid "External Submenu" msgstr "外部副é¸å–®" #: ../../WPrefs.app/Menu.c:530 msgid "Generated Submenu" msgstr "產生的副é¸å–®" #: ../../WPrefs.app/Menu.c:531 msgid "Directory Contents" msgstr "目錄內容" #: ../../WPrefs.app/Menu.c:532 msgid "Workspace Menu" msgstr "工作å€é¸å–®" #: ../../WPrefs.app/Menu.c:533 ../../WPrefs.app/MouseSettings.c:840 msgid "Window List Menu" msgstr "視窗清單é¸å–®" #: ../../WPrefs.app/Menu.c:552 msgid "XTerm" msgstr "XTerm" #: ../../WPrefs.app/Menu.c:555 msgid "rxvt" msgstr "rxvt" #: ../../WPrefs.app/Menu.c:558 msgid "ETerm" msgstr "ETerm" #: ../../WPrefs.app/Menu.c:561 msgid "Run..." msgstr "執行..." #: ../../WPrefs.app/Menu.c:562 #, c-format msgid "%a(Run,Type command to run)" msgstr "%a(執行,輸入è¦åŸ·è¡Œçš„命令)" #: ../../WPrefs.app/Menu.c:564 msgid "Netscape" msgstr "Netscape" #: ../../WPrefs.app/Menu.c:567 msgid "gimp" msgstr "gimp" #: ../../WPrefs.app/Menu.c:570 msgid "epic" msgstr "epic" #: ../../WPrefs.app/Menu.c:573 msgid "ee" msgstr "ee" #: ../../WPrefs.app/Menu.c:576 msgid "xv" msgstr "xv" #: ../../WPrefs.app/Menu.c:579 msgid "Acrobat Reader" msgstr "Acrobat Reader" #: ../../WPrefs.app/Menu.c:582 msgid "ghostview" msgstr "ghostview" #: ../../WPrefs.app/Menu.c:585 ../../WPrefs.app/Menu.c:857 msgid "Exit Window Maker" msgstr "離開 Window Maker" #: ../../WPrefs.app/Menu.c:608 msgid "Debian Menu" msgstr "Debian é¸å–®" #: ../../WPrefs.app/Menu.c:611 msgid "RedHat Menu" msgstr "RedHat é¸å–®" #: ../../WPrefs.app/Menu.c:614 msgid "Menu Conectiva" msgstr "Conectiva é¸å–®" #: ../../WPrefs.app/Menu.c:617 ../../WPrefs.app/Themes.c:250 msgid "Themes" msgstr "主題" #: ../../WPrefs.app/Menu.c:622 msgid "Bg Images (scale)" msgstr "背景圖 (縮放)" #: ../../WPrefs.app/Menu.c:627 msgid "Bg Images (tile)" msgstr "背景圖 (並排)" #: ../../WPrefs.app/Menu.c:632 msgid "Assorted XTerms" msgstr "å„å¼å„樣的 XTerm" #: ../../WPrefs.app/Menu.c:634 msgid "XTerm Yellow on Blue" msgstr "XTerm è—底黃字" #: ../../WPrefs.app/Menu.c:637 msgid "XTerm White on Black" msgstr "XTerm 黑底白字" #: ../../WPrefs.app/Menu.c:640 msgid "XTerm Black on White" msgstr "XTerm 白底黑字" #: ../../WPrefs.app/Menu.c:643 msgid "XTerm Black on Beige" msgstr "XTerm 米底黑字" #: ../../WPrefs.app/Menu.c:646 msgid "XTerm White on Green" msgstr "XTerm 綠底白字" #: ../../WPrefs.app/Menu.c:649 msgid "XTerm White on Olive" msgstr "XTerm è¤åº•白字" #: ../../WPrefs.app/Menu.c:652 msgid "XTerm Blue on Blue" msgstr "XTerm è—底è—å­—" #: ../../WPrefs.app/Menu.c:655 msgid "XTerm BIG FONTS" msgstr "XTerm 大字型" #: ../../WPrefs.app/Menu.c:677 msgid "Program to Run" msgstr "執行之程å¼" #: ../../WPrefs.app/Menu.c:687 msgid "Browse" msgstr "ç€è¦½" #: ../../WPrefs.app/Menu.c:698 msgid "Run the program inside a Xterm" msgstr "在 Xterm 內執行程å¼" #: ../../WPrefs.app/Menu.c:708 msgid "Path for Menu" msgstr "é¸å–®è·¯å¾‘" #: ../../WPrefs.app/Menu.c:721 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin" msgstr "" "è¼¸å…¥å«æœ‰é¸å–®çš„æª”案或你è¦åˆ—在é¸å–®çš„程å¼ç›®éŒ„清單\n" "的路徑。例如:\n" "~/GNUstep/Library/WindowMaker/menu\n" "或\n" "/usr/bin ~/xbin" #: ../../WPrefs.app/Menu.c:736 msgid "Command" msgstr "命令" #: ../../WPrefs.app/Menu.c:750 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "輸入用來輸出é¸å–®å®šç¾©åˆ°æ¨™æº–輸出的命令。" #: ../../WPrefs.app/Menu.c:758 msgid "" "Cache menu contents after opening for\n" "the first time" msgstr "" "第一次開啟後快å–é¸å–®å…§å®¹" #: ../../WPrefs.app/Menu.c:769 msgid "Command to Open Files" msgstr "開啟檔案之程å¼" #: ../../WPrefs.app/Menu.c:783 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "輸入你è¦ç”¨ä¾†é–‹å•Ÿä¸‹åˆ—目錄中檔案的命令。" #: ../../WPrefs.app/Menu.c:792 msgid "Directories with Files" msgstr "嫿œ‰æª”案的目錄" #: ../../WPrefs.app/Menu.c:805 msgid "Strip extensions from file names" msgstr "刪除檔å的副檔å" #: ../../WPrefs.app/Menu.c:817 msgid "Keyboard Shortcut" msgstr "éµç›¤æ·å¾‘" #: ../../WPrefs.app/Menu.c:853 msgid "Arrange Icons" msgstr "排列圖示" #: ../../WPrefs.app/Menu.c:854 msgid "Hide All Windows Except For The Focused One" msgstr "é™¤äº†ç„¦é»žè¦–çª—å¤–éš±è—æ‰€æœ‰è¦–窗" #: ../../WPrefs.app/Menu.c:855 msgid "Show All Windows" msgstr "顯示所有視窗" #: ../../WPrefs.app/Menu.c:858 msgid "Exit X Session" msgstr "離開 X 視窗系統" #: ../../WPrefs.app/Menu.c:859 msgid "Restart Window Maker" msgstr "釿–°å•Ÿå‹• Window Maker" #: ../../WPrefs.app/Menu.c:860 msgid "Start Another Window Manager : (" msgstr "啟動其他的視窗管ç†å“¡ï¼šï¼ˆ" #: ../../WPrefs.app/Menu.c:862 msgid "Save Current Session" msgstr "å„²å­˜ç›®å‰æ™‚段" #: ../../WPrefs.app/Menu.c:863 msgid "Clear Saved Session" msgstr "清除已儲存時段" #: ../../WPrefs.app/Menu.c:864 msgid "Refresh Screen" msgstr "更新螢幕" #: ../../WPrefs.app/Menu.c:865 msgid "Open Info Panel" msgstr "é–‹å•Ÿè³‡è¨Šé¢æ¿" #: ../../WPrefs.app/Menu.c:866 msgid "Open Copyright Panel" msgstr "é–‹å•Ÿç‰ˆæ¬Šé¢æ¿" #: ../../WPrefs.app/Menu.c:872 msgid "Window Manager to Start" msgstr "è¦å•Ÿå‹•的視窗管ç†å“¡" #: ../../WPrefs.app/Menu.c:888 msgid "Do not confirm action." msgstr "ä¸ç¢ºèªå‹•作。" #: ../../WPrefs.app/Menu.c:896 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "說明:\n" "\n" " - 從左邊拖曳項目到é¸å–®å¯å¢žåŠ æ–°é …ç›®\n" " - 從é¸å–®æ‹–出項目å¯åˆªé™¤é …ç›®\n" " - 在é¸å–®ä¸­æ‹–曳項目å¯è®Šæ›´å…¶ä½ç½®\n" " - 按 Control 鵿‹–曳項目å¯è¤‡è£½å®ƒå€‘\n" " - 在é¸å–®é …目點兩下å¯è®Šæ›´æ¨™ç±¤\n" " - 在é¸å–®é …目點一下å¯è®Šæ›´ç›¸é—œè³‡è¨Š" #: ../../WPrefs.app/Menu.c:1120 #, c-format msgid "unknown command '%s' in menu" msgstr "é¸å–®ä¸­æœ‰ä¸æ˜Žçš„命令 '%s'" #: ../../WPrefs.app/Menu.c:1152 msgid ": Execute Program" msgstr ": 執行程å¼" #: ../../WPrefs.app/Menu.c:1156 msgid ": Perform Internal Command" msgstr ": 執行內部命令" #: ../../WPrefs.app/Menu.c:1160 msgid ": Open a Submenu" msgstr ": 開啟副é¸å–®" #: ../../WPrefs.app/Menu.c:1164 msgid ": Program Generated Submenu" msgstr ": 程å¼ç”¢ç”Ÿä¹‹å‰¯é¸å–®" #: ../../WPrefs.app/Menu.c:1168 msgid ": Directory Contents Menu" msgstr ": 目錄內容é¸å–®" #: ../../WPrefs.app/Menu.c:1172 msgid ": Open Workspaces Submenu" msgstr ": 開啟工作å€å‰¯é¸å–®" #: ../../WPrefs.app/Menu.c:1176 msgid ": Open Window List Submenu" msgstr ": 開啟視窗清單é¸å–®" #: ../../WPrefs.app/Menu.c:1401 msgid "Remove Submenu" msgstr "刪除副é¸å–®" #: ../../WPrefs.app/Menu.c:1402 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "" "刪除此項目會破壞副é¸å–®ä¸­æ‰€æœ‰é …目。\n" "你真的è¦é€™æ¨£åšï¼Ÿ" #: ../../WPrefs.app/Menu.c:1404 msgid "Yes" msgstr "是" #: ../../WPrefs.app/Menu.c:1404 msgid "No" msgstr "å¦" #: ../../WPrefs.app/Menu.c:1405 msgid "Yes, don't ask again." msgstr "是,ä¸è¦å†å•。" #: ../../WPrefs.app/Menu.c:1579 #, c-format msgid "Could not open default menu from '%s'" msgstr "無法從 '%s' 開啟é è¨­é¸å–®" #: ../../WPrefs.app/Menu.c:1583 ../../WPrefs.app/MouseSettings.c:140 #: ../../WPrefs.app/MouseSettings.c:160 ../../WPrefs.app/TexturePanel.c:615 #: ../../WPrefs.app/TexturePanel.c:695 ../../WPrefs.app/Themes.c:96 #: ../../WPrefs.app/WPrefs.c:740 ../../WPrefs.app/WPrefs.c:745 #: ../../WPrefs.app/WPrefs.c:762 ../../WPrefs.app/WPrefs.c:772 #: ../../WPrefs.app/WPrefs.c:782 ../../WPrefs.app/WPrefs.c:820 #: ../../WPrefs.app/WPrefs.c:825 msgid "Error" msgstr "錯誤" #: ../../WPrefs.app/Menu.c:1583 ../../WPrefs.app/MouseSettings.c:142 #: ../../WPrefs.app/MouseSettings.c:162 ../../WPrefs.app/TexturePanel.c:616 #: ../../WPrefs.app/TexturePanel.c:697 ../../WPrefs.app/TexturePanel.c:1529 #: ../../WPrefs.app/Themes.c:98 ../../WPrefs.app/WPrefs.c:740 #: ../../WPrefs.app/WPrefs.c:745 ../../WPrefs.app/WPrefs.c:764 #: ../../WPrefs.app/WPrefs.c:776 ../../WPrefs.app/WPrefs.c:782 #: ../../WPrefs.app/WPrefs.c:789 ../../WPrefs.app/WPrefs.c:820 #: ../../WPrefs.app/WPrefs.c:825 ../../WPrefs.app/imagebrowser.c:105 msgid "OK" msgstr "確定" #: ../../WPrefs.app/Menu.c:1612 ../../WPrefs.app/WPrefs.c:789 msgid "Warning" msgstr "注æ„" #: ../../WPrefs.app/Menu.c:1613 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "ç›®å‰ä½¿ç”¨çš„é¸å–®æª”æ¡ˆæ ¼å¼æœªè¢«æ­¤å·¥å…·æ”¯æ´ã€‚\n" "ä½ è¦æ‹‹æ£„ç›®å‰é¸å–®ä»¥ä¾¿ä½¿ç”¨æ­¤å·¥å…·ï¼Ÿ" #: ../../WPrefs.app/Menu.c:1616 msgid "Yes, Discard and Update" msgstr "是,拋棄並更新" #: ../../WPrefs.app/Menu.c:1617 msgid "No, Keep Current Menu" msgstr "å¦ï¼Œä¿ç•™ç›®å‰é¸å–®" #: ../../WPrefs.app/Menu.c:1880 msgid "Applications Menu Definition" msgstr "應用程å¼é¸å–®å®šç¾©" #: ../../WPrefs.app/Menu.c:1882 msgid "Edit the menu for launching applications." msgstr "編輯啟動應用程å¼çš„é¸å–®ã€‚" #: ../../WPrefs.app/MenuPreferences.c:111 msgid "Menu Scrolling Speed" msgstr "é¸å–®æ²å‹•速度" #: ../../WPrefs.app/MenuPreferences.c:160 msgid "Submenu Alignment" msgstr "副é¸å–®å°é½Š" #: ../../WPrefs.app/MenuPreferences.c:204 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "æ¯æ¬¡éƒ½åœ¨èž¢å¹•內開啟副é¸å–®ï¼Œè€Œä¸æ˜¯æ²å‹•。" #: ../../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/MenuPreferences.c:231 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "é¸å–®å¯ç”¨æ€§ç›¸é—œé¸é …。\n" "æ²å‹•速度ã€å‰¯é¸å–®å°é½Šç­‰ã€‚" #: ../../WPrefs.app/MouseSettings.c:141 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "滑鼠加速é™åº¦å€¼ç„¡æ•ˆã€‚必須是一正實數值。" #: ../../WPrefs.app/MouseSettings.c:161 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "滑鼠加速é™åº¦å€¼ç„¡æ•ˆã€‚必須是加速å‰ç§»å‹•çš„åƒç´ æ•¸ç›®ã€‚" #: ../../WPrefs.app/MouseSettings.c:262 ../../WPrefs.app/MouseSettings.c:274 #: ../../WPrefs.app/MouseSettings.c:286 ../../WPrefs.app/MouseSettings.c:298 #, c-format msgid "bad value %s for option %s" msgstr "é¸é … %s 的值 %s 錯誤" #: ../../WPrefs.app/MouseSettings.c:357 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "ModifierKey é¸é …çš„ä¿®æ­£éµ %s 無法辨èªã€‚使用 %s 為é è¨­å€¼" #: ../../WPrefs.app/MouseSettings.c:382 msgid "could not retrieve keyboard modifier mapping" msgstr "無法å–回éµç›¤ä¿®æ­£å°æ‡‰" #: ../../WPrefs.app/MouseSettings.c:477 msgid "Mouse Speed" msgstr "滑鼠速度" #: ../../WPrefs.app/MouseSettings.c:507 msgid "Acceler.:" msgstr "加速值:" #: ../../WPrefs.app/MouseSettings.c:520 msgid "Threshold:" msgstr "é™åº¦ï¼š" #: ../../WPrefs.app/MouseSettings.c:535 msgid "Double-Click Delay" msgstr "連按兩下延é²" #: ../../WPrefs.app/MouseSettings.c:579 msgid "Test" msgstr "測試" #: ../../WPrefs.app/MouseSettings.c:609 msgid "Workspace Mouse Actions" msgstr "å·¥ä½œå€æ»‘鼠動作" #: ../../WPrefs.app/MouseSettings.c:614 msgid "Disable mouse actions" msgstr "使滑鼠動作失效" #: ../../WPrefs.app/MouseSettings.c:620 msgid "Left Button" msgstr "左按鈕" #: ../../WPrefs.app/MouseSettings.c:630 msgid "Middle Button" msgstr "中間鈕" #: ../../WPrefs.app/MouseSettings.c:640 msgid "Right Button" msgstr "峿Œ‰éˆ•" #: ../../WPrefs.app/MouseSettings.c:650 msgid "Mouse Wheel" msgstr "滑鼠滾輪" #: ../../WPrefs.app/MouseSettings.c:672 msgid "Mouse Grab Modifier" msgstr "滑鼠抓å–修飾" #: ../../WPrefs.app/MouseSettings.c:674 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "用來連åŒä»¥æ»‘鼠拖曳視窗ã€åœ¨è¦–窗中點é¸ä½¿ç”¨çš„éµç›¤ä¿®é£¾ã€‚" #: ../../WPrefs.app/MouseSettings.c:708 #, c-format msgid "could not create %s" msgstr "無法建立 %s" #: ../../WPrefs.app/MouseSettings.c:724 #, c-format msgid "could not create temporary file %s" msgstr "無法建立暫存檔 %s" #: ../../WPrefs.app/MouseSettings.c:756 #, c-format msgid "could not rename file %s to %s\n" msgstr "無法變更檔å %s 至 %s\n" #: ../../WPrefs.app/MouseSettings.c:829 msgid "Shift" msgstr "Shift" #: ../../WPrefs.app/MouseSettings.c:830 msgid "Lock" msgstr "Lock" #: ../../WPrefs.app/MouseSettings.c:831 msgid "Control" msgstr "Control" #: ../../WPrefs.app/MouseSettings.c:832 msgid "Mod1" msgstr "Mod1" #: ../../WPrefs.app/MouseSettings.c:833 msgid "Mod2" msgstr "Mod2" #: ../../WPrefs.app/MouseSettings.c:834 msgid "Mod3" msgstr "Mod3" #: ../../WPrefs.app/MouseSettings.c:835 msgid "Mod4" msgstr "Mod4" #: ../../WPrefs.app/MouseSettings.c:836 msgid "Mod5" msgstr "Mod5" #: ../../WPrefs.app/MouseSettings.c:839 msgid "Applications Menu" msgstr "應用程å¼é¸å–®" #: ../../WPrefs.app/MouseSettings.c:841 msgid "Select Windows" msgstr "é¸å–視窗" #: ../../WPrefs.app/MouseSettings.c:844 msgid "Switch Workspaces" msgstr "切æ›è‡³å·¥ä½œå€" #: ../../WPrefs.app/MouseSettings.c:849 msgid "Mouse Preferences" msgstr "滑鼠設定" #: ../../WPrefs.app/MouseSettings.c:851 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "滑鼠速度/加速ã€é€£æŒ‰å…©ä¸‹ä¹‹å»¶é²ã€æ»‘鼠按鈕çµåˆç­‰ã€‚" #: ../../WPrefs.app/Paths.c:85 msgid "bad value in option IconPath. Using default path list" msgstr "IconPath é¸é …的值錯誤。使用é è¨­è·¯å¾‘清單" #: ../../WPrefs.app/Paths.c:102 msgid "bad value in option PixmapPath. Using default path list" msgstr "PixmapPath é¸é …的值錯誤。使用é è¨­è·¯å¾‘清單" #: ../../WPrefs.app/Paths.c:150 msgid "Select directory" msgstr "é¸å–目錄" #: ../../WPrefs.app/Paths.c:266 msgid "Icon Search Paths" msgstr "圖示æœå°‹è·¯å¾‘" #: ../../WPrefs.app/Paths.c:277 ../../WPrefs.app/Paths.c:308 #: ../../WPrefs.app/TexturePanel.c:1312 msgid "Add" msgstr "新增" #: ../../WPrefs.app/Paths.c:284 ../../WPrefs.app/Paths.c:315 msgid "Remove" msgstr "刪除" #: ../../WPrefs.app/Paths.c:297 msgid "Pixmap Search Paths" msgstr "Pixmap æœå°‹è·¯å¾‘" #: ../../WPrefs.app/Paths.c:337 msgid "Search Path Configuration" msgstr "æœå°‹è·¯å¾‘設定" #: ../../WPrefs.app/Paths.c:339 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "" "當尋找 pixmap 或圖示時使用的æœå°‹è·¯å¾‘。" #: ../../WPrefs.app/Preferences.c:75 #, c-format msgid "OFF" msgstr "關閉" #: ../../WPrefs.app/Preferences.c:77 #, c-format msgid "1 pixel" msgstr "一個åƒç´ " #. 2-4 #: ../../WPrefs.app/Preferences.c:80 #, c-format msgid "%i pixels" msgstr "%i 個åƒç´ " #. >4 #: ../../WPrefs.app/Preferences.c:83 #, c-format msgid "%i pixels " msgstr "%i 個åƒç´  " #: ../../WPrefs.app/Preferences.c:229 msgid "Size Display" msgstr "視窗大å°é¡¯ç¤º" #: ../../WPrefs.app/Preferences.c:231 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "當視窗大å°è®Šæ›´æ™‚所顯示之視窗大å°é¡¯ç¤ºè£ç½®çš„ä½ç½®æˆ–風格。" #: ../../WPrefs.app/Preferences.c:238 ../../WPrefs.app/Preferences.c:259 msgid "Corner of screen" msgstr "螢幕角è½" #: ../../WPrefs.app/Preferences.c:239 ../../WPrefs.app/Preferences.c:260 msgid "Center of screen" msgstr "螢幕中央" #: ../../WPrefs.app/Preferences.c:240 ../../WPrefs.app/Preferences.c:261 msgid "Center of resized window" msgstr "視窗中央" #: ../../WPrefs.app/Preferences.c:241 msgid "Technical drawing-like" msgstr "科學繪圖方å¼" #: ../../WPrefs.app/Preferences.c:242 ../../WPrefs.app/Preferences.c:262 msgid "Disabled" msgstr "已失效" #: ../../WPrefs.app/Preferences.c:250 msgid "Position Display" msgstr "ä½ç½®é¡¯ç¤º" #: ../../WPrefs.app/Preferences.c:252 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "當視窗移動時所顯示之視窗ä½ç½®é¡¯ç¤ºè£ç½®çš„ä½ç½®æˆ–風格。" #: ../../WPrefs.app/Preferences.c:270 msgid "Show balloon text for..." msgstr "é¡¯ç¤ºæ°£çƒæ–‡å­—..." #: ../../WPrefs.app/Preferences.c:277 msgid "incomplete window titles" msgstr "ä¸å®Œæ•´è¦–窗標題" #: ../../WPrefs.app/Preferences.c:278 msgid "miniwindow titles" msgstr "å°è¦–窗標題" #: ../../WPrefs.app/Preferences.c:279 msgid "application/dock icons" msgstr "應用程å¼/åœé å€åœ–示" #: ../../WPrefs.app/Preferences.c:280 msgid "internal help" msgstr "內部說明" #: ../../WPrefs.app/Preferences.c:292 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "當使用éµç›¤åˆ‡æ›ç„¦é»žæ™‚å‡èµ·è¦–窗。" #: ../../WPrefs.app/Preferences.c:298 msgid "" "Enable keyboard language\n" "switch button in window titlebars." msgstr "在視窗標題列啟用語言切æ›éˆ•。" #: ../../WPrefs.app/Preferences.c:307 msgid "Workspace border" msgstr "工作å€é‚Šæ¡†" #: ../../WPrefs.app/Preferences.c:323 msgid "Left/Right" msgstr "å·¦/å³" #: ../../WPrefs.app/Preferences.c:328 msgid "Top/Bottom" msgstr "上/下" #: ../../WPrefs.app/Preferences.c:349 msgid "Miscellaneous Ergonomic Preferences" msgstr "å…¶ä»–æ“作性設定" #: ../../WPrefs.app/Preferences.c:350 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "å„ç¨®è¨­å®šåƒæ˜¯æ°£çƒæ–‡å­—ã€ä½ç½®é¡¯ç¤ºç­‰ã€‚" #: ../../WPrefs.app/TexturePanel.c:323 msgid "Saturation" msgstr "濃度" #: ../../WPrefs.app/TexturePanel.c:325 msgid "Brightness" msgstr "亮度" #: ../../WPrefs.app/TexturePanel.c:373 ../../WPrefs.app/TexturePanel.c:380 msgid "Hue" msgstr "色調" #: ../../WPrefs.app/TexturePanel.c:612 msgid "Could not load the selected file: " msgstr "無法載入é¸å–的檔案: " #: ../../WPrefs.app/TexturePanel.c:666 msgid "Open Image" msgstr "開啟影åƒ" #: ../../WPrefs.app/TexturePanel.c:696 msgid "The selected file does not contain a supported image." msgstr "é¸å–çš„æª”æ¡ˆæœªå«æœ‰æ”¯æ´çš„å½±åƒã€‚" #: ../../WPrefs.app/TexturePanel.c:947 #, c-format msgid "could not load file '%s': %s" msgstr "無法載入檔案 '%s': %s" #: ../../WPrefs.app/TexturePanel.c:1066 #, c-format msgid "error creating texture %s" msgstr "建立æè³ª %s 錯誤" #: ../../WPrefs.app/TexturePanel.c:1256 msgid "Texture Panel" msgstr "æè³ªé¢æ¿" #: ../../WPrefs.app/TexturePanel.c:1264 msgid "Texture Name" msgstr "æè³ªå稱" #: ../../WPrefs.app/TexturePanel.c:1276 msgid "Solid Color" msgstr "純色彩" #: ../../WPrefs.app/TexturePanel.c:1277 msgid "Gradient Texture" msgstr "漸層æè³ª" #: ../../WPrefs.app/TexturePanel.c:1278 msgid "Simple Gradient Texture" msgstr "ç°¡å–® 漸層æè³ª" #: ../../WPrefs.app/TexturePanel.c:1279 msgid "Textured Gradient" msgstr "æè³ªæ¼¸å±¤" #: ../../WPrefs.app/TexturePanel.c:1280 msgid "Image Texture" msgstr "å½±åƒæè³ª" #: ../../WPrefs.app/TexturePanel.c:1288 msgid "Default Color" msgstr "é è¨­è‰²å½©" #: ../../WPrefs.app/TexturePanel.c:1300 msgid "Gradient Colors" msgstr "漸層色彩" #: ../../WPrefs.app/TexturePanel.c:1396 msgid "Direction" msgstr "æ–¹å‘" #: ../../WPrefs.app/TexturePanel.c:1424 msgid "Gradient" msgstr "漸層" #: ../../WPrefs.app/TexturePanel.c:1442 msgid "Gradient Opacity" msgstr "漸層ä¸é€æ˜Žåº¦" #: ../../WPrefs.app/TexturePanel.c:1484 msgid "Image" msgstr "å½±åƒ" #: ../../WPrefs.app/TexturePanel.c:1516 msgid "Tile" msgstr "並排" #: ../../WPrefs.app/TexturePanel.c:1517 msgid "Scale" msgstr "縮放" #: ../../WPrefs.app/TexturePanel.c:1519 msgid "Maximize" 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:203 #: ../../WPrefs.app/Themes.c:223 msgid "Download" msgstr "下載" #: ../../WPrefs.app/Themes.c:171 msgid "Save Current Theme" msgstr "儲存目å‰ä¸»é¡Œ" #: ../../WPrefs.app/Themes.c:180 msgid "Load" msgstr "載入" #: ../../WPrefs.app/Themes.c:185 msgid "Install" msgstr "安è£" #: ../../WPrefs.app/Themes.c:193 msgid "Tile of The Day" msgstr "本日標題" #: ../../WPrefs.app/Themes.c:213 msgid "Bar of The Day" msgstr "本日標題列" #: ../../WPrefs.app/WPrefs.c:260 ../../WPrefs.app/WPrefs.c:331 msgid "Window Maker Preferences" msgstr "Window Maker 設定" #: ../../WPrefs.app/WPrefs.c:283 msgid "Revert Page" msgstr "還原" #: ../../WPrefs.app/WPrefs.c:289 msgid "Revert All" msgstr "全部還原" #: ../../WPrefs.app/WPrefs.c:295 msgid "Save" msgstr "儲存" #: ../../WPrefs.app/WPrefs.c:308 msgid "Balloon Help" msgstr "æ°£çƒèªªæ˜Ž" #: ../../WPrefs.app/WPrefs.c:338 #, c-format msgid "Version %s" msgstr "版本 %s" #: ../../WPrefs.app/WPrefs.c:345 msgid "Starting..." msgstr "啟動中..." #: ../../WPrefs.app/WPrefs.c:443 #, c-format msgid "could not locate image file %s\n" msgstr "ç„¡æ³•æ‰¾å‡ºå½±åƒæª” %s\n" #: ../../WPrefs.app/WPrefs.c:656 #, c-format msgid "could not load image file %s:%s" msgstr "ç„¡æ³•è¼‰å…¥å½±åƒæª” %s:%s" #: ../../WPrefs.app/WPrefs.c:674 msgid "Loading Window Maker configuration files..." msgstr "載入 Window Maker 設定檔..." #: ../../WPrefs.app/WPrefs.c:678 msgid "Initializing configuration panels..." msgstr "å•Ÿå§‹è¨­å®šé¢æ¿..." #: ../../WPrefs.app/WPrefs.c:739 ../../WPrefs.app/WPrefs.c:819 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Window Maker 定義域 (%s) å·²æå£žï¼" #: ../../WPrefs.app/WPrefs.c:743 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "無法從é è¨­è³‡æ–™åº«è¼‰å…¥ Window Maker 定義域 (%s)" #: ../../WPrefs.app/WPrefs.c:759 msgid "could not extract version information from Window Maker" msgstr "無法得知 Window Maker 的版本資訊" #: ../../WPrefs.app/WPrefs.c:760 msgid "Make sure wmaker is in your search path." msgstr "確定 wmaker 在你的æœå°‹è·¯å¾‘中。" #: ../../WPrefs.app/WPrefs.c:763 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:773 msgid "" "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." msgstr "" "無法從 Window Maker å–得版本。" "ç¢ºå®šå®ƒå®‰è£æ­£ç¢ºä¸”它的安è£è·¯å¾‘在PATH 環境變數中。" #: ../../WPrefs.app/WPrefs.c:780 #, 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:787 #, 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:800 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr "無法執行 \"%s --global_defaults_path\"。" #: ../../WPrefs.app/WPrefs.c:823 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "無法載入整體 Window Maker 定義域 (%s)。" #: ../../WPrefs.app/WPrefs.c:1072 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "%s é¸é …速度值錯誤。\n" "使用é è¨­å€¼" #: ../../WPrefs.app/WindowHandling.c:141 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "WindowPlacement é¸é … %s 資料錯誤。使用é è¨­å€¼" #: ../../WPrefs.app/WindowHandling.c:163 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "WindowPlaceOrigin é¸é …中資料無效。使用é è¨­ä¹‹ (0,0)" #: ../../WPrefs.app/WindowHandling.c:243 msgid "Window Placement" msgstr "視窗放置" #: ../../WPrefs.app/WindowHandling.c:244 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "當第一次放到螢幕上時如何放置視窗。" #: ../../WPrefs.app/WindowHandling.c:250 msgid "Automatic" msgstr "自動" #: ../../WPrefs.app/WindowHandling.c:251 msgid "Random" msgstr "隨æ„" #: ../../WPrefs.app/WindowHandling.c:252 msgid "Manual" msgstr "手動" #: ../../WPrefs.app/WindowHandling.c:253 msgid "Cascade" msgstr "é‡ç–Š" #: ../../WPrefs.app/WindowHandling.c:254 msgid "Smart" msgstr "精明" #: ../../WPrefs.app/WindowHandling.c:260 msgid "Placement Origin" msgstr "放置基準點" #: ../../WPrefs.app/WindowHandling.c:321 msgid "Opaque Move" msgstr "ä¸é€æ˜Žç§»å‹•" #: ../../WPrefs.app/WindowHandling.c:322 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "當到處拖曳視窗時\n" "視窗內容是å¦è©²è¢«ç§»å‹•\n" "æˆ–åªæœ‰æ¡†ç·šè¢«é¡¯ç¤ºã€‚\n" #: ../../WPrefs.app/WindowHandling.c:361 msgid "When maximizing..." msgstr "當最大化時..." #: ../../WPrefs.app/WindowHandling.c:366 msgid "...do not cover icons" msgstr "...ä¸è¦è¦†è“‹åœ–示å€" #: ../../WPrefs.app/WindowHandling.c:372 msgid "...do not cover dock" msgstr "...ä¸è¦è¦†è“‹åœé å€" #: ../../WPrefs.app/WindowHandling.c:381 msgid "Edge Resistance" msgstr "邊緣抵抗" #: ../../WPrefs.app/WindowHandling.c:383 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "ç•¶æœè‘—其他視窗或螢幕邊緣移動時,\n" "邊緣抵抗會使視窗「抵抗ã€\n" "被進一步移動超éŽå®šç¾©çš„é™åº¦ã€‚" #: ../../WPrefs.app/WindowHandling.c:402 msgid "Resist" msgstr "抵抗" #: ../../WPrefs.app/WindowHandling.c:407 msgid "Attract" msgstr "å¸å¼•" #: ../../WPrefs.app/WindowHandling.c:421 msgid "" "Open dialogs in the same workspace\n" "as their owners" msgstr "開啟å°è©±è¦–çª—åœ¨å…¶æ“æœ‰è€…之相åŒå·¥ä½œå€" #: ../../WPrefs.app/WindowHandling.c:448 msgid "Window Handling Preferences" msgstr "視窗æ“作設定" #: ../../WPrefs.app/WindowHandling.c:450 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "視窗處ç†é¸é …。起始放置風格\n" "邊緣抵抗ã€ä¸é€æ˜Žç§»å‹•等。" #: ../../WPrefs.app/Workspace.c:176 msgid "Workspace Navigation" msgstr "工作å€ä¹‹æ“作" #: ../../WPrefs.app/Workspace.c:183 msgid "Wrap to the first workspace from the last workspace." msgstr "從最後一個工作å€è·³è‡³ç¬¬ä¸€å€‹å·¥ä½œå€ã€‚" #: ../../WPrefs.app/Workspace.c:205 msgid "Switch workspaces while dragging windows." msgstr "當拖曳視窗時切æ›å·¥ä½œå€ã€‚" #: ../../WPrefs.app/Workspace.c:227 msgid "Automatically create new workspaces." msgstr "自動建立新工作å€ã€‚" #: ../../WPrefs.app/Workspace.c:250 msgid "" "Position of workspace\n" "name display" msgstr "" "工作å€å稱顯示的ä½ç½®" #: ../../WPrefs.app/Workspace.c:269 msgid "Disable" msgstr "åœç”¨" #: ../../WPrefs.app/Workspace.c:271 msgid "Top" msgstr "上" #: ../../WPrefs.app/Workspace.c:272 msgid "Bottom" msgstr "下" #: ../../WPrefs.app/Workspace.c:273 msgid "Top/Left" msgstr "上/å·¦" #: ../../WPrefs.app/Workspace.c:274 msgid "Top/Right" msgstr "上/å³" #: ../../WPrefs.app/Workspace.c:275 msgid "Bottom/Left" msgstr "下/å·¦" #: ../../WPrefs.app/Workspace.c:276 msgid "Bottom/Right" msgstr "下/å³" #: ../../WPrefs.app/Workspace.c:284 msgid "Dock/Clip" msgstr "åœé å€/è¿´ç´‹é‡" #: ../../WPrefs.app/Workspace.c:303 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "åœç”¨/啟用應用程å¼åœé å€\n" "(螢幕邊的垂直圖示列)。" #: ../../WPrefs.app/Workspace.c:324 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "åœç”¨/å•Ÿç”¨è¿´ç´‹é‡ (有迴紋é‡åœ–示的那個æ±è¥¿)。" #: ../../WPrefs.app/Workspace.c:364 msgid "Workspace Preferences" msgstr "工作å€è¨­å®š" #: ../../WPrefs.app/Workspace.c:366 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "工作å€å°Žèˆªç‰¹è‰²ã€‚\n" "你也å¯ä»¥åœ¨æ­¤å•Ÿç”¨/åœç”¨åœé å€èˆ‡è¿´ç´‹é‡ã€‚" #: ../../WPrefs.app/imagebrowser.c:95 msgid "View" msgstr "檢視" #: ../../WPrefs.app/main.c:59 #, c-format msgid "usage: %s [options]\n" msgstr "使用法: %s [é¸é …]\n" #: ../../WPrefs.app/main.c:60 msgid "options:" msgstr "é¸é …:" #: ../../WPrefs.app/main.c:61 msgid " -display <display>\tdisplay to be used" msgstr " -display <display>\tè¦ä½¿ç”¨çš„ display" #: ../../WPrefs.app/main.c:62 msgid " --version\t\tprint version number and exit" msgstr " --version\t\tå°å‡ºç‰ˆæœ¬ç·¨è™Ÿä¸¦é›¢é–‹" #: ../../WPrefs.app/main.c:63 msgid " --help\t\tprint this message and exit" msgstr " --help\t\t顯示本說明訊æ¯" #: ../../WPrefs.app/main.c:122 #, c-format msgid "too few arguments for %s" msgstr "%s çš„åƒæ•¸å¤ªå°‘" #: ../../WPrefs.app/main.c:145 msgid "X server does not support locale" msgstr "X 伺æœå™¨ä¸¦ä¸æ”¯æ´ç•¶åœ°åŒ– (locale)" #: ../../WPrefs.app/main.c:148 msgid "cannot set locale modifiers" msgstr "無法設定 locale modifiers" #: ../../WPrefs.app/main.c:154 #, c-format msgid "could not open display %s" msgstr "無法開啟 display %s" #: ../../WPrefs.app/main.c:162 msgid "could not initialize application" msgstr "無法啟始應用程å¼" msgid "Window Title" msgstr "視窗標題" msgid "Menu Text" msgstr "é¸å–®æ–‡å­—" msgid "Icon Title" msgstr "圖示標題" msgid "Clip Title" msgstr "è¿´ç´‹é‡æ¨™é¡Œ" msgid "Desktop Caption" msgstr "æ¡Œé¢æ¨™é¡Œ" #~ msgid "Disable cycling color highlighting of icons." #~ msgstr "使圖示的循環色彩強調失效" #~ msgid "" #~ "Set keyboard input focus to\n" #~ "the window under the mouse pointer,\n" #~ "including the root window." #~ msgstr "" #~ "設定éµç›¤è¼¸å…¥ç„¦é»žè‡³\n" #~ "滑鼠指標下é¢çš„視窗,\n" #~ "åŒ…å«æ ¹è¦–窗。" #~ msgid "Click window to focus" #~ msgstr "按視窗å–得焦點" #~ msgid "Focus follows mouse" #~ msgstr "焦點跟著滑鼠" #~ msgid "\"Sloppy\" focus" #~ msgstr "\"Sloppy\" 焦點" #~ msgid "Icon Display" #~ msgstr "圖示顯示" #~ msgid "New Command %i" #~ msgstr "新增命令 %i" #~ msgid "Workspaces" #~ msgstr "工作å€" #~ msgid "Add Command" #~ msgstr "新增命令" #~ msgid "Add Submenu" #~ msgstr "增加副é¸å–®" #~ msgid "Add External Menu" #~ msgstr "增加外部é¸å–®" #~ msgid "Remove Item" #~ msgstr "刪除項目" #~ msgid "Cut Item" #~ msgstr "剪下項目" #~ msgid "Copy Item" #~ msgstr "複製項目" #~ msgid "Paste Item" #~ msgstr "貼上項目" #~ msgid "Label" #~ msgstr "標籤" #~ msgid "Hide Others" #~ msgstr "éš±è—å…¶ä»–" #~ msgid "Legal Panel" #~ msgstr "æ³•å¾‹é¢æ¿" #~ msgid "Menu Path/Directory List" #~ msgstr "é¸å–®è·¯å¾‘/目錄清單" #~ msgid "Ask help to the Guru" #~ msgstr "å‘專家求助" #~ msgid "%s/Library/WindowMaker/plmenu" #~ msgstr "%s/Library/WindowMaker/plmenu" #~ msgid "" #~ "Could not copy default plmenu file from ~/GNUstep/Library/WindowMaker" #~ msgstr "在 ~/GNUstep/Library/WindowMaker 底下找ä¸åˆ°é è¨­çš„ plmenu 檔案" #~ 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 "" #~ "WPrefs ç„¡æ³•è¾¨èª ~/G/D/WMRootMenu çš„é¸å–®æ ¼å¼ï¼ŒåŽŸæœ‰çš„é¸å–®å¯èƒ½æ˜¯ WPrefs 䏿”¯" #~ "æ´çš„æ ¼å¼ï¼Œä¹Ÿå¯èƒ½æ˜¯é¸å–®å®šç¾©æœ‰èªžæ³•錯誤;你希望繼續使用目å‰çš„é¸å–®ä¸¦ä¸”在以後都" #~ "以手動編輯,還是讓 WPrefs 為你æ›ä¸Šä¸€å€‹æ–°çš„é è¨­é¸å–®? " #~ msgid "Install default menu" #~ msgstr "安è£é è¨­é¸å–®" #~ msgid "Any changes made in this section will not be saved" #~ msgstr "åœ¨é€™éƒ¨ä»½çš„ä»»ä½•æ”¹è®Šä¸æœƒè¢«å„²å­˜" #~ msgid "Menu Guru - Select Type" #~ msgstr "é¸å–®å°ˆå®¶ - é¸å–型態" #~ msgid "Next" #~ msgstr "下一步" #~ msgid "Menu Guru - Select Menu File" #~ msgstr "é¸å–®å°ˆå®¶ - é¸å–é¸å–®æª”" #~ msgid "Menu Guru - Select Pipe Command" #~ msgstr "é¸å–®å°ˆå®¶ - é¸å– Pipe 命令" #~ msgid "Menu Guru - Select Command" #~ msgstr "é¸å–®å°ˆå®¶ - é¸å–命令" #~ msgid "Back" #~ msgstr "上一步" #~ 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" #~ "ä½ è¦ç”¨ä»€éº¼ç•¶ä½œå‰¯ç›®éŒ„的內容?" #~ msgid "" #~ "A file containing the menu definition in the plain text (non-property " #~ "list) menu format." #~ msgstr "嫿œ‰ç´”文字(無特質清單)é¸å–®æ ¼å¼é¸å–®å®šç¾©çš„æª”案。" #~ msgid "" #~ "The menu definition generated by a script/program read through a pipe." #~ msgstr "由手稿/程å¼ç¶“éŽ pipe 讀入產生é¸å–®å®šç¾©" #~ msgid "The files in one or more directories." #~ msgstr "檔案在一個或多個目錄中" #~ msgid "Type the path for the menu file:" #~ msgstr "輸入é¸å–®æª”路徑:" #~ 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" #~ msgid "Type the command that will generate the menu definition:" #~ msgstr "輸入會產生é¸å–®å®šç¾©çš„命令:" #~ 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 "" #~ "æä¾›çš„命令必須產生且輸出有效的é¸å–®å®šç¾©è‡³æ¨™æº–輸出。這定義應該是純文字é¸å–®æª”" #~ "格﹛A在 WindowMaker 包å«çš„é¸å–®æª”中有æè¿°ï¼Œé€šå¸¸åœ¨ ~/GNUstep/Library/" #~ "WindowMaker/menu" #~ msgid "" #~ "Type the path for the directory. You can type more than one path by " #~ "separating them with spaces." #~ msgstr "輸入目錄的路徑。你å¯ä»¥åˆ©ç”¨ç©ºç™½åˆ†éš”輸入超éŽä¸€å€‹è·¯å¾‘。" #~ 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 å½±åƒï¼‰ã€‚" #~ msgid "" #~ "If the directory contain data files, type the command used to open these " #~ "files. Otherwise, leave it in blank." #~ msgstr "å¦‚æžœç›®éŒ„å«æœ‰è³‡æ–™æª”,輸入用來開啟這些檔案的命令。å¦å‰‡ï¼Œç•™ç©ºç™½ã€‚" #~ 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 "" #~ "目錄中的æ¯ä¸€å€‹æª”案會有一個項目且會以æä¾›çš„å‘½ä»¤é–‹å•Ÿã€‚èˆ‰ä¾‹ä¾†èªªï¼Œå¦‚æžœç›®éŒ„å«æœ‰" #~ "影鹿犮B命令是 \"xv -root\",目錄中的æ¯ä¸€å€‹æª”æ¡ˆæœƒæœ‰ä¸€å€‹åƒ \"xv -root " #~ "imagefile\" 的項目。" #~ msgid "mouse button %s not supported by WPrefs." #~ msgstr "滑鼠按鈕 %s 未被 WPrefs 支æ´" #~ msgid "Invalid font %s." #~ msgstr "無效的字型 %s。" #~ msgid "Set Font..." #~ msgstr "設定字型..." #~ msgid "Menu Title Font" #~ msgstr "é¸å–®æ¨™é¡Œå­—åž‹" #~ msgid "Menu Item Font" #~ msgstr "é¸å–®é …目字型" #~ msgid "Icon Title Font" #~ msgstr "圖示標題字型" #~ msgid "Clip Title Font" #~ msgstr "è¿´ç´‹é‡æ¨™é¡Œå­—åž‹" #~ msgid "Geometry Display Font" #~ msgstr "ä½ç½®è¡¨ç¤ºå­—åž‹" #~ msgid "" #~ "Sample Text\n" #~ "abcdefghijklmnopqrstuvxywz\n" #~ "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" #~ "0123456789" #~ msgstr "" #~ "範例文字\n" #~ "abcdefghijklmn...ㄅㄆㄇㄈㄉ\n" #~ "ABCDEFGHIJKLMN...視窗管ç†å“¡\n" #~ "123...一二三" #~ msgid "Text Preferences" #~ msgstr "文字設定" #~ msgid "Workspace/Clip" #~ msgstr "工作å€/迴紋真" #~ msgid "Icons" #~ msgstr "圖示" #~ msgid "Set..." #~ msgstr "設定..." #~ msgid "Unselected Items" #~ msgstr "未é¸å–é …ç›®" #~ msgid "Selected Items" #~ msgstr "é¸å–é …ç›®" #~ msgid "Text" #~ msgstr "文字" #~ msgid "Menu Title Background" #~ msgstr "é¸å–®æ¨™é¡ŒèƒŒæ™¯" #~ msgid "Workspace Background" #~ msgstr "工作å€èƒŒæ™¯" #~ msgid "Change" #~ msgstr "改變" #~ msgid "Clip Title Text" #~ msgstr "è¿´æ–‡é‡æ¨™é¡Œæ–‡å­—" #~ msgid "Normal" #~ msgstr "正常" #~ msgid "Collapsed" #~ msgstr "折疊" #~ msgid "Texture and Color Preferences" #~ msgstr "æè³ªèˆ‡è‰²å½©è¨­å®š" #~ msgid "Window Maker Preferences Utility" #~ msgstr "Window Maker 設定公用程å¼" #~ msgid "Version %s for Window Maker %s" #~ msgstr "Window Maker %s 用版本 %s" #~ msgid "" #~ "Programming/Design: Alfredo K. Kojima\n" #~ "Artwork: Marco van Hylckama Vlieg\n" #~ "More Programming: James Thompson" #~ msgstr "" #~ "程å¼/設計:Alfredo K. Kojima\n" #~ "美術:Marco van Hylckama Vlieg\n" #~ "程å¼ï¼šJames Thompson" #~ 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 æ¢æ¬¾ä¸‹ç„¡ä»»ä½•ä¿è¨¼åœ°ç™¼é€ã€‚" #~ "ç¦æ­¢å–®ç¨é‡æ–°ç™¼é€é€™ç¨‹å¼ä¸­çš„圖示" #~ msgid "" #~ "Could not extract version from Window Maker. Make sure it is correctly " #~ "installed." #~ msgstr "無法得知 Window Maker çš„ç‰ˆæœ¬ã€‚ç¢ºå®šå®ƒå®‰è£æ­£ç¢ºã€‚" #~ msgid "" #~ "switch to first workspace when switching past the last workspace and vice-" #~ "versa" #~ msgstr "當切æ›è¶…éŽæœ€å¾Œä¸€å€‹å·¥ä½œå€æ™‚切æ›è‡³ç¬¬ä¸€å€‹å·¥ä½œå€ï¼Œå之亦然。" #~ 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 "" #~ "ç›®å‰åœ¨ ~/G/D/WMRootMenu çš„é¸å–®æ ¼å¼æœªè¢« WPrefs 支æ´ã€‚æ–°é¸å–®æœƒè¢«å»ºç«‹ã€‚\n" #~ "你也å¯ä»¥ç”¨æŠŠ ~/G/D/WMRootMenu æ›æˆ ~/G/L/W/plmenu 來得到é è¨­é¸å–®ã€‚" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/ja.po��������������������������������������������������������������0000644�0001750�0001750�00000167461�12214432632�014335� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# modified by Yasuyuki Furukawa <yasu@on.cs.keio.ac.jp> # Jun Nishii <nishii@postman.riken.go.jp> # MANOME Tomonori <manome@itlb.te.noda.sut.ac.jp> # Takeo Hashimoto <hashimototakeo@mac.com> # collaborated with members in wmaker-jp ML and Project Vine # # Last Update: for WindowMaker 0.95.2 # msgid "" msgstr "" "Project-Id-Version: WPrefs.app \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-02-20 12:47+0900\n" "PO-Revision-Date: 2012-03-01 09:52+ZONE\n" "Last-Translator: Takeo Hashimoto <hashimototakeo@mac.com>\n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../WPrefs.app/Appearance.c:1052 msgid "Select File" msgstr "ファイルã®é¸æŠž" #: ../../WPrefs.app/Appearance.c:1408 msgid "Focused Window" msgstr "フォーカスウィンドウ" #: ../../WPrefs.app/Appearance.c:1413 msgid "Unfocused Window" msgstr "フォーカスã•れã¦ãªã„ウィンドウ" #: ../../WPrefs.app/Appearance.c:1418 msgid "Owner of Focused Window" msgstr "フォーカスウィンドウã®ã‚ªãƒ¼ãƒŠãƒ¼" #: ../../WPrefs.app/Appearance.c:1422 ../../WPrefs.app/Appearance.c:1720 #: ../../WPrefs.app/FontSimple.c:100 msgid "Menu Title" msgstr "メニュータイトル" #: ../../WPrefs.app/Appearance.c:1426 ../../WPrefs.app/Appearance.c:1428 msgid "Normal Item" msgstr "普通ã®é …ç›®" #: ../../WPrefs.app/Appearance.c:1433 msgid "Disabled Item" msgstr "無効ãªé …ç›®" #: ../../WPrefs.app/Appearance.c:1442 msgid "Highlighted" msgstr "ãƒã‚¤ãƒ©ã‚¤ãƒˆ" #: ../../WPrefs.app/Appearance.c:1620 msgid "Texture" msgstr "テクスãƒãƒ£" #: ../../WPrefs.app/Appearance.c:1627 msgid "Titlebar of Focused Window" msgstr "フォーカスウィンドウã®ã‚¿ã‚¤ãƒˆãƒ«ãƒãƒ¼" #: ../../WPrefs.app/Appearance.c:1628 msgid "Titlebar of Unfocused Windows" msgstr "フォーカスã®ãªã„ウィンドウã®ã‚¿ã‚¤ãƒˆãƒ«ãƒãƒ¼" #: ../../WPrefs.app/Appearance.c:1629 msgid "Titlebar of Focused Window's Owner" msgstr "フォーカスウィンドウã®ã‚ªãƒ¼ãƒŠãƒ¼ã®ã‚¿ã‚¤ãƒˆãƒ«ãƒãƒ¼" #: ../../WPrefs.app/Appearance.c:1630 msgid "Window Resizebar" msgstr "リサイズãƒãƒ¼" #: ../../WPrefs.app/Appearance.c:1631 msgid "Titlebar of Menus" msgstr "メニューã®ã‚¿ã‚¤ãƒˆãƒ«ãƒãƒ¼" #: ../../WPrefs.app/Appearance.c:1632 msgid "Menu Items" msgstr "メニュー項目" #: ../../WPrefs.app/Appearance.c:1633 msgid "Icon Background" msgstr "アイコンã®èƒŒæ™¯" #: ../../WPrefs.app/Appearance.c:1648 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "é¸æŠžã—ãŸé …ç›®ã«ä½¿ç”¨ã—ãŸã„テクスãƒãƒ£ã‚’\n" "ダブルクリックã—ã¦ãã ã•ã„" #: ../../WPrefs.app/Appearance.c:1660 msgid "New" msgstr "æ–°è¦" #: ../../WPrefs.app/Appearance.c:1664 msgid "Create a new texture." msgstr "æ–°è¦ãƒ†ã‚¯ã‚¹ãƒãƒ£ã®ä½œæˆ" #: ../../WPrefs.app/Appearance.c:1671 msgid "Extract..." msgstr "抽出..." #: ../../WPrefs.app/Appearance.c:1675 msgid "Extract texture(s) from a theme or a style file." msgstr "テーマやスタイルã‹ã‚‰ãƒ†ã‚¯ã‚¹ãƒãƒ£ã‚’抽出ã—ã¾ã™." #: ../../WPrefs.app/Appearance.c:1684 msgid "Edit" msgstr "編集" #: ../../WPrefs.app/Appearance.c:1687 msgid "Edit the highlighted texture." msgstr "ãƒã‚¤ãƒ©ã‚¤ãƒˆã•れã¦ã„るテクスãƒãƒ£ã‚’編集ã—ã¾ã™." #: ../../WPrefs.app/Appearance.c:1694 ../../WPrefs.app/TexturePanel.c:1197 msgid "Delete" msgstr "削除" #: ../../WPrefs.app/Appearance.c:1698 msgid "Delete the highlighted texture." msgstr "ãƒã‚¤ãƒ©ã‚¤ãƒˆã•れã¦ã„るテクスãƒãƒ£ã‚’削除ã—ã¾ã™." #: ../../WPrefs.app/Appearance.c:1710 msgid "Color" msgstr "色..." #: ../../WPrefs.app/Appearance.c:1717 msgid "Focused Window Title" msgstr "フォーカスウィンドウã®ã‚¿ã‚¤ãƒˆãƒ«" #: ../../WPrefs.app/Appearance.c:1718 msgid "Unfocused Window Title" msgstr "フォーカスã•れã¦ã„ãªã„ウィンドウã®ã‚¿ã‚¤ãƒˆãƒ«" #: ../../WPrefs.app/Appearance.c:1719 msgid "Owner of Focused Window Title" msgstr "フォーカスウィンドウã®ã‚ªãƒ¼ãƒŠãƒ¼ã®ã‚¿ã‚¤ãƒˆãƒ«" #: ../../WPrefs.app/Appearance.c:1721 msgid "Menu Item Text" msgstr "ãƒ¡ãƒ‹ãƒ¥ãƒ¼é …ç›®ã®æ–‡å­—" #: ../../WPrefs.app/Appearance.c:1722 msgid "Disabled Menu Item Text" msgstr "無効ãªãƒ¡ãƒ‹ãƒ¥ãƒ¼é …ç›®ã®æ–‡å­—" #: ../../WPrefs.app/Appearance.c:1723 msgid "Menu Highlight Color" msgstr "ãƒã‚¤ãƒ©ã‚¤ãƒˆã•れãŸãƒ¡ãƒ‹ãƒ¥ãƒ¼é …ç›®" #: ../../WPrefs.app/Appearance.c:1724 msgid "Highlighted Menu Text Color" msgstr "ãƒã‚¤ãƒ©ã‚¤ãƒˆã•れãŸãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®æ–‡å­—" #: ../../WPrefs.app/Appearance.c:1761 msgid "Background" msgstr "背景" #: ../../WPrefs.app/Appearance.c:1773 ../../WPrefs.app/TexturePanel.c:1372 msgid "Browse..." msgstr "å‚ç…§..." #: ../../WPrefs.app/Appearance.c:1783 msgid "Options" msgstr "オプション" #: ../../WPrefs.app/Appearance.c:1790 msgid "Menu Style" msgstr "メニューã®ã‚¹ã‚¿ã‚¤ãƒ«" #: ../../WPrefs.app/Appearance.c:1818 ../../WPrefs.app/Configurations.c:216 #: ../../WPrefs.app/Configurations.c:228 ../../WPrefs.app/Focus.c:263 #: ../../WPrefs.app/Focus.c:274 ../../WPrefs.app/MenuPreferences.c:127 #: ../../WPrefs.app/MenuPreferences.c:138 #: ../../WPrefs.app/MenuPreferences.c:166 #: ../../WPrefs.app/MenuPreferences.c:181 ../../WPrefs.app/MouseSettings.c:514 #: ../../WPrefs.app/MouseSettings.c:525 ../../WPrefs.app/WPrefs.c:478 #: ../../WPrefs.app/WPrefs.c:503 #, c-format msgid "could not load icon file %s" msgstr "アイコン %s ãŒãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“" #: ../../WPrefs.app/Appearance.c:1831 msgid "Title Alignment" msgstr "タイトルã®é…ç½®" #: ../../WPrefs.app/Appearance.c:1838 msgid "Left" msgstr "å·¦" #: ../../WPrefs.app/Appearance.c:1841 ../../WPrefs.app/TexturePanel.c:1386 #: ../../WPrefs.app/Workspace.c:245 msgid "Center" msgstr "中央" #: ../../WPrefs.app/Appearance.c:1844 msgid "Right" msgstr "å³" #: ../../WPrefs.app/Appearance.c:2049 msgid "Appearance Preferences" msgstr "外観ã®è¨­å®š " #: ../../WPrefs.app/Appearance.c:2051 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "ウィンドウ・メニュー・アイコンã®\n" "背景やテクスãƒãƒ£ã‚’設定ã—ã¾ã™." #: ../../WPrefs.app/Appearance.c:2087 msgid "Extract Texture" msgstr "テクスãƒãƒ£ã®æŠ½å‡º" #: ../../WPrefs.app/Appearance.c:2107 msgid "Textures" msgstr "テクスãƒãƒ£" #: ../../WPrefs.app/Appearance.c:2116 ../../WPrefs.app/WPrefs.c:262 msgid "Close" msgstr "é–‰ã˜ã‚‹" #: ../../WPrefs.app/Appearance.c:2121 msgid "Extract" msgstr "抽出" #: ../../WPrefs.app/Configurations.c:131 ../../WPrefs.app/Configurations.c:137 #: ../../WPrefs.app/MouseSettings.c:448 ../../WPrefs.app/WindowHandling.c:351 #: ../../WPrefs.app/WindowHandling.c:363 ../../WPrefs.app/WindowHandling.c:382 #: ../../WPrefs.app/WindowHandling.c:394 ../../WPrefs.app/Workspace.c:82 #: ../../WPrefs.app/Workspace.c:93 #, c-format msgid "could not load icon %s" msgstr "アイコン %s ãŒãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“" #: ../../WPrefs.app/Configurations.c:145 ../../WPrefs.app/Workspace.c:101 #, c-format msgid "could not process icon %s: %s" msgstr "アイコン %s を処ç†ã§ãã¾ã›ã‚“: %s" #: ../../WPrefs.app/Configurations.c:167 ../../WPrefs.app/Workspace.c:150 #, c-format msgid "could not load image file %s" msgstr "ç”»åƒãƒ•ァイル %s ãŒãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“" #: ../../WPrefs.app/Configurations.c:178 msgid "Icon Slide Speed" msgstr "アイコン移動速度" #: ../../WPrefs.app/Configurations.c:184 msgid "Shade Animation Speed" msgstr "シェードアニメーション速度" #: ../../WPrefs.app/Configurations.c:243 msgid "Smooth Scaling" msgstr "滑らã‹ãªè¡¨ç¤º" #: ../../WPrefs.app/Configurations.c:244 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "背景を滑らã‹ã«ã—ã¦ãƒ”クセルを目立ãŸãªãã—ã¾ã™.\n" "ç”»åƒã®èª­ã¿è¾¼ã¿ãŒã„ã•ã•ã‹é…ããªã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“" #: ../../WPrefs.app/Configurations.c:284 msgid "Titlebar Style" msgstr "タイトルãƒãƒ¼" #: ../../WPrefs.app/Configurations.c:337 ../../WPrefs.app/Configurations.c:343 msgid "Animations" msgstr "アニメ" #: ../../WPrefs.app/Configurations.c:354 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®æœ€å°åŒ–やシェードã®ã¨ãã®ã‚¢ãƒ‹ãƒ¡è¡¨ç¤º\n" "を有効化/無効化ã—ã¾ã™." #: ../../WPrefs.app/Configurations.c:361 msgid "Superfluous" msgstr "特殊効果" #: ../../WPrefs.app/Configurations.c:372 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "`ãŠãŠã’ã•ãª'表示ã¨ã‚¢ãƒ‹ãƒ¡ã‚’有効化/無効化\n" "ã—ã¾ã™. ドックアイコンã®ç§»å‹•時ã®å½±è¡¨ç¤ºã‚„\n" "ドック解除ã®ã¨ãã®çˆ†ç™ºãªã©ãŒã“れã§ã™." #: ../../WPrefs.app/Configurations.c:385 msgid "Dithering colormap for 8bpp" msgstr "8bpp ã«åˆã‚ã›ãŸæ¸›è‰²" #: ../../WPrefs.app/Configurations.c:387 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "8bpp ã—ã‹å¯¾å¿œã—ã¦ã„ãªã„ディスプレイã®ã¨ãã«\n" "Window Maker ã«äºˆç´„ã™ã‚‹è‰²ã®æ•°." #: ../../WPrefs.app/Configurations.c:394 msgid "Disable dithering in any visual/depth" msgstr "å…¨ã¦ã®è‰²æ·±åº¦ã§æ¸›è‰²ã‚’行ã‚ãªã„" #: ../../WPrefs.app/Configurations.c:415 msgid "" "More colors for\n" "applications" msgstr "" "アプリ\n" "優先" #: ../../WPrefs.app/Configurations.c:422 msgid "" "More colors for\n" "Window Maker" msgstr "" "Window Maker\n" "優先" #: ../../WPrefs.app/Configurations.c:472 msgid "Other Configurations" msgstr "ãã®ä»–ã®è¨­å®š " #: ../../WPrefs.app/Configurations.c:473 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "アニメã®é€Ÿåº¦, タイトルãƒãƒ¼ã®ã‚¹ã‚¿ã‚¤ãƒ«, 特殊効果,\n" "8bit ç”»é¢ã®ãŸã‚ã«äºˆç´„ã™ã‚‹è‰²æ•°ãªã©ã‚’設定ã—ã¾ã™." #: ../../WPrefs.app/Expert.c:87 msgid "" "Disable miniwindows (icons for minimized windows). For use with KDE/GNOME." msgstr "ミニウィンドウ(最å°åŒ–時ã®ã‚¢ã‚¤ã‚³ãƒ³è¡¨ç¤º)ã®ç„¡åŠ¹åŒ–. KDE/GNOME å‘ã‘." #: ../../WPrefs.app/Expert.c:88 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "WindowMaker以外ã®ãƒ‘ラメータを与ãˆãªã„ (xsetを使ã‚ãªã„)" #: ../../WPrefs.app/Expert.c:89 msgid "Automatically save session when exiting Window Maker." msgstr "Window Maker終了時ã«è‡ªå‹•çš„ã«ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’ä¿å­˜ã™ã‚‹" #: ../../WPrefs.app/Expert.c:90 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "å„ウィンドウ, アイコン, メニュー等ã®ç”»åƒã‚’メモリーã«ä¿æŒã™ã‚‹" #: ../../WPrefs.app/Expert.c:91 msgid "Disable confirmation panel for the Kill command." msgstr "強制終了時ã®ç¢ºèªãƒ‘ãƒãƒ«ã‚’表示ã—ãªã„" #: ../../WPrefs.app/Expert.c:92 msgid "Disable selection animation for selected icons." msgstr "é¸æŠžã•れãŸã‚¢ã‚¤ã‚³ãƒ³ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã«ã‚ˆã‚‹å¼·èª¿ã‚’ã—ãªã„" #: ../../WPrefs.app/Expert.c:93 msgid "Smooth font edges (needs restart)." msgstr "フォントã®ãµã¡ã‚’滑らã‹ã«ã™ã‚‹ (è¦ å†èµ·å‹•)" #: ../../WPrefs.app/Expert.c:94 msgid "Launch applications and restore windows with a single click." msgstr "アプリã®èµ·å‹•やウィンドウã®å¾©å…ƒã‚’シングルクリックã§è¡Œã†" #: ../../WPrefs.app/Expert.c:95 msgid "Cycle windows only on the active head." msgstr "ウィンドウ切替をç¾åœ¨ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒ¢ãƒ‹ã‚¿ã«é™å®šã™ã‚‹ (Xinerama用)" #: ../../WPrefs.app/Expert.c:96 msgid "Show workspace title on Clip." msgstr "ワークスペースã®ã‚¿ã‚¤ãƒˆãƒ«ã‚’クリップã«è¡¨ç¤ºã™ã‚‹" #: ../../WPrefs.app/Expert.c:97 msgid "Bounce AppIcon when the application wants attention." msgstr "注æ„å–šèµ·ã®ãŸã‚ã«ã‚¢ã‚¤ã‚³ãƒ³ãŒé£›ã³è·³ã­ã‚‹ã‚ˆã†ã«ã™ã‚‹" #: ../../WPrefs.app/Expert.c:98 msgid "Raise AppIcons when bouncing." msgstr "アイコンãŒé£›ã³è·³ã­ã‚‹æ™‚ã«å‰é¢è¡¨ç¤ºã«ã™ã‚‹" #: ../../WPrefs.app/Expert.c:99 msgid "Opaque Move,Resize with keyboard." msgstr "ウィンドウ内容を表示ã—ã¦ã®ç§»å‹•/サイズ変更をキーボードã§è¡Œã†" #: ../../WPrefs.app/Expert.c:141 msgid "Expert User Preferences" msgstr "エキスパート設定 " #: ../../WPrefs.app/Expert.c:143 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "何をやã£ã¦ã‚‹ã‹ã‚ã‹ã£ã¦ã‚‹äººã®ãŸã‚ã®ã‚ªãƒ—ション設定ã§ã™...\n" "雑多ãªã‚ªãƒ—ションもå«ã¿ã¾ã™." #: ../../WPrefs.app/Focus.c:74 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "フォーカスモードオプション %s ãŒä¸é©åˆ‡ã§ã™. デフォルト値 手動 を使ã„ã¾ã™" #: ../../WPrefs.app/Focus.c:86 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "カラーマップオプション %s ãŒä¸é©åˆ‡ã§ã™. デフォルト値 自動 を使ã„ã¾ã™" #: ../../WPrefs.app/Focus.c:192 msgid "Input Focus Mode" msgstr "インプット・フォーカスã®è¨­å®š" #: ../../WPrefs.app/Focus.c:200 msgid "Manual: Click on the window to set keyboard input focus." msgstr "手動:フォーカスã™ã‚‹ ウィンドウ上ã§ã‚¯ãƒªãƒƒã‚¯ã™ã‚‹" #: ../../WPrefs.app/Focus.c:206 msgid "Auto: Set keyboard input focus to the window under the mouse pointer." msgstr "自動:マウスãƒã‚¤ãƒ³ã‚¿ã§ 自動的ã«ãƒ•ォーカスをå–å¾—" #: ../../WPrefs.app/Focus.c:219 msgid "Install colormap in the window..." msgstr "カラーマップã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¸ã®è¨­å®šã¯..." #: ../../WPrefs.app/Focus.c:224 msgid "...that has the input focus." msgstr "...フォーカスãŒç§»å‹•ã—ãŸæ™‚ã«" #: ../../WPrefs.app/Focus.c:229 msgid "...that's under the mouse pointer." msgstr "...マウスãƒã‚¤ãƒ³ã‚¿ãŒã‚る時ã«" #: ../../WPrefs.app/Focus.c:238 msgid "Automatic Window Raise Delay" msgstr "自動的ã«å‰é¢ã¸å‡ºã™ã¾ã§ã«" #: ../../WPrefs.app/Focus.c:293 ../../WPrefs.app/MouseSettings.c:555 msgid "msec" msgstr "ms" #: ../../WPrefs.app/Focus.c:310 msgid "Do not let applications receive the click used to focus windows." msgstr "フォーカス移動ã®ãŸã‚ã®ãƒžã‚¦ã‚¹ã‚¯ãƒªãƒƒã‚¯ã‚’ ã‚¢ãƒ—ãƒªã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã«æ¸¡ã•ãªã„." #: ../../WPrefs.app/Focus.c:315 msgid "Automatically focus new windows." msgstr "æ–°ã—ã„ウィンドウ㫠フォーカスを自動的ã«å½“ã¦ã‚‹." #: ../../WPrefs.app/Focus.c:332 msgid "Window Focus Preferences" msgstr "ウィンドウフォーカスã®è¨­å®š " #: ../../WPrefs.app/Focus.c:333 msgid "Keyboard focus switching policy and related options." msgstr "" "ウィンドウフォーカスã®åˆ‡ã‚Šæ›¿ãˆãƒãƒªã‚·ãƒ¼, \n" "カラーマップã®è¨­å®šãƒãƒªã‚·ãƒ¼ãªã©ã‚’設定ã—ã¾ã™." #: ../../WPrefs.app/FontSimple.c:99 msgid "Window Title" msgstr "ウィンドウタイトル" #: ../../WPrefs.app/FontSimple.c:101 msgid "Menu Text" msgstr "メニュー項目" #: ../../WPrefs.app/FontSimple.c:102 msgid "Icon Title" msgstr "アイコンタイトル" #: ../../WPrefs.app/FontSimple.c:103 msgid "Clip Title" msgstr "クリップタイトル" #: ../../WPrefs.app/FontSimple.c:104 msgid "Desktop Caption" msgstr "デスクトップå" #: ../../WPrefs.app/FontSimple.c:638 msgid "Sample Text" msgstr "サンプル" #: ../../WPrefs.app/FontSimple.c:655 msgid "Family" msgstr "フォントå" #: ../../WPrefs.app/FontSimple.c:681 msgid "Style" msgstr "スタイル" #: ../../WPrefs.app/FontSimple.c:684 msgid "Size" msgstr "サイズ" #: ../../WPrefs.app/FontSimple.c:717 msgid "Font Configuration" msgstr "フォントã®è¨­å®š " #: ../../WPrefs.app/FontSimple.c:719 msgid "Configure fonts for Window Maker titlebars, menus etc." msgstr "タイトルãƒãƒ¼ã‚„メニューã«ä½¿ã†ãƒ•ォントを設定ã—ã¾ã™." #: ../../WPrefs.app/Icons.c:165 msgid "Icon Positioning" msgstr "アイコンã®è¡¨ç¤ºä½ç½®" #: ../../WPrefs.app/Icons.c:211 msgid "Iconification Animation" msgstr "アイコン化ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³" #: ../../WPrefs.app/Icons.c:222 msgid "Shrinking/Zooming" msgstr "縮å°/拡大" #: ../../WPrefs.app/Icons.c:223 msgid "Spinning/Twisting" msgstr "回転/ã²ã­ã‚Š" #: ../../WPrefs.app/Icons.c:224 msgid "3D-flipping" msgstr "3D回転" #: ../../WPrefs.app/Icons.c:225 ../../WPrefs.app/MouseSettings.c:784 #: ../../WPrefs.app/MouseSettings.c:789 msgid "None" msgstr "ãªã—" #: ../../WPrefs.app/Icons.c:238 msgid "Auto-arrange icons" msgstr "自動整列" #: ../../WPrefs.app/Icons.c:240 msgid "Keep icons and miniwindows arranged all the time." msgstr "ã‚¢ã‚¤ã‚³ãƒ³ã‚„ãƒŸãƒ‹ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’å¸¸ã«æ•´åˆ—ã•れãŸçŠ¶æ…‹ã«ã—ã¾ã™" #: ../../WPrefs.app/Icons.c:245 msgid "Omnipresent miniwindows" msgstr "å…¨ã¦ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã«è¡¨ç¤º" #: ../../WPrefs.app/Icons.c:247 msgid "Make miniwindows be present in all workspaces." msgstr "ミニウィンドウãŒå…¨ã¦ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã§è¡¨ç¤ºã•れるよã†ã«ã—ã¾ã™" #: ../../WPrefs.app/Icons.c:255 msgid "Icon Size" msgstr "アイコンã®å¤§ãã•" #: ../../WPrefs.app/Icons.c:257 msgid "The size of the dock/application icon and miniwindows" msgstr "ドック,アイコン,ミニウィンドウã®å¤§ãã•" #: ../../WPrefs.app/Icons.c:321 msgid "Icon Preferences" msgstr "アイコンã®è¨­å®š " #: ../../WPrefs.app/Icons.c:323 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "アイコン/ミニウィンドウã®è¨­å®š. アイコンã®é…置場所,\n" "アイコンã®å¤§ãã•, 最å°åŒ–ã®ã¨ãã®ã‚¢ãƒ‹ãƒ¡è¡¨ç¤ºãªã©ã‚’設定ã—ã¾ã™." #: ../../WPrefs.app/KeyboardSettings.c:68 msgid "Initial Key Repeat" msgstr "キーリピートã®åˆæœŸå€¤" #: ../../WPrefs.app/KeyboardSettings.c:109 msgid "Key Repeat Rate" msgstr "リピートã®é€Ÿåº¦" #: ../../WPrefs.app/KeyboardSettings.c:149 msgid "Type here to test" msgstr "ã“ã“ã§ãƒ†ã‚¹ãƒˆå‡ºæ¥ã¾ã™" #: ../../WPrefs.app/KeyboardSettings.c:165 msgid "Keyboard Preferences" msgstr "キーボードã®è¨­å®š" #: ../../WPrefs.app/KeyboardSettings.c:167 msgid "Not done" msgstr "ã¾ã " #: ../../WPrefs.app/KeyboardShortcuts.c:299 ../../WPrefs.app/Menu.c:273 #: ../../WPrefs.app/TexturePanel.c:1403 msgid "Cancel" msgstr "キャンセル" #: ../../WPrefs.app/KeyboardShortcuts.c:301 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "設定ã—ãŸã„ショートカットキーを押ã—ã¦ãã ã•ã„. (キャンセルボタンã§ä¸­æ­¢)" #: ../../WPrefs.app/KeyboardShortcuts.c:320 #: ../../WPrefs.app/KeyboardShortcuts.c:536 ../../WPrefs.app/Menu.c:283 #: ../../WPrefs.app/Menu.c:704 msgid "Capture" msgstr "å–り込ã¿" #: ../../WPrefs.app/KeyboardShortcuts.c:321 #: ../../WPrefs.app/KeyboardShortcuts.c:544 msgid "Click on Capture to interactively define the shortcut key." msgstr "" "ショートカットを対話的\n" "ã«å®šç¾©ã™ã‚‹ã«ã¯å–り込ã¿\n" "をクリックã—ã¦ä¸‹ã•ã„" #: ../../WPrefs.app/KeyboardShortcuts.c:440 msgid "Actions" msgstr "アクション" #: ../../WPrefs.app/KeyboardShortcuts.c:454 msgid "Open applications menu" msgstr "アプリケーション・メニューを開ã" #: ../../WPrefs.app/KeyboardShortcuts.c:455 msgid "Open window list menu" msgstr "ウィンドウ一覧メニューを開ã" #: ../../WPrefs.app/KeyboardShortcuts.c:456 msgid "Open window commands menu" msgstr "ウィンドウコマンド・メニューを開ã" #: ../../WPrefs.app/KeyboardShortcuts.c:457 msgid "Hide active application" msgstr "アクティブ・アプリケーションを隠ã™" #: ../../WPrefs.app/KeyboardShortcuts.c:458 msgid "Hide other applications" msgstr "ä»–ã®ã‚¢ãƒ—リケーションを隠ã™" #: ../../WPrefs.app/KeyboardShortcuts.c:459 msgid "Miniaturize active window" msgstr "アクティブ・ウィンドウを最å°åŒ–" #: ../../WPrefs.app/KeyboardShortcuts.c:460 msgid "Miniaturize all windows" msgstr "å…¨ã¦ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’最å°åŒ–" #: ../../WPrefs.app/KeyboardShortcuts.c:461 msgid "Close active window" msgstr "アクティブ・ウィンドウを閉ã˜ã‚‹" #: ../../WPrefs.app/KeyboardShortcuts.c:462 msgid "Maximize active window" msgstr "アクティブ・ウィンドウを最大化" #: ../../WPrefs.app/KeyboardShortcuts.c:463 msgid "Maximize active window vertically" msgstr "ウィンドウを縦方å‘ã«æœ€å¤§åŒ–" #: ../../WPrefs.app/KeyboardShortcuts.c:464 msgid "Maximize active window horizontally" msgstr "ウィンドウを横方å‘ã«æœ€å¤§åŒ–" #: ../../WPrefs.app/KeyboardShortcuts.c:465 msgid "Maximize active window left half" msgstr "アクティブ・ウィンドウを画é¢å·¦åŠåˆ†ã§æœ€å¤§åŒ–" #: ../../WPrefs.app/KeyboardShortcuts.c:466 msgid "Maximize active window right half" msgstr "アクティブ・ウィンドウを画é¢å³åŠåˆ†ã§æœ€å¤§åŒ–" #: ../../WPrefs.app/KeyboardShortcuts.c:467 msgid "Maximus: Tiled maximization " msgstr "空ãã‚¨ãƒªã‚¢å……å¡«å¼æœ€å¤§åŒ–" #: ../../WPrefs.app/KeyboardShortcuts.c:468 msgid "Raise active window" msgstr "アクティブ・ウィンドウをå‰é¢ã«" #: ../../WPrefs.app/KeyboardShortcuts.c:469 msgid "Lower active window" msgstr "アクティブ・ウィンドウを背é¢ã«" #: ../../WPrefs.app/KeyboardShortcuts.c:470 msgid "Raise/Lower window under mouse pointer" msgstr "マウスãƒã‚¤ãƒ³ã‚¿ä¸‹ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’å‰é¢/背é¢ã«" #: ../../WPrefs.app/KeyboardShortcuts.c:471 msgid "Shade active window" msgstr "アクティブ・ウィンドウを畳む" #: ../../WPrefs.app/KeyboardShortcuts.c:472 msgid "Move/Resize active window" msgstr "アクティブ・ウィンドウã®ç§»å‹•/拡大縮å°" #: ../../WPrefs.app/KeyboardShortcuts.c:473 msgid "Select active window" msgstr "アクティブ・ウィンドウã®é¸æŠž" #: ../../WPrefs.app/KeyboardShortcuts.c:474 msgid "Focus next window" msgstr "フォーカスを次ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¸" #: ../../WPrefs.app/KeyboardShortcuts.c:475 msgid "Focus previous window" msgstr "フォーカスをå‰ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¸" #: ../../WPrefs.app/KeyboardShortcuts.c:476 msgid "Focus next group window" msgstr "" #: ../../WPrefs.app/KeyboardShortcuts.c:477 msgid "Focus previous group window" msgstr "" #: ../../WPrefs.app/KeyboardShortcuts.c:478 msgid "Switch to next workspace" msgstr "次ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:479 msgid "Switch to previous workspace" msgstr "å‰ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:480 msgid "Switch to next ten workspaces" msgstr "10個先ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:481 msgid "Switch to previous ten workspaces" msgstr "10個å‰ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:482 msgid "Switch to workspace 1" msgstr "ワークスペース1ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:483 msgid "Switch to workspace 2" msgstr "ワークスペース2ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:484 msgid "Switch to workspace 3" msgstr "ワークスペース3ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:485 msgid "Switch to workspace 4" msgstr "ワークスペース4ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:486 msgid "Switch to workspace 5" msgstr "ワークスペース5ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:487 msgid "Switch to workspace 6" msgstr "ワークスペース6ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:488 msgid "Switch to workspace 7" msgstr "ワークスペース7ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:489 msgid "Switch to workspace 8" msgstr "ワークスペース8ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:490 msgid "Switch to workspace 9" msgstr "ワークスペース9ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:491 msgid "Switch to workspace 10" msgstr "ワークスペース10ã¸ç§»å‹•" #: ../../WPrefs.app/KeyboardShortcuts.c:492 msgid "Shortcut for window 1" msgstr "ウィンドウ1ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:493 msgid "Shortcut for window 2" msgstr "ウィンドウ2ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:494 msgid "Shortcut for window 3" msgstr "ウィンドウ3ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:495 msgid "Shortcut for window 4" msgstr "ウィンドウ4ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:496 msgid "Shortcut for window 5" msgstr "ウィンドウ5ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:497 msgid "Shortcut for window 6" msgstr "ウィンドウ6ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:498 msgid "Shortcut for window 7" msgstr "ウィンドウ7ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:499 msgid "Shortcut for window 8" msgstr "ウィンドウ8ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:500 msgid "Shortcut for window 9" msgstr "ウィンドウ9ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:501 msgid "Shortcut for window 10" msgstr "ウィンドウ10ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:502 msgid "Switch to Next Screen/Monitor" msgstr "次ã®ã‚¹ã‚¯ãƒªãƒ¼ãƒ³/モニタã¸" #: ../../WPrefs.app/KeyboardShortcuts.c:503 msgid "Raise/Lower Dock" msgstr "ドックをå‰é¢/背é¢ã«" #: ../../WPrefs.app/KeyboardShortcuts.c:504 msgid "Raise/Lower Clip" msgstr "クリップをå‰é¢/背é¢ã«" #: ../../WPrefs.app/KeyboardShortcuts.c:506 msgid "Toggle keyboard language" msgstr "キーボードã®è¨€èªžåˆ‡æ›¿ãˆ" #: ../../WPrefs.app/KeyboardShortcuts.c:520 msgid "Shortcut" msgstr "ショートカット" #: ../../WPrefs.app/KeyboardShortcuts.c:530 ../../WPrefs.app/Menu.c:710 msgid "Clear" msgstr "クリア" #: ../../WPrefs.app/KeyboardShortcuts.c:586 msgid "Keyboard Shortcut Preferences" msgstr "キーボードショートカットã®è¨­å®š " #: ../../WPrefs.app/KeyboardShortcuts.c:588 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "ワークスペースã®å¤‰æ›´ã‚„メニューæ“ä½œã®æ™‚ã«ä½¿ã†ã®\n" "キーボードショートカットã®å‰²ã‚Šå½“ã¦ã‚’設定ã—ã¾ã™." #: ../../WPrefs.app/Menu.c:249 msgid "Select Program" msgstr "ãƒ—ãƒ­ã‚°ãƒ©ãƒ é¸æŠž" #: ../../WPrefs.app/Menu.c:410 msgid "New Items" msgstr "æ–°è¦" #: ../../WPrefs.app/Menu.c:411 msgid "Sample Commands" msgstr "サンプルコマンド" #: ../../WPrefs.app/Menu.c:412 msgid "Sample Submenus" msgstr "サンプルサブメニュー" #: ../../WPrefs.app/Menu.c:424 msgid "Run Program" msgstr "プログラム実行" #: ../../WPrefs.app/Menu.c:425 msgid "Internal Command" msgstr "内部コマンド" #: ../../WPrefs.app/Menu.c:426 msgid "Submenu" msgstr "サブメニュー" #: ../../WPrefs.app/Menu.c:427 msgid "External Submenu" msgstr "外部サブメニュー" #: ../../WPrefs.app/Menu.c:428 msgid "Generated Submenu" msgstr "自動生æˆã®ã‚µãƒ–メニュー" #: ../../WPrefs.app/Menu.c:429 msgid "Directory Contents" msgstr "ディレクトリã®å†…容" #: ../../WPrefs.app/Menu.c:430 msgid "Workspace Menu" msgstr "ワークスペースメニュー" #: ../../WPrefs.app/Menu.c:431 ../../WPrefs.app/MouseSettings.c:786 msgid "Window List Menu" msgstr "ウィンドウ一覧メニュー" #: ../../WPrefs.app/Menu.c:450 msgid "XTerm" msgstr "" #: ../../WPrefs.app/Menu.c:453 msgid "rxvt" msgstr "" #: ../../WPrefs.app/Menu.c:456 msgid "ETerm" msgstr "" #: ../../WPrefs.app/Menu.c:459 msgid "Run..." msgstr "実行..." #: ../../WPrefs.app/Menu.c:460 #, c-format msgid "%A(Run,Type command to run)" msgstr "%A (実行ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’入力)" #: ../../WPrefs.app/Menu.c:462 msgid "Firefox" msgstr "" #: ../../WPrefs.app/Menu.c:465 msgid "gimp" msgstr "" #: ../../WPrefs.app/Menu.c:468 msgid "epic" msgstr "" #: ../../WPrefs.app/Menu.c:471 msgid "ee" msgstr "" #: ../../WPrefs.app/Menu.c:474 msgid "xv" msgstr "" #: ../../WPrefs.app/Menu.c:477 msgid "Evince" msgstr "" #: ../../WPrefs.app/Menu.c:480 msgid "ghostview" msgstr "" #: ../../WPrefs.app/Menu.c:483 ../../WPrefs.app/Menu.c:729 msgid "Exit Window Maker" msgstr "Window Maker を終了" #: ../../WPrefs.app/Menu.c:505 msgid "Debian Menu" msgstr "" #: ../../WPrefs.app/Menu.c:508 msgid "RedHat Menu" msgstr "" #: ../../WPrefs.app/Menu.c:511 msgid "Menu Conectiva" msgstr "" #: ../../WPrefs.app/Menu.c:514 ../../WPrefs.app/Themes.c:212 msgid "Themes" msgstr "テーマ" #: ../../WPrefs.app/Menu.c:520 msgid "Bg Images (scale)" msgstr "背景(拡大/縮å°)" #: ../../WPrefs.app/Menu.c:526 msgid "Bg Images (tile)" msgstr "背景(ã—ãã¤ã‚ã‚‹)" #: ../../WPrefs.app/Menu.c:532 msgid "Assorted XTerms" msgstr "" #: ../../WPrefs.app/Menu.c:534 msgid "XTerm Yellow on Blue" msgstr "" #: ../../WPrefs.app/Menu.c:537 msgid "XTerm White on Black" msgstr "" #: ../../WPrefs.app/Menu.c:540 msgid "XTerm Black on White" msgstr "" #: ../../WPrefs.app/Menu.c:543 msgid "XTerm Black on Beige" msgstr "" #: ../../WPrefs.app/Menu.c:546 msgid "XTerm White on Green" msgstr "" #: ../../WPrefs.app/Menu.c:549 msgid "XTerm White on Olive" msgstr "" #: ../../WPrefs.app/Menu.c:552 msgid "XTerm Blue on Blue" msgstr "" #: ../../WPrefs.app/Menu.c:555 msgid "XTerm BIG FONTS" msgstr "" #: ../../WPrefs.app/Menu.c:576 msgid "Program to Run" msgstr "実行ã™ã‚‹ãƒ—ログラム" #: ../../WPrefs.app/Menu.c:586 msgid "Browse" msgstr "å‚ç…§" #: ../../WPrefs.app/Menu.c:595 msgid "Run the program inside a Xterm" msgstr "" #: ../../WPrefs.app/Menu.c:604 msgid "Path for Menu" msgstr "メニューã®ãƒ‘ス" #: ../../WPrefs.app/Menu.c:615 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/X11R6/bin ~/xbin" msgstr "" "メニューをå«ã‚€ãƒ•ァイルã¸ã®ãƒ‘ス, ãªã„ã—㯠\n" "メニューã«è¡¨ç¤ºã—ã¦ã»ã—ã„プログラムã®ã‚ã‚‹ \n" "ディレクトリ. 例:\n" "~/GNUstep/Library/WindowMaker/menu\n" "ã¨ã‹, \n" "/usr/bin ~/xbin" #: ../../WPrefs.app/Menu.c:627 msgid "Command" msgstr "コマンド" #: ../../WPrefs.app/Menu.c:638 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "メニュー定義を出力ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’\n" "入力ã—ã¦ãã ã•ã„" #: ../../WPrefs.app/Menu.c:643 msgid "" "Cache menu contents after opening for\n" "the first time" msgstr "" "åˆå›žãƒ­ãƒ¼ãƒ‰æ™‚ã«ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®å†…容を\n" "キャッシュã™ã‚‹" #: ../../WPrefs.app/Menu.c:652 msgid "Command to Open Files" msgstr "ファイルを開ãコマンド" #: ../../WPrefs.app/Menu.c:663 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "ã“れらã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã‚るファイルを開ãã¨ãã«\n" "使用ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’入力ã—ã¦ãã ã•ã„" #: ../../WPrefs.app/Menu.c:671 msgid "Directories with Files" msgstr "ファイルã®ã‚るディレクトリ" #: ../../WPrefs.app/Menu.c:682 msgid "Strip extensions from file names" msgstr "æ‹¡å¼µå­ã‚’除去ã™ã‚‹" #: ../../WPrefs.app/Menu.c:693 msgid "Keyboard Shortcut" msgstr "キーボードショートカット" #: ../../WPrefs.app/Menu.c:725 msgid "Arrange Icons" msgstr "アイコンを整列" #: ../../WPrefs.app/Menu.c:726 msgid "Hide All Windows Except For The Focused One" msgstr "フォーカスウィンドウ以外を隠ã™" #: ../../WPrefs.app/Menu.c:727 msgid "Show All Windows" msgstr "å…¨ã¦ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’表示" #: ../../WPrefs.app/Menu.c:730 msgid "Exit X Session" msgstr "X セッションを終了" #: ../../WPrefs.app/Menu.c:731 msgid "Restart Window Maker" msgstr "Window Makerã‚’å†èµ·å‹•" #: ../../WPrefs.app/Menu.c:732 msgid "Start Another Window Manager : (" msgstr "ã¡ãŒã†ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãƒžãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹• (-_-#" #: ../../WPrefs.app/Menu.c:734 msgid "Save Current Session" msgstr "セッションをä¿å­˜" #: ../../WPrefs.app/Menu.c:735 msgid "Clear Saved Session" msgstr "セッションをクリア" #: ../../WPrefs.app/Menu.c:736 msgid "Refresh Screen" msgstr "ç”»é¢ã®å†æç”»" #: ../../WPrefs.app/Menu.c:737 msgid "Open Info Panel" msgstr "情報パãƒãƒ«" #: ../../WPrefs.app/Menu.c:738 msgid "Open Copyright Panel" msgstr "著作権表示" #: ../../WPrefs.app/Menu.c:743 msgid "Window Manager to Start" msgstr "èµ·å‹•ã™ã‚‹ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãƒžãƒãƒ¼ã‚¸ãƒ£" #: ../../WPrefs.app/Menu.c:756 msgid "Do not confirm action." msgstr "動作をã„ã¡ã„ã¡ç¢ºèªã—ãªã„" #: ../../WPrefs.app/Menu.c:763 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "編集方法:\n" "\n" " - å·¦ã‹ã‚‰é …目をメニューã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦æ–°ã—ã„項目を追加\n" " - メニューã‹ã‚‰é …目をドラッグã—ã¦å‰Šé™¤\n" " - メニューã®ä¸­ã§é …目をドラッグã—ã¦é †ç•ªã‚’入れæ›ãˆã‚‹\n" " - コントロールキー+ドラッグã§é …目を複製\n" " - é …ç›®ã§ãƒ€ãƒ–ルクリックã—ã¦ãƒ©ãƒ™ãƒ«ã‚’編集\n" " - 項目をクリックã—ã¦é–¢é€£æƒ…報を編集" #: ../../WPrefs.app/Menu.c:980 #, c-format msgid "unknown command '%s' in menu" msgstr "メニュー内ã®ã‚³ãƒžãƒ³ãƒ‰ '%s' ã¯çŸ¥ã‚Šã¾ã›ã‚“" #: ../../WPrefs.app/Menu.c:1004 msgid ": Execute Program" msgstr ": プログラムã®å®Ÿè¡Œ" #: ../../WPrefs.app/Menu.c:1008 msgid ": Perform Internal Command" msgstr ": 内部コマンドã®å‘¼ã³å‡ºã—" #: ../../WPrefs.app/Menu.c:1012 msgid ": Open a Submenu" msgstr ": サブメニューを開ã" #: ../../WPrefs.app/Menu.c:1016 msgid ": Program Generated Submenu" msgstr ": サブメニューを自動生æˆ" #: ../../WPrefs.app/Menu.c:1020 msgid ": Directory Contents Menu" msgstr ": メニューをå«ã‚€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª" #: ../../WPrefs.app/Menu.c:1024 msgid ": Open Workspaces Submenu" msgstr ": ワークスペースサブメニューを開ã" #: ../../WPrefs.app/Menu.c:1028 msgid ": Open Window List Submenu" msgstr ": ウィンドウ一覧サブメニューを開ã" #: ../../WPrefs.app/Menu.c:1223 msgid "Remove Submenu" msgstr "サブメニューã®å‰Šé™¤" #: ../../WPrefs.app/Menu.c:1224 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "" "ã“ã®é …目を削除ã™ã‚‹ã¨ã‚µãƒ–メニューã®ä¸­èº«ã‚‚\n" "ã¿ã‚“ãªç ´å£Šã—ã¾ã™. 本当ã«å®Ÿè¡Œã—ã¾ã™ã‹? " #: ../../WPrefs.app/Menu.c:1226 msgid "Yes" msgstr "ã¯ã„" #: ../../WPrefs.app/Menu.c:1226 msgid "No" msgstr "ã„ã„ãˆ" #: ../../WPrefs.app/Menu.c:1226 msgid "Yes, don't ask again." msgstr "ã¯ã„, 以後確èªã—ãªã„" #: ../../WPrefs.app/Menu.c:1352 #, c-format msgid "Invalid menu command \"%s\" with label \"%s\" cleared" msgstr "䏿­£ãªãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚³ãƒžãƒ³ãƒ‰ \"%s\" (\"%s\") ã¯æ¶ˆã•れã¾ã—ãŸ" #: ../../WPrefs.app/Menu.c:1355 ../../WPrefs.app/Menu.c:1422 #: ../../WPrefs.app/WPrefs.c:710 msgid "Warning" msgstr "警告" #: ../../WPrefs.app/Menu.c:1355 ../../WPrefs.app/Menu.c:1394 #: ../../WPrefs.app/MouseSettings.c:125 ../../WPrefs.app/MouseSettings.c:145 #: ../../WPrefs.app/TexturePanel.c:555 ../../WPrefs.app/TexturePanel.c:633 #: ../../WPrefs.app/TexturePanel.c:1397 ../../WPrefs.app/Themes.c:84 #: ../../WPrefs.app/WPrefs.c:659 ../../WPrefs.app/WPrefs.c:663 #: ../../WPrefs.app/WPrefs.c:683 ../../WPrefs.app/WPrefs.c:695 #: ../../WPrefs.app/WPrefs.c:701 ../../WPrefs.app/WPrefs.c:710 #: ../../WPrefs.app/WPrefs.c:741 ../../WPrefs.app/WPrefs.c:745 msgid "OK" msgstr "了解" #: ../../WPrefs.app/Menu.c:1390 #, c-format msgid "Could not open default menu from '%s'" msgstr "標準ã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’ '%s' ã‹ã‚‰é–‹ã‘ã¾ã›ã‚“ã§ã—ãŸ" #: ../../WPrefs.app/Menu.c:1394 ../../WPrefs.app/MouseSettings.c:123 #: ../../WPrefs.app/MouseSettings.c:142 ../../WPrefs.app/TexturePanel.c:555 #: ../../WPrefs.app/TexturePanel.c:631 ../../WPrefs.app/Themes.c:83 #: ../../WPrefs.app/WPrefs.c:659 ../../WPrefs.app/WPrefs.c:663 #: ../../WPrefs.app/WPrefs.c:680 ../../WPrefs.app/WPrefs.c:691 #: ../../WPrefs.app/WPrefs.c:701 ../../WPrefs.app/WPrefs.c:741 #: ../../WPrefs.app/WPrefs.c:745 msgid "Error" msgstr "エラー" #: ../../WPrefs.app/Menu.c:1423 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "ç¾åœ¨ä½¿ã‚れã¦ã„ã‚‹ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒ•ã‚¡ã‚¤ãƒ«ã®æ›¸å¼ã¯ã“ã®ãƒ„ールã§ã¯\n" "サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“. ã“ã®ãƒ„ールを使ã†ãŸã‚ã«,\n" "ç¾åœ¨ã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’破棄ã—ã¦ã—ã¾ã£ã¦ã‚‚ã„ã„ã§ã™ã‹?" #: ../../WPrefs.app/Menu.c:1426 msgid "Yes, Discard and Update" msgstr "ã¯ã„, 破棄ã—ã¦æ›´æ–°" #: ../../WPrefs.app/Menu.c:1426 msgid "No, Keep Current Menu" msgstr "ã„ã„ãˆ, ç¾çŠ¶ã‚’ç¶­æŒ" #: ../../WPrefs.app/Menu.c:1661 msgid "Applications Menu Definition" msgstr "アプリケーション・メニューã®å®šç¾©" #: ../../WPrefs.app/Menu.c:1663 msgid "Edit the menu for launching applications." msgstr "アプリを起動ã™ã‚‹ãŸã‚ã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’設定ã—ã¾ã™." #: ../../WPrefs.app/MenuPreferences.c:105 msgid "Menu Scrolling Speed" msgstr "メニューã®ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«é€Ÿåº¦" #: ../../WPrefs.app/MenuPreferences.c:153 msgid "Submenu Alignment" msgstr "サブメニューã®ä¸¦ã³" #: ../../WPrefs.app/MenuPreferences.c:199 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "スクロールã—ãªã„ã§ã‚µãƒ–メニューを常ã«ç”»é¢å†…ã«è¡¨ç¤ºã™ã‚‹." #: ../../WPrefs.app/MenuPreferences.c:204 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "ç”»é¢ã‹ã‚‰ã¯ã¿å‡ºãŸãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’ãƒã‚¤ãƒ³ã‚¿ã®ç§»å‹•ã«åˆã‚ã›ã¦ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«ã™ã‚‹" #: ../../WPrefs.app/MenuPreferences.c:208 msgid "Use h/j/k/l keys to select menu options." msgstr "メニュー項目ã®é¸æŠžã« hjkl キーを使用ã™ã‚‹" #: ../../WPrefs.app/MenuPreferences.c:225 msgid "Menu Preferences" msgstr "メニューã®è¨­å®š " #: ../../WPrefs.app/MenuPreferences.c:227 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "メニューã®ä½¿ã„心地関連ã®ã‚ªãƒ—ション.\n" "スクロール速度, サブメニューã®é…置方法ãªã©ã‚’設定ã—ã¾ã™." #: ../../WPrefs.app/MouseSettings.c:124 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "マウス加速ã®ãƒ‘ラメーターãŒä¸æ­£ã§ã™. æ­£ã®æ•°å€¤ã§æŒ‡å®šã—ã¾ã™." #: ../../WPrefs.app/MouseSettings.c:144 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "" "マウス加速ã®ãƒ‘ラメーターãŒä¸æ­£ã§ã™. 加速を開始ã™ã‚‹ã¾ã§ã®ç§»å‹•é‡ã‚’" "ãƒ”ã‚¯ã‚»ãƒ«ã§æŒ‡å®šã—ã¾ã™." #: ../../WPrefs.app/MouseSettings.c:231 ../../WPrefs.app/MouseSettings.c:243 #: ../../WPrefs.app/MouseSettings.c:255 ../../WPrefs.app/MouseSettings.c:267 #, c-format msgid "bad value %s for option %s" msgstr "値 %s ã¯ã‚ªãƒ—ション %s ã®å€¤ã¨ã—ã¦ä¸æ­£ã§ã™" #: ../../WPrefs.app/MouseSettings.c:323 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "値 %s ã¯ModifierKeyã¨ã—ã¦è§£é‡ˆã§ãã¾ã›ã‚“. 値 %s をデフォルトã¨ã—ã¦ä½¿ã„ã¾ã™" #: ../../WPrefs.app/MouseSettings.c:344 msgid "could not retrieve keyboard modifier mapping" msgstr "keyboard modifierマッピングをå–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ" #: ../../WPrefs.app/MouseSettings.c:435 msgid "Mouse Speed" msgstr "マウスã®é€Ÿåº¦" #: ../../WPrefs.app/MouseSettings.c:465 msgid "Acceler.:" msgstr "加速度.:" #: ../../WPrefs.app/MouseSettings.c:476 msgid "Threshold:" msgstr "ã—ãã„値:" #: ../../WPrefs.app/MouseSettings.c:490 msgid "Double-Click Delay" msgstr "ダブルクリックã®é…å»¶" #: ../../WPrefs.app/MouseSettings.c:533 msgid "Test" msgstr "テスト" #: ../../WPrefs.app/MouseSettings.c:563 msgid "Workspace Mouse Actions" msgstr "ワークスペースã§ã®å‹•作" #: ../../WPrefs.app/MouseSettings.c:568 msgid "Disable mouse actions" msgstr "マウス動作ã®ä½¿ç”¨åœæ­¢" #: ../../WPrefs.app/MouseSettings.c:574 msgid "Left Button" msgstr "左ボタン" #: ../../WPrefs.app/MouseSettings.c:584 msgid "Middle Button" msgstr "中ボタン" #: ../../WPrefs.app/MouseSettings.c:594 msgid "Right Button" msgstr "å³ãƒœã‚¿ãƒ³" #: ../../WPrefs.app/MouseSettings.c:604 msgid "Mouse Wheel" msgstr "ホイール" #: ../../WPrefs.app/MouseSettings.c:626 msgid "Mouse Grab Modifier" msgstr "ウィンドウæ“作ã™ã‚‹ãŸã‚ã®ä¿®é£¾ã‚­ãƒ¼" #: ../../WPrefs.app/MouseSettings.c:628 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "ã“ã“ã§è¨­å®šã™ã‚‹ã‚­ãƒ¼ã‚’押ã—ãªãŒã‚‰ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®\n" "内å´ã‹ã‚‰ãƒ‰ãƒ©ãƒƒã‚°ã™ã‚‹ã“ã¨ã§ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦è‡ªèº«ã‚’\n" "ドラッグã™ã‚‹ã“ã¨ãŒã§ãã¾ã™." #: ../../WPrefs.app/MouseSettings.c:658 #, c-format msgid "could not create %s" msgstr "%s を作æˆã§ãã¾ã›ã‚“" #: ../../WPrefs.app/MouseSettings.c:673 #, c-format msgid "could not create temporary file %s" msgstr "一時ファイル %s を作æˆã§ãã¾ã›ã‚“" #: ../../WPrefs.app/MouseSettings.c:706 #, c-format msgid "could not rename file %s to %s" msgstr "ファイル %s ã‚’ %s ã«å¤‰æ›´å‡ºæ¥ã¾ã›ã‚“" #: ../../WPrefs.app/MouseSettings.c:775 msgid "Shift" msgstr "シフト" #: ../../WPrefs.app/MouseSettings.c:776 msgid "Lock" msgstr "ロック" #: ../../WPrefs.app/MouseSettings.c:777 msgid "Control" msgstr "コントロール" #: ../../WPrefs.app/MouseSettings.c:778 msgid "Mod1" msgstr "" #: ../../WPrefs.app/MouseSettings.c:779 msgid "Mod2" msgstr "" #: ../../WPrefs.app/MouseSettings.c:780 msgid "Mod3" msgstr "" #: ../../WPrefs.app/MouseSettings.c:781 msgid "Mod4" msgstr "" #: ../../WPrefs.app/MouseSettings.c:782 msgid "Mod5" msgstr "" #: ../../WPrefs.app/MouseSettings.c:785 msgid "Applications Menu" msgstr "アプリケーションメニュー" #: ../../WPrefs.app/MouseSettings.c:787 msgid "Select Windows" msgstr "ウィンドウã®é¸æŠž" #: ../../WPrefs.app/MouseSettings.c:790 msgid "Switch Workspaces" msgstr "ワークスペースã®åˆ‡ã‚Šæ›¿ãˆ" #: ../../WPrefs.app/MouseSettings.c:795 msgid "Mouse Preferences" msgstr "マウスã®è¨­å®š " #: ../../WPrefs.app/MouseSettings.c:797 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "マウスã®é€Ÿåº¦ã‚„加速度, ダブルクリックã®é…å»¶,\n" "ボタンé…ç½®ã®ç·¨é›†ãªã©ã‚’設定ã—ã¾ã™." #: ../../WPrefs.app/Paths.c:78 msgid "bad value in option IconPath. Using default path list" msgstr "アイコンã®ãƒ‘スãŒä¸æ­£ã§ã™. デフォルトã®ãƒ‘スを使用ã—ã¾ã™" #: ../../WPrefs.app/Paths.c:95 msgid "bad value in option PixmapPath. Using default path list" msgstr "Pixmapã®ãƒ‘スãŒä¸æ­£ã§ã™. デフォルトã®ãƒ‘スを使用ã—ã¾ã™" #: ../../WPrefs.app/Paths.c:140 msgid "Select directory" msgstr "ディレクトリã®é¸æŠž" #: ../../WPrefs.app/Paths.c:245 msgid "Icon Search Paths" msgstr "アイコン検索パス" #: ../../WPrefs.app/Paths.c:256 ../../WPrefs.app/Paths.c:287 #: ../../WPrefs.app/TexturePanel.c:1191 msgid "Add" msgstr "追加" #: ../../WPrefs.app/Paths.c:263 ../../WPrefs.app/Paths.c:294 msgid "Remove" msgstr "除去" #: ../../WPrefs.app/Paths.c:276 msgid "Pixmap Search Paths" msgstr "Pixmap検索パス" #: ../../WPrefs.app/Paths.c:312 msgid "Search Path Configuration" msgstr "検索パスã®è¨­å®š " #: ../../WPrefs.app/Paths.c:314 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "" "pixmap ファイルや アイコンファイルを探ã™ãŸã‚ã®\n" "探索パスを設定ã—ã¾ã™." #: ../../WPrefs.app/Preferences.c:69 #, c-format msgid "OFF" msgstr "OFF" #: ../../WPrefs.app/Preferences.c:71 #, c-format msgid "1 pixel" msgstr "1 ピクセル" #. 2-4 #: ../../WPrefs.app/Preferences.c:74 #, c-format msgid "%i pixels" msgstr "%i ピクセル" #. >4 #: ../../WPrefs.app/Preferences.c:77 #, c-format msgid "%i pixels " msgstr "%i ピクセル " #: ../../WPrefs.app/Preferences.c:216 msgid "Size Display" msgstr "ウィンドウã®ã‚µã‚¤ã‚ºè¡¨ç¤º" #: ../../WPrefs.app/Preferences.c:218 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "ウィンドウサイズãŒå¤‰æ›´ã•れるã¨ãã®ã‚µã‚¤ã‚º\n" "表示ã®å ´æ‰€ã‚„スタイル" #: ../../WPrefs.app/Preferences.c:224 ../../WPrefs.app/Preferences.c:244 msgid "Corner of screen" msgstr "ç”»é¢ã®ã‚³ãƒ¼ãƒŠãƒ¼" #: ../../WPrefs.app/Preferences.c:225 ../../WPrefs.app/Preferences.c:245 msgid "Center of screen" msgstr "ç”»é¢ã®ä¸­å¤®" #: ../../WPrefs.app/Preferences.c:226 ../../WPrefs.app/Preferences.c:246 msgid "Center of resized window" msgstr "ウィンドウã®ä¸­å¤®" #: ../../WPrefs.app/Preferences.c:227 msgid "Technical drawing-like" msgstr "図é¢ã£ã½ã" #: ../../WPrefs.app/Preferences.c:228 ../../WPrefs.app/Preferences.c:247 msgid "Disabled" msgstr "無効" #: ../../WPrefs.app/Preferences.c:236 msgid "Position Display" msgstr "ウィンドウã®ä½ç½®è¡¨ç¤º" #: ../../WPrefs.app/Preferences.c:238 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "ウィンドウãŒç§»å‹•ã—ãŸã¨ãã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®ä½ç½®\n" "表示ã®å ´æ‰€ã‚„スタイル" #: ../../WPrefs.app/Preferences.c:255 msgid "Show balloon text for..." msgstr "ãƒãƒ«ãƒ¼ãƒ³ãƒ˜ãƒ«ãƒ—ã®è¡¨ç¤ºã¯..." #: ../../WPrefs.app/Preferences.c:262 msgid "incomplete window titles" msgstr "é•·ã„ウィンドウã®ã‚¿ã‚¤ãƒˆãƒ«" #: ../../WPrefs.app/Preferences.c:263 msgid "miniwindow titles" msgstr "ミニウィンドウã®ã‚¿ã‚¤ãƒˆãƒ«" #: ../../WPrefs.app/Preferences.c:264 msgid "application/dock icons" msgstr "アイコン" #: ../../WPrefs.app/Preferences.c:265 msgid "internal help" msgstr "内部ヘルプ" #: ../../WPrefs.app/Preferences.c:277 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "" "キーボードã«ã‚ˆã‚Šãƒ•ォーカス\n" "ã•れãŸã¨ãウィンドウをå‰é¢ã«" #: ../../WPrefs.app/Preferences.c:283 msgid "" "Enable keyboard language\n" "switch button in window titlebars." msgstr "" "ウィンドウã®ã‚¿ã‚¤ãƒˆãƒ«ãƒãƒ¼ã§ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰\n" "ã«ã‚ˆã‚‹è¨€èªžåˆ‡ã‚Šæ›¿ãˆã‚’有効化" #: ../../WPrefs.app/Preferences.c:292 msgid "Workspace border" msgstr "ワークスペースã®å¢ƒç•Œç·š" #: ../../WPrefs.app/Preferences.c:308 msgid "Left/Right" msgstr "å·¦/å³" #: ../../WPrefs.app/Preferences.c:313 msgid "Top/Bottom" msgstr "上/下" #: ../../WPrefs.app/Preferences.c:330 msgid "Miscellaneous Ergonomic Preferences" msgstr "ãã®ä»–ã®æ“作性ã®è¨­å®š " #: ../../WPrefs.app/Preferences.c:331 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "ãƒãƒ«ãƒ¼ãƒ³ãƒ˜ãƒ«ãƒ—やウィンドウサイズ変更時ã®è¡¨ç¤ºæ–¹æ³•ãªã©\n" "ã•ã¾ã–ã¾ãªé …目を設定ã—ã¾ã™." #: ../../WPrefs.app/TexturePanel.c:293 msgid "Saturation" msgstr "彩度" #: ../../WPrefs.app/TexturePanel.c:295 msgid "Brightness" msgstr "è¼åº¦" #: ../../WPrefs.app/TexturePanel.c:340 ../../WPrefs.app/TexturePanel.c:346 msgid "Hue" msgstr "色相" #: ../../WPrefs.app/TexturePanel.c:552 msgid "Could not load the selected file: " msgstr "é¸æŠžã—ãŸãƒ•ァイルãŒé–‹ã‘ã¾ã›ã‚“: " #: ../../WPrefs.app/TexturePanel.c:602 msgid "Open Image" msgstr "ç”»åƒã‚’é–‹ã" #: ../../WPrefs.app/TexturePanel.c:632 msgid "The selected file does not contain a supported image." msgstr "é¸æŠžã—ãŸãƒ•ァイルã«ã¯è¡¨ç¤ºå¯èƒ½ãªç”»åƒãŒå«ã¾ã‚Œã¦ã„ã¾ã›ã‚“." #: ../../WPrefs.app/TexturePanel.c:862 #, c-format msgid "could not load file '%s': %s" msgstr "ファイルを読ã¿è¾¼ã‚ã¾ã›ã‚“ '%s': %s" #: ../../WPrefs.app/TexturePanel.c:976 #, c-format msgid "error creating texture %s" msgstr "テクスãƒãƒ£ã®ä½œæˆã«å¤±æ•— %s" #: ../../WPrefs.app/TexturePanel.c:1136 msgid "Texture Panel" msgstr "テクスãƒãƒ£ãƒ‘ãƒãƒ«" #: ../../WPrefs.app/TexturePanel.c:1143 msgid "Texture Name" msgstr "テクスãƒãƒ£ã®åå‰" #: ../../WPrefs.app/TexturePanel.c:1155 msgid "Solid Color" msgstr "ベタ塗り" #: ../../WPrefs.app/TexturePanel.c:1156 msgid "Gradient Texture" msgstr "グラデーション表示" #: ../../WPrefs.app/TexturePanel.c:1157 msgid "Simple Gradient Texture" msgstr "å˜ç´”ãªã‚°ãƒ©ãƒ‡ãƒ¼ã‚¸ãƒ§ãƒ³" #: ../../WPrefs.app/TexturePanel.c:1158 msgid "Textured Gradient" msgstr "テクスãƒãƒ£ã§ã‚°ãƒ©ãƒ‡ãƒ¼ã‚·ãƒ§ãƒ³" #: ../../WPrefs.app/TexturePanel.c:1159 msgid "Image Texture" msgstr "テクスãƒãƒ£ç”»åƒ" #: ../../WPrefs.app/TexturePanel.c:1167 msgid "Default Color" msgstr "デフォルトã®è‰²" #: ../../WPrefs.app/TexturePanel.c:1179 msgid "Gradient Colors" msgstr "グラデーションã®è‰²" #: ../../WPrefs.app/TexturePanel.c:1268 msgid "Direction" msgstr "æ–¹å‘" #: ../../WPrefs.app/TexturePanel.c:1296 msgid "Gradient" msgstr "変化度" #: ../../WPrefs.app/TexturePanel.c:1312 msgid "Gradient Opacity" msgstr "ä¸é€æ˜Žåº¦" #: ../../WPrefs.app/TexturePanel.c:1352 msgid "Image" msgstr "ç”»åƒ" #: ../../WPrefs.app/TexturePanel.c:1384 msgid "Tile" msgstr "ã—ãã¤ã‚ã‚‹" #: ../../WPrefs.app/TexturePanel.c:1385 msgid "Scale" msgstr "拡大/縮å°" #: ../../WPrefs.app/TexturePanel.c:1387 msgid "Maximize" msgstr "最大化" #: ../../WPrefs.app/Themes.c:63 ../../WPrefs.app/Themes.c:71 msgid "Set" msgstr "設定..." #: ../../WPrefs.app/Themes.c:114 msgid "Stop" msgstr "åœæ­¢" #: ../../WPrefs.app/Themes.c:125 ../../WPrefs.app/Themes.c:170 #: ../../WPrefs.app/Themes.c:190 msgid "Download" msgstr "ダウンロード" #: ../../WPrefs.app/Themes.c:139 msgid "Save Current Theme" msgstr "ç¾åœ¨ã®ãƒ†ãƒ¼ãƒžã‚’ä¿å­˜" #: ../../WPrefs.app/Themes.c:148 msgid "Load" msgstr "読ã¿è¾¼ã¿" #: ../../WPrefs.app/Themes.c:153 msgid "Install" msgstr "インストール" #: ../../WPrefs.app/Themes.c:160 msgid "Tile of The Day" msgstr "今日ã®ã‚¿ã‚¤ãƒ«" #: ../../WPrefs.app/Themes.c:180 msgid "Bar of The Day" msgstr "今日ã®ãƒãƒ¼" #: ../../WPrefs.app/WPrefs.c:221 ../../WPrefs.app/WPrefs.c:291 msgid "Window Maker Preferences" msgstr "" #: ../../WPrefs.app/WPrefs.c:244 msgid "Revert Page" msgstr "ページを復帰" #: ../../WPrefs.app/WPrefs.c:250 msgid "Revert All" msgstr "å…¨ã¦ã‚’復帰" #: ../../WPrefs.app/WPrefs.c:256 msgid "Save" msgstr "ä¿å­˜" #: ../../WPrefs.app/WPrefs.c:268 msgid "Balloon Help" msgstr "ãƒãƒ«ãƒ¼ãƒ³ãƒ˜ãƒ«ãƒ—" #: ../../WPrefs.app/WPrefs.c:298 #, c-format msgid "Version %s" msgstr "" #: ../../WPrefs.app/WPrefs.c:305 msgid "Starting..." msgstr "起動中..." #: ../../WPrefs.app/WPrefs.c:389 #, c-format msgid "could not locate image file %s" msgstr "イメージファイル %s ãŒè¦‹ä»˜ã‹ã‚Šã¾ã›ã‚“" #: ../../WPrefs.app/WPrefs.c:580 #, c-format msgid "could not load image file %s:%s" msgstr "ç”»åƒãƒ•ァイル %s:%s ã‚’é–‹ã‘ã¾ã›ã‚“" #: ../../WPrefs.app/WPrefs.c:597 msgid "Loading Window Maker configuration files..." msgstr "Window Maker ã®è¨­å®šãƒ•ァイルを読ã¿è¾¼ã¿ä¸­..." #: ../../WPrefs.app/WPrefs.c:601 msgid "Initializing configuration panels..." msgstr "設定パãƒãƒ«ã‚’åˆæœŸåŒ–中..." #: ../../WPrefs.app/WPrefs.c:658 ../../WPrefs.app/WPrefs.c:740 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Maker ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ (%s) ã«éšœå®³!" #: ../../WPrefs.app/WPrefs.c:662 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "Window Maker domain (%s) をデフォルトデータベースã‹ã‚‰èª­ã¿è¾¼ã‚ã¾ã›ã‚“." #: ../../WPrefs.app/WPrefs.c:677 msgid "could not extract version information from Window Maker" msgstr "Window Maker ã‹ã‚‰ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…報をå–å¾—ã§ãã¾ã›ã‚“" #: ../../WPrefs.app/WPrefs.c:678 msgid "Make sure wmaker is in your search path." msgstr "wmaker ãŒã‚µãƒ¼ãƒãƒ‘スã«å«ã¾ã‚Œã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ä¸‹ã•ã„" #: ../../WPrefs.app/WPrefs.c:682 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:692 msgid "" "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." msgstr "" "Window Maker ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…報を読ã¿å–れã¾ã›ã‚“. é©åˆ‡ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れ, " "ãã“ã« PATH を通ã—ã¦ã‚ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„." #: ../../WPrefs.app/WPrefs.c:699 #, 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:708 #, 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:721 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr "\"%s -global_defaults_path\" を実行ã§ãã¾ã›ã‚“." #: ../../WPrefs.app/WPrefs.c:744 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "Window Makerã®ã‚°ãƒ­ãƒ¼ãƒãƒ«ãƒ»ãƒ‰ãƒ¡ã‚¤ãƒ³(%s)を読ã¿è¾¼ã‚ã¾ã›ã‚“." #: ../../WPrefs.app/WPrefs.c:964 #, c-format msgid "bad speed value for option %s; using default Medium" msgstr "オプション %s ã®speed値ã¯ä¸æ­£ã§ã™. デフォルト値を使用ã—ã¾ã™." #: ../../WPrefs.app/WindowHandling.c:155 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "ウインドウé…置オプション %s ã¯ä¸æ­£ã§ã™. デフォルト値を使用ã—ã¾ã™." #: ../../WPrefs.app/WindowHandling.c:174 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "é…ç½®ã®åŸºæº–値ãŒä¸æ­£ã§ã™. デフォルトã®(0,0)を使用ã—ã¾ã™." #: ../../WPrefs.app/WindowHandling.c:257 msgid "Window Placement" msgstr "ウインドウã®é…ç½® " #: ../../WPrefs.app/WindowHandling.c:258 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "ウィンドウã®åˆæœŸè¡¨ç¤ºã‚’\n" "ã©ã†é…ç½®ã™ã‚‹ã‹" #: ../../WPrefs.app/WindowHandling.c:264 msgid "Automatic" msgstr "自動" #: ../../WPrefs.app/WindowHandling.c:265 msgid "Random" msgstr "ランダム" #: ../../WPrefs.app/WindowHandling.c:266 msgid "Manual" msgstr "手動" #: ../../WPrefs.app/WindowHandling.c:267 msgid "Cascade" msgstr "ãšã‚‰ã—ã¦é‡ã­ã‚‹" #: ../../WPrefs.app/WindowHandling.c:268 msgid "Smart" msgstr "スマート" #: ../../WPrefs.app/WindowHandling.c:274 msgid "Placement Origin" msgstr "é…ç½®ã®åŸºæº–点" #: ../../WPrefs.app/WindowHandling.c:334 msgid "Opaque Move/Resize" msgstr "表示ã—ãªãŒã‚‰ 移動/サイズ変更" #: ../../WPrefs.app/WindowHandling.c:335 msgid "" "Whether the window contents or only a frame should\n" "be displayed during a move or resize.\n" msgstr "" "ウィンドウを移動ã—ãŸã‚Šã‚µã‚¤ã‚ºå¤‰æ›´ã—ãŸã‚Šã™ã‚‹æ™‚ã«\n" "中身を表示ã—ãŸã¾ã¾ã«ã™ã‚‹ã‹ æž ç·šã ã‘ã«ã™ã‚‹ã‹ ã‚’\n" "指定ã—ã¾ã™\n" #: ../../WPrefs.app/WindowHandling.c:406 msgid "When maximizing..." msgstr "最大化ã®ã¨ãã«..." #: ../../WPrefs.app/WindowHandling.c:411 msgid "...do not cover icons" msgstr "...アイコンを覆ã‚ãªã„" #: ../../WPrefs.app/WindowHandling.c:417 msgid "...do not cover dock" msgstr "...ドックを覆ã‚ãªã„" #: ../../WPrefs.app/WindowHandling.c:442 msgid "Edge Resistance" msgstr "ãµã¡ã§ã®æŠµæŠ—" #: ../../WPrefs.app/WindowHandling.c:444 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "ä»–ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚„ç”»é¢ã®ãµã¡ã«å‘ã‹ã£ã¦ç§»å‹•ã™ã‚‹æ™‚ã«\n" "ã“ã“ã§æŒ‡å®šã—ãŸã—ãã„値ã¾ã§ '抵抗' ã—ã¦\n" "é‡ãªã£ãŸã‚Š ã¯ã¿ã ã—ãŸã‚Šã™ã‚‹ã®ã‚’防ãŽã¾ã™" #: ../../WPrefs.app/WindowHandling.c:463 msgid "Resist" msgstr "抵抗ã™ã‚‹" #: ../../WPrefs.app/WindowHandling.c:468 msgid "Attract" msgstr "ã²ã£ã¤ã" #: ../../WPrefs.app/WindowHandling.c:482 msgid "" "Open dialogs in the same workspace\n" "as their owners" msgstr "" "ダイアログã¯ã‚ªãƒ¼ãƒŠãƒ¼ã¨åŒã˜\n" "ワークスペースã«è¡¨ç¤ºã™ã‚‹" #: ../../WPrefs.app/WindowHandling.c:505 msgid "Window Handling Preferences" msgstr "ウィンドウæ“作ã®è¨­å®š " #: ../../WPrefs.app/WindowHandling.c:507 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "ウィンドウæ“作ã®ã‚ªãƒ—ション. åˆæœŸè¡¨ç¤ºã®ã‚¹ã‚¿ã‚¤ãƒ«ã‚„\n" "移動/リサイズ時ã®è¡¨ç¤ºã®ã—ã‹ãŸãªã©ã‚’設定ã—ã¾ã™." #: ../../WPrefs.app/Workspace.c:162 msgid "Workspace Navigation" msgstr "ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã®æ“作" #: ../../WPrefs.app/Workspace.c:167 msgid "Wrap to the first workspace from the last workspace." msgstr "最後ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‹ã‚‰ 最åˆã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã«" #: ../../WPrefs.app/Workspace.c:186 msgid "Switch workspaces while dragging windows." msgstr "ドラッグ中ã«ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã®åˆ‡ã‚Šæ›¿ãˆ" #: ../../WPrefs.app/Workspace.c:205 msgid "Automatically create new workspaces." msgstr "è‡ªå‹•çš„ã«æ–°ã—ã„ワークスペースを作æˆ" #: ../../WPrefs.app/Workspace.c:225 msgid "" "Position of workspace\n" "name display" msgstr "" "ワークスペースã®\n" "åå‰ã®è¡¨ç¤ºä½ç½®" #: ../../WPrefs.app/Workspace.c:244 msgid "Disable" msgstr "無効" #: ../../WPrefs.app/Workspace.c:246 msgid "Top" msgstr "上" #: ../../WPrefs.app/Workspace.c:247 msgid "Bottom" msgstr "下" #: ../../WPrefs.app/Workspace.c:248 msgid "Top/Left" msgstr "左上" #: ../../WPrefs.app/Workspace.c:249 msgid "Top/Right" msgstr "å³ä¸Š" #: ../../WPrefs.app/Workspace.c:250 msgid "Bottom/Left" msgstr "左下" #: ../../WPrefs.app/Workspace.c:251 msgid "Bottom/Right" msgstr "å³ä¸‹" #: ../../WPrefs.app/Workspace.c:259 msgid "Dock/Clip" msgstr "ドック/クリップ" #: ../../WPrefs.app/Workspace.c:278 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "ドック(ç”»é¢å³ç«¯ã®ã‚¢ã‚¤ã‚³ãƒ³ãƒãƒ¼)ã®\n" "有効化/無効化" #: ../../WPrefs.app/Workspace.c:298 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "クリップ(紙クリップã¿ãŸã„ãªã‚¢ã‚¤ã‚³ãƒ³ã®ã‚¢ãƒ¬)\n" "ã®æœ‰åŠ¹åŒ–/無効化" #: ../../WPrefs.app/Workspace.c:332 msgid "Workspace Preferences" msgstr "ワークスペースã®è¨­å®š " #: ../../WPrefs.app/Workspace.c:334 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã®æ“作方法を設定ã—ã¾ã™.\n" "ドック/ã‚¯ãƒªãƒƒãƒ—ã®æœ‰åŠ¹åŒ–/無効化も設定ã§ãã¾ã™." #: ../../WPrefs.app/main.c:52 #, c-format msgid "usage: %s [options]\n" msgstr "使用方法: %s [オプション]\n" #: ../../WPrefs.app/main.c:53 msgid "options:" msgstr "オプション:" #: ../../WPrefs.app/main.c:54 msgid " -display <display>\tdisplay to be used" msgstr " -display <display>\tãƒ‡ã‚£ã‚¹ãƒ—ãƒ¬ã‚¤ã®æŒ‡å®š" #: ../../WPrefs.app/main.c:55 msgid " --version\t\tprint version number and exit" msgstr " --version\t\tãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’表示ã—ã¦ã™ã終了ã™ã‚‹" #: ../../WPrefs.app/main.c:56 msgid " --help\t\tprint this message and exit" msgstr " --help\t\tã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’表示ã—ã¦ã™ã終了ã™ã‚‹" #: ../../WPrefs.app/main.c:123 #, c-format msgid "too few arguments for %s" msgstr "%sã«å¯¾ã™ã‚‹å¼•æ•°ãŒè¶³ã‚Šã¾ã›ã‚“" #: ../../WPrefs.app/main.c:145 msgid "X server does not support locale" msgstr "XサーãƒãŒãƒ­ã‚±ãƒ¼ãƒ«æ©Ÿèƒ½ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“" #: ../../WPrefs.app/main.c:148 msgid "cannot set locale modifiers" msgstr "ロケールを設定ã§ãã¾ã›ã‚“" #: ../../WPrefs.app/main.c:154 #, c-format msgid "could not open display %s" msgstr "ディスプレイ`%s'ã‚’é–‹ã‘ã¾ã›ã‚“" #: ../../WPrefs.app/main.c:162 msgid "could not initialize application" msgstr "アプリケーションã®åˆæœŸåŒ–ã«å¤±æ•—" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/ru.po��������������������������������������������������������������0000644�0001750�0001750�00000205460�12214432632�014361� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Igor P. Roboul <igorr@russia.crosswinds.net> # Andrew W. Nosenko <awn@bcs.zp.ua> # # Краткий Ñловарь: # options параметры # preferences ??? (не уÑтоÑлоÑÑŒ) # settings уÑтановки msgid "" msgstr "" "Project-Id-Version: WPrefs.app 0.45\n" "POT-Creation-Date: 2002-09-12 16:18+0300\n" "PO-Revision-Date: 2002-09-12 17:45+0300\n" "Last-Translator: awn@bcs.zp.ua\n" "Language-Team: Russian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../WPrefs.app/Appearance.c:1131 msgid "Select File" msgstr "Укажите файл" #: ../../WPrefs.app/Appearance.c:1533 msgid "Focused Window" msgstr "Ðктивное окно" #: ../../WPrefs.app/Appearance.c:1537 msgid "Unfocused Window" msgstr "Ðеактивное окно" #: ../../WPrefs.app/Appearance.c:1541 msgid "Owner of Focused Window" msgstr "Владелец активного окна" # awn: еÑли перевеÑти, то не помещаетÑÑ Ð² картинку #: ../../WPrefs.app/Appearance.c:1545 ../../WPrefs.app/Appearance.c:1862 msgid "Menu Title" msgstr "" #: ../../WPrefs.app/Appearance.c:1549 ../../WPrefs.app/Appearance.c:1551 msgid "Normal Item" msgstr "Ðормальный" #: ../../WPrefs.app/Appearance.c:1555 msgid "Disabled Item" msgstr "Запрещенный" #: ../../WPrefs.app/Appearance.c:1564 msgid "Highlighted" msgstr "ПодÑвеченный" #: ../../WPrefs.app/Appearance.c:1755 msgid "Texture" msgstr "ТекÑтура" #: ../../WPrefs.app/Appearance.c:1763 msgid "Titlebar of Focused Window" msgstr "Заголовок активного окна" #: ../../WPrefs.app/Appearance.c:1764 msgid "Titlebar of Unfocused Windows" msgstr "Заголовок неактивных окон" #: ../../WPrefs.app/Appearance.c:1765 msgid "Titlebar of Focused Window's Owner" msgstr "Заголовок владельца активного окна" #: ../../WPrefs.app/Appearance.c:1766 msgid "Window Resizebar" msgstr "Рамка Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° окна" #: ../../WPrefs.app/Appearance.c:1767 msgid "Titlebar of Menus" msgstr "Заголовок меню" #: ../../WPrefs.app/Appearance.c:1768 msgid "Menu Items" msgstr "Элементы меню" #: ../../WPrefs.app/Appearance.c:1769 msgid "Icon Background" msgstr "Фон иконки" #: ../../WPrefs.app/Appearance.c:1784 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "Щелкните дважды на текÑтуре, которую вы хотите\n" "иÑпользовать Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ Ñлемента." #: ../../WPrefs.app/Appearance.c:1798 msgid "New" msgstr "Ðовый" #: ../../WPrefs.app/Appearance.c:1802 msgid "Create a new texture." msgstr "Создать новую текÑтуру." #: ../../WPrefs.app/Appearance.c:1810 msgid "Extract..." msgstr "Извлечь..." #: ../../WPrefs.app/Appearance.c:1814 msgid "Extract texture(s) from a theme or a style file." msgstr "Извлечь текÑтуру (текÑтуры) из темы или файла ÑтилÑ." #: ../../WPrefs.app/Appearance.c:1824 msgid "Edit" msgstr "Редактировать" #: ../../WPrefs.app/Appearance.c:1827 msgid "Edit the highlighted texture." msgstr "Редактировать выбранную текÑтуру." #: ../../WPrefs.app/Appearance.c:1835 ../../WPrefs.app/TexturePanel.c:1316 msgid "Delete" msgstr "Стереть" #: ../../WPrefs.app/Appearance.c:1839 msgid "Delete the highlighted texture." msgstr "Удалить выбранную текÑтуру." #: ../../WPrefs.app/Appearance.c:1852 msgid "Color" msgstr "Цвет" #: ../../WPrefs.app/Appearance.c:1859 msgid "Focused Window Title" msgstr "Заголовок активного окна" #: ../../WPrefs.app/Appearance.c:1860 msgid "Unfocused Window Title" msgstr "Заголовок неактивного окна" #: ../../WPrefs.app/Appearance.c:1861 msgid "Owner of Focused Window Title" msgstr "Владелец активного окна" #: ../../WPrefs.app/Appearance.c:1863 msgid "Menu Item Text" msgstr "ТекÑÑ‚ Ñлемента меню" #: ../../WPrefs.app/Appearance.c:1864 msgid "Disabled Menu Item Text" msgstr "ТекÑÑ‚ запрещенного Ñлемента меню" #: ../../WPrefs.app/Appearance.c:1865 msgid "Menu Highlight Color" msgstr "Фон подÑвеченного Ñлемента меню" #: ../../WPrefs.app/Appearance.c:1866 msgid "Highlighted Menu Text Color" msgstr "ТекÑÑ‚ подÑвеченного Ñлемента меню" #: ../../WPrefs.app/Appearance.c:1905 msgid "Background" msgstr "Фон" #: ../../WPrefs.app/Appearance.c:1917 ../../WPrefs.app/TexturePanel.c:1503 msgid "Browse..." msgstr "Выбрать" #: ../../WPrefs.app/Appearance.c:1930 msgid "Options" msgstr "Параметры" #: ../../WPrefs.app/Appearance.c:1937 msgid "Menu Style" msgstr "Стиль меню" #: ../../WPrefs.app/Appearance.c:1965 ../../WPrefs.app/Configurations.c:242 #: ../../WPrefs.app/Configurations.c:254 ../../WPrefs.app/Focus.c:288 #: ../../WPrefs.app/Focus.c:299 ../../WPrefs.app/MenuPreferences.c:134 #: ../../WPrefs.app/MenuPreferences.c:145 #: ../../WPrefs.app/MenuPreferences.c:173 #: ../../WPrefs.app/MenuPreferences.c:188 ../../WPrefs.app/MouseSettings.c:560 #: ../../WPrefs.app/MouseSettings.c:571 ../../WPrefs.app/WPrefs.c:558 #: ../../WPrefs.app/WPrefs.c:583 #, c-format msgid "could not load icon file %s" msgstr "не могу загрузить иконку %s" # awn: правильно -- "Выравнивание заголовка", но меÑта нет. #: ../../WPrefs.app/Appearance.c:1979 msgid "Title Alignment" msgstr "Заголовок" #: ../../WPrefs.app/Appearance.c:1986 msgid "Left" msgstr "Влево" #: ../../WPrefs.app/Appearance.c:1989 ../../WPrefs.app/TexturePanel.c:1517 #: ../../WPrefs.app/Workspace.c:270 msgid "Center" msgstr "По центру" #: ../../WPrefs.app/Appearance.c:1992 msgid "Right" msgstr "Вправо" #: ../../WPrefs.app/Appearance.c:2216 msgid "Appearance Preferences" msgstr "Внешний вид" #: ../../WPrefs.app/Appearance.c:2218 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñ„Ð¾Ð½Ð¾Ð²Ñ‹Ñ… текÑтур Ð´Ð»Ñ Ð¾ÐºÐ¾Ð½,\n" "меню и иконок." #: ../../WPrefs.app/Appearance.c:2263 msgid "Extract Texture" msgstr "Извлечь текÑтуру" #: ../../WPrefs.app/Appearance.c:2283 msgid "Textures" msgstr "ТекÑтуры" #: ../../WPrefs.app/Appearance.c:2294 ../../WPrefs.app/WPrefs.c:302 msgid "Close" msgstr "Закрыть" #: ../../WPrefs.app/Appearance.c:2299 msgid "Extract" msgstr "Извлечь" #: ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 #: ../../WPrefs.app/MouseSettings.c:490 ../../WPrefs.app/WindowHandling.c:339 #: ../../WPrefs.app/WindowHandling.c:351 ../../WPrefs.app/Workspace.c:90 #: ../../WPrefs.app/Workspace.c:101 #, c-format msgid "could not load icon %s" msgstr "не могу загрузить иконку %s" #: ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:109 #, c-format msgid "could not process icon %s: %s" msgstr "не могу обработать иконку %s: %s" #: ../../WPrefs.app/Configurations.c:189 ../../WPrefs.app/Workspace.c:164 #, c-format msgid "could not load image file %s" msgstr "не могу загрузить файл Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ %s" #: ../../WPrefs.app/Configurations.c:203 msgid "Icon Slide Speed" msgstr "СкороÑть Ñдвига иконки" #: ../../WPrefs.app/Configurations.c:209 msgid "Shade Animation Speed" msgstr "СкороÑть ÑворачиваниÑ" # awn: как Ñто нормально перевеÑти, да так, чтобы помеÑтилоÑÑŒ? #: ../../WPrefs.app/Configurations.c:271 msgid "Smooth Scaling" msgstr "Гладкое маÑштабирование" #: ../../WPrefs.app/Configurations.c:272 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "Сглаживать (нажато) или нет (отпущено) маÑштабированные\n" "фоновые изображениÑ. С одной Ñтороны, Ñто делает\n" "изображение более \"гладкими\", ÑÐºÑ€Ñ‹Ð²Ð°Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ðµ,\n" "увеличившиеÑÑ Ð² размерах точки, но Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð¹ Ñтороны,\n" "увеличивает времÑ, необходимое Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ фонового\n" "изображениÑ." #: ../../WPrefs.app/Configurations.c:313 msgid "Titlebar Style" msgstr "Стиль заголовка" #: ../../WPrefs.app/Configurations.c:351 msgid "Animations and Sound" msgstr "ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ð¸ звук" #: ../../WPrefs.app/Configurations.c:357 msgid "Animations" msgstr "ÐнимациÑ" #: ../../WPrefs.app/Configurations.c:368 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "Запрещает/разрешает анимацию при Ñворачивании\n" "окон в иконку, линейку и Ñ‚.п." #: ../../WPrefs.app/Configurations.c:376 msgid "Superfluous" msgstr "ИзлишеÑтва" #: ../../WPrefs.app/Configurations.c:387 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "Запрещает/разрешает различные `излишеÑтва'.\n" "Ðапример, анимированный `взрыв' иконки при\n" "удалении ее из Дока." #: ../../WPrefs.app/Configurations.c:397 msgid "Sounds" msgstr "Звуки" #: ../../WPrefs.app/Configurations.c:408 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://shadowmere.student.utwente.nl/" msgstr "" "Запретить/разрешить звуковые Ñффекты Ð´Ð»Ñ Ð´ÐµÐ¹Ñтвий,\n" "наподобие Ñвертки или Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¾ÐºÐ½Ð°. Ð”Ð»Ñ Ñтого\n" "вам понадобитÑÑ Ð¼Ð¾Ð´ÑƒÐ»ÑŒ, поÑтавлÑемый отдельно.\n" "Ð’Ñ‹ можете загрузить его Ñ:\n" "http://shadowmere.student.utwente.nl/" #: ../../WPrefs.app/Configurations.c:419 msgid "" "Note: sound requires a module distributed\n" "separately" msgstr "" "Замечание: Ð´Ð»Ñ Ð·Ð²ÑƒÐºÐ° требуетÑÑ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ð¾\n" "поÑтавлÑемый модуль" #: ../../WPrefs.app/Configurations.c:429 msgid "Dithering colormap for 8bpp" msgstr "Приведение палитры Ð´Ð»Ñ 8bpp" #: ../../WPrefs.app/Configurations.c:431 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "КоличеÑтво цветов, которое будет зарезервировано\n" "за Window Maker'ом в режиме 8bpp (PseudoColor)." #: ../../WPrefs.app/Configurations.c:438 msgid "Disable dithering in any visual/depth" msgstr "Запретить приведение палитры вообще" #: ../../WPrefs.app/Configurations.c:459 msgid "" "More colors for\n" "applications" msgstr "" "Больше цветов\n" "длÑ\n" "приложений" #: ../../WPrefs.app/Configurations.c:466 msgid "" "More colors for\n" "Window Maker" msgstr "" "Больше цветов\n" "длÑ\n" "Window Maker'а" #: ../../WPrefs.app/Configurations.c:521 msgid "Other Configurations" msgstr "Другие наÑтройки" #: ../../WPrefs.app/Configurations.c:523 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "СкороÑть анимации, Ñтили заголовков, переключение различных\n" "параметров и количеÑтва цветов Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð°\n" "Window Maker'ом при работе Ñ 8bit'ным цветом (8bpp)." #: ../../WPrefs.app/Expert.c:75 msgid "" "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." msgstr "" "Запретить миниокна (иконки Ð´Ð»Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… окон). Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ " "KDE/GNOME." #: ../../WPrefs.app/Expert.c:76 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "" "Ðе уÑтанавливать параметры, не отноÑÑщиеÑÑ Ð½ÐµÐ¿Ð¾ÑредÑтвенно к\n" "Window Maker'у (не иÑпользовать xset)." #: ../../WPrefs.app/Expert.c:77 msgid "Automatically save session when exiting Window Maker." msgstr "ÐвтоматичеÑки ÑохранÑть ÑеÑÑию при выходе из Window Maker'а." #: ../../WPrefs.app/Expert.c:78 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "ИÑпользовать SaveUnder Ð´Ð»Ñ Ð¾ÐºÐ¾Ð½, иконок, меню и других объектов." #: ../../WPrefs.app/Expert.c:79 msgid "Use Windoze style cycling." msgstr "Переключение окон в Ñтиле Windows" #: ../../WPrefs.app/Expert.c:80 msgid "Disable confirmation panel for the Kill command." msgstr "Запретить диалог Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ `Убить'." # awn: FIXME: что Ñто вообще значит? #: ../../WPrefs.app/Expert.c:81 msgid "Disable selection animation for selected icons." msgstr "Запретить анимацию выбора Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… иконок." #: ../../WPrefs.app/Expert.c:115 msgid "Expert User Preferences" msgstr "УÑтановки Ð´Ð»Ñ Ð¾Ð¿Ñ‹Ñ‚Ð½Ð¾Ð³Ð¾ пользователÑ" #: ../../WPrefs.app/Expert.c:117 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "Параметры, предназначенные Ð´Ð»Ñ Ð»ÑŽÐ´ÐµÐ¹,\n" "которые знают, что делают...\n" "Также Ñодержит некоторые другие,\n" "редко иÑпользуемые параметры." #: ../../WPrefs.app/Focus.c:80 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "неверное значение %s Ð´Ð»Ñ FocusMode. ИÑпользуем Manual" #: ../../WPrefs.app/Focus.c:94 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "неверное значение %s Ð´Ð»Ñ ColormapMode. ИÑпользуем Auto" #: ../../WPrefs.app/Focus.c:214 msgid "Input Focus Mode" msgstr "Режим фокуÑа ввода" #: ../../WPrefs.app/Focus.c:222 msgid "Manual: Click on the window to set keyboard input focus" msgstr "Вручную: Щелкните на окне, Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ ему фокуÑа ввода" #: ../../WPrefs.app/Focus.c:229 msgid "Auto: Set keyboard input focus to the window under the mouse pointer" msgstr "" "ÐвтоматичеÑки: Ð¤Ð¾ÐºÑƒÑ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð½Ð¾Ð³Ð¾ ввода передаетÑÑ Ð¾ÐºÐ½Ñƒ, находÑщемуÑÑ Ð¿Ð¾Ð´ " "курÑором мыши." #: ../../WPrefs.app/Focus.c:243 msgid "Install colormap in the window..." msgstr "УÑтанавливать палитру окна..." #: ../../WPrefs.app/Focus.c:248 msgid "...that has the input focus." msgstr "...имеющего Ñ„Ð¾ÐºÑƒÑ Ð²Ð²Ð¾Ð´Ð°." #: ../../WPrefs.app/Focus.c:253 msgid "...that is under the mouse pointer." msgstr "...находÑщегоÑÑ Ð¿Ð¾Ð´ курÑором мыши." #: ../../WPrefs.app/Focus.c:262 msgid "Automatic Window Raise Delay" msgstr "Ð’Ñплывать через..." #: ../../WPrefs.app/Focus.c:319 ../../WPrefs.app/MouseSettings.c:601 msgid "msec" msgstr "МÑек" #: ../../WPrefs.app/Focus.c:336 msgid "" "Do not let applications receive\n" "the click used to focus windows." msgstr "" "Ðе передавать приложениÑм щелчок мыши,\n" "Ñделанный Ð´Ð»Ñ Ñ„Ð¾ÐºÑƒÑировки." #: ../../WPrefs.app/Focus.c:342 msgid "" "Automatically focus new\n" "windows." msgstr "" "ÐвтоматичеÑки передавать фокуÑ\n" "новым окнам." #: ../../WPrefs.app/Focus.c:363 msgid "Window Focus Preferences" msgstr "Параметры Ð´Ð»Ñ Ñ„Ð¾ÐºÑƒÑировки окна" #: ../../WPrefs.app/Focus.c:365 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "Политика Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ñ„Ð¾ÐºÑƒÑа клавиатуры,\n" "политика Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ñ†Ð²ÐµÑ‚Ð¾Ð²Ð¾Ð¹ палитры Ð´Ð»Ñ 8bpp\n" "и тому подобные параметры." #: ../../WPrefs.app/Font.c:276 msgid "Could not locate font information file WPrefs.app/font.data" msgstr "" #: ../../WPrefs.app/Font.c:282 msgid "Could not read font information file WPrefs.app/font.data" msgstr "" #: ../../WPrefs.app/Font.c:293 msgid "" "Invalid data in font information file WPrefs.app/font.data.\n" "Encodings data not found." msgstr "" #: ../../WPrefs.app/Font.c:298 msgid "- Custom -" msgstr "" #: ../../WPrefs.app/Font.c:329 ../../WPrefs.app/Menu.c:1594 #: ../../WPrefs.app/MouseSettings.c:140 ../../WPrefs.app/MouseSettings.c:160 #: ../../WPrefs.app/TexturePanel.c:613 ../../WPrefs.app/TexturePanel.c:693 #: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:758 #: ../../WPrefs.app/WPrefs.c:763 ../../WPrefs.app/WPrefs.c:780 #: ../../WPrefs.app/WPrefs.c:790 ../../WPrefs.app/WPrefs.c:800 #: ../../WPrefs.app/WPrefs.c:838 ../../WPrefs.app/WPrefs.c:843 msgid "Error" msgstr "Ошибка" #: ../../WPrefs.app/Font.c:329 ../../WPrefs.app/Menu.c:1594 #: ../../WPrefs.app/MouseSettings.c:142 ../../WPrefs.app/MouseSettings.c:162 #: ../../WPrefs.app/TexturePanel.c:614 ../../WPrefs.app/TexturePanel.c:695 #: ../../WPrefs.app/TexturePanel.c:1528 ../../WPrefs.app/Themes.c:98 #: ../../WPrefs.app/WPrefs.c:758 ../../WPrefs.app/WPrefs.c:763 #: ../../WPrefs.app/WPrefs.c:782 ../../WPrefs.app/WPrefs.c:794 #: ../../WPrefs.app/WPrefs.c:800 ../../WPrefs.app/WPrefs.c:807 #: ../../WPrefs.app/WPrefs.c:838 ../../WPrefs.app/WPrefs.c:843 #: ../../WPrefs.app/imagebrowser.c:105 msgid "OK" msgstr "OK" #: ../../WPrefs.app/Font.c:376 msgid "Default Font Sets" msgstr "" #: ../../WPrefs.app/Font.c:389 msgid "Font Set" msgstr "" #: ../../WPrefs.app/Font.c:418 msgid "Add..." msgstr "Добавить..." #: ../../WPrefs.app/Font.c:423 ../../WPrefs.app/Font.c:438 msgid "Change..." msgstr "Изменить..." #: ../../WPrefs.app/Font.c:428 ../../WPrefs.app/Paths.c:288 #: ../../WPrefs.app/Paths.c:319 msgid "Remove" msgstr "Удалить" #: ../../WPrefs.app/Font.c:477 msgid "Font Preferences" msgstr "УÑтановки Ð´Ð»Ñ ÑˆÑ€Ð¸Ñ„Ñ‚Ð¾Ð²" #: ../../WPrefs.app/Font.c:478 msgid "Font Configurations for Windows, Menus etc" msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¨Ñ€Ð¸Ñ„Ñ‚Ð¾Ð² Ð´Ð»Ñ ÐžÐºÐ¾Ð½, Меню и Ñ‚.п." #: ../../WPrefs.app/Icons.c:180 msgid "Icon Positioning" msgstr "РаÑположение иконок" #: ../../WPrefs.app/Icons.c:227 msgid "Iconification Animation" msgstr "Ðнимирование ÑворачиваниÑ" #: ../../WPrefs.app/Icons.c:238 msgid "Shrinking/Zooming" msgstr "Сжатие/РаÑпахивание" #: ../../WPrefs.app/Icons.c:239 msgid "Spinning/Twisting" msgstr "Вращение в плоÑкоÑти" #: ../../WPrefs.app/Icons.c:240 msgid "3D-flipping" msgstr "Трехмерное вращение" #: ../../WPrefs.app/Icons.c:241 ../../WPrefs.app/MouseSettings.c:838 #: ../../WPrefs.app/MouseSettings.c:843 msgid "None" msgstr "Без оного" #: ../../WPrefs.app/Icons.c:254 msgid "Auto-arrange icons" msgstr "ÐвтоматичеÑки выравнивать иконки" #: ../../WPrefs.app/Icons.c:256 msgid "Keep icons and miniwindows arranged all the time." msgstr "Поддерживать иконки и миниокна поÑтоÑнно выровненными." #: ../../WPrefs.app/Icons.c:262 msgid "Omnipresent miniwindows" msgstr "Миниокна приÑутÑтвуют везде" #: ../../WPrefs.app/Icons.c:264 msgid "Make miniwindows be present in all workspaces." msgstr "" "Сделать миниокна приÑутÑтвующими Ñразу на вÑех\n" "рабочих проÑтранÑтвах." #: ../../WPrefs.app/Icons.c:273 msgid "Icon Size" msgstr "Размер иконок" #: ../../WPrefs.app/Icons.c:275 msgid "The size of the dock/application icon and miniwindows" msgstr "Размер миниокон и иконок приложений/дока" #: ../../WPrefs.app/Icons.c:345 msgid "Icon Preferences" msgstr "УÑтановки Ð´Ð»Ñ Ð¸ÐºÐ¾Ð½Ð¾Ðº" #: ../../WPrefs.app/Icons.c:347 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "Параметры обработки иконок и миниокон. Размещение иконок,\n" "размер иконок, в каком Ñтиле анимировать Ñворачивание." #: ../../WPrefs.app/imagebrowser.c:95 msgid "View" msgstr "" #: ../../WPrefs.app/KeyboardShortcuts.c:306 ../../WPrefs.app/Menu.c:360 #: ../../WPrefs.app/TexturePanel.c:1534 ../../WPrefs.app/imagebrowser.c:100 msgid "Cancel" msgstr "Отмена" #: ../../WPrefs.app/KeyboardSettings.c:73 msgid "Initial Key Repeat" msgstr "" #: ../../WPrefs.app/KeyboardSettings.c:114 msgid "Key Repeat Rate" msgstr "СкороÑть Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€ÐµÐ½Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ¸" #: ../../WPrefs.app/KeyboardSettings.c:154 msgid "Type here to test" msgstr "Ð”Ð»Ñ Ñ‚ÐµÑта пишите Ñюда" #: ../../WPrefs.app/KeyboardSettings.c:173 msgid "Keyboard Preferences" msgstr "УÑтановки Ð´Ð»Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ñ‹" #: ../../WPrefs.app/KeyboardSettings.c:175 msgid "Not done" msgstr "Ðе закончено" #: ../../WPrefs.app/KeyboardShortcuts.c:307 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "Ðажмите клавишу(Ñ‹) или нажмите Отмена Ð´Ð»Ñ Ð¾Ñтановки." #: ../../WPrefs.app/KeyboardShortcuts.c:327 #: ../../WPrefs.app/KeyboardShortcuts.c:577 ../../WPrefs.app/Menu.c:371 #: ../../WPrefs.app/Menu.c:830 msgid "Capture" msgstr "Захват" #: ../../WPrefs.app/KeyboardShortcuts.c:328 #: ../../WPrefs.app/KeyboardShortcuts.c:585 msgid "Click Capture to interactively define the shortcut key." msgstr "Ðажмите \"Захват\" чтобы определить горÑчую клавишу(Ñ‹)." #: ../../WPrefs.app/KeyboardShortcuts.c:483 msgid "Actions" msgstr "ДейÑтвиÑ" #: ../../WPrefs.app/KeyboardShortcuts.c:499 msgid "Open applications menu" msgstr "Открыть меню приложений" #: ../../WPrefs.app/KeyboardShortcuts.c:500 msgid "Open window list menu" msgstr "СпиÑок окон" #: ../../WPrefs.app/KeyboardShortcuts.c:501 msgid "Open window commands menu" msgstr "Команды Ð´Ð»Ñ Ð¾ÐºÐ½Ð°" #: ../../WPrefs.app/KeyboardShortcuts.c:502 msgid "Hide active application" msgstr "Скрыть активное приложение" #: ../../WPrefs.app/KeyboardShortcuts.c:503 msgid "Hide other applications" msgstr "Скрыть другие приложениÑ" #: ../../WPrefs.app/KeyboardShortcuts.c:504 msgid "Miniaturize active window" msgstr "Свернуть активное окно" #: ../../WPrefs.app/KeyboardShortcuts.c:505 msgid "Close active window" msgstr "Закрыть активное окно" #: ../../WPrefs.app/KeyboardShortcuts.c:506 msgid "Maximize active window" msgstr "РаÑпахнуть активное окно" #: ../../WPrefs.app/KeyboardShortcuts.c:507 msgid "Maximize active window vertically" msgstr "РаÑпахнуть активное окно по вертикали" #: ../../WPrefs.app/KeyboardShortcuts.c:508 msgid "Maximize active window horizontally" msgstr "РаÑпахнуть активное окно по вертикали" #: ../../WPrefs.app/KeyboardShortcuts.c:509 msgid "Raise active window" msgstr "Ðктивное окно наверх" #: ../../WPrefs.app/KeyboardShortcuts.c:510 msgid "Lower active window" msgstr "Ðктивное окно вниз" #: ../../WPrefs.app/KeyboardShortcuts.c:511 msgid "Raise/Lower window under mouse pointer" msgstr "Вверх/Вниз активное окно" #: ../../WPrefs.app/KeyboardShortcuts.c:512 msgid "Shade active window" msgstr "Ð’Ñ‚Ñнуть активное окно" #: ../../WPrefs.app/KeyboardShortcuts.c:513 msgid "Move/Resize active window" msgstr "ПеремеÑтить/изменить размер" #: ../../WPrefs.app/KeyboardShortcuts.c:514 msgid "Select active window" msgstr "Пометить активное окно" #: ../../WPrefs.app/KeyboardShortcuts.c:515 msgid "Focus next window" msgstr "Следующее окно" #: ../../WPrefs.app/KeyboardShortcuts.c:516 msgid "Focus previous window" msgstr "Предыдущее окно" #: ../../WPrefs.app/KeyboardShortcuts.c:517 msgid "Switch to next workspace" msgstr "Следующее рабочее проÑтранÑтво" #: ../../WPrefs.app/KeyboardShortcuts.c:518 msgid "Switch to previous workspace" msgstr "Предыдущее рабочее проÑтранÑтво" #: ../../WPrefs.app/KeyboardShortcuts.c:519 msgid "Switch to next ten workspaces" msgstr "Следующие 10 рабочих проÑтранÑтв" #: ../../WPrefs.app/KeyboardShortcuts.c:520 msgid "Switch to previous ten workspaces" msgstr "Предыдущие 10 рабочих проÑтранÑтв" #: ../../WPrefs.app/KeyboardShortcuts.c:521 msgid "Switch to workspace 1" msgstr "Рабочее проÑтранÑтво 1" #: ../../WPrefs.app/KeyboardShortcuts.c:522 msgid "Switch to workspace 2" msgstr "Рабочее проÑтранÑтво 2" #: ../../WPrefs.app/KeyboardShortcuts.c:523 msgid "Switch to workspace 3" msgstr "Рабочее проÑтранÑтво 3" #: ../../WPrefs.app/KeyboardShortcuts.c:524 msgid "Switch to workspace 4" msgstr "Рабочее проÑтранÑтво 4" #: ../../WPrefs.app/KeyboardShortcuts.c:525 msgid "Switch to workspace 5" msgstr "Рабочее проÑтранÑтво 5" #: ../../WPrefs.app/KeyboardShortcuts.c:526 msgid "Switch to workspace 6" msgstr "Рабочее проÑтранÑтво 6" #: ../../WPrefs.app/KeyboardShortcuts.c:527 msgid "Switch to workspace 7" msgstr "Рабочее проÑтранÑтво 7" #: ../../WPrefs.app/KeyboardShortcuts.c:528 msgid "Switch to workspace 8" msgstr "Рабочее проÑтранÑтво 8" #: ../../WPrefs.app/KeyboardShortcuts.c:529 msgid "Switch to workspace 9" msgstr "Рабочее проÑтранÑтво 9" #: ../../WPrefs.app/KeyboardShortcuts.c:530 msgid "Switch to workspace 10" msgstr "Рабочее проÑтранÑтво 10" #: ../../WPrefs.app/KeyboardShortcuts.c:531 msgid "Shortcut for window 1" msgstr "ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° 1" #: ../../WPrefs.app/KeyboardShortcuts.c:532 msgid "Shortcut for window 2" msgstr "ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° 2" #: ../../WPrefs.app/KeyboardShortcuts.c:533 msgid "Shortcut for window 3" msgstr "ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° 3" #: ../../WPrefs.app/KeyboardShortcuts.c:534 msgid "Shortcut for window 4" msgstr "ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° 4" #: ../../WPrefs.app/KeyboardShortcuts.c:535 msgid "Shortcut for window 5" msgstr "ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° 5" #: ../../WPrefs.app/KeyboardShortcuts.c:536 msgid "Shortcut for window 6" msgstr "ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° 6" #: ../../WPrefs.app/KeyboardShortcuts.c:537 msgid "Shortcut for window 7" msgstr "ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° 7" #: ../../WPrefs.app/KeyboardShortcuts.c:538 msgid "Shortcut for window 8" msgstr "ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° 8" #: ../../WPrefs.app/KeyboardShortcuts.c:539 msgid "Shortcut for window 9" msgstr "ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° 9" #: ../../WPrefs.app/KeyboardShortcuts.c:540 msgid "Shortcut for window 10" msgstr "ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° 10" #: ../../WPrefs.app/KeyboardShortcuts.c:541 msgid "Switch to Next Screen/Monitor" msgstr "Следующий Ñкран/монитор" #: ../../WPrefs.app/KeyboardShortcuts.c:542 msgid "Raise Clip" msgstr "ПоднÑть Скрепку" #: ../../WPrefs.app/KeyboardShortcuts.c:543 msgid "Lower Clip" msgstr "ОпуÑтить Скрепку" #: ../../WPrefs.app/KeyboardShortcuts.c:544 msgid "Raise/Lower Clip" msgstr "ПоднÑть/ОпуÑтить Скрепку" #: ../../WPrefs.app/KeyboardShortcuts.c:546 msgid "Toggle keyboard language" msgstr "Переключить Ñзык клавиатуры" #: ../../WPrefs.app/KeyboardShortcuts.c:560 msgid "Shortcut" msgstr "ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°" #: ../../WPrefs.app/KeyboardShortcuts.c:571 ../../WPrefs.app/Menu.c:836 msgid "Clear" msgstr "ОчиÑтить" #: ../../WPrefs.app/KeyboardShortcuts.c:633 msgid "Keyboard Shortcut Preferences" msgstr "ГорÑчие клавиши" #: ../../WPrefs.app/KeyboardShortcuts.c:635 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "Изменить привÑзку клавиш Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¹ наподобие\n" "`переключить рабочее проÑтранÑтво' и `открыть меню'." #: ../../WPrefs.app/main.c:59 #, c-format msgid "usage: %s [options]\n" msgstr "ЗапуÑк: %s [параметры]\n" #: ../../WPrefs.app/main.c:60 msgid "options:" msgstr "Параметры:" #: ../../WPrefs.app/main.c:61 msgid " -display <display>\tdisplay to be used" msgstr " -display <диÑплей>\tX диÑплей Ð´Ð»Ñ Ð¸ÑпользованиÑ" #: ../../WPrefs.app/main.c:62 msgid " --version\t\tprint version number and exit" msgstr " --version\t\tпоказать номер верÑии и выйти" #: ../../WPrefs.app/main.c:63 msgid " --help\t\tprint this message and exit" msgstr " --help\t\tпоказать Ñто Ñообщение и выйти" #: ../../WPrefs.app/main.c:122 #, c-format msgid "too few arguments for %s" msgstr "Ñлишком мало аргументов Ð´Ð»Ñ %s" #: ../../WPrefs.app/main.c:144 msgid "X server does not support locale" msgstr "X Ñервер не поддерживает locale" #: ../../WPrefs.app/main.c:147 msgid "cannot set locale modifiers" msgstr "не получаетÑÑ ÑƒÑтановить модификаторы локализации" #: ../../WPrefs.app/main.c:153 #, c-format msgid "could not open display %s" msgstr "не могу открыть диÑплей %s" #: ../../WPrefs.app/main.c:161 msgid "could not initialize application" msgstr "не получаетÑÑ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ приложение" #: ../../WPrefs.app/Menu.c:278 msgid "Select Program" msgstr "Выберите программу" #: ../../WPrefs.app/Menu.c:510 msgid "New Items" msgstr "Ðовые Ñлементы" #: ../../WPrefs.app/Menu.c:511 msgid "Sample Commands" msgstr "Примеры команд" #: ../../WPrefs.app/Menu.c:512 msgid "Sample Submenus" msgstr "Примеры подменю" #: ../../WPrefs.app/Menu.c:526 msgid "Run Program" msgstr "ЗапуÑк программы" #: ../../WPrefs.app/Menu.c:527 msgid "Internal Command" msgstr "ВнутреннÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°" #: ../../WPrefs.app/Menu.c:528 msgid "Submenu" msgstr "Подменю" #: ../../WPrefs.app/Menu.c:529 msgid "External Submenu" msgstr "Внешнее подменю" #: ../../WPrefs.app/Menu.c:530 msgid "Generated Submenu" msgstr "Сгенерированное подменю" #: ../../WPrefs.app/Menu.c:531 msgid "Directory Contents" msgstr "Содержание каталога" #: ../../WPrefs.app/Menu.c:532 msgid "Workspace Menu" msgstr "Меню рабочих проÑтранÑтв" #: ../../WPrefs.app/Menu.c:533 ../../WPrefs.app/MouseSettings.c:840 msgid "Window List Menu" msgstr "Меню ÑпиÑка окон" #: ../../WPrefs.app/Menu.c:552 msgid "XTerm" msgstr "XTerm" #: ../../WPrefs.app/Menu.c:555 msgid "rxvt" msgstr "rxvt" #: ../../WPrefs.app/Menu.c:558 msgid "ETerm" msgstr "ETerm" #: ../../WPrefs.app/Menu.c:561 msgid "Run..." msgstr "" #: ../../WPrefs.app/Menu.c:562 msgid "%a(Run,Type command to run)" msgstr "" #: ../../WPrefs.app/Menu.c:564 msgid "Netscape" msgstr "Netscape" #: ../../WPrefs.app/Menu.c:567 msgid "gimp" msgstr "gimp" #: ../../WPrefs.app/Menu.c:570 msgid "epic" msgstr "epic" #: ../../WPrefs.app/Menu.c:573 msgid "ee" msgstr "ee" #: ../../WPrefs.app/Menu.c:576 msgid "xv" msgstr "xv" #: ../../WPrefs.app/Menu.c:579 msgid "Acrobat Reader" msgstr "Acrobat Reader" #: ../../WPrefs.app/Menu.c:582 msgid "ghostview" msgstr "ghostview" #: ../../WPrefs.app/Menu.c:585 ../../WPrefs.app/Menu.c:857 msgid "Exit Window Maker" msgstr "Выйти из Window Maker'а" #: ../../WPrefs.app/Menu.c:608 msgid "Debian Menu" msgstr "" #: ../../WPrefs.app/Menu.c:611 msgid "RedHat Menu" msgstr "" #: ../../WPrefs.app/Menu.c:614 msgid "Menu Conectiva" msgstr "" #: ../../WPrefs.app/Menu.c:617 ../../WPrefs.app/Themes.c:250 msgid "Themes" msgstr "Темы" #: ../../WPrefs.app/Menu.c:622 msgid "Bg Images (scale)" msgstr "" #: ../../WPrefs.app/Menu.c:627 msgid "Bg Images (tile)" msgstr "" #: ../../WPrefs.app/Menu.c:632 msgid "Assorted XTerms" msgstr "Различные XTerm'Ñ‹" #: ../../WPrefs.app/Menu.c:634 msgid "XTerm Yellow on Blue" msgstr "XTerm (желтое на Ñинем)" #: ../../WPrefs.app/Menu.c:637 msgid "XTerm White on Black" msgstr "XTerm (белое на черном)" #: ../../WPrefs.app/Menu.c:640 msgid "XTerm Black on White" msgstr "XTerm (черное на белом)" #: ../../WPrefs.app/Menu.c:643 msgid "XTerm Black on Beige" msgstr "XTerm (черное на Ñеро-зеленом)" #: ../../WPrefs.app/Menu.c:646 msgid "XTerm White on Green" msgstr "XTerm (белое на зеленом)" #: ../../WPrefs.app/Menu.c:649 msgid "XTerm White on Olive" msgstr "XTerm (белое на темно-оливковом)" #: ../../WPrefs.app/Menu.c:652 msgid "XTerm Blue on Blue" msgstr "XTerm (Ñеро-Ñинее на темно-Ñеро-Ñинем)" #: ../../WPrefs.app/Menu.c:655 msgid "XTerm BIG FONTS" msgstr "XTerm (шрифт 10x20)" #: ../../WPrefs.app/Menu.c:677 msgid "Program to Run" msgstr "Программа" #: ../../WPrefs.app/Menu.c:687 msgid "Browse" msgstr "Выбрать" #: ../../WPrefs.app/Menu.c:698 msgid "Run the program inside a Xterm" msgstr "ЗапуÑкать в XTerm'е" #: ../../WPrefs.app/Menu.c:708 msgid "Path for Menu" msgstr "Путь к меню" #: ../../WPrefs.app/Menu.c:721 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin" msgstr "" "Введите путь к файлу, Ñодержащему меню,\n" "или ÑпиÑок Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð°Ð¼Ð¸, которые вы хотите\n" "видеть перечиÑленными в меню, Ðапример:\n" " ~/GNUstep/Library/WindowMaker/menu\n" "или\n" " /usr/bin ~/xbin" #: ../../WPrefs.app/Menu.c:736 msgid "Command" msgstr "Команда" #: ../../WPrefs.app/Menu.c:750 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "Введите команду, котораÑ, будучи иÑполненной,\n" "выводит на stdout определение меню." #: ../../WPrefs.app/Menu.c:758 msgid "" "Cache menu contents after opening for\n" "the first time" msgstr "КÑшировать Ñодержимое меню" #: ../../WPrefs.app/Menu.c:769 msgid "Command to Open Files" msgstr "Команда Ð´Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²" #: ../../WPrefs.app/Menu.c:783 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "Введите команду, которую вы хотите иÑпользовать длÑ\n" "Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в каталогах, перечиÑленных ниже." #: ../../WPrefs.app/Menu.c:792 msgid "Directories with Files" msgstr "Каталоги Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸" #: ../../WPrefs.app/Menu.c:805 msgid "Strip extensions from file names" msgstr "Скрыть раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²" #: ../../WPrefs.app/Menu.c:817 msgid "Keyboard Shortcut" msgstr "ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°" #: ../../WPrefs.app/Menu.c:853 msgid "Arrange Icons" msgstr "ВыровнÑть иконки" #: ../../WPrefs.app/Menu.c:854 msgid "Hide All Windows Except For The Focused One" msgstr "Скрыть вÑе окна, кроме активного" #: ../../WPrefs.app/Menu.c:855 msgid "Show All Windows" msgstr "Показать вÑе окна" #: ../../WPrefs.app/Menu.c:858 msgid "Exit X Session" msgstr "Завершить X ÑеÑÑию" #: ../../WPrefs.app/Menu.c:859 msgid "Restart Window Maker" msgstr "ПерезапуÑтить Window Maker" #: ../../WPrefs.app/Menu.c:860 msgid "Start Another Window Manager : (" msgstr "ЗапуÑтить другой менеджер окон : (" #: ../../WPrefs.app/Menu.c:862 msgid "Save Current Session" msgstr "Сохранить текущую ÑеÑÑию" #: ../../WPrefs.app/Menu.c:863 msgid "Clear Saved Session" msgstr "ОчиÑтить Ñохраненную ÑеÑÑию" #: ../../WPrefs.app/Menu.c:864 msgid "Refresh Screen" msgstr "Обновить Ñкран" #: ../../WPrefs.app/Menu.c:865 msgid "Open Info Panel" msgstr "Открыть панель `ИнформациÑ'" #: ../../WPrefs.app/Menu.c:866 msgid "Open Copyright Panel" msgstr "Открыть панель `Copyright'" #: ../../WPrefs.app/Menu.c:872 msgid "Window Manager to Start" msgstr "Какой оконный менеджер запуÑкать" #: ../../WPrefs.app/Menu.c:888 msgid "Do not confirm action." msgstr "Без предупреждениÑ" #: ../../WPrefs.app/Menu.c:898 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "ИнÑтрукции:\n" "\n" " - чтобы добавить новый Ñлемент: перетащите Ñлемент\n" " из набора Ñлева на меню\n" " - чтобы удалить Ñлемент: перетащите Ñлемент из\n" " меню за его (меню) пределы\n" " - чтобы перемеÑтить Ñлемент: проÑто перетащите\n" " его на новое меÑто\n" " - чтобы Ñкопировать Ñлемент: перетащите его на\n" " новое меÑто ÑƒÐ´ÐµÑ€Ð¶Ð¸Ð²Ð°Ñ Ð¿Ñ€Ð¸ Ñтом клавишу Control\n" " - чтобы переименовать Ñлемент: щелкните на нем\n" " дважды\n" " - чтобы изменить ÑопутÑтвующую информацию:\n" " одинарный щелчок на ÑоответÑтвующем Ñлементе" #: ../../WPrefs.app/Menu.c:1122 #, c-format msgid "unknown command '%s' in menu" msgstr "неизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° '%s' в меню" #: ../../WPrefs.app/Menu.c:1154 msgid ": Execute Program" msgstr ": ЗапуÑтить программу" #: ../../WPrefs.app/Menu.c:1158 msgid ": Perform Internal Command" msgstr ": ИÑполнить внутреннюю команду" #: ../../WPrefs.app/Menu.c:1162 msgid ": Open a Submenu" msgstr ": Открыть подменю" #: ../../WPrefs.app/Menu.c:1166 msgid ": Program Generated Submenu" msgstr ": Сгенерированное подменю" #: ../../WPrefs.app/Menu.c:1170 msgid ": Directory Contents Menu" msgstr ": Меню ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ð½Ð¸Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð°" #: ../../WPrefs.app/Menu.c:1174 msgid ": Open Workspaces Submenu" msgstr ": Подменю рабочих проÑтранÑтв" #: ../../WPrefs.app/Menu.c:1178 msgid ": Open Window List Submenu" msgstr ": Подменю Ñо ÑпиÑком окон" #: ../../WPrefs.app/Menu.c:1403 msgid "Remove Submenu" msgstr "Удалить подменю" #: ../../WPrefs.app/Menu.c:1404 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "" "Удаление Ñтого Ñлемента удалит вÑе Ñлементы в подменю.\n" "Ð’Ñ‹ дейÑтвительно хотите Ñто Ñделать?" #: ../../WPrefs.app/Menu.c:1406 msgid "Yes" msgstr "Да" #: ../../WPrefs.app/Menu.c:1406 msgid "No" msgstr "Ðет" #: ../../WPrefs.app/Menu.c:1407 msgid "Yes, don't ask again." msgstr "Да, и больше об Ñтом не Ñпрашивать." #. if there is a localized plmenu for the tongue put it's filename here #: ../../WPrefs.app/Menu.c:1575 ../../WPrefs.app/Menu.c:1582 #, c-format msgid "%s/Library/WindowMaker/plmenu" msgstr "%s/Library/WindowMaker/plmenu.ru" #: ../../WPrefs.app/Menu.c:1591 #, c-format msgid "Could not open default menu from '%s'" msgstr "Ðе могу открыть меню по умолчанию '%s'" #: ../../WPrefs.app/Menu.c:1629 ../../WPrefs.app/WPrefs.c:807 msgid "Warning" msgstr "Предупреждение" #: ../../WPrefs.app/Menu.c:1630 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "Формат файла меню, которое (меню) иÑпользуетÑÑ Ð² данный\n" "момент, не поддерживаетÑÑ Ñиим инÑтрументом. Ð’Ñ‹ хотите\n" "ÑброÑить текущее меню, чтобы можно было иÑпользовать Ñтот\n" "инÑтрумент?" #: ../../WPrefs.app/Menu.c:1633 msgid "Yes, Discard and Update" msgstr "Да, ÑброÑить и обновить" #: ../../WPrefs.app/Menu.c:1634 msgid "No, Keep Current Menu" msgstr "Ðет, оÑтавить текущее меню" #: ../../WPrefs.app/Menu.c:1897 msgid "Applications Menu Definition" msgstr "Меню приложений" #: ../../WPrefs.app/Menu.c:1899 msgid "Edit the menu for launching applications." msgstr "Редактировать меню запуÑка приложений." #: ../../WPrefs.app/MenuPreferences.c:111 msgid "Menu Scrolling Speed" msgstr "СкороÑть прокрутки меню" #: ../../WPrefs.app/MenuPreferences.c:160 msgid "Submenu Alignment" msgstr "Выравнивание подменю" #: ../../WPrefs.app/MenuPreferences.c:204 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "Ð’Ñегда открывать подменю внутри Ñкрана, вмеÑто прокрутки." #: ../../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/MenuPreferences.c:231 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "Меню параметров, отноÑÑщихÑÑ Ðº удобÑтву иÑпользованиÑ.\n" "СкороÑть прокрутки, выравнивание подменю и Ñ‚.п." #: ../../WPrefs.app/MouseSettings.c:141 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "Ðеправильное значение. Должно быть положительное чиÑло" #: ../../WPrefs.app/MouseSettings.c:161 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "" "Ðеправильное значение порога уÑÐºÐ¾Ñ€ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¼Ñ‹ÑˆÐ¸. Должно быть количеÑтвом " "точек, пройденных мышью за одно перемещение, перед началом уÑкорениÑ." #: ../../WPrefs.app/MouseSettings.c:262 ../../WPrefs.app/MouseSettings.c:274 #: ../../WPrefs.app/MouseSettings.c:286 ../../WPrefs.app/MouseSettings.c:298 #, c-format msgid "bad value %s for option %s" msgstr "неверное значение %s Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° %s" #: ../../WPrefs.app/MouseSettings.c:357 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "" "клавиша-модификатор %s в параметре ModifierKey не раÑпознана. ИÑпользуетÑÑ %" "s (по умолчанию)" #: ../../WPrefs.app/MouseSettings.c:382 msgid "could not retrieve keyboard modifier mapping" msgstr "" #: ../../WPrefs.app/MouseSettings.c:477 msgid "Mouse Speed" msgstr "СкороÑть мыши" #: ../../WPrefs.app/MouseSettings.c:507 msgid "Acceler.:" msgstr "УÑкор.:" #: ../../WPrefs.app/MouseSettings.c:520 msgid "Threshold:" msgstr "ЧувÑтвит:" #: ../../WPrefs.app/MouseSettings.c:535 msgid "Double-Click Delay" msgstr "Задержка двойного щелчка" #: ../../WPrefs.app/MouseSettings.c:579 msgid "Test" msgstr "ТеÑÑ‚" #: ../../WPrefs.app/MouseSettings.c:609 msgid "Workspace Mouse Actions" msgstr "ДейÑÑ‚Ð²Ð¸Ñ Ð¼Ñ‹ÑˆÐ¸ на Ñ€/Ñтоле" #: ../../WPrefs.app/MouseSettings.c:614 msgid "Disable mouse actions" msgstr "Отключить мышь" #: ../../WPrefs.app/MouseSettings.c:620 msgid "Left Button" msgstr "Ð›ÐµÐ²Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°" #: ../../WPrefs.app/MouseSettings.c:630 msgid "Middle Button" msgstr "СреднÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ°" #: ../../WPrefs.app/MouseSettings.c:640 msgid "Right Button" msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°" #: ../../WPrefs.app/MouseSettings.c:650 msgid "Mouse Wheel" msgstr "КолеÑико мыши" #: ../../WPrefs.app/MouseSettings.c:672 msgid "Mouse Grab Modifier" msgstr "Модификатор захвата мыши" #: ../../WPrefs.app/MouseSettings.c:674 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" #: ../../WPrefs.app/MouseSettings.c:708 #, c-format msgid "could not create %s" msgstr "не могу Ñоздать %s" #: ../../WPrefs.app/MouseSettings.c:724 #, c-format msgid "could not create temporary file %s" msgstr "не могу Ñоздать временный файл %s" #: ../../WPrefs.app/MouseSettings.c:756 #, c-format msgid "could not rename file %s to %s\n" msgstr "не получаетÑÑ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ñ‚ÑŒ %s в %s\n" #: ../../WPrefs.app/MouseSettings.c:829 msgid "Shift" msgstr "Shift" #: ../../WPrefs.app/MouseSettings.c:830 msgid "Lock" msgstr "" #: ../../WPrefs.app/MouseSettings.c:831 msgid "Control" msgstr "Control" #: ../../WPrefs.app/MouseSettings.c:832 msgid "Mod1" msgstr "Mod1" #: ../../WPrefs.app/MouseSettings.c:833 msgid "Mod2" msgstr "Mod2" #: ../../WPrefs.app/MouseSettings.c:834 msgid "Mod3" msgstr "Mod3" #: ../../WPrefs.app/MouseSettings.c:835 msgid "Mod4" msgstr "Mod4" #: ../../WPrefs.app/MouseSettings.c:836 msgid "Mod5" msgstr "Mod5" #: ../../WPrefs.app/MouseSettings.c:839 msgid "Applications Menu" msgstr "Меню приложений" #: ../../WPrefs.app/MouseSettings.c:841 msgid "Select Windows" msgstr "Выделение окон" # awn: "Переключение рабочих проÑтранÑтв" не помещаетÑÑ #: ../../WPrefs.app/MouseSettings.c:844 msgid "Switch Workspaces" msgstr "" #: ../../WPrefs.app/MouseSettings.c:849 msgid "Mouse Preferences" msgstr "СвойÑтва Ð´Ð»Ñ Ð¼Ñ‹ÑˆÐ¸" #: ../../WPrefs.app/MouseSettings.c:851 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "СкороÑть и уÑкорение мыши, задержка двойного щелчка,\n" "функции, привÑзанные к кнопкам мыши и Ñ‚.п." #: ../../WPrefs.app/Paths.c:84 msgid "bad value in option IconPath. Using default path list" msgstr "неправильное значение в IconPath. ИÑпользуем пути по умолчанию" #: ../../WPrefs.app/Paths.c:101 msgid "bad value in option PixmapPath. Using default path list" msgstr "неправильное значение в PixmapPath. ИÑпользуем пути по умолчанию" #: ../../WPrefs.app/Paths.c:149 msgid "Select directory" msgstr "Укажите каталог" #: ../../WPrefs.app/Paths.c:270 msgid "Icon Search Paths" msgstr "Пути поиÑка иконок" #: ../../WPrefs.app/Paths.c:281 ../../WPrefs.app/Paths.c:312 #: ../../WPrefs.app/TexturePanel.c:1310 msgid "Add" msgstr "Добавить" #: ../../WPrefs.app/Paths.c:301 msgid "Pixmap Search Paths" msgstr "Пути поиÑка Pixmap" #: ../../WPrefs.app/Paths.c:341 msgid "Search Path Configuration" msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¿ÑƒÑ‚ÐµÐ¹ поиÑка" #: ../../WPrefs.app/Paths.c:343 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "" "Пути, иÑпользуемые Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка pixmap'ов\n" "и иконок." #: ../../WPrefs.app/Preferences.c:75 msgid "OFF" msgstr "Выключено" #: ../../WPrefs.app/Preferences.c:77 msgid "1 pixel" msgstr "1 точка" #. 2-4 #: ../../WPrefs.app/Preferences.c:80 #, c-format msgid "%i pixels" msgstr "%i точки" #. >4 #: ../../WPrefs.app/Preferences.c:83 #, c-format msgid "%i pixels " msgstr "%i точек" #: ../../WPrefs.app/Preferences.c:229 msgid "Size Display" msgstr "Отображение размера" #: ../../WPrefs.app/Preferences.c:231 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "Где и/или в каком Ñтиле отображать размеры окна\n" "при их изменении." #: ../../WPrefs.app/Preferences.c:238 ../../WPrefs.app/Preferences.c:259 msgid "Corner of screen" msgstr "Ð’ углу Ñкрана" #: ../../WPrefs.app/Preferences.c:239 ../../WPrefs.app/Preferences.c:260 msgid "Center of screen" msgstr "Ð’ центре Ñкрана" #: ../../WPrefs.app/Preferences.c:240 ../../WPrefs.app/Preferences.c:261 msgid "Center of resized window" msgstr "Ð’ центре изменÑемого окна" #: ../../WPrefs.app/Preferences.c:241 msgid "Technical drawing-like" msgstr "Ð’ чертежном Ñтиле" #: ../../WPrefs.app/Preferences.c:242 ../../WPrefs.app/Preferences.c:262 msgid "Disabled" msgstr "Запрещено" #: ../../WPrefs.app/Preferences.c:250 msgid "Position Display" msgstr "Отображение положениÑ" #: ../../WPrefs.app/Preferences.c:252 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "Где и/или в каком Ñтиле отображать положение окна\n" "при его перемещении." #: ../../WPrefs.app/Preferences.c:270 msgid "Show balloon text for..." msgstr "Показывать вÑплывающую подÑказку длÑ..." #: ../../WPrefs.app/Preferences.c:277 msgid "incomplete window titles" msgstr "неполных заголовков окон" #: ../../WPrefs.app/Preferences.c:278 msgid "miniwindow titles" msgstr "заголовков миниокон" #: ../../WPrefs.app/Preferences.c:279 msgid "application/dock icons" msgstr "иконок в доке/Ñкрепке" #: ../../WPrefs.app/Preferences.c:280 msgid "internal help" msgstr "внутренней помощи" #: ../../WPrefs.app/Preferences.c:292 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "" "Поднимать окно при переключении\n" "фокуÑа Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ñ‹." #: ../../WPrefs.app/Preferences.c:298 #, fuzzy msgid "" "Enable keyboard language\n" "switch button in window titlebars." msgstr "СохранÑть Ñзык клавиатуры Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ окна" #: ../../WPrefs.app/Preferences.c:307 msgid "Workspace border" msgstr "Границы рабочего проÑтранÑтва" #: ../../WPrefs.app/Preferences.c:323 msgid "Left/Right" msgstr "Слева/Справа" #: ../../WPrefs.app/Preferences.c:328 msgid "Top/Bottom" msgstr "Сверху/Снизу" #: ../../WPrefs.app/Preferences.c:349 msgid "Miscellaneous Ergonomic Preferences" msgstr "Ð’ÑÑкие ÑргономичеÑкие уÑтановки" #: ../../WPrefs.app/Preferences.c:350 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "Различные уÑтановки, наподобие\n" "\"когда показывать вÑплывающие подÑказки?\",\n" "\"как отображать изменение геометрии?\" и Ñ‚.п." #: ../../WPrefs.app/TexturePanel.c:323 msgid "Saturation" msgstr "ÐаÑыщенноÑть" #: ../../WPrefs.app/TexturePanel.c:325 msgid "Brightness" msgstr "ЯркоÑть" #: ../../WPrefs.app/TexturePanel.c:373 ../../WPrefs.app/TexturePanel.c:380 msgid "Hue" msgstr "Тон" #: ../../WPrefs.app/TexturePanel.c:610 msgid "Could not load the selected file: " msgstr "Ðе могу загрузить выбранный файл" #: ../../WPrefs.app/TexturePanel.c:664 msgid "Open Image" msgstr "Открыть изображение" #: ../../WPrefs.app/TexturePanel.c:694 msgid "The selected file does not contain a supported image." msgstr "Выбранный файл не Ñодержит Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² поддерживаемом формате." #: ../../WPrefs.app/TexturePanel.c:945 #, c-format msgid "could not load file '%s': %s" msgstr "не могу загрузить файл '%s': %s" #: ../../WPrefs.app/TexturePanel.c:1064 #, c-format msgid "error creating texture %s" msgstr "ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚ÐµÐºÑтуры %s" #: ../../WPrefs.app/TexturePanel.c:1254 msgid "Texture Panel" msgstr "Панель текÑтур" #: ../../WPrefs.app/TexturePanel.c:1262 msgid "Texture Name" msgstr "Ðазвание текÑтуры" #: ../../WPrefs.app/TexturePanel.c:1274 msgid "Solid Color" msgstr "Равномерный цвет" #: ../../WPrefs.app/TexturePanel.c:1275 msgid "Gradient Texture" msgstr "Градиент" #: ../../WPrefs.app/TexturePanel.c:1276 msgid "Simple Gradient Texture" msgstr "ПроÑтой градиент" #: ../../WPrefs.app/TexturePanel.c:1277 msgid "Textured Gradient" msgstr "ТекÑтурный градиент" #: ../../WPrefs.app/TexturePanel.c:1278 msgid "Image Texture" msgstr "ТекÑтура изображениÑ" #: ../../WPrefs.app/TexturePanel.c:1286 msgid "Default Color" msgstr "Цвет по умолчанию" #: ../../WPrefs.app/TexturePanel.c:1298 msgid "Gradient Colors" msgstr "Градиентные цвета" #: ../../WPrefs.app/TexturePanel.c:1394 msgid "Direction" msgstr "Ðаправление" #: ../../WPrefs.app/TexturePanel.c:1422 msgid "Gradient" msgstr "Градиент" #: ../../WPrefs.app/TexturePanel.c:1440 msgid "Gradient Opacity" msgstr "ÐепрозрачноÑть градиента" #: ../../WPrefs.app/TexturePanel.c:1483 msgid "Image" msgstr "Изображение" #: ../../WPrefs.app/TexturePanel.c:1515 msgid "Tile" msgstr "Мозаика" #: ../../WPrefs.app/TexturePanel.c:1516 msgid "Scale" msgstr "МаÑштабировать" #: ../../WPrefs.app/TexturePanel.c:1518 msgid "Maximize" 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:203 #: ../../WPrefs.app/Themes.c:223 msgid "Download" msgstr "Загрузить из Internet" #: ../../WPrefs.app/Themes.c:171 msgid "Save Current Theme" msgstr "Сохранить текущую тему" #: ../../WPrefs.app/Themes.c:180 msgid "Load" msgstr "Загрузить" #: ../../WPrefs.app/Themes.c:185 msgid "Install" msgstr "ИнÑталировать" #: ../../WPrefs.app/Themes.c:193 msgid "Tile of The Day" msgstr "" #: ../../WPrefs.app/Themes.c:213 msgid "Bar of The Day" msgstr "" #: ../../WPrefs.app/WindowHandling.c:141 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "" "неверное значение %s в параметре WindowPlacement. ИÑпользуетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ по " "умолчанию" #: ../../WPrefs.app/WindowHandling.c:163 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "" "неправильные данные в параметре WindowPlaceOrigin. ИÑпользуетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ по " "умолчанию (0,0)" #: ../../WPrefs.app/WindowHandling.c:243 msgid "Window Placement" msgstr "Размещение окон" #: ../../WPrefs.app/WindowHandling.c:244 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "Как размещать окна, когда они впервые\n" "поÑвлÑÑŽÑ‚ÑÑ Ð½Ð° Ñкране." #: ../../WPrefs.app/WindowHandling.c:250 msgid "Automatic" msgstr "ÐвтоматичеÑкое" #: ../../WPrefs.app/WindowHandling.c:251 msgid "Random" msgstr "Случайное" #: ../../WPrefs.app/WindowHandling.c:252 msgid "Manual" msgstr "Ручное" #: ../../WPrefs.app/WindowHandling.c:253 msgid "Cascade" msgstr "КаÑкадное" #: ../../WPrefs.app/WindowHandling.c:254 msgid "Smart" msgstr "\"Умное\"" #: ../../WPrefs.app/WindowHandling.c:260 msgid "Placement Origin" msgstr "ИÑходное положение" #: ../../WPrefs.app/WindowHandling.c:321 msgid "Opaque Move" msgstr "Двигать целиком" #: ../../WPrefs.app/WindowHandling.c:322 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "Во Ð²Ñ€ÐµÐ¼Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¾ÐºÐ½Ð°, должно ли оно\n" "перемещатьÑÑ Ñ†ÐµÐ»Ð¸ÐºÐ¾Ð¼, вмеÑте Ñо Ñвоим\n" "Ñодержимым (нажато), или только его\n" "ÐºÐ°Ñ€ÐºÐ°Ñ (отпущено)\n" #: ../../WPrefs.app/WindowHandling.c:361 msgid "When maximizing..." msgstr "Когда раÑпахиваетÑÑ Ð¾ÐºÐ½Ð¾..." #: ../../WPrefs.app/WindowHandling.c:366 msgid "...do not cover icons" msgstr "...не перекрывать иконки" #: ../../WPrefs.app/WindowHandling.c:372 msgid "...do not cover dock" msgstr "...не перекрывать Док" #: ../../WPrefs.app/WindowHandling.c:381 msgid "Edge Resistance" msgstr "СопротивлÑемоÑть краев" #: ../../WPrefs.app/WindowHandling.c:383 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" #: ../../WPrefs.app/WindowHandling.c:402 msgid "Resist" msgstr "УпиратьÑÑ" #: ../../WPrefs.app/WindowHandling.c:407 msgid "Attract" msgstr "ПритÑгиватьÑÑ" #: ../../WPrefs.app/WindowHandling.c:423 msgid "" "Open dialogs in same workspace\n" "as their owners" msgstr "" "Открывать диалоги в одном рабочем\n" "проÑтранÑтве Ñ Ð¸Ñ… родителÑми" #: ../../WPrefs.app/WindowHandling.c:450 msgid "Window Handling Preferences" msgstr "Параметры окон" #: ../../WPrefs.app/WindowHandling.c:452 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "Как обращатьÑÑ Ñ Ð¾ÐºÐ½Ð°Ð¼Ð¸. Ðачальное раÑположение окон.\n" "СопротивлÑемоÑть границ. Сплошное/каркаÑное перемещение, и Ñ‚.п." #: ../../WPrefs.app/Workspace.c:176 msgid "Workspace Navigation" msgstr "ÐÐ°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ Ð¿Ð¾ рабочим проÑтранÑтвам" #: ../../WPrefs.app/Workspace.c:183 msgid "" "wrap to the first workspace after the\n" "last workspace." msgstr "" "Ñоздавать новое рабочее проÑтранÑтво\n" "когда переключаемÑÑ Ð·Ð° поÑледнее." #: ../../WPrefs.app/Workspace.c:205 msgid "switch workspaces while dragging windows." msgstr "переключать рабочие проÑтранÑтва при перетаÑкивании окон." #: ../../WPrefs.app/Workspace.c:227 msgid "automatically create new workspaces." msgstr "автоматичеÑки Ñоздавать новые рабочие проÑтранÑтва." #: ../../WPrefs.app/Workspace.c:250 msgid "" "Position of workspace\n" "name display" msgstr "" "Отображение имени\n" "рабочего проÑтранÑтва" #: ../../WPrefs.app/Workspace.c:269 msgid "Disable" msgstr "Запретить" #: ../../WPrefs.app/Workspace.c:271 msgid "Top" msgstr "Вверху" #: ../../WPrefs.app/Workspace.c:272 msgid "Bottom" msgstr "Внизу" #: ../../WPrefs.app/Workspace.c:273 msgid "Top/Left" msgstr "Вверху Ñлева" #: ../../WPrefs.app/Workspace.c:274 msgid "Top/Right" msgstr "Вверху Ñправа" #: ../../WPrefs.app/Workspace.c:275 msgid "Bottom/Left" msgstr "Внизу Ñлева" #: ../../WPrefs.app/Workspace.c:276 msgid "Bottom/Right" msgstr "Внизу Ñправа" #: ../../WPrefs.app/Workspace.c:284 msgid "Dock/Clip" msgstr "Док/Скрепка" #: ../../WPrefs.app/Workspace.c:303 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "Запретить/разрешить Док приложений (вертикальную\n" "Ñтопку иконок на одной из границ Ñкрана)." #: ../../WPrefs.app/Workspace.c:324 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "Запретить/разрешить Скрепку (вы ее узнаете по иконке\n" "Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÐ¼ Ñкрепки Ð´Ð»Ñ Ð±ÑƒÐ¼Ð°Ð³Ð¸)." #: ../../WPrefs.app/Workspace.c:364 msgid "Workspace Preferences" msgstr "УÑтановки Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ проÑтранÑтва" #: ../../WPrefs.app/Workspace.c:366 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "ОÑобенноÑти навигации по рабочим проÑтранÑтвам.\n" "ЗдеÑÑŒ вы также можете разрешить/запретить Док и Скрепку." #: ../../WPrefs.app/WPrefs.c:260 msgid "Window Maker Preferences" msgstr "СвойÑтва Window Maker" #: ../../WPrefs.app/WPrefs.c:284 msgid "Revert Page" msgstr "Вернуть Ñтраницу" #: ../../WPrefs.app/WPrefs.c:290 msgid "Revert All" msgstr "Вернуть вÑе" #: ../../WPrefs.app/WPrefs.c:296 msgid "Save" msgstr "Сохранить" #: ../../WPrefs.app/WPrefs.c:309 msgid "Balloon Help" msgstr "Ð’Ñплывающие подÑказки" # awn: оÑтавлено без перевода из-за проблемы Ñо шрифтами. #: ../../WPrefs.app/WPrefs.c:334 msgid "Window Maker Preferences Utility" msgstr "" #: ../../WPrefs.app/WPrefs.c:341 #, c-format msgid "Version %s for Window Maker %s or newer" msgstr "ВерÑÐ¸Ñ %s Ð´Ð»Ñ Window Maker %s или новее" #: ../../WPrefs.app/WPrefs.c:349 msgid "Starting..." msgstr "Стартую..." #: ../../WPrefs.app/WPrefs.c:355 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg, Largo et al\n" "More Programming: James Thompson et al" msgstr "" "Программирование/Дизайн: Alfredo K. Kojima\n" "Оформление: Marco van Hylckama Vlieg, Largo et al\n" "Программирование: James Thomson et al" #: ../../WPrefs.app/WPrefs.c:455 #, c-format msgid "could not locate image file %s\n" msgstr "не могу найти файл Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÐ¼ %s\n" #: ../../WPrefs.app/WPrefs.c:670 #, c-format msgid "could not load image file %s:%s" msgstr "не могу загрузить файл Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ %s:%s" #: ../../WPrefs.app/WPrefs.c:689 msgid "Loading Window Maker configuration files..." msgstr "Загружаю файлы конфигурации Window Maker..." #: ../../WPrefs.app/WPrefs.c:693 msgid "Initializing configuration panels..." msgstr "Инициализирую конфигурационные панели..." #: ../../WPrefs.app/WPrefs.c:727 msgid "" "WPrefs is free software and is distributed WITHOUT ANY\n" "WARRANTY under the terms of the GNU General Public License." msgstr "" "WPrefs ÑвлÑетÑÑ Ñвободным ПО и раÑпроÑтранÑетÑÑ Ð‘Ð•Ð— КÐКИХ-ЛИБО\n" "ГÐРÐÐТИЙ в ÑоответÑтвии Ñ Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð°Ð¼Ð¸ GNU General Public License." #: ../../WPrefs.app/WPrefs.c:757 ../../WPrefs.app/WPrefs.c:837 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Window Maker домен (%s) поврежден!" #: ../../WPrefs.app/WPrefs.c:761 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "Ðе могу загрузить домен Window MAker (%s) из базы данных по умолчанию." #: ../../WPrefs.app/WPrefs.c:777 msgid "could not extract version information from Window Maker" msgstr "не могу получить номер верÑии Window Maker" #: ../../WPrefs.app/WPrefs.c:778 msgid "Make sure wmaker is in your search path." msgstr "УбедитеÑÑŒ что путь к wmaker определен." #: ../../WPrefs.app/WPrefs.c:781 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:791 msgid "" "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." msgstr "" "Ðе могу получить верÑию Window Maker. УбедитеÑÑŒ что он уÑтановлен корректно " "и путь к меÑту где он уÑтановлен еÑть в PATH." #: ../../WPrefs.app/WPrefs.c:798 #, 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:805 #, 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:818 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr "не могу запуÑтить \"%s --global_defaults_path\"." #: ../../WPrefs.app/WPrefs.c:841 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "Ðе могу загрузить глобальный домен Window Maker (%s)." #: ../../WPrefs.app/WPrefs.c:1090 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "неправильное значение ÑкороÑти Ð´Ð»Ñ %s\n" ". ИÑпользуем по-умолчанию \"Среднее\"" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/hu.po��������������������������������������������������������������0000644�0001750�0001750�00000152345�12214432632�014352� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Hungarian translation of WPrefs # Copyright (C) 1998-2000 Free Software Foundation, Inc. # Horvath Szabolcs <horvathsz@penguinpowered.com> # thanks to magyar@lists.linux.hu. # msgid "" msgstr "" "Date: 2000-07-28 17:07:33+0200\n" "Project-Id-Version: Window Maker 0.61.1\n" "POT-Creation-Date: 2000-07-12 08:32+0300\n" "PO-Revision-Date: 2000-07-27 19:50-0100\n" "Last-Translator: Horvath Szabolcs <horvathsz@penguinpowered.com>\n" "Language-Team: Hungarian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../WPrefs.app/main.c:74 msgid "usage: %s [options]\n" msgstr "használat: %s [opciók]\n" #: ../../WPrefs.app/main.c:75 msgid "options:" msgstr "opciók:" #: ../../WPrefs.app/main.c:76 msgid " -display <display>\tdisplay to be used" msgstr "-display <megjelenítÅ‘>\tmelyik megjelenítÅ‘t legyen használva" #: ../../WPrefs.app/main.c:77 msgid " --version\t\tprint version number and exit" msgstr "--version\t\tkiírja a verziószámot és kilép" #: ../../WPrefs.app/main.c:78 msgid " --help\t\tprint this message and exit" msgstr "--help\t\tkiírja ezt a szöveget és kilép" #: ../../WPrefs.app/main.c:137 msgid "too few arguments for %s" msgstr "túl kevés paraméter a következÅ‘höz: %s" #: ../../WPrefs.app/main.c:159 msgid "X server does not support locale" msgstr "Az X server nem támogatja a fordítások használatát" #: ../../WPrefs.app/main.c:162 msgid "cannot set locale modifiers" msgstr "a helyi módosításokat nem tudom beállítani" #: ../../WPrefs.app/main.c:168 msgid "could not open display %s" msgstr "nem tudom a %s megjelenítÅ‘t megnyitni" #: ../../WPrefs.app/main.c:176 msgid "could not initialize application" msgstr "az alkalmazást nem tudom inicializálni" #: ../../WPrefs.app/WPrefs.c:254 msgid "Window Maker Preferences" msgstr "Window Maker beállítások" #: ../../WPrefs.app/WPrefs.c:278 msgid "Revert Page" msgstr "Oldalt visszavon" #: ../../WPrefs.app/WPrefs.c:284 msgid "Revert All" msgstr "Mindent visszavon" #: ../../WPrefs.app/WPrefs.c:290 msgid "Save" msgstr "Mentés" #: ../../WPrefs.app/Appearance.c:2227 ../../WPrefs.app/WPrefs.c:296 msgid "Close" msgstr "Bezárás" #: ../../WPrefs.app/WPrefs.c:303 msgid "Balloon Help" msgstr "Ballon-súgó" #: ../../WPrefs.app/WPrefs.c:328 msgid "Window Maker Preferences Utility" msgstr "Window Maker beállítások" #: ../../WPrefs.app/WPrefs.c:335 msgid "Version %s for Window Maker %s or newer" msgstr "%s-es verzió a %s-s vagy újabb WindowMakerhez" #: ../../WPrefs.app/WPrefs.c:343 msgid "Starting..." msgstr "Indítás..." #: ../../WPrefs.app/WPrefs.c:349 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg\n" "More Programming: James Thompson" msgstr "" "Programozás/Design: Alfredo K. Kojima\n" "Grafika: Marco van Hylckama Vlieg\n" "Még több programozás: James Thompson" #: ../../WPrefs.app/WPrefs.c:437 msgid "could not locate image file %s\n" msgstr "a képfájl (%s) helyét nem találom\n" #: ../../WPrefs.app/Appearance.c:1895 ../../WPrefs.app/Configurations.c:242 ../../WPrefs.app/Configurations.c:254 ../../WPrefs.app/Focus.c:316 ../../WPrefs.app/Focus.c:327 ../../WPrefs.app/MenuPreferences.c:137 ../../WPrefs.app/MenuPreferences.c:148 ../../WPrefs.app/MenuPreferences.c:176 ../../WPrefs.app/MenuPreferences.c:191 ../../WPrefs.app/MouseSettings.c:606 ../../WPrefs.app/MouseSettings.c:617 ../../WPrefs.app/MouseSettings.c:673 ../../WPrefs.app/MouseSettings.c:688 ../../WPrefs.app/MouseSettings.c:704 ../../WPrefs.app/WPrefs.c:460 ../../WPrefs.app/WPrefs.c:477 msgid "could not load icon file %s" msgstr "az ikon fájlt (%s) nem tudom betölteni" #: ../../WPrefs.app/WPrefs.c:553 msgid "could not load image file %s:%s" msgstr "a képfájlt nem tudom betölteni %s:%s" #: ../../WPrefs.app/WPrefs.c:572 msgid "Loading Window Maker configuration files..." msgstr "Window Maker konfigurációs fájlok betöltése..." #: ../../WPrefs.app/WPrefs.c:576 msgid "Initializing configuration panels..." msgstr "Beállító panel inicializálása" #: ../../WPrefs.app/WPrefs.c:607 msgid "" "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." msgstr "" "A WPrefs egy teljesen szabad szoftver és SEMMILYEN GARANCIA\n" "NINCS rá, a GNU General Public License értelmében terjeszhetÅ‘.\n" "A programban használt ikonokra az OpenContent licensz\n" "vonatkozik." #: ../../WPrefs.app/WPrefs.c:638 ../../WPrefs.app/WPrefs.c:708 msgid "Window Maker domain (%s) is corrupted!" msgstr "Window Maker domain (%s) megsérült!" #: ../../WPrefs.app/Menu.c:1384 ../../WPrefs.app/MouseSettings.c:149 ../../WPrefs.app/MouseSettings.c:169 ../../WPrefs.app/Text.c:183 ../../WPrefs.app/TexturePanel.c:608 ../../WPrefs.app/TexturePanel.c:686 ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:639 ../../WPrefs.app/WPrefs.c:644 ../../WPrefs.app/WPrefs.c:658 ../../WPrefs.app/WPrefs.c:668 ../../WPrefs.app/WPrefs.c:678 ../../WPrefs.app/WPrefs.c:709 ../../WPrefs.app/WPrefs.c:714 msgid "Error" msgstr "Hiba" #. WMMapWidget(panel->pathB); #: ../../WPrefs.app/Menu.c:1384 ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126 ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:151 ../../WPrefs.app/MouseSettings.c:171 ../../WPrefs.app/Text.c:183 ../../WPrefs.app/TexturePanel.c:609 ../../WPrefs.app/TexturePanel.c:688 ../../WPrefs.app/TexturePanel.c:1520 ../../WPrefs.app/Themes.c:98 ../../WPrefs.app/WPrefs.c:639 ../../WPrefs.app/WPrefs.c:644 ../../WPrefs.app/WPrefs.c:660 ../../WPrefs.app/WPrefs.c:672 ../../WPrefs.app/WPrefs.c:678 ../../WPrefs.app/WPrefs.c:685 ../../WPrefs.app/WPrefs.c:709 ../../WPrefs.app/WPrefs.c:714 msgid "OK" msgstr "OK" #: ../../WPrefs.app/WPrefs.c:642 msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "A Window Maker domaint (%s) nem tudom betölteni az alapértelmezett adatbázisból." #: ../../WPrefs.app/WPrefs.c:655 msgid "could not extract version information from Window Maker" msgstr "nem tudom kideríteni a WindowMaker verziószámát" #: ../../WPrefs.app/WPrefs.c:656 msgid "Make sure wmaker is in your search path." msgstr "GyÅ‘zödj meg róla, hogy a wmaker benne van-e a keresési útvonalban." #: ../../WPrefs.app/WPrefs.c:659 msgid "Could not extract version from Window Maker. Make sure it is correctly installed and is in your PATH environment variable." msgstr "Nem tudom kideríteni a WindowMaker verziószámát. GyÅ‘zödj meg róla, hogy jól van-e felinstallálva és benne van-e a keresési útvan (PATH)" #: ../../WPrefs.app/WPrefs.c:669 msgid "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." msgstr "Nem tudom kideríteni a WindowMaker verziószámát. GyÅ‘zödj meg róla, hogy jól van-e felinstallálva és a hely, ahova telepítetted, benne van-e a keresési útban (PATH)" #: ../../WPrefs.app/WPrefs.c:676 msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "A WPrefs csak 0.18.0 vagy magasabb verziószámú WindowMakereket\n" "támogat. A jelenlegi verzió: %i.%i.%i\n" #: ../../WPrefs.app/WPrefs.c:683 msgid "Window Maker %i.%i.%i, which is installed in your system, is not fully supported by this version of WPrefs." msgstr "A jelenleg telepített WindowMakert (%i.%i.%i) nem támogatja teljesen ez a WPrefs verzió." #: ../../WPrefs.app/WPrefs.c:685 msgid "Warning" msgstr "Figyelmeztetés" #: ../../WPrefs.app/WPrefs.c:690 msgid "could not run \"wmaker --global_defaults_path\"." msgstr "a \"wmaker -global_defaults_path\" parancsot nem tudom futtatni." #: ../../WPrefs.app/WPrefs.c:712 msgid "Could not load global Window Maker domain (%s)." msgstr "a globális Window Maker domaint (%s) nem tudom betölteni." #: ../../WPrefs.app/WPrefs.c:961 msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "Rossz sebesség-érték a %s kulcshoz\n" ". az alapértelmezett \"középsÅ‘t\" használom" #: ../../WPrefs.app/Appearance.c:1089 msgid "Select File" msgstr "Válassz fájlt" #: ../../WPrefs.app/Appearance.c:1488 msgid "Focused Window" msgstr "Fókuszált ablak" #: ../../WPrefs.app/Appearance.c:1492 msgid "Unfocused Window" msgstr "Nem fókuszált ablak" #: ../../WPrefs.app/Appearance.c:1496 msgid "Owner of Focused Window" msgstr "A fókuszált ablak szülÅ‘je" #: ../../WPrefs.app/Appearance.c:1500 ../../WPrefs.app/Appearance.c:1819 msgid "Menu Title" msgstr "Címsor" #: ../../WPrefs.app/Appearance.c:1504 ../../WPrefs.app/Appearance.c:1506 msgid "Normal Item" msgstr "Normál" #: ../../WPrefs.app/Appearance.c:1510 msgid "Disabled Item" msgstr "Letiltott" #: ../../WPrefs.app/Appearance.c:1519 msgid "Highlighted" msgstr "Kiemelt" #: ../../WPrefs.app/Appearance.c:1711 msgid "Texture" msgstr "Minta" #: ../../WPrefs.app/Appearance.c:1720 msgid "Titlebar of Focused Window" msgstr "A fókuszált ablak címsora" #: ../../WPrefs.app/Appearance.c:1721 msgid "Titlebar of Unfocused Windows" msgstr "A nem fókuszált ablak címsora" #: ../../WPrefs.app/Appearance.c:1722 msgid "Titlebar of Focused Window's Owner" msgstr "A fókuszált ablak szülÅ‘jének címsora" #: ../../WPrefs.app/Appearance.c:1723 msgid "Window Resizebar" msgstr "ÃtméretezÅ‘sáv" #: ../../WPrefs.app/Appearance.c:1724 msgid "Titlebar of Menus" msgstr "Menü címsor" #: ../../WPrefs.app/Appearance.c:1725 msgid "Menu Items" msgstr "Menüpontok" #: ../../WPrefs.app/Appearance.c:1726 msgid "Icon Background" msgstr "Ikonháttér" #: ../../WPrefs.app/Appearance.c:1740 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "Kattints duplán azon a mintázaton, amit\n" "használni szeretnél a kiválasztott típusnál." #: ../../WPrefs.app/Appearance.c:1754 msgid "New" msgstr "Új" #: ../../WPrefs.app/Appearance.c:1758 msgid "Create a new texture." msgstr "Új mintázat készítése" #: ../../WPrefs.app/Appearance.c:1766 msgid "Extract..." msgstr "Kibont" #: ../../WPrefs.app/Appearance.c:1770 msgid "Extract texture(s) from a theme or a style file." msgstr "Mintázat(ok) kicsomagolása téma vagy stílus fájlból." #: ../../WPrefs.app/Appearance.c:1780 msgid "Edit" msgstr "Szerkeszt" #: ../../WPrefs.app/Appearance.c:1783 msgid "Edit the highlighted texture." msgstr "A kiválasztott mintázat szerkesztése" #: ../../WPrefs.app/Appearance.c:1791 ../../WPrefs.app/TexturePanel.c:1308 msgid "Delete" msgstr "Törlés" #: ../../WPrefs.app/Appearance.c:1795 msgid "Delete the highlighted texture." msgstr "A kiválasztott mintázat törlése" #: ../../WPrefs.app/Appearance.c:1808 msgid "Color" msgstr "Szín" #: ../../WPrefs.app/Appearance.c:1816 msgid "Focused Window Title" msgstr "A fókuszált ablak címsora" #: ../../WPrefs.app/Appearance.c:1817 msgid "Unfocused Window Title" msgstr "A nem fókuszált ablak címsora" #: ../../WPrefs.app/Appearance.c:1818 msgid "Owner of Focused Window Title" msgstr "A fókuszált ablak szülÅ‘jének címsora" #: ../../WPrefs.app/Appearance.c:1820 msgid "Menu Item Text" msgstr "Menüpont szöveg" #: ../../WPrefs.app/Appearance.c:1821 msgid "Disabled Menu Item Text" msgstr "Letiltott menüpont" #: ../../WPrefs.app/Appearance.c:1822 msgid "Menu Highlight Color" msgstr "Kiválasztott menü színe" #: ../../WPrefs.app/Appearance.c:1823 msgid "Highlighted Menu Text Color" msgstr "Kiválasztott menü szövegének színe" #: ../../WPrefs.app/Appearance.c:1860 msgid "Options" msgstr "Beállítások" #: ../../WPrefs.app/Appearance.c:1867 msgid "Menu Style" msgstr "Menü stílus" #: ../../WPrefs.app/Appearance.c:1909 msgid "Title Alignment" msgstr "Címsor elrendezés" #: ../../WPrefs.app/Appearance.c:1916 ../../WPrefs.app/Text.c:292 msgid "Left" msgstr "Balra" #: ../../WPrefs.app/Appearance.c:1919 ../../WPrefs.app/Text.c:298 ../../WPrefs.app/TexturePanel.c:1509 msgid "Center" msgstr "Középen" #: ../../WPrefs.app/Appearance.c:1922 ../../WPrefs.app/Text.c:305 msgid "Right" msgstr "Jobbra" #: ../../WPrefs.app/Appearance.c:2149 msgid "Appearance Preferences" msgstr "Megjelenés beállítása" #: ../../WPrefs.app/Appearance.c:2151 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "Ablakok, menük és ikonok háttérmintázata." #: ../../WPrefs.app/Appearance.c:2196 msgid "Extract Texture" msgstr "Mintázatok kicsomagolása" #: ../../WPrefs.app/Appearance.c:2216 msgid "Textures" msgstr "Mintázatok" #: ../../WPrefs.app/Appearance.c:2232 msgid "Extract" msgstr "Kicsomagol" #: ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 ../../WPrefs.app/MouseSettings.c:536 ../../WPrefs.app/WindowHandling.c:319 ../../WPrefs.app/WindowHandling.c:331 ../../WPrefs.app/Workspace.c:73 ../../WPrefs.app/Workspace.c:79 msgid "could not load icon %s" msgstr "a %s ikont nem tudom betölteni" #: ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:87 msgid "could not process icon %s: %s" msgstr "a %s ikont nem tudom feldolgozni: %s" #: ../../WPrefs.app/Configurations.c:189 ../../WPrefs.app/Workspace.c:126 msgid "could not load image file %s" msgstr "a %s képet nem tudom betölteni" #: ../../WPrefs.app/Configurations.c:203 msgid "Icon Slide Speed" msgstr "Ikon csúszási sebessége" #: ../../WPrefs.app/Configurations.c:209 msgid "Shade Animation Speed" msgstr "Felhúzó/LeeresztÅ‘ animáció sebessége" #: ../../WPrefs.app/Configurations.c:271 msgid "Smooth Scaling" msgstr "Elmosás mértéke" #: ../../WPrefs.app/Configurations.c:272 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "Elmosás mérteke a háttérképeknél, a 'pixelezés'\n" "effekt mértéke. Ez számottevÅ‘en lelassítja\n" "a háttérképek betöltésének idejét." #: ../../WPrefs.app/Configurations.c:313 msgid "Titlebar Style" msgstr "Címsor stílusa" #: ../../WPrefs.app/Configurations.c:350 msgid "Animations and Sound" msgstr "Animációk és hangok" #: ../../WPrefs.app/Configurations.c:356 msgid "Animations" msgstr "Animációk" #: ../../WPrefs.app/Configurations.c:367 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "Az animációk ki/be kapcsolása (mint például a\n" "lekicsinyítésnél, felhúzásnál)" #: ../../WPrefs.app/Configurations.c:375 msgid "Superfluous" msgstr "Felesleges" #: ../../WPrefs.app/Configurations.c:386 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to the another side\n" "and the explosion animation for undocked icons." msgstr "" "A teljesen felesleges jellemzÅ‘k és animációk\n" "ki/bekapcsolása. Pl. a dokkolt ikonok eltűnÅ‘ effektje\n" "(amikor a másik oldalra mozgatod vagy letörlöd)" #: ../../WPrefs.app/Configurations.c:396 msgid "Sounds" msgstr "Hangok" #: ../../WPrefs.app/Configurations.c:407 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://www.frontiernet.net/~southgat/wmsound" msgstr "" "A hang-támogatás ki/be kapcsolása az olyan műveleteknél,\n" "mint például az ablak felhúzása/bezárása.\n" "Ehhez szükséges egy külön terjesztett modul, amit\n" "a következÅ‘ helyrÅ‘l tudsz letölteni:\n" "http://www.frontier.net/~southgat/wmsound" #: ../../WPrefs.app/Configurations.c:418 msgid "Note: sound requires a module distributed separately" msgstr "A hanghatásokhoz egy külön terjesztett modulra is szükséged van!" #: ../../WPrefs.app/Configurations.c:428 msgid "Dithering colormap for 8bpp" msgstr "Színtérkép a 256 színű megjelenítÅ‘knél" #: ../../WPrefs.app/Configurations.c:430 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "A WindowMaker által fenntartott színek száma azokon\n" "a megjelenítÅ‘kön, amik csak 8 bites színmélységet támogatnak." #: ../../WPrefs.app/Configurations.c:437 msgid "Disable dithering in any visual/depth" msgstr "Ãrnyalás tiltása minden felbontásnál/színmélységnél" #: ../../WPrefs.app/Configurations.c:458 msgid "More colors for applications" msgstr "Több szín az alkalmazások részére" #: ../../WPrefs.app/Configurations.c:465 msgid "More colors for WindowMaker" msgstr "Több szín a WindowMaker részére" #: ../../WPrefs.app/Configurations.c:520 msgid "Other Configurations" msgstr "Egyéb beállítások" #: ../../WPrefs.app/Configurations.c:522 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker in 8bit displays." msgstr "" "Animáció sebessége, címsor stílusa, más opciók ki/be\n" "kapcsolása és a WindowMaker által fenntartott színek\n" "száma a 8bites megjelenítÅ‘knél" #: ../../WPrefs.app/Expert.c:74 msgid "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." msgstr "Ikonizált ablakok ikonjainak letiltása. KDE/GNOME-hoz." #: ../../WPrefs.app/Expert.c:75 msgid "Do not set non-WindowMaker specific parameters (do not use xset)" msgstr "Nem-WindowMaker tulajdonságok beállításának letiltása" #: ../../WPrefs.app/Expert.c:76 msgid "Automatically save session when exiting WindowMaker" msgstr "A session automatikus mentése kilépéskor" #: ../../WPrefs.app/Expert.c:77 msgid "Use SaveUnder in window frames, icons, menus and other objects" msgstr "\"SaveUnder\" használata keretekben, menükben és más objektumokban" #: ../../WPrefs.app/Expert.c:78 msgid "Disable cycling color highlighting of icons." msgstr "A kijelölt ikonok folyamatos színváltásának tiltása" #: ../../WPrefs.app/Expert.c:110 msgid "Expert User Preferences" msgstr "Haladó beállítások" #: ../../WPrefs.app/Expert.c:112 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "Beállítási lehetÅ‘ségek azoknak, akik tudják mit csinálnak...\n" "Itt néhány, más kategóriába be nem illÅ‘ tulajdonságot találsz." #: ../../WPrefs.app/Focus.c:83 msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "rossz érték \"%s\" a FocusMode-nál. Az alapértelmezett manuális módot használom." #: ../../WPrefs.app/Focus.c:98 msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "rossz érték \"%s\" a ColorMapMode-nál. Az alapértelmezett automatikus módot használom." #: ../../WPrefs.app/Focus.c:196 msgid "" "Click on the window to set\n" "keyboard input focus." msgstr "" "Az ablakra kell kattintani, hogy\n" "megkapja a fókuszt." #: ../../WPrefs.app/Focus.c:200 msgid "" "Set keyboard input focus to\n" "the window under the mouse pointer,\n" "including the root window." msgstr "" "A fókusz mindig azé az ablaké lesz,\n" "ahol épp az egér áll, beleértve a\n" "root-window-t is." #: ../../WPrefs.app/Focus.c:205 msgid "" "Set keyboard input focus to\n" "the window under the mouse pointer,\n" "except the root window." msgstr "" "A fókusz mindig azé az ablaké lesz,\n" "ahol épp az egér áll. Ezalól a root\n" "window kivétel." #: ../../WPrefs.app/Focus.c:249 msgid "Input Focus Mode" msgstr "Fókusz szerzése" #: ../../WPrefs.app/Focus.c:254 msgid "Click window to focus" msgstr "Ablakra kattintás" #: ../../WPrefs.app/Focus.c:255 msgid "Focus follows mouse" msgstr "Fókusz követi az egeret" #: ../../WPrefs.app/Focus.c:256 msgid "\"Sloppy\" focus" msgstr "\"Sloppy\" fókusz" #: ../../WPrefs.app/Focus.c:271 msgid "Install colormap in the window..." msgstr "Színtérkép létrehozása abban az ablakban" #: ../../WPrefs.app/Focus.c:276 msgid "...that has the input focus." msgstr "...ahol a fókusz van." #: ../../WPrefs.app/Focus.c:281 msgid "...that is under the mouse pointer." msgstr "...amin az egér áll." #: ../../WPrefs.app/Focus.c:290 msgid "Automatic Window Raise Delay" msgstr "Automatikus ablak-elrakás késleltetés" #: ../../WPrefs.app/Focus.c:347 msgid "msec" msgstr "ms" #: ../../WPrefs.app/Focus.c:364 msgid "Do not let applications receive the click used to focus windows." msgstr "Az ablakok nem 'lophatják' el az egérkattintást, amit a fókuszálásra használunk." #: ../../WPrefs.app/Focus.c:370 msgid "Automatically focus new windows." msgstr "Új ablakok automatikusan kapnak fókuszt" #: ../../WPrefs.app/Focus.c:391 msgid "Window Focus Preferences" msgstr "Fókusz beállítások" #: ../../WPrefs.app/Focus.c:393 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "Billentyűzet fókuszálódásának szabályai, színtérkép váltás\n" "a 8bpp-s megjelenítÅ‘kön és egyéb, hasonló opciók." #: ../../WPrefs.app/Icons.c:182 msgid "Icon Positioning" msgstr "Ikonok helye" #: ../../WPrefs.app/Icons.c:229 msgid "Iconification Animation" msgstr "Animáció ikonállapotra hozásnál" #: ../../WPrefs.app/Icons.c:240 msgid "Shrinking/Zooming" msgstr "Zsugorodás/Nagyítás" #: ../../WPrefs.app/Icons.c:241 msgid "Spinning/Twisting" msgstr "Pörgés/Forgás" #: ../../WPrefs.app/Icons.c:242 msgid "3D-flipping" msgstr "3D-pattogás" #: ../../WPrefs.app/Icons.c:243 msgid "None" msgstr "Nincs" #: ../../WPrefs.app/Icons.c:256 msgid "Auto-arrange icons" msgstr "Ikonok automatikus elrendezése" #: ../../WPrefs.app/Icons.c:258 msgid "Keep icons and miniwindows arranged all the time." msgstr "Ikonok és mini ablakok mindig el vannak rendezve." #: ../../WPrefs.app/Icons.c:264 msgid "Omnipresent miniwindows" msgstr "Miniablakok mindenütt láthatóak" #: ../../WPrefs.app/Icons.c:266 msgid "Make miniwindows be present in all workspaces." msgstr "A miniablakok minden munkafelületen láthatóak" #: ../../WPrefs.app/Icons.c:275 msgid "Icon Size" msgstr "Ikonméret" #: ../../WPrefs.app/Icons.c:277 msgid "The size of the dock/application icon and miniwindows" msgstr "A dokkolt/alkalmazás ikonok és a miniablakok mérete" #: ../../WPrefs.app/Icons.c:347 msgid "Icon Preferences" msgstr "IkonjellemzÅ‘k" #: ../../WPrefs.app/Icons.c:349 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "Ikon/miniablak kezelésének beállítása. Ikonok elhelyezkedése,\n" "mérete, lekicsinyítés animációja." #: ../../WPrefs.app/KeyboardSettings.c:74 msgid "Initial Key Repeat" msgstr "Kezdeti billentyű-ismétlés" #: ../../WPrefs.app/KeyboardSettings.c:115 msgid "Key Repeat Rate" msgstr "Billentyű-ismétlés sebessége" #: ../../WPrefs.app/KeyboardSettings.c:155 msgid "Type here to test" msgstr "Itt tesztelheted:" #: ../../WPrefs.app/KeyboardSettings.c:174 msgid "Keyboard Preferences" msgstr "Billentyűzet beállítások" #: ../../WPrefs.app/KeyboardSettings.c:176 msgid "Not done" msgstr "Nincs kész" #: ../../WPrefs.app/KeyboardShortcuts.c:185 ../../WPrefs.app/Menu.c:1010 ../../WPrefs.app/MenuGuru.c:263 ../../WPrefs.app/TexturePanel.c:1526 msgid "Cancel" msgstr "Mégsem" #: ../../WPrefs.app/KeyboardShortcuts.c:186 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "Nyomd le a kívánt gyorskombinációt vagy kattints a Mégsem gombra az 'elfogás' leállításához" #: ../../WPrefs.app/KeyboardShortcuts.c:206 ../../WPrefs.app/KeyboardShortcuts.c:446 ../../WPrefs.app/Menu.c:1022 ../../WPrefs.app/Menu.c:1245 msgid "Capture" msgstr "Elfogás" #: ../../WPrefs.app/KeyboardShortcuts.c:207 ../../WPrefs.app/KeyboardShortcuts.c:453 msgid "Click Capture to interactively define the shortcut key." msgstr "Kattints az \"Elfogás\" gombra és állítsd be interaktívan a gyorsbillentyű kombinációt." #: ../../WPrefs.app/KeyboardShortcuts.c:361 msgid "Actions" msgstr "Művelet" #: ../../WPrefs.app/KeyboardShortcuts.c:377 msgid "Open applications menu" msgstr "Alkalmazások menü megnyitása" #: ../../WPrefs.app/KeyboardShortcuts.c:378 msgid "Open window list menu" msgstr "Ablakok menü megnyitása" #: ../../WPrefs.app/KeyboardShortcuts.c:379 msgid "Open window commands menu" msgstr "Ablak-parancsok menü megnyitása" #: ../../WPrefs.app/KeyboardShortcuts.c:380 msgid "Hide active application" msgstr "Aktuális alkalmazás elrejtése" #: ../../WPrefs.app/KeyboardShortcuts.c:381 msgid "Miniaturize active window" msgstr "Aktuális ablak ikonállapotba hozása" #: ../../WPrefs.app/KeyboardShortcuts.c:382 msgid "Close active window" msgstr "Aktuális ablak bezárása" #: ../../WPrefs.app/KeyboardShortcuts.c:383 msgid "Maximize active window" msgstr "Aktuális ablak teljes méretre nagyítása" #: ../../WPrefs.app/KeyboardShortcuts.c:384 msgid "Maximize active window vertically" msgstr "Aktuális ablak fűggölegesen teljes méretűre nagyítása" #: ../../WPrefs.app/KeyboardShortcuts.c:385 msgid "Raise active window" msgstr "Aktuális ablak elÅ‘térbe" #: ../../WPrefs.app/KeyboardShortcuts.c:386 msgid "Lower active window" msgstr "Aktuális ablak háttérbe" #: ../../WPrefs.app/KeyboardShortcuts.c:387 msgid "Raise/Lower window under mouse pointer" msgstr "Egérkurzor alatti ablak elÅ‘térbe/háttérbe" #: ../../WPrefs.app/KeyboardShortcuts.c:388 msgid "Shade active window" msgstr "Aktuális ablak felhúzása" #: ../../WPrefs.app/KeyboardShortcuts.c:389 msgid "Move/Resize active window" msgstr "Aktuális ablak mozgatása/átméretezése" #: ../../WPrefs.app/KeyboardShortcuts.c:390 msgid "Select active window" msgstr "Aktuális ablak kijelölése" #: ../../WPrefs.app/KeyboardShortcuts.c:391 msgid "Focus next window" msgstr "Fókusz a következÅ‘ ablakra" #: ../../WPrefs.app/KeyboardShortcuts.c:392 msgid "Focus previous window" msgstr "Fókusz az elÅ‘zÅ‘ ablakra" #: ../../WPrefs.app/KeyboardShortcuts.c:393 msgid "Switch to next workspace" msgstr "Váltás a következÅ‘ munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:394 msgid "Switch to previous workspace" msgstr "Váltás az elÅ‘zÅ‘ munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:395 msgid "Switch to next ten workspaces" msgstr "Váltás a következÅ‘ tíz munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:396 msgid "Switch to previous ten workspaces" msgstr "Váltás az elÅ‘zÅ‘ tíz munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:397 msgid "Switch to workspace 1" msgstr "Váltás az 1. munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:398 msgid "Switch to workspace 2" msgstr "Váltás a 2. munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:399 msgid "Switch to workspace 3" msgstr "Váltás a 3. munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:400 msgid "Switch to workspace 4" msgstr "Váltás a 4. munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:401 msgid "Switch to workspace 5" msgstr "Váltás az 5. munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:402 msgid "Switch to workspace 6" msgstr "Váltás a 6. munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:403 msgid "Switch to workspace 7" msgstr "Váltás a 7. munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:404 msgid "Switch to workspace 8" msgstr "Váltás a 8. munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:405 msgid "Switch to workspace 9" msgstr "Váltás a 9. munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:406 msgid "Switch to workspace 10" msgstr "Váltás a 10. munkafelületre" #: ../../WPrefs.app/KeyboardShortcuts.c:407 msgid "Shortcut for window 1" msgstr "Gyorsbillentyű az 1. ablakra" #: ../../WPrefs.app/KeyboardShortcuts.c:408 msgid "Shortcut for window 2" msgstr "Gyorsbillentyű a 2. ablakra" #: ../../WPrefs.app/KeyboardShortcuts.c:409 msgid "Shortcut for window 3" msgstr "Gyorsbillentyű a 3. ablakra" #: ../../WPrefs.app/KeyboardShortcuts.c:410 msgid "Shortcut for window 4" msgstr "Gyorsbillentyű a 4. ablakra" msgid "Shortcut for window 5" msgstr "Gyorsbillentyű az 5. ablakra" msgid "Shortcut for window 6" msgstr "Gyorsbillentyű a 6. ablakra" msgid "Shortcut for window 7" msgstr "Gyorsbillentyű a 7. ablakra" msgid "Shortcut for window 8" msgstr "Gyorsbillentyű a 8. ablakra" msgid "Shortcut for window 9" msgstr "Gyorsbillentyű a 9. ablakra" msgid "Shortcut for window 10" msgstr "Gyorsbillentyű a 10. ablakra" #: ../../WPrefs.app/KeyboardShortcuts.c:411 msgid "Raise Clip" msgstr "Kapocs elÅ‘térbe" #: ../../WPrefs.app/KeyboardShortcuts.c:412 msgid "Lower Clip" msgstr "Kapocs háttérbe" #: ../../WPrefs.app/KeyboardShortcuts.c:413 msgid "Raise/Lower Clip" msgstr "Kapocs elÅ‘térbe/háttérbe" #: ../../WPrefs.app/KeyboardShortcuts.c:415 msgid "Toggle keyboard language" msgstr "Billentyűzet-kiosztás váltása" #: ../../WPrefs.app/KeyboardShortcuts.c:429 ../../WPrefs.app/Menu.c:1234 msgid "Shortcut" msgstr "Gyorsbillentyű" #: ../../WPrefs.app/KeyboardShortcuts.c:440 msgid "Clear" msgstr "Törlés" #: ../../WPrefs.app/KeyboardShortcuts.c:501 msgid "Keyboard Shortcut Preferences" msgstr "Gyorsbillentyű-beállítások" #: ../../WPrefs.app/KeyboardShortcuts.c:503 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "A billentyű gyorskombinációk megváltoztatása,\n" "mint például munkafelület váltása, menük megnyitása, ..." #: ../../WPrefs.app/Menu.c:422 msgid "Window Manager" msgstr "AblakkezelÅ‘" #: ../../WPrefs.app/Menu.c:424 msgid "Program to Open Files" msgstr "Program a fájlok megnyitásához" #: ../../WPrefs.app/Menu.c:426 msgid "Command to Execute" msgstr "Parancs a végrehajtáshoz" #: ../../WPrefs.app/Menu.c:428 ../../WPrefs.app/Menu.c:1221 msgid "Program to Run" msgstr "Program a futtatáshoz" #: ../../WPrefs.app/Menu.c:477 ../../WPrefs.app/Menu.c:478 msgid "New Command %i" msgstr "Új parancs %i" #: ../../WPrefs.app/Menu.c:485 msgid "New Submenu" msgstr "Új almenü" #: ../../WPrefs.app/Menu.c:490 msgid "External Menu" msgstr "KülsÅ‘ menü" #: ../../WPrefs.app/Menu.c:497 msgid "Workspaces" msgstr "Munkafelületek" #: ../../WPrefs.app/Menu.c:1102 ../../WPrefs.app/Menu.c:1117 msgid "Commands" msgstr "Parancsok" #: ../../WPrefs.app/Menu.c:1103 ../../WPrefs.app/Menu.c:1118 msgid "Add Command" msgstr "Parancs létrehozása" #: ../../WPrefs.app/Menu.c:1104 ../../WPrefs.app/Menu.c:1119 msgid "Add Submenu" msgstr "Almenü létrehozása" #: ../../WPrefs.app/Menu.c:1105 ../../WPrefs.app/Menu.c:1120 msgid "Add External Menu" msgstr "KülsÅ‘ menü hozzáadása" #: ../../WPrefs.app/Menu.c:1106 ../../WPrefs.app/Menu.c:1121 msgid "Add Workspace Menu" msgstr "Munkafelület-menü hozzáadása" #: ../../WPrefs.app/Menu.c:1107 ../../WPrefs.app/Menu.c:1122 msgid "Remove Item" msgstr "Menüpont törlése" #: ../../WPrefs.app/Menu.c:1108 ../../WPrefs.app/Menu.c:1123 msgid "Cut Item" msgstr "Menüpont kivágása" #: ../../WPrefs.app/Menu.c:1109 ../../WPrefs.app/Menu.c:1124 msgid "Copy Item" msgstr "Menüpont másolása" #: ../../WPrefs.app/Menu.c:1110 ../../WPrefs.app/Menu.c:1125 msgid "Paste Item" msgstr "Menüpont beillesztése" #: ../../WPrefs.app/Menu.c:1156 msgid "Label" msgstr "Címke" #: ../../WPrefs.app/Menu.c:1169 msgid "Command" msgstr "Parancs" #: ../../WPrefs.app/Menu.c:1174 msgid "Run Program" msgstr "Program futtatása" #: ../../WPrefs.app/Menu.c:1175 msgid "Execute Shell Command" msgstr "Héjprogram futtatása" #: ../../WPrefs.app/Menu.c:1176 msgid "Arrange Icons" msgstr "Ikonok elrendezése" #: ../../WPrefs.app/Menu.c:1177 msgid "Hide Others" msgstr "Többi elrejtése \"HideOthers\"" #: ../../WPrefs.app/Menu.c:1178 msgid "Show All Windows" msgstr "Minden ablak mutatása" #: ../../WPrefs.app/Menu.c:1179 msgid "Exit WindowMaker" msgstr "Kilépés a WindowMakerbÅ‘l" #: ../../WPrefs.app/Menu.c:1180 msgid "Exit X Session" msgstr "Kilépés az X Sessionból" #: ../../WPrefs.app/Menu.c:1181 msgid "Start Window Manager" msgstr "AblakkezelÅ‘ indítása" #: ../../WPrefs.app/Menu.c:1182 msgid "Restart WindowMaker" msgstr "WindowMaker újraindítása" #: ../../WPrefs.app/Menu.c:1183 msgid "Save Session" msgstr "Session mentése" #: ../../WPrefs.app/Menu.c:1184 msgid "Clear Session" msgstr "Session törlése" #: ../../WPrefs.app/Menu.c:1185 msgid "Refresh Screen" msgstr "KépernyÅ‘ frissítése" #: ../../WPrefs.app/Menu.c:1186 msgid "Info Panel" msgstr "Információs panel" #: ../../WPrefs.app/Menu.c:1187 msgid "Legal Panel" msgstr "Jogi panel" #: ../../WPrefs.app/Menu.c:1195 msgid "Open workspace menu" msgstr "Munkafelületek menü megnyitása" #: ../../WPrefs.app/Menu.c:1202 msgid "No confirmation panel" msgstr "Nincs megerÅ‘sítÅ‘ panel" #: ../../WPrefs.app/Menu.c:1208 msgid "Menu Path/Directory List" msgstr "Menü elérési útja" #: ../../WPrefs.app/Menu.c:1253 msgid "Ask help to the Guru" msgstr "Kérj segítséget a varázslótól" #. if there is a localized plmenu for the tongue put it's filename here #: ../../WPrefs.app/Menu.c:1365 ../../WPrefs.app/Menu.c:1372 msgid "%s/Library/WindowMaker/plmenu" msgstr "" #: ../../WPrefs.app/Menu.c:1381 msgid "Could not open default menu from '%s'" msgstr "Nem tudom megnyitni az alapértelmezett '%s' menüt" #: ../../WPrefs.app/Menu.c:1491 msgid "Applications Menu Definition" msgstr "Alkalmazások menü" #: ../../WPrefs.app/Menu.c:1493 msgid "Edit the menu for launching applications." msgstr "Az indítható alkalmazások menüjének szerkesztése" #: ../../WPrefs.app/MenuPreferences.c:114 msgid "Menu Scrolling Speed" msgstr "Menügörgetés sebessége" #: ../../WPrefs.app/MenuPreferences.c:163 msgid "Submenu Alignment" msgstr "Almenü elrendezése" #: ../../WPrefs.app/MenuPreferences.c:207 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "Az almenük görgetés helyett mindig a képernyÅ‘n belül nyílnak meg." #: ../../WPrefs.app/MenuPreferences.c:212 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "Menük bezárása, ha az egérmutató elmozdul róluk" #: ../../WPrefs.app/MenuPreferences.c:232 msgid "Menu Preferences" msgstr "Menü jellemzÅ‘k" #: ../../WPrefs.app/MenuPreferences.c:234 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "Menü használatához tartozó beállítások. Görgetés\n" "sebessége, almenük elrendezése..." #: ../../WPrefs.app/MouseSettings.c:150 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "Érvénytelen egérgyorsulási érték. Pozitív valós számot adjál meg." #: ../../WPrefs.app/MouseSettings.c:170 msgid "Invalid mouse acceleration threshold value. Must be the number of pixels to travel before accelerating." msgstr "Érvénytelen egérgyorsulási küszöbérték. Adj meg akkora számot, amennyit mozgatni kell ahhoz, hogy gyorsuljon." #: ../../WPrefs.app/MouseSettings.c:229 msgid "mouse button %s not supported by WPrefs." msgstr "Az %s egérgombot nem támogatja a WPrefs." #: ../../WPrefs.app/MouseSettings.c:265 ../../WPrefs.app/MouseSettings.c:278 ../../WPrefs.app/MouseSettings.c:291 msgid "bad value %s for option %s" msgstr "hibás érték (%s) a \"%s\" opciónál" #: ../../WPrefs.app/MouseSettings.c:351 msgid "modifier key %s for option ModifierKey was not recognized. Using %s as default" msgstr "a (%s) módosító billentyűt (ModifierKey) nem ismerem. Az \"%s\" alapbeállítást használom." #: ../../WPrefs.app/MouseSettings.c:376 msgid "could not retrieve keyboard modifier mapping" msgstr "Nem tudom visszakeresni a billentyűzet-módosítót" #: ../../WPrefs.app/MouseSettings.c:523 msgid "Mouse Speed" msgstr "Egér sebessége" #: ../../WPrefs.app/MouseSettings.c:553 msgid "Acceler.:" msgstr "Gyorsulás:" #: ../../WPrefs.app/MouseSettings.c:566 msgid "Threshold:" msgstr "Küszöbszint:" #: ../../WPrefs.app/MouseSettings.c:581 msgid "Double-Click Delay" msgstr "Dupla kattintás késleltetése" #: ../../WPrefs.app/MouseSettings.c:625 msgid "Test" msgstr "Teszt" #: ../../WPrefs.app/MouseSettings.c:655 msgid "Workspace Mouse Actions" msgstr "Egérműveletek a munkafelületen" #: ../../WPrefs.app/MouseSettings.c:660 msgid "Disable mouse actions" msgstr "Egérműveletek letiltása" #: ../../WPrefs.app/MouseSettings.c:713 msgid "Applications menu" msgstr "Alkalmazások menü" #: ../../WPrefs.app/MouseSettings.c:719 msgid "Window list menu" msgstr "Ablakok menü" #: ../../WPrefs.app/MouseSettings.c:725 msgid "Select windows" msgstr "Ablak kiválasztása" #: ../../WPrefs.app/MouseSettings.c:760 msgid "Mouse Grab Modifier" msgstr "Egérműveletek billentyű-módosítója" #: ../../WPrefs.app/MouseSettings.c:762 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "A billentyű-módosító gombot olyan egérműveleteknél\n" "tudod használni, amikor az ablak területén belülre kattintasz.\n" "(pl.: ModifierKey+Bal gomb: ablak mozgatása)" #: ../../WPrefs.app/MouseSettings.c:796 msgid "could not create %s" msgstr "nem tudom a %s-t létrehozni" #: ../../WPrefs.app/MouseSettings.c:812 msgid "could not create temporary file %s" msgstr "nem tudom a %s ideiglenes fájlt létrehozni" #: ../../WPrefs.app/MouseSettings.c:843 msgid "could not rename file %s to %s\n" msgstr "nem tudom a %s fájlt átnevezni a következÅ‘vé: %s\n" #: ../../WPrefs.app/MouseSettings.c:927 msgid "Mouse Preferences" msgstr "Egér jellemzÅ‘i" #: ../../WPrefs.app/MouseSettings.c:929 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "Egér sebessége, dupla kattintás késleltetése,\n" "egér gombjainak funkciója, ..." #: ../../WPrefs.app/NoMenuAlert.c:100 msgid "Copy Default Menu" msgstr "Alapértelmezett menü" #: ../../WPrefs.app/NoMenuAlert.c:106 msgid "Keep Current Menu" msgstr "Jelenlegi menü megtartása" #: ../../WPrefs.app/Paths.c:84 msgid "bad value in option IconPath. Using default path list." msgstr "rossz érték az IconPath értékénél. Az alapértelmezett útvonalat használom." #: ../../WPrefs.app/Paths.c:101 msgid "bad value in option PixmapPath. Using default path list" msgstr "rossz érték a PixmapPath értékénél. Az alapértelmezett útvonalat használom." #: ../../WPrefs.app/Paths.c:149 msgid "Select directory" msgstr "Válassz könyvtárat" #: ../../WPrefs.app/Paths.c:281 ../../WPrefs.app/Paths.c:312 ../../WPrefs.app/TexturePanel.c:1302 msgid "Add" msgstr "Hozzáad" #: ../../WPrefs.app/Paths.c:288 ../../WPrefs.app/Paths.c:319 msgid "Remove" msgstr "Töröl" #: ../../WPrefs.app/Paths.c:341 msgid "Search Path Configuration" msgstr "Keresési útvonal beállítások" #: ../../WPrefs.app/Paths.c:343 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "Ikonok és bitképek elérési útja" #: ../../WPrefs.app/Preferences.c:159 msgid "Size Display" msgstr "Méret megjelenítés" #: ../../WPrefs.app/Preferences.c:161 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "Az ablakméret megjelenésének helye vagy\n" "stílusa (akkor jelenik meg, amikor átméretezed)" #: ../../WPrefs.app/Preferences.c:168 ../../WPrefs.app/Preferences.c:188 msgid "Corner of screen" msgstr "A képernyÅ‘ sarka" #: ../../WPrefs.app/Preferences.c:169 ../../WPrefs.app/Preferences.c:189 msgid "Center of screen" msgstr "A képernyÅ‘ közepe" #: ../../WPrefs.app/Preferences.c:170 ../../WPrefs.app/Preferences.c:190 msgid "Center of resized window" msgstr "Az ablak közepe" #: ../../WPrefs.app/Preferences.c:171 msgid "Technical drawing-like" msgstr "Méretnyilak alkalmazása" #: ../../WPrefs.app/Preferences.c:179 msgid "Position Display" msgstr "Helyzet megjelenítés" #: ../../WPrefs.app/Preferences.c:181 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "Az ablakhelyzet megjelenésének helye vagy stílusa\n" "(amikor akkor jelenik meg, amikor mozgatod az ablakot)" #: ../../WPrefs.app/Preferences.c:198 msgid "Show balloon text for..." msgstr "\"Ballon-súgó\" mutatása..." #: ../../WPrefs.app/Preferences.c:205 msgid "incomplete window titles" msgstr "hiányos ablakok címsorában" #: ../../WPrefs.app/Preferences.c:206 msgid "miniwindow titles" msgstr "miniablak címsorában" #: ../../WPrefs.app/Preferences.c:207 msgid "application/dock icons" msgstr "alkalmazás/rögzített ikonon" #: ../../WPrefs.app/Preferences.c:208 msgid "internal help" msgstr "belsÅ‘ súgóban" #: ../../WPrefs.app/Preferences.c:220 msgid "Raise window when switching focus with keyboard (CirculateRaise)." msgstr "Mindig az aktuális ablak legyen elÅ‘térben." #: ../../WPrefs.app/Preferences.c:226 msgid "Keep keyboard language status for each window." msgstr "Ablakonként megadható billentyűzetkiosztás." #: ../../WPrefs.app/Preferences.c:247 msgid "Miscellaneous Ergonomic Preferences" msgstr "Egyéb kényelmi beállítások" #: ../../WPrefs.app/Preferences.c:248 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "Kényelmi beállítások, úgymint a ballon-súgó,\n" "képernyÅ‘ pozíció..." #: ../../WPrefs.app/Text.c:181 msgid "Invalid font %s." msgstr "Érvénytelen betűtípus &s" #: ../../WPrefs.app/Text.c:258 msgid "Set Font..." msgstr "Betűtípus beállítása" #: ../../WPrefs.app/Text.c:264 msgid "Window Title Font" msgstr "Címsor betűtípus" #: ../../WPrefs.app/Text.c:265 msgid "Menu Title Font" msgstr "Menü címsor betűtípusa" #: ../../WPrefs.app/Text.c:266 msgid "Menu Item Font" msgstr "Menüpont betűtípusa" #: ../../WPrefs.app/Text.c:267 msgid "Icon Title Font" msgstr "Ikon-szöveg betűtípusa" #: ../../WPrefs.app/Text.c:268 msgid "Clip Title Font" msgstr "Kapocs-szöveg betűtípusa" #: ../../WPrefs.app/Text.c:269 msgid "Geometry Display Font" msgstr "Ablak-pozíció betűtípusa" #: ../../WPrefs.app/Text.c:282 msgid "" "Sample Text\n" "abcdefghijklmnopqrstuvxywz\n" "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" "0123456789" msgstr "" "Példa szöveg:\n" "abcdefghijklmnopqrstuvxywz\n" "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" "0123456789áéíóöőúüűÃÉÃÓÖÅÚÜŰ" #: ../../WPrefs.app/Text.c:287 msgid "Alignment" msgstr "Elrendezés" #: ../../WPrefs.app/Text.c:327 msgid "Text Preferences" msgstr "SzövegjellemzÅ‘k" #: ../../WPrefs.app/TexturePanel.c:605 msgid "Could not load the selected file: " msgstr "A kiválasztott fájlt nem tudom betölteni: " #: ../../WPrefs.app/TexturePanel.c:687 msgid "The selected file does not contain a supported image." msgstr "A kiválasztott fájl nem tartalmaz támogatott képformátumot." #: ../../WPrefs.app/TexturePanel.c:1246 msgid "Texture Panel" msgstr "Mintázat" #: ../../WPrefs.app/TexturePanel.c:1254 msgid "Texture Name" msgstr "Mintanév" #: ../../WPrefs.app/TexturePanel.c:1266 msgid "Solid Color" msgstr "Egyszínű" #: ../../WPrefs.app/TexturePanel.c:1267 msgid "Gradient Texture" msgstr "Színátmenet-minta" #: ../../WPrefs.app/TexturePanel.c:1268 msgid "Simple Gradient Texture" msgstr "Egyszerű színátmenet-minta" #: ../../WPrefs.app/TexturePanel.c:1269 msgid "Textured Gradient" msgstr "Mintázott színátmenet" #: ../../WPrefs.app/TexturePanel.c:1270 msgid "Image Texture" msgstr "Kép" #: ../../WPrefs.app/TexturePanel.c:1278 msgid "Default Color" msgstr "Szín" #: ../../WPrefs.app/TexturePanel.c:1290 msgid "Gradient Colors" msgstr "Ãtmenet színei" #: ../../WPrefs.app/TexturePanel.c:1386 msgid "Direction" msgstr "Irány" #: ../../WPrefs.app/TexturePanel.c:1414 msgid "Gradient" msgstr "Ãtmenet" #: ../../WPrefs.app/TexturePanel.c:1432 msgid "Gradient Opacity" msgstr "Színátmenet áttetszÅ‘ség" #: ../../WPrefs.app/TexturePanel.c:1475 msgid "Image" msgstr "Kép" #: ../../WPrefs.app/TexturePanel.c:1495 msgid "Browse..." msgstr "Tallózás..." #: ../../WPrefs.app/TexturePanel.c:1507 msgid "Tile" msgstr "Csempézett" #: ../../WPrefs.app/TexturePanel.c:1508 msgid "Scale" msgstr "Skálázott" #: ../../WPrefs.app/TexturePanel.c:1510 msgid "Maximize" msgstr "Maximált" #: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 msgid "Set" msgstr "Beállítás" #: ../../WPrefs.app/Themes.c:132 msgid "Stop" msgstr "Stop" #: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:205 ../../WPrefs.app/Themes.c:225 msgid "Download" msgstr "Letöltés" #: ../../WPrefs.app/Themes.c:173 msgid "Save Current Theme" msgstr "Aktuális téma elmentése" #: ../../WPrefs.app/Themes.c:182 msgid "Load" msgstr "Betöltés" #: ../../WPrefs.app/Themes.c:187 msgid "Install" msgstr "Telepítés" #: ../../WPrefs.app/Themes.c:195 msgid "Tile of The Day" msgstr "A nap csempéje" #: ../../WPrefs.app/Themes.c:215 msgid "Bar of The Day" msgstr "A nap sávja" #: ../../WPrefs.app/Themes.c:252 msgid "Themes" msgstr "Témák" #: ../../WPrefs.app/WindowHandling.c:136 msgid "bad option value %s in WindowPlacement. Using default value" msgstr "rossz érték (%s) a Windowplacement opciónál. Az alapértelmezett értéket használom." #: ../../WPrefs.app/WindowHandling.c:158 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "érvénytelen adat a WindowPlaceOrigin beállításánál. A (0,0)-t használom." #: ../../WPrefs.app/WindowHandling.c:225 msgid "Window Placement" msgstr "Ablak lehelyezése" #: ../../WPrefs.app/WindowHandling.c:226 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "Azt határozza meg, hogy ablak hova kerül a\n" "képernyÅ‘n, amikor elÅ‘ször megjelenik." #: ../../WPrefs.app/WindowHandling.c:232 msgid "Automatic" msgstr "Automatikus" #: ../../WPrefs.app/WindowHandling.c:233 msgid "Random" msgstr "Véletlenszerű" #: ../../WPrefs.app/WindowHandling.c:234 msgid "Manual" msgstr "Kézi" #: ../../WPrefs.app/WindowHandling.c:235 msgid "Cascade" msgstr "LépcsÅ‘zetes" msgid "Smart" msgstr "\"Ügyes\"" #: ../../WPrefs.app/WindowHandling.c:241 msgid "Placement Origin" msgstr "Kezdeti hely" #: ../../WPrefs.app/WindowHandling.c:301 msgid "Opaque Move" msgstr "Homályos mozgatás" #: ../../WPrefs.app/WindowHandling.c:302 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "Amikor az ablakot mozgatod, az ablak tartalma\n" "is mozogjon vele együtt, vagy csak a keret?\n" #: ../../WPrefs.app/WindowHandling.c:341 msgid "When maximizing..." msgstr "Amikor teljes méretűre állítod..." #: ../../WPrefs.app/WindowHandling.c:346 msgid "...do not cover icons" msgstr "...ne fedje le az ikonokat" #: ../../WPrefs.app/WindowHandling.c:352 msgid "...do not cover dock" msgstr "...ne fedje le a dokkokat" #: ../../WPrefs.app/WindowHandling.c:361 msgid "Edge Resistance" msgstr "Szegélyek vonzása" #: ../../WPrefs.app/WindowHandling.c:363 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "A szegélyek vonzása azt mondja meg, hogy az ablak\n" "hogyan viselkedjen (taszítás vagy vonzás) amikor\n" "egy másik objektumhoz kerül (másik ablak vagy a\n" "képernyÅ‘ széle) közel." #: ../../WPrefs.app/WindowHandling.c:390 msgid "Open dialogs in same workspace as their owners" msgstr "A dialogusablak ugyanazon a munkafelületen jelenik meg, ahol a szülÅ‘" #: ../../WPrefs.app/WindowHandling.c:417 msgid "Window Handling Preferences" msgstr "Ablakok kezelésének jellemzÅ‘i" #: ../../WPrefs.app/WindowHandling.c:419 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "Ablakok kezelésének tulajdonságai: kezdÅ‘ hely meghatározása,\n" "szegély vonzása, homályos mozgatás, stb.." msgid "Attract" msgstr "Vonz" msgid "Resist" msgstr "Taszít" #: ../../WPrefs.app/Workspace.c:139 msgid "Workspace Navigation" msgstr "Munkafelület-navigálás" #: ../../WPrefs.app/Workspace.c:163 msgid "drag windows between workspaces." msgstr "az ablakok átvihetÅ‘ek másik munkafelületre" #: ../../WPrefs.app/Workspace.c:188 msgid "switch to first workspace when switching past the last workspace and vice-versa" msgstr "" "amikor az utolsó munkafelületrÅ‘l\n" "továbblépsz, újra az elsÅ‘ jön" #: ../../WPrefs.app/Workspace.c:212 msgid "create a new workspace when switching past the last workspace." msgstr "" "amikor az utolsó munkafelületrÅ‘l\n" "továbblépsz, akkor létrejön egy új" #: ../../WPrefs.app/Workspace.c:220 msgid "Dock/Clip" msgstr "Dokk/Kapocs" #: ../../WPrefs.app/Workspace.c:239 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "A képernyÅ‘ oldalán lévÅ‘ alkalmazások dokkjának\n" "ki/bekapcsolása." #: ../../WPrefs.app/Workspace.c:259 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "A kapocs ki/bekapcsolása (olyan mint az iratkapocs)" #: ../../WPrefs.app/Workspace.c:296 msgid "Workspace Preferences" msgstr "Munkafelület jellemzÅ‘k" #: ../../WPrefs.app/Workspace.c:298 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "Munkafelület beállítások:\n" "A dokkolt ikonok és a kapocs jellemzÅ‘it tudod itt ki/bekapcsolni." #: ../../WPrefs.app/MenuGuru.c:106 msgid "Menu Guru - Select Type" msgstr "Menüvarázsló - Válassz típust" #: ../../WPrefs.app/MenuGuru.c:111 ../../WPrefs.app/MenuGuru.c:133 ../../WPrefs.app/MenuGuru.c:251 msgid "Next" msgstr "KövetkezÅ‘" #: ../../WPrefs.app/MenuGuru.c:114 msgid "Menu Guru - Select Menu File" msgstr "Menüvarázsló - Válassz menü fájlt" #: ../../WPrefs.app/MenuGuru.c:122 msgid "Menu Guru - Select Pipe Command" msgstr "Menüvarázsló - Válassz pipe (csÅ‘) parancsot" #: ../../WPrefs.app/MenuGuru.c:129 msgid "Menu Guru - Select Directories" msgstr "Menüvarázsló - Válassz könyvtárat" #: ../../WPrefs.app/MenuGuru.c:136 msgid "Menu Guru - Select Command" msgstr "Menüvarázsló - Válassz parancsot" #: ../../WPrefs.app/MenuGuru.c:257 msgid "Back" msgstr "Vissza" #: ../../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 "" "Ez az eljárás segít az almenü létrehozásában, ami most egy másik fájlban található vagy dinamikusan lesz létrehozva.\n" "Mit szeretnél használni a tartalmának létrehozásához?" #: ../../WPrefs.app/MenuGuru.c:279 msgid "A file containing the menu definition in the plain text (non-property list) menu format." msgstr "Egy fájlt, ami tartalmazza a menü leírását egyszerű szöveges formában" #: ../../WPrefs.app/MenuGuru.c:285 msgid "The menu definition generated by a script/program read through a pipe." msgstr "A menü leírását egy script/program hozza létre, és csövön (pipe) keresztül kell beolvasni." #: ../../WPrefs.app/MenuGuru.c:291 msgid "The files in one or more directories." msgstr "Több fájl (egy vagy több könyvtárban)" #: ../../WPrefs.app/MenuGuru.c:303 msgid "Type the path for the menu file:" msgstr "Ãrd be a menü fájl elérési útvonalát:" #: ../../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 "A menü fájlnak tartalmaznia kell a menü leírását egyszerű, szöveges formában. A pontos formátumot megtalálod a WindowMakerrel együtt terjesztett menü fájlokban, pl.: ~/GNUstep/Library/WindowMaker/menu" #: ../../WPrefs.app/MenuGuru.c:328 msgid "Type the command that will generate the menu definition:" msgstr "Ãrd be a parancsot, amely elkészíti a menü leírását:" #: ../../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 "A megadott parancsnak helyes szintaxisú menü-leírást kell küldenie a kimenetre. Ennek a leírásnak egyszerű, szöveges formátumúnak kell lennie, amirÅ‘l a WindowMakerrel terjesztett menü fájlokban találsz bÅ‘vebb leírást (pl.: ~/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 "Ãrd be a könyvtár elérési útvonalát. Több könyvtárat is beírhatsz; ezeket szóközzel válaszd el egymástól." #: ../../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 "Az elkészített menünek minden eleme egy fájlt fog jelenti a könyvtárban. A könyvtár tartalmazhat futtatható és adatfájlokat (pl jpg képeket)" #: ../../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 "Ha a könyvtár tartalmaz adatfájlokat, akkor írd be a parancsot, amivel megnyithatóak ezek a fájl (különben hagyd üresen)" #: ../../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 "Minden fájl ebben a könyvtárban egy menüpontot fog jelenti és ezek a fájlok a megadott paranccsal lesznek feldolgozva. Pl.: ha a könyvtár jpeg fájlokat tartalmaz, és a parancs \"xv -root\", akkor minden egyes menüpont így fog kinézni: \"xv -root imagefile\"." msgid "Disable confirmation panel for the Kill command." msgstr "A kilövés parancsot nem kell megerÅ‘síteni." �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/ko.po��������������������������������������������������������������0000644�0001750�0001750�00000216052�12214432632�014343� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# WPrefs.app po file for Korean. # Copyright (C) 1998 Free Software Foundation, Inc. # Byeong-Chan Kim <redhands@linux.sarang.net>, 1999. # Update: CHOI Junho <cjh@kr.freebsd.org>, 1998/12. # Update: Lee, Seong-Gu <sgleehd@gmail.com>, 2013/08 # msgid "" msgstr "" "Project-Id-Version: 0.95.4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-08-13 19:07+0900\n" "PO-Revision-Date: 2013-08-13 19:26+0900\n" "Last-Translator: \n" "Language-Team: Korean\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.5.4\n" #: ../../WPrefs.app/Appearance.c:1051 msgid "Select File" msgstr "íŒŒì¼ ì„ íƒ" #: ../../WPrefs.app/Appearance.c:1406 msgid "Focused Window" msgstr "활성화 ì°½" #: ../../WPrefs.app/Appearance.c:1411 msgid "Unfocused Window" msgstr "비활성 ì°½" #: ../../WPrefs.app/Appearance.c:1416 msgid "Owner of Focused Window" msgstr "활성 ì°½ì˜ ë¶€ëª¨ì°½" #: ../../WPrefs.app/Appearance.c:1420 ../../WPrefs.app/Appearance.c:1718 #: ../../WPrefs.app/FontSimple.c:100 msgid "Menu Title" msgstr "메뉴 타ì´í‹€" #: ../../WPrefs.app/Appearance.c:1424 ../../WPrefs.app/Appearance.c:1426 msgid "Normal Item" msgstr "ì¼ë°˜ 항목" #: ../../WPrefs.app/Appearance.c:1431 msgid "Disabled Item" msgstr "안 쓰는 항목" #: ../../WPrefs.app/Appearance.c:1440 msgid "Highlighted" msgstr "ì„ íƒë¨" #: ../../WPrefs.app/Appearance.c:1618 msgid "Texture" msgstr "í…스처" #: ../../WPrefs.app/Appearance.c:1625 msgid "Titlebar of Focused Window" msgstr "활성 ì°½ 타ì´í‹€ë°”" #: ../../WPrefs.app/Appearance.c:1626 msgid "Titlebar of Unfocused Windows" msgstr "비활성 ì°½ 타ì´í‹€ë°”" #: ../../WPrefs.app/Appearance.c:1627 msgid "Titlebar of Focused Window's Owner" msgstr "활성 ì°½ì˜ ë¶€ëª¨ì°½ 타ì´í‹€ë°”" #: ../../WPrefs.app/Appearance.c:1628 msgid "Window Resizebar" msgstr "ì°½ í¬ê¸°ì¡°ì • ë°”" #: ../../WPrefs.app/Appearance.c:1629 msgid "Titlebar of Menus" msgstr "메뉴 타ì´í‹€ë°”" #: ../../WPrefs.app/Appearance.c:1630 msgid "Menu Items" msgstr "메뉴 항목" #: ../../WPrefs.app/Appearance.c:1631 msgid "Icon Background" msgstr "ì•„ì´ì½˜ ë°°ê²½" #: ../../WPrefs.app/Appearance.c:1646 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "ì„ íƒí•œ ì•„ì´í…œì—서 ì‚¬ìš©í•˜ê³ ìž í•˜ëŠ”\n" "í…스ì³ë¥¼ ë”블 í´ë¦­í•˜ì‹­ì‹œì˜¤." #: ../../WPrefs.app/Appearance.c:1658 msgid "New" msgstr "ìƒì„±" #: ../../WPrefs.app/Appearance.c:1662 msgid "Create a new texture." msgstr "새로운 í…스ì³ë¥¼ ìƒì„±í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Appearance.c:1669 msgid "Extract..." msgstr "추출..." #: ../../WPrefs.app/Appearance.c:1673 msgid "Extract texture(s) from a theme or a style file." msgstr "테마나 ìŠ¤íƒ€ì¼ íŒŒì¼ì—서 í…스ì³ë¥¼ 추출합니다." #: ../../WPrefs.app/Appearance.c:1682 msgid "Edit" msgstr "편집" #: ../../WPrefs.app/Appearance.c:1685 msgid "Edit the highlighted texture." msgstr "ì„ íƒëœ í…스ì³ë¥¼ 편집합니다." #: ../../WPrefs.app/Appearance.c:1692 ../../WPrefs.app/TexturePanel.c:1195 msgid "Delete" msgstr "지움" #: ../../WPrefs.app/Appearance.c:1696 msgid "Delete the highlighted texture." msgstr "ì„ íƒëœ í…스ì³ë¥¼ 삭제합니다." #: ../../WPrefs.app/Appearance.c:1708 msgid "Color" msgstr "색ìƒ" #: ../../WPrefs.app/Appearance.c:1715 msgid "Focused Window Title" msgstr "활성 ì°½ 제목" #: ../../WPrefs.app/Appearance.c:1716 msgid "Unfocused Window Title" msgstr "비활성 ì°½ 제목" #: ../../WPrefs.app/Appearance.c:1717 msgid "Owner of Focused Window Title" msgstr "활성 ì°½ ì œëª©ì˜ ì†Œìœ ìž" #: ../../WPrefs.app/Appearance.c:1719 msgid "Menu Item Text" msgstr "메뉴 항목 글ìž" #: ../../WPrefs.app/Appearance.c:1720 msgid "Disabled Menu Item Text" msgstr "꺼진 메뉴 항목 글ìž" #: ../../WPrefs.app/Appearance.c:1721 msgid "Menu Highlight Color" msgstr "ì„ íƒëœ 메뉴 색ìƒ" #: ../../WPrefs.app/Appearance.c:1722 msgid "Highlighted Menu Text Color" msgstr "ì„ íƒëœ ë©”ë‰´ì˜ ê¸€ìž ìƒ‰ìƒ" #: ../../WPrefs.app/Appearance.c:1759 msgid "Background" msgstr "ë°°ê²½" #: ../../WPrefs.app/Appearance.c:1771 ../../WPrefs.app/TexturePanel.c:1370 msgid "Browse..." msgstr "보기..." #: ../../WPrefs.app/Appearance.c:1781 msgid "Options" msgstr "옵션" #: ../../WPrefs.app/Appearance.c:1788 msgid "Menu Style" msgstr "메뉴 스타ì¼" #: ../../WPrefs.app/Appearance.c:1816 ../../WPrefs.app/Configurations.c:179 #: ../../WPrefs.app/Configurations.c:191 ../../WPrefs.app/Docks.c:187 #: ../../WPrefs.app/Docks.c:195 ../../WPrefs.app/Focus.c:266 #: ../../WPrefs.app/Focus.c:277 ../../WPrefs.app/MenuPreferences.c:127 #: ../../WPrefs.app/MenuPreferences.c:138 #: ../../WPrefs.app/MenuPreferences.c:166 #: ../../WPrefs.app/MenuPreferences.c:181 ../../WPrefs.app/MouseSettings.c:517 #: ../../WPrefs.app/MouseSettings.c:528 ../../WPrefs.app/WPrefs.c:501 #: ../../WPrefs.app/WPrefs.c:526 #, c-format msgid "could not load icon file %s" msgstr "ì•„ì´ì½˜ íŒŒì¼ %s를 ì½ì„ 수 ì—†ìŒ" #: ../../WPrefs.app/Appearance.c:1829 msgid "Title Alignment" msgstr "제목 ì •ë ¬" #: ../../WPrefs.app/Appearance.c:1836 msgid "Left" msgstr "왼쪽" #: ../../WPrefs.app/Appearance.c:1839 ../../WPrefs.app/TexturePanel.c:1384 #: ../../WPrefs.app/WindowHandling.c:278 ../../WPrefs.app/Workspace.c:189 msgid "Center" msgstr "가운ë°" #: ../../WPrefs.app/Appearance.c:1842 msgid "Right" msgstr "오른쪽" #: ../../WPrefs.app/Appearance.c:2045 msgid "Appearance Preferences" msgstr "모양 설정" #: ../../WPrefs.app/Appearance.c:2047 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "ì°½, 메뉴, ì•„ì´ì½˜ì— 사용할\n" "ë°°ê²½ í…스ì³ë¥¼ 설정합니다." #: ../../WPrefs.app/Appearance.c:2083 msgid "Extract Texture" msgstr "í…스처 추출하기" #: ../../WPrefs.app/Appearance.c:2103 msgid "Textures" msgstr "í…스처" #: ../../WPrefs.app/Appearance.c:2112 ../../WPrefs.app/WPrefs.c:230 msgid "Close" msgstr "닫기" #: ../../WPrefs.app/Appearance.c:2117 msgid "Extract" msgstr "추출" #: ../../WPrefs.app/Configurations.c:130 ../../WPrefs.app/Docks.c:141 #: ../../WPrefs.app/Workspace.c:106 #, c-format msgid "could not load image file %s" msgstr "ì´ë¯¸ì§€ íŒŒì¼ %s를 ì½ì„ 수 ì—†ìŒ" #: ../../WPrefs.app/Configurations.c:141 msgid "Icon Slide Speed" msgstr "ì•„ì´ì½˜ 슬ë¼ì´ë“œ ì†ë„" #: ../../WPrefs.app/Configurations.c:147 msgid "Shade Animation Speed" msgstr "ê·¸ë¦¼ìž ì• ë‹ˆë©”ì´ì…˜ ì†ë„" #: ../../WPrefs.app/Configurations.c:206 msgid "Smooth Scaling" msgstr "부드러운 스케ì¼ë§" #: ../../WPrefs.app/Configurations.c:207 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "ë°°ê²½ ê·¸ë¦¼ì˜ ë¶€ë“œëŸ¬ìš´ 스케ì¼ë§, `pixelization'\n" "효과를 중화시킵니다. ë°°ê²½ ì´ë¯¸ì§€ë¥¼ ì½ì–´ 들ì´ëŠ”\n" "ì†ë„ê°€ ìƒë‹¹ížˆ ëŠë ¤ì§‘니다." #: ../../WPrefs.app/Configurations.c:247 msgid "Titlebar Style" msgstr "타ì´í‹€ë°” 스타ì¼" #: ../../WPrefs.app/Configurations.c:300 ../../WPrefs.app/Configurations.c:306 msgid "Animations" msgstr "애니메ì´ì…˜" #: ../../WPrefs.app/Configurations.c:317 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "윈ë„ìš° 최소화시, ì‰ì´ë”© 기능등ì—서 애니메ì´ì…˜ì„\n" "켜고 ë„는 ê²ƒì„ ì„¤ì •í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Configurations.c:324 msgid "Superfluous" msgstr "추가 설정" #: ../../WPrefs.app/Configurations.c:335 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "`추가설정' 기능과 애니메ì´ì…˜ì„ ë„ê³  켭니다.\n" "ì´ ê¸°ëŠ¥ì€ ë‹¤ë¥¸ 쪽으로 ë…ì„ ì´ë™í•  때\n" "ëŒë¦¬ëŠ” 효과나 ë…ì—서 ì•„ì´ì½˜ì„ 버릴 때\n" "í­íŒŒë˜ëŠ” 효과를 í¬í•¨í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Configurations.c:348 msgid "Dithering colormap for 8bpp" msgstr "8bpp(256색)ìš© 컬러맵 ë””ë”ë§" #: ../../WPrefs.app/Configurations.c:350 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "8bpp(ê°€ìƒ ìƒ‰) ë§Œ ì§€ì›í•˜ëŠ” 화면ì—서\n" " 윈ë„ìš° ë©”ì´ì»¤ê°€ 사용할 색 수를 정합니다." #: ../../WPrefs.app/Configurations.c:357 msgid "Disable dithering in any visual/depth" msgstr "모든 비주얼/ìƒ‰ìƒ ê¹Šì´ì—서 ë””ë”ë§ ì‚¬ìš©í•˜ì§€ 않ìŒ" #: ../../WPrefs.app/Configurations.c:378 msgid "" "More colors for\n" "applications" msgstr "" "ì‘용프로그램ì´\n" " ë” ë§Žì€ ìƒ‰ 사용" #: ../../WPrefs.app/Configurations.c:385 msgid "" "More colors for\n" "Window Maker" msgstr "" "윈ë„ìš° ë©”ì´ì»¤ê°€\n" " ë” ë§Žì€ ìƒ‰ 사용" #: ../../WPrefs.app/Configurations.c:434 msgid "Other Configurations" msgstr "기타 설정" #: ../../WPrefs.app/Configurations.c:435 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "애니메ì´ì…˜ ì†ë„, 타ì´í‹€ë°” 스타ì¼, ê·¸ 외 옵션 설정과\n" "8bit 화면ì—서 윈ë„ìš° ë©”ì´ì»¤ê°€ 사용할 \n" "색ìƒì˜ 수를 설정합니다." #: ../../WPrefs.app/Docks.c:159 msgid "Delays in milliseconds for autocollapsing clips" msgstr "밀리세컨드로 í‘œì‹œëœ í´ë¦½ ìžë™ 축소 지연 시간" #: ../../WPrefs.app/Docks.c:161 msgid "Delays in milliseconds for autoraising clips" msgstr "밀리세컨드로 í‘œì‹œëœ í´ë¦½ ìžë™ 올림 지연 시간" #: ../../WPrefs.app/Docks.c:214 msgid "Dock/Clip/Drawer" msgstr "ë…/í´ë¦½/서ëž" #: ../../WPrefs.app/Docks.c:234 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "애플리케ì´ì…˜ Dockì„ ì‚¬ìš©í•  것ì¸ì§€ 설정합니다.\n" "(스í¬ë¦° 구ì„ì˜ ìˆ˜ì§ ì•„ì´ì½˜ ë°”)" #: ../../WPrefs.app/Docks.c:238 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "í´ë¦½ì„ 사용할 것ì¸ì§€ 설정합니다.\n" "(í´ë¦½ ëª¨ì–‘ì˜ ì•„ì´ì½˜ì´ 있는 것)" #: ../../WPrefs.app/Docks.c:242 msgid "" "Disable/enable Drawers (a dock that stores\n" "application icons horizontally). The dock is required." msgstr "" "ì„œëž ì‚¬ìš©/ë„기 (ì‘용프로그램 ì•„ì´ì½˜ì„\n" " 세로로 저장하는 ë…). ë…ì´ í•„ìš”í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Docks.c:293 msgid "Delay before auto-expansion" msgstr "ìžë™ 확장 ì „ 지연 시간" #: ../../WPrefs.app/Docks.c:294 msgid "Delay before auto-collapsing" msgstr "ìžë™ 축소 ì „ 지연 시간" #: ../../WPrefs.app/Docks.c:295 msgid "Delay before auto-raise" msgstr "ìžë™ 올림 ì „ 지연 시간" #: ../../WPrefs.app/Docks.c:296 msgid "Delay before auto-lowering" msgstr "ìžë™ 내림 ì „ 지연 시간" #: ../../WPrefs.app/Docks.c:301 msgid "Dock Preferences" msgstr "ë… ì„¤ì •" #: ../../WPrefs.app/Docks.c:303 msgid "" "Dock and clip features.\n" "Enable/disable the Dock and Clip, and tune some delays." msgstr "" "ë…ê³¼ í´ë¦½ì˜ 기능 설정.\n" "ë…ê³¼ í´ë¦½ì„ 사용 여부 ë° í™œì„±í™” 지연 ì‹œê°„ì„ ì¡°ì •í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Expert.c:41 msgid "" "Disable miniwindows (icons for minimized windows). For use with KDE/GNOME." msgstr "최소화창 (ìµœì†Œí™”ëœ ì°½ì˜ ì•„ì´ì½˜)ì„ ì‚¬ìš©í•˜ì§€ 않습니다. KDE/GNOME 사용시." #. default: #: ../../WPrefs.app/Expert.c:44 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "" "윈ë„ìš° ë©”ì´ì»¤ 고유 설정 ì´ì™¸ëŠ” 지정하지 않습니다 (xsetì„ ì‚¬ìš©í•˜ì§€ 않ìŒ)." #. default: #: ../../WPrefs.app/Expert.c:47 msgid "Automatically save session when exiting Window Maker." msgstr "윈ë„ìš° ë©”ì´ì»¤ 종료시 ì„¸ì…˜ì„ ìžë™ìœ¼ë¡œ 저장합니다." #. default: #: ../../WPrefs.app/Expert.c:50 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "ì°½ 프레임, ì•„ì´ì½˜, 메뉴 등ì—서 SaveUnder를 사용합니다." #. default: #: ../../WPrefs.app/Expert.c:53 msgid "Disable confirmation panel for the Kill command." msgstr "ê°•ì œ 종료 명령시 í™•ì¸ íŒ¨ë„ì„ ì‚¬ìš©ì¹˜ 않ìŒ." #. default: #: ../../WPrefs.app/Expert.c:56 msgid "Disable selection animation for selected icons." msgstr "ì„ íƒëœ ì•„ì´ì½˜ì— ì„ íƒ ì• ë‹ˆë©”ì´ì…˜ì„ 사용하지 않습니다." #. default: #: ../../WPrefs.app/Expert.c:59 msgid "Smooth font edges (needs restart)." msgstr "글꼴 가장ìžë¦¬ë¥¼ 부드럽게 (재시작 í•„ìš”)." #. default: #: ../../WPrefs.app/Expert.c:62 msgid "Cycle windows only on the active head." msgstr "í™œì„±í™”ëœ ì°½ì—서만 순환합니다." #. default: #: ../../WPrefs.app/Expert.c:65 msgid "Ignore minimized windows when cycling." msgstr "순환할 때 ìµœì†Œí™”ëœ ì°½ì„ ë¬´ì‹œí•©ë‹ˆë‹¤." #. default: #: ../../WPrefs.app/Expert.c:68 msgid "Show workspace title on Clip." msgstr "í´ë¦½ì— 작업공간 ì œëª©ì„ ë³´ì—¬ì¤ë‹ˆë‹¤." #. default: #: ../../WPrefs.app/Expert.c:71 msgid "Highlight the icon of the application when it has the focus." msgstr "í™œì„±í™”ëœ ì‘ìš©í”„ë¡œê·¸ëž¨ì˜ ì•„ì´ì½˜ì„ 강조합니다." #: ../../WPrefs.app/Expert.c:75 msgid "Enable keyboard language switch button in window titlebars." msgstr "ì°½ 타ì´í‹€ë°”ì— í‚¤ë³´ë“œ 언어 전환 ë²„íŠ¼ì„ í‘œì‹œí•©ë‹ˆë‹¤." #: ../../WPrefs.app/Expert.c:174 msgid "Expert User Preferences" msgstr "고급 사용ìžìš© 설정" #: ../../WPrefs.app/Expert.c:176 msgid "" "Options for people who know what they're doing...\n" "Also has some other misc. options." msgstr "" "ìžì‹ ì´ ë¬´ì—‡ì„ í•˜ê³  있는지 아는 ì‚¬ëžŒë“¤ì„ ìœ„í•œ 옵션...\n" "ë˜í•œ 기타 ê¸°ëŠ¥ë“¤ì˜ ì„¤ì •ì„ í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Focus.c:75 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "FocusMode ì˜µì…˜ì— ìž˜ëª»ëœ ê°’ %s. ê¸°ë³¸ê°’ì¸ Manualì„ ì‚¬ìš©" #: ../../WPrefs.app/Focus.c:87 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "ColormapMode ì˜µì…˜ì— ìž˜ëª»ëœ ê°’ %s. ê¸°ë³¸ê°’ì¸ Auto를 사용" #: ../../WPrefs.app/Focus.c:195 msgid "Input Focus Mode" msgstr "ìž…ë ¥ 활성화 모드" #: ../../WPrefs.app/Focus.c:203 msgid "Manual: Click on the window to set keyboard input focus." msgstr "수ë™: 키보드 ìž…ë ¥ì„ í™œì„±í™”í•˜ë ¤ë©´ ì°½ì„ í´ë¦­í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Focus.c:209 msgid "Auto: Set keyboard input focus to the window under the mouse pointer." msgstr "ìžë™: 마우스 í¬ì¸í„° ì•„ëž˜ì— ìžˆëŠ” 창으로 키보드 ìž…ë ¥ì„ í™œì„±í™”í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Focus.c:222 msgid "Install colormap in the window..." msgstr "ì»¬ëŸ¬ë§µì˜ ì„¤ì¹˜ëŠ”" #: ../../WPrefs.app/Focus.c:227 msgid "...that has the input focus." msgstr "ìž…ë ¥ 활성화가 ëœ ì°½." #: ../../WPrefs.app/Focus.c:232 msgid "...that's under the mouse pointer." msgstr "...마우스 í¬ì¸í„° 아래입니다." #: ../../WPrefs.app/Focus.c:241 msgid "Automatic Window Raise Delay" msgstr "ìžë™ ì°½ 올림 지연 시간" #: ../../WPrefs.app/Focus.c:296 ../../WPrefs.app/MouseSettings.c:558 msgid "msec" msgstr "msec" #: ../../WPrefs.app/Focus.c:313 msgid "Do not let applications receive the click used to focus windows." msgstr "ì‘ìš©í”„ë¡œê·¸ëž¨ì´ ì°½ì„ í™œì„±í™”í•˜ëŠ” í´ë¦­ì„ 받지 못하ë„ë¡ í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Focus.c:318 msgid "Automatically focus new windows." msgstr "새로운 ì°½ì„ ìžë™ 활성화합니다." #: ../../WPrefs.app/Focus.c:323 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "" "키보드로 활성화 전환시\n" " ì°½ì„ ì˜¬ë¦½ë‹ˆë‹¤." #: ../../WPrefs.app/Focus.c:339 msgid "Window Focus Preferences" msgstr "ì°½ 활성화 설정" #: ../../WPrefs.app/Focus.c:340 msgid "Keyboard focus switching policy and related options." msgstr "키보드 활성화 전환 방법 ë° ê´€ë ¨ëœ ì˜µì…˜ì„ ì„¤ì •í•©ë‹ˆë‹¤." #: ../../WPrefs.app/FontSimple.c:99 msgid "Window Title" msgstr "ì°½ 제목" #: ../../WPrefs.app/FontSimple.c:101 msgid "Menu Text" msgstr "메뉴 글ìž" #: ../../WPrefs.app/FontSimple.c:102 msgid "Icon Title" msgstr "ì•„ì´ì½˜ 제목" #: ../../WPrefs.app/FontSimple.c:103 msgid "Clip Title" msgstr "í´ë¦½ 제목" #: ../../WPrefs.app/FontSimple.c:104 msgid "Desktop Caption" msgstr "바탕화면 제목" #: ../../WPrefs.app/FontSimple.c:638 msgid "Sample Text" msgstr "ê¸€ìž ì˜ˆì œ" #: ../../WPrefs.app/FontSimple.c:655 msgid "Family" msgstr "글꼴" #: ../../WPrefs.app/FontSimple.c:681 msgid "Style" msgstr "글꼴 스타ì¼" #: ../../WPrefs.app/FontSimple.c:684 msgid "Size" msgstr "í¬ê¸°" #: ../../WPrefs.app/FontSimple.c:716 msgid "Font Configuration" msgstr "글꼴 설정" #: ../../WPrefs.app/FontSimple.c:718 msgid "Configure fonts for Window Maker titlebars, menus etc." msgstr "윈ë„ìš° ë©”ì´ì»¤ì˜ 제목ì´ë‚˜ 메뉴 ë“±ì˜ ê¸€ê¼´ì„ ì„¤ì •í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Icons.c:166 msgid "Icon Positioning" msgstr "ì•„ì´ì½˜ 위치" #: ../../WPrefs.app/Icons.c:212 msgid "Icon Size" msgstr "ì•„ì´ì½˜ í¬ê¸°" #: ../../WPrefs.app/Icons.c:214 msgid "The size of the dock/application icon and miniwindows" msgstr "ë…/ì‘용프로그램 ì•„ì´ì½˜, ìµœì†Œí™”ì°½ì˜ í¬ê¸°" #: ../../WPrefs.app/Icons.c:231 msgid "Iconification Animation" msgstr "ì•„ì´ì½˜í™”시 애니메ì´ì…˜" #: ../../WPrefs.app/Icons.c:242 msgid "Shrinking/Zooming" msgstr "축소/확대" #: ../../WPrefs.app/Icons.c:243 msgid "Spinning/Twisting" msgstr "회전/트위스트" #: ../../WPrefs.app/Icons.c:244 msgid "3D-flipping" msgstr "3ì°¨ì› íšŒì „" #: ../../WPrefs.app/Icons.c:245 ../../WPrefs.app/MouseSettings.c:787 #: ../../WPrefs.app/MouseSettings.c:792 msgid "None" msgstr "ì—†ìŒ" #: ../../WPrefs.app/Icons.c:258 msgid "Auto-arrange icons" msgstr "ì•„ì´ì½˜ ìžë™ ì •ë ¬" #: ../../WPrefs.app/Icons.c:260 msgid "Keep icons and miniwindows arranged all the time." msgstr "언제나 ì•„ì´ì½˜ê³¼ ìµœì†Œí™”ì°½ì„ ì •ë ¬í•˜ë„ë¡ í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Icons.c:265 msgid "Omnipresent miniwindows" msgstr "최소화창 í•­ìƒ ë³´ìž„" #: ../../WPrefs.app/Icons.c:267 msgid "Make miniwindows be present in all workspaces." msgstr "ìµœì†Œí™”ì°½ë“¤ì´ ëª¨ë“  작업 공간ì—서 ë³´ì´ê²Œ 합니다." #: ../../WPrefs.app/Icons.c:272 msgid "Single click activation" msgstr "한번 눌러 활성화" #: ../../WPrefs.app/Icons.c:274 msgid "Launch applications and restore windows with a single click." msgstr "마우스를 한번 눌러 ì‘ìš©í”„ë¡œê·¸ëž¨ì„ ì‹¤í–‰í•˜ê³  ì°½ì„ ë³µì›í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Icons.c:329 msgid "Icon Preferences" msgstr "ì•„ì´ì½˜ 설정" #: ../../WPrefs.app/Icons.c:331 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "ì•„ì´ì½˜/ìµœì†Œí™”ì°½ì˜ ì œì–´ 옵션. ì•„ì´ì½˜ì˜ 위치\n" "í¬ê¸°, ìµœì†Œí™”ì‹œì˜ ì• ë‹ˆë©”ì´ì…˜ 스타ì¼ì„ 지정합니다." #: ../../WPrefs.app/KeyboardSettings.c:68 msgid "Initial Key Repeat" msgstr "초기 키 반복 ì†ë„" #: ../../WPrefs.app/KeyboardSettings.c:109 msgid "Key Repeat Rate" msgstr "키 반복율" #: ../../WPrefs.app/KeyboardSettings.c:149 msgid "Type here to test" msgstr "여기서 시험하세요" #: ../../WPrefs.app/KeyboardSettings.c:164 msgid "Keyboard Preferences" msgstr "키보드 설정" #: ../../WPrefs.app/KeyboardSettings.c:166 msgid "Not done" msgstr "완료 안ë¨" #: ../../WPrefs.app/KeyboardShortcuts.c:72 msgid "Open applications menu" msgstr "ì‘용프로그램 메뉴 열기" #: ../../WPrefs.app/KeyboardShortcuts.c:73 msgid "Open window list menu" msgstr "ì°½ ëª©ë¡ ë©”ë‰´ 열기" #: ../../WPrefs.app/KeyboardShortcuts.c:74 msgid "Open window commands menu" msgstr "ì°½ 명령 메뉴 열기" #: ../../WPrefs.app/KeyboardShortcuts.c:75 msgid "Hide active application" msgstr "í™œì„±í™”ëœ ì‘용프로그램 숨김" #: ../../WPrefs.app/KeyboardShortcuts.c:76 msgid "Hide other applications" msgstr "다른 ì‘용프로그램 숨김" #: ../../WPrefs.app/KeyboardShortcuts.c:77 msgid "Miniaturize active window" msgstr "í™œì„±í™”ëœ ì°½ 최소화" #: ../../WPrefs.app/KeyboardShortcuts.c:78 msgid "Miniaturize all windows" msgstr "모든 ì°½ 최소화" #: ../../WPrefs.app/KeyboardShortcuts.c:79 msgid "Close active window" msgstr "í™œì„±í™”ëœ ì°½ 닫기" #: ../../WPrefs.app/KeyboardShortcuts.c:80 msgid "Maximize active window" msgstr "í™œì„±í™”ëœ ì°½ 최대화" #: ../../WPrefs.app/KeyboardShortcuts.c:81 msgid "Maximize active window vertically" msgstr "ì°½ì„ ì„¸ë¡œë¡œ 최대화" #: ../../WPrefs.app/KeyboardShortcuts.c:82 msgid "Maximize active window horizontally" msgstr "활성 ì°½ì„ ì„¸ë¡œë¡œ 최대화" #: ../../WPrefs.app/KeyboardShortcuts.c:83 msgid "Maximize active window left half" msgstr "활성 ì°½ì„ ì™¼ìª½ 가운ë°ë¡œ 최대화" #: ../../WPrefs.app/KeyboardShortcuts.c:84 msgid "Maximize active window right half" msgstr "활성 ì°½ì„ ì˜¤ë¥¸ìª½ 가운ë°ë¡œ 최대화" #: ../../WPrefs.app/KeyboardShortcuts.c:85 msgid "Maximize active window top half" msgstr "활성 ì°½ì„ ìœ„ 가운ë°ë¡œ 최대화" #: ../../WPrefs.app/KeyboardShortcuts.c:86 msgid "Maximize active window bottom half" msgstr "활성 ì°½ì„ ë°”ë‹¥ 가운ë°ë¡œ 최대화" #: ../../WPrefs.app/KeyboardShortcuts.c:87 msgid "Maximize active window left top corner" msgstr "활성 ì°½ì„ ì™¼ìª½ 위 구ì„으로 최대화" #: ../../WPrefs.app/KeyboardShortcuts.c:88 msgid "Maximize active window right top corner" msgstr "활성 ì°½ì„ ì˜¤ë¥¸ìª½ 위 구ì„으로 최대화" #: ../../WPrefs.app/KeyboardShortcuts.c:89 msgid "Maximize active window left bottom corner" msgstr "ì°½ì„ ì„¸í™œì„± ì°½ì„ ì™¼ìª½ë°”ë‹¥ 구ì„으로 최대화" #: ../../WPrefs.app/KeyboardShortcuts.c:90 msgid "Maximize active window right bottom corner" msgstr "활성 ì°½ì„ ì˜¤ë¥¸ìª½ 바닥 구ì„으로 최대화" #: ../../WPrefs.app/KeyboardShortcuts.c:91 msgid "Maximus: Tiled maximization " msgstr "" #: ../../WPrefs.app/KeyboardShortcuts.c:92 msgid "Raise active window" msgstr "í™œì„±í™”ëœ ì°½ì„ ìœ„ë¡œ" #: ../../WPrefs.app/KeyboardShortcuts.c:93 msgid "Lower active window" msgstr "í™œì„±í™”ëœ ì°½ì„ ì•„ëž˜ë¡œ" #: ../../WPrefs.app/KeyboardShortcuts.c:94 msgid "Raise/Lower window under mouse pointer" msgstr "마우스가 위치한 ì°½ 올림/내림" #: ../../WPrefs.app/KeyboardShortcuts.c:95 msgid "Shade active window" msgstr "í™œì„±í™”ëœ ì°½ì— ê·¸ë¦¼ìž í‘œì‹œ" #: ../../WPrefs.app/KeyboardShortcuts.c:96 msgid "Move/Resize active window" msgstr "í™œì„±í™”ëœ ì°½ ì´ë™/í¬ê¸°ë°”꿈" #: ../../WPrefs.app/KeyboardShortcuts.c:97 msgid "Select active window" msgstr "활성화 ì°½ ì„ íƒ" #: ../../WPrefs.app/KeyboardShortcuts.c:98 msgid "Focus next window" msgstr "ë‹¤ìŒ ì°½ 활성화" #: ../../WPrefs.app/KeyboardShortcuts.c:99 msgid "Focus previous window" msgstr "ì´ì „ ì°½ 활성화" #: ../../WPrefs.app/KeyboardShortcuts.c:100 msgid "Focus next group window" msgstr "ë‹¤ìŒ ì°½ 그룹 활성화" #: ../../WPrefs.app/KeyboardShortcuts.c:101 msgid "Focus previous group window" msgstr "ì´ì „ ì°½ 그룹 활성화" #. Workspace Related #: ../../WPrefs.app/KeyboardShortcuts.c:104 msgid "Switch to next workspace" msgstr "ë‹¤ìŒ ìž‘ì—…ê³µê°„ìœ¼ë¡œ 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:105 msgid "Switch to previous workspace" msgstr "ì´ì „ 작업공간으로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:106 msgid "Switch to last used workspace" msgstr "마지막으로 ì‚¬ìš©ëœ ìž‘ì—…ê³µê°„ìœ¼ë¡œ 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:107 msgid "Switch to next ten workspaces" msgstr "10ê°œ ë’¤ 작업공간으로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:108 msgid "Switch to previous ten workspaces" msgstr "10ê°œ 앞 작업공간으로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:109 msgid "Switch to workspace 1" msgstr "작업공간 1로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:110 msgid "Switch to workspace 2" msgstr "작업공간 2로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:111 msgid "Switch to workspace 3" msgstr "작업공간 3으로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:112 msgid "Switch to workspace 4" msgstr "작업공간 4로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:113 msgid "Switch to workspace 5" msgstr "작업공간 5로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:114 msgid "Switch to workspace 6" msgstr "작업공간 6으로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:115 msgid "Switch to workspace 7" msgstr "작업공간 7로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:116 msgid "Switch to workspace 8" msgstr "작업공간 8로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:117 msgid "Switch to workspace 9" msgstr "작업공간 9로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:118 msgid "Switch to workspace 10" msgstr "작업공간 10으로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:119 msgid "Move window to next workspace" msgstr "ì°½ì„ ë‹¤ìŒ ìž‘ì—…ê³µê°„ìœ¼ë¡œ ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:120 msgid "Move window to previous workspace" msgstr "ì°½ì„ ì´ì „ 작업공간으로 ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:121 msgid "Move window to last used workspace" msgstr "ì°½ì„ ë§ˆì§€ë§‰ì— ì‚¬ìš©ëœ ìž‘ì—…ê³µê°„ìœ¼ë¡œ ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:122 msgid "Move window to next ten workspaces" msgstr "ì°½ì„ 10ê°œ ë’¤ 작업공간으로 ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:123 msgid "Move window to previous ten workspaces" msgstr "ì°½ì„ 10ê°œ 앞 작업공간으로 ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:124 msgid "Move window to workspace 1" msgstr "ì°½ì„ ìž‘ì—…ê³µê°„ 1로 ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:125 msgid "Move window to workspace 2" msgstr "ì°½ì„ ìž‘ì—…ê³µê°„ 2로 ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:126 msgid "Move window to workspace 3" msgstr "ì°½ì„ ìž‘ì—…ê³µê°„ 3으로 ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:127 msgid "Move window to workspace 4" msgstr "ì°½ì„ ìž‘ì—…ê³µê°„ 4로 ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:128 msgid "Move window to workspace 5" msgstr "ì°½ì„ ìž‘ì—…ê³µê°„ 5로 ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:129 msgid "Move window to workspace 6" msgstr "ì°½ì„ ìž‘ì—…ê³µê°„ 6으로 ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:130 msgid "Move window to workspace 7" msgstr "ì°½ì„ ìž‘ì—…ê³µê°„ 7로 ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:131 msgid "Move window to workspace 8" msgstr "ì°½ì„ ìž‘ì—…ê³µê°„ 8로 ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:132 msgid "Move window to workspace 9" msgstr "ì°½ì„ ìž‘ì—…ê³µê°„ 9로 ì´ë™" #: ../../WPrefs.app/KeyboardShortcuts.c:133 msgid "Move window to workspace 10" msgstr "ì°½ì„ ìž‘ì—…ê³µê°„ 10으로 ì´ë™" #. Window Selection #: ../../WPrefs.app/KeyboardShortcuts.c:136 msgid "Shortcut for window 1" msgstr "1번 ì°½ 단축키" #: ../../WPrefs.app/KeyboardShortcuts.c:137 msgid "Shortcut for window 2" msgstr "2번 ì°½ 단축키" #: ../../WPrefs.app/KeyboardShortcuts.c:138 msgid "Shortcut for window 3" msgstr "3번 ì°½ 단축키" #: ../../WPrefs.app/KeyboardShortcuts.c:139 msgid "Shortcut for window 4" msgstr "4번 ì°½ 단축키" #: ../../WPrefs.app/KeyboardShortcuts.c:140 msgid "Shortcut for window 5" msgstr "5번 ì°½ 단축키" #: ../../WPrefs.app/KeyboardShortcuts.c:141 msgid "Shortcut for window 6" msgstr "6번 ì°½ 단축키" #: ../../WPrefs.app/KeyboardShortcuts.c:142 msgid "Shortcut for window 7" msgstr "7번 ì°½ 단축키" #: ../../WPrefs.app/KeyboardShortcuts.c:143 msgid "Shortcut for window 8" msgstr "8번 ì°½ 단축키" #: ../../WPrefs.app/KeyboardShortcuts.c:144 msgid "Shortcut for window 9" msgstr "9번 ì°½ 단축키" #: ../../WPrefs.app/KeyboardShortcuts.c:145 msgid "Shortcut for window 10" msgstr "10번 ì°½ 단축키" #. Misc. #: ../../WPrefs.app/KeyboardShortcuts.c:148 msgid "Launch new instance of application" msgstr "ì‘ìš©í”„ë¡œê·¸ëž¨ì„ ìƒˆë¡œ 실행" #: ../../WPrefs.app/KeyboardShortcuts.c:149 msgid "Switch to Next Screen/Monitor" msgstr "ë‹¤ìŒ ìž‘ì—… 화면/모니터로 전환" #: ../../WPrefs.app/KeyboardShortcuts.c:150 msgid "Raise/Lower Dock" msgstr "ë… ì˜¬ë¦¼/내림" #: ../../WPrefs.app/KeyboardShortcuts.c:151 msgid "Raise/Lower Clip" msgstr "í´ë¦½ 올림/내림" #: ../../WPrefs.app/KeyboardShortcuts.c:153 msgid "Toggle keyboard language" msgstr "키보드 언어 ì„ íƒ" #: ../../WPrefs.app/KeyboardShortcuts.c:334 ../../WPrefs.app/Menu.c:275 #: ../../WPrefs.app/TexturePanel.c:1401 msgid "Cancel" msgstr "취소" #: ../../WPrefs.app/KeyboardShortcuts.c:336 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "ì›í•˜ëŠ” 단축키를 누르십시오. 취소를 누르면 캡ì³ê°€ 중단ë©ë‹ˆë‹¤." #: ../../WPrefs.app/KeyboardShortcuts.c:355 #: ../../WPrefs.app/KeyboardShortcuts.c:519 ../../WPrefs.app/Menu.c:285 #: ../../WPrefs.app/Menu.c:733 msgid "Capture" msgstr "캡ì³" #: ../../WPrefs.app/KeyboardShortcuts.c:356 #: ../../WPrefs.app/KeyboardShortcuts.c:527 msgid "Click on Capture to interactively define the shortcut key." msgstr "ìº¡ì³ ë²„íŠ¼ì„ ëˆŒëŸ¬ 단축키를 쉽게 지정합니다." #: ../../WPrefs.app/KeyboardShortcuts.c:476 msgid "Actions" msgstr "ë™ìž‘" #: ../../WPrefs.app/KeyboardShortcuts.c:503 msgid "Shortcut" msgstr "단축키" #: ../../WPrefs.app/KeyboardShortcuts.c:513 ../../WPrefs.app/Menu.c:739 msgid "Clear" msgstr "지움" #: ../../WPrefs.app/KeyboardShortcuts.c:568 msgid "Keyboard Shortcut Preferences" msgstr "키보드 단축키 설정" #: ../../WPrefs.app/KeyboardShortcuts.c:570 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "메뉴 열기, 작업 공간 전환 ê°™ì€ ë™ìž‘ì„ í•˜ëŠ” 키보드\n" "단축키를 설정합니다." #: ../../WPrefs.app/Menu.c:251 msgid "Select Program" msgstr "프로그램 ì„ íƒ" #: ../../WPrefs.app/Menu.c:413 msgid "New Items" msgstr "새 항목" #: ../../WPrefs.app/Menu.c:414 msgid "Sample Commands" msgstr "명령 예시" #: ../../WPrefs.app/Menu.c:415 msgid "Sample Submenus" msgstr "하부메뉴 예시" #: ../../WPrefs.app/Menu.c:427 msgid "Run Program" msgstr "프로그램 실행" #: ../../WPrefs.app/Menu.c:428 msgid "Internal Command" msgstr "ë‚´ë¶€ 명령" #: ../../WPrefs.app/Menu.c:429 msgid "Submenu" msgstr "하부메뉴" #: ../../WPrefs.app/Menu.c:430 msgid "External Submenu" msgstr "외부 하부메뉴" #: ../../WPrefs.app/Menu.c:431 msgid "Generated Submenu" msgstr "ìƒì„±ëœ 하부메뉴" #: ../../WPrefs.app/Menu.c:432 msgid "Generated PL Menu" msgstr "ìƒì„±ëœ PL 메뉴" #: ../../WPrefs.app/Menu.c:433 msgid "Directory Contents" msgstr "디렉터리 ë‚´ìš©" #: ../../WPrefs.app/Menu.c:434 msgid "Workspace Menu" msgstr "작업공간 메뉴" #: ../../WPrefs.app/Menu.c:435 ../../WPrefs.app/MouseSettings.c:789 msgid "Window List Menu" msgstr "ì°½ ëª©ë¡ ë©”ë‰´" #: ../../WPrefs.app/Menu.c:454 msgid "XTerm" msgstr "" #: ../../WPrefs.app/Menu.c:457 msgid "rxvt" msgstr "" #: ../../WPrefs.app/Menu.c:460 msgid "ETerm" msgstr "" #: ../../WPrefs.app/Menu.c:463 msgid "Run..." msgstr "실행..." #: ../../WPrefs.app/Menu.c:464 #, c-format msgid "%A(Run,Type command to run)" msgstr "" #: ../../WPrefs.app/Menu.c:466 msgid "Firefox" msgstr "파ì´ì–´í­ìФ" #: ../../WPrefs.app/Menu.c:469 msgid "gimp" msgstr "김프" #: ../../WPrefs.app/Menu.c:472 msgid "epic" msgstr "" #: ../../WPrefs.app/Menu.c:475 msgid "ee" msgstr "" #: ../../WPrefs.app/Menu.c:478 msgid "xv" msgstr "" #: ../../WPrefs.app/Menu.c:481 msgid "Evince" msgstr "" #: ../../WPrefs.app/Menu.c:484 msgid "ghostview" msgstr "고스트뷰" #: ../../WPrefs.app/Menu.c:487 ../../WPrefs.app/Menu.c:758 msgid "Exit Window Maker" msgstr "윈ë„ìš° ë©”ì´ì»¤ 종료" #: ../../WPrefs.app/Menu.c:509 msgid "Debian Menu" msgstr "ë°ë¹„안 메뉴" #: ../../WPrefs.app/Menu.c:512 msgid "RedHat Menu" msgstr "레드햇 메뉴" #: ../../WPrefs.app/Menu.c:515 msgid "Menu Conectiva" msgstr "" #: ../../WPrefs.app/Menu.c:518 ../../WPrefs.app/Themes.c:211 msgid "Themes" msgstr "테마" #: ../../WPrefs.app/Menu.c:524 msgid "Bg Images (scale)" msgstr "" #: ../../WPrefs.app/Menu.c:530 msgid "Bg Images (tile)" msgstr "" #: ../../WPrefs.app/Menu.c:536 msgid "Assorted XTerms" msgstr "" #: ../../WPrefs.app/Menu.c:538 msgid "XTerm Yellow on Blue" msgstr "" #: ../../WPrefs.app/Menu.c:541 msgid "XTerm White on Black" msgstr "" #: ../../WPrefs.app/Menu.c:544 msgid "XTerm Black on White" msgstr "" #: ../../WPrefs.app/Menu.c:547 msgid "XTerm Black on Beige" msgstr "" #: ../../WPrefs.app/Menu.c:550 msgid "XTerm White on Green" msgstr "" #: ../../WPrefs.app/Menu.c:553 msgid "XTerm White on Olive" msgstr "" #: ../../WPrefs.app/Menu.c:556 msgid "XTerm Blue on Blue" msgstr "" #: ../../WPrefs.app/Menu.c:559 msgid "XTerm BIG FONTS" msgstr "XTerm í° ê¸€ê¼´" #: ../../WPrefs.app/Menu.c:580 msgid "Program to Run" msgstr "실행할 프로그램" #: ../../WPrefs.app/Menu.c:590 msgid "Browse" msgstr "찾기" #: ../../WPrefs.app/Menu.c:599 msgid "Run the program inside a Xterm" msgstr "Xterm 안ì—서 프로그램 실행하기" #: ../../WPrefs.app/Menu.c:608 msgid "Path for Menu" msgstr "메뉴 경로" #: ../../WPrefs.app/Menu.c:619 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin" msgstr "" "메뉴를 í¬í•¨í•˜ëŠ” íŒŒì¼ ê²½ë¡œë‚˜\n" "ë©”ë‰´ì— ë“±ë¡í•˜ë ¤ëŠ” 프로그램ì˜\n" "디렉터리 목ë¡ì„ 입력합니다. 예:\n" "~/GNUstep/Library/WindowMaker/menu\n" "ë˜ëŠ”\n" "/usr/bin ~/xbin" #: ../../WPrefs.app/Menu.c:631 ../../WPrefs.app/Menu.c:656 msgid "Command" msgstr "명령" #: ../../WPrefs.app/Menu.c:642 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "실행ë˜ì—ˆì„ 때 메뉴 ì •ì˜ë¥¼ 표준출력으로\n" "내보내는 ëª…ë ¹ì„ ìž…ë ¥í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Menu.c:647 ../../WPrefs.app/Menu.c:672 msgid "" "Cache menu contents after opening for\n" "the first time" msgstr "ì²˜ìŒ ì‹¤í–‰ í›„ì— ë©”ë‰´ ë‚´ìš©ì„ ìºì‹±í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Menu.c:667 msgid "" "Enter a command that outputs a proplist menu\n" "definition to stdout when invoked." msgstr "" "실행ë˜ì—ˆì„ 때 ì†ì„±ëª©ë¡ 메뉴 ì •ì˜ë¥¼ 표준출력으로\n" "내보내는 ëª…ë ¹ì„ ìž…ë ¥í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Menu.c:681 msgid "Command to Open Files" msgstr "파ì¼ì„ 여는 명령" #: ../../WPrefs.app/Menu.c:692 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "ì•„ëž˜ì— í‘œì‹œëœ ë””ë ‰í„°ë¦¬ ì•ˆì˜ íŒŒì¼ì„\n" " ì—¬ëŠ”ë° í•„ìš”í•œ ëª…ë ¹ì„ ìž…ë ¥í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Menu.c:700 msgid "Directories with Files" msgstr "파ì¼ì„ í¬í•¨í•œ 디렉터리" #: ../../WPrefs.app/Menu.c:711 msgid "Strip extensions from file names" msgstr "íŒŒì¼ ì´ë¦„ì—서 í™•ìž¥ìž ì œê±°í•˜ê¸°" #: ../../WPrefs.app/Menu.c:722 msgid "Keyboard Shortcut" msgstr "키보드 단축키" #: ../../WPrefs.app/Menu.c:754 msgid "Arrange Icons" msgstr "ì•„ì´ì½˜ ì •ë ¬" #: ../../WPrefs.app/Menu.c:755 msgid "Hide All Windows Except For The Focused One" msgstr "í™œì„±í™”ëœ ì°½ì„ ì œì™¸í•œ 모든 ì°½ 숨기기" #: ../../WPrefs.app/Menu.c:756 msgid "Show All Windows" msgstr "모든 ì°½ ë³´ì´ê¸°" #: ../../WPrefs.app/Menu.c:759 msgid "Exit X Session" msgstr "X 세션 종료" #: ../../WPrefs.app/Menu.c:760 msgid "Restart Window Maker" msgstr "윈ë„ìš° ë©”ì´ì»¤ 재시작" #: ../../WPrefs.app/Menu.c:761 msgid "Start Another Window Manager : (" msgstr "다른 ì°½ ê´€ë¦¬ìž ì‹œìž‘ :(" #: ../../WPrefs.app/Menu.c:763 msgid "Save Current Session" msgstr "현재 세션 저장" #: ../../WPrefs.app/Menu.c:764 msgid "Clear Saved Session" msgstr "ì €ìž¥ëœ ì„¸ì…˜ 지우기" #: ../../WPrefs.app/Menu.c:765 msgid "Refresh Screen" msgstr "다시 그리기" #: ../../WPrefs.app/Menu.c:766 msgid "Open Info Panel" msgstr "ì •ë³´ íŒ¨ë„ ì—´ê¸°" #: ../../WPrefs.app/Menu.c:767 msgid "Open Copyright Panel" msgstr "저작권 íŒ¨ë„ ì—´ê¸°" #: ../../WPrefs.app/Menu.c:772 msgid "Window Manager to Start" msgstr "시작할 ì°½ 관리ìž" #: ../../WPrefs.app/Menu.c:785 msgid "Do not confirm action." msgstr "ë™ìž‘ì„ í™•ì¸í•˜ì§€ 않습니다." #: ../../WPrefs.app/Menu.c:792 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "사용밥법:\n" "\n" "- 새 í•­ëª©ì„ ë©”ë‰´ì— ë”하려면 왼쪽ì—서 í•­ëª©ì„ ëŒì–´ë‹¤ 놓습니다\n" "- í•­ëª©ì„ ì§€ìš°ë ¤ë©´ 메뉴 밖으로 í•­ëª©ì„ ëŒì–´ë‹¤ 놓습니다\n" "- í•­ëª©ì˜ ìœ„ì¹˜ë¥¼ 바꾸려면 메뉴 안ì—서 í•­ëª©ì„ ëŒì–´ë‹¤ 놓습니다\n" "- í•­ëª©ì„ ë³µì‚¬í•˜ë ¤ë©´ 컨트롤 키와 ë™ì‹œì— ëŒì–´ë‹¤ 놓습니다\n" "- ì œëª©ì„ ë°”ê¾¸ë ¤ë©´ 메뉴 항목ì—서 ë‘ ë²ˆ 누릅니다\n" "- ê´€ë ¨ëœ ì •ë³´ë¥¼ 바꾸려면 메뉴 항목 위ì—서 한번 누릅니다" #: ../../WPrefs.app/Menu.c:1031 #, c-format msgid "unknown command '%s' in menu" msgstr "ë©”ë‰´ì— ì•Œë ¤ì§€ì§€ ì•Šì€ ëª…ë ¹ '%s' 입니다" #: ../../WPrefs.app/Menu.c:1055 msgid ": Execute Program" msgstr ": 프로그램 실행" #: ../../WPrefs.app/Menu.c:1059 msgid ": Perform Internal Command" msgstr ": ë‚´ë¶€ 명령 실행하기" #: ../../WPrefs.app/Menu.c:1063 msgid ": Open a Submenu" msgstr ": 새 하부메뉴 열기" #: ../../WPrefs.app/Menu.c:1067 msgid ": Program Generated Submenu" msgstr ": í”„ë¡œê·¸ëž¨ì´ ë§Œë“  하위메뉴" #: ../../WPrefs.app/Menu.c:1071 msgid ": Program Generated Proplist Submenu" msgstr ": í”„ë¡œê·¸ëž¨ì´ ë§Œë“  ì†ì„±ëª©ë¡ 하위메뉴" #: ../../WPrefs.app/Menu.c:1075 msgid ": Directory Contents Menu" msgstr ": 디렉터리 ë‚´ìš© 메뉴" #: ../../WPrefs.app/Menu.c:1079 msgid ": Open Workspaces Submenu" msgstr ": 작업공간 하부메뉴 열기" #: ../../WPrefs.app/Menu.c:1083 msgid ": Open Window List Submenu" msgstr ": ì°½ ëª©ë¡ í•˜ë¶€ë©”ë‰´ 열기" #: ../../WPrefs.app/Menu.c:1292 msgid "Remove Submenu" msgstr "하부메뉴 지우기" #: ../../WPrefs.app/Menu.c:1293 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "ì´ í•­ëª©ì„ ì œê±°í•˜ë©´ 하위메뉴 ì•ˆì˜ ëª¨ë“  í•­ëª©ì´ ì§€ì›Œì§‘ë‹ˆë‹¤.제거합니까?" #: ../../WPrefs.app/Menu.c:1295 msgid "Yes" msgstr "예" #: ../../WPrefs.app/Menu.c:1295 msgid "No" msgstr "아니오" #: ../../WPrefs.app/Menu.c:1295 msgid "Yes, don't ask again." msgstr "예, 다시 묻지 않습니다." #: ../../WPrefs.app/Menu.c:1426 #, c-format msgid "Invalid menu command \"%s\" with label \"%s\" cleared" msgstr "ìž˜ëª»ëœ ë©”ë‰´ 명령 \"%s\" ê³¼ ë ˆì´ë¸” \"%s\" ì´ ì§€ì›Œì¡ŒìŠµë‹ˆë‹¤" #: ../../WPrefs.app/Menu.c:1429 ../../WPrefs.app/Menu.c:1487 #: ../../WPrefs.app/WPrefs.c:734 msgid "Warning" msgstr "경고" #: ../../WPrefs.app/Menu.c:1429 ../../WPrefs.app/Menu.c:1462 #: ../../WPrefs.app/MouseSettings.c:123 ../../WPrefs.app/MouseSettings.c:143 #: ../../WPrefs.app/TexturePanel.c:554 ../../WPrefs.app/TexturePanel.c:632 #: ../../WPrefs.app/TexturePanel.c:1395 ../../WPrefs.app/Themes.c:84 #: ../../WPrefs.app/WPrefs.c:683 ../../WPrefs.app/WPrefs.c:687 #: ../../WPrefs.app/WPrefs.c:707 ../../WPrefs.app/WPrefs.c:719 #: ../../WPrefs.app/WPrefs.c:725 ../../WPrefs.app/WPrefs.c:734 #: ../../WPrefs.app/WPrefs.c:765 ../../WPrefs.app/WPrefs.c:769 msgid "OK" msgstr "확ì¸" #: ../../WPrefs.app/Menu.c:1458 #, c-format msgid "Could not open default menu from '%s'" msgstr "'%s'로 부터 기본 메뉴를 ì—´ 수 ì—†ìŒ" #: ../../WPrefs.app/Menu.c:1462 ../../WPrefs.app/MouseSettings.c:121 #: ../../WPrefs.app/MouseSettings.c:140 ../../WPrefs.app/TexturePanel.c:554 #: ../../WPrefs.app/TexturePanel.c:630 ../../WPrefs.app/Themes.c:83 #: ../../WPrefs.app/WPrefs.c:683 ../../WPrefs.app/WPrefs.c:687 #: ../../WPrefs.app/WPrefs.c:704 ../../WPrefs.app/WPrefs.c:715 #: ../../WPrefs.app/WPrefs.c:725 ../../WPrefs.app/WPrefs.c:765 #: ../../WPrefs.app/WPrefs.c:769 msgid "Error" msgstr "오류" #: ../../WPrefs.app/Menu.c:1488 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "ì´ ë„구는 현재 ì‚¬ìš©ì¤‘ì¸ íŒŒì¼ í˜•ì‹ì„ ì§€ì›í•˜ì§€ 않습니다.\n" "ì´ ë„구를 사용하기 위해 현재 메뉴를 버립니까?" #: ../../WPrefs.app/Menu.c:1491 msgid "Yes, Discard and Update" msgstr "예, 버리고 새로 만듭니다." #: ../../WPrefs.app/Menu.c:1491 msgid "No, Keep Current Menu" msgstr "아니오, 현재 메뉴를 유지합니다" #: ../../WPrefs.app/Menu.c:1732 msgid "Applications Menu Definition" msgstr "ì‘용프로그램 메뉴 ì •ì˜" #: ../../WPrefs.app/Menu.c:1734 msgid "Edit the menu for launching applications." msgstr "ì‘용프로그램 ì‹¤í–‰ì„ ìœ„í•œ 메뉴를 편집합니다." #: ../../WPrefs.app/MenuPreferences.c:105 msgid "Menu Scrolling Speed" msgstr "메뉴 스í¬ë¡¤ ì†ë„" #: ../../WPrefs.app/MenuPreferences.c:153 msgid "Submenu Alignment" msgstr "하부 메뉴 ì •ë ¬" #: ../../WPrefs.app/MenuPreferences.c:197 msgid "Always open submenus inside the screen, instead of scrolling." msgstr "스í¬ë¡¤í•˜ëŠ” 대신 í•­ìƒ í™”ë©´ ë‚´ì— í•˜ë¶€ 메뉴를 엽니다." #: ../../WPrefs.app/MenuPreferences.c:202 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "화면 밖으로 나간 메뉴 쪽으로 마우스를 움ì§ì´ë©´ 스í¬ë¡¤í•©ë‹ˆë‹¤." #: ../../WPrefs.app/MenuPreferences.c:206 msgid "Use h/j/k/l keys to select menu options." msgstr "메뉴 ì˜µì…˜ì„ ê³ ë¥´ëŠ”ë° h/j/k/l 키를 사용합니다." #: ../../WPrefs.app/MenuPreferences.c:222 msgid "Menu Preferences" msgstr "메뉴 설정" #: ../../WPrefs.app/MenuPreferences.c:224 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "메뉴와 ê´€ë ¨ëœ ìœ ìš©í•œ 옵션들. 스í¬ë¡¤ ì†ë„, 하부\n" "ë©”ë‰´ì˜ ì •ë ¬ ë°©ë²•ë“±ì„ ì„¤ì •í•©ë‹ˆë‹¤." #: ../../WPrefs.app/MouseSettings.c:122 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "ìž˜ëª»ëœ ë§ˆìš°ìŠ¤ ê°€ì† ìž„ê³„ì¹˜ ê°’. ê°€ì† ì „ì— ì›€ì§ì¼ í”½ì…€ì˜ ìˆ˜ì—¬ì•¼ 함." #: ../../WPrefs.app/MouseSettings.c:142 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "" "ìž˜ëª»ëœ ë§ˆìš°ìŠ¤ ê°€ì† ìž„ê³„ì¹˜ 값입니다. ê°€ì† ì „ì— ì›€ì§ì¼ í”½ì…€ì˜ ìˆ˜ê°€ ë˜ì–´ì•¼ 합니" "다." #: ../../WPrefs.app/MouseSettings.c:228 ../../WPrefs.app/MouseSettings.c:240 #: ../../WPrefs.app/MouseSettings.c:252 ../../WPrefs.app/MouseSettings.c:264 #, c-format msgid "bad value %s for option %s" msgstr "%s ì˜µì…˜ì— ìž˜ëª»ëœ ê°’ %s" #: ../../WPrefs.app/MouseSettings.c:323 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "" "ModifierKeyì˜ ìˆ˜ì •ìž í‚¤ ê°’ %s 를 ì¸ì‹í•  수 없습니다. ê¸°ë³¸ê°’ì¸ %s를 사용합니" "다." #: ../../WPrefs.app/MouseSettings.c:344 msgid "could not retrieve keyboard modifier mapping" msgstr "키보드 ìˆ˜ì •ìž ë§¤í•‘ì„ ì–»ì„ ìˆ˜ 없습니다" #: ../../WPrefs.app/MouseSettings.c:438 msgid "Mouse Speed" msgstr "마우스 ì†ë„" #: ../../WPrefs.app/MouseSettings.c:451 ../../WPrefs.app/WPrefs.c:382 #: ../../WPrefs.app/WPrefs.c:398 ../../WPrefs.app/WindowHandling.c:359 #: ../../WPrefs.app/WindowHandling.c:371 ../../WPrefs.app/WindowHandling.c:390 #: ../../WPrefs.app/WindowHandling.c:402 #, c-format msgid "could not load icon %s" msgstr "ì•„ì´ì½˜ %s를 ì½ì–´ë“¤ì¼ 수 ì—†ìŒ" #: ../../WPrefs.app/MouseSettings.c:468 msgid "Acceler.:" msgstr "ê°€ì†.:" #: ../../WPrefs.app/MouseSettings.c:479 msgid "Threshold:" msgstr "임계치:" #: ../../WPrefs.app/MouseSettings.c:493 msgid "Double-Click Delay" msgstr "ë”블 í´ë¦­ 지연 시간" #: ../../WPrefs.app/MouseSettings.c:536 msgid "Test" msgstr "시험" #: ../../WPrefs.app/MouseSettings.c:566 msgid "Workspace Mouse Actions" msgstr "작업공간 마우스 ë™ìž‘" #: ../../WPrefs.app/MouseSettings.c:571 msgid "Disable mouse actions" msgstr "마우스 ë™ìž‘ 사용 안함" #: ../../WPrefs.app/MouseSettings.c:577 msgid "Left Button" msgstr "왼쪽 버튼" #: ../../WPrefs.app/MouseSettings.c:587 msgid "Middle Button" msgstr "ê°€ìš´ë° ë²„íŠ¼" #: ../../WPrefs.app/MouseSettings.c:597 msgid "Right Button" msgstr "오른쪽 버튼" #: ../../WPrefs.app/MouseSettings.c:607 msgid "Mouse Wheel" msgstr "마우스 휠" #: ../../WPrefs.app/MouseSettings.c:629 msgid "Mouse Grab Modifier" msgstr "마우스 잡기 수정ìž" #: ../../WPrefs.app/MouseSettings.c:631 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "ì°½ 안ì—서 눌러, 마우스로 ì°½ì„ ëŒì–´ë‹¤ 놓는\n" "ë™ìž‘ê³¼ ì—°ê´€ëœ í‚¤ë³´ë“œ 수정ìžìž…니다." #: ../../WPrefs.app/MouseSettings.c:661 #, c-format msgid "could not create %s" msgstr "%s를 만들 수 ì—†ìŒ" #: ../../WPrefs.app/MouseSettings.c:676 #, c-format msgid "could not create temporary file %s" msgstr "임시 íŒŒì¼ %s를 만들 수 ì—†ìŒ" #: ../../WPrefs.app/MouseSettings.c:709 #, c-format msgid "could not rename file %s to %s" msgstr "%s 파ì¼ì„ %s로 바꿀 수 ì—†ìŒ" #: ../../WPrefs.app/MouseSettings.c:778 msgid "Shift" msgstr "시프트" #: ../../WPrefs.app/MouseSettings.c:779 msgid "Lock" msgstr "ê³ ì •" #: ../../WPrefs.app/MouseSettings.c:780 msgid "Control" msgstr "컨트롤" #: ../../WPrefs.app/MouseSettings.c:781 msgid "Mod1" msgstr "" #: ../../WPrefs.app/MouseSettings.c:782 msgid "Mod2" msgstr "" #: ../../WPrefs.app/MouseSettings.c:783 msgid "Mod3" msgstr "" #: ../../WPrefs.app/MouseSettings.c:784 msgid "Mod4" msgstr "" #: ../../WPrefs.app/MouseSettings.c:785 msgid "Mod5" msgstr "" #: ../../WPrefs.app/MouseSettings.c:788 msgid "Applications Menu" msgstr "ì‘용프로그램 메뉴" #: ../../WPrefs.app/MouseSettings.c:790 msgid "Select Windows" msgstr "ì°½ ì„ íƒí•˜ê¸°" #: ../../WPrefs.app/MouseSettings.c:793 msgid "Switch Workspaces" msgstr "작업공간 전환" #: ../../WPrefs.app/MouseSettings.c:797 msgid "Mouse Preferences" msgstr "마우스 설정" #: ../../WPrefs.app/MouseSettings.c:799 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "마우스 ì†ë„/ê°€ì† ê¸°ëŠ¥, ë”블 í´ë¦­ 지연 시간,\n" "마우스 버튼 ì •ì˜ ë“±" #: ../../WPrefs.app/Paths.c:78 msgid "bad value in option IconPath. Using default path list" msgstr "IconPath ì— ìž˜ëª»ëœ ê°’. 기본 경로 ëª©ë¡ ì‚¬ìš©" #: ../../WPrefs.app/Paths.c:95 msgid "bad value in option PixmapPath. Using default path list" msgstr "PixmapPath ì— ìž˜ëª»ëœ ê°’. 기본 경로 ëª©ë¡ ì‚¬ìš©" #: ../../WPrefs.app/Paths.c:140 msgid "Select directory" msgstr "디렉터리 ì„ íƒ" #: ../../WPrefs.app/Paths.c:245 msgid "Icon Search Paths" msgstr "ì•„ì´ì½˜ì„ ì°¾ì„ ê²½ë¡œ" #: ../../WPrefs.app/Paths.c:256 ../../WPrefs.app/Paths.c:287 #: ../../WPrefs.app/TexturePanel.c:1189 msgid "Add" msgstr "추가" #: ../../WPrefs.app/Paths.c:263 ../../WPrefs.app/Paths.c:294 msgid "Remove" msgstr "ì‚­ì œ" #: ../../WPrefs.app/Paths.c:276 msgid "Pixmap Search Paths" msgstr "í”½ìŠ¤ë§µì„ ì°¾ì„ ê²½ë¡œ" #: ../../WPrefs.app/Paths.c:311 msgid "Search Path Configuration" msgstr "ì°¾ì„ ê²½ë¡œ 설정" #: ../../WPrefs.app/Paths.c:313 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "픽스맵과 ì•„ì´ì½˜ì„ ì°¾ì„ ê²½ë¡œë¥¼ 지정합니다." #: ../../WPrefs.app/Preferences.c:68 #, c-format msgid "OFF" msgstr "ë„기" #: ../../WPrefs.app/Preferences.c:70 #, c-format msgid "1 pixel" msgstr "1 픽셀" #. 2-4 #: ../../WPrefs.app/Preferences.c:73 #, c-format msgid "%i pixels" msgstr "%i 픽셀" #. >4 #: ../../WPrefs.app/Preferences.c:76 #, c-format msgid "%i pixels " msgstr "%i 픽셀" #: ../../WPrefs.app/Preferences.c:214 msgid "Size Display" msgstr "í¬ê¸° 표시" #: ../../WPrefs.app/Preferences.c:216 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "ì°½ í¬ê¸°ë¥¼ 변경할 ë•Œì— ê·¸ í¬ê¸°ì˜ 변경 사항ì„\n" "보여주는 스타ì¼ê³¼ 위치를 설정합니다." #: ../../WPrefs.app/Preferences.c:222 ../../WPrefs.app/Preferences.c:242 msgid "Corner of screen" msgstr "화면 구ì„" #: ../../WPrefs.app/Preferences.c:223 ../../WPrefs.app/Preferences.c:243 msgid "Center of screen" msgstr "화면 가운ë°" #: ../../WPrefs.app/Preferences.c:224 ../../WPrefs.app/Preferences.c:244 msgid "Center of resized window" msgstr "현재 ì°½ 가운ë°" #: ../../WPrefs.app/Preferences.c:225 msgid "Technical drawing-like" msgstr "ì œë„ í¬ê¸° 표시 방법 사용" #: ../../WPrefs.app/Preferences.c:226 ../../WPrefs.app/Preferences.c:245 msgid "Disabled" msgstr "사용 안함" #: ../../WPrefs.app/Preferences.c:234 msgid "Position Display" msgstr "위치 표시" #: ../../WPrefs.app/Preferences.c:236 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "ì°½ì„ ì´ë™í•  때 ê·¸ ì°½ì˜ ìœ„ì¹˜ë¥¼ 출력할 스타ì¼ê³¼\n" "보여줄 위치를 설정합니다." #: ../../WPrefs.app/Preferences.c:253 msgid "Show balloon text for..." msgstr "다ìŒì— 대해 í’ì„  ë„움ë§ì„ 보기..." #: ../../WPrefs.app/Preferences.c:260 msgid "incomplete window titles" msgstr "불완전한 ì°½ 제목" #: ../../WPrefs.app/Preferences.c:261 msgid "miniwindow titles" msgstr "ìž‘ì€ ì°½ 제목" #: ../../WPrefs.app/Preferences.c:262 msgid "application/dock icons" msgstr "ì‘용프로그램/ë… ì•„ì´ì½˜" #: ../../WPrefs.app/Preferences.c:263 msgid "internal help" msgstr "ë‚´ë¶€ ë„움ë§" #: ../../WPrefs.app/Preferences.c:271 msgid "AppIcon bouncing" msgstr "앱 ì•„ì´ì½˜ 튕김" #: ../../WPrefs.app/Preferences.c:276 msgid "Disable AppIcon bounce." msgstr "앱 ì•„ì´ì½˜ 튕김 효과 ë„기" #: ../../WPrefs.app/Preferences.c:281 msgid "Bounce AppIcon when the application wants attention." msgstr "ì‘용프로그램ì—서 메시지가 있으면 앱 ì•„ì´ì½˜ì„ 튕ê¹ë‹ˆë‹¤." #: ../../WPrefs.app/Preferences.c:287 msgid "Raise AppIcons when bouncing." msgstr "튕기는 앱 ì•„ì•„ì½˜ì„ ì—½ë‹ˆë‹¤." #: ../../WPrefs.app/Preferences.c:295 msgid "Workspace border" msgstr "작업공간 í…Œë‘리" #: ../../WPrefs.app/Preferences.c:311 msgid "Left/Right" msgstr "왼쪽/오른쪽" #: ../../WPrefs.app/Preferences.c:316 msgid "Top/Bottom" msgstr "위/아래" #: ../../WPrefs.app/Preferences.c:332 msgid "Miscellaneous Ergonomic Preferences" msgstr "기타 ì¸ê°„ 환경 ê³µí•™ì  ì„¤ì •" #: ../../WPrefs.app/Preferences.c:333 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "í’ì„  ë„움ë§, í¬ê¸° ì¡°ì • 표시 방법, ì°½ 위치 표시\n" "방법등 다양한 ì„¤ì •ì„ í•©ë‹ˆë‹¤." #: ../../WPrefs.app/TexturePanel.c:293 msgid "Saturation" msgstr "채ë„" #: ../../WPrefs.app/TexturePanel.c:295 msgid "Brightness" msgstr "명ë„" #: ../../WPrefs.app/TexturePanel.c:340 ../../WPrefs.app/TexturePanel.c:346 msgid "Hue" msgstr "색ìƒ" #: ../../WPrefs.app/TexturePanel.c:551 msgid "Could not load the selected file: " msgstr "ì„ íƒí•œ 파ì¼ì„ ì½ì„ 수 ì—†ìŒ: " #: ../../WPrefs.app/TexturePanel.c:601 msgid "Open Image" msgstr "ì´ë¯¸ì§€ 열기" #: ../../WPrefs.app/TexturePanel.c:631 msgid "The selected file does not contain a supported image." msgstr "ì„ íƒí•œ ì´ë¯¸ì§€ 파ì¼ì˜ 형ì‹ì„ ì§€ì›í•˜ì§€ 않습니다." #: ../../WPrefs.app/TexturePanel.c:861 #, c-format msgid "could not load file '%s': %s" msgstr "%s 파ì¼ì„ ì½ì„ 수 ì—†ìŒ: %s" #: ../../WPrefs.app/TexturePanel.c:975 #, c-format msgid "error creating texture %s" msgstr "í…ìŠ¤ì³ %s ìƒì„±í•˜ëŠ” ë° ì˜¤ë¥˜ ë°œìƒ" #: ../../WPrefs.app/TexturePanel.c:1134 msgid "Texture Panel" msgstr "í…스처 패ë„" #: ../../WPrefs.app/TexturePanel.c:1141 msgid "Texture Name" msgstr "í…스처 ì´ë¦„" #: ../../WPrefs.app/TexturePanel.c:1153 msgid "Solid Color" msgstr "단색" #: ../../WPrefs.app/TexturePanel.c:1154 msgid "Gradient Texture" msgstr "그래디언트 í…스처" #: ../../WPrefs.app/TexturePanel.c:1155 msgid "Simple Gradient Texture" msgstr "간결한 그래디언트 í…스ì³" #: ../../WPrefs.app/TexturePanel.c:1156 msgid "Textured Gradient" msgstr "í…ìŠ¤ì³ ê·¸ëž˜ë””ì–¸íŠ¸" #: ../../WPrefs.app/TexturePanel.c:1157 msgid "Image Texture" msgstr "ì´ë¯¸ì§€ í…스처" #: ../../WPrefs.app/TexturePanel.c:1165 msgid "Default Color" msgstr "기본색" #: ../../WPrefs.app/TexturePanel.c:1177 msgid "Gradient Colors" msgstr "그래디언트 색" #: ../../WPrefs.app/TexturePanel.c:1266 msgid "Direction" msgstr "ë°©í–¥" #: ../../WPrefs.app/TexturePanel.c:1294 msgid "Gradient" msgstr "그래디언트" #: ../../WPrefs.app/TexturePanel.c:1310 msgid "Gradient Opacity" msgstr "그래디언트 불투명ë„" #: ../../WPrefs.app/TexturePanel.c:1350 msgid "Image" msgstr "ì´ë¯¸ì§€" #: ../../WPrefs.app/TexturePanel.c:1382 msgid "Tile" msgstr "타ì¼" #: ../../WPrefs.app/TexturePanel.c:1383 msgid "Scale" msgstr "스케ì¼" #: ../../WPrefs.app/TexturePanel.c:1385 msgid "Maximize" msgstr "최대화" #: ../../WPrefs.app/Themes.c:63 ../../WPrefs.app/Themes.c:71 msgid "Set" msgstr "지정" #: ../../WPrefs.app/Themes.c:114 msgid "Stop" msgstr "중지" #: ../../WPrefs.app/Themes.c:125 ../../WPrefs.app/Themes.c:170 #: ../../WPrefs.app/Themes.c:190 msgid "Download" msgstr "다운로드" #: ../../WPrefs.app/Themes.c:139 msgid "Save Current Theme" msgstr "현재 테마 저장" #: ../../WPrefs.app/Themes.c:148 msgid "Load" msgstr "불러오기" #: ../../WPrefs.app/Themes.c:153 msgid "Install" msgstr "설치" #: ../../WPrefs.app/Themes.c:160 msgid "Tile of The Day" msgstr "ì˜¤ëŠ˜ì˜ íƒ€ì¼(Tile)" #: ../../WPrefs.app/Themes.c:180 msgid "Bar of The Day" msgstr "ì˜¤ëŠ˜ì˜ ë°”(Bar)" #: ../../WPrefs.app/WPrefs.c:189 ../../WPrefs.app/WPrefs.c:259 msgid "Window Maker Preferences" msgstr "윈ë„ìš° ë©”ì´ì»¤ 설정" #: ../../WPrefs.app/WPrefs.c:212 msgid "Revert Page" msgstr "페ì´ì§€ 복구" #: ../../WPrefs.app/WPrefs.c:218 msgid "Revert All" msgstr "ëª¨ë‘ ë³µêµ¬" #: ../../WPrefs.app/WPrefs.c:224 msgid "Save" msgstr "저장" #: ../../WPrefs.app/WPrefs.c:236 msgid "Balloon Help" msgstr "í’ì„  ë„움ë§" #: ../../WPrefs.app/WPrefs.c:266 #, c-format msgid "Version %s" msgstr "버전 %s" #: ../../WPrefs.app/WPrefs.c:273 msgid "Starting..." msgstr "시작합니다..." #: ../../WPrefs.app/WPrefs.c:357 #, c-format msgid "could not locate image file %s" msgstr "ì´ë¯¸ì§€ %s 파ì¼ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ" #: ../../WPrefs.app/WPrefs.c:411 #, c-format msgid "could not process icon %s: %s" msgstr "ì•„ì´ì½˜ %s를 처리할 수 ì—†ìŒ: %s" #: ../../WPrefs.app/WPrefs.c:603 #, c-format msgid "could not load image file %s:%s" msgstr "ì´ë¯¸ì§€ íŒŒì¼ %s를 ì½ì„ 수 ì—†ìŒ:%s" #: ../../WPrefs.app/WPrefs.c:620 msgid "Loading Window Maker configuration files..." msgstr "윈ë„ìš° ë©”ì´ì»¤ 설정 파ì¼ì„ ì½ëŠ” 중..." #: ../../WPrefs.app/WPrefs.c:624 msgid "Initializing configuration panels..." msgstr "설정 íŒ¨ë„ ì´ˆê¸°í™” 중..." #: ../../WPrefs.app/WPrefs.c:682 ../../WPrefs.app/WPrefs.c:764 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "윈ë„ìš° ë©”ì´ì»¤ ë„ë©”ì¸(%s)ì´ ê¹¨ì¡ŒìŠµë‹ˆë‹¤!" #: ../../WPrefs.app/WPrefs.c:686 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "기본 ë°ì´í„°ë² ì´ìФì—서 윈ë„ìš° ë©”ì´ì»¤ ë„ë©”ì¸(%s)ì„ ì½ì„ 수 없습니다." #: ../../WPrefs.app/WPrefs.c:701 msgid "could not extract version information from Window Maker" msgstr "윈ë„ìš° ë©”ì´ì»¤ì—서 버전 정보를 ì–»ì„ ìˆ˜ 없습니다" #: ../../WPrefs.app/WPrefs.c:702 msgid "Make sure wmaker is in your search path." msgstr "wmakerê°€ 검색 ê²½ë¡œì— ìžˆëŠ”ì§€ 확ì¸í•˜ì„¸ìš”." #: ../../WPrefs.app/WPrefs.c:706 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." msgstr "" "윈ë„ìš° ë©”ì´ì»¤ì—서 버전 정보를 ì–»ì„ ìˆ˜ 없습니다. PATH 환경 ë³€ìˆ˜ì— ì§€ì •ëœ ê³³ì— " "제대로 설치ë˜ì—ˆëŠ”ì§€ 확ì¸í•˜ì„¸ìš”." #: ../../WPrefs.app/WPrefs.c:716 msgid "" "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." msgstr "" "윈ë„ìš° ë©”ì´ì»¤ì—서 버전 정보를 ì–»ì„ ìˆ˜ 없습니다. PATH 환경 ë³€ìˆ˜ì— ì§€ì •ëœ ê³³ì— " "제대로 설치ë˜ì—ˆëŠ”ì§€ 확ì¸í•˜ì„¸ìš”." #: ../../WPrefs.app/WPrefs.c:723 #, c-format msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "WPrefs는 윈ë„ìš° ë©”ì´ì»¤ 0.18.0 ì´ìƒë§Œì„ ì§€ì›í•©ë‹ˆë‹¤.\n" "ì„¤ì¹˜ëœ ë²„ì ¼ì€ %i.%i.%i 입니다.\n" #: ../../WPrefs.app/WPrefs.c:732 #, c-format msgid "" "Window Maker %i.%i.%i, which is installed in your system, is not fully " "supported by this version of WPrefs." msgstr "" "ì‹œìŠ¤í…œì— ì„¤ì¹˜ëœ ìœˆë„ìš° ë©”ì´ì»¤ %i.%i.%i는 WPrefsì—서 제대로 ì§€ì›í•˜ëŠ” ë²„ì „ì´ ì•„" "닙니다." #: ../../WPrefs.app/WPrefs.c:745 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr " \"%s --global_defaults_path\" ì„ ì‹¤í–‰í•  수 없습니다." #: ../../WPrefs.app/WPrefs.c:768 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "ì „ì—­ 윈ë„ìš° ë©”ì´ì»¤ ë„ë©”ì¸ (%s)를 ì½ì–´ë“¤ì¼ 수 없습니다." #: ../../WPrefs.app/WPrefs.c:988 #, c-format msgid "bad speed value for option %s; using default Medium" msgstr "옵션 %sì— ìž˜ëª»ëœ ì†ë„ ê°’ì„ ì£¼ì—ˆìŠµë‹ˆë‹¤;기본값 Mediumì„ ì‚¬ìš©í•©ë‹ˆë‹¤" #: ../../WPrefs.app/WindowHandling.c:158 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "WindowPlacementì— ìž˜ëª»ëœ ì˜µì…˜ ê°’ %s입니다. ê¸°ë³¸ê°’ì„ ì‚¬ìš©í•©ë‹ˆë‹¤" #: ../../WPrefs.app/WindowHandling.c:177 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "" "WindowPlaceOrigin ì˜µì…˜ì— ìž˜ëª»ëœ ë°ì´í„°ìž…니다. 기본값 (0,0)ì„ ì‚¬ìš©í•©ë‹ˆë‹¤" #: ../../WPrefs.app/WindowHandling.c:266 msgid "Window Placement" msgstr "ì°½ 배치" #: ../../WPrefs.app/WindowHandling.c:267 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "스í¬ë¦°ì— ì°½ì„ ë†“ì„ ë•Œì— ì–´ëŠ ê³³ì„ ë¶€í„° 놓ì„\n" "것ì¸ì§€ 설정합니다." #: ../../WPrefs.app/WindowHandling.c:273 msgid "Automatic" msgstr "ìžë™" #: ../../WPrefs.app/WindowHandling.c:274 msgid "Random" msgstr "ìž„ì˜" #: ../../WPrefs.app/WindowHandling.c:275 msgid "Manual" msgstr "수ë™" #: ../../WPrefs.app/WindowHandling.c:276 msgid "Cascade" msgstr "계단ì‹" #: ../../WPrefs.app/WindowHandling.c:277 msgid "Smart" msgstr "스마트" #: ../../WPrefs.app/WindowHandling.c:284 msgid "Placement Origin" msgstr "기본 위치" #: ../../WPrefs.app/WindowHandling.c:342 msgid "Opaque Move/Resize" msgstr "ì°½ ì´ë™/í¬ê¸° 조절할 때 ì°½ì„ ë¶ˆíˆ¬ëª…í•˜ê²Œ" #: ../../WPrefs.app/WindowHandling.c:343 msgid "" "Whether the window contents or only a frame should\n" "be displayed during a move or resize.\n" msgstr "" "ì°½ì„ ì´ë™í•˜ê±°ë‚˜ í¬ê¸°ë¥¼ 바꾸는 ë™ì•ˆ\n" "ì°½ì˜ ë‚´ìš© ë˜ëŠ” 한 장면만 보여줄지 정합니다.\n" #: ../../WPrefs.app/WindowHandling.c:410 msgid "by keyboard" msgstr "키보드 사용" #: ../../WPrefs.app/WindowHandling.c:419 msgid "When maximizing..." msgstr "최대화시ì—는" #: ../../WPrefs.app/WindowHandling.c:424 msgid "...do not cover icons" msgstr "ì•„ì´ì½˜ì„ ë®ì§€ 않ìŒ" #: ../../WPrefs.app/WindowHandling.c:430 msgid "...do not cover dock" msgstr "ë…ì„ ë®ì§€ 않ìŒ" #: ../../WPrefs.app/WindowHandling.c:454 msgid "Edge Resistance" msgstr "가장ìžë¦¬ 걸림" #: ../../WPrefs.app/WindowHandling.c:456 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "가장ìžë¦¬ ê±¸ë¦¼ì€ ì°½ì„ ì´ë™í•  ë•Œì— ë‹¤ë¥¸ ì°½ì˜\n" "경계나 í™”ë©´ì˜ ê°€ìž¥ìžë¦¬ì—서 서로 ê²¹ì³ì§€ì§€ 않기\n" "위해 ì•½ê°„ì˜ ê±¸ë¦¼ 현ìƒì„ 주는 것입니다." #: ../../WPrefs.app/WindowHandling.c:475 msgid "Resist" msgstr "밀기" #: ../../WPrefs.app/WindowHandling.c:480 msgid "Attract" msgstr "당김" #: ../../WPrefs.app/WindowHandling.c:493 msgid "" "Open dialogs in the same workspace\n" "as their owners" msgstr "ê°™ì€ ìž‘ì—… 공간ì—서 소유ìžë¡œì„œ 대화창 열기" #: ../../WPrefs.app/WindowHandling.c:515 msgid "Window Handling Preferences" msgstr "ì°½ 처리 설정" #: ../../WPrefs.app/WindowHandling.c:517 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "ì°½ 제어 옵션. 초기 ì°½ 배치 스타ì¼, 가장 ìžë¦¬ 걸림\n" "ì´ë™ì‹œ ì°½ ë‚´ìš© ë³´ì´ê¸°ë“±ì„ 설정합니다." #: ../../WPrefs.app/Workspace.c:118 msgid "Workspace Navigation" msgstr "작업공간 íƒìƒ‰" #: ../../WPrefs.app/Workspace.c:123 msgid "Wrap to the first workspace from the last workspace." msgstr "마지막 작업공간ì—서 ì²˜ìŒ ìž‘ì—…ê³µê°„ìœ¼ë¡œ ì´ë™í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Workspace.c:139 msgid "Switch workspaces while dragging windows." msgstr "ì°½ì„ ë„는 ë™ì•ˆ ìž‘ì—…ê³µê°„ì„ ì „í™˜í•©ë‹ˆë‹¤." #: ../../WPrefs.app/Workspace.c:155 msgid "Automatically create new workspaces." msgstr "ìžë™ìœ¼ë¡œ 새 ìž‘ì—…ê³µê°„ì„ ë§Œë“­ë‹ˆë‹¤." #. WMSetLabelTextAlignment(panel->posL, WARight); #: ../../WPrefs.app/Workspace.c:172 msgid "Position of workspace name display" msgstr "작업공간 ì´ë¦„ 표시 위치" #: ../../WPrefs.app/Workspace.c:188 msgid "Disable" msgstr "사용 안함" #: ../../WPrefs.app/Workspace.c:190 msgid "Top" msgstr "위" #: ../../WPrefs.app/Workspace.c:191 msgid "Bottom" msgstr "아래" #: ../../WPrefs.app/Workspace.c:192 msgid "Top/Left" msgstr "위/왼쪽" #: ../../WPrefs.app/Workspace.c:193 msgid "Top/Right" msgstr "위/오른쪽" #: ../../WPrefs.app/Workspace.c:194 msgid "Bottom/Left" msgstr "아래/왼쪽" #: ../../WPrefs.app/Workspace.c:195 msgid "Bottom/Right" msgstr "아래/오른쪽" #: ../../WPrefs.app/Workspace.c:224 msgid "Workspace Preferences" msgstr "작업공간 설정" #: ../../WPrefs.app/Workspace.c:226 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "작업공간 íƒìƒ‰ 기능. ë…ê³¼ í´ë¦½ì„\n" "사용할 것ì¸ì§€ 설정할 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤." #: ../../WPrefs.app/main.c:53 #, c-format msgid "usage: %s [options]\n" msgstr "사용법: %s [옵션]\n" #: ../../WPrefs.app/main.c:54 msgid "options:" msgstr "옵션:" #: ../../WPrefs.app/main.c:55 msgid " -display <display>\tdisplay to be used" msgstr "-display <display>\t사용할 디스플레ì´" #: ../../WPrefs.app/main.c:56 msgid " --version\t\tprint version number and exit" msgstr "--version\t\t버젼 출력후 종료" #: ../../WPrefs.app/main.c:57 msgid " --help\t\tprint this message and exit" msgstr "--help\t\t현재 메시지 출력 후 종료" #: ../../WPrefs.app/main.c:124 #, c-format msgid "too few arguments for %s" msgstr "%s ì˜ ì¸ìˆ˜ 개수가 너무 ì ìŒ" #: ../../WPrefs.app/main.c:146 msgid "X server does not support locale" msgstr "X 서버가 로케ì¼ì„ ì§€ì›í•˜ì§€ 않ìŒ" #: ../../WPrefs.app/main.c:149 msgid "cannot set locale modifiers" msgstr "ë¡œì¼€ì¼ ìˆ˜ì •ìžë¥¼ 설정할 수 ì—†ìŒ" #: ../../WPrefs.app/main.c:155 #, c-format msgid "could not open display %s" msgstr "ë””ìŠ¤í”Œë ˆì´ %s를 ì—´ 수 ì—†ìŒ" #: ../../WPrefs.app/main.c:163 msgid "could not initialize application" msgstr "ì‘ìš©í”„ë¡œê·¸ëž¨ì„ ì´ˆê¸°í™” í•  수 ì—†ìŒ" #~ msgid "Window Maker Preferences Utility" #~ msgstr "윈ë„ìš° ë©”ì´ì»¤ 설정 유틸리티" #~ msgid "Version %s for Window Maker %s or newer" #~ msgstr "버전 %s - 윈ë„ìš° ë©”ì´ì»¤ %s ë˜ëŠ” ê·¸ ì´ìƒ" #~ 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" #~ msgid "" #~ "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." #~ msgstr "" #~ "WPrefs는 공개 소프트웨어ì´ë©° GNU General Public\n" #~ "Licenseì— ë”°ë¼ ë°°í¬ì— 대한 어떠한 ì±…ìž„ë„ ê°€ì§€ì§€\n" #~ "않습니다. ì•„ì´ì½˜ì€ OpenContent License를 따릅니다." #~ msgid "Animations and Sound" #~ msgstr "애니메ì´ì…˜ê³¼ ìŒí–¥íš¨ê³¼" #~ msgid "Sounds" #~ msgstr "ìŒí–¥ 효과" #~ msgid "" #~ "Disable/enable support for sound effects played\n" #~ "for actions like shading and closing a window.\n" #~ "You will need a module distributed separately\n" #~ "for this. You can get it at:\n" #~ "http://www.frontiernet.net/~southgat/wmsound" #~ msgstr "" #~ "ì‰ì´ë”©, ì°½ 닫기 ê°™ì€ ë™ìž‘ì—서 ìŒí–¥ 효과를 사용할\n" #~ "것ì¸ì§€ì˜ 여부를 설정합니다. ì´ë¥¼ 위해서는 따로ì´\n" #~ "ë°°í¬ë˜ëŠ” ëª¨ë“ˆì´ í•„ìš”í•©ë‹ˆë‹¤. ì´ ëª¨ë“ˆì€ ì•„ëž˜ì—서\n" #~ "구할 수 있습니다:\n" #~ "http://www.frontiernet.net/~southgat/wmsound" #~ msgid "Note: sound requires a module distributed separately" #~ msgstr "주ì˜: ìŒí–¥ 효과는 ë”°ë¡œì´ ë°°í¬ë˜ëŠ” ëª¨ë“ˆì´ í•„ìš”í•¨" #~ msgid "Disable cycling color highlighting of icons." #~ msgstr "ì•„ì´ì½˜ì— ìƒ‰ìƒ í•˜ì´ë¼ì´íŒ… 순환 사용 않ìŒ." #~ msgid "" #~ "Set keyboard input focus to\n" #~ "the window under the mouse pointer,\n" #~ "including the root window." #~ msgstr "" #~ "마우스 í¬ì¸í„°ë¥¼ 루트 ì°½ì„\n" #~ "í¬í•¨í•œ 모든 ì°½ ì•„ëž˜ì— ë†“ìœ¼ë©´\n" #~ "ê·¸ ì°½ì´ í™œì„±í™”ë©ë‹ˆë‹¤." #~ msgid "Click window to focus" #~ msgstr "활성화하기 위해 ì°½ì„ í´ë¦­" #~ msgid "Focus follows mouse" #~ msgstr "마우스를 따르는 활성화 모드" #~ msgid "\"Sloppy\" focus" #~ msgstr "\"ëŠìŠ¨í•œ\" 활성화 모드" #~ msgid "Raise Clip" #~ msgstr "í´ë¦½ 올림" #~ msgid "Lower Clip" #~ msgstr "í´ë¦½ 내림" #~ msgid "Command to Execute" #~ msgstr "실행할 명령" #~ msgid "New Command %i" #~ msgstr "새 명령 %i" #~ msgid "Workspaces" #~ msgstr "작업 공간" #~ msgid "Add Command" #~ msgstr "명령 추가" #~ msgid "Add External Menu" #~ msgstr "외부 메뉴 추가" #~ msgid "Remove Item" #~ msgstr "항목 ì‚­ì œ" #~ msgid "Cut Item" #~ msgstr "항목 잘ë¼ë‚´ê¸°" #~ msgid "Copy Item" #~ msgstr "항목 복사" #~ msgid "Paste Item" #~ msgstr "항목 ë¶™ì´ê¸°" #~ msgid "Label" #~ msgstr "ë ˆì´ë¸”" #~ msgid "Execute Shell Command" #~ msgstr "쉘 명령 실행" #~ msgid "Hide Others" #~ msgstr "다른 ì°½ 숨기기" #~ msgid "Legal Panel" #~ msgstr "법ì ì¸ ì •ë³´ 패ë„" #~ msgid "Menu Path/Directory List" #~ msgstr "메뉴 경로/디렉토리 목ë¡" #~ msgid "Ask help to the Guru" #~ msgstr "Guruì—게 ë„움 요청" #~ msgid "%s/Library/WindowMaker/plmenu" #~ msgstr "%s/Library/WindowMaker/plmenu.ko" #~ msgid "Copy Default Menu" #~ msgstr "기본 메뉴 복사" #~ msgid "Menu Guru - Select Type" #~ msgstr "메뉴 Guru - 형태를 ì„ íƒí•˜ì„¸ìš”" #~ msgid "Next" #~ msgstr "다ìŒ" #~ msgid "Menu Guru - Select Menu File" #~ msgstr "메뉴 Guru - 메뉴 파ì¼ì„ ì„ íƒí•˜ì„¸ìš”" #~ msgid "Menu Guru - Select Pipe Command" #~ msgstr "메뉴 Guru - 파ì´í”„ ëª…ë ¹ì„ ì„ íƒí•˜ì„¸ìš”" #~ msgid "Menu Guru - Select Directories" #~ msgstr "메뉴 Guru - 디렉토리를 ì„ íƒí•˜ì„¸ìš”" #~ msgid "Menu Guru - Select Command" #~ msgstr "메뉴 Guru - ëª…ë ¹ì„ ì„ íƒí•˜ì„¸ìš”" #~ msgid "Back" #~ msgstr "앞으로" #~ 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" #~ "ë¶€ë©”ë‰´ì˜ ë‚´ìš©ìœ¼ë¡œ ì–´ë–¤ ê²ƒì„ ì‚¬ìš©í•˜ê³  싶습니까?" #~ msgid "" #~ "A file containing the menu definition in the plain text (non-property " #~ "list) menu format." #~ msgstr "메뉴 ì •ì˜ë¥¼ 보통 í…스트로(특성 없는 목ë¡) ì“´ 파ì¼." #~ msgid "" #~ "The menu definition generated by a script/program read through a pipe." #~ msgstr "스í¬ë¦½íЏ/프로그램으로 ìƒì„±í•˜ì—¬ 파ì´í”„로 ì½ì–´ë“¤ì´ëŠ” 메뉴 ì •ì˜." #~ msgid "The files in one or more directories." #~ msgstr "하나 ì´ìƒì˜ ë””ë ‰í† ë¦¬ì˜ íŒŒì¼." #~ msgid "Type the path for the menu file:" #~ msgstr "메뉴 파ì¼ì˜ 경로를 ì ìœ¼ì„¸ìš”:" #~ 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입니다." #~ msgid "Type the command that will generate the menu definition:" #~ msgstr "메뉴 ì •ì˜ë¥¼ 만들어낼 ëª…ë ¹ì„ ìž…ë ¥í•˜ì„¸ìš”:" #~ 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 ìž…" #~ "니다" #~ msgid "" #~ "Type the path for the directory. You can type more than one path by " #~ "separating them with spaces." #~ msgstr "" #~ "ë””ë ‰í† ë¦¬ì˜ ê²½ë¡œë¥¼ 입력하세요. 빈칸으로 분리해서 하나 ì´ìƒì˜ 경로를 쓸 수 " #~ "있습니다." #~ 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 ì´ë¯¸ì§€ ê°™ì€ ê²ƒë“¤)" #~ msgid "" #~ "If the directory contain data files, type the command used to open these " #~ "files. Otherwise, leave it in blank." #~ msgstr "" #~ "ë””ë ‰í† ë¦¬ì— ë°ì´í„° 파ì¼ì´ 있는 경우, ì´ íŒŒì¼ì„ 열기 위해 사용할 ëª…ë ¹ì„ ìž…ë ¥" #~ "하세요. 그렇지 않으면 빈칸으로 ë‘세요." #~ 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 ì´ë¯¸ì§€íŒŒì¼\"ê³¼ ê°™ì€ ë©”ë‰´ í•­ëª©ì„ ê°–ìŠµë‹ˆë‹¤." #~ msgid "Invalid font %s." #~ msgstr "ìž˜ëª»ëœ ê¸€ê¼´ %s" #~ msgid "Set Font..." #~ msgstr "글꼴 지정..." #~ msgid "Menu Title Font" #~ msgstr "메뉴 제목 글꼴" #~ msgid "Menu Item Font" #~ msgstr "메뉴 항목 글꼴" #~ msgid "Geometry Display Font" #~ msgstr "위치/í¬ê¸° 표시 글꼴" #~ msgid "" #~ "Sample Text\n" #~ "abcdefghijklmnopqrstuvxywz\n" #~ "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" #~ "0123456789" #~ msgstr "" #~ "Sample Text\n" #~ "abcdefghijklmnopqrstuvxywz\n" #~ "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" #~ "가나다ë¼ë§ˆë°”사\n" #~ "0123456789" #~ msgid "Alignment" #~ msgstr "ì •ë ¬" #~ msgid "Text Preferences" #~ msgstr "í…스트 설정" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/es.po��������������������������������������������������������������0000644�0001750�0001750�00000200755�12214432632�014344� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Spanish Pot file for WPrefs.app # # msgid "" msgstr "" "Project-Id-Version: 0.01\n" "POT-Creation-Date: 2003-09-18 13:47+0200\n" "PO-Revision-Date: 2003-09-19 03:05-0400\n" "Last-Translator: Alberto Giménez <algibe@teleline.es>\n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: unknown\n" #: ../../WPrefs.app/Appearance.c:1131 msgid "Select File" msgstr "Escoger Archivo" #: ../../WPrefs.app/Appearance.c:1533 msgid "Focused Window" msgstr "Ventana enfocada" #: ../../WPrefs.app/Appearance.c:1537 msgid "Unfocused Window" msgstr "Ventana desenfocada" #: ../../WPrefs.app/Appearance.c:1541 msgid "Owner of Focused Window" msgstr "Padre de Ventana Enfocada" #: ../../WPrefs.app/Appearance.c:1545 ../../WPrefs.app/Appearance.c:1862 msgid "Menu Title" msgstr "Título de Menú" #: ../../WPrefs.app/Appearance.c:1549 ../../WPrefs.app/Appearance.c:1551 msgid "Normal Item" msgstr "Ãtem Normal" #: ../../WPrefs.app/Appearance.c:1555 msgid "Disabled Item" msgstr "Deshabilitado" #: ../../WPrefs.app/Appearance.c:1564 msgid "Highlighted" msgstr "Seleccionado" #: ../../WPrefs.app/Appearance.c:1755 msgid "Texture" msgstr "Textura" #: ../../WPrefs.app/Appearance.c:1763 msgid "Titlebar of Focused Window" msgstr "Título de Ventana Enfocada" #: ../../WPrefs.app/Appearance.c:1764 msgid "Titlebar of Unfocused Windows" msgstr "Título de Ventana no Enfocada" #: ../../WPrefs.app/Appearance.c:1765 msgid "Titlebar of Focused Window's Owner" msgstr "Título del padre de Vent. Enfocada" #: ../../WPrefs.app/Appearance.c:1766 msgid "Window Resizebar" msgstr "Barra de Redimensionado" #: ../../WPrefs.app/Appearance.c:1767 msgid "Titlebar of Menus" msgstr "Título de Menú" #: ../../WPrefs.app/Appearance.c:1768 msgid "Menu Items" msgstr "Ãtems de Menú" #: ../../WPrefs.app/Appearance.c:1769 msgid "Icon Background" msgstr "Fondo de Icono" #: ../../WPrefs.app/Appearance.c:1784 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "Haga doble-click en la textura que desea\n" "usar para el ítem seleccionado." #: ../../WPrefs.app/Appearance.c:1798 msgid "New" msgstr "Nueva" #: ../../WPrefs.app/Appearance.c:1802 msgid "Create a new texture." msgstr "Crear una textura nueva." #: ../../WPrefs.app/Appearance.c:1810 msgid "Extract..." msgstr "Extraer..." #: ../../WPrefs.app/Appearance.c:1814 msgid "Extract texture(s) from a theme or a style file." msgstr "Extraer textura(s) de un tema o archivo de estilo" #: ../../WPrefs.app/Appearance.c:1824 msgid "Edit" msgstr "Editar" #: ../../WPrefs.app/Appearance.c:1827 msgid "Edit the highlighted texture." msgstr "Editar la textura seleccionada" #: ../../WPrefs.app/Appearance.c:1835 ../../WPrefs.app/TexturePanel.c:1316 msgid "Delete" msgstr "Eliminar" #: ../../WPrefs.app/Appearance.c:1839 msgid "Delete the highlighted texture." msgstr "Eliminar la textura seleccionada" #: ../../WPrefs.app/Appearance.c:1852 msgid "Color" msgstr "Color" #: ../../WPrefs.app/Appearance.c:1859 msgid "Focused Window Title" msgstr "Título de Ventana enfocada" #: ../../WPrefs.app/Appearance.c:1860 msgid "Unfocused Window Title" msgstr "Título de Ventana no Enfocada" #: ../../WPrefs.app/Appearance.c:1861 msgid "Owner of Focused Window Title" msgstr "Título de Padre de Ventana Enfocada" #: ../../WPrefs.app/Appearance.c:1863 msgid "Menu Item Text" msgstr "Texto de Ãtem de Menú" #: ../../WPrefs.app/Appearance.c:1864 msgid "Disabled Menu Item Text" msgstr "Texto de Ãtem Deshabilitado" #: ../../WPrefs.app/Appearance.c:1865 msgid "Menu Highlight Color" msgstr "Color de Selección de Menú" #: ../../WPrefs.app/Appearance.c:1866 msgid "Highlighted Menu Text Color" msgstr "Color de Texto de Selección" #: ../../WPrefs.app/Appearance.c:1905 msgid "Background" msgstr "Fondo" #: ../../WPrefs.app/Appearance.c:1917 ../../WPrefs.app/TexturePanel.c:1503 msgid "Browse..." msgstr "Buscar..." #: ../../WPrefs.app/Appearance.c:1930 msgid "Options" msgstr "Opciones" #: ../../WPrefs.app/Appearance.c:1937 msgid "Menu Style" msgstr "Estilo de Menú" #: ../../WPrefs.app/Appearance.c:1965 ../../WPrefs.app/Configurations.c:242 #: ../../WPrefs.app/Configurations.c:254 ../../WPrefs.app/Focus.c:288 #: ../../WPrefs.app/Focus.c:299 ../../WPrefs.app/MenuPreferences.c:134 #: ../../WPrefs.app/MenuPreferences.c:145 #: ../../WPrefs.app/MenuPreferences.c:173 #: ../../WPrefs.app/MenuPreferences.c:188 ../../WPrefs.app/MouseSettings.c:560 #: ../../WPrefs.app/MouseSettings.c:571 ../../WPrefs.app/WPrefs.c:558 #: ../../WPrefs.app/WPrefs.c:583 #, c-format msgid "could not load icon file %s" msgstr "no puedo cargar el archivo de icono %s" #: ../../WPrefs.app/Appearance.c:1979 msgid "Title Alignment" msgstr "Alineación de Título" #: ../../WPrefs.app/Appearance.c:1986 msgid "Left" msgstr "Izquierda" #: ../../WPrefs.app/Appearance.c:1989 ../../WPrefs.app/TexturePanel.c:1517 #: ../../WPrefs.app/Workspace.c:270 msgid "Center" msgstr "Centro" #: ../../WPrefs.app/Appearance.c:1992 msgid "Right" msgstr "Derecha" #: ../../WPrefs.app/Appearance.c:2216 msgid "Appearance Preferences" msgstr "Preferencias de Apariencia" #: ../../WPrefs.app/Appearance.c:2218 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "Configuración de texturas para\n" "ventanas, menús e iconos." #: ../../WPrefs.app/Appearance.c:2263 msgid "Extract Texture" msgstr "Extraer Textura" #: ../../WPrefs.app/Appearance.c:2283 msgid "Textures" msgstr "Texturas" #: ../../WPrefs.app/Appearance.c:2294 ../../WPrefs.app/WPrefs.c:302 msgid "Close" msgstr "Cerrar" #: ../../WPrefs.app/Appearance.c:2299 msgid "Extract" msgstr "Extraer" #: ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 #: ../../WPrefs.app/MouseSettings.c:490 ../../WPrefs.app/WindowHandling.c:339 #: ../../WPrefs.app/WindowHandling.c:351 ../../WPrefs.app/Workspace.c:90 #: ../../WPrefs.app/Workspace.c:101 #, c-format msgid "could not load icon %s" msgstr "no puedo cargar el icono %s" #: ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:109 #, c-format msgid "could not process icon %s: %s" msgstr "no puedo procesar el icono %s: %s" #: ../../WPrefs.app/Configurations.c:189 ../../WPrefs.app/Workspace.c:164 #, c-format msgid "could not load image file %s" msgstr "no puedo cargar la imagen %s" #: ../../WPrefs.app/Configurations.c:203 msgid "Icon Slide Speed" msgstr "Velocidad de Desplazamiento de Iconos" #: ../../WPrefs.app/Configurations.c:209 msgid "Shade Animation Speed" msgstr "Velocidad de Animación del Sombreado" #: ../../WPrefs.app/Configurations.c:271 msgid "Smooth Scaling" msgstr "Suavizar" #: ../../WPrefs.app/Configurations.c:272 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "Suavizar las imágenes de fondo que cambien de tamaño,\n" "neutralizando efectos de pixelación. Esto ralentizará\n" "considerablemente el despliegue de imágenes de fondo." #: ../../WPrefs.app/Configurations.c:313 msgid "Titlebar Style" msgstr "Botón de cerrado" #: ../../WPrefs.app/Configurations.c:351 msgid "Animations and Sound" msgstr "Sonido y Animaciones" #: ../../WPrefs.app/Configurations.c:357 msgid "Animations" msgstr "Animación" #: ../../WPrefs.app/Configurations.c:368 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "Activar/desactivar animaciones como las usadas\n" "en miniaturización de ventanas, sombreado, etc." #: ../../WPrefs.app/Configurations.c:376 msgid "Superfluous" msgstr "Superfluo" #: ../../WPrefs.app/Configurations.c:387 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "Activar/desactivar capacidades 'superfluas' y\n" "animaciones. Esto incluye la transparencia del Dock\n" "cuando se mueve al lado opuesto y la animación de\n" "explosión de los íconos que se quitan del Dock." #: ../../WPrefs.app/Configurations.c:397 msgid "Sounds" msgstr "Sonidos" #: ../../WPrefs.app/Configurations.c:408 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://shadowmere.student.utwente.nl/" msgstr "" "Activar/desactivar el soporte para efectos sonoros para\n" "acciones como el sombreado y cerrar ventanas. Se necesita\n" "un módulo distribuido separadamente para esto. Puede\n" "obtenerse de http://www.frontiernet.net/~southgat/wmsound" #: ../../WPrefs.app/Configurations.c:419 msgid "" "Note: sound requires a module distributed\n" "separately" msgstr "Nota: el sonido requiere un módulo distribuido por separado" #: ../../WPrefs.app/Configurations.c:429 msgid "Dithering colormap for 8bpp" msgstr "Difuminado del mapa de colores para 8bpp" #: ../../WPrefs.app/Configurations.c:431 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "Número de colores a reservar para Window Maker\n" "en displays que soportan sólo 8bpp (PseudoColor)." #: ../../WPrefs.app/Configurations.c:438 msgid "Disable dithering in any visual/depth" msgstr "Deshabilitar el difuminado en cualquier profundidad de color" #: ../../WPrefs.app/Configurations.c:459 msgid "" "More colors for\n" "applications" msgstr "Más colores para\n" "las aplicaciones" #: ../../WPrefs.app/Configurations.c:466 msgid "" "More colors for\n" "Window Maker" msgstr "Más colores para\n" "Window Maker" #: ../../WPrefs.app/Configurations.c:521 msgid "Other Configurations" msgstr "Otras Configuraciones" #: ../../WPrefs.app/Configurations.c:523 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "Velocidad de animación, estilos de barras de títulos,\n" "número de colores a reservar a Window Maker en displays\n" "de 8bpp (256 colores) y otras opciones misceláneas." #: ../../WPrefs.app/Expert.c:75 msgid "" "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." msgstr "" "Deshabilitar miniventanas (iconos de ventanas miniaturizadas). Para usar con " "Gnome/KDE." #: ../../WPrefs.app/Expert.c:76 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "No establecer parámetros no específicos de Window Maker (no usar xset)" #: ../../WPrefs.app/Expert.c:77 msgid "Automatically save session when exiting Window Maker." msgstr "Guardar automáticamente la sesión al salir de Window Maker" #: ../../WPrefs.app/Expert.c:78 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "Usar SaveUnder en marcos de ventanas, iconos, menús y otros objetos" #: ../../WPrefs.app/Expert.c:79 msgid "Use Windoze style cycling." msgstr "Usar el estilo de Windows para cambiar entre ventanas." #: ../../WPrefs.app/Expert.c:80 msgid "Disable confirmation panel for the Kill command." msgstr "Deshabilitar panel de confirmación para el comando Matar." #: ../../WPrefs.app/Expert.c:81 msgid "Disable selection animation for selected icons." msgstr "Desactivar animación de selección para los iconos seleccionados." #: ../../WPrefs.app/Expert.c:115 msgid "Expert User Preferences" msgstr "Preferencias Avanzadas" #: ../../WPrefs.app/Expert.c:117 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "Opciones para gente que sabe lo que hace...\n" "También algunas opciones misceláneas." #: ../../WPrefs.app/Focus.c:80 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "" "valor incorrecto (%s) para la opción FocusMode. Usando el valor por defecto " "(Manual)" #: ../../WPrefs.app/Focus.c:94 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "" "valor incorrecto (%s) para la opción ColormapMode. Usando el valor por " "defecto (Manual)" #: ../../WPrefs.app/Focus.c:214 msgid "Input Focus Mode" msgstr "Modo de Foco de Teclado" #: ../../WPrefs.app/Focus.c:222 msgid "Manual: Click on the window to set keyboard input focus" msgstr "Manual: Pinchar en la ventana para enfocar." #: ../../WPrefs.app/Focus.c:229 msgid "Auto: Set keyboard input focus to the window under the mouse pointer" msgstr "" "Auto: Dar foco a la ventana bajo el puntero del ratón" #: ../../WPrefs.app/Focus.c:243 msgid "Install colormap in the window..." msgstr "Instalar el mapa de colores de la ventana..." #: ../../WPrefs.app/Focus.c:248 msgid "...that has the input focus." msgstr "...que tiene el foco de teclado." #: ../../WPrefs.app/Focus.c:253 msgid "...that is under the mouse pointer." msgstr "...que está bajo el ratón." #: ../../WPrefs.app/Focus.c:262 msgid "Automatic Window Raise Delay" msgstr "Retraso en el Alzado de Ventanas" #: ../../WPrefs.app/Focus.c:319 ../../WPrefs.app/MouseSettings.c:601 msgid "msec" msgstr "mseg" #: ../../WPrefs.app/Focus.c:336 msgid "" "Do not let applications receive\n" "the click used to focus windows." msgstr "No permitir a las aplicaciones recibir|n" "el click usado para darle foco." #: ../../WPrefs.app/Focus.c:342 msgid "" "Automatically focus new\n" "windows." msgstr "Dar foco automáticamente a las\n" "ventanas nuevas." #: ../../WPrefs.app/Focus.c:363 msgid "Window Focus Preferences" msgstr "Preferencias de Foco de Ventanas" #: ../../WPrefs.app/Focus.c:365 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "Política de cambio de foco, política de cambio de\n" "mapa de colores para displays de 8bpp (256 colores)\n" "y otras opciones relacionadas." #: ../../WPrefs.app/Font.c:276 msgid "Could not locate font information file WPrefs.app/font.data" msgstr "" "No fue posible encontrar archivo de información de fuente\"\n" "\"WPrefs.app/font.data\"" #: ../../WPrefs.app/Font.c:282 msgid "Could not read font information file WPrefs.app/font.data" msgstr "" "No fue posible leer archivo de información de fuente WPrefs.app/font.data" #: ../../WPrefs.app/Font.c:293 msgid "" "Invalid data in font information file WPrefs.app/font.data.\n" "Encodings data not found." msgstr "" "Datos no válidos en el archivo de información de fuente WPrefs.app/font." "data.\n" "Datos de codificación no encontrados." #: ../../WPrefs.app/Font.c:298 msgid "- Custom -" msgstr "Personalizar" #: ../../WPrefs.app/Font.c:329 ../../WPrefs.app/Menu.c:1594 #: ../../WPrefs.app/MouseSettings.c:140 ../../WPrefs.app/MouseSettings.c:160 #: ../../WPrefs.app/TexturePanel.c:613 ../../WPrefs.app/TexturePanel.c:693 #: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:758 #: ../../WPrefs.app/WPrefs.c:763 ../../WPrefs.app/WPrefs.c:780 #: ../../WPrefs.app/WPrefs.c:790 ../../WPrefs.app/WPrefs.c:800 #: ../../WPrefs.app/WPrefs.c:838 ../../WPrefs.app/WPrefs.c:843 msgid "Error" msgstr "Error" #: ../../WPrefs.app/Font.c:329 ../../WPrefs.app/Menu.c:1594 #: ../../WPrefs.app/MouseSettings.c:142 ../../WPrefs.app/MouseSettings.c:162 #: ../../WPrefs.app/TexturePanel.c:614 ../../WPrefs.app/TexturePanel.c:695 #: ../../WPrefs.app/TexturePanel.c:1528 ../../WPrefs.app/Themes.c:98 #: ../../WPrefs.app/WPrefs.c:758 ../../WPrefs.app/WPrefs.c:763 #: ../../WPrefs.app/WPrefs.c:782 ../../WPrefs.app/WPrefs.c:794 #: ../../WPrefs.app/WPrefs.c:800 ../../WPrefs.app/WPrefs.c:807 #: ../../WPrefs.app/WPrefs.c:838 ../../WPrefs.app/WPrefs.c:843 #: ../../WPrefs.app/imagebrowser.c:105 msgid "OK" msgstr "Ok" #: ../../WPrefs.app/Font.c:376 msgid "Default Font Sets" msgstr "Estilos de fuente estándar" #: ../../WPrefs.app/Font.c:389 msgid "Font Set" msgstr "Estilo de Fuente" #: ../../WPrefs.app/Font.c:418 msgid "Add..." msgstr "Agregar..." #: ../../WPrefs.app/Font.c:423 ../../WPrefs.app/Font.c:438 msgid "Change..." msgstr "Cambiar..." #: ../../WPrefs.app/Font.c:428 ../../WPrefs.app/Paths.c:288 #: ../../WPrefs.app/Paths.c:319 msgid "Remove" msgstr "Eliminar" #: ../../WPrefs.app/Font.c:477 msgid "Font Preferences" msgstr "Preferencias de Fuente" #: ../../WPrefs.app/Font.c:478 msgid "Font Configurations for Windows, Menus etc" msgstr "Configuración de fuentes para las Ventanas, Menús, etc." #: ../../WPrefs.app/Icons.c:180 msgid "Icon Positioning" msgstr "Posicionamiento de Iconos" #: ../../WPrefs.app/Icons.c:227 msgid "Iconification Animation" msgstr "Animación de la iconificación" #: ../../WPrefs.app/Icons.c:238 msgid "Shrinking/Zooming" msgstr "Encogiendo/Acercando" #: ../../WPrefs.app/Icons.c:239 msgid "Spinning/Twisting" msgstr "Girando/Torciendo" #: ../../WPrefs.app/Icons.c:240 msgid "3D-flipping" msgstr "Rotando 3D" #: ../../WPrefs.app/Icons.c:241 ../../WPrefs.app/MouseSettings.c:838 #: ../../WPrefs.app/MouseSettings.c:843 msgid "None" msgstr "Ninguna" #: ../../WPrefs.app/Icons.c:254 msgid "Auto-arrange icons" msgstr "Auto-ordenar iconos" #: ../../WPrefs.app/Icons.c:256 msgid "Keep icons and miniwindows arranged all the time." msgstr "Mantener iconos y miniventanas ordenados todo el tiempo." #: ../../WPrefs.app/Icons.c:262 msgid "Omnipresent miniwindows" msgstr "Miniventanas omnipresentes" #: ../../WPrefs.app/Icons.c:264 msgid "Make miniwindows be present in all workspaces." msgstr "Hacer que las miniventanas estén presentes en todas las áreas." #: ../../WPrefs.app/Icons.c:273 msgid "Icon Size" msgstr "Tamaño de Iconos" #: ../../WPrefs.app/Icons.c:275 msgid "The size of the dock/application icon and miniwindows" msgstr "El tamaño del dock e iconos de aplicaciones y miniventanas." #: ../../WPrefs.app/Icons.c:345 msgid "Icon Preferences" msgstr "Preferencias de Iconos" #: ../../WPrefs.app/Icons.c:347 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "Opciones de manejo de iconos y miniventanas. Ãrea de\n" "posicionamiento de iconos, tamaño de iconos, estilo de\n" "animación de miniaturización." #: ../../WPrefs.app/KeyboardSettings.c:73 msgid "Initial Key Repeat" msgstr "Repetición inicial" #: ../../WPrefs.app/KeyboardSettings.c:114 msgid "Key Repeat Rate" msgstr "Tasa de Repetición de Teclas" #: ../../WPrefs.app/KeyboardSettings.c:154 msgid "Type here to test" msgstr "Escriba aquí para probar" #: ../../WPrefs.app/KeyboardSettings.c:173 msgid "Keyboard Preferences" msgstr "Preferencias de Teclado" #: ../../WPrefs.app/KeyboardSettings.c:175 msgid "Not done" msgstr "No hecho" #: ../../WPrefs.app/KeyboardShortcuts.c:306 ../../WPrefs.app/Menu.c:360 #: ../../WPrefs.app/TexturePanel.c:1534 ../../WPrefs.app/imagebrowser.c:100 msgid "Cancel" msgstr "Cancelar" #: ../../WPrefs.app/KeyboardShortcuts.c:307 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "" "Presione la secuencia deseada o pinche Cancelar para abortar la captura." #: ../../WPrefs.app/KeyboardShortcuts.c:327 #: ../../WPrefs.app/KeyboardShortcuts.c:577 ../../WPrefs.app/Menu.c:371 #: ../../WPrefs.app/Menu.c:830 msgid "Capture" msgstr "Capturar" #: ../../WPrefs.app/KeyboardShortcuts.c:328 #: ../../WPrefs.app/KeyboardShortcuts.c:585 msgid "Click Capture to interactively define the shortcut key." msgstr "Pinche Capturar para definir la secuencia." #: ../../WPrefs.app/KeyboardShortcuts.c:483 msgid "Actions" msgstr "Acciones" #: ../../WPrefs.app/KeyboardShortcuts.c:499 msgid "Open applications menu" msgstr "Abrir menú de aplicaciones" #: ../../WPrefs.app/KeyboardShortcuts.c:500 msgid "Open window list menu" msgstr "Abrir menú de lista de ventanas" #: ../../WPrefs.app/KeyboardShortcuts.c:501 msgid "Open window commands menu" msgstr "Abrir menú de acciones de ventana" #: ../../WPrefs.app/KeyboardShortcuts.c:502 msgid "Hide active application" msgstr "Esconder aplicación activa" #: ../../WPrefs.app/KeyboardShortcuts.c:503 msgid "Hide other applications" msgstr "Esconder otras aplicaciones" #: ../../WPrefs.app/KeyboardShortcuts.c:504 msgid "Miniaturize active window" msgstr "Miniaturizar la ventana activa" #: ../../WPrefs.app/KeyboardShortcuts.c:505 msgid "Close active window" msgstr "Cerrar la ventana activa" #: ../../WPrefs.app/KeyboardShortcuts.c:506 msgid "Maximize active window" msgstr "Maximizar la ventana activa" #: ../../WPrefs.app/KeyboardShortcuts.c:507 msgid "Maximize active window vertically" msgstr "Maximizar la ventana activa verticalmente" #: ../../WPrefs.app/KeyboardShortcuts.c:508 msgid "Maximize active window horizontally" msgstr "Maximizar la ventana activa horizontalmente" #: ../../WPrefs.app/KeyboardShortcuts.c:509 msgid "Raise active window" msgstr "Alzar la ventana activa" #: ../../WPrefs.app/KeyboardShortcuts.c:510 msgid "Lower active window" msgstr "Bajar la ventana activa" #: ../../WPrefs.app/KeyboardShortcuts.c:511 msgid "Raise/Lower window under mouse pointer" msgstr "Alzar/bajar la ventana bajo el ratón" #: ../../WPrefs.app/KeyboardShortcuts.c:512 msgid "Shade active window" msgstr "Sombrear la ventana activa" #: ../../WPrefs.app/KeyboardShortcuts.c:513 msgid "Move/Resize active window" msgstr "Mover/redimensionar ventana activa" #: ../../WPrefs.app/KeyboardShortcuts.c:514 msgid "Select active window" msgstr "Seleccionar ventana activa" #: ../../WPrefs.app/KeyboardShortcuts.c:515 msgid "Focus next window" msgstr "Enfocar la siguiente ventana" #: ../../WPrefs.app/KeyboardShortcuts.c:516 msgid "Focus previous window" msgstr "Enfocar la ventana anterior" #: ../../WPrefs.app/KeyboardShortcuts.c:517 msgid "Switch to next workspace" msgstr "Cambiar a la siguiente área de trabajo" #: ../../WPrefs.app/KeyboardShortcuts.c:518 msgid "Switch to previous workspace" msgstr "Cambiar al área de trabajo anterior" #: ../../WPrefs.app/KeyboardShortcuts.c:519 msgid "Switch to next ten workspaces" msgstr "Cambiar diez áreas más adelante" #: ../../WPrefs.app/KeyboardShortcuts.c:520 msgid "Switch to previous ten workspaces" msgstr "Cambiar diez áreas más atrás" #: ../../WPrefs.app/KeyboardShortcuts.c:521 msgid "Switch to workspace 1" msgstr "Cambiar al área de trabajo 1" #: ../../WPrefs.app/KeyboardShortcuts.c:522 msgid "Switch to workspace 2" msgstr "Cambiar al área de trabajo 2" #: ../../WPrefs.app/KeyboardShortcuts.c:523 msgid "Switch to workspace 3" msgstr "Cambiar al área de trabajo 3" #: ../../WPrefs.app/KeyboardShortcuts.c:524 msgid "Switch to workspace 4" msgstr "Cambiar al área de trabajo 4" #: ../../WPrefs.app/KeyboardShortcuts.c:525 msgid "Switch to workspace 5" msgstr "Cambiar al área de trabajo 5" #: ../../WPrefs.app/KeyboardShortcuts.c:526 msgid "Switch to workspace 6" msgstr "Cambiar al área de trabajo 6" #: ../../WPrefs.app/KeyboardShortcuts.c:527 msgid "Switch to workspace 7" msgstr "Cambiar al área de trabajo 7" #: ../../WPrefs.app/KeyboardShortcuts.c:528 msgid "Switch to workspace 8" msgstr "Cambiar al área de trabajo 8" #: ../../WPrefs.app/KeyboardShortcuts.c:529 msgid "Switch to workspace 9" msgstr "Cambiar al área de trabajo 9" #: ../../WPrefs.app/KeyboardShortcuts.c:530 msgid "Switch to workspace 10" msgstr "Cambiar al área de trabajo 10" #: ../../WPrefs.app/KeyboardShortcuts.c:531 msgid "Shortcut for window 1" msgstr "Secuencia para ventana 1" #: ../../WPrefs.app/KeyboardShortcuts.c:532 msgid "Shortcut for window 2" msgstr "Secuencia para ventana 2" #: ../../WPrefs.app/KeyboardShortcuts.c:533 msgid "Shortcut for window 3" msgstr "Secuencia para ventana 3" #: ../../WPrefs.app/KeyboardShortcuts.c:534 msgid "Shortcut for window 4" msgstr "Secuencia para ventana 4" #: ../../WPrefs.app/KeyboardShortcuts.c:535 msgid "Shortcut for window 5" msgstr "Secuencia para ventana 5" #: ../../WPrefs.app/KeyboardShortcuts.c:536 msgid "Shortcut for window 6" msgstr "Secuencia para ventana 6" #: ../../WPrefs.app/KeyboardShortcuts.c:537 msgid "Shortcut for window 7" msgstr "Secuencia para ventana 7" #: ../../WPrefs.app/KeyboardShortcuts.c:538 msgid "Shortcut for window 8" msgstr "Secuencia para ventana 8" #: ../../WPrefs.app/KeyboardShortcuts.c:539 msgid "Shortcut for window 9" msgstr "Secuencia para ventana 9" #: ../../WPrefs.app/KeyboardShortcuts.c:540 msgid "Shortcut for window 10" msgstr "Secuencia para ventana 10" #: ../../WPrefs.app/KeyboardShortcuts.c:541 msgid "Switch to Next Screen/Monitor" msgstr "Cambiar a la siguiente Pantalla/Monitor" #: ../../WPrefs.app/KeyboardShortcuts.c:542 msgid "Raise Clip" msgstr "Alzar Clip" #: ../../WPrefs.app/KeyboardShortcuts.c:543 msgid "Lower Clip" msgstr "Bajar Clip" #: ../../WPrefs.app/KeyboardShortcuts.c:544 msgid "Raise/Lower Clip" msgstr "Alzar/Bajar Clip" #: ../../WPrefs.app/KeyboardShortcuts.c:546 msgid "Toggle keyboard language" msgstr "Cambiar idioma del teclado" #: ../../WPrefs.app/KeyboardShortcuts.c:560 msgid "Shortcut" msgstr "Secuencia" #: ../../WPrefs.app/KeyboardShortcuts.c:571 ../../WPrefs.app/Menu.c:836 msgid "Clear" msgstr "Limpiar" #: ../../WPrefs.app/KeyboardShortcuts.c:633 msgid "Keyboard Shortcut Preferences" msgstr "Secuencias de Teclado" #: ../../WPrefs.app/KeyboardShortcuts.c:635 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "Cambiar las secuencias de teclado para acciones como\n" "cambiar de áreas y abrir menús." #: ../../WPrefs.app/Menu.c:278 msgid "Select Program" msgstr "Escoja Programa" #: ../../WPrefs.app/Menu.c:510 msgid "New Items" msgstr "Nuevas entradas" #: ../../WPrefs.app/Menu.c:511 msgid "Sample Commands" msgstr "Comandos de ejemplo" #: ../../WPrefs.app/Menu.c:512 msgid "Sample Submenus" msgstr "Submenus de ejemplo" #: ../../WPrefs.app/Menu.c:526 msgid "Run Program" msgstr "Ejecutar Programa" #: ../../WPrefs.app/Menu.c:527 msgid "Internal Command" msgstr "Comando Interno" #: ../../WPrefs.app/Menu.c:528 msgid "Submenu" msgstr "Submenú" #: ../../WPrefs.app/Menu.c:529 msgid "External Submenu" msgstr "Submenú Externo" #: ../../WPrefs.app/Menu.c:530 msgid "Generated Submenu" msgstr "Submenú Generado" #: ../../WPrefs.app/Menu.c:531 msgid "Directory Contents" msgstr "Contenido de Directorio" #: ../../WPrefs.app/Menu.c:532 msgid "Workspace Menu" msgstr "Menú de Areas" #: ../../WPrefs.app/Menu.c:533 ../../WPrefs.app/MouseSettings.c:840 msgid "Window List Menu" msgstr "Lista de ventanas" #: ../../WPrefs.app/Menu.c:552 msgid "XTerm" msgstr "XTerm" #: ../../WPrefs.app/Menu.c:555 msgid "rxvt" msgstr "rxvt" #: ../../WPrefs.app/Menu.c:558 msgid "ETerm" msgstr "ETerm" #: ../../WPrefs.app/Menu.c:561 msgid "Run..." msgstr "Ejecutar..." #: ../../WPrefs.app/Menu.c:562 msgid "%a(Run,Type command to run)" msgstr "%a(Run,Entre comando a ejecutar)" #: ../../WPrefs.app/Menu.c:564 msgid "Netscape" msgstr "Netscape" #: ../../WPrefs.app/Menu.c:567 msgid "gimp" msgstr "gimp" #: ../../WPrefs.app/Menu.c:570 msgid "epic" msgstr "epic" #: ../../WPrefs.app/Menu.c:573 msgid "ee" msgstr "ee" #: ../../WPrefs.app/Menu.c:576 msgid "xv" msgstr "xv" #: ../../WPrefs.app/Menu.c:579 msgid "Acrobat Reader" msgstr "Acrobat Reader" #: ../../WPrefs.app/Menu.c:582 msgid "ghostview" msgstr "ghostview" #: ../../WPrefs.app/Menu.c:585 ../../WPrefs.app/Menu.c:857 msgid "Exit Window Maker" msgstr "Salir de Window Maker" #: ../../WPrefs.app/Menu.c:608 msgid "Debian Menu" msgstr "Menú Debian" #: ../../WPrefs.app/Menu.c:611 msgid "RedHat Menu" msgstr "Menú RedHat" #: ../../WPrefs.app/Menu.c:614 msgid "Menu Conectiva" msgstr "Menú Conectiva" #: ../../WPrefs.app/Menu.c:617 ../../WPrefs.app/Themes.c:250 msgid "Themes" msgstr "Temas" #: ../../WPrefs.app/Menu.c:622 msgid "Bg Images (scale)" msgstr "Imágenes de fondo (escaladas)" #: ../../WPrefs.app/Menu.c:627 msgid "Bg Images (tile)" msgstr "Imágenes de fondo (mosaico)" #: ../../WPrefs.app/Menu.c:632 msgid "Assorted XTerms" msgstr "XTerms variadas" #: ../../WPrefs.app/Menu.c:634 msgid "XTerm Yellow on Blue" msgstr "XTerm Amarilla sobre Azul" #: ../../WPrefs.app/Menu.c:637 msgid "XTerm White on Black" msgstr "XTerm Blanco sobre Negro" #: ../../WPrefs.app/Menu.c:640 msgid "XTerm Black on White" msgstr "XTerm Negro sobre Blanco" #: ../../WPrefs.app/Menu.c:643 msgid "XTerm Black on Beige" msgstr "XTerm Negro sobre Beige" #: ../../WPrefs.app/Menu.c:646 msgid "XTerm White on Green" msgstr "XTerm Blanco sobre Verde" #: ../../WPrefs.app/Menu.c:649 msgid "XTerm White on Olive" msgstr "XTerm Blanco sobre Oliva" #: ../../WPrefs.app/Menu.c:652 msgid "XTerm Blue on Blue" msgstr "XTerm Azul sobre Azul" #: ../../WPrefs.app/Menu.c:655 msgid "XTerm BIG FONTS" msgstr "XTerm FUENTES GRANDES" #: ../../WPrefs.app/Menu.c:677 msgid "Program to Run" msgstr "Programa a Ejecutar" #: ../../WPrefs.app/Menu.c:687 msgid "Browse" msgstr "Buscar..." #: ../../WPrefs.app/Menu.c:698 msgid "Run the program inside a Xterm" msgstr "Ejecutar el programa dentro de una Xterm" #: ../../WPrefs.app/Menu.c:708 msgid "Path for Menu" msgstr "Path para el menú" #: ../../WPrefs.app/Menu.c:721 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin" msgstr "" "Introduzca el path de un archivo que contenga\n" "un menú o una lista de directorios con los\n" "programas que quiere listados en el menú.\n" "Ej: ~/GNUstep/Library/WindowMaker/menu o \n" "/usr/bin ~/xbin" #: ../../WPrefs.app/Menu.c:736 msgid "Command" msgstr "Comando" #: ../../WPrefs.app/Menu.c:750 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "Introduzca un programa que como salida\n" "tenga una definición de menú." #: ../../WPrefs.app/Menu.c:758 msgid "" "Cache menu contents after opening for\n" "the first time" msgstr "" "Cachear los contenidos del menú después\n" "de abrirlo por primera vez" #: ../../WPrefs.app/Menu.c:769 msgid "Command to Open Files" msgstr "Programa para abrir archivos" #: ../../WPrefs.app/Menu.c:783 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "Introduzca el programa a usar para abrir los\n" "archivos en los directorios listados abajo." #: ../../WPrefs.app/Menu.c:792 msgid "Directories with Files" msgstr "Direcotrios con Archivos" #: ../../WPrefs.app/Menu.c:805 msgid "Strip extensions from file names" msgstr "Quitar extensiones de los nombres de archivo" #: ../../WPrefs.app/Menu.c:817 msgid "Keyboard Shortcut" msgstr "Secuencias de Teclado" #: ../../WPrefs.app/Menu.c:853 msgid "Arrange Icons" msgstr "Ordenar Iconos" #: ../../WPrefs.app/Menu.c:854 msgid "Hide All Windows Except For The Focused One" msgstr "Esconder todas las ventanas excepto la que tiene foco" #: ../../WPrefs.app/Menu.c:855 msgid "Show All Windows" msgstr "Mostrar Todos" #: ../../WPrefs.app/Menu.c:858 msgid "Exit X Session" msgstr "Salir de la sesión X" #: ../../WPrefs.app/Menu.c:859 msgid "Restart Window Maker" msgstr "Reiniciar Window Maker" #: ../../WPrefs.app/Menu.c:860 msgid "Start Another Window Manager : (" msgstr "Arrancar otro administrador de ventanas" #: ../../WPrefs.app/Menu.c:862 msgid "Save Current Session" msgstr "Guardar la sesión" #: ../../WPrefs.app/Menu.c:863 msgid "Clear Saved Session" msgstr "Limpiar la sesión" #: ../../WPrefs.app/Menu.c:864 msgid "Refresh Screen" msgstr "Redibujar la pantalla" #: ../../WPrefs.app/Menu.c:865 msgid "Open Info Panel" msgstr "Panel de Información" #: ../../WPrefs.app/Menu.c:866 msgid "Open Copyright Panel" msgstr "Panel de Copyright" #: ../../WPrefs.app/Menu.c:872 msgid "Window Manager to Start" msgstr "Administrador de Ventanas" #: ../../WPrefs.app/Menu.c:888 msgid "Do not confirm action." msgstr "Sin panel de confirmación" #: ../../WPrefs.app/Menu.c:898 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "Instrucciones:\n" "\n" " - Arrastre ítems de la izquierda al menú para añadirlos\n" " - Arrastre ítems fuera del menú para eliminarlos\n" " - Arrastre ítems dentro del menú para cambiar su posición\n" " - Arrastre ítems con Control presionado para copiarlos\n" " - Doble clic en una entrada del menú para cambiar la etiqueta\n" " - Clic en una entrada deel menú para cambiar la información" #: ../../WPrefs.app/Menu.c:1122 #, c-format msgid "unknown command '%s' in menu" msgstr "Orden desconocida '%s' en el menu" #: ../../WPrefs.app/Menu.c:1154 msgid ": Execute Program" msgstr ": Ejecutar Programa" #: ../../WPrefs.app/Menu.c:1158 msgid ": Perform Internal Command" msgstr ": Ejecutar una orden interna" #: ../../WPrefs.app/Menu.c:1162 msgid ": Open a Submenu" msgstr ": Abrir Submenú" #: ../../WPrefs.app/Menu.c:1166 msgid ": Program Generated Submenu" msgstr ": Submenú generado por programa" #: ../../WPrefs.app/Menu.c:1170 msgid ": Directory Contents Menu" msgstr ": Menú de contenido de directorio" #: ../../WPrefs.app/Menu.c:1174 msgid ": Open Workspaces Submenu" msgstr ": Abrir menú de Areas" #: ../../WPrefs.app/Menu.c:1178 msgid ": Open Window List Submenu" msgstr ": Abrir menú de lista de ventanas" #: ../../WPrefs.app/Menu.c:1403 msgid "Remove Submenu" msgstr "Eliminar Submenú" #: ../../WPrefs.app/Menu.c:1404 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "" "Eliminar esta entrada eliminará todas las entradas\n" "dentro del submenú. ¿Realmente desea hacerlo?" #: ../../WPrefs.app/Menu.c:1406 msgid "Yes" msgstr "Sí" #: ../../WPrefs.app/Menu.c:1406 msgid "No" msgstr "No" #: ../../WPrefs.app/Menu.c:1407 msgid "Yes, don't ask again." msgstr "Sí, no preguntarme más." #. if there is a localized plmenu for the tongue put it's filename here #: ../../WPrefs.app/Menu.c:1575 ../../WPrefs.app/Menu.c:1582 #, c-format msgid "%s/Library/WindowMaker/plmenu" msgstr "%s/Library/WindowMaker/plmenu" #: ../../WPrefs.app/Menu.c:1591 #, c-format msgid "Could not open default menu from '%s'" msgstr "no se pudo abrir el menú por defecto de '%s'" #: ../../WPrefs.app/Menu.c:1629 ../../WPrefs.app/WPrefs.c:807 msgid "Warning" msgstr "Atención" #: ../../WPrefs.app/Menu.c:1630 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "El formato del fichero de menú actualmente en uso no\n" "está soportado por esta herramienta. ¿Quiere desechar\n" "el menú actual para usar esta herramienta?" #: ../../WPrefs.app/Menu.c:1633 msgid "Yes, Discard and Update" msgstr "Sí, desechar y actualizar" #: ../../WPrefs.app/Menu.c:1634 msgid "No, Keep Current Menu" msgstr "Mantener el menú actual" #: ../../WPrefs.app/Menu.c:1897 msgid "Applications Menu Definition" msgstr "Definición de Menú de Aplicaciones" #: ../../WPrefs.app/Menu.c:1899 msgid "Edit the menu for launching applications." msgstr "Editar el menú para lanzar aplicaciones" #: ../../WPrefs.app/MenuPreferences.c:111 msgid "Menu Scrolling Speed" msgstr "Velocidad de desplazamiento del menú" #: ../../WPrefs.app/MenuPreferences.c:160 msgid "Submenu Alignment" msgstr "Alineamiento de submenús" #: ../../WPrefs.app/MenuPreferences.c:204 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "Siempre abrir submenús dentro de la pantalla en vez de desplazarlos." #: ../../WPrefs.app/MenuPreferences.c:209 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "Desplazar los menús cuando el puntero del ratón se mueva sobre ellos." #: ../../WPrefs.app/MenuPreferences.c:229 msgid "Menu Preferences" msgstr "Preferencias de menú" #: ../../WPrefs.app/MenuPreferences.c:231 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "Opciones relacionadas al uso de menús. Velocidad\n" "de desplazamiento, alineación de submenús, etc." #: ../../WPrefs.app/MouseSettings.c:141 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "Valor de aceleración incorrecto. Debe ser un valor real positivo." #: ../../WPrefs.app/MouseSettings.c:161 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "" "Valor de umbral de aceleración incorrecto. Debe ser el número de pixels a " "viajar antes de acelerar." #: ../../WPrefs.app/MouseSettings.c:262 ../../WPrefs.app/MouseSettings.c:274 #: ../../WPrefs.app/MouseSettings.c:286 ../../WPrefs.app/MouseSettings.c:298 #, c-format msgid "bad value %s for option %s" msgstr "valor erróneo (%s) para la opcion %s" #: ../../WPrefs.app/MouseSettings.c:357 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "" "la tecla modificadora %s para la opción ModifierKey no fue reconocida. " "Usando %s como valor por defecto." #: ../../WPrefs.app/MouseSettings.c:382 msgid "could not retrieve keyboard modifier mapping" msgstr "no se pudo obtener el mapa de modificadores de teclado" #: ../../WPrefs.app/MouseSettings.c:477 msgid "Mouse Speed" msgstr "Velocidad del Ratón" #: ../../WPrefs.app/MouseSettings.c:507 msgid "Acceler.:" msgstr "Aceleración" #: ../../WPrefs.app/MouseSettings.c:520 msgid "Threshold:" msgstr "Umbral:" #: ../../WPrefs.app/MouseSettings.c:535 msgid "Double-Click Delay" msgstr "Retraso Doble-Click" #: ../../WPrefs.app/MouseSettings.c:579 msgid "Test" msgstr "Prueba" #: ../../WPrefs.app/MouseSettings.c:609 msgid "Workspace Mouse Actions" msgstr "Acciones de ratón para Ãreas" #: ../../WPrefs.app/MouseSettings.c:614 msgid "Disable mouse actions" msgstr "Deshabilitar acciones de ratón" #: ../../WPrefs.app/MouseSettings.c:620 msgid "Left Button" msgstr "Botón izquierdo" #: ../../WPrefs.app/MouseSettings.c:630 msgid "Middle Button" msgstr "Botón central" #: ../../WPrefs.app/MouseSettings.c:640 msgid "Right Button" msgstr "Botón derecho" #: ../../WPrefs.app/MouseSettings.c:650 msgid "Mouse Wheel" msgstr "Rueda del Ratón" #: ../../WPrefs.app/MouseSettings.c:672 msgid "Mouse Grab Modifier" msgstr "Modificador de agarre del ratón" #: ../../WPrefs.app/MouseSettings.c:674 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "Modificador de teclado para acciones que\n" "involucren arrastrar ventanas con el ratón,\n" "pinchar dentro de la ventana." #: ../../WPrefs.app/MouseSettings.c:708 #, c-format msgid "could not create %s" msgstr "no se pudo crear %s" #: ../../WPrefs.app/MouseSettings.c:724 #, c-format msgid "could not create temporary file %s" msgstr "no se pudo crear el archivo temporal %s" #: ../../WPrefs.app/MouseSettings.c:756 #, c-format msgid "could not rename file %s to %s\n" msgstr "no se pudo renombrar %s a %s\n" #: ../../WPrefs.app/MouseSettings.c:829 msgid "Shift" msgstr "Mayúsculas" #: ../../WPrefs.app/MouseSettings.c:830 msgid "Lock" msgstr "Lock" #: ../../WPrefs.app/MouseSettings.c:831 msgid "Control" msgstr "Centro" #: ../../WPrefs.app/MouseSettings.c:832 msgid "Mod1" msgstr "Mod1" #: ../../WPrefs.app/MouseSettings.c:833 msgid "Mod2" msgstr "Mod2" #: ../../WPrefs.app/MouseSettings.c:834 msgid "Mod3" msgstr "Mod3" #: ../../WPrefs.app/MouseSettings.c:835 msgid "Mod4" msgstr "Mod4" #: ../../WPrefs.app/MouseSettings.c:836 msgid "Mod5" msgstr "Mod5" #: ../../WPrefs.app/MouseSettings.c:839 msgid "Applications Menu" msgstr "Menú Aplicaciones" #: ../../WPrefs.app/MouseSettings.c:841 msgid "Select Windows" msgstr "Enfocar ventanas" #: ../../WPrefs.app/MouseSettings.c:844 msgid "Switch Workspaces" msgstr "Cambiar al área de trabajo 1" #: ../../WPrefs.app/MouseSettings.c:849 msgid "Mouse Preferences" msgstr "Preferencias de Ratón" #: ../../WPrefs.app/MouseSettings.c:851 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "Velocidad y aceleración del ratón, retardo de\n" "\"doble-click\", acciones de cada botón, etc" #: ../../WPrefs.app/Paths.c:84 msgid "bad value in option IconPath. Using default path list" msgstr "valor erróneo en IconPath. Usando la lista de rutas por defecto" #: ../../WPrefs.app/Paths.c:101 msgid "bad value in option PixmapPath. Using default path list" msgstr "valor erróneo en PixmapPath. Usando la lista de rutas por defecto" #: ../../WPrefs.app/Paths.c:149 msgid "Select directory" msgstr "Escoja Directorio" #: ../../WPrefs.app/Paths.c:270 msgid "Icon Search Paths" msgstr "Rutas de Búsqueda de Iconos" #: ../../WPrefs.app/Paths.c:281 ../../WPrefs.app/Paths.c:312 #: ../../WPrefs.app/TexturePanel.c:1310 msgid "Add" msgstr "Agregar" #: ../../WPrefs.app/Paths.c:301 msgid "Pixmap Search Paths" msgstr "Rutas de búsqueda de Pixmaps" #: ../../WPrefs.app/Paths.c:341 msgid "Search Path Configuration" msgstr "Configuración de Rutas de Búsqueda" #: ../../WPrefs.app/Paths.c:343 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "Rutas donde buscar imágenes e iconos." #: ../../WPrefs.app/Preferences.c:75 msgid "OFF" msgstr "OFF" #: ../../WPrefs.app/Preferences.c:77 msgid "1 pixel" msgstr "1 pixel" #. 2-4 #: ../../WPrefs.app/Preferences.c:80 #, c-format msgid "%i pixels" msgstr "%i píxels" #. >4 #: ../../WPrefs.app/Preferences.c:83 #, c-format msgid "%i pixels " msgstr "%i píxels" #: ../../WPrefs.app/Preferences.c:229 msgid "Size Display" msgstr "Indicador de Tamaño" #: ../../WPrefs.app/Preferences.c:231 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "Posición o estilo del indicador de tamaño\n" "que se muetra cuando una ventana es\n" "redimensionada." #: ../../WPrefs.app/Preferences.c:238 ../../WPrefs.app/Preferences.c:259 msgid "Corner of screen" msgstr "Esquina de la pantalla" #: ../../WPrefs.app/Preferences.c:239 ../../WPrefs.app/Preferences.c:260 msgid "Center of screen" msgstr "Centro de la pantalla" #: ../../WPrefs.app/Preferences.c:240 ../../WPrefs.app/Preferences.c:261 msgid "Center of resized window" msgstr "Centro de la ventana" #: ../../WPrefs.app/Preferences.c:241 msgid "Technical drawing-like" msgstr "Como dibujo técnico" #: ../../WPrefs.app/Preferences.c:242 ../../WPrefs.app/Preferences.c:262 msgid "Disabled" msgstr "Deshabilitar" #: ../../WPrefs.app/Preferences.c:250 msgid "Position Display" msgstr "Indicador de Posición" #: ../../WPrefs.app/Preferences.c:252 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "Posición o estilo del indicador de posición\n" "que se muestra cuando se mueve una ventana." #: ../../WPrefs.app/Preferences.c:270 msgid "Show balloon text for..." msgstr "Mostrar bocallidos para..." #: ../../WPrefs.app/Preferences.c:277 msgid "incomplete window titles" msgstr "títulos incompletos de ventanas" #: ../../WPrefs.app/Preferences.c:278 msgid "miniwindow titles" msgstr "títulos de miniventanas" #: ../../WPrefs.app/Preferences.c:279 msgid "application/dock icons" msgstr "iconos de aplicaciones/dock" #: ../../WPrefs.app/Preferences.c:280 msgid "internal help" msgstr "ayuda interna" #: ../../WPrefs.app/Preferences.c:292 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "" "Alzar ventana cuando se cambia\n" "el foco con teclado." #: ../../WPrefs.app/Preferences.c:298 msgid "" "Enable keyboard language\n" "switch button in window titlebars." msgstr "" "Activar botón de selección\n" "de lenguaje en el título de las ventanas.." #: ../../WPrefs.app/Preferences.c:307 msgid "Workspace border" msgstr "Borde del Ãrea" #: ../../WPrefs.app/Preferences.c:323 msgid "Left/Right" msgstr "Izquierda/Derecha" #: ../../WPrefs.app/Preferences.c:328 msgid "Top/Bottom" msgstr "Arriba/Abajo" #: ../../WPrefs.app/Preferences.c:349 msgid "Miscellaneous Ergonomic Preferences" msgstr "Preferencias Ergonométricas" #: ../../WPrefs.app/Preferences.c:350 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "Varias opciones como texto de bocadillos,\n" "indicadores de geometría, etc." #: ../../WPrefs.app/TexturePanel.c:323 msgid "Saturation" msgstr "Saturación" #: ../../WPrefs.app/TexturePanel.c:325 msgid "Brightness" msgstr "Brillo" #: ../../WPrefs.app/TexturePanel.c:373 ../../WPrefs.app/TexturePanel.c:380 msgid "Hue" msgstr "Tinte" #: ../../WPrefs.app/TexturePanel.c:610 msgid "Could not load the selected file: " msgstr "No puedo cargar el archivo seleccionado: " #: ../../WPrefs.app/TexturePanel.c:664 msgid "Open Image" msgstr "Abrir Imagen" #: ../../WPrefs.app/TexturePanel.c:694 msgid "The selected file does not contain a supported image." msgstr "" "El archivo seleccionado no contiene una imagen en un formato soportado." #: ../../WPrefs.app/TexturePanel.c:945 #, c-format msgid "could not load file '%s': %s" msgstr "no se pudo cargar el archivo '%s': %s" #: ../../WPrefs.app/TexturePanel.c:1064 #, c-format msgid "error creating texture %s" msgstr "error creando la textura %s" #: ../../WPrefs.app/TexturePanel.c:1254 msgid "Texture Panel" msgstr "Panel de Texturas" #: ../../WPrefs.app/TexturePanel.c:1262 msgid "Texture Name" msgstr "Nombre de Textura" #: ../../WPrefs.app/TexturePanel.c:1274 msgid "Solid Color" msgstr "Color Sólido" #: ../../WPrefs.app/TexturePanel.c:1275 msgid "Gradient Texture" msgstr "Textura en gradiente" #: ../../WPrefs.app/TexturePanel.c:1276 msgid "Simple Gradient Texture" msgstr "Textura en gradiente simple" #: ../../WPrefs.app/TexturePanel.c:1277 msgid "Textured Gradient" msgstr "Grandiente texturado" #: ../../WPrefs.app/TexturePanel.c:1278 msgid "Image Texture" msgstr "Textura de imagen" #: ../../WPrefs.app/TexturePanel.c:1286 msgid "Default Color" msgstr "Color por defecto" #: ../../WPrefs.app/TexturePanel.c:1298 msgid "Gradient Colors" msgstr "Gradiente de colores" #: ../../WPrefs.app/TexturePanel.c:1394 msgid "Direction" msgstr "Dirección" #: ../../WPrefs.app/TexturePanel.c:1422 msgid "Gradient" msgstr "Gradiente" #: ../../WPrefs.app/TexturePanel.c:1440 msgid "Gradient Opacity" msgstr "Opacidad de gradiente" #: ../../WPrefs.app/TexturePanel.c:1483 msgid "Image" msgstr "Imagen" #: ../../WPrefs.app/TexturePanel.c:1515 msgid "Tile" msgstr "Azulejo" #: ../../WPrefs.app/TexturePanel.c:1516 msgid "Scale" msgstr "Escalar" #: ../../WPrefs.app/TexturePanel.c:1518 msgid "Maximize" msgstr "Maximizar" #: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 msgid "Set" msgstr "Establecer" #: ../../WPrefs.app/Themes.c:132 msgid "Stop" msgstr "Detener" #: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:203 #: ../../WPrefs.app/Themes.c:223 msgid "Download" msgstr "Descargar" #: ../../WPrefs.app/Themes.c:171 msgid "Save Current Theme" msgstr "Guardar Tema Actual" #: ../../WPrefs.app/Themes.c:180 msgid "Load" msgstr "Cargar" #: ../../WPrefs.app/Themes.c:185 msgid "Install" msgstr "Instalar" #: ../../WPrefs.app/Themes.c:193 msgid "Tile of The Day" msgstr "Azulejo de Hoy" #: ../../WPrefs.app/Themes.c:213 msgid "Bar of The Day" msgstr "Barra de Hoy" #: ../../WPrefs.app/WPrefs.c:260 msgid "Window Maker Preferences" msgstr "Preferencias de Window Maker" #: ../../WPrefs.app/WPrefs.c:284 msgid "Revert Page" msgstr "Revertir Hoja" #: ../../WPrefs.app/WPrefs.c:290 msgid "Revert All" msgstr "Revertir Todo" #: ../../WPrefs.app/WPrefs.c:296 msgid "Save" msgstr "Guardar" #: ../../WPrefs.app/WPrefs.c:309 msgid "Balloon Help" msgstr "Bocadillos de Ayuda" #: ../../WPrefs.app/WPrefs.c:334 msgid "Window Maker Preferences Utility" msgstr "Editor de Preferencias de Window Maker" #: ../../WPrefs.app/WPrefs.c:341 #, c-format msgid "Version %s for Window Maker %s or newer" msgstr "Versión %s para Window Maker %s o superior" #: ../../WPrefs.app/WPrefs.c:349 msgid "Starting..." msgstr "Comenzando..." #: ../../WPrefs.app/WPrefs.c:355 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg, Largo et al\n" "More Programming: James Thompson et al" msgstr "" "Programación/Diseño: Alfredo K. Kojima\n" "Arte: Marco van Hylckama Vlieg y Largo\n" "Más Programación: James Thompson" #: ../../WPrefs.app/WPrefs.c:455 #, c-format msgid "could not locate image file %s\n" msgstr "no se pudo encontrar archivo de imagen %s\n" #: ../../WPrefs.app/WPrefs.c:670 #, c-format msgid "could not load image file %s:%s" msgstr "no se pudo cargar archivo de imagen %s:%s" #: ../../WPrefs.app/WPrefs.c:689 msgid "Loading Window Maker configuration files..." msgstr "Cargando archivos de configuración de Window Maker..." #: ../../WPrefs.app/WPrefs.c:693 msgid "Initializing configuration panels..." msgstr "Inicializando paneles de configuración..." #: ../../WPrefs.app/WPrefs.c:727 msgid "" "WPrefs is free software and is distributed WITHOUT ANY\n" "WARRANTY under the terms of the GNU General Public License." msgstr "" "WPrefs es software libre y es distribuido SIN NINGUNA GARANTÃA\n" " bajo los términos de la GNU General Public License." #: ../../WPrefs.app/WPrefs.c:757 ../../WPrefs.app/WPrefs.c:837 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Dominio de Window Maker (%s) esta corrupto!" #: ../../WPrefs.app/WPrefs.c:761 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "No se pudo cargar dominio de Window Maker (%s) de la base de datos." #: ../../WPrefs.app/WPrefs.c:777 msgid "could not extract version information from Window Maker" msgstr "No se pudo extraer información de versión de Window Maker" #: ../../WPrefs.app/WPrefs.c:778 msgid "Make sure wmaker is in your search path." msgstr "Asegúrese que wmaker esté en su ruta de busqueda (path)." #: ../../WPrefs.app/WPrefs.c:781 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." msgstr "" "No se pudo extraer la versión de Window Maker. Asegúrese de que esté " "correctamente instalado y en su variable de ambiente PATH." #: ../../WPrefs.app/WPrefs.c:791 msgid "" "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." msgstr "" "No se pudo extraer la versión de Window Maker. Asegúrese de que esté " "correctamente instalado y en su variable de ambiente PATH." #: ../../WPrefs.app/WPrefs.c:798 #, c-format msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "WPrefs sólo soporta Window Maker 0.18.0 o superior.\n" "La versión instalada es %i.%i.%i\n" #: ../../WPrefs.app/WPrefs.c:805 #, c-format msgid "" "Window Maker %i.%i.%i, which is installed in your system, is not fully " "supported by this version of WPrefs." msgstr "" "La versión %i.%i.%i de Window Maker, que está instalada en su sistema, no " "está completamente soportada por esta versión de WPrefs." #: ../../WPrefs.app/WPrefs.c:818 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr "no se pudo ejecutar \"%s --global_defaults_path\"." #: ../../WPrefs.app/WPrefs.c:841 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "No se pudo cargar dominio global de Window Maker (%s)." #: ../../WPrefs.app/WPrefs.c:1090 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "valor erróneo para la opcion %s.\n" "Usando el valor por defecto (Medium)" #: ../../WPrefs.app/WindowHandling.c:141 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "valor erróneo (%s) en WindowPlacement. Usando el valor por defecto" #: ../../WPrefs.app/WindowHandling.c:163 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "datos erróneos en WindowPlaceOrigin. Usando el valor por defecto (0,0)" #: ../../WPrefs.app/WindowHandling.c:243 msgid "Window Placement" msgstr "Posicionamiento de Ventanas" #: ../../WPrefs.app/WindowHandling.c:244 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "Cómo poner ventanas cuando aparecen en pantalla" #: ../../WPrefs.app/WindowHandling.c:250 msgid "Automatic" msgstr "Automático" #: ../../WPrefs.app/WindowHandling.c:251 msgid "Random" msgstr "Aleatorio" #: ../../WPrefs.app/WindowHandling.c:252 msgid "Manual" msgstr "Manual" #: ../../WPrefs.app/WindowHandling.c:253 msgid "Cascade" msgstr "Cascada" #: ../../WPrefs.app/WindowHandling.c:254 msgid "Smart" msgstr "Inteligente" #: ../../WPrefs.app/WindowHandling.c:260 msgid "Placement Origin" msgstr "Origen del posicionamiento" #: ../../WPrefs.app/WindowHandling.c:321 msgid "Opaque Move" msgstr "Mostrar contenido al desplazar" #: ../../WPrefs.app/WindowHandling.c:322 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "Si el contenido de las ventanas debe ser movido\n" "cuando se arrastran ventanas o si sólo debe\n" "mostrarse un marco.\n" #: ../../WPrefs.app/WindowHandling.c:361 msgid "When maximizing..." msgstr "Al maximizar..." #: ../../WPrefs.app/WindowHandling.c:366 msgid "...do not cover icons" msgstr "...no cubrir los iconos" #: ../../WPrefs.app/WindowHandling.c:372 msgid "...do not cover dock" msgstr "...no cubrir el Dock" #: ../../WPrefs.app/WindowHandling.c:381 msgid "Edge Resistance" msgstr "Resistencia de bordes" #: ../../WPrefs.app/WindowHandling.c:383 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "La resistencia de los bordes hará que las ventanas\n" "\"resistan\" ser movidas en el valor del umbral\n" "cuando se muevan contra otras ventanas o los bordes\n" "de la pantalla." #: ../../WPrefs.app/WindowHandling.c:402 msgid "Resist" msgstr "Resistir" #: ../../WPrefs.app/WindowHandling.c:407 msgid "Attract" msgstr "Atraer" #: ../../WPrefs.app/WindowHandling.c:423 msgid "" "Open dialogs in same workspace\n" "as their owners" msgstr "" "Abrir diálogos en la misma área\n" "que sus padres" #: ../../WPrefs.app/WindowHandling.c:450 msgid "Window Handling Preferences" msgstr "Preferencias de Manejo de Ventanas" #: ../../WPrefs.app/WindowHandling.c:452 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "Opciones de manejo de ventanas. Posición inicial,\n" "resistencia de bordes, opacidad de movimiento, etc." #: ../../WPrefs.app/Workspace.c:176 msgid "Workspace Navigation" msgstr "Navegación de Ãreas" #: ../../WPrefs.app/Workspace.c:183 msgid "" "wrap to the first workspace after the\n" "last workspace." msgstr "" "ir para la primera área de trabajo\n" "después de la última." #: ../../WPrefs.app/Workspace.c:205 msgid "switch workspaces while dragging windows." msgstr "mover ventanas entre áreas de trabajo." #: ../../WPrefs.app/Workspace.c:227 msgid "automatically create new workspaces." msgstr "crear nuevas áreas de trabajo automáticamente." #: ../../WPrefs.app/Workspace.c:250 msgid "" "Position of workspace\n" "name display" msgstr "" "Posición del nombre del\n" "área de trabajo" #: ../../WPrefs.app/Workspace.c:269 msgid "Disable" msgstr "Deshabilitar" #: ../../WPrefs.app/Workspace.c:271 msgid "Top" msgstr "Arriba" #: ../../WPrefs.app/Workspace.c:272 msgid "Bottom" msgstr "Abajo" #: ../../WPrefs.app/Workspace.c:273 msgid "Top/Left" msgstr "Arriba/izquierda" #: ../../WPrefs.app/Workspace.c:274 msgid "Top/Right" msgstr "Arriba/derecha" #: ../../WPrefs.app/Workspace.c:275 msgid "Bottom/Left" msgstr "Abajo/izquierda" #: ../../WPrefs.app/Workspace.c:276 msgid "Bottom/Right" msgstr "Abajo/derecha" #: ../../WPrefs.app/Workspace.c:284 msgid "Dock/Clip" msgstr "Dock/Clip" #: ../../WPrefs.app/Workspace.c:303 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "Activar/desactivar el Dock (la barra de iconos\n" "vertical al costado de la pantalla)." #: ../../WPrefs.app/Workspace.c:324 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "Activar/desactivar el Clip (la cosa con el\n" "icono de clip de papel)." #: ../../WPrefs.app/Workspace.c:364 msgid "Workspace Preferences" msgstr "Preferencias de Ãrea" #: ../../WPrefs.app/Workspace.c:366 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "Características de navegación de áreas.\n" "También se pueden habilitar/deshabilitar\n" "el Dock y el Clip." #: ../../WPrefs.app/imagebrowser.c:95 msgid "View" msgstr "Ver" #: ../../WPrefs.app/main.c:59 #, c-format msgid "usage: %s [options]\n" msgstr "uso: %s [opciones]\n" #: ../../WPrefs.app/main.c:60 msgid "options:" msgstr "opciones:" #: ../../WPrefs.app/main.c:61 msgid " -display <display>\tdisplay to be used" msgstr " -display <display>\tdisplay a usar" #: ../../WPrefs.app/main.c:62 msgid " --version\t\tprint version number and exit" msgstr " --version\t\tmostrar número de versión y salir" #: ../../WPrefs.app/main.c:63 msgid " --help\t\tprint this message and exit" msgstr " --help\t\timprimir este mensaje y salir" #: ../../WPrefs.app/main.c:122 #, c-format msgid "too few arguments for %s" msgstr "faltan argumentos para %s" #: ../../WPrefs.app/main.c:144 msgid "X server does not support locale" msgstr "El Servidor X no soporta locale" #: ../../WPrefs.app/main.c:147 msgid "cannot set locale modifiers" msgstr "no se pudo establecer modificadores de locale" #: ../../WPrefs.app/main.c:153 #, c-format msgid "could not open display %s" msgstr "no se pudo abrir display %s" #: ../../WPrefs.app/main.c:161 msgid "could not initialize application" msgstr "no se pudo iniicalizar la aplicación" msgid "Disable cycling color highlighting of icons." msgstr "Deshabilitar cambio de color cíclico de los iconos." msgid "" "Set keyboard input focus to\n" "the window under the mouse pointer,\n" "including the root window." msgstr "" "Dar foco a la ventana\n" "bajo el puntero del ratón,\n" "incluyendo la ventana fondo." msgid "Click window to focus" msgstr "Pinchar la ventana" msgid "Focus follows mouse" msgstr "Foco sigue el puntero del ratón." msgid "\"Sloppy\" focus" msgstr "Foco \"Sloppy\"" msgid "Command to Execute" msgstr "Comando a ejecutar" msgid "New Command %i" msgstr "Nuevo Comando %i" msgid "Workspaces" msgstr "Ãreas de Trabajo" msgid "Add Command" msgstr "Agregar Comando" msgid "Add Submenu" msgstr "Agregar Submenu" msgid "Add External Menu" msgstr "Agregar Menú Externo" msgid "Remove Item" msgstr "Eliminar Ãtem" msgid "Cut Item" msgstr "Cortar Ãtem" msgid "Copy Item" msgstr "Copiar Ãtem" msgid "Paste Item" msgstr "Pegar Ãtem" msgid "Label" msgstr "Etiqueta" msgid "Execute Shell Command" msgstr "Ejecutar comando de shell" msgid "Hide Others" msgstr "Esconder Otros" msgid "Legal Panel" msgstr "Panel \"Legal\"" msgid "Menu Path/Directory List" msgstr "Menu Lista de Ruta/Directorio" msgid "Ask help to the Guru" msgstr "Pedir ayuda al gurú" msgid "" " 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 keep using the current menu, please read the '%s/%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. Window " "Maker supports both formats." msgstr "" "El menú que se está usando ahora no puede abrirse. Eso significa incluso que " "contiene un error de sintaxis o que está en un formato no soportado por " "WPrefs (WPrefs soporta solamente la lista de menús propietaria).\n" "Si quiere continuar usando el menú actual, lea el archivo '%s/%s', pulse " "'Mantener menú actual' y edítelo como un editor de textos.\n" "Si quiere usar un editor, pulse 'Copiar menú estándar'. Esto copiará el menú " "estándar e instruirá a Window Maker a usarlo en vez del actual.\n" "Si quiere más flexibilidad, continúe usando el menú actual porque le permite " "el uso de macros de preprocesador C (cpp), además de ser fácil de editar. " "Window Maker soporta soporta ambos formatos." msgid "Copy Default Menu" msgstr "Copiar menú por defecto" msgid "Menu Guru - Select Type" msgstr "Gurú de Menú - Escoja Tipo" msgid "Next" msgstr "Siguiente" msgid "Menu Guru - Select Menu File" msgstr "Gurú de Menú - Escoja Archivo" msgid "Menu Guru - Select Pipe Command" msgstr "Gurú de Menú - Escoja Orden Pipe" msgid "Menu Guru - Select Directories" msgstr "Gurú de Menú - Escoja Directorios" msgid "Menu Guru - Select Command" msgstr "Gurú de Menú - Escoja Comando" msgid "Back" msgstr "Atrás" 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 "" "Este proceso le ayudará a crear un submenú cuya definición está en otro " "archivo o es creada dinámicamente.\n" "¿Qué desea usar como contenido del submenú?" msgid "" "A file containing the menu definition in the plain text (non-property list) " "menu format." msgstr "" "Un archivo que contiene la definición en el formato de texto plano (no lista " "de propiedades)" msgid "The menu definition generated by a script/program read through a pipe." msgstr "" "La definición generada por un script/programa leída a traves de un pipe." msgid "The files in one or more directories." msgstr "Archivos en uno o más directorios." msgid "Type the path for the menu file:" msgstr "Ingrese la ruta para el archivo:" 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 "" "El archivo de menú debe contener un menú en el formato de texto plano. Este " "formato esta descrito en los archivos distribuidos con Window Maker, " "probablemente en ~/GNUstep/Library/WindowMaker/menu" msgid "Type the command that will generate the menu definition:" msgstr "Escriba el comando que generará la definición de menú:" 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 "" "El comando dado debe generar una definición de menú valida a stdout. Esta " "definición debe estar en el formato de texto plano, descrito en los archivos " "incluidos con WindowMaker, normalmente en ~/GNUstep/Library/WindowMaker/menu" msgid "" "Type the path for the directory. You can type more than one path by " "separating them with spaces." msgstr "" "Ingrese la ruta del directorio. Puede especificar más de uno separándolos " "con espacios." 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 "" "El menú generado tendrá un ítem por cada archivo en el directorio. Los " "directorios pueden contener programas ejecutables o archivos de datos (como " "imágenes jpeg)." msgid "" "If the directory contain data files, type the command used to open these " "files. Otherwise, leave it in blank." msgstr "" "Si el directorio contiene archivos de datos, escriba el comando usado para " "abrir tales archivos. En otro caso, deje el campo en blanco." 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 "" "Cada archivo en el directorio tendrá un item y será abierto con el comando " "entregado. Por ejemplo, si el directorio contiene imágenes y el comando es " "\"xv -root\", cada archivo en el directorio tendrá un ítem \"xv -root imagen" "\"." msgid "Invalid font %s." msgstr "Fuente %s errónea." msgid "Set Font..." msgstr "Establecer Fuente..." msgid "Window Title Font" msgstr "Fuente de título de ventana" msgid "Menu Title Font" msgstr "Fuente de Título de Menú" msgid "Menu Item Font" msgstr "Fuente de Ãtem de Menú" msgid "Icon Title Font" msgstr "Fuente de Título de Iconos" msgid "Clip Title Font" msgstr "Fuente de Título de Clip" msgid "Geometry Display Font" msgstr "Fuente de Geometría" msgid "" "Sample Text\n" "abcdefghijklmnopqrstuvxywz\n" "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" "0123456789" msgstr "" "Texto de ejemplo\n" "abcdefghijklmnñopqrstuvwxyz\n" "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ\n" "0123456789" msgid "Alignment" msgstr "Alineación" msgid "Text Preferences" msgstr "Preferencias de Textos" msgid "drag windows between workspaces." msgstr "Arrastrar ventanas entre áreas." msgid "" "switch to first workspace when switching past the last workspace and vice-" "versa" msgstr "Cambiar al primer área cuando se pasa la última y viceversa." �������������������WindowMaker-0.95.5/WPrefs.app/po/fr.po��������������������������������������������������������������0000644�0001750�0001750�00000167757�12214432632�014362� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# French Message file for WPrefs.app # # Update History: # Antoine Hulin <antoine.hulin@origan.fdn.org> # Christoph Thompson <obituary@freshmeat.net> # Bastien Nocera <hadess@writeme.com> # msgid "" msgstr "" "Project-Id-Version: WPrefs 0.40\n" "POT-Creation-Date: 2003-05-02 15:39+0200\n" "PO-Revision-Date: 1999-07-28 16:31-0100\n" "Last-Translator: Antoine Hulin <antoine.hulin@origan.fdn.org>\n" "Language-Team: French <fr@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../../WPrefs.app/Appearance.c:1154 msgid "Select File" msgstr "Sélectionnez un fichier" #: ../../WPrefs.app/Appearance.c:1555 msgid "Focused Window" msgstr "Fenêtre active" #: ../../WPrefs.app/Appearance.c:1560 msgid "Unfocused Window" msgstr "Fenêtres inactives" #: ../../WPrefs.app/Appearance.c:1565 msgid "Owner of Focused Window" msgstr "Parente de la fenêtre active" #: ../../WPrefs.app/Appearance.c:1570 ../../WPrefs.app/Appearance.c:1893 #: ../../WPrefs.app/Font.c:408 msgid "Menu Title" msgstr "Titre du menu" #: ../../WPrefs.app/Appearance.c:1575 ../../WPrefs.app/Appearance.c:1578 msgid "Normal Item" msgstr "Normal" #: ../../WPrefs.app/Appearance.c:1583 msgid "Disabled Item" msgstr "Inactivé" #: ../../WPrefs.app/Appearance.c:1595 msgid "Highlighted" msgstr "Sélectionné" #: ../../WPrefs.app/Appearance.c:1786 msgid "Texture" msgstr "Texture" #: ../../WPrefs.app/Appearance.c:1794 msgid "Titlebar of Focused Window" msgstr "Barre de titre de la fenêtre active" #: ../../WPrefs.app/Appearance.c:1795 msgid "Titlebar of Unfocused Windows" msgstr "Barre de titre d'une fenêtre inactive" #: ../../WPrefs.app/Appearance.c:1796 msgid "Titlebar of Focused Window's Owner" msgstr "Barre de titre de la fenêtre parente" #: ../../WPrefs.app/Appearance.c:1797 msgid "Window Resizebar" msgstr "Barre de redimensionnement" #: ../../WPrefs.app/Appearance.c:1798 msgid "Titlebar of Menus" msgstr "Barre de titre des menus" #: ../../WPrefs.app/Appearance.c:1799 msgid "Menu Items" msgstr "Éléments du menu" #: ../../WPrefs.app/Appearance.c:1800 msgid "Icon Background" msgstr "Fond d'icône" #: ../../WPrefs.app/Appearance.c:1815 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "Double-cliquez sur la texture que vous voulez\n" "utiliser pour l'élément sélectionné." #: ../../WPrefs.app/Appearance.c:1829 msgid "New" msgstr "Nouveau" #: ../../WPrefs.app/Appearance.c:1833 msgid "Create a new texture." msgstr "Créer une nouvelle texture." #: ../../WPrefs.app/Appearance.c:1841 msgid "Extract..." msgstr "Extraire..." #: ../../WPrefs.app/Appearance.c:1845 msgid "Extract texture(s) from a theme or a style file." msgstr "Extraire les textures d'un thème ou d'un fichier de style." #: ../../WPrefs.app/Appearance.c:1855 msgid "Edit" msgstr "Éditer" #: ../../WPrefs.app/Appearance.c:1858 msgid "Edit the highlighted texture." msgstr "Éditer la texture sélectionnée." #: ../../WPrefs.app/Appearance.c:1866 ../../WPrefs.app/TexturePanel.c:1318 msgid "Delete" msgstr "Supprimer" #: ../../WPrefs.app/Appearance.c:1870 msgid "Delete the highlighted texture." msgstr "Effacer la texture sélectionnée." #: ../../WPrefs.app/Appearance.c:1883 msgid "Color" msgstr "Couleur" #: ../../WPrefs.app/Appearance.c:1890 msgid "Focused Window Title" msgstr "Titre de la fenêtre active" #: ../../WPrefs.app/Appearance.c:1891 msgid "Unfocused Window Title" msgstr "Titre d'une fenêtre inactive" #: ../../WPrefs.app/Appearance.c:1892 msgid "Owner of Focused Window Title" msgstr "Titre du parent de la fenêtre active" #: ../../WPrefs.app/Appearance.c:1894 msgid "Menu Item Text" msgstr "Entrée de menu normale" #: ../../WPrefs.app/Appearance.c:1895 msgid "Disabled Menu Item Text" msgstr "Entrée de menu inactive" #: ../../WPrefs.app/Appearance.c:1896 msgid "Menu Highlight Color" msgstr "Entrée de menu sélectionnée" #: ../../WPrefs.app/Appearance.c:1897 msgid "Highlighted Menu Text Color" msgstr "Texte de l'entrée sélectionnée" #: ../../WPrefs.app/Appearance.c:1936 msgid "Background" msgstr "Fond d'écran" #: ../../WPrefs.app/Appearance.c:1948 ../../WPrefs.app/TexturePanel.c:1504 msgid "Browse..." msgstr "Parcourir..." #: ../../WPrefs.app/Appearance.c:1961 msgid "Options" msgstr "Options" #: ../../WPrefs.app/Appearance.c:1968 msgid "Menu Style" msgstr "Apparence du menu" #: ../../WPrefs.app/Appearance.c:1996 ../../WPrefs.app/Configurations.c:242 #: ../../WPrefs.app/Configurations.c:254 ../../WPrefs.app/Focus.c:288 #: ../../WPrefs.app/Focus.c:299 ../../WPrefs.app/MenuPreferences.c:134 #: ../../WPrefs.app/MenuPreferences.c:145 #: ../../WPrefs.app/MenuPreferences.c:173 #: ../../WPrefs.app/MenuPreferences.c:188 ../../WPrefs.app/MouseSettings.c:560 #: ../../WPrefs.app/MouseSettings.c:571 ../../WPrefs.app/WPrefs.c:558 #: ../../WPrefs.app/WPrefs.c:583 #, c-format msgid "could not load icon file %s" msgstr "Le chargement de l'icône %s a échoué." #: ../../WPrefs.app/Appearance.c:2010 msgid "Title Alignment" msgstr "Position du titre" #: ../../WPrefs.app/Appearance.c:2017 msgid "Left" msgstr "Gauche" #: ../../WPrefs.app/Appearance.c:2020 ../../WPrefs.app/TexturePanel.c:1518 #: ../../WPrefs.app/Workspace.c:270 msgid "Center" msgstr "Centré" #: ../../WPrefs.app/Appearance.c:2023 msgid "Right" msgstr "Droite" #: ../../WPrefs.app/Appearance.c:2247 msgid "Appearance Preferences" msgstr "Préférences d'apparence" #: ../../WPrefs.app/Appearance.c:2249 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "Configuration des textures de fond des fenêtres,\n" "menus et icônes." #: ../../WPrefs.app/Appearance.c:2294 msgid "Extract Texture" msgstr "Extraire une texture" #: ../../WPrefs.app/Appearance.c:2314 msgid "Textures" msgstr "Textures" #: ../../WPrefs.app/Appearance.c:2325 ../../WPrefs.app/WPrefs.c:302 msgid "Close" msgstr "Fermer" #: ../../WPrefs.app/Appearance.c:2330 msgid "Extract" msgstr "Extraire" #: ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 #: ../../WPrefs.app/MouseSettings.c:490 ../../WPrefs.app/WindowHandling.c:339 #: ../../WPrefs.app/WindowHandling.c:351 ../../WPrefs.app/Workspace.c:90 #: ../../WPrefs.app/Workspace.c:101 #, c-format msgid "could not load icon %s" msgstr "Le chargement de l'icône %s a échoué." #: ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:109 #, c-format msgid "could not process icon %s: %s" msgstr "Le traitement de l'icône %s a échoué : %s" #: ../../WPrefs.app/Configurations.c:189 ../../WPrefs.app/Workspace.c:164 #, c-format msgid "could not load image file %s" msgstr "Le chargement de l'image %s a échoué." #: ../../WPrefs.app/Configurations.c:203 msgid "Icon Slide Speed" msgstr "Vitesse du glissement des icônes" #: ../../WPrefs.app/Configurations.c:209 msgid "Shade Animation Speed" msgstr "Vitesse de l'enroulement" #: ../../WPrefs.app/Configurations.c:271 msgid "Smooth Scaling" msgstr "Lissage" #: ../../WPrefs.app/Configurations.c:272 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "Lissage des images de fond d'écran pour neutraliser\n" "l'effet crénelé. Ceci ralentira considérablement le\n" "chargement des images de fond d'écran." #: ../../WPrefs.app/Configurations.c:313 msgid "Titlebar Style" msgstr "Barre de titre" #: ../../WPrefs.app/Configurations.c:351 msgid "Animations and Sound" msgstr "Animations et sons" #: ../../WPrefs.app/Configurations.c:357 msgid "Animations" msgstr "Animations" #: ../../WPrefs.app/Configurations.c:368 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "Activation des animations telles que la miniaturisation\n" "des fenêtres, l'enroulement, etc." #: ../../WPrefs.app/Configurations.c:376 msgid "Superfluous" msgstr "Superflu" #: ../../WPrefs.app/Configurations.c:387 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "Activation des options « superflues » et des animations.\n" "Celles-ci incluent la matérialisation « spectrale » du Dock\n" "quand il est déplacé et l'animation d'explosion pour les\n" "icônes retirées du Dock." #: ../../WPrefs.app/Configurations.c:397 msgid "Sounds" msgstr "Sons" #: ../../WPrefs.app/Configurations.c:408 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://shadowmere.student.utwente.nl/" msgstr "" "Activation des effets sonores lors d'actions comme\n" "l'enroulement et la fermeture d'une fenêtre. Pour cela,\n" "vous aurez besoin d'un module distribué séparément.\n" "Vous pouvez l'obtenir à l'adresse :\n" "http://shadowmere.student.utwente.nl/" #: ../../WPrefs.app/Configurations.c:419 msgid "" "Note: sound requires a module distributed\n" "separately" msgstr "" "Note : le son nécessite un module\n" "distribué séparément." #: ../../WPrefs.app/Configurations.c:429 msgid "Dithering colormap for 8bpp" msgstr "Tramage en 256 couleurs" #: ../../WPrefs.app/Configurations.c:431 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "Nombre de couleurs à réserver pour Window Maker\n" "sur les affichages qui ne supportent que 256\n" "couleurs (PseudoColor)." #: ../../WPrefs.app/Configurations.c:438 msgid "Disable dithering in any visual/depth" msgstr "Désactiver le tramage dans tous les modes graphiques" #: ../../WPrefs.app/Configurations.c:459 msgid "" "More colors for\n" "applications" msgstr "" "Plus pour les\n" "applications" #: ../../WPrefs.app/Configurations.c:466 msgid "" "More colors for\n" "Window Maker" msgstr "" "Plus pour\n" "Window Maker" #: ../../WPrefs.app/Configurations.c:521 msgid "Other Configurations" msgstr "Autres configurations" #: ../../WPrefs.app/Configurations.c:523 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "Vitesse des animations, style des barres de titre,\n" "options diverses et nombre de couleurs à réserver\n" "pour Window Maker avec un affichage en 256 couleurs." #: ../../WPrefs.app/Expert.c:77 msgid "" "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." msgstr "" "Pas de mini-fenêtres (icônes des fenêtres miniaturisées). Pour KDE/GNOME." #: ../../WPrefs.app/Expert.c:78 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "" "Ne modifier que les options spécifiques à Window Maker (ne pas utiliser " "xset)." #: ../../WPrefs.app/Expert.c:79 msgid "Automatically save session when exiting Window Maker." msgstr "Toujours sauver la session lors de la fermeture de Window Maker." #: ../../WPrefs.app/Expert.c:80 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "Utiliser « enregister sous » pour les icônes, menus et autres objets." #: ../../WPrefs.app/Expert.c:81 msgid "Use Windoze style cycling." msgstr "Changer de fenêtre active façon Windows" #: ../../WPrefs.app/Expert.c:82 msgid "Disable confirmation panel for the Kill command." msgstr "Désactiver la confirmation pour la commande Terminer." #: ../../WPrefs.app/Expert.c:83 msgid "Disable selection animation for selected icons." msgstr "Désactiver l'animation pour les icônes sélectionnées." #: ../../WPrefs.app/Expert.c:84 msgid "Smooth font edges (needs restart)." msgstr "Lissage des polices (après redémarrage)" #: ../../WPrefs.app/Expert.c:123 msgid "Expert User Preferences" msgstr "Préférences pour utilisateur averti" #: ../../WPrefs.app/Expert.c:125 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "Options diverses et options pour les utilisateurs\n" "qui savent où ils mettent les pieds." #: ../../WPrefs.app/Focus.c:80 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "" "Mauvaise valeur pour l'option FocusMode : %s. Utilisation de la valeur par " "défaut : Manuel." #: ../../WPrefs.app/Focus.c:94 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "" "Mauvaise valeur pour l'option ColormapMode : %s. Utilisation de la valeur " "par défaut : Auto" #: ../../WPrefs.app/Focus.c:214 msgid "Input Focus Mode" msgstr "Mode d'activation des fenêtres" #: ../../WPrefs.app/Focus.c:222 msgid "Manual: Click on the window to set keyboard input focus" msgstr "Manuel : Cliquer sur une fenêtre pour l'activer." #: ../../WPrefs.app/Focus.c:229 msgid "Auto: Set keyboard input focus to the window under the mouse pointer" msgstr "Automatique : Activer la fenêtre pointée par la souris." # "Utiliser la palette de couleurs de la fenêtre..." prends trop de place #: ../../WPrefs.app/Focus.c:243 msgid "Install colormap in the window..." msgstr "Palette de couleurs utilisée" #: ../../WPrefs.app/Focus.c:248 msgid "...that has the input focus." msgstr "fenêtre active" #: ../../WPrefs.app/Focus.c:253 msgid "...that is under the mouse pointer." msgstr "fenêtre pointée par la souris" #: ../../WPrefs.app/Focus.c:262 msgid "Automatic Window Raise Delay" msgstr "Délai d'auto-activation des fenêtres" #: ../../WPrefs.app/Focus.c:319 ../../WPrefs.app/MouseSettings.c:601 msgid "msec" msgstr "msec" #: ../../WPrefs.app/Focus.c:336 msgid "" "Do not let applications receive\n" "the click used to focus windows." msgstr "" "L'application ne reçoit pas le clic\n" "utilisé pour activer la fenêtre." #: ../../WPrefs.app/Focus.c:342 msgid "" "Automatically focus new\n" "windows." msgstr "" "Activer automatiquement les\n" "nouvelles fenêtres." #: ../../WPrefs.app/Focus.c:363 msgid "Window Focus Preferences" msgstr "Préférences d'activation des fenêtres" #: ../../WPrefs.app/Focus.c:365 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "Règles d'activation des fenêtres, règles de commutation des\n" "couleurs en mode 256 couleurs et options proches." #: ../../WPrefs.app/Font.c:400 ../../WPrefs.app/Font.c:1872 msgid "Window Title Font" msgstr "Titre de fenêtre" #: ../../WPrefs.app/Font.c:404 msgid "Display" msgstr "Affichage" #: ../../WPrefs.app/Font.c:412 msgid "Menu Item" msgstr "Item du menu" #: ../../WPrefs.app/Font.c:418 msgid "Clip title" msgstr "Titre du Trombone" #: ../../WPrefs.app/Font.c:422 msgid "Icon Title" msgstr "Titre d'icônes" #: ../../WPrefs.app/Font.c:726 msgid "error capturing \"original\" tile image" msgstr "Erreur à la capture du fond d'icône." #: ../../WPrefs.app/Font.c:1130 msgid "Could not locate font information file WPrefs.app/font.data" msgstr "" "Impossible de trouver le fichier de déclaration des polices WPrefs.app/font." "data" #: ../../WPrefs.app/Font.c:1136 msgid "Could not read font information file WPrefs.app/font.data" msgstr "" "Impossible de lire le fichier de déclaration des polices WPrefs.app/font.data" #: ../../WPrefs.app/Font.c:1147 msgid "" "Invalid data in font information file WPrefs.app/font.data.\n" "Encodings data not found." msgstr "" "Informations invalides dans le fichier de déclaration des polices\n" "WPrefs.app/font.data. Encodage absent." #: ../../WPrefs.app/Font.c:1152 msgid "Current" msgstr "Actuel" #: ../../WPrefs.app/Font.c:1197 ../../WPrefs.app/Menu.c:1594 #: ../../WPrefs.app/MouseSettings.c:140 ../../WPrefs.app/MouseSettings.c:160 #: ../../WPrefs.app/TexturePanel.c:615 ../../WPrefs.app/TexturePanel.c:695 #: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:759 #: ../../WPrefs.app/WPrefs.c:764 ../../WPrefs.app/WPrefs.c:781 #: ../../WPrefs.app/WPrefs.c:791 ../../WPrefs.app/WPrefs.c:801 #: ../../WPrefs.app/WPrefs.c:839 ../../WPrefs.app/WPrefs.c:844 msgid "Error" msgstr "Erreur" #: ../../WPrefs.app/Font.c:1197 ../../WPrefs.app/Font.c:1307 #: ../../WPrefs.app/Menu.c:1594 ../../WPrefs.app/MouseSettings.c:142 #: ../../WPrefs.app/MouseSettings.c:162 ../../WPrefs.app/TexturePanel.c:616 #: ../../WPrefs.app/TexturePanel.c:697 ../../WPrefs.app/TexturePanel.c:1529 #: ../../WPrefs.app/Themes.c:98 ../../WPrefs.app/WPrefs.c:759 #: ../../WPrefs.app/WPrefs.c:764 ../../WPrefs.app/WPrefs.c:783 #: ../../WPrefs.app/WPrefs.c:795 ../../WPrefs.app/WPrefs.c:801 #: ../../WPrefs.app/WPrefs.c:808 ../../WPrefs.app/WPrefs.c:839 #: ../../WPrefs.app/WPrefs.c:844 ../../WPrefs.app/imagebrowser.c:105 msgid "OK" msgstr "Accepter" #: ../../WPrefs.app/Font.c:1307 ../../WPrefs.app/Menu.c:1629 #: ../../WPrefs.app/WPrefs.c:808 msgid "Warning" msgstr "Avertissement" #: ../../WPrefs.app/Font.c:1503 ../../WPrefs.app/Menu.c:1406 msgid "Yes" msgstr "Oui" #: ../../WPrefs.app/Font.c:1507 msgid "Auto" msgstr "Auto" #: ../../WPrefs.app/Font.c:1873 msgid "Large Display Font" msgstr "Grande police" #: ../../WPrefs.app/Font.c:1874 msgid "Menu Title Font" msgstr "Titre de menu" #: ../../WPrefs.app/Font.c:1875 msgid "Menu Item Font" msgstr "Item du menu" #: ../../WPrefs.app/Font.c:1876 msgid "Clip Title Font" msgstr "Titre du Trombone" #: ../../WPrefs.app/Font.c:1877 msgid "Icon Title Font" msgstr "Titre d'icône" #: ../../WPrefs.app/Font.c:1887 msgid "MultiByte" msgstr "Multi-octets" #: ../../WPrefs.app/Font.c:1901 msgid "Default Font Encodings" msgstr "Encodage par défaut" #: ../../WPrefs.app/Font.c:1917 msgid "Smooth Fonts" msgstr "Polices lissées" #: ../../WPrefs.app/Font.c:1918 msgid "" "Smooth Font edges for the eye candy\n" "requires a restart after saving" msgstr "" "Bordure de caractères adoucies, pour le plaisir des yeux.\n" "Nécessite un redémarrage après sauvegarde." #: ../../WPrefs.app/Font.c:1927 msgid "Font Set" msgstr "Famille de polices" #: ../../WPrefs.app/Font.c:1957 msgid "Add..." msgstr "Ajouter..." #: ../../WPrefs.app/Font.c:1963 ../../WPrefs.app/Font.c:1999 msgid "Change..." msgstr "Modifier..." #: ../../WPrefs.app/Font.c:1969 ../../WPrefs.app/Paths.c:289 #: ../../WPrefs.app/Paths.c:320 msgid "Remove" msgstr "Supprimer" #: ../../WPrefs.app/Font.c:2095 msgid "Font Preferences" msgstr "Préférences des polices" #: ../../WPrefs.app/Font.c:2096 msgid "Font Configurations for Windows, Menus etc" msgstr "Configuration des polices pour les fenêtres, menus, etc." #: ../../WPrefs.app/Icons.c:180 msgid "Icon Positioning" msgstr "Positionnement des icônes" #: ../../WPrefs.app/Icons.c:227 msgid "Iconification Animation" msgstr "Iconification animée" #: ../../WPrefs.app/Icons.c:238 msgid "Shrinking/Zooming" msgstr "Zoom" #: ../../WPrefs.app/Icons.c:239 msgid "Spinning/Twisting" msgstr "Tournoiement" #: ../../WPrefs.app/Icons.c:240 msgid "3D-flipping" msgstr "Rotation 3D" #: ../../WPrefs.app/Icons.c:241 ../../WPrefs.app/MouseSettings.c:838 #: ../../WPrefs.app/MouseSettings.c:843 msgid "None" msgstr "Aucune" #: ../../WPrefs.app/Icons.c:254 msgid "Auto-arrange icons" msgstr "Rangement automatique des icônes" #: ../../WPrefs.app/Icons.c:256 msgid "Keep icons and miniwindows arranged all the time." msgstr "Toujours ranger les icônes et les mini-fenêtres." #: ../../WPrefs.app/Icons.c:262 msgid "Omnipresent miniwindows" msgstr "Mini-fenêtres omniprésentes" #: ../../WPrefs.app/Icons.c:264 msgid "Make miniwindows be present in all workspaces." msgstr "Les mini-fenêtres apparaissent sur tous les bureaux." #: ../../WPrefs.app/Icons.c:273 msgid "Icon Size" msgstr "Taille des icônes" #: ../../WPrefs.app/Icons.c:275 msgid "The size of the dock/application icon and miniwindows" msgstr "" "La taille des icônes du Dock, des applications\n" "et des mini-fenêtres." #: ../../WPrefs.app/Icons.c:345 msgid "Icon Preferences" msgstr "Préférences des icônes" #: ../../WPrefs.app/Icons.c:347 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "Options de manipulation des icônes et mini-fenêtres :\n" "positionnement et taille des icônes, type d'animation\n" "pour la miniaturisation." #: ../../WPrefs.app/KeyboardSettings.c:73 msgid "Initial Key Repeat" msgstr "Première répétition" #: ../../WPrefs.app/KeyboardSettings.c:114 msgid "Key Repeat Rate" msgstr "Taux de répétition" #: ../../WPrefs.app/KeyboardSettings.c:154 msgid "Type here to test" msgstr "Écrivez ici pour tester" #: ../../WPrefs.app/KeyboardSettings.c:173 msgid "Keyboard Preferences" msgstr "Préférences clavier" #: ../../WPrefs.app/KeyboardSettings.c:175 msgid "Not done" msgstr "Pas fait" #: ../../WPrefs.app/KeyboardShortcuts.c:308 ../../WPrefs.app/Menu.c:360 #: ../../WPrefs.app/TexturePanel.c:1535 ../../WPrefs.app/imagebrowser.c:100 msgid "Cancel" msgstr "Annuler" #: ../../WPrefs.app/KeyboardShortcuts.c:309 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "" "Tapez le raccourci souhaité ou cliquez sur Annuler pour arrêter la capture." #: ../../WPrefs.app/KeyboardShortcuts.c:329 #: ../../WPrefs.app/KeyboardShortcuts.c:577 ../../WPrefs.app/Menu.c:371 #: ../../WPrefs.app/Menu.c:830 msgid "Capture" msgstr "Capturer" #: ../../WPrefs.app/KeyboardShortcuts.c:330 #: ../../WPrefs.app/KeyboardShortcuts.c:585 msgid "Click Capture to interactively define the shortcut key." msgstr "Cliquez sur Capturer pour définir interactivement le raccourci." #: ../../WPrefs.app/KeyboardShortcuts.c:484 msgid "Actions" msgstr "Actions" #: ../../WPrefs.app/KeyboardShortcuts.c:498 msgid "Open applications menu" msgstr "Ouvrir le menu Applications" #: ../../WPrefs.app/KeyboardShortcuts.c:499 msgid "Open window list menu" msgstr "Ouvrir la liste des fenêtres" #: ../../WPrefs.app/KeyboardShortcuts.c:500 msgid "Open window commands menu" msgstr "Ouvrir le menu de la fenêtre" #: ../../WPrefs.app/KeyboardShortcuts.c:501 msgid "Hide active application" msgstr "Masquer l'application active" #: ../../WPrefs.app/KeyboardShortcuts.c:502 msgid "Hide other applications" msgstr "Masquer les autres applications" #: ../../WPrefs.app/KeyboardShortcuts.c:503 msgid "Miniaturize active window" msgstr "Miniaturiser la fenêtre active" #: ../../WPrefs.app/KeyboardShortcuts.c:504 msgid "Close active window" msgstr "Fermer la fenêtre active" #: ../../WPrefs.app/KeyboardShortcuts.c:505 msgid "Maximize active window" msgstr "Maximiser la fenêtre active" #: ../../WPrefs.app/KeyboardShortcuts.c:506 msgid "Maximize active window vertically" msgstr "Maximiser la hauteur de la fenêtre active" #: ../../WPrefs.app/KeyboardShortcuts.c:507 msgid "Maximize active window horizontally" msgstr "Maximiser la largeur de la fenêtre active" #: ../../WPrefs.app/KeyboardShortcuts.c:508 msgid "Raise active window" msgstr "Mettre la fenêtre active devant les autres" #: ../../WPrefs.app/KeyboardShortcuts.c:509 msgid "Lower active window" msgstr "Mettre la fenêtre active derrière les autres" #: ../../WPrefs.app/KeyboardShortcuts.c:510 msgid "Raise/Lower window under mouse pointer" msgstr "Mettre la fenêtre pointée devant/derrière" #: ../../WPrefs.app/KeyboardShortcuts.c:511 msgid "Shade active window" msgstr "Enrouler la fenêtre active" #: ../../WPrefs.app/KeyboardShortcuts.c:512 msgid "Move/Resize active window" msgstr "Déplacer/dimensionner la fenêtre active" #: ../../WPrefs.app/KeyboardShortcuts.c:513 msgid "Select active window" msgstr "Sélectionner la fenêtre active" #: ../../WPrefs.app/KeyboardShortcuts.c:514 msgid "Focus next window" msgstr "Activer la fenêtre suivante" #: ../../WPrefs.app/KeyboardShortcuts.c:515 msgid "Focus previous window" msgstr "Activer la fenêtre précédente" #: ../../WPrefs.app/KeyboardShortcuts.c:516 msgid "Switch to next workspace" msgstr "Aller au bureau suivant" #: ../../WPrefs.app/KeyboardShortcuts.c:517 msgid "Switch to previous workspace" msgstr "Aller au bureau précédent" #: ../../WPrefs.app/KeyboardShortcuts.c:518 msgid "Switch to next ten workspaces" msgstr "Avancer de dix bureaux" #: ../../WPrefs.app/KeyboardShortcuts.c:519 msgid "Switch to previous ten workspaces" msgstr "Reculer de dix bureaux" #: ../../WPrefs.app/KeyboardShortcuts.c:520 msgid "Switch to workspace 1" msgstr "Aller au bureau 1" #: ../../WPrefs.app/KeyboardShortcuts.c:521 msgid "Switch to workspace 2" msgstr "Aller au bureau 2" #: ../../WPrefs.app/KeyboardShortcuts.c:522 msgid "Switch to workspace 3" msgstr "Aller au bureau 3" #: ../../WPrefs.app/KeyboardShortcuts.c:523 msgid "Switch to workspace 4" msgstr "Aller au bureau 4" #: ../../WPrefs.app/KeyboardShortcuts.c:524 msgid "Switch to workspace 5" msgstr "Aller au bureau 5" #: ../../WPrefs.app/KeyboardShortcuts.c:525 msgid "Switch to workspace 6" msgstr "Aller au bureau 6" #: ../../WPrefs.app/KeyboardShortcuts.c:526 msgid "Switch to workspace 7" msgstr "Aller au bureau 7" #: ../../WPrefs.app/KeyboardShortcuts.c:527 msgid "Switch to workspace 8" msgstr "Aller au bureau 8" #: ../../WPrefs.app/KeyboardShortcuts.c:528 msgid "Switch to workspace 9" msgstr "Aller au bureau 9" #: ../../WPrefs.app/KeyboardShortcuts.c:529 msgid "Switch to workspace 10" msgstr "Aller au bureau 10" #: ../../WPrefs.app/KeyboardShortcuts.c:530 msgid "Shortcut for window 1" msgstr "Aller à la fenêtre 1" #: ../../WPrefs.app/KeyboardShortcuts.c:531 msgid "Shortcut for window 2" msgstr "Aller à la fenêtre 2" #: ../../WPrefs.app/KeyboardShortcuts.c:532 msgid "Shortcut for window 3" msgstr "Aller à la fenêtre 3" #: ../../WPrefs.app/KeyboardShortcuts.c:533 msgid "Shortcut for window 4" msgstr "Aller à la fenêtre 4" #: ../../WPrefs.app/KeyboardShortcuts.c:534 msgid "Shortcut for window 5" msgstr "Aller à la fenêtre 5" #: ../../WPrefs.app/KeyboardShortcuts.c:535 msgid "Shortcut for window 6" msgstr "Aller à la fenêtre 6" #: ../../WPrefs.app/KeyboardShortcuts.c:536 msgid "Shortcut for window 7" msgstr "Aller à la fenêtre 7" #: ../../WPrefs.app/KeyboardShortcuts.c:537 msgid "Shortcut for window 8" msgstr "Aller à la fenêtre 8" #: ../../WPrefs.app/KeyboardShortcuts.c:538 msgid "Shortcut for window 9" msgstr "Aller à la fenêtre 9" #: ../../WPrefs.app/KeyboardShortcuts.c:539 msgid "Shortcut for window 10" msgstr "Aller à la fenêtre 10" #: ../../WPrefs.app/KeyboardShortcuts.c:540 msgid "Switch to Next Screen/Monitor" msgstr "Aller à l'écran suivant" #: ../../WPrefs.app/KeyboardShortcuts.c:541 msgid "Switch to Previous Screen/Monitor" msgstr "Aller à l'écran précédent" #: ../../WPrefs.app/KeyboardShortcuts.c:542 msgid "Raise Clip" msgstr "Mettre le Trombone devant" #: ../../WPrefs.app/KeyboardShortcuts.c:543 msgid "Lower Clip" msgstr "Mettre le Trombone derrière" #: ../../WPrefs.app/KeyboardShortcuts.c:544 msgid "Raise/Lower Clip" msgstr "Mettre le Trombone devant/derrière" #: ../../WPrefs.app/KeyboardShortcuts.c:546 msgid "Toggle keyboard language" msgstr "Activer/désactiver l'internationalisation du clavier" #: ../../WPrefs.app/KeyboardShortcuts.c:560 msgid "Shortcut" msgstr "Raccourci" #: ../../WPrefs.app/KeyboardShortcuts.c:571 ../../WPrefs.app/Menu.c:836 msgid "Clear" msgstr "Effacer" #: ../../WPrefs.app/KeyboardShortcuts.c:633 msgid "Keyboard Shortcut Preferences" msgstr "Préférences de raccourcis clavier" #: ../../WPrefs.app/KeyboardShortcuts.c:635 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "Modification des raccourcis clavier pour les actions\n" "telles que le changemement de bureau et l'ouverture\n" "de menus." #: ../../WPrefs.app/Menu.c:278 msgid "Select Program" msgstr "Selectionner le programme" #: ../../WPrefs.app/Menu.c:510 msgid "New Items" msgstr "Nouveaux éléments" #: ../../WPrefs.app/Menu.c:511 msgid "Sample Commands" msgstr "Exemples de commande" #: ../../WPrefs.app/Menu.c:512 msgid "Sample Submenus" msgstr "Exemples de sous-menu" #: ../../WPrefs.app/Menu.c:526 msgid "Run Program" msgstr "Lancer le programme" #: ../../WPrefs.app/Menu.c:527 msgid "Internal Command" msgstr "Commande interne" #: ../../WPrefs.app/Menu.c:528 msgid "Submenu" msgstr "Sous-menu" #: ../../WPrefs.app/Menu.c:529 msgid "External Submenu" msgstr "Menu externe" #: ../../WPrefs.app/Menu.c:530 msgid "Generated Submenu" msgstr "Sous-menu dynamique" #: ../../WPrefs.app/Menu.c:531 msgid "Directory Contents" msgstr "Contenu d'un répertoire" #: ../../WPrefs.app/Menu.c:532 msgid "Workspace Menu" msgstr "Menu des bureaux" #: ../../WPrefs.app/Menu.c:533 ../../WPrefs.app/MouseSettings.c:840 msgid "Window List Menu" msgstr "Liste des fenêtres" #: ../../WPrefs.app/Menu.c:552 msgid "XTerm" msgstr "XTerm" #: ../../WPrefs.app/Menu.c:555 msgid "rxvt" msgstr "rxvt" #: ../../WPrefs.app/Menu.c:558 msgid "ETerm" msgstr "ETerm" #: ../../WPrefs.app/Menu.c:561 msgid "Run..." msgstr "Démarrer..." #: ../../WPrefs.app/Menu.c:562 msgid "%a(Run,Type command to run)" msgstr "%a(Démarrer,Saisir la commande :)" #: ../../WPrefs.app/Menu.c:564 msgid "Netscape" msgstr "Netscape" #: ../../WPrefs.app/Menu.c:567 msgid "gimp" msgstr "Le Gimp" #: ../../WPrefs.app/Menu.c:570 msgid "epic" msgstr "epic" #: ../../WPrefs.app/Menu.c:573 msgid "ee" msgstr "ee" #: ../../WPrefs.app/Menu.c:576 msgid "xv" msgstr "xv" #: ../../WPrefs.app/Menu.c:579 msgid "Acrobat Reader" msgstr "Acrobat Reader" #: ../../WPrefs.app/Menu.c:582 msgid "ghostview" msgstr "ghostview" #: ../../WPrefs.app/Menu.c:585 ../../WPrefs.app/Menu.c:857 msgid "Exit Window Maker" msgstr "Quitter Window Maker" #: ../../WPrefs.app/Menu.c:608 msgid "Debian Menu" msgstr "Menu Debian" #: ../../WPrefs.app/Menu.c:611 msgid "RedHat Menu" msgstr "Menu Red Hat" #: ../../WPrefs.app/Menu.c:614 msgid "Menu Conectiva" msgstr "Menu Conectiva" #: ../../WPrefs.app/Menu.c:617 ../../WPrefs.app/Themes.c:250 msgid "Themes" msgstr "Thèmes" #: ../../WPrefs.app/Menu.c:622 msgid "Bg Images (scale)" msgstr "Fond (à l'échelle)" #: ../../WPrefs.app/Menu.c:627 msgid "Bg Images (tile)" msgstr "Fond (mosaïque)" #: ../../WPrefs.app/Menu.c:632 msgid "Assorted XTerms" msgstr "Choix de XTerm" #: ../../WPrefs.app/Menu.c:634 msgid "XTerm Yellow on Blue" msgstr "XTerm jaune sur bleu" #: ../../WPrefs.app/Menu.c:637 msgid "XTerm White on Black" msgstr "XTerm blanc sur noir" #: ../../WPrefs.app/Menu.c:640 msgid "XTerm Black on White" msgstr "XTerm noir sur blanc" #: ../../WPrefs.app/Menu.c:643 msgid "XTerm Black on Beige" msgstr "XTerm noir sur beige" #: ../../WPrefs.app/Menu.c:646 msgid "XTerm White on Green" msgstr "XTerm blanc sur vert" #: ../../WPrefs.app/Menu.c:649 msgid "XTerm White on Olive" msgstr "XTerm blanc sur olive" #: ../../WPrefs.app/Menu.c:652 msgid "XTerm Blue on Blue" msgstr "XTerm bleu sur bleu" #: ../../WPrefs.app/Menu.c:655 msgid "XTerm BIG FONTS" msgstr "XTerm grandes polices" #: ../../WPrefs.app/Menu.c:677 msgid "Program to Run" msgstr "Programme à lancer" #: ../../WPrefs.app/Menu.c:687 msgid "Browse" msgstr "Parcourir" #: ../../WPrefs.app/Menu.c:698 msgid "Run the program inside a Xterm" msgstr "Lancer le programme dans un terminal (xterm)" #: ../../WPrefs.app/Menu.c:708 msgid "Path for Menu" msgstr "Répertoire du menu" #: ../../WPrefs.app/Menu.c:721 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin" msgstr "" "Indiquez l'emplacement d'un fichier décrivant un\n" "menu ou une liste de répertoires contenant les\n" "programmes que vous voulez voir dans le menu.\n" "Exemple : « ~/GNUstep/Library/WindowMaker/menu »\n" "ou\n" "« /usr/X116/bin ~/xbin »" #: ../../WPrefs.app/Menu.c:736 msgid "Command" msgstr "Commande" #: ../../WPrefs.app/Menu.c:750 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "Indiquez une commande qui génère une description\n" "de menu sur la sortie standard." #: ../../WPrefs.app/Menu.c:758 msgid "" "Cache menu contents after opening for\n" "the first time" msgstr "" "Mémoriser le sous-menu dynamique généré au\n" "premier affichage." #: ../../WPrefs.app/Menu.c:769 msgid "Command to Open Files" msgstr "Commande pour ouvrir les fichiers" #: ../../WPrefs.app/Menu.c:783 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "Indiquez la commande à utiliser pour ouvrir\n" "les fichiers des répertoires listés ci-dessous." #: ../../WPrefs.app/Menu.c:792 msgid "Directories with Files" msgstr "Répertoires listés" #: ../../WPrefs.app/Menu.c:805 msgid "Strip extensions from file names" msgstr "Supprimer les extensions des noms de fichiers" #: ../../WPrefs.app/Menu.c:817 msgid "Keyboard Shortcut" msgstr "Raccourci clavier" #: ../../WPrefs.app/Menu.c:853 msgid "Arrange Icons" msgstr "Ranger les icônes" #: ../../WPrefs.app/Menu.c:854 msgid "Hide All Windows Except For The Focused One" msgstr "Masquer toutes les fenêtres inactives" #: ../../WPrefs.app/Menu.c:855 msgid "Show All Windows" msgstr "Montrer toutes les fenêtres" #: ../../WPrefs.app/Menu.c:858 msgid "Exit X Session" msgstr "Terminer la session X" #: ../../WPrefs.app/Menu.c:859 msgid "Restart Window Maker" msgstr "Redémarrer Window Maker" #: ../../WPrefs.app/Menu.c:860 msgid "Start Another Window Manager : (" msgstr "Démarrer un autre gestionnaire de fenêtres  : (" #: ../../WPrefs.app/Menu.c:862 msgid "Save Current Session" msgstr "Enregistrer la session" #: ../../WPrefs.app/Menu.c:863 msgid "Clear Saved Session" msgstr "Effacer la session enregistrée" #: ../../WPrefs.app/Menu.c:864 msgid "Refresh Screen" msgstr "Rafraîchir l'écran" #: ../../WPrefs.app/Menu.c:865 msgid "Open Info Panel" msgstr "Informations Window Maker" #: ../../WPrefs.app/Menu.c:866 msgid "Open Copyright Panel" msgstr "Informations légales" #: ../../WPrefs.app/Menu.c:872 msgid "Window Manager to Start" msgstr "Gestionnaire de fenêtres" #: ../../WPrefs.app/Menu.c:888 msgid "Do not confirm action." msgstr "Pas de demande de confirmation." #: ../../WPrefs.app/Menu.c:898 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "Instructions :\n" "\n" " - glissez un élément de la gauche jusqu'au menu\n" " pour l'ajouter ;\n" " - glissez un élément hors du menu pour le supprimer ;\n" " - déplacez les éléments dans le menu pour modifier\n" " leur position ;\n" " - déplacez un élément en pressant la touche Ctrl\n" " pour le copier ;\n" " - double-cliquez sur un élément pour changer son\n" " intitulé ;\n" " - cliquez sur un élément pour modifier ses propriétés." #: ../../WPrefs.app/Menu.c:1122 #, c-format msgid "unknown command '%s' in menu" msgstr "Commande « %s » du menu inconnue" #: ../../WPrefs.app/Menu.c:1154 msgid ": Execute Program" msgstr " : Démarrer le programme" #: ../../WPrefs.app/Menu.c:1158 msgid ": Perform Internal Command" msgstr " : exécuter une commande interne" #: ../../WPrefs.app/Menu.c:1162 msgid ": Open a Submenu" msgstr " : ouvrir un sous-menu" #: ../../WPrefs.app/Menu.c:1166 msgid ": Program Generated Submenu" msgstr " : menu généré par un programme" #: ../../WPrefs.app/Menu.c:1170 msgid ": Directory Contents Menu" msgstr " : contenu d'un répertoire" #: ../../WPrefs.app/Menu.c:1174 msgid ": Open Workspaces Submenu" msgstr " : Ouvrir le menu des bureaux" #: ../../WPrefs.app/Menu.c:1178 msgid ": Open Window List Submenu" msgstr " : Ouvrir le menu Fenêtre" #: ../../WPrefs.app/Menu.c:1403 msgid "Remove Submenu" msgstr "Supprimer le sous-menu" #: ../../WPrefs.app/Menu.c:1404 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "" "Supprimer cet élément détruira tous les éléments du\n" "sous-menu. Est-ce vraiment ce que vous voulez ?" #: ../../WPrefs.app/Menu.c:1406 msgid "No" msgstr "Non" #: ../../WPrefs.app/Menu.c:1407 msgid "Yes, don't ask again." msgstr "Oui, ne plus me demander." #. if there is a localized plmenu for the tongue put it's filename here #: ../../WPrefs.app/Menu.c:1575 ../../WPrefs.app/Menu.c:1582 #, c-format msgid "%s/Library/WindowMaker/plmenu" msgstr "%s/Library/WindowMaker/plmenu.fr" #: ../../WPrefs.app/Menu.c:1591 #, c-format msgid "Could not open default menu from '%s'" msgstr "Impossible d'ouvrir le menu par défaut « %s »." #: ../../WPrefs.app/Menu.c:1630 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "WPrefs.app ne gère pas le format utilisé par le fichier\n" "de menu. Voulez-vous supprimer le menu actuel pour utiliser\n" "WPrefs.app ?" #: ../../WPrefs.app/Menu.c:1633 msgid "Yes, Discard and Update" msgstr "Oui, remplace ce menu." #: ../../WPrefs.app/Menu.c:1634 msgid "No, Keep Current Menu" msgstr "Non, garde le menu en cours." #: ../../WPrefs.app/Menu.c:1897 msgid "Applications Menu Definition" msgstr "Définition du menu Application" #: ../../WPrefs.app/Menu.c:1899 msgid "Edit the menu for launching applications." msgstr "" "Personnalisation du menu de lancement\n" "des applications." #: ../../WPrefs.app/MenuPreferences.c:111 msgid "Menu Scrolling Speed" msgstr "Vitesse de défilement des menus" #: ../../WPrefs.app/MenuPreferences.c:160 msgid "Submenu Alignment" msgstr "Alignement des sous-menus" #: ../../WPrefs.app/MenuPreferences.c:204 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "Toujours afficher entièrement les sous-menus à l'écran (pas de défilement)." #: ../../WPrefs.app/MenuPreferences.c:209 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "Recentrer les menus hors-écran quand la souris est sur eux." #: ../../WPrefs.app/MenuPreferences.c:229 msgid "Menu Preferences" msgstr "Préférences des menus" #: ../../WPrefs.app/MenuPreferences.c:231 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "Options relatives à l'utilisation des menus : vitesse de\n" "défilement, alignement des sous-menus, etc." #: ../../WPrefs.app/MouseSettings.c:141 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "" "La valeur d'accélération de la souris est invalide. Il faut un réel positif." #: ../../WPrefs.app/MouseSettings.c:161 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "" "Le seuil d'accélération de la souris est invalide. Il faut indiquer le " "nombre de pixels à traverser avant d'accélérer." #: ../../WPrefs.app/MouseSettings.c:262 ../../WPrefs.app/MouseSettings.c:274 #: ../../WPrefs.app/MouseSettings.c:286 ../../WPrefs.app/MouseSettings.c:298 #, c-format msgid "bad value %s for option %s" msgstr "Mauvaise valeur %s pour l'option %s" #: ../../WPrefs.app/MouseSettings.c:357 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "" "La touche modificatrice %s n'est pas reconnue. La valeur utilisée sera : %s." #: ../../WPrefs.app/MouseSettings.c:382 msgid "could not retrieve keyboard modifier mapping" msgstr "Emplacement (mapping) de la touche modificatrice introuvable." #: ../../WPrefs.app/MouseSettings.c:477 msgid "Mouse Speed" msgstr "Vitesse de la souris" #: ../../WPrefs.app/MouseSettings.c:507 msgid "Acceler.:" msgstr "Accélér. :" #: ../../WPrefs.app/MouseSettings.c:520 msgid "Threshold:" msgstr "Seuil :" #: ../../WPrefs.app/MouseSettings.c:535 msgid "Double-Click Delay" msgstr "Délai du double-clic" #: ../../WPrefs.app/MouseSettings.c:579 msgid "Test" msgstr "Test" #: ../../WPrefs.app/MouseSettings.c:609 msgid "Workspace Mouse Actions" msgstr "Actions de la souris sur le bureau" #: ../../WPrefs.app/MouseSettings.c:614 msgid "Disable mouse actions" msgstr "Désactiver la souris" #: ../../WPrefs.app/MouseSettings.c:620 msgid "Left Button" msgstr "bouton gauche" #: ../../WPrefs.app/MouseSettings.c:630 msgid "Middle Button" msgstr "bouton central" #: ../../WPrefs.app/MouseSettings.c:640 msgid "Right Button" msgstr "bouton droit" #: ../../WPrefs.app/MouseSettings.c:650 msgid "Mouse Wheel" msgstr "molette" #: ../../WPrefs.app/MouseSettings.c:672 msgid "Mouse Grab Modifier" msgstr "Saisir une fenêtre à la souris" #: ../../WPrefs.app/MouseSettings.c:674 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "Touche utilisée pour les actions comme\n" "déplacer la fenêtre avec la souris et\n" "cliquer à l'intérieur de la fenêtre." #: ../../WPrefs.app/MouseSettings.c:708 #, c-format msgid "could not create %s" msgstr "Création de %s impossible." #: ../../WPrefs.app/MouseSettings.c:724 #, c-format msgid "could not create temporary file %s" msgstr "Création du fichier temporaire %s impossible." #: ../../WPrefs.app/MouseSettings.c:756 #, c-format msgid "could not rename file %s to %s\n" msgstr "Impossible de renommer %s en %s\n" #: ../../WPrefs.app/MouseSettings.c:829 msgid "Shift" msgstr "Shift" #: ../../WPrefs.app/MouseSettings.c:830 msgid "Lock" msgstr "Arrêt défil." #: ../../WPrefs.app/MouseSettings.c:831 msgid "Control" msgstr "Ctrl" #: ../../WPrefs.app/MouseSettings.c:832 msgid "Mod1" msgstr "Mod1" #: ../../WPrefs.app/MouseSettings.c:833 msgid "Mod2" msgstr "Mod2" #: ../../WPrefs.app/MouseSettings.c:834 msgid "Mod3" msgstr "Mod3" #: ../../WPrefs.app/MouseSettings.c:835 msgid "Mod4" msgstr "Mod4" #: ../../WPrefs.app/MouseSettings.c:836 msgid "Mod5" msgstr "Mod5" #: ../../WPrefs.app/MouseSettings.c:839 msgid "Applications Menu" msgstr "Menu Applications" #: ../../WPrefs.app/MouseSettings.c:841 msgid "Select Windows" msgstr "Sélectionner" #: ../../WPrefs.app/MouseSettings.c:844 msgid "Switch Workspaces" msgstr "Changer de bureau" #: ../../WPrefs.app/MouseSettings.c:849 msgid "Mouse Preferences" msgstr "Préférences de la souris" #: ../../WPrefs.app/MouseSettings.c:851 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "Vitesse et accélération de la souris, délai du\n" "double-clic, action des boutons de la souris, etc." #: ../../WPrefs.app/Paths.c:85 msgid "bad value in option IconPath. Using default path list" msgstr "" "Mauvaise valeur pour la clé IconPath remplacée par la valeur par défaut." #: ../../WPrefs.app/Paths.c:103 msgid "bad value in option PixmapPath. Using default path list" msgstr "" "Mauvaise valeur pour la clé PixmapPath remplacée par la valeur par défaut." #: ../../WPrefs.app/Paths.c:155 msgid "Select directory" msgstr "Choisissez un répertoire" #: ../../WPrefs.app/Paths.c:271 msgid "Icon Search Paths" msgstr "Emplacements des icônes" #: ../../WPrefs.app/Paths.c:282 ../../WPrefs.app/Paths.c:313 #: ../../WPrefs.app/TexturePanel.c:1312 msgid "Add" msgstr "Ajouter" #: ../../WPrefs.app/Paths.c:302 msgid "Pixmap Search Paths" msgstr "Emplacements des images" #: ../../WPrefs.app/Paths.c:342 msgid "Search Path Configuration" msgstr "Configuration des chemins" #: ../../WPrefs.app/Paths.c:344 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "" "Chemins vers les répertoires contenant\n" "images et icônes." #: ../../WPrefs.app/Preferences.c:75 msgid "OFF" msgstr "OFF" #: ../../WPrefs.app/Preferences.c:77 msgid "1 pixel" msgstr "1 pixel" #. 2-4 #: ../../WPrefs.app/Preferences.c:80 #, c-format msgid "%i pixels" msgstr "%i pixels" #. >4 #: ../../WPrefs.app/Preferences.c:83 #, c-format msgid "%i pixels " msgstr "%i pixels " #: ../../WPrefs.app/Preferences.c:229 msgid "Size Display" msgstr "Affichage de la taille des fenêtres" #: ../../WPrefs.app/Preferences.c:231 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "Position ou apparence de la taille de la fenêtre\n" "quand celle-ci est redimensionnée." #: ../../WPrefs.app/Preferences.c:238 ../../WPrefs.app/Preferences.c:259 msgid "Corner of screen" msgstr "Sur le coin de l'écran" #: ../../WPrefs.app/Preferences.c:239 ../../WPrefs.app/Preferences.c:260 msgid "Center of screen" msgstr "Au centre de l'écran" #: ../../WPrefs.app/Preferences.c:240 ../../WPrefs.app/Preferences.c:261 msgid "Center of resized window" msgstr "Au centre de la fenêtre" #: ../../WPrefs.app/Preferences.c:241 msgid "Technical drawing-like" msgstr "Avec un cadre" #: ../../WPrefs.app/Preferences.c:242 ../../WPrefs.app/Preferences.c:262 msgid "Disabled" msgstr "Désactivé" #: ../../WPrefs.app/Preferences.c:250 msgid "Position Display" msgstr "Affichage de la position" #: ../../WPrefs.app/Preferences.c:252 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "Position ou apparence de la position de\n" "la fenêtre quand celle-ci est déplacée." #: ../../WPrefs.app/Preferences.c:270 msgid "Show balloon text for..." msgstr "Afficher l'aide contextuelle pour..." #: ../../WPrefs.app/Preferences.c:277 msgid "incomplete window titles" msgstr "Titres de fenêtres incomplets" #: ../../WPrefs.app/Preferences.c:278 msgid "miniwindow titles" msgstr "Titres des mini-fenêtres" #: ../../WPrefs.app/Preferences.c:279 msgid "application/dock icons" msgstr "Applications dockée" #: ../../WPrefs.app/Preferences.c:280 msgid "internal help" msgstr "Aide interne" #: ../../WPrefs.app/Preferences.c:292 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "" "Une fenêtre activée par le\n" "clavier passe devant." #: ../../WPrefs.app/Preferences.c:298 msgid "" "Enable keyboard language\n" "switch button in window titlebars." msgstr "" "Bouton pour modifier la cartographie du clavier\n" "dans les barres de titre des fenêtres." #: ../../WPrefs.app/Preferences.c:307 msgid "Workspace border" msgstr "Bordure des bureaux" #: ../../WPrefs.app/Preferences.c:323 msgid "Left/Right" msgstr "gauche/droite" #: ../../WPrefs.app/Preferences.c:328 msgid "Top/Bottom" msgstr "haut/bas" #: ../../WPrefs.app/Preferences.c:349 msgid "Miscellaneous Ergonomic Preferences" msgstr "Autres préférences ergonomiques" #: ../../WPrefs.app/Preferences.c:350 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "Options diverses commme l'aide contextuelle,\n" "la géométrie, les affichages, etc." #: ../../WPrefs.app/TexturePanel.c:323 msgid "Saturation" msgstr "Saturation" #: ../../WPrefs.app/TexturePanel.c:325 msgid "Brightness" msgstr "Luminosité" #: ../../WPrefs.app/TexturePanel.c:373 ../../WPrefs.app/TexturePanel.c:380 msgid "Hue" msgstr "Teinte" #: ../../WPrefs.app/TexturePanel.c:612 msgid "Could not load the selected file: " msgstr "Chargement du fichier sélectionné impossible : " #: ../../WPrefs.app/TexturePanel.c:666 msgid "Open Image" msgstr "Choisir une image" #: ../../WPrefs.app/TexturePanel.c:696 msgid "The selected file does not contain a supported image." msgstr "Le fichier sélectionné ne contient pas un format d'image supporté." #: ../../WPrefs.app/TexturePanel.c:947 #, c-format msgid "could not load file '%s': %s" msgstr "L'image « %s » est introuvable : %s" #: ../../WPrefs.app/TexturePanel.c:1066 #, c-format msgid "error creating texture %s" msgstr "Erreur en créant la texture %s." #: ../../WPrefs.app/TexturePanel.c:1256 msgid "Texture Panel" msgstr "Panneau de texture" #: ../../WPrefs.app/TexturePanel.c:1264 msgid "Texture Name" msgstr "Nom de la texture" #: ../../WPrefs.app/TexturePanel.c:1276 msgid "Solid Color" msgstr "Couleur unie" #: ../../WPrefs.app/TexturePanel.c:1277 msgid "Gradient Texture" msgstr "Couleurs dégradées" #: ../../WPrefs.app/TexturePanel.c:1278 msgid "Simple Gradient Texture" msgstr "Dégradé simple" #: ../../WPrefs.app/TexturePanel.c:1279 msgid "Textured Gradient" msgstr "Dégradé texturé" #: ../../WPrefs.app/TexturePanel.c:1280 msgid "Image Texture" msgstr "Image" #: ../../WPrefs.app/TexturePanel.c:1288 msgid "Default Color" msgstr "Couleur du fond" #: ../../WPrefs.app/TexturePanel.c:1300 msgid "Gradient Colors" msgstr "Couleurs du dégradé" #: ../../WPrefs.app/TexturePanel.c:1396 msgid "Direction" msgstr "Direction" #: ../../WPrefs.app/TexturePanel.c:1424 msgid "Gradient" msgstr "Dégradé" #: ../../WPrefs.app/TexturePanel.c:1442 msgid "Gradient Opacity" msgstr "Opacité du dégradé" #: ../../WPrefs.app/TexturePanel.c:1484 msgid "Image" msgstr "Image" #: ../../WPrefs.app/TexturePanel.c:1516 msgid "Tile" msgstr "Mosaïque" #: ../../WPrefs.app/TexturePanel.c:1517 msgid "Scale" msgstr "À l'échelle" #: ../../WPrefs.app/TexturePanel.c:1519 msgid "Maximize" msgstr "Maximisée" #: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 msgid "Set" msgstr "Appliquer" #: ../../WPrefs.app/Themes.c:132 msgid "Stop" msgstr "Stop" #: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:203 #: ../../WPrefs.app/Themes.c:223 msgid "Download" msgstr "Télécharger" #: ../../WPrefs.app/Themes.c:171 msgid "Save Current Theme" msgstr "Enregistrer le thème" #: ../../WPrefs.app/Themes.c:180 msgid "Load" msgstr "Charger" #: ../../WPrefs.app/Themes.c:185 msgid "Install" msgstr "Installer" #: ../../WPrefs.app/Themes.c:193 msgid "Tile of The Day" msgstr "Fond d'icône du jour" #: ../../WPrefs.app/Themes.c:213 msgid "Bar of The Day" msgstr "Barre du jour" #: ../../WPrefs.app/WPrefs.c:260 msgid "Window Maker Preferences" msgstr "Préférences pour Window Maker" #: ../../WPrefs.app/WPrefs.c:284 msgid "Revert Page" msgstr "Annuler la page" #: ../../WPrefs.app/WPrefs.c:290 msgid "Revert All" msgstr "Tout annuler" #: ../../WPrefs.app/WPrefs.c:296 msgid "Save" msgstr "Enregistrer" #: ../../WPrefs.app/WPrefs.c:309 msgid "Balloon Help" msgstr "Aide contextuelle" #: ../../WPrefs.app/WPrefs.c:334 msgid "Window Maker Preferences Utility" msgstr "Outil de configuration de Window Maker" #: ../../WPrefs.app/WPrefs.c:341 #, c-format msgid "Version %s for Window Maker %s or newer" msgstr "Version %s pour Window Maker %s ou postérieur" #: ../../WPrefs.app/WPrefs.c:349 msgid "Starting..." msgstr "Démarrage..." #: ../../WPrefs.app/WPrefs.c:355 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg, Largo et al\n" "More Programming: James Thompson et al" msgstr "" "Programmation/conception : Alfredo K. Kojima\n" "Dessins : Marco van Hylckama Vlieg, Largo et autres\n" "Programmation additionnelle : James Thompson et autres\n" "Traduction française : Antoine Hulin, Bastien Nocera et Christoph Thompson" #: ../../WPrefs.app/WPrefs.c:455 #, c-format msgid "could not locate image file %s\n" msgstr "Impossible de trouver l'image %s\n" #: ../../WPrefs.app/WPrefs.c:670 #, c-format msgid "could not load image file %s:%s" msgstr "Impossible de charger l'image %s : %s" #: ../../WPrefs.app/WPrefs.c:689 msgid "Loading Window Maker configuration files..." msgstr "Lecture de la configuration de Window Maker..." #: ../../WPrefs.app/WPrefs.c:693 msgid "Initializing configuration panels..." msgstr "Initialisation des panneaux de configuration..." #: ../../WPrefs.app/WPrefs.c:728 msgid "" "WPrefs is free software and is distributed WITHOUT ANY\n" "WARRANTY under the terms of the GNU General Public License." msgstr "" "WPrefs est un logiciel libre. Il est distribué sans AUCUNE\n" "GARANTIE sous les termes de la licence publique générale\n" "du projet GNU (GNU GPL)." #: ../../WPrefs.app/WPrefs.c:758 ../../WPrefs.app/WPrefs.c:838 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Le domaine Window Maker (%s) est corrompu !" #: ../../WPrefs.app/WPrefs.c:762 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "" "Lecture du domaine Window Maker (%s) impossible depuis la base de données " "par défaut." #: ../../WPrefs.app/WPrefs.c:778 msgid "could not extract version information from Window Maker" msgstr "extraction du numéro de version de Window Maker impossible" #: ../../WPrefs.app/WPrefs.c:779 msgid "Make sure wmaker is in your search path." msgstr "Assurez-vous que l'exécutable « wmaker » est dans votre variable PATH." #: ../../WPrefs.app/WPrefs.c:782 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." msgstr "" "Impossible de récupérer le numéro de version de Window Maker. Assurez-vous " "que Window Maker est correctement installé et que son emplacement est " "indiqué par la variable PATH." # TODO:Fusionner avec la précédente. #: ../../WPrefs.app/WPrefs.c:792 msgid "" "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." msgstr "" "Impossible de récupérer le numéro de version de Window Maker. Assurez-vous " "que Window Maker est correctement installé et que son emplacement est " "indiqué par la variable PATH." #: ../../WPrefs.app/WPrefs.c:799 #, c-format msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "WPrefs fonctionne avec les versions 0.18.0 et postérieures\n" "de Window Maker. La version installée est %i.%i.%i\n" #: ../../WPrefs.app/WPrefs.c:806 #, 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, qui est installé sur votre système, n'est pas " "pleinement supporté par cette version de WPrefs." #: ../../WPrefs.app/WPrefs.c:819 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr "Impossible de démarrer \"%s --global_defaults_path\"." #: ../../WPrefs.app/WPrefs.c:842 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "Impossible de charger le domaine global Window Maker (%s)." #: ../../WPrefs.app/WPrefs.c:1091 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "Mauvaise valeur pour l'option %s\n" "remplacée par : Medium" #: ../../WPrefs.app/WindowHandling.c:141 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "" "Mauvaise valeur pour le placement des fenêtres (WindowPlacement) : %s. " "Remplacée par la valeur par défaut." #: ../../WPrefs.app/WindowHandling.c:163 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "" "Mauvaise valeur pour l'origine du placement des fenêtres (WindowPlaceOrigin) " "remplacée par (0,0)." #: ../../WPrefs.app/WindowHandling.c:243 msgid "Window Placement" msgstr "Placement des fenêtres" #: ../../WPrefs.app/WindowHandling.c:244 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "Méthode utilisée pour placer les fenêtres quand elles\n" "apparaissent à l'écran pour la première fois." #: ../../WPrefs.app/WindowHandling.c:250 msgid "Automatic" msgstr "Automatique" #: ../../WPrefs.app/WindowHandling.c:251 msgid "Random" msgstr "Aléatoire" #: ../../WPrefs.app/WindowHandling.c:252 msgid "Manual" msgstr "Manuel" #: ../../WPrefs.app/WindowHandling.c:253 msgid "Cascade" msgstr "En cascade" #: ../../WPrefs.app/WindowHandling.c:254 msgid "Smart" msgstr "Intelligent" #: ../../WPrefs.app/WindowHandling.c:260 msgid "Placement Origin" msgstr "Origine du placement" # msgstr "Mouvement opaque" # msgstr "Dépl. opaque" # msgstr "Mvt opaque" #: ../../WPrefs.app/WindowHandling.c:321 msgid "Opaque Move" msgstr "Dépl. opaque" #: ../../WPrefs.app/WindowHandling.c:322 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "Afficher le contenu des fenêtres quand elles sont\n" "déplacées sur le bureau ou simplement afficher\n" "un cadre.\n" #: ../../WPrefs.app/WindowHandling.c:361 msgid "When maximizing..." msgstr "Lors de l'agrandissement..." #: ../../WPrefs.app/WindowHandling.c:366 msgid "...do not cover icons" msgstr "ne pas couvrir les icônes" #: ../../WPrefs.app/WindowHandling.c:372 msgid "...do not cover dock" msgstr "ne pas couvrir le Dock" #: ../../WPrefs.app/WindowHandling.c:381 msgid "Edge Resistance" msgstr "Résistance des bordures" #: ../../WPrefs.app/WindowHandling.c:383 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "Les fenêtres résistent aux déplacements quand elles\n" "sont proches des autres fenêtres ou des bordures\n" "de l'écran, c-à-d. quand elles sont en deçà de la\n" "limite définie ici." #: ../../WPrefs.app/WindowHandling.c:402 msgid "Resist" msgstr "Résister" #: ../../WPrefs.app/WindowHandling.c:407 msgid "Attract" msgstr "Attirer" #: ../../WPrefs.app/WindowHandling.c:423 msgid "" "Open dialogs in same workspace\n" "as their owners" msgstr "" "Ouvrir les boîtes de dialogue sur le\n" "même bureau que leurs propriétaires." #: ../../WPrefs.app/WindowHandling.c:450 msgid "Window Handling Preferences" msgstr "Préférences pour la gestion des fenêtres" #: ../../WPrefs.app/WindowHandling.c:452 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "Options de manipulation des fenêtres : \n" "placement initial, résistance des bordures,\n" "déplacement opaque etc." #: ../../WPrefs.app/Workspace.c:176 msgid "Workspace Navigation" msgstr "Navigation entre bureaux" #: ../../WPrefs.app/Workspace.c:183 msgid "" "wrap to the first workspace after the\n" "last workspace." msgstr "Revenir au premier bureau après le dernier." #: ../../WPrefs.app/Workspace.c:205 msgid "switch workspaces while dragging windows." msgstr "Déplacer les fenêtres d'un bureau à l'autre." #: ../../WPrefs.app/Workspace.c:227 msgid "automatically create new workspaces." msgstr "Créer automatiquement d'autres bureaux." #: ../../WPrefs.app/Workspace.c:250 msgid "" "Position of workspace\n" "name display" msgstr "" "Position pour l'affichage\n" "du nom du bureau" #: ../../WPrefs.app/Workspace.c:269 msgid "Disable" msgstr "Désactivé" #: ../../WPrefs.app/Workspace.c:271 msgid "Top" msgstr "Haut" #: ../../WPrefs.app/Workspace.c:272 msgid "Bottom" msgstr "Bas" #: ../../WPrefs.app/Workspace.c:273 msgid "Top/Left" msgstr "En haut à gauche" #: ../../WPrefs.app/Workspace.c:274 msgid "Top/Right" msgstr "En haut à droite" #: ../../WPrefs.app/Workspace.c:275 msgid "Bottom/Left" msgstr "En bas à gauche" #: ../../WPrefs.app/Workspace.c:276 msgid "Bottom/Right" msgstr "En bas à droite" #: ../../WPrefs.app/Workspace.c:284 msgid "Dock/Clip" msgstr "Dock/Trombone" #: ../../WPrefs.app/Workspace.c:303 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "Activation du Dock (la barre d'icônes\n" "verticale sur le côté de l'écran)." #: ../../WPrefs.app/Workspace.c:324 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "Activation du Trombone (le bidule avec\n" "un trombone dessus)." #: ../../WPrefs.app/Workspace.c:364 msgid "Workspace Preferences" msgstr "Préférences pour les bureaux" #: ../../WPrefs.app/Workspace.c:366 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "Options pour la navigation entre bureaux. Vous\n" "pouvez également activer ou désactiver le Dock\n" "et le Trombone ici." #: ../../WPrefs.app/imagebrowser.c:95 msgid "View" msgstr "Aperçu" #: ../../WPrefs.app/main.c:59 #, c-format msgid "usage: %s [options]\n" msgstr "usage : %s [options]\n" #: ../../WPrefs.app/main.c:60 msgid "options:" msgstr "options : " #: ../../WPrefs.app/main.c:61 msgid " -display <display>\tdisplay to be used" msgstr " -display <affichage>\taffichage à utiliser" #: ../../WPrefs.app/main.c:62 msgid " --version\t\tprint version number and exit" msgstr " --version\t\taffiche le numéro de version" #: ../../WPrefs.app/main.c:63 msgid " --help\t\tprint this message and exit" msgstr " --help\t\taffiche ce message" #: ../../WPrefs.app/main.c:122 #, c-format msgid "too few arguments for %s" msgstr "trop peu d'arguments pour %s" #: ../../WPrefs.app/main.c:144 msgid "X server does not support locale" msgstr "Pas de gestion des langues dans le serveur X." #: ../../WPrefs.app/main.c:147 msgid "cannot set locale modifiers" msgstr "Impossible d'affecter les modificateurs de langue (locale modifiers)." #: ../../WPrefs.app/main.c:153 #, c-format msgid "could not open display %s" msgstr "Impossible d'ouvrir l'affichage %s" #: ../../WPrefs.app/main.c:161 msgid "could not initialize application" msgstr "Impossible d'initialiser l'application" #~ msgid "- Custom -" #~ msgstr "- Personnalisée -" �����������������WindowMaker-0.95.5/WPrefs.app/po/pt.po��������������������������������������������������������������0000644�0001750�0001750�00000160344�12214432632�014357� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # Mensagens do WPrefs.app traduzidas p/ Português # # Update History: # Alfredo K. Kojima # Eliphas Levy Theodoro <eliphas@conectiva.com.br> # msgid "" msgstr "" "Project-Id-Version: 0.62.1\n" "POT-Creation-Date: 2000-06-06 14:38-0300\n" "PO-Revision-Date: 2000-01-04 18:25-0300\n" "Last-Translator: Eliphas Levy Theodoro <eliphas@conectiva.com.br>\n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Date: 1998-08-24 03:51:26-0300\n" "From: Eliphas Levy Theodoro <eliphas@conectiva.com.br>\n" "Xgettext-Options: --default-domain=WPrefs --add-comments --keyword=_\n" "Files: ../../WPrefs/Configurations.c ../../WPrefs/Expert.c " "../../WPrefs/Focus.c ../../WPrefs/KeyboardSettings.c " "../../WPrefs/KeyboardShortcuts.c ../../WPrefs/Menu.c ../../WPrefs/MenuGuru.c " "../../WPrefs/MenuPreferences.c ../../WPrefs/MouseSettings.c " "../../WPrefs/Paths.c ../../WPrefs/Preferences.c ../../WPrefs/Text.c " "../../WPrefs/TextureAndColor.c ../../WPrefs/WPrefs.c " "../../WPrefs/WindowHandling.c ../../WPrefs/Workspace.c ../../WPrefs/main.c " "../../WPrefs/xmodifier.c\n" #: ../../WPrefs.app/main.c:74 #, c-format msgid "usage: %s [options]\n" msgstr "uso: %s [opções]\n" #: ../../WPrefs.app/main.c:75 msgid "options:" msgstr "opções:" #: ../../WPrefs.app/main.c:76 msgid " -display <display>\tdisplay to be used" msgstr " -display <display>\tdisplay a ser usado" #: ../../WPrefs.app/main.c:77 msgid " --version\t\tprint version number and exit" msgstr " -version\t\tmostra a versão e sai" #: ../../WPrefs.app/main.c:78 msgid " --help\t\tprint this message and exit" msgstr " -version\t\tmostra a versão e sai" #: ../../WPrefs.app/main.c:137 #, c-format msgid "too few arguments for %s" msgstr "falta de argumentos para %s" #: ../../WPrefs.app/main.c:159 msgid "X server does not support locale" msgstr "Servidor X não suporta locales" #: ../../WPrefs.app/main.c:162 msgid "cannot set locale modifiers" msgstr "Impossível configurar modificadores de locale" #: ../../WPrefs.app/main.c:168 #, c-format msgid "could not open display %s" msgstr "display %s não pôde ser aberto" #: ../../WPrefs.app/main.c:176 msgid "could not initialize application" msgstr "impossível inicializar aplicação" #: ../../WPrefs.app/WPrefs.c:259 msgid "Window Maker Preferences" msgstr "Preferências do WindowMaker" #: ../../WPrefs.app/WPrefs.c:283 msgid "Revert Page" msgstr "Reverter Página" #: ../../WPrefs.app/WPrefs.c:289 msgid "Revert All" msgstr "Reverter Tudo" #: ../../WPrefs.app/WPrefs.c:295 msgid "Save" msgstr "Salvar" #: ../../WPrefs.app/Appearance.c:2245 ../../WPrefs.app/WPrefs.c:301 msgid "Close" msgstr "Fechar" #: ../../WPrefs.app/WPrefs.c:308 msgid "Balloon Help" msgstr "Ajuda em balões" #: ../../WPrefs.app/WPrefs.c:333 msgid "Window Maker Preferences Utility" msgstr "Preferências do WindowMaker" #: ../../WPrefs.app/WPrefs.c:340 #, c-format msgid "Version %s for Window Maker %s or newer" msgstr "Versão %s para WindowMaker %s ou superior" #: ../../WPrefs.app/WPrefs.c:348 msgid "Starting..." msgstr "Iniciando..." #: ../../WPrefs.app/WPrefs.c:354 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg and Largo\n" "More Programming: James Thompson" msgstr "" "Programação/Projeto: Alfredo K. Kojima\n" "Arte: Marco van Hylckama Vlieg e Largo\n" "Mais programação: James Thompson" #: ../../WPrefs.app/WPrefs.c:442 #, c-format msgid "could not locate image file %s\n" msgstr "arquivo de imagem %s não encontrado\n" #: ../../WPrefs.app/Appearance.c:1912 ../../WPrefs.app/Configurations.c:242 #: ../../WPrefs.app/Configurations.c:254 ../../WPrefs.app/Focus.c:316 #: ../../WPrefs.app/Focus.c:327 ../../WPrefs.app/MenuPreferences.c:137 #: ../../WPrefs.app/MenuPreferences.c:148 #: ../../WPrefs.app/MenuPreferences.c:176 #: ../../WPrefs.app/MenuPreferences.c:191 ../../WPrefs.app/MouseSettings.c:561 #: ../../WPrefs.app/MouseSettings.c:572 ../../WPrefs.app/WPrefs.c:545 #: ../../WPrefs.app/WPrefs.c:570 #, c-format msgid "could not load icon file %s" msgstr "arquivo de ícone %s não pôde ser carregado" #: ../../WPrefs.app/WPrefs.c:657 #, c-format msgid "could not load image file %s:%s" msgstr "arquivo de imagem %s não pôde ser carregado:%s" #: ../../WPrefs.app/WPrefs.c:676 msgid "Loading Window Maker configuration files..." msgstr "Carregando arquivos de configuração do WindowMaker..." #: ../../WPrefs.app/WPrefs.c:680 msgid "Initializing configuration panels..." msgstr "Inicializando painéis de configuração..." #: ../../WPrefs.app/WPrefs.c:713 msgid "" "WPrefs is free software and is distributed WITHOUT ANY\n" "WARRANTY under the terms of the GNU General Public License." msgstr "" "O WPrefs é software livre e distribuído SEM NENHUMA\n" "GARANTIA pelos termos da GNU General Public License." #: ../../WPrefs.app/WPrefs.c:742 ../../WPrefs.app/WPrefs.c:812 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Domínio WindowMaker (%s) corrompido!" #: ../../WPrefs.app/Font.c:330 ../../WPrefs.app/Menu.c:1401 #: ../../WPrefs.app/MouseSettings.c:152 ../../WPrefs.app/MouseSettings.c:172 #: ../../WPrefs.app/TexturePanel.c:608 ../../WPrefs.app/TexturePanel.c:686 #: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:743 #: ../../WPrefs.app/WPrefs.c:748 ../../WPrefs.app/WPrefs.c:762 #: ../../WPrefs.app/WPrefs.c:772 ../../WPrefs.app/WPrefs.c:782 #: ../../WPrefs.app/WPrefs.c:813 ../../WPrefs.app/WPrefs.c:818 msgid "Error" msgstr "Erro" #: ../../WPrefs.app/Font.c:330 ../../WPrefs.app/Menu.c:1401 #: ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126 #: ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:154 #: ../../WPrefs.app/MouseSettings.c:174 ../../WPrefs.app/TexturePanel.c:609 #: ../../WPrefs.app/TexturePanel.c:688 ../../WPrefs.app/TexturePanel.c:1522 #: ../../WPrefs.app/Themes.c:98 ../../WPrefs.app/WPrefs.c:743 #: ../../WPrefs.app/WPrefs.c:748 ../../WPrefs.app/WPrefs.c:764 #: ../../WPrefs.app/WPrefs.c:776 ../../WPrefs.app/WPrefs.c:782 #: ../../WPrefs.app/WPrefs.c:789 ../../WPrefs.app/WPrefs.c:813 #: ../../WPrefs.app/WPrefs.c:818 msgid "OK" msgstr "OK" #: ../../WPrefs.app/WPrefs.c:746 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "Domínio WindowMaker (%s) não pôde ser carregado do BD de defaults." #: ../../WPrefs.app/WPrefs.c:759 msgid "could not extract version information from Window Maker" msgstr "erro extraindo versão do WindowMaker" #: ../../WPrefs.app/WPrefs.c:760 msgid "Make sure wmaker is in your search path." msgstr "Certifique-se que o WindowMaker está no seu PATH." #: ../../WPrefs.app/WPrefs.c:763 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." msgstr "" "Erro extraindo versão do WindowMaker. Certifique-se que ele está instalado " "corretamente e está em seu PATH." #: ../../WPrefs.app/WPrefs.c:773 msgid "" "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." msgstr "" "Erro extraindo versão do WindowMaker. Certifique-se que ele está instalado " "corretamente e está em seu PATH." #: ../../WPrefs.app/WPrefs.c:780 #, c-format msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "WPrefs só suporta WindowMaker 0.18.0 or mais recente.\n" "A versão instalada é %i.%i.%i\n" #: ../../WPrefs.app/WPrefs.c:787 #, c-format msgid "" "Window Maker %i.%i.%i, which is installed in your system, is not fully " "supported by this version of WPrefs." msgstr "" "O WindowMaker %i.%i.%i, que está instalado em seu sistema, não é totalmente " "suportado por esta versão do WPrefs." #: ../../WPrefs.app/WPrefs.c:789 msgid "Warning" msgstr "Aviso" #: ../../WPrefs.app/WPrefs.c:794 msgid "could not run \"wmaker --global_defaults_path\"." msgstr "não foi possível executar \"wmaker --global_defaults_path\"." #: ../../WPrefs.app/WPrefs.c:816 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "Domínio WindowMaker global (%s) não pôde ser carregado." #: ../../WPrefs.app/WPrefs.c:1065 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "valor de velocidade inválido para opção %s\n" "Usando padrão Medium" #: ../../WPrefs.app/Appearance.c:1104 msgid "Select File" msgstr "Selecionar Arquivo" #: ../../WPrefs.app/Appearance.c:1506 msgid "Focused Window" msgstr "Janela Ativa" #: ../../WPrefs.app/Appearance.c:1510 msgid "Unfocused Window" msgstr "Janela Inativa" #: ../../WPrefs.app/Appearance.c:1514 msgid "Owner of Focused Window" msgstr "Dono da janela ativa" #: ../../WPrefs.app/Appearance.c:1518 ../../WPrefs.app/Appearance.c:1836 msgid "Menu Title" msgstr "Título de Menu" #: ../../WPrefs.app/Appearance.c:1522 ../../WPrefs.app/Appearance.c:1524 msgid "Normal Item" msgstr "Ãtem Normal" #: ../../WPrefs.app/Appearance.c:1528 msgid "Disabled Item" msgstr "Ãtem Desabilitado" #: ../../WPrefs.app/Appearance.c:1537 msgid "Highlighted" msgstr "Selecionado" #: ../../WPrefs.app/Appearance.c:1729 msgid "Texture" msgstr "Textura" #: ../../WPrefs.app/Appearance.c:1737 msgid "Titlebar of Focused Window" msgstr "Barra de Título da Janela Ativa" #: ../../WPrefs.app/Appearance.c:1738 msgid "Titlebar of Unfocused Windows" msgstr "Barra de Título das Janelas Inativas" #: ../../WPrefs.app/Appearance.c:1739 msgid "Titlebar of Focused Window's Owner" msgstr "Barra de Título do dono da Janela Ativa" #: ../../WPrefs.app/Appearance.c:1740 msgid "Window Resizebar" msgstr "Barra de tamanho" #: ../../WPrefs.app/Appearance.c:1741 msgid "Titlebar of Menus" msgstr "Barra de Título dos Menus" #: ../../WPrefs.app/Appearance.c:1742 msgid "Menu Items" msgstr "Itens de Menu" #: ../../WPrefs.app/Appearance.c:1743 msgid "Icon Background" msgstr "Fundo de Ãcone" #: ../../WPrefs.app/Appearance.c:1758 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "Dê um duplo clique na textura que você deseja\n" "usar para o item selecionado." #: ../../WPrefs.app/Appearance.c:1772 msgid "New" msgstr "Novo" #: ../../WPrefs.app/Appearance.c:1776 msgid "Create a new texture." msgstr "Cria uma nova textura." #: ../../WPrefs.app/Appearance.c:1784 msgid "Extract..." msgstr "Extrair..." #: ../../WPrefs.app/Appearance.c:1788 msgid "Extract texture(s) from a theme or a style file." msgstr "Extrai texturas de um tema ou arquivo de estilos." #: ../../WPrefs.app/Appearance.c:1798 msgid "Edit" msgstr "Editar" #: ../../WPrefs.app/Appearance.c:1801 msgid "Edit the highlighted texture." msgstr "Edita a textura selecionada." #: ../../WPrefs.app/Appearance.c:1809 ../../WPrefs.app/TexturePanel.c:1310 msgid "Delete" msgstr "Apagar" #: ../../WPrefs.app/Appearance.c:1813 msgid "Delete the highlighted texture." msgstr "Apaga a textura selecionada." #: ../../WPrefs.app/Appearance.c:1826 msgid "Color" msgstr "Cor" #: ../../WPrefs.app/Appearance.c:1833 msgid "Focused Window Title" msgstr "Título da Janela Ativa" #: ../../WPrefs.app/Appearance.c:1834 msgid "Unfocused Window Title" msgstr "Título da Janela Inativa" #: ../../WPrefs.app/Appearance.c:1835 msgid "Owner of Focused Window Title" msgstr "Título do dono da Janela Ativa" #: ../../WPrefs.app/Appearance.c:1837 msgid "Menu Item Text" msgstr "Texto do Item de Menu" #: ../../WPrefs.app/Appearance.c:1838 msgid "Disabled Menu Item Text" msgstr "Texto de item desabilitado" #: ../../WPrefs.app/Appearance.c:1839 msgid "Menu Highlight Color" msgstr "Cor de seleção do Menu" #: ../../WPrefs.app/Appearance.c:1840 msgid "Highlighted Menu Text Color" msgstr "Cor de Texto selecionado" #: ../../WPrefs.app/Appearance.c:1877 msgid "Options" msgstr "Opções:" #: ../../WPrefs.app/Appearance.c:1884 msgid "Menu Style" msgstr "Estilo do Menu" #: ../../WPrefs.app/Appearance.c:1926 msgid "Title Alignment" msgstr "Alinhamento do Título" #: ../../WPrefs.app/Appearance.c:1933 msgid "Left" msgstr "Esquerdo" #: ../../WPrefs.app/Appearance.c:1936 ../../WPrefs.app/TexturePanel.c:1511 #: ../../WPrefs.app/Workspace.c:271 msgid "Center" msgstr "Centro" #: ../../WPrefs.app/Appearance.c:1939 msgid "Right" msgstr "Direita" #: ../../WPrefs.app/Appearance.c:2167 msgid "Appearance Preferences" msgstr "Preferências de Aparência" #: ../../WPrefs.app/Appearance.c:2169 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "Configuração da textura de fundo para as janelas,\n" "menus e ícones." #: ../../WPrefs.app/Appearance.c:2214 msgid "Extract Texture" msgstr "Extrair Textura" #: ../../WPrefs.app/Appearance.c:2234 msgid "Textures" msgstr "Texturas" #: ../../WPrefs.app/Appearance.c:2250 msgid "Extract" msgstr "Extrair" #: ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 #: ../../WPrefs.app/MouseSettings.c:491 ../../WPrefs.app/WindowHandling.c:331 #: ../../WPrefs.app/WindowHandling.c:343 ../../WPrefs.app/Workspace.c:90 #: ../../WPrefs.app/Workspace.c:101 #, c-format msgid "could not load icon %s" msgstr "ícone %s não pôde ser carregado" #: ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:109 #, c-format msgid "could not process icon %s: %s" msgstr "ícone %s não pôde ser processado: %s" #: ../../WPrefs.app/Configurations.c:189 ../../WPrefs.app/Workspace.c:164 #, c-format msgid "could not load image file %s" msgstr "arquivo de imagem %s não pôde ser carregado" #: ../../WPrefs.app/Configurations.c:203 msgid "Icon Slide Speed" msgstr "Velocidade dos Ãcones " #: ../../WPrefs.app/Configurations.c:209 msgid "Shade Animation Speed" msgstr "Velocidade da Animação do Shade" #: ../../WPrefs.app/Configurations.c:271 msgid "Smooth Scaling" msgstr "Escalonamento suave" #: ../../WPrefs.app/Configurations.c:272 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "Suaviza imagens escalonadas, neutralizando\n" "o efeito `pixelização'. Isto irá aumentar o\n" "tempo de carga das imagens de fundo consideravelmente." #: ../../WPrefs.app/Configurations.c:313 msgid "Titlebar Style" msgstr "Estilo da Barra de Título" #: ../../WPrefs.app/Configurations.c:351 msgid "Animations and Sound" msgstr "Som e Animações" #: ../../WPrefs.app/Configurations.c:357 msgid "Animations" msgstr "Animações" #: ../../WPrefs.app/Configurations.c:368 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "Liga/Desliga animações como miniaturização,\n" "maximização, etc." #: ../../WPrefs.app/Configurations.c:376 msgid "Superfluous" msgstr "Enfeite" #: ../../WPrefs.app/Configurations.c:387 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to the another side\n" "and the explosion animation for undocked icons." msgstr "" "Liga/Desliga características `supérfluas' e\n" "animações. Isto inclui o `ghosting' do dock\n" "quando está sendo movido para o outro lado\n" "e a explosão para ícones retirados do dock." #: ../../WPrefs.app/Configurations.c:397 msgid "Sounds" msgstr "Sons" #: ../../WPrefs.app/Configurations.c:408 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://www.frontiernet.net/~southgat/wmsound" msgstr "" "Liga/desliga suporte para efeitos de som em ações\n" "como sombreamento e fechar janelas.\n" "Você irá precisar de um módulo distribuído separadamente\n" "para isso. Você pode pegá-lo em:\n" "http://www.frontiernet.net/~southgat/wmsound" #: ../../WPrefs.app/Configurations.c:419 msgid "Note: sound requires a module distributed separately" msgstr "" "Nota: é necessário um módulo distribuído separadamante para se ter sons" #: ../../WPrefs.app/Configurations.c:429 msgid "Dithering colormap for 8bpp" msgstr "No.de cores para dithering em 8bpp" #: ../../WPrefs.app/Configurations.c:431 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "Número de cores que o Window Maker reservará\n" "em displays que suportam somente 8bpp (PseudoColor)." #: ../../WPrefs.app/Configurations.c:438 msgid "Disable dithering in any visual/depth" msgstr "Desabilitar dithering" #: ../../WPrefs.app/Configurations.c:459 msgid "More colors for applications" msgstr "Mais cores para applicações" #: ../../WPrefs.app/Configurations.c:466 msgid "More colors for WindowMaker" msgstr "Mais cores para o WindowMaker" #: ../../WPrefs.app/Configurations.c:521 msgid "Other Configurations" msgstr "Outras Configurações" #: ../../WPrefs.app/Configurations.c:523 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker in 8bit displays." msgstr "" "Velocidade das animações, estilos de barras de título,\n" "várias opções e número de cores para reservar\n" "para o WindowMaker em displays 8 bits." #: ../../WPrefs.app/Expert.c:75 msgid "" "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." msgstr "Desabilita minijanelas (ícones para janelas minimizadas)." #: ../../WPrefs.app/Expert.c:76 msgid "Do not set non-WindowMaker specific parameters (do not use xset)" msgstr "" "Não configurar parâmetros não pertencentes ao WindowMaker (não usar xset)" #: ../../WPrefs.app/Expert.c:77 msgid "Automatically save session when exiting WindowMaker" msgstr "Salvar sessão automaticamente ao sair do WindowMaker" #: ../../WPrefs.app/Expert.c:78 msgid "Use SaveUnder in window frames, icons, menus and other objects" msgstr "Usar SaveUnder nos ícones, menus e outros objetos" #: ../../WPrefs.app/Expert.c:79 msgid "Disable cycling color highlighting of icons." msgstr "Desabilitar ciclagem de cores nos ícones." #: ../../WPrefs.app/Expert.c:80 msgid "Disable confirmation panel for the Kill command." msgstr "Desabilitar confirmação para o comando Terminar." #: ../../WPrefs.app/Expert.c:113 msgid "Expert User Preferences" msgstr "Preferências para Usuários Avançados" #: ../../WPrefs.app/Expert.c:115 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "Opções para pessoas que sabem o que estão fazendo...\n" "Há também outras opções diversas." #: ../../WPrefs.app/Focus.c:83 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "valor %s inválido para opção FocusMode. Usando default Manual" #: ../../WPrefs.app/Focus.c:98 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "valor %s inválido para opção ColormapMode. Usando default Auto" #: ../../WPrefs.app/Focus.c:196 msgid "" "Click on the window to set\n" "keyboard input focus." msgstr "" "Clicar na janelar para mudar\n" "o foco do teclado." #: ../../WPrefs.app/Focus.c:200 msgid "" "Set keyboard input focus to\n" "the window under the mouse pointer,\n" "including the root window." msgstr "" "Mudar foco do teclado para a\n" "janela sob o cursor do mouse,\n" "inclusive a janela raiz." #: ../../WPrefs.app/Focus.c:205 msgid "" "Set keyboard input focus to\n" "the window under the mouse pointer,\n" "except the root window." msgstr "" "Mudar foco do teclado para a\n" "janela sob o cursor do mouse,\n" "exceto a janela raiz." #: ../../WPrefs.app/Focus.c:249 msgid "Input Focus Mode" msgstr "Modo de Foco do Teclado" #: ../../WPrefs.app/Focus.c:254 msgid "Click window to focus" msgstr "Clicar na janela para focar" #: ../../WPrefs.app/Focus.c:255 msgid "Focus follows mouse" msgstr "\"Focus follows mouse\"" #: ../../WPrefs.app/Focus.c:256 msgid "\"Sloppy\" focus" msgstr "\"Sloppy focus\"" #: ../../WPrefs.app/Focus.c:271 msgid "Install colormap in the window..." msgstr "Instalar colormap na janela..." #: ../../WPrefs.app/Focus.c:276 msgid "...that has the input focus." msgstr "...que tem o foco do teclado." #: ../../WPrefs.app/Focus.c:281 msgid "...that is under the mouse pointer." msgstr "...que está sob o cursor do mouse." #: ../../WPrefs.app/Focus.c:290 msgid "Automatic Window Raise Delay" msgstr "Levantar Janela Depois de..." #: ../../WPrefs.app/Focus.c:347 msgid "msec" msgstr "mseg" #: ../../WPrefs.app/Focus.c:364 msgid "Do not let applications receive the click used to focus windows." msgstr "Não deixar aplicação receber o clique usado para focar janelas." #: ../../WPrefs.app/Focus.c:370 msgid "Automatically focus new windows." msgstr "Focar janelas novas automaticamente." #: ../../WPrefs.app/Focus.c:391 msgid "Window Focus Preferences" msgstr "Preferências sobre Foco de Janela" #: ../../WPrefs.app/Focus.c:393 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "Política de mudança de foco de teclado, mapa de cores\n" "para displays de 8bpp e outras opções relacionadas." #: ../../WPrefs.app/Font.c:277 msgid "Could not locate font information file WPrefs.app/font.data" msgstr "" "Não foi possível encontrar arquivo de informação de fonte " "WPrefs.app/font.data" #: ../../WPrefs.app/Font.c:283 msgid "Could not read font information file WPrefs.app/font.data" msgstr "" "Não foi possível ler arquivo de informação de fonte WPrefs.app/font.data" #: ../../WPrefs.app/Font.c:294 msgid "" "Invalid data in font information file WPrefs.app/font.data.\n" "Encodings data not found." msgstr "" "Dados inválidos no arquivo de informação de fonte WPrefs.app/font.data.\n" "Dados de codificação não encontrados." #: ../../WPrefs.app/Font.c:299 msgid "- Custom -" msgstr "- Customizar -" #: ../../WPrefs.app/Font.c:377 msgid "Default Font Sets" msgstr "Estilos de Fonte Padrão" #: ../../WPrefs.app/Font.c:390 msgid "Font Set" msgstr "Estilo de Fonte" #: ../../WPrefs.app/Font.c:419 msgid "Add..." msgstr "Adicionar..." #: ../../WPrefs.app/Font.c:424 ../../WPrefs.app/Font.c:439 msgid "Change..." msgstr "Mudar..." #: ../../WPrefs.app/Font.c:429 ../../WPrefs.app/Paths.c:288 #: ../../WPrefs.app/Paths.c:319 msgid "Remove" msgstr "Remover" #: ../../WPrefs.app/Font.c:478 msgid "Font Preferences" msgstr "Preferências de Fonte" #: ../../WPrefs.app/Font.c:479 msgid "Font Configurations for Windows, Menus etc" msgstr "Configuração das fontes para as Janelas, Menus etc" #: ../../WPrefs.app/Icons.c:182 msgid "Icon Positioning" msgstr "Posicionamento de ícones" #: ../../WPrefs.app/Icons.c:229 msgid "Iconification Animation" msgstr "Animação de ícones" #: ../../WPrefs.app/Icons.c:240 msgid "Shrinking/Zooming" msgstr "Zoom" #: ../../WPrefs.app/Icons.c:241 msgid "Spinning/Twisting" msgstr "Girar" #: ../../WPrefs.app/Icons.c:242 msgid "3D-flipping" msgstr "Giro 3D" #: ../../WPrefs.app/Icons.c:243 msgid "None" msgstr "Nenhum" #: ../../WPrefs.app/Icons.c:256 msgid "Auto-arrange icons" msgstr "Auto-alinhar ícones" #: ../../WPrefs.app/Icons.c:258 msgid "Keep icons and miniwindows arranged all the time." msgstr "Mantém ícones e minijanelas alinhados todo o tempo." #: ../../WPrefs.app/Icons.c:264 msgid "Omnipresent miniwindows" msgstr "Minijanelas onipresentes" #: ../../WPrefs.app/Icons.c:266 msgid "Make miniwindows be present in all workspaces." msgstr "Faça as minijanelas presentes em todas as áreas de trabalho." #: ../../WPrefs.app/Icons.c:275 msgid "Icon Size" msgstr "Tamanho do Ãcone" #: ../../WPrefs.app/Icons.c:277 msgid "The size of the dock/application icon and miniwindows" msgstr "O tamanho do dock, ícones de aplicação e minijanelas" #: ../../WPrefs.app/Icons.c:347 msgid "Icon Preferences" msgstr "Preferências de ícones" #: ../../WPrefs.app/Icons.c:349 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "Opções de manuseio de ícones e minijanelas. Ãrea de\n" "posicionamento, tamanho dos ícones, estilo de animação." #: ../../WPrefs.app/KeyboardSettings.c:74 msgid "Initial Key Repeat" msgstr "Repetição de teclas" #: ../../WPrefs.app/KeyboardSettings.c:115 msgid "Key Repeat Rate" msgstr "Taxa de repetição do teclado" #: ../../WPrefs.app/KeyboardSettings.c:155 msgid "Type here to test" msgstr "Tecle aqui para testar" #: ../../WPrefs.app/KeyboardSettings.c:174 msgid "Keyboard Preferences" msgstr "Preferências de teclado" #: ../../WPrefs.app/KeyboardSettings.c:176 msgid "Not done" msgstr "Não pronto" #: ../../WPrefs.app/KeyboardShortcuts.c:185 ../../WPrefs.app/Menu.c:1027 #: ../../WPrefs.app/MenuGuru.c:263 ../../WPrefs.app/TexturePanel.c:1528 msgid "Cancel" msgstr "Cancelar" #: ../../WPrefs.app/KeyboardShortcuts.c:186 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "" "Tecle a(s) tecla(s) de atalho desejada(s) ou clique Cancelar para parar a " "captura." #: ../../WPrefs.app/KeyboardShortcuts.c:206 #: ../../WPrefs.app/KeyboardShortcuts.c:454 ../../WPrefs.app/Menu.c:1039 #: ../../WPrefs.app/Menu.c:1262 msgid "Capture" msgstr "Capturar" #: ../../WPrefs.app/KeyboardShortcuts.c:207 #: ../../WPrefs.app/KeyboardShortcuts.c:461 msgid "Click Capture to interactively define the shortcut key." msgstr "Clique Capturar para definir a(s) tecla(s) de atalho interativamente." #: ../../WPrefs.app/KeyboardShortcuts.c:361 msgid "Actions" msgstr "Ações" #: ../../WPrefs.app/KeyboardShortcuts.c:377 msgid "Open applications menu" msgstr "Abrir menu de aplicações" #: ../../WPrefs.app/KeyboardShortcuts.c:378 msgid "Open window list menu" msgstr "Abrir lista de janelas" #: ../../WPrefs.app/KeyboardShortcuts.c:379 msgid "Open window commands menu" msgstr "Abrir menu de comandos para janelas" #: ../../WPrefs.app/KeyboardShortcuts.c:380 msgid "Hide active application" msgstr "Esconder (hide) aplicação ativa" #: ../../WPrefs.app/KeyboardShortcuts.c:381 msgid "Miniaturize active window" msgstr "Miniaturizar janela ativa" #: ../../WPrefs.app/KeyboardShortcuts.c:382 msgid "Close active window" msgstr "Fechar janela ativa" #: ../../WPrefs.app/KeyboardShortcuts.c:383 msgid "Maximize active window" msgstr "Maximizar janela ativa" #: ../../WPrefs.app/KeyboardShortcuts.c:384 msgid "Maximize active window vertically" msgstr "Maximizar janela ativa verticalmente" #: ../../WPrefs.app/KeyboardShortcuts.c:385 msgid "Raise active window" msgstr "Levantar janela ativa" #: ../../WPrefs.app/KeyboardShortcuts.c:386 msgid "Lower active window" msgstr "Rebaixar janela ativa" #: ../../WPrefs.app/KeyboardShortcuts.c:387 msgid "Raise/Lower window under mouse pointer" msgstr "Levantar/Rebaixar janela sob cursor" #: ../../WPrefs.app/KeyboardShortcuts.c:388 msgid "Shade active window" msgstr "Shadear janela ativa" #: ../../WPrefs.app/KeyboardShortcuts.c:389 msgid "Move/Resize active window" msgstr "Mover/Redimensionar janela ativa" #: ../../WPrefs.app/KeyboardShortcuts.c:390 msgid "Select active window" msgstr "Selectionar janela ativa" #: ../../WPrefs.app/KeyboardShortcuts.c:391 msgid "Focus next window" msgstr "Focar/ativar próxima janela" #: ../../WPrefs.app/KeyboardShortcuts.c:392 msgid "Focus previous window" msgstr "Focar/ativar janela anterior" #: ../../WPrefs.app/KeyboardShortcuts.c:393 msgid "Switch to next workspace" msgstr "Ir para próxima área de trabalho" #: ../../WPrefs.app/KeyboardShortcuts.c:394 msgid "Switch to previous workspace" msgstr "Ir para área de trabalho anterior" #: ../../WPrefs.app/KeyboardShortcuts.c:395 msgid "Switch to next ten workspaces" msgstr "Ir para as próximas 10 áreas de trabalho" #: ../../WPrefs.app/KeyboardShortcuts.c:396 msgid "Switch to previous ten workspaces" msgstr "Ir para as 10 áreas de trabalho anteriores" #: ../../WPrefs.app/KeyboardShortcuts.c:397 msgid "Switch to workspace 1" msgstr "Ir para área de trabalho 1" #: ../../WPrefs.app/KeyboardShortcuts.c:398 msgid "Switch to workspace 2" msgstr "Ir para área de trabalho 2" #: ../../WPrefs.app/KeyboardShortcuts.c:399 msgid "Switch to workspace 3" msgstr "Ir para área de trabalho 3" #: ../../WPrefs.app/KeyboardShortcuts.c:400 msgid "Switch to workspace 4" msgstr "Ir para área de trabalho 4" #: ../../WPrefs.app/KeyboardShortcuts.c:401 msgid "Switch to workspace 5" msgstr "Ir para área de trabalho 5" #: ../../WPrefs.app/KeyboardShortcuts.c:402 msgid "Switch to workspace 6" msgstr "Ir para área de trabalho 6" #: ../../WPrefs.app/KeyboardShortcuts.c:403 msgid "Switch to workspace 7" msgstr "Ir para área de trabalho 7" #: ../../WPrefs.app/KeyboardShortcuts.c:404 msgid "Switch to workspace 8" msgstr "Ir para área de trabalho 8" #: ../../WPrefs.app/KeyboardShortcuts.c:405 msgid "Switch to workspace 9" msgstr "Ir para área de trabalho 9" #: ../../WPrefs.app/KeyboardShortcuts.c:406 msgid "Switch to workspace 10" msgstr "Ir para área de trabalho 10" #: ../../WPrefs.app/KeyboardShortcuts.c:407 msgid "Shortcut for window 1" msgstr "Atalho para janela 1" #: ../../WPrefs.app/KeyboardShortcuts.c:408 msgid "Shortcut for window 2" msgstr "Atalho para janela 2" #: ../../WPrefs.app/KeyboardShortcuts.c:409 msgid "Shortcut for window 3" msgstr "Atalho para janela 3" #: ../../WPrefs.app/KeyboardShortcuts.c:410 msgid "Shortcut for window 4" msgstr "Atalho para janela 4" #: ../../WPrefs.app/KeyboardShortcuts.c:412 msgid "Shortcut for window 5" msgstr "Atalho para janela 5" #: ../../WPrefs.app/KeyboardShortcuts.c:413 msgid "Shortcut for window 6" msgstr "Atalho para janela 6" #: ../../WPrefs.app/KeyboardShortcuts.c:414 msgid "Shortcut for window 7" msgstr "Atalho para janela 7" #: ../../WPrefs.app/KeyboardShortcuts.c:415 msgid "Shortcut for window 8" msgstr "Atalho para janela 8" #: ../../WPrefs.app/KeyboardShortcuts.c:416 msgid "Shortcut for window 9" msgstr "Atalho para janela 9" #: ../../WPrefs.app/KeyboardShortcuts.c:417 msgid "Shortcut for window 10" msgstr "Atalho para janela 10" #: ../../WPrefs.app/KeyboardShortcuts.c:419 msgid "Raise Clip" msgstr "Levantar Clip" #: ../../WPrefs.app/KeyboardShortcuts.c:420 msgid "Lower Clip" msgstr "Rebaixar Clip" #: ../../WPrefs.app/KeyboardShortcuts.c:421 msgid "Raise/Lower Clip" msgstr "Levantar/Rebaixar Clip" #: ../../WPrefs.app/KeyboardShortcuts.c:423 msgid "Toggle keyboard language" msgstr "Mudar mapa de teclado" #: ../../WPrefs.app/KeyboardShortcuts.c:437 ../../WPrefs.app/Menu.c:1251 msgid "Shortcut" msgstr "Tecla de Atalho" #: ../../WPrefs.app/KeyboardShortcuts.c:448 msgid "Clear" msgstr "Limpar" #: ../../WPrefs.app/KeyboardShortcuts.c:509 msgid "Keyboard Shortcut Preferences" msgstr "Preferências de Teclas de Atalho" #: ../../WPrefs.app/KeyboardShortcuts.c:511 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "Muda as teclas de atalho para ações como mudança\n" "de áreas de trabalho e abrir menus." #: ../../WPrefs.app/Menu.c:422 msgid "Window Manager" msgstr "Gerenciador de Janelas" #: ../../WPrefs.app/Menu.c:424 msgid "Program to Open Files" msgstr "Abrir arquivos com programa" #: ../../WPrefs.app/Menu.c:426 msgid "Command to Execute" msgstr "Comando a executar" #: ../../WPrefs.app/Menu.c:428 ../../WPrefs.app/Menu.c:1238 msgid "Program to Run" msgstr "Programa a Executar" #: ../../WPrefs.app/Menu.c:477 ../../WPrefs.app/Menu.c:478 #, c-format msgid "New Command %i" msgstr "Comando %i" #: ../../WPrefs.app/Menu.c:485 msgid "New Submenu" msgstr "Submenu" #: ../../WPrefs.app/Menu.c:490 msgid "External Menu" msgstr "Menu Externo" #: ../../WPrefs.app/Menu.c:497 msgid "Workspaces" msgstr "Ãreas de Trabalho" #: ../../WPrefs.app/Menu.c:1119 ../../WPrefs.app/Menu.c:1134 msgid "Commands" msgstr "Comandos" #: ../../WPrefs.app/Menu.c:1120 ../../WPrefs.app/Menu.c:1135 msgid "Add Command" msgstr "Novo Comando" #: ../../WPrefs.app/Menu.c:1121 ../../WPrefs.app/Menu.c:1136 msgid "Add Submenu" msgstr "Novo Submenu" #: ../../WPrefs.app/Menu.c:1122 ../../WPrefs.app/Menu.c:1137 msgid "Add External Menu" msgstr "Menu Externo" #: ../../WPrefs.app/Menu.c:1123 ../../WPrefs.app/Menu.c:1138 msgid "Add Workspace Menu" msgstr "Menu de Ãreas de Trab." #: ../../WPrefs.app/Menu.c:1124 ../../WPrefs.app/Menu.c:1139 msgid "Remove Item" msgstr "Remover Item" #: ../../WPrefs.app/Menu.c:1125 ../../WPrefs.app/Menu.c:1140 msgid "Cut Item" msgstr "Cortar Item" #: ../../WPrefs.app/Menu.c:1126 ../../WPrefs.app/Menu.c:1141 msgid "Copy Item" msgstr "Copiar Item" #: ../../WPrefs.app/Menu.c:1127 ../../WPrefs.app/Menu.c:1142 msgid "Paste Item" msgstr "Colar Item" #: ../../WPrefs.app/Menu.c:1173 msgid "Label" msgstr "Título" #: ../../WPrefs.app/Menu.c:1186 msgid "Command" msgstr "Comando" #: ../../WPrefs.app/Menu.c:1191 msgid "Run Program" msgstr "Executar Programa" #: ../../WPrefs.app/Menu.c:1192 msgid "Execute Shell Command" msgstr "Executa um comando do shell" #: ../../WPrefs.app/Menu.c:1193 msgid "Arrange Icons" msgstr "Alinhar Ãcones" #: ../../WPrefs.app/Menu.c:1194 msgid "Hide Others" msgstr "Esconder (hide) Outros" #: ../../WPrefs.app/Menu.c:1195 msgid "Show All Windows" msgstr "Mostrar Todas as Janelas" #: ../../WPrefs.app/Menu.c:1196 msgid "Exit WindowMaker" msgstr "Sair do WindowMaker" #: ../../WPrefs.app/Menu.c:1197 msgid "Exit X Session" msgstr "Sair da Sessão do X" #: ../../WPrefs.app/Menu.c:1198 msgid "Start Window Manager" msgstr "Iniciar gerente de janelas" #: ../../WPrefs.app/Menu.c:1199 msgid "Restart WindowMaker" msgstr "Reiniciar WindowMaker" #: ../../WPrefs.app/Menu.c:1200 msgid "Save Session" msgstr "Salvar Sessão" #: ../../WPrefs.app/Menu.c:1201 msgid "Clear Session" msgstr "Limpar Sessão" #: ../../WPrefs.app/Menu.c:1202 msgid "Refresh Screen" msgstr "Refresh da Tela" #: ../../WPrefs.app/Menu.c:1203 msgid "Info Panel" msgstr "Janela de Informações" #: ../../WPrefs.app/Menu.c:1204 msgid "Legal Panel" msgstr "Janela de Inform.Legais" #: ../../WPrefs.app/Menu.c:1212 msgid "Open workspace menu" msgstr "Abrir menu de áreas de trabalho" #: ../../WPrefs.app/Menu.c:1219 msgid "No confirmation panel" msgstr "Sem janela de confirmação" #: ../../WPrefs.app/Menu.c:1225 msgid "Menu Path/Directory List" msgstr "Path do menu/Lista de dirs." #: ../../WPrefs.app/Menu.c:1270 msgid "Ask help to the Guru" msgstr "Pedir ajuda ao Guru" #. if there is a localized plmenu for the tongue put it's filename here #: ../../WPrefs.app/Menu.c:1382 ../../WPrefs.app/Menu.c:1389 #, c-format msgid "%s/Library/WindowMaker/plmenu" msgstr "%s/Library/WindowMaker/plmenu.pt" #: ../../WPrefs.app/Menu.c:1398 #, c-format msgid "Could not open default menu from '%s'" msgstr "Menu padrão %s não pôde ser aberto" #: ../../WPrefs.app/Menu.c:1508 msgid "Applications Menu Definition" msgstr "Definição do Menu de Aplicações" #: ../../WPrefs.app/Menu.c:1510 msgid "Edit the menu for launching applications." msgstr "Edita o menu para a execução de aplicações." #: ../../WPrefs.app/MenuPreferences.c:114 msgid "Menu Scrolling Speed" msgstr "Velocidade de Rolagem do Menu" #: ../../WPrefs.app/MenuPreferences.c:163 msgid "Submenu Alignment" msgstr "Alinhamento de Submenus" #: ../../WPrefs.app/MenuPreferences.c:207 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "Sempre abrir submenus dentro da tela, ao invés de rolar." #: ../../WPrefs.app/MenuPreferences.c:212 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "Rolar menus para dentro da tela quando o mouse estiver sobre eles." #: ../../WPrefs.app/MenuPreferences.c:232 msgid "Menu Preferences" msgstr "Preferências de Menu" #: ../../WPrefs.app/MenuPreferences.c:234 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "Opções de uso de menu. Velocidade de rolagem,\n" "alinhamento de submenus, etc." #: ../../WPrefs.app/MouseSettings.c:153 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "Valor de aceleração inválido. Deve ser um valor positivo real." #: ../../WPrefs.app/MouseSettings.c:173 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "" "Valor de distância inválida. Deve ser o número de pixels a percorrer antes " "de acelerar o mouse." #: ../../WPrefs.app/MouseSettings.c:269 ../../WPrefs.app/MouseSettings.c:283 #: ../../WPrefs.app/MouseSettings.c:297 #, c-format msgid "bad value %s for option %s" msgstr "valor %s não é válido para opção %s" #: ../../WPrefs.app/MouseSettings.c:358 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "" "tecla modificadora %s da opção ModifierKey não foi reconhecida. Usando " "default %s" #: ../../WPrefs.app/MouseSettings.c:383 msgid "could not retrieve keyboard modifier mapping" msgstr "o mapa de modificadores de teclado não pôde ser determinado" #: ../../WPrefs.app/MouseSettings.c:478 msgid "Mouse Speed" msgstr "Velocidade do Mouse" #: ../../WPrefs.app/MouseSettings.c:508 msgid "Acceler.:" msgstr "Aceler.:" #: ../../WPrefs.app/MouseSettings.c:521 msgid "Threshold:" msgstr "Distância:" #: ../../WPrefs.app/MouseSettings.c:536 msgid "Double-Click Delay" msgstr "Tempo Para Duplo-Clique" #: ../../WPrefs.app/MouseSettings.c:580 msgid "Test" msgstr "Teste" #: ../../WPrefs.app/MouseSettings.c:610 msgid "Workspace Mouse Actions" msgstr "Ações de Mouse na Ãrea de Trabalho" #: ../../WPrefs.app/MouseSettings.c:615 msgid "Disable mouse actions" msgstr "Desabilitar ações de mouse" #: ../../WPrefs.app/MouseSettings.c:622 msgid "Applications menu" msgstr "Menu de Aplicações" #: ../../WPrefs.app/MouseSettings.c:632 msgid "Window list menu" msgstr "Lista de Janelas" #: ../../WPrefs.app/MouseSettings.c:643 msgid "Select windows" msgstr "Selecionar Janelas" #: ../../WPrefs.app/MouseSettings.c:661 msgid "Mouse Grab Modifier" msgstr "Modificador para Grab de Mouse" #: ../../WPrefs.app/MouseSettings.c:663 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "Modificador de teclado para uso em ações\n" "que involvem arrasto de janelas com o mouse,\n" "clicando dentro da janela." #: ../../WPrefs.app/MouseSettings.c:697 #, c-format msgid "could not create %s" msgstr "%s não pôde ser criado" #: ../../WPrefs.app/MouseSettings.c:713 #, c-format msgid "could not create temporary file %s" msgstr "arquivo temporário %s não pôde ser criado" #: ../../WPrefs.app/MouseSettings.c:744 #, c-format msgid "could not rename file %s to %s\n" msgstr "arquivo %s não pôde ser renomeado para %s\n" #: ../../WPrefs.app/MouseSettings.c:816 msgid "Mouse Preferences" msgstr "Preferências de Mouse" #: ../../WPrefs.app/MouseSettings.c:818 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "Velocidade de aceleração do mouse, velocidade\n" "do duplo clique, atalhos nas teclas do mouse etc." #: ../../WPrefs.app/NoMenuAlert.c:94 #, c-format msgid "" " 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 keep using the current menu, please read the '%s/%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. Window " "Maker supports both formats." msgstr "" " O menu que está sendo usado agora não pode ser aberto. Isso significa também que há um erro de sintaxe nele ou que o menu está em um formato não suportado pelo WPrefs (o WPrefs suporta apenas a lista de menus proprietária).\n" " Se quiser continuar usando o menu atual, ler o arquivo '%s/%s', pressione 'Manter menu atual' e o edite como um editor de textos.\n" " Se quiser usar um editor, pressione 'Copiar menu padrão'. Isso copiará o menu padrão e instruirá o Window Maker a usá-lo em vez do atual.\n" " Se quiser mais flexibilidade, continue a usar o menu atual porque ele permite o uso de macros de pré-processador C (cpp), além de ser fácil de se editar. O Window Maker suporta ambos os formatos." #: ../../WPrefs.app/NoMenuAlert.c:113 msgid "Copy Default Menu" msgstr "Copiar menu padrão" #: ../../WPrefs.app/NoMenuAlert.c:119 msgid "Keep Current Menu" msgstr "Manter menu atual" #: ../../WPrefs.app/Paths.c:84 msgid "bad value in option IconPath. Using default path list" msgstr "valor inválido em IconPath. Usando valor default" #: ../../WPrefs.app/Paths.c:101 msgid "bad value in option PixmapPath. Using default path list" msgstr "valor inválido em PixmapPath. Usando valor default" #: ../../WPrefs.app/Paths.c:149 msgid "Select directory" msgstr "Selecionar Diretório" #: ../../WPrefs.app/Paths.c:270 msgid "Icon Search Paths" msgstr "Caminhos de Procura de Ãcones" #: ../../WPrefs.app/Paths.c:281 ../../WPrefs.app/Paths.c:312 #: ../../WPrefs.app/TexturePanel.c:1304 msgid "Add" msgstr "Adicionar" #: ../../WPrefs.app/Paths.c:301 msgid "Pixmap Search Paths" msgstr "Caminho de Procura de Imagens" #: ../../WPrefs.app/Paths.c:341 msgid "Search Path Configuration" msgstr "Configuração de Diretórios de Procura" #: ../../WPrefs.app/Paths.c:343 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "" "Caminhos de procura quando abrir pixmaps e\n" "ícones." #: ../../WPrefs.app/Preferences.c:159 msgid "Size Display" msgstr "Display de Tamanho" #: ../../WPrefs.app/Preferences.c:161 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "A posição ou estilo da janela sendo\n" "redimensionada." #: ../../WPrefs.app/Preferences.c:168 ../../WPrefs.app/Preferences.c:188 msgid "Corner of screen" msgstr "Canto da tela" #: ../../WPrefs.app/Preferences.c:169 ../../WPrefs.app/Preferences.c:189 msgid "Center of screen" msgstr "Meio da tela" #: ../../WPrefs.app/Preferences.c:170 ../../WPrefs.app/Preferences.c:190 msgid "Center of resized window" msgstr "Meio da janela" #: ../../WPrefs.app/Preferences.c:171 msgid "Technical drawing-like" msgstr "Desenho Técnico" #: ../../WPrefs.app/Preferences.c:179 msgid "Position Display" msgstr "Display de Posição" #: ../../WPrefs.app/Preferences.c:181 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "A posição ou estilo do mostrador de posição\n" "da janela quando ela estiver sendo movida." #: ../../WPrefs.app/Preferences.c:198 msgid "Show balloon text for..." msgstr "Mostrar texto em balão para..." #: ../../WPrefs.app/Preferences.c:205 msgid "incomplete window titles" msgstr "títulos de janela incompletos" #: ../../WPrefs.app/Preferences.c:206 msgid "miniwindow titles" msgstr "título de minijanelas" #: ../../WPrefs.app/Preferences.c:207 msgid "application/dock icons" msgstr "ícones de aplicação/dock" #: ../../WPrefs.app/Preferences.c:208 msgid "internal help" msgstr "ajuda interna" #: ../../WPrefs.app/Preferences.c:220 msgid "Raise window when switching focus with keyboard (CirculateRaise)." msgstr "Levantar janela ao mudar de foco com teclado (CirculateRaise)." #: ../../WPrefs.app/Preferences.c:226 msgid "Keep keyboard language status for each window." msgstr "Manter mapa de teclado para cada janela." #: ../../WPrefs.app/Preferences.c:247 msgid "Miscellaneous Ergonomic Preferences" msgstr "Preferências Ergonômicas Diversas" #: ../../WPrefs.app/Preferences.c:248 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "Várias opções como texto em balões, geometria,\n" "etc." #: ../../WPrefs.app/TexturePanel.c:605 msgid "Could not load the selected file: " msgstr "Não foi possível carregar o arquivo selecionado: " #: ../../WPrefs.app/TexturePanel.c:687 msgid "The selected file does not contain a supported image." msgstr "O arquivo selecionado não contém uma imagem suportada." #: ../../WPrefs.app/TexturePanel.c:1248 msgid "Texture Panel" msgstr "Painel de texturas" #: ../../WPrefs.app/TexturePanel.c:1256 msgid "Texture Name" msgstr "Nome da textura" #: ../../WPrefs.app/TexturePanel.c:1268 msgid "Solid Color" msgstr "Cor sólida" #: ../../WPrefs.app/TexturePanel.c:1269 msgid "Gradient Texture" msgstr "Textura gradiente" #: ../../WPrefs.app/TexturePanel.c:1270 msgid "Simple Gradient Texture" msgstr "Textura gradiente simples" #: ../../WPrefs.app/TexturePanel.c:1271 msgid "Textured Gradient" msgstr "Gradiente texturizado" #: ../../WPrefs.app/TexturePanel.c:1272 msgid "Image Texture" msgstr "Imagem de textura" #: ../../WPrefs.app/TexturePanel.c:1280 msgid "Default Color" msgstr "Cor padrão" #: ../../WPrefs.app/TexturePanel.c:1292 msgid "Gradient Colors" msgstr "Cores gradientes" #: ../../WPrefs.app/TexturePanel.c:1388 msgid "Direction" msgstr "Direção" #: ../../WPrefs.app/TexturePanel.c:1416 msgid "Gradient" msgstr "Gradiente" #: ../../WPrefs.app/TexturePanel.c:1434 msgid "Gradient Opacity" msgstr "Opacidade do gradiente" #: ../../WPrefs.app/TexturePanel.c:1477 msgid "Image" msgstr "Imagem" #: ../../WPrefs.app/TexturePanel.c:1497 msgid "Browse..." msgstr "Explorar..." #: ../../WPrefs.app/TexturePanel.c:1509 msgid "Tile" msgstr "Lado a lado" #: ../../WPrefs.app/TexturePanel.c:1510 msgid "Scale" msgstr "Escalonar" #: ../../WPrefs.app/TexturePanel.c:1512 msgid "Maximize" msgstr "Maximizar" #: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 msgid "Set" msgstr "Mudar" #: ../../WPrefs.app/Themes.c:132 msgid "Stop" msgstr "Parar" #: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:204 #: ../../WPrefs.app/Themes.c:224 msgid "Download" msgstr "Download" #: ../../WPrefs.app/Themes.c:172 msgid "Save Current Theme" msgstr "Salvar tema atual" #: ../../WPrefs.app/Themes.c:181 msgid "Load" msgstr "Carregar" #: ../../WPrefs.app/Themes.c:186 msgid "Install" msgstr "Instalar" #: ../../WPrefs.app/Themes.c:194 msgid "Tile of The Day" msgstr "Azulejo do Dia" #: ../../WPrefs.app/Themes.c:214 msgid "Bar of The Day" msgstr "Barra de título do dia" #: ../../WPrefs.app/Themes.c:251 msgid "Themes" msgstr "Temas" #: ../../WPrefs.app/WindowHandling.c:141 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "%s não é valor de WindowPlacement. Usando valor default" #: ../../WPrefs.app/WindowHandling.c:163 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "Dado inválido na opção WindowPlaceOrigin. Usando padrão (0,0)" #: ../../WPrefs.app/WindowHandling.c:236 msgid "Window Placement" msgstr "Colocação de Janelas" #: ../../WPrefs.app/WindowHandling.c:237 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "Como colocar janelas quando da primeira execução\n" "na tela." #: ../../WPrefs.app/WindowHandling.c:243 msgid "Automatic" msgstr "Automático" #: ../../WPrefs.app/WindowHandling.c:244 msgid "Random" msgstr "Randômico" #: ../../WPrefs.app/WindowHandling.c:245 msgid "Manual" msgstr "Manual" #: ../../WPrefs.app/WindowHandling.c:246 msgid "Cascade" msgstr "Cascata" #: ../../WPrefs.app/WindowHandling.c:247 msgid "Smart" msgstr "Inteligente" #: ../../WPrefs.app/WindowHandling.c:253 msgid "Placement Origin" msgstr "Origem da Colocação" #: ../../WPrefs.app/WindowHandling.c:313 msgid "Opaque Move" msgstr "Movimento opaco" #: ../../WPrefs.app/WindowHandling.c:314 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "Se o conteúdo da janela deve ser movido\n" "quando arrastada a janela ou somente um\n" "quadro deve ser mostrado.\n" #: ../../WPrefs.app/WindowHandling.c:353 msgid "When maximizing..." msgstr "Ao maximizar..." #: ../../WPrefs.app/WindowHandling.c:358 msgid "...do not cover icons" msgstr "...não sobrepor ícones" #: ../../WPrefs.app/WindowHandling.c:364 msgid "...do not cover dock" msgstr "...não sobrepor o dock" #: ../../WPrefs.app/WindowHandling.c:373 msgid "Edge Resistance" msgstr "Borda Resistente" #: ../../WPrefs.app/WindowHandling.c:375 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "A borda resistente fará com que as janelas\n" "`resistam' a ser movidas acima de outras\n" "ou nas bordas da tela." #: ../../WPrefs.app/WindowHandling.c:394 msgid "Resist" msgstr "Resistência" #: ../../WPrefs.app/WindowHandling.c:399 msgid "Attract" msgstr "Atrair" #: ../../WPrefs.app/WindowHandling.c:415 msgid "Open dialogs in same workspace as their owners" msgstr "Abrir diálogos na mesma área de trabalho que seus donos" #: ../../WPrefs.app/WindowHandling.c:442 msgid "Window Handling Preferences" msgstr "Preferências de Manipulação de Janelas" #: ../../WPrefs.app/WindowHandling.c:444 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "Opções de manuseio de janelas. Posicionamento\n" "inicial, borda resistente, movimento opaco, etc." #: ../../WPrefs.app/Workspace.c:177 msgid "Workspace Navigation" msgstr "Navegação de Ãreas de Trabalho" #: ../../WPrefs.app/Workspace.c:184 msgid "wrap to the first workspace after the last workspace." msgstr "ir para a primeira área de trabalho quando passar a última." #: ../../WPrefs.app/Workspace.c:206 msgid "switch workspaces while dragging windows." msgstr "mover janelas entre áreas de trabalho." #: ../../WPrefs.app/Workspace.c:228 msgid "automatically create new workspaces." msgstr "criar áreas de trabalho novas automaticamente." #: ../../WPrefs.app/Workspace.c:251 msgid "Position of workspace name display" msgstr "Posição do nome da área de trabalho" #: ../../WPrefs.app/Workspace.c:270 msgid "Disable" msgstr "Desabilitar" #: ../../WPrefs.app/Workspace.c:272 msgid "Top" msgstr "Cima" #: ../../WPrefs.app/Workspace.c:273 msgid "Bottom" msgstr "Baixo" #: ../../WPrefs.app/Workspace.c:274 msgid "Top/left" msgstr "Cima/esquerda" #: ../../WPrefs.app/Workspace.c:275 msgid "Top/right" msgstr "Cima/direita" #: ../../WPrefs.app/Workspace.c:276 msgid "Bottom/left" msgstr "Baixo/esquerda" #: ../../WPrefs.app/Workspace.c:277 msgid "Bottom/right" msgstr "Baixo/direita" #: ../../WPrefs.app/Workspace.c:285 msgid "Dock/Clip" msgstr "Dock/Clip" #: ../../WPrefs.app/Workspace.c:304 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "Liga/Desliga o Dock (a barra de ícones vertical\n" "no lado da tela)." #: ../../WPrefs.app/Workspace.c:325 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "Liga/Desliga o Clip (aquela coisa com um\n" "ícone de clip de papel)." #: ../../WPrefs.app/Workspace.c:365 msgid "Workspace Preferences" msgstr "Preferências da Ãrea de Trabalho" #: ../../WPrefs.app/Workspace.c:367 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "Aspectos de navegação de Ãreas de trabalho.\n" "Aqui você pode também ativar/desativar o Dock e o Clip." #: ../../WPrefs.app/MenuGuru.c:106 msgid "Menu Guru - Select Type" msgstr "Guru de Menu - Tipo" #: ../../WPrefs.app/MenuGuru.c:111 ../../WPrefs.app/MenuGuru.c:133 #: ../../WPrefs.app/MenuGuru.c:251 msgid "Next" msgstr "Próximo" #: ../../WPrefs.app/MenuGuru.c:114 msgid "Menu Guru - Select Menu File" msgstr "Guru de Menu - Arquivo de Menu" #: ../../WPrefs.app/MenuGuru.c:122 msgid "Menu Guru - Select Pipe Command" msgstr "Guru de Menu - Comando Para Pipe" #: ../../WPrefs.app/MenuGuru.c:129 msgid "Menu Guru - Select Directories" msgstr "Guru de Menu - Diretórios" #: ../../WPrefs.app/MenuGuru.c:136 msgid "Menu Guru - Select Command" msgstr "Guru de Menu - Comando" #: ../../WPrefs.app/MenuGuru.c:257 msgid "Back" msgstr "Voltar" #: ../../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 "" "Este processo irá ajudá-lo a criar um submenu cuja definição é criada " "dinamicamente ou localizada em um outro arquivo.\n" "O que deseja usar como o conteúdo do submenu?" #: ../../WPrefs.app/MenuGuru.c:279 msgid "" "A file containing the menu definition in the plain text (non-property list) " "menu format." msgstr "" "Um arquivo contendo a definição do menu em formato de texto puro (não é " "property list)." #: ../../WPrefs.app/MenuGuru.c:285 msgid "The menu definition generated by a script/program read through a pipe." msgstr "A definição de um menu gerado por um script/programa lido por um pipe." #: ../../WPrefs.app/MenuGuru.c:291 msgid "The files in one or more directories." msgstr "Os arquivos em um ou mais diretórios." #: ../../WPrefs.app/MenuGuru.c:303 msgid "Type the path for the menu file:" msgstr "Digite o caminho para o arquivo de menu:" #: ../../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 "" "O arquivo de menu deve conter um menu em formato texto puro. Esse formato é " "descrito no menu incluído no WindowMaker, provavelmente em " "~/GNUstep/Library/WindowMaker/menu." #: ../../WPrefs.app/MenuGuru.c:328 msgid "Type the command that will generate the menu definition:" msgstr "Digite o comando que irá gerar a definição do menu:" #: ../../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 "" "O comando deverá gerar uma definição de menu válida e mandá-lo para o " "stdout. Esta definição deve estar no formato descrito em " "~/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 "" "Digite o caminho para o diretório. Você pode digitar mais de um caminho, " "separando-os com um espaço." #: ../../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 "" "O menu gerado terá um item para cada arquivo no diretório. Os diretórios " "podem conter programas ou arquivos de dados (como imagens jpeg, por exemplo)" #: ../../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 "" "Se o diretório contém arquivos de dados, digite o comando que deve ser usado " "para abri-los. Senão, deixe em branco." #: ../../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 "" "Cada arquivo no diretório terá um item que executará o programa com o " "arquivo como parâmetro." #~ msgid "mouse button %s not supported by WPrefs." #~ msgstr "botão de mouse %s não é suportado pelo WPrefs." #~ msgid "Invalid font %s." #~ msgstr "Fonte inválida %s." #~ msgid "Set Font..." #~ msgstr "Mudar Fonte..." #~ msgid "Window Title Font" #~ msgstr "Fonte de Título de Janela" #~ msgid "Menu Title Font" #~ msgstr "Fonte de Título de Menu" #~ msgid "Menu Item Font" #~ msgstr "Fonte de Item de Menu" #~ msgid "Icon Title Font" #~ msgstr "Fonte de Título de Ãcone" #~ msgid "Clip Title Font" #~ msgstr "Fonte do Título do Clip" #~ msgid "Geometry Display Font" #~ msgstr "Fonte do display de tam/pos" #~ msgid "" #~ "Sample Text\n" #~ "abcdefghijklmnopqrstuvxywz\n" #~ "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" #~ "0123456789" #~ msgstr "" #~ "Texto de Teste\n" #~ "abcdefghijklmnopqrstuvxywz\n" #~ "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" #~ "áéíóúÃÉÃÓÚâêîôûãõ\n" #~ "0123456789" #~ msgid "Alignment" #~ msgstr "Alinhamento" #~ msgid "Text Preferences" #~ msgstr "Preferências Texto" #~ msgid "drag windows between workspaces." #~ msgstr "Mover janelas pelas áreas de trabalho." #~ msgid "" #~ "switch to first workspace when switching past the last workspace and " #~ "vice-versa" #~ msgstr "" #~ "Ir para a primeira área de trabalho quando passar da última evice-versa" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/it.po��������������������������������������������������������������0000644�0001750�0001750�00000160350�12214432632�014345� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# File dei messaggi in italiano per WPrefs # Italian message file for WPrefs # Copyright (C) 2001 Free Software Foundation, Inc. # # Michele Campeotto <micampe@f2s.com>, 2001. # msgid "" msgstr "" "Project-Id-Version: WPrefs 0.42\n" "POT-Creation-Date: 2001-05-21 11:58+0200\n" "PO-Revision-Date: 2001-05-21\n" "Last-Translator: Michele Campeotto <micampe@f2s.com\n" "Language-Team: Italian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: unknown\n" #: ../../WPrefs.app/main.c:74 #, c-format msgid "usage: %s [options]\n" msgstr "Uso: %s [opzioni]\n" #: ../../WPrefs.app/main.c:75 msgid "options:" msgstr "opzioni:" #: ../../WPrefs.app/main.c:76 msgid " -display <display>\tdisplay to be used" msgstr " -display <display>\tdisplay da usare" #: ../../WPrefs.app/main.c:77 msgid " --version\t\tprint version number and exit" msgstr " --version\t\tvisualizza il numero di versione ed esci" #: ../../WPrefs.app/main.c:78 msgid " --help\t\tprint this message and exit" msgstr " --help\t\tstampa questo messaggio ed esci" #: ../../WPrefs.app/main.c:137 #, c-format msgid "too few arguments for %s" msgstr "Mancano parametri per %s." #: ../../WPrefs.app/main.c:159 msgid "X server does not support locale" msgstr "Il server X non supporta la localizzazione." #: ../../WPrefs.app/main.c:162 msgid "cannot set locale modifiers" msgstr "Impossibile impostare i modificatori del locale." #: ../../WPrefs.app/main.c:168 #, c-format msgid "could not open display %s" msgstr "Impossibile aprire il display %s." #: ../../WPrefs.app/main.c:176 msgid "could not initialize application" msgstr "Impossibile inizializzare l'applicazione." #: ../../WPrefs.app/WPrefs.c:259 msgid "Window Maker Preferences" msgstr "Configurazione di Window Maker" #: ../../WPrefs.app/WPrefs.c:283 msgid "Revert Page" msgstr "Ripristina pagina" #: ../../WPrefs.app/WPrefs.c:289 msgid "Revert All" msgstr "Ripristina tutto" #: ../../WPrefs.app/WPrefs.c:295 msgid "Save" msgstr "Salva" #: ../../WPrefs.app/Appearance.c:2294 ../../WPrefs.app/WPrefs.c:301 msgid "Close" msgstr "Chiudi" #: ../../WPrefs.app/WPrefs.c:308 msgid "Balloon Help" msgstr "Mostra suggerimenti" #: ../../WPrefs.app/WPrefs.c:333 msgid "Window Maker Preferences Utility" msgstr "Utilità di Configurazione di Window Maker" #: ../../WPrefs.app/WPrefs.c:340 #, c-format msgid "Version %s for Window Maker %s or newer" msgstr "Versione %s per Window Maker %s o successivo" #: ../../WPrefs.app/WPrefs.c:348 msgid "Starting..." msgstr "Avvio..." #: ../../WPrefs.app/WPrefs.c:354 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg, Largo et al\n" "More Programming: James Thompson et al" msgstr "" "Programmazione/Progetto: Alfredo K. Kojima\n" "Grafica: Marco van Hylckama Vlieg, Largo e altri\n" "Altra Programmazione: James Thompson e altri" #: ../../WPrefs.app/WPrefs.c:454 #, c-format msgid "could not locate image file %s\n" msgstr "Impossibile trovare il file di immagine %s\n" #: ../../WPrefs.app/Appearance.c:1965 ../../WPrefs.app/Configurations.c:242 #: ../../WPrefs.app/Configurations.c:254 ../../WPrefs.app/Focus.c:315 #: ../../WPrefs.app/Focus.c:326 ../../WPrefs.app/MenuPreferences.c:135 #: ../../WPrefs.app/MenuPreferences.c:146 #: ../../WPrefs.app/MenuPreferences.c:174 #: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:560 #: ../../WPrefs.app/MouseSettings.c:571 ../../WPrefs.app/WPrefs.c:557 #: ../../WPrefs.app/WPrefs.c:582 #, c-format msgid "could not load icon file %s" msgstr "Impossibile caricare il file dell'icona %s" #: ../../WPrefs.app/WPrefs.c:669 #, c-format msgid "could not load image file %s:%s" msgstr "Impossibile trovare il file di immagine %s:%s" #: ../../WPrefs.app/WPrefs.c:688 msgid "Loading Window Maker configuration files..." msgstr "Carico i file di configurazione di Window Maker..." #: ../../WPrefs.app/WPrefs.c:692 msgid "Initializing configuration panels..." msgstr "Inizializzo i pannelli di configurazione..." #: ../../WPrefs.app/WPrefs.c:726 msgid "" "WPrefs is free software and is distributed WITHOUT ANY\n" "WARRANTY under the terms of the GNU General Public License." msgstr "" "WPrefs è software libero ed è distribuito SENZA NESSUNA\n" "GARANZIA nei termini della GNU General Public License." #: ../../WPrefs.app/WPrefs.c:755 ../../WPrefs.app/WPrefs.c:835 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Il dominio di Window Maker (%s) è rovinato!" #: ../../WPrefs.app/Font.c:330 ../../WPrefs.app/Menu.c:1533 #: ../../WPrefs.app/MouseSettings.c:140 ../../WPrefs.app/MouseSettings.c:160 #: ../../WPrefs.app/TexturePanel.c:606 ../../WPrefs.app/TexturePanel.c:686 #: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:756 #: ../../WPrefs.app/WPrefs.c:761 ../../WPrefs.app/WPrefs.c:779 #: ../../WPrefs.app/WPrefs.c:789 ../../WPrefs.app/WPrefs.c:799 #: ../../WPrefs.app/WPrefs.c:836 ../../WPrefs.app/WPrefs.c:841 msgid "Error" msgstr "Errore" #: ../../WPrefs.app/Font.c:330 ../../WPrefs.app/Menu.c:1533 #: ../../WPrefs.app/MouseSettings.c:142 ../../WPrefs.app/MouseSettings.c:162 #: ../../WPrefs.app/TexturePanel.c:607 ../../WPrefs.app/TexturePanel.c:688 #: ../../WPrefs.app/TexturePanel.c:1522 ../../WPrefs.app/Themes.c:98 #: ../../WPrefs.app/WPrefs.c:756 ../../WPrefs.app/WPrefs.c:761 #: ../../WPrefs.app/WPrefs.c:781 ../../WPrefs.app/WPrefs.c:793 #: ../../WPrefs.app/WPrefs.c:799 ../../WPrefs.app/WPrefs.c:806 #: ../../WPrefs.app/WPrefs.c:836 ../../WPrefs.app/WPrefs.c:841 msgid "OK" msgstr "Ok" #: ../../WPrefs.app/WPrefs.c:759 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "" "Impossibile caricare il dominio di Window Maker (%s) dal database delle " "impostazioni predefinite." #: ../../WPrefs.app/WPrefs.c:776 msgid "could not extract version information from Window Maker" msgstr "Impossibile leggere le informazioni di versione da Window Maker." #: ../../WPrefs.app/WPrefs.c:777 msgid "Make sure wmaker is in your search path." msgstr "Assicurarsi che wmaker sia presente nel percorso di ricerca ($PATH)." #: ../../WPrefs.app/WPrefs.c:780 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." msgstr "" "Impossibile leggere le informazioni di versione da Window Maker. Assicurarsi " "che sia correttamente installato e che sia presente nel percorso di ricerca " "($PATH)." #: ../../WPrefs.app/WPrefs.c:790 msgid "" "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." msgstr "" "Impossibile leggere le informazioni di versione da Window Maker. Assicurarsi " "che sia correttamente installato e che sia presente nel percorso di ricerca " "($PATH)." #: ../../WPrefs.app/WPrefs.c:797 #, c-format msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "WPrefs supporta solo Window Maker 0.18.0 o successivo.\n" "La versione installata è %i.%i.%i\n" #: ../../WPrefs.app/WPrefs.c:804 #, 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, che è installato in questo sistema, non è " "completamente supportato da questa versione di WPrefs." #: ../../WPrefs.app/Menu.c:1568 ../../WPrefs.app/WPrefs.c:806 msgid "Warning" msgstr "Attenzione" #: ../../WPrefs.app/WPrefs.c:817 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr "Impossibiled eseguire \"%s --global_defaults_path\"." #: ../../WPrefs.app/WPrefs.c:839 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "Impossibile caricare il dominio globale di Window Maker (%s)." #: ../../WPrefs.app/WPrefs.c:1088 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "Valore di velocità errato per l'opzione %s\n" "Uso Medium" #: ../../WPrefs.app/Appearance.c:1131 msgid "Select File" msgstr "Selezione file" #: ../../WPrefs.app/Appearance.c:1533 msgid "Focused Window" msgstr "Finestra attiva" #: ../../WPrefs.app/Appearance.c:1537 msgid "Unfocused Window" msgstr "Finestra non attiva" #: ../../WPrefs.app/Appearance.c:1541 msgid "Owner of Focused Window" msgstr "Proprietario della finestra attiva" #: ../../WPrefs.app/Appearance.c:1545 ../../WPrefs.app/Appearance.c:1862 msgid "Menu Title" msgstr "Titolo menu" #: ../../WPrefs.app/Appearance.c:1549 ../../WPrefs.app/Appearance.c:1551 msgid "Normal Item" msgstr "Normale" #: ../../WPrefs.app/Appearance.c:1555 msgid "Disabled Item" msgstr "Inattivo" #: ../../WPrefs.app/Appearance.c:1564 msgid "Highlighted" msgstr "Evidenziato" #: ../../WPrefs.app/Appearance.c:1755 msgid "Texture" msgstr "Trama" #: ../../WPrefs.app/Appearance.c:1763 msgid "Titlebar of Focused Window" msgstr "Titolo della finestra attiva" #: ../../WPrefs.app/Appearance.c:1764 msgid "Titlebar of Unfocused Windows" msgstr "Titolo delle finestre inattive" #: ../../WPrefs.app/Appearance.c:1765 msgid "Titlebar of Focused Window's Owner" msgstr "Titolo del padre della finestra attiva" #: ../../WPrefs.app/Appearance.c:1766 msgid "Window Resizebar" msgstr "Barra di ridimensionamento" #: ../../WPrefs.app/Appearance.c:1767 msgid "Titlebar of Menus" msgstr "Titolo dei menù" #: ../../WPrefs.app/Appearance.c:1768 msgid "Menu Items" msgstr "Voci dei menù" #: ../../WPrefs.app/Appearance.c:1769 msgid "Icon Background" msgstr "Sfondo delle icone" #: ../../WPrefs.app/Appearance.c:1784 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "Doppio click sulla trama da usare\n" "per la voce selezionata." #: ../../WPrefs.app/Appearance.c:1798 msgid "New" msgstr "Nuova" #: ../../WPrefs.app/Appearance.c:1802 msgid "Create a new texture." msgstr "Crea una nuova trama." #: ../../WPrefs.app/Appearance.c:1810 msgid "Extract..." msgstr "Estrai..." #: ../../WPrefs.app/Appearance.c:1814 msgid "Extract texture(s) from a theme or a style file." msgstr "Estrai le trame da un tema o da un file di stile." #: ../../WPrefs.app/Appearance.c:1824 msgid "Edit" msgstr "Modifica" #: ../../WPrefs.app/Appearance.c:1827 msgid "Edit the highlighted texture." msgstr "Modifica la trama selezionata." #: ../../WPrefs.app/Appearance.c:1835 ../../WPrefs.app/TexturePanel.c:1310 msgid "Delete" msgstr "Elimina" #: ../../WPrefs.app/Appearance.c:1839 msgid "Delete the highlighted texture." msgstr "Cancella la trama selezionata." #: ../../WPrefs.app/Appearance.c:1852 msgid "Color" msgstr "Colore" #: ../../WPrefs.app/Appearance.c:1859 msgid "Focused Window Title" msgstr "Titolo della finestra attiva" #: ../../WPrefs.app/Appearance.c:1860 msgid "Unfocused Window Title" msgstr "Titolo delle finestre inattive" #: ../../WPrefs.app/Appearance.c:1861 msgid "Owner of Focused Window Title" msgstr "Titolo del padre della finestra attiva" #: ../../WPrefs.app/Appearance.c:1863 msgid "Menu Item Text" msgstr "Testo delle voci normali" #: ../../WPrefs.app/Appearance.c:1864 msgid "Disabled Menu Item Text" msgstr "Testo delle voci inattive" #: ../../WPrefs.app/Appearance.c:1865 msgid "Menu Highlight Color" msgstr "Selezione" #: ../../WPrefs.app/Appearance.c:1866 msgid "Highlighted Menu Text Color" msgstr "Testo selezionato del menu" #: ../../WPrefs.app/Appearance.c:1905 msgid "Background" msgstr "Sfondo" #: ../../WPrefs.app/Appearance.c:1917 ../../WPrefs.app/TexturePanel.c:1497 msgid "Browse..." msgstr "Sfoglia..." #: ../../WPrefs.app/Appearance.c:1930 msgid "Options" msgstr "Opzioni" #: ../../WPrefs.app/Appearance.c:1937 msgid "Menu Style" msgstr "Stile del menu" #: ../../WPrefs.app/Appearance.c:1979 msgid "Title Alignment" msgstr "Allineamento titoli" #: ../../WPrefs.app/Appearance.c:1986 msgid "Left" msgstr "Sinistra" #: ../../WPrefs.app/Appearance.c:1989 ../../WPrefs.app/TexturePanel.c:1511 #: ../../WPrefs.app/Workspace.c:270 msgid "Center" msgstr "Centro" #: ../../WPrefs.app/Appearance.c:1992 msgid "Right" msgstr "Destra" #: ../../WPrefs.app/Appearance.c:2216 msgid "Appearance Preferences" msgstr "Opzioni all'aspetto" #: ../../WPrefs.app/Appearance.c:2218 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "Configurazione delle trame di sfondo per\n" "finestre, menu e icone." #: ../../WPrefs.app/Appearance.c:2263 msgid "Extract Texture" msgstr "Estrai trama" #: ../../WPrefs.app/Appearance.c:2283 msgid "Textures" msgstr "Trame" #: ../../WPrefs.app/Appearance.c:2299 msgid "Extract" msgstr "Estrai" #: ../../WPrefs.app/Configurations.c:150 ../../WPrefs.app/Configurations.c:156 #: ../../WPrefs.app/MouseSettings.c:490 ../../WPrefs.app/WindowHandling.c:339 #: ../../WPrefs.app/WindowHandling.c:351 ../../WPrefs.app/Workspace.c:90 #: ../../WPrefs.app/Workspace.c:101 #, c-format msgid "could not load icon %s" msgstr "Impossibile caricare l'icona %s" #: ../../WPrefs.app/Configurations.c:164 ../../WPrefs.app/Workspace.c:109 #, c-format msgid "could not process icon %s: %s" msgstr "Impossibile elaborare l'icona %s: %s" #: ../../WPrefs.app/Configurations.c:189 ../../WPrefs.app/Workspace.c:164 #, c-format msgid "could not load image file %s" msgstr "Impossibile caricare il file immagine %s" #: ../../WPrefs.app/Configurations.c:203 msgid "Icon Slide Speed" msgstr "Velocità di scorrimento delle icone" #: ../../WPrefs.app/Configurations.c:209 msgid "Shade Animation Speed" msgstr "Velocità dell'arrotolamento" #: ../../WPrefs.app/Configurations.c:271 msgid "Smooth Scaling" msgstr "Scalatura levigata" #: ../../WPrefs.app/Configurations.c:272 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "Immagini di sfondo levigate: neutralizza\n" "l'effetto 'scalettatura'. Questo rallenterà\n" "considerevolmente il caricamento delle\n" "immagini di sfondo." #: ../../WPrefs.app/Configurations.c:313 msgid "Titlebar Style" msgstr "Barra del titolo" #: ../../WPrefs.app/Configurations.c:351 msgid "Animations and Sound" msgstr "Animazioni e suoni" #: ../../WPrefs.app/Configurations.c:357 msgid "Animations" msgstr "Animazioni" #: ../../WPrefs.app/Configurations.c:368 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "Attiva/disattiva le animazioni per la riduzione ad icona\n" "delle finestre, l'arrotolamento ed altre." #: ../../WPrefs.app/Configurations.c:376 msgid "Superfluous" msgstr "Superflue" #: ../../WPrefs.app/Configurations.c:387 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "Attiva/disattiva effetti ed animazioni superflue.\n" "Queste comprendono la trasparenza del dock quando\n" "viene spostato o l'esplosione delle icone quando\n" "vengono staccate dal Dock." #: ../../WPrefs.app/Configurations.c:397 msgid "Sounds" msgstr "Suoni" #: ../../WPrefs.app/Configurations.c:408 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://shadowmere.student.utwente.nl/" msgstr "" "Attiva/disattiva gli effetti sonori associati\n" "agli eventi del gestore di finestre. Sarà \n" "necessario un modulo separato che è possibile\n" "trovare all'indirizzo:\n" "http://shadowmere.student.utwente.nl/" #: ../../WPrefs.app/Configurations.c:419 msgid "" "Note: sound requires a module distributed\n" "separately" msgstr "" "Nota: i suoni richiedono un modulo\n" "distribuito separatemente." #: ../../WPrefs.app/Configurations.c:429 msgid "Dithering colormap for 8bpp" msgstr "Approssimazione dei colori a 8 bit" #: ../../WPrefs.app/Configurations.c:431 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "Numero di colori da riservare a Window Maker\n" "sui display che supportano solo 8 bit di colore." #: ../../WPrefs.app/Configurations.c:438 msgid "Disable dithering in any visual/depth" msgstr "Disabilita l'approssimazione dei colori." #: ../../WPrefs.app/Configurations.c:459 msgid "" "More colors for\n" "applications" msgstr "" "Più colori per\n" "le applicazioni" #: ../../WPrefs.app/Configurations.c:466 msgid "" "More colors for\n" "Window Maker" msgstr "" "Più colori per\n" "WindowMaker" #: ../../WPrefs.app/Configurations.c:521 msgid "Other Configurations" msgstr "Altre opzioni" #: ../../WPrefs.app/Configurations.c:523 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "Velocità delle animazioni, stili della barra del tiolo,\n" "opzioni per la modalità a 8 bit di colore e altre opzioni\n" "per l'aspetto di Window Maker." #: ../../WPrefs.app/Expert.c:75 msgid "" "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." msgstr "" "Disabilita le icone per le finestre ridotte a icona. Per usare con GNOME o " "KDE." #: ../../WPrefs.app/Expert.c:76 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "Non cambiare parametri esterni a Window Maker (non usare xset)." #: ../../WPrefs.app/Expert.c:77 msgid "Automatically save session when exiting Window Maker." msgstr "Salva automaticamente la sessione uscendo da Window Maker." #: ../../WPrefs.app/Expert.c:78 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "Usa SaveUnder nelle finestre, icone, menu e altri oggetti." #: ../../WPrefs.app/Expert.c:79 msgid "Use Windoze style cycling." msgstr "Usa il ciclo finestre in stile Windoze." #: ../../WPrefs.app/Expert.c:80 msgid "Disable confirmation panel for the Kill command." msgstr "Disabilita il dialogo di conferma per il comando di uccisione." #: ../../WPrefs.app/Expert.c:81 msgid "Disable cycling of highlighting color for selected icons." msgstr "Disabilita l'animazione per le icone selezionate." #: ../../WPrefs.app/Expert.c:115 msgid "Expert User Preferences" msgstr "Opzioni per utenti esperti" #: ../../WPrefs.app/Expert.c:117 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "Opzioni per chi sa cosa sta facendo...\n" "Ci sono anche altre opzioni miste." #: ../../WPrefs.app/Focus.c:83 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "Valore %s errato per l'opzione FocusMode. Uso Manual" #: ../../WPrefs.app/Focus.c:98 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "Valore %s errato per l'opzione ColormapMode. Uso Auto" #: ../../WPrefs.app/Focus.c:196 msgid "" "Click on the window to set\n" "keyboard input focus." msgstr "" "Clicca sulla finestra per assegnarle\n" "il focus di tastiera." #: ../../WPrefs.app/Focus.c:200 msgid "" "Set keyboard input focus to\n" "the window under the mouse pointer,\n" "including the root window." msgstr "" "Assegna il focus di tastiera\n" "alla finestra sotto al puntatore,\n" "compreso lo sfondo (root window)." #: ../../WPrefs.app/Focus.c:205 msgid "" "Set keyboard input focus to\n" "the window under the mouse pointer,\n" "except the root window." msgstr "" "Assegna il focus di tastiera alla\n" "finestra sotto al puntatore,\n" "escluso lo sfondo (root window)." #: ../../WPrefs.app/Focus.c:248 msgid "Input Focus Mode" msgstr "Modalità di focus" #: ../../WPrefs.app/Focus.c:253 msgid "Click window to focus" msgstr "Clicca per il focus" #: ../../WPrefs.app/Focus.c:254 msgid "Focus follows mouse" msgstr "Il focus segue il mouse" #: ../../WPrefs.app/Focus.c:255 msgid "\"Sloppy\" focus" msgstr "Focus intelligente \"Sloppy\"" #: ../../WPrefs.app/Focus.c:270 msgid "Install colormap in the window..." msgstr "Installa la mappa dei colori della finestra..." #: ../../WPrefs.app/Focus.c:275 msgid "...that has the input focus." msgstr "...che ha il focus." #: ../../WPrefs.app/Focus.c:280 msgid "...that is under the mouse pointer." msgstr "...che è sotto al puntatore." #: ../../WPrefs.app/Focus.c:289 msgid "Automatic Window Raise Delay" msgstr "Ritardo per il sollevamento automatico" #: ../../WPrefs.app/Focus.c:346 ../../WPrefs.app/MouseSettings.c:601 msgid "msec" msgstr "ms" #: ../../WPrefs.app/Focus.c:363 msgid "" "Do not let applications receive\n" "the click used to focus windows." msgstr "" "Evita che le applicazioni ricevano " "il click usato per assegnare il focus." #: ../../WPrefs.app/Focus.c:369 msgid "" "Automatically focus new\n" "windows." msgstr "" "Assegna automaticamente\n" "il focus alle nuove finestre." #: ../../WPrefs.app/Focus.c:390 msgid "Window Focus Preferences" msgstr "Opzioni del focus delle finestre" #: ../../WPrefs.app/Focus.c:392 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "Modalità di cambio del focus, cambio della mappa dei\n" "colori e altre opzioni correlate." #: ../../WPrefs.app/Font.c:277 msgid "Could not locate font information file WPrefs.app/font.data" msgstr "" "Impossibile trovare il file di informazioni sui font WPrefs.app/font.data" #: ../../WPrefs.app/Font.c:283 msgid "Could not read font information file WPrefs.app/font.data" msgstr "" "Impossibile leggere il file di informazioni sui font WPrefs.app/font.data" #: ../../WPrefs.app/Font.c:294 msgid "" "Invalid data in font information file WPrefs.app/font.data.\n" "Encodings data not found." msgstr "" "Dati non validi nel file di informazioni sui font WPrefs.app/font.data.\n" "Dati sulle codifiche non trovati." #: ../../WPrefs.app/Font.c:299 msgid "- Custom -" msgstr "" #: ../../WPrefs.app/Font.c:376 msgid "Default Font Sets" msgstr "Font Set predefiniti" #: ../../WPrefs.app/Font.c:389 msgid "Font Set" msgstr "Font Set" #: ../../WPrefs.app/Font.c:418 msgid "Add..." msgstr "Aggiungi..." #: ../../WPrefs.app/Font.c:423 ../../WPrefs.app/Font.c:438 msgid "Change..." msgstr "Modifica..." #: ../../WPrefs.app/Font.c:428 ../../WPrefs.app/Paths.c:288 #: ../../WPrefs.app/Paths.c:319 msgid "Remove" msgstr "Elimina" #: ../../WPrefs.app/Font.c:477 msgid "Font Preferences" msgstr "Opzioni dei font" #: ../../WPrefs.app/Font.c:478 msgid "Font Configurations for Windows, Menus etc" msgstr "Configurazione dei font per le finestre, i menu, ecc." #: ../../WPrefs.app/Icons.c:180 msgid "Icon Positioning" msgstr "Posizionamento delle icone" #: ../../WPrefs.app/Icons.c:227 msgid "Iconification Animation" msgstr "Animazione per riduzione ad icona" #: ../../WPrefs.app/Icons.c:238 msgid "Shrinking/Zooming" msgstr "Riduzione/Ingrandimento" #: ../../WPrefs.app/Icons.c:239 msgid "Spinning/Twisting" msgstr "Rotazione/Distorsione" #: ../../WPrefs.app/Icons.c:240 msgid "3D-flipping" msgstr "Rotazione 3D" #: ../../WPrefs.app/Icons.c:241 ../../WPrefs.app/MouseSettings.c:838 #: ../../WPrefs.app/MouseSettings.c:843 msgid "None" msgstr "Nessuna" #: ../../WPrefs.app/Icons.c:254 msgid "Auto-arrange icons" msgstr "Disponi automaticamente le icone" #: ../../WPrefs.app/Icons.c:256 msgid "Keep icons and miniwindows arranged all the time." msgstr "Mantieni le icone sempre in ordine." #: ../../WPrefs.app/Icons.c:262 msgid "Omnipresent miniwindows" msgstr "Finestre iconificate onnipresenti" #: ../../WPrefs.app/Icons.c:264 msgid "Make miniwindows be present in all workspaces." msgstr "" "Le finestre iconificate sono presenti\n" "in tutte le aree di lavoro." #: ../../WPrefs.app/Icons.c:273 msgid "Icon Size" msgstr "Dimensione icone" #: ../../WPrefs.app/Icons.c:275 msgid "The size of the dock/application icon and miniwindows" msgstr "La dimensione del Dock e delle icone delle applicazioni" #: ../../WPrefs.app/Icons.c:345 msgid "Icon Preferences" msgstr "Opzioni delle icone" #: ../../WPrefs.app/Icons.c:347 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "Opzioni di gestione delle icone. Area di\n" "posizionamento, dimensione e animazioni." #: ../../WPrefs.app/KeyboardSettings.c:73 msgid "Initial Key Repeat" msgstr "Ritardo della prima ripetizione" #: ../../WPrefs.app/KeyboardSettings.c:114 msgid "Key Repeat Rate" msgstr "Frequenza delle successive ripetizioni" #: ../../WPrefs.app/KeyboardSettings.c:154 msgid "Type here to test" msgstr "Prova qui" #: ../../WPrefs.app/KeyboardSettings.c:173 msgid "Keyboard Preferences" msgstr "Opzioni della tastiera" #: ../../WPrefs.app/KeyboardSettings.c:175 msgid "Not done" msgstr "Da fare" #: ../../WPrefs.app/KeyboardShortcuts.c:185 ../../WPrefs.app/Menu.c:327 #: ../../WPrefs.app/TexturePanel.c:1528 msgid "Cancel" msgstr "Annulla" #: ../../WPrefs.app/KeyboardShortcuts.c:186 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "Premi la combinazione di tasti desiderata o Annulla per interrompere." #: ../../WPrefs.app/KeyboardShortcuts.c:206 #: ../../WPrefs.app/KeyboardShortcuts.c:454 ../../WPrefs.app/Menu.c:338 #: ../../WPrefs.app/Menu.c:782 msgid "Capture" msgstr "Cattura" #: ../../WPrefs.app/KeyboardShortcuts.c:207 #: ../../WPrefs.app/KeyboardShortcuts.c:462 msgid "Click Capture to interactively define the shortcut key." msgstr "Clicca su cattura per definire interattivamente la scorciatoia." #: ../../WPrefs.app/KeyboardShortcuts.c:362 msgid "Actions" msgstr "Azioni" #: ../../WPrefs.app/KeyboardShortcuts.c:378 msgid "Open applications menu" msgstr "Apri il menu applicazioni" #: ../../WPrefs.app/KeyboardShortcuts.c:379 msgid "Open window list menu" msgstr "Apri la lista delle finestre" #: ../../WPrefs.app/KeyboardShortcuts.c:380 msgid "Open window commands menu" msgstr "Apri il menu delle operazioni sulla finestra" #: ../../WPrefs.app/KeyboardShortcuts.c:381 msgid "Hide active application" msgstr "Nascondi l'applicazione attiva" #: ../../WPrefs.app/KeyboardShortcuts.c:382 msgid "Miniaturize active window" msgstr "Iconifica la finestra attiva" #: ../../WPrefs.app/KeyboardShortcuts.c:383 msgid "Close active window" msgstr "Chiudi la finestra attiva" #: ../../WPrefs.app/KeyboardShortcuts.c:384 msgid "Maximize active window" msgstr "Ingrandisci la finestra attiva" #: ../../WPrefs.app/KeyboardShortcuts.c:385 msgid "Maximize active window vertically" msgstr "Ingrandisci la finestra attiva verticalmente" #: ../../WPrefs.app/KeyboardShortcuts.c:386 msgid "Raise active window" msgstr "Porta davanti la finestra attiva" #: ../../WPrefs.app/KeyboardShortcuts.c:387 msgid "Lower active window" msgstr "Porta dietro la finestra attiva" #: ../../WPrefs.app/KeyboardShortcuts.c:388 msgid "Raise/Lower window under mouse pointer" msgstr "Davanti/Dietro la finestra sotto il puntatore" #: ../../WPrefs.app/KeyboardShortcuts.c:389 msgid "Shade active window" msgstr "Arrotola la finestra attiva" #: ../../WPrefs.app/KeyboardShortcuts.c:390 msgid "Move/Resize active window" msgstr "Sposta/Ridimensiona la finestra attiva" #: ../../WPrefs.app/KeyboardShortcuts.c:391 msgid "Select active window" msgstr "Seleziona la finestra attiva" #: ../../WPrefs.app/KeyboardShortcuts.c:392 msgid "Focus next window" msgstr "Assegna il focus alla finestra successiva" #: ../../WPrefs.app/KeyboardShortcuts.c:393 msgid "Focus previous window" msgstr "Assegna il focus alla finestra precedente" #: ../../WPrefs.app/KeyboardShortcuts.c:394 msgid "Switch to next workspace" msgstr "Vai all'area di lavoro successiva" #: ../../WPrefs.app/KeyboardShortcuts.c:395 msgid "Switch to previous workspace" msgstr "Vai all'area di lavoro precedente" #: ../../WPrefs.app/KeyboardShortcuts.c:396 msgid "Switch to next ten workspaces" msgstr "Vai avanti di dieci aree di lavoro" #: ../../WPrefs.app/KeyboardShortcuts.c:397 msgid "Switch to previous ten workspaces" msgstr "Vai indietro di dieci aree di lavoro" #: ../../WPrefs.app/KeyboardShortcuts.c:398 msgid "Switch to workspace 1" msgstr "Vai all'area di lavoro 1" #: ../../WPrefs.app/KeyboardShortcuts.c:399 msgid "Switch to workspace 2" msgstr "Vai all'area di lavoro 2" #: ../../WPrefs.app/KeyboardShortcuts.c:400 msgid "Switch to workspace 3" msgstr "Vai all'area di lavoro 3" #: ../../WPrefs.app/KeyboardShortcuts.c:401 msgid "Switch to workspace 4" msgstr "Vai all'area di lavoro 4" #: ../../WPrefs.app/KeyboardShortcuts.c:402 msgid "Switch to workspace 5" msgstr "Vai all'area di lavoro 5" #: ../../WPrefs.app/KeyboardShortcuts.c:403 msgid "Switch to workspace 6" msgstr "Vai all'area di lavoro 6" #: ../../WPrefs.app/KeyboardShortcuts.c:404 msgid "Switch to workspace 7" msgstr "Vai all'area di lavoro 7" #: ../../WPrefs.app/KeyboardShortcuts.c:405 msgid "Switch to workspace 8" msgstr "Vai all'area di lavoro 8" #: ../../WPrefs.app/KeyboardShortcuts.c:406 msgid "Switch to workspace 9" msgstr "Vai all'area di lavoro 9" #: ../../WPrefs.app/KeyboardShortcuts.c:407 msgid "Switch to workspace 10" msgstr "Vai all'area di lavoro 10" #: ../../WPrefs.app/KeyboardShortcuts.c:408 msgid "Shortcut for window 1" msgstr "Attiva la finestra 1" #: ../../WPrefs.app/KeyboardShortcuts.c:409 msgid "Shortcut for window 2" msgstr "Attiva la finestra 2" #: ../../WPrefs.app/KeyboardShortcuts.c:410 msgid "Shortcut for window 3" msgstr "Attiva la finestra 3" #: ../../WPrefs.app/KeyboardShortcuts.c:411 msgid "Shortcut for window 4" msgstr "Attiva la finestra 4" #: ../../WPrefs.app/KeyboardShortcuts.c:412 msgid "Shortcut for window 5" msgstr "Attiva la finestra 5" #: ../../WPrefs.app/KeyboardShortcuts.c:413 msgid "Shortcut for window 6" msgstr "Attiva la finestra 6" #: ../../WPrefs.app/KeyboardShortcuts.c:414 msgid "Shortcut for window 7" msgstr "Attiva la finestra 7" #: ../../WPrefs.app/KeyboardShortcuts.c:415 msgid "Shortcut for window 8" msgstr "Attiva la finestra 8" #: ../../WPrefs.app/KeyboardShortcuts.c:416 msgid "Shortcut for window 9" msgstr "Attiva la finestra 9" #: ../../WPrefs.app/KeyboardShortcuts.c:417 msgid "Shortcut for window 10" msgstr "Attiva la finestra 10" #: ../../WPrefs.app/KeyboardShortcuts.c:418 msgid "Switch to Next Screen/Monitor" msgstr "Vai allo schermo successivo" #: ../../WPrefs.app/KeyboardShortcuts.c:419 msgid "Raise Clip" msgstr "Porta davanti la Clip" #: ../../WPrefs.app/KeyboardShortcuts.c:420 msgid "Lower Clip" msgstr "Porta dietro la Clip" #: ../../WPrefs.app/KeyboardShortcuts.c:421 msgid "Raise/Lower Clip" msgstr "Porta davanti/dietro la Clip" #: ../../WPrefs.app/KeyboardShortcuts.c:423 msgid "Toggle keyboard language" msgstr "Cambia la lingua della tastiera" #: ../../WPrefs.app/KeyboardShortcuts.c:437 msgid "Shortcut" msgstr "Scorciatoia" #: ../../WPrefs.app/KeyboardShortcuts.c:448 ../../WPrefs.app/Menu.c:788 msgid "Clear" msgstr "Cancella" #: ../../WPrefs.app/KeyboardShortcuts.c:510 msgid "Keyboard Shortcut Preferences" msgstr "Opzioni delle scorciatoie di tastiera" #: ../../WPrefs.app/KeyboardShortcuts.c:512 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "Modifica gli shortcut di tastiera per i comandi\n" "di Window Maker." #: ../../WPrefs.app/Menu.c:477 msgid "New Items" msgstr "Nuove voci" #: ../../WPrefs.app/Menu.c:478 msgid "Sample Commands" msgstr "Comandi di esempio" #: ../../WPrefs.app/Menu.c:479 msgid "Sample Submenus" msgstr "Sottomenu di esempio" #: ../../WPrefs.app/Menu.c:493 msgid "Run Program" msgstr "Esegui programma" #: ../../WPrefs.app/Menu.c:494 msgid "Internal Command" msgstr "Comando interno" #: ../../WPrefs.app/Menu.c:495 msgid "Submenu" msgstr "Sottomenu" #: ../../WPrefs.app/Menu.c:496 msgid "External Submenu" msgstr "Sottomenu esterno" #: ../../WPrefs.app/Menu.c:497 msgid "Generated Submenu" msgstr "Sottomenu generato" #: ../../WPrefs.app/Menu.c:498 msgid "Directory Contents" msgstr "Directory" #: ../../WPrefs.app/Menu.c:499 msgid "Workspace Menu" msgstr "Aree di lavoro" #: ../../WPrefs.app/Menu.c:500 ../../WPrefs.app/MouseSettings.c:840 msgid "Window List Menu" msgstr "Lista finestre" #: ../../WPrefs.app/Menu.c:519 msgid "XTerm" msgstr "XTerm" #: ../../WPrefs.app/Menu.c:522 msgid "rxvt" msgstr "rxvt" #: ../../WPrefs.app/Menu.c:525 msgid "ETerm" msgstr "ETerm" #: ../../WPrefs.app/Menu.c:528 msgid "Run..." msgstr "Esegui..." #: ../../WPrefs.app/Menu.c:531 msgid "Netscape" msgstr "Netscape" #: ../../WPrefs.app/Menu.c:534 msgid "gimp" msgstr "the Gimp" #: ../../WPrefs.app/Menu.c:537 msgid "epic" msgstr "epic" #: ../../WPrefs.app/Menu.c:540 msgid "ee" msgstr "ee" #: ../../WPrefs.app/Menu.c:543 msgid "xv" msgstr "xv" #: ../../WPrefs.app/Menu.c:546 msgid "Acrobat Reader" msgstr "Acrobat Reader" #: ../../WPrefs.app/Menu.c:549 msgid "ghostview" msgstr "ghostview" #: ../../WPrefs.app/Menu.c:552 ../../WPrefs.app/Menu.c:809 msgid "Exit Window Maker" msgstr "Esci da Window Maker" #: ../../WPrefs.app/Menu.c:575 msgid "Debian Menu" msgstr "Menu Debian" #: ../../WPrefs.app/Menu.c:578 msgid "RedHat Menu" msgstr "Menu RedHat" #: ../../WPrefs.app/Menu.c:581 msgid "Menu Conectiva" msgstr "Menu Conectiva" #: ../../WPrefs.app/Menu.c:584 ../../WPrefs.app/Themes.c:250 msgid "Themes" msgstr "Temi" #: ../../WPrefs.app/Menu.c:589 msgid "Bg Images (scale)" msgstr "Sfondi (scala)" #: ../../WPrefs.app/Menu.c:594 msgid "Bg Images (tile)" msgstr "Sfondi (ripeti)" #: ../../WPrefs.app/Menu.c:599 msgid "Assorted XTerms" msgstr "XTerm assortiti" #: ../../WPrefs.app/Menu.c:601 msgid "XTerm Yellow on Blue" msgstr "XTerm giallo su blu" #: ../../WPrefs.app/Menu.c:604 msgid "XTerm White on Black" msgstr "XTerm bianco su nero" #: ../../WPrefs.app/Menu.c:607 msgid "XTerm Black on White" msgstr "XTerm nero su bianco" #: ../../WPrefs.app/Menu.c:610 msgid "XTerm Black on Beige" msgstr "XTerm nero su beige" #: ../../WPrefs.app/Menu.c:613 msgid "XTerm White on Green" msgstr "XTerm bianco su verde" #: ../../WPrefs.app/Menu.c:616 msgid "XTerm White on Olive" msgstr "XTerm bianco su oliva" #: ../../WPrefs.app/Menu.c:619 msgid "XTerm Blue on Blue" msgstr "XTerm blu su blu" #: ../../WPrefs.app/Menu.c:622 msgid "XTerm BIG FONTS" msgstr "XTerm CARATTERI GRANDI" #: ../../WPrefs.app/Menu.c:644 msgid "Program to Run" msgstr "Programma da eseguire" #: ../../WPrefs.app/Menu.c:658 msgid "Run the program inside a Xterm" msgstr "Esegui il programma in un terminale" #: ../../WPrefs.app/Menu.c:668 msgid "Path for Menu" msgstr "Percorso del menu" #: ../../WPrefs.app/Menu.c:681 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin" msgstr "" "Scrivere il percorso di un file contenente un\n" "menù o una lista di directory con i programmi\n" "che si vogliono nel menù. Ad esempio:\n" "~/GNUstep/Library/WindowMaker/menu.it\n" "oppure\n" "/usr/bin ~/xbin" #: ../../WPrefs.app/Menu.c:696 msgid "Command" msgstr "Comando" #: ../../WPrefs.app/Menu.c:710 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "Scrivere un comando che produca una\n" "definizione di menù su stdout quando\n" "invocato." #: ../../WPrefs.app/Menu.c:721 msgid "Command to Open Files" msgstr "Comando per aprire i file" #: ../../WPrefs.app/Menu.c:735 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "Scrivere il comando da usare per aprire i file\n" "nelle directory indicate sotto." #: ../../WPrefs.app/Menu.c:744 msgid "Directories with Files" msgstr "Directory con i file" #: ../../WPrefs.app/Menu.c:757 msgid "Strip extensions from file names" msgstr "Togli le estensioni dai nomi dei file" #: ../../WPrefs.app/Menu.c:769 msgid "Keyboard Shortcut" msgstr "Scorciatoia di tastiera" #: ../../WPrefs.app/Menu.c:805 msgid "Arrange Icons" msgstr "Disponi icone" #: ../../WPrefs.app/Menu.c:806 msgid "Hide All Windows Except For The Focused One" msgstr "Nascondi tutte le finestre tranne quella attiva" #: ../../WPrefs.app/Menu.c:807 msgid "Show All Windows" msgstr "Mostra tutte le finestre" #: ../../WPrefs.app/Menu.c:810 msgid "Exit X Session" msgstr "Esci da X Window" #: ../../WPrefs.app/Menu.c:811 msgid "Restart Window Maker" msgstr "Riavvia Window Maker" #: ../../WPrefs.app/Menu.c:812 msgid "Start Another Window Manager : (" msgstr "Avvia un altro gestore di finestre : (" #: ../../WPrefs.app/Menu.c:814 msgid "Save Current Session" msgstr "Salva la sessione corrente" #: ../../WPrefs.app/Menu.c:815 msgid "Clear Saved Session" msgstr "Cancella la sessione salvata" #: ../../WPrefs.app/Menu.c:816 msgid "Refresh Screen" msgstr "Ridisegna lo schermo" #: ../../WPrefs.app/Menu.c:817 msgid "Open Info Panel" msgstr "Mostra una finestra di informazioni" #: ../../WPrefs.app/Menu.c:818 msgid "Open Copyright Panel" msgstr "Mostra una finestra con i diritti d'autore" #: ../../WPrefs.app/Menu.c:824 msgid "Window Manager to Start" msgstr "Gestore di finestre da avviare" #: ../../WPrefs.app/Menu.c:840 msgid "Do not confirm action." msgstr "Non chiedere conferma per l'azione." #: ../../WPrefs.app/Menu.c:850 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "Istruzioni:\n" "\n" " - per aggiungere elementi, trascinarli sul menù\n" " - per eliminarli elementi, trascinarli fuori dal menù\n" " - per spostare elementi, trascinarli nel menù\n" " - per copiare elementi, trascinarli premendo Control\n" " - doppio click su un elemento per cambiare l'etichetta\n" " - click su un elemento per modificare le informazioni" #: ../../WPrefs.app/Menu.c:1067 #, c-format msgid "unknown command '%s' in menu" msgstr "comando `%s' sconosciuto nel menù" #: ../../WPrefs.app/Menu.c:1099 msgid ": Execute Program" msgstr ": Esegui programma" #: ../../WPrefs.app/Menu.c:1103 msgid ": Perform Internal Command" msgstr ": Esegui comando interno" #: ../../WPrefs.app/Menu.c:1107 msgid ": Open a Submenu" msgstr ": apri un sottomenu" #: ../../WPrefs.app/Menu.c:1111 msgid ": Program Generated Submenu" msgstr ": sottomenu generato da un programma" #: ../../WPrefs.app/Menu.c:1115 msgid ": Directory Contents Menu" msgstr ": menu di directory" #: ../../WPrefs.app/Menu.c:1119 msgid ": Open Workspaces Submenu" msgstr ": sottomenu aree di lavoro" #: ../../WPrefs.app/Menu.c:1123 msgid ": Open Window List Submenu" msgstr ": lista delle finestre" #: ../../WPrefs.app/Menu.c:1343 msgid "Remove Submenu" msgstr "Elimina sottomenu" #: ../../WPrefs.app/Menu.c:1344 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "" "Eliminare questo elemento distruggerà tutti gli\n" "elementi che contiene. Si vuole farlo veramente?" #: ../../WPrefs.app/Menu.c:1346 msgid "Yes" msgstr "Sì" #: ../../WPrefs.app/Menu.c:1346 msgid "No" msgstr "No" #: ../../WPrefs.app/Menu.c:1347 msgid "Yes, don't ask again." msgstr "Sì, non chiederlo più." #. if there is a localized plmenu for the tongue put it's filename here #: ../../WPrefs.app/Menu.c:1514 ../../WPrefs.app/Menu.c:1521 #, c-format msgid "%s/Library/WindowMaker/plmenu" msgstr "%s/Library/WindowMaker/plmenu.it" #: ../../WPrefs.app/Menu.c:1530 #, c-format msgid "Could not open default menu from '%s'" msgstr "Impossibile aprire il menu predefinito da `%s'" #: ../../WPrefs.app/Menu.c:1569 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "Il formato del menu correntemente in uso non è supportato\n" "da questo programma. Si vuole scartare il menù corrente\n" "per poter usare questo programma?" #: ../../WPrefs.app/Menu.c:1572 msgid "Yes, Discard and Update" msgstr "Sì, scarta e aggiorna" #: ../../WPrefs.app/Menu.c:1573 msgid "No, Keep Current Menu" msgstr "No, tieni il menu corrente" #: ../../WPrefs.app/Menu.c:1821 msgid "Applications Menu Definition" msgstr "Definizione del menu appplicazioni" #: ../../WPrefs.app/Menu.c:1823 msgid "Edit the menu for launching applications." msgstr "Modifica il menu per lanciare le applicazioni." #: ../../WPrefs.app/MenuPreferences.c:112 msgid "Menu Scrolling Speed" msgstr "Velocità di scorrimento del menu" #: ../../WPrefs.app/MenuPreferences.c:161 msgid "Submenu Alignment" msgstr "Allineamento dei sottomenu" #: ../../WPrefs.app/MenuPreferences.c:205 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "Apri sempre i sottomenu nello schermo, invece di farli scorrere." #: ../../WPrefs.app/MenuPreferences.c:210 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "Fai scorrere i menu nello schermo quando il puntatore ci passa sopra." #: ../../WPrefs.app/MenuPreferences.c:230 msgid "Menu Preferences" msgstr "Opzioni del menu" #: ../../WPrefs.app/MenuPreferences.c:232 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "Opzioni sull'uso del menu. Velocità di scrolling,\n" "allineamento dei sottomenu, ecc." #: ../../WPrefs.app/MouseSettings.c:141 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "" "Valore di accelerazione del mouse non valido. Deve essere un valore reale " "e positivo." #: ../../WPrefs.app/MouseSettings.c:161 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "" "Valore della soglia di accelerazione del mouse non valido. Deve essere un " "numero di pixel da percorrere prima di accelerare." #: ../../WPrefs.app/MouseSettings.c:262 ../../WPrefs.app/MouseSettings.c:274 #: ../../WPrefs.app/MouseSettings.c:286 ../../WPrefs.app/MouseSettings.c:298 #, c-format msgid "bad value %s for option %s" msgstr "Valore %s errato per l'opzione %s" #: ../../WPrefs.app/MouseSettings.c:357 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "" "Il tasto modificatore %s per l'opzione ModifierKey non è stato riconosciuto. " "Uso `%s'." #: ../../WPrefs.app/MouseSettings.c:382 msgid "could not retrieve keyboard modifier mapping" msgstr "Impossibile leggere la mappa dei modificatori della tastiera." #: ../../WPrefs.app/MouseSettings.c:477 msgid "Mouse Speed" msgstr "Velocità del mouse" #: ../../WPrefs.app/MouseSettings.c:507 msgid "Acceler.:" msgstr "Acceler.:" #: ../../WPrefs.app/MouseSettings.c:520 msgid "Threshold:" msgstr "Soglia:" #: ../../WPrefs.app/MouseSettings.c:535 msgid "Double-Click Delay" msgstr "Ritardo doppio click" #: ../../WPrefs.app/MouseSettings.c:579 msgid "Test" msgstr "Prova" #: ../../WPrefs.app/MouseSettings.c:609 msgid "Workspace Mouse Actions" msgstr "Azioni del mouse sull'area di lavoro" #: ../../WPrefs.app/MouseSettings.c:614 msgid "Disable mouse actions" msgstr "Disattiva le azioni del mouse" #: ../../WPrefs.app/MouseSettings.c:620 msgid "Left Button" msgstr "Tasto sinistro" #: ../../WPrefs.app/MouseSettings.c:630 msgid "Middle Button" msgstr "Tasto centrale" #: ../../WPrefs.app/MouseSettings.c:640 msgid "Right Button" msgstr "Tasto destro" #: ../../WPrefs.app/MouseSettings.c:650 msgid "Mouse Wheel" msgstr "Rotella" #: ../../WPrefs.app/MouseSettings.c:672 msgid "Mouse Grab Modifier" msgstr "Modificatore per il mouse" #: ../../WPrefs.app/MouseSettings.c:674 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "Tasto modificatore da usare per spostare\n" "le finestre con il mouse cliccando al\n" "loro interno e trascinandole." #: ../../WPrefs.app/MouseSettings.c:708 #, c-format msgid "could not create %s" msgstr "impossibile creare %s" #: ../../WPrefs.app/MouseSettings.c:724 #, c-format msgid "could not create temporary file %s" msgstr "impossibile creare il file temporaneo %s" #: ../../WPrefs.app/MouseSettings.c:756 #, c-format msgid "could not rename file %s to %s\n" msgstr "impossibile rinominare il file %s a %s\n" #: ../../WPrefs.app/MouseSettings.c:829 msgid "Shift" msgstr "Shift" #: ../../WPrefs.app/MouseSettings.c:830 msgid "Lock" msgstr "" #: ../../WPrefs.app/MouseSettings.c:831 msgid "Control" msgstr "Control" #: ../../WPrefs.app/MouseSettings.c:832 msgid "Mod1" msgstr "Mod1" #: ../../WPrefs.app/MouseSettings.c:833 msgid "Mod2" msgstr "Mod2" #: ../../WPrefs.app/MouseSettings.c:834 msgid "Mod3" msgstr "Mod3" #: ../../WPrefs.app/MouseSettings.c:835 msgid "Mod4" msgstr "Mod4" #: ../../WPrefs.app/MouseSettings.c:836 msgid "Mod5" msgstr "Mod5" #: ../../WPrefs.app/MouseSettings.c:839 msgid "Applications Menu" msgstr "Menu applicazioni" #: ../../WPrefs.app/MouseSettings.c:841 msgid "Select Windows" msgstr "Seleziona finestre" #: ../../WPrefs.app/MouseSettings.c:844 msgid "Switch Workspaces" msgstr "Cambia area di lavoro" #: ../../WPrefs.app/MouseSettings.c:849 msgid "Mouse Preferences" msgstr "Opzioni del mouse" #: ../../WPrefs.app/MouseSettings.c:851 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "Velocità e accelerazione del mouse, ritardo\n" "del doppio click, funzioni dei tasti, ecc." #: ../../WPrefs.app/Paths.c:84 msgid "bad value in option IconPath. Using default path list" msgstr "Valore errato nell'opzione IconPath. Uso i percorsi predefiniti." #: ../../WPrefs.app/Paths.c:101 msgid "bad value in option PixmapPath. Using default path list" msgstr "Valore errato nell'opzione PixmapPath. Uso i percorsi predefiniti." #: ../../WPrefs.app/Paths.c:149 msgid "Select directory" msgstr "Selezionare la directory" #: ../../WPrefs.app/Paths.c:270 msgid "Icon Search Paths" msgstr "Percorsi di ricerca delle icone" #: ../../WPrefs.app/Paths.c:281 ../../WPrefs.app/Paths.c:312 #: ../../WPrefs.app/TexturePanel.c:1304 msgid "Add" msgstr "Aggiungi" #: ../../WPrefs.app/Paths.c:301 msgid "Pixmap Search Paths" msgstr "Percorsi di ricerca delle pixmap" #: ../../WPrefs.app/Paths.c:341 msgid "Search Path Configuration" msgstr "Configurazione percorsi di ricerca" #: ../../WPrefs.app/Paths.c:343 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "" "Scegli i percorsi dove cercare le pixmap\n" "e le icone." #: ../../WPrefs.app/Preferences.c:75 msgid "OFF" msgstr "Off" #: ../../WPrefs.app/Preferences.c:77 msgid "1 pixel" msgstr "1 pixel" #. 2-4 #: ../../WPrefs.app/Preferences.c:80 #, c-format msgid "%i pixels" msgstr "%i pixel" #. >4 #: ../../WPrefs.app/Preferences.c:83 #, c-format msgid "%i pixels " msgstr "%i pixel" #: ../../WPrefs.app/Preferences.c:219 msgid "Size Display" msgstr "Visualizzazione dimensione finestra" #: ../../WPrefs.app/Preferences.c:221 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "Stile di visualizzazione delle dimensioni della\n" "finestra quando viene ridimensionata." #: ../../WPrefs.app/Preferences.c:228 ../../WPrefs.app/Preferences.c:248 msgid "Corner of screen" msgstr "Angolo dello schermo" #: ../../WPrefs.app/Preferences.c:229 ../../WPrefs.app/Preferences.c:249 msgid "Center of screen" msgstr "Centro dello schermo" #: ../../WPrefs.app/Preferences.c:230 ../../WPrefs.app/Preferences.c:250 msgid "Center of resized window" msgstr "Centro della finestra" #: ../../WPrefs.app/Preferences.c:231 msgid "Technical drawing-like" msgstr "Disegno tecnico" #: ../../WPrefs.app/Preferences.c:239 msgid "Position Display" msgstr "Visualizzazione posizione finestra" #: ../../WPrefs.app/Preferences.c:241 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "Stile di visualizzazione delle coordinate della\n" "finestra quando viene spostata." #: ../../WPrefs.app/Preferences.c:258 msgid "Show balloon text for..." msgstr "Mostra suggerimento per..." #: ../../WPrefs.app/Preferences.c:265 msgid "incomplete window titles" msgstr "...titoli finestre incompleti." #: ../../WPrefs.app/Preferences.c:266 msgid "miniwindow titles" msgstr "...titoli delle icone." #: ../../WPrefs.app/Preferences.c:267 msgid "application/dock icons" msgstr "...applicazioni e icone sul Dock." #: ../../WPrefs.app/Preferences.c:268 msgid "internal help" msgstr "...aiuto di Window Maker" #: ../../WPrefs.app/Preferences.c:280 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "" "Porta davanti le finestre " "cambiando focus con la tastiera." #: ../../WPrefs.app/Preferences.c:286 msgid "" "Enable keyboard language\n" "switch button in window titlebars." msgstr "" "Bottone di cambio della lingua\n" "della tastiera sulle barre dei titoli." #: ../../WPrefs.app/Preferences.c:295 msgid "Workspace border" msgstr "Bordo dell'area di lavoro" #: ../../WPrefs.app/Preferences.c:311 msgid "Left/Right" msgstr "Sinistra/Destra" #: ../../WPrefs.app/Preferences.c:316 msgid "Top/Bottom" msgstr "Sopra/Sotto" #: ../../WPrefs.app/Preferences.c:337 msgid "Miscellaneous Ergonomic Preferences" msgstr "Opzioni varie di ergonomia" #: ../../WPrefs.app/Preferences.c:338 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "Opzioni varie come i suggerimenti, visualizzazione\n" "delle geometrie, ecc." #: ../../WPrefs.app/TexturePanel.c:603 msgid "Could not load the selected file: " msgstr "Impossibile caricare il file dell'icona %s" #: ../../WPrefs.app/TexturePanel.c:657 msgid "Open Image" msgstr "Apri immagine" #: ../../WPrefs.app/TexturePanel.c:687 msgid "The selected file does not contain a supported image." msgstr "Il file selezionato non contiene un'immagine conosciuta." #: ../../WPrefs.app/TexturePanel.c:938 #, c-format msgid "could not load file '%s': %s" msgstr "impossibile caricare il file `%s': %s" #: ../../WPrefs.app/TexturePanel.c:1057 #, c-format msgid "error creating texture %s" msgstr "errore creando la trama %s" #: ../../WPrefs.app/TexturePanel.c:1248 msgid "Texture Panel" msgstr "Modifica trama" #: ../../WPrefs.app/TexturePanel.c:1256 msgid "Texture Name" msgstr "Nome della trama" #: ../../WPrefs.app/TexturePanel.c:1268 msgid "Solid Color" msgstr "Tinta unita" #: ../../WPrefs.app/TexturePanel.c:1269 msgid "Gradient Texture" msgstr "Sfumatura" #: ../../WPrefs.app/TexturePanel.c:1270 msgid "Simple Gradient Texture" msgstr "Sfumatura semplice" #: ../../WPrefs.app/TexturePanel.c:1271 msgid "Textured Gradient" msgstr "Immagine sfumata" #: ../../WPrefs.app/TexturePanel.c:1272 msgid "Image Texture" msgstr "Immagine" #: ../../WPrefs.app/TexturePanel.c:1280 msgid "Default Color" msgstr "Colore base" #: ../../WPrefs.app/TexturePanel.c:1292 msgid "Gradient Colors" msgstr "Colori sfumatura" #: ../../WPrefs.app/TexturePanel.c:1388 msgid "Direction" msgstr "Direzione" #: ../../WPrefs.app/TexturePanel.c:1416 msgid "Gradient" msgstr "Sfumatura" #: ../../WPrefs.app/TexturePanel.c:1434 msgid "Gradient Opacity" msgstr "Traparenza sfumatura" #: ../../WPrefs.app/TexturePanel.c:1477 msgid "Image" msgstr "Immagine" #: ../../WPrefs.app/TexturePanel.c:1509 msgid "Tile" msgstr "Affianca" #: ../../WPrefs.app/TexturePanel.c:1510 msgid "Scale" msgstr "Ridimensiona" #: ../../WPrefs.app/TexturePanel.c:1512 msgid "Maximize" msgstr "Ingrandisci" #: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 msgid "Set" msgstr "Attiva" #: ../../WPrefs.app/Themes.c:132 msgid "Stop" msgstr "Ferma" #: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:203 #: ../../WPrefs.app/Themes.c:223 msgid "Download" msgstr "Scarica" #: ../../WPrefs.app/Themes.c:171 msgid "Save Current Theme" msgstr "Salva il tema corrente" #: ../../WPrefs.app/Themes.c:180 msgid "Load" msgstr "Carica" #: ../../WPrefs.app/Themes.c:185 msgid "Install" msgstr "Installa" #: ../../WPrefs.app/Themes.c:193 msgid "Tile of The Day" msgstr "Tile del giorno" #: ../../WPrefs.app/Themes.c:213 msgid "Bar of The Day" msgstr "Barra del giorno" #: ../../WPrefs.app/WindowHandling.c:141 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "" "Valore %s errato per l'opzione WindowPlacement. Uso il valore predefinito" #: ../../WPrefs.app/WindowHandling.c:163 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "Valore errato per l'opzione WindowPlaceOrigin. Uso (0,0)" #: ../../WPrefs.app/WindowHandling.c:243 msgid "Window Placement" msgstr "Posizionamento delle finestre" #: ../../WPrefs.app/WindowHandling.c:244 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "Posizionamento delle finestre quando appaiono\n" "la prima volta sullo schermo." #: ../../WPrefs.app/WindowHandling.c:250 msgid "Automatic" msgstr "Automatico" #: ../../WPrefs.app/WindowHandling.c:251 msgid "Random" msgstr "Casuale" #: ../../WPrefs.app/WindowHandling.c:252 msgid "Manual" msgstr "Manuale" #: ../../WPrefs.app/WindowHandling.c:253 msgid "Cascade" msgstr "A cascata" #: ../../WPrefs.app/WindowHandling.c:254 msgid "Smart" msgstr "Intelligente" #: ../../WPrefs.app/WindowHandling.c:260 msgid "Placement Origin" msgstr "Origine\nposizionamento" #: ../../WPrefs.app/WindowHandling.c:321 msgid "Opaque Move" msgstr "Movimento opaco" #: ../../WPrefs.app/WindowHandling.c:322 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "Imposta se debba essere visualizzato il contenuto\n" "delle finestre quando vengono spostate o se mostrare\n" "solo un rettangolo.\n" #: ../../WPrefs.app/WindowHandling.c:361 msgid "When maximizing..." msgstr "Quando ingrandisci..." #: ../../WPrefs.app/WindowHandling.c:366 msgid "...do not cover icons" msgstr "...non coprire le icone." #: ../../WPrefs.app/WindowHandling.c:372 msgid "...do not cover dock" msgstr "...non coprire il Dock." #: ../../WPrefs.app/WindowHandling.c:381 msgid "Edge Resistance" msgstr "Resistenza dei bordi" #: ../../WPrefs.app/WindowHandling.c:383 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "La resistenza dei bordi fa sì che la finestra\n" "`resista' allo spostamento fino al superamento\n" "della soglia impostata quando viene avvicinata\n" "ad altre finestre o ai bordi dello schermo." #: ../../WPrefs.app/WindowHandling.c:402 msgid "Resist" msgstr "Resisti" #: ../../WPrefs.app/WindowHandling.c:407 msgid "Attract" msgstr "Attrai" #: ../../WPrefs.app/WindowHandling.c:423 msgid "" "Open dialogs in same workspace\n" "as their owners" msgstr "" "Apri le finestre di dialogo nella\n" "stessa area di lavoro dei proprietari." #: ../../WPrefs.app/WindowHandling.c:450 msgid "Window Handling Preferences" msgstr "Opzioni di gestione delle finestre" #: ../../WPrefs.app/WindowHandling.c:452 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "Opzioni di gestione delle finestre. Posizionamento,\n" "resistenza dei bordi, modo di spostamento, ecc." #: ../../WPrefs.app/Workspace.c:176 msgid "Workspace Navigation" msgstr "Navigazione delle aree di lavoro" #: ../../WPrefs.app/Workspace.c:183 msgid "" "wrap to the first workspace after the\n" "last workspace." msgstr "" "Passa alla prima area di lavoro quando supero l'ultima." #: ../../WPrefs.app/Workspace.c:205 msgid "switch workspaces while dragging windows." msgstr "Cambia area di lavoro spostando le finestre." #: ../../WPrefs.app/Workspace.c:227 msgid "automatically create new workspaces." msgstr "Crea automaticamente nuove aree di lavoro." #: ../../WPrefs.app/Workspace.c:250 msgid "" "Position of workspace\n" "name display" msgstr "" "Posizione del nome\n" "delle aree di lavoro" #: ../../WPrefs.app/Workspace.c:269 msgid "Disable" msgstr "Disattiva" #: ../../WPrefs.app/Workspace.c:271 msgid "Top" msgstr "In alto" #: ../../WPrefs.app/Workspace.c:272 msgid "Bottom" msgstr "In basso" #: ../../WPrefs.app/Workspace.c:273 msgid "Top/Left" msgstr "In alto a sinistra" #: ../../WPrefs.app/Workspace.c:274 msgid "Top/Right" msgstr "In alto a destra" #: ../../WPrefs.app/Workspace.c:275 msgid "Bottom/Left" msgstr "In basso a sinistra" #: ../../WPrefs.app/Workspace.c:276 msgid "Bottom/Right" msgstr "In basso a destra" #: ../../WPrefs.app/Workspace.c:284 msgid "Dock/Clip" msgstr "Dock/Clip" #: ../../WPrefs.app/Workspace.c:303 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "Attiva/disattiva il Dock delle applicazioni (la barra\n" "di icone verticale a lato dello schermo)." #: ../../WPrefs.app/Workspace.c:324 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "Attiva/disattiva la Clip (quella cosa con\n" "una graffetta disegnata)." #: ../../WPrefs.app/Workspace.c:364 msgid "Workspace Preferences" msgstr "Opzioni delle aree di lavoro" #: ../../WPrefs.app/Workspace.c:366 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "Opzioni di navigazione delle aree di lavoro. Si possono\n" "anche attivare e disattivare il Dock o la Clip" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/cs.po��������������������������������������������������������������0000644�0001750�0001750�00000137176�12214432632�014350� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Message catalog for WindowMaker WPrefs.app # Copyright (C) 1998 Free Software Foundation, Inc. # David Sauer <xsauer@fel.cvut.cz>, 1998. # Lukas Tinkl <caybro@seznam.cz>, 1999. # Jiří Hnídek <jiri.hnidek@vslib.cz>, 2001. # WPrefs for WindowMaker 0.70.0 # ÄŒt pro 3 20:38:36 CET 1998 David Sauer # Pá dub 23 09:14:20 CEST 1999 David Å auer # St Äec 14 10:30:00 CEST 1999 Lukáš Tinkl # Ne říj 14 21:07:53 CEST 2001 Jiří Hnídek # msgid "" msgstr "" "Project-Id-Version: WPrefs for WindowMaker 0.70.0\n" "POT-Creation-Date: 2001-10-14 20:30+0200\n" "PO-Revision-Date: 2001-10-14 21:07+0000\n" "Last-Translator: Jiří Hnídek <jiri.hnidek@vslib.cz>\n" "Language-Team: czech <cs@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: unknown\n" #: ../Appearance.c:1131 msgid "Select File" msgstr "Vyberte soubor" #: ../Appearance.c:1533 msgid "Focused Window" msgstr "Zaměřené okno" #: ../Appearance.c:1537 msgid "Unfocused Window" msgstr "Nezaměřené okno" #: ../Appearance.c:1541 msgid "Owner of Focused Window" msgstr "Vlastník zaměřeného okna" #: ../Appearance.c:1545 ../Appearance.c:1862 msgid "Menu Title" msgstr "Titulek menu" #: ../Appearance.c:1549 ../Appearance.c:1551 msgid "Normal Item" msgstr "Normální" #: ../Appearance.c:1555 msgid "Disabled Item" msgstr "Nepřístupná" #: ../Appearance.c:1564 msgid "Highlighted" msgstr "Vysvícená" #: ../Appearance.c:1755 msgid "Texture" msgstr "Textura" #: ../Appearance.c:1763 msgid "Titlebar of Focused Window" msgstr "Titulek zaměřeného okna" #: ../Appearance.c:1764 msgid "Titlebar of Unfocused Windows" msgstr "Titulek nezaměřeného okna" #: ../Appearance.c:1765 msgid "Titlebar of Focused Window's Owner" msgstr "Titulek zaměřeného vlastníka okna" #: ../Appearance.c:1766 msgid "Window Resizebar" msgstr "ZvÄ›tÅ¡ovací rámeÄek okna" #: ../Appearance.c:1767 msgid "Titlebar of Menus" msgstr "Titulek menu" #: ../Appearance.c:1768 msgid "Menu Items" msgstr "Položky menu" #: ../Appearance.c:1769 msgid "Icon Background" msgstr "Pozadí ikon" #: ../Appearance.c:1784 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "DvojkliknÄ›te na texturu, kterou chcete použít\n" "pro vybranou položku." #: ../Appearance.c:1798 msgid "New" msgstr "Nová" #: ../Appearance.c:1802 msgid "Create a new texture." msgstr "VytvoÅ™it novou texturu." #: ../Appearance.c:1810 msgid "Extract..." msgstr "PÅ™evzít..." #: ../Appearance.c:1814 msgid "Extract texture(s) from a theme or a style file." msgstr "PÅ™evzít texturu(y) ze souboru témat nebo stylů." #: ../Appearance.c:1824 msgid "Edit" msgstr "Upravit" #: ../Appearance.c:1827 msgid "Edit the highlighted texture." msgstr "Upravit vybranou texturu." #: ../Appearance.c:1835 ../TexturePanel.c:1316 msgid "Delete" msgstr "Vymazat" #: ../Appearance.c:1839 msgid "Delete the highlighted texture." msgstr "Vymazat vybranou texturu." #: ../Appearance.c:1852 msgid "Color" msgstr "Barva" #: ../Appearance.c:1859 msgid "Focused Window Title" msgstr "Titulek zaměřeného okna" #: ../Appearance.c:1860 msgid "Unfocused Window Title" msgstr "Titulek nezaměřeného okna" #: ../Appearance.c:1861 msgid "Owner of Focused Window Title" msgstr "Titulek vlastníka zaměřeného okna" #: ../Appearance.c:1863 msgid "Menu Item Text" msgstr "Text položky menu" #: ../Appearance.c:1864 msgid "Disabled Menu Item Text" msgstr "Text nepřístupné položky menu" #: ../Appearance.c:1865 msgid "Menu Highlight Color" msgstr "Barva pro vysvícení menu" #: ../Appearance.c:1866 msgid "Highlighted Menu Text Color" msgstr "Barva textu vybraného menu" #: ../Appearance.c:1905 msgid "Background" msgstr "Pozadí" #: ../Appearance.c:1917 ../TexturePanel.c:1503 msgid "Browse..." msgstr "Hledat..." #: ../Appearance.c:1930 msgid "Options" msgstr "Volby" #: ../Appearance.c:1937 msgid "Menu Style" msgstr "Styl menu" #: ../Appearance.c:1965 ../Configurations.c:242 ../Configurations.c:254 #: ../Focus.c:288 ../Focus.c:299 ../MenuPreferences.c:134 #: ../MenuPreferences.c:145 ../MenuPreferences.c:173 ../MenuPreferences.c:188 #: ../MouseSettings.c:560 ../MouseSettings.c:571 ../WPrefs.c:558 #: ../WPrefs.c:583 #, c-format msgid "could not load icon file %s" msgstr "nelze naÄíst soubor s ikonou %s" #: ../Appearance.c:1979 msgid "Title Alignment" msgstr "Zarovnání titulku" #: ../Appearance.c:1986 msgid "Left" msgstr "Vlevo" #: ../Appearance.c:1989 ../TexturePanel.c:1517 ../Workspace.c:270 msgid "Center" msgstr "UprostÅ™ed" #: ../Appearance.c:1992 msgid "Right" msgstr "Vpravo" #: ../Appearance.c:2216 msgid "Appearance Preferences" msgstr "Nastavení vzhledu" #: ../Appearance.c:2218 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "Nastavení textury na pozadí pro okna, menu a\n" "ikony." #: ../Appearance.c:2263 msgid "Extract Texture" msgstr "Vyjmutí textury" #: ../Appearance.c:2283 msgid "Textures" msgstr "Textury" #: ../Appearance.c:2294 ../WPrefs.c:302 msgid "Close" msgstr "Uzavřít" #: ../Appearance.c:2299 msgid "Extract" msgstr "PÅ™evzít" #: ../Configurations.c:150 ../Configurations.c:156 ../MouseSettings.c:490 #: ../WindowHandling.c:339 ../WindowHandling.c:351 ../Workspace.c:90 #: ../Workspace.c:101 #, c-format msgid "could not load icon %s" msgstr "nelze naÄíst ikonu %s" #: ../Configurations.c:164 ../Workspace.c:109 #, c-format msgid "could not process icon %s: %s" msgstr "nelze zpracovat ikonu %s: %s" #: ../Configurations.c:189 ../Workspace.c:164 #, c-format msgid "could not load image file %s" msgstr "ze souboru %s nelze naÄíst obrázek" #: ../Configurations.c:203 msgid "Icon Slide Speed" msgstr "Rychlost klouzání ikony" #: ../Configurations.c:209 msgid "Shade Animation Speed" msgstr "Rychlost zmÄ›ny okna na titulek" #: ../Configurations.c:271 msgid "Smooth Scaling" msgstr "Jemné pÅ™echody" #: ../Configurations.c:272 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "Obrázky na pozadí budou 'hladší' a zmizí tak\n" "efekt 'pixelizace'. Nahrávání obrázků se vÅ¡ak\n" "znaÄnÄ› zpomalí." #: ../Configurations.c:313 msgid "Titlebar Style" msgstr "Styl titulku" #: ../Configurations.c:351 msgid "Animations and Sound" msgstr "Animace a Zvuky" #: ../Configurations.c:357 msgid "Animations" msgstr "Animace" #: ../Configurations.c:368 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "Zapnout/Vypnout animace jako napÅ™.\n" "minimalizace okna, srolování atd." #: ../Configurations.c:376 msgid "Superfluous" msgstr "Animace++" #: ../Configurations.c:387 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "Zapnout/Vypnout extra animace jako napÅ™.\n" "poloprůhlednost doku pÅ™i pÅ™esouvání na\n" "druhou stranu nebo efekt exploze pro odkotvené\n" "ikony." #: ../Configurations.c:397 msgid "Sounds" msgstr "Zvuky" #: ../Configurations.c:408 msgid "" "Disable/enable support for sound effects played\n" "for actions like shading and closing a window.\n" "You will need a module distributed separately\n" "for this. You can get it at:\n" "http://shadowmere.student.utwente.nl/" msgstr "" "Zapnout/Vypnout podporu zvuku, pÅ™ehrávaných\n" "napÅ™. bÄ›hem zarolování nebo zavírání okna.\n" "K tomu ale budete potÅ™ebovat modul, který\n" "je distribuován oddÄ›lenÄ›. Můžete ho získat na:\n" "http://shadowmere.student.utwente.nl" #: ../Configurations.c:419 msgid "" "Note: sound requires a module distributed\n" "separately" msgstr "Poznámka: zvuk vyžaduje samostatný modul" #: ../Configurations.c:429 msgid "Dithering colormap for 8bpp" msgstr "Ditherovat na 8bpp" #: ../Configurations.c:431 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "PoÄet barev, které je tÅ™eba rezervovat pro Window Maker\n" "pro obrazovky, které podporují pouze 8bpp (PseudoBarvy)." #: ../Configurations.c:438 msgid "Disable dithering in any visual/depth" msgstr "Zakázat jakékoli ditherování" #: ../Configurations.c:459 msgid "" "More colors for\n" "applications" msgstr "Barvy aplikacím" #: ../Configurations.c:466 msgid "" "More colors for\n" "Window Maker" msgstr "" "Barvy Window\n" "Makeru" #: ../Configurations.c:521 msgid "Other Configurations" msgstr "Další konfigurace" #: ../Configurations.c:523 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "Rychlost animace, styly titulku, různá nastavení\n" "a poÄet barev, který je tÅ™eba rezervovat pro \n" "Window Maker na 8bitových obrazovkách." #: ../Expert.c:75 msgid "" "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." msgstr "" "Zakázat miniokna (ikony pro miniaturizovaná okna). Použitelné pro KDE/GNOME." #: ../Expert.c:76 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "Nenastavovat parametry mimo WindowMaker (nepoužívat xset)" #: ../Expert.c:77 msgid "Automatically save session when exiting Window Maker." msgstr "PÅ™i ukonÄení Window Makeru automaticky uložit sezení" #: ../Expert.c:78 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "Používat SaveUnder pÅ™i vykreslení rámeÄků, menu, ikon apod." #: ../Expert.c:79 msgid "Use Windoze style cycling." msgstr "Používat Windousoidní styl opakování pÅ™epínání oken." #: ../Expert.c:80 msgid "Disable confirmation panel for the Kill command." msgstr "Zakázat potvrzovací panel po zabití aplikace." #: ../Expert.c:81 msgid "Disable selection animation for selected icons." msgstr "Zakázat animace pro vybrané ikony." #: ../Expert.c:115 msgid "Expert User Preferences" msgstr "Nastavení pro experty" #: ../Expert.c:117 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "Nastavení pro lidi, kteří vÄ›dí, co dÄ›lají...\n" "A různá další nastavení." #: ../Focus.c:80 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "chybná hodnota %s pro FocusMode. Používám Manual" #: ../Focus.c:94 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "chybná hodnota %s pro ColormapMode. Používám standardní Auto" #: ../Focus.c:214 msgid "Input Focus Mode" msgstr "Způsob zaměření okna" #: ../Focus.c:222 msgid "Manual: Click on the window to set keyboard input focus" msgstr "RuÄnÄ›: Ťuk myÅ¡i zaměří okno." #: ../Focus.c:229 msgid "Auto: Set keyboard input focus to the window under the mouse pointer" msgstr "" "Automaticky: Nastaví zaměření\n" "vstupu na okno pod ukazatelem\n" "myÅ¡i." #: ../Focus.c:243 msgid "Install colormap in the window..." msgstr "Nastavit mapu barev v oknÄ›," #: ../Focus.c:248 msgid "...that has the input focus." msgstr "které má zaměření." #: ../Focus.c:253 msgid "...that is under the mouse pointer." msgstr "které je pod myší." #: ../Focus.c:262 msgid "Automatic Window Raise Delay" msgstr "Prodleva pÅ™i vyzdvihnutí oken" #: ../Focus.c:319 ../MouseSettings.c:601 msgid "msec" msgstr "ms" #: ../Focus.c:336 msgid "" "Do not let applications receive\n" "the click used to focus windows." msgstr "" "Nenechat aplikaci pÅ™ijmout Å¥uk\n" "myÅ¡i k zaměření oken." #: ../Focus.c:342 msgid "" "Automatically focus new\n" "windows." msgstr "" "Automaticky zaměřit\n" "nová okna." #: ../Focus.c:363 msgid "Window Focus Preferences" msgstr "Nastavení zaměření oken" #: ../Focus.c:365 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "Styl zaměření z klávesnice, styl pÅ™epínání\n" "mapy barev pro 8bpp obrazovky apod." #: ../Font.c:276 msgid "Could not locate font information file WPrefs.app/font.data" msgstr "Nemohu najít soubor s informacemi o fontech WPrefs.app/font.data" #: ../Font.c:282 msgid "Could not read font information file WPrefs.app/font.data" msgstr "Nemohu naÄíst soubor s informacemi o fontech WPrefs.app/font.data" #: ../Font.c:293 msgid "" "Invalid data in font information file WPrefs.app/font.data.\n" "Encodings data not found." msgstr "" "Chybná data v souboru s informacemi o fontech WPrefs.app/font.data.\n" "Zakódovaná data nebyla nalezena." #: ../Font.c:298 msgid "- Custom -" msgstr "- Zvyk -" #: ../Font.c:329 ../Menu.c:1533 ../MouseSettings.c:140 ../MouseSettings.c:160 #: ../TexturePanel.c:613 ../TexturePanel.c:693 ../Themes.c:96 ../WPrefs.c:758 #: ../WPrefs.c:763 ../WPrefs.c:780 ../WPrefs.c:790 ../WPrefs.c:800 #: ../WPrefs.c:838 ../WPrefs.c:843 msgid "Error" msgstr "Chyba" #: ../Font.c:329 ../Menu.c:1533 ../MouseSettings.c:142 ../MouseSettings.c:162 #: ../TexturePanel.c:614 ../TexturePanel.c:695 ../TexturePanel.c:1528 #: ../Themes.c:98 ../WPrefs.c:758 ../WPrefs.c:763 ../WPrefs.c:782 #: ../WPrefs.c:794 ../WPrefs.c:800 ../WPrefs.c:807 ../WPrefs.c:838 #: ../WPrefs.c:843 ../imagebrowser.c:105 msgid "OK" msgstr "OK" #: ../Font.c:376 msgid "Default Font Sets" msgstr "Standardní nastavení fontů" #: ../Font.c:389 msgid "Font Set" msgstr "Sada fontů" #: ../Font.c:418 msgid "Add..." msgstr "PÅ™idat..." #: ../Font.c:423 ../Font.c:438 msgid "Change..." msgstr "ZmÄ›nit..." #: ../Font.c:428 ../Paths.c:288 ../Paths.c:319 msgid "Remove" msgstr "Odstranit" #: ../Font.c:477 msgid "Font Preferences" msgstr "Nastavení ikon" #: ../Font.c:478 msgid "Font Configurations for Windows, Menus etc" msgstr "" "Nastavení textury na pozadí pro okna, menu a\n" "ikony." #: ../Icons.c:180 msgid "Icon Positioning" msgstr "UmísÅ¥ování minimalizovaných aplikací" #: ../Icons.c:227 msgid "Iconification Animation" msgstr "Animace ikonifikace" #: ../Icons.c:238 msgid "Shrinking/Zooming" msgstr "ZmenÅ¡ení/ZvÄ›tÅ¡ení" #: ../Icons.c:239 msgid "Spinning/Twisting" msgstr "Víření/Kroucení" #: ../Icons.c:240 msgid "3D-flipping" msgstr "3D salta" #: ../Icons.c:241 ../MouseSettings.c:838 ../MouseSettings.c:843 msgid "None" msgstr "Žádná" #: ../Icons.c:254 msgid "Auto-arrange icons" msgstr "Automaticky rovnat ikony" #: ../Icons.c:256 msgid "Keep icons and miniwindows arranged all the time." msgstr "Vždy udržovat ikony a miniokna uspořádaná." #: ../Icons.c:262 msgid "Omnipresent miniwindows" msgstr "Miniokna na vÅ¡ech plochách" #: ../Icons.c:264 msgid "Make miniwindows be present in all workspaces." msgstr "Povolit oknům přítomnost na vÅ¡ech plochách." #: ../Icons.c:273 msgid "Icon Size" msgstr "Velikost ikony" #: ../Icons.c:275 msgid "The size of the dock/application icon and miniwindows" msgstr "Velikost dokované aplikace a minioken" #: ../Icons.c:345 msgid "Icon Preferences" msgstr "Nastavení ikon" #: ../Icons.c:347 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "Způsob zacházení s ikonami. UmísÅ¥ování\n" "ikon, velikost ikon, animace pro miniaturizaci." #: ../KeyboardSettings.c:73 msgid "Initial Key Repeat" msgstr "ZaÄít opakovat po ..." #: ../KeyboardSettings.c:114 msgid "Key Repeat Rate" msgstr "Rychlost opakování kláves" #: ../KeyboardSettings.c:154 msgid "Type here to test" msgstr "Zkuste zde" #: ../KeyboardSettings.c:173 msgid "Keyboard Preferences" msgstr "Nastavení klávesnice" #: ../KeyboardSettings.c:175 msgid "Not done" msgstr "JeÅ¡tÄ› ne..." #: ../KeyboardShortcuts.c:186 ../Menu.c:327 ../TexturePanel.c:1534 #: ../imagebrowser.c:100 msgid "Cancel" msgstr "ZruÅ¡it" #: ../KeyboardShortcuts.c:187 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "StisknÄ›te požadované klávesy nebo použijete \"ZruÅ¡it\"." #: ../KeyboardShortcuts.c:207 ../KeyboardShortcuts.c:456 ../Menu.c:338 #: ../Menu.c:782 msgid "Capture" msgstr "Snímat" #: ../KeyboardShortcuts.c:208 ../KeyboardShortcuts.c:464 msgid "Click Capture to interactively define the shortcut key." msgstr "Použijte \"Snímat\" k definici klávesy." #: ../KeyboardShortcuts.c:363 msgid "Actions" msgstr "Akce" #: ../KeyboardShortcuts.c:379 msgid "Open applications menu" msgstr "Otevřít menu aplikací" #: ../KeyboardShortcuts.c:380 msgid "Open window list menu" msgstr "Otevřít menu s okny" #: ../KeyboardShortcuts.c:381 msgid "Open window commands menu" msgstr "Otevřít menu s pÅ™ikazy pro okno" #: ../KeyboardShortcuts.c:382 msgid "Hide active application" msgstr "Skrýt aplikaci" #: ../KeyboardShortcuts.c:383 msgid "Miniaturize active window" msgstr "Miniaturizace" #: ../KeyboardShortcuts.c:384 msgid "Close active window" msgstr "Uzavřít okno" #: ../KeyboardShortcuts.c:385 msgid "Maximize active window" msgstr "Maximalizace okna" #: ../KeyboardShortcuts.c:386 msgid "Maximize active window vertically" msgstr "Vertikální maximalizace" #: ../KeyboardShortcuts.c:387 msgid "Maximize active window horizontally" msgstr "Horizontální maximalizace" #: ../KeyboardShortcuts.c:388 msgid "Raise active window" msgstr "Aktivní okno výše" #: ../KeyboardShortcuts.c:389 msgid "Lower active window" msgstr "Aktivní okno níže" #: ../KeyboardShortcuts.c:390 msgid "Raise/Lower window under mouse pointer" msgstr "Okno pod ukazatelem myÅ¡i výše/níže" #: ../KeyboardShortcuts.c:391 msgid "Shade active window" msgstr "Z okna jen titulek" #: ../KeyboardShortcuts.c:392 msgid "Move/Resize active window" msgstr "PÅ™esunout/zvÄ›tÅ¡it aktivní okno" #: ../KeyboardShortcuts.c:393 msgid "Select active window" msgstr "Vybrat okno" #: ../KeyboardShortcuts.c:394 msgid "Focus next window" msgstr "Zaměřit další okno" #: ../KeyboardShortcuts.c:395 msgid "Focus previous window" msgstr "Zaměřit pÅ™edchozí okno" #: ../KeyboardShortcuts.c:396 msgid "Switch to next workspace" msgstr "PÅ™epnout na další plocha" #: ../KeyboardShortcuts.c:397 msgid "Switch to previous workspace" msgstr "PÅ™epnout na pÅ™edchozí plochu" #: ../KeyboardShortcuts.c:398 msgid "Switch to next ten workspaces" msgstr "PÅ™epnout na dalších 10 ploch" #: ../KeyboardShortcuts.c:399 msgid "Switch to previous ten workspaces" msgstr "PÅ™epnout na pÅ™edchozích 10 ploch" #: ../KeyboardShortcuts.c:400 msgid "Switch to workspace 1" msgstr "PÅ™epnout na plochu 1" #: ../KeyboardShortcuts.c:401 msgid "Switch to workspace 2" msgstr "PÅ™epnout na plochu 2" #: ../KeyboardShortcuts.c:402 msgid "Switch to workspace 3" msgstr "PÅ™epnout na plochu 3" #: ../KeyboardShortcuts.c:403 msgid "Switch to workspace 4" msgstr "PÅ™epnout na plochu 4" #: ../KeyboardShortcuts.c:404 msgid "Switch to workspace 5" msgstr "PÅ™epnout na plochu 5" #: ../KeyboardShortcuts.c:405 msgid "Switch to workspace 6" msgstr "PÅ™epnout na plochu 6" #: ../KeyboardShortcuts.c:406 msgid "Switch to workspace 7" msgstr "PÅ™epnout na plochu 7" #: ../KeyboardShortcuts.c:407 msgid "Switch to workspace 8" msgstr "PÅ™epnout na plochu 8" #: ../KeyboardShortcuts.c:408 msgid "Switch to workspace 9" msgstr "PÅ™epnout na plochu 9" #: ../KeyboardShortcuts.c:409 msgid "Switch to workspace 10" msgstr "PÅ™epnout na plochu 10" #: ../KeyboardShortcuts.c:410 msgid "Shortcut for window 1" msgstr "Zkratka pro okno 1" #: ../KeyboardShortcuts.c:411 msgid "Shortcut for window 2" msgstr "Zkratka pro okno 2" #: ../KeyboardShortcuts.c:412 msgid "Shortcut for window 3" msgstr "Zkratka pro okno 3" #: ../KeyboardShortcuts.c:413 msgid "Shortcut for window 4" msgstr "Zkratka pro okno 4" #: ../KeyboardShortcuts.c:414 msgid "Shortcut for window 5" msgstr "Zkratka pro okno 5" #: ../KeyboardShortcuts.c:415 msgid "Shortcut for window 6" msgstr "Zkratka pro okno 6" #: ../KeyboardShortcuts.c:416 msgid "Shortcut for window 7" msgstr "Zkratka pro okno 7" #: ../KeyboardShortcuts.c:417 msgid "Shortcut for window 8" msgstr "Zkratka pro okno 8" #: ../KeyboardShortcuts.c:418 msgid "Shortcut for window 9" msgstr "Zkratka pro okno 9" #: ../KeyboardShortcuts.c:419 msgid "Shortcut for window 10" msgstr "Zkratka pro okno 10" #: ../KeyboardShortcuts.c:420 msgid "Switch to Next Screen/Monitor" msgstr "PÅ™epnout na dalších 10 ploch" #: ../KeyboardShortcuts.c:421 msgid "Raise Clip" msgstr "Sponku výše" #: ../KeyboardShortcuts.c:422 msgid "Lower Clip" msgstr "Sponku níže" #: ../KeyboardShortcuts.c:423 msgid "Raise/Lower Clip" msgstr "Sponku výše/níže" #: ../KeyboardShortcuts.c:425 msgid "Toggle keyboard language" msgstr "ZmÄ›nit jazyk klávesnice" #: ../KeyboardShortcuts.c:439 msgid "Shortcut" msgstr "Zkratka" #: ../KeyboardShortcuts.c:450 ../Menu.c:788 msgid "Clear" msgstr "Vymazat" #: ../KeyboardShortcuts.c:512 msgid "Keyboard Shortcut Preferences" msgstr "Nastavení klávesových zkratek" #: ../KeyboardShortcuts.c:514 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "ZmÄ›nit klávesové zkratky pro akce jako\n" "zmÄ›na plochy a otevírání menu." #: ../Menu.c:477 msgid "New Items" msgstr "Nová Položka" #: ../Menu.c:478 msgid "Sample Commands" msgstr "Příklad Příkazu" #: ../Menu.c:479 msgid "Sample Submenus" msgstr "Příklad Submenu" #: ../Menu.c:493 msgid "Run Program" msgstr "Spustiti program" #: ../Menu.c:494 msgid "Internal Command" msgstr "VnitÅ™ní příkaz" #: ../Menu.c:495 msgid "Submenu" msgstr "" #: ../Menu.c:496 msgid "External Submenu" msgstr "VnÄ›jší Submenu" #: ../Menu.c:497 msgid "Generated Submenu" msgstr "Generované Submenu" #: ../Menu.c:498 msgid "Directory Contents" msgstr "Obasah adresáře" #: ../Menu.c:499 msgid "Workspace Menu" msgstr "Pracovní plocha" #: ../Menu.c:500 ../MouseSettings.c:840 msgid "Window List Menu" msgstr "Seznam oken" #: ../Menu.c:519 msgid "XTerm" msgstr "" #: ../Menu.c:522 msgid "rxvt" msgstr "" #: ../Menu.c:525 msgid "ETerm" msgstr "" #: ../Menu.c:528 msgid "Run..." msgstr "Spustit..." #: ../Menu.c:531 msgid "Netscape" msgstr "" #: ../Menu.c:534 msgid "gimp" msgstr "" #: ../Menu.c:537 msgid "epic" msgstr "" #: ../Menu.c:540 msgid "ee" msgstr "" #: ../Menu.c:543 msgid "xv" msgstr "" #: ../Menu.c:546 msgid "Acrobat Reader" msgstr "" #: ../Menu.c:549 msgid "ghostview" msgstr "" #: ../Menu.c:552 ../Menu.c:809 msgid "Exit Window Maker" msgstr "UkonÄí Window maker" #: ../Menu.c:575 msgid "Debian Menu" msgstr "" #: ../Menu.c:578 msgid "RedHat Menu" msgstr "" #: ../Menu.c:581 msgid "Menu Conectiva" msgstr "" #: ../Menu.c:584 ../Themes.c:250 msgid "Themes" msgstr "Témata" #: ../Menu.c:589 msgid "Bg Images (scale)" msgstr "Pozadí (uprostÅ™ed)" #: ../Menu.c:594 msgid "Bg Images (tile)" msgstr "Pozadí (dlaždice)" #: ../Menu.c:599 msgid "Assorted XTerms" msgstr "Různé Xtermy" #: ../Menu.c:601 msgid "XTerm Yellow on Blue" msgstr "Xterm žlutá na modré" #: ../Menu.c:604 msgid "XTerm White on Black" msgstr "Xterm bílá na Äerné" #: ../Menu.c:607 msgid "XTerm Black on White" msgstr "Xterm Äerná na bílé" #: ../Menu.c:610 msgid "XTerm Black on Beige" msgstr "Xterm Å™erná na žluté" #: ../Menu.c:613 msgid "XTerm White on Green" msgstr "Xterm Bílá na zelené" #: ../Menu.c:616 msgid "XTerm White on Olive" msgstr "Xterm bílá na olivové" #: ../Menu.c:619 msgid "XTerm Blue on Blue" msgstr "Xterm modrá na tmavÄ›modré" #: ../Menu.c:622 msgid "XTerm BIG FONTS" msgstr "Xterm VELKÉ FONTY" #: ../Menu.c:644 msgid "Program to Run" msgstr "Program ke spuÅ¡tÄ›ní" #: ../Menu.c:658 msgid "Run the program inside a Xterm" msgstr "Spustit program uvnitÅ™ Xtermu" #: ../Menu.c:668 msgid "Path for Menu" msgstr "Cesta pro Menu" #: ../Menu.c:681 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin" msgstr "" "Vlož cestu pro soubor obsahující menu\n" "nebo seznam adresářů s programy, které\n" "chete zobrazit v menu. PÅ™:\n" "~/GNUstep/Library/WindowMaker/menu\n" "nebo\n" "/usr/bin ~/xbin" #: ../Menu.c:696 msgid "Command" msgstr "Příkaz" #: ../Menu.c:710 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "Vlož příkaz, který vytvoří obsah\n" "menu s funkÄními položkami." #: ../Menu.c:721 msgid "Command to Open Files" msgstr "Příkaz k otevÅ™ení souboru" #: ../Menu.c:735 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "Vlož příkaz, který chcete použít k otevÅ™ení\n" "souborů v níže zobrazených adresářích." #: ../Menu.c:744 msgid "Directories with Files" msgstr "Adresáře se soubory" #: ../Menu.c:757 msgid "Strip extensions from file names" msgstr "Vynech přípony souborů" #: ../Menu.c:769 msgid "Keyboard Shortcut" msgstr "Klávesové zkratky" #: ../Menu.c:805 msgid "Arrange Icons" msgstr "Uspořádat ikony" #: ../Menu.c:806 msgid "Hide All Windows Except For The Focused One" msgstr "Skryj vÅ¡echny okna kromÄ› zaměřeného" #: ../Menu.c:807 msgid "Show All Windows" msgstr "Zobraz vÅ¡echny okna" #: ../Menu.c:810 msgid "Exit X Session" msgstr "UkonÄi sezení" #: ../Menu.c:811 msgid "Restart Window Maker" msgstr "Restartuj Window Maker" #: ../Menu.c:812 msgid "Start Another Window Manager : (" msgstr "Zapni jiný okení manažer :-(" #: ../Menu.c:814 msgid "Save Current Session" msgstr "Ulož aktuální sezení" #: ../Menu.c:815 msgid "Clear Saved Session" msgstr "VuÄisti uložené sezení" #: ../Menu.c:816 msgid "Refresh Screen" msgstr "Obnov obrazovku" #: ../Menu.c:817 msgid "Open Info Panel" msgstr "OtevÅ™i informaÄní panel" #: ../Menu.c:818 msgid "Open Copyright Panel" msgstr "OtevÅ™i Copyright panel" #: ../Menu.c:824 msgid "Window Manager to Start" msgstr "Příkaz jiného okeního manažer" #: ../Menu.c:840 msgid "Do not confirm action." msgstr "Bez potvrzení akce" #: ../Menu.c:850 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "Instrukce:\n" "\n" " - pÅ™etáhni položku z leva na panel k pÅ™idání nové položky\n" " - odtstraň položku pÅ™etažením z menu zpÄ›t na aplikaci\n" " - pÅ™etáhni položku v menu ke zmÄ›nÄ› její pozice\n" " - kopíruj položku pomocí zmáÄknutého Controlu\n" " - změň jméno položky dvojklikem\n" " - klikni na položku ke zmÄ›nÄ› souvisejícíh informací" #: ../Menu.c:1067 #, c-format msgid "unknown command '%s' in menu" msgstr "neznámý příkaz '%s' v menu" #: ../Menu.c:1099 msgid ": Execute Program" msgstr ": Spustit program" #: ../Menu.c:1103 msgid ": Perform Internal Command" msgstr ": VytvoÅ™ vnitÅ™ní příkaz" #: ../Menu.c:1107 msgid ": Open a Submenu" msgstr ": OtevÅ™i submenu" #: ../Menu.c:1111 msgid ": Program Generated Submenu" msgstr ": Programem generované submenu" #: ../Menu.c:1115 msgid ": Directory Contents Menu" msgstr ": Obsah adresáře" #: ../Menu.c:1119 msgid ": Open Workspaces Submenu" msgstr ": Pracovní plocha" #: ../Menu.c:1123 msgid ": Open Window List Submenu" msgstr ": Otevřít menu s okny" #: ../Menu.c:1343 msgid "Remove Submenu" msgstr "Odstraň submenu" #: ../Menu.c:1344 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "" "OdstranÄ›ním této položky ztratíte vÅ¡echny položky uvnitÅ™\n" "submenu. SkuteÄnÄ› ji chcete smazat?" #: ../Menu.c:1346 msgid "Yes" msgstr "Ano" #: ../Menu.c:1346 msgid "No" msgstr "Ne" #: ../Menu.c:1347 msgid "Yes, don't ask again." msgstr "Ano, neptejte se víc." #: ../Menu.c:1514 ../Menu.c:1521 #, c-format msgid "%s/Library/WindowMaker/plmenu" msgstr "" #: ../Menu.c:1530 #, c-format msgid "Could not open default menu from '%s'" msgstr "Nemohu otevřít standardní menu z '%s'" #: ../Menu.c:1568 ../WPrefs.c:807 msgid "Warning" msgstr "Varování" #: ../Menu.c:1569 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "Formát soubor menu není už podporován touto verzí\n" "programu. PÅ™ejete si ho vyÅ™adit a nahradit novým\n" "pužitelným tímto programem?" #: ../Menu.c:1572 msgid "Yes, Discard and Update" msgstr "Ano, VyÅ™adit a aktualizovat" #: ../Menu.c:1573 msgid "No, Keep Current Menu" msgstr "Ne, zachovat stávající" #: ../Menu.c:1831 msgid "Applications Menu Definition" msgstr "Nastavení aplikaÄního menu" #: ../Menu.c:1833 msgid "Edit the menu for launching applications." msgstr "Upravit menu ke spoustÄ›ní aplikací" #: ../MenuPreferences.c:111 msgid "Menu Scrolling Speed" msgstr "Rychlost rolování menu" #: ../MenuPreferences.c:160 msgid "Submenu Alignment" msgstr "Zarovnání submenu" #: ../MenuPreferences.c:204 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "Menu otevřít vždy na ploÅ¡e obrazovky (neposouvat)." #: ../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." #: ../MenuPreferences.c:229 msgid "Menu Preferences" msgstr "Nastavení menu" #: ../MenuPreferences.c:231 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "Nastavení aplikaÄního menu. Rychlost\n" "rolování, způsob zarovnání submenu atd." #: ../MouseSettings.c:141 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "Chybná hodnota pro zrychlení myÅ¡i. Musí být kladné reálné Äíslo." #: ../MouseSettings.c:161 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í." #: ../MouseSettings.c:262 ../MouseSettings.c:274 ../MouseSettings.c:286 #: ../MouseSettings.c:298 #, c-format msgid "bad value %s for option %s" msgstr "chybná hodnota %s pro volbu %s" #: ../MouseSettings.c:357 #, 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." #: ../MouseSettings.c:382 msgid "could not retrieve keyboard modifier mapping" msgstr "nelze pÅ™evzít mapování modifikátorů kláves" #: ../MouseSettings.c:477 msgid "Mouse Speed" msgstr "Rychlost myÅ¡i" #: ../MouseSettings.c:507 msgid "Acceler.:" msgstr "Zrychl.:" #: ../MouseSettings.c:520 msgid "Threshold:" msgstr "Mez:" #: ../MouseSettings.c:535 msgid "Double-Click Delay" msgstr "Prodleva pro dvojklik" #: ../MouseSettings.c:579 msgid "Test" msgstr "Test" #: ../MouseSettings.c:609 msgid "Workspace Mouse Actions" msgstr "Akce myÅ¡i na ploÅ¡e" #: ../MouseSettings.c:614 msgid "Disable mouse actions" msgstr "Zakaž akce myÅ¡i" #: ../MouseSettings.c:620 msgid "Left Button" msgstr "Levé tlaÄítko" #: ../MouseSettings.c:630 msgid "Middle Button" msgstr "ProstÅ™ední tl." #: ../MouseSettings.c:640 msgid "Right Button" msgstr "Pravé tlaÄítko" #: ../MouseSettings.c:650 msgid "Mouse Wheel" msgstr "KoleÄko myÅ¡i" #: ../MouseSettings.c:672 msgid "Mouse Grab Modifier" msgstr "Modifikátor pro myÅ¡" #: ../MouseSettings.c:674 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "Modifikátor klávesnice, který bude použit\n" "pro táhnutí okna myÅ¡i, kliknete-li\n" "uvnitÅ™ okna." #: ../MouseSettings.c:708 #, c-format msgid "could not create %s" msgstr "nelze vytvoÅ™it \"%s\"" #: ../MouseSettings.c:724 #, c-format msgid "could not create temporary file %s" msgstr "nelze vytvoÅ™it doÄasný soubor %s" #: ../MouseSettings.c:756 #, c-format msgid "could not rename file %s to %s\n" msgstr "soubor %s nelze pÅ™ejmenovat na %s\n" #: ../MouseSettings.c:829 msgid "Shift" msgstr "" #: ../MouseSettings.c:830 msgid "Lock" msgstr "" #: ../MouseSettings.c:831 msgid "Control" msgstr "Ctrl" #: ../MouseSettings.c:832 msgid "Mod1" msgstr "" #: ../MouseSettings.c:833 msgid "Mod2" msgstr "" #: ../MouseSettings.c:834 msgid "Mod3" msgstr "" #: ../MouseSettings.c:835 msgid "Mod4" msgstr "" #: ../MouseSettings.c:836 msgid "Mod5" msgstr "" #: ../MouseSettings.c:839 msgid "Applications Menu" msgstr "AplikaÄní menu" #: ../MouseSettings.c:841 msgid "Select Windows" msgstr "Vybrat okna" #: ../MouseSettings.c:844 msgid "Switch Workspaces" msgstr "PÅ™epínat plochy" #: ../MouseSettings.c:849 msgid "Mouse Preferences" msgstr "Nastavení myÅ¡i" #: ../MouseSettings.c:851 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "Rychlost/Zrychlení myÅ¡i, prodleva pÅ™i dvojkliku,\n" "vazby tlaÄítek myÅ¡i atd." #: ../Paths.c:84 msgid "bad value in option IconPath. Using default path list" msgstr "ve volbÄ› IconPath je nesprávná hodnota. Používám standardní nastavení" #: ../Paths.c:101 msgid "bad value in option PixmapPath. Using default path list" msgstr "ve volbÄ› PixmapPath je chybná hodnota. Používám standard." #: ../Paths.c:149 msgid "Select directory" msgstr "Vyberte adresář" #: ../Paths.c:270 msgid "Icon Search Paths" msgstr "Adresáře s ikonami" #: ../Paths.c:281 ../Paths.c:312 ../TexturePanel.c:1310 msgid "Add" msgstr "PÅ™idat" #: ../Paths.c:301 msgid "Pixmap Search Paths" msgstr "Adresáře s obrázky" #: ../Paths.c:341 msgid "Search Path Configuration" msgstr "Konfigurace prohledávaných cest" #: ../Paths.c:343 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "" "PÅ™i vyhledávání obrázků a ikon prohledávat\n" "tyto adresáře." #: ../Preferences.c:75 msgid "OFF" msgstr "Vypnuté" #: ../Preferences.c:77 msgid "1 pixel" msgstr "" #: ../Preferences.c:80 #, c-format msgid "%i pixels" msgstr "%i pixely" #: ../Preferences.c:83 #, c-format msgid "%i pixels " msgstr "%i pixelů" #: ../Preferences.c:229 msgid "Size Display" msgstr "Zobrazení velikosti" #: ../Preferences.c:231 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "Pozice a styl okna, které mÄ›ní velikost." #: ../Preferences.c:238 ../Preferences.c:259 msgid "Corner of screen" msgstr "Roh obrazovky" #: ../Preferences.c:239 ../Preferences.c:260 msgid "Center of screen" msgstr "StÅ™ed obrazovky" #: ../Preferences.c:240 ../Preferences.c:261 msgid "Center of resized window" msgstr "StÅ™ed okna" #: ../Preferences.c:241 msgid "Technical drawing-like" msgstr "Jako kóty výkresů" #: ../Preferences.c:242 ../Preferences.c:262 msgid "Disabled" msgstr "Vypnuté" #: ../Preferences.c:250 msgid "Position Display" msgstr "Zobrazení pozice" #: ../Preferences.c:252 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "Pozice a styl okna, které je pÅ™esouváno." #: ../Preferences.c:270 msgid "Show balloon text for..." msgstr "Bublinová nápovÄ›da pro..." #: ../Preferences.c:277 msgid "incomplete window titles" msgstr "nekompletní titulky oken" #: ../Preferences.c:278 msgid "miniwindow titles" msgstr "titulky minioken" #: ../Preferences.c:279 msgid "application/dock icons" msgstr "aplikaÄní/ukotvené ikony" #: ../Preferences.c:280 msgid "internal help" msgstr "interní nápovÄ›du" #: ../Preferences.c:292 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "" "PÅ™i zmÄ›nÄ› zaměření pÅ™es\n" " klávesnici zdvihnout okno." #: ../Preferences.c:298 msgid "" "Enable keyboard language\n" "switch button in window titlebars." msgstr "Pro každé okno pamatovat nastavení klávesnice." #: ../Preferences.c:307 msgid "Workspace border" msgstr "Okraje pracovní plochy" #: ../Preferences.c:323 msgid "Left/Right" msgstr "Levé/Pravé" #: ../Preferences.c:328 msgid "Top/Bottom" msgstr "Horní/Dolní" #: ../Preferences.c:349 msgid "Miscellaneous Ergonomic Preferences" msgstr "Různá nastavení ergonomie" #: ../Preferences.c:350 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "Bublinová nápovÄ›da, zobrazení geometrie,\n" "oken, okraje pracovní plochy atd." #: ../TexturePanel.c:323 msgid "Saturation" msgstr "Sytost" #: ../TexturePanel.c:325 msgid "Brightness" msgstr "SvÄ›tlost" #: ../TexturePanel.c:373 ../TexturePanel.c:380 msgid "Hue" msgstr "Odstín" #: ../TexturePanel.c:610 msgid "Could not load the selected file: " msgstr "Nelze naÄíst vybraný soubor: " #: ../TexturePanel.c:664 msgid "Open Image" msgstr "Otevřít obrázek" #: ../TexturePanel.c:694 msgid "The selected file does not contain a supported image." msgstr "Vybraný soubor neobsahuje podporovaný typ obrázku." #: ../TexturePanel.c:945 #, c-format msgid "could not load file '%s': %s" msgstr "nelze naÄíst soubor ' %s': %s" #: ../TexturePanel.c:1064 #, c-format msgid "error creating texture %s" msgstr "chyba pÅ™i vytváření textury %s" #: ../TexturePanel.c:1254 msgid "Texture Panel" msgstr "Panel textur" #: ../TexturePanel.c:1262 msgid "Texture Name" msgstr "Jméno textury" #: ../TexturePanel.c:1274 msgid "Solid Color" msgstr "Barva" #: ../TexturePanel.c:1275 msgid "Gradient Texture" msgstr "Gradient textury" #: ../TexturePanel.c:1276 msgid "Simple Gradient Texture" msgstr "ObyÄejná textura s pÅ™echodem" #: ../TexturePanel.c:1277 msgid "Textured Gradient" msgstr "Texturovaný pÅ™echod" #: ../TexturePanel.c:1278 msgid "Image Texture" msgstr "Obrázek textury" #: ../TexturePanel.c:1286 msgid "Default Color" msgstr "Standardní barva" #: ../TexturePanel.c:1298 msgid "Gradient Colors" msgstr "Barvy pÅ™echodu" #: ../TexturePanel.c:1394 msgid "Direction" msgstr "SmÄ›r" #: ../TexturePanel.c:1422 msgid "Gradient" msgstr "PÅ™echod" #: ../TexturePanel.c:1440 msgid "Gradient Opacity" msgstr "Neprůhlednost pÅ™echodu" #: ../TexturePanel.c:1483 msgid "Image" msgstr "Obrázek" #: ../TexturePanel.c:1515 msgid "Tile" msgstr "Dlaždice" #: ../TexturePanel.c:1516 msgid "Scale" msgstr "ZvÄ›tÅ¡it" #: ../TexturePanel.c:1518 msgid "Maximize" msgstr "Maximalizovat" #: ../Themes.c:71 ../Themes.c:82 msgid "Set" msgstr "Nastavit" #: ../Themes.c:132 msgid "Stop" msgstr "Stop" #: ../Themes.c:143 ../Themes.c:203 ../Themes.c:223 msgid "Download" msgstr "Downloadovat" #: ../Themes.c:171 msgid "Save Current Theme" msgstr "Uložit aktuální téma" #: ../Themes.c:180 msgid "Load" msgstr "NaÄíst" #: ../Themes.c:185 msgid "Install" msgstr "Instalovat" #: ../Themes.c:193 msgid "Tile of The Day" msgstr "Obrázek dne" #: ../Themes.c:213 msgid "Bar of The Day" msgstr "Titulek dne" #: ../WPrefs.c:260 msgid "Window Maker Preferences" msgstr "Nastavení Window Makeru" #: ../WPrefs.c:284 msgid "Revert Page" msgstr "Stránku zpÄ›t" #: ../WPrefs.c:290 msgid "Revert All" msgstr "VÅ¡e zpÄ›t" #: ../WPrefs.c:296 msgid "Save" msgstr "Uložit" #: ../WPrefs.c:309 msgid "Balloon Help" msgstr "Balónová nápovÄ›da" #: ../WPrefs.c:334 msgid "Window Maker Preferences Utility" msgstr "KonfiguraÄní program Window Makeru" #: ../WPrefs.c:341 #, c-format msgid "Version %s for Window Maker %s or newer" msgstr "Verze %s pro Window Maker %s nebo novÄ›jší" #: ../WPrefs.c:349 msgid "Starting..." msgstr "Startuji..." #: ../WPrefs.c:355 msgid "" "Programming/Design: Alfredo K. Kojima\n" "Artwork: Marco van Hylckama Vlieg, Largo et al\n" "More Programming: James Thompson et al" msgstr "" "Programoval/Návrh: Alfredo K. Kojima\n" "PÅ™edloha: Marco van Hylckama Vlieg\n" "Spolupracoval: James Thompson\n" "Do ÄeÅ¡tiny pÅ™eložil: Jiří Hnídek (jiri.hnidek@vslib.cz)" #: ../WPrefs.c:455 #, c-format msgid "could not locate image file %s\n" msgstr "nelze najít soubor %s s obrázkem\n" #: ../WPrefs.c:670 #, c-format msgid "could not load image file %s:%s" msgstr "nelze naÄíst soubor s obrázkem %s:%s" #: ../WPrefs.c:689 msgid "Loading Window Maker configuration files..." msgstr "KonfiguraÄní soubory Window Makeru se naÄítají..." #: ../WPrefs.c:693 msgid "Initializing configuration panels..." msgstr "Inicializace konfiguraÄních panelů..." #: ../WPrefs.c:727 msgid "" "WPrefs is free software and is distributed WITHOUT ANY\n" "WARRANTY under the terms of the GNU General Public License." msgstr "" "Program WPrefs je volnÄ› Å¡iÅ™itelný software, který je distribuován \n" "BEZ JAKÉKOLI ZÃRUKY pod GNU licencí." #: ../WPrefs.c:757 ../WPrefs.c:837 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Doména Window Makeru (%s) je poÅ¡kozena!" #: ../WPrefs.c:761 #, 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)." #: ../WPrefs.c:777 msgid "could not extract version information from Window Maker" msgstr "od Window Makeru nelze získat Äíslo verze" #: ../WPrefs.c:778 msgid "Make sure wmaker is in your search path." msgstr "ZajistÄ›te, aby byl Window Maker v prohledávané cestÄ›." #: ../WPrefs.c:781 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." #: ../WPrefs.c:791 msgid "" "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." 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.c:798 #, c-format 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.c:805 #, 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." #: ../WPrefs.c:818 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr "nelze provést \"%s --global_defaults_path\"" #: ../WPrefs.c:841 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "Nelze naÄíst globální doménu pro Window Maker (%s)." #: ../WPrefs.c:1090 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "pro volbu %s je chybnÄ› urÄená\n" "rychlost. Použita 'Medium'" #: ../WindowHandling.c:141 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "chybná hodnota volby %s ve WindowPlacement. Používám standardní" #: ../WindowHandling.c:163 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "chybná data pro WindowPlaceOrigin. Používám (0,0)" #: ../WindowHandling.c:243 msgid "Window Placement" msgstr "UmísÅ¥ování oken" #: ../WindowHandling.c:244 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "" "Jak umísÅ¥ovat okna, když jsou poprvé zobrazena\n" "na obrazovce." #: ../WindowHandling.c:250 msgid "Automatic" msgstr "Automatické" #: ../WindowHandling.c:251 msgid "Random" msgstr "Náhodné" #: ../WindowHandling.c:252 msgid "Manual" msgstr "RuÄní" #: ../WindowHandling.c:253 msgid "Cascade" msgstr "Kaskádové" #: ../WindowHandling.c:254 msgid "Smart" msgstr "Chytré" #: ../WindowHandling.c:260 msgid "Placement Origin" msgstr "PoÄáteÄní poloha" #: ../WindowHandling.c:321 msgid "Opaque Move" msgstr "Plynulost posunu" #: ../WindowHandling.c:322 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "Zda se má zobrazovat obsah oken pÅ™i pÅ™esouvání\n" "okna nebo má být zobrazen pouze rám okna.\n" #: ../WindowHandling.c:361 msgid "When maximizing..." msgstr "PÅ™i maximalizaci..." #: ../WindowHandling.c:366 msgid "...do not cover icons" msgstr "...nezakrývat ikony" #: ../WindowHandling.c:372 msgid "...do not cover dock" msgstr "...nezakrývat dok" #: ../WindowHandling.c:381 msgid "Edge Resistance" msgstr "Odolnost hran" #: ../WindowHandling.c:383 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "'Odolnost hran' zajistí, že se okna 'budou bránit'\n" "pÅ™i pÅ™esunu dál pÅ™es ostatní okna nebo hrany obrazovky." #: ../WindowHandling.c:402 msgid "Resist" msgstr "Ano" #: ../WindowHandling.c:407 msgid "Attract" msgstr "Ne" #: ../WindowHandling.c:423 msgid "" "Open dialogs in same workspace\n" "as their owners" msgstr "" "Otevřít dialogy na stejné ploÅ¡e\n" "jako je vlastník" #: ../WindowHandling.c:450 msgid "Window Handling Preferences" msgstr "Nastavení práce s okny" #: ../WindowHandling.c:452 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "Zacházení s okny. Způsob poÄáteÄního umísÅ¥ování,\n" "odolnost hran proti pÅ™esunu mimo obrazovku atd." #: ../Workspace.c:176 msgid "Workspace Navigation" msgstr "Orientace v plochách" #: ../Workspace.c:183 msgid "" "wrap to the first workspace after the\n" "last workspace." msgstr "" "Za poslední pracovní plochou pÅ™epnout\n" "na první a opaÄnÄ›." #: ../Workspace.c:205 msgid "switch workspaces while dragging windows." msgstr "" "Automaticky se pÅ™epnout na další plochu\n" "pÅ™i pÅ™etažení aplikace pÅ™es hranu plochy." #: ../Workspace.c:227 msgid "automatically create new workspaces." msgstr "Automaticky vytvářet nové pracovní plochy." #: ../Workspace.c:250 msgid "" "Position of workspace\n" "name display" msgstr "" "Pozice názvu indikátoru\n" " pracovní plochy:" #: ../Workspace.c:269 msgid "Disable" msgstr "Žádná" #: ../Workspace.c:271 msgid "Top" msgstr "NahoÅ™e" #: ../Workspace.c:272 msgid "Bottom" msgstr "Dole" #: ../Workspace.c:273 msgid "Top/Left" msgstr "NahoÅ™e vlevo" #: ../Workspace.c:274 msgid "Top/Right" msgstr "NahoÅ™e vpravo" #: ../Workspace.c:275 msgid "Bottom/Left" msgstr "Dole vlevo" #: ../Workspace.c:276 msgid "Bottom/Right" msgstr "Dole vpravo" #: ../Workspace.c:284 msgid "Dock/Clip" msgstr "Dok/Sponka" #: ../Workspace.c:303 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "Vypnout/Zapnout aplikaÄní Dok (ta svislá\n" "posuvná liÅ¡ta s ikonami na boku obrazovky)." #: ../Workspace.c:324 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "Zapnout/Vypnout Sponku (ta vÄ›c, která \n" "má na sobÄ› sponku na papír)." #: ../Workspace.c:364 msgid "Workspace Preferences" msgstr "Nastavení pracovní plochy" #: ../Workspace.c:366 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "Nastavení práce s virtuálnímy obrazovkami,\n" "zapnutí/vypnoutí Doku nebo Sponky." #: ../imagebrowser.c:95 msgid "View" msgstr "PÅ™ehled" #: ../main.c:59 #, c-format msgid "usage: %s [options]\n" msgstr "použití: %s [volby]\n" #: ../main.c:60 msgid "options:" msgstr "volby:" #: ../main.c:61 msgid " -display <display>\tdisplay to be used" msgstr " -display <display>\tkterý display použít" #: ../main.c:62 msgid " --version\t\tprint version number and exit" msgstr " --version\t\tzobraz verzi a konec" #: ../main.c:63 msgid " --help\t\tprint this message and exit" msgstr " --help\t\tzobraz nápovÄ›du a konec" #: ../main.c:122 #, c-format msgid "too few arguments for %s" msgstr "nedostatek argumentů pro %s" #: ../main.c:144 msgid "X server does not support locale" msgstr "X server nepodporuje nastavení místních zvyklostí" #: ../main.c:147 msgid "cannot set locale modifiers" msgstr "nelze nastavit modifikátory místních zvyklostí" #: ../main.c:153 #, c-format msgid "could not open display %s" msgstr "nelze otevřít displej %s" #: ../main.c:161 msgid "could not initialize application" msgstr "nelze inicializovat aplikaci" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/po/de.po��������������������������������������������������������������0000644�0001750�0001750�00000157206�12214432632�014327� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of wprefsneu.po to # # German Message Catalog for WPrefs.app # # Initial translation # Gudio Scholz <guido.scholz@bayernline.de> # Bernd Eggert <Bernd.Eggert@t-online.de> # # Fully retranslated and updated for newer versions # Torsten Marek <shlomme@gmx.net> # # Carlos R. Mafra <crmafra@gmail.com>, 2010. msgid "" msgstr "" "Project-Id-Version: wprefsneu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-02-02 10:34+0100\n" "PO-Revision-Date: 2010-02-02 10:49+0100\n" "Last-Translator: Carlos R. Mafra <crmafra@gmail.com>\n" "Language-Team: German <>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: ../../WPrefs.app/Appearance.c:1051 msgid "Select File" msgstr "Datei auswählen" #: ../../WPrefs.app/Appearance.c:1413 msgid "Focused Window" msgstr "Aktives Fenster" #: ../../WPrefs.app/Appearance.c:1418 msgid "Unfocused Window" msgstr "Inaktives Fenster" #: ../../WPrefs.app/Appearance.c:1423 msgid "Owner of Focused Window" msgstr "Eigentümer des aktiven Fensters" #: ../../WPrefs.app/Appearance.c:1427 ../../WPrefs.app/Appearance.c:1725 #: ../../WPrefs.app/FontSimple.c:101 msgid "Menu Title" msgstr "Menütitel" #: ../../WPrefs.app/Appearance.c:1431 ../../WPrefs.app/Appearance.c:1433 msgid "Normal Item" msgstr "Normaler Eintrag" #: ../../WPrefs.app/Appearance.c:1438 msgid "Disabled Item" msgstr "Ausgeschalteter Eintrag" #: ../../WPrefs.app/Appearance.c:1447 msgid "Highlighted" msgstr "Ausgewählt" #: ../../WPrefs.app/Appearance.c:1625 msgid "Texture" msgstr "Textur" #: ../../WPrefs.app/Appearance.c:1632 msgid "Titlebar of Focused Window" msgstr "Titelleiste des aktiven Fensters" #: ../../WPrefs.app/Appearance.c:1633 msgid "Titlebar of Unfocused Windows" msgstr "Titelleiste des inaktiven Fensters" #: ../../WPrefs.app/Appearance.c:1634 msgid "Titlebar of Focused Window's Owner" msgstr "Titelleiste des Eigentümers des aktiven Fensters" #: ../../WPrefs.app/Appearance.c:1635 msgid "Window Resizebar" msgstr "Größenänderungsleiste" #: ../../WPrefs.app/Appearance.c:1636 msgid "Titlebar of Menus" msgstr "Menü-Titelzeile" #: ../../WPrefs.app/Appearance.c:1637 msgid "Menu Items" msgstr "Menüeinträge" #: ../../WPrefs.app/Appearance.c:1638 msgid "Icon Background" msgstr "Symbolhintergrund" #: ../../WPrefs.app/Appearance.c:1653 msgid "" "Double click in the texture you want to use\n" "for the selected item." msgstr "" "Doppelklicken Sie auf die Textur, die sie für das\n" "ausgewählte Element verwenden wollen." #: ../../WPrefs.app/Appearance.c:1665 msgid "New" msgstr "Neu" #: ../../WPrefs.app/Appearance.c:1669 msgid "Create a new texture." msgstr "Neue Textur erstellen." #: ../../WPrefs.app/Appearance.c:1676 msgid "Extract..." msgstr "Holen" #: ../../WPrefs.app/Appearance.c:1680 msgid "Extract texture(s) from a theme or a style file." msgstr "Textur(en) aus einer Themen- oder Stildatei holen." #: ../../WPrefs.app/Appearance.c:1689 msgid "Edit" msgstr "Ändern" #: ../../WPrefs.app/Appearance.c:1692 msgid "Edit the highlighted texture." msgstr "Ausgewählte Textur bearbeiten." #: ../../WPrefs.app/Appearance.c:1699 ../../WPrefs.app/TexturePanel.c:1202 msgid "Delete" msgstr "Löschen" #: ../../WPrefs.app/Appearance.c:1703 msgid "Delete the highlighted texture." msgstr "Ausgewählte Textur löschen." #: ../../WPrefs.app/Appearance.c:1715 msgid "Color" msgstr "Farbe" #: ../../WPrefs.app/Appearance.c:1722 msgid "Focused Window Title" msgstr "Titel des aktiven Fensters" #: ../../WPrefs.app/Appearance.c:1723 msgid "Unfocused Window Title" msgstr "Titel eines inaktiven Fensters" #: ../../WPrefs.app/Appearance.c:1724 msgid "Owner of Focused Window Title" msgstr "Titel des Eigentümers des aktiven Fensters" #: ../../WPrefs.app/Appearance.c:1726 msgid "Menu Item Text" msgstr "Text eines Menüeintrages" #: ../../WPrefs.app/Appearance.c:1727 msgid "Disabled Menu Item Text" msgstr "Text eines ausgeschalteten Menüeintrages" #: ../../WPrefs.app/Appearance.c:1728 msgid "Menu Highlight Color" msgstr "Menü-Auswahlfarbe" #: ../../WPrefs.app/Appearance.c:1729 msgid "Highlighted Menu Text Color" msgstr "Text des ausgewählten Menüeintrages" #: ../../WPrefs.app/Appearance.c:1766 msgid "Background" msgstr "Hintergrund" #: ../../WPrefs.app/Appearance.c:1778 ../../WPrefs.app/TexturePanel.c:1377 msgid "Browse..." msgstr "Suchen..." #: ../../WPrefs.app/Appearance.c:1788 msgid "Options" msgstr "Optionen" #: ../../WPrefs.app/Appearance.c:1795 msgid "Menu Style" msgstr "Menü-Stil" #: ../../WPrefs.app/Appearance.c:1823 ../../WPrefs.app/Configurations.c:209 #: ../../WPrefs.app/Configurations.c:221 ../../WPrefs.app/Focus.c:264 #: ../../WPrefs.app/Focus.c:275 ../../WPrefs.app/MenuPreferences.c:124 #: ../../WPrefs.app/MenuPreferences.c:135 #: ../../WPrefs.app/MenuPreferences.c:163 #: ../../WPrefs.app/MenuPreferences.c:178 ../../WPrefs.app/MouseSettings.c:514 #: ../../WPrefs.app/MouseSettings.c:525 ../../WPrefs.app/WPrefs.c:482 #: ../../WPrefs.app/WPrefs.c:507 #, c-format msgid "could not load icon file %s" msgstr "Symboldatei %s konnte nicht geöffnet werden" #: ../../WPrefs.app/Appearance.c:1836 msgid "Title Alignment" msgstr "Titel-Ausrichtung" #: ../../WPrefs.app/Appearance.c:1843 msgid "Left" msgstr "Links" #: ../../WPrefs.app/Appearance.c:1846 ../../WPrefs.app/TexturePanel.c:1391 #: ../../WPrefs.app/Workspace.c:246 msgid "Center" msgstr "Mittig" #: ../../WPrefs.app/Appearance.c:1849 msgid "Right" msgstr "Rechts" #: ../../WPrefs.app/Appearance.c:2054 msgid "Appearance Preferences" msgstr "Einstellungen zum Aussehen" #: ../../WPrefs.app/Appearance.c:2056 msgid "" "Background texture configuration for windows,\n" "menus and icons." msgstr "" "Konfiguration der Hintergrundtexturen für Fenster,\n" "Menüs und Symbole." #: ../../WPrefs.app/Appearance.c:2092 msgid "Extract Texture" msgstr "Textur extrahieren" #: ../../WPrefs.app/Appearance.c:2112 msgid "Textures" msgstr "Texturen" #: ../../WPrefs.app/Appearance.c:2121 ../../WPrefs.app/WPrefs.c:266 msgid "Close" msgstr "Schließen" #: ../../WPrefs.app/Appearance.c:2126 msgid "Extract" msgstr "Holen" #: ../../WPrefs.app/Configurations.c:124 ../../WPrefs.app/Configurations.c:130 #: ../../WPrefs.app/MouseSettings.c:448 ../../WPrefs.app/WindowHandling.c:343 #: ../../WPrefs.app/WindowHandling.c:355 ../../WPrefs.app/Workspace.c:83 #: ../../WPrefs.app/Workspace.c:94 #, c-format msgid "could not load icon %s" msgstr "Symboldatei %s konnte nicht geöffnet werden" #: ../../WPrefs.app/Configurations.c:138 ../../WPrefs.app/Workspace.c:102 #, c-format msgid "could not process icon %s: %s" msgstr "Symboldatei %s konnte nicht verarbeitet werden: %s" #: ../../WPrefs.app/Configurations.c:160 ../../WPrefs.app/Workspace.c:151 #, c-format msgid "could not load image file %s" msgstr "Bilddatei %s konnte nicht geladen werden" #: ../../WPrefs.app/Configurations.c:171 msgid "Icon Slide Speed" msgstr "Symbol-Bewegungsgeschwindigkeit" #: ../../WPrefs.app/Configurations.c:177 msgid "Shade Animation Speed" msgstr "Roll-Animationsgeschwindigkeit" #: ../../WPrefs.app/Configurations.c:236 msgid "Smooth Scaling" msgstr "Weiche Skalierung" #: ../../WPrefs.app/Configurations.c:237 msgid "" "Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably." msgstr "" "Weiche Skalierung von Hintergrundbilderverhindert\n" "Verpixelungen, aber führt zu einem deutlich\n" "längeren Ladeprozess." #: ../../WPrefs.app/Configurations.c:277 msgid "Titlebar Style" msgstr "Titelleisten-Stil" #: ../../WPrefs.app/Configurations.c:314 ../../WPrefs.app/Configurations.c:320 msgid "Animations" msgstr "Animationen" #: ../../WPrefs.app/Configurations.c:331 msgid "" "Disable/enable animations such as those shown\n" "for window miniaturization, shading etc." msgstr "" "Animationen wie Fenster-Minimierung, Rollen usw. \n" "ein-/ausschalten" #: ../../WPrefs.app/Configurations.c:338 msgid "Superfluous" msgstr "Zusätzliche Effekte" #: ../../WPrefs.app/Configurations.c:349 msgid "" "Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons." msgstr "" "Zusätzliche Effekte ein-/ausschalten. Dazu gehören\n" "das transparente Bild des Dock, wenn es auf die\n" "andere Seite verschoben wird und die Explosion\n" "der aus dem Dock entfernten Symbole." #: ../../WPrefs.app/Configurations.c:362 msgid "Dithering colormap for 8bpp" msgstr "Dithering für 8bpp-Farbpalette" #: ../../WPrefs.app/Configurations.c:364 msgid "" "Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)." msgstr "" "Anzahl der Farben, die für Window Maker auf\n" "Display mit nur 8bpp reserviert werden sollen (PseudoColor)." #: ../../WPrefs.app/Configurations.c:371 msgid "Disable dithering in any visual/depth" msgstr "Dithering in jedem Visual und jeder Farbtiefe ausschalten." #: ../../WPrefs.app/Configurations.c:392 msgid "" "More colors for\n" "applications" msgstr "" "Mehr Farben für\n" "Anwendungen" #: ../../WPrefs.app/Configurations.c:399 msgid "" "More colors for\n" "Window Maker" msgstr "" "Mehr Farben für\n" "Window Maker" #: ../../WPrefs.app/Configurations.c:443 msgid "Other Configurations" msgstr "Verschiedene Einstellungen" #: ../../WPrefs.app/Configurations.c:444 msgid "" "Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays." msgstr "" "Animationsgeschwindigkeiten, Titelleisten-Stil,\n" "Einstellen der für Window Maker reservierten\n" "Farben auf 8bpp-Displays." #: ../../WPrefs.app/Expert.c:70 msgid "" "Disable miniwindows (icons for minimized windows). For use with KDE/GNOME." msgstr "Keine Minifenster (Symbole für minimierte Fenster). Für KDE/GNOME." #: ../../WPrefs.app/Expert.c:71 msgid "Do not set non-WindowMaker specific parameters (do not use xset)." msgstr "" "Keine Window Maker-spezifischen Parameter setzen (xset nicht benutzen)." #: ../../WPrefs.app/Expert.c:72 msgid "Automatically save session when exiting Window Maker." msgstr "Automatischens Abspeichern der Sitzung beim Beenden." #: ../../WPrefs.app/Expert.c:73 msgid "Use SaveUnder in window frames, icons, menus and other objects." msgstr "SaveUnder für Fensterrahmen, Symbole, Menü u. a. benutzen" #: ../../WPrefs.app/Expert.c:74 msgid "Disable confirmation panel for the Kill command." msgstr "Kein Bestätigungsdialog für den Töten-Befehl" #: ../../WPrefs.app/Expert.c:75 msgid "Disable selection animation for selected icons." msgstr "Keine Auswahlanimation für ausgewählte Symbole" #: ../../WPrefs.app/Expert.c:76 msgid "Smooth font edges (needs restart)." msgstr "Geglättete Schriftarten (Neustart erforderlich)." #: ../../WPrefs.app/Expert.c:77 msgid "Launch applications and restore windows with a single click." msgstr "" "Mit einem einzelnen Mausklick Anwendungen ausführen und " "Fenster wiederherstellen." #: ../../WPrefs.app/Expert.c:110 msgid "Expert User Preferences" msgstr "Einstellungen für Experten" #: ../../WPrefs.app/Expert.c:112 msgid "" "Options for people who know what they're doing...\n" "Also have some other misc. options." msgstr "" "Einstellungen für Leute, die wissen, was sie tun...\n" "Und einige andere Einstellungen." #: ../../WPrefs.app/Focus.c:75 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "" "falscher Eigenschaftswert %s für FocusMode. Standardwert 'Manuell' wird " "benutzt." #: ../../WPrefs.app/Focus.c:87 #, c-format msgid "bad option value %s for option ColormapMode. Using default Auto" msgstr "" "falscher Eigenschaftswert %s für ColormapMode. Standardwert 'Auto' wird " "benutzt." #: ../../WPrefs.app/Focus.c:193 msgid "Input Focus Mode" msgstr "Eingabefokus-Modus" #: ../../WPrefs.app/Focus.c:201 msgid "Manual: Click on the window to set keyboard input focus." msgstr "Manuell: Tastaturfokus durch Anklicken des Fensters setzen" #: ../../WPrefs.app/Focus.c:207 msgid "Auto: Set keyboard input focus to the window under the mouse pointer." msgstr "Auto: Tastaturfokus immer auf das Fenster unter dem Mauszeiger setzen" #: ../../WPrefs.app/Focus.c:220 msgid "Install colormap in the window..." msgstr "Farbtabelle im Fenster setzen, das..." #: ../../WPrefs.app/Focus.c:225 msgid "...that has the input focus." msgstr "...den Eingabefokus hat." #: ../../WPrefs.app/Focus.c:230 msgid "...that's under the mouse pointer." msgstr "...unter dem Mauszeiger ist." #: ../../WPrefs.app/Focus.c:239 msgid "Automatic Window Raise Delay" msgstr "Verzögerung für Auto-Fensterheber" #: ../../WPrefs.app/Focus.c:294 ../../WPrefs.app/MouseSettings.c:555 msgid "msec" msgstr "ms" #: ../../WPrefs.app/Focus.c:311 msgid "Do not let applications receive the click used to focus windows." msgstr "" "Mausklicks, die ein Fenster fokussiert haben, nicht an die Anwendung senden." #: ../../WPrefs.app/Focus.c:316 msgid "Automatically focus new windows." msgstr "Neue Fenster automatisch auswählen" #: ../../WPrefs.app/Focus.c:333 msgid "Window Focus Preferences" msgstr "Einstellungen zum Fokusverhalten" #: ../../WPrefs.app/Focus.c:335 msgid "" "Keyboard focus switching policy, colormap switching\n" "policy for 8bpp displays and other related options." msgstr "" "Tastaturfokuswechsel, Farbtabellenwechsel für\n" "8bpp-Display und weitere verwandte Eigenschaften." #: ../../WPrefs.app/FontSimple.c:100 msgid "Window Title" msgstr "Titel des aktiven Fensters" #: ../../WPrefs.app/FontSimple.c:102 msgid "Menu Text" msgstr "Text eines Menüeintrages" #: ../../WPrefs.app/FontSimple.c:103 msgid "Icon Title" msgstr "Symboltitel" #: ../../WPrefs.app/FontSimple.c:104 msgid "Clip Title" msgstr "Clip-Titel" #: ../../WPrefs.app/FontSimple.c:105 msgid "Desktop Caption" msgstr "Arbeitsflächentitel" #: ../../WPrefs.app/FontSimple.c:639 msgid "Sample Text" msgstr "Beispieltext" #: ../../WPrefs.app/FontSimple.c:656 msgid "Family" msgstr "Familie" #: ../../WPrefs.app/FontSimple.c:682 msgid "Style" msgstr "Stil" #: ../../WPrefs.app/FontSimple.c:685 msgid "Size" msgstr "Größe" #: ../../WPrefs.app/FontSimple.c:718 msgid "Font Configuration" msgstr "Schrifteinstellungen" #: ../../WPrefs.app/FontSimple.c:720 msgid "Configure fonts for Window Maker titlebars, menus etc." msgstr "Schrifteinstellungen für Fenster, Menüs usw." #: ../../WPrefs.app/Icons.c:166 msgid "Icon Positioning" msgstr "Symbolpositionierung" #: ../../WPrefs.app/Icons.c:212 msgid "Iconification Animation" msgstr "Animation bei Minimierung" #: ../../WPrefs.app/Icons.c:223 msgid "Shrinking/Zooming" msgstr "Schrumpfen/Vergrößern" #: ../../WPrefs.app/Icons.c:224 msgid "Spinning/Twisting" msgstr "Drehen" #: ../../WPrefs.app/Icons.c:225 msgid "3D-flipping" msgstr "3D-Rotation" #: ../../WPrefs.app/Icons.c:226 ../../WPrefs.app/MouseSettings.c:781 #: ../../WPrefs.app/MouseSettings.c:786 msgid "None" msgstr "Keine" #: ../../WPrefs.app/Icons.c:239 msgid "Auto-arrange icons" msgstr "Automatische Symbolanordnung" #: ../../WPrefs.app/Icons.c:241 msgid "Keep icons and miniwindows arranged all the time." msgstr "Symbole und Minifenster immer anordnen" #: ../../WPrefs.app/Icons.c:246 msgid "Omnipresent miniwindows" msgstr "Haftende Minifenster" #: ../../WPrefs.app/Icons.c:248 msgid "Make miniwindows be present in all workspaces." msgstr "Minifenster sind auf allen Arbeitsflächen sichtbar" #: ../../WPrefs.app/Icons.c:256 msgid "Icon Size" msgstr "Symbolgröße" #: ../../WPrefs.app/Icons.c:258 msgid "The size of the dock/application icon and miniwindows" msgstr "Größe der Dock-, Minifenster- und Anwendungssymbole" #: ../../WPrefs.app/Icons.c:322 msgid "Icon Preferences" msgstr "Symboleinstellungen" #: ../../WPrefs.app/Icons.c:324 msgid "" "Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style." msgstr "" "Symbol-/Minifenster-Verhalten, Symbolpositionierung,\n" "Größe der Symbole, Minimierungs- und Animationsstil." #: ../../WPrefs.app/KeyboardSettings.c:69 msgid "Initial Key Repeat" msgstr "Verzögerungsrate" #: ../../WPrefs.app/KeyboardSettings.c:110 msgid "Key Repeat Rate" msgstr "Wiederholrate" #: ../../WPrefs.app/KeyboardSettings.c:150 msgid "Type here to test" msgstr "Zum Testen hier Tippen" #: ../../WPrefs.app/KeyboardSettings.c:166 msgid "Keyboard Preferences" msgstr "Tastatureinstellungen" #: ../../WPrefs.app/KeyboardSettings.c:168 msgid "Not done" msgstr "Noch nicht erstellt" #: ../../WPrefs.app/KeyboardShortcuts.c:295 ../../WPrefs.app/Menu.c:323 #: ../../WPrefs.app/TexturePanel.c:1408 ../../WPrefs.app/imagebrowser.c:89 msgid "Cancel" msgstr "Abbrechen" #: ../../WPrefs.app/KeyboardShortcuts.c:297 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "" "Drücken Sie die gewünschte Tastenkombination oder klicken Sie auf Abbrechen " "zum Stoppen der Aufzeichnung." #: ../../WPrefs.app/KeyboardShortcuts.c:316 #: ../../WPrefs.app/KeyboardShortcuts.c:548 ../../WPrefs.app/Menu.c:333 #: ../../WPrefs.app/Menu.c:756 msgid "Capture" msgstr "Aufzeichnen" #: ../../WPrefs.app/KeyboardShortcuts.c:317 #: ../../WPrefs.app/KeyboardShortcuts.c:556 msgid "Click on Capture to interactively define the shortcut key." msgstr "Zum Erstellen eines Tastenkürzels auf \"Aufzeichnen\" klicken." #: ../../WPrefs.app/KeyboardShortcuts.c:453 msgid "Actions" msgstr "Aktionen" #: ../../WPrefs.app/KeyboardShortcuts.c:467 msgid "Open applications menu" msgstr "Anwendungmenü öffnen" #: ../../WPrefs.app/KeyboardShortcuts.c:468 msgid "Open window list menu" msgstr "Fensterliste öffnen" #: ../../WPrefs.app/KeyboardShortcuts.c:469 msgid "Open window commands menu" msgstr "Fenstermenü öffnen" #: ../../WPrefs.app/KeyboardShortcuts.c:470 msgid "Hide active application" msgstr "Aktive Anwendung verstecken" #: ../../WPrefs.app/KeyboardShortcuts.c:471 msgid "Hide other applications" msgstr "Alle anderen Anwendung verstecken" #: ../../WPrefs.app/KeyboardShortcuts.c:472 msgid "Miniaturize active window" msgstr "Aktives Fenster minimieren" #: ../../WPrefs.app/KeyboardShortcuts.c:473 msgid "Close active window" msgstr "Aktives Fenster schließen" #: ../../WPrefs.app/KeyboardShortcuts.c:474 msgid "Maximize active window" msgstr "Aktives Fenster maximieren" #: ../../WPrefs.app/KeyboardShortcuts.c:475 msgid "Maximize active window vertically" msgstr "Aktives Fenster vertikal maximieren" #: ../../WPrefs.app/KeyboardShortcuts.c:476 msgid "Maximize active window horizontally" msgstr "Aktives Fenster horizontal maximieren" #: ../../WPrefs.app/KeyboardShortcuts.c:477 msgid "Maximize active window left half" msgstr "Aktives Fenster zur linken Hälfte maximieren" #: ../../WPrefs.app/KeyboardShortcuts.c:478 msgid "Maximize active window right half" msgstr "Aktives Fenster zur rechten Hälfte maximieren" #: ../../WPrefs.app/KeyboardShortcuts.c:479 msgid "Maximus: Tiled maximization " msgstr "Maximus: Kachel-Maximierung" #: ../../WPrefs.app/KeyboardShortcuts.c:480 msgid "Raise active window" msgstr "Aktives Fenster in den Vordergrund" #: ../../WPrefs.app/KeyboardShortcuts.c:481 msgid "Lower active window" msgstr "Aktives Fenster in den Hintergrund" #: ../../WPrefs.app/KeyboardShortcuts.c:482 msgid "Raise/Lower window under mouse pointer" msgstr "Fenster unter dem Mauszeiger in den Vor-/Hintergrund" #: ../../WPrefs.app/KeyboardShortcuts.c:483 msgid "Shade active window" msgstr "Aktives Fenster aufrollen" #: ../../WPrefs.app/KeyboardShortcuts.c:484 msgid "Move/Resize active window" msgstr "Aktives Fenster bewegen/verändern" #: ../../WPrefs.app/KeyboardShortcuts.c:485 msgid "Select active window" msgstr "Aktives Fenster auswählen" #: ../../WPrefs.app/KeyboardShortcuts.c:486 msgid "Focus next window" msgstr "Nächstes Fenster" #: ../../WPrefs.app/KeyboardShortcuts.c:487 msgid "Focus previous window" msgstr "Vorheriges Fenster" #: ../../WPrefs.app/KeyboardShortcuts.c:488 #, fuzzy msgid "Focus next group window" msgstr "Nächstes Fenster" #: ../../WPrefs.app/KeyboardShortcuts.c:489 #, fuzzy msgid "Focus previous group window" msgstr "Vorheriges Fenster" #: ../../WPrefs.app/KeyboardShortcuts.c:490 msgid "Switch to next workspace" msgstr "Zur nächsten Arbeitsfläche" #: ../../WPrefs.app/KeyboardShortcuts.c:491 msgid "Switch to previous workspace" msgstr "Zur vorherigen Arbeitsfläche" #: ../../WPrefs.app/KeyboardShortcuts.c:492 msgid "Switch to next ten workspaces" msgstr "Springe 10 Arbeitsflächen vorwärts" #: ../../WPrefs.app/KeyboardShortcuts.c:493 msgid "Switch to previous ten workspaces" msgstr "Springe 10 Arbeitsflächen rückwärts" #: ../../WPrefs.app/KeyboardShortcuts.c:494 msgid "Switch to workspace 1" msgstr "Springe zu Arbeitsfläche 1" #: ../../WPrefs.app/KeyboardShortcuts.c:495 msgid "Switch to workspace 2" msgstr "Springe zu Arbeitsfläche 2" #: ../../WPrefs.app/KeyboardShortcuts.c:496 msgid "Switch to workspace 3" msgstr "Springe zu Arbeitsfläche 3" #: ../../WPrefs.app/KeyboardShortcuts.c:497 msgid "Switch to workspace 4" msgstr "Springe zu Arbeitsfläche 4" #: ../../WPrefs.app/KeyboardShortcuts.c:498 msgid "Switch to workspace 5" msgstr "Springe zu Arbeitsfläche 5" #: ../../WPrefs.app/KeyboardShortcuts.c:499 msgid "Switch to workspace 6" msgstr "Springe zu Arbeitsfläche 6" #: ../../WPrefs.app/KeyboardShortcuts.c:500 msgid "Switch to workspace 7" msgstr "Springe zu Arbeitsfläche 7" #: ../../WPrefs.app/KeyboardShortcuts.c:501 msgid "Switch to workspace 8" msgstr "Springe zu Arbeitsfläche 8" #: ../../WPrefs.app/KeyboardShortcuts.c:502 msgid "Switch to workspace 9" msgstr "Springe zu Arbeitsfläche 9" #: ../../WPrefs.app/KeyboardShortcuts.c:503 msgid "Switch to workspace 10" msgstr "Springe zu Arbeitsfläche 10" #: ../../WPrefs.app/KeyboardShortcuts.c:504 msgid "Shortcut for window 1" msgstr "Tastenkürzel für Fenster 1" #: ../../WPrefs.app/KeyboardShortcuts.c:505 msgid "Shortcut for window 2" msgstr "Tastenkürzel für Fenster 2" #: ../../WPrefs.app/KeyboardShortcuts.c:506 msgid "Shortcut for window 3" msgstr "Tastenkürzel für Fenster 3" #: ../../WPrefs.app/KeyboardShortcuts.c:507 msgid "Shortcut for window 4" msgstr "Tastenkürzel für Fenster 4" #: ../../WPrefs.app/KeyboardShortcuts.c:508 msgid "Shortcut for window 5" msgstr "Tastenkürzel für Fenster 5" #: ../../WPrefs.app/KeyboardShortcuts.c:509 msgid "Shortcut for window 6" msgstr "Tastenkürzel für Fenster 6" #: ../../WPrefs.app/KeyboardShortcuts.c:510 msgid "Shortcut for window 7" msgstr "Tastenkürzel für Fenster 7" #: ../../WPrefs.app/KeyboardShortcuts.c:511 msgid "Shortcut for window 8" msgstr "Tastenkürzel für Fenster 8" #: ../../WPrefs.app/KeyboardShortcuts.c:512 msgid "Shortcut for window 9" msgstr "Tastenkürzel für Fenster 9" #: ../../WPrefs.app/KeyboardShortcuts.c:513 msgid "Shortcut for window 10" msgstr "Tastenkürzel für Fenster 10" #: ../../WPrefs.app/KeyboardShortcuts.c:514 msgid "Switch to Next Screen/Monitor" msgstr "Springe zu nächstem Bildschirm" #: ../../WPrefs.app/KeyboardShortcuts.c:515 msgid "Raise/Lower Dock" msgstr "Dock in den Vor-/Hintergrund" #: ../../WPrefs.app/KeyboardShortcuts.c:516 msgid "Raise/Lower Clip" msgstr "Clip in den Vor-/Hintergrund" #: ../../WPrefs.app/KeyboardShortcuts.c:518 msgid "Toggle keyboard language" msgstr "Tastatursbelegung ändern" #: ../../WPrefs.app/KeyboardShortcuts.c:532 msgid "Shortcut" msgstr "Kürzel" #: ../../WPrefs.app/KeyboardShortcuts.c:542 ../../WPrefs.app/Menu.c:762 msgid "Clear" msgstr "Löschen" #: ../../WPrefs.app/KeyboardShortcuts.c:598 msgid "Keyboard Shortcut Preferences" msgstr "Tastenkürzel-Einstellungen" #: ../../WPrefs.app/KeyboardShortcuts.c:600 msgid "" "Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus." msgstr "" "Ändern der Tastenkürzel für Aktionen wie das\n" "Wechseln der Arbeitsflächen und das Öffnen von Menüs." #: ../../WPrefs.app/Menu.c:247 msgid "Select Program" msgstr "Programm auswählen" #: ../../WPrefs.app/Menu.c:460 msgid "New Items" msgstr "Neue Einträge" #: ../../WPrefs.app/Menu.c:461 msgid "Sample Commands" msgstr "Beispielbefehle" #: ../../WPrefs.app/Menu.c:462 msgid "Sample Submenus" msgstr "Beispieluntermenüs" #: ../../WPrefs.app/Menu.c:476 msgid "Run Program" msgstr "Programm ausführen" #: ../../WPrefs.app/Menu.c:477 msgid "Internal Command" msgstr "interner Befehl" #: ../../WPrefs.app/Menu.c:478 msgid "Submenu" msgstr "Untermenü" #: ../../WPrefs.app/Menu.c:479 msgid "External Submenu" msgstr "externes Untermenü" #: ../../WPrefs.app/Menu.c:480 msgid "Generated Submenu" msgstr "erstelltes Untermenü" #: ../../WPrefs.app/Menu.c:481 msgid "Directory Contents" msgstr "Verzeichnisinhalt" #: ../../WPrefs.app/Menu.c:482 msgid "Workspace Menu" msgstr "Arbeitsflächenmenü" #: ../../WPrefs.app/Menu.c:483 ../../WPrefs.app/MouseSettings.c:783 msgid "Window List Menu" msgstr "Fensterliste" #: ../../WPrefs.app/Menu.c:502 msgid "XTerm" msgstr "" #: ../../WPrefs.app/Menu.c:505 msgid "rxvt" msgstr "" #: ../../WPrefs.app/Menu.c:508 msgid "ETerm" msgstr "" #: ../../WPrefs.app/Menu.c:511 msgid "Run..." msgstr "Ausführen..." #: ../../WPrefs.app/Menu.c:512 #, c-format msgid "%a(Run,Type command to run)" msgstr "%a(Befehl zum Ausführen eingeben)" #: ../../WPrefs.app/Menu.c:514 msgid "Netscape" msgstr "" #: ../../WPrefs.app/Menu.c:517 msgid "gimp" msgstr "" #: ../../WPrefs.app/Menu.c:520 msgid "epic" msgstr "" #: ../../WPrefs.app/Menu.c:523 msgid "ee" msgstr "" #: ../../WPrefs.app/Menu.c:526 msgid "xv" msgstr "" #: ../../WPrefs.app/Menu.c:529 msgid "Acrobat Reader" msgstr "" #: ../../WPrefs.app/Menu.c:532 msgid "ghostview" msgstr "" #: ../../WPrefs.app/Menu.c:535 ../../WPrefs.app/Menu.c:781 msgid "Exit Window Maker" msgstr "Window Maker beenden" #: ../../WPrefs.app/Menu.c:557 msgid "Debian Menu" msgstr "Debian-Menü" #: ../../WPrefs.app/Menu.c:560 msgid "RedHat Menu" msgstr "RedHat-Menü" #: ../../WPrefs.app/Menu.c:563 msgid "Menu Conectiva" msgstr "Conectiva-Menü" #: ../../WPrefs.app/Menu.c:566 ../../WPrefs.app/Themes.c:213 msgid "Themes" msgstr "Themen" #: ../../WPrefs.app/Menu.c:572 msgid "Bg Images (scale)" msgstr "Hintergrundbilder (skaliert)" #: ../../WPrefs.app/Menu.c:578 msgid "Bg Images (tile)" msgstr "Hintergrundbilder (Kacheln)" #: ../../WPrefs.app/Menu.c:584 msgid "Assorted XTerms" msgstr "sortierte XTerms" #: ../../WPrefs.app/Menu.c:586 msgid "XTerm Yellow on Blue" msgstr "XTerm Gelb auf Blau" #: ../../WPrefs.app/Menu.c:589 msgid "XTerm White on Black" msgstr "XTerm Weiß auf Schwarz" #: ../../WPrefs.app/Menu.c:592 msgid "XTerm Black on White" msgstr "XTerm Schwarz auf Weiß" #: ../../WPrefs.app/Menu.c:595 msgid "XTerm Black on Beige" msgstr "XTerm Schwarz auf Beige" #: ../../WPrefs.app/Menu.c:598 msgid "XTerm White on Green" msgstr "XTerm Weiß auf Grün" #: ../../WPrefs.app/Menu.c:601 msgid "XTerm White on Olive" msgstr "XTerm Weiß auf Oliv" #: ../../WPrefs.app/Menu.c:604 msgid "XTerm Blue on Blue" msgstr "XTerm Blau auf Blau" #: ../../WPrefs.app/Menu.c:607 msgid "XTerm BIG FONTS" msgstr "XTerm Große Schriften" #: ../../WPrefs.app/Menu.c:628 msgid "Program to Run" msgstr "auszuführendes Programm" #: ../../WPrefs.app/Menu.c:638 msgid "Browse" msgstr "Suchen..." #: ../../WPrefs.app/Menu.c:647 msgid "Run the program inside a Xterm" msgstr "Programm in einem XTerm ausführen" #: ../../WPrefs.app/Menu.c:656 msgid "Path for Menu" msgstr "Menüpfad" #: ../../WPrefs.app/Menu.c:667 msgid "" "Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin" msgstr "" "Geben Sie den Pfad einer Datei, die ein Menü\n" "enthält, oder eine Liste von Verzeichnissen\n" "mit den gewüschten Anwendungen ein. Bespiel:\n" "~/GNUstep/Library/WindowMaker/menu\n" "oder\n" "/usr/bin ~/xbin" #: ../../WPrefs.app/Menu.c:679 msgid "Command" msgstr "Befehl" #: ../../WPrefs.app/Menu.c:690 msgid "" "Enter a command that outputs a menu\n" "definition to stdout when invoked." msgstr "" "Geben Sie einen Befehl ein, der bei Aufruf\n" "ein Menü auf der Standardausgabe zurückgibt." #: ../../WPrefs.app/Menu.c:695 msgid "" "Cache menu contents after opening for\n" "the first time" msgstr "" "Menüinhalt nach erstem Laden\n" "zwischenspeichern" #: ../../WPrefs.app/Menu.c:704 msgid "Command to Open Files" msgstr "Befehl zum Öffnen der Dateien" #: ../../WPrefs.app/Menu.c:715 msgid "" "Enter the command you want to use to open the\n" "files in the directories listed below." msgstr "" "Geben Sie den Befehl zum Öffnen der Dateien\n" "in den augelisteten Verzeichnissen ein." #: ../../WPrefs.app/Menu.c:723 msgid "Directories with Files" msgstr "Verzeichnis mit Dateien" #: ../../WPrefs.app/Menu.c:734 msgid "Strip extensions from file names" msgstr "Erweiterungen von den Dateinamen entfernen" #: ../../WPrefs.app/Menu.c:745 msgid "Keyboard Shortcut" msgstr "Tastenkürzel" #: ../../WPrefs.app/Menu.c:777 msgid "Arrange Icons" msgstr "Symbole anordnen" #: ../../WPrefs.app/Menu.c:778 msgid "Hide All Windows Except For The Focused One" msgstr "Alle Fenster bis auf das aktive verstecken" #: ../../WPrefs.app/Menu.c:779 msgid "Show All Windows" msgstr "Alle Fenster anzeigen" #: ../../WPrefs.app/Menu.c:782 msgid "Exit X Session" msgstr "X-Sitzung beenden" #: ../../WPrefs.app/Menu.c:783 msgid "Restart Window Maker" msgstr "Window Maker neustarten" #: ../../WPrefs.app/Menu.c:784 msgid "Start Another Window Manager : (" msgstr "anderen Windowmanager starten : (" #: ../../WPrefs.app/Menu.c:786 msgid "Save Current Session" msgstr "aktuelle Sitzung speichern" #: ../../WPrefs.app/Menu.c:787 msgid "Clear Saved Session" msgstr "gespeicherte Sitzung löschen" #: ../../WPrefs.app/Menu.c:788 msgid "Refresh Screen" msgstr "Bildschirm auffrischen" #: ../../WPrefs.app/Menu.c:789 msgid "Open Info Panel" msgstr "Infodialog anzeigen" #: ../../WPrefs.app/Menu.c:790 msgid "Open Copyright Panel" msgstr "Copyrightinformationen anzeigen" #: ../../WPrefs.app/Menu.c:795 msgid "Window Manager to Start" msgstr "zu startender Windowmanager" #: ../../WPrefs.app/Menu.c:808 msgid "Do not confirm action." msgstr "Aktion nicht bestätigen" #: ../../WPrefs.app/Menu.c:815 msgid "" "Instructions:\n" "\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information" msgstr "" "Hilfe:\n" "\n" " - ziehen Sie Einträge von links in das Menü, um neue Einträge zu erstellen\n" " - ziehen Sie Einträge aus dem Menu, um sie zu entfernen\n" " - ziehen Sie Einträge innerhalb des Menüs, um sie zu verschieben\n" " - ziehen Sie Einträge bei gedrückter Strg-Taste, um sie zu kopieren\n" " - doppelklicken Sie auf Einträge, um den Text zu verändern\n" " - klicken Sie auf die Einträge, um diese zu konfigurieren " #: ../../WPrefs.app/Menu.c:1032 #, c-format msgid "unknown command '%s' in menu" msgstr "unbekannter Menübefehl '%s'" #: ../../WPrefs.app/Menu.c:1060 msgid ": Execute Program" msgstr ": Programm ausführen" #: ../../WPrefs.app/Menu.c:1064 msgid ": Perform Internal Command" msgstr ": internen Befehl ausführen" #: ../../WPrefs.app/Menu.c:1068 msgid ": Open a Submenu" msgstr ": Untermenü öffnen" #: ../../WPrefs.app/Menu.c:1072 msgid ": Program Generated Submenu" msgstr ": programmgeneriertes Unternmenü" #: ../../WPrefs.app/Menu.c:1076 msgid ": Directory Contents Menu" msgstr ": Menü mit Verzeichnisinhalt" #: ../../WPrefs.app/Menu.c:1080 msgid ": Open Workspaces Submenu" msgstr ": Arbeitsflächen-Untermenü" #: ../../WPrefs.app/Menu.c:1084 msgid ": Open Window List Submenu" msgstr ": Fensterlisten-Untermenü" #: ../../WPrefs.app/Menu.c:1279 msgid "Remove Submenu" msgstr "Untermenü entfernen" #: ../../WPrefs.app/Menu.c:1280 msgid "" "Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?" msgstr "" "Das Entfernen dieses Eintrages löscht alle Einträge\n" "im Untermenü. Wollen Sie das wirklich tun?" #: ../../WPrefs.app/Menu.c:1282 msgid "Yes" msgstr "Ja" #: ../../WPrefs.app/Menu.c:1282 msgid "No" msgstr "Nein" #: ../../WPrefs.app/Menu.c:1282 msgid "Yes, don't ask again." msgstr "Ja, alle" #: ../../WPrefs.app/Menu.c:1437 #, c-format msgid "Could not open default menu from '%s'" msgstr "Standardmenü aus '%s' konnte nicht geöffnet werden" #: ../../WPrefs.app/Menu.c:1441 ../../WPrefs.app/MouseSettings.c:123 #: ../../WPrefs.app/MouseSettings.c:142 ../../WPrefs.app/TexturePanel.c:560 #: ../../WPrefs.app/TexturePanel.c:636 ../../WPrefs.app/Themes.c:84 #: ../../WPrefs.app/WPrefs.c:663 ../../WPrefs.app/WPrefs.c:667 #: ../../WPrefs.app/WPrefs.c:684 ../../WPrefs.app/WPrefs.c:695 #: ../../WPrefs.app/WPrefs.c:705 ../../WPrefs.app/WPrefs.c:745 #: ../../WPrefs.app/WPrefs.c:749 msgid "Error" msgstr "Fehler" #: ../../WPrefs.app/Menu.c:1441 ../../WPrefs.app/MouseSettings.c:125 #: ../../WPrefs.app/MouseSettings.c:145 ../../WPrefs.app/TexturePanel.c:560 #: ../../WPrefs.app/TexturePanel.c:638 ../../WPrefs.app/TexturePanel.c:1402 #: ../../WPrefs.app/Themes.c:85 ../../WPrefs.app/WPrefs.c:663 #: ../../WPrefs.app/WPrefs.c:667 ../../WPrefs.app/WPrefs.c:687 #: ../../WPrefs.app/WPrefs.c:699 ../../WPrefs.app/WPrefs.c:705 #: ../../WPrefs.app/WPrefs.c:714 ../../WPrefs.app/WPrefs.c:745 #: ../../WPrefs.app/WPrefs.c:749 ../../WPrefs.app/imagebrowser.c:94 msgid "OK" msgstr "OK" #: ../../WPrefs.app/Menu.c:1468 ../../WPrefs.app/WPrefs.c:714 msgid "Warning" msgstr "Warnung" #: ../../WPrefs.app/Menu.c:1469 msgid "" "The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?" msgstr "" "Das momentan verwendete Menüdateiformat wird von\n" "diesem Programm nicht unterstützt. Wollen Sie das aktuelle\n" "Menü verwerfen, um dieses Programm verwenden zu können?" #: ../../WPrefs.app/Menu.c:1472 msgid "Yes, Discard and Update" msgstr "Ja, Verwerfen und Erneuern" #: ../../WPrefs.app/Menu.c:1472 msgid "No, Keep Current Menu" msgstr "Nein, aktuelles Menü behalten" #: ../../WPrefs.app/Menu.c:1704 msgid "Applications Menu Definition" msgstr "Anwendungsmenü-Definition" #: ../../WPrefs.app/Menu.c:1706 msgid "Edit the menu for launching applications." msgstr "Editieren des Menüs zum Starten von Anwendungen" #: ../../WPrefs.app/MenuPreferences.c:102 msgid "Menu Scrolling Speed" msgstr "Menü-Scrollgeschwindigkeit" #: ../../WPrefs.app/MenuPreferences.c:150 msgid "Submenu Alignment" msgstr "Untermenü-Ausrichtung" #: ../../WPrefs.app/MenuPreferences.c:196 msgid "" "Always open submenus inside the screen, instead of scrolling." msgstr "" "Untermenüs immer im Bildschirm öffnen anstatt zu Scrollen." #: ../../WPrefs.app/MenuPreferences.c:201 msgid "Scroll off-screen menus when pointer is moved over them." msgstr "" "Menüs außerhalb des Bildschirms scrollen, wenn der Mauszeiger über ihnen ist." #: ../../WPrefs.app/MenuPreferences.c:218 msgid "Menu Preferences" msgstr "Menüeinstellungen" #: ../../WPrefs.app/MenuPreferences.c:220 msgid "" "Menu usability related options. Scrolling speed,\n" "alignment of submenus etc." msgstr "" "Menüverhalten und verwandte Einstellungen. Scrollgeschwindigkeit,\n" "Ausrichtung von Untermenüs usw." #: ../../WPrefs.app/MouseSettings.c:124 msgid "Invalid mouse acceleration value. Must be a positive real value." msgstr "Ungültiger Wert für Mausy^: positive Kommazahl erwartet." #: ../../WPrefs.app/MouseSettings.c:144 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." msgstr "" "Ungültiger Schwellenwert für Mausbeuschleunigung: Anzahl der zurückgelegten " "Pixel erwartet." #: ../../WPrefs.app/MouseSettings.c:231 ../../WPrefs.app/MouseSettings.c:243 #: ../../WPrefs.app/MouseSettings.c:255 ../../WPrefs.app/MouseSettings.c:267 #, c-format msgid "bad value %s for option %s" msgstr "ungültiger Wert %s für Option %s" #: ../../WPrefs.app/MouseSettings.c:323 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" msgstr "" "Tastenmodifikator %s für die Option ModifierKey wurde nicht erkannt. " "Standardwert %s wird benutzt" #: ../../WPrefs.app/MouseSettings.c:344 msgid "could not retrieve keyboard modifier mapping" msgstr "Tastenmodifikator-Zuordnung konnte nicht zurückverfolgt werden" #: ../../WPrefs.app/MouseSettings.c:435 msgid "Mouse Speed" msgstr "Mausgeschwindigkeit" #: ../../WPrefs.app/MouseSettings.c:465 msgid "Acceler.:" msgstr "Beschl.:" #: ../../WPrefs.app/MouseSettings.c:476 msgid "Threshold:" msgstr "Schwelle:" #: ../../WPrefs.app/MouseSettings.c:490 msgid "Double-Click Delay" msgstr "Doppelklickverzögerung" #: ../../WPrefs.app/MouseSettings.c:533 msgid "Test" msgstr "" #: ../../WPrefs.app/MouseSettings.c:563 msgid "Workspace Mouse Actions" msgstr "Arbeitsflächen-Mausaktionen" #: ../../WPrefs.app/MouseSettings.c:568 msgid "Disable mouse actions" msgstr "Keine Mausaktionen" #: ../../WPrefs.app/MouseSettings.c:574 msgid "Left Button" msgstr "Links" #: ../../WPrefs.app/MouseSettings.c:584 msgid "Middle Button" msgstr "Mitte" #: ../../WPrefs.app/MouseSettings.c:594 msgid "Right Button" msgstr "Rechts" #: ../../WPrefs.app/MouseSettings.c:604 msgid "Mouse Wheel" msgstr "Mausrad" #: ../../WPrefs.app/MouseSettings.c:626 msgid "Mouse Grab Modifier" msgstr "Taste zum Aufnehmen" #: ../../WPrefs.app/MouseSettings.c:628 msgid "" "Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window." msgstr "" "Die Modifikatortaste, die den Verschiebe- oder\n" "Größenänderungsmodus aktiviert, wenn auf\n" "das Fenster geklickt wurde." #: ../../WPrefs.app/MouseSettings.c:658 #, c-format msgid "could not create %s" msgstr "%s konnte nicht erstellt werden" #: ../../WPrefs.app/MouseSettings.c:673 #, c-format msgid "could not create temporary file %s" msgstr "temporäre Datei %s konnte nicht erstellt werden" #: ../../WPrefs.app/MouseSettings.c:705 #, c-format msgid "could not rename file %s to %s\n" msgstr "Datei %s konnte nicht nach %s umbenannt werden\n" #: ../../WPrefs.app/MouseSettings.c:772 msgid "Shift" msgstr "" #: ../../WPrefs.app/MouseSettings.c:773 msgid "Lock" msgstr "" #: ../../WPrefs.app/MouseSettings.c:774 msgid "Control" msgstr "" #: ../../WPrefs.app/MouseSettings.c:775 msgid "Mod1" msgstr "" #: ../../WPrefs.app/MouseSettings.c:776 msgid "Mod2" msgstr "" #: ../../WPrefs.app/MouseSettings.c:777 msgid "Mod3" msgstr "" #: ../../WPrefs.app/MouseSettings.c:778 msgid "Mod4" msgstr "" #: ../../WPrefs.app/MouseSettings.c:779 msgid "Mod5" msgstr "" #: ../../WPrefs.app/MouseSettings.c:782 msgid "Applications Menu" msgstr "Anwendungsmenü" #: ../../WPrefs.app/MouseSettings.c:784 msgid "Select Windows" msgstr "Fenster auswählen" #: ../../WPrefs.app/MouseSettings.c:787 msgid "Switch Workspaces" msgstr "Arbeitsfläche wechseln" #: ../../WPrefs.app/MouseSettings.c:792 msgid "Mouse Preferences" msgstr "Mauseinstellungen" #: ../../WPrefs.app/MouseSettings.c:794 msgid "" "Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc." msgstr "" "Mausgeschwindigkeit/-beschleunigung, Doppelklickverzögerung,\n" "Maustastenaktionen" #: ../../WPrefs.app/Paths.c:78 msgid "bad value in option IconPath. Using default path list" msgstr "ungültiger Wert in Eigenschaft IconPath. Standardliste wird verwendet." #: ../../WPrefs.app/Paths.c:95 msgid "bad value in option PixmapPath. Using default path list" msgstr "" "ungültiger Wert in Eigenschaft PixmapPath. Standardliste wird verwendet." #: ../../WPrefs.app/Paths.c:138 msgid "Select directory" msgstr "Verzeichnis auswählen" #: ../../WPrefs.app/Paths.c:243 msgid "Icon Search Paths" msgstr "Symbol-Suchpfade" #: ../../WPrefs.app/Paths.c:254 ../../WPrefs.app/Paths.c:285 #: ../../WPrefs.app/TexturePanel.c:1196 msgid "Add" msgstr "Hinzufügen" #: ../../WPrefs.app/Paths.c:261 ../../WPrefs.app/Paths.c:292 msgid "Remove" msgstr "Entfernen" #: ../../WPrefs.app/Paths.c:274 msgid "Pixmap Search Paths" msgstr "Pixmap-Suchpfade" #: ../../WPrefs.app/Paths.c:310 msgid "Search Path Configuration" msgstr "Suchpfadeinstellungen" #: ../../WPrefs.app/Paths.c:312 msgid "" "Search paths to use when looking for pixmaps\n" "and icons." msgstr "Suchpfade für Pixmaps und Symbole" #: ../../WPrefs.app/Preferences.c:70 #, c-format msgid "OFF" msgstr "AUS" #: ../../WPrefs.app/Preferences.c:72 #, c-format msgid "1 pixel" msgstr "1 Pixel" #. 2-4 #: ../../WPrefs.app/Preferences.c:75 #, c-format msgid "%i pixels" msgstr "%i Pixel" #. >4 #: ../../WPrefs.app/Preferences.c:78 #, c-format msgid "%i pixels " msgstr "%i Pixel " #: ../../WPrefs.app/Preferences.c:217 msgid "Size Display" msgstr "Größenanzeige" #: ../../WPrefs.app/Preferences.c:219 msgid "" "The position or style of the window size\n" "display that's shown when a window is resized." msgstr "" "Die Position und Art der Anzeige die bei der\n" "Größenänderung der Fensters benutzt wird." #: ../../WPrefs.app/Preferences.c:225 ../../WPrefs.app/Preferences.c:245 msgid "Corner of screen" msgstr "Bildschirmecke" #: ../../WPrefs.app/Preferences.c:226 ../../WPrefs.app/Preferences.c:246 msgid "Center of screen" msgstr "Bildschirmmitte" #: ../../WPrefs.app/Preferences.c:227 ../../WPrefs.app/Preferences.c:247 msgid "Center of resized window" msgstr "Fenstermitte" #: ../../WPrefs.app/Preferences.c:228 msgid "Technical drawing-like" msgstr "wie technische Zeichnung" #: ../../WPrefs.app/Preferences.c:229 ../../WPrefs.app/Preferences.c:248 msgid "Disabled" msgstr "Keine" #: ../../WPrefs.app/Preferences.c:237 msgid "Position Display" msgstr "Positionsanzeige" #: ../../WPrefs.app/Preferences.c:239 msgid "" "The position or style of the window position\n" "display that's shown when a window is moved." msgstr "" "Die Position und Art der Anzeige\n" "beim Verschieben eines Fensters" #: ../../WPrefs.app/Preferences.c:256 msgid "Show balloon text for..." msgstr "Zeige Ballontext für..." #: ../../WPrefs.app/Preferences.c:263 msgid "incomplete window titles" msgstr "unvollständige Fenstertitel" #: ../../WPrefs.app/Preferences.c:264 msgid "miniwindow titles" msgstr "Minifenster-Titel" #: ../../WPrefs.app/Preferences.c:265 msgid "application/dock icons" msgstr "Anwendungs-/Docksymbole" #: ../../WPrefs.app/Preferences.c:266 msgid "internal help" msgstr "interne Hilfe" #: ../../WPrefs.app/Preferences.c:278 msgid "" "Raise window when switching\n" "focus with keyboard." msgstr "" "Aktives Fenster nach Tastatur-\n" "Fokuswechsel oben." #: ../../WPrefs.app/Preferences.c:284 msgid "" "Enable keyboard language\n" "switch button in window titlebars." msgstr "" "Schaltfläche zum Ändern der\n" "Tastaturbelegung in Fenstertitelleisten." #: ../../WPrefs.app/Preferences.c:293 msgid "Workspace border" msgstr "Arbeitsflächenkante" #: ../../WPrefs.app/Preferences.c:309 msgid "Left/Right" msgstr "Links/Rechts" #: ../../WPrefs.app/Preferences.c:314 msgid "Top/Bottom" msgstr "Oben/Unten" #: ../../WPrefs.app/Preferences.c:331 msgid "Miscellaneous Ergonomic Preferences" msgstr "Verschiedene Einstellungen zur Ergonomie" #: ../../WPrefs.app/Preferences.c:332 msgid "" "Various settings like balloon text, geometry\n" "displays etc." msgstr "" "Verschiedene Einstellungen wie Ballontexte,\n" "Geometrieanzeigen usw." #: ../../WPrefs.app/TexturePanel.c:295 msgid "Saturation" msgstr "Sättigung" #: ../../WPrefs.app/TexturePanel.c:297 msgid "Brightness" msgstr "Helligkeit" #: ../../WPrefs.app/TexturePanel.c:342 ../../WPrefs.app/TexturePanel.c:348 msgid "Hue" msgstr "Farbton" #: ../../WPrefs.app/TexturePanel.c:557 msgid "Could not load the selected file: " msgstr "Ausgewählte Datei konnte nicht geladen werden: " #: ../../WPrefs.app/TexturePanel.c:607 msgid "Open Image" msgstr "Bild öffnen" #: ../../WPrefs.app/TexturePanel.c:637 msgid "The selected file does not contain a supported image." msgstr "Die ausgewählte Datei enthält kein unterstütztes Bildformat" #: ../../WPrefs.app/TexturePanel.c:867 #, c-format msgid "could not load file '%s': %s" msgstr "Datei %s konnte nicht geladen werden: %s" #: ../../WPrefs.app/TexturePanel.c:981 #, c-format msgid "error creating texture %s" msgstr "Fehler beim Erstellen der Textur %s" #: ../../WPrefs.app/TexturePanel.c:1141 msgid "Texture Panel" msgstr "Texturanzeige" #: ../../WPrefs.app/TexturePanel.c:1148 msgid "Texture Name" msgstr "Texturname" #: ../../WPrefs.app/TexturePanel.c:1160 msgid "Solid Color" msgstr "Einfarbig" #: ../../WPrefs.app/TexturePanel.c:1161 msgid "Gradient Texture" msgstr "Farbverlauf" #: ../../WPrefs.app/TexturePanel.c:1162 msgid "Simple Gradient Texture" msgstr "Einfacher Farbverlauf" #: ../../WPrefs.app/TexturePanel.c:1163 msgid "Textured Gradient" msgstr "Texturierter Farbverlauf" #: ../../WPrefs.app/TexturePanel.c:1164 msgid "Image Texture" msgstr "Bildtextur" #: ../../WPrefs.app/TexturePanel.c:1172 msgid "Default Color" msgstr "Standardfarbe" #: ../../WPrefs.app/TexturePanel.c:1184 msgid "Gradient Colors" msgstr "Verlaufsfarben" #: ../../WPrefs.app/TexturePanel.c:1273 msgid "Direction" msgstr "Richtung" #: ../../WPrefs.app/TexturePanel.c:1301 msgid "Gradient" msgstr "Farbverlauf" #: ../../WPrefs.app/TexturePanel.c:1317 msgid "Gradient Opacity" msgstr "Farbverlaufsdeckung" #: ../../WPrefs.app/TexturePanel.c:1357 msgid "Image" msgstr "Bild" #: ../../WPrefs.app/TexturePanel.c:1389 msgid "Tile" msgstr "Kachel" #: ../../WPrefs.app/TexturePanel.c:1390 msgid "Scale" msgstr "Vollbild" #: ../../WPrefs.app/TexturePanel.c:1392 msgid "Maximize" msgstr "Maximieren" #: ../../WPrefs.app/Themes.c:64 ../../WPrefs.app/Themes.c:72 msgid "Set" msgstr "Setzen" #: ../../WPrefs.app/Themes.c:115 msgid "Stop" msgstr "" #: ../../WPrefs.app/Themes.c:126 ../../WPrefs.app/Themes.c:171 #: ../../WPrefs.app/Themes.c:191 msgid "Download" msgstr "" #: ../../WPrefs.app/Themes.c:140 msgid "Save Current Theme" msgstr "Aktuelles Thema speichern" #: ../../WPrefs.app/Themes.c:149 msgid "Load" msgstr "Laden" #: ../../WPrefs.app/Themes.c:154 msgid "Install" msgstr "Installieren" #: ../../WPrefs.app/Themes.c:161 msgid "Tile of The Day" msgstr "Kachel des Tages" #: ../../WPrefs.app/Themes.c:181 msgid "Bar of The Day" msgstr "Leiste des Tages" #: ../../WPrefs.app/WPrefs.c:225 ../../WPrefs.app/WPrefs.c:295 msgid "Window Maker Preferences" msgstr "Window Maker Einstellungen" #: ../../WPrefs.app/WPrefs.c:248 msgid "Revert Page" msgstr "Seite zurücknehmen" #: ../../WPrefs.app/WPrefs.c:254 msgid "Revert All" msgstr "Alles zurücknehmen" #: ../../WPrefs.app/WPrefs.c:260 msgid "Save" msgstr "Speichern" #: ../../WPrefs.app/WPrefs.c:272 msgid "Balloon Help" msgstr "Ballon-Hilfe" #: ../../WPrefs.app/WPrefs.c:302 #, c-format msgid "Version %s" msgstr "" #: ../../WPrefs.app/WPrefs.c:309 msgid "Starting..." msgstr "Starte..." #: ../../WPrefs.app/WPrefs.c:393 #, c-format msgid "could not locate image file %s\n" msgstr "Bilddatei %s konnte nicht gefunden werden\n" #: ../../WPrefs.app/WPrefs.c:584 #, c-format msgid "could not load image file %s:%s" msgstr "Bilddatei %s konnte nicht geladen werden: %s" #: ../../WPrefs.app/WPrefs.c:601 msgid "Loading Window Maker configuration files..." msgstr "Window Maker-Konfigurationsdateien werden geladen..." #: ../../WPrefs.app/WPrefs.c:605 msgid "Initializing configuration panels..." msgstr "Einstellungsseiten werden vorbereitet..." #: ../../WPrefs.app/WPrefs.c:662 ../../WPrefs.app/WPrefs.c:744 #, c-format msgid "Window Maker domain (%s) is corrupted!" msgstr "Window Maker-Domäne (%s) ist fehlerhaft!" #: ../../WPrefs.app/WPrefs.c:666 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "" "Window Maker-Domäne (%s) konnte nicht aus Standarddatenbank geladen werden." #: ../../WPrefs.app/WPrefs.c:681 msgid "could not extract version information from Window Maker" msgstr "Window Maker-Versionsinformationen konnten nicht festgestellt werden" #: ../../WPrefs.app/WPrefs.c:682 msgid "Make sure wmaker is in your search path." msgstr "Stellen Sie sicher, das \"wmaker\" in Ihrem Suchpfad enhalten ist." #: ../../WPrefs.app/WPrefs.c:686 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." msgstr "" "Window Maker-Versionsinformationen konnten nicht festgestellt werden. " "Stellen Sie sicher, dass Window Maker korrekt installiert und in der PATH-" "Umgebungsvariable enthalten ist." #: ../../WPrefs.app/WPrefs.c:696 msgid "" "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." msgstr "" "Window Maker-Versionsinformationen konnten nicht festgestellt werden. " "Stellen Sie sicher, dass Window Maker korrekt installiert und der " "Installationspfad in der PATH-Umgebungsvariable enthalten ist." #: ../../WPrefs.app/WPrefs.c:703 #, c-format msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "WPrefs unterstützt nur Window Maker 0.18.0 oder neuer.\n" "Die installierte Version ist %i.%i.%i\n" #: ../../WPrefs.app/WPrefs.c:712 #, c-format msgid "" "Window Maker %i.%i.%i, which is installed in your system, is not fully " "supported by this version of WPrefs." msgstr "" "Der auf Ihrem System installierte Window Maker %i.%i.%i wird von dieser " "WPrefs-Version nicht komplett unterstützt." #: ../../WPrefs.app/WPrefs.c:725 #, c-format msgid "could not run \"%s --global_defaults_path\"." msgstr "\"%s --global_defaults_path\" konnte nicht ausgeführt werden." #: ../../WPrefs.app/WPrefs.c:748 #, c-format msgid "Could not load global Window Maker domain (%s)." msgstr "Globale Window Maker-Domäne (%s) konnte nicht geladen werden." #: ../../WPrefs.app/WPrefs.c:968 #, c-format msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" "Falscher Geschwindigkeitswert für Eigenschaft %s.\n" "Standardwert 'Mittel' wird benutzt." #: ../../WPrefs.app/WindowHandling.c:150 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "Ungültiger Wert %s in Fensterplatzierung. Standardwert wird benutzt." #: ../../WPrefs.app/WindowHandling.c:169 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" msgstr "" "Ungültige Daten in Option WindowPlaceOrigin. Standardwert (0,0) wird benutzt." #: ../../WPrefs.app/WindowHandling.c:249 msgid "Window Placement" msgstr "Fensterplatzierung" #: ../../WPrefs.app/WindowHandling.c:250 msgid "" "How to place windows when they are first put\n" "on screen." msgstr "Wahl der Fensterplatzierung beim ersten Anzeigen." #: ../../WPrefs.app/WindowHandling.c:256 msgid "Automatic" msgstr "Automatisch" #: ../../WPrefs.app/WindowHandling.c:257 msgid "Random" msgstr "Zufällig" #: ../../WPrefs.app/WindowHandling.c:258 msgid "Manual" msgstr "Manuell" #: ../../WPrefs.app/WindowHandling.c:259 msgid "Cascade" msgstr "Kaskadieren" #: ../../WPrefs.app/WindowHandling.c:260 msgid "Smart" msgstr "Schlau" #: ../../WPrefs.app/WindowHandling.c:266 msgid "Placement Origin" msgstr "Startplatzierung" #: ../../WPrefs.app/WindowHandling.c:326 msgid "Opaque Move" msgstr "Verschiebeart" #: ../../WPrefs.app/WindowHandling.c:327 msgid "" "Whether the window contents should be moved\n" "when dragging windows aroung or if only a\n" "frame should be displayed.\n" msgstr "" "Legt fest, ob beim Verschieben der Fensterinhalt\n" "oder nur ein Rechteck in Fenstergröße angezeigt \n" "werden soll.\n" #: ../../WPrefs.app/WindowHandling.c:365 msgid "When maximizing..." msgstr "Beim Maximieren..." #: ../../WPrefs.app/WindowHandling.c:370 msgid "...do not cover icons" msgstr "...Symbole nicht verdecken" #: ../../WPrefs.app/WindowHandling.c:376 msgid "...do not cover dock" msgstr "...Dock nicht verdecken" #: ../../WPrefs.app/WindowHandling.c:401 msgid "Edge Resistance" msgstr "Kantenwiderstand" #: ../../WPrefs.app/WindowHandling.c:403 msgid "" "Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen." msgstr "" "Der Kantenwiderstand bewirkt, dass Fenster\n" "bis zur eingestellten Schwelle weiterer Bewegung\n" "widerstehen, wenn sie auf andere Fenster oder die\n" "Bildschirmkante treffen." #: ../../WPrefs.app/WindowHandling.c:422 msgid "Resist" msgstr "Druck" #: ../../WPrefs.app/WindowHandling.c:427 msgid "Attract" msgstr "Zug" #: ../../WPrefs.app/WindowHandling.c:441 msgid "" "Open dialogs in the same workspace\n" "as their owners" msgstr "" "Dialoge auf Arbeitsfläche des\n" "Eigentümers öffnen" #: ../../WPrefs.app/WindowHandling.c:464 msgid "Window Handling Preferences" msgstr "Einstellungen zum Fensterverhalten" #: ../../WPrefs.app/WindowHandling.c:466 msgid "" "Window handling options. Initial placement style\n" "edge resistance, opaque move etc." msgstr "" "Einstellungen zum Fensterverhalten: Anfangsplatzierung,\n" "Kantenwiderstand, Verschiebeart usw." #: ../../WPrefs.app/Workspace.c:163 msgid "Workspace Navigation" msgstr "Arbeitsflächennavigation" #: ../../WPrefs.app/Workspace.c:168 msgid "Wrap to the first workspace from the last workspace." msgstr "" "Auf die letzte Arbeitsfläche folgt wieder\n" "die erste." #: ../../WPrefs.app/Workspace.c:187 msgid "Switch workspaces while dragging windows." msgstr "Beim Bewegen von Fenstern Arbeitsfläche wechseln." #: ../../WPrefs.app/Workspace.c:206 msgid "Automatically create new workspaces." msgstr "Automatisch neue Arbeitsflächen erstellen." #: ../../WPrefs.app/Workspace.c:226 msgid "" "Position of workspace\n" "name display" msgstr "" "Position des Namens\n" "der Arbeitsfläche" #: ../../WPrefs.app/Workspace.c:245 msgid "Disable" msgstr "Keiner" #: ../../WPrefs.app/Workspace.c:247 msgid "Top" msgstr "Oben" #: ../../WPrefs.app/Workspace.c:248 msgid "Bottom" msgstr "Unten" #: ../../WPrefs.app/Workspace.c:249 msgid "Top/Left" msgstr "Oben links" #: ../../WPrefs.app/Workspace.c:250 msgid "Top/Right" msgstr "Oben rechts" #: ../../WPrefs.app/Workspace.c:251 msgid "Bottom/Left" msgstr "Unten links" #: ../../WPrefs.app/Workspace.c:252 msgid "Bottom/Right" msgstr "Unten rechts" #: ../../WPrefs.app/Workspace.c:260 msgid "Dock/Clip" msgstr "Dock/Clip" #: ../../WPrefs.app/Workspace.c:279 msgid "" "Disable/enable the application Dock (the\n" "vertical icon bar in the side of the screen)." msgstr "" "Anwendungsdock ein-/ausschalten (die\n" "vertikale Symbolleiste am Rande des Bildschirmes)." #: ../../WPrefs.app/Workspace.c:299 msgid "" "Disable/enable the Clip (that thing with\n" "a paper clip icon)." msgstr "" "Clip ein-/ausschalten (das Ding mit der\n" "Büroklammer)." #: ../../WPrefs.app/Workspace.c:333 msgid "Workspace Preferences" msgstr "Arbeitsflächeneinstellungen" #: ../../WPrefs.app/Workspace.c:335 msgid "" "Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here." msgstr "" "Einstellungen zur Arbeitsflächennavigation.\n" "Auch Dock und Clip können hier ein-/ausgeschaltet werden." #: ../../WPrefs.app/imagebrowser.c:84 msgid "View" msgstr "Ansicht" #: ../../WPrefs.app/main.c:53 #, c-format msgid "usage: %s [options]\n" msgstr "Benutzung: %s [Optionen]\n" #: ../../WPrefs.app/main.c:54 msgid "options:" msgstr "Optionen:" #: ../../WPrefs.app/main.c:55 msgid " -display <display>\tdisplay to be used" msgstr " -display <display>\tverwendetes Display" #: ../../WPrefs.app/main.c:56 msgid " --version\t\tprint version number and exit" msgstr " --version\t\tVersionsnummer ausgeben und beenden" #: ../../WPrefs.app/main.c:57 msgid " --help\t\tprint this message and exit" msgstr " --help\t\tdiese Meldung ausgeben und beenden" #: ../../WPrefs.app/main.c:124 #, c-format msgid "too few arguments for %s" msgstr "zu wenig Argumente für %s" #: ../../WPrefs.app/main.c:147 msgid "X server does not support locale" msgstr "X-Server unterstützt keine Lokalisierungen" #: ../../WPrefs.app/main.c:150 msgid "cannot set locale modifiers" msgstr "Lokalisierung kann nicht gesetzt werden" #: ../../WPrefs.app/main.c:156 #, c-format msgid "could not open display %s" msgstr "Display %s kann nicht geöffnet werden" #: ../../WPrefs.app/main.c:164 msgid "could not initialize application" msgstr "Anwendung konnte nicht initialisiert werden" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/MouseSettings.c�������������������������������������������������������0000644�0001750�0001750�00000050201�12214432632�015721� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* MouseSettings.c- mouse options (some are equivalent to xset) * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" #include <X11/Xutil.h> #include <X11/XKBlib.h> #include <unistd.h> #include <math.h> #define XSET "xset" typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMFrame *speedF; WMLabel *speedL; WMSlider *speedS; WMLabel *acceL; WMTextField *acceT; WMLabel *threL; WMTextField *threT; WMFrame *ddelaF; WMButton *ddelaB[5]; WMTextField *ddelaT; WMLabel *ddelaL; DoubleTest *tester; WMFrame *menuF; WMLabel *button1L; WMLabel *button2L; WMLabel *button3L; WMLabel *wheelL; WMPopUpButton *button1P; WMPopUpButton *button2P; WMPopUpButton *button3P; WMPopUpButton *wheelP; WMButton *disaB; WMFrame *grabF; WMPopUpButton *grabP; /**/ int maxThreshold; float acceleration; } _Panel; #define ICON_FILE "mousesettings" #define SPEED_ICON_FILE "mousespeed" #define DELAY_ICON "timer%i" #define DELAY_ICON_S "timer%is" /* need access to the double click variables */ #include <WINGs/WINGsP.h> static char *modifierNames[8]; static char *buttonActions[4]; static char *wheelActions[2]; #define DELAY(i) ((i)*75+170) static void setMouseAccel(WMScreen * scr, float accel, int threshold) { int n, d; d = 10; n = accel * d; XChangePointerControl(WMScreenDisplay(scr), True, True, n, d, threshold); } static void speedChange(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int i; char buffer[64]; int threshold; char *tmp; if (w == NULL) { float accel; tmp = WMGetTextFieldText(panel->acceT); if (sscanf(tmp, "%f", &accel) != 1 || accel < 0) { WMRunAlertPanel(WMWidgetScreen(panel->acceT), GetWindow(panel), _("Error"), _("Invalid mouse acceleration value. Must be a positive real value."), _("OK"), NULL, NULL); wfree(tmp); return; } panel->acceleration = accel; wfree(tmp); } else { i = (int)WMGetSliderValue(panel->speedS); panel->acceleration = 0.25 + (i * 0.25); sprintf(buffer, "%.2f", 0.25 + (i * 0.25)); WMSetTextFieldText(panel->acceT, buffer); } tmp = WMGetTextFieldText(panel->threT); if (sscanf(tmp, "%i", &threshold) != 1 || threshold < 0 || threshold > panel->maxThreshold) { WMRunAlertPanel(WMWidgetScreen(panel->parent), GetWindow(panel), _("Error"), _ ("Invalid mouse acceleration threshold value. Must be the number of pixels to travel before accelerating."), _("OK"), NULL, NULL); } else { setMouseAccel(WMWidgetScreen(panel->parent), panel->acceleration, threshold); } wfree(tmp); } static void returnPressed(void *observerData, WMNotification * notification) { _Panel *panel = (_Panel *) observerData; speedChange(NULL, panel); } static void doubleClick(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int i; char buffer[32]; for (i = 0; i < 5; i++) { if (panel->ddelaB[i] == w) break; } WINGsConfiguration.doubleClickDelay = DELAY(i); sprintf(buffer, "%i", DELAY(i)); WMSetTextFieldText(panel->ddelaT, buffer); } static int getButtonAction(const char *str) { if (!str) return -2; if (strcasecmp(str, "None") == 0) return 0; else if (strcasecmp(str, "OpenApplicationsMenu") == 0) return 1; else if (strcasecmp(str, "OpenWindowListMenu") == 0) return 2; else if (strcasecmp(str, "SelectWindows") == 0) return 3; else return -1; } static int getWheelAction(const char *str) { if (!str) return -2; if (strcasecmp(str, "None") == 0) return 0; else if (strcasecmp(str, "SwitchWorkspaces") == 0) return 1; else return -1; } static void getMouseParameters(Display * dpy, float *accel, int *thre) { int n, d; XGetPointerControl(dpy, &n, &d, thre); *accel = (float)n / (float)d; } static void showData(_Panel * panel) { char *str; int i; int a = -1, b = -1, c = -1, w = -1; float accel; char buffer[32]; Display *dpy = WMScreenDisplay(WMWidgetScreen(panel->parent)); str = GetStringForKey("MouseLeftButtonAction"); i = getButtonAction(str); if (i < 0) { a = 3; if (i == -1) { wwarning(_("bad value %s for option %s"), str, "MouseLeftButtonAction"); } } else { a = i; } WMSetPopUpButtonSelectedItem(panel->button1P, a); str = GetStringForKey("MouseMiddleButtonAction"); i = getButtonAction(str); if (i < 0) { b = 2; if (i == -1) { wwarning(_("bad value %s for option %s"), str, "MouseMiddleButtonAction"); } } else { b = i; } WMSetPopUpButtonSelectedItem(panel->button2P, b); str = GetStringForKey("MouseRightButtonAction"); i = getButtonAction(str); if (i < 0) { c = 1; if (i == -1) { wwarning(_("bad value %s for option %s"), str, "MouseRightButtonAction"); } } else { c = i; } WMSetPopUpButtonSelectedItem(panel->button3P, c); str = GetStringForKey("MouseWheelAction"); i = getWheelAction(str); if (i < 0) { w = 0; if (i == -1) { wwarning(_("bad value %s for option %s"), str, "MouseWheelAction"); } } else { w = i; } WMSetPopUpButtonSelectedItem(panel->wheelP, w); WMSetButtonSelected(panel->disaB, GetBoolForKey("DisableWSMouseActions")); /**/ getMouseParameters(dpy, &accel, &a); panel->maxThreshold = WidthOfScreen(DefaultScreenOfDisplay(dpy)); if (a > panel->maxThreshold) { panel->maxThreshold = a; } sprintf(buffer, "%i", a); WMSetTextFieldText(panel->threT, buffer); WMSetSliderValue(panel->speedS, (accel - 0.25) / 0.25); panel->acceleration = accel; sprintf(buffer, "%.2f", accel); WMSetTextFieldText(panel->acceT, buffer); /**/ b = GetIntegerForKey("DoubleClickTime"); /* find best match */ a = -1; for (i = 0; i < 5; i++) { if (DELAY(i) == b) a = i; } if (a >= 0) WMPerformButtonClick(panel->ddelaB[a]); sprintf(buffer, "%i", b); WMSetTextFieldText(panel->ddelaT, buffer); /**/ str = GetStringForKey("ModifierKey"); if (!str) str = "mod1"; a = ModifierFromKey(dpy, str); if (a != -1) { str = modifierNames[a]; a = 0; for (i = 0; i < WMGetPopUpButtonNumberOfItems(panel->grabP); i++) { if (strstr(WMGetPopUpButtonItem(panel->grabP, i), str)) { WMSetPopUpButtonSelectedItem(panel->grabP, i); a = 1; break; } } } if (a < 1) { char *previous; previous = WMGetPopUpButtonItem(panel->grabP, 0); if (previous != NULL) WMSetPopUpButtonSelectedItem(panel->grabP, 0); wwarning(_("modifier key %s for option ModifierKey was not recognized. Using %s as default"), str, previous?previous:"(empty)"); } } static void fillModifierPopUp(WMPopUpButton * pop) { XModifierKeymap *mapping; Display *dpy = WMScreenDisplay(WMWidgetScreen(pop)); int i, j; char *str; char buffer[64]; mapping = XGetModifierMapping(dpy); if (!mapping || mapping->max_keypermod == 0) { WMAddPopUpButtonItem(pop, "Mod1"); WMAddPopUpButtonItem(pop, "Mod2"); WMAddPopUpButtonItem(pop, "Mod3"); WMAddPopUpButtonItem(pop, "Mod4"); WMAddPopUpButtonItem(pop, "Mod5"); wwarning(_("could not retrieve keyboard modifier mapping")); return; } for (j = 0; j < 8; j++) { int idx; char *array[8]; int a; KeySym ksym; int k; char *ptr; char *tmp; a = 0; memset(array, 0, sizeof(char *) * 8); for (i = 0; i < mapping->max_keypermod; i++) { idx = i + j * mapping->max_keypermod; if (mapping->modifiermap[idx] != 0) { int l; for (l = 0; l < 4; l++) { if (xext_xkb_supported) ksym = XkbKeycodeToKeysym(dpy, mapping->modifiermap[idx], 0, l); else ksym = XKeycodeToKeysym(dpy, mapping->modifiermap[idx], 0); if (ksym != NoSymbol) break; } if (ksym != NoSymbol) str = XKeysymToString(ksym); else str = NULL; if (str && !strstr(str, "_Lock") && !strstr(str, "Shift") && !strstr(str, "Control")) { array[a++] = wstrdup(str); } } } for (k = 0; k < a; k++) { if (array[k] == NULL) continue; tmp = wstrdup(array[k]); ptr = strstr(tmp, "_L"); if (ptr) *ptr = 0; ptr = strstr(tmp, "_R"); if (ptr) *ptr = 0; sprintf(buffer, "%s (%s)", modifierNames[j], tmp); /*sprintf(buffer, "%s", tmp); */ WMAddPopUpButtonItem(pop, buffer); for (i = k + 1; i < a; i++) { if (array[i] == NULL) continue; if (strstr(array[i], tmp)) { wfree(array[i]); array[i] = NULL; break; } } wfree(tmp); } while (--a > 0) { if (array[a]) wfree(array[a]); } } if (mapping) XFreeModifiermap(mapping); } static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; WMScreen *scr = WMWidgetScreen(panel->parent); WMPixmap *icon; char *buf1, *buf2; int i; RColor color; char *path; color.red = 0xae; color.green = 0xaa; color.blue = 0xae; panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); /**************** Mouse Speed ****************/ panel->speedF = WMCreateFrame(panel->box); WMResizeWidget(panel->speedF, 245, 100); WMMoveWidget(panel->speedF, 15, 5); WMSetFrameTitle(panel->speedF, _("Mouse Speed")); panel->speedL = WMCreateLabel(panel->speedF); WMResizeWidget(panel->speedL, 40, 46); WMMoveWidget(panel->speedL, 15, 14); WMSetLabelImagePosition(panel->speedL, WIPImageOnly); path = LocateImage(SPEED_ICON_FILE); if (path) { icon = WMCreateBlendedPixmapFromFile(scr, path, &color); if (icon) { WMSetLabelImage(panel->speedL, icon); WMReleasePixmap(icon); } else { wwarning(_("could not load icon %s"), path); } wfree(path); } panel->speedS = WMCreateSlider(panel->speedF); WMResizeWidget(panel->speedS, 160, 15); WMMoveWidget(panel->speedS, 70, 35); WMSetSliderMinValue(panel->speedS, 0); WMSetSliderMaxValue(panel->speedS, 40); WMSetSliderContinuous(panel->speedS, False); WMSetSliderAction(panel->speedS, speedChange, panel); panel->acceL = WMCreateLabel(panel->speedF); WMResizeWidget(panel->acceL, 70, 16); WMMoveWidget(panel->acceL, 10, 67); WMSetLabelTextAlignment(panel->acceL, WARight); WMSetLabelText(panel->acceL, _("Acceler.:")); panel->acceT = WMCreateTextField(panel->speedF); WMResizeWidget(panel->acceT, 40, 20); WMMoveWidget(panel->acceT, 80, 65); WMAddNotificationObserver(returnPressed, panel, WMTextDidEndEditingNotification, panel->acceT); panel->threL = WMCreateLabel(panel->speedF); WMResizeWidget(panel->threL, 80, 16); WMMoveWidget(panel->threL, 120, 67); WMSetLabelTextAlignment(panel->threL, WARight); WMSetLabelText(panel->threL, _("Threshold:")); panel->threT = WMCreateTextField(panel->speedF); WMResizeWidget(panel->threT, 30, 20); WMMoveWidget(panel->threT, 200, 65); WMAddNotificationObserver(returnPressed, panel, WMTextDidEndEditingNotification, panel->threT); WMMapSubwidgets(panel->speedF); /***************** Doubleclick Delay ****************/ panel->ddelaF = WMCreateFrame(panel->box); WMResizeWidget(panel->ddelaF, 245, 105); WMMoveWidget(panel->ddelaF, 15, 115); WMSetFrameTitle(panel->ddelaF, _("Double-Click Delay")); 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, WBBStateChangeMask); WMResizeWidget(panel->ddelaB[i], 25, 25); WMMoveWidget(panel->ddelaB[i], 30 + (40 * i), 25); WMSetButtonBordered(panel->ddelaB[i], False); WMSetButtonImagePosition(panel->ddelaB[i], WIPImageOnly); WMSetButtonAction(panel->ddelaB[i], doubleClick, panel); if (i > 0) { WMGroupButtons(panel->ddelaB[0], panel->ddelaB[i]); } sprintf(buf1, DELAY_ICON, i + 1); sprintf(buf2, DELAY_ICON_S, i + 1); path = LocateImage(buf1); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonImage(panel->ddelaB[i], icon); WMReleasePixmap(icon); } else { wwarning(_("could not load icon file %s"), path); } wfree(path); } path = LocateImage(buf2); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonAltImage(panel->ddelaB[i], icon); WMReleasePixmap(icon); } else { wwarning(_("could not load icon file %s"), path); } wfree(path); } } wfree(buf1); wfree(buf2); panel->tester = CreateDoubleTest(panel->ddelaF, _("Test")); WMResizeWidget(panel->tester, 84, 29); WMMoveWidget(panel->tester, 35, 60); panel->ddelaT = WMCreateTextField(panel->ddelaF); WMResizeWidget(panel->ddelaT, 40, 20); WMMoveWidget(panel->ddelaT, 140, 65); panel->ddelaL = WMCreateLabel(panel->ddelaF); WMResizeWidget(panel->ddelaL, 40, 16); WMMoveWidget(panel->ddelaL, 185, 70); { WMFont *font; WMColor *color; font = WMSystemFontOfSize(scr, 10); color = WMDarkGrayColor(scr); WMSetLabelTextColor(panel->ddelaL, color); WMSetLabelFont(panel->ddelaL, font); WMReleaseFont(font); WMReleaseColor(color); } WMSetLabelText(panel->ddelaL, _("msec")); WMMapSubwidgets(panel->ddelaF); /* ************** Workspace Action Buttons **************** */ panel->menuF = WMCreateFrame(panel->box); WMResizeWidget(panel->menuF, 240, 160); WMMoveWidget(panel->menuF, 270, 5); WMSetFrameTitle(panel->menuF, _("Workspace Mouse Actions")); panel->disaB = WMCreateSwitchButton(panel->menuF); WMResizeWidget(panel->disaB, 205, 18); WMMoveWidget(panel->disaB, 10, 18); WMSetButtonText(panel->disaB, _("Disable mouse actions")); panel->button1L = WMCreateLabel(panel->menuF); WMResizeWidget(panel->button1L, 87, 20); WMMoveWidget(panel->button1L, 5, 45); WMSetLabelTextAlignment(panel->button1L, WARight); WMSetLabelText(panel->button1L, _("Left Button")); panel->button1P = WMCreatePopUpButton(panel->menuF); WMResizeWidget(panel->button1P, 135, 20); WMMoveWidget(panel->button1P, 95, 45); panel->button2L = WMCreateLabel(panel->menuF); WMResizeWidget(panel->button2L, 87, 20); WMMoveWidget(panel->button2L, 5, 73); WMSetLabelTextAlignment(panel->button2L, WARight); WMSetLabelText(panel->button2L, _("Middle Button")); panel->button2P = WMCreatePopUpButton(panel->menuF); WMResizeWidget(panel->button2P, 135, 20); WMMoveWidget(panel->button2P, 95, 73); panel->button3L = WMCreateLabel(panel->menuF); WMResizeWidget(panel->button3L, 87, 20); WMMoveWidget(panel->button3L, 5, 101); WMSetLabelTextAlignment(panel->button3L, WARight); WMSetLabelText(panel->button3L, _("Right Button")); panel->button3P = WMCreatePopUpButton(panel->menuF); WMResizeWidget(panel->button3P, 135, 20); WMMoveWidget(panel->button3P, 95, 101); panel->wheelL = WMCreateLabel(panel->menuF); WMResizeWidget(panel->wheelL, 87, 20); WMMoveWidget(panel->wheelL, 5, 129); WMSetLabelTextAlignment(panel->wheelL, WARight); WMSetLabelText(panel->wheelL, _("Mouse Wheel")); panel->wheelP = WMCreatePopUpButton(panel->menuF); WMResizeWidget(panel->wheelP, 135, 20); WMMoveWidget(panel->wheelP, 95, 129); for (i = 0; i < sizeof(buttonActions) / sizeof(buttonActions[0]); i++) { WMAddPopUpButtonItem(panel->button1P, buttonActions[i]); WMAddPopUpButtonItem(panel->button2P, buttonActions[i]); WMAddPopUpButtonItem(panel->button3P, buttonActions[i]); } for (i = 0; i < sizeof(wheelActions) / sizeof(wheelActions[0]); i++) { WMAddPopUpButtonItem(panel->wheelP, wheelActions[i]); } WMMapSubwidgets(panel->menuF); /* ************** Grab Modifier **************** */ panel->grabF = WMCreateFrame(panel->box); WMResizeWidget(panel->grabF, 240, 50); WMMoveWidget(panel->grabF, 270, 170); WMSetFrameTitle(panel->grabF, _("Mouse Grab Modifier")); WMSetBalloonTextForView(_("Keyboard modifier to use for actions that\n" "involve dragging windows with the mouse,\n" "clicking inside the window."), WMWidgetView(panel->grabF)); panel->grabP = WMCreatePopUpButton(panel->grabF); WMResizeWidget(panel->grabP, 160, 20); WMMoveWidget(panel->grabP, 40, 20); fillModifierPopUp(panel->grabP); WMMapSubwidgets(panel->grabF); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); showData(panel); } static void storeCommandInScript(const char *cmd, const char *line) { char *path; FILE *f; char buffer[128]; path = wstrconcat(wusergnusteppath(), "/Library/WindowMaker/autostart"); f = fopen(path, "rb"); if (!f) { f = fopen(path, "wb"); if (!f) { werror(_("could not create %s"), path); goto end; } fprintf(f, "#!/bin/sh\n"); fputs(line, f); fputs("\n", f); } else { int len = strlen(cmd); int ok = 0; char *tmppath; FILE *fo; tmppath = wstrconcat(wusergnusteppath(), "/Library/WindowMaker/autostart.tmp"); fo = fopen(tmppath, "wb"); if (!fo) { werror(_("could not create temporary file %s"), tmppath); wfree(tmppath); goto end; } while (!feof(f)) { if (!fgets(buffer, 127, f)) { break; } if (buffer[0] == '\n') { /* don't write empty lines, else the file will grow * indefinitely (one '\n' added at end of file on each save). */ continue; } if (strncmp(buffer, cmd, len) == 0) { if (!ok) { fputs(line, fo); fputs("\n", fo); ok = 1; } } else { fputs(buffer, fo); } } if (!ok) { fputs(line, fo); fputs("\n", fo); } fsync(fileno(fo)); fclose(fo); if (rename(tmppath, path) != 0) { werror(_("could not rename file %s to %s"), tmppath, path); } wfree(tmppath); } sprintf(buffer, "chmod u+x %s", path); system(buffer); end: wfree(path); if (f) { fsync(fileno(f)); /* this may be rw */ fclose(f); } } static void storeData(_Panel * panel) { char buffer[64]; int i; char *tmp, *p; static char *button[4] = { "None", "OpenApplicationsMenu", "OpenWindowListMenu", "SelectWindows" }; static char *wheel[2] = { "None", "SwitchWorkspaces" }; WMUserDefaults *udb = WMGetStandardUserDefaults(); if (!WMGetUDBoolForKey(udb, "NoXSetStuff")) { tmp = WMGetTextFieldText(panel->threT); if (strlen(tmp) == 0) { wfree(tmp); tmp = wstrdup("4"); } sprintf(buffer, XSET " m %i/%i %s\n", (int)(panel->acceleration * 10), 10, tmp); storeCommandInScript(XSET " m", buffer); wfree(tmp); } tmp = WMGetTextFieldText(panel->ddelaT); if (sscanf(tmp, "%i", &i) == 1 && i > 0) SetIntegerForKey(i, "DoubleClickTime"); SetBoolForKey(WMGetButtonSelected(panel->disaB), "DisableWSMouseActions"); i = WMGetPopUpButtonSelectedItem(panel->button1P); SetStringForKey(button[i], "MouseLeftButtonAction"); i = WMGetPopUpButtonSelectedItem(panel->button2P); SetStringForKey(button[i], "MouseMiddleButtonAction"); i = WMGetPopUpButtonSelectedItem(panel->button3P); SetStringForKey(button[i], "MouseRightButtonAction"); i = WMGetPopUpButtonSelectedItem(panel->wheelP); SetStringForKey(wheel[i], "MouseWheelAction"); tmp = WMGetPopUpButtonItem(panel->grabP, WMGetPopUpButtonSelectedItem(panel->grabP)); tmp = wstrdup(tmp); p = strchr(tmp, ' '); *p = 0; SetStringForKey(tmp, "ModifierKey"); wfree(tmp); } Panel *InitMouseSettings(WMScreen * scr, WMWidget * parent) { _Panel *panel; modifierNames[0] = wstrdup(_("Shift")); modifierNames[1] = wstrdup(_("Lock")); modifierNames[2] = wstrdup(_("Control")); modifierNames[3] = wstrdup(_("Mod1")); modifierNames[4] = wstrdup(_("Mod2")); modifierNames[5] = wstrdup(_("Mod3")); modifierNames[6] = wstrdup(_("Mod4")); modifierNames[7] = wstrdup(_("Mod5")); buttonActions[0] = wstrdup(_("None")); buttonActions[1] = wstrdup(_("Applications Menu")); buttonActions[2] = wstrdup(_("Window List Menu")); buttonActions[3] = wstrdup(_("Select Windows")); wheelActions[0] = wstrdup(_("None")); wheelActions[1] = wstrdup(_("Switch Workspaces")); panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Mouse Preferences"); panel->description = _("Mouse speed/acceleration, double click delay,\n" "mouse button bindings etc."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; AddSection(panel, ICON_FILE); return panel; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/Configurations.c������������������������������������������������������0000644�0001750�0001750�00000031576�12214432632�016120� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Configurations.c- misc. configurations * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMFrame *icoF; WMButton *icoB[5]; WMFrame *shaF; WMButton *shaB[5]; WMFrame *titlF; WMButton *oldsB; WMButton *newsB; WMButton *nextB; WMFrame *animF; WMButton *animB; WMButton *supB; WMLabel *noteL; WMFrame *smoF; WMButton *smoB; WMFrame *dithF; WMButton *dithB; WMSlider *dithS; WMLabel *dithL; WMLabel *dith1L; WMLabel *dith2L; int cmapSize; } _Panel; #define ICON_FILE "configs" #define OLDS_IMAGE "oldstyle" #define NEWS_IMAGE "newstyle" #define NEXT_IMAGE "nextstyle" #define ANIM_IMAGE "animations" #define SUPERF_IMAGE "moreanim" #define SMOOTH_IMAGE "smooth" #define SPEED_IMAGE "speed%i" #define SPEED_IMAGE_S "speed%is" #define ARQUIVO_XIS "xis" static void updateLabel(WMWidget *self, void *data); static void showData(_Panel *panel) { char *str; WMPerformButtonClick(panel->icoB[GetSpeedForKey("IconSlideSpeed")]); WMPerformButtonClick(panel->shaB[GetSpeedForKey("ShadeSpeed")]); str = GetStringForKey("NewStyle"); if (str && strcasecmp(str, "next") == 0) { WMPerformButtonClick(panel->nextB); } else if (str && strcasecmp(str, "old") == 0) { WMPerformButtonClick(panel->oldsB); } else { WMPerformButtonClick(panel->newsB); } WMSetButtonSelected(panel->animB, !GetBoolForKey("DisableAnimations")); WMSetButtonSelected(panel->supB, GetBoolForKey("Superfluous")); WMSetButtonSelected(panel->smoB, GetBoolForKey("SmoothWorkspaceBack")); WMSetButtonSelected(panel->dithB, GetBoolForKey("DisableDithering")); WMSetSliderValue(panel->dithS, GetIntegerForKey("ColormapSize")); updateLabel(panel->dithS, panel); } static void updateLabel(WMWidget *self, void *data) { WMSlider *sPtr = (WMSlider *) self; _Panel *panel = (_Panel *) data; char buffer[64]; float fl; fl = WMGetSliderValue(sPtr); panel->cmapSize = (int)fl; sprintf(buffer, "%i", panel->cmapSize * panel->cmapSize * panel->cmapSize); WMSetLabelText(panel->dithL, buffer); } static void createPanel(Panel *p) { _Panel *panel = (_Panel *) p; WMScreen *scr = WMWidgetScreen(panel->parent); char *buf1, *buf2; WMPixmap *icon, *altIcon; RImage *xis = NULL; int i; RContext *rc = WMScreenRContext(scr); WMFont *font = WMSystemFontOfSize(scr, 10); char *path; path = LocateImage(ARQUIVO_XIS); if (path) { xis = RLoadImage(rc, path, 0); if (!xis) wwarning(_("could not load image file %s"), path); wfree(path); } panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); /*********** Icon Slide Speed **********/ panel->icoF = WMCreateFrame(panel->box); WMResizeWidget(panel->icoF, 212, 45); WMMoveWidget(panel->icoF, 15, 10); WMSetFrameTitle(panel->icoF, _("Icon Slide Speed")); /*********** Shade Animation Speed **********/ panel->shaF = WMCreateFrame(panel->box); WMResizeWidget(panel->shaF, 212, 45); WMMoveWidget(panel->shaF, 15, 65); WMSetFrameTitle(panel->shaF, _("Shade Animation Speed")); buf1 = wmalloc(strlen(SPEED_IMAGE) + 1); buf2 = wmalloc(strlen(SPEED_IMAGE_S) + 1); for (i = 0; i < 5; i++) { panel->icoB[i] = WMCreateCustomButton(panel->icoF, WBBStateChangeMask); panel->shaB[i] = WMCreateCustomButton(panel->shaF, WBBStateChangeMask); WMResizeWidget(panel->icoB[i], 40, 24); WMMoveWidget(panel->icoB[i], 2 + (40 * i), 15); WMResizeWidget(panel->shaB[i], 40, 24); WMMoveWidget(panel->shaB[i], 2 + (40 * i), 15); WMSetButtonBordered(panel->icoB[i], False); WMSetButtonImagePosition(panel->icoB[i], WIPImageOnly); if (i > 0) { WMGroupButtons(panel->icoB[0], panel->icoB[i]); } WMSetButtonBordered(panel->shaB[i], False); WMSetButtonImagePosition(panel->shaB[i], WIPImageOnly); if (i > 0) { WMGroupButtons(panel->shaB[0], panel->shaB[i]); } sprintf(buf1, SPEED_IMAGE, i); sprintf(buf2, SPEED_IMAGE_S, i); path = LocateImage(buf1); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonImage(panel->icoB[i], icon); WMSetButtonImage(panel->shaB[i], icon); WMReleasePixmap(icon); } else { wwarning(_("could not load icon file %s"), path); } wfree(path); } path = LocateImage(buf2); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonAltImage(panel->icoB[i], icon); WMSetButtonAltImage(panel->shaB[i], icon); WMReleasePixmap(icon); } else { wwarning(_("could not load icon file %s"), path); } wfree(path); } } wfree(buf1); wfree(buf2); WMMapSubwidgets(panel->icoF); WMMapSubwidgets(panel->shaF); /***************** Smoothed Scaling *****************/ panel->smoF = WMCreateFrame(panel->box); WMResizeWidget(panel->smoF, 94, 100); WMMoveWidget(panel->smoF, 420, 10); WMSetFrameTitle(panel->smoF, _("Smooth Scaling")); WMSetBalloonTextForView(_("Smooth scaled background images, neutralizing\n" "the `pixelization' effect. This will slow\n" "down loading of background images considerably."), WMWidgetView(panel->smoF)); panel->smoB = WMCreateButton(panel->smoF, WBTToggle); WMResizeWidget(panel->smoB, 64, 64); WMMoveWidget(panel->smoB, 15, 23); WMSetButtonImagePosition(panel->smoB, WIPImageOnly); path = LocateImage(SMOOTH_IMAGE); if (path) { RImage *image, *scaled; image = RLoadImage(WMScreenRContext(scr), path, 0); wfree(path); scaled = RScaleImage(image, 61, 61); icon = WMCreatePixmapFromRImage(scr, scaled, 128); RReleaseImage(scaled); if (icon) { WMSetButtonImage(panel->smoB, icon); WMReleasePixmap(icon); } scaled = RSmoothScaleImage(image, 61, 61); icon = WMCreatePixmapFromRImage(scr, scaled, 128); RReleaseImage(scaled); if (icon) { WMSetButtonAltImage(panel->smoB, icon); WMReleasePixmap(icon); } RReleaseImage(image); } WMMapSubwidgets(panel->smoF); /***************** Titlebar Style Size ****************/ panel->titlF = WMCreateFrame(panel->box); WMResizeWidget(panel->titlF, 212, 97); WMMoveWidget(panel->titlF, 15, 120); WMSetFrameTitle(panel->titlF, _("Titlebar Style")); panel->oldsB = WMCreateButton(panel->titlF, WBTOnOff); WMResizeWidget(panel->oldsB, 60, 40); WMMoveWidget(panel->oldsB, 16, 32); WMSetButtonImagePosition(panel->oldsB, WIPImageOnly); path = LocateImage(OLDS_IMAGE); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonImage(panel->oldsB, icon); WMReleasePixmap(icon); } wfree(path); } panel->newsB = WMCreateButton(panel->titlF, WBTOnOff); WMResizeWidget(panel->newsB, 60, 40); WMMoveWidget(panel->newsB, 76, 32); WMSetButtonImagePosition(panel->newsB, WIPImageOnly); path = LocateImage(NEWS_IMAGE); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonImage(panel->newsB, icon); WMReleasePixmap(icon); } wfree(path); } panel->nextB = WMCreateButton(panel->titlF, WBTOnOff); WMResizeWidget(panel->nextB, 60, 40); WMMoveWidget(panel->nextB, 136, 32); WMSetButtonImagePosition(panel->nextB, WIPImageOnly); path = LocateImage(NEXT_IMAGE); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonImage(panel->nextB, icon); WMReleasePixmap(icon); } wfree(path); } WMGroupButtons(panel->newsB, panel->oldsB); WMGroupButtons(panel->newsB, panel->nextB); WMMapSubwidgets(panel->titlF); /**************** Features ******************/ panel->animF = WMCreateFrame(panel->box); WMResizeWidget(panel->animF, 173, 100); WMMoveWidget(panel->animF, 237, 10); WMSetFrameTitle(panel->animF, _("Animations")); panel->animB = WMCreateButton(panel->animF, WBTToggle); WMResizeWidget(panel->animB, 64, 64); WMMoveWidget(panel->animB, 15, 23); WMSetButtonFont(panel->animB, font); WMSetButtonText(panel->animB, _("Animations")); WMSetButtonImagePosition(panel->animB, WIPAbove); CreateImages(scr, rc, xis, ANIM_IMAGE, &altIcon, &icon); if (icon) { WMSetButtonImage(panel->animB, icon); WMReleasePixmap(icon); } if (altIcon) { WMSetButtonAltImage(panel->animB, altIcon); WMReleasePixmap(altIcon); } WMSetBalloonTextForView(_("Disable/enable animations such as those shown\n" "for window miniaturization, shading etc."), WMWidgetView(panel->animB)); panel->supB = WMCreateButton(panel->animF, WBTToggle); WMResizeWidget(panel->supB, 64, 64); WMMoveWidget(panel->supB, 94, 23); WMSetButtonFont(panel->supB, font); WMSetButtonText(panel->supB, _("Superfluous")); WMSetButtonImagePosition(panel->supB, WIPAbove); CreateImages(scr, rc, xis, SUPERF_IMAGE, &altIcon, &icon); if (icon) { WMSetButtonImage(panel->supB, icon); WMReleasePixmap(icon); } if (altIcon) { WMSetButtonAltImage(panel->supB, altIcon); WMReleasePixmap(altIcon); } WMSetBalloonTextForView(_("Disable/enable `superfluous' features and\n" "animations. These include the `ghosting' of the\n" "dock when it's being moved to another side and\n" "the explosion animation when undocking icons."), WMWidgetView(panel->supB)); WMMapSubwidgets(panel->animF); /*********** Dithering **********/ panel->cmapSize = 4; panel->dithF = WMCreateFrame(panel->box); WMResizeWidget(panel->dithF, 277, 97); WMMoveWidget(panel->dithF, 237, 120); WMSetFrameTitle(panel->dithF, _("Dithering colormap for 8bpp")); WMSetBalloonTextForView(_("Number of colors to reserve for Window Maker\n" "on displays that support only 8bpp (PseudoColor)."), WMWidgetView(panel->dithF)); panel->dithB = WMCreateSwitchButton(panel->dithF); WMResizeWidget(panel->dithB, 235, 32); WMMoveWidget(panel->dithB, 15, 15); WMSetButtonText(panel->dithB, _("Disable dithering in any visual/depth")); panel->dithL = WMCreateLabel(panel->dithF); WMResizeWidget(panel->dithL, 75, 16); WMMoveWidget(panel->dithL, 98, 50); WMSetLabelTextAlignment(panel->dithL, WACenter); WMSetLabelText(panel->dithL, "64"); panel->dithS = WMCreateSlider(panel->dithF); WMResizeWidget(panel->dithS, 95, 16); WMMoveWidget(panel->dithS, 90, 65); WMSetSliderMinValue(panel->dithS, 2); WMSetSliderMaxValue(panel->dithS, 6); WMSetSliderContinuous(panel->dithS, True); WMSetSliderAction(panel->dithS, updateLabel, panel); panel->dith1L = WMCreateLabel(panel->dithF); WMResizeWidget(panel->dith1L, 80, 35); WMMoveWidget(panel->dith1L, 5, 50); WMSetLabelTextAlignment(panel->dith1L, WACenter); WMSetLabelFont(panel->dith1L, font); WMSetLabelText(panel->dith1L, _("More colors for\napplications")); panel->dith2L = WMCreateLabel(panel->dithF); WMResizeWidget(panel->dith2L, 80, 35); WMMoveWidget(panel->dith2L, 190, 50); WMSetLabelTextAlignment(panel->dith2L, WACenter); WMSetLabelFont(panel->dith2L, font); WMSetLabelText(panel->dith2L, _("More colors for\nWindow Maker")); WMMapSubwidgets(panel->dithF); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); if (xis) RReleaseImage(xis); WMReleaseFont(font); showData(panel); } static void storeData(_Panel *panel) { int i; for (i = 0; i < 5; i++) { if (WMGetButtonSelected(panel->icoB[i])) break; } SetSpeedForKey(i, "IconSlideSpeed"); for (i = 0; i < 5; i++) { if (WMGetButtonSelected(panel->shaB[i])) break; } SetSpeedForKey(i, "ShadeSpeed"); if (WMGetButtonSelected(panel->newsB)) { SetStringForKey("new", "NewStyle"); } else if (WMGetButtonSelected(panel->oldsB)) { SetStringForKey("old", "NewStyle"); } else { SetStringForKey("next", "NewStyle"); } SetBoolForKey(!WMGetButtonSelected(panel->animB), "DisableAnimations"); SetBoolForKey(WMGetButtonSelected(panel->supB), "Superfluous"); SetBoolForKey(WMGetButtonSelected(panel->smoB), "SmoothWorkspaceBack"); SetBoolForKey(WMGetButtonSelected(panel->dithB), "DisableDithering"); SetIntegerForKey(WMGetSliderValue(panel->dithS), "ColormapSize"); } Panel *InitConfigurations(WMScreen *scr, WMWidget *parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Other Configurations"); panel->description = _("Animation speeds, titlebar styles, various option\n" "toggling and number of colors to reserve for\n" "Window Maker on 8bit displays."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; AddSection(panel, ICON_FILE); return panel; } ����������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/������������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434644�013637� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/timer5s.xpm�������������������������������������������������������0000644�0001750�0001750�00000001467�12214432632�015700� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 5 1", " c None", ". c #000000000000", "X c #7BDE7BDE7BDE", "o c #FFFFFFFFFFFF", "O c #FFFF00000000", " ", " ..... ", " X.X ", " .. X.X .. ", " X.. X.....X ..X ", " ....oo.OO.... ", " ..oooo.OOOO.. ", " .oooooo.OOOOO.. ", " XXoooooo.OOOOOOXX ", " .ooooooo.OOOOOOO. ", " XXooooooo.OOOOOOOXX ", " .oooooooo.OOOOOOOO. ", " .oooooooo.OOOOOOOO. ", " ....ooooo.OOOOO.... ", " .ooooooo.OOOOOOOOO. ", " .oooooo.OOOOOOOOOO. ", " XXoooo.OOOOOOOOOOXX ", " .ooo.OOOOOOOOOOO. ", " XXo.OOOOOOOOOOOXX ", " ..OOOOO.OOOOOO. ", " .XOOOO.OOOO.. ", " X..OO.OO..X ", " X.....X ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/fonts.xpm���������������������������������������������������������0000644�0001750�0001750�00000021245�12214432632�015435� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * fonts_xpm[] = { "48 48 251 2", " c None", ". c #2C2C2C", "+ c #FFFFFF", "@ c #A09CA0", "# c #BFB36A", "$ c #B4AA7C", "% c #FFE100", "& c #D0BB26", "* c #838083", "= c #BDB16A", "- c #6A6117", "; c #FADD00", "> c #B29F0B", ", c #4C4A4C", "' c #757375", ") c #CAB626", "! c #C6B008", "~ c #F6D901", "{ c #AF9C0C", "] c #827832", "^ c #F1D502", "/ c #232323", "( c #AC990D", "_ c #B9AD6A", ": c #EDD102", "< c #928310", "[ c #A9970D", "} c #B7AC6B", "| c #E9CE03", "1 c #9C914F", "2 c #A7950D", "3 c #B6AB6B", "4 c #E4CA04", "5 c #A3920E", "6 c #B4AA6B", "7 c #E0C604", "8 c #A69F8E", "9 c #988E4F", "0 c #A18F0E", "a c #B3A86B", "b c #DBC205", "c c #918D91", "d c #9D8D0F", "e c #B1A76C", "f c #D7BE06", "g c #9B8A0F", "h c #9E9A9E", "i c #9C989C", "j c #9A979A", "k c #9A969A", "l c #ACA268", "m c #D3BB07", "n c #9B979B", "o c #9F9B9F", "p c #AAA27D", "q c #C1B039", "r c #B0A66C", "s c #49441C", "t c #959295", "u c #898689", "v c #827F82", "w c #7F7C7F", "x c #7E7B7E", "y c #7D7A7D", "z c #7C797C", "A c #988E56", "B c #CEB707", "C c #807D80", "D c #8A878A", "E c #979397", "F c #AEA56C", "G c #9D999D", "H c #8F8B8F", "I c #777477", "J c #676567", "K c #5F5D5F", "L c #545254", "M c #4B494B", "N c #484648", "O c #454445", "P c #484748", "Q c #4C4B4C", "R c #4F4E4F", "S c #525152", "T c #797139", "U c #CAB308", "V c #4F4D4F", "W c #646264", "X c #848184", "Y c #979497", "Z c #ADA36C", "` c #888588", " . c #6F6C6F", ".. c #595759", "+. c #414041", "@. c #302F30", "#. c #282828", "$. c #272627", "%. c #292929", "&. c #2D2D2D", "*. c #3A393A", "=. c #565456", "-. c #7C733D", ";. c #C5AF09", ">. c #363636", ",. c #6A676A", "'. c #8B888B", "). c #B8A83B", "!. c #BBA929", "~. c #5D5B5D", "{. c #383838", "]. c #262526", "^. c #212021", "/. c #212121", "(. c #3E3D3E", "_. c #968D59", ":. c #C1AB09", "<. c #403F40", "[. c #525052", "}. c #817B6C", "|. c #A29965", "1. c #938F93", "2. c #4D4B4D", "3. c #2D2C2D", "4. c #222222", "5. c #252525", "6. c #393839", "7. c #636163", "8. c #A39968", "9. c #BDA80A", "0. c #6F6D6F", "a. c #555355", "b. c #4E4D4E", "c. c #817845", "d. c #615F61", "e. c #4D4C4D", "f. c #A19868", "g. c #B8A40B", "h. c #867913", "i. c #A99B35", "j. c #A2942F", "k. c #9B8E28", "l. c #A3931C", "m. c #939093", "n. c #767376", "o. c #4A494A", "p. c #999060", "q. c #B4A00B", "r. c #837613", "s. c #8F811E", "t. c #8E811E", "u. c #8C7F1C", "v. c #988915", "w. c #878387", "x. c #2B2B2B", "y. c #8C8355", "z. c #494849", "A. c #4A484A", "B. c #686031", "C. c #928E92", "D. c #737173", "E. c #2B2A2B", "F. c #242424", "G. c #383738", "H. c #797144", "I. c #AB980D", "J. c #8C888C", "K. c #9D978C", "L. c #847D4F", "M. c #999599", "N. c #5B595B", "O. c #353435", "P. c #2A292A", "Q. c #665F33", "R. c #A6940E", "S. c #959195", "T. c #95882F", "U. c #887A12", "V. c #908D90", "W. c #706E70", "X. c #454345", "Y. c #565125", "Z. c #A2910E", "`. c #868386", " + c #686136", ".+ c #989498", "++ c #827E82", "@+ c #585658", "#+ c #343334", "$+ c #4E481D", "%+ c #9E8D0F", "&+ c #464546", "*+ c #716E71", "=+ c #9E976F", "-+ c #6C6A6C", ";+ c #4A441C", ">+ c #998910", ",+ c #444344", "'+ c #5E5C5E", ")+ c #9D977F", "!+ c #8C8030", "~+ c #313131", "{+ c #47421B", "]+ c #958510", "^+ c #5C5A5C", "/+ c #8F8C8F", "(+ c #8E8B8E", "_+ c #46411B", ":+ c #918211", "<+ c #706D70", "[+ c #969396", "}+ c #535153", "|+ c #303030", "1+ c #443F1B", "2+ c #8C7E12", "3+ c #817E81", "4+ c #3D3C3D", "5+ c #262626", "6+ c #433E1C", "7+ c #969296", "8+ c #7B787B", "9+ c #423E1D", "0+ c #898589", "a+ c #3B3A3B", "b+ c #433F20", "c+ c #7F7214", "d+ c #908C90", "e+ c #444022", "f+ c #7A6E15", "g+ c #655E25", "h+ c #645B19", "i+ c #766B15", "j+ c #5A5319", "k+ c #827B57", "l+ c #7A755B", "m+ c #6C674D", "n+ c #5D583E", "o+ c #726716", "p+ c #645C1D", "q+ c #5B553B", "r+ c #7A745B", "s+ c #888272", "t+ c #8C898C", "u+ c #6D6317", "v+ c #68612D", "w+ c #7B7660", "x+ c #3A371F", "y+ c #323020", "z+ c #6E6C6E", "A+ c #6D6B6D", "B+ c #726F72", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # # # # # # # # # # # # # # # # # # # # $ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % % % % % % % % % % % % & * @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ = - - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; > , @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ ' ' ) ! ~ ~ ~ ~ ~ ~ ~ { { { { { { { { { { { { ~ ~ ~ ~ { , @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ] ^ ^ ^ ^ ^ ^ ^ / , , , , , , , , , , , ^ ^ ^ ^ ( , @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ _ : : : : : : : / @ @ @ @ @ @ @ @ @ @ @ _ < : : [ , @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ } | | | | | | | / @ @ @ @ @ @ @ @ @ @ @ @ 1 | | 2 , @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 3 4 4 4 4 4 4 4 / @ @ @ @ @ @ @ @ @ @ @ @ 3 4 4 5 , @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 6 7 7 7 7 7 7 7 / @ @ @ @ @ @ @ @ @ @ @ @ 8 9 7 0 , @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ a b b b b b b b / @ @ @ @ @ @ @ @ @ @ @ @ @ c b d , @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ e f f f f f f f / @ @ @ @ @ @ @ @ @ @ @ @ @ @ f g , @ @ @ @ + ", ". @ @ h i j j k k k k k k k k k k l m m m m m m m / n i o @ @ @ p q @ @ @ @ @ @ r s , @ @ @ @ + ", ". @ h t u v w x y z z y z z y x x A B B B B B B B / C D E h @ @ F B , @ @ @ @ @ @ ' * @ @ @ @ + ", ". @ G H I J K L M N O O O P Q R S T U U U U U U U / V W X Y o @ Z U / @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ h t ` y ...+.@.#.$.%.&.*., =.-.;.;.;.;.;.;.;./ >.O ,.'.i ).!.;./ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ h n E H y ~.{.].^./.%.(.W z _.:.:.:.:.:.:.:./ P <.[.}.|.:.:.:./ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ o G 1.I 2.3.4./.5.6.7.u 8.9.9.9.9.9.9.9./ 0.a.b.c.9.9.9.9./ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ n u d.6.5./.4.&.e.z f.g.g.g.g.g.g.g.h.i.j.k.l.g.g.g.g./ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ h m.n.o.. 4./.5.6.W p.q.q.q.q.q.q.q.r.s.t.u.v.q.q.q.q./ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ k w.K >.5./.4.x., y.{ { { { { { { / z.A.P B.{ { { { / @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ h C.D.P E.4./.F.G.H.I.I.I.I.I.I.I./ J.i h K.L.I.I.I./ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ o M.X N.O.F./.4.P.Q.R.R.R.R.R.R.R./ I S.h @ c T.U.R./ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ G V.W.X.%.4./.F.Y.Z.Z.Z.Z.Z.Z.Z./ ~.`.j @ @ @ +Z./ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ o .+++@+#+/ /./.$+%+%+%+%+%+%+%+/ &+*+C.h @ @ =+%+/ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ i H -++.%././.;+>+>+>+>+>+>+>+/ ,+'+* .+o @ )+!+/ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ o E w a.~+/ /.{+]+]+]+]+]+]+]+/ K ^+D./+G @ @ * , @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ i (+,.(.%./._+:+:+:+:+:+:+:+/ * *+<+` k @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ h [+z }+|+/ 1+2+2+2+2+2+2+2+/ E u 3+J.M.o @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ i J.J 4+5+6+U.U.U.U.U.U.U./ h M.7+Y G @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ h S.8+V |+9+r.r.r.r.r.r.r./ @ @ o o @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ n 0+W a+b+c+c+c+c+c+c+c+/ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ i d+*+N e+f+f+f+f+f+f+f+/ i h o @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ i S.w.-+g+h+i+i+i+i+i+i+i+j+k+C.E i o @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ h 1.l+m+n+o+o+o+o+o+o+o+o+o+o+p+q+r+s+k o @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ G t+u+u+u+u+u+u+u+u+u+u+u+u+u+u+u+u+v+z h @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ h E w+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+y+z.h @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ h M.z+A+A+A+A+z+z+z+z+A+A+A+A+A+z+B+3+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ o o o h h h h h h h h h o o o o @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/iconprefs.xpm�����������������������������������������������������0000644�0001750�0001750�00000024251�12214432632�016274� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * iconprefs_xpm[] = { "48 48 347 2", " c None", ". c #2C2C2C", "+ c #FEFEFE", "@ c #505075", "# c #A8A8A8", "$ c #A7A7A7", "% c #A5A5A5", "& c #A4A4A4", "* c #A2A2A2", "= c #A0A0A0", "- c #9F9F9F", "; c #9D9D9D", "> c #9C9C9C", ", c #9A9A9A", "' c #989898", ") c #979797", "! c #959595", "~ c #949494", "{ c #929292", "] c #909090", "^ c #8F8F8F", "/ c #8D8D8D", "( c #000000", "_ c #A1A1A1", ": c #8C8C8C", "< c #969696", "[ c #919191", "} c #8B8B8B", "| c #8A8A8A", "1 c #888888", "2 c #6C6C6C", "3 c #DDDDDD", "4 c #E6E6E6", "5 c #C6C6C5", "6 c #C5C5C3", "7 c #C3C3C1", "8 c #C2C2C1", "9 c #C0C0C0", "0 c #BFBFBF", "a c #BCBCBC", "b c #BBBBBB", "c c #B6B6B6", "d c #CACACA", "e c #E7E7E7", "f c #5F5F5F", "g c #898989", "h c #A3A3A3", "i c #DADADA", "j c #949499", "k c #46445B", "l c #434257", "m c #3D3C4E", "n c #1F1E27", "o c #121218", "p c #262630", "q c #242330", "r c #22212E", "s c #1A1924", "t c #79797D", "u c #E1E1E1", "v c #5E5E5E", "w c #878787", "x c #889088", "y c #434343", "z c #3F5D3F", "A c #292929", "B c #3E5D3E", "C c #5C5C5C", "D c #959599", "E c #49485C", "F c #484659", "G c #212127", "H c #CDCDCD", "I c #414147", "J c #23222E", "K c #1B1B25", "L c #7B7A7F", "M c #5D5D5D", "N c #868686", "O c #9E9E9E", "P c #7F7F7F", "Q c #314231", "R c #3B723B", "S c #244324", "T c #577657", "U c #D8D8D8", "V c #969597", "W c #444358", "X c #454255", "Y c #101013", "Z c #242424", "` c #939393", " . c #FAFAFA", ".. c #6D6C72", "+. c #1F1E29", "@. c #17161F", "#. c #77777C", "$. c #DEDEDE", "%. c #848484", "&. c #AFAFAF", "*. c #224222", "=. c #060606", "-. c #517151", ";. c #ADCDAD", ">. c #D5D5D5", ",. c #969596", "'. c #424052", "). c #414050", "!. c #1C1A20", "~. c #6F6F6F", "{. c #FDFDFD", "]. c #24242A", "^. c #1A1A23", "/. c #13121A", "(. c #757579", "_. c #DBDBDB", ":. c #838383", "<. c #355435", "[. c #326132", "}. c #254425", "|. c #68A068", "1. c #DBFBDB", "2. c #C4FCC4", "3. c #B1D2B1", "4. c #858585", "5. c #9B9B9B", "6. c #D4D4D4", "7. c #969695", "8. c #3D3C4C", "9. c #3C3A4A", "0. c #21212C", "a. c #393841", "b. c #5F5F67", "c. c #1F1F26", "d. c #111018", "e. c #15141D", "f. c #0C0C12", "g. c #717174", "h. c #D9D9D9", "i. c #5B5B5B", "j. c #818181", "k. c #999999", "l. c #2A2A2A", "m. c #424242", "n. c #96B696", "o. c #CECECE", "p. c #C2E2C2", "q. c #C1C1C1", "r. c #D2D2D2", "s. c #939395", "t. c #393849", "u. c #8C8B92", "v. c #75757D", "w. c #838289", "x. c #9B9B9F", "y. c #8F8F94", "z. c #78777C", "A. c #69696E", "B. c #535357", "C. c #6F6F71", "D. c #D6D6D6", "E. c #5A5A5A", "F. c #808080", "G. c #EAE9EA", "H. c #678667", "I. c #807D7F", "J. c #375636", "K. c #828282", "L. c #D1D1D1", "M. c #8D8D8E", "N. c #2F2C3E", "O. c #52515D", "P. c #3C3B47", "Q. c #383742", "R. c #5A5961", "S. c #2E2E35", "T. c #3E3D43", "U. c #151419", "V. c #202023", "W. c #69696B", "X. c #D3D3D3", "Y. c #595959", "Z. c #7E7E7E", "`. c #99B899", " + c #BFDCBF", ".+ c #A2D8A2", "++ c #A1BEA1", "@+ c #7FB680", "#+ c #CFCFCF", "$+ c #F1F1F1", "%+ c #EFEEEF", "&+ c #EBEBEB", "*+ c #E8E8E6", "=+ c #E6E6E4", "-+ c #E3E3E3", ";+ c #E2E2E2", ">+ c #E0E0E0", ",+ c #DCDCDC", "'+ c #BFB4B9", ")+ c #CEA6A9", "!+ c #585858", "~+ c #7D7D7D", "{+ c #F3F3F3", "]+ c #B0AEB1", "^+ c #6A896A", "/+ c #605E60", "(+ c #779577", "_+ c #151515", ":+ c #6E6E6E", "<+ c #C3C3C3", "[+ c #C2C2C2", "}+ c #565656", "|+ c #7B7B7B", "1+ c #D9F9D9", "2+ c #92AF91", "3+ c #7BB17B", "4+ c #739273", "5+ c #6BA26B", "6+ c #496849", "7+ c #737373", "8+ c #747474", "9+ c #6D6D6D", "0+ c #7C7C7C", "a+ c #7A7A7A", "b+ c #B0AFB0", "c+ c #658464", "d+ c #504F50", "e+ c #4B6B4B", "f+ c #464646", "g+ c #8E8E8E", "h+ c #545454", "i+ c #787878", "j+ c #A9A9A9", "k+ c #A6A6A6", "l+ c #797979", "m+ c #777777", "n+ c #767676", "o+ c #2F2F2F", "p+ c #030303", "q+ c #0C0404", "r+ c #030000", "s+ c #262626", "t+ c #1C1C1C", "u+ c #707070", "v+ c #C5C5C5", "w+ c #373737", "x+ c #1B1B1B", "y+ c #011D1E", "z+ c #2F494B", "A+ c #24383B", "B+ c #031B22", "C+ c #011D24", "D+ c #051E24", "E+ c #334649", "F+ c #35474A", "G+ c #10272A", "H+ c #02181B", "I+ c #022226", "J+ c #294348", "K+ c #D4E2E5", "L+ c #324C4F", "M+ c #01292C", "N+ c #012A2D", "O+ c #234347", "P+ c #809A9C", "Q+ c #05272A", "R+ c #002224", "S+ c #003033", "T+ c #033333", "U+ c #6B8E8F", "V+ c #BFD3D4", "W+ c #214A48", "X+ c #03333A", "Y+ c #043235", "Z+ c #5E8184", "`+ c #013134", " @ c #002F2F", ".@ c #FBFBFB", "+@ c #CCCCCC", "@@ c #033840", "#@ c #033C43", "$@ c #416F74", "%@ c #4C777C", "&@ c #C6CFD8", "*@ c #164D53", "=@ c #063B44", "-@ c #5E868B", ";@ c #013B43", ">@ c #02383B", ",@ c #B8B8B8", "'@ c #1F1F1F", ")@ c #383838", "!@ c #02464F", "~@ c #034A52", "{@ c #3D7A7F", "]@ c #025053", "^@ c #5F8F93", "/@ c #B2CBC8", "(@ c #105054", "_@ c #5F9298", ":@ c #014A54", "<@ c #01464C", "[@ c #1E1E1E", "}@ c #035560", "|@ c #06575C", "1@ c #448489", "2@ c #065A65", "3@ c #055F62", "4@ c #7FB1B3", "5@ c #9BB9BE", "6@ c #6A9CA0", "7@ c #045661", "8@ c #00555D", "9@ c #E4E4E4", "0@ c #114A52", "a@ c #184246", "b@ c #779094", "c@ c #0C2224", "d@ c #041516", "e@ c #0A191E", "f@ c #4F534F", "g@ c #394A4D", "h@ c #14414A", "i@ c #14535A", "j@ c #F0F0F0", "k@ c #4F4F4F", "l@ c #0E0E0E", "m@ c #010303", "n@ c #393837", "o@ c #616365", "p@ c #252626", "q@ c #010101", "r@ c #020000", "s@ c #010206", "t@ c #C4C4C4", "u@ c #686868", "v@ c #010100", "w@ c #020201", "x@ c #040003", "y@ c #020202", "z@ c #000100", "A@ c #D7D7D7", "B@ c #2D2D2D", "C@ c #3C3C3C", "D@ c #000101", "E@ c #000200", "F@ c #2B2B2B", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ + + + + + + + + + + + + + + + + + + + + @ @ + + + + + + + + + + + + + + + + + + + + @ @ + ", ". @ @ + # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( @ @ + # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( @ @ + ", ". @ @ + $ % & * _ - ; > , ' ) ! ~ { ] ^ / : ( @ @ + $ % & * _ - ; > , ' ) ! ~ { ] ^ / : ( @ @ + ", ". @ @ + % & ] ) < ! ~ { [ ^ / : } | 1 2 : | ( @ @ + % & * _ - ; > , ' ) ! ~ { ] ^ / : | ( @ @ + ", ". @ @ + & * 3 4 5 6 7 8 9 0 a b c d e f | g ( @ @ + & * - ( ( ( ( ( ( ( ( ( ( ( + : | g ( @ @ + ", ". @ @ + h _ i j k l m n o p q r s t u v g w ( @ @ + h > - ( g f g x = y z A B C + : } g ( @ @ + ", ". @ @ + _ - i D E F G ( ( H I J K L u M w N ( @ @ + O - ; ( x P x P ^ Q R S R T + } g 1 ( @ @ + ", ". @ @ + = O U V W X Y Z ` ...+.@.#.$.C N %.( @ @ + - ; > ( &.0 &.*.=.=.-.a ;.& + g 1 N ( @ @ + ", ". @ @ + O > >.,.'.).!.~.{.e ].^./.(._.C %.:.( @ @ + ; > , ( <.[.*.R }.S |.1.2.3.+ 1 N 4.( @ @ + ", ". @ @ + ; 5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.:.j.( @ @ + > , k.( l.}.=.}.m.P n.o.p.q.+ N 4.:.( @ @ + ", ". @ @ + 5., r.s.t.u.v.w.x.y.z.A.B.C.D.E.j.F.( @ @ + , k.' ( l.}.=.S P G.H.I.J.^ + 4.:.K.( @ @ + ", ". @ @ + , ' L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.F.Z.( @ @ + k.' < ( z R -.|.`. +.+++@+<.+ :.K.j.( @ @ + ", ". @ @ + ' ) #+$+%+&+*+=+-+;+>+>+,+'+)+!+Z.~+( @ @ + ' < ! ( A S a 1.{+]+^+/+(+_++ K.j.P ( @ @ + ", ". @ @ + ) ! :+2 0 <+[+q.q.9 9 q.0 }+i.M ~+|+( @ @ + < ! ` ( B R ;.2.1+2+3+4+5+6++ j.P Z.( @ @ + ", ". @ @ + ! ~ { F.7+8+7+7+7+7+7+8+9+f 0+0+0+a+( @ @ + ! ` { ( C T & 3.q.b+c+d+e+f++ P Z.0+( @ @ + ", ". @ @ + ~ { [ ^ :+: / / / / / g+h+~+~+0+a+i+( @ @ + ` { ] + + + + + + + + + + + + Z.0+|+( @ @ + ", ". @ @ + { [ ^ / { # j+$ $ k+& & { ~+0+a+l+m+( @ @ + { ] ^ g+: } g 1 N 4.:.K.j.P Z.0+|+l+( @ @ + ", ". @ @ + [ ^ g+: | g w N %.K.j.P Z.0+a+l+m+n+( @ @ + ] ^ g+: } g 1 N %.K.j.j.P Z.0+|+l+i+( @ @ + ", ". @ @ + ^ g+: } g w N %.:.j.P Z.0+a+l+m+n+8+( @ @ + ^ g+: } g 1 N 4.:.K.j.P Z.0+|+l+i+n+( @ @ + ", ". @ @ + ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( @ @ + o+( p+q+r+( ( ( ( ( ( ( ( ( ( ( ( ( ( @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ + + + + + + + + + + + + + + + + + + + + @ @ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( @ @ + ", ". @ @ + # $ % & * = - ; > , ' ) ! ~ { ] ^ / s+@ @ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( @ @ + ", ". @ @ + $ % & * _ - ; > , ' ) ! ~ { ] ^ / : t+@ @ ( ( ( ( ( ( , 9+u+v+w+u+j+u+w+( ( ( ( ( @ @ + ", ". @ @ + % & * _ - ; > , ' ) ! ~ { ] ^ / : | ( @ @ ( ( ( ( ( ( $ h+: j+h+: j+: x+( ( ( ( ( @ @ + ", ". @ @ + & * - ( ( ( ( ( ( ( ( ( ( ( + : | g ( @ @ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( @ @ + ", ". @ @ + h > - ( y+z+A+B+C+D+E+F+G+H++ : } g ( @ @ + ` > - ; > , k.' < ! ` { ] ^ g+: } g ( @ @ + ", ". @ @ + O - ; ( I+J+K+L+M+N+O+P+Q+R++ } g 1 ( @ @ + O - ; > , k.' < ! ` { ] ^ g+: } g 1 ( @ @ + ", ". @ @ + - ; > ( S+T+U+V+W+X+Y+Z+`+ @+ g 1 N ( @ @ .@- ; > , k.' _ 4 4 $++@5.g+: } g 1 N ( @ @ + ", ". @ @ + ; > , ( @@#@$@%@&@*@=@-@;@>@+ 1 N 4.( @ @ + ; > , k.' < ,@+ '@)@;+X.0+} g 1 N 4.( @ @ + ", ". @ @ + > , k.( !@~@{@]@^@/@(@_@:@<@+ N 4.:.( @ @ + > , k.' < ! O ! ( ^ X.+ [@g 1 N 4.:.( @ @ + ", ". @ @ + , k.' ( }@|@1@2@3@4@5@6@7@8@+ 4.:.K.( @ @ + , k.' < ! ` { F.f g+9@4 ( 1 N 4.:.K.( @ @ + ", ". @ @ + k.' < ( 0@a@b@c@d@e@f@g@h@i@+ :.K.j.( @ @ + k.' < ! ` { ] ^ , U j@k@l@N 4.:.K.j.( @ @ + ", ". @ @ + ' < ! ( m@n@o@p@q@( ( ( r@s@+ K.j.P ( @ @ + ' < ! ` { ] ^ g+U t@y l@u@4.:.K.j.P ( @ @ + ", ". @ @ + < ! ` ( v@w@x@y@q@( ( ( z@r@+ j.P Z.( @ @ + < ! ` { ] ^ g+: A@B@C@m+4.:.K.j.P Z.( @ @ + ", ". @ @ + ! ` { ( z@( ( ( ( ( ( ( D@E@+ P Z.0+( @ @ + ! ` { ] ^ g+: } * . N 4.:.K.j.P Z.0+( @ @ + ", ". @ @ + ` { ] + + + + + + + + + + + + Z.0+|+( @ @ + ` { ] ^ g+: } * + +@4.:.K.j.P Z.0+|+( @ @ + ", ". @ @ + { ] ^ g+: } g 1 N 4.:.K.j.P Z.0+|+l+( @ @ + { ] ^ g+: } g ~ +@h+F@K.j.P Z.0+|+l+( @ @ + ", ". @ @ + ] ^ g+: } g 1 N %.K.j.j.P Z.0+|+l+i+( @ @ + ] ^ g+: } g 1 N n+F@}+j.P Z.0+|+l+i+( @ @ + ", ". @ @ + ^ g+: } g 1 N 4.:.K.j.P Z.0+|+l+i+n+( @ @ + ^ g+: } g 1 N 4.:.K.j.P Z.0+|+l+i+n+( @ @ + ", ". @ @ + ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( @ @ + ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/moreanim.xpm������������������������������������������������������0000644�0001750�0001750�00000006271�12214432632�016115� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 34 1", " c None", ". c #FFFFFFFFFFFF", "X c #AD6AAD6AAD6A", "o c #000000000000", "O c #421042104210", "+ c #D6B4D6B4D6B4", "@ c #CE72CE72CE72", "# c #842084208420", "$ c #DEF6DEF6DEF6", "% c #B5ACB5ACB5AC", "& c #210821082108", "* c #084208420842", "= c #8C628C628C62", "- c #318C318C318C", "; c #C630C630C630", ": c #BDEEBDEEBDEE", "> c #A528A528A528", ", c #529452945AD6", "< c #294A294A294A", "1 c #108410841084", "2 c #18C618C618C6", "3 c #9CE69CE69CE6", "4 c #F7BCF7BCF7BC", "5 c #39CE39CE39CE", "6 c #4A524A524A52", "7 c #E738E738E738", "8 c #739C739C739C", "9 c #EF7AEF7AEF7A", "0 c #5AD65AD65AD6", "q c #94A494A494A4", "w c #529452945294", "e c #631863186318", "r c #7BDE7BDE7BDE", "t c #6B5A6B5A6B5A", " ", " ......Xoo ", " ..ooo ......ooo O+@@@#oooo ....ooo ", " .$$oooo$$$++oooo o@@@@oooooo o%X&oooo ", " .$$oooo$$+++oo..ooo ooooo*ooo....Xoooo%X&oooo ", " oo*oooo$++++*o++=ooo ooo-;ooo:::%%%oooXX&*ooo ", " ooooooooo+@Oo*+++ooooooo;;:ooo:%%%%ooooooo*oo ", " oooooooooooo*o>,<*ooo***1-=ooo%%%%%ooooo*oooo ", " ooooo ooo*oo&2ooooooooooo**oooooX>*ooooooooo ", " oooo#*ooooooooooooo*ooooo*oooooooooo ", " .$$ooo oo*ooooo*oooooo13*ooooooo*ooo ", " .$$$ooo +oooooo*oooooo&4*53Xoooooooo ", " .$$+++oooooo**o*oooooo&o*o<6ooooXX&ooo ", " .$+++=ooooooooooooooo*o*o@:&*o66>>&oooo ", " .+++:ooooo2oooooooooooo*o..7oooo>>&oooo ", " oooo***ooooooooooooooooo4...***o>3&*ooo ", " ooo*.+++8ooooooooo*o*oo&4...9o8o33&*ooo ", " oooo.+++2oooooo**o*oooo&oo*o0*oo3q&o*oo ", " ooooo+@*oooooooo*ooooooooo*o*o*q-*o1oo ", " oo5@ooo*ooooooooooooooooooooooo*oooo ", " .+ooo ooo@oooooooooooooooooooo*oooo*oooo-&ooo ", " .+=ooo @oooo*o*ooo*5555Oo*o4...Xoooooo1qq&oooo", " .@@oooo ooooo*oooooO44.44o*&4....1ooooo5q=&oooo", " .@@*ooo ooo*o*ooooow..@*o*o3.....oooo 1==&oooo", " .@oo*oo @;ooooooooo*.*o*o*o......&oooo o=#&*ooo", " .o*oooo@;;2ooooo*ooooo*oooo......1*ooo oo#&o*oo", " ooo*oo.;;:eo2ooooooooooooooo....4o=ooo oro*ooo", " oooooo.;::Xo2o2<*o0oooooo oo...to**ooo ooooooo", " ooooo .:::<oooo*oow.oooo ooo.7**o#o2ooooo*ooo", " ooo .::%o**ooo*ow.*ooo ooo&ooo#r&oooooooo ", " o:%%o*ooooo5:.ooo0..ooooooooor8&ooooooo ", " o%%%*o*oo<7...**.....oooooooo88&oooo ", " oo%to*oooo13..oo......ooooooo88&*ooo ", " ooo*ooooooo*o**.......oooooo8o2o*oo ", " oooooooooo<0*oo.......4oooo8***o*oo ", " oooooooooooooo.....+>oooooooo*oooo ", " ooooooooooooo....*o**o*oooooooooo ", " 5%XX>>eooooooo>e*o*oo*ooooooooot*oo ", " .ooo XX>>>3ooooo oo=o*ootw2oooooo tt2ooo ", " .oooo &&&&&&&*ooo oooo1o.3*ooooo 8ttt&oooo ", " .%ooo oooo*o*o*o&eoooooo**oooooooo&&&&&oooo ", " .%%%oooooo*oo*oo-3qqooooo==##rrrooooooo*o*oo ", " .&&ooooooooooooo3qq==oooo=##rr8o*ooooo*o*ooo ", " oo*o*ooooooooooo&&&&&&oooo*&&&&*oooooooooooo ", " oooooooo oooo*o*oooooo*o*ooooooooooo ", " ooooooo ooo*o*ooooooooo*ooo ", " ooooo ooooooooooooooooooo ", " oooooooo oooooo "}; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/speed4.xpm��������������������������������������������������������0000644�0001750�0001750�00000001415�12214432632�015465� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 3 1", " c None", ". c #000000000000", "X c #210839CE7BDE", " ", " ", " ", " ", " ", " ", " ", " ", " ", ". XX XXX XXXX XXXXX X ", ". XX XXX XXXX XXXXX XX ", ". XX XXX XXXX XXXXX XXX ", ". XX XXX XXXX XXXXX XXXX", ". XX XXX XXXX XXXXX XXX ", ". XX XXX XXXX XXXXX XX ", ". XX XXX XXXX XXXXX X ", " ", " ", " ", " ", " ", " ", " ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/sound.xpm���������������������������������������������������������0000644�0001750�0001750�00000017546�12214432632�015445� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 145 2", " c None", ". c #294A294A294A", "X c #421042104210", "o c #529452945294", "O c #4A524A524A52", "+ c #631863186318", "@ c #6B5A6B5A6B5A", "# c #39CE39CE39CE", "$ c #318C39CE39CE", "% c #318C318C318C", "& c #39CE318C39CE", "* c #4A524A525294", "= c #52944A525294", "- c #52944A524A52", "; c #4A5242104A52", ": c #294A2108294A", "> c #210821082108", ", c #739C739C739C", "< c #39CE39CE4210", "1 c #421039CE39CE", "2 c #39CE421039CE", "3 c #421039CE4210", "4 c #210818C62108", "5 c #318C294A318C", "6 c #39CE318C294A", "7 c #318C294A294A", "8 c #294A294A2108", "9 c #39CE318C318C", "0 c #294A18C6294A", "q c #294A21082108", "w c #21082108294A", "e c #18C610841084", "r c #6B5A63186B5A", "t c #739C6B5A739C", "y c #5AD65AD66318", "u c #7BDE7BDE8420", "i c #529452945AD6", "p c #18C618C618C6", "a c #5AD65AD65AD6", "s c #210818C618C6", "d c #7BDE739C8420", "f c #108408420842", "g c #108410841084", "h c #63185AD66318", "j c #4A5242104210", "k c #18C6108418C6", "l c #6B5A63186318", "z c #739C6B5A6B5A", "x c #18C618C61084", "c c #6B5A6B5A739C", "v c #42104210318C", "b c #4A52421018C6", "n c #739C739C7BDE", "m c #5AD65AD62108", "M c #FFFFEF7A0000", "N c #8420842094A4", "B c #084208420842", "V c #4A5242100000", "C c #6B5A6B5A294A", "Z c #8C6284200000", "A c #DEF6D6B40000", "S c #5AD6529418C6", "D c #63185AD60000", "F c #108408421084", "G c #84207BDE4210", "H c #9CE694A46318", "J c #318C318C294A", "K c #F7BCE7380000", "L c #52944A5218C6", "P c #D6B4CE720000", "I c #000000000000", "U c #BDEEB5AC0000", "Y c #BDEEB5AC0842", "T c #B5ACAD6A2108", "R c #631863186B5A", "E c #421039CE0000", "W c #E738DEF60000", "Q c #63185AD62108", "! c #9CE694A40000", "~ c #CE72C6300000", "^ c #B5ACAD6A0000", "/ c #C630BDEE0000", "( c #B5ACAD6A0842", ") c #739C739C39CE", "_ c #E738D6B40000", "` c #CE72C6300842", "' c #9CE694A418C6", "] c #AD6AA5280000", "[ c #94A48C620842", "{ c #8C628C621084", "} c #EF7AE7380000", "| c #108410840000", " . c #A5289CE60000", ".. c #210821080842", "X. c #AD6A9CE60000", "o. c #94A494A40842", "O. c #84207BDE0000", "+. c #B5ACB5AC0842", "@. c #94A494A418C6", "#. c #84207BDE0842", "$. c #421042100000", "%. c #39CE39CE0000", "&. c #CE72BDEE0000", "*. c #94A48C621084", "=. c #8C6284200842", "-. c #529452940000", ";. c #AD6AA5280842", ":. c #7BDE7BDE0000", ">. c #D6B4CE720842", ",. c #52944A522108", "<. c #C630BDEE0842", "1. c #318C294A0842", "2. c #A5289CE60842", "3. c #294A294A0842", "4. c #4A5242100842", "5. c #318C294A0000", "6. c #4A524A520000", "7. c #6B5A63180842", "8. c #A5289CE61084", "9. c #94A48C620000", "0. c #739C6B5A0000", "q. c #210818C60000", "w. c #318C318C0842", "e. c #6B5A63180000", "r. c #63185AD60842", "t. c #7BDE739C0000", "y. c #DEF6D6B41084", "u. c #529452941084", "i. c #7BDE739C0842", "p. c #84207BDE18C6", "a. c #5AD652941084", "s. c #18C618C60842", "d. c #739C6B5A2108", "f. c #318C318C18C6", "g. c #AD6AA5281084", "h. c #52944210318C", "j. c #842084200842", "k. c #8C628420294A", "l. c #52945AD65AD6", "z. c #A5289CE62108", "x. c #318C318C39CE", "c. c #EF7ADEF60000", "v. c #739C6B5A318C", "b. c #5AD652946318", "n. c #63186318739C", " ", " ", " ", " . X o O O O o + @ @ @ + X X # $ $ $ # % ", " O O & % & * = = = = * - * O O O * ; ; O : > . ", " , . . : . % % $ & # < 1 2 # # # < # 3 : 4 . . ", " o . : % 5 5 . % $ & # 6 & 3 * 3 X < $ 7 4 8 . ", " X 4 . : > . < $ % $ $ 9 ; % . # # ; % 5 0 q 5 ", " X : w . e % % r t y r u i $ 1 w 3 & X . 0 q % ", " . . 4 p 9 * a s s > s s 3 d & ; > < < 5 0 q % ", " . . f . . = 4 . . . : 7 % % u 9 X > 1 5 s : % ", " . : g $ h % % . . s p . 5 # o @ j k # % 4 : % ", " . > p % h & % % > % ; s . & # u # % 7 % s : % ", " . k . # h & & - p l l z > < 9 , & X w $ s q . ", " . k . j h 9 9 a x O & x 3 & # c < ; s v b : . ", " . k > < @ 3 # o . . 3 - . 1 j n < X > m M : . ", " . > g . N 9 j v O > B q 3 1 j , 9 % x V M : . ", " . q B l X o X X 2 X O # 3 j o r C > : Z A S . ", " D D . : g F G H ; 1 O O # ; j ; u J K L p Z P S . B ", " I Z U . 4 k F Y T @ R 1 & v O y , % E W Q x ! ~ S . p M ", " I ^ U . p > B / ( < 3 R n n c ) _ 5 V ` ' k ] [ { 5 E } | ", " E E I .P . x > ..U X.> C } % % . o._ p O.+.@.g / #.{ . $._ %. ", " I ! ^ I &.~ *.=.> -. .;.B :.>.,.7 g .<.1.X.2.' 3.^ 4.<.w O.~ V U ", " I U ] 5.] ] 5.~ ` x .6.` g O.` m >.;.] ] %.] 7.` 4.8.$.<.x U 9.0.I W 5. ", " q.^ / %. . .%.U M w.` B >.> U 8.e.M ` &.Z D &.$.<.r.*.$.<.B <.9.0.5.~ e. 5.%.| ", "~ / . . . .! D ] O.t. .%.M ~ 0.#.B y.g M u.! M U ^ 0.Z .I M i.p.B M B M e.t.e.] / :.Z .9.:. ", "I | %.%.%.%.5.I t.] 0.t.e.M ! +.a.I ^ %.~ s.M U o.U -.X.! I M o.d.I M I M %. .! V M ] I I I ", "I I I I I I I Z ~ V 0.9.U e._ q B X.e.;.I M =.3.f.E / i.I ;.+.C I M E ` 5.] / | Z ] ", " I E } | V ^ / 5.( 4 B X.i.g.I x > . % 3.>.p.k X.<.h.I <.0.` I ~ ~ I I ", " I I M I %.~ *.I 4 k B j.^ k.l.a h y . B _ b g ! >.9 B / .z.I P ~ ", " I I | } m B 4 B 4 i.>.m k k s > O B *.< g #.>.& B U .z.I ~ ! ", " I I } m B x s x i.` ,.q : : 5 w g c % > 0.g.x.B #.A ) I Z 5. ", " I E . I g O > 6.c.q w F B k > . & y > F . & F O.A v.I I ", " I . B g . X %.c.. g > . q e . > R 7 1 w & F O.M X ", " . g > X # | ,.& g . . % k . . X ; j k & F E M ; ", " . g k 3 * 7 . j g . . 7 k . 5 9 a j F & F I 4 X ", " . B k $ R 9 & 1 : 4 > 4 k % 9 & i O F & k > k X ", " . B g o b.% 9 % # > B g 5 % % y 1 X k $ k . k X ", " . B k & $ y 5 % % 7 % % % & 7 c % % s & k 4 p X ", " . F 4 f b.O * . & % 7 % 9 . r < X e . & k > k X ", " . F w k x h * n.& > > > 9 c ; X % > 5 & p 4 > 5 ", " . F 7 q k w ; 3 i R c c l.& ; : . % 5 & > > a ", " . k . w q > : 5 ; 3 % X X 1 . . 7 % . < s # g ", " . p . : . . 7 . . . 9 5 . : . % 1 $ & 1 p X ", " . % . > . % % . > p p . % & & < # # < & X g ", " . o X X # # # O a & . p w % > ", " ", " "}; ����������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/appearance.xpm����������������������������������������������������0000644�0001750�0001750�00000050272�12214432632�016405� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * appearance_xpm[] = { "48 48 988 2", " c None", ". c #2C2C2C", "+ c #FEFEFE", "@ c #505075", "# c #4C4E6A", "$ c #51586F", "% c #3F4A46", "& c #4E556A", "* c #4D6553", "= c #3B4641", "- c #596273", "; c #638363", "> c #5C7661", ", c #324B43", "' c #60687B", ") c #89A786", "! c #779876", "~ c #5E7668", "{ c #334847", "] c #5F677F", "^ c #99BB9D", "/ c #7FA286", "( c #5C7C69", "_ c #486762", ": c #2F4647", "< c #576279", "[ c #7A9F91", "} c #7AA290", "| c #6B9083", "1 c #60837B", "2 c #506C6F", "3 c #2B424B", "4 c #5C6580", "5 c #86ADAA", "6 c #88B2A9", "7 c #8EB9B0", "8 c #92BDB4", "9 c #87B0A6", "0 c #5F7F84", "a c #2B434C", "b c #606C84", "c c #7CA89E", "d c #7FAEA1", "e c #7DAC9F", "f c #76A294", "g c #6F9B8E", "h c #5D877A", "i c #496E6C", "j c #2D484F", "k c #5D6980", "l c #87B4A5", "m c #8FC2AC", "n c #86B8A4", "o c #7BAC98", "p c #74A392", "q c #629182", "r c #4C786B", "s c #456F69", "t c #32504E", "u c #5D6983", "v c #82B7A7", "w c #86BEAA", "x c #83BAA3", "y c #85B9A2", "z c #84B89F", "A c #77AA92", "B c #699A83", "C c #52806B", "D c #417268", "E c #335351", "F c #5B6985", "G c #85B5B3", "H c #95CEBE", "I c #8DC6B3", "J c #86BFAC", "K c #81B8A5", "L c #84BAA7", "M c #86BAA8", "N c #7AAC98", "O c #6A9887", "P c #507F7D", "Q c #2E5055", "R c #5B6687", "S c #7FAFBB", "T c #82B7BB", "U c #7FB6B4", "V c #8AC2B8", "W c #8EC6B7", "X c #90C7B9", "Y c #93C8BD", "Z c #85B8AD", "` c #75A89A", " . c #71A194", ".. c #59898D", "+. c #264C57", "@. c #586288", "#. c #71A2BF", "$. c #7EB3CA", "%. c #83B8C8", "&. c #7EB3BE", "*. c #77ACB4", "=. c #77AEAF", "-. c #78AFA9", ";. c #78AEA6", ">. c #7DB1A9", ",. c #81B4AB", "'. c #79AAA7", "). c #558692", "!. c #214459", "~. c #57628A", "{. c #6D94C1", "]. c #78A8CC", "^. c #74A7C5", "/. c #76ABC5", "(. c #7BB1C6", "_. c #7AAFC0", ":. c #7EB2BE", "<. c #71A6AD", "[. c #6DA2A5", "}. c #649998", "|. c #558985", "1. c #4C7C7B", "2. c #44707C", "3. c #234356", "4. c #576289", "5. c #729FCE", "6. c #719FD2", "7. c #719FCD", "8. c #79AAD2", "9. c #74A8CA", "0. c #6CA2C1", "a. c #76AEC8", "b. c #7AB1C5", "c. c #7FB4C6", "d. c #75A9B7", "e. c #689BA4", "f. c #61949B", "g. c #4E808A", "h. c #356676", "i. c #204357", "j. c #5B6790", "k. c #6B97C7", "l. c #75A6D6", "m. c #78A9DB", "n. c #6E9CD2", "o. c #6C9BCC", "p. c #78A9D4", "q. c #6FA3C7", "r. c #6AA0C1", "s. c #6EA7C1", "t. c #78B2C7", "u. c #7CB3C6", "v. c #79ADBC", "w. c #73A5B0", "x. c #6898A2", "y. c #4C7888", "z. c #1E465B", "A. c #576189", "B. c #719CCD", "C. c #6C9DD1", "D. c #6B9CCE", "E. c #6FA1D2", "F. c #74A4DA", "G. c #6C9AD1", "H. c #6897CB", "I. c #78ABD7", "J. c #72A7CD", "K. c #69A0BF", "L. c #74ADC6", "M. c #82BBCA", "N. c #84BEC9", "O. c #6AA0AB", "P. c #4F7D8F", "Q. c #1A475F", "R. c #000000", "S. c #74AEBE", "T. c #78B1BF", "U. c #588C9D", "V. c #19485E", "W. c #FFFFFF", "X. c #FDFFFF", "Y. c #FCFFFF", "Z. c #ECFFFF", "`. c #F2FFFF", " + c #DFFFFF", ".+ c #B9DBDB", "++ c #88B3B3", "@+ c #D5FFFF", "#+ c #FBFFF4", "$+ c #FFFFE3", "%+ c #FFFFEC", "&+ c #EDFFCF", "*+ c #FFFFEA", "=+ c #FDFFE4", "-+ c #FAFFE5", ";+ c #EEFFE0", ">+ c #53784B", ",+ c #629AAC", "'+ c #5A91A2", ")+ c #4A7F99", "!+ c #1A4A63", "~+ c #AEAAAE", "{+ c #5D86A7", "]+ c #84B3D2", "^+ c #416F87", "/+ c #DBFFFF", "(+ c #9BD0B9", "_+ c #9ECCB2", ":+ c #B4D7BB", "<+ c #A8CE9F", "[+ c #9EC692", "}+ c #AAD192", "|+ c #A6CD8F", "1+ c #9AC28B", "2+ c #95BB8C", "3+ c #99C192", "4+ c #A2C79B", "5+ c #537950", "6+ c #68A1B4", "7+ c #4C8394", "8+ c #3B6F88", "9+ c #194963", "0+ c #608BAB", "a+ c #8DBADD", "b+ c #89B9D3", "c+ c #427187", "d+ c #D0FFFF", "e+ c #93C9B5", "f+ c #8FC5A3", "g+ c #93C2A9", "h+ c #9AC2AF", "i+ c #A7CBB2", "j+ c #ACCFB4", "k+ c #A7CBAE", "l+ c #90B697", "m+ c #8AB190", "n+ c #91B798", "o+ c #98BC9E", "p+ c #507458", "q+ c #77AEC6", "r+ c #6196AD", "s+ c #3E7091", "t+ c #184761", "u+ c #638FAD", "v+ c #83AFD6", "w+ c #8EBEDD", "x+ c #89B7D4", "y+ c #346476", "z+ c #91C7BC", "A+ c #9DD4B7", "B+ c #7FAB9B", "C+ c #96C2B5", "D+ c #8BB4A6", "E+ c #8BB2A2", "F+ c #96BBA9", "G+ c #496F5D", "H+ c #7EAFD3", "I+ c #74A7C3", "J+ c #457694", "K+ c #19475F", "L+ c #618EAA", "M+ c #79A3C9", "N+ c #88B4DA", "O+ c #83B3D1", "P+ c #78A6C3", "Q+ c #316276", "R+ c #CAF9FF", "S+ c #88BBBA", "T+ c #96CCB6", "U+ c #92C3B1", "V+ c #95C3BC", "W+ c #98C5BE", "X+ c #48756D", "Y+ c #5D88BA", "Z+ c #6590BE", "`+ c #446E98", " @ c #163A55", ".@ c #6692AE", "+@ c #81AECF", "@@ c #7AA5D0", "#@ c #80AED5", "$@ c #83B4D1", "%@ c #79A7C6", "&@ c #2D5E74", "*@ c #CDFCFF", "=@ c #84B7BE", "-@ c #95CDBF", ";@ c #95CAB9", ">@ c #8CBEAF", ",@ c #7BAA9D", "'@ c #75A298", ")@ c #275249", "!@ c #4D75A7", "~@ c #517AA8", "{@ c #335B86", "]@ c #152E54", "^@ c #6590AC", "/@ c #82AFCE", "(@ c #81ADD3", "_@ c #80ACD9", ":@ c #85B5DB", "<@ c #82B3D2", "[@ c #75A4C4", "}@ c #32627C", "|@ c #C4F3FF", "1@ c #8FBFCD", "2@ c #89BDC0", "3@ c #8CC2B7", "4@ c #97CCBE", "5@ c #93C6B5", "6@ c #91C3B1", "7@ c #95C6B5", "8@ c #98CAB9", "9@ c #4A7D6A", "0@ c #5D85B5", "a@ c #5178A6", "b@ c #365D87", "c@ c #6B96AD", "d@ c #84B0D0", "e@ c #80AECE", "f@ c #78A3CD", "g@ c #7DA9D6", "h@ c #86B6DD", "i@ c #82B3D4", "j@ c #79A8CA", "k@ c #386985", "l@ c #CEFFFF", "m@ c #7EADC4", "n@ c #88BEC1", "o@ c #8FC4B5", "p@ c #8BC1AE", "q@ c #8CBFA9", "r@ c #43765D", "s@ c #71A0C4", "t@ c #5D87B4", "u@ c #335A8B", "v@ c #173358", "w@ c #618D9F", "x@ c #87B2CE", "y@ c #82AFD0", "z@ c #7EACD0", "A@ c #729CCB", "B@ c #7AA7D5", "C@ c #85B5DE", "D@ c #80B1D5", "E@ c #83B3D7", "F@ c #346484", "G@ c #C5F8FF", "H@ c #7BA9C4", "I@ c #8EC1D4", "J@ c #87BBB8", "K@ c #7AB19E", "L@ c #87BEAC", "M@ c #3E7562", "N@ c #5D91AA", "O@ c #5F8EB1", "P@ c #3D6493", "Q@ c #163257", "R@ c #76A4B1", "S@ c #85B1C8", "T@ c #85B2D6", "U@ c #7BA9D1", "V@ c #729CCF", "W@ c #79A5D6", "X@ c #81B1DD", "Y@ c #77A9CE", "Z@ c #87B6DC", "`@ c #346488", " # c #BFF0FF", ".# c #74A3C1", "+# c #8AC1C5", "@# c #8DC2C2", "## c #85BABA", "$# c #9CD5C5", "%# c #90C9B7", "&# c #28614A", "*# c #4F809E", "=# c #3F6E89", "-# c #2F527C", ";# c #193056", "># c #65959F", ",# c #95C2D2", "'# c #88B5CF", ")# c #83B0D2", "!# c #84B1D8", "~# c #7AA7D3", "{# c #719BD0", "]# c #78A4D7", "^# c #77A6D5", "/# c #73A5CB", "(# c #81B0D9", "_# c #225279", ":# c #C9FAFF", "<# c #80B2D4", "[# c #79A6C8", "}# c #81B2CF", "|# c #76A9C1", "1# c #7CB0C2", "2# c #8AC0C8", "3# c #8ABFC3", "4# c #7FB4B5", "5# c #84BAB9", "6# c #91CABC", "7# c #96CFBF", "8# c #548E7D", "9# c #588AA9", "0# c #457393", "a# c #335C85", "b# c #152A54", "c# c #64949D", "d# c #8ABAC6", "e# c #8EBDCF", "f# c #8CB9D5", "g# c #81AED3", "h# c #7EABD6", "i# c #78A5D4", "j# c #6F99D0", "k# c #77A3D9", "l# c #709ED0", "m# c #73A4CC", "n# c #80B0D9", "o# c #265680", "p# c #C7F8FF", "q# c #71A2C6", "r# c #74A1CB", "s# c #719FC4", "t# c #86B6D5", "u# c #6FA2BC", "v# c #82B6CA", "w# c #8CC2CF", "x# c #82B7BE", "y# c #76ABAE", "z# c #82BBB7", "A# c #3D7569", "B# c #699DB5", "C# c #467591", "D# c #335B87", "E# c #142E54", "F# c #515551", "G# c #1C4857", "H# c #3D6D77", "I# c #3F6F7E", "J# c #3B697E", "K# c #3E6B8A", "L# c #335F87", "M# c #315E8B", "N# c #2B5789", "O# c #224C84", "P# c #2D5990", "Q# c #2B5A8E", "R# c #2F5F8B", "S# c #34638F", "T# c #001F49", "U# c #77A8D2", "V# c #2F5F87", "W# c #32628B", "X# c #1F4C75", "Y# c #24527B", "Z# c #386987", "`# c #1D516C", " $ c #346880", ".$ c #396F80", "+$ c #396F7A", "@$ c #3C707A", "#$ c #20555B", "$$ c #2F666A", "%$ c #679BB2", "&$ c #5C8E9F", "*$ c #346080", "=$ c #163155", "-$ c #42768C", ";$ c #5D8FA0", ">$ c #508190", ",$ c #1E4052", "'$ c #5B6589", ")$ c #73A2CE", "!$ c #6D9CCB", "~$ c #699BCC", "{$ c #6B98CA", "]$ c #5C8CBE", "^$ c #608ECC", "/$ c #6796D9", "($ c #5684CB", "_$ c #5887CE", ":$ c #5684D0", "<$ c #5583CF", "[$ c #4A75C9", "}$ c #5885DA", "|$ c #507FCF", "1$ c #5B8CD9", "2$ c #5A8CD7", "3$ c #4F7FCB", "4$ c #4D7ACA", "5$ c #4471C3", "6$ c #527FCA", "7$ c #5F8ECC", "8$ c #6FA1D5", "9$ c #7CB3D6", "0$ c #79B1C3", "a$ c #6FAAB3", "b$ c #7FB7C4", "c$ c #72A7BB", "d$ c #699EB5", "e$ c #508698", "f$ c #3E7481", "g$ c #407281", "h$ c #1B485D", "i$ c #5A668A", "j$ c #7CA4C7", "k$ c #85B4DA", "l$ c #7AA9D5", "m$ c #709ECF", "n$ c #6EA0D1", "o$ c #6A98CB", "p$ c #5988B9", "q$ c #5B8BC3", "r$ c #6897D8", "s$ c #5585C9", "t$ c #5483C9", "u$ c #5281CA", "v$ c #5482CC", "w$ c #4A76C4", "x$ c #5580D5", "y$ c #4F7CCF", "z$ c #5181CD", "A$ c #598AD5", "B$ c #5182CC", "C$ c #5483D1", "D$ c #4976C6", "E$ c #4B79C6", "F$ c #5482C2", "G$ c #6A99CF", "H$ c #75A9D1", "I$ c #80B7CD", "J$ c #71ABB2", "K$ c #71ABB0", "L$ c #82B8C3", "M$ c #71A8B7", "N$ c #70A7B6", "O$ c #49808A", "P$ c #2F6070", "Q$ c #1C495D", "R$ c #5B6587", "S$ c #79A3C2", "T$ c #80ADD1", "U$ c #87B6DD", "V$ c #7CABD8", "W$ c #709FD3", "X$ c #74A5D9", "Y$ c #709FD4", "Z$ c #5E8DBD", "`$ c #598ABE", " % c #6392D1", ".% c #5D8DCE", "+% c #4E7CC1", "@% c #5382C8", "#% c #4F7DC5", "$% c #4F7CC5", "%% c #4C77C8", "&% c #507CCE", "*% c #4878C3", "=% c #5484CD", "-% c #4F80C7", ";% c #4E7CCA", ">% c #4A77C5", ",% c #5280C5", "'% c #5C8BC3", ")% c #72A3CD", "!% c #7BB0CE", "~% c #78B1BB", "{% c #6DA8A8", "]% c #76AEB1", "^% c #83BBC0", "/% c #74ABB4", "(% c #689BA6", "_% c #31657B", ":% c #1D4558", "<% c #5D6884", "[% c #83B0C1", "}% c #78A7C5", "|% c #7BA9CE", "1% c #84B1DA", "2% c #7FAEDB", "3% c #6B99CE", "4% c #709FD5", "5% c #6D9ED2", "6% c #6896C8", "7% c #5D8EBF", "8% c #5B8BC5", "9% c #6899D9", "0% c #4F7EBF", "a% c #5382C3", "b% c #4B7BBF", "c% c #4F7DC1", "d% c #4A75C0", "e% c #5A85D5", "f% c #4A78C3", "g% c #4979BE", "h% c #5282C5", "i% c #4C7FBF", "j% c #5281C8", "k% c #4470BA", "l% c #4C79C0", "m% c #5481BC", "n% c #6797C5", "o% c #71A5C9", "p% c #80B7C9", "q% c #76B0AF", "r% c #70ACA6", "s% c #83BBB7", "t% c #79B0AF", "u% c #6A9EA6", "v% c #4A7B93", "w% c #193A54", "x% c #5D6984", "y% c #85B2B2", "z% c #87B6C3", "A% c #75A3C0", "B% c #719FC5", "C% c #7EAEDB", "D% c #6997CB", "E% c #6593CA", "F% c #6799CD", "G% c #6B9ACA", "H% c #6092BE", "I% c #5A8BC1", "J% c #6C9EDC", "K% c #5686C5", "L% c #5281C0", "M% c #5282C3", "N% c #4674B4", "O% c #4D79BC", "P% c #537EC9", "Q% c #5783CC", "R% c #4676B7", "S% c #4E7EBC", "T% c #4A7DB8", "U% c #4A7BB9", "V% c #4775B9", "W% c #4571B6", "X% c #5481BF", "Y% c #5989B7", "Z% c #6EA0C5", "`% c #75AAC1", " & c #7FB9BD", ".& c #73B0A7", "+& c #78B3AA", "@& c #89BFB9", "#& c #6FA7A8", "$& c #487D91", "%& c #1B4053", "&& c #596480", "*& c #7EABA9", "=& c #8BBFB8", "-& c #86B6C0", ";& c #74A2BB", ">& c #6897BC", ",& c #7CA8D4", "'& c #81AEDD", ")& c #6A98CA", "!& c #608CC4", "~& c #699BCF", "{& c #6F9FCE", "]& c #6595BE", "^& c #5F90BE", "/& c #6395CD", "(& c #6193CB", "_& c #4D7CB6", ":& c #5383BF", "<& c #4C7DBA", "[& c #5482C1", "}& c #4B76BE", "|& c #5E8AD0", "1& c #5380C1", "2& c #4778B1", "3& c #5788BF", "4& c #4478AB", "5& c #4A79B3", "6& c #4671B1", "7& c #4C78B6", "8& c #5583B3", "9& c #5F8EB5", "0& c #70A3BD", "a& c #7AB2BB", "b& c #7AB4AD", "c& c #6FAC9C", "d& c #80B8AD", "e& c #84B9B4", "f& c #528790", "g& c #1F434F", "h& c #667389", "i& c #7BA9A4", "j& c #7DADA9", "k& c #82B7AF", "l& c #86B8BD", "m& c #76A4B9", "n& c #6896B9", "o& c #6D99C7", "p& c #84AFE1", "q& c #719DD0", "r& c #5E88BF", "s& c #6F9ECF", "t& c #6C9EC9", "u& c #6A9ABF", "v& c #5B8DB2", "w& c #5F92C1", "x& c #6DA1D2", "y& c #4A7BAE", "z& c #5282B6", "A& c #4C7CB3", "B& c #5483BD", "C& c #5985CA", "D& c #5D8ACB", "E& c #4D7FB7", "F& c #5F91C4", "G& c #5589B6", "H& c #487AAA", "I& c #4C79B3", "J& c #4974B0", "K& c #5480B5", "L& c #527EA7", "M& c #6B9AB7", "N& c #6FA4B2", "O& c #7AB4B0", "P& c #72AD9A", "Q& c #71AC98", "R& c #87BCB0", "S& c #639593", "T& c #224953", "U& c #5B657E", "V& c #91BCAE", "W& c #90C5B6", "X& c #7EAEA9", "Y& c #76A8A1", "Z& c #87BBBA", "`& c #7AA7B9", " * c #6490B0", ".* c #5D87B7", "+* c #7BA4D6", "@* c #779FD3", "#* c #5782B5", "$* c #6D9CCA", "%* c #6CA0C5", "&* c #74A5C5", "** c #5486A5", "=* c #588BB1", "-* c #6EA3CE", ";* c #578CB6", ">* c #5182AE", ",* c #4C7EAD", "'* c #4E7DB3", ")* c #5481BD", "!* c #527EBE", "~* c #638FCE", "{* c #5383B9", "]* c #6598C1", "^* c #4B81A5", "/* c #5081B2", "(* c #4E7AB4", "_* c #547FB8", ":* c #5A84B2", "<* c #6593B4", "[* c #6EA1B4", "}* c #7DB5B9", "|* c #73AB99", "1* c #6CA78A", "2* c #659C8B", "3* c #649291", "4* c #274A4D", "5* c #606B7E", "6* c #7BA88E", "7* c #80AFA1", "8* c #9BCEBF", "9* c #7DAEAA", "0* c #6F9E99", "a* c #80B4AF", "b* c #7FABB7", "c* c #6089A6", "d* c #537DA7", "e* c #6188B8", "f* c #78A1D2", "g* c #5A85B5", "h* c #5E8BB7", "i* c #74A8C6", "j* c #76A8C2", "k* c #6495B1", "l* c #5587A8", "m* c #6598BC", "n* c #6AA1C3", "o* c #578AAC", "p* c #4D80A3", "q* c #4172A1", "r* c #4775AB", "s* c #4C78B1", "t* c #6591CB", "u* c #5E8AC0", "v* c #4579A2", "w* c #5F93B6", "x* c #4C819E", "y* c #417598", "z* c #4C7AAC", "A* c #4F79AF", "B* c #5B86AB", "C* c #6492AE", "D* c #6C9EAB", "E* c #7CB4AC", "F* c #6DA78B", "G* c #559071", "H* c #4B7A71", "I* c #304D4B", "J* c #586373", "K* c #88B08B", "L* c #81AC8E", "M* c #719E97", "N* c #8CBBB0", "O* c #79AAA4", "P* c #6C9996", "Q* c #6EA298", "R* c #81AFB3", "S* c #678FA4", "T* c #567DA0", "U* c #5378A4", "V* c #6C94C0", "W* c #6793BE", "X* c #4E7DA6", "Y* c #71A3C0", "Z* c #6396AD", "`* c #6D9DB6", " = c #4D7C9B", ".= c #5C8EB0", "+= c #689EC1", "@= c #5C91B0", "#= c #5284A5", "$= c #396C92", "%= c #2E5C8B", "&= c #4975A7", "*= c #648DC3", "== c #6A94C7", "-= c #4777A3", ";= c #4B7E9D", ">= c #578BA5", ",= c #376F88", "'= c #3B6C91", ")= c #4772A2", "!= c #517BA8", "~= c #608BB0", "{= c #56819C", "]= c #6693A5", "^= c #619396", "/= c #6DA390", "(= c #548D6A", "_= c #3D725C", ":= c #2A564B", "<= c #566174", "[= c #5D8764", "}= c #659163", "|= c #7EA788", "1= c #6D9492", "2= c #7DA3A9", "3= c #709F97", "4= c #558181", "5= c #46766B", "6= c #6A9993", "7= c #7095A3", "8= c #537591", "9= c #3F6387", "0= c #51749B", "a= c #739CC3", "b= c #507EA0", "c= c #5280A1", "d= c #4E8098", "e= c #4C7C93", "f= c #3F6D89", "g= c #437395", "h= c #5B8EAE", "i= c #568BA8", "j= c #50809D", "k= c #386B88", "l= c #134367", "m= c #2D5883", "n= c #567DB0", "o= c #5E85B7", "p= c #517EA7", "q= c #3E718C", "r= c #4D7F92", "s= c #376E80", "t= c #275A73", "u= c #39638A", "v= c #3C658F", "w= c #5982A6", "x= c #446D85", "y= c #4E7987", "z= c #4E7283", "A= c #5A8783", "B= c #4D7F62", "C= c #3C6F53", "D= c #285342", "E= c #525B70", "F= c #638A6D", "G= c #597F64", "H= c #497256", "I= c #628775", "J= c #597D7F", "K= c #5B788E", "L= c #597C86", "M= c #456F7B", "N= c #335B64", "O= c #497879", "P= c #5C7F8C", "Q= c #42647B", "R= c #395B7A", "S= c #335274", "T= c #4D7095", "U= c #3F6789", "V= c #2E5883", "W= c #366387", "X= c #2A5477", "Y= c #325C7D", "Z= c #2B5A80", "`= c #436E95", " - c #417293", ".- c #316382", "+- c #356384", "@- c #194669", "#- c #1F4774", "$- c #365C8D", "%- c #396192", "&- c #386491", "*- c #3A6988", "=- c #346278", "-- c #356779", ";- c #255973", ">- c #2A5679", ",- c #28517B", "'- c #345980", ")- c #3A5F7C", "!- c #355B71", "~- c #405E74", "{- c #3D5E6C", "]- c #486F66", "^- c #35624E", "/- c #204A2B", "(- c #4B5667", "_- c #3E6141", ":- c #325A3D", "<- c #335A3C", "[- c #34563C", "}- c #375445", "|- c #324B4B", "1- c #2A404F", "2- c #264753", "3- c #234756", "4- c #294553", "5- c #2C4954", "6- c #244254", "7- c #264153", "8- c #254055", "9- c #1F3B58", "0- c #1D3658", "a- c #1B3D58", "b- c #13395D", "c- c #152F55", "d- c #183E5A", "e- c #1D445B", "f- c #1F4459", "g- c #173E5B", "h- c #1B415A", "i- c #17445E", "j- c #204458", "k- c #1B4158", "l- c #183858", "m- c #153156", "n- c #143056", "o- c #143256", "p- c #153E5C", "q- c #204658", "r- c #23495B", "s- c #1F465B", "t- c #1D4156", "u- c #163851", "v- c #143551", "w- c #1F3E4D", "x- c #1D3E4C", "y- c #203745", "z- c #213644", "A- c #264441", "B- c #1F4335", "C- c #184520", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ $ % + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ & * = + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ - ; > , + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ' ) ! ~ { + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ] ^ / ( _ : + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ < [ } | 1 2 3 + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4 5 6 7 8 9 0 a + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ b c d e f g h i j + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ k l m n o p q r s t + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ u v w x y z A B C D E + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ F G H I J K L M N O P Q + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ R S T U V W X Y Z ` ...+.+ ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @.#.$.%.&.*.=.-.;.>.,.'.).!.+ ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ~.{.].^./.(._.:.<.[.}.|.1.2.3.+ ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.+ ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.+ ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A.B.C.D.E.F.G.H.I.J.K.L.t.M.N.O.P.Q.+ ", ". R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.S.T.U.V.+ ", ". W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.X.Y.Z.Z.`. +.+++W.@+#+$+%+$+&+*+*+=+-+;+>+R.,+'+)+!++ ", ". ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+{+]+^+/+(+_+:+<+[+}+|+1+2+3+4+5+R.6+7+8+9++ ", ". ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+R.q+r+s+t++ ", ". ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+u+v+w+x+y+d+z+A+W.W.B+C+D+W.W.E+F+G+R.H+I+J+K++ ", ". ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+L+M+N+O+P+Q+R+S+T+W.W.W.U+W.W.W.V+W+X+R.Y+Z+`+ @+ ", ". ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+.@+@@@#@$@%@&@*@=@-@;@W.W.W.W.W.>@,@'@)@R.!@~@{@]@+ ", ". ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+^@/@(@_@:@<@[@}@|@1@2@3@4@W.W.W.5@6@7@8@9@R.0@a@b@ @+ ", ". ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+c@d@e@f@g@h@i@j@k@l@m@:.n@W.W.W.W.W.o@p@q@r@R.s@t@u@v@+ ", ". ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+w@x@y@z@A@B@C@D@E@F@G@H@I@W.W.W.J@W.W.W.K@L@M@R.N@O@P@Q@+ ", ". ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+R@S@d@T@U@V@W@X@Y@Z@`@ #j@.#W.W.+#@###W.W.$#%#&#R.*#=#-#;#+ ", ". ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+>#,#'#)#!#~#{#]#^#/#(#_#:#<#[#}#|#1#2#3#4#5#6#7#8#R.9#0#a#b#+ ", ". ~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#T y#z#A#R.B#C#D#E#+ ", ". F#F#F#F#F#F#F#F#F#F#F#F#F#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#`# $.$+$@$#$$$R.%$&$*$=$+ ", ". R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.-$;$>$,$+ ", ". @ @ @ @ @ @ @ @ @ @ @ @ '$g#)$!$~${$]$^$/$($_$:$<$[$}$|$1$2$3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$+ ", ". @ @ @ @ @ @ @ @ @ @ @ i$j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$+ ", ". @ @ @ @ @ @ @ @ @ @ R$S$T$U$V$W$X$Y$Z$`$ %.%+%@%#%$%%%&%*%=%-%=%;%>%,%'%)%!%~%{%]%^%/%(%_%:%+ ", ". @ @ @ @ @ @ @ @ @ <%[%}%|%1%2%3%4%5%6%7%8%9%0%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v%w%+ ", ". @ @ @ @ @ @ @ @ x%y%z%A%B%h#C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&+ ", ". @ @ @ @ @ @ @ &&*&=&-&;&>&,&'&)&!&~&{&]&^&/&(&_&:&<&[&}&|&1&2&3&4&5&6&7&8&9&0&a&b&c&d&e&f&g&+ ", ". @ @ @ @ @ @ h&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&y&z&A&B&O%C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&+ ", ". @ @ @ @ @ U&V&W&X&Y&Z&`& *.*+*@*#*$*%*&***=*-*;*>*,*'*)*!*~*{*G&]*^*/*(*_*:*<*[*}*|*1*2*3*4*+ ", ". @ @ @ @ 5*6*7*8*9*0*a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*A*.*B*C*D*E*F*G*H*I*+ ", ". @ @ @ J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*`* =.=+=@=#=$=%=&=*===-=;=>=,='=)=!=~={=]=^=/=(=_=:=+ ", ". @ @ <=[=}=|=1=2=3=4=5=6=7=8=9=0=a=b=c=d=e=f=g=h=i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z=A=B=C=D=+ ", ". @ E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=`= -.-+-@-#-$-%-&-*-=---;->-,-'-)-!-~-{-]-^-/-+ ", ". (-_-:-<-[-}-|-1-2-3-4-5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z-A-B-C-+ ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/msty1.xpm���������������������������������������������������������0000644�0001750�0001750�00000005523�12214432632�015362� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "40 40 52 1", " c None", ". c #631863186318", "X c #000000000000", "o c #294A294A294A", "O c #084208420842", "+ c #210821082108", "@ c #18C618C618C6", "# c #FFFFEF7AB5AC", "$ c #FFFFE738B5AC", "% c #FFFFDEF6B5AC", "& c #5294294A0000", "* c #FFFFCE7239CE", "= c #FFFFC63039CE", "- c #FFFFBDEE39CE", "; c #FFFFB5AC39CE", ": c #FFFFAD6A39CE", "> c #FFFFA52839CE", ", c #FFFF9CE639CE", "< c #FFFF94A439CE", "1 c #FFFF8C6239CE", "2 c #7BDE318C0000", "3 c #529418C60000", "4 c #318C318C318C", "5 c #FFFF842039CE", "6 c #FFFF7BDE39CE", "7 c #FFFF739C39CE", "8 c #FFFF6B5A39CE", "9 c #7BDE18C60000", "0 c #529410840000", "q c #FFFF631839CE", "w c #FFFF5AD639CE", "e c #FFFF529439CE", "r c #7BDE08420000", "t c #529400000000", "y c #FFFF4A5239CE", "u c #FFFF421039CE", "i c #FFFF39CE39CE", "p c #FFFF39CE4210", "a c #FFFF39CE4A52", "s c #7BDE00000842", "d c #529400000842", "f c #FFFF39CE5294", "g c #FFFF39CE5AD6", "h c #FFFF39CE6318", "j c #7BDE000018C6", "k c #529400001084", "l c #FFFFD6B4B5AC", "z c #7BDE294A0000", "x c #7BDE21080000", "c c #7BDE10840000", "v c #7BDE00000000", "b c #7BDE00001084", " ", " .................................. ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoooO ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoo+O ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoo@O ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoo@O ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoo@O ", " .ooooooooooooooooooooooooooooooooo+O ", " ###########################$%%%%%&oO ", " #******************=--;::>>,<<11234O ", " #************=--;::>>,<<11566788904O ", " #******=--;::>>,<<11566788qqwweertoO ", " #=--;::>>,<<11566788qqwweeyuiipasdoO ", " %>>,<<11566788qqwweeyuiipaaffgghjkoO ", " l22zzxxx999ccrrvvvvsssbbjjjjjjjjjkoO ", " ###########################$%%%%%&4O ", " #******************=--;::>>,<<11234O ", " #************=--;::>>,<<11566788904O ", " #******=--;::>>,<<11566788qqwweertoO ", " #=--;::>>,<<11566788qqwweeyuiipasdoO ", " %>>,<<11566788qqwweeyuiipaaffgghjkoO ", " l22zzxxx999ccrrvvvvssbbbjjjjjjjjjkoO ", " ###########################$%%%%%&4O ", " #******************=--;::>>,<<11234O ", " #************=--;::>>,<<11566788904O ", " #******=--;::>>,<<11566788qqwweertoO ", " #=--;::>>,<<11566788qqwweeyuiipasdoO ", " %>>,<<11566788qqwweeyuiipaaffgghjkoO ", " l22zzxxx999ccrrvvvvsssbbjjjjjjjjjkoO ", " ###########################$%%%%%&4O ", " #******************=--;::>>,<<11234O ", " #************=--;::>>,<<11566788904O ", " #******=--;::>>,<<11566788qqwweertoO ", " #=--;::>>,<<11566788qqwweeyuiipasdoO ", " %>>,<<11566788qqwweeyuiipaaffgghjkoO ", " l22zzxxx999ccrrvvvvssbbbjjjjjjjjjk+O ", " Xoo+@@@+oooooooooooooooooooooooooo+O ", " oo++++++++ooooooooooooooooooooo++@O ", " OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX ", " "}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/timer4.xpm��������������������������������������������������������0000644�0001750�0001750�00000001442�12214432632�015505� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 4 1", " c None", ". c #000000000000", "X c #7BDE7BDE7BDE", "o c #BDEEBDEEBDEE", " ", " ..... ", " X.X ", " .. X.X .. ", " X.. X.....X ..X ", " ....oo.XX.... ", " ..oooo.XXXX.. ", " .oooooo.XXXXXX. ", " XXoooooo.XXXXXXXX ", " .ooooooo.XXXXXXX. ", " XXooooooo.XXXXXXXXX ", " .oooooooo.XXXXXXXX. ", " .oooooooo.XXXXXXXX. ", " ....ooooo.XXXXX.... ", " .oooooooo.XXXXXXXX. ", " .oooooooo.XXXXXXXX. ", " XXooooooo.XXXXXXXXX ", " .ooooooo.XXXXXXX. ", " XXoooooo.XXXXXXXX ", " .oooooo.XXXXXX. ", " .Xoooo.XXXX.. ", " X..oo.XX..X ", " X.....X ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/nextstyle.xpm�����������������������������������������������������0000644�0001750�0001750�00000005155�12214432632�016345� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * nextstyle_xpm[] = { "37 33 84 1", " c None", ". c #747474", "+ c #757575", "@ c #000000", "# c #222222", "$ c #262626", "% c #282828", "& c #080808", "* c #FFFFFF", "= c #FFFAFF", "- c #FFFFF6", "; c #F6F6F6", "> c #F6F2F6", ", c #EEEEEE", "' c #B4B6B4", ") c #8B8D94", "! c #DEE6E6", "~ c #E6E6EE", "{ c #CDD2CD", "] c #A4A1A4", "^ c #313431", "/ c #94918B", "( c #EEF6F6", "_ c #292829", ": c #C5CACD", "< c #E6E6E6", "[ c #A4A5AC", "} c #414039", "| c #948D8B", "1 c #8B8D8B", "2 c #292C29", "3 c #D5D6D5", "4 c #B4BAB4", "5 c #313029", "6 c #DEDADE", "7 c #A4A5A4", "8 c #8B898B", "9 c #F6FAFF", "0 c #F6FFFF", "a c #DEDEDE", "b c #181818", "c c #E6EAE6", "d c #C5C6C5", "e c #8B8983", "f c #EEF2F6", "g c #EEEEF6", "h c #101010", "i c #201818", "j c #838183", "k c #838983", "l c #949594", "m c #202420", "n c #CDCECD", "o c #BDBABD", "p c #202018", "q c #736D73", "r c #6A7573", "s c #83817B", "t c #B4B2B4", "u c #202829", "v c #C5C2C5", "w c #201C18", "x c #5A5552", "y c #7B757B", "z c #393C41", "A c #CDD2D5", "B c #D5D2D5", "C c #9CA1A4", "D c #BDBAB4", "E c #8B8583", "F c #6A6D6A", "G c #949994", "H c #A4AAAC", "I c #94999C", "J c #94958B", "K c #94898B", "L c #83818B", "M c #73756A", "N c #837D83", "O c #060606", "P c #070707", "Q c #030303", "R c #ABABAB", "S c #535353", "..................+++++++...........@", "##################$$$$$$$%$%$$$$$$$$@", "##################$$$$$$$$%%%%%%%%%%@", "###################################%@", "###################################%&", "####################@@@@@@@@@@@@*%%%&", "####################@=****-;>,'@*%%%&", "####################@*)!=;~{]^/@*%%%&", "####################@*(_:><[}|1@*%%%&", "####################@**:2345678@*%%%&", "####################@*90ab_cd/e@*%%%&", "####################@9fg3hid7jk@*%%%&", "####################@;almnopqrs@*%%%&", "####################@>tuva67wxy@*%%%&", "####################@,zABClDEbF@*%%%&", "####################@'GHIJKeLMN@*%%%&", "####################@@@@@@@@@@@@*%%%&", "####################*************%%%&", "##################$$$$$$$$$%%%%%%%%%&", "##################$$$$$$$%$%%%%%%%%%&", "OOOOOOOOOOOOOOOOOOPPPPPPPPPPPPP&&&&&Q", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR@", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR@", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR@", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR@", "SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS*RR@", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@R*RR@", "********************************R*RR@", "********************************R*RR@", "********************************R*RR@", "********************************R*RR@", "********************************R*RR@"}; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/keyshortcuts.xpm��������������������������������������������������0000644�0001750�0001750�00000016374�12214432632�017062� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * keyshortcuts_xpm[] = { "48 48 160 2", " c None", ". c #2C2C2C", "+ c #FEFEFE", "@ c #8A8A8A", "# c #969696", "$ c #A2A2A2", "% c #ADADAD", "& c #A9A9A9", "* c #A8A8A8", "= c #ACACAC", "- c #767676", "; c #646464", "> c #6B6B6B", ", c #A7A7A7", "' c #B6B6B6", ") c #BCBCBC", "! c #BBBBBB", "~ c #747474", "{ c #828282", "] c #888888", "^ c #9C9C9C", "/ c #858585", "( c #BABABA", "_ c #656565", ": c #B5B5B5", "< c #B3B3B3", "[ c #BDBDBD", "} c #696969", "| c #9E9E9E", "1 c #939393", "2 c #616161", "3 c #898989", "4 c #878787", "5 c #6D6D6D", "6 c #606060", "7 c #8E8E8E", "8 c #777777", "9 c #C5C5C5", "0 c #C1C1C1", "a c #CACACA", "b c #808080", "c c #8B8B8B", "d c #A6A6A6", "e c #A3A3A3", "f c #C9C9C9", "g c #848484", "h c #B7B7B7", "i c #C4C4C4", "j c #CBCBCB", "k c #727272", "l c #818181", "m c #9A9A9A", "n c #C8C8C8", "o c #676767", "p c #959595", "q c #8F8F8F", "r c #8C8C8C", "s c #737373", "t c #797979", "u c #7F7F7F", "v c #9F9F9F", "w c #9D9D9D", "x c #909090", "y c #CCCCCC", "z c #D4D4D4", "A c #D7D7D7", "B c #757575", "C c #ABABAB", "D c #D6D6D6", "E c #D9D9D9", "F c #AFAFAF", "G c #D3D3D3", "H c #CFCFCF", "I c #717171", "J c #7E7E7E", "K c #B0B0B0", "L c #989898", "M c #979797", "N c #999999", "O c #B4B4B4", "P c #AAAAAA", "Q c #B8B8B8", "R c #B2B2B2", "S c #DEDEDE", "T c #E5E5E5", "U c #E2E2E2", "V c #7B7B7B", "W c #9B9B9B", "X c #E0E0E0", "Y c #E1E1E1", "Z c #E3E3E3", "` c #E7E7E7", " . c #C2C2C2", ".. c #8D8D8D", "+. c #A1A1A1", "@. c #DBDBDB", "#. c #E4E4E4", "$. c #D2D2D2", "%. c #A4A4A4", "&. c #A5A5A5", "*. c #E8E8E8", "=. c #E9E9E9", "-. c #F3F3F3", ";. c #F4F4F4", ">. c #B9B9B9", ",. c #CDCDCD", "'. c #D8D8D8", "). c #EBEBEB", "!. c #EFEFEF", "~. c #F2F2F2", "{. c #EAEAEA", "]. c #DDDDDD", "^. c #CECECE", "/. c #BEBEBE", "(. c #F8F8F8", "_. c #FCFCFC", ":. c #FDFDFD", "<. c #FBFBFB", "[. c #F6F6F6", "}. c #FAFAFA", "|. c #F9F9F9", "1. c #EEEEEE", "2. c #EDEDED", "3. c #D5D5D5", "4. c #C7C7C7", "5. c #929292", "6. c #A0A0A0", "7. c #B1B1B1", "8. c #BFBFBF", "9. c #DADADA", "0. c #6F6F6F", "a. c #DCDCDC", "b. c #E6E6E6", "c. c #F7F7F7", "d. c #868686", "e. c #D1D1D1", "f. c #FFFFFF", "g. c #DFDFDF", "h. c #F5F5F5", "i. c #919191", "j. c #C6C6C6", "k. c #ECECEC", "l. c #838383", "m. c #AEAEAE", "n. c #7A7A7A", "o. c #C0C0C0", "p. c #949494", "q. c #575757", "r. c #C3C3C3", "s. c #F1F1F1", "t. c #D0D0D0", "u. c #F0F0F0", "v. c #6A6A6A", "w. c #787878", "x. c #6E6E6E", "y. c #6C6C6C", "z. c #7C7C7C", "A. c #666666", "B. c #5A5A5A", "C. c #7D7D7D", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + ", ". @ # $ % & % * = * - ; > , = ' ) ! ~ { ] ^ / % ) ( _ / $ : < ) [ @ } ] | $ $ * 1 2 3 4 ~ 5 6 + ", ". 7 3 8 { { ) 9 0 a = b c % d e f f g { 4 h ) i a j k l m ! f f n 7 o p # p q q r s r b t u { + ", ". v w k / x y ! z A f B x C 0 9 D E F ~ c ! G H E D I J F K e L e / B $ L M N $ O ! 9 ' O C v + ", ". P Q l 3 v A R S T U V W h X Y Z ` 9 - $ O ! .F ! ...., m # w +.R < D f @.Z Z Z #.$.a .C %.+ ", ". R 9 &.V %.*.=.-.;.;.+.7 K z T *.*.O V & % $ &.v O * %.>.,.'.U ).!.;.-.!.!.~.T ).~.{.].^.( O + ", ". ! y /.{ v D (._.:.!.= ..! 0 O P % P m & ( >.a U Z -.<._.:.;._.<.[.(._.:.}.<.|.1.2.3.( +., % + ", ". ! y ! b p n 4.H P < = 5.e 6.%.7.8.j 9.~.2.<.<.:.:.[.|.|.~.:._.<.<._.-._.T $.G ].2.Q 0.{ & K + ", ". &.P * g m K h 1 m : % 8.a.b.2.c.(.:.c._.|.<.-.|._._._.:._.{.2.y '.a.q 5.| a y (.:.;...M | & + ", ". t d.p ^ ) 0 n 9.U (.:._._.(.|._.|._.c.<._._._.<.T Y 3.O e W e.T _.f.,...% =.g.h.}.;.M c x ' + ", ". i.F j U [._._._.:.[.:.c.(._._.<.;.2.|.{.!.j.4.A @._.|.] $ n =.A [.+ k.l.F $.b.2.}.-.( 8 r m.+ ", ". ! y a.*.1.<.(.(.:.c.:._._._.Z H T Y *., n.| H j _.f.+ = ^ h @.~.<.:.f.4 $ o.Z 3._.[.G 5 m i.+ ", ". ( y @.=.(.f.:.(.[.2.=.3.i.p.6.S h.:.+ 1./ $ a T ~.(.f.4.] K X #.[.f.f.6.w 0 G X <.].6.q.5...+ ", ". ) y '.a.S 9 % 0 9 k._._.e 5.[ z b._.:.<.7 | i Y ~._.:.;.@ * y T (.:.|.w ..( .F 7.| c t L ] + ", ". W +.r.=.F l.| a {.!.:.+ y ..C *.s.c.:._.d x ! T [ + f.}.n.% ! j ) < ( 5.g P M &.7.% % Q 0 ! + ", ". i.: a.k.=.# e n <._.:.+ 3.g K A j.!.f.f.0 5.' S 4.'.].K { | = 6.d < | &.a !._.0 # Q ) h i ( + ", ". 6.* a.k.-...m < ;.` _.+ :.L e 9 #.{.:.b.R ] P m.& /.e +.e ' n t.| P H =._._.f.b.1 ,.9 8.[ ! + ", ". : y @.b.(.7.M ) T 3.+ f.;.{ w /.: < 7.%.N p : K C %.< 3.A U :.:.( C f $.$.~._._.r m.< .K ( + ", ". N Q z ).}.i ] C 8.,.].< +.m # * , P C R n E s.:.;.N 8.E r.@.<.:.f ^ [ ].` (.:.+ = C 0 R ' ) + ", ". i.( @.g.e.m.M K O m.L C m.( O 3.=.= 7.j.*.i ;.+ :.| h y T ~.<._.s.r .3.Y u.<.f.A p < O : * + ", ". c c &.m , +.# P ' O & < 4.Y |.f.+ 9 r [ {.^.#._.;.O P 4.h.h.;.<._.N O t.` <._.<.F J e * l v.+ ", ". J 1 w W % t.E -.f.(.w &.e.G ` s.:.!.N ' e._.<.:.:.0 m 0 =.h._.+ _., d 9 9 7.p q @ W ' r J ..+ ", ". O ^.'.i.F #.j.)._.[., * r.Y _._.:.=.x ! @.!._._.f.U p j f !.A 9 % b m h * % % : b.;.H w.# &.+ ", ". m.y D W < Z g.;._.+ Q 3 .U u.:._.f.e d j.c._._._.h c ) o.K +.W F i a.o., /.a.).[.-.#.d.q | + ", ". : y ].P d.'.[.[.|.:.Y N P g.:.:.+ :.O r f O %.W x d p y h K h z h.:.f.].7 ^.Z S ~.k.U L s N + ", ". ' f a.t.# f _.:.:.+ g.p.v 4.9.t.8., p.e .! % ' G #.:._.L f z a.` |.:.s.M 9 ,.).[.2.T : ; 7 + ", ". ) y ].^.i.< ~.h.s.` f # K h K %.v m.,.=.f P n Y T |.:._.h $ H ~.h.~.h.}.| /.H Y T *.T j ; ] + ", ". ' r.f ( 1 >.9 C v M W % ,.< 8.Q #.D + :.!.* 9 S '.{.!._.a.$ a z Z !.[.+ o.^ 9 ~.).k.z R x.u + ", ". u b l.q +.! K h /.S T :.:.>.$ a X Q =.[._.& ( e.[.h._.:.g.^ ( ,.#.}.+ + 3.| 0 h >.% q t t @ + ", ". ] N 0 z (.:.>.[ E 2.@._.:.z & 4.#.*.u.<._.0 & $.E :.;._._.N K t.D E H O p 5.o.F O ^ * h i O + ", ". r F ^.j c.:.z R ^.~.X c.(.Z 6.) 3.c.h.<.:.A p./.!.;.(.|.$.^ d K m M < e /.G *.<.$.q h [ >.@ + ", ". g d G H ~.(.Z h 0 -.h.|.}.[.v >.f !._._._.A ^ [ o.F % & M m.9 j '.C % ].=.y !._.h.x * ! ' W + ", ". ] ^ z Z ;.}.[.%.m.2._.}._._.%.' 0 3.f 9 F $ W >.F = e n e.S X _.:.$.d a ].1.c.k.|.& # = >.d + ", ". n...^.=.h._._.m < U h.=.b.^.L , % 6.W F K y j.!._.h.e ' z ~.G _.:.Z # 9 G s.).<.<.j.~ +.>.7.+ ", ". k i.9 Z #.b.^.%.: O d $ = +.7.9 U a.[ ( y #.H (.-._./.& ^.!.h.1.[.h.| O ,.s.u.|.+ A 0.v , # + ", ". n.5.w m v = +.# ! o.7.% j.i X n !.:.E 5.: X h.2.c.:.0 W 9 S {.}._.+ P * j.S '.e.! ^ l.%.t y.+ ", ". z.4 M p.L F K $.Z _.=.% ' t.u.+.j _.;.M R y h.h.u.:.b.| K $.:.:.h.s.v $ ! & p.7 N N @ ^ i...+ ", ". l.v 9 y >.( y 7.n |.}.>.K 8.b._.|.~.-.+.| Q k.u._.:.=.i.P 0 ^.m.P ^ p $ 8.4.[ H e.*.Z D 8.( + ", ". d $ t.{.3.5.: s.#.~.k.i P R g.1.<.-.+ 8.p K b.~.T 4.R 7 ' C ..+.N & ^.'.R ( i z h =.U D j.! + ", ". R { 7.=.!.M R }.=.h.c.D c : G _.<._.*., c R , q 4 W Q , 4.D t.Y k.(.:.:.e &.i ,., ,.Z D n < + ", ". P y E X 1.+.| 2._._.:.9.m & h < P m q ..1 7.6.7. .Q j.n |.(.j (.:.(.}.:.[ 6.[ #.2.-.Z ^.f ! + ", ". &.o.@.Y |.8.p E T e.f m.q P ! P e 6.! .H #.-._.:.< 6.! |.H b Z _.<.c.+ 2.p = #._.-.#.D f ( + ", ". N n A #.g.%.] p 1 J / { # = %.n /.b.c.c.(.;.-.1.|.'.| O g.[.@.s.c.[.c.|.h.c = D (.=.X $.9 ' + ", ". J d.3 g { { ] @ M O 8.e.=.).x m W f f f *.*.{.=.).S ] &.r.k.=.=.=.=.{.{.{.i.p.+.{.Z z j.O p.+ ", ". t 8 J &.R R r.@.9.a.9.9.a.].p.l...f @.$.@.@.@.a.].].{ L $ S ].].@.a.@.a.S %.d., e.) 6.d.b 0.+ ", ". A.d.| ( n y a a f n y y j.y %.~ b i.y y ,.y ,.y y ^.3 / 7 y ,.y ,.y y f n 5.v.w i.l V 0.5 o + ", ". c M e % Q ) ) ! ) ) ) [ ) ) % B./ 4 [ ) [ ) ) ) ) [ # y.C.: [ ! < v 7 l.J z.I 7 z.~ - ~ - C.+ ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/Makefile.in�������������������������������������������������������0000644�0001750�0001750�00000040253�12214434561�015626� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WPrefs.app/xpm DIST_COMMON = $(am__dist_xpmdata_DATA_DIST) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__dist_xpmdata_DATA_DIST = advancetonewworkspace.xpm animations.xpm \ appearance.xpm clip.xpm configs.xpm cycleworkspaces.xpm \ dock.xpm dockclipdrawersection.xpm dontlinkworkspaces.xpm \ drawer.xpm ergonomic.xpm expert.xpm fonts.xpm iconprefs.xpm \ keyboard.xpm keyboardprefs.xpm keyshortcuts.xpm menualign1.xpm \ menualign2.xpm menuprefs.xpm menus.xpm moreanim.xpm \ mousesettings.xpm mousespeed.xpm msty1.xpm msty2.xpm msty3.xpm \ newstyle.xpm nextstyle.xpm nonopaque.xpm noopaqueresize.xpm \ oldstyle.xpm opaque.xpm opaqueresize.xpm paths.xpm smooth.xpm \ sound.xpm speed0.xpm speed0s.xpm speed1.xpm speed1s.xpm \ speed2.xpm speed2s.xpm speed3.xpm speed3s.xpm speed4.xpm \ speed4s.xpm tdel.xpm tedit.xpm temp.xpm textr.xpm theme.xpm \ timer0.xpm timer0s.xpm timer1.xpm timer1s.xpm timer2.xpm \ timer2s.xpm timer3.xpm timer3s.xpm timer4.xpm timer4s.xpm \ timer5.xpm timer5s.xpm tnew.xpm whandling.xpm windowfocus.xpm \ workspace.xpm workspacename.xpm xis.xpm am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(xpmdatadir)" DATA = $(dist_xpmdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ xpmdatadir = $(wprefs_datadir)/xpm @ICON_EXT_XPM_TRUE@dist_xpmdata_DATA = \ @ICON_EXT_XPM_TRUE@ advancetonewworkspace.xpm \ @ICON_EXT_XPM_TRUE@ animations.xpm \ @ICON_EXT_XPM_TRUE@ appearance.xpm \ @ICON_EXT_XPM_TRUE@ clip.xpm \ @ICON_EXT_XPM_TRUE@ configs.xpm \ @ICON_EXT_XPM_TRUE@ cycleworkspaces.xpm \ @ICON_EXT_XPM_TRUE@ dock.xpm \ @ICON_EXT_XPM_TRUE@ dockclipdrawersection.xpm \ @ICON_EXT_XPM_TRUE@ dontlinkworkspaces.xpm \ @ICON_EXT_XPM_TRUE@ drawer.xpm \ @ICON_EXT_XPM_TRUE@ ergonomic.xpm \ @ICON_EXT_XPM_TRUE@ expert.xpm \ @ICON_EXT_XPM_TRUE@ fonts.xpm \ @ICON_EXT_XPM_TRUE@ iconprefs.xpm \ @ICON_EXT_XPM_TRUE@ keyboard.xpm \ @ICON_EXT_XPM_TRUE@ keyboardprefs.xpm \ @ICON_EXT_XPM_TRUE@ keyshortcuts.xpm \ @ICON_EXT_XPM_TRUE@ menualign1.xpm \ @ICON_EXT_XPM_TRUE@ menualign2.xpm \ @ICON_EXT_XPM_TRUE@ menuprefs.xpm \ @ICON_EXT_XPM_TRUE@ menus.xpm \ @ICON_EXT_XPM_TRUE@ moreanim.xpm \ @ICON_EXT_XPM_TRUE@ mousesettings.xpm \ @ICON_EXT_XPM_TRUE@ mousespeed.xpm \ @ICON_EXT_XPM_TRUE@ msty1.xpm \ @ICON_EXT_XPM_TRUE@ msty2.xpm \ @ICON_EXT_XPM_TRUE@ msty3.xpm \ @ICON_EXT_XPM_TRUE@ newstyle.xpm \ @ICON_EXT_XPM_TRUE@ nextstyle.xpm \ @ICON_EXT_XPM_TRUE@ nonopaque.xpm \ @ICON_EXT_XPM_TRUE@ noopaqueresize.xpm \ @ICON_EXT_XPM_TRUE@ oldstyle.xpm \ @ICON_EXT_XPM_TRUE@ opaque.xpm \ @ICON_EXT_XPM_TRUE@ opaqueresize.xpm \ @ICON_EXT_XPM_TRUE@ paths.xpm \ @ICON_EXT_XPM_TRUE@ smooth.xpm \ @ICON_EXT_XPM_TRUE@ sound.xpm \ @ICON_EXT_XPM_TRUE@ speed0.xpm \ @ICON_EXT_XPM_TRUE@ speed0s.xpm \ @ICON_EXT_XPM_TRUE@ speed1.xpm \ @ICON_EXT_XPM_TRUE@ speed1s.xpm \ @ICON_EXT_XPM_TRUE@ speed2.xpm \ @ICON_EXT_XPM_TRUE@ speed2s.xpm \ @ICON_EXT_XPM_TRUE@ speed3.xpm \ @ICON_EXT_XPM_TRUE@ speed3s.xpm \ @ICON_EXT_XPM_TRUE@ speed4.xpm \ @ICON_EXT_XPM_TRUE@ speed4s.xpm \ @ICON_EXT_XPM_TRUE@ tdel.xpm \ @ICON_EXT_XPM_TRUE@ tedit.xpm \ @ICON_EXT_XPM_TRUE@ temp.xpm \ @ICON_EXT_XPM_TRUE@ textr.xpm \ @ICON_EXT_XPM_TRUE@ theme.xpm \ @ICON_EXT_XPM_TRUE@ timer0.xpm \ @ICON_EXT_XPM_TRUE@ timer0s.xpm \ @ICON_EXT_XPM_TRUE@ timer1.xpm \ @ICON_EXT_XPM_TRUE@ timer1s.xpm \ @ICON_EXT_XPM_TRUE@ timer2.xpm \ @ICON_EXT_XPM_TRUE@ timer2s.xpm \ @ICON_EXT_XPM_TRUE@ timer3.xpm \ @ICON_EXT_XPM_TRUE@ timer3s.xpm \ @ICON_EXT_XPM_TRUE@ timer4.xpm \ @ICON_EXT_XPM_TRUE@ timer4s.xpm \ @ICON_EXT_XPM_TRUE@ timer5.xpm \ @ICON_EXT_XPM_TRUE@ timer5s.xpm \ @ICON_EXT_XPM_TRUE@ tnew.xpm \ @ICON_EXT_XPM_TRUE@ whandling.xpm \ @ICON_EXT_XPM_TRUE@ windowfocus.xpm \ @ICON_EXT_XPM_TRUE@ workspace.xpm \ @ICON_EXT_XPM_TRUE@ workspacename.xpm \ @ICON_EXT_XPM_TRUE@ xis.xpm all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WPrefs.app/xpm/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WPrefs.app/xpm/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_xpmdataDATA: $(dist_xpmdata_DATA) @$(NORMAL_INSTALL) test -z "$(xpmdatadir)" || $(MKDIR_P) "$(DESTDIR)$(xpmdatadir)" @list='$(dist_xpmdata_DATA)'; test -n "$(xpmdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(xpmdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(xpmdatadir)" || exit $$?; \ done uninstall-dist_xpmdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_xpmdata_DATA)'; test -n "$(xpmdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(xpmdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(xpmdatadir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(xpmdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_xpmdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_xpmdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dist_xpmdataDATA \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-dist_xpmdataDATA # 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. .NOEXPORT: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/mousespeed.xpm����������������������������������������������������0000644�0001750�0001750�00000005164�12214432632�016457� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "40 44 33 1", " c None", ". c #084208420842", "X c #108410841084", "o c #000000000000", "O c #421042104210", "+ c #6B5A6B5A6B5A", "@ c #631863186318", "# c #739C739C739C", "$ c #7BDE7BDE7BDE", "% c #94A494A494A4", "& c #294A294A294A", "* c #210821082108", "= c #9CE69CE69CE6", "- c #4A524A524A52", "; c #18C618C618C6", ": c #BDEEBDEEBDEE", "> c #C630C630C630", ", c #B5ACB5ACB5AC", "< c #529452945294", "1 c #A528A528A528", "2 c #39CE39CE39CE", "3 c #AD6AAD6AAD6A", "4 c #8C628C628C62", "5 c #842084208420", "6 c #5AD65AD65AD6", "7 c #318C318C318C", "8 c #CE72CE72CE72", "9 c #DEF6DEF6DEF6", "0 c #EF7AEF7AEF7A", "q c #E738E738E738", "w c #FFFFFFFFFFFF", "e c #D6B4D6B4D6B4", "r c #F7BCF7BCF7BC", " ", " ", " .X ", " oO+ ", " o@#ooo ", " o.oo .$#.Xo ", " X@%#&.o o*=-;Xo ", " o@:>>,$O**<12;;o ", " o&3::>>>:,,31&*Xo ", " ;%:>:>>>>>:4:52Xo ", " .6::>>>>>>>3$::=&o ", " *=:::>>>>>:$3>>>,@X ", " .6$%3:>>>>>15>>>:::Ooo ", " o73,=551>>>>53>>>:::-.oo ", " ;%:::>:4#=,35>8>:::3O*Xo ", " .6,::>>>>:34@1>>>::,=2&X. ", " o&18:>>9>8808,5%:::,3#&&Xo ", " X4:88>>9q88008>w#%33=-&*.o ", " .6,:8%e>q@qe0708ww=+%52&;oo ", " o<3::8%%eq+@q0O70wow3$<&&X. ", " .21::>e%==0+++r272wXow4O&*.o ", " o2=,::>e%==8+++e227wXoXw7&;oo ", " .7=,::>>e===><++8*22woXo;w*.o ", " ;43::>>>e===8-<+8;*2r.o.Xow.o ", " o23,:>>>8e=1=8---e;;;ro.o.oow ", " X#3,:>>889==18+++e222wo.oo.oXr ", " &%3,:>>889=198++qe270w.oo.wwr0w ", " .613,::>8e9199>-0q8;rqwooworo ", " o@=3,::>8e99ee08e8ree1r.wwoow ", " .@=13::>8eeeee9=%e96<>ww.:wX0 ", " .@%13,:>8eeeeeee%8:e-,4>.:woow ", " .@4=3,:>88eeee8e%4>e-*%>.o:wow ", " o-5%13::>88888>:8>,=,%&*:: w.ow ", " &$4=1,::>>>>:::,,1$O&&Xoo ww ", " .6$4=13,,:::,,3334-&&;.o ", " o6=133333111=%<7&*Xo ", " .O#54%=====%%%4#2&&;oo ", " oX2+$$55444555#O&&;.o ", " oX&<+######+<27&*.o ", " o.;&2O-<---27&&&X.o ", " ooX;&&&&&&&&&*Xoo ", " oo.X;******;..o ", " ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/noopaqueresize.xpm������������������������������������������������0000644�0001750�0001750�00000031136�12214432632�017355� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * noopaqueresize_xpm[] = { "48 48 502 2", " c None", ". c #000000", "+ c #9C9C9C", "@ c #B5B5B5", "# c #FFFFFF", "$ c #5A5A5A", "% c #0F0000", "& c #380000", "* c #FEFEFE", "= c #FDFDFD", "- c #FAFAFA", "; c #EFEEEE", "> c #EDEBEB", ", c #EEEDED", "' c #F9F9F9", ") c #FCFCFC", "! c #EDECEC", "~ c #BEB3B3", "{ c #C9AAAA", "] c #C7A8A8", "^ c #BDB2B2", "/ c #EBE9E9", "( c #FBFBFB", "_ c #F7F7F7", ": c #DDDCDC", "< c #C2A4A4", "[ c #FEAEAE", "} c #FEADAD", "| c #C2A3A3", "1 c #E4E2E2", "2 c #F6F6F6", "3 c #E8E7E7", "4 c #B3A9A9", "5 c #CF9696", "6 c #FFAEAE", "7 c #FFABAB", "8 c #BE9A9A", "9 c #DCDADA", "0 c #F0F0F0", "a c #F5F5F5", "b c #F3F2F2", "c c #D6D5D5", "d c #B89999", "e c #FEA1A1", "f c #FFA6A6", "g c #FF9999", "h c #AC8D8D", "i c #D3D1D1", "j c #E8E8E8", "k c #F8F8F8", "l c #E4E3E3", "m c #ACA1A1", "n c #C38A8A", "o c #FF9C9C", "p c #FF9595", "q c #AE7676", "r c #8E8282", "s c #BBB9B9", "t c #CECDCD", "u c #DBDADA", "v c #EEEEEE", "w c #D3D0D0", "x c #B19292", "y c #FF9494", "z c #FF8080", "A c #8C6C6C", "B c #9A9696", "C c #8A8080", "D c #9B8484", "E c #A29898", "F c #AA9E9E", "G c #BC8484", "H c #FF9191", "I c #FF8484", "J c #975F5F", "K c #716565", "L c #8E8A8A", "M c #886C6C", "N c #E38181", "O c #B08080", "P c #A39797", "Q c #D5D3D3", "R c #F1F1F1", "S c #F3F1F1", "T c #B09393", "U c #FF9090", "V c #FF8C8C", "W c #F97373", "X c #795959", "Y c #817D7D", "Z c #6A6060", "` c #935E5E", " . c #FF8D8D", ".. c #B58383", "+. c #A79C9C", "@. c #E0DEDE", "#. c #F3F3F3", "$. c #F2F2F2", "%. c #EFEDED", "&. c #AE8D8D", "*. c #FF8E8E", "=. c #FF7F7F", "-. c #8E5656", ";. c #635757", ">. c #7A7676", ",. c #6F5252", "'. c #E46969", "). c #FF8181", "!. c #AA8B8B", "~. c #D2D1D1", "{. c #DEDDDD", "]. c #E2E1E1", "^. c #E9E8E8", "/. c #A28686", "(. c #F78080", "_. c #EE7070", ":. c #745454", "<. c #777373", "[. c #5A5050", "}. c #7C4747", "|. c #FF6969", "1. c #FF7878", "2. c #9C7D7D", "3. c #BDBABA", "4. c #B49A9A", "5. c #B2A8A8", "6. c #DAD9D9", "7. c #948B8B", "8. c #8E7070", "9. c #7D5F5F", "0. c #645959", "a. c #747070", "b. c #644747", "c. c #D25757", "d. c #FF6868", "e. c #FF6F6F", "f. c #955D5D", "g. c #7E7272", "h. c #A4A0A0", "i. c #A48484", "j. c #FE9696", "k. c #C89090", "l. c #BB9A9A", "m. c #B2A7A7", "n. c #EBEAEA", "o. c #EDEDED", "p. c #E6E6E6", "q. c #C2C1C1", "r. c #AFADAD", "s. c #9E9C9C", "t. c #888686", "u. c #5A4E4E", "v. c #764141", "w. c #F65C5C", "x. c #FF6464", "y. c #FF6565", "z. c #E35D5D", "A. c #755555", "B. c #8B8787", "C. c #7D7171", "D. c #AA7272", "E. c #FF9696", "F. c #FF9F9F", "G. c #FF9E9E", "H. c #C78F8F", "I. c #B4A9A9", "J. c #E5E3E3", "K. c #E8E6E6", "L. c #B9B0B0", "M. c #C1A6A6", "N. c #BBB2B2", "O. c #E5E5E5", "P. c #D1D1D1", "Q. c #C0C0C0", "R. c #AEAEAE", "S. c #8B8989", "T. c #694D4D", "U. c #D15656", "V. c #FF6161", "W. c #FF6060", "X. c #F65959", "Y. c #794141", "Z. c #5C5050", "`. c #7F7B7B", " + c #7E5F5F", ".+ c #FE7878", "++ c #FF9797", "@+ c #FE9A9A", "#+ c #B49595", "$+ c #D7D6D6", "%+ c #BC9E9E", "&+ c #FEA5A5", "*+ c #BFA1A1", "=+ c #D9D7D7", "-+ c #E7E7E7", ";+ c #D5D5D5", ">+ c #C5C5C5", ",+ c #AAA8A8", "'+ c #6D6262", ")+ c #834B4B", "!+ c #FB6060", "~+ c #FF6262", "{+ c #FF5D5D", "]+ c #D44E4E", "^+ c #5D3C3C", "/+ c #656060", "(+ c #874F4F", "_+ c #FF7272", ":+ c #FF8686", "<+ c #A58686", "[+ c #C0BDBD", "}+ c #A29696", "|+ c #BC8686", "1+ c #FFA1A1", "2+ c #C99191", "3+ c #ADA2A2", "4+ c #E2E0E0", "5+ c #EBEBEB", "6+ c #DBDBDB", "7+ c #CCCCCC", "8+ c #B0AEAE", "9+ c #836464", "0+ c #EB6565", "a+ c #F25555", "b+ c #6E3737", "c+ c #423535", "d+ c #453838", "e+ c #723F3F", "f+ c #E65C5C", "g+ c #FF6C6C", "h+ c #FF7676", "i+ c #FF7A7A", "j+ c #FF7979", "k+ c #857979", "l+ c #A6A2A2", "m+ c #977979", "n+ c #F57373", "o+ c #D7D5D5", "p+ c #F4F4F4", "q+ c #E1E1E1", "r+ c #B9B7B7", "s+ c #8A6B6B", "t+ c #F16B6B", "u+ c #DF5050", "v+ c #5A3737", "w+ c #585353", "x+ c #5A3838", "y+ c #D54F4F", "z+ c #FF6666", "A+ c #FF6B6B", "B+ c #7C7171", "C+ c #A26A6A", "D+ c #FF8383", "E+ c #FF9292", "F+ c #FF8F8F", "G+ c #C1BFBF", "H+ c #E2E2E2", "I+ c #EFEFEF", "J+ c #DCDCDC", "K+ c #C3C1C1", "L+ c #837979", "M+ c #8E5B5B", "N+ c #EA6161", "O+ c #F75656", "P+ c #A14040", "Q+ c #412B2B", "R+ c #3D3030", "S+ c #6C3535", "T+ c #F05353", "U+ c #FF5C5C", "V+ c #FF5E5E", "W+ c #DB5555", "X+ c #6C4C4C", "Y+ c #7D7979", "Z+ c #7B5C5C", "`+ c #F77171", " @ c #9D6565", ".@ c #8F8484", "+@ c #CFCDCD", "@@ c #ECECEC", "#@ c #E3E3E3", "$@ c #D3D3D3", "%@ c #756969", "&@ c #784545", "*@ c #9B2F2F", "=@ c #562D2D", "-@ c #3A3030", ";@ c #4D2C2C", ">@ c #CE4848", ",@ c #FF5656", "'@ c #FF5858", ")@ c #FF5757", "!@ c #FF5454", "~@ c #D54B4B", "{@ c #693737", "]@ c #493C3C", "^@ c #514545", "/@ c #FF6A6A", "(@ c #FF7373", "_@ c #FF7575", ":@ c #FF7070", "<@ c #D85353", "[@ c #8C6D6D", "}@ c #C4C2C2", "|@ c #C8C8C8", "1@ c #A2A0A0", "2@ c #675D5D", "3@ c #5B4141", "4@ c #504646", "5@ c #666262", "6@ c #5E3939", "7@ c #E64E4E", "8@ c #FF5555", "9@ c #FF5353", "0@ c #FF5252", "a@ c #E74A4A", "b@ c #683030", "c@ c #463B3B", "d@ c #613F3F", "e@ c #DC5656", "f@ c #520000", "g@ c #8B6767", "h@ c #D8D8D8", "i@ c #E9E9E9", "j@ c #151515", "k@ c #BCBCBC", "l@ c #A1A0A0", "m@ c #7F7D7D", "n@ c #644040", "o@ c #5A0000", "p@ c #7F0000", "q@ c #FF5151", "r@ c #790000", "s@ c #420000", "t@ c #523232", "u@ c #615D5D", "v@ c #713939", "w@ c #F45757", "x@ c #600000", "y@ c #905A5A", "z@ c #847979", "A@ c #C7C5C5", "B@ c #E4E4E4", "C@ c #D7D7D7", "D@ c #C7C7C7", "E@ c #B7B7B7", "F@ c #A9A9A9", "G@ c #9E9E9E", "H@ c #898787", "I@ c #624343", "J@ c #CB4B4B", "K@ c #EC4F4F", "L@ c #FF5050", "M@ c #E44747", "N@ c #642C2C", "O@ c #443838", "P@ c #593939", "Q@ c #D14B4B", "R@ c #FF5A5A", "S@ c #FF5959", "T@ c #E46666", "U@ c #866A6A", "V@ c #B4B2B2", "W@ c #DEDEDE", "X@ c #C3C3C3", "Y@ c #ABABAB", "Z@ c #969494", "`@ c #605555", " # c #624242", ".# c #6F3838", "+# c #CD4747", "@# c #E14949", "## c #C24141", "$# c #605C5C", "%# c #483D3D", "&# c #6D3535", "*# c #EE5151", "=# c #935D5D", "-# c #897E7E", ";# c #CCCBCB", "># c #C6C6C6", ",# c #BBBBBB", "'# c #AFAFAF", ")# c #999898", "!# c #848282", "~# c #574D4D", "{# c #5E3F3F", "]# c #5F3B3B", "^# c #573838", "/# c #493E3E", "(# c #625E5E", "_# c #5A3A3A", ":# c #D04A4A", "<# c #7B0000", "[# c #F66969", "}# c #CC6565", "|# c #887070", "1# c #C4C3C3", "2# c #CBCBCB", "3# c #C1C1C1", "4# c #A7A7A7", "5# c #919090", "6# c #878585", "7# c #828080", "8# c #7E7C7C", "9# c #727070", "0# c #4D4141", "a# c #703838", "b# c #FC5151", "c# c #F25353", "d# c #E44D4D", "e# c #4D0000", "f# c #A86B6B", "g# c #745555", "h# c #7B7171", "i# c #DFDFDF", "j# c #DADADA", "k# c #D0D0D0", "l# c #B9B9B9", "m# c #ACACAC", "n# c #A2A2A2", "o# c #9B9B9B", "p# c #949494", "q# c #7B7979", "r# c #D65050", "s# c #FF5B5B", "t# c #E84B4B", "u# c #D34C4C", "v# c #945757", "w# c #5B3535", "x# c #5D3D3D", "y# c #5A4D4D", "z# c #635C5C", "A# c #B2B2B2", "B# c #7D4646", "C# c #F35B5B", "D# c #5F0000", "E# c #540000", "F# c #C24848", "G# c #663131", "H# c #484040", "I# c #888787", "J# c #979696", "K# c #D9D9D9", "L# c #E0E0E0", "M# c #D6D6D6", "N# c #C2C2C2", "O# c #785D5D", "P# c #D56363", "Q# c #DC5B5B", "R# c #763F3F", "S# c #623E3E", "T# c #593C3C", "U# c #4B4141", "V# c #6F6D6D", "W# c #7B7A7A", "X# c #818080", "Y# c #929292", "Z# c #AAAAAA", "`# c #BABABA", " $ c #CACACA", ".$ c #D2D2D2", "+$ c #B1AFAF", "@$ c #7B6A6A", "#$ c #A36D6D", "$$ c #734D4D", "%$ c #594E4E", "&$ c #797676", "*$ c #817F7F", "=$ c #8D8D8D", "-$ c #939393", ";$ c #999999", ">$ c #A0A0A0", ",$ c #B4B4B4", "'$ c #EAEAEA", ")$ c #C0BFBF", "!$ c #827B7B", "~$ c #736767", "{$ c #666060", "]$ c #969696", "^$ c #979797", "/$ c #A1A1A1", "($ c #CDCDCD", "_$ c #BCBBBB", ":$ c #A3A3A3", "<$ c #B1B1B1", "[$ c #B6B6B6", "}$ c #C4C4C4", "|$ c #CECECE", "1$ c #BFBFBF", "2$ c #CFCFCF", "3$ c #B3B3B3", "4$ c #A4A4A4", "5$ c #A8A8A8", "6$ c #ADADAD", "7$ c #B0B0B0", "8$ c #303030", "9$ c #313131", "0$ c #2F2F2F", "a$ c #2E2E2E", "b$ c #2D2D2D", "c$ c #2C2C2C", " ", " ", " . . . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . . . . . ", " . @ @ @ . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . # . # . ", " . @ . @ . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . . # . . ", " . @ @ @ . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . # . # . ", " . . . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . . . . . ", " @ @ @ . . @ . . @ . . $ . . @ . . @ . @ . . @ @ . . @ . . @ . . @ . . @ . . . . ", " . . . . . . . . . . % & . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", " . # # # # # # * * * = = = = * * * # # # # # # # . # # # # # # . # # # # # # # . ", " . # # # # * * = - ; > > , ' = = * * # # # # # # . # # # # # # . # # # . # # # . ", " . # # * * = = ) ! ~ { ] ^ / - ) = * * # # # # # # # # # # # # # # # # . # # # . ", " . # * * = = ( _ : < [ } | 1 2 ' ( = * # # # # # # # # # # # # # # # # # # # # . ", " . # * = = ( ' 3 4 5 6 7 8 9 0 a ' ) = * # # # # . # # # # # # . # # # # # # # . ", " . * * = ) - b c d e f g h i j 0 2 - ) = * # # # . # # # # # # . # # # . # # # . ", " . * = ) - k l m n o p q r s t u v _ ( = * * # # # # # # # # # # # # # . # # # . ", " . * = ( ' 2 w x y y z A B C D E i 0 k ( = * * # # # # # # # # # # # # # # # # . ", " . * = ( _ a F G H I J K L M N O P Q R k ( = = * . # # # # # # . # # # # # # # . ", " . = ) - a S T U V W X Y Z ` I ...+.@.#.k ( ) = . * # # # # # . # # # . # # # . ", " . = ) k $.%.&.*.=.-.;.>.,.'.). .V !.~.{.].^._ ( ) = = * * * * # # # # . # # # . ", " . = ( _ 0 / /.(._.:.<.[.}.|.1.).=.2.3.+.4.5.6.^._ ( ) = = = = = * * * # # # # . ", " . = ( 2 v ^.7.8.9.0.a.b.c.d.e.e.f.g.h.i.j.k.l.m.. 3 2 _ ! n., . = = * * # # # . ", " . = - a o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.. I.J.K.L.M.N.. ' ) = . * # # . ", " . = - a o.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+*.++o o @+#+$+i %+&+*+=+$.' ( . = * # . ", " . = ( 2 v -+;+>+,+'+)+!+~+{+]+^+/+u.(+_+z :+V H V <+[+}+|+1+2+3+4+#.k ( = * * . ", " . = ( _ 0 5+6+7+8+9+0+|.~+a+b+c+d+e+f+g+_+h+i+j+. k+l+m+n+g g . o+o.p+' ( = * . ", " . = ) k #.v q+;+r+s+t+g+V.u+v+w+x+y+W.x.z+d.A+d.. L B+C+D+E+F+. G+H+I+. - ) * . ", " . = ) - 2 $.j J+K+L+M+N+O+P+Q+R+S+T+U+U+U+{+V+W+X+Y+Z+`+).I =. @.@+@j . k ) = . ", " . * = ( k a @@#@$@r.%@&@*@=@-@;@>@,@'@)@,@!@~@{@]@^@)+/@(@_@:@<@[@}@q+v 2 - = . ", " . * = ) ' _ 0 -+J+|@1@2@3@4@5@6@7@,@8@9@0@a@b@c@. d@e@z+d.|.g+f@g@8+h@i@#.' ) . ", " . . = ) . j@$.5+. . k@l@. . m@n@o@p@9@q@r@s@t@u@. v@w@W.W.W.x.x@y@z@A@. 0 _ ( . ", " . * = ) ( ' p+o.B@C@D@E@F@G@H@I@J@K@0@L@M@N@O@u@P@Q@R@R@S@R@{+y.T@U@V@. @@a - . ", " . * = ) ( - 2 R i@W@P.X@E@Y@Z@`@ #.#+#@###t@$#%#&#*#'@)@8@8@'@W.z+=#-#;#j $.' . ", " . * = ) ( - _ p+v p.J+P.>#,#'#)#!#~#{#]#^#/#(#_#:#)@)@!@0@0@!@<#[#}#|#1#B@I+_ . ", " . * = = ( - k 2 #.o.p.W@;+2#3#@ 4#5#6#7#8#9#0#a#T+S@,@9@b#c#d#e#f#g#h#. i#@@a . ", " . * = = ) - ' k 2 #.I+i@H+j#k#>+l#m#n#o#p#q#I@r#s#S@!@t#u#v#w#x#y#z#s.. 6+i@#.. ", " . . = = . j@- - . . a $.. . W@$@. . A#F@. . B#C#D#E#F#G#. . H#. I#J#A#|@K#j $.. ", " . * = = ) ( - - - - ' k p+0 i@L#M#7+N#l#1@O#P#Q#R#S#T#U#V#W#X#Y#G@Z#`# $j#j $.. ", " . * = = ) ( - ( ( ) ) ( ' 2 R 5+#@6+.$ $+$@$#$$$%$&$*$X#=$-$;$>$F@,$3#. W@'$#.. ", " . * = = ) ( ( ( ( ) = ) ) - _ #.v -+L#h@)$!$~${$6#]$]$^$+ /$4#'#E@3#($. O.v 2 . ", " . * . . ) ( . . ) ) . . = ) . . a R . . ;+_$. . :$n#. . Y@<$. . |@P.. . @@#.k . ", " . * = = ) ( ( ( ) = = * * = = ( ' 2 R '$i#P.>+l#A#'#<$[$k@}$2#.$K#i#p.@@$._ - . ", " . * = = ) ( ( ( ) = = * * * = = ) ' a I+O.j#|$>+1$1$N#|@2$M#J+H+-+@@0 p+k - ) . ", " . * = = ) ( ( ( ) = = * # # * * = ( k #.5+H+K#.$2$2$$@K#i#O.'$v R p+_ ' ( ) = . ", " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", " @ @ ,$3$3$A#A#A#3$3$,$,$@ @ @ @ ,$3$A#'#m#4#:$/$>$n#4$5$Y@6$'#7$<$A#8$3$,$,$@ 9$ ", " @ 9$8$8$8$8$8$8$8$8$8$9$9$9$9$9$9$8$8$0$0$a$b$c$c$b$b$a$0$0$8$8$8$8$8$,$9$9$9$9$ ", " "}; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/speed0.xpm��������������������������������������������������������0000644�0001750�0001750�00000001370�12214432632�015461� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 2 1", " c None", ". c #210839CE7BDE", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . . ", " . .. ", " . ... ", " . .... ", " . ... ", " . .. ", " . . ", " ", " ", " ", " ", " ", " ", " ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/speed1.xpm��������������������������������������������������������0000644�0001750�0001750�00000001370�12214432632�015462� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 2 1", " c None", ". c #210839CE7BDE", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . .. . ", " . .. .. ", " . .. ... ", " . .. .... ", " . .. ... ", " . .. .. ", " . .. . ", " ", " ", " ", " ", " ", " ", " ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/ergonomic.xpm�����������������������������������������������������0000644�0001750�0001750�00000007402�12214432632�016265� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * ergonomic_xpm[] = { "48 48 86 1", " c None", ". c #2D2D2D", "+ c #FFFFFF", "@ c #505075", "# c #000000", "$ c #727272", "% c #151515", "& c #1E1E1E", "* c #040404", "= c #6D6D6D", "- c #0E0E0E", "; c #FDFDFD", "> c #1B1B1B", ", c #6C6C6C", "' c #060606", ") c #6A6A6A", "! c #0B0B0B", "~ c #181818", "{ c #111111", "] c #090909", "^ c #686868", "/ c #0A0A0A", "( c #161616", "_ c #CCCCCC", ": c #CBCBCB", "< c #CACACA", "[ c #C8C8C8", "} c #C7C7C7", "| c #C5C5C5", "1 c #C1C1C1", "2 c #BFBFBF", "3 c #C0C0C0", "4 c #D2D2D2", "5 c #737373", "6 c #F5F5F5", "7 c #F3F3F3", "8 c #F2F2F2", "9 c #F1F1F1", "0 c #EFEFEF", "a c #EEEEEE", "b c #EDEDED", "c c #ECECEC", "d c #EAEAEA", "e c #E9E9E9", "f c #E8E8E8", "g c #E6E6E6", "h c #E5E5E5", "i c #E4E4E4", "j c #E3E3E3", "k c #E1E1E1", "l c #E0E0E0", "m c #DFDFDF", "n c #DDDDDD", "o c #DCDCDC", "p c #DBDBDB", "q c #DADADA", "r c #F0F0F0", "s c #E7E7E7", "t c #E2E2E2", "u c #DEDEDE", "v c #EBEBEB", "w c #171717", "x c #FEFEFE", "y c #B3B3B3", "z c #0C0C0C", "A c #868686", "B c #D4D4D4", "C c #A7A7A7", "D c #D6D6D6", "E c #747474", "F c #555577", "G c #3C3C3C", "H c #D6D6D5", "I c #9A9A9A", "J c #C2C2C3", "K c #808080", "L c #424242", "M c #2F2E3A", "N c #414141", "O c #3F3F3F", "P c #3E3E3E", "Q c #5C5C62", "R c #7C7C7C", "S c #3B3B3B", "T c #A2A2A2", "U c #1D1D1D", "...............................................+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".#################$%.#&*@@@@@@@@@@@@@@@@@@@@@@@+", ".#################=-;#;>@@@@@@@@@@@@@@@@@@@@@@@+", ".#################,'&;##@@@@@@@@@@@@@@@@@@@@@@@+", ".#################)!;~;#@@@@@@@@@@@@@@@@@@@@@@@+", ".{{{{{{{{{{{{{{{{]^&*#/(@@@@@@@@@@@@@@@@@@@@@@@+", ".___:::<<[[[}}}||123||45@@@@@@@@@@@@@@@@@@@@@@@+", ".67890abcdefghijklmnopq(@@@@@@@@@@@@@@@@@@@@@@@+", ".789rabcdefshijtlmuopqq~@@@@@@@@@@@@@@@@@@@@@@@+", ".89r0bcvefsgijtlmunpqqq~@@@@@@@@@@@@@@@@@@@@@@@+", ".9r0bcvdfsghjtkmunoqqqq~@@@@@@@@@@@@@@@@@@@@@@@+", ".r0acvdesghjtklunoqqqqqw@@@@@@@@@@@@@@@@@@@@@@@+", ".0abvdesghitklmnopqqqqqw@@@@@@@@@@@@@@@@@@@@@@@+", ".axxxxxxxxxxxmnopqqqqqq(@@@@@@@@@@@@@@@@@@@@@@@+", ".bxyyyyyyyyy^uopqqqqqqqw@@@@@@@@@@@@@@@@@@@@@@@+", ".cxy#yyy#y#y^npqqqqqqqqw@@@@@@@@@@@@@@@@@@@@@@@+", ".vxy#y#y#y#y^oqqqqqqqqq'@@@@@@@@@@@@@@@@@@@@@@@+", ".dxyyyyyyyyy^qqqqqqqqqqz@@@@@@@@@@@@@@@@@@@@@@@+", ".ex^^^^^^^^^^qqqqqqqqqqA@@@@@@@@@@@@@@@@@@@@@@@+", ".BBBBBBBBBBBBBBBBCCDDDAA@@@@@@@@@@@@@@@@@@@@@@@+", ".AAAAAAAAAAAAAAxxE4AAxxx@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@x#xFxxx#x@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@x#xx#x#x@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@x#x#x#x@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@xxx##x#x@@@@@@@@@@@@@@@@@@@@@@@+", ".AAAAAAAAAAAAAAAx####x#x@@@@################@@@+", ".@@@@@@@@@@@@@@xxxxxxx#x@@@#++++++++++++++++#@@+", ".AAAAAAAAAAAAAAx#######x@@#++++++++++++++G+++#@+", ".@@@@@@@@@@@@@@xxxxxxxxx@@#++GG+G+G+G+G+GGG++#@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@#++G+++G++G+G++G+++#@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@#++G++G+G++G+++G+++#@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@#++++++++++++++++#@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@####+++#########@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@++#@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@++#@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+#@@@@@@@@@@@@@@+", ".##############################@@@@@@@@@@@@@@@@+", ".##+#+#++####+#+#++####+#+#++##@@@@@@@@@@@@@@@@+", ".##############################@@@@@@@@@@@@@@@@+", ".HIJJJJKKILHIJJJJKKILHIJJJJKKIL@@@@@@@@@@@@@@@@+", ".HIJMMMMKINHIJMMMMKINHIJMMMMKIN@@@@@@@@@@@@@@@@+", ".HIJMMMMKIOHIJMMMMKIOHIJMMMMKIO@@@@@@@@@@@@@@@@+", ".HIJJKKKKIPHIJJKKKKIPHIJJKKKKIP@@@@@@@@@@@@@@@@+", ".HIQRRRQQIGHIQRRRQQIGHIQRRRQQIG@@@@@@@@@@@@@@@@+", ".HIIIIIIIISHIIIIIIIISHIIIIIIIIS@@@@@@@@@@@@@@@@+", ".TSSSSSSSSUTSSSSSSSSUTSSSSSSSSU@@@@@@@@@@@@@@@@+", "++++++++++++++++++++++++++++++++++++++++++++++++"}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/smooth.xpm��������������������������������������������������������0000644�0001750�0001750�00000007011�12214432632�015610� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 104 2", " c #318C5AD60842", ". c #318C63180842", "X c #39CE5AD60842", "o c #4210631818C6", "O c #18C6294A0842", "+ c #18C6294A0000", "@ c #18C6318C0000", "# c #210839CE0000", "$ c #421052941084", "% c #6B5A739C294A", "& c #63187BDE2108", "* c #5AD67BDE18C6", "= c #52946B5A2108", "- c #4A526B5A2108", "; c #4A5263181084", ": c #210842100000", "> c #18C639CE0000", ", c #318C63180000", "< c #42106B5A0842", "1 c #318C5AD60000", "2 c #294A52940842", "3 c #39CE63180000", "4 c #39CE52941084", "5 c #2108318C0000", "6 c #318C42100842", "7 c #42105AD618C6", "8 c #5AD6739C294A", "9 c #6B5A7BDE318C", "0 c #4A526B5A1084", "q c #4A526B5A0842", "w c #42106B5A0000", "e c #4A52739C0842", "r c #4A52739C1084", "t c #39CE63181084", "y c #294A4A520842", "u c #318C5AD61084", "i c #39CE63180842", "p c #421063181084", "a c #294A39CE1084", "s c #52946B5A294A", "d c #5AD66B5A2108", "f c #5AD6739C18C6", "g c #52946B5A18C6", "h c #318C52940842", "j c #318C4A521084", "k c #39CE5AD618C6", "l c #39CE6B5A0842", "z c #39CE6B5A0000", "x c #42106B5A1084", "c c #294A52940000", "v c #39CE5AD61084", "b c #5294739C294A", "n c #52947BDE18C6", "m c #4A526B5A18C6", "M c #5AD6739C1084", "N c #5AD6739C0842", "B c #318C4A520842", "V c #294A5AD60000", "C c #5294739C18C6", "Z c #5AD67BDE0842", "A c #294A4A520000", "S c #52946B5A0842", "D c #39CE52940000", "F c #318C52940000", "G c #210852940000", "H c #21084A520000", "J c #52946B5A0000", "K c #5294739C0842", "L c #318C4A5218C6", "P c #42105AD60000", "I c #18C642100000", "U c #4A526B5A0000", "Y c #42105AD61084", "T c #294A42100842", "R c #421063180000", "E c #4210529418C6", "W c #294A39CE0842", "Q c #39CE529418C6", "! c #42106B5A18C6", "~ c #4A5263180842", "^ c #4A52739C0000", "/ c #4A52631818C6", "( c #18C639CE0842", ") c #421063180842", "_ c #5294739C0000", "` c #294A42101084", "' c #2108294A1084", "] c #2108318C0842", "[ c #39CE5AD60000", "{ c #52946B5A1084", "} c #18C621080842", "| c #108410840000", " . c #18C618C60000", ".. c #39CE4A520842", "X. c #5AD67BDE0000", "o. c #5AD6739C0000", "O. c #318C42101084", "+. c #52947BDE0000", "@. c #108418C60842", "#. c #084208420842", "$. c #084208420000", "%. c #2108318C1084", "&. c #084218C60000", "*. c #108421080842", " . . X . o O + @ # $ % & * = - ; : > > ", ", < 1 2 1 1 3 4 + 5 6 7 8 9 & 0 0 q w e r t y ", "1 w 1 u , i p @ a 7 s d f g h j k . l z w < x ", ". i . c . x v 7 b n m M N q j B i , . z z l ", "1 V t < & & * n C C 0 N Z X h B A . , , , l ", "c c 2 v y p C S S g k h D F F v u . , , ", "G H 2 G 1 t 2 o 0 S J K 4 L B D P 0 p , , ", "G I y G 1 p 0 U J U K Y j 6 4 p w l < i , , ", "y T : G V - 0 < R U q M E W W 2 , z z l , , 1 ", "Q # : G ! x q R ~ U ^ ~ 5 @ # F 3 w w w w l l ", "/ # ( G o m q U ) R q _ ; @ @ : X < w w w 3 3 3 ", "m ( ( o m 0 ) 3 ~ U U U 4 @ > A 1 w w z z z , l ", "; ` W m ) i X ~ R ) U ~ ' O ] B i < w l w , . . ", "p ` Q o i i [ ) R R R { } | } ] ` y 4 o 0 C C r ", "X Y o [ . 3 ~ R 3 q q 4 | .+ 6 ..; C C Z N X.o.", "[ X [ i 1 [ P 3 R U 0 O } O.; M K _ _ ^ _ _ _ Z ", "3 1 1 3 1 ) 3 ) < U 4 T Y K +.K ^ _ ^ _ _ N _ Z ", "3 h X [ q R R U U U Y q K e ^ ^ ^ U _ _ _ _ X.M ", "X 1 1 ) ~ ) R R ) [ q U ^ U q U K _ ^ _ _ +.Z 4 ", "3 1 i 0 i 3 i 3 F < w < q U K S K U ^ ^ _ 0 6 @.", "[ 1 3 ~ w 3 i h i w ^ U S K U U ^ _ _ K Z a @.#.", "3 [ 0 R R < [ ) w U _ o.K U U U ^ K _ Z O.#.$.$.", "3 q q 3 U R R U U _ N J U ^ K U K _ Y %.#.#.#.| ", "R e U w R U U _ N U U U ^ ^ U K S $ } | @.@.&.*."}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/newstyle.xpm������������������������������������������������������0000644�0001750�0001750�00000003152�12214432632�016153� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "39 33 8 1", " c #739C739C739C", ". c #4A524A524A52", "X c #000000000000", "o c #294A294A294A", "O c #084208420842", "+ c #FFFFFFFFFFFF", "@ c #AD6AAD6AAD6A", "# c #529452945294", " .X X", "oooooooooooooooOX ooooooooooooooooooooX", "oooooooooooooooOX ooooooooooooooooooooX", "oooooooooooooooOX ooooooooooooooooooooX", "oooooooooooooooOX ooooooooooooooooooooO", "oooooooooooooooOX ooooooooooooooooooooO", "oooooooooooooooOX ooooo++oooooo++oooooO", "oooooooooooooooOX ooooo+++oooo+++oooooO", "oooooooooooooooOX oooooo+++oo+++ooooooO", "oooooooooooooooOX ooooooo++++++oooooooO", "oooooooooooooooOX oooooooo++++ooooooooO", "oooooooooooooooOX oooooooo++++ooooooooO", "oooooooooooooooOX ooooooo++++++oooooooO", "oooooooooooooooOX oooooo+++oo+++ooooooO", "oooooooooooooooOX ooooo+++oooo+++oooooO", "oooooooooooooooOX ooooo++oooooo++oooooO", "oooooooooooooooOX ooooooooooooooooooooO", "oooooooooooooooOX ooooooooooooooooooooO", "oooooooooooooooOX ooooooooooooooooooooO", "oooooooooooooooOX ooooooooooooooooooooO", "OOOOOOOOOOOOOOOXX OOOOOOOOOOOOOOOOOOOOX", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X", "###################################+@@X", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@+@@X", "++++++++++++++++++++++++++++++++++@+@@X", "++++++++++++++++++++++++++++++++++@+@@X", "++++++++++++++++++++++++++++++++++@+@@X", "++++++++++++++++++++++++++++++++++@+@@X", "++++++++++++++++++++++++++++++++++@+@@X"}; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/mousesettings.xpm�������������������������������������������������0000644�0001750�0001750�00000023515�12214432632�017217� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * mousesettings_xpm[] = { "48 48 325 2", " c None", ". c #2C2C2C", "+ c #FEFEFE", "@ c #8F8B8F", "# c #908C90", "$ c #908D90", "% c #918D91", "& c #928E92", "* c #938F93", "= c #949094", "- c #949194", "; c #A6A0A6", "> c #C0BEC0", ", c #9A979A", "' c #807B80", ") c #817D81", "! c #999599", "~ c #9A969A", "{ c #9B979B", "] c #9C989C", "^ c #9D999D", "/ c #9E9A9E", "( c #989498", "_ c #979397", ": c #969296", "< c #959195", "[ c #8F8C8F", "} c #908E90", "| c #918E91", "1 c #928F92", "2 c #939093", "3 c #949294", "4 c #959295", "5 c #A6A3A6", "6 c #C3C3C3", "7 c #8C8A8C", "8 c #7E7A7E", "9 c #979297", "0 c #9B989B", "a c #9C999C", "b c #9D9A9D", "c c #9E9B9E", "d c #999699", "e c #989598", "f c #979497", "g c #969396", "h c #898389", "i c #9B959B", "j c #A49EA4", "k c #A39DA3", "l c #8F8F8F", "m c #787578", "n c #646064", "o c #837E83", "p c #9D989D", "q c #B7B4B7", "r c #C0BDC0", "s c #C9C8C9", "t c #CFCECF", "u c #C6C6C6", "v c #8F898F", "w c #A39EA3", "x c #BAB8BA", "y c #BBBBBB", "z c #B1B1B1", "A c #B5B4B5", "B c #C8C6C8", "C c #E0E0E0", "D c #A4A4A4", "E c #D4D4D4", "F c #D8D8D8", "G c #DDDDDD", "H c #DBDBDB", "I c #535053", "J c #5B585B", "K c #7A747A", "L c #989298", "M c #918F91", "N c #959395", "O c #A19DA1", "P c #EFEFEF", "Q c #EEEEEE", "R c #ECECEC", "S c #EBEBEB", "T c #E1E1E1", "U c #D2D2D2", "V c #D7D7D7", "W c #848384", "X c #353235", "Y c #524D52", "Z c #999799", "` c #A19BA1", " . c #F4F4F4", ".. c #FAFAFA", "+. c #F1F1F1", "@. c #BEBEBE", "#. c #9B9B9B", "$. c #CECECE", "%. c #DADADA", "&. c #575557", "*. c #353035", "=. c #605B60", "-. c #8A868A", ";. c #958F95", ">. c #BDBDBD", ",. c #FFFFFF", "'. c #FBFBFB", "). c #F7F7F7", "!. c #F2F2F2", "~. c #F5F5F5", "{. c #9D9D9D", "]. c #C9C9C9", "^. c #CFCFCF", "/. c #A3A1A3", "(. c #2A292A", "_. c #413D41", ":. c #6D696D", "<. c #DEDDDE", "[. c #CBCBCB", "}. c #D1D1D1", "|. c #D5D5D5", "1. c #787778", "2. c #272427", "3. c #4F4A4F", "4. c #7D787D", "5. c #9E989E", "6. c #A09BA0", "7. c #F4F2F4", "8. c #ACACAC", "9. c #C4C4C4", "0. c #C8C8C8", "a. c #CCCCCC", "b. c #322F32", "c. c #5D585D", "d. c #C9C4C9", "e. c #F8F8F8", "f. c #E5E5E5", "g. c #A7A7A7", "h. c #B7B7B7", "i. c #818181", "j. c #232023", "k. c #403D40", "l. c #6F6A6F", "m. c #C4C0C4", "n. c #B8B8B8", "o. c #C0C0C0", "p. c #BABABA", "q. c #7E7D7E", "r. c #3E3D3E", "s. c #2F2A2F", "t. c #575257", "u. c #BBB7BB", "v. c #878787", "w. c #727272", "x. c #646364", "y. c #242124", "z. c #413E41", "A. c #757075", "B. c #9D979D", "C. c #E3E3E3", "D. c #AFAFAF", "E. c #848484", "F. c #898789", "G. c #201D20", "H. c #333033", "I. c #615D61", "J. c #928C92", "K. c #ECEBEC", "L. c #8A8A8A", "M. c #A6A6A6", "N. c #C1C1C1", "O. c #7B7B7B", "P. c #7E7E7E", "Q. c #919191", "R. c #363536", "S. c #292629", "T. c #4D494D", "U. c #9F9B9F", "V. c #D7D4D7", "W. c #E8E8E8", "X. c #B2B2B2", "Y. c #A1A1A1", "Z. c #787878", "`. c #7D7D7D", " + c #ABABAB", ".+ c #A0A0A0", "++ c #636163", "@+ c #3E3B3E", "#+ c #A09CA0", "$+ c #989698", "%+ c #9D9B9D", "&+ c #9A9A9A", "*+ c #838383", "=+ c #A3A3A3", "-+ c #929292", ";+ c #777577", ">+ c #1B191B", ",+ c #948F94", "'+ c #A09DA0", ")+ c #9F9C9F", "!+ c #989898", "~+ c #E9E8E9", "{+ c #6A6A6A", "]+ c #B4B4B4", "^+ c #292729", "/+ c #2C292C", "(+ c #555255", "_+ c #898489", ":+ c #E0DDE0", "<+ c #A9A9A9", "[+ c #242324", "}+ c #474347", "|+ c #C8C3C8", "1+ c #5A5A5A", "2+ c #7B7A7B", "3+ c #1D191D", "4+ c #3A363A", "5+ c #6C676C", "6+ c #9A949A", "7+ c #A29EA2", "8+ c #9F9D9F", "9+ c #A19EA1", "0+ c #DEDEDE", "a+ c #1B181B", "b+ c #585558", "c+ c #8C868C", "d+ c #EEECEE", "e+ c #B5B5B5", "f+ c #262326", "g+ c #7B777B", "h+ c #A09AA0", "i+ c #8E8A8E", "j+ c #A39FA3", "k+ c #B2AFB2", "l+ c #E6E6E6", "m+ c #5B5B5B", "n+ c #494949", "o+ c #868486", "p+ c #383338", "q+ c #676367", "r+ c #979197", "s+ c #606060", "t+ c #444444", "u+ c #323032", "v+ c #2C272C", "w+ c #555055", "x+ c #C6C3C6", "y+ c #636363", "z+ c #535353", "A+ c #414041", "B+ c #444044", "C+ c #7A757A", "D+ c #A29FA2", "E+ c #EBE9EB", "F+ c #757575", "G+ c #9E9E9E", "H+ c #6A666A", "I+ c #A6A1A6", "J+ c #F2F1F2", "K+ c #707070", "L+ c #2F2C2F", "M+ c #D4D1D4", "N+ c #504C50", "O+ c #868186", "P+ c #464346", "Q+ c #E6E5E6", "R+ c #979797", "S+ c #959595", "T+ c #4C4A4C", "U+ c #211E21", "V+ c #3D3A3D", "W+ c #726D72", "X+ c #B8B4B8", "Y+ c #6C6A6C", "Z+ c #1E1B1E", "`+ c #363336", " @ c #696469", ".@ c #DDDADD", "+@ c #949494", "@@ c #302D30", "#@ c #948E94", "$@ c #8E8E8E", "%@ c #2D2A2D", "&@ c #8E898E", "*@ c #D2CFD2", "=@ c #898989", "-@ c #8C8C8C", ";@ c #524F52", ">@ c #E8E6E8", ",@ c #868086", "'@ c #BDB8BD", ")@ c #4A464A", "!@ c #837D83", "~@ c #E5E1E5", "{@ c #808080", "]@ c #161516", "^@ c #494649", "/@ c #868686", "(@ c #747474", "_@ c #7A7A7A", ":@ c #191819", "<@ c #C3C0C3", "[@ c #848084", "}@ c #646464", "|@ c #666666", "1@ c #807E80", "2@ c #2A272A", "3@ c #534F53", "4@ c #E9E9E9", "5@ c #666466", "6@ c #8F8A8F", "7@ c #6C6C6C", "8@ c #555555", "9@ c #3E3A3E", "0@ c #575757", "a@ c #5A585A", "b@ c #212021", "c@ c #B4B2B4", "d@ c #696969", "e@ c #7D7B7D", "f@ c #353335", "g@ c #ABA7AB", "h@ c #3B363B", "i@ c #434043", "j@ c #4C494C", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + ", ". @ @ # $ % & * * = - ; > , ' ) ! ! ~ { { ] ^ / / ^ ^ ] { { ~ ! ! ( _ _ : < - = * * & % $ # @ + ", ". [ [ $ } | 1 2 2 - 3 4 5 6 7 8 9 0 , 0 0 a b b c b b a 0 0 , d d e f f g 4 3 - 2 2 1 | } $ [ + ", ". [ # % | & * 2 = < 4 : ; > , ' ) h i 0 ] ^ / j j k { { { ] { ~ ~ ! ( f _ : 4 < = 2 * & | % # + ", ". $ % & 1 * = - < : g _ ( e 6 l m n o p ^ q r s t u c h v i { { { ~ ! e ( _ g : < - = * 1 & % + ", ". | & * 2 = < 4 : _ f ( ! w x y z A B C D E E F G H y I J K L ] ] { ~ d ! ( f _ : 4 < = 2 * & + ", ". M 1 2 2 - 4 N g f f e O e E P Q R S T T U U E F G V W X Y 8 a a 0 , Z d e f f g N 4 - 2 2 1 + ", ". 1 * 2 = < : g _ ( ` ! T ..... .Q +.R @.#.$.$.U %.C u &.*.=.-.] ] { , ~ ! ( ( _ g : < = 2 * + ", ". * = - < : g _ _ ;.B S >.,.'.).!. .~.!.6 {.u ].^.U H %./.(._.:.;.{ ] { { ~ ! ! ( _ g : < - = + ", ". = < 4 : _ f _ w <.,.,.T ~. .!.P +.~. .+.T >.u [.}.|.%.s 1.2.3.4.5.^ ] ] { ~ ~ ! ( f _ : 4 < + ", ". = < 4 : _ f 6.7.,.,.,.,.>.,.'.+.!.~.~. .@.8.9.0.a.U |.^.z &.b.c.-.] ] ] { ~ ~ ! ( f _ : 4 < + ", ". < : g _ ( e d.,.,.,.,.,.F ,.,.P .+.).e.8.f.g.9.[.}.U ^.h.i.j.k.l.L ^ a ] { , ~ ! e ( _ g : + ", ". : g _ ( e d m.,.,.,.,.,.,.n.,.!.+.+...'.~.o.{.u 0.a.a.[.p.q.r.s.t.h b b ^ ] 0 { ~ d e ( _ g + ", ". _ f ( ! d ~ u.,.,.,.,.,.,.v.,.e.P . .....8.].[.u ].0.6 g.w.x.y.z.A.B.c / ^ a ] { ~ d ! ( f + ", ". _ f ( ! d ~ { ,.,.,.,.,.,.~.H ,. .!.~.'.'.Q C.D.].0.o.8.w.E.F.G.H.I.J./ / ^ a ] { ~ d ! ( f + ", ". ( e ! ~ , { ; K.,.,.,.,.,.,.L.,.~.P .).~.!.M.n.$.0.N.O.P.{.Q.R.S.T.o U.U./ b ^ ] { , ~ ! e + ", ". e d ~ { 0 ] ^ V.,.,.,.,.,.,.y W.,.!. . .~.Q V X.Y.u Z.`. +.+l ++G.@+A.p #+U./ b ^ ] 0 { ~ d + ", ". $+d , 0 0 a b %+,.,.,.,.,.,.,.&+,.,.e. .+.R C.p.g.i.*+D =+.+-+;+>+*.n ,+'+)+c %+b a 0 0 , d + ", ". d ~ { 0 ] ^ / c ,.,.,.,.,.,.,.!+P ,...!.Q ~+H {.{+!+]+8.D &+#.l ^+/+(+_+#+#+U.c / ^ ] 0 { ~ + ", ". , { ] a ^ / U.j :+,.,.,.,.,.,.^.N.,.'.).S u <+&+y u z +=+.+.+&+r.[+}+4.6.O #+)+U./ ^ a ] { + ", ". 0 ] ^ b / U.)+'+|+,.,.,.,.,.,.,.1+~+C.].>.u [.$.0.o.z 8.=+.+Y..+2+3+4+5+6+7+O '+)+U./ b ^ ] + ", ". 0 a b %+c )+8+'+9+,.,.~+G Q G %.0.$.0+0+C.C %.a.6 >.]+ +M.Y.Y.Y.Q.a+s.b+c+O 9+'+8+)+c %+b a + ", ". ] ^ / c U.#+'+O 7+d+,.,.,.,.,.,.,.e.Q S C.0.D 8.M.y e+8.M.Y.Y.g.g.++f+}+g+h+7+O '+#+U.c / ^ + ", ". i+/ c U.#+O 9+7+j+k+,.,.,.,.,.,.,. .R l+&+m+n+M.p.e+p.z <+.+.+M.g.o+G.p+q+r+7+7+9+O #+U.c / + ", ". i+^ / c U.#+'+O 7+6+,.,.,.,.,.,.,.+.R U s+t+n+M.C.>.p.X.<+.+Y.Y. +D u+v+w+_+7+O '+#+U.c / ^ + ", ". i+a b %+c )+8+'+9+j x+,.,.,.,.,.,.!.R %.y+z+D 0+l+=+p.X.<+Y..+D +<+A+y.B+C+6.'+8+)+c %+b a + ", ". i+] ^ b / U.)+'+O 7+D+,.,.,.,.,.,.~.R E+L.m+6 +.[.F+ +]+g.G+.+=+ + +q.j.p+H+L '+)+U./ b ^ ] + ", ". i+{ ] a ^ / U.)+#+O I+J+,.,.,.,.,.'.Q S >.K+]+H y D.n.X.M.#.G+=+ + +7 f+L+J v )+U./ ^ a ] { + ", ". i+~ { 0 ] ^ / c U.#+I+M+,.,.,.,.,.,. .R C o.^.|.$.9.>.X.M.!+&+=+<+<+{./+S.N+O+j / ^ ] 0 { ~ + ", ". i+d , 0 0 a b %+c )+'+{ ,.,.,.,.,.,.,.!.R W.T %.}.0.@.D.M.!+!+.+g. +=+R.y.P+4.` b a 0 0 , d + ", ". i+d ~ { 0 ] ^ b / U.#+I+Q+,.,.,.,.,.,.e.!.S l+%.U 0.>.D.M.R+S+{.D +g.T+U+V+W+B.^ ] 0 { ~ d + ", ". i+e ! ~ , { ] ^ b / U.)+X+,.,.,.,.,.,.,.).R ~+H }.[.N.X.g.R+Q.{.=+ +<+Y+Z+`+ @L ] { , ~ ! e + ", ". i+f ( ! d ~ { ] a ^ / c k .@,.,.,.,.,.,.,.P E+f.F $.9.e+M.S+l +@.+M.<+2+3+@@=.#@{ ~ d ! ( f + ", ". i+f ( ! d ~ { ] a ^ / c U.#+,.,.,.,.,.,.,.~.Q W.G |.].p.M.-+$@$@#..+M.E.a+%@b+&@~ ~ d ! ( f + ", ". i+g _ ( e d ~ { 0 ] ^ b / U.*@,.,.,.,.,.,...+.E+C E ].p.D $@=@-@-+G+M.o+[+S.;@h d d e ( _ g + ", ". i+: g _ ( e ! ~ , { ] a ^ / 6.>@,.,.,.,.,.'.!.S T V [.n.=+-@v.L.l !+=+v.y.S.3.,@e e ( _ g : + ", ". i+< 4 : _ f ( ! ~ ~ { ] ] ^ / '@,.,.,.,.,.,.~.R C.F [.n.Y.=@i.i.=@-@#.*+G.f+)@!@f f _ : 4 < + ", ". i+< 4 : _ f ( ! ~ ~ { ] ] ^ / b ~@,.,.,.,.,.~.R l+%.a.h..+=@{@O.i.v.R+E.]@f+^@' f f _ : 4 < + ", ". i+= - < : g _ ( ! ! ~ { { ] ^ b / ,.,.,.,.,.~.Q l+V [.]+G+/@`.(@_@/@Q.P.:@f+)@!@g g : < - = + ", ". i+* 2 = < : g _ ( ( ! ~ , { ] a a <@,.,.,.,.e.P l+%.a.n.{.E.Z.K+w.P.-@P.3+S.T.[@: : < = 2 * + ", ". i+1 2 2 - 4 N g f f e d Z , 0 a a h+~@,.,.,.'.!.W.%.a.p.{.i.F+}@|@O.=@1@>+2@3@h 4 4 - 2 2 1 + ", ". i+& * 2 = < 4 : _ f ( ! d ~ { ] ] ^ ] J+,.,.'. .4@%.a.n.G+{@w.1+y+Z.&+5@Z+@@c.6@< < = 2 * & + ", ". i+% & 1 * = - < : g _ ( e ! ~ { { ] ] I+e.,.,.!.4@%.a.h.&+O.7@8@m+w.o+%@y.9@:.L - = * 1 & % + ", ". i+# % | & * 2 = < 4 : _ f ( ! ~ ~ { ] 0 <@K.'. .4@H a.e++@_@}@0@}@a@f+b@`+J O+2 2 * & | % # + ", ". i+[ $ } | 1 2 2 - 3 4 g f f e d d , 0 0 a < c@+.W.%.[.z Q.P.d@y+i.]@U+b.t.' 2 2 2 1 | } $ [ + ", ". i+@ # $ % & * * = - < : _ _ ( ! ! ~ { { ] ^ 6+c B F 9.8.$@e@i.(@f@2.*.Y g+= = * * & % $ # @ + ", ". i+i+i+i+i+i+i+i+i+i+i+i+i+i+i+i+i+i+i+i+i+i+i+i+6@&@g@3 ^@P+z.h@i@j@=.g+i+i+i+i+i+i+i+i+i+i++ ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/paths.xpm���������������������������������������������������������0000644�0001750�0001750�00000046565�12214432632�015437� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * paths_xpm[] = { "48 48 936 2", " c None", ". c #2C2C2C", "+ c #FEFEFE", "@ c #8E8B8E", "# c #8F8B8F", "$ c #8F8C8F", "% c #928E92", "& c #918D91", "* c #928F92", "= c #938F93", "- c #949094", "; c #959195", "> c #969296", ", c #969396", "' c #979497", ") c #989598", "! c #999699", "~ c #9A969A", "{ c #9B979B", "] c #9C989C", "^ c #9C999C", "/ c #9E9A9E", "( c #9D999D", "_ c #908C90", ": c #8E8A8E", "< c #908D90", "[ c #939093", "} c #949194", "| c #959295", "1 c #979397", "2 c #989498", "3 c #999599", "4 c #9A979A", "5 c #9D9A9D", "6 c #9E9B9E", "7 c #908E90", "8 c #918E91", "9 c #888688", "0 c #6B6A6B", "a c #464646", "b c #343434", "c c #2E2E2E", "d c #484848", "e c #807E80", "f c #9B989B", "g c #9D9B9D", "h c #9F9B9F", "i c #6A686A", "j c #444444", "k c #454545", "l c #4B4B4B", "m c #515151", "n c #505050", "o c #333333", "p c #232323", "q c #606163", "r c #7F8186", "s c #8B888B", "t c #0A0A0A", "u c #525052", "v c #827E82", "w c #070704", "x c #1C1C13", "y c #595756", "z c #7E7C7E", "A c #7D7B7D", "B c #3C3C3C", "C c #414141", "D c #4D4D4D", "E c #575757", "F c #7C7C7C", "G c #545454", "H c #202020", "I c #8C898C", "J c #424242", "K c #9A9A9A", "L c #565656", "M c #5B595B", "N c #212116", "O c #8C8C5D", "P c #5A5A3B", "Q c #383825", "R c #625F62", "S c #777477", "T c #535253", "U c #353535", "V c #393939", "W c #3F3F3F", "X c #4A4A4A", "Y c #585858", "Z c #DDDDDD", "` c #ECECEC", " . c #9B9B9B", ".. c #636363", "+. c #3E3E3E", "@. c #9F9C9F", "#. c #8C8A8C", "$. c #4F4F4F", "%. c #FFFFFF", "&. c #F4F4F4", "*. c #8F8F8B", "=. c #81816D", "-. c #7C7C5C", ";. c #8E8E61", ">. c #525236", ",. c #4D4D3B", "'. c #444244", "). c #868286", "!. c #434143", "~. c #484648", "{. c #959395", "]. c #404040", "^. c #373737", "/. c #535353", "(. c #D9D9D9", "_. c #E4E4E4", ":. c #DBDBDB", "<. c #696969", "[. c #434343", "}. c #272727", "|. c #545354", "1. c #A09DA0", "2. c #8D8A8D", "3. c #F9F9F9", "4. c #E1E1E0", "5. c #BABAB5", "6. c #84847A", "7. c #967563", "8. c #837D57", "9. c #6C6C48", "0. c #38372F", "a. c #31302B", "b. c #74744D", "c. c #76754F", "d. c #776F4F", "e. c #705A4C", "f. c #262526", "g. c #575557", "h. c #323232", "i. c #363636", "j. c #3A3A3A", "k. c #3D3D3D", "l. c #D4D4D4", "m. c #7B7B7B", "n. c #525152", "o. c #2D2D23", "p. c #6D6D49", "q. c #21211A", "r. c #716F70", "s. c #7C797C", "t. c #4F4F4C", "u. c #FFFFF6", "v. c #FFFFFB", "w. c #FFFFFD", "x. c #FFFFFE", "y. c #FCFCFC", "z. c #F7F7F7", "A. c #CBC9C8", "B. c #83827D", "C. c #83836C", "D. c #7D7D5A", "E. c #88855B", "F. c #959463", "G. c #989865", "H. c #9B9A67", "I. c #9C9A67", "J. c #88885B", "K. c #474730", "L. c #626062", "M. c #949294", "N. c #474747", "O. c #313131", "P. c #888888", "Q. c #737373", "R. c #707070", "S. c #CDCDCD", "T. c #D5D5D5", "U. c #DEDEDE", "V. c #838383", "W. c #5C5B5C", "X. c #827F82", "Y. c #46462E", "Z. c #BABA7A", "`. c #58583A", " + c #353524", ".+ c #686858", "++ c #DFDFCE", "@+ c #F5F5E6", "#+ c #FFFFF2", "$+ c #FFFFF7", "%+ c #FFFFFC", "&+ c #F8F8F8", "*+ c #CFCFCF", "=+ c #959595", "-+ c #9D8C83", ";+ c #848065", ">+ c #888761", ",+ c #909061", "'+ c #959563", ")+ c #6B6B47", "!+ c #52504C", "~+ c #6B696B", "{+ c #2F2F2F", "]+ c #8C8C8C", "^+ c #BABABA", "/+ c #BFBFBF", "(+ c #C3C3C3", "_+ c #C9C9C9", ":+ c #CECECE", "<+ c #6C6A6C", "[+ c #A09CA0", "}+ c #838083", "|+ c #44442C", "1+ c #B6B676", "2+ c #B4B475", "3+ c #AFAF74", "4+ c #A8A776", "5+ c #A3A17F", "6+ c #BEBE9E", "7+ c #C8C8BA", "8+ c #FFFFEB", "9+ c #FFFFF1", "0+ c #FFFFFA", "a+ c #E8E8E8", "b+ c #B9B9B9", "c+ c #A0A097", "d+ c #818168", "e+ c #87875E", "f+ c #8E8E5E", "g+ c #929261", "h+ c #373724", "i+ c #7B787B", "j+ c #5E5D5E", "k+ c #383838", "l+ c #868686", "m+ c #B5B5B5", "n+ c #BDBDBD", "o+ c #C2C2C2", "p+ c #C6C6C6", "q+ c #CACACA", "r+ c #4C4C4C", "s+ c #626569", "t+ c #5A5852", "u+ c #7D7D50", "v+ c #B2B272", "w+ c #B0B070", "x+ c #AFAF6F", "y+ c #ADAC6E", "z+ c #A8A76C", "A+ c #A09F7B", "B+ c #BEBBA2", "C+ c #C2B7B3", "D+ c #EBE3DB", "E+ c #FFFFED", "F+ c #FFFFF9", "G+ c #EEEEEE", "H+ c #D5D5D3", "I+ c #8F8F82", "J+ c #858559", "K+ c #333322", "L+ c #5B5A5B", "M+ c #8D8D8D", "N+ c #A7A7A7", "O+ c #B1B1B1", "P+ c #B4B4B4", "Q+ c #B8B8B8", "R+ c #BCBCBC", "S+ c #C0C0C0", "T+ c #949494", "U+ c #868486", "V+ c #A19DA1", "W+ c #A19EA1", "X+ c #666366", "Y+ c #62623E", "Z+ c #ADAD6D", "`+ c #ACAC6C", " @ c #AAAA6A", ".@ c #A9A969", "+@ c #A7A769", "@@ c #A5A46A", "#@ c #A09E6B", "$@ c #9C9B72", "%@ c #979776", "&@ c #BFBFAA", "*@ c #F7F7E2", "=@ c #FCFCEA", "-@ c #B3B3B0", ";@ c #7D7D53", ">@ c #343324", ",@ c #7E7B7E", "'@ c #767476", ")@ c #777777", "!@ c #A6A6A6", "~@ c #B0B0B0", "{@ c #B2B2B2", "]@ c #B3B3B3", "^@ c #2D2D2D", "/@ c #A29EA2", "(@ c #A29FA2", "_@ c #666466", ":@ c #60603C", "<@ c #ABAB6B", "[@ c #A8A868", "}@ c #A7A767", "|@ c #A6A666", "1@ c #A5A565", "2@ c #A3A363", "3@ c #A2A262", "4@ c #9F9F61", "5@ c #9B9B62", "6@ c #919166", "7@ c #919076", "8@ c #C3C2A8", "9@ c #E3DEC3", "0@ c #FDFCE6", "a@ c #FFFFEE", "b@ c #FFFFF4", "c@ c #9C9C99", "d@ c #73734C", "e@ c #42422C", "f@ c #615E61", "g@ c #828082", "h@ c #757475", "i@ c #646464", "j@ c #A39FA3", "k@ c #A4A0A4", "l@ c #A2A0A2", "m@ c #817F81", "n@ c #545340", "o@ c #95955C", "p@ c #A4A464", "q@ c #A1A161", "r@ c #A0A060", "s@ c #9F9F5F", "t@ c #9E9E5E", "u@ c #9C9C5C", "v@ c #9B9B5B", "w@ c #99985C", "x@ c #94935A", "y@ c #928859", "z@ c #C4C3A4", "A@ c #F4F4DE", "B@ c #FFFFE7", "C@ c #767671", "D@ c #6A6A46", "E@ c #3C3C28", "F@ c #615F61", "G@ c #8A878A", "H@ c #727172", "I@ c #595859", "J@ c #717071", "K@ c #A5A1A5", "L@ c #A3A0A3", "M@ c #484748", "N@ c #7A7A4B", "O@ c #9A9A5A", "P@ c #999959", "Q@ c #979757", "R@ c #969656", "S@ c #959555", "T@ c #949454", "U@ c #858562", "V@ c #DDDDC6", "W@ c #FFFFD9", "X@ c #FDFDDC", "Y@ c #5F5F57", "Z@ c #606040", "`@ c #373729", " # c #625F65", ".# c #A4A1A4", "+# c #494749", "@# c #787848", "## c #9D9D5D", "$# c #989858", "%# c #939353", "&# c #929252", "*# c #909050", "=# c #938D6A", "-# c #CFCFB7", ";# c #FFFFCB", "># c #FAFACF", ",# c #57574A", "'# c #45452E", ")# c #41403F", "!# c #928E93", "~# c #A6A2A6", "{# c #A5A2A5", "]# c #676740", "^# c #9A9A5B", "/# c #919151", "(# c #8E8E4E", "_# c #8D8D4D", ":# c #8C8C4C", "<# c #8D8D54", "[# c #BEBDA3", "}# c #FFFFBB", "|# c #E6E6C3", "1# c #555543", "2# c #454445", "3# c #9A969B", "4# c #808091", "5# c #636590", "6# c #5B5AA7", "7# c #5A56B4", "8# c #5D5A9E", "9# c #737383", "0# c #9B999D", "a# c #947777", "b# c #8C7675", "c# c #A7A3A7", "d# c #2A292A", "e# c #8F8F53", "f# c #8B8B4B", "g# c #898949", "h# c #888848", "i# c #87864E", "j# c #ADAC90", "k# c #FFFFAC", "l# c #CCCCAE", "m# c #4C4C3A", "n# c #2F2E25", "o# c #676567", "p# c #99959A", "q# c #67639A", "r# c #5858C3", "s# c #5050C4", "t# c #4E4EC6", "u# c #4E4FC3", "v# c #28296E", "w# c #282F36", "x# c #949496", "y# c #915B62", "z# c #6A2F2E", "A# c #989193", "B# c #A8A4A8", "C# c #A6A3A6", "D# c #8B8B4F", "E# c #8F8F4F", "F# c #8A8A4A", "G# c #878747", "H# c #868646", "I# c #858545", "J# c #838348", "K# c #A7A57A", "L# c #FFFF9F", "M# c #B0B092", "N# c #3C3C2E", "O# c #282728", "P# c #73709A", "Q# c #5955C4", "R# c #594DB3", "S# c #8A616D", "T# c #7E4F84", "U# c #534DAC", "V# c #2E3766", "W# c #72676D", "X# c #969797", "Y# c #6B4F51", "Z# c #938A8D", "`# c #A7A4A7", " $ c #A9A5A9", ".$ c #8B878B", "+$ c #383823", "@$ c #848444", "#$ c #838343", "$$ c #828242", "%$ c #808043", "&$ c #A39F7D", "*$ c #F8F8B6", "=$ c #959573", "-$ c #2F2F23", ";$ c #605BA8", ">$ c #504EC6", ",$ c #564BAE", "'$ c #602E37", ")$ c #A8571B", "!$ c #624071", "~$ c #373C93", "{$ c #6F6C7A", "]$ c #C6CBB7", "^$ c #E5E6EB", "/$ c #82787A", "($ c #A09B9F", "_$ c #A8A5A8", ":$ c #AAA6AA", "<$ c #ABA7AB", "[$ c #1C1C14", "}$ c #818141", "|$ c #808040", "1$ c #7F7F3F", "2$ c #7D7D3D", "3$ c #7C7B3C", "4$ c #98946B", "5$ c #E5E4A6", "6$ c #797952", "7$ c #0F0F0F", "8$ c #6F6E6F", "9$ c #9F9D9F", "0$ c #5E56AF", "a$ c #4F4DC9", "b$ c #514FCB", "c$ c #454AAA", "d$ c #915940", "e$ c #8B3B2B", "f$ c #432D33", "g$ c #5E5659", "h$ c #D6D8D0", "i$ c #F5F9FB", "j$ c #898C8A", "k$ c #41403C", "l$ c #5E5E32", "m$ c #756F37", "n$ c #888443", "o$ c #7C7C3C", "p$ c #7A7A3A", "q$ c #797939", "r$ c #787838", "s$ c #898559", "t$ c #D2D18A", "u$ c #636337", "v$ c #6F6F6F", "w$ c #929192", "x$ c #595498", "y$ c #4F4EC3", "z$ c #5150BC", "A$ c #383D8A", "B$ c #432A20", "C$ c #804320", "D$ c #B36225", "E$ c #735D4E", "F$ c #DFE6E4", "G$ c #F8F9FA", "H$ c #9E9E9D", "I$ c #757275", "J$ c #A9A6A9", "K$ c #ACA8AC", "L$ c #514735", "M$ c #443E1D", "N$ c #827332", "O$ c #7E7E3E", "P$ c #777737", "Q$ c #767636", "R$ c #747434", "S$ c #7B784B", "T$ c #B7B58E", "U$ c #070708", "V$ c #787878", "W$ c #7F7F7F", "X$ c #6B6393", "Y$ c #4E4FC7", "Z$ c #4D50CB", "`$ c #4B44AC", " % c #6F6E7D", ".% c #EAE5E1", "+% c #DD804F", "@% c #B18171", "#% c #EEF8E7", "$% c #F4FAF8", "%% c #888489", "&% c #6E6A73", "*% c #ABA8AB", "=% c #362D18", "-% c #3A3518", ";% c #766B2F", ">% c #757535", ",% c #737333", "'% c #717131", ")% c #747042", "!% c #938D89", "~% c #343438", "{% c #19191A", "]% c #666666", "^% c #6D6D6D", "/% c #939193", "(% c #929098", "_% c #4C5384", ":% c #494FB5", "<% c #4345A1", "[% c #777D93", "}% c #F6F7FA", "|% c #C69A6C", "1% c #B66E1E", "2% c #E38B59", "3% c #D5CAC9", "4% c #3E4336", "5% c #7E7D77", "6% c #ACA9AC", "7% c #767373", "8% c #191610", "9% c #4C3D19", "0% c #6C682D", "a% c #717031", "b% c #707030", "c% c #6F6F2F", "d% c #6D6D2D", "e% c #726B39", "f% c #82786D", "g% c #292929", "h% c #303030", "i% c #686868", "j% c #757575", "k% c #929092", "l% c #7C8F7E", "m% c #53695C", "n% c #3E3D4D", "o% c #5F546C", "p% c #BAB1B4", "q% c #F7FAEE", "r% c #EDE5DF", "s% c #B3A8A9", "t% c #BA722F", "u% c #462F22", "v% c #4F5323", "w% c #707254", "x% c #AAA7AA", "y% c #5A575A", "z% c #423513", "A% c #5A5824", "B% c #696629", "C% c #6A6A2A", "D% c #696929", "E% c #69672A", "F% c #504D31", "G% c #5A5A5A", "H% c #41B246", "I% c #26EB28", "J% c #3C9439", "K% c #496A46", "L% c #8B898F", "M% c #CAC8CF", "N% c #A29383", "O% c #A55C1E", "P% c #5F451A", "Q% c #BFC054", "R% c #57553D", "S% c #3E3931", "T% c #353012", "U% c #4E4E24", "V% c #646425", "W% c #646424", "X% c #323211", "Y% c #5D5D5D", "Z% c #537E54", "`% c #136A15", " & c #156317", ".& c #295928", "+& c #313E31", "@& c #34362F", "#& c #2A2E21", "$& c #434129", "%& c #655417", "&& c #B4B440", "*& c #AAB334", "=& c #444533", "-& c #2A2A25", ";& c #292710", ">& c #504725", ",& c #2D2C11", "'& c #1E1E1E", ")& c #7F7D7F", "!& c #706E70", "~& c #6E6C6E", "{& c #7A787A", "]& c #959296", "^& c #858283", "/& c #625E57", "(& c #3D362B", "_& c #33351C", ":& c #6C6A6D", "<& c #8D898D", "[& c #747174", "}& c #0D0A07", "|& c #1C1C17", "1& c #6D6A6D", "2& c #01100F", "3& c #001212", "4& c #011415", "5& c #031414", "6& c #001615", "7& c #001617", "8& c #011615", "9& c #011712", "0& c #000E0E", "a& c #C4C2C9", "b& c #EAEBF0", "c& c #EBECED", "d& c #EBECF0", "e& c #EAEAF3", "f& c #ECECF4", "g& c #E7E7ED", "h& c #E1E1E3", "i& c #D8D9D7", "j& c #CFD2D7", "k& c #82818A", "l& c #00191A", "m& c #001B1D", "n& c #2E484A", "o& c #283C3E", "p& c #031B22", "q& c #011D24", "r& c #021B21", "s& c #2E4246", "t& c #36484A", "u& c #192F33", "v& c #02181C", "w& c #021418", "x& c #AAAAAA", "y& c #A5A5A5", "z& c #A0A0A0", "A& c #989898", "B& c #929292", "C& c #C9C7CD", "D& c #B1B2B9", "E& c #4C4C59", "F& c #504F62", "G& c #54526A", "H& c #524F67", "I& c #4E4B5F", "J& c #484654", "K& c #494850", "L& c #BABBC3", "M& c #6D6B75", "N& c #031E24", "O& c #022226", "P& c #213A40", "Q& c #D7E4E8", "R& c #3E565A", "S& c #02292C", "T& c #002A2C", "U& c #13363A", "V& c #90A9AC", "W& c #092A2C", "X& c #002325", "Y& c #011C21", "Z& c #828282", "`& c #C8C6CB", " * c #A0A0A7", ".* c #302C48", "+* c #443D67", "@* c #49436B", "#* c #403961", "$* c #352E59", "%* c #2B2549", "&* c #242136", "** c #B6B7BD", "=* c #696A6F", "-* c #002C31", ";* c #003033", ">* c #023333", ",* c #608486", "'* c #C5D8DA", ")* c #2D5350", "!* c #03333A", "~* c #033337", "{* c #608284", "]* c #023134", "^* c #003030", "/* c #012A2E", "(* c #7A7A7A", "_* c #C5C5C8", ":* c #A1A0AA", "<* c #383354", "[* c #4E4675", "}* c #504875", "|* c #474169", "1* c #3B345D", "2* c #302A4D", "3* c #262239", "4* c #B5B6BC", "5* c #68686D", "6* c #01373C", "7* c #033840", "8* c #023C43", "9* c #437075", "0* c #39686D", "a* c #D3DAE2", "b* c #23565C", "c* c #043D46", "d* c #62878B", "e* c #023B43", "f* c #02393C", "g* c #023239", "h* c #A0A0A8", "i* c #322D4B", "j* c #3C3561", "k* c #3F3862", "l* c #3C365A", "m* c #363053", "n* c #2D2848", "o* c #252138", "p* c #ACADB5", "q* c #636469", "r* c #02424B", "s* c #02464F", "t* c #014A52", "u* c #3F7A81", "v* c #025153", "w* c #477C82", "x* c #C6DAD8", "y* c #195A5C", "z* c #629397", "A* c #014954", "B* c #01484E", "C* c #033F48", "D* c #A2A2A7", "E* c #9F9FA6", "F* c #27243A", "G* c #2C264A", "H* c #302A4C", "I* c #2E2946", "J* c #2A2544", "K* c #272141", "L* c #A2A3AB", "M* c #606066", "N* c #03505D", "O* c #035560", "P* c #05575C", "Q* c #47858A", "R* c #075964", "S* c #035F63", "T* c #639D9E", "U* c #B6D1D7", "V* c #739FA2", "W* c #075661", "X* c #00565E", "Y* c #015059", "Z* c #676767", "`* c #A09D9F", " = c #ADABB2", ".= c #5A5663", "+= c #5A5564", "@= c #5B5566", "#= c #5B5665", "$= c #5D5666", "%= c #5D5469", "&= c #595764", "*= c #A09EA6", "== c #5E5C63", "-= c #155B66", ";= c #114A52", ">= c #133E42", ",= c #7E979C", "'= c #0E2427", ")= c #041616", "!= c #06151B", "~= c #464B47", "{= c #475456", "]= c #123A44", "^= c #124E56", "/= c #165A63", "(= c #616161", "_= c #AAAAAD", ":= c #BABABF", "<= c #B2B4B9", "[= c #A9ABB2", "}= c #A0A2AB", "|= c #999BA0", "1= c #939293", "2= c #87868A", "3= c #6E7372", "4= c #6E6D73", "5= c #5A585F", "6= c #010910", "7= c #010303", "8= c #333231", "9= c #656768", "0= c #2B2B2B", "a= c #020202", "b= c #000000", "c= c #020000", "d= c #020205", "e= c #060D13", "f= c #707075", "g= c #67666A", "h= c #737476", "i= c #6D6F73", "j= c #6A6B72", "k= c #43444F", "l= c #1B1926", "m= c #413F49", "n= c #414650", "o= c #525159", "p= c #807D82", "q= c #020004", "r= c #010100", "s= c #020200", "t= c #040003", "u= c #020102", "v= c #010101", "w= c #000100", "x= c #050004", "y= c #525252", "z= c #BCBAC1", "A= c #98979C", "B= c #A19DA4", "C= c #9C98A0", "D= c #9995A1", "E= c #9B97A3", "F= c #9C95A0", "G= c #9C969C", "H= c #82808B", "I= c #777580", "J= c #62656E", "K= c #000002", "L= c #010000", "M= c #000001", "N= c #000201", "O= c #CACDD0", "P= c #D4D6D7", "Q= c #D9D9DB", "R= c #D7D7D8", "S= c #D5D4D6", "T= c #CCCCCF", "U= c #C7C6CB", "V= c #ADABB1", "W= c #86858B", "X= c #9D9EA3", "Y= c #7D8087", "Z= c #00000A", "`= c #010008", " - c #010007", ".- c #000006", "+- c #000105", "@- c #010009", "#- c #000109", "$- c #B0B3B8", "%- c #A3A5AA", "&- c #A3A3A8", "*- c #9E9EA3", "=- c #98989D", "-- c #8F8F95", ";- c #8C8B92", ">- c #84848C", ",- c #75757D", "'- c #6B6D75", ")- c #4C4E57", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + ", ". @ # $ % & % * = - ; ; > , ' ' ) ! ! ~ { ] ^ / / ( ^ ] { ~ ! ! ) ' ' , > ; ; - = * % & _ $ # + ", ". : _ < % % = [ [ } | | , 1 2 2 3 ~ 4 { ] ( 5 / 6 / 5 ( ] { 4 ~ 3 2 2 1 , | | } [ [ = % & < _ + ", ". : < 7 8 * 9 0 a b c d e 1 3 3 ~ { f f ^ 5 g 6 h 6 g 5 ^ f f { ~ 3 3 2 1 > > ; - [ [ * 8 7 < + ", ". : & 8 & i j k l m n o p q r ' 4 f f ] ( / s t u v 7 w x y z f 4 ! ! ) 2 1 1 > ; } - = % 8 & + ", ". : % * A B B C d D E F G H c d { ] ^ ( / h I J K L M N O P Q R S ~ ~ ! ) ' ' , > | ; - = * % + ", ". : = [ T U V W j X Y Z ` ...+.] ( 5 / h @.#.$.%.&. .*.=.-.;.>.,.'.)._ !.!.!.~., {.| } [ [ = + ", ". : = [ ].U ^.B C a /.(._.:.<.[.( 5 }.|.@.1.2.$.%.%.%.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.> ; - [ = + ", ". : - } W h.i.j.k.C m l.Z _.m.n.5 / o.p.q.r.s.t.u.v.w.x.%.y.z.A.B.C.D.E.F.G.H.I.J.K.L.> ; } - + ", ". : } M.N.O.b m.P.Q.R.S.T.U.V.W./ h X.Y.Z.`. +.+++@+#+$+%+x.%.%.&+*+=+-+;+>+,+'+G.)+!+@ | M.} + ", ". : ; | ~+{+h.]+^+/+(+_+:+T.Q.<+h [+}+|+1+2+3+4+5+6+7+8+9+u.0+%+%.%.%.a+b+c+d+e+f+g+h+i+> | ; + ", ". : > , j+U k+l+m+b+n+o+p+q+r+s+@.[+' t+u+v+w+x+y+z+A+B+C+D+E+#+$+F+w.%.%.G+H+I+J+J.K+s.1 , > + ", ". : 1 ' L+^.M+N+O+P+Q+R+S+T+O.U+[+V+W+X+Y+x+Z+`+ @.@+@@@#@$@%@&@*@=@9+u.0+x.x.-@;@;@>@,@' ' 1 + ", ". : 1 ' '@X W )@!@~@{@]@P.J ^@* V+/@(@_@:@<@ @[@}@|@1@2@3@4@5@6@7@8@9@0@a@b@0+c@d@e@f@3 2 ' 1 + ", ". : 2 ! 2 1 8 g@h@Q.i@a ^.V k+^ j@k@l@m@n@o@|@1@p@3@q@r@s@t@u@v@w@x@y@z@A@B@8+C@D@E@F@~ 3 ) 2 + ", ". : 3 4 ~ { ] ^ ( ( { G@H@I@J@/@k@K@L@k@M@N@2@q@r@s@t@u@v@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #{ ~ ! 3 + ", ". : 3 f { ] ( 5 / h [+[+V+/@j@j@k@K@.#K@+#@#s@t@##v@O@P@$#R@S@T@%#&#*#=#-#;#>#,#'#)#!#{ ~ ! 3 + ", ". : ~ f { ] ( 5 / h [+[+V+/@j@j@K@~#{#~#M ]#^#v@P@$#R@S@T@%#/#*#(#_#:#<#[#}#|#1#Q 2#( ] { 4 ~ + ", ". : { ^ ] 3#4#5#6#7#8#9#0#a#b#j@~#c#{#~#c#d#e#Q@R@S@%#&#/#*#(#:#f#g#h#i#j#k#l#m#n#o#/ ( ] f { + ", ". : { 5 p#q#r#s#t#u#v#w#x#y#z#A#c#B#C#c#B#d#D#T@&#/#*#E#_#:#F#g#G#H#I#J#K#L#M#N#O#6 / ( ] f { + ", ". : ] 5 P#Q#R#S#T#U#V#W#X#} Y#Z#c#B#`#B# $.$+$*#E#(#:#F#g#h#H#I#@$#$$$%$&$*$=$-$O#@.h / ( ^ ] + ", ". : ( 6 ;$>$,$'$)$!$~${$]$^$/$($B# $_$ $:$<$[$:#F#g#G#H#I#@$#$}$|$1$2$3$4$5$6$7$8$9$[+h / 5 ( + ", ". : ( 5 0$a$b$c$d$e$f$g$h$i$j$8 c#B#_$ $:$<$k$l$m$n$@$#$}$|$1$2$o$p$q$r$s$t$u$t v$w$) ( / 5 ( + ", ". : / 5 x$y$z$A$B$C$D$E$F$G$H$I$c#B#J$:$<$K$(@g.L$M$N$|$O$2$o$q$r$P$Q$R$S$T$,.U$<.V$W$7 h 6 / + ", ". : ( ^ X$Y$Z$`$ %.%+%@%#%$%%%&%~#c#_$ $:$<$*%K$= S =%-%;%q$r$Q$>%R$,%'%)%!%~%{%]%^%F /%/ 5 ( + ", ". : ( f (%_%:%<%[%}%|%1%2%3%4%5%K@~#_$ $:$<$*%*%6%*%! 7%8%9%0%a%'%b%c%d%e%f%g%h%i%j%k%h / 5 ( + ", ". : ] f l%m%n%o%p%q%r%s%t%u%v%w%k@K@`#B# $:$x%<$K$<$x%:$ $y%d#z%A%B%C%D%E%F%7$G%)@k%h / ( ^ ] + ", ". : { 4 H%I%J%K%L%M%o+N%O%P%Q%R%k@K@C#c#B# $J$:$<$:$J$ $B#c#C#+#S%T%U%V%W%X%t Y%k%6 / ( ] f { + ", ". : { ! Z%`% &.&+&@&#&$&%&&&*&=&j@k@{#~#c#B#_$ $:$ $_$B#c#~#{#K@2._@-&;&>&,&'&)&6 6 / ( ] f { + ", ". : ~ ! 1 !&~&{&1 h ]&^&/&(&_&:&/@j@{#~#c#B#_$_$J$_$_$B#c#~#{#K@k@j@<&[&}&|&1&( / 5 ( ] { 4 ~ + ", ". : 3 ) 3 ~ { f ] ( / / h [+V+V+/@(@.#K@~#c#`#B# $B#`#c#~#K@.#k@j@/@/@V+[+h h / ( ^ ] { ~ ! 3 + ", ". : 3 ! ~ { ] ^ ^ 5 6 6 @.[+V+V+/@j@L@k@K@~#C#c#B#c#C#~#K@k@L@j@/@V+V+[+@.6 6 5 ^ ^ ] { ~ ! 3 + ", ". : 2 ) 2&3&4&5&6&7&8&9&9&6&3&0&/@(@L@S+S+S+S+S+S+S+S+S+S+S+S+/@/@V+a&b&c&d&e&f&g&h&i&j&k&) 2 + ", ". : 1 ' l&m&n&o&p&q&r&s&t&u&v&w&V+/@j@S+n+Q+~@x&y&z&A&B&M+P.].V+V+[+C&D&E&F&G&H&I&J&K&L&M&' 1 + ", ". : 1 ' N&O&P&Q&R&S&T&U&V&W&X&Y&[+V+/@S+Q+~@x&y&z&A&B&M+P.Z&].[+h h `& *.*+*@*#*$*%*&***=*1 1 + ", ". : > , -*;*>*,*'*)*!*~*{*]*^*/*@.[+V+S+~@x&y&z&A&B&M+P.Z&(*].@.6 6 _*:*<*[*}*|*1*2*3*4*5*> > + ", ". : ; | 6*7*8*9*0*a*b*c*d*e*f*g*h [+1.S+x&y&z&A&B&M+P.Z&(*Q.].h / / `&h*i*j*k*l*m*n*o*p*q*; ; + ", ". : } M.r*s*t*u*v*w*x*y*z*A*B*C*/ h [+S+y&z&A&B&M+P.Z&(*Q.^%]./ ( / D*E*F*G*H*I*J*K*3*L*M*} } + ", ". : - } N*O*P*Q*R*S*T*U*V*W*X*Y*5 / h S+z&A&B&M+P.Z&(*Q.^%Z*].5 ^ ( `* =.=+=@=#=$=%=&=*===- - + ", ". : = [ -=;=>=,='=)=!=~={=]=^=/=( 5 6 S+A&B&M+P.Z&(*Q.^%Z*(=].( ] ] _=:=<=[=}=|=1=2=3=4=5== = + ", ". : = [ 6=7=8=9=0=a=b=b=b=c=d=e=] ( / S+B&M+P.Z&(*Q.^%Z*(=Y ].] { { f=g=h=i=j=k=l=m=n=o=p== = + ", ". : % * q=r=s=t=u=v=b=b=b=w=r=x={ ] ( S+M+P.Z&(*Q.^%Z*(=Y y=].{ ~ ~ z=A=B=C=D=E=F=G=H=I=J=% % + ", ". : & 8 K=w=w=b=b=b=b=b=L=M=N=N=4 f ] S+P.Z&(*Q.^%Z*(=Y y=r+].4 ! ! O=P=Q=R=S=T=U=V=W=X=Y=& & + ", ". : < 7 Z=`= -.-.-.-.-.-+-`=@-#-~ { f S+].].].].].].].].].].].~ ~ 3 $-%-&-*-=---;->-,-'-)-7 < + ", ". : _ < & % = [ [ } | | , 1 2 2 3 ~ 4 { ] ( 5 / 6 / 5 ( ] { 4 ~ 3 2 2 1 , | | } [ [ = % & < _ + ", ". : # $ _ & % * = - ; ; > , ' ' ) ! ! ~ { ] ^ ( / ( ^ ] { ~ ! ! ) ' ' , > ; ; - = * % & _ $ # + ", ". : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : + ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; �������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/opaque.xpm��������������������������������������������������������0000644�0001750�0001750�00000015766�12214432632�015611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 105 2", " c None", ". c #000000000000", "X c #9CE69CE69CE6", "o c #B5ACB5ACB5AC", "O c #FFFFFFFFFFFF", "+ c #5AD65AD65AD6", "@ c #108400000000", "# c #39CE00000000", "$ c #6B5A00000000", "% c #739C00000000", "& c #18C600000000", "* c #B5AC00000000", "= c #18C600000842", "- c #4A5200000000", "; c #4A52294A294A", ": c #318C00000000", "> c #084208420842", ", c #9CE6318C318C", "< c #E738318C318C", "1 c #B5AC318C318C", "2 c #421039CE4210", "3 c #7BDE7BDE7BDE", "4 c #39CE39CE39CE", "5 c #A528A528A528", "6 c #210800000000", "7 c #5AD6294A294A", "8 c #18C618C618C6", "9 c #108410841084", "0 c #B5AC4A524A52", "q c #FFFF4A524A52", "w c #842000000000", "e c #318C318C318C", "r c #210821082108", "t c #9CE600000000", "y c #8C6200000000", "u c #4A524A524A52", "i c #AD6A00000000", "p c #294A00000000", "a c #EF7A4A524A52", "s c #C6304A524A52", "d c #421000000000", "f c #084200000000", "g c #A52800000000", "h c #421042104210", "j c #8C628C628C62", "k c #8420318C318C", "l c #6B5A6B5A6B5A", "z c #D6B4318C318C", "x c #94A4318C318C", "c c #4A52318C318C", "v c #A528318C318C", "b c #5294318C318C", "n c #529452945294", "m c #94A494A494A4", "M c #6B5A63186B5A", "N c #DEF6294A294A", "B c #210818C62108", "V c #108408421084", "C c #529400000000", "Z c #842084208420", "A c #E7384A524A52", "S c #631800000000", "D c #9CE64A524A52", "F c #5AD600000000", "G c #8C62294A294A", "H c #318C00000842", "J c #C630C630C630", "K c #318C08420842", "L c #39CE294A294A", "P c #DEF6DEF6DEF6", "I c #39CE318C318C", "U c #CE72318C318C", "Y c #631863186318", "T c #4210318C318C", "R c #5AD652945AD6", "E c #210818C618C6", "W c #5AD64A524A52", "Q c #63184A524A52", "! c #AD6A4A524A52", "~ c #D6B44A524A52", "^ c #94A484208420", "/ c #D6B4D6B4D6B4", "( c #52944A524A52", ") c #CE724A524A52", "_ c #6B5A52945294", "` c #EF7AF7BCEF7A", "' c #E738EF7AE738", "] c #AD6AAD6AAD6A", "[ c #7BDE4A524A52", "{ c #F7BCFFFFF7BC", "} c #EF7AEF7AEF7A", "| c #739C739C739C", " . c #8C6284208420", ".. c #E738E738E738", "X. c #DEF64A524A52", "o. c #A5284A524A52", "O. c #CE72D6B4CE72", "+. c #8C624A524A52", "@. c #F7BC4A524A52", "#. c #BDEE4A524A52", "$. c #6B5A4A524A52", "%. c #739C5AD65AD6", "&. c #7BDE63186318", "*. c #9CE663186318", "=. c #CE72CE72CE72", " ", " ", " . . . . . X . . . . . . . . . . . . . . . . . . . X . . . . . ", " . o o o . X . . . . . . . . . . . . . . . . . . . X . O . O . ", " . o . o . X . . . . . . . . . . . . . . . . . . . X . . O . . ", " . o o o . X . . . . . . . . . . . . . . . . . . . X . O . O . ", " . . . . . X . . . . . . . . . . . . . . . . . . . X . . . . . ", " o o o o o o o o o o o + o o o o o o o o o o o o o o o o o o o ", " . . . . . . . . X . @ # . . . . . . . . . . . . . . . . X . . . . . ", " . O O . o o o . X . $ % . . . . . . . . . . . . . . . . X . O . O . ", " . O O . o . o . X & * * = . . . . . . . . . . . . . . . X . . O . . ", " . O O . o o o . X $ * * - . . . . . . . . . . . . . . . X . O . O . ", " . O O . . . . . ; * * * : > . . . . . . . . . . . . . . X . . . . . ", " . O O o o o o o , < < 1 2 3 4 5 o o o o o o o o o o o o o o o o o o ", " . O O . . . . 6 * * * 7 8 9 & . . . . . . . . . . . . . . . . X . . . . . ", " . O O . O O . 0 q q w e r . t y @ . . . . . . . . . . . . . . X . O . O . ", " . O O . O O 6 q * q : u 9 - * i p . . . . . . . . . . . . . . X . . O . . ", " . O O . O O p a q s > + . t * * * d . . . . . . . . . . . . . X . O . O . ", " . O O . O O f g * : 8 h - * * * * @ . . @ . . . . . . . . . . X . . . . . ", " . O O . O O j k 1 2 l e z < < < x h l c < v b n m o o o 5 e M o o o o o o ", " . O O . O O . & & 8 9 - * * N * @ B V $ * * * % 6 . . . . C : . . . X . . . . . ", " . O O . O O . Z n r u A q * N S V B & * * * * * * d . . f i C > . . X . O . O . ", " . O O . O O . o 3 9 D * q * N @ B V $ * * * * * * 6 . . F * y > . . X . . O . . ", " . O O . O O . O j . a q q * G V B & * * * * * * $ > 8 @ i * * H . . X . O . O . ", " . O O . O O . O J K i * * * L B > $ * * * * * * & B V F * * * S > . X . . . . . ", " . O O . O O . O P M I U < x u + b < < < < < < , h Y T < < < < 1 R o o o o o o o ", " . . . . O O . O O . E $ i @ r > $ * * * * * * & B V S * * * * * @ . . . . . . . ", " o o o . O O . O O . X + W Y 3 Q q q q q q q 0 + 3 W q q q q q q ! J O O O O O . ", " o e e . O O . O O . J Z u 3 + 0 q q q q q q Q 3 + ! q q q q q q ~ ^ O O O O O . ", " . O O . O O . O / 3 3 ( ) q q q q q 0 + 3 W q q q q q q q a _ ` O O O O . ", " . O O . O O . O ' ] j j Y [ ) q q q W 3 + ! q q q q q q q q D o O O O O . ", " . O O . O O . O O { m } ] | n [ ) 0 + 3 W q q q q q q q q q a .O O O O . ", " . . . . O O . O O O ....j j j l n u 3 + 0 q q q q q q q q X.o.M O O O O . ", " o o o . O O . O O O O O O.X j j j 3 3 W q q q q q q X.s +.n | Z P O O O . ", " o e e . O O . O O O O O O O O.X j j + 0 q q @.A #.$.%.| 3 j j j J O O O . ", " . O O . O O O O O O O O O O.j W q q ! [ &.l Z j j j j j j o O O O . ", " . O O . O O O O O O O O O O Z W *.Y | j j j j j j j m 5 P ` O O O . ", " . O O . O O O O O O O O O } 3 =.] .j j j j j j o P ' O O O O O O . ", " . . . . O O O O O O O O O O O ..j j j j m o O.} O O O O O O O O O . ", " o o o . O O O O O O O O O O O o j X o O.O O O O O O O O O O O O O . ", " o e e . O O O O O O O O O O ` ] P { { O O O O O O O O O O O O O O . ", " . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . ", " . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . ", " . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . ", " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", " o o o o e o o o o o o o o o o o o o o o o o o o o e o o o o e ", " o e e e e o e e e e e e e e e e e e e e e e e e e e o e e e e ", " "}; ����������WindowMaker-0.95.5/WPrefs.app/xpm/expert.xpm��������������������������������������������������������0000644�0001750�0001750�00000041106�12214432632�015611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * expert_xpm[] = { "48 48 757 2", " c None", ". c #2C2C2C", "+ c #FEFEFE", "@ c #8E8B8E", "# c #8F8B8F", "$ c #8F8C8F", "% c #908C90", "& c #918D91", "* c #928E92", "= c #928F92", "- c #938F93", "; c #949094", "> c #959195", ", c #969296", "' c #969396", ") c #979497", "! c #989598", "~ c #999699", "{ c #9A969A", "] c #9B979B", "^ c #9C989C", "/ c #9C999C", "( c #9E9A9E", "_ c #9D999D", ": c #908D90", "< c #939093", "[ c #949194", "} c #959295", "| c #979397", "1 c #989498", "2 c #999599", "3 c #9A979A", "4 c #9D9A9D", "5 c #9E9B9E", "6 c #908E90", "7 c #918E91", "8 c #9B989B", "9 c #9D9B9D", "0 c #9F9B9F", "a c #8C8A84", "b c #42423E", "c c #A09CA0", "d c #35312C", "e c #292322", "f c #271D1F", "g c #281D20", "h c #2B2224", "i c #232123", "j c #251F22", "k c #302C2D", "l c #4B4743", "m c #7E7874", "n c #9F9C9F", "o c #959395", "p c #4D4746", "q c #292329", "r c #272221", "s c #251C1E", "t c #251A1A", "u c #2A1C1F", "v c #201A17", "w c #251E1C", "x c #251819", "y c #25191D", "z c #231B1C", "A c #241A1D", "B c #24191F", "C c #271C1E", "D c #241C20", "E c #252021", "F c #423D3B", "G c #453C3B", "H c #504C48", "I c #878079", "J c #4E4646", "K c #2A2428", "L c #2C252A", "M c #2B2325", "N c #231D1F", "O c #251D1F", "P c #251F1B", "Q c #22161A", "R c #251C1D", "S c #271F1E", "T c #241C1E", "U c #25181A", "V c #22181A", "W c #251A1F", "X c #251B20", "Y c #261C1C", "Z c #271D1B", "` c #241A1E", " . c #2B2123", ".. c #281B1E", "+. c #2B191C", "@. c #26171C", "#. c #261A1A", "$. c #241B1D", "%. c #281A1F", "&. c #302122", "*. c #2B261F", "=. c #4F4440", "-. c #776E63", ";. c #8D8880", ">. c #938E81", ",. c #524F52", "'. c #2F2A26", "). c #2C2224", "!. c #241E22", "~. c #292122", "{. c #2E2229", "]. c #2C2124", "^. c #29242A", "/. c #271B1D", "(. c #292023", "_. c #261A1F", ":. c #231C1B", "<. c #271A1C", "[. c #26171B", "}. c #251A20", "|. c #241D1C", "1. c #251A1C", "2. c #282122", "3. c #271C21", "4. c #26161A", "5. c #2A1C22", "6. c #251A1E", "7. c #221616", "8. c #1F1316", "9. c #221418", "0. c #231A13", "a. c #261616", "b. c #261C1D", "c. c #25151A", "d. c #261723", "e. c #28191B", "f. c #302224", "g. c #4F4C47", "h. c #5F5C5D", "i. c #7E7B7E", "j. c #949294", "k. c #5D5457", "l. c #2B2424", "m. c #2B2227", "n. c #2E2526", "o. c #2F2627", "p. c #2B1F25", "q. c #2F2023", "r. c #2E1E22", "s. c #2B2021", "t. c #23181B", "u. c #201419", "v. c #221A1D", "w. c #2B1C1D", "x. c #2E171C", "y. c #1A0D0F", "z. c #110C0C", "A. c #160D0F", "B. c #231416", "C. c #24161A", "D. c #291B1E", "E. c #281B1C", "F. c #26171A", "G. c #23171B", "H. c #221315", "I. c #23181A", "J. c #2B1618", "K. c #130809", "L. c #1B0C0A", "M. c #221010", "N. c #271413", "O. c #372622", "P. c #4D4A44", "Q. c #272727", "R. c #5B595B", "S. c #4F474B", "T. c #322628", "U. c #2B2225", "V. c #2A2324", "W. c #2F2625", "X. c #2F2223", "Y. c #322225", "Z. c #2F2021", "`. c #26191F", " + c #2A2223", ".+ c #261A1B", "++ c #231619", "@+ c #401F1B", "#+ c #7E180E", "$+ c #8E1A0A", "%+ c #481E16", "&+ c #1E191D", "*+ c #251A21", "=+ c #2F2226", "-+ c #27191F", ";+ c #261B1E", ">+ c #2F2123", ",+ c #332423", "'+ c #26181D", ")+ c #251416", "!+ c #271919", "~+ c #28171D", "{+ c #221316", "]+ c #271F1A", "^+ c #311E25", "/+ c #2F2323", "(+ c #291F1E", "_+ c #362D26", ":+ c #484642", "<+ c #757275", "[+ c #797172", "}+ c #413E3F", "|+ c #352830", "1+ c #372C32", "2+ c #342C30", "3+ c #35292A", "4+ c #2E2628", "5+ c #312529", "6+ c #362727", "7+ c #2B1E21", "8+ c #2E2025", "9+ c #2B222A", "0+ c #43231F", "a+ c #942A11", "b+ c #87220E", "c+ c #3B1915", "d+ c #22191F", "e+ c #2B2121", "f+ c #2C2122", "g+ c #2C1D22", "h+ c #2E2024", "i+ c #2C1F24", "j+ c #2A1E20", "k+ c #2A1B20", "l+ c #2A1F22", "m+ c #2A1E1E", "n+ c #2F1E20", "o+ c #291919", "p+ c #2A1B1F", "q+ c #2F2125", "r+ c #2B2122", "s+ c #2C1D20", "t+ c #292020", "u+ c #352624", "v+ c #50493F", "w+ c #3C3B39", "x+ c #393839", "y+ c #706062", "z+ c #503E41", "A+ c #413638", "B+ c #3F3132", "C+ c #34272A", "D+ c #342B32", "E+ c #31272E", "F+ c #33282A", "G+ c #352929", "H+ c #2C2225", "I+ c #312928", "J+ c #3E2328", "K+ c #772A1D", "L+ c #7F260E", "M+ c #3A1510", "N+ c #282227", "O+ c #352529", "P+ c #292221", "Q+ c #2E2328", "R+ c #302329", "S+ c #292228", "T+ c #2A2225", "U+ c #2E2021", "V+ c #332829", "W+ c #342228", "X+ c #35282B", "Y+ c #2F2227", "Z+ c #302125", "`+ c #2E2129", " @ c #292024", ".@ c #332325", "+@ c #3D2F2E", "@@ c #615E54", "#@ c #31302F", "$@ c #4C4B4C", "%@ c #999799", "&@ c #554F4E", "*@ c #544749", "=@ c #433C3B", "-@ c #473E3E", ";@ c #3A3333", ">@ c #38272A", ",@ c #3B3030", "'@ c #34292B", ")@ c #332326", "!@ c #622018", "~@ c #7C1F0C", "{@ c #331812", "]@ c #2A1A22", "^@ c #2A1E25", "/@ c #281C24", "(@ c #2F1F27", "_@ c #30242A", ":@ c #2E1A22", "<@ c #2F2026", "[@ c #291B24", "}@ c #291E22", "|@ c #2F2024", "1@ c #301F25", "2@ c #322226", "3@ c #2A1B1D", "4@ c #2E2224", "5@ c #2B1F20", "6@ c #2C2023", "7@ c #2A1F23", "8@ c #2E2128", "9@ c #382E28", "0@ c #57554F", "a@ c #2B2A2B", "b@ c #616061", "c@ c #767376", "d@ c #575656", "e@ c #4B4A48", "f@ c #514E4B", "g@ c #4B4846", "h@ c #493E3D", "i@ c #403538", "j@ c #4F342F", "k@ c #98391B", "l@ c #32282E", "m@ c #342529", "n@ c #2A1D23", "o@ c #281B24", "p@ c #281A21", "q@ c #291E27", "r@ c #2B1922", "s@ c #27171F", "t@ c #281F25", "u@ c #271620", "v@ c #261821", "w@ c #282222", "x@ c #281C22", "y@ c #2C1F23", "z@ c #2B1D20", "A@ c #322126", "B@ c #312425", "C@ c #271A1D", "D@ c #26181E", "E@ c #291C1F", "F@ c #554A47", "G@ c #4D4B47", "H@ c #302F30", "I@ c #797779", "J@ c #828082", "K@ c #6B696B", "L@ c #725951", "M@ c #7C2719", "N@ c #1E161C", "O@ c #291B20", "P@ c #292028", "Q@ c #2E1E24", "R@ c #362930", "S@ c #372530", "T@ c #2E1E25", "U@ c #31222B", "V@ c #2A1C25", "W@ c #2A1B23", "X@ c #2A1924", "Y@ c #2C1E22", "Z@ c #2A1F27", "`@ c #251621", " # c #2E1C24", ".# c #2C2024", "+# c #26161F", "@# c #251920", "## c #221E1E", "$# c #45443F", "%# c #3D3C3D", "&# c #877779", "*# c #6A2222", "=# c #1D161B", "-# c #241B20", ";# c #2B2125", "># c #251D23", ",# c #221B20", "'# c #20171D", ")# c #181014", "!# c #201519", "~# c #291A24", "{# c #2F1C23", "]# c #2B2228", "^# c #33262F", "/# c #2C1F29", "(# c #321F22", "_# c #2A2128", ":# c #27161B", "<# c #23191C", "[# c #2A1621", "}# c #271D23", "|# c #43443C", "1# c #A19DA1", "2# c #7B6E70", "3# c #763F2B", "4# c #2B2027", "5# c #291F25", "6# c #302429", "7# c #352427", "8# c #231821", "9# c #181015", "0# c #140C0F", "a# c #12090C", "b# c #150D10", "c# c #11090B", "d# c #160D0E", "e# c #170E13", "f# c #27181C", "g# c #2F1C26", "h# c #2C1D25", "i# c #231319", "j# c #261820", "k# c #242023", "l# c #595750", "m# c #7C797C", "n# c #A09DA0", "o# c #82726A", "p# c #AF5533", "q# c #2E252D", "r# c #2F242B", "s# c #33252D", "t# c #35262E", "u# c #36262F", "v# c #2E2228", "w# c #1D141D", "x# c #161012", "y# c #161114", "z# c #180F10", "A# c #100B0E", "B# c #160D10", "C# c #150D15", "D# c #1B1418", "E# c #221C20", "F# c #261D1E", "G# c #312025", "H# c #281F24", "I# c #333531", "J# c #676565", "K# c #A19EA1", "L# c #B7806F", "M# c #AB2F19", "N# c #412B36", "O# c #35232E", "P# c #3E2530", "Q# c #3B2831", "R# c #392B31", "S# c #22181D", "T# c #1E1117", "U# c #150F12", "V# c #120B10", "W# c #1A1114", "X# c #130C11", "Y# c #1F171C", "Z# c #2B1E25", "`# c #23161C", " $ c #261A1D", ".$ c #2F2225", "+$ c #292926", "@$ c #A29EA2", "#$ c #BA5039", "$$ c #B1311E", "%$ c #512A32", "&$ c #392932", "*$ c #382A35", "=$ c #34252B", "-$ c #352328", ";$ c #302124", ">$ c #1F1619", ",$ c #22181F", "'$ c #1B1016", ")$ c #171210", "!$ c #1C1116", "~$ c #14060D", "{$ c #180D11", "]$ c #211718", "^$ c #261A20", "/$ c #2B1C25", "($ c #2B1E22", "_$ c #271C22", ":$ c #292725", "<$ c #373635", "[$ c #A39FA3", "}$ c #8A5957", "|$ c #A37469", "1$ c #392831", "2$ c #3F2F32", "3$ c #35252E", "4$ c #35242B", "5$ c #3C2F33", "6$ c #34242A", "7$ c #23161B", "8$ c #180C10", "9$ c #150C0F", "0$ c #191113", "a$ c #191114", "b$ c #180E12", "c$ c #180B10", "d$ c #201818", "e$ c #271E20", "f$ c #1F1319", "g$ c #25161B", "h$ c #2E2022", "i$ c #26171D", "j$ c #281A22", "k$ c #3A3732", "l$ c #40403F", "m$ c #A4A0A4", "n$ c #928976", "o$ c #B0998F", "p$ c #433236", "q$ c #392B34", "r$ c #372831", "s$ c #40343A", "t$ c #3A2A30", "u$ c #332228", "v$ c #1F141A", "w$ c #190F10", "x$ c #191010", "y$ c #170E10", "z$ c #1A1015", "A$ c #211619", "B$ c #1C1211", "C$ c #23171F", "D$ c #201318", "E$ c #261B1C", "F$ c #27191B", "G$ c #3A2C30", "H$ c #4A4943", "I$ c #4F4D4F", "J$ c #8E8A8E", "K$ c #B2927E", "L$ c #CA6853", "M$ c #572F32", "N$ c #493940", "O$ c #473840", "P$ c #422C34", "Q$ c #35232A", "R$ c #37242B", "S$ c #2E1C21", "T$ c #2E2125", "U$ c #26191D", "V$ c #28191E", "W$ c #271C1F", "X$ c #281D22", "Y$ c #25191E", "Z$ c #1C1118", "`$ c #281A1B", " % c #271A1E", ".% c #181114", "+% c #281A1E", "@% c #2C2C2B", "#% c #A5A1A5", "$% c #BD7559", "%% c #C25B32", "&% c #7B4740", "*% c #3F2E3B", "=% c #472934", "-% c #422E34", ";% c #432C3B", ">% c #3F2E33", ",% c #342227", "'% c #231515", ")% c #130B0A", "!% c #130D0F", "~% c #140C0C", "{% c #100909", "]% c #10080A", "^% c #160D0C", "/% c #231818", "(% c #2E1D19", "_% c #291B22", ":% c #3E3D3A", "<% c #484748", "[% c #AF4C3E", "}% c #BE4A21", "|% c #624F45", "1% c #42363C", "2% c #3C2830", "3% c #382A2A", "4% c #402B32", "5% c #33242A", "6% c #211616", "7% c #1A1416", "8% c #191212", "9% c #1B0F16", "0% c #1B1617", "a% c #170F10", "b% c #1A1211", "c% c #1F1917", "d% c #261D21", "e% c #281D1F", "f% c #423F3A", "g% c #2B2B2B", "h% c #A6A2A6", "i% c #B24F40", "j% c #C4622F", "k% c #645B50", "l% c #676666", "m% c #645C5E", "n% c #3C2B32", "o% c #2A191F", "p% c #38242F", "q% c #2A2126", "r% c #1C1010", "s% c #151115", "t% c #160E12", "u% c #1B0E0F", "v% c #1A1615", "w% c #181214", "x% c #1B0F12", "y% c #180C0D", "z% c #25131C", "A% c #2B2427", "B% c #524A45", "C% c #363534", "D% c #605F60", "E% c #B25142", "F% c #A83C22", "G% c #65594C", "H% c #7C7A7C", "I% c #747172", "J% c #4C4949", "K% c #3D3638", "L% c #271E24", "M% c #181113", "N% c #160E0C", "O% c #14080A", "P% c #1C1013", "Q% c #110A0B", "R% c #100A0C", "S% c #21191A", "T% c #35272B", "U% c #524A44", "V% c #413F3D", "W% c #373737", "X% c #D1CFD1", "Y% c #FCFCFC", "Z% c #B75A53", "`% c #B44C21", " & c #7E6A59", ".& c #A5A2A5", "+& c #848184", "@& c #646264", "#& c #3A3736", "$& c #403B39", "%& c #272022", "&& c #181213", "*& c #251719", "=& c #2E2722", "-& c #3A3430", ";& c #524E49", ">& c #4F4E4F", ",& c #FFFFFF", "'& c #EEEEEE", ")& c #4D4B4D", "!& c #AD5A46", "~& c #BD562C", "{& c #826E60", "]& c #696769", "^& c #A7A3A7", "/& c #A8A4A8", "(& c #A8A5A8", "_& c #737073", ":& c #474647", "<& c #2A2A2A", "[& c #343434", "}& c #504E50", "|& c #817F81", "1& c #F9F9F9", "2& c #DFDFDF", "3& c #070707", "4& c #B96865", "5& c #CD6431", "6& c #8A756A", "7& c #666466", "8& c #A4A1A4", "9& c #A7A4A7", "0& c #A9A5A9", "a& c #E8E7E8", "b& c #A4A3A4", "c& c #0F0E0F", "d& c #AD645B", "e& c #B75330", "f& c #856D62", "g& c #A3A0A3", "h& c #A6A3A6", "i& c #D4D3D4", "j& c #737273", "k& c #2C2B2C", "l& c #AF6458", "m& c #AF4A26", "n& c #9D7F72", "o& c #656365", "p& c #A29FA2", "q& c #A2A0A2", "r& c #C1BEC1", "s& c #3E3D3E", "t& c #474547", "u& c #A85A51", "v& c #B04229", "w& c #A28072", "x& c #555455", "y& c #AEAAAE", "z& c #1A1A1A", "A& c #696669", "B& c #AF5E54", "C& c #B34427", "D& c #A28674", "E& c #F4F4F4", "F& c #000000", "G& c #A05F62", "H& c #AB3522", "I& c #B06E4B", "J& c #3A393A", "K& c #E6E5E6", "L& c #0C0C0C", "M& c #A66970", "N& c #99281A", "O& c #AB6548", "P& c #272627", "Q& c #A46764", "R& c #901E15", "S& c #AA7A65", "T& c #353335", "U& c #A56060", "V& c #A42C1D", "W& c #AB654A", "X& c #C8C5C8", "Y& c #C5C3C5", "Z& c #9E6465", "`& c #AE3722", " * c #A34937", ".* c #F9F8F9", "+* c #E9E9E9", "@* c #555355", "#* c #A5666B", "$* c #A02A1F", "%* c #9F5745", "&* c #9F9D9F", "** c #F7F7F7", "=* c #090909", "-* c #B58883", ";* c #AC352A", ">* c #886055", ",* c #C1BFC1", "'* c #F5F5F5", ")* c #515051", "!* c #252525", "~* c #595859", "{* c #5A585A", "]* c #050505", "^* c #565456", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + ", ". @ # $ % & * = - ; > > , ' ) ) ! ~ ~ { ] ^ / ( ( _ / ^ ] { ~ ~ ! ) ) ' , > > ; - = * & % $ # + ", ". # % : & * - < < [ } } ' | 1 1 2 { 3 ] ^ _ 4 ( 5 ( 4 _ ^ ] 3 { 2 1 1 | ' } } [ < < - * & : % + ", ". % : 6 7 = < < ; > , , | 1 2 2 { ] 8 8 / 4 9 5 0 5 9 4 / 8 8 ] { 2 2 1 | , , > ; < < = 7 6 : + ", ". : & 7 * - ; [ > , | | 1 ! ~ ~ a b 8 ^ _ ( 5 0 c 0 5 ( _ ^ 8 8 3 ~ ~ ! 1 | | , > [ ; - * 7 & + ", ". & * = - ; > } , ' ) ) ! ~ { d e f g h i j k l m c n 0 ( _ / ^ ] { { ~ ! ) ) ' , } > ; - = * + ", ". * - < < [ } o ' | 1 1 2 p q r s t u v w x y z A B C D E F G H I ] ] { 2 1 1 | ' o } [ < < - + ", ". = - < ; > , ' | 1 2 J K L M E N O P Q R S T U V W X Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.> ; < - + ", ". - ; [ > , | ) 1 ,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.@.8.9.0.a.b.c.d.e.f.g.h.i.[ ; + ", ". ; [ j.} ' ) k.l.m.n...o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.1.x D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.} j.[ + ", ". ; > } , S.T.U.V.W.X.Y.Z.l.`. +.+++@+#+$+%+&+*+=+-+U ;+>+,+'+)+!+~+{+]+^+/+(+_+:+. <+| , } > + ", ". > , [+}+|+1+2+3+4+5+6+7+&.8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+~ 2 1 | ' , + ", ". , | y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+l+R+S+T+U+=+V+W+X+Y+Z+`+ @.@+@@@#@$@3 %@~ ! ) ) | + ", ". , | ) &@*@=@-@;@>@,@'@)@!@~@{@h ]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@8@9@0@a@b@^ ] 3 { 2 1 ) | + ", ". | 1 ! 2 c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@I@( _ ^ 8 ] { 2 ! 1 + ", ". 1 2 ~ { ] ^ / / 4 J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #5..#+#@###$#%#n 5 5 4 / / ^ ] { ~ 2 + ", ". 1 2 ~ { ] ^ / _ ( 0 0 &#*#=#-#;#>#,#'#)#!#~#{#]#^#/#(#_#V@:#<#[#}#|#1#c 0 0 ( _ / ^ ] { ~ 2 + ", ". 2 { 3 ] ^ _ 4 ( 0 c c 2#3#4#5#6#7#'@8#9#0#a#b#c#d#e#` f#g#h#i#j#k#l#m#1#c c 0 ( 4 _ ^ ] 3 { + ", ". { ] 8 ^ _ ( 5 5 n n#n#o#p#q#r#s#t#u#v#w#x#y#z#A#B#C#D#E#;#W F#G#H#I#J#K#n#n#n 5 5 ( _ ^ 8 ] + ", ". { ] 8 ^ _ ( 5 0 c 1#1#L#M#N#O#P#Q#R#`.S#x#T#U#V#W#X#Y#Z#`#/. $.$8++$e@@$1#1#c 0 5 ( _ ^ 8 ] + ", ". ] ^ / _ ( 0 n c 1#@$@$#$$$%$&$*$=$-$;$>$,$'$)$!$~$z.{$]$'#^$/$($_$:$<$[$@$@$1#c n 0 ( _ / ^ + ", ". ^ _ 4 ( 0 c n#1#@$[$[$}$|$1$2$3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$k$l$m$[$[$@$1#n#c 0 ( 4 _ + ", ". ^ _ 4 ( 0 c n#1#@$[$[$n$o$p$q$r$s$t$u$Q v$w$x$y$z$A$B$C$D$E$F$}@G$H$I$m$[$[$@$1#n#c 0 ( 4 _ + ", ". J$( 5 0 c 1#K#@$[$m$m$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$ %.%+%Y@k$@%I@#%m$m$[$@$K#1#c 0 5 ( + ", ". J$_ 4 ( 0 c n#1#@$[$[$$%%%&%*%=%-%;%>%,%'%)%!%~%{%]%^%/%t.(%_%%.:%<%#%m$[$[$@$1#n#c 0 ( 4 _ + ", ". J$_ 4 ( 0 c n#1#@$[$[$[%}%|%1%2%Q#3%4%5%6%7%8%9%0%a%b%c%d%e%,%f%g%h%#%m$[$[$@$1#n#c 0 ( 4 _ + ", ". J$^ / _ ( 0 n c 1#@$@$i%j%k%l%m%n%o%p%q%r%s%t%u%v%w%x%y%z%A%B%C%D%#%m$[$@$@$1#c n 0 ( _ / ^ + ", ". J$] 8 ^ _ ( 5 0 c 1#1#E%F%G%H%#%I%J%K%L%M%y.N%O%P%Q%R%S%T%U%V%W%m$m$[$@$X%Y%X%0 5 ( _ ^ 8 ] + ", ". J$] 8 ^ _ ( 5 5 n n#n#Z%`% &H%m$#%.&+&@&<%#&$&%&&&*&=&-&;&Q.>&m$[$[$@$K#Y%,&'&)&5 ( _ ^ 8 ] + ", ". J${ 3 ] ^ _ 4 ( 0 c c !&~&{&]&m$#%.&h%^&/&(&(&_&:&. <&[&}&|&#%m$[$[$@$1#1&,&2&3&4 _ ^ ] 3 { + ", ". J$2 ~ { ] ^ / _ ( 0 0 4&5&6&7&[$m$8&#%h%^&9&/&0&/&9&^&h%#%8&m$[$@$@$1#c a&,&b&c&/ ^ ] { ~ 2 + ", ". J$2 ~ { ] ^ / / 4 5 5 d&e&f&7&@$[$g&m$#%h%h&^&/&^&h&h%#%m$g&[$@$1#1#c n i&,&j&k&/ ^ ] { ~ 2 + ", ". J$1 ! 2 { ] 8 ^ _ ( ( l&m&n&o&@$p&q&g&8&.&.&h%^&h%.&.&8&g&q&p&@$1#1#c 0 r&,&s&t&8 ] { 2 ! 1 + ", ". J$| ) 1 2 { 3 ] ^ _ _ u&v&w&x&1#@$p&[$m$#%.&h%^&h%.&#%m$[$p&@$1#c c 0 ( y&,&z&A&3 { 2 1 ) | + ", ". J$| ) ) ! ~ %@3 ] ^ ^ B&C&D&}&c 1#K#@$[$m$8&#%h%#%8&m$[$@$K#1#c 0 0 ( _ ^ E&F&J@%@~ ! ) ) | + ", ". J$, ' | 1 2 ~ { ] ^ ^ G&H&I&J&n c n#1#@$[$g&m$#%m$g&[$@$1#n#c n 5 5 4 / ^ K&L&{ ~ 2 1 | ' , + ", ". J$> } , | 1 ! 2 { ] ] M&N&O&J&0 c n#n#K#p&q&g&m$g&q&p&K#n#n#c 0 ( ( _ ^ ] y&P&2 ! 1 | , } > + ", ". J$[ j.} ' ) ) 1 2 { { Q&R&S&J&( 0 n c 1#@$p&[$m$[$p&@$1#c n 0 ( _ _ ^ ] { F&T&1 ) ) ' } j.[ + ", ". J$; [ > , | ) 1 2 { { U&V&W&J&4 ( 5 0 c 1#K#@$[$@$K#1#c 0 5 ( 4 / / 8 3 X&Y%Y&1 ) | , > [ ; + ", ". J$- < ; > , ' | 1 2 2 Z&`& *J&_ 4 9 5 n n#n#1#@$1#n#n#n 5 9 4 _ ^ ^ ] { .*,&+*@*' , > ; < - + ", ". J$- < < [ } o ' | 1 1 #*$*%*J&^ _ 4 ( 0 n &*n#K#n#&*n 0 ( 4 _ ^ ] ] { 2 **,&'&=*o } [ < < - + ", ". J$* = - ; > } , ' ) ) -*;*>*J&] ^ / _ ( 0 n c 1#c n 0 ( _ / ^ ] { { ~ ! ,*'*)*3&} > ; - = * + ", ". J$& 7 * - ; [ > , | | 1 R.!*~*3 8 8 ^ _ ( 5 0 c 0 5 ( _ ^ 8 8 3 ~ ~ ! 1 | {*]*^*[ ; - * 7 & + ", ". J$: 6 7 = < < ; > , , | 1 2 2 { ] 8 8 / 4 9 5 0 5 9 4 / 8 8 ] { 2 2 1 | , , > ; < < = 7 6 : + ", ". J$% : & * - < < [ } } ' | 1 1 2 { 3 ] ^ _ 4 ( 5 ( 4 _ ^ ] 3 { 2 1 1 | ' } } [ < < - * & : % + ", ". J$# $ % & * = - ; > > , ' ) ) ! ~ ~ { ] ^ / _ ( _ / ^ ] { ~ ~ ! ) ) ' , > > ; - = * & % $ # + ", ". J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$J$+ ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/drawer.xpm��������������������������������������������������������0000644�0001750�0001750�00000053627�12214432632�015601� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * drawer_xpm[] = { "48 48 1098 2", " c None", ". c #DEDFEE", "+ c #9091A0", "@ c #9293A2", "# c #7D7E88", "$ c #B2B2B2", "% c #363838", "& c #6D6E6D", "* c #1D201F", "= c #191D1B", "- c #646665", "; c #565857", "> c #1E2220", ", c #3A3E3D", "' c #565958", ") c #464847", "! c #343636", "~ c #3A3C3B", "{ c #91928F", "] c #707281", "^ c #707380", "/ c #727482", "( c #303139", "_ c #DCDDEC", ": c #8E8F9E", "< c #7B7C86", "[ c #B6B6B6", "} c #363A39", "| c #727574", "1 c #2B2F2D", "2 c #2F3533", "3 c #616664", "4 c #454B49", "5 c #2B312F", "6 c #575C5A", "7 c #545857", "8 c #464948", "9 c #353837", "0 c #3D403F", "a c #8F8F8D", "b c #6D707F", "c c #6F717F", "d c #6F727F", "e c #2F3138", "f c #DADBEA", "g c #8C8D9C", "h c #777983", "i c #BBBBBB", "j c #101414", "k c #252B29", "l c #373D3A", "m c #4E5553", "n c #595F5E", "o c #3B4340", "p c #414845", "q c #5C6260", "r c #505553", "s c #424746", "t c #333736", "u c #3F4241", "v c #8D8E8B", "w c #6C6E7D", "x c #6C6F7C", "y c #6D707E", "z c #2E2F37", "A c #D8D9E8", "B c #8A8C9A", "C c #757780", "D c #BEBEBE", "E c #171C1B", "F c #2E3533", "G c #464D4B", "H c #606865", "I c #505856", "J c #404A47", "K c #58615E", "L c #545C5A", "M c #49514E", "N c #3C4340", "O c #424645", "P c #8B8C88", "Q c #696C7B", "R c #6B6D7B", "S c #6B6E7B", "T c #2D2E36", "U c #D6D8E6", "V c #888998", "W c #8A8B9A", "X c #72737D", "Y c #C3C3C3", "Z c #1A211F", "` c #343C39", " . c #3B4441", ".. c #4A5451", "+. c #4C5653", "@. c #4F5B57", "#. c #56605C", "$. c #4D5854", "%. c #434D49", "&. c #39423F", "*. c #333A38", "=. c #474C4B", "-. c #888987", ";. c #686B79", ">. c #696B79", ",. c #6A6D7A", "'. c #2B2D35", "). c #D4D6E4", "!. c #868896", "~. c #6F717A", "{. c #C8C8C8", "]. c #1D2321", "^. c #38403E", "/. c #404946", "(. c #48524F", "_. c #4E5A56", ":. c #55625E", "<. c #53605B", "[. c #4C5854", "}. c #45504C", "|. c #3D4643", "1. c #363D3B", "2. c #4C504F", "3. c #878885", "4. c #666977", "5. c #676A77", "6. c #676A78", "7. c #2A2C34", "8. c #D3D4E3", "9. c #848694", "0. c #868796", "a. c #6C6E77", "b. c #CDCDCD", "c. c #1C2321", "d. c #38413E", "e. c #48534F", "f. c #505C58", "g. c #576460", "h. c #4D5A55", "i. c #46504D", "j. c #3E4744", "k. c #4F5352", "l. c #848582", "m. c #646775", "n. c #656875", "o. c #666976", "p. c #292B33", "q. c #D0D2E0", "r. c #828492", "s. c #696B75", "t. c #D3D3D3", "u. c #0A100E", "v. c #232A28", "w. c #29312E", "x. c #2F3835", "y. c #333E3B", "z. c #36413E", "A. c #36403E", "B. c #323C39", "C. c #2D3633", "D. c #272F2D", "E. c #212826", "F. c #444848", "G. c #828381", "H. c #626574", "I. c #636673", "J. c #636674", "K. c #282A31", "L. c #CFD0DF", "M. c #808290", "N. c #828392", "O. c #62636D", "P. c #D8D8D8", "Q. c #D5D6D6", "R. c #D7D7D7", "S. c #D7D8D7", "T. c #D7D8D8", "U. c #D8D9D8", "V. c #DFDFDF", "W. c #858684", "X. c #555865", "Y. c #616471", "Z. c #626572", "`. c #272930", " + c #CCCEDC", ".+ c #7F808F", "++ c #686A76", "@+ c #2E3032", "#+ c #2B2C2F", "$+ c #2A2B2E", "%+ c #292B2E", "&+ c #292A2D", "*+ c #282A2D", "=+ c #28292C", "-+ c #27292B", ";+ c #26282B", ">+ c #26272A", ",+ c #252729", "'+ c #242629", ")+ c #4D4F5A", "!+ c #5F626F", "~+ c #5F6370", "{+ c #26282F", "]+ c #CBCCDB", "^+ c #7C7E8C", "/+ c #7F818F", "(+ c #7A7B89", "_+ c #727480", ":+ c #6F717E", "<+ c #6D6F7C", "[+ c #6C6E7B", "}+ c #6A6D78", "|+ c #686A77", "1+ c #666975", "2+ c #656773", "3+ c #61646F", "4+ c #5F616E", "5+ c #5D606C", "6+ c #5B5E6B", "7+ c #5A5D69", "8+ c #5D606D", "9+ c #5D616D", "0+ c #5E616E", "a+ c #25272E", "b+ c #C8CAD8", "c+ c #7B7D8B", "d+ c #7A7C8A", "e+ c #787A88", "f+ c #767886", "g+ c #747784", "h+ c #6E707E", "i+ c #686B78", "j+ c #646774", "k+ c #5E626E", "l+ c #5C5F6C", "m+ c #23252D", "n+ c #C7C9D7", "o+ c #777987", "p+ c #737583", "q+ c #6C707C", "r+ c #696C79", "s+ c #595D69", "t+ c #5A5D6A", "u+ c #22242C", "v+ c #C0C2D0", "w+ c #747684", "x+ c #757785", "y+ c #717481", "z+ c #707280", "A+ c #6D707D", "B+ c #6C6E7C", "C+ c #656876", "D+ c #606370", "E+ c #5A5E6A", "F+ c #585B68", "G+ c #565A66", "H+ c #545864", "I+ c #545865", "J+ c #202229", "K+ c #7C7D84", "L+ c #6B6C74", "M+ c #696A73", "N+ c #696973", "O+ c #676871", "P+ c #666770", "Q+ c #65666F", "R+ c #64656E", "S+ c #62636C", "T+ c #61626B", "U+ c #60616A", "V+ c #5F6069", "W+ c #5D5F67", "X+ c #5C5D66", "Y+ c #5B5D65", "Z+ c #5A5B64", "`+ c #595A63", " @ c #575961", ".@ c #565860", "+@ c #565861", "@@ c #2B2D31", "#@ c #A5A7B5", "$@ c #A3A5B3", "%@ c #A2A4B2", "&@ c #464851", "*@ c #F7F7FF", "=@ c #C3C4D2", "-@ c #C4C4D3", ";@ c #C2C3D2", ">@ c #C0C1D0", ",@ c #BEBFCE", "'@ c #BCBDCC", ")@ c #BABBCA", "!@ c #B8B9C8", "~@ c #B7B8C7", "{@ c #B4B5C4", "]@ c #B3B4C3", "^@ c #B0B2C0", "/@ c #AFB0BF", "(@ c #ACAEBC", "_@ c #ABACBB", ":@ c #A8ABB8", "<@ c #A7A8B7", "[@ c #3A3B44", "}@ c #FFFFFF", "|@ c #C8C8D7", "1@ c #C6C7D6", "2@ c #C4C5D4", "3@ c #C2C2D2", "4@ c #BEBECE", "5@ c #BABBCB", "6@ c #B6B8C7", "7@ c #B2B4C3", "8@ c #B0B1C0", "9@ c #AEB0BF", "0@ c #AAACBB", "a@ c #A8AAB8", "b@ c #A7A9B7", "c@ c #A8AAB9", "d@ c #404149", "e@ c #7D7F8D", "f@ c #797B89", "g@ c #373841", "h@ c #F4F4FF", "i@ c #9898A9", "j@ c #9B9CAB", "k@ c #9D99AE", "l@ c #9B97AC", "m@ c #9995AA", "n@ c #9793A8", "o@ c #9591A6", "p@ c #9390A4", "q@ c #918DA2", "r@ c #8F8CA0", "s@ c #8D8A9E", "t@ c #8B889C", "u@ c #89869A", "v@ c #878498", "w@ c #858396", "x@ c #838094", "y@ c #807F92", "z@ c #7F7D90", "A@ c #7A7C8B", "B@ c #2F3038", "C@ c #9999AA", "D@ c #999AA9", "E@ c #9798A7", "F@ c #9596A5", "G@ c #9394A3", "H@ c #9193A1", "I@ c #848594", "J@ c #808190", "K@ c #7E808E", "L@ c #363740", "M@ c #F2F2FF", "N@ c #9999A9", "O@ c #9C9CAC", "P@ c #5EAA64", "Q@ c #61A768", "R@ c #60A566", "S@ c #60A364", "T@ c #5FA163", "U@ c #5F9F62", "V@ c #5E9E61", "W@ c #5D9C5F", "X@ c #5D9B5E", "Y@ c #5C995D", "Z@ c #5C985C", "`@ c #5B955A", " # c #5B9459", ".# c #5A9258", "+# c #589255", "@# c #758081", "## c #2E3038", "$# c #9797A7", "%# c #9495A4", "&# c #9192A1", "*# c #8D8E9D", "=# c #898B99", "-# c #858795", ";# c #818391", "># c #36373F", ",# c #35373F", "'# c #F0F1FF", ")# c #9A9AAA", "!# c #729D78", "~# c #605B65", "{# c #615D65", "]# c #75717E", "^# c #7E8B86", "/# c #7A8883", "(# c #807D8C", "_# c #93909D", ":# c #9794A0", "<# c #7C7987", "[# c #777683", "}# c #618465", "|# c #747280", "1# c #716F7D", "2# c #706D7A", "3# c #65736A", "4# c #707D7C", "5# c #787A89", "6# c #F0F0FF", "7# c #9898A8", "8# c #9697A6", "9# c #9595A5", "0# c #8D8FA2", "a# c #8A8EA2", "b# c #888CA0", "c# c #878A9F", "d# c #85889D", "e# c #83869B", "f# c #808498", "g# c #7F8296", "h# c #7C8094", "i# c #7A7E92", "j# c #787C90", "k# c #797B8A", "l# c #34363E", "m# c #757885", "n# c #34353F", "o# c #EEEFFE", "p# c #9899A8", "q# c #729F79", "r# c #212023", "s# c #E9E9ED", "t# c #333336", "u# c #82938B", "v# c #77887E", "w# c #B9BABF", "x# c #BDBEC5", "y# c #BCBDC5", "z# c #BCBDC1", "A# c #888990", "B# c #5D805F", "C# c #70727B", "D# c #6E6F78", "E# c #6C6D77", "F# c #617266", "G# c #6F7C7B", "H# c #767986", "I# c #2C2D36", "J# c #9696A6", "K# c #8D8FA3", "L# c #A89560", "M# c #B29642", "N# c #AD903E", "O# c #A88C39", "P# c #A58936", "Q# c #A98D39", "R# c #A98D3A", "S# c #A78B38", "T# c #A68A36", "U# c #74788D", "V# c #777A87", "W# c #34353D", "X# c #33343D", "Y# c #ECECFC", "Z# c #6C9871", "`# c #7B7B85", " $ c #4E4E51", ".$ c #A3A3A5", "+$ c #3B433B", "@$ c #707972", "#$ c #38383A", "$$ c #93939A", "%$ c #BBBCC4", "&$ c #B9BAC2", "*$ c #C1C2C8", "=$ c #AEACB5", "-$ c #878990", ";$ c #6D6D77", ">$ c #686972", ",$ c #5F7064", "'$ c #6D7A78", ")$ c #747685", "!$ c #2B2C34", "~$ c #9294A2", "{$ c #AC9B72", "]$ c #C09F40", "^$ c #BC9D41", "/$ c #B89B41", "($ c #B5973E", "_$ c #B4963C", ":$ c #B1933A", "<$ c #B3943C", "[$ c #B2953C", "}$ c #B3953C", "|$ c #B1923A", "1$ c #977F34", "2$ c #73778B", "3$ c #757786", "4$ c #32333C", "5$ c #EAEBFA", "6$ c #9191A1", "7$ c #69966F", "8$ c #85858F", "9$ c #95969E", "0$ c #1C1C1C", "a$ c #AAAAAC", "b$ c #101010", "c$ c #030303", "d$ c #7F8086", "e$ c #B9BAC1", "f$ c #B8B9C0", "g$ c #B7B8C0", "h$ c #B5B6BE", "i$ c #B2B2B7", "j$ c #7A7B83", "k$ c #596B5F", "l$ c #6C7877", "m$ c #727582", "n$ c #2A2B33", "o$ c #9292A2", "p$ c #8E8F9F", "q$ c #D8BB65", "r$ c #CEB25B", "s$ c #CCB059", "t$ c #CBAF59", "u$ c #C9AC57", "v$ c #C7AB57", "w$ c #C5A955", "x$ c #C8AC57", "y$ c #C1A861", "z$ c #7F6A29", "A$ c #947C2F", "B$ c #717689", "C$ c #737683", "D$ c #31333B", "E$ c #717381", "F$ c #30323A", "G$ c #E8E8F8", "H$ c #8F909F", "I$ c #9393A3", "J$ c #5E9860", "K$ c #909A97", "L$ c #343335", "M$ c #000000", "N$ c #141415", "O$ c #959597", "P$ c #6C6C71", "Q$ c #BEBFC8", "R$ c #B8B9C1", "S$ c #B6B7BF", "T$ c #B4B5BC", "U$ c #B2B3BB", "V$ c #BFC0C6", "W$ c #8B9E8A", "X$ c #6A7875", "Y$ c #282A32", "Z$ c #8C8E9E", "`$ c #CCAE53", " % c #B99D43", ".% c #B89C42", "+% c #BA9D43", "@% c #B99C43", "#% c #B59940", "$% c #B3973E", "%% c #B4983F", "&% c #B2973D", "*% c #A18735", "=% c #786723", "-% c #907A2A", ";% c #707388", ">% c #717382", ",% c #2F3139", "'% c #E6E7F6", ")% c #76AA77", "!% c #252A24", "~% c #131313", "{% c #ACACAF", "]% c #87888D", "^% c #BFC0C8", "/% c #BABBC4", "(% c #B4B5BD", "_% c #66666A", ":% c #5C6D59", "<% c #6B7776", "[% c #6E717E", "}% c #272931", "|% c #8A8C9C", "1% c #CBAC52", "2% c #BB9D44", "3% c #A3882B", "4% c #AA8E34", "5% c #AA8F34", "6% c #AC9139", "7% c #B19747", "8% c #B1963C", "9% c #B2973C", "0% c #9C832E", "a% c #75641D", "b% c #917A2B", "c% c #6D7285", "d% c #2E2F38", "e% c #E4E5F5", "f% c #8B8C9B", "g% c #8F8F9F", "h% c #5F885E", "i% c #050405", "j% c #0F0F0F", "k% c #88888A", "l% c #606164", "m% c #7B7B80", "n% c #B3B4BB", "o% c #68686C", "p% c #788878", "q% c #667271", "r% c #6D6F7D", "s% c #262730", "t% c #E4E5F4", "u% c #818290", "v% c #44454B", "w% c #888A99", "x% c #CAAC51", "y% c #AA8F35", "z% c #B89E45", "A% c #E0C874", "B% c #B79B45", "C% c #B2984A", "D% c #B0953B", "E% c #AB9036", "F% c #75641C", "G% c #8C7525", "H% c #6C7084", "I% c #6A6C7A", "J% c #2C2E37", "K% c #E2E3F2", "L% c #497246", "M% c #64646B", "N% c #656568", "O% c #D3D4D7", "P% c #D6D6D9", "Q% c #7B7B7F", "R% c #9E9FA5", "S% c #494A4C", "T% c #5B6A59", "U% c #687372", "V% c #25272F", "W% c #E2E3F3", "X% c #676875", "Y% c #0E0E10", "Z% c #2A2B2D", "`% c #868897", " & c #A88D33", ".& c #BCA049", "+& c #F3D890", "@& c #927D3E", "#& c #AB9246", "$& c #AD9238", "%& c #AC9037", "&& c #9B822D", "*& c #716016", "=& c #88731F", "-& c #6A6E82", ";& c #E1E2F1", ">& c #878897", ",& c #8B8B9B", "'& c #588056", ")& c #050506", "!& c #8F9097", "~& c #ACADB4", "{& c #A8A9AC", "]& c #DFDFE2", "^& c #E0E0E3", "/& c #E5E5E8", "(& c #626264", "_& c #606D5D", ":& c #64706F", "<& c #24252D", "[& c #E0E1F1", "}& c #7C7D8B", "|& c #1B1B20", "1& c #2B2B2D", "2& c #848696", "3& c #CAAC52", "4& c #B69A41", "5& c #A98E34", "6& c #B09643", "7& c #937D34", "8& c #877336", "9& c #AC944E", "0& c #AB8F35", "a& c #9B812D", "b& c #705F13", "c& c #867018", "d& c #686C81", "e& c #696C7A", "f& c #749875", "g& c #070507", "h& c #1E1E1F", "i& c #999AA0", "j& c #94949A", "k& c #7D7E7F", "l& c #E9EAEC", "m& c #DFDFE3", "n& c #DEDFE1", "o& c #626364", "p& c #121013", "q& c #7A867D", "r& c #616C6B", "s& c #23242C", "t& c #4D4D56", "u& c #828493", "v& c #C8AB51", "w& c #B69A40", "x& c #B39842", "y& c #B29741", "z& c #B09540", "A& c #AD923E", "B& c #AE9440", "C& c #9E8430", "D& c #6F5F12", "E& c #867117", "F& c #666A7F", "G& c #292A33", "H& c #DDDEED", "I& c #838593", "J& c #878797", "K& c #499D41", "L& c #789275", "M& c #080809", "N& c #98999E", "O& c #7E7E84", "P& c #A9AAAC", "Q& c #DFE0E2", "R& c #DEDEE1", "S& c #E1E2E5", "T& c #5D5C5F", "U& c #768F6E", "V& c #447933", "W& c #5F6D67", "X& c #21232B", "Y& c #DCDDED", "Z& c #818292", "`& c #C4A74F", " * c #AF933C", ".* c #B0943D", "+* c #AC923A", "@* c #AA8F37", "#* c #A68B34", "$* c #A58A32", "%* c #726017", "&* c #8A741F", "** c #64687C", "=* c #272932", "-* c #DADCEA", ";* c #848695", ">* c #5F8362", ",* c #7D7C88", "'* c #747679", ")* c #161615", "!* c #111111", "~* c #252627", "{* c #0E0D0E", "]* c #B1B1B4", "^* c #E4E5E8", "/* c #DDDEE0", "(* c #DADBDD", "_* c #66666B", ":* c #424E46", "<* c #5F6969", "[* c #626573", "}* c #20222A", "|* c #818291", "1* c #7F8190", "2* c #816925", "3* c #806926", "4* c #806922", "5* c #7F6823", "6* c #79611F", "7* c #76601C", "8* c #745E1B", "9* c #735D17", "0* c #8A731A", "a* c #61667A", "b* c #262931", "c* c #D9DAE9", "d* c #838393", "e* c #5D835E", "f* c #8C8D94", "g* c #6F7072", "h* c #10100F", "i* c #B4B4B6", "j* c #DDDEE1", "k* c #DDDDE0", "l* c #E3E4E7", "m* c #3C4A39", "n* c #5C6766", "o* c #1F2129", "p* c #D8D9E9", "q* c #7D7F8E", "r* c #B49239", "s* c #B08F3B", "t* c #918466", "u* c #9A854F", "v* c #A78834", "w* c #A48533", "x* c #9F812C", "y* c #937B34", "z* c #616574", "A* c #616472", "B* c #7E7F8E", "C* c #808291", "D* c #5C815D", "E* c #65726B", "F* c #7E8C84", "G* c #88898F", "H* c #262626", "I* c #7B7C80", "J* c #797B82", "K* c #45603F", "L* c #B7B8BA", "M* c #E6E7EA", "N* c #EAEBEE", "O* c #3D4938", "P* c #5B6565", "Q* c #1E2027", "R* c #96855C", "S* c #767989", "T* c #767885", "U* c #707587", "V* c #7A7777", "W* c #6F7281", "X* c #7B756A", "Y* c #6C6F7D", "Z* c #26272F", "`* c #24262E", " = c #D5D6E5", ".= c #5A805B", "+= c #666871", "@= c #5F6D65", "#= c #5D6A62", "$= c #5F626B", "%= c #77797F", "&= c #7D7E84", "*= c #595B64", "== c #555860", "-= c #4E694B", ";= c #41434A", ">= c #646565", ",= c #353534", "'= c #394639", ")= c #596463", "!= c #1D1F26", "~= c #D4D5E5", "{= c #777988", "]= c #6B6E7C", "^= c #5D606E", "/= c #5B5F6B", "(= c #22252C", "_= c #D2D4E2", ":= c #7D7E8D", "<= c #578455", "[= c #637667", "}= c #617566", "|= c #5F7364", "1= c #5A755B", "2= c #587459", "3= c #5A6C5E", "4= c #56685A", "5= c #546658", "6= c #536456", "7= c #4D6F47", "8= c #516254", "9= c #4D5D50", "0= c #4F5E52", "a= c #4A6246", "b= c #586262", "c= c #1B1E25", "d= c #5C606C", "e= c #5B5F6C", "f= c #585C68", "g= c #21232C", "h= c #D1D3E1", "i= c #737D80", "j= c #727C7F", "k= c #707A7D", "l= c #6F787C", "m= c #6C7679", "n= c #6B7478", "o= c #697376", "p= c #687174", "q= c #656F72", "r= c #646E70", "s= c #626B6E", "t= c #616A6D", "u= c #5F686A", "v= c #5D6669", "w= c #5B6567", "x= c #5A6265", "y= c #595E68", "z= c #1B1D24", "A= c #D0D2E1", "B= c #686C78", "C= c #595D6A", "D= c #565966", "E= c #525663", "F= c #737584", "G= c #6F7180", "H= c #6B6D7C", "I= c #535663", "J= c #191B23", "K= c #C6C8D6", "L= c #666876", "M= c #5F6270", "N= c #545764", "O= c #525662", "P= c #525562", "Q= c #1F2229", "R= c #16181C", "S= c #16171C", "T= c #15171B", "U= c #09090C", "V= c #37383D", "W= c #212126", "X= c #212227", "Y= c #212226", "Z= c #202126", "`= c #1F2025", " - c #1F1F24", ".- c #1E1F24", "+- c #1D1E23", "@- c #1D1D22", "#- c #1C1D21", "$- c #1B1C21", "%- c #1A1C20", "&- c #1A1B20", "*- c #191A1F", "=- c #191A1E", "-- c #18191D", ";- c #17181D", ">- c #7D7D84", ",- c #6E6E76", "'- c #6D6E76", ")- c #6C6C75", "!- c #6A6B73", "~- c #696972", "{- c #676770", "]- c #65666E", "^- c #63646C", "/- c #62636B", "(- c #61626A", "_- c #606169", ":- c #5F6068", "<- c #5D5E67", "[- c #5C5E66", "}- c #5B5C64", "|- c #5A5B63", "1- c #2E2F33", "2- c #F6F6FF", "3- c #C7C7D6", "4- c #C5C5D5", "5- c #C3C3D3", "6- c #C1C1D1", "7- c #BFBFCF", "8- c #BDBDCD", "9- c #BBBCCB", "0- c #B9BAC9", "a- c #B6B7C7", "b- c #B5B6C5", "c- c #B1B2C1", "d- c #ADAEBD", "e- c #A9AAB9", "f- c #A6A8B7", "g- c #3F4049", "h- c #E9EAF7", "i- c #9494A4", "j- c #8F919E", "k- c #8E909C", "l- c #8B8D9A", "m- c #888A98", "n- c #7B7D8C", "o- c #E8E8F7", "p- c #9495A3", "q- c #8F90A1", "r- c #8585A1", "s- c #7675A2", "t- c #726FA2", "u- c #7675A0", "v- c #81829A", "w- c #E5E6F6", "x- c #7574A4", "y- c #605CA6", "z- c #5955A9", "A- c #5D59AB", "B- c #5F5BAC", "C- c #5955AA", "D- c #514EA6", "E- c #58569F", "F- c #6E6E98", "G- c #81838E", "H- c #9394A2", "I- c #6A67A6", "J- c #5955A8", "K- c #6360AD", "L- c #6E6AB2", "M- c #7571B6", "N- c #7B78B9", "O- c #A7A4D0", "P- c #CECDE5", "Q- c #D3D2E7", "R- c #8B88C3", "S- c #66659D", "T- c #7C7E8B", "U- c #E2E2F2", "V- c #9495A2", "W- c #6C6AA5", "X- c #5652A8", "Y- c #918EC5", "Z- c #D4D3E8", "`- c #D0CEE5", " ; c #C5C3E0", ".; c #B5B4D7", "+; c #A9A7D2", "@; c #DEDDED", "#; c #6B68B2", "$; c #686797", "%; c #32333B", "&; c #E0E1F0", "*; c #7F7EA3", "=; c #5955A7", "-; c #5C58A9", ";; c #6C69B2", ">; c #A3A1CE", ",; c #FEFEFE", "'; c #FBFBFC", "); c #E8E8F2", "!; c #E6E6F1", "~; c #F2F2F7", "{; c #FFFFFE", "]; c #615DAC", "^; c #5854A7", "/; c #747686", "(; c #31323B", "_; c #DEDEEE", ":; c #9192A2", "<; c #6967A5", "[; c #5D59AA", "}; c #6F6BB4", "|; c #8380BD", "1; c #D9D8EA", "2; c #F6F6F9", "3; c #B1AED4", "4; c #9D9ACA", "5; c #8A86C1", "6; c #7B77B9", "7; c #6A66B0", "8; c #5956A8", "9; c #524FA6", "0; c #636383", "a; c #717380", "b; c #8E8FA0", "c; c #5D5AA6", "d; c #5854A8", "e; c #5B57A9", "f; c #6A66B1", "g; c #7875B8", "h; c #8986C0", "i; c #C5C3DF", "j; c #F8F8FA", "k; c #A4A1CE", "l; c #8885BF", "m; c #7975B7", "n; c #6864AF", "o; c #5451A3", "p; c #494D85", "q; c #35346B", "r; c #747781", "s; c #8C8D9E", "t; c #5753A8", "u; c #6764AF", "v; c #A29FCE", "w; c #D2D1E7", "x; c #E3E2EF", "y; c #E0DFED", "z; c #EDEDF5", "A; c #AAA8D2", "B; c #6E6BB2", "C; c #5653A6", "D; c #49509D", "E; c #383861", "F; c #514D9E", "G; c #6E707F", "H; c #8A8B9C", "I; c #5753A7", "J; c #E5E5F0", "K; c #ECECF5", "L; c #B8B7DA", "M; c #A5A2CF", "N; c #9A98C9", "O; c #8C89C3", "P; c #625FAC", "Q; c #6367AD", "R; c #26275A", "S; c #3D3B81", "T; c #5753A9", "U; c #6B6D7D", " . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( ", " _ : + < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e ", " f g : h i j k l m n o p q r s t u v w x y z ", " A B g C D E F G H I J K L M N F O P Q R S T ", " U V W X Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.", " ).!.V ~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.", " 8.9.0.a.b.c.d.J e.f.g.:.h.i.j.1.k.l.m.n.o.p.", " q.r.9.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.", " L.M.N.O.P.Q.R.S.T.P.U.U.P.T.R.R.V.W.X.Y.Z.`.", " +.+M.++@+#+$+%+&+*+=+-+;+>+>+,+'+;+)+!+~+{+", " ]+^+/+(+_+:+<+[+}+|+1+2+Z.3+4+5+6+7+8+9+0+a+", " b+c+^+d+e+f+g+/ ^ h+x ,.i+o.j+Z.Y.k+8+6+l+m+", " n+e+c+e+o+g+p+^ c q+R r+5.n.I.Y.!+9+6+s+t+u+", " v+w+x+w+y+z+A+B+r+i+C+j+Z.D+0+l+E+F+G+H+I+J+", " K+L+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@", "#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@#@$@$@[@}@|@|@1@2@3@>@4@'@5@!@6@{@7@8@9@(@0@a@b@c@d@", "e@d+f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@d+B@h@C@j@D@E@F@G@H@+ : g W V 0.I@r.J@K@^+d+c+L@", "^+c+f@g@M@N@O@P@Q@R@R@S@T@U@V@W@X@Y@Z@`@ #.#+#@#d+##M@D@j@D@$#F@%#&#+ *#g =#V -#I@;#M.K@^+c+c+>#", "c+e+e+,#'#E@)#!#~#{#]#^#/#(#_#:#<#[#}#|#1#2#3#4#5#T 6#7#D@8#9#G@�#a#b#c#d#e#f#g#h#i#j#(+e+k#l#", "e+o+m#n#o#9#p#q#r#s#t#u#v#w#x#y#z#A#B#C#D#E#F#G#H#I#o#J#E@%#G@&#K#L#M#N#O#P#Q#R#R#S#R#T#U#o+V#W#", "o+x+w+X#Y#G@J#Z#`# $.$+$@$#$$$%$&$*$=$-$;$>$,$'$)$!$Y#%#J#~$&#{$]$^$/$($_$:$<$[$}$|$S#1$2$g+3$4$", "x+p+y+4$5$6$%#7$8$9$0$a$b$c$d$%$e$f$g$h$i$j$k$l$m$n$5$o$%#&#p$q$r$s$t$t$t$u$v$w$x$y$z$A$B$p+C$D$", "p+E$z+F$G$H$I$J$K$L$M$N$O$P$Q$R$f$S$h$T$U$V$W$X$] Y$G$+ @ : Z$`$ %.%+%@%.%#%$%%%&%*%=%-%;%^ >%( ", "E$c A+,%'%*#+ )%!%M$M$M$~%{%]%^%/%S$(%T$e$_%:%<%[%}%'%: + 8#|%1%+%2%3%4%5%6%7%8%9%0%a%b%c%c d e ", "c A+x d%e%f%g%h%i%M$M$M$M$j%k%l%m%T$(%n%o%M$p%q%r%s%t%: u%v%w%x%+%+%y%z%A%B%C%D%E%0%F%G%H%x y z ", "A+S I%J%K%=#g L%M$M$M$M$M$M%N%O%P%Q%R%S%M$M$T%U%,.V%W%X%Y%Z%`%x%+% % &.&+&@&#&$&%&&&*&=&-&R S T ", "S r+i+'.;&>&,&'&c$M$M$)&!&~&{&]&^&/&(&M$M$M$_&:&r+<&[&}&|&1&2&3&.%4&5&6&7&8&9&0& &a&b&c&d&i+e&'.", "r+5.o.7.. -#V f&g&M$M$M$h&i&j&k&l&m&n&o&M$p&q&r&o.s&. >&-#t&u&v&w&%%x&y&z&A&B&}@}@C&D&E&F&5.5.7.", "5.n.j+G&H&I&J&K&L&M$M$M$M$M&N&O&P&Q&R&S&T&U&V&W&n.X&Y&I@0.!.Z&`& *.*+*@*#*#*$*}@M$}@%*&***n.C+G&", "n.I.Z.=*-*;#;*>*,*'*)*M$M$M$!*~*{*]*^*/*(*_*:*<*[*}*f r.9.|*1*2*3*4*5*6*7*8*9*}@M$M$}@0*a*I.I.K.", "I.Y.D+b*c*/+d*e*C#D#f*g*h*M$M$M$M$N$i*j*k*l*m*n*Y.o*p*M.N./+q*r*s*t*u*v*w*x*y*}@M$M$M$}@z*Y.A*`.", "Y.!+k+V%U B*C*D*D#E#O+E*F*G*H*b$I*J*K*L*M*N*O*P*!+Q*U K@M.e@c+R*S*T*U*V*W*X*Y*}@M$M$M$M$}@!+~+Z*", "!+9+l+`* =c+/+.=E#M++=@=#=$=%=&=*===-=;=>=,='=)=8+!=~=^+/+c+d+{=f+C$/ d h+]=I%}@M$M$M$}@0+9+^=a+", "0+/=E+(=_=d+:=<=[=}=|=1=2=3=4=5=5=6=7=8=9=0=a=b=6+c=_=c+^+d+o+f+w+/ z+h+B+,.i+}@}@}@M$}@d=6+e=m+", "l+s+f=g=h=o+c+i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=s+z=A=e+c+e+o+g+p+^ c x R B=5.n.I.}@M$M$}@s+C=u+", "D=H+E=o*n+p+x+F=y+G=A+H=r+6.n.J.Y.D+^=l+C=F+D=H+I=J=K=/ p+/ d h+S I%5.L=J.Z.M=0+l+t+}@}@N=O=P=Q=", "R=S=T=U=V=W=X=Y=Z=`= -.-+-@-#-$-%-&-*-=---;-R=S=T=M$>-,-'-)-L+!-~-O+{-]-R+^-/-(-_-:-<-[-}-|-}-1-", " 2-1@3-4-5-6-7-8-9-0-a-b-7@c-9@d-0@e-f-#@f-g-", " h-)#j@)#7#8#i-@ + j-k-l-m-0.9.r.M.K@e@d+n-L@", " o-D@j@D@$#F@p-q-r-s-t-u-v-2&I@;#J@e@^+c+c+>#", " w-7#D@8#%#@ x-y-z-A-B-C-D-E-F-G-e@c+f@e+f@l#", " t%F@E@%#H-I-J-K-L-M-N-O-P-Q-R-S-T-d+o+o+V#W#", " U-i-F@V-W-X-K-Y-Z-`- ;.;+;@;}@#;$;o+m#g+x+%;", " &;o$p-*;=;-;;;>;,;';);!;~;}@{;];^;/;C$p+C$(;", " _;+ :;<;^;[;};|;1;2;3;4;5;6;7;8;9;0;a;^ >%( ", " _ : b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;c d B@", " f g s;t;^;u;v;w;x;y;z;}@A;B;C;D;E;F;G;x y z ", " A W H;t;I;J;}@}@K;L;M;N;O;P;Q;R;S;T;U;R S T "}; ���������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/textr.xpm���������������������������������������������������������0000644�0001750�0001750�00000012456�12214432632�015456� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "27 24 181 2", " c None", ". c #000000000000", "X c #084200000000", "o c #210810840000", "O c #421018C60000", "+ c #5294318C0000", "@ c #5AD6318C0000", "# c #6B5A39CE0000", "$ c #5294294A0000", "% c #210808420000", "& c #7BDE42100842", "* c #9CE65AD60842", "= c #AD6A63180842", "- c #AD6A63181084", "; c #A52863180842", ": c #AD6A63180000", "> c #9CE65AD60000", ", c #4210294A0000", "< c #084208420000", "1 c #8C624A520000", "2 c #A5286B5A1084", "3 c #AD6A6B5A1084", "4 c #6B5A42100842", "5 c #18C608420000", "6 c #AD6A6B5A18C6", "7 c #AD6A6B5A2108", "8 c #AD6A739C294A", "9 c #AD6A739C318C", "0 c #AD6A7BDE294A", "q c #A5287BDE318C", "w c #6B5A63185AD6", "e c #4A5242104A52", "r c #210818C618C6", "t c #318C18C60000", "y c #294A18C60000", "u c #108408420000", "i c #739C4A520000", "p c #AD6A7BDE39CE", "a c #AD6A7BDE318C", "s c #8420739C6318", "d c #42105294A528", "f c #108439CECE72", "g c #0000318CDEF6", "h c #00002108B5AC", "j c #0842108494A4", "k c #0842210894A4", "l c #10842108739C", "z c #18C6108418C6", "x c #39CE21080000", "c c #739C6B5A7BDE", "v c #21084A52D6B4", "b c #294A5AD6EF7A", "n c #18C64A52F7BC", "m c #000039CEF7BC", "M c #000039CEEF7A", "N c #0000318CE738", "B c #000039CEE738", "V c #0000294ACE72", "C c #000008428C62", "Z c #108418C6294A", "A c #AD6A739C2108", "S c #A528739C294A", "D c #21085AD6DEF6", "F c #5AD68420F7BC", "G c #BDEECE72FFFF", "H c #63188C62F7BC", "J c #00004210F7BC", "K c #00001084AD6A", "L c #0000000094A4", "P c #000008428420", "I c #0000000018C6", "U c #7BDE42100000", "Y c #5AD65294739C", "T c #08424A52EF7A", "R c #52948420FFFF", "E c #9CE6B5ACFFFF", "W c #318C6B5AF7BC", "Q c #00001084739C", "! c #94A4739C294A", "~ c #294A42109CE6", "^ c #21085AD6FFFF", "/ c #00004210FFFF", "( c #000039CEDEF6", ") c #000018C6BDEE", "_ c #000000001084", "` c #6B5A5AD64210", "' c #108439CEB5AC", "] c #18C64A52E738", "[ c #18C65294F7BC", "{ c #00004A52FFFF", "} c #0000294ADEF6", "| c #0000294AC630", " . c #08424210D6B4", ".. c #000018C6B5AC", "X. c #0000084239CE", "o. c #A5286B5A18C6", "O. c #52944A524A52", "+. c #0842318CDEF6", "@. c #08426B5AFFFF", "#. c #000039CECE72", "$. c #08424210C630", "%. c #08425AD6D6B4", "&. c #00000842A528", "*. c #1084294A94A4", "=. c #318C318C294A", "-. c #4A52294A0842", ";. c #94A463182108", ":. c #9CE66B5A2108", ">. c #4A524A525AD6", ",. c #0000318CCE72", "<. c #08426B5AEF7A", "1. c #08427BDEEF7A", "2. c #00005294D6B4", "3. c #000018C6AD6A", "4. c #6B5A5AD66318", "5. c #7BDE529418C6", "6. c #8420529418C6", "7. c #8C625AD61084", "8. c #84205AD618C6", "9. c #52944A5239CE", "0. c #1084318C94A4", "q. c #00002108C630", "w. c #00001084A528", "e. c #0842739CEF7A", "r. c #08424A52B5AC", "t. c #52945AD67BDE", "y. c #842063185294", "u. c #94A46B5A318C", "i. c #294A21080842", "p. c #94A463180842", "a. c #5AD64A524A52", "s. c #18C642106B5A", "d. c #000021084A52", "f. c #000000005AD6", "g. c #00002108BDEE", "h. c #08426318DEF6", "j. c #08425294CE72", "k. c #6B5A6B5A8420", "l. c #739C739C6318", "z. c #9CE68C625294", "x. c #A52884204A52", "c. c #AD6A842039CE", "v. c #AD6A6B5A0842", "b. c #A5286B5A0842", "n. c #AD6A739C1084", "m. c #AD6A739C18C6", "M. c #9CE66B5A18C6", "N. c #84205AD62108", "B. c #529439CE294A", "V. c #318C2108294A", "C. c #318C4A527BDE", "Z. c #8C62739C4A52", "A. c #A52894A46B5A", "S. c #AD6A9CE6739C", "D. c #AD6A94A45AD6", "F. c #AD6A8C624A52", "G. c #AD6A7BDE2108", "H. c #94A46B5A2108", "J. c #AD6A8C625AD6", "K. c #AD6A9CE67BDE", "L. c #AD6AA5288420", "P. c #A5289CE66B5A", "I. c #A52894A45AD6", "U. c #AD6A8420318C", "Y. c #A5286B5A294A", "T. c #AD6A8C626318", "R. c #A52894A46318", "E. c #A528739C18C6", "W. c #AD6A94A46B5A", "Q. c #AD6A84204210", "!. c #8C6263181084", "~. c #18C610840000", "^. c #739C42100000", "/. c #AD6A8C625294", "(. c #39CE294A0842", "). c #A528631818C6", "_. c #A5287BDE39CE", "`. c #8C6263182108", "'. c #63184A521084", "]. c #52944A522108", "[. c #210821081084", " . . . . . . . . ", " X o O + @ @ # @ @ @ $ % . ", " o & * = = = - ; ; : : > , X . . . . . . . ", " < 1 = - - - 2 - - - 3 3 4 X X < < X X X X X X X X . ", " 5 > 6 7 8 8 8 9 0 0 q w e r t y u < < < < < < < < < ", " . i 7 8 9 p a p p s d f g h j k l z X X < < < X < < ", " x 6 7 9 a 9 8 c v b n m M N B V C Z X . . . . . X ", " . u = 7 8 9 A S D F G H m J J B K L P I . ", " . < U 2 8 9 7 Y T R E W m J J B K L K Q ", " X < x = 6 8 ! ~ b H ^ / J N ( ( V ) K L _ ", " . < o 1 6 A ` ' ] F [ { J } | .g g ..L X.. ", " X < < @ o.o.O.| } +.J @.@.#.$.%.B g ) &.*.=.u . ", " . X X -.;.:.>.,.J J } V #.<.1.2.3.&.) } v 4.5.6.y ", " . . . t 7.8.9.0.#.J q.w.w.g e.2.h h ' r.t.y.u.:.i. ", " y : ; p.5.a.s.d.f.C g.h.j.h ~ k.l.z.x.c.0 i. ", " y : ; v.b.n.m.M.N.B.V.C.k.Z.A.S.A.D.F.c.G.i. ", " . . t : b.v.n.m.m.G.G.G.H.J.K.L.S.P.A.I.F.U.G.i. ", " . . . x : 2 m.m.m.m.G.G.A Y.T.K.S.P.A.R.F.U.0 A i. ", ". . . . t ; 2 o.E.A A A 0 A S J.W.R.R.I.Q.0 G.A !.~. ", " . . . < t ^.; 2 7 A 8 0 a S /.D.D./.c.0 A !.(.u ", " . . . . . < y # = - Y.Y.9 q /./.F.0 G.E.u u . ", " . . . u t # 1 * ).Y._.q `.'.u . ", " . X 5 o y + U * 8.].[.. ", " . X < < u o t o < . "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/nonopaque.xpm�����������������������������������������������������0000644�0001750�0001750�00000015431�12214432632�016311� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 95 2", " c None", ". c #000000000000", "X c #9CE69CE69CE6", "o c #B5ACB5ACB5AC", "O c #FFFFFFFFFFFF", "+ c #5AD65AD65AD6", "@ c #108400000000", "# c #39CE00000000", "$ c #B5AC4A524A52", "% c #BDEE4A524A52", "& c #A528A528A528", "* c #63184A524A52", "= c #FFFF4A524A52", "- c #7BDE63186318", "; c #D6B4D6B4D6B4", ": c #94A44A524A52", "> c #631863186318", ", c #7BDE4A524A52", "< c #94A494A494A4", "1 c #CE72CE72CE72", "2 c #F7BCF7BCF7BC", "3 c #CE724A524A52", "4 c #529452945294", "5 c #E738E738E738", "6 c #210800000000", "7 c #B5AC00000000", "8 c #18C618C618C6", "9 c #108410841084", "0 c #C6304A524A52", "q c #842084208420", "w c #4A524A524A52", "e c #E7384A524A52", "r c #D6B44A524A52", "t c #AD6A94A494A4", "y c #739C4A524A52", "u c #739C739C739C", "i c #EF7A4A524A52", "p c #C630C630C630", "a c #294A00000000", "s c #8C624A524A52", "d c #DEF6E738DEF6", "f c #F7BCFFFFF7BC", "g c #084200000000", "h c #5AD64A524A52", "j c #DEF6DEF6DEF6", "k c #AD6A4A524A52", "l c #6B5A4A524A52", "z c #7BDE7BDE7BDE", "x c #6B5A52945294", "c c #529400000000", "v c #DEF6294A294A", "b c #210821082108", "n c #084208420842", "m c #6B5A00000000", "M c #739C00000000", "N c #318C00000000", "B c #631800000000", "V c #108408421084", "C c #210818C62108", "Z c #18C600000000", "A c #421000000000", "S c #AD6A00000000", "D c #5AD600000000", "F c #8C6200000000", "G c #8C628C628C62", "H c #8C62294A294A", "J c #318C00000842", "K c #318C08420842", "L c #39CE294A294A", "P c #39CE318C318C", "I c #CE72318C318C", "U c #E738318C318C", "Y c #94A4318C318C", "T c #5294318C318C", "R c #9CE6318C318C", "E c #421042104210", "W c #4210318C318C", "Q c #B5AC318C318C", "! c #5AD652945AD6", "~ c #210818C618C6", "^ c #318C318C318C", "/ c #94A484208420", "( c #52944A524A52", ") c #EF7AF7BCEF7A", "_ c #E738EF7AE738", "` c #AD6AAD6AAD6A", "' c #EF7AEF7AEF7A", "] c #8C6284208420", "[ c #6B5A6B5A6B5A", "{ c #DEF64A524A52", "} c #A5284A524A52", "| c #CE72D6B4CE72", " . c #F7BC4A524A52", ".. c #739C5AD65AD6", "X. c #9CE663186318", " ", " ", " . . . . . X . . . . . . . . . . . . . . . . . . . X . . . . . ", " . o o o . X . . . . . . . . . . . . . . . . . . . X . O . O . ", " . o . o . X . . . . . . . . . . . . . . . . . . . X . . O . . ", " . o o o . X . . . . . . . . . . . . . . . . . . . X . O . O . ", " . . . . . X . . . . . . . . . . . . . . . . . . . X . . . . . ", " o o o . . o . . o . . + . . o . . o . . o . . o . . o . . . . . . ", " . . . . . . . . . . @ # . . . . . . . . . . . . . . . . . . . . ", " . O O O O O O O O O $ % & O O O O O O O O O O O O O O O O O . ", " . O O . O O O O O * = = - ; O O O O O O O O O O O O O O O O . . ", " . O O . O O O O O $ = = : > O O O O O O O O O O O O O O O O . . ", " . O O O O O O O * = = = , < 1 2 O O O O O O O O O O O O O O . ", " . O O . O O O O $ = = 3 4 & 4 5 O O O O O O O O O O O O O O . . ", " . O O . O O . 6 = 7 7 , 8 9 * . . O . . O . . O . . O . . O . . . . . . ", " . O O O O O . $ = = 0 4 q w e r t O O O O O O O O O O O O O . . ", " . O O . O O * = = = y u > : = i y u p O O O O O O O O O O O . ", " . O O . O O a i = 0 4 q w e = = = s q d 1 O O O O O O O O f . . ", " . O O O O O g i = y u > : = = = = h j q h u 1 O O O O O O < . . ", " . O O . O O 1 : 0 4 q w e = = = k + < h = % l z 1 O O O 5 w . . ", " . O O . O O . x * 8 9 c 7 7 v 7 @ b n m 7 7 7 M 6 . . . . c N . . . X . . . . . ", " . O O O O O . q 4 b w e = 7 v B V C Z 7 7 7 7 7 7 A . . g S c n . . X . . . O . ", " . O O . O O O o z 9 : 7 = 7 v @ C n m 7 7 7 7 7 7 6 . . D 7 F n . . X . . O . . ", " . O O . O O . O G . i = = 7 H V C Z 7 7 7 7 7 7 m n 8 @ S 7 7 J . . X . . . O . ", " . O O O O O . O p K S 7 7 7 L C n m 7 7 7 7 7 7 Z 8 V D 7 7 7 B n . X . . . . . ", " . O O . O O O O d > P I U Y w + T U U U U U U R E > W U U U U Q ! o o o o o o o ", " . . . . . . . . . n ~ m S @ b n m 7 7 7 7 7 7 Z C V B 7 7 7 7 7 @ . . . . . . . ", " o o o o ^ o . o o . X + h > z * = = = = = = $ + z h = = = = = = k p O O O O O . ", " o ^ ^ . ^ o ^ ^ ^ . p q w q + $ = = = = = = * z + k = = = = = = r / O O O O O . ", " . . . O ; z z ( 3 = = = = = $ + z h = = = = = = = i x ) O O O O . ", " . . O _ ` G G > , 3 = = = h z + k = = = = = = = = : o O O O O . ", " . . O O f < ' ` u 4 , 3 $ + z h = = = = = = = = = i ] O O O O . ", " . . . O O O 5 5 G G G [ 4 w z + $ = = = = = = = = { } > O O O O . ", " . . . . O O O O O | X G G G z z h = = = = = = { 0 s 4 u q j O O O . ", " . O O O O O O O | X G G + $ = = .e % l ..u z G G G p O O O . ", " . . O O O O O O O O O | G h = = k , - [ q G G G G G G o O O O . ", " . . O O O O O O O O O O q h X.> [ G G G G G G G < & j ) O O O . ", " . O O O O O O O O O ' z 1 ` ] G G G G G G o j _ O O O O O O . ", " . . O O O O O O O O O O O d G G G G < o | ' O O O O O O O O O . ", " . . O O O O O O O O O O O o G X o | O O O O O O O O O O O O O . ", " . . . O O O O O O O O O O ) ` j f f O O O O O O O O O O O O O O . ", " . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . ", " . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . ", " . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . ", " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", " o o o o ^ o o o o o o o o o o o o o o o o o o o o ^ o o o o ^ ", " o ^ ^ ^ ^ o ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ o ^ ^ ^ ^ ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/menus.xpm���������������������������������������������������������0000644�0001750�0001750�00000005231�12214432632�015430� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * menus_xpm[] = { "48 48 11 1", " c None", ". c #2C2C2C", "+ c #FEFEFE", "@ c #505075", "# c #000000", "$ c #B6B6BE", "% c #FFFFFF", "& c #606060", "* c #AAAAAA", "= c #FFFAFF", "- c #575757", "...............................................+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@#########################################+", ".@@@@@#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+", ".@@@@@#$#######################################+", ".@@@@@#$#######################################+", ".@@@@@#$#######################################%", ".@@@@@#$#####%#############%#%############%##%#%", ".@@@@@#$####%#%##%%%##%%%##%####%%###%%##%%%###%", ".@@@@@#$####%#%##%##%#%##%#%#%#%##%####%##%##%#%", ".@@@@@#$####%%%##%##%#%##%#%#%#%#####%%%##%##%#%", ".@@@@@#$###%###%#%##%#%##%#%#%#%##%#%##%##%##%#%", ".@@@@@#$###%###%#%%%##%%%##%#%##%%###%%%##%%#%#%", ".@@@@@#$#########%####%########################%", ".@@@@@#$#######################################+", ".@@@@@#$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+", ".@@@@@#########################################+", ".@@@@@#%#######################################+", ".@@@@@#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+", ".@@@@@#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%#%%+", ".@@@@@#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%+", ".@@@@@#%#%#%%#%%%%%%%%%%%%%####%%%%%#%%%%%%#%%%+", ".@@@@@#%#%##%#%%#%%#%#%#%%%#%%%%##%###%#%#%#%%%+", ".@@@@@#%#%##%#%#%#%#%#%#%%%####%#%#%#%%##%%#%%%+", ".@@@@@#%#%#%##%###%#%#%#%%%#%%%%#%#%#%%#%%%#%%%+", ".@@@@@#%#%#%##%#%%%%#%#%%%%#%%%%#%#%#%%#%%%#%%%+", ".@@@@@#%#%#%%#%%##%%#%#%%%%####%#%#%##%#%%%#%%%+", ".@@@@@#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%#%%+", ".@@@@@#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+", ".@@@@@#%#######################################+", ".@@@@@#########################################+", ".@@@@@#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+", ".@@@@@#%***************************************+", ".@@@@@#=*********#*****************************+", ".@@@@@#=****###********************************+", ".@@@@@#=***#*****#*####**###*******************+", ".@@@@@#=***#**##*#*#*#*#*#**#******************+", ".@@@@@#=***#***#*#*#*#*#*#**#******************+", ".@@@@@#=***#***#*#*#*#*#*#**#******************+", ".@@@@@#=****###**#*#*#*#*###*******************+", ".@@@@@#=*****************#*********************+", ".@@@@@#%***************************************+", ".@@@@@#=---------------------------------------+", ".@@@@@#########################################+", "++++++++++++++++++++++++++++++++++++++++++++++++"}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/timer5.xpm��������������������������������������������������������0000644�0001750�0001750�00000001442�12214432632�015506� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 4 1", " c None", ". c #000000000000", "X c #7BDE7BDE7BDE", "o c #BDEEBDEEBDEE", " ", " ..... ", " X.X ", " .. X.X .. ", " X.. X.....X ..X ", " ....oo.XX.... ", " ..oooo.XXXX.. ", " .oooooo.XXXXX.. ", " XXoooooo.XXXXXXXX ", " .ooooooo.XXXXXXX. ", " XXooooooo.XXXXXXXXX ", " .oooooooo.XXXXXXXX. ", " .oooooooo.XXXXXXXX. ", " ....ooooo.XXXXX.... ", " .ooooooo.XXXXXXXXX. ", " .oooooo.XXXXXXXXXX. ", " XXoooo.XXXXXXXXXXXX ", " .ooo.XXXXXXXXXXX. ", " XXo.XXXXXXXXXXXXX ", " ..XXXXX.XXXXXX. ", " .XXXXX.XXXX.. ", " X..XX.XX..X ", " X.....X ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/timer1.xpm��������������������������������������������������������0000644�0001750�0001750�00000001442�12214432632�015502� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 4 1", " c None", ". c #000000000000", "X c #7BDE7BDE7BDE", "o c #BDEEBDEEBDEE", " ", " ..... ", " X.X ", " .. X.X .. ", " X.. X.....X ..X ", " ....oo.XX.... ", " ..oooo.XXXX.. ", " .oooooo.XXXXX.. ", " XXoooooo.XXXX.oXX ", " .ooooooo.XXX.ooo. ", " XXooooooo.XX.ooooXX ", " .oooooooo.X.oooooo. ", " .oooooooo..ooooooo. ", " ....ooooo.ooooo.... ", " .ooooooooooooooooo. ", " .ooooooooooooooooo. ", " XXoooooooooooooooXX ", " .ooooooooooooooo. ", " XXoooooooooooooXX ", " .oooooo.oooooo. ", " .Xoooo.oooo.. ", " X..oo.oo..X ", " X.....X ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/menualign2.xpm����������������������������������������������������0000644�0001750�0001750�00000002427�12214432632�016346� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "32 32 5 1", " c None", ". c #000000000000", "X c #AD6AAD6AAD6A", "o c #529452945294", "O c #FFFFFFFFFFFF", " ", " ", " ", " .............................. ", " .XXXXXXXXXXXXXX..XXXXXXXXXXXX. ", " .X............o..X..........o. ", " .X............o..X..........o. ", " .oooooooooooooo..oooooooooooo. ", " .............................. ", " .OOOOOOOOOOOOOO..OOOOOOOOOOOO. ", " .OXXXXXXXXXXXXo..OXXXXXXXXXXo. ", " .OXXXXXXXXXXXXo..OXXXXXXXXXXo. ", " .oooooooooooooo..oooooooooooo. ", " .............................. ", " .OOOOOOOOOOOOOO..OOOOOOOOOOOO. ", " .OXXXXXXXXXXXXo..OXXXXXXXXXXo. ", " .OXXXXXXXXXXXXo..OXXXXXXXXXXo. ", " .oooooooooooooo..oooooooooooo. ", " .............................. ", " .OOOOOOOOOOOOOO..OOOOOOOOOOOO. ", " .OOOOOOOOOOOOOo..OXXXXXXXXXXo. ", " .OOOOOOOOOOOOOo..OXXXXXXXXXXo. ", " .oooooooooooooo..oooooooooooo. ", " .............................. ", " .OOOOOOOOOOOOOO. ", " .OXXXXXXXXXXXXo. ", " .OXXXXXXXXXXXXo. ", " .oooooooooooooo. ", " ................ ", " ", " ", " "}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/speed1s.xpm�������������������������������������������������������0000644�0001750�0001750�00000001571�12214432632�015650� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "26 26 3 1", " c None", ". c #FFFFFFFF0000", "X c #000000000000", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ....... ", " .X.XX.X. ", " .X.XX.XX. ", " .X.XX.XXX. ", " .X.XX.XXXX. ", " .X.XX.XXX. ", " .X.XX.XX. ", " .X.XX.X. ", " ....... ", " ", " ", " ", " ", " ", " ", " ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/timer1s.xpm�������������������������������������������������������0000644�0001750�0001750�00000001467�12214432632�015674� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 5 1", " c None", ". c #000000000000", "X c #7BDE7BDE7BDE", "o c #FFFFFFFFFFFF", "O c #FFFF00000000", " ", " ..... ", " X.X ", " .. X.X .. ", " X.. X.....X ..X ", " ....oo.OO.... ", " ..oooo.OOOO.. ", " .oooooo.OOOOO.. ", " XXoooooo.OOOO.oXX ", " .ooooooo.OOO.ooo. ", " XXooooooo.OO.ooooXX ", " .oooooooo.O.oooooo. ", " .oooooooo..ooooooo. ", " ....ooooo.ooooo.... ", " .ooooooooooooooooo. ", " .ooooooooooooooooo. ", " XXoooooooooooooooXX ", " .ooooooooooooooo. ", " XXoooooooooooooXX ", " .oooooo.oooooo. ", " .Xoooo.oooo.. ", " X..oo.oo..X ", " X.....X ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/windowfocus.xpm���������������������������������������������������0000644�0001750�0001750�00000014673�12214432632�016662� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * windowfocus_xpm[] = { "48 48 108 2", " c None", ". c #2C2C2C", "+ c #FEFEFE", "@ c #505075", "# c #B5B5B5", "$ c #747474", "% c #060606", "& c #868686", "* c #050505", "= c #B3B3B3", "- c #0B0B0B", "; c #B4B4B4", "> c #1E1E1E", ", c #DCDCDC", "' c #CCCCCC", ") c #CDCDCD", "! c #C8C8C8", "~ c #CACACA", "{ c #CECECE", "] c #CBCBCB", "^ c #C7C7C7", "/ c #C5C5C5", "( c #C1C1C1", "_ c #BFBFBF", ": c #C0C0C0", "< c #D2D2D2", "[ c #737373", "} c #181818", "| c #F5F5F5", "1 c #F4F4F4", "2 c #F3F3F3", "3 c #F2F2F2", "4 c #F1F1F1", "5 c #F0F0F0", "6 c #EFEFEF", "7 c #EEEEEE", "8 c #EDEDED", "9 c #ECECEC", "0 c #EBEBEB", "a c #EAEAEA", "b c #E9E9E9", "c c #E8E8E8", "d c #E7E7E7", "e c #E6E6E6", "f c #E5E5E5", "g c #E4E4E4", "h c #E3E3E3", "i c #E2E2E2", "j c #151515", "k c #E1E1E1", "l c #000000", "m c #0F0F0F", "n c #727272", "o c #2D2D2D", "p c #040404", "q c #6D6D6D", "r c #0E0E0E", "s c #FDFDFD", "t c #1B1B1B", "u c #181817", "v c #F7F7F7", "w c #6C6C6C", "x c #6A6A6A", "y c #101010", "z c #1A1A1A", "A c #686868", "B c #090909", "C c #111111", "D c #0A0A0A", "E c #161616", "F c #191919", "G c #E0E0E0", "H c #171717", "I c #383838", "J c #DFDFDF", "K c #373737", "L c #D4D4D4", "M c #353535", "N c #303030", "O c #C9C9C9", "P c #DEDEDE", "Q c #2A2A2A", "R c #141414", "S c #D1D1D1", "T c #D5D4D5", "U c #D6D5D6", "V c #A6A6A6", "W c #515151", "X c #DDDDDD", "Y c #4D4D4D", "Z c #1C1C1C", "` c #0D0D0D", " . c #AAAAAA", ".. c #4F4F4F", "+. c #787878", "@. c #424242", "#. c #242424", "$. c #7F7F7F", "%. c #B1B1B1", "&. c #DBDBDB", "*. c #A5A5A5", "=. c #D6D6D6", "-. c #D7D7D7", ";. c #D8D8D8", ">. c #A8A8A8", ",. c #A7A7A7", "'. c #DADADA", "). c #0C0C0C", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ # # # # # $ # # # # # # # # # # # # # # # # # # # # $ # # # # # @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ # % % % # & # # # # # # # # # # # # # # # # # # # # & # * # * # @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ # % = - # & = = = = = = = = = = = = = = = = = = = ; & # # * # # @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ # % > % # & # # # # # # # # # # # # # # # # # # # # & # * # * # @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ $ , ' ) ! ~ ~ { { ' ' ' ] ] ] ~ ~ ! ! ! ^ ^ ^ / / ( _ : / / < [ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ } | 1 2 2 3 4 4 5 6 6 7 8 8 9 9 0 a a b c c d e e f g g h h i j @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ } 1 2 2 3 3 4 5 5 6 7 7 8 9 9 0 a a b b c d d e f f g h h i k } @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ } | 1 2 2 3 l m m m m n l l l l l l l l l l l l l l l l l l l l n j o l > p @ @ @ @ + ", ". @ @ @ @ } 1 2 2 3 3 m + + + l q l l l l l l l l l l l l l l l l l l l l q r s l s t @ @ @ @ + ", ". @ @ @ @ u | 1 2 3 3 m + l v l w l l l l l l l l l l l l l l l l l l l l w % > s l l @ @ @ @ + ", ". @ @ @ @ } | 1 2 2 3 m + + + l x l l l l l l l l l l l l l l l l l l l l x - s } s l @ @ @ @ + ", ". @ @ @ @ } 1 2 2 3 3 y l l l z A B C C C C C C C C C C C C C C C C C C B A > p l D E @ @ @ @ + ", ". @ @ @ @ } | 1 2 2 3 $ , ' ) ! ~ ~ { { ' ' ' ] ] ] ~ ~ ! ! ! ^ ^ ^ / / ( _ : / / < [ @ @ @ @ + ", ". @ @ @ @ } 1 2 2 3 3 } | 1 2 2 3 4 4 5 6 6 7 8 8 9 9 0 a a b c c d e e f g g h h i E @ @ @ @ + ", ". @ @ @ @ u | 1 2 3 3 } 1 2 2 3 3 4 5 5 6 7 7 8 9 9 0 a a b b c d d e f f g h h i k } @ @ @ @ + ", ". @ @ @ @ } | 1 2 2 3 } 1 2 3 3 4 5 5 6 6 7 8 8 9 0 0 a b b c d d e e f g g h i i k } @ @ @ @ + ", ". @ @ @ @ } 1 2 2 3 3 F 2 l 3 l 4 5 6 6 7 8 8 9 9 0 a a b c c d e e f f g h h i k k } @ @ @ @ + ", ". @ @ @ @ } | 1 2 2 3 z 2 3 l 4 5 5 6 7 7 8 9 9 0 0 a b b c d d e f f g h h i i k G H @ @ @ @ + ", ". @ @ @ @ } 1 2 2 3 3 t 3 3 l 4 5 6 6 7 8 8 9 0 0 a b b c c d e e f g g h i i k G G H @ @ @ @ + ", ". @ @ @ @ u | 1 2 3 3 F 3 4 l 5 6 6 7 7 8 9 9 0 a a b c c I , e f f g h h i k k G J E @ @ @ @ + ", ". @ @ @ @ } | 1 2 2 3 t 3 4 l 5 6 7 7 8 8 9 0 0 a b b c d l K L f g g h i i k G G J H @ @ @ @ + ", ". @ @ @ @ } 1 2 2 3 3 t 4 4 l 6 6 7 8 8 9 0 0 a a b c c d l l M { g h i i k k G J J H @ @ @ @ + ", ". @ @ @ @ u | 1 2 3 3 t 4 5 l 6 7 7 8 9 9 0 a a b c c d d l l l N O h i k k G J J P H @ @ @ @ + ", ". @ @ @ @ j 8 8 9 0 0 t 5 5 l 6 7 8 8 9 0 0 a b b c d d e l l l l Q ^ i k G G J P P H @ @ @ @ + ", ". @ @ @ @ R g S T U V t 5 l 6 l 8 8 9 9 0 a a b c c d e e l l l B N W k k G J J P X H @ @ @ @ + ", ". @ @ @ @ Q 8 & & & $ z 5 6 7 7 8 9 9 0 a a b b c d d e f l Y Z ` .k k G G J P P X H @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ z 6 6 7 8 8 9 0 0 a b b c c d e e f ..X +.l @.k G G J J P X X E @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ z 6 7 7 8 9 9 0 a a b c c d e e f f g h O #.B V G J J P X X , E @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ z 7 7 8 9 9 0 0 a b b c d d e f f g h h i $.- %.G J P P X , , E @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ z 7 8 8 9 0 0 a b b c c d e e f g g h i i k k G J J P X X , &.E @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ Z 7 8 9 9 0 a a b c c d d e f f g h h i k k G J J P P X , , &.H @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ j 8 8 9 0 0 a b b c d d e f f g g h i i k G G J P P X , , &.&.j @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ R g S T U V *.< L T =.-.-.-.-.-.-.-.-.-.-.-.-.-.;.>.,.L =.'.& % @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ Q 8 & & & $ < & & & & & & & & & & & & & & & & & & $ < & & & & ).@ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; ���������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/configs.xpm�������������������������������������������������������0000644�0001750�0001750�00000031727�12214432632�015742� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * configs_xpm[] = { "48 48 526 2", " c None", ". c #2C2C2C", "+ c #FEFEFE", "@ c #555577", "# c #FFF6A4", "$ c #000000", "% c #545476", "& c #51516E", "* c #424255", "= c #38384A", "- c #505055", "; c #2E2E32", "> c #262633", ", c #3F3F55", "' c #FFFFFF", ") c #48485F", "! c #2E2E34", "~ c #0E0E0E", "{ c #060607", "] c #211E0D", "^ c #6D6946", "/ c #1C1C1C", "( c #020201", "_ c #34321C", ": c #080809", "< c #1E1E28", "[ c #41415A", "} c #ACAAAC", "| c #616161", "1 c #44445C", "2 c #17171A", "3 c #050505", "4 c #080808", "5 c #171719", "6 c #3E3E50", "7 c #4D4D67", "8 c #505058", "9 c #0D0D0E", "0 c #020202", "a c #5E5E5F", "b c #A2A2A2", "c c #A3A3A3", "d c #969696", "e c #1E1E1F", "f c #0A0A0C", "g c #535260", "h c #646465", "i c #99956B", "j c #030303", "k c #8A8A8A", "l c #FCFCFC", "m c #FBFBFB", "n c #9A9A9C", "o c #0B0B0C", "p c #474758", "q c #151517", "r c #F8F8F8", "s c #59595C", "t c #474761", "u c #1B1B20", "v c #0A0A0B", "w c #C2C2C2", "x c #09090A", "y c #1B1B22", "z c #141416", "A c #070703", "B c #898989", "C c #FDFDFD", "D c #E1E1E1", "E c #242424", "F c #656565", "G c #F1F1F1", "H c #4F4F4F", "I c #ACAAAB", "J c #08080A", "K c #020203", "L c #888888", "M c #F2F2F2", "N c #555556", "O c #030304", "P c #454547", "Q c #C6C6C6", "R c #C4C4C4", "S c #C7C7C7", "T c #CBCBCB", "U c #E8E8E8", "V c #F4F4F4", "W c #565657", "X c #050506", "Y c #010101", "Z c #4C4C4C", "` c #FAFAFA", " . c #E0E0E0", ".. c #F9F9F9", "+. c #040405", "@. c #0F0F10", "#. c #BBBBBB", "$. c #070708", "%. c #555555", "&. c #4D4D4D", "*. c #EDEDED", "=. c #39393A", "-. c #191818", ";. c #010102", ">. c #737376", ",. c #0F0F15", "'. c #0B0B0B", "). c #787879", "!. c #939393", "~. c #B9B9B9", "{. c #F7F7F7", "]. c #9C9C9C", "^. c #43435E", "/. c #3D3D55", "(. c #292939", "_. c #262636", ":. c #1B1B24", "<. c #101016", "[. c #2B2B2B", "}. c #CCCCCC", "|. c #EAEAEA", "1. c #69696C", "2. c #5D5C76", "3. c #2C2C3D", "4. c #282838", "5. c #222230", "6. c #0D0D13", "7. c #060609", "8. c #050507", "9. c #121212", "0. c #535353", "a. c #A9A9A9", "b. c #D8D8D8", "c. c #E4E4E4", "d. c #303030", "e. c #060606", "f. c #44445F", "g. c #42425C", "h. c #313145", "i. c #272737", "j. c #171720", "k. c #030305", "l. c #131313", "m. c #181818", "n. c #191919", "o. c #2E2E2E", "p. c #444444", "q. c #616162", "r. c #5F5F60", "s. c #3D3D3D", "t. c #151515", "u. c #13120C", "v. c #0D0D0D", "w. c #626281", "x. c #61617B", "y. c #FEFCF2", "z. c #232331", "A. c #8E8548", "B. c #111113", "C. c #181819", "D. c #2F2F30", "E. c #666667", "F. c #ACACAD", "G. c #D4D4D6", "H. c #E3E3E4", "I. c #F7F7F8", "J. c #F6F6F7", "K. c #E0E0E1", "L. c #CCCCCD", "M. c #919192", "N. c #3B3B3D", "O. c #09090B", "P. c #101017", "Q. c #87879F", "R. c #838287", "S. c #FEF9D3", "T. c #B4B6B4", "U. c #2D2D3F", "V. c #0D0D12", "W. c #060608", "X. c #0C0C0E", "Y. c #232325", "Z. c #424244", "`. c #525254", " + c #626264", ".+ c #7A7A7C", "++ c #79797B", "@+ c #5D5D5E", "#+ c #3A3A3C", "$+ c #151518", "%+ c #1A1812", "&+ c #0A0A0E", "*+ c #1A1A24", "=+ c #626162", "-+ c #909093", ";+ c #4F4E44", ">+ c #34343A", ",+ c #424248", "'+ c #6C6C72", ")+ c #A1A1A7", "!+ c #C2C2C8", "~+ c #CDCDD4", "{+ c #DFDFE5", "]+ c #DFDFDF", "^+ c #D1D1D4", "/+ c #BBBBC1", "(+ c #ABA97F", "_+ c #44444A", ":+ c #14141B", "<+ c #1A1A20", "[+ c #21212F", "}+ c #FFFAFF", "|+ c #464441", "1+ c #32312D", "2+ c #191921", "3+ c #35353D", "4+ c #55555D", "5+ c #606068", "6+ c #6D6D75", "7+ c #848487", "8+ c #747474", "9+ c #4E4E46", "0+ c #4F4C16", "a+ c #19191E", "b+ c #282832", "c+ c #67676F", "d+ c #6D684D", "e+ c #525552", "f+ c #373747", "g+ c #3B3B4B", "h+ c #444454", "i+ c #5E5E6E", "j+ c #828292", "k+ c #9999A9", "l+ c #A2A2B2", "m+ c #ADADBD", "n+ c #A6A58B", "o+ c #898994", "p+ c #606065", "q+ c #3A3924", "r+ c #4E4A04", "s+ c #28260A", "t+ c #37373E", "u+ c #3D3D4C", "v+ c #515551", "w+ c #7E7B4E", "x+ c #303043", "y+ c #4C4C5F", "z+ c #4F4F62", "A+ c #4F4F61", "B+ c #505062", "C+ c #565669", "D+ c #5F5F71", "E+ c #7E7E81", "F+ c #585750", "G+ c #B2AB2F", "H+ c #474128", "I+ c #151516", "J+ c #312E00", "K+ c #565101", "L+ c #2B290B", "M+ c #2C2C3E", "N+ c #3D3D4A", "O+ c #5C5848", "P+ c #545475", "Q+ c #B8AE24", "R+ c #4D5057", "S+ c #454560", "T+ c #4D4D68", "U+ c #60607B", "V+ c #6D6D88", "W+ c #71718C", "X+ c #787893", "Y+ c #8E8F93", "Z+ c #565656", "`+ c #585529", " @ c #CFC619", ".@ c #545022", "+@ c #111111", "@@ c #777200", "#@ c #A09801", "$@ c #484213", "%@ c #656581", "&@ c #FCEE05", "*@ c #535374", "=@ c #B5AC0C", "-@ c #322E34", ";@ c #474764", ">@ c #4A4A67", ",@ c #5F6269", "'@ c #706E3F", ")@ c #CCC210", "!@ c #2D2B2E", "~@ c #3E3A01", "{@ c #B1A704", "]@ c #7F7915", "^@ c #100E10", "/@ c #938B01", "(@ c #7D7706", "_@ c #77720E", ":@ c #3F3B00", "<@ c #F5E806", "[@ c #5F5E70", "}@ c #A89E03", "|@ c #1D1C1E", "1@ c #666327", "2@ c #F1E503", "3@ c #272827", "4@ c #989103", "5@ c #E6D906", "6@ c #1A1515", "7@ c #7F7803", "8@ c #B9AF07", "9@ c #969017", "0@ c #C2B804", "a@ c #847D06", "b@ c #8E8811", "c@ c #232326", "d@ c #423F05", "e@ c #ECE10A", "f@ c #7C785B", "g@ c #A99F06", "h@ c #0B0A0B", "i@ c #7F7800", "j@ c #D9CE05", "k@ c #50461E", "l@ c #302B2E", "m@ c #100B0D", "n@ c #A49C02", "o@ c #C7BD06", "p@ c #2F280B", "q@ c #A69D03", "r@ c #A49C09", "s@ c #9A911B", "t@ c #29270A", "u@ c #B4AA07", "v@ c #484509", "w@ c #C6BC07", "x@ c #202024", "y@ c #837D06", "z@ c #D8CD12", "A@ c #858055", "B@ c #D4C91D", "C@ c #CFC405", "D@ c #100F10", "E@ c #807902", "F@ c #D4CA05", "G@ c #595B24", "H@ c #D2C707", "I@ c #AFA607", "J@ c #ABA202", "K@ c #AEA502", "L@ c #3A3700", "M@ c #A9A000", "N@ c #6A6009", "O@ c #CABF0C", "P@ c #45420A", "Q@ c #A79D0E", "R@ c #424004", "S@ c #C3BA06", "T@ c #ACA523", "U@ c #A19A41", "V@ c #15151D", "W@ c #F0E30A", "X@ c #747161", "Y@ c #D6CC08", "Z@ c #1F2023", "`@ c #C0B702", " # c #A89D0B", ".# c #6C6605", "+# c #FFF200", "@# c #CFC503", "## c #CAC000", "$# c #888102", "%# c #5E5A00", "&# c #C9BF00", "*# c #403D01", "=# c #C4BC06", "-# c #615C0C", ";# c #968D11", "># c #424005", ",# c #C7BC07", "'# c #CBC10F", ")# c #A69E1C", "!# c #333008", "~# c #DDD310", "{# c #9A9446", "]# c #DDD110", "^# c #121112", "/# c #564F0D", "(# c #9C9400", "_# c #BEB402", ":# c #B3AA00", "<# c #716B03", "[# c #8D8600", "}# c #A39B01", "|# c #78740C", "1# c #817913", "2# c #050605", "3# c #090909", "4# c #827D27", "5# c #9E9831", "6# c #6F6A0C", "7# c #B7AF18", "8# c #D9CD1A", "9# c #A09B31", "0# c #AAA328", "a# c #BEB628", "b# c #B9B031", "c# c #B0A705", "d# c #3B3700", "e# c #CEC303", "f# c #1B1A0C", "g# c #C1B702", "h# c #9A9206", "i# c #BDB403", "j# c #565201", "k# c #A79E00", "l# c #9C9401", "m# c #97900A", "n# c #766D22", "o# c #5B582F", "p# c #B3AC19", "q# c #A79D0F", "r# c #544F13", "s# c #B8AF10", "t# c #1E1E2A", "u# c #2A2A3B", "v# c #A89E05", "w# c #6A6402", "x# c #AAA107", "y# c #8B830B", "z# c #3F3B03", "A# c #C6BC00", "B# c #7B730A", "C# c #AAA108", "D# c #B8B008", "E# c #645E27", "F# c #D6CC1B", "G# c #464423", "H# c #B3AB0F", "I# c #D5CB12", "J# c #0F0E00", "K# c #989010", "L# c #C9BF25", "M# c #A59D03", "N# c #797308", "O# c #ADA512", "P# c #D7CB02", "Q# c #84791D", "R# c #111112", "S# c #A69E04", "T# c #C7BD07", "U# c #514531", "V# c #C4BA05", "W# c #716B04", "X# c #D7CD1D", "Y# c #1C1C27", "Z# c #D0C505", "`# c #DCD015", " $ c #252534", ".$ c #1B1B25", "+$ c #867F0A", "@$ c #B5AC04", "#$ c #8E8627", "$$ c #080708", "%$ c #E4D803", "&$ c #4B4517", "*$ c #120F12", "=$ c #9E9703", "-$ c #D6CB06", ";$ c #393333", ">$ c #050405", ",$ c #C2B904", "'$ c #9F9702", ")$ c #BBB447", "!$ c #D7CD03", "~$ c #DFD415", "{$ c #41415B", "]$ c #1D1D15", "^$ c #F1E603", "/$ c #918D65", "($ c #221D21", "_$ c #777006", ":$ c #D5CA09", "<$ c #5D5921", "[$ c #928C15", "}$ c #3D3C3D", "|$ c #0C0B0C", "1$ c #857E03", "2$ c #D9CD07", "3$ c #C0B602", "4$ c #A29905", "5$ c #BDB447", "6$ c #D1C604", "7$ c #BDB42E", "8$ c #505070", "9$ c #040406", "0$ c #F3E804", "a$ c #908C65", "b$ c #171312", "c$ c #787308", "d$ c #D3C805", "e$ c #4F4922", "f$ c #6B6870", "g$ c #736C01", "h$ c #ADA213", "i$ c #050305", "j$ c #847D05", "k$ c #DED201", "l$ c #9A976B", "m$ c #9C9514", "n$ c #6E6B43", "o$ c #1F1E21", "p$ c #4C4703", "q$ c #ECE002", "r$ c #0D080C", "s$ c #7F7901", "t$ c #DFD301", "u$ c #99966A", "v$ c #454561", "w$ c #404059", "x$ c #3B3800", "y$ c #EADF03", "z$ c #7B798E", "A$ c #524A1E", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # @ @ @ @ @ @ @ @ @ @ @ @ + ", ". $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ @ @ @ @ @ @ % & * = # # - ; # > , % @ @ @ @ @ @ @ + ", ". ' ' ' ' $ ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' $ @ @ @ @ @ @ ) ! ~ { ] ^ / ( _ $ : < [ @ @ @ @ @ @ + ", ". } } } | $ ' } } } } } } } } } } } } } | $ @ @ @ @ # 1 2 $ $ $ $ $ # $ $ $ 3 4 5 6 7 7 7 @ @ + ", ". } } } | $ ' } } } } } } } } } } } } } | $ @ @ @ @ 8 9 $ $ $ $ $ $ # $ $ 0 a b c d e f f @ @ + ", ". } } } | $ ' } } } } } } } } } } } } } | $ @ @ # g h i # $ $ $ $ $ $ $ $ j k l ' m n o $ @ @ + ", ". } } } | $ ' } } } $ $ } } } $ $ } } } | $ @ @ p q # $ $ $ $ $ $ $ $ $ $ j k l ' ' r s $ @ @ + ", ". } } } | $ ' } } } $ $ $ } $ $ $ } } } | $ # t u v # $ $ $ $ $ $ $ $ $ $ j k l ' ' ' w x @ @ + ", ". } } } | $ ' } } } } $ $ $ $ $ } } } } | $ # y z 3 A $ $ $ $ $ $ $ $ $ $ j B l C l C D E @ @ + ", ". } } } | $ ' } } } } } $ $ $ } } } } } | # F # # $ $ $ $ $ $ $ $ $ $ $ $ j B l C C l G H @ @ + ", ". } } } | $ ' } } } } $ $ $ $ $ } } } I | $ # J K $ $ $ $ $ $ $ $ $ $ $ $ j L m m l l M N @ @ + ", ". } } } | $ ' } } } $ $ $ } $ $ $ } } } | $ # O K $ $ $ $ $ $ P Q R S Q S T U l l l l V W @ @ + ", ". } } } | $ ' } } } $ $ } } } $ $ } } } | $ $ O X Y $ $ $ $ $ Z ` m l m C l m m C m m G Z @ @ m ", ". } } } | $ ' } } } } } } } } } } } } } | $ $ O # j $ $ $ $ $ Z ` m m C l m l l C l l .E @ @ ..", ". } } } | $ ' } } } } } } } } } } } } } | $ $ +.# @.$ $ $ $ $ Z ` C m l m m m l l m m #.$.@ @ ..", ". } } } | $ ' } } } } } } } } } } } } } | $ # # %.# # $ $ $ $ &.l ' ' ' ' ' ' C ' ' *.=.$ @ @ m ", ". | | | | $ ' | | | | | | | | | | | | | | $ $ -.4 O ;.$ Y Y Y H C ' ' ' ' ' ' C ' ..>.K $ @ @ + ", ". $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ,.# Y Y '.).!.!.~.+ ' ' ' ' ' ' l {.].~ $ $ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ^./.(._.:.<.<.# $ $ $ [.}.` + + ' ' ' ' + + |.1.$ $ $ $ 2.@ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ^.[ 3.4.5.6.7.8.$ $ $ $ 9.0.a.b.U ' C c.}.k d.e.$ $ $ $ # @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ f.g.h.4.i.j.k.O $ Y e.l.m.n.n.o.p.q.r.s.t.Y Y Y 0 0 u.v.w.x.y.", ". $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ @ z.A.,.k.B.C.e D.E.F.G.H.I.J.K.L.M.N.O.7.7.P.P.# # Q.R.S.", ". T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.$ @ U.# V.W.X.Y.N.Z.Z.Z.`. +.+++@+#+$+%+# &+&+*+*+@ @ # @ + ", ". $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ =+$ @ # -+;+# >+,+'+)+!+~+{+]+^+/+(+_+:+<+# [+[+@ @ @ @ # @ + ", ". $ $ $ $ }+}+}+}+}+}+}+}+}+}+}+$ =+$ @ |+1+2+3+8 4+4+4+5+6+7+B 8+9+0+a+# b+c+# d+@ @ @ @ @ @ + ", ". $ $ $ $ }+} } } } } } } } } e+$ =+$ ^.f+# g+h+i+j+k+l+m+m+n+o+p+q+r+s+t+u+# @ @ @ @ @ @ @ % + ", ". $ $ $ $ }+} $ v+} } } v+$ } e+$ =+$ w+x+# y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+@ @ P+@ @ @ @ @ + ", ". $ $ $ $ }+} v+$ v+} v+$ v+} e+$ =+$ Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@^.%@&@*@% @ @ @ @ @ @ + ", ". $ $ $ $ }+} } v+$ v+$ v+} } e+$ =+$ =@-@;@;@;@>@,@'@)@!@~@{@]@^@/@(@_@;@:@<@[@@ @ @ @ @ @ @ + ", ". $ $ $ $ }+} } } v+$ v+} } } e+$ =+$ }@|@1@2@@ @ 3@4@5@6@7@8@9@^@0@a@b@c@d@e@f@@ @ @ @ @ @ @ + ", ". $ $ $ $ }+} } v+$ v+$ v+} } e+$ =+$ g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@@ B@@ @ @ @ @ + ", ". $ $ $ $ }+} v+$ v+} v+$ v+} e+$ =+$ C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@w@q S@T@U@V@W@X@@ @ @ @ + ", ". $ $ $ $ }+} $ v+} } } v+$ } e+$ =+$ Y@Z@`@ #.#+#@###$#%#&#*#=#-#;#>#,#x '#)#U@!#~#{#@ X@f@[@+ ", ". $ $ $ $ }+} } } } } } } } } e+$ =+$ ]#^#+#/#(#+#_#:#<#[#}#( +#|#1#2#+#3#+#4#5#6#7#8#9#0#a#b#+ ", ". $ $ $ $ }+e+e+e+e+e+e+e+e+e+e+$ =+$ c#d#e#f#+#g#h#i#j#k#l#$ +#m#n#$ +#$ +#o#p#q#r#+#s#t#z.u#+ ", ". $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ =+$ v#w#x#$ +#y#@ @ z#A#B#$ C#D#E#$ +#:@F#G#H#I#J#K#L#@ @ @ + ", ". =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+$ M#N#O#$ @ @ @ @ t@P#Q#R#S#T#U#$ V#W#X#Y#Z#`# $.$@ @ @ @ + ", ". $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ +$@$#$@ @ @ @ @ $$%$&$*$=$-$;$>$,$'$)$<.!$~$@ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ $ @ {$]$^$/$@ @ @ ($_$:$<$@ @ @ @ @ @ [$}$|$1$2$@ >$3$4$5$V.6$7$@ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ 8$9$0$a$@ @ @ b$c$d$e$@ @ @ @ @ @ f$@ @ g$h$@ i$j$k$l$,.m$X@@ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ 9$n$@ @ @ @ o$p$q$@ @ @ @ @ @ @ @ @ @ @ @ @ r$s$t$u$ $v$@ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ w$@ @ @ @ @ @ x$y$@ @ @ @ @ @ @ @ @ @ @ @ @ @ s$+#z$@ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A$@ @ @ @ @ @ @ @ @ @ @ @ @ @ :@+#z$@ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; �����������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/tedit.xpm���������������������������������������������������������0000644�0001750�0001750�00000014366�12214432632�015423� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "27 24 225 2", " c None", ". c #000000000000", "X c #084208420000", "o c #210818C60000", "O c #5AD639CE0000", "+ c #D6B48C620000", "@ c #BDEE7BDE0000", "# c #210810840000", "$ c #39CE294A0000", "% c #4A52318C0000", "& c #AD6A6B5A0000", "* c #DEF694A40000", "= c #39CE21080000", "- c #294A18C60000", "; c #AD6A739C0000", ": c #084200000000", "> c #9CE663180000", ", c #631842100000", "< c #108408420000", "1 c #B5AC739C0000", "2 c #A5286B5A0000", "3 c #8C625AD60000", "4 c #739C4A520000", "5 c #210821082108", "6 c #9CE66B5A5AD6", "7 c #B5AC739C0842", "8 c #C630739C0000", "9 c #000008420000", "0 c #108439CE1084", "q c #5294CE725294", "w c #A528A528A528", "e c #CE727BDE0000", "r c #7BDE52940000", "t c #0000318C0000", "y c #00007BDE0000", "u c #00009CE60000", "i c #0842318C0842", "p c #18C610840000", "a c #108410841084", "s c #084208420842", "d c #C6308C62294A", "f c #18C621080000", "g c #18C6294A0842", "h c #21086B5A0000", "j c #5294BDEE2108", "k c #4A52BDEE294A", "l c #94A4529439CE", "z c #AD6A084239CE", "x c #4A5200000842", "c c #39CE39CE318C", "v c #BDEEBDEEAD6A", "b c #739C6B5A5294", "n c #00004A520000", "m c #0000C6300842", "M c #0000BDEE0842", "N c #000021080000", "B c #42106B5A1084", "V c #8420DEF64210", "C c #8C62E73839CE", "Z c #8420E7385AD6", "A c #8C62D6B4739C", "S c #842084205AD6", "D c #E7385294739C", "F c #CE7239CE5AD6", "G c #7BDE5AD64A52", "H c #AD6A9CE694A4", "J c #63185AD65AD6", "K c #000042100000", "L c #0000B5AC0842", "P c #000042100842", "I c #4210F7BC294A", "U c #C630EF7A94A4", "Y c #4210EF7A4210", "T c #6B5ADEF65AD6", "R c #AD6A63185294", "E c #D6B463186318", "W c #E7388C628C62", "Q c #DEF610844A52", "! c #5AD6000018C6", "~ c #631810844210", "^ c #F7BC39CE7BDE", "/ c #000010840000", "( c #0000CE720842", ") c #084218C60842", "_ c #294ABDEE18C6", "` c #1084FFFF294A", "' c #6B5AEF7A4A52", "] c #739CDEF6318C", "[ c #4A52BDEE4210", "{ c #DEF610845294", "} c #CE7200002108", "| c #EF7A21088420", " . c #F7BC294A6B5A", ".. c #BDEE084239CE", "X. c #739C00001084", "o. c #108400000000", "O. c #1084A5281084", "+. c #1084CE7218C6", "@. c #0842D6B41084", "#. c #0842B5AC1084", "$. c #0842294A0842", "%. c #1084E73818C6", "&. c #2108EF7A39CE", "*. c #4A52CE724A52", "=. c #4210A5286B5A", "-. c #294A739C8420", ";. c #5AD621087BDE", ":. c #8C6210845AD6", ">. c #EF7A0842318C", ",. c #FFFF18C6C630", "<. c #F7BC10848420", "1. c #E73810846318", "2. c #4A5208422108", "3. c #A52800000842", "4. c #9CE600000842", "5. c #842000000842", "6. c #CE7200000842", "7. c #1084AD6A18C6", "8. c #4210BDEE4210", "9. c #294ADEF6318C", "0. c #6B5ADEF6739C", "q. c #0000EF7A2108", "w. c #1084C6304A52", "e. c #18C6739CA528", "r. c #18C66B5AC630", "t. c #08425AD6CE72", "y. c #0000318CA528", "u. c #4A5210846B5A", "i. c #FFFF1084739C", "p. c #6B5A08424A52", "a. c #AD6A00000842", "s. c #D6B400000842", "d. c #AD6A39CE1084", "f. c #294ABDEE294A", "g. c #AD6AE738AD6A", "h. c #C630EF7AC630", "j. c #DEF6E738DEF6", "k. c #08424A522108", "l. c #00006B5A94A4", "z. c #0000294AC630", "x. c #0000294AB5AC", "c. c #10846318DEF6", "v. c #294A4210B5AC", "b. c #6B5A318C8C62", "n. c #D6B40000318C", "m. c #4210000018C6", "M. c #210800000000", "N. c #C63000000842", "B. c #F7BC00001084", "V. c #F7BC10842108", "C. c #E738318C39CE", "Z. c #84204210294A", "A. c #294A84200842", "S. c #D6B4D6B4D6B4", "D. c #0842529418C6", "F. c #0000E7382108", "G. c #0000294AD6B4", "H. c #084239CED6B4", "J. c #294A6318DEF6", "K. c #18C64210CE72", "L. c #18C65294DEF6", "P. c #52944A52C630", "I. c #DEF618C6A528", "U. c #8C6218C694A4", "Y. c #6B5A10846B5A", "T. c #294A08422108", "R. c #F7BC00000842", "E. c #FFFF18C62108", "W. c #FFFF4A525294", "Q. c #AD6A318C1084", "!. c #B5ACE738B5AC", "~. c #EF7AEF7AEF7A", "^. c #9CE6CE729CE6", "/. c #0000739C0842", "(. c #0000D6B4294A", "). c #000018C6AD6A", "_. c #294A5AD6E738", "`. c #000039CEE738", "'. c #421039CEDEF6", "]. c #F7BC294ABDEE", "[. c #739C318CC630", "{. c #108418C68C62", "}. c #10840842294A", "|. c #FFFF294A318C", " X c #BDEE318C1084", ".X c #39CEBDEE4210", "XX c #10848C6218C6", "oX c #00005294294A", "OX c #18C6294AB5AC", "+X c #10844A52E738", "@X c #21085294EF7A", "#X c #318C4210D6B4", "$X c #AD6A21087BDE", "%X c #0842294A8C62", "&X c #000008421084", "*X c #F7BCF7BCF7BC", "=X c #FFFF5AD66318", "-X c #B5AC21081084", ";X c #18C663182108", ":X c #000039CE0000", ">X c #000000000842", ",X c #000010848C62", "<X c #0000084294A4", "1X c #000018C6B5AC", "2X c #318C6318F7BC", "3X c #21084A52D6B4", "4X c #39CE5AD6BDEE", "5X c #084221085AD6", "6X c #F7BCD6B4D6B4", "7X c #FFFF318C4210", "8X c #318C318C318C", "9X c #000000002108", "0X c #000008428420", "qX c #1084294A8420", "wX c #108421085294", "eX c #C63052945AD6", "rX c #6B5A08420842", "tX c #084208421084", "yX c #084210844A52", "uX c #000010845AD6", "iX c #000010846B5A", "pX c #08420842739C", "aX c #000008424A52", "sX c #94A400000842", "dX c #7BDE00000842", " . X X ", " . o O + @ # $ . ", " % & * & = - . . @ ; : ", " : # > + ; , # X : . < 1 2 X . ", " < $ 3 > 4 $ X : . . < 1 > o : ", " 5 6 7 , # : : . . : 8 > o . ", " . . 9 0 q w w . . . . < e r < . ", ". . 9 t y u i . . . : . . . . . . . p 1 3 < . ", ". . . . . . . . : . 9 a a a a s s a d 3 f . ", ". . . : g h j k l z x : 9 s s a c v b s n m M M M N ", ". . . B V C Z A S D F F . . 9 G H J 9 . K L u u L t ", " P I U U Y T R E W Q ! : ~ ^ ~ . . / L L ( M N ", " ) _ ` ' ] [ 6 { } | ...X.X.! X o.: o h u O.+.@.#.9 ", " $.%.&.*.=.-.;.:.>.,.<.1.2.X o.3.4.5.6.} 7.8.*.9.0.s ", ". P q.w.e.r.t.y.u.z i.i.Q p.9 o.6.a.3.s.d.L f.g.h.j.a ", ". k.q.l.z.x.c.c.v.b.n.n...m.. M.N.B.V.C.Z.A.#.h.S.S.a ", ". D.F.y.G.H.J.K.L.P.I.U.Y.T.. n.R.E.W.W.W.Q.L !.~.^.s ", ". /.(.)._._.K.z.`.'.].[.{.}.9 W B.E.|.|.W. X7.f..XXX. ", " / oXOXOXOX+X@X@X#X$Xb.%X&X. w S.*X*XR.=X-X;Xn :X/ . ", ". . >X,X<X1X2X2X@X3X4Xv.5X>Xs w ~.6X=XR.7Xz 8X9 . ", ". . . 9X0Xz.H.H.).{.qXwX. . . eX6X*X7XR.R.rX9 . ", "a a s s tXyXuXiXpXaX9X. . . . x a.6.N.sXdXX ", "s s s s X X : 9 tX>X. . . . . . X M.o.. . ", ". . . >X. : : . . . . . . . . . "}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/Makefile.am�������������������������������������������������������0000644�0001750�0001750�00000002252�12214432632�015607� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������xpmdatadir = $(wprefs_datadir)/xpm if ICON_EXT_XPM dist_xpmdata_DATA = \ advancetonewworkspace.xpm \ animations.xpm \ appearance.xpm \ clip.xpm \ configs.xpm \ cycleworkspaces.xpm \ dock.xpm \ dockclipdrawersection.xpm \ dontlinkworkspaces.xpm \ drawer.xpm \ ergonomic.xpm \ expert.xpm \ fonts.xpm \ iconprefs.xpm \ keyboard.xpm \ keyboardprefs.xpm \ keyshortcuts.xpm \ menualign1.xpm \ menualign2.xpm \ menuprefs.xpm \ menus.xpm \ moreanim.xpm \ mousesettings.xpm \ mousespeed.xpm \ msty1.xpm \ msty2.xpm \ msty3.xpm \ newstyle.xpm \ nextstyle.xpm \ nonopaque.xpm \ noopaqueresize.xpm \ oldstyle.xpm \ opaque.xpm \ opaqueresize.xpm \ paths.xpm \ smooth.xpm \ sound.xpm \ speed0.xpm \ speed0s.xpm \ speed1.xpm \ speed1s.xpm \ speed2.xpm \ speed2s.xpm \ speed3.xpm \ speed3s.xpm \ speed4.xpm \ speed4s.xpm \ tdel.xpm \ tedit.xpm \ temp.xpm \ textr.xpm \ theme.xpm \ timer0.xpm \ timer0s.xpm \ timer1.xpm \ timer1s.xpm \ timer2.xpm \ timer2s.xpm \ timer3.xpm \ timer3s.xpm \ timer4.xpm \ timer4s.xpm \ timer5.xpm \ timer5s.xpm \ tnew.xpm \ whandling.xpm \ windowfocus.xpm \ workspace.xpm \ workspacename.xpm \ xis.xpm endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/tdel.xpm����������������������������������������������������������0000644�0001750�0001750�00000010314�12214432632�015227� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "27 24 130 2", " c None", ". c #000000000000", "X c #084200000000", "o c #1084108418C6", "O c #294A2108294A", "+ c #18C618C618C6", "@ c #210818C60842", "# c #294A10840000", "$ c #108408420000", "% c #2108294A5294", "& c #18C639CEB5AC", "* c #084239CED6B4", "= c #1084318CC630", "- c #084218C69CE6", "; c #000018C68C62", ": c #084221087BDE", "> c #18C618C6294A", ", c #18C618C61084", "< c #210839CEB5AC", "1 c #294A5294E738", "2 c #21085294F7BC", "3 c #18C65294F7BC", "4 c #6B5A8C62F7BC", "5 c #21085294EF7A", "6 c #000039CEDEF6", "7 c #0000318CCE72", "8 c #00001084A528", "9 c #0842108439CE", "0 c #18C6294A5AD6", "q c #39CE739CEF7A", "w c #AD6AC630F7BC", "e c #94A4AD6AFFFF", "r c #08424210F7BC", "t c #318C6318F7BC", "y c #10844A52F7BC", "u c #00004210EF7A", "i c #000018C6B5AC", "p c #000008429CE6", "a c #000008428C62", "s c #00000000294A", "d c #0842084218C6", "f c #0842294A94A4", "g c #318C6B5AF7BC", "h c #94A4B5ACFFFF", "j c #5AD68C62F7BC", "k c #00004210F7BC", "l c #00004A52EF7A", "z c #000010848C62", "x c #000000000842", "c c #108410841084", "v c #210821082108", "b c #294A4A52CE72", "n c #739C94A4EF7A", "m c #39CE6B5AF7BC", "M c #00004210DEF6", "N c #0000294AD6B4", "B c #00002108C630", "V c #000021088C62", "C c #084208420842", "Z c #421042104210", "A c #AD6AAD6AAD6A", "S c #9CE69CE69CE6", "D c #94A49CE6B5AC", "F c #6B5A8420BDEE", "G c #4A526B5ABDEE", "H c #4A526318BDEE", "J c #39CE5294BDEE", "K c #294A4210AD6A", "L c #21085294BDEE", "P c #18C64210C630", "I c #108439CECE72", "U c #5AD66318B5AC", "Y c #5AD66B5AB5AC", "T c #6B5A6B5A739C", "R c #318C318C318C", "E c #94A494A494A4", "W c #8C628C6294A4", "Q c #739C7BDE8C62", "! c #6B5A739C8C62", "~ c #7BDE8420A528", "^ c #A528AD6AC630", "/ c #BDEEBDEEBDEE", "( c #739C739C739C", ") c #294A294A294A", "_ c #A528A528A528", "` c #842094A48420", "' c #8C628C628C62", "] c #842084208420", "[ c #D6B4D6B4D6B4", "{ c #C630C630C630", "} c #B5ACB5ACB5AC", "| c #529452945294", " . c #7BDE7BDE7BDE", ".. c #7BDE94A48420", "X. c #1084739C2108", "o. c #2108739C318C", "O. c #7BDE8C627BDE", "+. c #631863186318", "@. c #9CE6A5289CE6", "#. c #4A5284205AD6", "$. c #39CE7BDE4210", "%. c #529484205AD6", "&. c #739C94A47BDE", "*. c #6B5A94A46B5A", "=. c #8C6294A48C62", "-. c #84208C628420", ";. c #421084204A52", ":. c #5AD67BDE5AD6", ">. c #6B5A6B5A6B5A", ",. c #6B5A84206B5A", "<. c #294A739C318C", "1. c #10846B5A2108", "2. c #18C618C62108", "3. c #6B5A7BDE6B5A", "4. c #00006B5A1084", "5. c #18C6739C294A", "6. c #739C8420739C", "7. c #08426B5A18C6", "8. c #39CE39CE39CE", "9. c #5AD65AD65AD6", "0. c #108408420842", "q. c #4A524A524A52", "w. c #10844210EF7A", "e. c #00000842318C", "r. c #294A318C4210", "t. c #21084210AD6A", "y. c #0000294ACE72", "u. c #000008424210", "i. c #0000000018C6", "p. c #084218C639CE", " . . . . . . . . X X X X X X . X X ", " . . . . . . o O + @ # $ X X X X X X X ", " . . . . . % & * = - ; : > X X . . X X ", " . . . . . , < 1 2 3 4 5 6 7 8 9 . . . . . ", " . . . . X 0 q w e r t y u i p a s . ", " . . . . . d f g h j k k k l i p p z x ", " . . . c v c c % b n m r k k 6 M N B i 8 V X . ", " . . . . . C Z A S D F G H J K L P I b U Y T v . ", " . . . R S S S S S E W Q Q ! ~ ^ / / ( . ", " . . . . . . ) S A A _ ` ` E E ' ] _ [ { } | ", " . . C c c . + .A A ..X.o.O.' ] ] A { } _ v ", " . + R + v c . c +._ @.#.$.o.%.] ] ] A } A S . ", " . . Z v . . . . . | S &.*.=.-.;.:. .' A _ E >. ", ". . C Z c . . . . . Z E X.%.=.,.<.1.( ] _ E ] 2. . . ", ". . C Z v . + . . . v 3.4.5.6.o.7.7.( ] E ] ( C . . ", " . c R + + + C . c >.E ' ' . .( >.] ] >.8.. . . . ", " . . C c + v + C . >.' ' ] .( >.>. . .9.+ . . . . ", " . . . . . C 0.0.C X q.] ] .( >.+.( ] +.Z c . . ", " . . . . . . . X X X ) . .( >.+.9.( +.G m w.e. ", " . . . . . . . . C ) ) v ) q.q.+.r.t.3 y.u. ", " . . . . . . . . . . C C . i.p.s . ", " . . ", " . ", " "}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/timer3s.xpm�������������������������������������������������������0000644�0001750�0001750�00000001467�12214432632�015676� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 5 1", " c None", ". c #000000000000", "X c #7BDE7BDE7BDE", "o c #FFFFFFFFFFFF", "O c #FFFF00000000", " ", " ..... ", " X.X ", " .. X.X .. ", " X.. X.....X ..X ", " ....oo.OO.... ", " ..oooo.OOOO.. ", " .oooooo.OOOOOO. ", " XXoooooo.OOOOOOXX ", " .ooooooo.OOOOOOO. ", " XXooooooo.OOOOOOOXX ", " .oooooooo.OOOOOOOO. ", " .oooooooo.OOOOOOOO. ", " ....ooooo.OOOOO.... ", " .ooooooooo.OOOOOOO. ", " .oooooooooo.OOOOOO. ", " XXoooooooooo.OOOOXX ", " .ooooooooooo.OOO. ", " XXooooooooooo.OXX ", " .oooooo.ooooo.. ", " .Xoooo.oooo.. ", " X..oo.oo..X ", " X.....X ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/workspace.xpm�����������������������������������������������������0000644�0001750�0001750�00000016571�12214432632�016310� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * workspace_xpm[] = { "48 48 168 2", " c None", ". c #2C2C2C", "+ c #FEFEFE", "@ c #505075", "# c #E8E8E8", "$ c #A2A2A3", "% c #A7A7A8", "& c #ACACAC", "* c #B0B0B0", "= c #B5B5B5", "- c #5E5E5E", "; c #050505", "> c #F2F2F2", ", c #BABABA", "' c #ADADAD", ") c #C0C0C0", "! c #2F2F2F", "~ c #000000", "{ c #6E6E6E", "] c #0F0F0F", "^ c #717171", "/ c #A3A3A3", "( c #1C1C1C", "_ c #070707", ": c #C3C3C3", "< c #212121", "[ c #BCBCBC", "} c #6D6D6D", "| c #1F1F1F", "1 c #6A6A6A", "2 c #BBBBBB", "3 c #C9C9C9", "4 c #2D2D2D", "5 c #6B6B6B", "6 c #0C0C0C", "7 c #DDDDDD", "8 c #191919", "9 c #2B2B2B", "0 c #111111", "a c #1B1B1B", "b c #696969", "c c #0A0A0A", "d c #121212", "e c #0B0B0B", "f c #171717", "g c #757575", "h c #CDCDCD", "i c #CECECE", "j c #CBCBCB", "k c #CFCFCF", "l c #CCCCCC", "m c #C8C8C8", "n c #C6C6C6", "o c #C2C2C2", "p c #C1C1C1", "q c #D3D3D3", "r c #747474", "s c #1A1A1A", "t c #AFAFAF", "u c #9B9B9B", "v c #837A73", "w c #8E867F", "x c #A39286", "y c #787571", "z c #989799", "A c #9995A0", "B c #96919D", "C c #939393", "D c #9A999B", "E c #919191", "F c #908379", "G c #A08773", "H c #896F5A", "I c #6E5742", "J c #5E5853", "K c #8F8E92", "L c #7F7B84", "M c #7D7B7C", "N c #8D8C8E", "O c #908E92", "P c #8A898B", "Q c #80766C", "R c #8B6D54", "S c #765D46", "T c #614D3A", "U c #6C6B69", "V c #888889", "W c #8C8992", "X c #8E8A96", "Y c #828583", "Z c #7C7F7D", "` c #7F766E", " . c #7C614B", ".. c #544537", "+. c #494542", "@. c #8E8E8E", "#. c #999E98", "$. c #B9B9B9", "%. c #B2B2B2", "&. c #8B8B8B", "*. c #989E97", "=. c #898989", "-. c #848484", ";. c #7D7A78", ">. c #605E5B", ",. c #7C7C7C", "'. c #9D9D9D", "). c #AEAEAE", "!. c #181818", "~. c #FFFFFF", "{. c #565656", "]. c #636363", "^. c #818187", "/. c #A7A7C5", "(. c #ACADCF", "_. c #7C7C98", ":. c #7D7D86", "<. c #777593", "[. c #8D8CBA", "}. c #78779D", "|. c #7B779B", "1. c #8B7D94", "2. c #545066", "3. c #6F6F91", "4. c #5B5B5B", "5. c #646475", "6. c #57556F", "7. c #505055", "8. c #9E9F9F", "9. c #262626", "0. c #787685", "a. c #605F90", "b. c #696880", "c. c #A8A8A8", "d. c #A8606F", "e. c #604E42", "f. c #75746D", "g. c #7F7F7B", "h. c #777777", "i. c #BB6A6A", "j. c #8D634E", "k. c #B9B756", "l. c #828275", "m. c #896F6F", "n. c #7E6A63", "o. c #AAA962", "p. c #89897F", "q. c #1D1D1D", "r. c #161616", "s. c #E7E7E7", "t. c #D7D7D7", "u. c #D8D8D8", "v. c #A8A8A9", "w. c #D4D4D4", "x. c #D6D6D6", "y. c #DADADA", "z. c #AAAAAA", "A. c #EEEEEE", "B. c #838383", "C. c #878787", "D. c #888888", "E. c #868686", "F. c #8A8A8A", "G. c #7E7E7E", "H. c #0D0D0D", "I. c #3C3C3C", "J. c #494949", "K. c #E9E9E9", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # $ % & * = - + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # % ; ; > , - + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # ' ; > , ) - + ", ". @ @ ! * * * ~ { ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ { ] * ^ / ( @ @ @ @ @ # * > , _ : - + ", ". @ @ < [ ~ * ~ } ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ } _ | + 1 ~ @ @ @ @ @ # = 2 ) : 3 - + ", ". @ @ 4 * * * ~ 5 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 5 6 7 8 ' 9 @ @ @ @ @ # - - - - - - + ", ". @ @ 0 ~ ~ ~ a b c d d d d d d d d d d d d d d d d d d c b | ; ~ e f @ @ @ @ @ # # # # # # # + ", ". @ @ g 7 h i 3 j j k k h h h l l l j j 3 3 3 m m m n n o ) p n n q r @ @ @ @ @ # $ % & * = - + ", ". @ @ s t t t t t t t t t u v w x y t t t u v w x y t t t t t t t t f @ @ @ @ @ # z A B C , - + ", ". @ @ 8 t D A B E t t t t F G H I J t t t F G H I J t t t t t t t t 8 @ @ @ @ @ # K L M N ) - + ", ". @ @ 8 t O L M P t t t t Q R S T U t t t Q R S T U t t t t t t t t 8 @ @ @ @ @ # V W X Y : - + ", ". @ @ s t V W X Z t t t t ` ...+.@.t t t ` ...+.@.t t t t t t t t 8 @ @ @ @ @ # #.$.%.&.3 - + ", ". @ @ a t *.$.%.=.t t -.t ;.>.,.'.).t -.t ;.>.,.'.).t -.t t t t t t !.@ @ @ @ @ # - - - - - - + ", ". @ @ 8 t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t 8 @ @ @ @ @ # # # # # # # + ", ". @ @ 8 ~.~.~.~.~.~.~.~.~.~.~.t {.t {.t {.t {.t {.t {.t {.t {.t {.t 8 @ @ @ @ @ # $ % & * = - + ", ". @ @ s ~.t t t t ].t t t t ~ {.t {.t {.t {.t {.t {.t {.t {.t {.t {.8 @ @ @ @ @ # ^./.(._., - + ", ". @ @ a ~.~ ~ ~ ~ ~ ~ ~ ~ ~ ~ t {.t {.t {.t {.t {.t {.t {.t {.t {.t !.@ @ @ @ @ # :.<.[.}.) - + ", ". @ @ ( j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j !.@ @ @ @ @ # |.1.2.3.: - + ", ". @ @ a ~.~.~.t t t t t t ~.4.t 4.t t t t t t ~.4.t 4.t t t t t t t f @ @ @ @ @ # 5.6.7.8.3 - + ", ". @ @ ( ~.t 9.t t t t t t ~.4.4.t 4.t t t t t ~.4.4.t 4.t t t t t t !.@ @ @ @ @ # - - - - - - + ", ". @ @ ( ~.t 9.t t t t t t ~.4.t 4.t t t t t t ~.4.t 4.t t t t t t t !.@ @ @ @ @ # # # # # # # + ", ". @ @ ( ~.].9.t t t t t t ~.4.~.~.~.t t t t t ~.4.4.t 4.t t t t t t !.@ @ @ @ @ # 0.a.b.c.= - + ", ". @ @ ( ~.t 9.t t t t t t ~.4.~.t 0 t t t t t ~.4.t 4.t t t t t t t !.@ @ @ @ @ # d.e.f.g., - + ", ". @ @ ( ~.t 9.t t t t t t ~.4.~.h.0 t t t t t ~.4.4.t 4.t t t t t t !.@ @ @ @ @ # i.j.k.l.) - + ", ". @ @ a ~.t 9.t t t t t t ~.4.~.t 0 t t t t t ~.4.t 4.t t t t t t t !.@ @ @ @ @ # m.n.o.p.: - + ", ". @ @ a ~.9.9.t t t t t t ~.4.~.t 0 t t t t t ~.4.4.t 4.t t t t t t f @ @ @ @ @ # = 2 ) : 3 - + ", ". @ @ a t {.t t t t t t t ~.4.~.0 0 t t t t t ~.4.t 4.t t t t t t t f @ @ @ @ @ # - - - - - - + ", ". @ @ a {.t {.t t t t t t ~.4.4.t 4.t t t t t ~.4.4.t 4.t t t t t t f @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ a t {.t t t t t t t ~.4.t 4.t t t t t t ~.4.t 4.t t t t t t t f @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ q.{.t {.t t t t t t ~.4.4.t 4.t t t t t ~.4.4.t 4.t t t t t t !.@ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ r.t {.t t t t t t t ~.4.t 4.t t t t t t ~.4.t 4.t t t t t t t r.@ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ r.s.q t.u.v.% w.x.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.u.v.% w.x.y.z._ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ 9 A.B.C.D.g q / E.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.D.g q / E.F.G.H.@ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", ". ; ; ; ; ; ; I.I.; ; ; ; ; ; @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # + ", ". ; ; ; ; ; ; J.J.; ; ; ; ; ; @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # g % $ g - - + ", ". # z A B C , b K.z A B C , - @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # % $ * = g - + ", ". # K L M N ) - # K L M N ) - @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # $ * g , ) - + ", ". # V W X Y : - # V W X Y : - @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # g = , ) : - + ", ". # #.$.%.&.3 - # #.$.%.&.3 - @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # - g ) ) g - + ", ". # - - - - - - # - - - - - - @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # - - - - - - + ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; ���������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/dockclipdrawersection.xpm�����������������������������������������0000644�0001750�0001750�00000021410�12214432632�020660� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * dockclipdrawersection_xpm[] = { "48 48 256 2", " c #000100", ". c #000609", "+ c #030601", "@ c #0B080D", "# c #070A06", "$ c #080E10", "% c #110E12", "& c #131114", "* c #0E1315", "= c #121311", "- c #161417", "; c #18171A", "> c #191A21", ", c #1C1A1D", "' c #1C1C24", ") c #1E1F26", "! c #232124", "~ c #202426", "{ c #222421", "] c #22232B", "^ c #252427", "/ c #25252D", "( c #27282F", "_ c #29282B", ": c #2B2B33", "< c #2B2D2A", "[ c #2D2E36", "} c #303038", "| c #323034", "1 c #2F3335", "2 c #34353D", "3 c #373538", "4 c #383941", "5 c #3C3A3D", "6 c #393D4A", "7 c #3D3E46", "8 c #403E41", "9 c #42424B", "0 c #3F4350", "a c #424441", "b c #454346", "c c #46464F", "d c #464845", "e c #4A484B", "f c #434A51", "g c #484951", "h c #4D4B4F", "i c #4D4D56", "j c #4B4E5C", "k c #505059", "l c #515351", "m c #53545D", "n c #525563", "o c #6C5612", "p c #4F575E", "q c #575760", "r c #5A585C", "s c #6F591D", "t c #6C5B16", "u c #5D5B59", "v c #5B5B64", "w c #585C6A", "x c #725D20", "y c #5F5D61", "z c #5B5F6C", "A c #72611F", "B c #606069", "C c #5D616F", "D c #5E627B", "E c #5F6371", "F c #7A6327", "G c #646563", "H c #64646D", "I c #5E666D", "J c #5E6578", "K c #616668", "L c #616572", "M c #7C6529", "N c #676568", "O c #6A646E", "P c #636774", "Q c #676770", "R c #656876", "S c #666983", "T c #676B79", "U c #816D19", "V c #72696F", "W c #726C57", "X c #706A74", "Y c #696D70", "Z c #6B6C75", "` c #6F6C70", " . c #7D6E3B", ".. c #6A6E7C", "+. c #837024", "@. c #6B6F89", "#. c #6D707F", "$. c #70717A", "%. c #887320", "&. c #6E718C", "*. c #797076", "=. c #747276", "-. c #927503", ";. c #8B7519", ">. c #87742F", ",. c #6F7381", "'. c #7D7367", "). c #767382", "!. c #717583", "~. c #6F768A", "{. c #8D7825", "]. c #78767A", "^. c #737785", "/. c #7A7772", "(. c #8D792D", "_. c #8C7933", ":. c #757988", "<. c #7B797D", "[. c #747B8F", "}. c #7D798A", "|. c #807984", "1. c #7A7B84", "2. c #787C8A", "3. c #837A80", "4. c #977C32", "5. c #877986", "6. c #917E3F", "7. c #777E92", "8. c #7A7E8C", "9. c #807D8D", "0. c #877D7A", "a. c #7C808F", "b. c #837F90", "c. c #7B8296", "d. c #7E8291", "e. c #887F94", "f. c #98843E", "g. c #90826B", "h. c #9E8339", "i. c #828297", "j. c #898471", "k. c #9D862C", "l. c #A38525", "m. c #818593", "n. c #A28534", "o. c #8D8489", "p. c #85868F", "q. c #85859A", "r. c #A5872F", "s. c #8B8590", "t. c #838796", "u. c #918585", "v. c #8D8875", "w. c #8A8697", "x. c #9D884E", "y. c #868A99", "z. c #8C8993", "A. c #AD8932", "B. c #8C8A8E", "C. c #8A8A9F", "D. c #A58D33", "E. c #AB8C2C", "F. c #928C79", "G. c #858CA0", "H. c #AA8C34", "I. c #A58B4D", "J. c #9089A1", "K. c #A58E3B", "L. c #898D9C", "M. c #AC8E3D", "N. c #A99036", "O. c #938D98", "P. c #8B8F9E", "Q. c #9B8E7D", "R. c #8E8EA4", "S. c #AE9037", "T. c #B09131", "U. c #AB9145", "V. c #8D91A0", "W. c #AC9331", "X. c #9390A0", "Y. c #8F9396", "Z. c #8F93A2", "`. c #AE953B", " + c #9592A3", ".+ c #B3943C", "++ c #A19571", "@+ c #9195A4", "#+ c #A49194", "$+ c #9B94A0", "%+ c #9B93AB", "&+ c #B1983E", "*+ c #9497A6", "=+ c #9996A6", "-+ c #979996", ";+ c #9798A2", ">+ c #B5984D", ",+ c #B09A53", "'+ c #9D99AA", ")+ c #979BAA", "!+ c #A098B0", "~+ c #BC9C43", "{+ c #9A9FA1", "]+ c #BBA03F", "^+ c #C2A141", "/+ c #9EA2B1", "(+ c #AD9EB8", "_+ c #ACA2A8", ":+ c #AFA1AF", "<+ c #B9A66E", "[+ c #A9A7AB", "}+ c #A9ABA8", "|+ c #B7A9B6", "1+ c #B2ABB6", "2+ c #AFACBD", "3+ c #B0AEB2", "4+ c #BCABB3", "5+ c #C7B068", "6+ c #BDAEC8", "7+ c #CBB46B", "8+ c #BBB1B8", "9+ c #D3B56E", "0+ c #D3B769", "a+ c #CFB86F", "b+ c #B5BABD", "c+ c #B8BAB7", "d+ c #BFBDC1", "e+ c #BFBCCD", "f+ c #BEC1BD", "g+ c #C6C8C5", "h+ c #C6CCCE", "i+ c #E0CD7B", "j+ c #D0CDD1", "k+ c #D2D0D4", "l+ c #D6D4D8", "m+ c #D7D8E2", "n+ c #DBD8DD", "o+ c #DADCD9", "p+ c #D8DDE0", "q+ c #DCDDE7", "r+ c #F4E08D", "s+ c #E1E2EC", "t+ c #E3E5E1", "u+ c #E8E5EA", "v+ c #E5E6F0", "w+ c #ECE9EE", "x+ c #E9EAF4", "y+ c #EFEDF1", "z+ c #EDEEF8", "A+ c #F0F2EF", "B+ c #F4F1F6", "C+ c #F2F3FD", "D+ c #F8F5FA", "E+ c #FBF8FD", "F+ c #FCFEFB", "G+ c #FEFFFC", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", "+ D D D D D D D D D D D D D D D D D D D D D D D E+B+B+B+y+y+z+y+y+y+x+x+x+w+w+u+u+u+s+s+s+s+[+G+", "+ D D D D D D D D D D D D D D D D D D D D D D D B+=+=+*+*+ +V.P.L.L.y.y.t.m.m.d.a.8.2.:.:.^.} G+", "+ D D D D D D D D D D D D D D D D D D D D D D D B+'+)+)+'+*+*+Z.V.P.L.L.y.y.t.m.m.d.a.8.2.2.2 G+", "+ D D D D D D D D D D D D D D D D D D D D D D D z+*+)+*+*+*+Z.*+Z.1.Z Z Z $.y.m.d.a.8.2.2.2.2 G+", "+ D D D D D D D D D D D D D D D D D D D D D D D z+=+*+*+*+Z.=+K @ # . . . + = ^.m.8.2.:.:.^.} G+", "+ D D D D D D D D D D D D D D D D D D D D D D D y+*+*+*+V.P._ + + + + + + + + + 4 #.#.,.^.^.} G+", "+ D D D D D D D D D D D D D D D D D D D D D D D y+ +*+Z./+, + + + + + + + + /.f+g+3 $ 2 !.!.} G+", "+ D D D D D D D D D D D D D D D D D D D D D D D y+X.Z.*+; + + + + + + + + + -+G+G+G+% _ !.,.} G+", "+ D D D D D D D D D D D D D D D D D D D D D D D y+P.V.2.@ + + + + + + + + + -+G+G+G+3+! ,.,.} G+", "+ D D D D D D D D D D D D D D D D D D D D D D D y+L.P.B + + + + + + + + + + -+G+G+G+o+5 #.#.[ G+", "+ D D D D D D D D D D D D D D D D D D D D D D D x+L.L.B + + + + + + + + + + -+G+G+G+A+y #...: G+", "+ D D D D D D D D D D D D D D D D D D D D D D D x+L.L.B + + + + % b d a l d f+G+G+G+A+y ....: G+", "+ D D D D D D D D D D D D D D D D D D D D D D D w+y.y.B + + + + = t+G+G+G+G+G+G+G+G+A+r ..T : G+", "+ D D D D D D D D D D D D D D D D D D D D D D D w+t.y.v + + + + = o+G+G+G+G+G+G+G+G+o+3 R R : G+", "+ D D D D D D D D D D D D D D D D D D D D D D D u+m.t.1.$ + + + = o+G+G+G+G+G+G+G+G+g+> R R ( G+", "+ D D D D D D D D D D D D D D D D D D D D D D D u+m.m.y.c + + + = o+G+G+G+G+G+G+G+D+= ~ R L ( G+", "+ D D D D D D D D D D D D D D D D D D D D D D D u+d.m.H ^ . l a l t+G+G+G+G+G+G+G+1 + ^ L E ( G+", "+ D D D D D D D D D D D D D D D D D D D D D D D s+a.d.q + + G t+G+G+G+G+G+G+G+p+b + + ! E C / G+", "+ D D D D D D D D D D D D D D D D D D D D D D D s+8.a.m + + + + u }+g+G+o+c+u # + + + ) z z / G+", "+ D D D D D D D D D D D D D D D D D D D D D D D s+2.8.,.q q q m k g c 7 9 c g g g c c j z z / G+", "+ D D D D D D D D D D D D D D D D D D D D D D D s+2.2.2.2.:.^.^.,.,.,.#.....R R P L E z z z ] G+", "+ D D D D D D D D D D D D D D D D D D D D D D D s+:.2.:.:.!.!.,.#.#.....T R R L E C z z w w ] G+", "+ &.&.&.&.&.&.&.&.&.&.&.&.&.@.@.&.@.@.@.@.@.@.S Y.} 2 } } } } } } } : : : : : ( ( ( ( / / ] ) G+", "+ D+s+s+s+s+q+q+q+q+q+q+m+m+m+b+m+m+m+m+m+m+m+B.B+n+n+n+n+n+n+n+l+l+l+l+l+l+k+k+j+j+j+j+j+j+{+G+", "+ B+=+)+'+*+Z.=+Z.V.P.L.L.y.t.V.h 2.a.E z z R ( D+'+'+)+'+*+=+Z.V.P.L.L.y.y.t.m.m.d.a.8.2.2.2 G+", "+ B+=+'+'+,.@ H Z.V.P.L.L.y.y.t.y.q 2.z . + | ( C+)+'+)+*+*+=+Z.V.P.L.L.y.y.t.m.m.d.a.8.2.2.2 G+", "+ B+=+)+=+y.t.i V.P.L.y.y.t.m.m.d.m.5 2.L + 3 / C+'+)+*+=+Z.Z.V.P.L.L.y.t.t.m.d.d.a.8.2.2.:.2 G+", "+ B+Z.*+=+P.9 t.P.L.y.y.t.m.m.d.a.8.m.7 #.E 4 / C+*+*+=+Z.Z.R.P.Q.Q.F.v.v.v.v.j.j.j.j.1.:.:.} G+", "+ y+X.*+Z.Z.Z.P.L.y.y.t.m.m.d.a.w.s.3.<.| ^.,.] C+=+*+Z.Z.R.++>+.+T.E.E.l.H.H.H.E.T.f.<.^.^.} G+", "+ z+X.*+V.V.P.L.y.y.t.m.m.d.J.(+o.I v ].o.! ..] C+Z.*+Z.R.0+a+7+7+5+7+5+5+5+5+5+5+h.6.].!.!.} G+", "+ z+P.Z.P.P.L.y.y.t.m.m.C.3.%+2+1+=.v B y ^.4 ' C+V.Z.V.R.a+^+^+^+^+^+]+]+]+^+~+A 4._.].,.,.} G+", "+ z+L.V.P.L.y.y.t.m.m.9.e.6+f 8 c V B Z #.,.!.. C+P.V.P.G.a+~+~+~+~+~+&+&+&+`..+t (._.=.#.#.} G+", "+ z+y.P.L.y.y.t.t.w.|.|+H b 8 k H O q $.v #.#.] z+L.P.a.q.a+~+~+`.r.H.N.E.,+`.`.t {._.=.#.#.[ G+", "+ x+y.P.y.y.t.m.:.|+:+v 8 9 B #.$.}.q.p m ....) z+L.*+< [.a+~+~+&+H.i+r+N.>+`.H.t (.>.=.....: G+", "+ x+t.L.y.t.d.=+_+|.h 8 i Q ,.2.Z 9.r i q ....) z+V.< < [.a+~+~+`.r.0+9++.,+N.H.t %.+.` ....: G+", "+ w+t.y.t.b.8+O.|.8 b v ..,.}.e.*.q 8 k B T T ' z+L.$.{ [.a+~+&+.+U.>+6.x.<+E.D.t %.U Y R R : G+", "+ u+m.t.;+u.1+k 8 h Q ,.,.!+5.).c 8 i B R R R ' z+t.y.Q ~.7+~+&+&+`.`.W.S.H.N.N.t U +.` R R : G+", "+ d+,.m.4+O.c 9 q $...t.:+B X 7 9 q Q R R R R > x+t.t.m.c.7+M.K.K.D.k.k.n.k.k.k.t %.+.` R R ( G+", "+ w+4 P.o.B b B ,.$.e+O s.g 8 i B R R R R P P > x+m.t.d.i.<+M F F F x s s s o o o %.+.N P L ( G+", "+ u+)+: ).0.m Q P.$+s.H 8 9 q R R R R R L L L > x+d.m.d.7..+U.I.I.x.A.h.l._.6.(.-.;. .J L L ( G+", "+ u+,.L.k $.#+_+X.].i 8 i B R R R R T L E E C > v+a.d.8.8.g.0.^.!.!./.=.'.....R W W J E C C / G+", "+ v+6 L L./ |._+N 8 b q H ....R R R , R C z C > v+8.a.8.2.:.^.!.!.,.#.#.....R R R L E C z z / G+", "+ s+0 + j L.g i i 5 4 + ^ B 2 k } _ . c 7 c c $ v+2.8.2.:.^.!.!.,.#.#.....R R R L E C z z z / G+", "+ s+0 + + n :.7 :.,.* z , w - : + #.$ * z ] + % v+2.2.2.:.^.!.,.,.#.....T R R L L E z z w w ] G+", "+ u+2.z.p.p.8.y.2 C B ,.R #.q R k R j E c c 9 @ x+8.a.8.2.:.:.^.!.,.#.#.....R R P L E z z z ] G+", "+ f+; ; ; ; ; - , $ & - - - - & & & % % % % $ @ h+; , ; ; ; ; - - - - - - & & * & % % % % % . G+", "+ G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+"}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/timer3.xpm��������������������������������������������������������0000644�0001750�0001750�00000001442�12214432632�015504� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 4 1", " c None", ". c #000000000000", "X c #7BDE7BDE7BDE", "o c #BDEEBDEEBDEE", " ", " ..... ", " X.X ", " .. X.X .. ", " X.. X.....X ..X ", " ....oo.XX.... ", " ..oooo.XXXX.. ", " .oooooo.XXXXXX. ", " XXoooooo.XXXXXXXX ", " .ooooooo.XXXXXXX. ", " XXooooooo.XXXXXXXXX ", " .oooooooo.XXXXXXXX. ", " .oooooooo.XXXXXXXX. ", " ....ooooo.XXXXX.... ", " .ooooooooo.XXXXXXX. ", " .oooooooooo.XXXXXX. ", " XXoooooooooo.XXXXXX ", " .ooooooooooo.XXX. ", " XXooooooooooo.XXX ", " .oooooo.ooooo.. ", " .Xoooo.oooo.. ", " X..oo.oo..X ", " X.....X ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/timer0s.xpm�������������������������������������������������������0000644�0001750�0001750�00000001442�12214432632�015664� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 4 1", " c None", ". c #000000000000", "X c #7BDE7BDE7BDE", "o c #FFFFFFFFFFFF", " ", " ..... ", " X.X ", " .. X.X .. ", " X.. X.....X ..X ", " ....ooooo.... ", " ..ooooooooo.. ", " .oooooooooooo.. ", " XXoooooooooooooXX ", " .ooooooooooooooo. ", " XXoooooooooooooooXX ", " .ooooooooooooooooo. ", " .ooooooooooooooooo. ", " .ooooooooooooooooo. ", " .ooooooooooooooooo. ", " .ooooooooooooooooo. ", " XXoooooooooooooooXX ", " .ooooooooooooooo. ", " XXoooooooooooooXX ", " .ooooooooooooo. ", " .Xooooooooo.. ", " X..ooooo..X ", " X.....X ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/speed2.xpm��������������������������������������������������������0000644�0001750�0001750�00000001370�12214432632�015463� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 2 1", " c None", ". c #210839CE7BDE", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . .. ... . ", " . .. ... .. ", " . .. ... ... ", " . .. ... .... ", " . .. ... ... ", " . .. ... .. ", " . .. ... . ", " ", " ", " ", " ", " ", " ", " ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/timer4s.xpm�������������������������������������������������������0000644�0001750�0001750�00000001467�12214432632�015677� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 5 1", " c None", ". c #000000000000", "X c #7BDE7BDE7BDE", "o c #FFFFFFFFFFFF", "O c #FFFF00000000", " ", " ..... ", " X.X ", " .. X.X .. ", " X.. X.....X ..X ", " ....oo.OO.... ", " ..oooo.OOOO.. ", " .oooooo.OOOOOO. ", " XXoooooo.OOOOOOXX ", " .ooooooo.OOOOOOO. ", " XXooooooo.OOOOOOOXX ", " .oooooooo.OOOOOOOO. ", " .oooooooo.OOOOOOOO. ", " ....ooooo.OOOOO.... ", " .oooooooo.OOOOOOOO. ", " .oooooooo.OOOOOOOO. ", " XXooooooo.OOOOOOOXX ", " .ooooooo.OOOOOOO. ", " XXoooooo.OOOOOOXX ", " .oooooo.OOOOOO. ", " .Xoooo.OOOO.. ", " X..oo.OO..X ", " X.....X ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/animations.xpm����������������������������������������������������0000644�0001750�0001750�00000006613�12214432632�016450� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 44 1", " c None", ". c #FFFFEF7A6B5A", "X c #FFFFF7BCB5AC", "o c #084208420842", "O c #421042104210", "+ c #421042104A52", "@ c #39CE39CE4210", "# c #000000000000", "$ c #294A294A294A", "% c #4A524A525294", "& c #210821082108", "* c #8C62842039CE", "= c #FFFFF7BCA528", "- c #FFFFFFFFFFFF", "; c #318C318C318C", ": c #318C294A1084", "> c #4A524A52318C", ", c #9CE694A44A52", "< c #18C618C618C6", "1 c #39CE39CE39CE", "2 c #7BDE739C318C", "3 c #A528A528A528", "4 c #BDEEBDEEBDEE", "5 c #4A524A524A52", "6 c #CE72CE72CE72", "7 c #DEF6DEF6DEF6", "8 c #D6B4D6B4D6B4", "9 c #108410841084", "0 c #7BDE7BDE7BDE", "q c #F7BCF7BCF7BC", "w c #B5ACB5ACB5AC", "e c #A52894A44A52", "r c #9CE69CE69CE6", "t c #EF7AEF7AEF7A", "y c #529452945294", "u c #6B5A6B5A6B5A", "i c #94A494A494A4", "p c #E738E738E738", "a c #842084208420", "s c #739C739C739C", "d c #AD6AAD6AAD6A", "f c #631863186318", "g c #A5289CE65294", "h c #8C6284204210", " ", " ", " . ", " X ", " oooO+@@@@@Ooo# ", " #$%&&#*=#-#X.#&&# ", " #;$####:>########oo# ", " . #$o########X########&o ", " X#$##########,####o<<<<;11111 ", " #$###########2####&344445#### ", " *=#-oX.##############$6----7O### ", " :>&##################&6-----8&## ", " #&9X#################$6------0## ", " . #;o9,#################&6------79# ", " X #&###2#################$6------q1# ", " #&o#1###################&6-------0# ", " *= -&X.#o###################$6-------w< ", " :>#<o#######################&6-------6& ", " #<X#$######################$6-------6& ", " #<oe#o############Orrrrrr3r3wt-------6& ", " #o##2##############5------------------6& ", " #oo#&#####o#########5------------------4< ", " o#o#o#####1#########5------------------r# ", " ##########.##########5-----------------q5# ", " ###<#####o#X#9########5-----------------7<# ", " #o#o#####$###o########y-----------------u## ", " ########*=#-#X.#######5----------------6&## ", " o#####o#:>9###########5---------------7Oo## ", " ######&###oX####o;;;;;0--------------qy#### ", " ##########o,####9i8777t-------------p0o#### ", " ###o###9###2######u7---------------61###### ", " ###<###o###o#######;aq-----------qa$#######. ", " #######o#############<sd68---86ds<#########X ", " ####o##################o&;yyy;&o########### ", " 9##########ooo99@ittqqqqqqqqqtpa$#######*= - X.", " #######.###9<&&&$&Oaw68qqq86wa;9########:> ", " #######X####9&$$$$$$;O5uuu5O;&o#.####### X ", " ########oo9<<1a66666666666660&##X#### , ", " ###*=#-<X.;;;;O0rww666wwr0O<######## 2 ", " ##:>###9&;;;;;;15yfffy51$9#*=#-#X.# ", " #####ooXoo&yaaaaaaaaaaaaay<##:>### ", " #####9<g<<&&$5fssaaassf5&9######X# ", " ######9h&&&&&&&;;O>@;;&<o#######,# ", " #######o&;;;;;;;;11;;;<o####### 2 ", " #########o<&$;;;;;$&<o######### ", " ############oo999oo############ ", " ", " "}; ���������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/workspacename.xpm�������������������������������������������������0000644�0001750�0001750�00000013212�12214432632�017136� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char *magick[] = { /* columns rows colors chars-per-pixel */ "50 40 95 2", " c Gray0", ". c #010101", "X c Gray2", "o c #040406", "O c #070707", "+ c #0a0a0d", "@ c #28292b", "# c #2a2a2b", "$ c #2d2d2d", "% c #292b36", "& c #343434", "* c #3c3c3c", "= c #383b4b", "- c #444546", "; c #494949", ": c #4e4e4e", "> c #505055", ", c #585858", "< c Gray37", "1 c #494d62", "2 c #545066", "3 c #57556f", "4 c #5d627c", "5 c #604e42", "6 c Gray39", "7 c Gray41", "8 c #646475", "9 c #7e6a63", "0 c #75746d", "q c #7d7b7c", "w c #7f7f7b", "e c #605f90", "r c #696880", "t c #6f6f91", "y c #787685", "u c #7f7b84", "i c #7d7d86", "p c #777593", "a c #7b779b", "s c #78779d", "d c #7c7c98", "f c #8d634e", "g c #896f6f", "h c #a8606f", "j c #bb6a6a", "k c #8b7d94", "l c #828275", "z c #89897f", "x c #b9b756", "c c #aaa962", "v c #818187", "b c #828583", "n c #888889", "m c #8b8b8b", "M c #8d8d8d", "N c #8d8c8e", "B c #8c8992", "V c #8e8a96", "C c #8f8e92", "Z c #939393", "A c #979797", "S c #96919d", "D c #989799", "F c #9b9b9b", "G c #999e98", "H c Gray62", "J c #9e9f9f", "K c #8d8cba", "L c #9995a0", "P c #a2a2a3", "I c #a7a7a8", "U c Gray66", "Y c #acacac", "T c Gray68", "R c Gray69", "E c #b2b2b2", "W c #b4b4b4", "Q c Gray71", "! c #b9b9b9", "~ c Gray73", "^ c #bbbbbb", "/ c #a7a7c5", "( c #acadcf", ") c #c0c0c0", "_ c #c3c3c3", "` c #c8c8c8", "' c Gray79", "] c Gray80", "[ c #dfdfdf", "{ c #e2e2e2", "} c Gray91", "| c #e9e9e9", " . c Gray95", ".. c #fbfbfb", "X. c Gray100", /* pixels */ "$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } } } } } } } } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } P I Y E W < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } I o o .^ < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } Y o .^ _ < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } E .^ o _ < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } W ^ _ _ ` < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } < < < < < < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } } } } } } } } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } P I Y E W < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } D L S Z ^ < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } C u q M _ < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } n B V b _ < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } G ^ E n ` < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } < < < < < < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } } } } } } } } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 } P I Y E W < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 + F F = M F 4 4 { + 4 4 4 4 4 4 4 4 4 4 4 4 4 } v / ( d ^ < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 + { .. o 6 X.X. A + + + + + 1 4 4 4 4 4 4 4 4 } i p K s _ < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 + { X.6 o .X.X.- { { # 6 { 6 { ] { # % 4 4 4 4 4 4 4 4 } a k 2 t _ < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 + { . ., .X.X.: # ^ { M { M X.& A { 4 4 4 4 4 4 4 4 } 8 3 > H ` < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 + { ` [ W { F X.] .H { M { M { A { 4 4 4 4 4 4 4 4 } < < < < < < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 + { ` F [ F X.{ ] { { M { M { A { 4 4 4 4 4 4 4 4 } } } } } } } } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 + { { { X.6 { # { 6 { & { - { 4 4 4 4 4 4 4 4 } y e r U W < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } h 5 0 w ^ < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } j f x l _ < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } g 9 c z _ < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } W ^ _ _ ` < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } < < < < < < } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } ", "$ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } ", "$ o o o o o o * * o X X X X X 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } ", "$ o o o o o o ; ; o X . X X X 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } ", "$ } D L S Z ^ 7 } D S S Z ^ < 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } ", "$ } C u q N _ < } C k q M ) < 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } ", "$ } n B V b _ < } n B V b _ < 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } ", "$ } G ^ E n ` < } G ^ E n ` < 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } ", "$ } < < < < < < } < < < < < < 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 } ", "} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } " }; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/temp.xpm����������������������������������������������������������0000644�0001750�0001750�00000016070�12214432632�015251� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 108 2", " c None", ". c #108408420842", "X c #000000000000", "o c #084200000000", "O c #529408420842", "+ c #739C10841084", "@ c #421010841084", "# c #631863186318", "$ c #739C08420842", "% c #B5AC18C618C6", "& c #A52821082108", "* c #6B5A18C618C6", "= c #5294294A294A", "- c #18C618C618C6", "; c #294A294A294A", ": c #63185AD65AD6", "> c #842008420842", ", c #A52808420842", "< c #842010841084", "1 c #94A44A524A52", "2 c #AD6A318C318C", "3 c #5AD621082108", "4 c #4A5210841084", "5 c #084208420842", "6 c #AD6A08420842", "7 c #DEF66B5A6B5A", "8 c #AD6A6B5A6B5A", "9 c #BDEE42104210", "0 c #739C318C318C", "q c #5AD6294A294A", "w c #842018C618C6", "e c #AD6A5AD65AD6", "r c #7BDE318C318C", "t c #421021082108", "y c #4A5221082108", "u c #210818C618C6", "i c #B5AC08420842", "p c #A528318C318C", "a c #BDEE4A524A52", "s c #84204A524A52", "d c #108410841084", "f c #631808420842", "g c #8C6221082108", "h c #BDEE7BDE7BDE", "j c #AD6A39CE39CE", "k c #6318318C318C", "l c #318C294A294A", "z c #94A421082108", "x c #9CE652945294", "c c #BDEE39CE39CE", "v c #5AD6318C318C", "b c #DEF6DEF6DEF6", "n c #C630294A294A", "m c #CE7263186318", "M c #D6B494A494A4", "N c #7BDE39CE39CE", "B c #7BDE52945294", "V c #5294318C318C", "C c #5AD64A524A52", "Z c #5AD65AD65AD6", "A c #529452945294", "S c #9CE69CE69CE6", "D c #BDEE21082108", "F c #BDEE52945294", "G c #BDEE84208420", "H c #B5AC39CE39CE", "J c #7BDE4A524A52", "K c #4A5242104210", "L c #421042104210", "P c #BDEE18C618C6", "I c #B5AC42104210", "U c #4A52294A294A", "Y c #4A5239CE39CE", "T c #39CE39CE39CE", "R c #4A5208420842", "E c #BDEE5AD65AD6", "W c #CE72739C739C", "Q c #739C52945294", "! c #9CE694A494A4", "~ c #7BDE08420842", "^ c #739C39CE39CE", "/ c #4A524A524A52", "( c #A52884208420", ") c #9CE64A524A52", "_ c #C63084208420", "` c #739C4A524A52", "' c #210821082108", "] c #A5289CE69CE6", "[ c #94A4318C318C", "{ c #631839CE39CE", "} c #318C318C318C", "| c #CE72CE72CE72", " . c #63184A524A52", ".. c #6B5A4A524A52", "X. c #5AD652945294", "o. c #6B5A6B5A6B5A", "O. c #C630C630C630", "+. c #529439CE39CE", "@. c #421018C618C6", "#. c #8C628C628C62", "$. c #7BDE7BDE7BDE", "%. c #A528A528A528", "&. c #842084208420", "*. c #94A494A494A4", "=. c #739C739C739C", "-. c #D6B4D6B4D6B4", ";. c #B5ACB5ACB5AC", ":. c #AD6AAD6AAD6A", " ", " ", " ", " . X ", " o O + @ ", " # # # # # # # # # # # # # # # # # # # # # # # # # # # # $ % & * = X X X ", " # - - - - - - - - - - - - - - - - - - - - - - - - ; : > , < 1 2 3 4 5 X X ", " # - - - - - - - - - - - - - - - - - - - - - - - - ; $ 6 7 8 9 0 q * - 5 X ", " # - - - - - - - - - - - - - - - - - - - - - - - - $ % w e 9 r q t y - 5 X ", " # - - - - - - - - - - - - - - - - - - - - - - u $ i p 1 a 0 s t t u d 5 X X ", " # - - - - - - - - - - - - - - - - - - - - - - f , g h j 0 k t y u d d 5 X X X ", " # ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; l f 6 z x c 0 v t t u d d 5 5 X X X ", " b b b b b b b b b b b b b b b b b b b b b $ n m M 9 N B V t C Z A d 5 X X X X ", " b S S S S S S S S S S S S S S S S S S S $ D F G H N J = y K L L - d 5 5 X X X ", " b S S S S S S S S S S S S S S S S S S O P a h I 0 J U t Y L L T - 5 5 5 X X X ", " b S S S S S S S S S S S S S S S S S R P E W I N Q V y Y L L T T - d d 5 X X ", " b S S S S S S S S S S S S S S S ! ~ P E h 9 ^ J V t Y / Y T T T - d - 5 X X ", " b S S S S S S S S S S S S S S S ( $ ) _ I ^ ` U t Y L L T T T L ' ' - 5 X ", " b L L L L L L L L L L L L L L L L ] y [ 0 { y y u - - - - - - ' } ' ' 5 X ", " b b b b b b b b b b b b b b b b | b .t ..= t X.A A A / / A o.S O.; ' 5 X ", " b S S S S S S S S S S S S S S | S Z A +.@.@.Y L T T T L L / o.#.L ; ' 5 X ", " b S S S S S S S S S S S S S | S Z / } $.X.L L L T T T L A o.#.S L ; ' 5 X ", " b S S S S S S S S S S S %.| S A / T &.$./ T T T T T L / o.#.S S L ; ' 5 X ", " b S S S S S S S S S S S | &.Z / T #.#.o./ T T T T L A o.#.S S S L ; ' 5 X ", " b S S S S S S S S S %.| $.Z T L S *.$.A L T T T L A =.#.S S S S L ; ' 5 X ", " b L L L L L L L L L | =.A } } L T } ' - - - ' ' ' } T L L L L L L ; ' 5 X ", " b b b b b b b b b O.&.# T # -.O.%.$.Z A Z =.*.%.;.O.-.b b b b b b ; ' 5 X ", " b S S S S S S S | =./ } # S *.=.Z L T L A =.#.*.S S S S S S S S L ; ' 5 X ", " b S S S S S S O.$.A T o.S *.=.A L T L A =.#.S S S S S S S S S S L ; ' 5 X ", " b S S S S %.| =./ } $.S *.=.A L T L Z $.*.S S S S S S S S S S S L ; ' 5 X ", " b S S S S | o./ } #.S *.=.A L T L Z $.*.S S S S S S S S S S S S L ; ' 5 X ", " b S S %.| =.L } &.S *.=.A L T / # $.*.S S S S S S S S S S S S S L ; ' 5 X ", " b Z T / &.T } L L T } ' - - ' ; T T L L L L L L L L L L L L L L L ; ' 5 X ", " -.| O.; L / O.b O.%.=.A A o.#.;.| b b b b b b b b b b b b b b b b ; ' 5 X ", " | O.O.o.L &.S #.=.A L T / o.&.S S S S S S S S S S S S S S S S S L ; ' 5 X ", " } O.| :.Z } o.S *.=.A L T / =.#.S S S S S S S S S S S S S S S S S S L ; ' 5 X ", " %.%.O.#.} $.*.&.=.A L L A =.#.S S S S S S S S S S S S S S S S S S S L ; ' 5 X ", " ;.;./ #.#.$.# / L L A =.#.S S S S S S S S S S S S S S S S S S S S L ; ' 5 X ", " d =.S #.=.# A / L A =.*.S S S S S S S S S S S S S S S S S S S S S L ; ' 5 X ", " 5 -.T } ; ' ' ' ; } T L L L L L L L L L L L L L L L L L L L L L L L ; ' 5 X ", " X X 5 d d d - - ' ' ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ' 5 X ", " X X 5 5 5 d d - - ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' - 5 X ", " X X X 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 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 X X X X X X X X X X ", " X X X X X ", " X X X X ", " ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/msty2.xpm���������������������������������������������������������0000644�0001750�0001750�00000006216�12214432632�015363� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "40 40 67 1", " c None", ". c #631863186318", "X c #000000000000", "o c #294A294A294A", "O c #084208420842", "+ c #210821082108", "@ c #18C618C618C6", "# c #FFFFFFFFB5AC", "$ c #FFFFF7BCB5AC", "% c #FFFFEF7AB5AC", "& c #FFFFE738B5AC", "* c #FFFFDEF6B5AC", "= c #FFFFD6B4B5AC", "- c #529421080000", "; c #FFFFF7BC39CE", ": c #FFFFEF7A39CE", "> c #FFFFE73839CE", ", c #FFFFDEF639CE", "< c #FFFFD6B439CE", "1 c #FFFFCE7239CE", "2 c #FFFFC63039CE", "3 c #FFFFBDEE39CE", "4 c #FFFFB5AC39CE", "5 c #FFFFAD6A39CE", "6 c #FFFFA52839CE", "7 c #FFFF9CE639CE", "8 c #FFFF94A439CE", "9 c #FFFF8C6239CE", "0 c #7BDE318C0000", "q c #318C318C318C", "w c #FFFF842039CE", "e c #529418C60000", "r c #7BDE294A0000", "t c #FFFF7BDE39CE", "y c #7BDE739C0000", "u c #7BDE6B5A0000", "i c #7BDE63180000", "p c #7BDE5AD60000", "a c #7BDE52940000", "s c #7BDE4A520000", "d c #7BDE42100000", "f c #7BDE39CE0000", "g c #FFFFCE72B5AC", "h c #FFFF739C39CE", "j c #7BDE21080000", "k c #529410840000", "l c #FFFF6B5A39CE", "z c #7BDE18C60000", "x c #FFFF631839CE", "c c #FFFFC630B5AC", "v c #529408420000", "b c #FFFF5AD639CE", "n c #7BDE10840000", "m c #FFFF529439CE", "M c #7BDE08420000", "N c #FFFFBDEEB5AC", "B c #529400000000", "V c #FFFF4A5239CE", "C c #7BDE00000000", "Z c #FFFF421039CE", "A c #FFFF39CE39CE", "S c #5294294A0000", "D c #39CE21080000", "F c #318C18C60000", "G c #39CE18C60000", "H c #4A5221080000", "J c #108410841084", " ", " .................................. ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoooO ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoo+O ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoo@O ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoo@O ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoo@O ", " .ooooooooooooooooooooooooooooooooo+O ", " ####$$$$$%%%%%%&&&&&&*****=======-oO ", " #;;;:>>>,,<<<11233344456667889990-qO ", " #;;::>>,,<<<1123334455566788999w0eqO ", " #;;:>>,,,<<1122334455566788899wwreoO ", " #;:>>>,,<<1112334445566778899wwwreoO ", " $:>>>,,<<11123344455666788999wwtreoO ", " $yyuuiiiipppaaaasssssdddf00000rrreoO ", " $$$%%%%%%&&&&&&******========ggggeqO ", " $>,,,<<1112334455566788899wwwtthjkqO ", " $>,,<<1<12334445566778899wwwtthljkqO ", " $,,<<<1123334455666788999wwtthhljkoO ", " %,<<<1123334455566788899wwttthllzkoO ", " %,<<1122334455566788899wwttthllxzkoO ", " %iippppaaasssssdddff00000rrjjjjzzkoO ", " %%%%%&&&&&******========gggggccccvqO ", " %<<123334445666788999wwttthllxxbzvqO ", " %1122334455566788899wwttthllxxxbnvqO ", " %112334445566788899wwwtthlllxxbbnvoO ", " %12334445566678899wwwtthlllxxbbbnvoO ", " &23334455666788999wwtthhllxxbbbmMvoO ", " &aaaasssssdddff0000rrrjjjzzzznnMMvoO ", " &&&&******=========ggggccccccNNNNBqO ", " &34445566778899wwwtthlllxxbbmmmVMBqO ", " &34455666788999wwtthhllxxbbbmmVVCBqO ", " &4455666788999wwttthllxxxbbmmVVVCBoO ", " &455566788899wwttthllxxxbbmmmVVZCBoO ", " *45566778899wwwtthlllxxbbmmmVVZACBoO ", " &sssdddff00000rrjjjjzzznnnMMMCCCCB+O ", " XSSDFFFGHH---eeeeekkkkkvvvvBBBBBBB+O ", " ooo+++++++ooooooooooooooooooooo++JO ", " OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX ", " "}; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/speed4s.xpm�������������������������������������������������������0000644�0001750�0001750�00000001571�12214432632�015653� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "26 26 3 1", " c None", ". c #FFFFFFFF0000", "X c #000000000000", " ", " ", " ", " ", " ", " ", " ", " ", " ", "...................... ", ".X.XX.XXX.XXXX.XXXXX.X. ", ".X.XX.XXX.XXXX.XXXXX.XX. ", ".X.XX.XXX.XXXX.XXXXX.XXX. ", ".X.XX.XXX.XXXX.XXXXX.XXXX.", ".X.XX.XXX.XXXX.XXXXX.XXX. ", ".X.XX.XXX.XXXX.XXXXX.XX. ", ".X.XX.XXX.XXXX.XXXXX.X. ", "...................... ", " ", " ", " ", " ", " ", " ", " ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/advancetonewworkspace.xpm�����������������������������������������0000644�0001750�0001750�00000006343�12214432632�020703� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 36 1", " c None", ". c #000000000000", "X c #0842842094A4", "o c #10847BDEAD6A", "O c #00007BDE9CE6", "+ c #18C67BDEA528", "@ c #08427BDEA528", "# c #10848420AD6A", "$ c #10848420A528", "% c #10847BDE9CE6", "& c #18C68420A528", "* c #B5ACB5ACB5AC", "= c #739C739C739C", "- c #39CE39CE39CE", "; c #084200009CE6", ": c #084284209CE6", "> c #08428420A528", ", c #08428420AD6A", "< c #FFFFFFFFFFFF", "1 c #1084739CA528", "2 c #00008420A528", "3 c #A528A528A528", "4 c #7BDE7BDE7BDE", "5 c #18C6739CA528", "6 c #18C68C6294A4", "7 c #08427BDEAD6A", "8 c #18C67BDE9CE6", "9 c #318C318C318C", "0 c #18C68C629CE6", "q c #10847BDE94A4", "w c #08427BDE9CE6", "e c #10848C62A528", "r c #10847BDEA528", "t c #00007BDEA528", "y c #000084209CE6", "u c #108484209CE6", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ............... ............... ", " .XoO+o@#$%&%*=.- ", " .$;;;;;:>,>%*=.- . .$;;;;;:>,>%*=.- ", " .o<<<<<>12%>34.- .. ", " .$<<<<<@#56&34.- . . ..... .$<<<<<@#56&34.- ", " .7<<<;;;;;>@*=.- . . ...... ", " .8999<<<<<%>*=.- . . ....... .8999<<<<<%>*=.- ", " .>%>0<<<<<8o34.- . . ...... ", " .%7q@<<<<<,q34.- . . ..... .%7q@<<<<<,q34.- ", " .$@%q99999@w*=.- .. ", " .*=er$1qt>%7*=.- . .*=er$1qt>%7*=.- ", " .99wy@%ryt,ru1.- ", " ...............- ...............- ", " --------------- ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/timer2.xpm��������������������������������������������������������0000644�0001750�0001750�00000001442�12214432632�015503� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 4 1", " c None", ". c #000000000000", "X c #7BDE7BDE7BDE", "o c #BDEEBDEEBDEE", " ", " ..... ", " X.X ", " .. X.X .. ", " X.. X.....X ..X ", " ....oo.XX.... ", " ..oooo.XXXX.. ", " .oooooo.XXXXXX. ", " XXoooooo.XXXXXXXX ", " .ooooooo.XXXXXXX. ", " XXooooooo.XXXXXXXXX ", " .oooooooo.XXXXXXXX. ", " .oooooooo.XXXXXXXX. ", " ....ooooo.......... ", " .ooooooooooooooooo. ", " .ooooooooooooooooo. ", " XXoooooooooooooooXX ", " .ooooooooooooooo. ", " XXoooooooooooooXX ", " .oooooo.oooooo. ", " .Xoooo.oooo.. ", " X..oo.oo..X ", " X.....X ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/speed3.xpm��������������������������������������������������������0000644�0001750�0001750�00000001370�12214432632�015464� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 2 1", " c None", ". c #210839CE7BDE", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . .. ... .... . ", " . .. ... .... .. ", " . .. ... .... ... ", " . .. ... .... .... ", " . .. ... .... ... ", " . .. ... .... .. ", " . .. ... .... . ", " ", " ", " ", " ", " ", " ", " ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/speed2s.xpm�������������������������������������������������������0000644�0001750�0001750�00000001571�12214432632�015651� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "26 26 3 1", " c None", ". c #FFFFFFFF0000", "X c #000000000000", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ........... ", " .X.XX.XXX.X. ", " .X.XX.XXX.XX. ", " .X.XX.XXX.XXX. ", " .X.XX.XXX.XXXX. ", " .X.XX.XXX.XXX. ", " .X.XX.XXX.XX. ", " .X.XX.XXX.X. ", " ........... ", " ", " ", " ", " ", " ", " ", " ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/clip.xpm����������������������������������������������������������0000644�0001750�0001750�00000020362�12214432632�015232� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 163 2", " c None", ". c #CE72CE72CE72", "X c #B5ACB5ACB5AC", "o c #AD6AAD6AAD6A", "O c #A528A528A528", "+ c #9CE69CE69CE6", "@ c #94A494A494A4", "# c #8C628C628C62", "$ c #39CE39CE39CE", "% c #842084208420", "& c #6B5A6B5A6B5A", "* c #DEF6DEF6DEF6", "= c #EF7AEF7AEF7A", "- c #D6B4D6B4D6B4", "; c #C630C630C630", ": c #5AD65AD65AD6", "> c #7BDE7BDE7BDE", ", c #421042105AD6", "< c #421042105294", "1 c #39CE39CE4A52", "2 c #318C318C39CE", "3 c #21082108294A", "4 c #294A294A318C", "5 c #294A2108294A", "6 c #842084207BDE", "7 c #4A524A526318", "8 c #084208420842", "9 c #000000000000", "0 c #421042104210", "q c #18C618C62108", "w c #529452945294", "e c #94A494A49CE6", "r c #FFFFFFFFFFFF", "t c #18C618C618C6", "y c #739C739C739C", "u c #1084108418C6", "i c #529452946318", "p c #529452945AD6", "a c #6B5A6318739C", "s c #5AD65AD66318", "d c #4A524A524A52", "f c #39CE39CE4210", "g c #9CE69CE6AD6A", "h c #7BDE739C8420", "j c #842084208C62", "k c #739C739C7BDE", "l c #631863186B5A", "z c #7BDE7BDE8420", "x c #631863186318", "c c #210821082108", "v c #8C628C6294A4", "b c #739C739C8420", "n c #6B5A6B5A739C", "m c #BDEEBDEEBDEE", "M c #739C739C6B5A", "N c #739C842094A4", "B c #84207BDE7BDE", "V c #7BDE739C7BDE", "C c #94A494A4A528", "Z c #CE72CE72E738", "A c #AD6AAD6AC630", "S c #9CE69CE6B5AC", "D c #8C628C629CE6", "F c #94A48C629CE6", "G c #8C6284208C62", "H c #84207BDE8420", "J c #8C6284208420", "K c #9CE694A494A4", "L c #6B5A6B5A8C62", "P c #B5ACB5ACD6B4", "I c #CE72CE72EF7A", "U c #D6B4D6B4EF7A", "Y c #94A494A4BDEE", "T c #84208420B5AC", "R c #739C6B5A739C", "E c #6318739C94A4", "W c #52946B5A9CE6", "Q c #739C8420A528", "! c #739C8420AD6A", "~ c #739C8C62AD6A", "^ c #94A48C62BDEE", "/ c #AD6AA528D6B4", "( c #A528A528CE72", ") c #9CE69CE6CE72", "_ c #94A494A4C630", "` c #6B5A631894A4", "' c #7BDE7BDEAD6A", "] c #8C62842094A4", "[ c #84207BDE8C62", "{ c #94A49CE6A528", "} c #7BDE84209CE6", "| c #AD6AAD6AD6B4", " . c #739C6B5AA528", ".. c #8C628C62BDEE", "X. c #94A48C6294A4", "o. c #9CE69CE6C630", "O. c #631863187BDE", "+. c #A5289CE6C630", "@. c #84208420AD6A", "#. c #6B5A6B5AA528", "$. c #84207BDEAD6A", "%. c #7BDE8C629CE6", "&. c #A528A528D6B4", "*. c #7BDE7BDE9CE6", "=. c #739C6B5A7BDE", "-. c #9CE6A528AD6A", ";. c #84208420A528", ":. c #8C628420AD6A", ">. c #739C739CA528", ",. c #9CE69CE6A528", "<. c #84208C629CE6", "1. c #8C628420739C", "2. c #6B5A63185AD6", "3. c #739C5AD65294", "4. c #8C627BDE4210", "5. c #7BDE6B5A5AD6", "6. c #6B5A63186B5A", "7. c #63185AD65AD6", "8. c #8C628420B5AC", "9. c #A5289CE6A528", "0. c #94A48C626B5A", "q. c #CE72CE7294A4", "w. c #E738E738B5AC", "e. c #E738DEF6D6B4", "r. c #E738DEF6CE72", "t. c #AD6A94A4B5AC", "y. c #B5AC8C629CE6", "u. c #9CE67BDE8420", "i. c #94A46B5A8420", "p. c #84207BDE739C", "a. c #B5ACA528AD6A", "s. c #5AD652944210", "d. c #6B5A63184210", "f. c #7BDE6B5A5294", "g. c #52944A5239CE", "h. c #739C7BDEA528", "j. c #739C6B5A94A4", "k. c #6B5A6B5A9CE6", "l. c #7BDE739CAD6A", "z. c #9CE694A49CE6", "x. c #4A5252946318", "c. c #9CE694A46318", "v. c #CE72BDEE5AD6", "b. c #D6B4C6305AD6", "n. c #C630BDEE8420", "m. c #BDEEB5AC8C62", "M. c #318C318C4210", "N. c #631863188420", "B. c #5AD65AD67BDE", "V. c #5AD65AD68420", "C. c #A528AD6AB5AC", "Z. c #739C6B5A5AD6", "A. c #63185AD6318C", "S. c #5AD65294318C", "D. c #5AD65AD64A52", "F. c #318C318C4A52", "G. c #631863188C62", "H. c #4A524A526B5A", "J. c #8C6294A4A528", "K. c #AD6AB5ACBDEE", "L. c #318C318C318C", "P. c #D6B4DEF6E738", "I. c #E738E738E738", " ", " ", " . . . . . . . . . . . . . . . . . . . . . . ", " . X X o o o o O O O + + + + @ @ @ # # # # $ ", " . X o o o o O O O + + + + @ @ @ # # # # % $ ", " . o o o o O O O + + + + @ @ @ # # # # % % $ ", " . o o o # @ @ @ @ # # # # # # % % % & % % $ ", " . o o O * = * * - - . . . . ; ; . - : % > $ ", " . o O O * o , < 1 2 3 3 4 4 5 3 + - : 6 > $ ", " . O O O * O 7 , 1 8 9 0 # 5 3 q + - w > > $ ", " . O O + - O , , 4 9 $ % * 4 3 q e . w > > $ ", " . O O + - O , < 4 8 - r ; 3 q t e . w > y $ ", " . + + + - O , 1 4 $ X O 3 q q u @ . w y y $ ", " . + + + . O 1 i p a s p s d f q @ . w y y $ ", " . + + @ . g 1 h j a k l z y x c v . w y & $ ", " . + @ @ . X b k k n n n l x : w o ; d & & $ ", " . @ @ @ . * * * - . . . . ; ; ; m m d & & $ ", " . @ @ v M & X ; ; ; ; ; ; ; ; o 0 0 : & & $ ", " . @ # # # % : w w w w w w w w d x & & & x $ ", " . # # # # % y + + + + + + + + w & & & x x $ ", " . # # # % % > w d d d d d d d w & & x x x $ ", " . # # % % 6 N > > > y y y & & & & x x x : $ ", " . # % % % B > > V y y y & & & & x x x : : $ ", " . % % % > > > > y y y & & & & x x x : : : $ ", " . $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . $ . . . . . . . . . . . . . . . . . . . . ", "O + + + + @ @ @ # # # # $ . X X o o o o O O O O + + . % @ @ @ # # # $ . X X o o o o O O O + + + ", "+ + + + @ @ @ # # # # % $ . X X 9 o o O O O + + + + @ . y # # # # % $ . X o o o o O O O + + + + ", "+ + + @ @ @ # # # # % % $ . o o 9 o O O O + + + + @ @ + . % # # % % $ . o o o + O O O + + + + @ ", "+ + @ @ @ # # # # % % % $ . o o 9 O O O + + + + @ @ # # y O y % % % $ . o o o w : p x x x x x & ", "# z C Z Z A S D z y % > $ . o o O O O + + + + @ # j F G H J K : 6 > $ . o o O x j L O O O o o X ", "P I U U U U P Y T s z > $ . o O O O + + + + @ % j v % & x x R * : > $ . o O O p E W Q Q ! ! ! ~ ", "^ Y / ( ) _ ` ' T s > > $ . O O O O + + + @ > ] [ n x V & & & v m x $ . O O O x { } m ; ; ; ; . ", "| | Y ( ( T .' ..s > > $ . O O + + + + @ > X.r r d : & x l & > @ m : . O O + x g } o > y % > # ", "| o.3 O.+.@.#.$...: > y $ . O O + + + # % X.k r 9 r > R & l x > > # 0 . O O + x g %.; @ @ + o O ", "/ &.L *.| _ .' ..: y y $ . + + + + % X.X.& d r 9 9 r k =.w : > y y $ . + + + x -.%.X # # # % + ", ";.:.Y ) ( _ >.T ..p y y $ . + + + > ,.# x d : r 9 9 9 r d w x y y y $ . + + + x -.<.; @ & 1.2.M ", "3.4.5.6.7.:.>.8...p y n $ . + + > 9.% : d x > r 9 9 9 9 r x y y y & $ . + + @ x -.N 6 0.q.w.e.r.", "t.y.u.i.p.L #.$...p & & $ . + @ a.V w w & > > r 9 9 9 r & y y y & & $ . + @ @ & # 0 s.d.f.f.g.0.", "h.....j.4 < k.l.$.p & & $ . @ @ B x w y % > z.r r r 9 r y y y & & & $ . @ @ @ & O x.& c.v.b.n.m.", "M.N.T B.3 1 ` .V.p & & $ 0 : v % B & > G X.& d d r 9 9 r y & & & & $ . @ @ # & C.<.o x Z.A.S.D.", "2 B.T , t F.G.H.$ x & x $ . ; x # > V z.G : d w & y r r y & & & & x $ . @ v # & C.J.. @ > y y & ", "' $.T < u 1 1 $ x & x x $ . O ; : % B B w d : y y y y y & & & & x x $ . # # # y K.J.; + @ o O O ", "M.7 G.F.t L.0 & & x x x $ . # + * x > & : x : & & y x & & & & x x x $ . # # # K.P.K.I.I.I.I.= = ", ": 0 L.$ x & & & x x x : $ . # # + m : > > > 8 3 L.t d t w & x x x x $ . # # # J % > > > > y y y ", "y y y n & & & x x x : : $ . # % % v * : > > 0 f g.$ d $ w x x x : : $ . # % % % > > > > y y y & ", "y y & & & & x x x : : : $ . % % % 6 # X $ y y y n & & & x x x : : : $ . % % % > > > > y y y & & ", "$ $ $ $ $ $ $ $ $ $ $ $ $ . $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ . $ $ $ $ $ $ $ $ $ $ $ $ "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/tnew.xpm����������������������������������������������������������0000644�0001750�0001750�00000012074�12214432632�015261� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "27 24 170 2", " c None", ". c #000000000000", "X c #084200000000", "o c #084208420000", "O c #108408420842", "+ c #18C62108294A", "@ c #294A294A294A", "# c #18C610840842", "$ c #294A18C60000", "% c #210810840000", "& c #18C618C62108", "* c #294A39CE94A4", "= c #084239CECE72", "- c #18C64210D6B4", "; c #08422108AD6A", ": c #000010848C62", "> c #0842294A94A4", ", c #18C618C65294", "< c #18C608421084", "1 c #318C39CE5AD6", "2 c #21084A52CE72", "3 c #294A5AD6EF7A", "4 c #10844A52F7BC", "5 c #4A527BDEF7BC", "6 c #5294739CF7BC", "7 c #084239CEE738", "8 c #084239CEDEF6", "9 c #000018C6BDEE", "0 c #000008427BDE", "q c #108418C61084", "w c #18C610841084", "e c #18C64A52C630", "r c #739C9CE6F7BC", "t c #B5ACCE72FFFF", "y c #4210739CF7BC", "u c #21085294F7BC", "i c #294A5AD6FFFF", "p c #00004A52FFFF", "a c #0000318CDEF6", "s c #00001084A528", "d c #0000000094A4", "f c #000010847BDE", "g c #108418C64210", "h c #10844A52E738", "j c #6B5A94A4FFFF", "k c #8C62AD6AFFFF", "l c #21085AD6F7BC", "z c #00004210F7BC", "x c #00004A52F7BC", "c c #0000318CD6B4", "v c #000008429CE6", "b c #00000000318C", "n c #108410840842", "m c #0000294AB5AC", "M c #42106B5AF7BC", "N c #739C94A4F7BC", "B c #08424210FFFF", "V c #0000318CE738", "C c #000039CEDEF6", "Z c #00002108CE72", "A c #00002108AD6A", "S c #00000842294A", "D c #108418C62108", "F c #318C5AD6E738", "G c #52947BDEEF7A", "H c #0842318CC630", "J c #000039CED6B4", "K c #0000294ADEF6", "L c #0000294ABDEE", "P c #0000210894A4", "I c #18C6210839CE", "U c #18C639CEB5AC", "Y c #0842318CCE72", "T c #0842318CDEF6", "R c #08426318F7BC", "E c #08425AD6F7BC", "W c #000039CECE72", "Q c #0000294AC630", "! c #00002108B5AC", "~ c #00002108C630", "^ c #0000294AD6B4", "/ c #00001084B5AC", "( c #000018C6B5AC", ") c #000000002108", "_ c #39CE39CE5AD6", "` c #10844210C630", "' c #00005AD6DEF6", "] c #0842739CF7BC", "[ c #00004210D6B4", "{ c #00000000294A", "} c #421042105AD6", "| c #0842294ABDEE", " . c #08426318DEF6", ".. c #08426318E738", "X. c #08425AD6E738", "o. c #08424A52E738", "O. c #000039CEE738", "+. c #000008428420", "@. c #000000009CE6", "#. c #10845294D6B4", "$. c #08425294F7BC", "%. c #08424210EF7A", "&. c #10844210E738", "*. c #10841084294A", "=. c #000000004A52", "-. c #08424210D6B4", ";. c #0000294ACE72", ":. c #18C65294F7BC", ">. c #084218C67BDE", ",. c #108418C639CE", "<. c #0000000018C6", "1. c #000010849CE6", "2. c #00001084AD6A", "3. c #000039CEEF7A", "4. c #10845294F7BC", "5. c #294A5AD6F7BC", "6. c #318C6318F7BC", "7. c #21085294EF7A", "8. c #108421088C62", "9. c #18C621085AD6", "0. c #18C6108418C6", "q. c #000008426B5A", "w. c #0000084294A4", "e. c #00004210EF7A", "r. c #294A6318EF7A", "t. c #52947BDEF7BC", "y. c #084210848420", "u. c #000000001084", "i. c #0842318CBDEE", "p. c #294A5294CE72", "a. c #318C6318EF7A", "s. c #8C62A528FFFF", "d. c #BDEECE72F7BC", "f. c #6B5A8C62EF7A", "g. c #000008426318", "h. c #000008421084", "j. c #084218C6739C", "k. c #0000318CCE72", "l. c #0842294A9CE6", "z. c #294A5294D6B4", "x. c #94A4AD6AF7BC", "c. c #5AD68C62EF7A", "v. c #10844210D6B4", "b. c #108410841084", "n. c #084208420842", "m. c #08421084294A", "M. c #0000108439CE", "N. c #084210844210", "B. c #0000108494A4", "V. c #294A39CE7BDE", "C. c #18C618C66B5A", "Z. c #21084A52D6B4", "A. c #63188420EF7A", "S. c #18C66318DEF6", "D. c #08425AD6DEF6", "F. c #294A2108294A", "G. c #108410840000", "H. c #0000000039CE", "J. c #10842108AD6A", "K. c #08424A52F7BC", "L. c #084210841084", "P. c #63188C62F7BC", "I. c #294A421094A4", "U. c #0842084218C6", "Y. c #084210848C62", "T. c #42106318CE72", "R. c #294A294A318C", "E. c #108410842108", "W. c #08421084318C", "Q. c #18C621084210", ". . . . . . . . . X X o X X X X X X X . . ", ". . . . . . O + @ # $ % o o o o o o o o X X ", ". . . . . & * = - ; : > , < X X o o o o o X ", ". . . X 1 2 3 4 5 6 7 8 9 0 q . . . . . . . ", " . . w e r t y u i p a s d f . . . ", " . g h j k l z z x c v d 9 b ", " n m M N B z z V 8 C Z 9 s A S . ", " D c F G p p z Z H J a K s L P . . ", " . I U Y T x R E W Q ! ~ ^ / ( a ) . ", " . _ ` V V 9 ! ' ] [ ! 9 Z a a z { ", " . } | 9 ~ ~ W . ...X.o.V V a O.S . ", " n +.@.Z a a #.Q a x $.%.&.K L *.. ", " . =.d 9 ^ a -.;.V z z :.:.7 >.,.o . . . X . ", " . <.1.2.2.~ o.3.z z 4.5.6.7.| 8.9.0.X X X X ", " . . q.w.v 9 e.z z 3.r.t.6.y 5 6.a y.u.. . . ", ". . . . u.q.v Q O.z a ;.i.p.a.s.d.f.8 9 g.. ", "X . . X . h.j.k.;.^ 9 d : l.z.x.c.v.Q ~ s b.. ", "o o o o o X n.m.M.N.f B.V.C.Z.A.S.D.[ a c F.. ", "X o X o o o o o o X G.G.. H.J.r.- a K.6.- L. ", ". . . . X X X X o X . . . u.q.~ a 3.l P.I.X ", " . . . . . . . . U.Y.c 3.7.T.R.. ", " X o o O E.W.Q.w . . . ", " . . . . . . . . . . ", " "}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/keyboard.xpm������������������������������������������������������0000644�0001750�0001750�00000015533�12214432632�016107� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 98 2", " c None", ". c #739C739C739C", "X c #EF7AEF7AEF7A", "o c #D6B4D6B4D6B4", "O c #AD6AAD6AAD6A", "+ c #842084208420", "@ c #631863186318", "# c #39CE39CE39CE", "$ c #18C618C618C6", "% c #000000000000", "& c #108410841084", "* c #CE72D6B4D6B4", "= c #D6B4DEF6D6B4", "- c #DEF6DEF6DEF6", "; c #D6B4DEF6DEF6", ": c #C630C630C630", "> c #9CE69CE69CE6", ", c #7BDE7BDE7BDE", "< c #529452945294", "1 c #318C318C318C", "2 c #084208420842", "3 c #B5ACBDEEB5AC", "4 c #739C84208420", "5 c #C630CE72C630", "6 c #E738E738E738", "7 c #E738EF7AE738", "8 c #EF7AEF7AE738", "9 c #EF7AF7BCF7BC", "0 c #B5ACB5ACB5AC", "q c #8C628C628C62", "w c #6B5A6B5A6B5A", "e c #421042104210", "r c #210821082108", "t c #CE72D6B4CE72", "y c #CE72CE72CE72", "u c #C630C630CE72", "i c #A528A528A528", "p c #A528AD6AA528", "a c #94A494A494A4", "s c #AD6AB5ACAD6A", "d c #EF7AF7BCEF7A", "f c #F7BCF7BCF7BC", "g c #F7BCF7BCEF7A", "h c #AD6AAD6AA528", "j c #5AD65AD65AD6", "k c #B5ACBDEEBDEE", "l c #94A494A48C62", "z c #F7BCFFFFF7BC", "x c #E738E738DEF6", "c c #BDEEC630C630", "v c #4A524A524A52", "b c #294A294A294A", "n c #BDEEBDEEBDEE", "m c #9CE6A528A528", "M c #AD6AB5ACB5AC", "N c #C630CE72CE72", "B c #A5289CE69CE6", "V c #9CE6A5289CE6", "C c #BDEEC630BDEE", "Z c #FFFFFFFFF7BC", "A c #C630BDEEBDEE", "S c #94A49CE69CE6", "D c #C630C630BDEE", "F c #EF7AE738E738", "G c #BDEEBDEEB5AC", "H c #B5ACB5ACAD6A", "J c #B5ACAD6AAD6A", "K c #A528A5289CE6", "L c #DEF6DEF6D6B4", "P c #9CE6A528AD6A", "I c #D6B4D6B4CE72", "U c #D6B4CE72CE72", "Y c #E738DEF6DEF6", "T c #CE72CE72C630", "R c #AD6AA528A528", "E c #B5ACBDEEAD6A", "W c #D6B4CE72C630", "Q c #FFFFFFFFFFFF", "! c #AD6AA5289CE6", "~ c #8C6294A494A4", "^ c #B5ACAD6AA528", "/ c #BDEEB5ACB5AC", "( c #9CE694A494A4", ") c #9CE69CE694A4", "_ c #DEF6DEF6E738", "` c #DEF6D6B4CE72", "' c #DEF6E738DEF6", "] c #DEF6E738E738", "[ c #8C628C628420", "{ c #F7BCFFFFFFFF", "} c #94A48C628C62", "| c #A528AD6AB5AC", " . c #BDEECE72C630", ".. c #94A494A49CE6", "X. c #A528AD6AAD6A", "o. c #DEF6D6B4D6B4", "O. c #739C7BDE7BDE", "+. c #B5ACB5ACBDEE", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . X o O + @ # $ % ", " & * * = - ; = = = ; : > , < 1 2 ", " , 3 > 4 ; : 5 5 ; = 6 7 8 7 7 9 - 0 q w e r % ", " 2 t y u ; 5 i p a s p p 3 o y - d 7 f f f 9 9 g y h + j 1 & % ", " w : h p i y k o - y y 5 3 i h l : > : 0 8 y X X z z 9 9 9 X x c > . v b 2 ", " 2 : c t 0 n O m i M a O y 3 8 - 6 6 y N 0 0 > B y V 8 n C - X f Z g X X 7 g o 0 q # % ", " j : : : > h n p A 5 C o O 0 O O S t i = 7 x f - - : : i 0 l y + y D = 7 F X 8 x x 0 b % % ", " % c G 3 3 s p t H 5 G h G s J o s x 5 0 A 0 i : K o d L 6 d - 8 : D G P n M I D U Y 0 e 2 % ", " v N G G y 0 y n s H G h T D D 6 h D C p - p I L G x o R 0 0 G O 8 o x g X g Y I y Y J 1 & % ", " % : n y 0 y i G 0 O n 0 A o H D E 0 E o s Z s W A U Q 8 ! - H X V I K H ! D K x G g F i # & 2 ", " & - : i q ~ q 0 3 - X 8 o I D 0 T ^ X n o D G / U I d : ! : K n ( T ! L H x l U ) T R + 1 & % ", " r k : y o _ - : s m q q i : - X Q g H 5 R I R L Q O x J : Q Q Q 8 L D L ) ` ) 0 I I A @ 1 & % ", "% i = = - - t t = ; = ' X - : O V l ) l Y h Z H x 0 G U K 7 8 8 o X Q y W H / I n Z 0 A # b 2 % ", "% 9 = o = - - - ] 7 7 7 - ' - - x X X = y O J [ G a - n G Q D U J y X D H x R o K I R 0 1 b 2 % ", "% { * = = = o - - ] 6 7 8 X X X X 8 ' 6 ' ' 6 X X I : G i h } h A T D ` I ` ( A J F G > b & 2 % ", "% + | .o - - - - ] 7 6 6 7 8 7 X X d f f d d 8 ' ' - - x 8 Y W n 0 B h n / 0 D X y J w r & % % ", "% & # . ..X.: * - - ' - ' - - x 6 6 7 7 8 7 X X X X X X 7 - - - - - - F o.n 0 > O i n # r 2 2 % ", "% 2 $ b 1 1 v O.> | C t - - ' ' ' ' ' ' 6 6 6 6 6 6 F 6 7 6 6 8 8 8 - L - - - - 8 F G 1 $ 2 % % ", "% % 2 & $ r b b 1 1 e w ~ p X.3 : o - - 6 6 6 _ _ - - - - - _ - - - - x x x 8 6 - I w b & 2 % % ", " % % % 2 2 & & $ r b b 1 1 1 # < . + ..i M c * N N y o - - - - - = = - - - - x 6 - # r 2 % % % ", " % % % % 2 2 2 & & $ $ r b b b 1 1 1 1 # # # < . q > M 0 +.n o o = - - - - - 0 1 $ 2 2 % % ", " % % % % 2 2 2 2 & & & $ $ r r r b b b b 1 1 1 # # < , > p M n t o y j b & % % % % ", " % % % % % % 2 2 2 2 2 2 & & & & $ r r r b b b 1 1 # j + + < 1 r 2 % % 2 % ", " % % % % % % % % % 2 2 2 2 & & & $ $ r r b 1 1 1 r & 2 % % % % ", " % % % % % % % 2 2 2 & & $ $ $ & 2 % % % % % ", " % % % % % 2 2 2 % % % % % % ", " % % % % ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/theme.xpm���������������������������������������������������������0000644�0001750�0001750�00000023676�12214432632�015420� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "50 54 205 2", " c None", ". c #FFFFFFFFFFFF", "X c #294A39CE5AD6", "o c #294A39CE6318", "O c #294A42106B5A", "+ c #294A4A52739C", "@ c #294A4A527BDE", "# c #318C52947BDE", "$ c #39CE5AD68420", "% c #318C4A526B5A", "& c #631863186318", "* c #000000000000", "= c #2108318C5294", "- c #294A4210739C", "; c #318C4A52739C", ": c #39CE52947BDE", "> c #A528AD6ADEF6", ", c #AD6AB5ACDEF6", "< c #B5ACBDEEDEF6", "1 c #BDEEBDEEE738", "2 c #C630C630E738", "3 c #CE72CE72E738", "4 c #D6B4D6B4E738", "5 c #DEF6DEF6EF7A", "6 c #E738E738F7BC", "7 c #E738EF7AF7BC", "8 c #EF7AEF7AF7BC", "9 c #F7BCF7BCF7BC", "0 c #F7BCF7BCFFFF", "q c #52946B5A8C62", "w c #4A5263188420", "e c #4A52739C94A4", "r c #63187BDE9CE6", "t c #DEF6E738EF7A", "y c #B5ACC630D6B4", "u c #7BDE94A4AD6A", "i c #B5ACB5ACDEF6", "p c #C630D6B4DEF6", "a c #5AD6739C94A4", "s c #318C42106B5A", "d c #2108294A4A52", "f c #2108318C4A52", "g c #8C6294A4AD6A", "h c #E738E738E738", "j c #6B5A7BDE8C62", "k c #AD6AAD6AC630", "l c #318C42106318", "z c #B5ACBDEECE72", "x c #5AD66318739C", "c c #7BDE842094A4", "v c #9CE6B5ACC630", "b c #739C7BDE9CE6", "n c #84208C62A528", "m c #4A524A526318", "M c #631863186B5A", "N c #BDEEC630C630", "B c #CE72CE72CE72", "V c #9CE6AD6AB5AC", "C c #42105AD68420", "Z c #294A318C4A52", "A c #294A318C5294", "S c #A528A528AD6A", "D c #D6B4D6B4D6B4", "F c #B5ACB5ACC630", "G c #AD6AB5ACBDEE", "H c #B5ACB5ACBDEE", "J c #C630CE72D6B4", "K c #B5ACBDEEC630", "L c #A528A528A528", "P c #2108294A39CE", "I c #4A524210318C", "U c #8C6284207BDE", "Y c #421039CE318C", "T c #39CE318C294A", "R c #39CE39CE4210", "E c #318C294A294A", "W c #294A294A294A", "Q c #6B5A63187BDE", "! c #7BDE739C7BDE", "~ c #84207BDE8420", "^ c #84207BDE7BDE", "/ c #7BDE739C8420", "( c #6B5A6B5A739C", ") c #94A48C628C62", "_ c #A5288C628C62", "` c #8C628C628C62", "' c #94A48C6294A4", "] c #94A494A49CE6", "[ c #A5289CE6A528", "{ c #7BDE739C739C", "} c #8C6284208420", "| c #9CE694A48C62", " . c #A52894A494A4", ".. c #C630B5ACAD6A", "X. c #A5289CE69CE6", "o. c #8C627BDE739C", "O. c #421042104210", "+. c #21082108318C", "@. c #39CE4A525AD6", "#. c #6B5A5AD65AD6", "$. c #63185AD65AD6", "%. c #6B5A63186318", "&. c #739C63186318", "*. c #739C63185AD6", "=. c #AD6A94A494A4", "-. c #DEF6B5ACA528", ";. c #52945AD6739C", ":. c #5AD65AD6739C", ">. c #8C6284208C62", ",. c #9CE694A494A4", "<. c #CE72C630B5AC", "1. c #B5ACAD6AB5AC", "2. c #B5ACAD6AA528", "3. c #94A47BDE7BDE", "4. c #8420739C6B5A", "5. c #294A294A318C", "6. c #52944A5239CE", "7. c #63184A524210", "8. c #6B5A5AD64A52", "9. c #A5288C628420", "0. c #6B5A63184A52", "q. c #84206B5A6318", "w. c #84206B5A5AD6", "e. c #B5AC9CE69CE6", "r. c #739C739C7BDE", "t. c #7BDE7BDE8420", "y. c #BDEEAD6AA528", "u. c #AD6AA528A528", "i. c #94A48C628420", "p. c #5AD652945294", "a. c #AD6A9CE68C62", "s. c #9CE694A48420", "d. c #9CE68C628420", "f. c #94A48C627BDE", "g. c #A52894A48C62", "h. c #AD6A9CE694A4", "j. c #A5289CE694A4", "k. c #B5ACA5289CE6", "l. c #C630B5ACB5AC", "z. c #7BDE6B5A6B5A", "x. c #739C6B5A6B5A", "c. c #21082108294A", "v. c #8C628C627BDE", "b. c #B5ACAD6A9CE6", "n. c #BDEEB5ACBDEE", "m. c #9CE6A528AD6A", "M. c #842084207BDE", "N. c #7BDE7BDE7BDE", "B. c #18C62108294A", "V. c #AD6AAD6AB5AC", "C. c #7BDE6B5A6318", "Z. c #0842108418C6", "A. c #084208421084", "S. c #108418C618C6", "D. c #18C618C62108", "F. c #39CE42104A52", "G. c #318C318C318C", "H. c #8C6294A494A4", "J. c #739C6B5A739C", "K. c #63185AD66318", "L. c #AD6AA5289CE6", "P. c #842084208420", "I. c #8420842094A4", "U. c #6B5A6B5A6B5A", "Y. c #5AD652945AD6", "T. c #5AD65AD65AD6", "R. c #7BDE739C6B5A", "E. c #AD6AAD6ABDEE", "W. c #5AD65AD66318", "Q. c #6B5A63185AD6", "!. c #084208420842", "~. c #739C6B5A6318", "^. c #A528A5289CE6", "/. c #AD6AAD6AAD6A", "(. c #BDEEB5ACAD6A", "). c #CE72C630BDEE", "_. c #529452945294", "`. c #52944A525294", "'. c #52944A524A52", "]. c #108410841084", "[. c #18C618C618C6", "{. c #4A524A525294", "}. c #4A524A524A52", "|. c #739C739C739C", " X c #A5289CE6AD6A", ".X c #4A52421039CE", "XX c #421039CE294A", "oX c #63185AD66B5A", "OX c #4A524A524210", "+X c #6B5A6B5A8C62", "@X c #842084209CE6", "#X c #4A524210294A", "$X c #52944210294A", "%X c #210818C618C6", "&X c #5AD652944A52", "*X c #739C739C9CE6", "=X c #318C318C294A", "-X c #5AD652944210", ";X c #39CE39CE318C", ":X c #108410840842", ">X c #39CE39CE294A", ",X c #18C610841084", "<X c #52944A524210", "1X c #294A294A2108", "2X c #210818C61084", " ", " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", " . X o o O O + + + + + + + + + + + + + + + + @ @ @ @ # $ $ # # # # # + + % + # & * * * * ", " . = X o o o O O O - - - - + + + + + + + + + @ + @ @ # @ $ @ @ # # ; ; ; % ; : & * * * * ", " . = = > , < < 1 2 2 3 4 4 5 6 6 7 8 9 0 . @ + + + @ # # @ @ @ + @ ; % q w e r & * * * * ", " . = = > * < < 1 2 2 3 4 4 5 6 6 7 8 9 * . + @ + @ @ @ @ @ + + + # # # t y u : & * * * * ", " . = = > , i < 1 2 2 3 3 4 5 6 6 7 8 9 0 . @ + + @ @ @ @ + @ + + $ e y p a + s & * * * * ", " . d f > = X o o o O O g h g % j + + + + > + + @ @ + @ @ + % + $ k t y q s l s & * * * * ", " . f f > = * X * * * O g z k x % c w + + > + + + + + # # + ; ; w p v : s X X X & * * * * ", " . f f > = = X X o o O b k n m M N B V C > @ @ @ + + @ # # # % q a s X Z A X Z & * * * * ", " . Z g > X * * * * * o * w * * * S B D a > @ @ @ @ + + # $ w X s X X X Z A Z Z & * * * * ", " . d c > z F F F F F F G H J K y J h h J 5 z z z z z y y y H H H H H H H H H H B L L L L * * ", " . P A > 4 I U I I Y T R E W Q ! ~ ^ / ! ( ~ ) _ _ ) ~ ) ` ' ] [ { ^ } } ) | ...X.| o.O.* * * ", " . +.@.> H #.$.%.$.#.&.&.*.*.=.-._ ( ;.;.;.:.x Q Q >.' ,.[ L <.1.} >.>.` ) ) ,.2.) 3.4.O.* * * * ", " . +.5.> G 6.#.7.&.8.9.0.q.w.e.e.=.~ / r.r.r./ t. .y.....u.1.1.H ` ` } >.} i.) =.4.4.4.O.* * * * ", " . +.+.> G p.p.p.&.o._ 4.&.*.e.a.a.s.d.i.f.U U U i.g.g.h.j.h.k.l.} ` ` } } } ~ _ z.z.x.O.* * * * ", " . c.c.> 5 ) ) ) ' ,.,. . .X.[ g.g.g.g.g.| d.i.v.v.g.h.b.b.b.b.n.' m.m.] M.N./ ) %.%.%.O.* * * * ", " . B.B.+.V.C.4.4.Z.A.A.S.D.D.F.G.G.* * G.* * * G.* G.*.C.k.2.2.K ` H.H.} { ( J.~ $.K.$.O.* * * * ", " . D.B.B.V.4.4.z.A.V.A.A.Z.Z.F.G.G.G.G.G.G.G.G.G.D G.h.L.L.u.u.H P.I.c { U.M M ^ Y.Y.T.O.* * * * ", " . D.D.B.V.C.z.R.A.A.A.A.A.A.F.G.G.G.G.G.G.G.G.G.G.G.k.k.L.L.L E.N.^ { U.& W.K.{ Y.Y.Y.O.* * * * ", " . D.D.S.V.&.Q.*.!.&.~.4.z.&.[ d.o.Q.Q.R.2.h.g.| | G.h.h.L.^.^.E.^ N.x.& $.%.& ^ $.T.Y.O.* * * * ", " . S.D.D./.~.~.C.!.~.!.z.!.!.F.d.d.Q.~.C.| l.l.l.(.G.<.<.).).L.1.{ R.&.%.%.%.%.{ p._.`.O.* * * * ", " . S.S.S.V.$.#.$.!.*.*.*.~.*.[ | i.Q.Q.| ,.<.i.U U G.).i.i.i.h.1.R.%.$.$.$.T.T.{ '.'.'.O.* * * * ", " . ].S.[./.%.%.%.!.$.!.!.!.!.F.d.G.Q.G.G.G.,.j.j.X.G.h.h.j.j.j.S Q._.`.{.{._._.( }.}.`.O.* * * * ", " . ].S.[./.T.%.x.!.x.~.x.~.&.~ |.|.|.|.N.] X XS S F.S X X X X XT._._.{.{.{._.J.}.}.`.O.* * * * ", " . ].].]./.K.K.W.!..X!.I !.!.!.!.XX!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.p._.x.'.'.}.O.* * * * ", " . ].].]./.oXM %.!..XY XXXXXXXXXXXXXXXX!./.!.!.!.!.!.!.!.!.!.!.!.!.!.!./.!.Y.Y.! p.Y.Y.O.* * * * ", " . ].].]./.M M OX!.XX!.XX!.XX!.XX!.XXXX!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.M M ~ W.W.W.O.* * * * ", " . ].].]./.( ( Y !.XXXXXXXXXXXXXXXXXXI !.& & & & & & & & & & & & & & & & !.:.Q c oXoX:..X* * * * ", " . ].].]././ / ( !.!.!.!.!.!.!.!.!.!.!.!.& & & & & & & & & & & & & & & & !.+X+Xn Q +XQ O.* * * * ", " . ].].].V.c @X( .XXXXXXXXXXXY I #X$XI !.& & !.!.& !.!.!.& !.& !.!.& & & !.%XT n +X+X+XO.* * * * ", " . & & & B k k |.&X&X&X&X&X&X8.8.0.8.0.5.^ c N.^ c N.N.M.c N.^ c N.N.M.N.5.G.R ~ *X*X*XO.* * * * ", " * * * L r.Q T T T T T T T XXXX#X#X6.* T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.* !.S.m :.:.:.O.* * * * ", " * * * L '..XT T T T =X=XT XXT XX-X8.* T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.* !.].5.5.5.5.O.* * * * ", " * * * L I T T T =X=X=X;XXXT XXXXI I * T.T.T.T.T.T.L L L L T.L L L L T.* !.A.].[.D.%XO.* * * * ", " * * * L T T T T T T T R ;XT =XT T T * T.T.T.T.T.T.L G.G.;XT.L G.;XG.T.* !.!.!.!.:X[.O.* * * * ", " L >X>X>X>XT T T T G.T T =XT T * T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.* ].].].].,X,XO.* * * * ", " L XX>XT T T T T T T T T T T Y * * * * * * * * * * * * * * * * * * ,X,X].,X,X].O.* * * * ", " L T T T T T >XT T T T T T T T 6.Y I XX%X!.!.!.!.:X!.,X!.,X].,X,X].:X,X,X,X,X,XO.* * * * ", " L T T T T T T I T T XXI XXT XXI XXY =X].,X!.!.!.:X:X,X,X,X:X,X:X:X:X:X:X:X:X:XO.* * * * ", " L I <XI .XI I 6.T T Y Y 6.T T Y Y T 1X2X%X%X%X,X:X:X,X,X,X,X,X:X,X:X,X:X:X2X%XO.* * * * ", " L O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.* * * * ", " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ", " * * * * * * * * * * !.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ", " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ", " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ", " ", " ", " ", " ", " ", " ", " ", " "}; ������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/menuprefs.xpm�����������������������������������������������������0000644�0001750�0001750�00000005634�12214432632�016314� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * menuprefs_xpm[] = { "48 48 28 1", " c None", ". c #2C2C2C", "+ c #FEFEFE", "@ c #505075", "# c #5F5F5F", "$ c #A2A2A2", "% c #282828", "& c #000000", "* c #727272", "= c #151515", "- c #2D2D2D", "; c #1E1E1E", "> c #040404", ", c #6D6D6D", "' c #0E0E0E", ") c #FFFFFF", "! c #6C6C6C", "~ c #070707", "{ c #1F1F1F", "] c #6A6A6A", "^ c #0B0B0B", "/ c #181818", "( c #111111", "_ c #090909", ": c #686868", "< c #3E3E3E", "[ c #DADADA", "} c #9D9D9D", "...............................................+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@#################$#####%@@@@@@@@@@@@@@@@@@@@+", ".@@#&&&&&&&&&&&&&&&&*=-&;>%@@@@@@@@@@@@@@@@@@@@+", ".@@#&&&&&&&&&&&&&&&&,')&)&%@@@@@@@@@@@@@@@@@@@@+", ".@@#&&&&&&&&&&&&&&&&!~{)&&%@@@@@@@@@@@@@@@@@@@@+", ".@@#&&&&&&&&&&&&&&&&]^)/)&%@@@@@@@@@@@@@@@@@@@@+", ".@@#&&&&(((((((((((_:&&&&&%@@@@@@@@@@@@@@@@@@@@+", ".@@#%%%%%%%%%%%%%%%%<%%%%%%@@@@@@@@@@@@@@@@@@@@+", ".@@[[[[[[[[[[[[[[[[[[[[[[[[@@@@@@@@@@@@@@@@@@@@+", ".@@[}}}}}}}}}}}}}}}}}}}}}}<@@@@@@@@@@@@@@@@@@@@+", ".@@[}}}}}}}}}}}}}}}}}}}}}}<@@@@@@@@@@@@@@@@@@@@+", ".@@[}}}}}}}}}}}}}}}}}}}}}}<@@@@@@@@@@@@@@@@@@@@+", ".@@[}}}}}}}}}}}}}}}}}}}}}}<@@@@@@@@@@@@@@@@@@@@+", ".@@[<<<<<<<<<<<<<<<<<<<<<<<#################%@@+", ".@@[[[[[[[[[[[[[[[[[[[[[[[[#&&&&&&&&&&&&&&&&%@@+", ".@@[}}}}}}}}}}}}}}}}}}}}}}<#&&&&&&&&&&&&&&&&%@@+", ".@@[}}}}}}}}}}}}}}}}}}}}}}<#&&&&&&&&&&&&&&&&%@@+", ".@@[}}}}}}}}}}}}}}}}}}}}}}<#&&&&&&&&&&&&&&&&%@@+", ".@@[}}}}}}}}}}}}}}}}}}}}}}<#&&&&&&&&&&&&&&&&%@@+", ".@@[<<<<<<<<<<<<<<<<<<<<<<<%%%%%%%%%%%%%%%%%%@@+", ".@@[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[@@+", ".@@[}}}}}}}}}}}}}}}}}}}}}}<[}}}}}}}}}}}}}}}}<@@+", ".@@[}}}}}}}}}}}}}}}}}}}}}}<[}}}}}}}}}}}}}}}}<@@+", ".@@[}}}}}}}}}}}}}}}}}}}}}}<[}}}}}}}}}}}}}}}}<@@+", ".@@[}}}}}}}}}}}}}}}}}}}}}}<[}}}}}}}}}}}}}}}}<@@+", ".@@[<<<<<<<<<<<<<<<<<<<<<<<[<<<<<<<<<<<<<<<<<@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@[[[[[[[[[[[[[[[[[[@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@[}}}}}}}}}}}}}}}}<@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@[}}}}}}}}}}}}}}}}<@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@[}}}}}}}}}}}}}}}}<@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@[}}}}}}}}}}}}}}}}<@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@[<<<<<<<<<<<<<<<<<@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@[[[[[[[[[[[[[[[[[[@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@[}}}}}}}}}}}}}}}}<@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@[}}}}}}}}}}}}}}}}<@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@[}}}}}}}}}}}}}}}}<@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@[}}}}}}}}}}}}}}}}<@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@[<<<<<<<<<<<<<<<<<@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", "++++++++++++++++++++++++++++++++++++++++++++++++"}; ����������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/timer0.xpm��������������������������������������������������������0000644�0001750�0001750�00000001442�12214432632�015501� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 4 1", " c None", ". c #000000000000", "X c #7BDE7BDE7BDE", "o c #BDEEBDEEBDEE", " ", " ..... ", " X.X ", " .. X.X .. ", " X.. X.....X ..X ", " ....ooooo.... ", " ..ooooooooo.. ", " .oooooooooooo.. ", " XXoooooooooooooXX ", " .ooooooooooooooo. ", " XXoooooooooooooooXX ", " .ooooooooooooooooo. ", " .ooooooooooooooooo. ", " .ooooooooooooooooo. ", " .ooooooooooooooooo. ", " .ooooooooooooooooo. ", " XXoooooooooooooooXX ", " .ooooooooooooooo. ", " XXoooooooooooooXX ", " .ooooooooooooo. ", " .Xooooooooo.. ", " X..ooooo..X ", " X.....X ", " "}; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/cycleworkspaces.xpm�����������������������������������������������0000644�0001750�0001750�00000006640�12214432632�017507� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 45 1", " c None", ". c #000000000000", "X c #0842842094A4", "o c #10847BDEAD6A", "O c #00007BDE9CE6", "+ c #18C67BDEA528", "@ c #08427BDEA528", "# c #10848420AD6A", "$ c #10848420A528", "% c #10847BDE9CE6", "& c #18C68420A528", "* c #B5ACB5ACB5AC", "= c #739C739C739C", "- c #39CE39CE39CE", "; c #084200009CE6", ": c #08428420A528", "> c #A528A528A528", ", c #7BDE7BDE7BDE", "< c #FFFFFFFFFFFF", "1 c #18C68C6294A4", "2 c #084284209CE6", "3 c #10847BDEA528", "4 c #18C67BDE9CE6", "5 c #318C318C318C", "6 c #08428420AD6A", "7 c #10847BDE94A4", "8 c #08427BDE9CE6", "9 c #10848C62A528", "0 c #1084739CA528", "q c #00008420A528", "w c #08427BDEAD6A", "e c #000084209CE6", "r c #108484209CE6", "t c #1084739C9CE6", "y c #18C6739CA528", "u c #A528AD6AA528", "i c #C630C630C630", "p c #BDEE5AD65AD6", "a c #739C18C618C6", "s c #739C21082108", "d c #94A45AD65AD6", "f c #529442104210", "g c #18C68C629CE6", "h c #8C6208420842", "j c #00007BDEA528", " ", " .. ", " ............... . ", " .XoO+o@#$%&%*=.- . ", " . .$;;;;;;;;:%*=.- . ", " .. .o>=>=>>=>%:>,.- ... ", " . .... .$><<<<<<<1&>,.- ", " .. ..... .#><<<<<<<:@*=.- .. .. . ", " ... .... .2<<<<<<<<3:*=.- .. .. .. ", " .. .:>>>>>>>>4o>,.- .. .. ... ", " ... . .@5555555567>,.- ", " ... . .$@%72:6:%@8*=.- ... ", " .. .*=9o:0q3:%w*=.- ....... ", " ... . .558e@#+1&63rt.- ..... ", " ... . ...............- ... ", " . --------------- . ", " ", " ............... ", " .XoO+o@#$%&%*=.- ............... ", " .$;;;;;2:6:%*=.- .XoO+o@#$%&%*=.- ", " .o<<<<<:0q%:>,.- .;;$%&%2:6:%*=.- ", " .$<<<<<@#y1&>,.- .ui:;;;;;q%:>,.- ", " .w<<<;;;;;:@*=.- .iu0<pas<&%&>,.- ", " .4555<<<<<3:*=.- .ui3<pdf<:3:*=.- ", " .:%:g<<<<<4o>,.- .iu6<shs<%::*=.- ", " .%w7@<<<<<67>,.- .uiq555551&o>,.- ", " .$@%755555@8*=.- .55+1&0q%:67>,.- ", " .*=93$t7j:%w*=.- .$@%7@#+1&@8*=.- ", " .558e@%3ej63rt.- .*=93$t7j:%w*=.- ", " ...............- .558e@%3ej63rt.- ", " --------------- ...............- ", " --------------- ", " . ", " ... ............... ... .. ", " ..... .XoO+o@#$%&%*=.- ... . ", " ....... .$;;;;;2:6:%*=.- . ", " ... .o<<<<<:0q%:>,.- ... . ", " .$<<<<<@#y1&>,.- . ... .. ", " ... .. .. .w<;;;;;;;;@*=.- .. ", " .. .. .. .45>=>=>>=>:*=.- .... ... ", " . .. .. .:%><<<<<<<o>,.- ..... .. ", " .%w><<<<<<<7>,.- .... . ", " . . .$@<<<<<<<<8*=.- .. ", " . . .*=>>>>>>>>w*=.- . ", " ... .55555555553rt.- ", " . ...............- ", " . --------------- ", " "}; ������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/oldstyle.xpm������������������������������������������������������0000644�0001750�0001750�00000003141�12214432632�016136� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * oldstyle_xpm[] = { "37 33 15 1", " c None", ". c #747474", "+ c #757575", "@ c #000000", "# c #222222", "$ c #262626", "% c #282828", "& c #FFFFFF", "* c #080808", "= c #A5A5A5", "- c #535353", "; c #060606", "> c #070707", ", c #030303", "' c #ABABAB", "..................+++++++...........@", "##################$$$$$$$%$%$$$$$$$$@", "##################$$$$$$$$%%%%%%%%%%@", "##################$$$$$$$%$%%%%%%%%%@", "##################$&&&&&&&&&&&&&&%%%*", "##################$&============-%%%*", "##################$&=@-======-@=-%%%*", "##################$&=-@-====-@-=-%%%*", "##################$&==-@-==-@-==-%%%*", "##################$&===-@--@-===-%%%*", "##################$&====-@@-====-%%%*", "##################$&====-@@-====-%%%*", "##################$&===-@--@-===-%%%*", "##################$&==-@-==-@-==-%%%*", "##################$&=-@-====-@-=-%%%*", "##################$&=@-======-@=-%%%*", "##################$&============-%%%*", "##################$&-------------%%%*", "##################$$$$$$$$$%%%%%%%%%*", "##################$$$$$$$%$%%%%%%%%%*", ";;;;;;;;;;;;;;;;;;>>>>>>>>>>>>>*****,", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "''''''''''''''''''''''''''''''''''''@", "''''''''''''''''''''''''''''''''''''@", "''''''''''''''''''''''''''''''''''''@", "''''''''''''''''''''''''''''''''''''@", "---------------------------------&''@", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'&''@", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'&''@", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'&''@", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'&''@", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'&''@", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'&''@"}; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/dock.xpm����������������������������������������������������������0000644�0001750�0001750�00000017314�12214432632�015226� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 138 2", " c None", ". c #CE72CE72CE72", "X c #9CE69CE69CE6", "o c #94A494A494A4", "O c #9CE6A528A528", "+ c #AD6ABDEEBDEE", "@ c #294A294A294A", "# c #4A524A524A52", "$ c #318C318C318C", "% c #E738E738E738", "& c #F7BCF7BCF7BC", "* c #B5ACB5ACB5AC", "= c #A528B5ACB5AC", "- c #8C6294A494A4", "; c #739C739C739C", ": c #6B5A6B5A6B5A", "> c #39CE39CE39CE", ", c #9CE6B5ACB5AC", "< c #421042104210", "1 c #7BDE7BDE7BDE", "2 c #842084208420", "3 c #D6B4D6B4D6B4", "4 c #DEF6DEF6DEF6", "5 c #8C628C628C62", "6 c #B5ACBDEEBDEE", "7 c #AD6AAD6AAD6A", "8 c #BDEEBDEEBDEE", "9 c #84208C628C62", "0 c #6B5A739C739C", "q c #94A49CE69CE6", "w c #6B5A7BDE7BDE", "e c #294A318C318C", "r c #5AD65AD65AD6", "t c #084208420842", "y c #631863186318", "u c #842084208C62", "i c #210821082108", "p c #084208421084", "a c #9CE6AD6AAD6A", "s c #7BDE84208420", "d c #84207BDE6B5A", "f c #7BDE7BDE8420", "g c #529452945AD6", "h c #529452945294", "j c #18C618C618C6", "k c #4A524A525294", "l c #21082108294A", "z c #18C618C62108", "x c #108410841084", "c c #1084108418C6", "v c #000000000000", "b c #A528A528A528", "n c #294A294A318C", "m c #318C318C39CE", "M c #EF7AEF7AEF7A", "N c #DEF6DEF6D6B4", "B c #C630C630C630", "V c #421039CE4210", "C c #421042104A52", "Z c #421042105AD6", "A c #421042105294", "S c #39CE39CE4A52", "D c #39CE39CE4210", "F c #4A524A526318", "G c #4A524A525AD6", "H c #94A494A49CE6", "J c #421039CE5294", "K c #FFFFFFFFFFFF", "L c #529452946318", "P c #63186318739C", "I c #5AD65AD66318", "U c #7BDE739C8420", "Y c #739C739C7BDE", "T c #631863186B5A", "R c #739C6B5A739C", "E c #8C628C6294A4", "W c #4A524210318C", "Q c #739C739C8420", "! c #6B5A6B5A739C", "~ c #318C21081084", "^ c #A5289CE6A528", "/ c #94A49CE6A528", "( c #8C6294A49CE6", ") c #AD6AAD6ABDEE", "_ c #F7BCF7BCFFFF", "` c #EF7AF7BCF7BC", "' c #E738E738EF7A", "] c #DEF6E738EF7A", "[ c #D6B4DEF6EF7A", "{ c #CE72D6B4E738", "} c #F7BCFFFFFFFF", "| c #EF7AEF7AF7BC", " . c #E738EF7AF7BC", ".. c #BDEEB5ACB5AC", "X. c #E738E738DEF6", "o. c #B5ACA5286B5A", "O. c #BDEEBDEEA528", "+. c #EF7AEF7AE738", "@. c #AD6AA528A528", "#. c #CE72C630B5AC", "$. c #A5289CE66B5A", "%. c #A528A5288420", "&. c #DEF6D6B4B5AC", "*. c #94A49CE68420", "=. c #39CE318C294A", "-. c #318C294A2108", ";. c #4210318C294A", ":. c #5AD64A5239CE", ">. c #BDEEB5ACAD6A", ",. c #D6B4C630A528", "<. c #8C627BDE5294", "1. c #294A18C61084", "2. c #318C21082108", "3. c #294A21081084", "4. c #294A210818C6", "5. c #4A5239CE294A", "6. c #9CE68C626B5A", "7. c #84207BDE6318", "8. c #BDEEB5ACA528", "9. c #52944A5239CE", "0. c #94A484206B5A", "q. c #94A48C625AD6", "w. c #8C6284206318", "e. c #8420739C6318", "r. c #8420739C5AD6", "t. c #A52894A45AD6", "y. c #9CE69CE68420", "u. c #B5ACAD6A8C62", "i. c #4210318C2108", "p. c #C630BDEEB5AC", "a. c #6B5A739C6318", "s. c #9CE684205294", "d. c #9CE694A4739C", "f. c #CE72B5AC7BDE", "g. c #5294529439CE", "h. c #A52894A47BDE", "j. c #4A52318C2108", "k. c #4A52294A2108", " . X X o o O + @ # # # # $ % & * = - ; ; : > ", " . X o o o O , $ # < : 1 2 3 4 * = 5 ; ; : > ", " . o o o 5 X 6 > # $ 5 o 7 8 8 1 , 9 0 : : > ", " . o o 5 5 q 6 w # $ 2 5 o X X $ = 9 : : : > ", " . o 5 5 5 q = e r ; 5 5 5 5 # t , 9 : : y > ", " . 5 5 5 u q = $ i # ; 1 y $ t p a s : y y > ", " . 5 5 5 2 5 O , + = = = = = , a q ; y y y > ", " . 5 5 2 2 2 9 - - - - 9 9 9 9 s ; y y y r > ", " . 5 2 2 2 d f 1 1 ; ; ; 0 : : : y y y r r > ", " . 2 2 2 s f 1 1 ; ; ; 0 : : : y y y r r r > ", " . > > > > > > > > > > > > > > > > > > > > > ", " : : : : : : : : : : : : : : : : : : : : : : ", " : r r r g h h h h h h # # # # # # # # # # j ", " : r r r r h h h h h h k # # # # # # # # # i ", " : r r h h h h h h h # # # # # # # # # # < i ", " y r h h # # # # # # # # # # # # # < $ < < i ", " : h h h ; 1 0 : : : : : : y y y : : $ < < i ", " : h h h : h l l l z x x j c c x k : $ < > i ", " . . . . . . . . . . . . . . . . . . . . . . l l v v i # c c x k : $ > < i ", " . * * 7 7 7 7 b b b X X X X o o o 5 5 5 5 > l c v j < ; z x x # : @ > > i ", " . * 7 7 7 7 b b b X X X o o o o 5 5 5 5 2 > l z v : 2 y c x p # : @ > > i ", " . 7 7 7 7 b b b X X X X o o o 5 5 5 5 2 2 > l c i r h c p p t # : @ > > i ", " . 7 7 7 5 o o o o 5 5 5 5 5 5 2 2 2 : 2 2 > n n m n @ n @ i p # y @ > > i ", " . 7 7 b 4 M 3 N 3 3 3 3 . B B B 3 3 r 2 1 > V C m > $ V > $ x # y @ > > i ", " . 7 b b 3 7 Z A S m l l n n l l X 3 r 1 1 > D > > m > $ $ $ @ r y @ $ > i ", " . b b b 3 b F Z S t v < u l l z X 3 h 1 1 > : : : : : y y y y y r @ > $ i ", " . b b X 3 b G Z n v $ 2 4 n l z H 3 h 1 1 > y y y y y y y y h i l $ $ > i ", " . b X X 3 b Z J n t 3 K B l z j H . h 1 ; > @ @ @ @ @ @ @ @ @ $ > > > $ i ", " . X X X 3 b A S n m * b @ z z c o . h ; ; > # # # # # # # # @ $ > > $ > i ", " . X X X 3 b J L g P I g I # V z o B h ; ; > @ @ @ @ @ @ @ @ $ > > $ $ $ i ", " . X o o 3 X S U K K Y T f R y i E B h ; : > W V > > > > > $ > $ > > $ $ i ", " . X o o 3 * Q Y K v K ! T y r g 7 B # 0 : > V > > > > > > > > $ $ $ $ $ i ", " . o o o B 4 3 N K v v K B B B B 8 8 # : : > > > > > > $ > $ > > $ $ $ $ i ", " . o o 5 ; : * B K v v v K B B b < # r : : > i i i i i i z ~ i i i i i i i ", " . o 5 5 5 2 r h K v v v v K h # y : : : y > . . . . . . . . . . . . . . . ", " . 5 5 5 5 2 ; X K v v v K X X h : : : y y > b b b X X X X o o o 5 5 5 5 > ", " . 5 5 5 2 2 1 h K K K v K # # h : : y y y > b b X X X X o o o 5 5 5 5 2 > ", " . 5 5 2 2 s d 1 1 1 K v v K : : : y y y r > b X X X X o o o 5 5 5 5 2 2 > ", " . 5 2 2 2 f f 1 1 ; ; K K : : : y y y r r > * 7 ^ / q ( ( ( ( ( ) 2 2 2 > ", " . 2 2 2 2 1 1 1 ; ; ; 0 : : : y y y r r r > K _ ` ' ] ] [ [ [ { [ 2 2 1 > ", " . > > > > > > > > > > > > > > > > > > > > > K K } ` ` ` ` | . . .2 2 1 > ", " . b b ..X.o.O.K K } } } +.N & } } & 1 1 1 > ", " . b b @.#.$.%.4 & K K X.&.*.4 K K K 1 1 1 > ", " . b X W =.-.;.:.d >.N ,.<.d +.K K K 1 1 ; > ", " . X X 1.1.2.1.3.4.5.6.7.8.M K K K K 1 ; ; > ", " . X X 9.0.q.w.e.5.2.~ r.% K K K K K ; ; ; > ", " . X X d #.t.y.#.u.i.~ 5.p.K K K K K ; ; : > ", " . X o a.%.s.d.f.g.h.j.k.e.& K K K K ; ; : > "}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/dontlinkworkspaces.xpm��������������������������������������������0000644�0001750�0001750�00000007036�12214432632�020232� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 51 1", " c None", ". c #084200009CE6", "X c #000000000000", "o c #B5ACB5ACB5AC", "O c #FFFFFFFFFFFF", "+ c #BDEE5AD65AD6", "@ c #739C18C618C6", "# c #739C21082108", "$ c #94A45AD65AD6", "% c #529442104210", "& c #318C318C318C", "* c #0842842094A4", "= c #10847BDEAD6A", "- c #00007BDE9CE6", "; c #18C67BDEA528", ": c #08427BDEA528", "> c #10848420A528", ", c #10847BDE9CE6", "< c #18C68420A528", "1 c #739C739C739C", "2 c #39CE39CE39CE", "3 c #084284209CE6", "4 c #08428420A528", "5 c #08428420AD6A", "6 c #1084739CA528", "7 c #00008420A528", "8 c #A528A528A528", "9 c #7BDE7BDE7BDE", "0 c #A528AD6AA528", "q c #C630C630C630", "w c #18C6739CA528", "e c #18C68C6294A4", "r c #08427BDEAD6A", "t c #084239CE9CE6", "y c #10847BDEA528", "u c #18C67BDE9CE6", "i c #8420BDEECE72", "p c #63186B5A7BDE", "a c #42104A525AD6", "s c #18C68C629CE6", "d c #52946B5A7BDE", "f c #318C63186B5A", "g c #10847BDE94A4", "h c #210852946318", "j c #08427BDE9CE6", "k c #10848420AD6A", "l c #10848C62A528", "z c #1084739C9CE6", "x c #00007BDEA528", "c c #000084209CE6", "v c #108484209CE6", " ", " ", " ", " ", " ", " ", " ........X. ", " ..............X. ", " oOOOOO........XX ", " oOO+@#oOOOOOOOXXX ", " ...oOO+@#oOO+@#........X. ", " ...oOO+$%oOO+@#........XX ", " oOOoOO+$%oOO+$%oOOOOOOOXXX ", " oOOoOOOOOoOO+$%oOO@+@#OXXXX ", " oOO&&&&&&oOOOOOoOO@#@#OXXX ", " oOO+$%%OO&&&&&&oOO$%$%OXoX ", " oOO+$%%OOo oOO$%$%OOo X ", " XXXXXXXXXXXoOOOOOOOOo oOOOOOOOOoXXXXXXXX ", " X*=-;=:>>,<&&&&&&&&&& &&&&&&&&&&,,,<,o1X2 ", " X>ooooo3454,o1X2 X..>,<,3454,o1X2 ", " X=OOOOO467,489X2 X0q4.....7X489X2 ", " X>OOOOO:>we<89X2 Xq06O+@#O,X<89X2 ", " XrOOOttttt4:o1X2 X0qyO+$%O,,Xo1X2 ", " Xu&&&ipaai,4o1X2 Xq05O+$%O,44o1X2 ", " X4,4sipdfiu=89X2 X0q7&&&&&e<=89X2 ", " X,rg:ipdfi5g89X2 X&&;e<67,45g89X2 ", " X>:,ghhhhh:jo1X2 X>:,g:k;e<:jo1X2 ", " Xo1l=>zg-4,ro1X2 Xo1ly>zgx4,ro1X2 ", " X&&jc:yyc-5yvzX2 X&&jc:,ycx5yvzX2 ", " XXXXXXXXXXXXXXX2 XXXXXXXXXXXXXXX2 ", " 222222222222222 222222222222222 ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/speed3s.xpm�������������������������������������������������������0000644�0001750�0001750�00000001571�12214432632�015652� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "26 26 3 1", " c None", ". c #FFFFFFFF0000", "X c #000000000000", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ................ ", " .X.XX.XXX.XXXX.X. ", " .X.XX.XXX.XXXX.XX. ", " .X.XX.XXX.XXXX.XXX. ", " .X.XX.XXX.XXXX.XXXX. ", " .X.XX.XXX.XXXX.XXX. ", " .X.XX.XXX.XXXX.XX. ", " .X.XX.XXX.XXXX.X. ", " ................ ", " ", " ", " ", " ", " ", " ", " ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/speed0s.xpm�������������������������������������������������������0000644�0001750�0001750�00000001571�12214432632�015647� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "26 26 3 1", " c None", ". c #FFFFFFFF0000", "X c #000000000000", " ", " ", " ", " ", " ", " ", " ", " ", " ", " .... ", " .X.X. ", " .X.XX. ", " .X.XXX. ", " .X.XXXX. ", " .X.XXX. ", " .X.XX. ", " .X.X. ", " .... ", " ", " ", " ", " ", " ", " ", " ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/msty3.xpm���������������������������������������������������������0000644�0001750�0001750�00000005746�12214432632�015373� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "40 40 59 1", " c None", ". c #631863186318", "X c #000000000000", "o c #294A294A294A", "O c #084208420842", "+ c #210821082108", "@ c #18C618C618C6", "# c #FFFFFFFFB5AC", "$ c #FFFFF7BCB5AC", "% c #FFFFEF7AB5AC", "& c #FFFFE738B5AC", "* c #FFFFDEF6B5AC", "= c #FFFFD6B4B5AC", "- c #529421080000", "; c #FFFFF7BC39CE", ": c #FFFFEF7A39CE", "> c #FFFFE73839CE", ", c #FFFFDEF639CE", "< c #FFFFD6B439CE", "1 c #FFFFCE7239CE", "2 c #FFFFC63039CE", "3 c #FFFFBDEE39CE", "4 c #FFFFB5AC39CE", "5 c #FFFFAD6A39CE", "6 c #FFFFA52839CE", "7 c #FFFF9CE639CE", "8 c #FFFF94A439CE", "9 c #FFFF8C6239CE", "0 c #7BDE318C0000", "q c #318C318C318C", "w c #FFFF842039CE", "e c #529418C60000", "r c #7BDE294A0000", "t c #FFFF7BDE39CE", "y c #7BDE21080000", "u c #FFFF739C39CE", "i c #529410840000", "p c #FFFF6B5A39CE", "a c #7BDE18C60000", "s c #FFFF631839CE", "d c #529408420000", "f c #FFFF5AD639CE", "g c #7BDE10840000", "h c #FFFF529439CE", "j c #7BDE08420000", "k c #529400000000", "l c #FFFF4A5239CE", "z c #7BDE00000000", "x c #FFFF421039CE", "c c #FFFF39CE39CE", "v c #7BDE4A520000", "b c #7BDE42100000", "n c #7BDE39CE0000", "m c #5294294A0000", "M c #39CE21080000", "N c #318C18C60000", "B c #39CE18C60000", "V c #4A5221080000", "C c #108410841084", " ", " .................................. ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoooO ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoo+O ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoo@O ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoo@O ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoo@O ", " .ooooooooooooooooooooooooooooooooo+O ", " ####$$$$$%%%%%%&&&&&&&&***=======-oO ", " #;;;:>>>,,<<<11233344556667889990-qO ", " #;;::>>,,<<<1123334455566788999w0eqO ", " #;;:>>,,,<<1122334455566788899wwreoO ", " #;:>>>,,<<1112334445566778899wwwreoO ", " $:>>>,,<<11123344455666788999wwtreoO ", " $:>>,,<<<1123334455666788999wwttreoO ", " $>>,,,<<1122334455566788899wwtttyeqO ", " $>,,,<<1112334455566788899wwwttuyiqO ", " $>,,<<1112334445566778899wwwttupyiqO ", " $,,<<<1123334455666788999wwttuupyioO ", " %,<<<1123334455566788899wwtttuppaioO ", " %,<<1122334455566788899wwtttuppsaioO ", " %<<1112334445566778899wwwttupppsaioO ", " %<<1123344455666788999wwttuuppssadqO ", " %<1123334455666788999wwtttuppssfadqO ", " %1122334455566788899wwtttuppsssfgdqO ", " %112334445566788899wwwttupppssffgdoO ", " %12334445566678899wwwttupppssfffgdoO ", " &23334455666788999wwttuuppssfffhjdoO ", " &3334455566788899wwtttuppsssffhhjdoO ", " &334455566788899wwwttuppsssffhhhjkqO ", " &34445566778899wwwttupppssffhhhljkqO ", " &34455666788999wwttuuppssfffhhllzkqO ", " &4455666788999wwtttuppsssffhhlllzkoO ", " &455566788899wwtttuppsssffhhhllxzkoO ", " &45566778899wwwttupppssffhhhllxczkoO ", " &vvvbbbnn00000rryyyyaaagggjjjzzzzk+O ", " XmmMNNNBVV---eeeeeiiiiiddddkkkkkkk+O ", " ooo+++++++ooooooooooooooooooooo++CO ", " OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX ", " "}; ��������������������������WindowMaker-0.95.5/WPrefs.app/xpm/keyboardprefs.xpm�������������������������������������������������0000644�0001750�0001750�00000020243�12214432632�017141� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 159 2", " c #000000000000", ". c #6B5A6B5A6318", "X c #739C739C739C", "o c #94A494A48C62", "O c #A528A5289CE6", "+ c #A5289CE69CE6", "@ c #8C6284207BDE", "# c #63185AD65294", "$ c #63185AD65AD6", "% c #631863185AD6", "& c #8C628C628420", "* c #9CE69CE694A4", "= c #739C739C6B5A", "- c #6B5A63185AD6", "; c #9CE694A494A4", ": c #9CE694A48C62", "> c #A52894A494A4", ", c #94A48C628C62", "< c #8C627BDE7BDE", "1 c #842084207BDE", "2 c #F7BCEF7AEF7A", "3 c #6B5A5AD65AD6", "4 c #DEF6D6B4CE72", "5 c #DEF6CE72CE72", "6 c #EF7AE738DEF6", "7 c #C630BDEEB5AC", "8 c #39CE318C318C", "9 c #294A294A2108", "0 c #4A524A5239CE", "q c #B5ACB5ACAD6A", "w c #84206B5A739C", "e c #CE72BDEEB5AC", "r c #EF7ADEF6D6B4", "t c #E738CE72CE72", "y c #DEF6CE72C630", "u c #DEF6DEF6D6B4", "i c #318C294A294A", "p c #39CE318C294A", "a c #4A52421039CE", "s c #7BDE739C6B5A", "d c #E738D6B4D6B4", "f c #E738DEF6D6B4", "g c #739C6B5A6318", "h c #318C294A2108", "j c #421039CE318C", "k c #63185AD64A52", "l c #AD6AA5289CE6", "z c #C630C630BDEE", "x c #5AD652945AD6", "c c #8420739C739C", "v c #E738D6B4CE72", "b c #F7BCE738E738", "n c #7BDE6B5A5AD6", "m c #6B5A5AD65294", "M c #5AD64A524210", "N c #6B5A52945294", "B c #C630B5ACAD6A", "V c #A5289CE694A4", "C c #7BDE6B5A6318", "Z c #DEF6D6B4D6B4", "A c #631852944A52", "S c #9CE694A48420", "D c #E738DEF6DEF6", "F c #DEF6C630C630", "G c #CE72CE72C630", "H c #5AD65AD65AD6", "J c #AD6A9CE694A4", "K c #739C63185AD6", "L c #9CE684207BDE", "P c #BDEEBDEEB5AC", "I c #94A484208420", "U c #B5ACAD6AA528", "Y c #8420739C6B5A", "T c #D6B4D6B4CE72", "R c #DEF6C630BDEE", "E c #9CE68C628420", "W c #A5288C628420", "Q c #94A484207BDE", "! c #D6B4C630BDEE", "~ c #F7BCDEF6DEF6", "^ c #94A47BDE739C", "/ c #5AD652944A52", "( c #D6B4CE72CE72", ") c #EF7AD6B4D6B4", "_ c #EF7AE738E738", "` c #5AD652944210", "' c #4A5242104210", "] c #B5AC9CE694A4", "[ c #6B5A63185294", "{ c #8C62739C6B5A", "} c #D6B4CE72C630", "| c #94A48420739C", " . c #4A524A524210", ".. c #AD6A94A494A4", "X. c #EF7ADEF6DEF6", "o. c #739C6B5A5AD6", "O. c #CE72C630BDEE", "+. c #B5ACA5289CE6", "@. c #AD6AA52894A4", "#. c #A52894A48C62", "$. c #8C627BDE739C", "%. c #BDEEB5ACB5AC", "&. c #421039CE39CE", "*. c #AD6A94A48C62", "=. c #739C63185294", "-. c #52944A5239CE", ";. c #52944A524210", ":. c #6B5A5AD64A52", ">. c #529452944210", ",. c #84207BDE6B5A", "<. c #631863185294", "1. c #AD6A94A48420", "2. c #8420739C6318", "3. c #6B5A6B5A5AD6", "4. c #7BDE63185AD6", "5. c #94A47BDE6B5A", "6. c #5AD65AD64A52", "7. c #84207BDE739C", "8. c #42104210318C", "9. c #7BDE739C6318", "0. c #39CE39CE318C", "q. c #8C628420739C", "w. c #8C627BDE6B5A", "e. c #739C739C6318", "r. c #CE72B5ACAD6A", "t. c #CE72C630C630", "y. c #A5288C627BDE", "u. c #9CE68C627BDE", "i. c #C630A5289CE6", "p. c #BDEE9CE694A4", "a. c #B5AC9CE68C62", "s. c #BDEEA528A528", "d. c #294A21082108", "f. c #4A524210318C", "g. c #18C618C618C6", "h. c #AD6A8C628420", "j. c #BDEEA5289CE6", "k. c #B5AC94A48C62", "l. c #84206B5A6318", "z. c #9CE68C628C62", "x. c #D6B4C630C630", "c. c #BDEEA52894A4", "v. c #318C318C294A", "b. c #94A48C627BDE", "n. c #C630AD6AA528", "m. c #94A48C628420", "M. c #CE72AD6AA528", "N. c #39CE294A2108", "B. c #D6B4BDEEBDEE", "V. c #318C21082108", "C. c #94A47BDE7BDE", "Z. c #739C5AD65294", "A. c #2108210818C6", "S. c #84207BDE6318", "D. c #18C610841084", "F. c #7BDE739C5AD6", "G. c #BDEE9CE69CE6", "H. c #210818C618C6", "J. c #E738C630BDEE", " . ", " X o O O + + @ # $ $ % o & o + + + + * = # $ # - ; + ; ; ; : > , . # % % < + + + + + + + 1 . 2 ", " 3 < 4 5 5 6 7 8 9 0 % q 3 w e r t y u : i p a s 4 r d d d d f 4 g h j k l u d d d d r 6 z x 2 ", " $ c 5 v y b e 8 p n m q M N B d y y 6 V i a m C Z v y y y y t u c i # A S D y F y F F Z G H 2 ", " s J d v y b y k K L k P I 7 d v F y 6 U 8 - Y % T 5 F F F R y D E j W - Q u y ! R R ! y G H 2 ", " > y d y y ~ y M K ^ / ( r ) v y F y _ q 8 C ^ ` ( v F F y R y D : ' ] [ Y Z y R R R ! 5 G . 2 ", " ; ! y y y ~ y / { L / } ~ t y y F y _ U ' | ^ .( d y F F R y D ; ' ..[ g Z 5 ! R R ! y ( . 2 ", " * y v v d ~ ( k C L k } b d 5 v 5 d _ B j Y ^ ` ( X.v 5 5 y 5 6 V ' ..- o.Z d 4 y y 4 5 4 1 2 ", " ; O.( ( ( ( +./ 3 L k @.( ( ( ( ( ( ( #.8 K $.k %.T ( ( u T ( ( I &.*.C - z ( ( ( ( ( ( z = 2 ", " / / ` / / # m # K I =.k k -.0 -.0 ;.% # j K $.:.# >.0 / ,.<.k o.K j 1.2.[ # .0 0 0 0 ./ 3.2 ", " # m m m m =.4.n 3 5.C C 3 ;.;.-.;.-.k n 0 6.Y C [ A ` -.-.-.-.# 7.8.$.$.9.;.0.j j 8.j j ;.7.2 ", " % K K m m m [ m -.=.K C Y C K [ =.;.-.K a j K o.C C C k ` ` ` k ,.j % Y - 0 >.` ;.;.;.-.;.* 2 ", " $ [ q.w.e.o.g g . Y m n Y C 3 C - ;.;.% 0 0 o.m g 9.o.:./ 0 a a % a / g >.a ` ;.;.;.0 8.a , 2 ", " % 1 ! r.T Z Z Z Z } ,.n Y K s t.Z ( ( T ( ( t.s K C K E t.} } } ( ( T z 6.-./ -.K *.W y.u.B 2 ", " # 1 z ^ } d y y 5 u ,.p a [ g Z d v v v y d Z % 9 a / S D d d ) ) ) r ( 0 h 0 0 o.i.p.a.a.s.2 ", " - 7.7 K #.R F R F D @ d.f.g k T v F F F R y Z $ d.m :.Q u y F y y F y ( j g.;. .K p.^ h...+.2 ", " - g } j.j.R y ! y D S i # $.k } d F F R F y u s 8 1.- @ u y R F F R y Z 6.d./ ;.m W M K C o.2 ", " - # Z d y y F ! y D E i m w./ y d F F R R y u < j a.[ Y u y F R R R y Z - 9 / -.k k.4.l.{ z.2 ", " - # ( v y y y ! y D #.j Y w.A x.d y y y y 4 D @ j *.m g Z 5 F R R R y u C h ` ;./ c.k.k.*.j.2 ", " g # t.D D D D D r u S f.9.w.m O.6 D D D D 6 D @ j L o.e.( D ) v y d r u 7.v.` ;.` i.i.] k.B 2 ", " g ` | #.V V J V J #.[ j A Y =.b.#.J #.#.#.l J # j b.9.$ E #.7 ( ( } l V k 9 ` ` ;.2.Y e.{ n.2 ", " C m :./ M M M M ` m K -.-.{ o.m A ` M M M M m A ;.u.w.m / 0 / k k k -.k A v./ / ;.0 j 0.8.1 2 ", " . - K K n n n n K n C -.f.9.n K K o.n n n o.n n -.n C [ - =.[ [ m [ K C C p 0 / / -.p h 0.<.2 ", " # k k m K n 9.o.K =.3 8 p m A k m K n 9.n [ =.:.j a k ` k m [ o.C o.o.C g i v.8.8.0 0.9 v.. 2 ", " m.U B +.K o.C [ q.B r.l + B j.U J o.o.C K $.M.B +.+.s.+.B l m o.9.n 9.L L C l.Y l.Y K % [ 1 2 ", " U d _ Z C o.C 3 #.D ~ D X.X.X.X.Z w.K C [ b.f ~ r r X.r b ( <.o.Y [ g i.i.i.i.i.c.i.p.j.c.e 2 ", " + ! d ( ` N.a / E f y y R y F 4 T k 9 -.:.$.Z y ! F F ! y ( a v.a 0 k j.k.W k.k.k.k.] k.k.j.2 ", " > B.t Z k V.:.K Q u y ! ! R ! y Z - 9 C [ Y Z y ! ! ! ! y T / g.8.-.6.k.^ 4.^ W ^ C.L ^ W U 2 ", " > B.v D Y j ^ Y @ u y ! ! ! ! y u 7.j h.K g Z y ! ! ! ! R u s d.;.` 0 h.^ Z.l.w.K 4.4.=.L s.2 ", " ; B.v D 7.p $.n Y Z y R ! ! ! y u 7.j 1.=.- T y ! ! ! ! R r z.h 0 ` a k.] { C.k.L I L L h.U 2 ", " > R d D $.j $.C ,.Z d 5 5 5 y 5 D < j 1.K - T d y y y y y 6 +.i a 6.0 *.i.k.] k.k.k.1.k.h.j.2 ", " ; O.Z t.$.` u.Y C z ( ( ( ( ( ( O.C j y.l.[ B ( ( ( ( ( ( ( E h 0 k ;.y.i.] k.k.i.i.i.i.p.e 2 ", " # k m o.n -.{ w.:.# k 6.k k k k % ` N.=.{ =.m :.k / 6.6.k - m v.8.k ;.;.;.0 8.-.w.| ^ $.Y b.2 ", " $ K K n { 8./ Y o.K [ [ [ =.3 =.n l.p -.w.C K K [ [ 3 3 =.n l.p p / / ;.;.;. .0 a 8.8.8.8.. 2 ", " # 3 =.K 4.i v.[ m k # m m K o.C Y Y p a 9.g K o.o.K K K o.n Y 0.h ;.` / / / / ` ` >.;.` ` e.2 ", " . Y { $.$.k k $.Y s s s Y C m C Y Y M K L w.Y Y Y Y Y 2.Y Y $.K # / ;.` / / / / / / 6./ 6.X 2 ", " * ( Z u u 4 T u Z Z u u u e [ C { s Y p.a.1.1.1.1.1.1.1.1.1.1.p.c.w.0 / k k k k / k k k k X 2 ", " : ! y y t t y y y y y 5 d Z g C w.m % ] 1.h.h.h.W W y.W W y.W 1.] y.0 / k k k # # # k k k 1 2 ", " z.e R R F F F F R R R R y ( a A.9 p k W S.2.5.W y.y.u.y.u.u.u.y.*.k.i g.8 &.&.j j &.&.j &.$ 2 ", " S e F F R F R F R R R R y ( a D.p 0 k y.2.F.2.y.W L y.y.y.y.u.y.*.G.h d.V } x.x.x.O.! B.B.Z 2 ", " : e F F F F F F F F F ! y T ;.g.;.6.A p.k.W y.W y.y.y.y.y.y.u.y.*.i.j i B 2 ~ b b b b b _ 2 2 ", " : ! y y y y y y y y y y 4 Z x g.a 6.` c.c.k.*.h.h.1.h.1.1.h.h.1.] n. .i U _ y t t t y t t 6 2 ", " * ( u D u d u d u u f u d Z <.H.a k >.2.n ^ p.i.] k.k.k.k.] i.i.W ,.j i l 6 y F y F F F F v 2 ", " s Q m.b.b.b.b.b.b.b.m.I E n.K H.8.<.;.a 0.j ;.;.0 a 0 a a 0 ;.>.0 0 a 9 m.D y F F F J.F y r 2 ", " m - K K K K K K K K K K K $.K A.j [ / >.>.>.;.;.0 ;.;.0 -.0 0 -.;.6.# 9 C u y J.F y F y y d 2 ", " K Y Y Y Y Y Y Y Y Y Y c Y ^ I 9 0.# ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` k k 9 . u t y y t t t y r 2 ", " @ E E E E E z.E z.E E E z.#.J ;. .e.o.3.3.3.3.3.3.- 3.3.3.3.- - 3.g = a g u ~ ~ ~ ~ ~ ~ ~ b 2 ", "2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 "}; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/timer2s.xpm�������������������������������������������������������0000644�0001750�0001750�00000001467�12214432632�015675� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "24 24 5 1", " c None", ". c #000000000000", "X c #7BDE7BDE7BDE", "o c #FFFFFFFFFFFF", "O c #FFFF00000000", " ", " ..... ", " X.X ", " .. X.X .. ", " X.. X.....X ..X ", " ....oo.OO.... ", " ..oooo.OOOO.. ", " .oooooo.OOOOOO. ", " XXoooooo.OOOOOOXX ", " .ooooooo.OOOOOOO. ", " XXooooooo.OOOOOOOXX ", " .oooooooo.OOOOOOOO. ", " .oooooooo.OOOOOOOO. ", " ....ooooo.......... ", " .ooooooooooooooooo. ", " .ooooooooooooooooo. ", " XXoooooooooooooooXX ", " .ooooooooooooooo. ", " XXoooooooooooooXX ", " .oooooo.oooooo. ", " .Xoooo.oooo.. ", " X..oo.oo..X ", " X.....X ", " "}; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/menualign1.xpm����������������������������������������������������0000644�0001750�0001750�00000002427�12214432632�016345� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "32 32 5 1", " c None", ". c #000000000000", "X c #AD6AAD6AAD6A", "o c #529452945294", "O c #FFFFFFFFFFFF", " ", " ................ ", " .XXXXXXXXXXXXXX. ", " .X............o. ", " .X............o. ", " .oooooooooooooo. ", " ................ ", " .OOOOOOOOOOOOOO. ", " .OXXXXXXXXXXXXo. ", " .OXXXXXXXXXXXXo. ", " .oooooooooooooo. ", " .............................. ", " .OOOOOOOOOOOOOO..XXXXXXXXXXXX. ", " .OXXXXXXXXXXXXo..X..........o. ", " .OXXXXXXXXXXXXo..X..........o. ", " .oooooooooooooo..oooooooooooo. ", " .............................. ", " .OOOOOOOOOOOOOO..OOOOOOOOOOOO. ", " .OOOOOOOOOOOOOo..OXXXXXXXXXXo. ", " .OOOOOOOOOOOOOo..OXXXXXXXXXXo. ", " .oooooooooooooo..oooooooooooo. ", " .............................. ", " .OOOOOOOOOOOOOO..OOOOOOOOOOOO. ", " .OXXXXXXXXXXXXo..OXXXXXXXXXXo. ", " .OXXXXXXXXXXXXo..OXXXXXXXXXXo. ", " .oooooooooooooo..oooooooooooo. ", " .............................. ", " .OOOOOOOOOOOO. ", " .OXXXXXXXXXXo. ", " .OXXXXXXXXXXo. ", " .oooooooooooo. ", " .............. "}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/opaqueresize.xpm��������������������������������������������������0000644�0001750�0001750�00000031034�12214432632�017015� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * opaqueresize_xpm[] = { "48 48 498 2", " c None", ". c #000000", "+ c #9C9C9C", "@ c #B5B5B5", "# c #FFFFFF", "$ c #B4B4B4", "% c #B3B3B3", "& c #595959", "* c #0F0000", "= c #370000", "- c #FEFEFE", "; c #FDFDFD", "> c #FCFCFC", ", c #FBFBFB", "' c #FAFAFA", ") c #F9F9F9", "! c #F7F7F7", "~ c #F6F6F6", "{ c #F5F5F5", "] c #F4F4F4", "^ c #F8F8F8", "/ c #F0F0F0", "( c #EFEFEF", "_ c #EBEBEB", ": c #E0DFDF", "< c #DFDDDD", "[ c #DEDCDC", "} c #EEEEEE", "| c #F1F1F1", "1 c #F3F3F3", "2 c #EAEAEA", "3 c #E8E8E8", "4 c #D9D8D8", "5 c #AA9F9F", "6 c #B69797", "7 c #B49595", "8 c #D8D6D6", "9 c #E7E7E7", "0 c #E9E9E9", "a c #EDEDED", "b c #E5E5E5", "c c #DFDFDF", "d c #C5C4C4", "e c #AB8D8D", "f c #FE9999", "g c #FE9898", "h c #AC8D8D", "i c #CFCDCD", "j c #E0E0E0", "k c #E4E4E4", "l c #E6E6E6", "m c #E1E1E1", "n c #D0CFCF", "o c #9B9191", "p c #B98080", "q c #FF9999", "r c #FF9797", "s c #AA8686", "t c #C8C6C6", "u c #DCDCDC", "v c #DBDADA", "w c #BFBEBE", "x c #A38484", "y c #FE8E8E", "z c #FF9595", "A c #FF8888", "B c #9B7C7C", "C c #C3C1C1", "D c #D8D8D8", "E c #ECECEC", "F c #CECDCD", "G c #988D8D", "H c #B27979", "I c #FF8E8E", "J c #A36B6B", "K c #837777", "L c #B0AEAE", "M c #C4C3C3", "N c #F2F2F2", "O c #BFBCBC", "P c #A08181", "Q c #FF8787", "R c #FF8A8A", "S c #FE7878", "T c #856565", "U c #949090", "V c #847A7A", "W c #957E7E", "X c #9C9292", "Y c #CDCBCB", "Z c #E5E4E4", "` c #988C8C", " . c #AD7575", ".. c #FF7D7D", "+. c #925A5A", "@. c #6E6262", "#. c #8B8787", "$. c #856969", "%. c #E07E7E", "&. c #AD7D7D", "*. c #A09494", "=. c #D2D0D0", "-. c #E1DFDF", ";. c #9F8282", ">. c #FF8282", ",. c #F36D6D", "'. c #765656", "). c #7F7B7B", "!. c #685E5E", "~. c #925D5D", "{. c #FF8383", "]. c #FF8C8C", "^. c #B38181", "/. c #A69B9B", "(. c #E2E2E2", "_. c #DDDBDB", ":. c #9D7C7C", "<. c #FF8181", "[. c #FF7777", "}. c #895151", "|. c #605454", "1. c #797575", "2. c #6F5252", "3. c #E46969", "4. c #FF8D8D", "5. c #AA8B8B", "6. c #D2D1D1", "7. c #DEDDDD", "8. c #E2E1E1", "9. c #E9E8E8", "0. c #D9D7D7", "a. c #927676", "b. c #EB7474", "c. c #E66868", "d. c #6F4F4F", "e. c #757171", "f. c #594F4F", "g. c #7C4747", "h. c #FF6969", "i. c #FF7878", "j. c #FF7F7F", "k. c #9C7D7D", "l. c #BCB9B9", "m. c #B39999", "n. c #B1A7A7", "o. c #DAD9D9", "p. c #DEDEDE", "q. c #D7D6D6", "r. c #847B7B", "s. c #816363", "t. c #755757", "u. c #5F5454", "v. c #726E6E", "w. c #634646", "x. c #D25757", "y. c #FF6868", "z. c #FF6F6F", "A. c #955D5D", "B. c #7E7272", "C. c #A4A0A0", "D. c #A48484", "E. c #FE9696", "F. c #C89090", "G. c #BB9A9A", "H. c #B2A7A7", "I. c #E8E7E7", "J. c #EDECEC", "K. c #EBEAEA", "L. c #EEEDED", "M. c #D7D7D7", "N. c #B2B1B1", "O. c #A2A0A0", "P. c #969494", "Q. c #838181", "R. c #584C4C", "S. c #764141", "T. c #F65C5C", "U. c #FF6464", "V. c #FF6565", "W. c #E35D5D", "X. c #755555", "Y. c #7D7171", "Z. c #AA7272", "`. c #FF9696", " + c #FF9F9F", ".+ c #FF9E9E", "++ c #C78F8F", "@+ c #B4A9A9", "#+ c #E5E3E3", "$+ c #E8E6E6", "%+ c #B9B0B0", "&+ c #C1A6A6", "*+ c #BAB1B1", "=+ c #DDDDDD", "-+ c #C1C1C1", ";+ c #A6A6A6", ">+ c #878585", ",+ c #674B4B", "'+ c #D15656", ")+ c #FF6060", "!+ c #F65959", "~+ c #794141", "{+ c #5C5050", "]+ c #7E5F5F", "^+ c #FF9C9C", "/+ c #3B0000", "(+ c #D3D1D1", "_+ c #BC9E9E", ":+ c #FEA5A5", "<+ c #BEA0A0", "[+ c #C4C4C4", "}+ c #B8B8B8", "|+ c #695E5E", "1+ c #814949", "2+ c #FA5F5F", "3+ c #FF6161", "4+ c #FF5D5D", "5+ c #D44E4E", "6+ c #5D3C3C", "7+ c #656060", "8+ c #5A4E4E", "9+ c #874F4F", "0+ c #FF7272", "a+ c #FF8080", "b+ c #FF8686", "c+ c #FF9191", "d+ c #420000", "e+ c #A58686", "f+ c #C0BDBD", "g+ c #A29696", "h+ c #BC8686", "i+ c #FFA1A1", "j+ c #C99191", "k+ c #CACACA", "l+ c #C0C0C0", "m+ c #A8A6A6", "n+ c #E96363", "o+ c #FF6262", "p+ c #F25555", "q+ c #6E3737", "r+ c #423535", "s+ c #453838", "t+ c #723F3F", "u+ c #E65C5C", "v+ c #FF6C6C", "w+ c #FF7676", "x+ c #FF7A7A", "y+ c #FF7979", "z+ c #857979", "A+ c #A6A2A2", "B+ c #977979", "C+ c #F57373", "D+ c #D6D4D4", "E+ c #E3E3E3", "F+ c #D1D1D1", "G+ c #C8C8C8", "H+ c #B1AFAF", "I+ c #856666", "J+ c #EF6969", "K+ c #FF6B6B", "L+ c #DF5050", "M+ c #5A3737", "N+ c #585353", "O+ c #5A3838", "P+ c #D54F4F", "Q+ c #FF6666", "R+ c #8E8A8A", "S+ c #7C7171", "T+ c #A26A6A", "U+ c #FF9292", "V+ c #FF8F8F", "W+ c #C0BEBE", "X+ c #D0D0D0", "Y+ c #BBB9B9", "Z+ c #7E7474", "`+ c #8C5959", " @ c #E96060", ".@ c #F75656", "+@ c #A14040", "@@ c #412B2B", "#@ c #3D3030", "$@ c #6C3535", "%@ c #F05353", "&@ c #FF5C5C", "*@ c #FF5E5E", "=@ c #DB5555", "-@ c #7D7979", ";@ c #7B5C5C", ">@ c #F77171", ",@ c #FF8484", "'@ c #8E8383", ")@ c #CCCACA", "!@ c #CBCBCB", "~@ c #ABA9A9", "{@ c #736767", "]@ c #784545", "^@ c #9B2F2F", "/@ c #562D2D", "(@ c #3A3030", "_@ c #4D2C2C", ":@ c #CE4848", "<@ c #FF5656", "[@ c #FF5858", "}@ c #FF5757", "|@ c #FF5454", "1@ c #D54B4B", "2@ c #693737", "3@ c #514545", "4@ c #834B4B", "5@ c #FF6A6A", "6@ c #FF7373", "7@ c #FF7575", "8@ c #200000", "9@ c #8B6C6C", "0@ c #C1BFBF", "a@ c #DBDBDB", "b@ c #151515", "c@ c #5A0000", "d@ c #7F0000", "e@ c #600000", "f@ c #613F3F", "g@ c #DC5656", "h@ c #520000", "i@ c #896565", "j@ c #ADABAB", "k@ c #D2D2D2", "l@ c #CDCDCD", "m@ c #BABABA", "n@ c #A09F9F", "o@ c #918F8F", "p@ c #898888", "q@ c #7F7D7D", "r@ c #644040", "s@ c #E74F4F", "t@ c #FF5555", "u@ c #FF5353", "v@ c #FF5151", "w@ c #FE4E4E", "x@ c #C74141", "y@ c #523232", "z@ c #615D5D", "A@ c #4B3F3F", "B@ c #713939", "C@ c #F45757", "D@ c #8E5858", "E@ c #817676", "F@ c #C5C5C5", "G@ c #B6B6B6", "H@ c #A9A9A9", "I@ c #9E9E9E", "J@ c #898787", "K@ c #624343", "L@ c #CB4B4B", "M@ c #EC4F4F", "N@ c #FF5252", "O@ c #FF5050", "P@ c #E44747", "Q@ c #642C2C", "R@ c #443838", "S@ c #593939", "T@ c #D14B4B", "U@ c #FF5A5A", "V@ c #FF5959", "W@ c #770000", "X@ c #E36565", "Y@ c #836767", "Z@ c #AEACAC", "`@ c #DADADA", " # c #CFCFCF", ".# c #C2C2C2", "+# c #ABABAB", "@# c #605555", "## c #624242", "$# c #6F3838", "%# c #CD4747", "&# c #E14949", "*# c #C24141", "=# c #605C5C", "-# c #483D3D", ";# c #6D3535", "># c #EE5151", ",# c #905A5A", "'# c #837878", ")# c #BBBBBB", "!# c #AFAFAF", "~# c #999898", "{# c #848282", "]# c #574D4D", "^# c #5E3F3F", "/# c #5F3B3B", "(# c #573838", "_# c #493E3E", ":# c #625E5E", "<# c #5A3A3A", "[# c #D04A4A", "}# c #7B0000", "|# c #F66868", "1# c #C96262", "2# c #826A6A", "3# c #D4D4D4", "4# c #D5D5D5", "5# c #A7A7A7", "6# c #919090", "7# c #828080", "8# c #7E7C7C", "9# c #727070", "0# c #4D4141", "a# c #703838", "b# c #FC5151", "c# c #F25353", "d# c #E44D4D", "e# c #4D0000", "f# c #A66969", "g# c #715252", "h# c #756B6B", "i# c #790000", "j# c #7E0000", "k# c #0E0000", "l# c #584B4B", "m# c #605959", "n# c #989696", "o# c #D6D6D6", "p# c #D3D3D3", "q# c #BCBCBC", "r# c #B2B2B2", "s# c #615656", "t# c #7D4646", "u# c #F35B5B", "v# c #F45858", "w# c #E45252", "x# c #C24848", "y# c #663131", "z# c #563636", "A# c #493C3C", "B# c #484040", "C# c #757373", "D# c #878686", "E# c #949393", "F# c #ACACAC", "G# c #CCCCCC", "H# c #B9B9B9", "I# c #785D5D", "J# c #D56363", "K# c #DC5B5B", "L# c #763F3F", "M# c #623E3E", "N# c #593C3C", "O# c #4B4141", "P# c #6F6D6D", "Q# c #7B7A7A", "R# c #818080", "S# c #929292", "T# c #9D9D9D", "U# c #7B6A6A", "V# c #A36D6D", "W# c #734D4D", "X# c #594E4E", "Y# c #797676", "Z# c #817F7F", "`# c #8D8D8D", " $ c #939393", ".$ c #989898", "+$ c #A0A0A0", "@$ c #A8A8A8", "#$ c #B1B1B1", "$$ c #CECECE", "%$ c #BBBABA", "&$ c #ACAAAA", "*$ c #A1A0A0", "=$ c #A3A3A3", "-$ c #A2A2A2", ";$ c #A5A5A5", ">$ c #AAAAAA", ",$ c #BFBFBF", "'$ c #C7C7C7", ")$ c #C3C3C3", "!$ c #B0B0B0", "~$ c #AEAEAE", "{$ c #D9D9D9", "]$ c #A1A1A1", "^$ c #969696", "/$ c #8F8F8F", "($ c #8B8B8B", "_$ c #898989", ":$ c #8E8E8E", "<$ c #979797", "[$ c #9B9B9B", "}$ c #9F9F9F", "|$ c #292929", "1$ c #2F2F2F", "2$ c #2D2D2D", "3$ c #2B2B2B", "4$ c #272727", "5$ c #282828", "6$ c #2A2A2A", "7$ c #262626", "8$ c #242424", "9$ c #232323", " ", " ", " . . . . . + . . . . . . . . . . . . . + . . . . . . + . . . + . . . + . . . . . ", " . @ @ @ . + . . . . . . . . . . . . . + . # . # . . + . # . + . # . + . # . # . ", " . @ . @ . + . . . . . . . . . . . . . + . . # . . . + . . # + . . # + . . # . . ", " . @ @ @ . + . . . . . . . . . . . . . + . # . # . . + . # . + . # . + . # . # . ", " . . . . . + . . . . . . . . . . . . . + . . . . . . + . . . + . . . + . . . . . ", " @ @ @ . . $ . . % . . & . . % . . % . . % . . . . . . % . . . % . . . % . . . . ", " . . . . . . . . . . * = . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", " . - ; ; > , ' ' ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . ) ) ) ) ) ) . ) ) ) . ' ' , . ", " . ; > , ) ! ~ { { ] ] ] ] { { { { { { { { { { { . { { { { { { . { { { . { ~ ! . ", " . ; , ^ { { / ( _ : < [ : _ } ( / / / / / / / / . / / / / / / . / / / . / | 1 . ", " . > ) { | / 2 3 4 5 6 7 5 8 9 0 2 _ _ _ _ _ _ _ . _ _ _ _ _ _ . _ _ 2 . 2 _ } . ", " . , ! 1 a _ b c d e f g h i j k l 3 0 0 0 0 0 0 . 0 0 0 0 0 0 . 0 3 9 . l l 0 . ", " . ' ~ | 2 0 m n o p q r s t u m b 3 0 2 2 2 2 2 . 2 2 2 2 2 2 . 2 0 9 . k k l . ", " . ' { ( 0 9 v w x y z A B C D j l 2 E a } } } } . } } } } } } . a E 2 . b k l . ", " . ) { ( 3 l F G H I A J K L M n k E / N 1 1 ] ] . ] ] ] ] ] ] . 1 | ( . 3 l l . ", " . ) { } 9 l O P Q R S T U V W X Y 2 N { ! ^ ^ ^ . ^ ^ ^ ^ ^ ^ . ! ~ 1 . _ 3 9 . ", " . ) ] } l Z ` .Q ..+.@.#.$.%.&.*.=.} { ^ ' ' , . , , , , , , . ' ^ ~ . E 0 3 . ", " . ) ] a k -.;.>.>.,.'.).!.~.{.].^./.< N ! ' , > . ; ; ; ; ; ; . > ' ! . } 2 0 . ", " . ) ] E (._.:.<.[.}.|.1.2.3.<.4.].5.6.7.8.9.~ , . ; ; ; - - - . ; , ^ . } 2 0 . ", " . ) 1 2 j 0.a.b.c.d.e.f.g.h.i.<.j.k.l./.m.n.o.9.. , > > ; ; ; . > , ^ . } 2 0 . ", " . ^ N 0 p.q.r.s.t.u.v.w.x.y.z.z.A.B.C.D.E.F.G.H.. I.~ ! J.K.L.. > ' ^ . } 2 0 . ", " . ^ N 0 u M.N.O.P.Q.R.S.T.U.V.W.X.#.Y.Z.`. +.+++. @+#+$+%+&+*+. ^ ) ! . } 2 0 . ", " . ^ N 0 =+M.-+% ;+>+,+'+)+)+!+~+{+).]+S I r ^+^+/+7 q.(+_+:+<+. | ~ { . a 2 0 . ", " . ^ N 0 p.D [+}+O.|+1+2+3+4+5+6+7+8+9+0+a+b+].c+d+e+f+g+h+i+j+. -./ N . a 2 0 . ", " . ) 1 2 j u k+l+m+]+n+y.o+p+q+r+s+t+u+v+0+w+x+y+. z+A+B+C+q q . D+2 } . E 0 0 . ", " . ) ] E E+j F+G+H+I+J+K+3+L+M+N+O+P+)+U.Q+y.K+y.. R+S+T+{.U+V+. W+c 0 . 2 0 3 . ", " . ) ] a l E+M.X+Y+Z+`+ @.@+@@@#@$@%@&@&@&@4+*@=@. -@;@>@<.,@j.. '@)@(.. 3 3 3 . ", " . ) { } 3 l u M.!@~@{@]@^@/@(@_@:@<@[@}@<@|@1@2@. 3@4@5@6@7@z.8@9@0@a@. l l 3 . ", " . . . . . b@. . . . . . . . . . c@d@d@d@d@e@. . . f@g@Q+y.h.v+h@i@j@k@. E+b 9 . ", " . ) { ( 2 0 (.p.D l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@)+)+)+U.e@D@E@0@. j E+l . ", " . ) { / 2 2 k m u k@F@G@H@I@J@K@L@M@N@O@P@Q@R@z@S@T@U@U@V@U@4+W@X@Y@Z@. =+m b . ", " . ) { / _ _ b k m `@ #.#G@+#P.@###$#%#&#*#y@=#-#;#>#[@}@t@t@[@d@V.,#'#. D p.k . ", " . ) { / _ _ 9 9 l (.`@X+F@)#!#~#{#]#^#/#(#_#:#<#[#}@}@|@N@N@|@}#|#1#2#. 3#a@(.. ", " . ) { / _ _ 3 2 _ 0 k =+4#!@-+@ 5#6#>+7#8#9#0#a#%@V@<@u@b#c#d#e#f#g#h#. #D j . ", " . . . . . b@. . . . . . . . . . . . . . . . . d+i#j#W@e@e#k#. . l#m#n#. !@o#p.. ", " . ) { / _ E 2 a | 1 1 | a 9 p.p#G+q#r#H@P.s#t#u#v#w#x#y#z#A#B#C#D#E#F#. k+3#=+. ", " . ) { / _ E 2 } N ~ ! ! ] / 0 j o#G#.#H#O.I#J#K#L#M#N#O#P#Q#R#S#T#5#$ . !@3#=+. ", " . ) { / _ E 2 } 1 ! ' ' ) ~ | _ E+a@k@k+H+U#V#W#X#Y#Z#R#`# $.$+$@$#$)#. $$M.p.. ", " . . . . . b@. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4#`@j . ", " . ) { / _ E 2 } 1 ^ , > > > ' ^ { / 2 (.3#%$&$*$=$-$-$;$>$#$}+,$'$l@p#D u c E+. ", " . ) { / _ E 2 } 1 ! ' > > > , ' ^ { / 0 p.X+)$}+!$~$!$@ )#)$k+X+o#a@c m (.E+b . ", " . ) { / _ 3 0 E | { ^ ' , , , ' ) ! 1 E E+M.!@.#q#q#,$F@G#p#{$p.E+l 9 9 l b l . ", " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", " r#!#+#;$+$+ + I@]$;$5#H@H@>$>$H@H@@$;+-$+ ^$/$($_$($:$ $<$[$}$]$-$=$|$}$+ [$+ |$ ", " r#1$2$3$|$4$4$4$5$|$6$6$6$3$3$3$6$6$|$5$4$7$8$9$9$9$8$7$4$5$5$|$|$|$5$T#4$7$4$|$ ", " "}; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/xis.xpm�����������������������������������������������������������0000644�0001750�0001750�00000005030�12214432632�015101� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * image_name[] = { "48 48 2 1", " c None", ". c #FFFF00000000", " . . ", " ... ... ", " ..... ..... ", " ....... ....... ", " ......... ......... ", " ........... ........... ", " ............. ............. ", " ............... ............... ", "................. .................", " ................. ................. ", " ................. ................. ", " ................. ................. ", " ................. ................. ", " ................. ................. ", " ................. ................. ", " .................................. ", " ................................ ", " .............................. ", " ............................ ", " .......................... ", " ........................ ", " ...................... ", " .................... ", " .................. ", " .................. ", " .................... ", " ...................... ", " ........................ ", " .......................... ", " ............................ ", " .............................. ", " ................................ ", " .................................. ", " ................. ................. ", " ................. ................. ", " ................. ................. ", " ................. ................. ", " ................. ................. ", " ................. ................. ", "................. .................", " ............... ............... ", " ............. ............. ", " ........... ........... ", " ......... ......... ", " ....... ....... ", " ..... ..... ", " ... ... ", " . . "}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/xpm/whandling.xpm�����������������������������������������������������0000644�0001750�0001750�00000007173�12214432632�016263� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * whandling_xpm[] = { "48 48 77 1", " c None", ". c #2C2C2C", "+ c #FEFEFE", "@ c #505075", "# c #FFFFFF", "$ c #000000", "% c #707070", "& c #F8F8F8", "* c #6C6C6C", "= c #F3F3F3", "- c #6A6A6A", "; c #686868", "> c #090909", ", c #111111", "' c #727272", ") c #DADADA", "! c #CCCCCC", "~ c #CDCDCD", "{ c #C8C8C8", "] c #CACACA", "^ c #CECECE", "/ c #CBCBCB", "( c #C7C7C7", "_ c #C1C1C1", ": c #BFBFBF", "< c #C0C0C0", "[ c #C5C5C5", "} c #D0D0D0", "| c #717171", "1 c #181818", "2 c #F4F4F4", "3 c #F2F2F2", "4 c #F1F1F1", "5 c #F0F0F0", "6 c #EFEFEF", "7 c #EEEEEE", "8 c #EDEDED", "9 c #ECECEC", "0 c #EBEBEB", "a c #EAEAEA", "b c #E9E9E9", "c c #E7E7E7", "d c #E4E4E4", "e c #E3E3E3", "f c #E2E2E2", "g c #E1E1E1", "h c #191919", "i c #E8E8E8", "j c #E6E6E6", "k c #E5E5E5", "l c #1A1A1A", "m c #E0E0E0", "n c #171717", "o c #1B1B1B", "p c #DFDFDF", "q c #161616", "r c #FAFAFA", "s c #DEDEDE", "t c #DDDDDD", "u c #DCDCDC", "v c #DBDBDB", "w c #D8D8D8", "x c #141414", "y c #D9D9D9", "z c #D7D7D7", "A c #D5D5D5", "B c #131313", "C c #9E9E9E", "D c #9F9F9F", "E c #A0A0A0", "F c #060606", "G c #282828", "H c #C9C9C9", "I c #696969", "J c #2A2A2A", "K c #D1D1D1", "L c #0B0B0B", "...............................................+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@###@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@#####@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@#######@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@$###$$$@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@###$@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@###$@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@$$$$$%$$$$$$$$$$$$$$%$$$$$@@@@@@@@@@+", ".@@@@@@@@@@$++&$*$$$$$$$$$$$$$$*$+$+$@@@@@@@@@@+", ".@@@@@@@@@@$+$=$*$$$$$$$$$$$$$$*$$+$$@@@@@@@@@@+", ".@@@@@@@@@@$+++$-$$$$$$$$$$$$$$-$+$+$@@@@@@@@@@+", ".@@@@@@@@@@$$$$$;>,,,,,,,,,,,,>;$$$$$@@@@@@@@@@+", ".@@@@@@@@@@')!~{]]^^!!///]]{{(_:<[[}|@@@@@@@@@@+", ".@@@@@@@@@@12=33455678990aabcddedffg1@@@@@@@@@@+", ".@@@@#@@@@@h=456456689aicccjkddeefgg1@@@@#@@@@@+", ".@@@##$@@@@l=556556780biiiicjkdeffgmn@@@@##@@@@+", ".@@######@@o3566566790abcccjkkdeegmmn@######@@@+", ".@#######$@h366766779000abicjkkdffmpq@#######@@+", ".@@###+##$@o367767789990bcccjdeffmmpn@######$$@+", ".@@@##$$$$@o467867880aaabccjkefggmppn@@$$#r$$@@+", ".@@@@#$@@@@o477877890abbijkdeeefmppsn@@@@#$$@@@+", ".@@@@@$@@@@o578878890abbbijkeefggmssn@@@@@$@@@@+", ".@@@@@@@@@@l66788900bbiiijkdegmmpsttq@@@@@@@@@@+", ".@@@@@@@@@@l6778990abiccjkddeggggttuq@@@@@@@@@@+", ".@@@@@@@@@@l8789900abijkkdddemmpssuvq@@@@@@@@@@+", ".@@@@@@@@@@h098900abiijkkkdddgmpstvwq@@@@@@@@@@+", ".@@@@@@@@@@xjiba0abbccjkkddddfptvyzAx@@@@@@@@@@+", ".@@@@@@@@@@B/CDE**DDDDDDDDDDDD**DDD;F@@@@@@@@@@+", ".@@@@@@@@@@GH;I-JKD***********J}DI;GL@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@###@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@###$@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@###$@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@#######@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@#####$$@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@###$$@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@#$$@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+", "++++++++++++++++++++++++++++++++++++++++++++++++"}; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/Menu.c����������������������������������������������������������������0000644�0001750�0001750�00000127256�12214432632�014033� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Menu.c- menu definition * * WPrefs - Window Maker Preferences Program * * Copyright (c) 2000-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" #include <assert.h> #include <ctype.h> #include <X11/keysym.h> #include <X11/cursorfont.h> #include "editmenu.h" typedef enum { NoInfo, ExecInfo, CommandInfo, ExternalInfo, PipeInfo, PLPipeInfo, DirectoryInfo, WSMenuInfo, WWindowListInfo, LastInfo } InfoType; #define MAX_SECTION_SIZE 4 #define PATH_LEN 256 typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMFont *boldFont; WMFont *normalFont; WMColor *white; WMColor *gray; WMColor *black; WMPixmap *markerPix[LastInfo]; WMPopUpButton *typeP; WMWidget *itemPad[3]; int currentPad; WEditMenu *menu; char *menuPath; WMFrame *optionsF; WMFrame *commandF; WMTextField *commandT; /* command to run */ WMButton *browseB; WMButton *xtermC; /* inside xterm? */ WMFrame *pathF; WMTextField *pathT; WMFrame *pipeF; WMTextField *pipeT; WMButton *pipeCacheB; WMFrame *plpipeF; WMTextField *plpipeT; WMButton *plpipeCacheB; WMFrame *dpathF; WMTextField *dpathT; WMFrame *dcommandF; WMTextField *dcommandT; WMButton *dstripB; WMFrame *shortF; WMTextField *shortT; WMButton *sgrabB; WMButton *sclearB; WMList *icommandL; WMFrame *paramF; WMTextField *paramT; WMButton *quickB; Bool dontAsk; /* whether to comfirm submenu remove */ Bool dontSave; Bool capturing; /* about the currently selected item */ WEditMenuItem *currentItem; InfoType currentType; WMWidget *sections[LastInfo][MAX_SECTION_SIZE]; } _Panel; typedef struct { InfoType type; union { struct { int command; char *parameter; char *shortcut; } command; struct { char *command; char *shortcut; } exec; struct { char *path; } external; struct { char *command; unsigned cached:1; } pipe; struct { char *directory; char *command; unsigned stripExt:1; } directory; } param; } ItemData; static char *commandNames[] = { "ARRANGE_ICONS", "HIDE_OTHERS", "SHOW_ALL", "EXIT", "SHUTDOWN", "RESTART", "RESTART", "SAVE_SESSION", "CLEAR_SESSION", "REFRESH", "INFO_PANEL", "LEGAL_PANEL" }; #define ICON_FILE "menus" static void showData(_Panel * panel); static void updateMenuItem(_Panel * panel, WEditMenuItem * item, WMWidget * changedWidget); static void menuItemSelected(struct WEditMenuDelegate *delegate, WEditMenu * menu, WEditMenuItem * item); static void menuItemDeselected(struct WEditMenuDelegate *delegate, WEditMenu * menu, WEditMenuItem * item); static void menuItemCloned(struct WEditMenuDelegate *delegate, WEditMenu * menu, WEditMenuItem * origItem, WEditMenuItem * newItem); static void menuItemEdited(struct WEditMenuDelegate *delegate, WEditMenu * menu, WEditMenuItem * item); static Bool shouldRemoveItem(struct WEditMenuDelegate *delegate, WEditMenu * menu, WEditMenuItem * item); static void freeItemData(ItemData * data); static WEditMenuDelegate menuDelegate = { NULL, menuItemCloned, menuItemEdited, menuItemSelected, menuItemDeselected, shouldRemoveItem }; static void dataChanged(void *self, WMNotification * notif) { _Panel *panel = (_Panel *) self; WEditMenuItem *item = panel->currentItem; WMWidget *w = (WMWidget *) WMGetNotificationObject(notif); updateMenuItem(panel, item, w); } static void buttonClicked(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; WEditMenuItem *item = panel->currentItem; updateMenuItem(panel, item, w); } static void icommandLClicked(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int cmd; cmd = WMGetListSelectedItemRow(w); if (cmd == 3 || cmd == 4) { WMMapWidget(panel->quickB); } else { WMUnmapWidget(panel->quickB); } if (cmd == 6) { WMMapWidget(panel->paramF); } else { WMUnmapWidget(panel->paramF); } } static void browseForFile(WMWidget * self, void *clientData) { _Panel *panel = (_Panel *) clientData; WMFilePanel *filePanel; char *text, *oldprog, *newprog; filePanel = WMGetOpenPanel(WMWidgetScreen(self)); text = WMGetTextFieldText(panel->commandT); oldprog = wtrimspace(text); wfree(text); if (oldprog[0] == 0 || oldprog[0] != '/') { wfree(oldprog); oldprog = wstrdup("/"); } else { char *ptr = oldprog; while (*ptr && !isspace(*ptr)) ptr++; *ptr = 0; } WMSetFilePanelCanChooseDirectories(filePanel, False); if (WMRunModalFilePanelForDirectory(filePanel, panel->parent, oldprog, _("Select Program"), NULL) == True) { newprog = WMGetFilePanelFileName(filePanel); WMSetTextFieldText(panel->commandT, newprog); updateMenuItem(panel, panel->currentItem, panel->commandT); wfree(newprog); } wfree(oldprog); } static void sgrabClicked(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; Display *dpy = WMScreenDisplay(WMWidgetScreen(panel->parent)); char *shortcut; if (w == panel->sclearB) { WMSetTextFieldText(panel->shortT, ""); updateMenuItem(panel, panel->currentItem, panel->shortT); return; } if (!panel->capturing) { panel->capturing = 1; WMSetButtonText(w, _("Cancel")); XGrabKeyboard(dpy, WMWidgetXID(panel->parent), True, GrabModeAsync, GrabModeAsync, CurrentTime); shortcut = capture_shortcut(dpy, &panel->capturing, 0); if (shortcut) { WMSetTextFieldText(panel->shortT, shortcut); updateMenuItem(panel, panel->currentItem, panel->shortT); wfree(shortcut); } } panel->capturing = 0; WMSetButtonText(w, _("Capture")); XUngrabKeyboard(dpy, CurrentTime); } static void changedItemPad(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int padn = WMGetPopUpButtonSelectedItem(w); WMUnmapWidget(panel->itemPad[panel->currentPad]); WMMapWidget(panel->itemPad[padn]); panel->currentPad = padn; } static WEditMenu *putNewSubmenu(WEditMenu * menu, const char *title) { WEditMenu *tmp; WEditMenuItem *item; item = WAddMenuItemWithTitle(menu, title); tmp = WCreateEditMenu(WMWidgetScreen(menu), title); WSetEditMenuAcceptsDrop(tmp, True); WSetEditMenuDelegate(tmp, &menuDelegate); WSetEditMenuSubmenu(menu, item, tmp); return tmp; } static ItemData *putNewItem(_Panel * panel, WEditMenu * menu, int type, const char *title) { WEditMenuItem *item; ItemData *data; item = WAddMenuItemWithTitle(menu, title); data = wmalloc(sizeof(ItemData)); data->type = type; WSetEditMenuItemData(item, data, (WMCallback *) freeItemData); WSetEditMenuItemImage(item, panel->markerPix[type]); return data; } static WEditMenu *makeFactoryMenu(WMWidget * parent, int width) { WEditMenu *pad; pad = WCreateEditMenuPad(parent); WMResizeWidget(pad, width, 10); WSetEditMenuMinSize(pad, wmksize(width, 0)); WSetEditMenuMaxSize(pad, wmksize(width, 0)); WSetEditMenuSelectable(pad, False); WSetEditMenuEditable(pad, False); WSetEditMenuIsFactory(pad, True); WSetEditMenuDelegate(pad, &menuDelegate); return pad; } static void createPanel(_Panel * p) { _Panel *panel = (_Panel *) p; WMScreen *scr = WMWidgetScreen(panel->parent); WMColor *black = WMBlackColor(scr); WMColor *white = WMWhiteColor(scr); WMColor *gray = WMGrayColor(scr); WMFont *bold = WMBoldSystemFontOfSize(scr, 12); WMFont *font = WMSystemFontOfSize(scr, 12); WMLabel *label; int width; menuDelegate.data = panel; panel->boldFont = bold; panel->normalFont = font; panel->black = black; panel->white = white; panel->gray = gray; { Pixmap pix; Display *dpy = WMScreenDisplay(scr); GC gc; WMPixmap *pixm; pixm = WMCreatePixmap(scr, 7, 7, WMScreenDepth(scr), True); pix = WMGetPixmapXID(pixm); XDrawLine(dpy, pix, WMColorGC(black), 0, 3, 6, 3); XDrawLine(dpy, pix, WMColorGC(black), 3, 0, 3, 6); /* XDrawLine(dpy, pix, WMColorGC(black), 1, 0, 3, 3); XDrawLine(dpy, pix, WMColorGC(black), 1, 6, 3, 3); XDrawLine(dpy, pix, WMColorGC(black), 0, 0, 0, 6); */ pix = WMGetPixmapMaskXID(pixm); gc = XCreateGC(dpy, pix, 0, NULL); XSetForeground(dpy, gc, 0); XFillRectangle(dpy, pix, gc, 0, 0, 7, 7); XSetForeground(dpy, gc, 1); XDrawLine(dpy, pix, gc, 0, 3, 6, 3); XDrawLine(dpy, pix, gc, 3, 0, 3, 6); panel->markerPix[ExternalInfo] = pixm; panel->markerPix[PipeInfo] = pixm; panel->markerPix[PLPipeInfo] = pixm; panel->markerPix[DirectoryInfo] = pixm; panel->markerPix[WSMenuInfo] = pixm; panel->markerPix[WWindowListInfo] = pixm; XFreeGC(dpy, gc); } panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); panel->typeP = WMCreatePopUpButton(panel->box); WMResizeWidget(panel->typeP, 150, 20); WMMoveWidget(panel->typeP, 10, 10); WMAddPopUpButtonItem(panel->typeP, _("New Items")); WMAddPopUpButtonItem(panel->typeP, _("Sample Commands")); WMAddPopUpButtonItem(panel->typeP, _("Sample Submenus")); WMSetPopUpButtonAction(panel->typeP, changedItemPad, panel); WMSetPopUpButtonSelectedItem(panel->typeP, 0); { WEditMenu *pad; pad = makeFactoryMenu(panel->box, 150); WMMoveWidget(pad, 10, 40); putNewItem(panel, pad, ExecInfo, _("Run Program")); putNewItem(panel, pad, CommandInfo, _("Internal Command")); putNewSubmenu(pad, _("Submenu")); putNewItem(panel, pad, ExternalInfo, _("External Submenu")); putNewItem(panel, pad, PipeInfo, _("Generated Submenu")); putNewItem(panel, pad, PLPipeInfo, _("Generated PL Menu")); putNewItem(panel, pad, DirectoryInfo, _("Directory Contents")); putNewItem(panel, pad, WSMenuInfo, _("Workspace Menu")); putNewItem(panel, pad, WWindowListInfo, _("Window List Menu")); panel->itemPad[0] = pad; } { WEditMenu *pad; ItemData *data; WMScrollView *sview; sview = WMCreateScrollView(panel->box); WMResizeWidget(sview, 150, 180); WMMoveWidget(sview, 10, 40); WMSetScrollViewHasVerticalScroller(sview, True); pad = makeFactoryMenu(panel->box, 130); WMSetScrollViewContentView(sview, WMWidgetView(pad)); data = putNewItem(panel, pad, ExecInfo, _("XTerm")); data->param.exec.command = "xterm -sb -sl 2000 -bg black -fg white"; data = putNewItem(panel, pad, ExecInfo, _("rxvt")); data->param.exec.command = "rxvt"; data = putNewItem(panel, pad, ExecInfo, _("ETerm")); data->param.exec.command = "eterm"; data = putNewItem(panel, pad, ExecInfo, _("Run...")); data->param.exec.command = _("%A(Run,Type command to run)"); data = putNewItem(panel, pad, ExecInfo, _("Firefox")); data->param.exec.command = "firefox"; data = putNewItem(panel, pad, ExecInfo, _("gimp")); data->param.exec.command = "gimp"; data = putNewItem(panel, pad, ExecInfo, _("epic")); data->param.exec.command = "xterm -e epic"; data = putNewItem(panel, pad, ExecInfo, _("ee")); data->param.exec.command = "ee"; data = putNewItem(panel, pad, ExecInfo, _("xv")); data->param.exec.command = "xv"; data = putNewItem(panel, pad, ExecInfo, _("Evince")); data->param.exec.command = "evince"; data = putNewItem(panel, pad, ExecInfo, _("ghostview")); data->param.exec.command = "gv"; data = putNewItem(panel, pad, CommandInfo, _("Exit Window Maker")); data->param.command.command = 3; WMMapWidget(pad); panel->itemPad[1] = sview; } { WEditMenu *pad, *smenu; ItemData *data; WMScrollView *sview; sview = WMCreateScrollView(panel->box); WMResizeWidget(sview, 150, 180); WMMoveWidget(sview, 10, 40); WMSetScrollViewHasVerticalScroller(sview, True); pad = makeFactoryMenu(panel->box, 130); WMSetScrollViewContentView(sview, WMWidgetView(pad)); data = putNewItem(panel, pad, ExternalInfo, _("Debian Menu")); data->param.pipe.command = "/etc/X11/WindowMaker/menu.hook"; data = putNewItem(panel, pad, PipeInfo, _("RedHat Menu")); data->param.pipe.command = "wmconfig --output wmaker"; data = putNewItem(panel, pad, PipeInfo, _("Menu Conectiva")); data->param.pipe.command = "wmconfig --output wmaker"; data = putNewItem(panel, pad, DirectoryInfo, _("Themes")); data->param.directory.command = "setstyle"; data->param.directory.directory = "/usr/share/WindowMaker/Themes /usr/local/share/WindowMaker/Themes $HOME/GNUstep/Library/WindowMaker/Themes"; data->param.directory.stripExt = 1; data = putNewItem(panel, pad, DirectoryInfo, _("Bg Images (scale)")); data->param.directory.command = "wmsetbg -u -s"; data->param.directory.directory = "/opt/kde2/share/wallpapers /usr/share/WindowMaker/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds"; data->param.directory.stripExt = 1; data = putNewItem(panel, pad, DirectoryInfo, _("Bg Images (tile)")); data->param.directory.command = "wmsetbg -u -t"; data->param.directory.directory = "/opt/kde2/share/wallpapers /usr/share/WindowMaker/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds"; data->param.directory.stripExt = 1; smenu = putNewSubmenu(pad, _("Assorted XTerms")); data = putNewItem(panel, smenu, ExecInfo, _("XTerm Yellow on Blue")); data->param.exec.command = "xterm -sb -sl 2000 -bg midnightblue -fg yellow"; data = putNewItem(panel, smenu, ExecInfo, _("XTerm White on Black")); data->param.exec.command = "xterm -sb -sl 2000 -bg black -fg white"; data = putNewItem(panel, smenu, ExecInfo, _("XTerm Black on White")); data->param.exec.command = "xterm -sb -sl 2000 -bg white -fg black"; data = putNewItem(panel, smenu, ExecInfo, _("XTerm Black on Beige")); data->param.exec.command = "xterm -sb -sl 2000 -bg '#bbbb99' -fg black"; data = putNewItem(panel, smenu, ExecInfo, _("XTerm White on Green")); data->param.exec.command = "xterm -sb -sl 2000 -bg '#228822' -fg white"; data = putNewItem(panel, smenu, ExecInfo, _("XTerm White on Olive")); data->param.exec.command = "xterm -sb -sl 2000 -bg '#335533' -fg white"; data = putNewItem(panel, smenu, ExecInfo, _("XTerm Blue on Blue")); data->param.exec.command = "xterm -sb -sl 2000 -bg '#112244' -fg '#88aabb'"; data = putNewItem(panel, smenu, ExecInfo, _("XTerm BIG FONTS")); data->param.exec.command = "xterm -sb -sl 2000 -bg black -fg white -fn 10x20"; WMMapWidget(pad); panel->itemPad[2] = sview; } width = FRAME_WIDTH - 20 - 150 - 10 - 2; panel->optionsF = WMCreateFrame(panel->box); WMResizeWidget(panel->optionsF, width, FRAME_HEIGHT - 15); WMMoveWidget(panel->optionsF, 10 + 150 + 10, 5); width -= 20; /* command */ panel->commandF = WMCreateFrame(panel->optionsF); WMResizeWidget(panel->commandF, width, 50); WMMoveWidget(panel->commandF, 10, 20); WMSetFrameTitle(panel->commandF, _("Program to Run")); WMSetFrameTitlePosition(panel->commandF, WTPAtTop); panel->commandT = WMCreateTextField(panel->commandF); WMResizeWidget(panel->commandT, width - 95, 20); WMMoveWidget(panel->commandT, 10, 20); panel->browseB = WMCreateCommandButton(panel->commandF); WMResizeWidget(panel->browseB, 70, 24); WMMoveWidget(panel->browseB, width - 80, 18); WMSetButtonText(panel->browseB, _("Browse")); WMSetButtonAction(panel->browseB, browseForFile, panel); WMAddNotificationObserver(dataChanged, panel, WMTextDidChangeNotification, panel->commandT); #if 0 panel->xtermC = WMCreateSwitchButton(panel->commandF); WMResizeWidget(panel->xtermC, width - 20, 20); WMMoveWidget(panel->xtermC, 10, 50); WMSetButtonText(panel->xtermC, _("Run the program inside a Xterm")); #endif WMMapSubwidgets(panel->commandF); /* path */ panel->pathF = WMCreateFrame(panel->optionsF); WMResizeWidget(panel->pathF, width, 150); WMMoveWidget(panel->pathF, 10, 40); WMSetFrameTitle(panel->pathF, _("Path for Menu")); panel->pathT = WMCreateTextField(panel->pathF); WMResizeWidget(panel->pathT, width - 20, 20); WMMoveWidget(panel->pathT, 10, 20); WMAddNotificationObserver(dataChanged, panel, WMTextDidChangeNotification, panel->pathT); label = WMCreateLabel(panel->pathF); WMResizeWidget(label, width - 20, 80); WMMoveWidget(label, 10, 50); WMSetLabelText(label, _("Enter the path for a file containing a menu\n" "or a list of directories with the programs you\n" "want to have listed in the menu. Ex:\n" "~/GNUstep/Library/WindowMaker/menu\n" "or\n" "/usr/bin ~/xbin")); WMMapSubwidgets(panel->pathF); /* pipe */ panel->pipeF = WMCreateFrame(panel->optionsF); WMResizeWidget(panel->pipeF, width, 155); WMMoveWidget(panel->pipeF, 10, 30); WMSetFrameTitle(panel->pipeF, _("Command")); panel->pipeT = WMCreateTextField(panel->pipeF); WMResizeWidget(panel->pipeT, width - 20, 20); WMMoveWidget(panel->pipeT, 10, 20); WMAddNotificationObserver(dataChanged, panel, WMTextDidChangeNotification, panel->pipeT); label = WMCreateLabel(panel->pipeF); WMResizeWidget(label, width - 20, 40); WMMoveWidget(label, 10, 50); WMSetLabelText(label, _("Enter a command that outputs a menu\n" "definition to stdout when invoked.")); panel->pipeCacheB = WMCreateSwitchButton(panel->pipeF); WMResizeWidget(panel->pipeCacheB, width - 20, 40); WMMoveWidget(panel->pipeCacheB, 10, 110); WMSetButtonText(panel->pipeCacheB, _("Cache menu contents after opening for\n" "the first time")); WMMapSubwidgets(panel->pipeF); /* proplist pipe */ panel->plpipeF = WMCreateFrame(panel->optionsF); WMResizeWidget(panel->plpipeF, width, 155); WMMoveWidget(panel->plpipeF, 10, 30); WMSetFrameTitle(panel->plpipeF, _("Command")); panel->plpipeT = WMCreateTextField(panel->plpipeF); WMResizeWidget(panel->plpipeT, width - 20, 20); WMMoveWidget(panel->plpipeT, 10, 20); WMAddNotificationObserver(dataChanged, panel, WMTextDidChangeNotification, panel->plpipeT); label = WMCreateLabel(panel->plpipeF); WMResizeWidget(label, width - 20, 40); WMMoveWidget(label, 10, 50); WMSetLabelText(label, _("Enter a command that outputs a proplist menu\n" "definition to stdout when invoked.")); panel->plpipeCacheB = WMCreateSwitchButton(panel->plpipeF); WMResizeWidget(panel->plpipeCacheB, width - 20, 40); WMMoveWidget(panel->plpipeCacheB, 10, 110); WMSetButtonText(panel->plpipeCacheB, _("Cache menu contents after opening for\n" "the first time")); WMMapSubwidgets(panel->plpipeF); /* directory menu */ panel->dcommandF = WMCreateFrame(panel->optionsF); WMResizeWidget(panel->dcommandF, width, 90); WMMoveWidget(panel->dcommandF, 10, 25); WMSetFrameTitle(panel->dcommandF, _("Command to Open Files")); panel->dcommandT = WMCreateTextField(panel->dcommandF); WMResizeWidget(panel->dcommandT, width - 20, 20); WMMoveWidget(panel->dcommandT, 10, 20); WMAddNotificationObserver(dataChanged, panel, WMTextDidChangeNotification, panel->dcommandT); label = WMCreateLabel(panel->dcommandF); WMResizeWidget(label, width - 20, 45); WMMoveWidget(label, 10, 40); WMSetLabelText(label, _("Enter the command you want to use to open the\n" "files in the directories listed below.")); WMMapSubwidgets(panel->dcommandF); panel->dpathF = WMCreateFrame(panel->optionsF); WMResizeWidget(panel->dpathF, width, 80); WMMoveWidget(panel->dpathF, 10, 125); WMSetFrameTitle(panel->dpathF, _("Directories with Files")); panel->dpathT = WMCreateTextField(panel->dpathF); WMResizeWidget(panel->dpathT, width - 20, 20); WMMoveWidget(panel->dpathT, 10, 20); WMAddNotificationObserver(dataChanged, panel, WMTextDidChangeNotification, panel->dpathT); panel->dstripB = WMCreateSwitchButton(panel->dpathF); WMResizeWidget(panel->dstripB, width - 20, 20); WMMoveWidget(panel->dstripB, 10, 50); WMSetButtonText(panel->dstripB, _("Strip extensions from file names")); WMSetButtonAction(panel->dstripB, buttonClicked, panel); WMMapSubwidgets(panel->dpathF); /* shortcut */ panel->shortF = WMCreateFrame(panel->optionsF); WMResizeWidget(panel->shortF, width, 50); WMMoveWidget(panel->shortF, 10, 160); WMSetFrameTitle(panel->shortF, _("Keyboard Shortcut")); panel->shortT = WMCreateTextField(panel->shortF); WMResizeWidget(panel->shortT, width - 20 - 150, 20); WMMoveWidget(panel->shortT, 10, 20); WMAddNotificationObserver(dataChanged, panel, WMTextDidChangeNotification, panel->shortT); panel->sgrabB = WMCreateCommandButton(panel->shortF); WMResizeWidget(panel->sgrabB, 70, 24); WMMoveWidget(panel->sgrabB, width - 80, 18); WMSetButtonText(panel->sgrabB, _("Capture")); WMSetButtonAction(panel->sgrabB, sgrabClicked, panel); panel->sclearB = WMCreateCommandButton(panel->shortF); WMResizeWidget(panel->sclearB, 70, 24); WMMoveWidget(panel->sclearB, width - 155, 18); WMSetButtonText(panel->sclearB, _("Clear")); WMSetButtonAction(panel->sclearB, sgrabClicked, panel); WMMapSubwidgets(panel->shortF); /* internal command */ panel->icommandL = WMCreateList(panel->optionsF); WMResizeWidget(panel->icommandL, width, 80); WMMoveWidget(panel->icommandL, 10, 20); WMSetListAction(panel->icommandL, icommandLClicked, panel); WMAddNotificationObserver(dataChanged, panel, WMListSelectionDidChangeNotification, panel->icommandL); WMInsertListItem(panel->icommandL, 0, _("Arrange Icons")); WMInsertListItem(panel->icommandL, 1, _("Hide All Windows Except For The Focused One")); WMInsertListItem(panel->icommandL, 2, _("Show All Windows")); WMInsertListItem(panel->icommandL, 3, _("Exit Window Maker")); WMInsertListItem(panel->icommandL, 4, _("Exit X Session")); WMInsertListItem(panel->icommandL, 5, _("Restart Window Maker")); WMInsertListItem(panel->icommandL, 6, _("Start Another Window Manager : (")); WMInsertListItem(panel->icommandL, 7, _("Save Current Session")); WMInsertListItem(panel->icommandL, 8, _("Clear Saved Session")); WMInsertListItem(panel->icommandL, 9, _("Refresh Screen")); WMInsertListItem(panel->icommandL, 10, _("Open Info Panel")); WMInsertListItem(panel->icommandL, 11, _("Open Copyright Panel")); panel->paramF = WMCreateFrame(panel->optionsF); WMResizeWidget(panel->paramF, width, 50); WMMoveWidget(panel->paramF, 10, 105); WMSetFrameTitle(panel->paramF, _("Window Manager to Start")); panel->paramT = WMCreateTextField(panel->paramF); WMResizeWidget(panel->paramT, width - 20, 20); WMMoveWidget(panel->paramT, 10, 20); WMAddNotificationObserver(dataChanged, panel, WMTextDidChangeNotification, panel->paramT); WMMapSubwidgets(panel->paramF); panel->quickB = WMCreateSwitchButton(panel->optionsF); WMResizeWidget(panel->quickB, width, 20); WMMoveWidget(panel->quickB, 10, 120); WMSetButtonText(panel->quickB, _("Do not confirm action.")); WMSetButtonAction(panel->quickB, buttonClicked, panel); label = WMCreateLabel(panel->optionsF); WMResizeWidget(label, width + 5, FRAME_HEIGHT - 50); WMMoveWidget(label, 7, 20); WMSetLabelText(label, _("Instructions:\n\n" " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information")); WMMapWidget(label); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); WMMapWidget(panel->box); { int i; for (i = 0; i < 3; i++) WMUnmapWidget(panel->itemPad[i]); } changedItemPad(panel->typeP, panel); panel->sections[NoInfo][0] = label; panel->sections[ExecInfo][0] = panel->commandF; panel->sections[ExecInfo][1] = panel->shortF; panel->sections[CommandInfo][0] = panel->icommandL; panel->sections[CommandInfo][1] = panel->shortF; panel->sections[ExternalInfo][0] = panel->pathF; panel->sections[PipeInfo][0] = panel->pipeF; panel->sections[PLPipeInfo][0] = panel->plpipeF; panel->sections[DirectoryInfo][0] = panel->dpathF; panel->sections[DirectoryInfo][1] = panel->dcommandF; panel->currentType = NoInfo; showData(panel); { WMPoint pos; pos = WMGetViewScreenPosition(WMWidgetView(panel->box)); if (pos.x < 200) { pos.x += FRAME_WIDTH + 20; } else { pos.x = 10; } pos.y = WMAX(pos.y - 100, 0); if (panel->menu) WEditMenuShowAt(panel->menu, pos.x, pos.y); } } static void freeItemData(ItemData * data) { #define CFREE(d) if (d) wfree(d) /* TODO */ switch (data->type) { case CommandInfo: CFREE(data->param.command.parameter); CFREE(data->param.command.shortcut); break; case ExecInfo: CFREE(data->param.exec.command); CFREE(data->param.exec.shortcut); break; case PipeInfo: CFREE(data->param.pipe.command); break; case PLPipeInfo: CFREE(data->param.pipe.command); break; case ExternalInfo: CFREE(data->param.external.path); break; case DirectoryInfo: CFREE(data->param.directory.command); CFREE(data->param.directory.directory); break; default: break; } wfree(data); #undef CFREE } static ItemData *parseCommand(WMPropList * item) { ItemData *data = wmalloc(sizeof(ItemData)); WMPropList *p; char *command = NULL; char *parameter = NULL; char *shortcut = NULL; int i = 1; p = WMGetFromPLArray(item, i++); command = WMGetFromPLString(p); if (strcmp(command, "SHORTCUT") == 0) { p = WMGetFromPLArray(item, i++); shortcut = WMGetFromPLString(p); p = WMGetFromPLArray(item, i++); command = WMGetFromPLString(p); } p = WMGetFromPLArray(item, i++); if (p) parameter = WMGetFromPLString(p); if (strcmp(command, "EXEC") == 0 || strcmp(command, "SHEXEC") == 0) { data->type = ExecInfo; data->param.exec.command = wstrdup(parameter); if (shortcut) data->param.exec.shortcut = wstrdup(shortcut); } else if (strcmp(command, "OPEN_MENU") == 0) { char *p; /* * dir menu, menu file * dir WITH * |pipe */ p = parameter; while (isspace(*p) && *p) p++; if (*p == '|') { if (*(p + 1) == '|') { p++; data->param.pipe.cached = 0; } else { data->param.pipe.cached = 1; } data->type = PipeInfo; data->param.pipe.command = wtrimspace(p + 1); } else { char *s; p = wstrdup(p); s = strstr(p, "WITH"); if (s) { char **tokens; char **ctokens; int tokn; int i, j; data->type = DirectoryInfo; *s = '\0'; s += 5; while (*s && isspace(*s)) s++; data->param.directory.command = wstrdup(s); wtokensplit(p, &tokens, &tokn); wfree(p); ctokens = wmalloc(sizeof(char *) * tokn); for (i = 0, j = 0; i < tokn; i++) { if (strcmp(tokens[i], "-noext") == 0) { data->param.directory.stripExt = 1; } else { ctokens[j++] = tokens[i]; } } data->param.directory.directory = wtokenjoin(ctokens, j); wfree(ctokens); wtokenfree(tokens, tokn); } else { data->type = ExternalInfo; data->param.external.path = p; } } } else if (strcmp(command, "OPEN_PLMENU") == 0) { char *p; p = parameter; while (isspace(*p) && *p) p++; if (*p == '|') { if (*(p + 1) == '|') { p++; data->param.pipe.cached = 0; } else { data->param.pipe.cached = 1; } data->type = PLPipeInfo; data->param.pipe.command = wtrimspace(p + 1); } } else if (strcmp(command, "WORKSPACE_MENU") == 0) { data->type = WSMenuInfo; } else if (strcmp(command, "WINDOWS_MENU") == 0) { data->type = WWindowListInfo; } else { int cmd; if (strcmp(command, "ARRANGE_ICONS") == 0) { cmd = 0; } else if (strcmp(command, "HIDE_OTHERS") == 0) { cmd = 1; } else if (strcmp(command, "SHOW_ALL") == 0) { cmd = 2; } else if (strcmp(command, "EXIT") == 0) { cmd = 3; } else if (strcmp(command, "SHUTDOWN") == 0) { cmd = 4; } else if (strcmp(command, "RESTART") == 0) { if (parameter) { cmd = 6; } else { cmd = 5; } } else if (strcmp(command, "SAVE_SESSION") == 0) { cmd = 7; } else if (strcmp(command, "CLEAR_SESSION") == 0) { cmd = 8; } else if (strcmp(command, "REFRESH") == 0) { cmd = 9; } else if (strcmp(command, "INFO_PANEL") == 0) { cmd = 10; } else if (strcmp(command, "LEGAL_PANEL") == 0) { cmd = 11; } else { wwarning(_("unknown command '%s' in menu"), command); wfree(data); return NULL; } data->type = CommandInfo; data->param.command.command = cmd; if (shortcut) data->param.command.shortcut = wstrdup(shortcut); if (parameter) data->param.command.parameter = wstrdup(parameter); } return data; } static void updateFrameTitle(_Panel * panel, const char *title, InfoType type) { if (type != NoInfo) { char *tmp; switch (type) { case ExecInfo: tmp = wstrconcat(title, _(": Execute Program")); break; case CommandInfo: tmp = wstrconcat(title, _(": Perform Internal Command")); break; case ExternalInfo: tmp = wstrconcat(title, _(": Open a Submenu")); break; case PipeInfo: tmp = wstrconcat(title, _(": Program Generated Submenu")); break; case PLPipeInfo: tmp = wstrconcat(title, _(": Program Generated Proplist Submenu")); break; case DirectoryInfo: tmp = wstrconcat(title, _(": Directory Contents Menu")); break; case WSMenuInfo: tmp = wstrconcat(title, _(": Open Workspaces Submenu")); break; case WWindowListInfo: tmp = wstrconcat(title, _(": Open Window List Submenu")); break; default: tmp = NULL; break; } WMSetFrameTitle(panel->optionsF, tmp); wfree(tmp); } else { WMSetFrameTitle(panel->optionsF, NULL); } } static void changeInfoType(_Panel * panel, const char *title, InfoType type) { WMWidget **w; if (panel->currentType != type) { w = panel->sections[panel->currentType]; while (*w) { WMUnmapWidget(*w); w++; } WMUnmapWidget(panel->paramF); WMUnmapWidget(panel->quickB); w = panel->sections[type]; while (*w) { WMMapWidget(*w); w++; } } updateFrameTitle(panel, title, type); panel->currentType = type; } static void updateMenuItem(_Panel * panel, WEditMenuItem * item, WMWidget * changedWidget) { ItemData *data = WGetEditMenuItemData(item); assert(data != NULL); #define REPLACE(v, d) if (v) wfree(v); v = d switch (data->type) { case ExecInfo: if (changedWidget == panel->commandT) { REPLACE(data->param.exec.command, WMGetTextFieldText(panel->commandT)); } if (changedWidget == panel->shortT) { REPLACE(data->param.exec.shortcut, WMGetTextFieldText(panel->shortT)); } break; case CommandInfo: if (changedWidget == panel->icommandL) { data->param.command.command = WMGetListSelectedItemRow(panel->icommandL); } switch (data->param.command.command) { case 3: case 4: if (changedWidget == panel->quickB) { REPLACE(data->param.command.parameter, WMGetButtonSelected(panel->quickB) ? wstrdup("QUICK") : NULL); } break; case 6: if (changedWidget == panel->paramT) { REPLACE(data->param.command.parameter, WMGetTextFieldText(panel->paramT)); } break; } if (changedWidget == panel->shortT) { REPLACE(data->param.command.shortcut, WMGetTextFieldText(panel->shortT)); } break; case PipeInfo: if (changedWidget == panel->pipeT) { REPLACE(data->param.pipe.command, WMGetTextFieldText(panel->pipeT)); } if (changedWidget == panel->pipeCacheB) { data->param.pipe.cached = WMGetButtonSelected(panel->pipeCacheB); } break; case PLPipeInfo: if (changedWidget == panel->plpipeT) { REPLACE(data->param.pipe.command, WMGetTextFieldText(panel->plpipeT)); } if (changedWidget == panel->plpipeCacheB) { data->param.pipe.cached = WMGetButtonSelected(panel->plpipeCacheB); } break; case ExternalInfo: if (changedWidget == panel->pathT) { REPLACE(data->param.external.path, WMGetTextFieldText(panel->pathT)); } break; case DirectoryInfo: if (changedWidget == panel->dpathT) { REPLACE(data->param.directory.directory, WMGetTextFieldText(panel->dpathT)); } if (changedWidget == panel->dcommandT) { REPLACE(data->param.directory.command, WMGetTextFieldText(panel->dcommandT)); } if (changedWidget == panel->dstripB) { data->param.directory.stripExt = WMGetButtonSelected(panel->dstripB); } break; default: assert(0); break; } #undef REPLACE } static void menuItemCloned(WEditMenuDelegate * delegate, WEditMenu * menu, WEditMenuItem * origItem, WEditMenuItem * newItem) { ItemData *data = WGetEditMenuItemData(origItem); ItemData *newData; if (!data) return; #define DUP(s) (s) ? wstrdup(s) : NULL newData = wmalloc(sizeof(ItemData)); newData->type = data->type; switch (data->type) { case ExecInfo: newData->param.exec.command = DUP(data->param.exec.command); newData->param.exec.shortcut = DUP(data->param.exec.shortcut); break; case CommandInfo: newData->param.command.command = data->param.command.command; newData->param.command.parameter = DUP(data->param.command.parameter); newData->param.command.shortcut = DUP(data->param.command.shortcut); break; case PipeInfo: newData->param.pipe.command = DUP(data->param.pipe.command); newData->param.pipe.cached = data->param.pipe.cached; break; case PLPipeInfo: newData->param.pipe.command = DUP(data->param.pipe.command); newData->param.pipe.cached = data->param.pipe.cached; break; case ExternalInfo: newData->param.external.path = DUP(data->param.external.path); break; case DirectoryInfo: newData->param.directory.directory = DUP(data->param.directory.directory); newData->param.directory.command = DUP(data->param.directory.command); newData->param.directory.stripExt = data->param.directory.stripExt; break; default: break; } #undef DUP WSetEditMenuItemData(newItem, newData, (WMCallback *) freeItemData); } static void menuItemEdited(struct WEditMenuDelegate *delegate, WEditMenu * menu, WEditMenuItem * item) { _Panel *panel = (_Panel *) delegate->data; WEditMenu *submenu; updateFrameTitle(panel, WGetEditMenuItemTitle(item), panel->currentType); submenu = WGetEditMenuSubmenu(menu, item); if (submenu) { WSetEditMenuTitle(submenu, WGetEditMenuItemTitle(item)); } } static Bool shouldRemoveItem(struct WEditMenuDelegate *delegate, WEditMenu * menu, WEditMenuItem * item) { _Panel *panel = (_Panel *) delegate->data; if (panel->dontAsk) return True; if (WGetEditMenuSubmenu(menu, item)) { int res; res = WMRunAlertPanel(WMWidgetScreen(menu), NULL, _("Remove Submenu"), _("Removing this item will destroy all items inside\n" "the submenu. Do you really want to do that?"), _("Yes"), _("No"), _("Yes, don't ask again.")); switch (res) { case WAPRDefault: return True; case WAPRAlternate: return False; case WAPROther: panel->dontAsk = True; return True; } } return True; } static void menuItemDeselected(WEditMenuDelegate * delegate, WEditMenu * menu, WEditMenuItem * item) { _Panel *panel = (_Panel *) delegate->data; changeInfoType(panel, NULL, NoInfo); } static void menuItemSelected(WEditMenuDelegate * delegate, WEditMenu * menu, WEditMenuItem * item) { ItemData *data = WGetEditMenuItemData(item); _Panel *panel = (_Panel *) delegate->data; panel->currentItem = item; if (data) { changeInfoType(panel, WGetEditMenuItemTitle(item), data->type); switch (data->type) { case NoInfo: break; case ExecInfo: WMSetTextFieldText(panel->commandT, data->param.exec.command); WMSetTextFieldText(panel->shortT, data->param.exec.shortcut); break; case CommandInfo: WMSelectListItem(panel->icommandL, data->param.command.command); WMSetListPosition(panel->icommandL, data->param.command.command - 2); WMSetTextFieldText(panel->shortT, data->param.command.shortcut); switch (data->param.command.command) { case 3: case 4: WMSetButtonSelected(panel->quickB, data->param.command.parameter != NULL); break; case 6: WMSetTextFieldText(panel->paramT, data->param.command.parameter); break; } icommandLClicked(panel->icommandL, panel); break; case PipeInfo: WMSetTextFieldText(panel->pipeT, data->param.pipe.command); WMSetButtonSelected(panel->pipeCacheB, data->param.pipe.cached); break; case PLPipeInfo: WMSetTextFieldText(panel->plpipeT, data->param.pipe.command); WMSetButtonSelected(panel->plpipeCacheB, data->param.pipe.cached); break; case ExternalInfo: WMSetTextFieldText(panel->pathT, data->param.external.path); break; case DirectoryInfo: WMSetTextFieldText(panel->dpathT, data->param.directory.directory); WMSetTextFieldText(panel->dcommandT, data->param.directory.command); WMSetButtonSelected(panel->dstripB, data->param.directory.stripExt); break; case WSMenuInfo: break; default: break; } } } static WEditMenu *buildSubmenu(_Panel * panel, WMPropList * pl) { WMScreen *scr = WMWidgetScreen(panel->parent); WEditMenu *menu; WEditMenuItem *item; char *title; WMPropList *tp, *bp; int i; tp = WMGetFromPLArray(pl, 0); title = WMGetFromPLString(tp); menu = WCreateEditMenu(scr, title); for (i = 1; i < WMGetPropListItemCount(pl); i++) { WMPropList *pi; pi = WMGetFromPLArray(pl, i); tp = WMGetFromPLArray(pi, 0); bp = WMGetFromPLArray(pi, 1); title = WMGetFromPLString(tp); if (!bp || WMIsPLArray(bp)) { /* it's a submenu */ WEditMenu *submenu; submenu = buildSubmenu(panel, pi); item = WAddMenuItemWithTitle(menu, title); WSetEditMenuSubmenu(menu, item, submenu); } else { ItemData *data; data = parseCommand(pi); if (data != NULL) { item = WAddMenuItemWithTitle(menu, title); if (panel->markerPix[data->type]) WSetEditMenuItemImage(item, panel->markerPix[data->type]); WSetEditMenuItemData(item, data, (WMCallback *) freeItemData); } else { char *buf = wmalloc(1024); snprintf(buf, 1024, _("Invalid menu command \"%s\" with label \"%s\" cleared"), WMGetFromPLString(WMGetFromPLArray(pi, 1)), WMGetFromPLString(WMGetFromPLArray(pi, 0))); WMRunAlertPanel(scr, panel->parent, _("Warning"), buf, _("OK"), NULL, NULL); wfree(buf); } } } WSetEditMenuAcceptsDrop(menu, True); WSetEditMenuDelegate(menu, &menuDelegate); WMRealizeWidget(menu); return menu; } static void buildMenuFromPL(_Panel * panel, WMPropList * pl) { panel->menu = buildSubmenu(panel, pl); } static WMPropList *getDefaultMenu(_Panel * panel) { WMPropList *menu; static const char menuPath[] = WMAKER_RESOURCE_PATH "/plmenu"; menu = WMReadPropListFromFile(menuPath); if (!menu) { char *buffer, *msg; msg = _("Could not open default menu from '%s'"); buffer = wmalloc(strlen(msg) + strlen(menuPath) + 10); sprintf(buffer, msg, menuPath); WMRunAlertPanel(WMWidgetScreen(panel->parent), panel->parent, _("Error"), buffer, _("OK"), NULL, NULL); wfree(buffer); } return menu; } static void showData(_Panel * panel) { const char *gspath; char *menuPath; WMPropList *pmenu; gspath = wusergnusteppath(); menuPath = wmalloc(strlen(gspath) + 32); strcpy(menuPath, gspath); strcat(menuPath, "/Defaults/WMRootMenu"); pmenu = WMReadPropListFromFile(menuPath); if (!pmenu || !WMIsPLArray(pmenu)) { int res; res = WMRunAlertPanel(WMWidgetScreen(panel->parent), panel->parent, _("Warning"), _("The menu file format currently in use is not supported\n" "by this tool. Do you want to discard the current menu\n" "to use this tool?"), _("Yes, Discard and Update"), _("No, Keep Current Menu"), NULL); if (res == WAPRDefault) { pmenu = getDefaultMenu(panel); if (!pmenu) { pmenu = WMCreatePLArray(WMCreatePLString("Applications"), NULL); } } else { panel->dontSave = True; return; } } panel->menuPath = menuPath; buildMenuFromPL(panel, pmenu); WMReleasePropList(pmenu); } static Bool notblank(const char *s) { if (s) { while (*s++) { if (!isspace(*s)) return True; } } return False; } static WMPropList *processData(const char *title, ItemData * data) { WMPropList *item; char *s1; static WMPropList *pscut = NULL; static WMPropList *pomenu = NULL; static WMPropList *poplmenu = NULL; int i; if (data == NULL) return NULL; if (!pscut) { pscut = WMCreatePLString("SHORTCUT"); pomenu = WMCreatePLString("OPEN_MENU"); poplmenu = WMCreatePLString("OPEN_PLMENU"); } item = WMCreatePLArray(WMCreatePLString(title), NULL); switch (data->type) { case ExecInfo: if (data->param.exec.command == NULL) return NULL; #if 1 if (strpbrk(data->param.exec.command, "&$*|><?`=;")) { s1 = "SHEXEC"; } else { s1 = "EXEC"; } #else s1 = "SHEXEC"; #endif if (notblank(data->param.exec.shortcut)) { WMAddToPLArray(item, pscut); WMAddToPLArray(item, WMCreatePLString(data->param.exec.shortcut)); } WMAddToPLArray(item, WMCreatePLString(s1)); WMAddToPLArray(item, WMCreatePLString(data->param.exec.command)); break; case CommandInfo: if (notblank(data->param.command.shortcut)) { WMAddToPLArray(item, pscut); WMAddToPLArray(item, WMCreatePLString(data->param.command.shortcut)); } i = data->param.command.command; WMAddToPLArray(item, WMCreatePLString(commandNames[i])); switch (i) { case 3: case 4: if (data->param.command.parameter) { WMAddToPLArray(item, WMCreatePLString(data->param.command.parameter)); } break; case 6: /* restart */ if (data->param.command.parameter) { WMAddToPLArray(item, WMCreatePLString(data->param.command.parameter)); } break; } break; case PipeInfo: case PLPipeInfo: if (!data->param.pipe.command) return NULL; if (data->type == PLPipeInfo) WMAddToPLArray(item, poplmenu); else WMAddToPLArray(item, pomenu); if (data->param.pipe.cached) s1 = wstrconcat("| ", data->param.pipe.command); else s1 = wstrconcat("|| ", data->param.pipe.command); WMAddToPLArray(item, WMCreatePLString(s1)); wfree(s1); break; case ExternalInfo: if (!data->param.external.path) return NULL; WMAddToPLArray(item, pomenu); WMAddToPLArray(item, WMCreatePLString(data->param.external.path)); break; case DirectoryInfo: if (!data->param.directory.directory || !data->param.directory.command) return NULL; { int l; char *tmp; l = strlen(data->param.directory.directory); l += strlen(data->param.directory.command); l += 32; WMAddToPLArray(item, pomenu); tmp = wmalloc(l); sprintf(tmp, "%s%s WITH %s", data->param.directory.stripExt ? "-noext " : "", data->param.directory.directory, data->param.directory.command); WMAddToPLArray(item, WMCreatePLString(tmp)); wfree(tmp); } break; case WSMenuInfo: WMAddToPLArray(item, WMCreatePLString("WORKSPACE_MENU")); break; case WWindowListInfo: WMAddToPLArray(item, WMCreatePLString("WINDOWS_MENU")); break; default: assert(0); break; } return item; } static WMPropList *processSubmenu(WEditMenu * menu) { WEditMenuItem *item; WMPropList *pmenu; WMPropList *pl; char *s; int i; s = WGetEditMenuTitle(menu); pl = WMCreatePLString(s); pmenu = WMCreatePLArray(pl, NULL); i = 0; while ((item = WGetEditMenuItem(menu, i++))) { WEditMenu *submenu; s = WGetEditMenuItemTitle(item); submenu = WGetEditMenuSubmenu(menu, item); if (submenu) { pl = processSubmenu(submenu); } else { pl = processData(s, WGetEditMenuItemData(item)); } if (!pl) continue; WMAddToPLArray(pmenu, pl); } return pmenu; } static WMPropList *buildPLFromMenu(_Panel * panel) { WMPropList *menu; menu = processSubmenu(panel->menu); return menu; } static void storeData(_Panel * panel) { WMPropList *menu; if (panel->dontSave) return; menu = buildPLFromMenu(panel); WMWritePropListToFile(menu, panel->menuPath); WMReleasePropList(menu); } static void showMenus(_Panel * panel) { if (panel->menu) WEditMenuUnhide(panel->menu); } static void hideMenus(_Panel * panel) { if (panel->menu) WEditMenuHide(panel->menu); } Panel *InitMenu(WMScreen * scr, WMWidget * parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Applications Menu Definition"); panel->description = _("Edit the menu for launching applications."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; panel->callbacks.showPanel = showMenus; panel->callbacks.hidePanel = hideMenus; AddSection(panel, ICON_FILE); return panel; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/Themes.c��������������������������������������������������������������0000644�0001750�0001750�00000012112�12214432632�014334� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Themes.c- Theme stuff * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" #include <unistd.h> typedef struct _Panel { WMBox *box; char *sectionName; CallbackRec callbacks; WMWidget *parent; WMButton *saveB; WMList *list; WMButton *loadB; WMButton *instB; WMFrame *totF; WMButton *totB; WMLabel *totL; WMFrame *botF; WMButton *botB; WMLabel *botL; pid_t tilePID; pid_t barPID; } _Panel; #define ICON_FILE "theme" static void showData(_Panel * panel) { } static void finishedTileDownload(void *data) { _Panel *panel = (_Panel *) data; WMSetButtonText(panel->totB, _("Set")); panel->tilePID = 0; } static void finishedBarDownload(void *data) { _Panel *panel = (_Panel *) data; WMSetButtonText(panel->botB, _("Set")); panel->barPID = 0; } static pid_t downloadFile(WMScreen * scr, _Panel * panel, const char *file) { pid_t pid; pid = fork(); if (pid < 0) { werror("could not fork() process"); WMRunAlertPanel(scr, GetWindow(panel), _("Error"), "Could not start download. fork() failed", _("OK"), NULL, NULL); return -1; } if (pid != 0) { return pid; } close(ConnectionNumber(WMScreenDisplay(scr))); exit(1); } static void downloadCallback(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; pid_t newPid; WMButton *button = (WMButton *) w; pid_t *pid; if (button == panel->totB) { pid = &panel->tilePID; } else { pid = &panel->barPID; } if (*pid == 0) { newPid = downloadFile(WMWidgetScreen(w), panel, NULL); if (newPid < 0) { return; } WMSetButtonText(button, _("Stop")); if (button == panel->totB) { AddDeadChildHandler(newPid, finishedTileDownload, data); } else { AddDeadChildHandler(newPid, finishedBarDownload, data); } *pid = newPid; } else { *pid = 0; WMSetButtonText(button, _("Download")); } } static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); panel->saveB = WMCreateCommandButton(panel->box); WMResizeWidget(panel->saveB, 154, 24); WMMoveWidget(panel->saveB, 15, 10); WMSetButtonText(panel->saveB, _("Save Current Theme")); panel->list = WMCreateList(panel->box); WMResizeWidget(panel->list, 154, 150); WMMoveWidget(panel->list, 15, 40); panel->loadB = WMCreateCommandButton(panel->box); WMResizeWidget(panel->loadB, 74, 24); WMMoveWidget(panel->loadB, 15, 200); WMSetButtonText(panel->loadB, _("Load")); panel->instB = WMCreateCommandButton(panel->box); WMResizeWidget(panel->instB, 74, 24); WMMoveWidget(panel->instB, 95, 200); WMSetButtonText(panel->instB, _("Install")); /**************** Tile of the day ****************/ panel->totF = WMCreateFrame(panel->box); WMResizeWidget(panel->totF, 210, 105); WMMoveWidget(panel->totF, 240, 10); WMSetFrameTitle(panel->totF, _("Tile of The Day")); panel->totL = WMCreateLabel(panel->totF); WMResizeWidget(panel->totL, 67, 67); WMMoveWidget(panel->totL, 25, 25); WMSetLabelRelief(panel->totL, WRSunken); panel->totB = WMCreateCommandButton(panel->totF); WMResizeWidget(panel->totB, 86, 24); WMMoveWidget(panel->totB, 105, 45); WMSetButtonText(panel->totB, _("Download")); WMSetButtonAction(panel->totB, downloadCallback, panel); WMMapSubwidgets(panel->totF); /**************** Bar of the day ****************/ panel->botF = WMCreateFrame(panel->box); WMResizeWidget(panel->botF, 315, 95); WMMoveWidget(panel->botF, 190, 125); WMSetFrameTitle(panel->botF, _("Bar of The Day")); panel->botL = WMCreateLabel(panel->botF); WMResizeWidget(panel->botL, 285, 32); WMMoveWidget(panel->botL, 15, 20); WMSetLabelRelief(panel->botL, WRSunken); panel->botB = WMCreateCommandButton(panel->botF); WMResizeWidget(panel->botB, 86, 24); WMMoveWidget(panel->botB, 110, 60); WMSetButtonText(panel->botB, _("Download")); WMSetButtonAction(panel->botB, downloadCallback, panel); WMMapSubwidgets(panel->botF); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); showData(panel); } static void storeData(_Panel * panel) { } Panel *InitThemes(WMScreen * scr, WMWidget * parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Themes"); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; AddSection(panel, ICON_FILE); return panel; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/Icons.c���������������������������������������������������������������0000644�0001750�0001750�00000021515�12214432632�014171� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Icons.c- icon preferences * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMFrame *posF; WMFrame *posVF; WMFrame *posV; WMButton *posB[8]; WMFrame *animF; WMButton *animB[4]; WMFrame *optF; WMButton *arrB; WMButton *omnB; WMButton *sclB; WMFrame *sizeF; WMPopUpButton *sizeP; int iconPos; } _Panel; #define ICON_FILE "iconprefs" static void showIconLayout(WMWidget * widget, void *data) { _Panel *panel = (_Panel *) data; int w, h; int i; for (i = 0; i < 8; i++) { if (panel->posB[i] == widget) { panel->iconPos = i; break; } } if (panel->iconPos & 1) { w = 32; h = 8; } else { w = 8; h = 32; } WMResizeWidget(panel->posV, w, h); switch (panel->iconPos & ~1) { case 0: WMMoveWidget(panel->posV, 2, 2); break; case 2: WMMoveWidget(panel->posV, 95 - 2 - w, 2); break; case 4: WMMoveWidget(panel->posV, 2, 70 - 2 - h); break; default: WMMoveWidget(panel->posV, 95 - 2 - w, 70 - 2 - h); break; } } static void showData(_Panel * panel) { int i; char *str; char *def = "blh"; WMSetButtonSelected(panel->arrB, GetBoolForKey("AutoArrangeIcons")); WMSetButtonSelected(panel->omnB, GetBoolForKey("StickyIcons")); WMSetButtonSelected(panel->sclB, GetBoolForKey("SingleClickLaunch")); str = GetStringForKey("IconPosition"); if (!str) str = def; if (strlen(str) != 3) { wwarning("bad value %s for option IconPosition. Using default blh", str); str = def; } if (str[0] == 't' || str[0] == 'T') { i = 0; } else { i = 4; } if (str[1] == 'r' || str[1] == 'R') { i += 2; } if (str[2] == 'v' || str[2] == 'V') { i += 0; } else { i += 1; } panel->iconPos = i; WMPerformButtonClick(panel->posB[i]); i = GetIntegerForKey("IconSize"); i = (i - 24) / 8; if (i < 0) i = 0; else if (i > 9) i = 9; 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) WMPerformButtonClick(panel->animB[1]); else if (strcasecmp(str, "flip") == 0) WMPerformButtonClick(panel->animB[2]); else { WMPerformButtonClick(panel->animB[0]); } } static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; WMColor *color; int i; char buf[16]; panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); /***************** Positioning of Icons *****************/ panel->posF = WMCreateFrame(panel->box); WMResizeWidget(panel->posF, 210, 140); WMMoveWidget(panel->posF, 20, 10); WMSetFrameTitle(panel->posF, _("Icon Positioning")); for (i = 0; i < 8; i++) { panel->posB[i] = WMCreateButton(panel->posF, WBTOnOff); WMSetButtonAction(panel->posB[i], showIconLayout, panel); if (i > 0) WMGroupButtons(panel->posB[0], panel->posB[i]); } WMMoveWidget(panel->posB[1], 58, 25); WMResizeWidget(panel->posB[1], 47, 15); WMMoveWidget(panel->posB[3], 58 + 47, 25); WMResizeWidget(panel->posB[3], 47, 15); WMMoveWidget(panel->posB[0], 43, 40); WMResizeWidget(panel->posB[0], 15, 35); WMMoveWidget(panel->posB[4], 43, 40 + 35); WMResizeWidget(panel->posB[4], 15, 35); WMMoveWidget(panel->posB[5], 58, 40 + 70); WMResizeWidget(panel->posB[5], 47, 15); WMMoveWidget(panel->posB[7], 58 + 47, 40 + 70); WMResizeWidget(panel->posB[7], 47, 15); WMMoveWidget(panel->posB[2], 58 + 95, 40); WMResizeWidget(panel->posB[2], 15, 35); WMMoveWidget(panel->posB[6], 58 + 95, 40 + 35); WMResizeWidget(panel->posB[6], 15, 35); color = WMCreateRGBColor(WMWidgetScreen(panel->parent), 0x5100, 0x5100, 0x7100, True); panel->posVF = WMCreateFrame(panel->posF); WMResizeWidget(panel->posVF, 95, 70); WMMoveWidget(panel->posVF, 58, 40); WMSetFrameRelief(panel->posVF, WRSunken); WMSetWidgetBackgroundColor(panel->posVF, color); WMReleaseColor(color); panel->posV = WMCreateFrame(panel->posVF); WMSetFrameRelief(panel->posV, WRSimple); WMMapSubwidgets(panel->posF); /***************** Icon Size ****************/ panel->sizeF = WMCreateFrame(panel->box); WMResizeWidget(panel->sizeF, 210, 70); WMMoveWidget(panel->sizeF, 20, 155); WMSetFrameTitle(panel->sizeF, _("Icon Size")); WMSetBalloonTextForView(_("The size of the dock/application icon and miniwindows"), WMWidgetView(panel->sizeF)); panel->sizeP = WMCreatePopUpButton(panel->sizeF); WMResizeWidget(panel->sizeP, 161, 20); WMMoveWidget(panel->sizeP, 25, 30); for (i = 24; i <= 96; i += 8) { sprintf(buf, "%ix%i", i, i); WMAddPopUpButtonItem(panel->sizeP, buf); } WMMapSubwidgets(panel->sizeF); /***************** Animation ****************/ panel->animF = WMCreateFrame(panel->box); WMResizeWidget(panel->animF, 260, 110); WMMoveWidget(panel->animF, 240, 10); WMSetFrameTitle(panel->animF, _("Iconification Animation")); for (i = 0; i < 4; i++) { panel->animB[i] = WMCreateRadioButton(panel->animF); WMResizeWidget(panel->animB[i], 145, 20); WMMoveWidget(panel->animB[i], 15, 18 + i * 22); } WMGroupButtons(panel->animB[0], panel->animB[1]); WMGroupButtons(panel->animB[0], panel->animB[2]); WMGroupButtons(panel->animB[0], panel->animB[3]); WMSetButtonText(panel->animB[0], _("Shrinking/Zooming")); WMSetButtonText(panel->animB[1], _("Spinning/Twisting")); WMSetButtonText(panel->animB[2], _("3D-flipping")); WMSetButtonText(panel->animB[3], _("None")); WMMapSubwidgets(panel->animF); /***************** Options ****************/ panel->optF = WMCreateFrame(panel->box); WMResizeWidget(panel->optF, 260, 95); WMMoveWidget(panel->optF, 240, 130); /* WMSetFrameTitle(panel->optF, _("Icon Display")); */ panel->arrB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->arrB, 235, 20); WMMoveWidget(panel->arrB, 15, 10); WMSetButtonText(panel->arrB, _("Auto-arrange icons")); WMSetBalloonTextForView(_("Keep icons and miniwindows arranged all the time."), WMWidgetView(panel->arrB)); panel->omnB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->omnB, 235, 20); WMMoveWidget(panel->omnB, 15, 37); WMSetButtonText(panel->omnB, _("Omnipresent miniwindows")); WMSetBalloonTextForView(_("Make miniwindows be present in all workspaces."), WMWidgetView(panel->omnB)); panel->sclB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->sclB, 235, 28); WMMoveWidget(panel->sclB, 15, 60); WMSetButtonText(panel->sclB, _("Single click activation")); WMSetBalloonTextForView(_("Launch applications and restore windows with a single click."), WMWidgetView(panel->sclB)); WMMapSubwidgets(panel->optF); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); showData(panel); } static void storeData(_Panel * panel) { char buf[8]; SetBoolForKey(WMGetButtonSelected(panel->arrB), "AutoArrangeIcons"); SetBoolForKey(WMGetButtonSelected(panel->omnB), "StickyIcons"); SetBoolForKey(WMGetButtonSelected(panel->sclB), "SingleClickLaunch"); SetIntegerForKey(WMGetPopUpButtonSelectedItem(panel->sizeP) * 8 + 24, "IconSize"); buf[3] = 0; if (panel->iconPos < 4) { buf[0] = 't'; } else { buf[0] = 'b'; } if (panel->iconPos & 2) { buf[1] = 'r'; } else { buf[1] = 'l'; } if (panel->iconPos & 1) { buf[2] = 'h'; } else { buf[2] = 'v'; } SetStringForKey(buf, "IconPosition"); if (WMGetButtonSelected(panel->animB[0])) SetStringForKey("zoom", "IconificationStyle"); else if (WMGetButtonSelected(panel->animB[1])) SetStringForKey("twist", "IconificationStyle"); else if (WMGetButtonSelected(panel->animB[2])) SetStringForKey("flip", "IconificationStyle"); else SetStringForKey("none", "IconificationStyle"); } Panel *InitIcons(WMScreen * scr, WMWidget * parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Icon Preferences"); panel->description = _("Icon/Miniwindow handling options. Icon positioning\n" "area, sizes of icons, miniaturization animation style."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; AddSection(panel, ICON_FILE); return panel; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/Focus.c���������������������������������������������������������������0000644�0001750�0001750�00000023227�12214432632�014177� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Focus.c- input and colormap focus stuff * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMFrame *kfocF; WMButton *kfocB[2]; WMFrame *cfocF; WMButton *autB; WMButton *manB; WMFrame *raisF; WMButton *raisB[5]; WMTextField *raisT; WMLabel *raisL; WMFrame *optF; WMButton *ignB; WMButton *newB; WMButton *craisB; char raiseDelaySelected; } _Panel; #define ICON_FILE "windowfocus" #define DELAY_ICON "timer%i" #define DELAY_ICON_S "timer%is" static void showData(_Panel * panel) { char *str; int i; char buffer[32]; str = GetStringForKey("FocusMode"); if (!str) str = "manual"; if (strcasecmp(str, "manual") == 0 || strcasecmp(str, "clicktofocus") == 0) WMSetButtonSelected(panel->kfocB[0], 1); else if (strcasecmp(str, "auto") == 0 || strcasecmp(str, "semiauto") == 0 || strcasecmp(str, "sloppy") == 0) WMSetButtonSelected(panel->kfocB[1], 1); else { wwarning(_("bad option value %s for option FocusMode. Using default Manual"), str); WMSetButtonSelected(panel->kfocB[0], 1); } /**/ 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 Auto"), str); WMPerformButtonClick(panel->manB); } /**/ i = GetIntegerForKey("RaiseDelay"); sprintf(buffer, "%i", i); WMSetTextFieldText(panel->raisT, buffer); switch (i) { case 0: WMPerformButtonClick(panel->raisB[0]); break; case 10: WMPerformButtonClick(panel->raisB[1]); break; case 100: WMPerformButtonClick(panel->raisB[2]); break; case 350: WMPerformButtonClick(panel->raisB[3]); break; case 800: WMPerformButtonClick(panel->raisB[4]); break; } /**/ WMSetButtonSelected(panel->ignB, GetBoolForKey("IgnoreFocusClick")); WMSetButtonSelected(panel->newB, GetBoolForKey("AutoFocus")); WMSetButtonSelected(panel->craisB, GetBoolForKey("CirculateRaise")); } static void storeData(_Panel * panel) { char *str; int i; if (WMGetButtonSelected(panel->kfocB[1])) str = "sloppy"; else str = "manual"; SetStringForKey(str, "FocusMode"); if (WMGetButtonSelected(panel->manB)) { SetStringForKey("manual", "ColormapMode"); } else { SetStringForKey("auto", "ColormapMode"); } str = WMGetTextFieldText(panel->raisT); if (sscanf(str, "%i", &i) != 1) i = 0; SetIntegerForKey(i, "RaiseDelay"); SetBoolForKey(WMGetButtonSelected(panel->ignB), "IgnoreFocusClick"); SetBoolForKey(WMGetButtonSelected(panel->newB), "AutoFocus"); SetBoolForKey(WMGetButtonSelected(panel->craisB), "CirculateRaise"); } static void pushDelayButton(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; panel->raiseDelaySelected = 1; if (w == panel->raisB[0]) { WMSetTextFieldText(panel->raisT, "OFF"); } else if (w == panel->raisB[1]) { WMSetTextFieldText(panel->raisT, "10"); } else if (w == panel->raisB[2]) { WMSetTextFieldText(panel->raisT, "100"); } else if (w == panel->raisB[3]) { WMSetTextFieldText(panel->raisT, "350"); } else if (w == panel->raisB[4]) { WMSetTextFieldText(panel->raisT, "800"); } } static void raiseTextChanged(void *observerData, WMNotification * notification) { _Panel *panel = (_Panel *) observerData; int i; if (panel->raiseDelaySelected) { for (i = 0; i < 5; i++) { WMSetButtonSelected(panel->raisB[i], False); } panel->raiseDelaySelected = 0; } } static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; WMScreen *scr = WMWidgetScreen(panel->parent); int i; char *buf1, *buf2; WMPixmap *icon; WMColor *color; WMFont *font; panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); /***************** Input Focus Mode *****************/ panel->kfocF = WMCreateFrame(panel->box); WMResizeWidget(panel->kfocF, 240, 125); WMMoveWidget(panel->kfocF, 15, 10); WMSetFrameTitle(panel->kfocF, _("Input Focus Mode")); { WMBox *box = WMCreateBox(panel->kfocF); WMSetViewExpandsToParent(WMWidgetView(box), 10, 15, 10, 10); WMSetBoxHorizontal(box, False); panel->kfocB[0] = WMCreateRadioButton(box); WMSetButtonText(panel->kfocB[0], _("Manual: Click on the window to set " "keyboard input focus.")); WMAddBoxSubview(box, WMWidgetView(panel->kfocB[0]), True, True, 20, 0, 0); panel->kfocB[1] = WMCreateRadioButton(box); WMGroupButtons(panel->kfocB[0], panel->kfocB[1]); WMSetButtonText(panel->kfocB[1], _("Auto: Set keyboard input focus to " "the window under the mouse pointer.")); WMAddBoxSubview(box, WMWidgetView(panel->kfocB[1]), True, True, 20, 0, 0); WMMapSubwidgets(box); WMMapWidget(box); } /***************** Colormap Installation Mode ****************/ panel->cfocF = WMCreateFrame(panel->box); WMResizeWidget(panel->cfocF, 240, 77); WMMoveWidget(panel->cfocF, 15, 143); WMSetFrameTitle(panel->cfocF, _("Install colormap in the window...")); panel->manB = WMCreateRadioButton(panel->cfocF); WMResizeWidget(panel->manB, 225, 20); WMMoveWidget(panel->manB, 10, 20); WMSetButtonText(panel->manB, _("...that has the input focus.")); panel->autB = WMCreateRadioButton(panel->cfocF); WMResizeWidget(panel->autB, 225, 20); WMMoveWidget(panel->autB, 10, 45); WMSetButtonText(panel->autB, _("...that's under the mouse pointer.")); WMGroupButtons(panel->manB, panel->autB); WMMapSubwidgets(panel->cfocF); /***************** Automatic window raise delay *****************/ panel->raisF = WMCreateFrame(panel->box); WMResizeWidget(panel->raisF, 245, 68); WMMoveWidget(panel->raisF, 265, 10); WMSetFrameTitle(panel->raisF, _("Automatic Window Raise Delay")); buf1 = wmalloc(strlen(DELAY_ICON) + 1); buf2 = wmalloc(strlen(DELAY_ICON_S) + 1); for (i = 0; i < 5; i++) { char *path; panel->raisB[i] = WMCreateCustomButton(panel->raisF, WBBStateChangeMask); WMResizeWidget(panel->raisB[i], 25, 25); WMMoveWidget(panel->raisB[i], 12 + (30 * i), 25); WMSetButtonBordered(panel->raisB[i], False); WMSetButtonImagePosition(panel->raisB[i], WIPImageOnly); WMSetButtonAction(panel->raisB[i], pushDelayButton, panel); if (i > 0) WMGroupButtons(panel->raisB[0], panel->raisB[i]); sprintf(buf1, DELAY_ICON, i); sprintf(buf2, DELAY_ICON_S, i); path = LocateImage(buf1); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonImage(panel->raisB[i], icon); WMReleasePixmap(icon); } else { wwarning(_("could not load icon file %s"), path); } wfree(path); } path = LocateImage(buf2); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonAltImage(panel->raisB[i], icon); WMReleasePixmap(icon); } else { wwarning(_("could not load icon file %s"), path); } wfree(path); } } wfree(buf1); wfree(buf2); panel->raisT = WMCreateTextField(panel->raisF); WMResizeWidget(panel->raisT, 36, 20); WMMoveWidget(panel->raisT, 165, 28); WMAddNotificationObserver(raiseTextChanged, panel, WMTextDidChangeNotification, panel->raisT); color = WMDarkGrayColor(scr); font = WMSystemFontOfSize(scr, 10); panel->raisL = WMCreateLabel(panel->raisF); WMResizeWidget(panel->raisL, 36, 16); WMMoveWidget(panel->raisL, 205, 32); WMSetLabelText(panel->raisL, _("msec")); WMSetLabelTextColor(panel->raisL, color); WMSetLabelFont(panel->raisL, font); WMReleaseColor(color); WMReleaseFont(font); WMMapSubwidgets(panel->raisF); /***************** Options ****************/ panel->optF = WMCreateFrame(panel->box); WMResizeWidget(panel->optF, 245, 132); WMMoveWidget(panel->optF, 265, 88); panel->ignB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->ignB, 225, 50); WMMoveWidget(panel->ignB, 10, 4); WMSetButtonText(panel->ignB, _("Do not let applications receive " "the click used to focus windows.")); panel->newB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->newB, 225, 35); WMMoveWidget(panel->newB, 10, 49); WMSetButtonText(panel->newB, _("Automatically focus new windows.")); panel->craisB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->craisB, 225, 36); WMMoveWidget(panel->craisB, 10, 85); WMSetButtonText(panel->craisB, _("Raise window when switching\nfocus with keyboard.")); WMMapSubwidgets(panel->optF); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); showData(panel); } Panel *InitFocus(WMScreen *scr, WMWidget *parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Window Focus Preferences"); panel->description = _("Keyboard focus switching policy and related options."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; AddSection(panel, ICON_FILE); return panel; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/�����������������������������������������������������������������0000755�0001750�0001750�00000000000�12214434645�013764� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/timer2.tiff������������������������������������������������������0000644�0001750�0001750�00000001160�12214432632�015750� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��(€� P8$ „BaP¸d6‡¿àq(P‹D#Q¸äö}=Æ#òì–MŒC$r)f)“Ä%q9¤gšÅç/ù¼Y$˜Ææ¨ªõt½Ñ©9\ö‡C Ç#ªM«HªS%´ÚܶwQUìUK%Z³®Hm3Êí‰`›[lvk¥bë?¶Z®V»]Â'e»`nx*Õë yÄ_g{^³Åï—¼¦{È]ñØì.'+žÃÎs¼Ö— hÏäòÕì\–ŸÓcëúÝ~Óg®Ò`·9ÖÇw¢©nø[î&÷P™\¸|~^óŠ ó¹½>/#Êêõ9—~…ûaÛã÷úW~zˆæø·ûo7&ÝSòQ~6üG¶áNÛÞ>ß¿çz������������������������������������� ������� ����������&��.��������������������������U��������������T������\�������(�������1���� ��dR���������������../tiff/timer2.tiff� Imported from XPM image: timer2.xpm�H������H������ImageMagick�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/tdel.tiff��������������������������������������������������������0000644�0001750�0001750�00000003472�12214432632�015506� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�X��� $h°àÁ( €p�CHd`¡@6€¸QÀ‰+¨0 €�<UšH2 —%t`€€RC THP‡ –$P F( â™ |J€àA $`@®Ñ8àõÁej!b váCç� >*Ò`âÑâ$6ëþ c5ì8LÙþºˆó ›Ð ¢`R€`jŒ› ú`ZÄoÓh`”!d *DÂpñjvŒ‚’3¨xó“‚ÌEz÷‡ˆ‚[�±Ù‰Ñ¢?�àUø NÀ‰áGŽÜ.q eK2R l!0óÀ¨S@ =i88xô§Îˆ/R5øöЍWþ ÃÀ~`‘ñ ¹sl:”Ì`‰à �@ %S`= S ,f_`ÞæX`ì€�œ€„† `ÂÎwÒiæ‡?´ˆàÓyøü~‡@Ðw€‘p�0h6x�€!ÏyPˆåÞ}ØÃ >ùäÔ¹'-Ž@L—à3` bhQe� ä˜á7Òyâ¬ü aûã²�8¸wøavœ‡šeçÁcÄyÐiKÚ%€À%žu€K�À’ÃË-ð‹X`Ræ°òùG¨">©¬” ªàŸ$²‹Ä–@ºøC+úøC SøƒÕ B€þ Fžnþ@CIþ€ƒÍ9(gš?40¦™?ô°§•_,±ÆNÛÁÀêZ`Læ –Îù!·+þÉî–2{༞ù#«7þHé“?¢ˆ&‘?| Ž?\ñ\›Êø£”jCè£AþF¬—Ñ™“ ÒÄH`Üf/\Ù˜?È¦àŸŒ©ù§j:þ©˜‘?J(¥„?‚H'lv’ ñƒTRù#a!þˆ\tv‚â²¥ùcy9þ]‘?ZWáÕÕ©ï@`FÆâõùi#þ@Ø”ßÉ@Ý’|¶™vú]—4ø'ˆÀzþð&_þˆ9?BáÿÃù«”Jþ;–?ÚOàò“ù|NëÔAæ†óùý"~Á½”¿ €w^ þ€¾–ŒoàiÊø'‹B##uþ`ÇAGp…Ž?” Dó` 倧ù#ü9þ¨‘?:^áoþHó*��³‰±8€ï#þÒçíÏS˜ß’ä…ï+¯7Rðr€lù#Žâù#Œ8„ã‚€”æá ]ûÀÞžõ<jë$§˜ß0‡9,0ÃZÙ®4ÎÀ<.0Þ¶¹« ŒãÇWà5þ‘ˆ$$âÈp!þ ‚`hãñHð¬ {üÎ`Æ`|üÁ=’þE˜¹P9ü!-ŠøCHTðç"A™àt œw gëà‰1^@3F*R÷EH „Ű„¬ð Ø�Ñ'p%þàŒ0¸á$p²7Àa4×À˜ñ…3œìPo"=qž„SRð§|@A€d#b¤ Dü€>…øJJðë" Û5%òe>þMl|Á.øErZà È˜ ~éÂ<Ò‹?8f�°Ï°§<ã¹�¤vê'8Qå jŸŽ„%#«„¥àÝxfvð|à—=@*¾ H€ã © 2Ìñï@ÄàyÂóŠ?xæIþ`¿ e$]ðË{>¡U0ü£Ì" Kp`*†#QG`œ�´˜Œ$ ð 8@/€8Àp pBᲂ~âIKX2Ê7þ`S6üÁ´œøƒCyæˆrÂ4€‚(BX†%D!ñnƒƒÀÎ$h‡ ¢�kÜÃf5° *S ÊáðD Œ—üæ&µÒ2ô —¯¤ÂÆ0Ã5„ ‡:¼‚æ,Dpos€‚Q'Ö"(` ”†ä†!K`ð2�³>ÌAR" ÄÍBºv@ˆtS€ yn1 ×2lÔ &Ø ‚P@õ˜e/^lJÌJ B@ƒ­EVUÚ;$uD À¸‚� Š€¶˜�-�º€@'$ºrðííqOzJ¤ŽÐ¾g½êµÞ›Þ÷¡g������������������������������������� ������� � ���������$���������������������������K�������O���������R���������������tdel.tiff�created with The GIMP�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/speed2.tiff������������������������������������������������������0000644�0001750�0001750�00000000604�12214432632�015732� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*� ���� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼ø &Jœ$i²ä)RÆFŒ——ÿ iÒeL8s¶´YeN.wÖùr(œ.C‘œy‚½hþLÅ‹U¨\¢dé²%jT/^£ZŽJþkWiÔ°bÉò5›j\¿Eéæ-4©Û±C·î=zöêݧo¿þ$ ���������������������Z���������������� ������� � ���b������n���������������������������U�������—����������R���������������speed2.tif��created with The GIMP�����������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/README�����������������������������������������������������������0000644�0001750�0001750�00000000341�12214432632�014554� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ Icon Contributors ----------------- Jesse Kaufman <glandix@linuxfreak.com> configs.tiff Largo <largo@windowmaker.info> All other graphics are copyright 1998,1999 by Marco van Hylckama Vlieg (marco@windowmaker.info) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/fonts.tiff�������������������������������������������������������0000644�0001750�0001750�00000004710�12214432632�015703� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�z��€ Oð „BaP¸d6ˆDbQ8¤V ÓŒ� BÇùÐàt‹HdR9$–M'�ÌeøÔ= ”LfS9¤Ö *–Fã±ù´ö}? BgØä¾ƒG¤Rd”9Õ•O¨ThRº$îaO…ÙU*äMê÷ �!$R™.žT äSvÝh¶„À›º�‡± =ÓO…kjÕ‚¶>:mõÅÃ�M*È ¡H©|ªSoõ&«]«*Ö ãéÄ� _2eËP#^± n=:® e2ى͢¯‹…8›‰ ¼ºÐ“ ‰Â�¤N)¤©Qkh‚í‰P,Gû¬¼>ûVàC!ØÐH˜“ Š\ÃéäûIñÖÛ-e0�¶NyBŒlzfí²®êï©Ï  ‚X�OBJ ¡��ö½êøz•à�š–ˆA|c@JZÀ ۼ̷Ð2 ðP\“)0~,ƒð›Ü¨Å‘t`„æDBT—ó¸Þ*°,Tƒ€t‘ŠJ!‹±¬(¨€ÀÜ�Gy‚� Áj�&LBU—r"3MüŽ�`dDÒL$ ôm «‡Œô� Aª@aq ^^‡²NÞ¯ÓTŽf`�ó’J& «Ü¦àáÌ�†`�& 3Ðò+6�ÕMQUÇùü„ Š�$À�N “é0 4€�ð:��a€�aXˆX �.€¾v é QÄÉ<XX 0aC@qEUÕç¹ð{€¥Ô�7h�~Þ�ÿyÞW¥çX Özß-õd_h84 ›��l´i(ª6W¢è´»Xˆ�€h�ã��¡�pG�‘6�Ę‹p"¬ë> rð½MMà~Ë“òt'@�x'€�|h�ë¡€¾wÞ'éýš!v0��š‹céÕ°@s€ˆ„g¤ÂÈà £APX�»(�ð'µ€�@`˜G 8�kÛ.§À‰åSrÜàçÁèZ&lüGYÔ�gÑßÇççÉñyU¸Ðj–)‹@ŠÃˆÄ!0?¬ !咋à56m€x€(F€l� €"�€…r€2½–p�OW½©[ìÕ¿é¡ùççú ÜwÊçÃâfé¶�Çl®}üò |› ( Ñá*æ àÀ� –hV[‰(Ä<ua(IÚhŸ:XAx+u`„°>…! ~ï–¥Äxz÷\€�{AP�9(ä�Xk`�õž õÆÎ 5�� €�TúK›ï¼Š"LƒØ�0%À�9¢ìF¬‚µÐ€Å"â<‚’ò‰àoqê�°6X,W`£°vŽÃHôø ŒM´€�^ A{±ñx €ÁFI†pÕn�Œ%Ø>GÔB5` FÈGy aý÷Dâ‘ Ì„FÌqÈÐ�5°Ô�ˆqšx*=—㙄𦂰T À�5Ãð�° *É0ÏÍÀF5ðó�` 5`p ɂą­ò¤bD>¦��³+ ¦ 5ÆÈ×�>@¼ùH¿ÀLÑv |æ�r§Áä˜:p/ áUª¼“ÁãÛ!óvoÈb" #Ì]QøpŽ1Â�¨Ö3ò4q´Wš¬œ��Ä ÆI&, ��ÒCH�M1Áþ?R¸çà [±|C(] Åx8%0#È냬� q±2†ÐÛS,xHfÜ[sp€ÙO„�k:‰ }ï *.€êvš*}¹„ô<Z€ûÎyOÐ<¥%B}Œ RRMMǘôp}ëϪgÇ æƒK´ÕÐŽ jû �ÅQ$Ÿ@:�èæ‚ƒ ,���ÀÁ1D°�@Á‚×z·.ÞL½Tä– VÀ�:¬Äxn ѹM$ Ì à´Ê@ OÉ%¢ZÇ@F�X)”�„Àm諘 ãø}µÈ((�«…upŸÕâc3œ„£}fÏ“>ã^‹“ à¤Å0žcñ%Bh »[jûÀËùo™ô1€ÜGèû†c¼tš1.(ëÄ'×”A'úã̃ �n ë>áà˜&1ä'3fIDpž» ðÇš³€¼ß€m^²Æ\ÕH8ã“ôdŒª©%∂úä!æ~Fæ)‘òD�RªY}Á( !, ËbH$… a t¶Žì}&@ÆA�þÁ�k šÉ½’QDÑæ‡%â .™W-f¸:Æ@ã“ �ýtQ.)]ÙFÄÇæû€°cÀniȶ¤{èOn@ðÎ@콸9‡Hê1@t I€Š1±#b¥Ý‡°îÀRÁà/»apÆH%9(¤¼ÆŒº5‘ãVIOYî€pí `ã@’!@+@‚w!HƒæÝ$Aóy@ÑXù+çZ[KÛh �;²I ±vËWÝbOîDó�„qO|¤iÕ3Àº±’QR-Ypy¡æÜ·]±HFÇ&—"Ë`Ê9õØù‚åyØü€„¤$£tBpP `ì��]ý¿wûUÛé¯qyÑ(ÐÈf§æ§¶@ÁIøò·œ{”ìã(Ó| @QÀ�+qÍÚPŸÓqßMvXÚ{}ê�ÀO��ˆÇj›Á9!>y–[ Б~0EúkÉËíö�ª‚®ÝäxŠ_÷™¢™T™!ü …êÂ$¿À „à?®��>‘®¯à¥«+èMz¡ í9#±î݈U6Kíý̨öÞéÝÉéC^ë÷¼wÒ¸@@��þ��������������0�������0�������d ���������������� �6���l ������¢ ���������������������������@�������q������¸ ������À ���������(�������=�������R���������������/home/dan/work/WindowMaker/WPrefs.app/tiff/fonts.tiff�created with The GIMP����H������H�����������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/textr.tiff�������������������������������������������������������0000644�0001750�0001750�00000004352�12214432632�015722� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*���� $h°`€�0ð°�‡ ,0àÀ‚ÇŠ'n¼ @A„�C‚Ð Ž€PZŠ¢ƒz˜Š¥€X:˜�ˆ¦€p h�F��ÎÑãWªd�tùaB]”3á¯QåŒAùSÉŒÿ6 Û3á_CÀíéô'Ÿ&�÷Dä $p@aV*ÐX�ãcƬ�tTĢȶ ’ (ÿ*˜÷·pñÒ%‹Z3ß•9¸µíT±�»€%X¬S4�dà Á€Hî0�°�€6t`@ €†9Ðán�Ø� C € *@ì«f«=[­9"ýøYTþTsGã_/¨ÁJþ)Å&þ±Â =þEÎÀ Ò `B¡`\@ `È]8 x œÑE@@�0@ˆÙa€u]Y1„W$�dˆ*ì ÐGÈüÄz?ñ›?jð„•?êñ…ƒjñ‡›ÂpÃŒ„Q¥àáaŽ?€`d=sˆhçPPHÊB’ybÜ™$ÐQÌy wâ�<V§èØ8# ð�À–*,AÕpüÄ †äñ„%yÜ å*\ýÀK¼ù‡I–ù‡ nøY>ù�Þë„“'þ�„•sþ�†“½ bºN ‰ådР!>R�$Èm�Q¡­6ZU`E*Lu¤°+Ãj?q/Ÿ*!æ2œ*… vøG0^ø§—y~øÇˆÈ:êâµNøê�‘:�‚‹ã:A¢¶N@Hmš@^M�{S3Ù}@D¢‹ ÌAª g(ºNkìÀåu”qä(ĸæ‚ €N~ù‡ >ê„w0�à±aàå¨N¨yT�@Y�àqælqÚduØKAM  ø¥Ê›©’ G? @€<þ!@‰Gþq#ƒ/þ{� ù|�`ãºX^vê„’Å:Áa N©™Ä:A¿µq^Äõ€‡@R˜‰F –¨Â TKpðstàçXØiå$¹àM|w åÝAb_�àÛJ¶’Ñì`¥N˜�š#��ƒŽ:Î  a£Æ˜3Úh@[A&�I ü2þ(Æ4þPCéÌ¡g€¡a“ aæàgxåXØ`з€Àáh€Bcø ´°©pb_ ¢1èá( EnÀzP"p��ȉA<*°—›D„4È�†@¤ÀxøC,õYH @`Æþ>ÿZø‡ñ�Pa\#àÁ,þ�ÜáðU?€ €5u êx0¼ˆ^u‚Æ# „4úñ[èÂð…².�U`áÄ@(ü‰KLƬ@0- ã¡Ð�þ  qðÌHŒ0رaˆàÉÏÀÅHÄ�r � êcàć{üòXÖÑŠ?€ƒ -² º# 4áòЂ?þ�3Èã©°S>ò`Bü 8�‹«µAEJø£ú�ÂJ`pü!€Æ¼ dF¨Cân‚�,à \HD ÀÐV'`/s:0Å!þ�eÌkøhÆÈ!‘,èÀ!-pƒ ð‡<D@MO‡$? ^üñÏ .À3bPƒT¨†!�h S€¨ V�e l2Z8³5p þ‘ +Þ"º|€x@‰?Дø3$à3Ø!�ˆ…SAPŒ$Ø© Ùpf 2`Á$AKeˆƒ¬ä ®BÀDø+t†©LL€ƒ˜�@ª`DoTÀ*ƒ}–Q'¶£ Î@’:܆Ôøü…7JĤÂĸG>‚¡ÎäÀOe(D­‘ =!¶øC)ÒaFS$BƒŸˆ†X!¦BÀøUnU­C`@˜`�„Jgå°œ.À¯Ú¡ n@§=Ü€)uxŸ¿U,\š…8‚¨A|,Qx²ÙpÕ2…dÀ²ÑH¾Ê )ü¡Á`+|Lƒzx˜±*…#HÕ Lu4ED,J` H| V,F)ì\Žr8ÿ¨†kjY'Tà Äü…?P7I´4xA5b ©2¤vHmÊ‘Cš"¡‰¨B8„»o~ îÍ¡r àè@�0ô‰ËCŽDƒè�ÄÂ�Ä$Ê` Hü @dlû‰J8´•py¿à®RÔÁŒ™ Xð‚DC•ŸH4*‘PIT! üDHÁQ ïÒ L9a� öÀ @ € ªF4–À-!Ƚ�ˆ‚ (J…=ø�€Þêœ0e=Ê` "ü£ ö¦á›¤QW°á Õˆ¨ ª;MT#Ê÷¨‚éX%”ÁØxá!ÈI04ßT¦"S¹”�” ¯´a N� Ñ�vP�]@á Å0†/` rü¢~àÂ/Jà 6ü"¦ Àô!4Î @ ÙšvJ\�k°<�H x�€”@�ä¡JZdÀ"�Àr (¼#�šÀÆ Ô B$€�@×Üwv8ªPAœâ �DKB ®˜ t>˜Zà``„Â�@FŒþðÄ" ���������������������À���������������� ������� � ���È������Ô���������������������������K�������ý���������R���������������textr.tiff��created with The GIMP���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/timer4.tiff������������������������������������������������������0000644�0001750�0001750�00000001172�12214432632�015755� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��2€� P8$ „BaP¸d6‡¿àq(P‹D#Q¸äö}=Æ#òì–MŒC$r)f)“Ä%q9¤gšÅç/ù¼Y$˜Ææ¨ªõt½Ñ©9\ö‡C Ç#ªM«HªS%´ÚܶwQUìUK%Z³®Hm3Êí‰`›[lvk¥bë?¶Z®V»]Â'e»`nx*Õë yÄ_g{^³Åï—¼¦{È]ñØì.'+žÃÎs¼Ö— hÏäòÕì\–ŸÓcóº¬E[.¡i0[«ÏS¿·n,;Î%ß}«äh*+—wÆÔrv›KgŸ×¼tóú)Ž7c¼ãò»Vëöñàèø»zß,+Îìúíü/l*æÞú~þŸ­Ãöù§l»ûÀŠŠ������������������������������������� ������� ������$����&��8��������������������������U��������)������^������f�������(�������1���� ��nR���������������../tiff/timer4.tiff� Imported from XPM image: timer4.xpm�H������H������ImageMagick�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/timer1.tiff������������������������������������������������������0000644�0001750�0001750�00000001160�12214432632�015747� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��(€� P8$ „BaP¸d6‡¿àq(P‹D#Q¸äö}=Æ#òì–MŒC$r)f)“Ä%q9¤gšÅç/ù¼Y$˜Ææ¨ªõt½Ñ©9\ö‡C Ç#ªM«HªS%´ÚܶwQUìUK%Z³®Hm3ÊôâÝ`›Wd6ZÅšíu¥Ú.VËU¶/TµÜ"wKß y‹ÚéØK=MkÆa²8‹æW’Ã`dØ|æNÅZ _óŒäæ;Ñê2™}&{ ¦©Wèº~Ï[©Ùc¥Ô-vÓ}·àjª-ï‹Âãì!ù ÿ#›ÇÍPyÜnWW`æu;]<çG¬îc|8nW~•äí¸[Ÿ4:àñmwSßmßo§ý>¿¿åF������������������������������������� ������� ����������&��.��������������������������U��������������T������\�������(�������1���� ��dR���������������../tiff/timer1.tiff� Imported from XPM image: timer1.xpm�H������H������ImageMagick�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/moreanim.tiff����������������������������������������������������0000644�0001750�0001750�00000007350�12214432632�016364� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*�� à� $h°à!B† &l¸ð"FŠ%j´è~cúé7v¬8ñâ&P•DM` GO&H‚d 0]üì‰r$ôXæ@Y#+LÕB1ÿæKú7SÆ¿éòþUÒm`äa‘6Pú\å ”©@„Ž[úwÔ&O „!¤Ìâ «û=üÛííßV?ÿ6¶P-¢À`²D\Ò|é²åMû71Å? é<§âp.í¹�1w ¨.@Í+ü«_íþºÁh4²YèmùïêÀÿz±-nÒÃ~¯>ýl dýì´é\Ш7?€¦� ]ê³Ì’ø©¬Y"Ъ~%wâ¤É;o�Hã7ÿj®]?‹óÔmrM€Ú,ìÍ"Ì~uÐHovõÕß@6ùw–uþcO&Ç,ÜB㟵ˆù'62Z†@`à,H¡²�èc¡˜ÑØí3caÑ‘áøùg !þéO”º“àŸŽ¤ù§-9ƒÁ5BF?©åŸÊÔýßy€È0 WUåÞ ýÜT£tM`ˆÐXþÉ‘Ãp(2 ψYãŸå¼ÃPÜ´†!%ŸÝ Ãbg”ÿøN0áIíDéO<ɤéH6y+hŽ@4 x£Ï&|³HK/„wËV�l4˜‚}q " Ðô° §¼>þQC þ¡€JþˆòÐÌR @¬é[n‰`Úàƶù'ª½ò²VA¡¥³¤’IŽ6þËáß7Ó&Æ ¨Ò25ÿ{u]d·ÜÄ ·©N`H,@Ȍͼá‰�u¤ò Õ|†_`uÜñâЉÓöÒ\Œ†T`Іô0u*ù§t¦°=%/üªÈ�`û…ºßêQW·G ˆñ_’ –o �à³ 0|…å�ÍÜY�žÍt܆®–!Ì­s}³5‹D³pØÆj*t@×C,{t×3CMŒl� Xã Y‡‚ªÚ~ÍÕÇXàø'û¤u(6 ¯ Õxà ´�áž3¯yŸ…D–ÀQÇC`ç*ƒ!v�©ùàåoYÓ,êÌ¢Àl†â˜[ù<þyyôxŸàŸÌ§SKãÌÞ*)±ß¨lÙ÷%žÿ«Øq:”ì”êdïë+²�^³ð‡¬\3‹‰8E€>C ŠÇ}h*¡0üƒ<€ø‡8Ä!É`ó9‡@Îv½éñ¯>”K“Áòš× NïxO¨œ“7–ñ˜à+ÂV# ç1 Vîw´¬�d1ÈßiÌB´pÉ,$a2œŠÃþ \i1KßÌ…:$#à€Ný(‰t 5¨Å®^'›°5‰CѲNؘý�@�JLÜš˜ÇŒÁ"x N@žY°` ñ·¸Ç g8Ã…´UÉ5Ò(Á?ŠDf1'ÂúåFP *Ð _8Èñ O‘Ï,ı�úúH,Cí 8±�<iJâ%©ŠG’œæ�M7¡(Â?rÓDá Û ñqb  µ3Ò#AÔ° yÿpÎ4ƒÍ¥w5&×r {\ô p¥"ÕÙÂ]v¤ 8ÂÎFM+rèdÖI+ËLw:ld‡ôT-j- ä!/ù`)Ÿø0€i ÷ɆKFgRý›�£È·LG"1•l©ˆƒÌ‚uØ¡U4ô¦+,€xœ„lü#½„iç©Ssí7�$öãš@�E`åK” Ól-�”ó¬Â,¸‡)×å7t¨•D 3ŒPf™Ê1 v,€ @ªŠÐ"ÿ «6F„ƒR‡©†H1G)KEn€�ìµB,æjKfÁÜvÔ qºs[r†Àµ¡%P¬  GÒg£ f€£,€”Ê Í A$žW«K‰…•¦3˜&´ÁR&ÖžérCŸ{´ÂÇŠ‹üKl×mJJG Š�¨¢,/s¡s�©Ú ƒV.¬P7p“$(#þÙ9QÈ+ -ÁÉÉ,ZS8(±²É“ç�@âœ=¿'ÀÛOöÿàïuöaÃlf+U¨é3j ìWeŽÀí"ð©é8ÀB©Â?Y-ÅQ$qe_[Ì)O²´ý˜•|¦#&W�BRV-nu9Bÿø1þñ=²‘Ž|døŨÃ^¹lx¬}âX|ßEµ4‹%`÷@†¸ñ‘œûëbêk𔣂 c��?û„` 5 s!bf!9ìV�—©­®A¨©kX¶…*|%½œà?³SmS©º˜‹ €Ÿ3ÔÆ8íj¿£ÌB0³ÜãÈô rS7Óaç^>¸køÇØbbU‘zÇÂO‹Âtx§Æ¬ÂA~:˜…fÁWø[ñlV ì•cOn·¨ƒBFí! ÿ]s‰…»ªºå�4�è IJÀ1È¢ƒ1ü+ÿ@Û´ò š<ã¶Ÿ@Ó‰  ë A†Ù­%P[��’•î�ÿ€Û1þÛHÔ±`sjYS¸mjïa­ÈuZÉkš{1æ)`.ØéH‚mBÑ ôª<˜æ'Éc€†Tû.Y�o·K /µww<ã9• @ÄI”§¬É„�¤%á/mX./]õØ›þ<@,j;)I°É+øGõE¤$ _Â(@:04¢Që ŸÀ8˜>ƒC#…¬ˆ'7@¼ØÀvÖAå²™?@¬_]Ù]ÛÏÁd¸^g%(·ú€AèØX±. ¡ ¡÷øéC¬ƒÂ›m»›ËJªq¯ÍÀbÇá3a¸„FÄç8&îoãîÁʃü%€Ü…'ïÖ"‚i Àt­NŠ[ Ò}ˆ{ü?½øG×{Œ*œ’(úÌ…¢ž™^<Vƒ©zd}¯¦P"t¢àZ9pâë0ãžÿðùöÀ²óôãÖw»G— tï ìJC·.”iÜ÷3 >)Œœ1ã0n°ý:UÌBÔá@ uÿu}Ä5ÜÐq^B 05_V÷mðp8Ä\³ju6qo²:y�’ðÊ€:ƒÖrþU9zÆB "ø‡« †+†?c23Öw<©¦_WÓ _tdV8p‡p > Çt‡Å\VE ��¤P3„£P@ <ø«‡U… HcwÔ*;æ³0*©"Ö ð fcÒˆ��wà í`ÔàWø—p´VIÃtð°×D$2,�ÛÄ Ædl\óFeb�eÈvÓp C;@`[�í0N[si@‡ëP 'ëðŠp )®VêÀ¶d‹°[€s. ‰È(‡­P‚TV‰p+5bøÀ`·´k\ðˆWþÐ¥E�ƒÌ‚Hq¢ëŒ _ðzK±„pç0DZÇ\ûÂtÄpB`à‹ZqƒÅX…#f‚ 8Ä,HQd¦c!A`�wGqÁ,Q•ò“' ¤›çVjt5¹¸d,òÕ`&7ÁÓ ÄSÇtHõG–R>ötÌÕpÌÙà4vÒzrë¸AàN$PÅj¨ÇüXf‚Rø— ø“ć×`NÖ¶ˆÖRMðij¤ö0Â2êÁt7i–(ˆVr•°[plÔrO>0°KøNàtkŸGë4OARáYfH¬Ä(H%i‘6,�È×ÖEp×57³ÌfH0O#°EPe0wiÀ€zÖW¹× õfI7 y°‚ÿH„ÉF O’4G¬$I¢$õͬÏPÒÊpÒo,¤xÃ'„ô4J€Îhä¼ÐæiÈ„ÿL1£ÆäIbŽøt¹‡°ÈŠ@�@ÇÁðeÇôCÜÀÁûMèHGp d»Ä, ]?�ŠLkî寤3ÍĵÓ`á<;»Ô š±Kƒò³ŒÌ5üÑ"M��‚ug„Eº¢¬LT Öo¯À-0�45L+UP¡¼ \a É°ÎLø7 H…HÎ Îx´ZtÁ‡øwˆ€/„(ßòð*„à ~îV'Š#2WAÃN}°G` Œ�@@� $ßàþᇠP8Ö�# Œ(0èÀ€¢†u`tñB¡Ìäþ¥¦ò/9­qü‹Éì?"@!’[D>ÿ‚ úPÄ?Ÿâþy•òϵ¬À…$(À Œ åÊ*ó¨Ì%õ¤¹ƒ¶j  vâÊœ*‹jp`h1l¨]ÛZúæ?ÌÐ!ÃFŽŒ30¤À€kœÌnÄ´Ð#*�VVYL6 aô�¦EâD�’Bxi Þm6ȳºY—ˆôc ®×¦ým€´2³ÊRfÉ«,¡2‹l˜÷ €0íÊÂfÉš¥èTeþñ×è¹~q¿ç‹7lój€¨âú��ü“×?Ú®‘Z•ñT7•1—MdôpÈ% ’ Y•±Ö( ÙЗý 3,A½rX?‡½ ;"�¼µÌJ+$ðQl±<HL€t!³ZQ¬µ/â¸ã‰7>­ÃuÙ ƒ‚ŠÖÁèmNÈËøÃ��������0�������0��������š�������������� ������� ������¢������Â������Ø�������������������*��������à�������R���������������/usr/people/marco/moreanim.tif��created with The GIMP������ ]�� U��‚����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/timer5.tiff������������������������������������������������������0000644�0001750�0001750�00000001174�12214432632�015760� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��4€� P8$ „BaP¸d6‡¿àq(P‹D#Q¸äö}=Æ#òì–MŒC$r)f)“Ä%q9¤gšÅç/ù¼Y$˜Ææ¨ªõt½Ñ©9\ö‡C Ç#ªM«HªS%´ÚܶwQUìUK%Z³®Hm3ÊôâÝ`›Wd6ZÅšíu¥Ú.VËUî×=¸Xîø+ÅŠµ}Ä_1V¹Ì–×tÂdlñ{ýû-‰ÀT²¼C‹Ëè18ÜÖwM…Ï^³­‰%§Ä󚊶[НÛåÔ-žK¶Öptvøîûi…àjùZ.f’Óáµ\Í¿WC`ãOúœ.ß_Aè^rη/opƒö¼¾¯%·¿è…wy½?>ëá§r}šî×ßÐü¾ÍÓ2ÿ@*à€€������������������������������������� ������� ������&����&��:��������������������������U��������+������`������h�������(�������1���� ��pR���������������../tiff/timer5.tiff� Imported from XPM image: timer5.xpm�H������H������ImageMagick�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/ergonomic.tiff���������������������������������������������������0000644�0001750�0001750�00000003622�12214432632�016535� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�Ø������������������P���O��_��†��š��Q��ÿ�����'����·���‡��€ `Oð „BaP¸d6ˆDbQ8¤V ÒŒ� B×øŒFH‹HdR9$–M'�+Õè¨Ô §/”La§) G7�'@ {L� �Ô00˜q™Ri2©dmÿ=¥T`¦Ú CW�;ë@�t�ý°Oè#Q©j¥g‘Ó%±Ê…¢dl¸�W9Ìí¿w®W åÖ݉کÖܘՇ«VX°�o�räo 0òý…ÌC0P7&w3!|h@ý m§¡Qš°�+\�l@¡Ñ?·ƒæã‰ýä1ÿ¿ßp ïî' â?¡·à’��ô@�^¤ ×Ĩ@ Öè qßµ@@€ `OöD�þ„�ð¸T2þ†¿â18|NŠÅâÐèLj5†G¡ƒÉ �t:/€%R¹d¶]/˜LfS9¤Í^¯E� B×û}‰Gã²äBEA¢Ð"”:Db™–ª@Àà»5¬VkUºÄÞs;±lTª‰N³Siv›]’“˜T‡ÕJµríw¼M§¨ýJZ¬¶ëFŸGƒÂf—+¥^óÈ]«×Éã-†¶b06ÜF5Ьt@È佑ÔjoUø ]˜Øgmö|æÒá¡Ñétú­æô“°0x@�‡}2pòq9¥ÞH<“J8ý<‡Àì�=°×½Óï-@o'.•Ñtšn§¶ï“€€€ `Oõü�„�°°6�YÄ@8¤RMˆD¢ñ•œ*u�Ò0þM”JeR¡ì´�9—¥s9¤Öm7œM•êôP-¯¨@�<µ†Ãâ1ØÝ.“§SbPºAÒ­"’Nk@et�J%ëv;%–s;žÏßëÛ`�)o£Ù¦Õ@ÊírœŒ¯@!ÓxÀ`kv‰ô y‡�q@V75»±óEfT�Êe;òy¼äO jSès¹Æž–P/ÔLÖ¹Fc5£Ø^3ð2Î×cd<nemà�½¿�-8RÉâfR)öü»΀#’9•¥r¹�vkà\®y�*U(yŸdÛ�r9]?dלÿèt½½N·cµ#îE|ÞßãÒä¾p R € `OñŒ�„BaP¸d6ˆCÊäH��?£QhÄiýFce"‘Þ#'”JeR¸r½^Š�@…°H4²m7„Äâ°è¼†H£òI4âG¤B%Ó “ü³O¤ÔaÇŠ¥O@žÐ€IBÁ`‹©XaÅÖK˜Àà°{&uQ¬Ð+êõÿw¶Þa�àÉf…Z)´òÍêT<U©),.ê�»¿ðÔaîT�ÃÌCï€õ”‚µMrs{~ç ÇäayQì/0Ã�k2ù–¿c–Ûmv™hvÚ›ÎÙ´;^bÔÞ![­„;™«Ünõ»èO>À¿çåöž&‹ß£òr\¾7«åÛôó>OWšÖ†ö3Öˆ€ `OñŒ�„BaP¸d6ˆDbQ8‚Á`‹�?ãQHäv:� ¬-^¯E� BØ$=/˜LfQX¼N4ÿ‡È�38ŒŽK“ÊerØ<òG¤Lè0¹ÔŠII—ÒèpZ-B­W¨RáTÙõb£(•@ê•ë%–¿)®SìÑê” §oµÜnPÊíÎem–[Úp¹¸›}¿Æër–C†ßps¼,o8ÇÓ0›­ÚaxÞ²Ù».W9¥À@€ `OõJ¥P�b1 @ R�ˆDbQòù{ F@ ˆà(”IÂ!PÈtNMŠÅâQÔn;ÂapØ|ž')ŒF£pp8g6 PhT:½^Š�@…°H4Šg%6›ôB‰HŒ�–�õ°U*”§I!õ«W¬ÖÔõÚý†h�²U*ÕˆÕ¨�(—»åö#F¤R©y•ŠáR¹Z#J\`.—K[ª‹5γŒRã²+R…gºKs��ˆDm~Ôjdø L „‘ÛâSŠeI·�& |äÞ-DÛn7[Ì.Ê)¿Úƶê@�H$7ÕtuZ̾ÂÂa2�¶làp9¢cáðà�¢ô�I¤Ï_³ÛîÐ<(—“ÍèQz½žî×s¼“¾oÊó½  (ºPJúê5Êk "E $�dÙ4°ÂŒ$P´1 €Ø� ‚¡ÔA¤Ðb–:Å€3Åd�±¬]Dñ‘ÅFÑ{ÛÆa˜f,E* ÖòIÿ#I’l'Á(�þ��������������0�������0���������������������������� ���������������������8������������������������(�������=�������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/theme.tiff�������������������������������������������������������0000644�0001750�0001750�00000014334�12214432632�015657� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�Ö��� $h°à!B† &l¸ð"FŠÎ´è1bÆŠ'n¼ø &Jœ$iì(Qb ÆNß?\Œü#ÅËÜ?2,ü#ÇÏÆ? Âü£$Î9qN…HpÍG‚[®RÙˆ—F^ îùHÖ@A²\r(IÕ®[³ªFþÑæá-žmÛûGGžôºa¦Âß?ªºSä×_ÿ)9E^mÉ–CC¢ ÂyÑOõ‰bf üÆu`¦œ 3tXhg–1NÆéð0ˆe6By‘ÈD¤ 2¢Dr¢"—\MªT¾X%ÉÒ¨®û¿yãêÍˡ\‡qÝ0 ë7ª3yÞï&t逞üs²¥1-ŠÌyh‘Ä^?d”€ e,°[`2ÆI`hÌjÄ€&Tù‡&Tø§‚z¶ù§–fvù§‰öù§^ù§‡AŽùg1NùgŒiÎùgšy.ùg®ùgMîøg›=øç€#žøç”s^øçŠÞøçž>øç…W¾øç“/~Ät_ ͵Ñ0c- EV=|ðBgLðThL2Q9èSÃ/ç¡G [þ‘‚XþÇœhþQÁ‰dþ1Ä|þƒ´H ¦ƒ.€PÃæ"Q 7ü’ÊŽ,Ѝ¢‰.†˜b‰-ޏâ‰/„I,‰¤’I.…”RI-´Ò±F wøw?S$œ‡iå²ÔÁS|6Q,MFFihZÓ*06TL`ƒ.ø§ƒi¶øÇŠHÊù‡ ÝJ˜%Éž2Ê*§ÂòQ¬(‚ˆ"©,ʨ£>Ƙc=θã?Á„M<ɤ“M>Å”SM=Í´ÓM_LhR •ÔTº©Ü‘Ï1+óÔ²M­œ×J è‘SV4äiH”Q–ùgœUøG²ø‡IìôCܾbY`òzë#d1 „iþ!„ùþl@Íf´d’F&¸í€~LdCÐ>ÈÆŠüI¦švÙçŒbI£’x‘³ <‰wiç]kòðéœ/ÍWm2drž:Ë–‘ÓF5ÚPZ¤œ\K xÐ6|Ú˜àŸ}.¹’ VùGëÂa@DNà“„ìX€•ZE Þ*suÑ×\"¿6€f”+‘ v›¬y5È·ãŸ0Ò©˜yþ©¢žþÑÀÀ¸O‚‹F#‚rÓùèãEZ (;L Ïi:(ÈZÛ¦£(èùM?HsR0A(þ1uái¨Á0þÁ ¾€†t›@NÖƒVwJ`!=��À#�ð«­Pa‚Ñú~1˜…°Ø¤`· ÈÀ=² ¤7ÉÌn8À9øG5ê]‰ DÛ "#'ô`Bi `ãøÇ"f1‡ä£ø‡�tÍéZÑT´Ö¨SLçHSš.´aÀ�j›`„$y¡kÄàºð@&# Ê>Ђ'ü «@/€ìP×(X bAYÑÊVõ¨>‰ °@ÿˆ@ ªl�R°$ÙkÊN•AÛ°Ò0ðCjXƒb”{ó˜ó>Ó‹hÁ)6�­?eD[È™JËt!ä)'0>€:~€ ôÌm°Ùôaw¡CKpeÔ`µ(ÁÙ¤xÔ`N¨À™¤«$d¡UhHa PA�ÿpC€yý‚N `F¤èÂX ‚Ft»èÀ(þ åc4 ³ ¨Gñz4£[¬˜Å†NÑStc8z˜À4–$‹qà¨äbÄ4Ö\e´ ³øG+¼_ï£ýeB+ú£‡Œ”=˜(-Ú1Œü£>FSY*QQ‘¥ ieÑ„6 T¡¨hB z«R]LÔ�ÿ(®1îkŒbìÔ 5CL`�À/-Á™4¿`;A€ øÀŠD#ˆ!¬/þ!ÞúAœ`Æ?xÀzüƒ<ùhAEgP‚ÿ0†1Eá 'º!ÞæD(<83žp¤ì`M·ÿÈD"ðD+eˆGþ‘„¶"~³7B…Ä!\ÁHEl†…dK  y(Æ?|àF ›nG�‹Ð# Cb:†"¤!ÿ@ ðBd# ÷ÈFb°ƒ8xÂìwm<À€ 1€ b°Øblò * h@ÿ0‡Nö`#vÀZl‚9´XG˜®0<` xÁP8¨E2’ð-t¢ÿÈC¤Âa j@º„ ´UèPšÐ§´`HѨRV°åb:Ф#‰cB*Òñd#ÿ(GA—1‡‘¡uhJB’¢îãQC¤½{„$"r6HCD`‹DE£%(À?R„@Ü#¾ðÆÂàû~õ‡ÀPL6�€^{B Thø>HÀfƒ¢£ÿP‚¸‡Í$Ãrù„3ŒÂ+(CD¸ˆ œ¡ ü#¶0Å?a>D´"'!è@²§…” !�>ÜÌ W¸Ðwãô…ó&ð÷6Â~AR‘&FÔê£hDM¯Ð€Zü£¥¨(*Q‡´]”"Ã?"ÞVDín7m©ÿž‡°#a3CÚXðJdl ap3îG8bþ°…õ" Ø_�ÀfQî?jGð‚ŒøÁ´t4¢ ÿЄ‚~¡ E/@çäø~°OÊ¡q³?åG˜±®0ê‘7MÔ¶¹hÈ™ ò‘<3d!ÞHC çÀ½ñ‘a•˜0s"ÉF)2€*äM ¥È™ªP¸54£b½èGÛ 7ü#mE4"Žh„!|–ñ"hNDÀïž(@¼CákXáÞ°‚và Xöð°'0” üÚ.èÀ¨ñ\€ÖØ7 ’®p¤ "HET{ŽX$àÙH-òb^"½—(B¦%¦>Í.¢°wH늑‘€*øøGÒ€\$·ˆŸ’cNÄ#‚¾ß /J‘¡pÔ£`´hGy/щJK •ëE'j×+t ÿHxý䑇Ò1¡t;ïŒB@_ðO opÃH„³;0S¸H0°0ñDödOó GGtÀ< „À|  |Ö…¨ƒh‡ð;k†�pÀ>�Gv(€4øæ`(€dø$@\ø ÀøTÀ"A>)¦Æœ‘šv<i%”PàÅPGC†ð{ì€&()h†*(‚h€*‡vhSew¢pˆ…d‘‚H0U`oðÀ°”œ‡PðgN0�MІ{0-Ð…0mÐ d T�tòtGõLD ÀRø,ÀÕLÀ|  RE¶p!gä/°AÎà” ò`Ø¨Žª¨ €Œ© •茎èv¼èŠÞµ YǃrÈg^¨1u;0m‘†ò0‚*( #h‚F„ 5† ³�ð“5ð´yøk°$0cä30a§�ÀÐUЀ{ÐuЀÐ1„ˆ€ˆx�ˆD�p4C @ìtÀÂȈ,"„zhðd_°Ç>gkøH€Ä`h@J”DK€I,€L¼`˜àîŒá$¾¤ˆž¤Šþ¤ c(e h‚2‘‚:7"\(ö;(ƒbó†z¨SLð Iæ/]ƒÿ¨`'0=ì�}Ð!0�]OpA9PeP…{еxŠÐŒ·øŒH ,D4ÀLP@ŒMSÀ·¨Õ[pvnø[0–=°cáˆ`†psÁw°ÂngòOìuì€BȤxÈ„83ƒð5I01D°Ê¤ —D†&¨öw¨tcmƒsM=†$³ •Уh¨‚[ƒj(ÔK¨€B‘ŠЇ¨sBÄpð´—ð€0#dcÐ!0}¤sC‡t‹€¸}ÐHPõÔGàøŒïøEPÄ�d@ þá‚´åÝôGFðkd°e�€¶9°!€�H€ J°CÖ|øÏ§|IR)„,{ƒÿü×a°3Ð…ÿ !p{ìö%÷„è2c„Nh$ÆB&ZhãÝP)·†˜ƒa'„ESÝ"ôÇÕKh€JhÖpC ð'ä[0ç^0ȱb°áwná_pG9Ð�EP„{PsØù\ ´4ŒŸH†@ Qøä†ÿ4œ´µ³ˆ`04Üì]¬°¼…°“sö°@Zp-+øO¤u#]†,HÐÖÌ7³La°.Sø‡HÒ1ïÐX€aË„$G_ˆ…tƒ(„P%µLÈ‚hæ´ „tˆbN¨|S…&¨,­Â>°3J—ÒmC,-ø=Ð2ÄÒgð�'œ%y¸EØÅj)©ˆ+™Ü@Ä�D@Tø¯@/ÕR¨±ý²,°#dÌ€¤˜ªÉ/€¨ÚÌ»¼©Ý2Ê_ø‡Œ•L1Ĥ ȃtS‚È!(‚l[ƒÈÕËPq#[ƒJÈeÞº¥èúÑ6Ƞ蘵LAZPu*iÖy‘4P9*E§BPyÂ{°FAq…{nlØ9*Iýv¸@ÉÕê/9@äÄ@«Q@Œš€êš†ÿxÁ¦<GVp+–ɧ¼+Kä°DVp+d§ (p°ÀÖ!øWp@ p{œgpÀypG”_ðB_H…ï‚\;N)5/ÛiÓhS#(°(‚|vƒ"Èk;ȓҶ—R½‡²ªª# Py^hhúY’4P�Y*l0Â)zœi¸Øy¹ê͵ÀŒ?DoªÄd@j@”Ä‚*¨f70]dCÐAFÐí|¬- !àJ”D…A`‡�ïú2pøï>ø>àŠ<€È§n®m€ìúì€èþ2ˆè¹^êÅÌ›^íåžíùÞìÞî½îÈîuP œ>æ…LGAP {PèëNqé´¦Hcø@Jô.îÎæ¨–ÒÁî*Ž30BÖ^×P¶\�nÇ~àö./ìáAîȾAí¡AL/þéÎ^†*¨a·Þê¥Þ’P�ïþ¡ê¡ê%�ú!¦!â^N56MPe“¢CÐùÔ�]PŠ'ÐÐêçHèŒÜDt€D@è·¦.ùQ€ªQ†#Hd0ÃDn<ü^ìáȰÑ&à¬/ìÁAìîº!ÐÞ¦¡ÿ¡†qg�×ñ÷ñŸa,Ãa0MÍCä…�ð5›Ô“e0†PE0ñøÉDt€ëøøQ˜ìÄ‚ÊQ16”žB1ǰ)ï!à¤Á«1/žÁš:àÎ š– ê¶î�°ñ0îŠé£˜�Ú‘®È~ø¯eÁšÉ™�£™šÙ¬žÅAdìAÐ�mœC0Ây†@S²R°…{0=°pЛIÎõ’ø‘í·¦š¬Q€ŠQ‰=÷tz;°A¹éž€±¯ùçq·XñªžºÆŽžþ…Õ…_˜Y˜™Yœù™ž¥EZÄE4ôZéÃt{;°×as #0ð{0Sð…03ð›«I¥!D믒¤àîÜ`­½ ?½t?½ŒCIž±ÜÈXôA<^/Ô`/YôBPá )à÷¼†…Zø!Y½^è•>èE0 Ä5^3¶YƒXlø_³Åé~ÀÜàn`Òxmiw0KˆYJ°‚Ø¥kˆ]Æ4êLD£Ä ÇB5àJ¨€ …Ù…pÀIÐ5bÑMÝôMÛ”ÍÚ ÐõM3ÐÞ‚-JqÐÛ4°ýM[0Ø4 Ù:vôÝÆmÚÆmØ–mß¶íÜæíÚÖíÞ¾íÝôݺ: s<�ŽîˆU–�p‡B¸ßY(€]Üà’E8,A HG`˜R3¸°?¸K°�7¸×( €{`F Ý˽ÞÛ½6`�¸ßÇ}N`Úgv ƒ{ÎýyØ {Ð�)`‡{NMЭƒ=øƒ;ă;„C=¤C;”C?¬Ã<œC>¼ƒF ¸(€8¸ôR†{0‚ûx¸Ép…­c„Ž&ñ¤&‰ A,C pD`HW³êj<Øi~Øv`Rض½>™“V`8i`úS>Õ“?i¶“>`9éý:iЀ0m††C:ëƒ;[Ð:ûs<›s>»s9‡s;§s=¯s8«žØD@4Ø* :Øj �zغH`€ ¹(h>¶&+éãÜ5„Å :��Nµ±Ó…Nà „ΓRè<Å+?•«:Õ«¸Zà�N ¿Bà†+ ׯӆNŽë�FèièD`è<¤›8¸›±›¼¹›VË[Tcµºå›¼%(¾•ÛPË›¼q€Jè¨à„Α$èœH…ÀLÀf lÀƒÊ&’K©¾K«„Â*PBTkà�f ‡²“ÒÜ(ÛǾJ({ȇNM‚2à^à~°û°Szø“z {@`(íǼ'x|Ð~Â'yâ'M.5~(`Ö§~Ú§yÚ'Wëgxºg}òÇí)€†2€Îg(;¿çK(˜#RÀT@…’{º—N?.D’—‡à ƒà …àö×�î×~M`}‡’76`r(v`J(¹Ê7>¥·{÷#†’'~×ÇwÐ~Ï÷~·÷}÷{¯xŸ÷ÿ÷z@8€‡@@€@íY(t@$(Œ¦~Iý¾çˆ9ŽIyYD~(àxkàö7ŽÓ{‹¯ÎÓ~Õ7x‡·’oùæ7y§·Áù\�øÞï—D øáú¾û‘ÿÑŸþ©ïûÔT@ü…_ú@ú¨Oý¸ßølüÞ4¸7Êúâ¯~ àx³W x‹“úÚ×x­×Ø«wüÖ}ýöï| à6 †àv  O·¸1(!N�‹üØQ)’PÑ”� L `À@”�¥PJ€�ª°QA‚T,h%PÓ*\¶ÐrçÍ“&O®"Š*)Á²J�T`_�•Êð+®\«v:Jê+ÁŽ ©œ˜Q4Ĉ\ lp`AÖ[b0*Á…eÓÞAq¡SBæ6ØÑ(Á‹õHlcB…5†ž˜Ð"Q„l£€Žn¡0 A( ŒHYV.λ&Í(à×d_³*ëîYÛ7lÝ¿m×ê}kÊ,_±rÕ Õ+Ô¬� $hP%!”!€E ò„”$ŒC BØ#Á‰hФp+Á‹ uâ¤JáF z%I&Â…¥œ˜+!ˆ;}ªôI²¡F O \˜Ð• €S "8%ာ&dðJ ƒ­PJ B�Ó°qÓ&Л5j|¨íj‚kкSZu*@Q‚°Ln‚•f˜J`ø=&pÈþL0aê¤iS¦Ïš9gò¼óg/œ»`é¢eK–¯Z2xèð‘c7Ž^` Y¯ 4dÏn�{�<|ðèþcûN8~æÔ‰ÓçÎ^¸|þê%6)Þh˦û�†ÏöÀ”×özèa€T�¢òþ €o?^}ÿõóí?¿ý÷7€€ ÔŸÀôË-<t=ò $ðØmë2"Ì0�+\ïË0œˆÂŽ4܈£ˆ,’È£Š2šè£Ž1:w�ðD PCŽÓèp/>ÜM Þ„âO0±„O4‰¤“J6‘ä“L!™”’ó0®ÔÓH3­´ÓI7½ô3È0£Œ3É4³Ì³È2«¬³É6»ìsÈ1§œsÉ5·ÜóÈ3¯¼óÉ7¿ü³�������2�������6����������������������� ������� ����˜������¶������Ì��������������������(�������Ô���������R���������������/usr/home/fatal/themes2.tiff��Created with The GIMP������ ��Ã������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/advancetonewworkspace.tiff���������������������������������������0000644�0001750�0001750�00000002150�12214432632�021143� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�N��� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼ø &Jœ$i²ä)R¦J&mºô2fÊœ%k¶ì9ræÊ'o¾ü *\¤h±â%J–*]¦l¹òû\9PU�ÕkV©]­NzµêæjX¿QÓæMZ6hÉ?HÒýCà«¡2_ùþ¡òRæ"_ÕþAñQä’�þÁ Tè<¿Ð…(ïÄS®í3üs˜]×¼êÓ4 �Ùþ—­XµrùÚÕz€¤Ø?hjÛ Q毳‚é3gs˜;?þ‚È‹—®[sæôéþ7oݾäî½|÷ÏÐ>kN•y¸Ž‡ÊC•ÿç/^¾z FèV(\ú�0,Ÿ (ñ¯ô¯|pÄCÇÔ³Ðc¥Ô렃ߠ@$€JþAÃBþÀ š¤P5Äß À' 4$­4‹D‚ &:/ƒ !¤PB #¬pÂó/ˆ…·/;£÷ÜY«KÄ í)åHüývÛ]‡ÝwT°ÈB‹@ãt<Éä†ôÓË }Œ8üì† øKΡxRN5§(µI=å´ÓÍ8ÃLòÊ4˜Ì³Ì:[ÝS̓¨R:Zàñ!ÏEý“+ò T|ì¯Ã÷?Àα"ASK-05€Ã›Ûð X|u?Šù+ÕkÀõ <Iõ'®ò K©’œÎ¥1aù¯²êšª«¡šZj󪎺ê©/‚Ô(<^à°TocñÖD|ÈÈ»³¼ºÈ�p<ôO· I¡Á ÅÕ¤ò¨³38"l/“5\ßÐôŇdþÆÏÀ°x¼ô�oª v'û ŠmÌ&út¸ï~û7r éxð!‡ÖØ´yÔäsh¢ËL€Ä/]� ·h¼ Žð´`BÈã€2’"8dàñõ$³7ûÇè]ºJs]£q-Û’m­Ü6X†„-|3ó7÷pKþ·Þv‹í·ÚdµwÙu·Ý÷Øs¯½÷Ùw¿ý8ð ƒ9ô°Ã� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼ø &Jœ$i²ä)R¦J&mºô1������0�������0����������������������� ������� �2���������B������X��������������������*�������`���������R���������������/usr/home/fatal/alfredo/advancetonewworkspace.tif�Created with The GIMP������ ��9���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/speed4s.tiff�����������������������������������������������������0000644�0001750�0001750�00000001052�12214432632�016115� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*���è€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeRûü-—L%òÙœÆi2œMçSiäÖ}9žÐ'óx…8˨ôi}&“L¥Shôù:§W©OꕘMB¡[¨Ølj͆¿X±Rê¶Šd½k²Ùî7 MÎËdºÒ-:}Úór³]/˽îÕ…ÄP°8œóŽÁÛ0Y*å¿“¿ds8l¾v£nº`1¸|~SKžÂWh3º¯]­Øbµ›* ¯m·Ünw[½æ÷}¿àpx\>$¢����������������������Ò�������������� ������� ���� ��Ú����'��æ��������������������������N���������à�������������������(�������1���� ��R���������������speed4s.tif� Imported from XPM image: speed4s.xpm��H������H������ImageMagick���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/menualign1.tiff��������������������������������������������������0000644�0001750�0001750�00000001442�12214432632�016611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��Ѐ� P8$ „BaP¸d6‡¿àq(PŒDãQXÜ^;ŽHb9$9þ­U+dò™\ªQ.–Kå³9”Öc7˜J£²Yäö 3ÐdRõ>R*”¨“êd–F¨QjTJ¤N‘JÓkRj»þ»_¤×¬6 U’Åe±Úm‰nÝ ªÔn5:Ò£o¼Aß÷»åöýÀ`pX;Ýfó‡‹ßfÓ™¤ãŒÅÌë¸lEâý‘Ìc³9 vNÛ•¼ÙôVm%«G¦ÒÛ*Z Öç¯×ln[+¶×a Ânw[¼7àoò9Iþ+5ÇÎrx2ÌõNe´Ûí¹±hF_‘Ëåp¹–ô³¡ß¡ôî=¯Ëçòx¢¾G·Íäâx6ß.×é÷Üo?_¼ øÿ°Š+�@Œ#ÔįŽÓ²ë¦P;« ëAp«°Ñ@H»Ø÷½ÏD; Ãpô9à ú û6qKçE\\¥¯PŒdÞ¨qœ ¼;mR0ãBÑÛ#F0L#È,ë¹ÈÒLœÉImZõÊü:£ÊÑ$ªóGÄ_/E³ äÖLDlÿÃ3*ÝÈRD¡MS,Ù7M©T‰8°ñõ-IJ”ðÖÅ“h� �������� ������� ��������º�������������� ������� ����&��Â������è��������������������������@��������Ç�������������������(�������1���� ��R���������������../../WPrefs/data/tiff/menualign1.tif� Imported from XPM image: m1�H������H������ImageMagick�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/Makefile.in������������������������������������������������������0000644�0001750�0001750�00000040736�12214434561�015760� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = WPrefs.app/tiff DIST_COMMON = README $(am__dist_tiffdata_DATA_DIST) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/windowmaker.m4 \ $(top_srcdir)/m4/wm_attributes.m4 \ $(top_srcdir)/m4/wm_libmath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__dist_tiffdata_DATA_DIST = advancetonewworkspace.tiff \ animations.tiff appearance.tiff clip.tiff configs.tiff \ cycleworkspaces.tiff dock.tiff dockclipdrawersection.tiff \ dontlinkworkspaces.tiff drawer.tiff ergonomic.tiff expert.tiff \ fonts.tiff iconprefs.tiff keyboard.tiff keyboardprefs.tiff \ keyshortcuts.tiff menualign1.tiff menualign2.tiff \ menuprefs.tiff menus.tiff miscprefs2.tiff moreanim.tiff \ mousesettings.tiff mousespeed.tiff msty1.tiff msty2.tiff \ msty3.tiff newstyle.tiff nextstyle.tiff nonopaque.tiff \ noopaqueresize.tiff oldstyle.tiff opaque.tiff \ opaqueresize.tiff paths.tiff smooth.tiff sound.tiff \ speed0.tiff speed0s.tiff speed1.tiff speed1s.tiff speed2.tiff \ speed2s.tiff speed3.tiff speed3s.tiff speed4.tiff speed4s.tiff \ tdel.tiff tedit.tiff temp.tiff textr.tiff theme.tiff \ timer0.tiff timer0s.tiff timer1.tiff timer1s.tiff timer2.tiff \ timer2s.tiff timer3.tiff timer3s.tiff timer4.tiff timer4s.tiff \ timer5.tiff timer5s.tiff tnew.tiff whandling.tiff \ windowfocus.tiff workspace.tiff workspacename.tiff xis.tiff am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(tiffdatadir)" DATA = $(dist_tiffdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FCLIBS = @FCLIBS@ FGREP = @FGREP@ GFXLIBS = @GFXLIBS@ GREP = @GREP@ HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLIBS = @INTLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBBSD = @LIBBSD@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXINERAMA = @LIBXINERAMA@ LIBXMU = @LIBXMU@ LIBXRANDR = @LIBXRANDR@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOFILES = @MOFILES@ NLSDIR = @NLSDIR@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG = @PKGCONFIG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UTILMOFILES = @UTILMOFILES@ VERSION = @VERSION@ WINGSMOFILES = @WINGSMOFILES@ WINGS_VERSION = @WINGS_VERSION@ WPMOFILES = @WPMOFILES@ WRASTER_VERSION = @WRASTER_VERSION@ WUTIL_VERSION = @WUTIL_VERSION@ XCFLAGS = @XCFLAGS@ XFTCONFIG = @XFTCONFIG@ XFTFLAGS = @XFTFLAGS@ XFTLIBS = @XFTLIBS@ XGETTEXT = @XGETTEXT@ XLFLAGS = @XLFLAGS@ XLIBS = @XLIBS@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBRARY_PATH = @X_LIBRARY_PATH@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ inc_search_path = @inc_search_path@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lcov_output_directory = @lcov_output_directory@ lib_search_path = @lib_search_path@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ menutextdomain = @menutextdomain@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pixmapdir = @pixmapdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ supported_locales = @supported_locales@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wprefs_bindir = @wprefs_bindir@ wprefs_datadir = @wprefs_datadir@ tiffdatadir = $(wprefs_datadir)/tiff @ICON_EXT_TIFF_TRUE@dist_tiffdata_DATA = \ @ICON_EXT_TIFF_TRUE@ advancetonewworkspace.tiff \ @ICON_EXT_TIFF_TRUE@ animations.tiff \ @ICON_EXT_TIFF_TRUE@ appearance.tiff \ @ICON_EXT_TIFF_TRUE@ clip.tiff \ @ICON_EXT_TIFF_TRUE@ configs.tiff \ @ICON_EXT_TIFF_TRUE@ cycleworkspaces.tiff \ @ICON_EXT_TIFF_TRUE@ dock.tiff \ @ICON_EXT_TIFF_TRUE@ dockclipdrawersection.tiff \ @ICON_EXT_TIFF_TRUE@ dontlinkworkspaces.tiff \ @ICON_EXT_TIFF_TRUE@ drawer.tiff \ @ICON_EXT_TIFF_TRUE@ ergonomic.tiff \ @ICON_EXT_TIFF_TRUE@ expert.tiff \ @ICON_EXT_TIFF_TRUE@ fonts.tiff \ @ICON_EXT_TIFF_TRUE@ iconprefs.tiff \ @ICON_EXT_TIFF_TRUE@ keyboard.tiff \ @ICON_EXT_TIFF_TRUE@ keyboardprefs.tiff \ @ICON_EXT_TIFF_TRUE@ keyshortcuts.tiff \ @ICON_EXT_TIFF_TRUE@ menualign1.tiff \ @ICON_EXT_TIFF_TRUE@ menualign2.tiff \ @ICON_EXT_TIFF_TRUE@ menuprefs.tiff \ @ICON_EXT_TIFF_TRUE@ menus.tiff \ @ICON_EXT_TIFF_TRUE@ miscprefs2.tiff \ @ICON_EXT_TIFF_TRUE@ moreanim.tiff \ @ICON_EXT_TIFF_TRUE@ mousesettings.tiff \ @ICON_EXT_TIFF_TRUE@ mousespeed.tiff \ @ICON_EXT_TIFF_TRUE@ msty1.tiff \ @ICON_EXT_TIFF_TRUE@ msty2.tiff \ @ICON_EXT_TIFF_TRUE@ msty3.tiff \ @ICON_EXT_TIFF_TRUE@ newstyle.tiff \ @ICON_EXT_TIFF_TRUE@ nextstyle.tiff \ @ICON_EXT_TIFF_TRUE@ nonopaque.tiff \ @ICON_EXT_TIFF_TRUE@ noopaqueresize.tiff \ @ICON_EXT_TIFF_TRUE@ oldstyle.tiff \ @ICON_EXT_TIFF_TRUE@ opaque.tiff \ @ICON_EXT_TIFF_TRUE@ opaqueresize.tiff \ @ICON_EXT_TIFF_TRUE@ paths.tiff \ @ICON_EXT_TIFF_TRUE@ smooth.tiff \ @ICON_EXT_TIFF_TRUE@ sound.tiff \ @ICON_EXT_TIFF_TRUE@ speed0.tiff \ @ICON_EXT_TIFF_TRUE@ speed0s.tiff \ @ICON_EXT_TIFF_TRUE@ speed1.tiff \ @ICON_EXT_TIFF_TRUE@ speed1s.tiff \ @ICON_EXT_TIFF_TRUE@ speed2.tiff \ @ICON_EXT_TIFF_TRUE@ speed2s.tiff \ @ICON_EXT_TIFF_TRUE@ speed3.tiff \ @ICON_EXT_TIFF_TRUE@ speed3s.tiff \ @ICON_EXT_TIFF_TRUE@ speed4.tiff \ @ICON_EXT_TIFF_TRUE@ speed4s.tiff \ @ICON_EXT_TIFF_TRUE@ tdel.tiff \ @ICON_EXT_TIFF_TRUE@ tedit.tiff \ @ICON_EXT_TIFF_TRUE@ temp.tiff \ @ICON_EXT_TIFF_TRUE@ textr.tiff \ @ICON_EXT_TIFF_TRUE@ theme.tiff \ @ICON_EXT_TIFF_TRUE@ timer0.tiff \ @ICON_EXT_TIFF_TRUE@ timer0s.tiff \ @ICON_EXT_TIFF_TRUE@ timer1.tiff \ @ICON_EXT_TIFF_TRUE@ timer1s.tiff \ @ICON_EXT_TIFF_TRUE@ timer2.tiff \ @ICON_EXT_TIFF_TRUE@ timer2s.tiff \ @ICON_EXT_TIFF_TRUE@ timer3.tiff \ @ICON_EXT_TIFF_TRUE@ timer3s.tiff \ @ICON_EXT_TIFF_TRUE@ timer4.tiff \ @ICON_EXT_TIFF_TRUE@ timer4s.tiff \ @ICON_EXT_TIFF_TRUE@ timer5.tiff \ @ICON_EXT_TIFF_TRUE@ timer5s.tiff \ @ICON_EXT_TIFF_TRUE@ tnew.tiff \ @ICON_EXT_TIFF_TRUE@ whandling.tiff \ @ICON_EXT_TIFF_TRUE@ windowfocus.tiff \ @ICON_EXT_TIFF_TRUE@ workspace.tiff \ @ICON_EXT_TIFF_TRUE@ workspacename.tiff \ @ICON_EXT_TIFF_TRUE@ xis.tiff all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu WPrefs.app/tiff/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu WPrefs.app/tiff/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_tiffdataDATA: $(dist_tiffdata_DATA) @$(NORMAL_INSTALL) test -z "$(tiffdatadir)" || $(MKDIR_P) "$(DESTDIR)$(tiffdatadir)" @list='$(dist_tiffdata_DATA)'; test -n "$(tiffdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(tiffdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(tiffdatadir)" || exit $$?; \ done uninstall-dist_tiffdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_tiffdata_DATA)'; test -n "$(tiffdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(tiffdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(tiffdatadir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(tiffdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_tiffdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_tiffdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dist_tiffdataDATA \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-dist_tiffdataDATA # 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. .NOEXPORT: ����������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/dock.tiff��������������������������������������������������������0000644�0001750�0001750�00000022430�12214432632�015471� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�$����������������������������������������������������������������������������������������������������������333ÿÙÙÙÿÿiiiÿÉÉÉÿyÅÅÿÝ]ÿäääÿâââÿ²²²ÿ²²²ÿRRRÿ,,,ÿçççÿÏÏÏÿ---ÿ%­­ÿ‘ ‰ÿ...ÿŽŽŽÿöööÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿÿiiiÿ)))ÿ ‰‰ÿ¹ÅÅÿ9ÍÍÿtôôÿ222ÿBBBÿÖÖÖÿžžžÿÿÿÿ---ÿ-Íÿ‘ññÿŽNNÿöööÿ¶¶¶ÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿiiiÿ)))ÿ‰‰‰ÿqqqÿ™yyÿµýƒÿœ\\ÿ²²²ÿŒŒŒÿ‘‘‘ÿéééÿÕÕÕÿ]]]ÿ}}}ÿ~~~ÿ¹Mÿ¡±±ÿöÿ¶¶¶ÿÖÖÖÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ)))ÿ‰‰‰ÿñññÿ111ÿ©Y™ÿMƒƒÿ6ÿ222ÿLLLÿáááÿÑÑÑÿ)))ÿ999ÿ¹¹¹ÿôôôÿÅ-Mÿ¡ÑÑÿ¶vvÿÖÖÖÿÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ‰‰‰ÿñññÿ±±±ÿQQQÿI™Yÿ%íÿTô ÿZZZÿ®®®ÿÿ‘‘‘ÿ‘‘‘ÿQQQÿÒÒÒÿ```ÿyÿ!‘‘ÿÖ66ÿÿfffÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿñññÿ±±±ÿÑÑÑÿáááÿ)™ÿÅMÍÿôôôÿ888ÿ"¢¢ÿŽŽŽÿ^Þ^ÿ¦¦¦ÿ´ttÿPÿÐÐÐÿ¹UÕÿ~ÁÁÿÿfffÿ&&&ÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ±±±ÿÑÑÑÿÿ¡¡¡ÿQqqÿ¹åÿy--ÿ•ÝÝÿeíÿmíÿåm­ÿ¥­mÿ…­Íÿù-ÍÿÙ5µÿñ™YÿŽ®®ÿ¦¦¦ÿ&&&ÿ†††ÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿÑÑÑÿÿaaaÿ!!!ÿÿa‘‘ÿÑIIÿq))ÿQÉIÿ‰ ÿáññÿÁ1±ÿ¡1ÑÿA‘ÿþ¡!ÿ®®ÿfææÿ&&&ÿ†††ÿúúúÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿÿaaaÿ!!!ÿÿþþþÿ>>>ÿ^ÞÞÿÿnnnÿ...ÿŽŽŽÿöÿ¶¶¶ÿÖÖÖÿÿ¦¦¦ÿ&&&ÿ†††ÿúúúÿºººÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿaaaÿ!!!ÿÿþþþÿ¾¾¾ÿÞÞÞÿÿnnnÿ...ÿŽŽŽÿöööÿ¶¶¶ÿÖÖÖÿÿfffÿ&&&ÿ†††ÿúúúÿºººÿÚÚÚÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ��������������������������������������������������������������������������������������������������������AAAAAAAAAAAAAAAAAAAAAA��������������������������������������������������������������������������������������������������������AZZZAZZZAšššAAêêêAªªªA***AÊÊÊAJJJAŠŠŠA AòòòA²²²A222AÒÒÒA’’’AAâââAbbbA¢¢¢A¸¸¸A��������������������������������������������������������������������������������������������������������AZZZAšššAAêêêAªªªA***AÊÊÊAJJJAŠŠŠA AòòòA²²²A222AÒÒÒA’’’AAâââAbbbA¢¢¢A"""A¸¸¸A��������������������������������������������������������������������������������������������������������AšššAAêêêAªªªA***AÊÊÊAJJJAŠŠŠA AòòòA²²²A222AÒÒÒA’’’AAâââAbbbA¢¢¢A"""AÂÂÂA¸¸¸A��������������������������������������������������������������������������������������������������������AAêêêAªªªAâââAÒÒÒARRRA’’’A’’’AAâââAâââAbbbA¢¢¢A¢¢¢A"""AÂÂÂABBBAlllAÂÂÂA‚‚‚A¸¸¸A��������������������������������������������������������������������������������������������������������AêêêAªªªA***AAžžžAöööAvvvA666A666AVVVA–––AAfffA¦¦¦A&&&AÖÖÖA¶¶¶A´´´A‚‚‚AA¸¸¸A��������������������������������������������������������������������������������������������������������AªªªA***AÊÊÊAöööAªªjAÄD4A”AxxdAèxAÈAðÈA((XAÈÈAˆˆ¨AððÈArr A666A444AAüüüA¸¸¸A��������������������������������������������333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿÄD´A88$AÀÀ A���AA""¢AˆˆhA¨Ap°HAr²òAÖÖÖA444AüüüA|||A¸¸¸A��������������������������������������������333ÿMMMÿMMMÿõõõÿµµµÿÕÕÕÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿ\\\ÿ„„ÔAHHA���AØØØA‚‚‚ANNNAhhØAppÈA00A22rAVVVAÔÔÔA|||A¼¼¼A¸¸¸A��������������������������������������������333ÿMMMÿõõõÿµµµÿÕÕÕÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿaaaÿ\\\ÿø”A¨(ØA A666AAFFFA(A°°ˆAPP°AÒÒ2A–––ATTTA¼¼¼A<<<A¸¸¸A��������������������������������������������333ÿõõõÿµµµÿÕÕÕÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿaaaÿ!!!ÿ\\\ÿx¸äAHˆèA88¸AÚÚ:AªªªAÈÈ(A00ðAÐÐpAÐARRÒAATTTA<<<AÜÜÜA¸¸¸A��������������������������������������������333ÿµµµÿÕÕÕÿÿ±±±ÿ)))ÿÉÉÉÿ‰‰‰ÿ ÿñññÿ±±±ÿ111ÿQQQÿ‘‘‘ÿÿaaaÿ!!!ÿÁÁÁÿVVVÿ!!!ÿÿ\\\ÿTTŒAôA,ÌœAttLA””´AttŒA$ÄäAøø„AÐаA’’RAfffA”””AÜÜÜAœœœA¸¸¸A��������������������������������������������333ÿÕÕÕÿÿeeeÿ;;;ÿ÷÷÷ÿÛÛÛÿÿ«««ÿ+++ÿ‹‹‹ÿsssÿ³³³ÿ“““ÿãããÿ£££ÿKKKÿëëëÿZZZÿÿþþþÿ\\\ÿ¼<BAÂÂâA,,œAÜ\|AÌLlAüü‚Aœ\ALŒ,AppA’A¦¦¦AAœœœAA¸¸¸A��������������������������������������������333ÿÿeeeÿ%%%ÿÛÛÛÿ•ÿ¢ÂêÿüJÿ<Ü2ÿ ô<ÿ„äÿøäÿ”Ìÿäd ÿÄDÔÿxxdÿYY¹ÿ«««ÿÿþþþÿ¾¾¾ÿ\\\ÿÜÜA\œ|A<Aìì\AllœALL¬AŒŒ,AttôAÔÔ4AêêêA&&&AAAìììA¸¸¸A��������������������������������������������333ÿeeeÿ%%%ÿ………ÿÿeeåÿÒ’†ÿb"Zÿìÿààÿ���ÿÿáá‘ÿÄD´ÿ„Ôÿ8Ø$ÿ™ÙÿËËËÿêêêÿ¾¾¾ÿÞÞÞÿ\\\ÿ¶¶¶A666AÖÖÖA–––AAfffA&&&AÆÆÆAFFFA†††AAäääAìììAlllA¸¸¸A��������������������������������������������333ÿ%%%ÿ………ÿùùùÿëëëÿ¥¥eÿâb:ÿB‚jÿ¤$ ÿ€€€ÿlllÿÿ‡‡‡ÿ´4¬ÿ¸¸dÿÿéi™ÿ‹‹‹ÿªªªÿÞÞÞÿÿ\\\ÿÆÆÆAÆÆÆAÆÆÆAÆÆÆAÆÆÆAÆÆÆAÆÆÆAÆÆÆAªªªA„„„AÄÄÄA´´´AlllA¬¬¬A¸¸¸A��������������������������������������������333ÿ………ÿùùùÿ¹¹¹ÿkkkÿ%%¥ÿ"Bÿü¼ŠÿT”lÿÿ«««ÿ???ÿCCCÿÿXXDÿ¨(Øÿ©)éÿóóóÿ***ÿÿnnnÿ\\\ÿ”””ATTTATTTATTTATTTATTTATTTAA¤¤¤ALLLAìììAlllA¬¬¬A,,,A¸¸¸A��������������������������������������������333ÿùùùÿ¹¹¹ÿÙÙÙÿ+++ÿEEEÿ‚üÊÿÜ\²ÿ$Äôÿììœÿ--mÿååÿää”ÿøÿèh¸ÿˆˆèÿII)ÿ333ÿÊÊÊÿnnnÿ...ÿ\\\ÿrrrArrrArrrArrrArrrArrrArrrArrrA”””AìììAlllA¬¬¬A,,,ALLLA¸¸¸A��������������������������������������������333ÿ¹¹¹ÿÙÙÙÿÿKKKÿ…ÿ¼<òÿ*ÊFÿ òºÿf¦ÿ:Ú&ÿJŠZÿ::Fÿâb²ÿ¼¼BÿèèØÿ‰‰IÿSSSÿŠŠŠÿ...ÿŽŽŽÿ\\\ÿTTTAäääAäääAdddAdddA¤¤¤A¤¤¤A$$$A444AlllA¬¬¬A,,,ALLLAŒŒŒA¸¸¸A��������������������������������������������333ÿÙÙÙÿÿiiiÿ‹‹‹ÿyyùÿ\ÒÿîAÿÿÿÿÿÿÿÿÿ.ÎÞÿ¦&Öÿ>>ÿöÎÿÆFfÿ¸¸ÿññ ÿÿ ÿŽŽŽÿöööÿ\\\ÿüüüA|||A¼¼¼A<<<AÜÜÜAœœœAAìììAlllA¬¬¬A,,,ALLLAŒŒŒA A¸¸¸A��������������������������������������������333ÿÿiiiÿ)))ÿóóóÿíííÿ®.ÿ®.þÿÿÿÿÿ���ÿÿÿÿÿÖÖŽÿ&&–ÿFFfÿÚÚzÿjjÿ555ÿcccÿòòòÿöööÿ¶¶¶ÿ\\\ÿ|||A¼¼¼A<<<AÜÜÜAœœœAAìììAlllA¬¬¬A,,,ALLLAŒŒŒA AôôôA¸¸¸A��������������������������������������������333ÿiiiÿ)))ÿ‰‰‰ÿ“““ÿ;;;ÿ[[[ÿëëëÿÿÿÿÿ���ÿ���ÿÿÿÿÿ“““ÿcccÿ###ÿCCCÿýýýÿ½½½ÿ²²²ÿ¶¶¶ÿÖÖÖÿ\\\ÿ¼¼¼A<<<AÜÜÜAœœœAAìììAlllA¬¬¬A,,,ALLLAŒŒŒA AôôôAtttA¸¸¸A��������������������������������������������333ÿ)))ÿ‰‰‰ÿñññÿÿÖÖÖÿÍÍÍÿ###ÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿ###ÿ###ÿåååÿ‚‚‚ÿ¢¢¢ÿZZZÿÖÖÖÿÿ\\\ÿ¸¸¸A¸¸¸A¸¸¸A¸¸¸A¸¸¸A¸¸¸A¸¸¸A¸¸¸A¸¸¸A¸¸¸A¸¸¸A¸¸¸A¸¸¸A¸¸¸A¸¸¸A��������������������������������������������333ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿ¡¡¡ÿºººÿŠŠŠÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ ÿ’’’ÿ&&&ÿ666ÿÖÖÖÿÿfffÿ\\\ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ��������������������������������������������333ÿñññÿ±±±ÿÑÑÑÿÿaaaÿnnnÿ™™™ÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿYYYÿ™™™ÿJJJÿ666ÿÖÖÖÿÿfffÿ&&&ÿ\\\ÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿ\\\ÿ��������������������������������������������333ÿ±±±ÿÑÑÑÿÿaaaÿ!!!ÿ^^^ÿÊÊÊÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿ’’’ÿÿêêêÿÖÖÖÿÿfffÿ&&&ÿ†††ÿ\\\ÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿaaaÿ\\\ÿ��������������������������������������������333ÿÑÑÑÿÿaaaÿ!!!ÿÿþþþÿ¾¾¾ÿÞÞÞÿÿÿÿÿÿ���ÿ���ÿÿÿÿÿ¶¶¶ÿÖÖÖÿÿfffÿ&&&ÿ†††ÿúúúÿ\\\ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿaaaÿ!!!ÿ\\\ÿ��������������������������������������������333ÿÿaaaÿ!!!ÿÿþþþÿ¾¾¾ÿÞÞÞÿÿnnnÿ...ÿÿÿÿÿÿÿÿÿ¶¶¶ÿÖÖÖÿÿfffÿ&&&ÿ†††ÿúúúÿºººÿ\\\ÿí­MÿÕ•ÕÿEåÿY…ÿIÿñéÿÑÉùÿ‰yÿ‘Iyÿ‰yÿ•µ=ÿaaaÿ!!!ÿÿ\\\ÿ��������������������������������������������333ÿaaaÿ!!!ÿÿþþþÿ¾¾¾ÿÞÞÞÿÿnnnÿ...ÿŽŽŽÿöööÿ¶¶¶ÿÖÖÖÿÿfffÿ&&&ÿ†††ÿúúúÿºººÿÚÚÚÿ\\\ÿ???ÿ/Ÿ_ÿ7O¯ÿ§Wÿû'wÿ»Çwÿ«»7ÿKÛ·ÿK;7ÿ³çÿkû·ÿ!!!ÿÿþþþÿ\\\ÿ��������������������������������������������333ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ???ÿ¿ÿÿÿo?ÿoÿ¯ÿïŸÿ7ÏïÿׯÿWwÏÿç7/ÿ×w¯ÿÿþþþÿ¾¾¾ÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿeeeÿ%%%ÿÝ­Íÿ—çÿÍÅ6ÿƒ]eÿ???ÿ¿¿¿ÿo¿¿ÿï¿¿ÿïßßÿWçÿû{›ÿ/ïŸÿ?ÿ¯ßßÿ¯ïßÿþþþÿ¾¾¾ÿÞÞÞÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ%%%ÿ………ÿ•¥…ÿSãÿå9æÿ5%Ñÿ[ÛëÿOÏÏÿ???ÿ¿¿¿ÿ§'ûÿ[K-ÿÉYAÿ{Ûÿÿÿÿÿÿÿÿÿ??ÿÿ¾¾¾ÿÞÞÞÿÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ………ÿùùùÿ²‚ôÿ¼ÌdÿÌÔÿÌäÿšRìÿ!žæÿ]­Uÿ›«ÿËcÅÿÑžòÿ!¾æÿ××—ÿÿÿÿÿÿÿÿÿ??ÿÿÞÞÞÿÿnnnÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿùùùÿ¹¹¹ÿ”XÿØÈÿ4øXÿ8ÈÿT¸(ÿ4x¨ÿ"ì¤ÿñÖÿ!~ÿ½­…ÿww7ÿÿÿÿÿÿÿÿÿÿ??ÿÿÿnnnÿ...ÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ¹¹¹ÿÙÙÙÿj’\ÿ©avÿ Zÿ±&ÿ®ÿâläÿL$¸ÿô„(ÿa®šÿ§§gÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿ??ÿÿnnnÿ...ÿŽŽŽÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿÙÙÙÿÿá¾vÿÓcÍÿEiZÿyY!ÿÓ£ÿ-U‘ÿü ÿÌøˆÿ2ì”ÿC½ÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿ??ÿÿ...ÿŽŽŽÿöööÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿÿiiiÿV.ÿE!ÿY! ÿÙIîÿ³ÿÊ*¼ÿ>ÿ2ôDÿbäøÿ!.ÿŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿ??ÿÿŽŽŽÿöööÿ¶¶¶ÿ\\\ÿ������0�������0�������Â$���������������� ������� �'���Ê$������ò$������%��������������������*�������%���������R���������������/usr/home/fatal/newprefs/dockdone.tiff��Created with The GIMP����ˆ��€��€������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/noopaqueresize.tiff����������������������������������������������0000644�0001750�0001750�00000022462�12214432632�017627� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�$���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ�����������������������������������ÿµµµÿµµµÿµµµÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ�����������������������������������ÿµµµÿ���ÿµµµÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ�����������������������������������ÿµµµÿµµµÿµµµÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ�����������������������������������ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ��������������������������������µµµÿµµµÿµµµÿ���ÿ���ÿµµµÿ���ÿ���ÿµµµÿ���ÿ���ÿZZZÿ���ÿ���ÿµµµÿ���ÿ���ÿµµµÿ���ÿµµµÿ���ÿ���ÿµµµÿµµµÿ���ÿ���ÿµµµÿ���ÿ���ÿµµµÿ���ÿ���ÿµµµÿ���ÿ���ÿµµµÿ���ÿ���ÿ���ÿ���ÿ�����������������������������������ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ��ÿ8��ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ�����������������������������������ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþþÿþþþÿýýýÿýýýÿýýýÿýýýÿþþþÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþþÿýýýÿúúúÿïîîÿíëëÿíëëÿîííÿùùùÿýýýÿýýýÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿÿÿÿÿÿÿÿÿþþþÿþþþÿýýýÿýýýÿüüüÿíììÿ¾³³ÿɪªÿǨ¨ÿ½²²ÿëééÿúúúÿüüüÿýýýÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿÿÿÿÿþþþÿþþþÿýýýÿýýýÿûûûÿ÷÷÷ÿÝÜÜÿ¤¤ÿþ®®ÿþ­­ÿ££ÿäââÿöööÿùùùÿûûûÿýýýÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿÿÿÿÿþþþÿýýýÿýýýÿûûûÿùùùÿèççÿ³©©ÿÏ––ÿÿ®®ÿÿ««ÿ¾ššÿÜÚÚÿðððÿõõõÿùùùÿüüüÿýýýÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿþþþÿþþþÿýýýÿüüüÿúúúÿóòòÿÖÕÕÿ¸™™ÿþ¡¡ÿÿ¦¦ÿÿ™™ÿ¬ÿÓÑÑÿèèèÿðððÿöööÿúúúÿüüüÿýýýÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿþþþÿýýýÿüüüÿúúúÿøøøÿäããÿ¬¡¡ÿÊŠÿÿœœÿÿ••ÿ®vvÿŽ‚‚ÿ»¹¹ÿÎÍÍÿÛÚÚÿîîîÿ÷÷÷ÿûûûÿýýýÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿþþþÿýýýÿûûûÿùùùÿöööÿÓÐÐÿ±’’ÿÿ””ÿÿ””ÿÿ€€ÿŒllÿš––ÿŠ€€ÿ›„„ÿ¢˜˜ÿÓÑÑÿðððÿøøøÿûûûÿýýýÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿþþþÿýýýÿûûûÿ÷÷÷ÿõõõÿªžžÿ¼„„ÿÿ‘‘ÿÿ„„ÿ—__ÿqeeÿŽŠŠÿˆllÿãÿ°€€ÿ£——ÿÕÓÓÿñññÿøøøÿûûûÿýýýÿýýýÿþþþÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿýýýÿüüüÿúúúÿõõõÿóññÿ°““ÿÿÿÿŒŒÿùssÿyYYÿ}}ÿj``ÿ“^^ÿÿ„„ÿÿÿµƒƒÿ§œœÿàÞÞÿóóóÿøøøÿûûûÿüüüÿýýýÿ���ÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿýýýÿüüüÿøøøÿòòòÿïííÿ®ÿÿŽŽÿÿÿŽVVÿcWWÿzvvÿoRRÿäiiÿÿÿÿÿÿŒŒÿª‹‹ÿÒÑÑÿÞÝÝÿâááÿéèèÿ÷÷÷ÿûûûÿüüüÿýýýÿýýýÿþþþÿþþþÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿýýýÿûûûÿ÷÷÷ÿðððÿëééÿ¢††ÿ÷€€ÿîppÿtTTÿwssÿZPPÿ|GGÿÿiiÿÿxxÿÿÿÿÿœ}}ÿ½ººÿ§œœÿ´ššÿ²¨¨ÿÚÙÙÿéèèÿ÷÷÷ÿûûûÿüüüÿýýýÿýýýÿýýýÿýýýÿýýýÿþþþÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿýýýÿûûûÿöööÿîîîÿéèèÿ”‹‹ÿŽppÿ}__ÿdYYÿtppÿdGGÿÒWWÿÿhhÿÿooÿÿooÿ•]]ÿ~rrÿ¤  ÿ¤„„ÿþ––ÿÈÿ»ššÿ²§§ÿ���ÿèççÿöööÿ÷÷÷ÿíììÿëêêÿîííÿ���ÿýýýÿýýýÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿýýýÿúúúÿõõõÿíííÿæææÿÂÁÁÿ¯­­ÿžœœÿˆ††ÿZNNÿvAAÿö\\ÿÿddÿÿeeÿã]]ÿuUUÿ‹‡‡ÿ}qqÿªrrÿÿ––ÿÿŸŸÿÿžžÿÇÿ���ÿ´©©ÿåããÿèææÿ¹°°ÿÁ¦¦ÿ»²²ÿ���ÿùùùÿüüüÿýýýÿ���ÿþþþÿÿÿÿÿÿÿÿÿ���ÿ�����������������������������������ÿýýýÿúúúÿõõõÿíííÿåååÿÑÑÑÿÀÀÀÿ®®®ÿ‹‰‰ÿiMMÿÑVVÿÿaaÿÿ``ÿöYYÿyAAÿ\PPÿ{{ÿ~__ÿþxxÿÿŽŽÿÿ——ÿÿœœÿÿœœÿþššÿ´••ÿ×ÖÖÿÓÑÑÿ¼žžÿþ¥¥ÿ¿¡¡ÿÙ××ÿòòòÿùùùÿûûûÿ���ÿýýýÿþþþÿÿÿÿÿ���ÿ�����������������������������������ÿýýýÿûûûÿöööÿîîîÿçççÿÕÕÕÿÅÅÅÿª¨¨ÿmbbÿƒKKÿû``ÿÿbbÿÿ]]ÿÔNNÿ]<<ÿe``ÿZNNÿ‡OOÿÿrrÿÿ€€ÿÿ††ÿÿŒŒÿÿ‘‘ÿÿŒŒÿ¥††ÿÀ½½ÿ¢––ÿ¼††ÿÿ¡¡ÿÉ‘‘ÿ­¢¢ÿâààÿóóóÿøøøÿûûûÿýýýÿþþþÿþþþÿ���ÿ�����������������������������������ÿýýýÿûûûÿ÷÷÷ÿðððÿëëëÿÛÛÛÿÌÌÌÿ°®®ÿƒddÿëeeÿÿiiÿÿbbÿòUUÿn77ÿB55ÿE88ÿr??ÿæ\\ÿÿllÿÿrrÿÿvvÿÿzzÿÿyyÿ���ÿ…yyÿ¦¢¢ÿ—yyÿõssÿÿ™™ÿÿ™™ÿ���ÿ×ÕÕÿíííÿôôôÿùùùÿûûûÿýýýÿþþþÿ���ÿ�����������������������������������ÿýýýÿüüüÿøøøÿóóóÿîîîÿáááÿÕÕÕÿ¹··ÿŠkkÿñkkÿÿllÿÿaaÿßPPÿZ77ÿXSSÿZ88ÿÕOOÿÿ``ÿÿddÿÿffÿÿhhÿÿkkÿÿhhÿ���ÿŽŠŠÿ|qqÿ¢jjÿÿƒƒÿÿ’’ÿÿÿ���ÿÁ¿¿ÿâââÿïïïÿ���ÿúúúÿüüüÿþþþÿ���ÿ�����������������������������������ÿýýýÿüüüÿúúúÿöööÿòòòÿèèèÿÜÜÜÿÃÁÁÿƒyyÿŽ[[ÿêaaÿ÷VVÿ¡@@ÿA++ÿ=00ÿl55ÿðSSÿÿ\\ÿÿ\\ÿÿ\\ÿÿ]]ÿÿ^^ÿÛUUÿlLLÿ}yyÿ{\\ÿ÷qqÿÿÿÿ„„ÿÿÿeeÿ„„ÿÏÍÍÿèèèÿ���ÿøøøÿüüüÿýýýÿ���ÿ�����������������������������������ÿþþþÿýýýÿûûûÿøøøÿõõõÿìììÿãããÿÓÓÓÿ¯­­ÿuiiÿxEEÿ›//ÿV--ÿ:00ÿM,,ÿÎHHÿÿVVÿÿXXÿÿWWÿÿVVÿÿTTÿÕKKÿi77ÿI<<ÿQEEÿƒKKÿÿjjÿÿssÿÿuuÿÿppÿØSSÿŒmmÿÄÂÂÿáááÿîîîÿöööÿúúúÿýýýÿ���ÿ�����������������������������������ÿþþþÿýýýÿüüüÿùùùÿ÷÷÷ÿðððÿçççÿÜÜÜÿÈÈÈÿ¢  ÿg]]ÿ[AAÿPFFÿfbbÿ^99ÿæNNÿÿVVÿÿUUÿÿSSÿÿRRÿçJJÿh00ÿF;;ÿ���ÿa??ÿÜVVÿÿffÿÿhhÿÿiiÿÿllÿR��ÿ‹ggÿ°®®ÿØØØÿéééÿóóóÿùùùÿüüüÿ���ÿ�����������������������������������ÿ���ÿýýýÿüüüÿ���ÿÿòòòÿëëëÿ���ÿ���ÿ¼¼¼ÿ¡  ÿ���ÿ���ÿ}}ÿd@@ÿZ��ÿ��ÿÿSSÿÿQQÿy��ÿB��ÿR22ÿa]]ÿ���ÿq99ÿôWWÿÿ``ÿÿ``ÿÿ``ÿÿddÿ`��ÿZZÿ„yyÿÇÅÅÿ���ÿðððÿ÷÷÷ÿûûûÿ���ÿ�����������������������������������ÿþþþÿýýýÿüüüÿûûûÿùùùÿôôôÿíííÿäääÿ×××ÿÇÇÇÿ···ÿ©©©ÿžžžÿ‰‡‡ÿbCCÿËKKÿìOOÿÿRRÿÿPPÿäGGÿd,,ÿD88ÿa]]ÿY99ÿÑKKÿÿZZÿÿZZÿÿYYÿÿZZÿÿ]]ÿÿeeÿäffÿ†jjÿ´²²ÿ���ÿìììÿõõõÿúúúÿ���ÿ�����������������������������������ÿþþþÿýýýÿüüüÿûûûÿúúúÿöööÿñññÿéééÿÞÞÞÿÑÑÑÿÃÃÃÿ···ÿ«««ÿ–””ÿ`UUÿbBBÿo88ÿÍGGÿáIIÿÂAAÿR22ÿ`\\ÿH==ÿm55ÿîQQÿÿXXÿÿWWÿÿUUÿÿUUÿÿXXÿÿ``ÿÿffÿ“]]ÿ‰~~ÿÌËËÿèèèÿòòòÿùùùÿ���ÿ�����������������������������������ÿþþþÿýýýÿüüüÿûûûÿúúúÿ÷÷÷ÿôôôÿîîîÿæææÿÜÜÜÿÑÑÑÿÆÆÆÿ»»»ÿ¯¯¯ÿ™˜˜ÿ„‚‚ÿWMMÿ^??ÿ_;;ÿW88ÿI>>ÿb^^ÿZ::ÿÐJJÿÿWWÿÿWWÿÿTTÿÿRRÿÿRRÿÿTTÿ{��ÿöiiÿÌeeÿˆppÿÄÃÃÿäääÿïïïÿ÷÷÷ÿ���ÿ�����������������������������������ÿþþþÿýýýÿýýýÿûûûÿúúúÿøøøÿöööÿóóóÿíííÿæææÿÞÞÞÿÕÕÕÿËËËÿÁÁÁÿµµµÿ§§§ÿ‘ÿ‡……ÿ‚€€ÿ~||ÿrppÿMAAÿp88ÿðSSÿÿYYÿÿVVÿÿSSÿüQQÿòSSÿäMMÿM��ÿ¨kkÿtUUÿ{qqÿ���ÿßßßÿìììÿõõõÿ���ÿ�����������������������������������ÿþþþÿýýýÿýýýÿüüüÿúúúÿùùùÿøøøÿöööÿóóóÿïïïÿéééÿâââÿÚÚÚÿÐÐÐÿÅÅÅÿ¹¹¹ÿ¬¬¬ÿ¢¢¢ÿ›››ÿ”””ÿ{yyÿbCCÿÖPPÿÿ[[ÿÿYYÿÿTTÿèKKÿÓLLÿ”WWÿ[55ÿ]==ÿZMMÿc\\ÿžœœÿ���ÿÛÛÛÿéééÿóóóÿ���ÿ�����������������������������������ÿ���ÿýýýÿýýýÿ���ÿÿúúúÿúúúÿ���ÿ���ÿõõõÿòòòÿ���ÿ���ÿÞÞÞÿÓÓÓÿ���ÿ���ÿ²²²ÿ©©©ÿ���ÿ���ÿ}FFÿó[[ÿ_��ÿT��ÿÂHHÿf11ÿ���ÿ���ÿH@@ÿ���ÿˆ‡‡ÿ—––ÿ²²²ÿÈÈÈÿÙÙÙÿèèèÿòòòÿ���ÿ�����������������������������������ÿþþþÿýýýÿýýýÿüüüÿûûûÿúúúÿúúúÿúúúÿúúúÿùùùÿøøøÿôôôÿðððÿéééÿàààÿÖÖÖÿÌÌÌÿÂÂÂÿ¹¹¹ÿ¢  ÿx]]ÿÕccÿÜ[[ÿv??ÿb>>ÿY<<ÿKAAÿommÿ{zzÿ€€ÿ’’’ÿžžžÿªªªÿºººÿÊÊÊÿÚÚÚÿèèèÿòòòÿ���ÿ�����������������������������������ÿþþþÿýýýÿýýýÿüüüÿûûûÿúúúÿûûûÿûûûÿüüüÿüüüÿûûûÿùùùÿöööÿñññÿëëëÿãããÿÛÛÛÿÒÒÒÿÊÊÊÿ±¯¯ÿ{jjÿ£mmÿsMMÿYNNÿyvvÿÿ€€ÿÿ“““ÿ™™™ÿ   ÿ©©©ÿ´´´ÿÁÁÁÿ���ÿÞÞÞÿêêêÿóóóÿ���ÿ�����������������������������������ÿþþþÿýýýÿýýýÿüüüÿûûûÿûûûÿûûûÿûûûÿüüüÿýýýÿüüüÿüüüÿúúúÿ÷÷÷ÿóóóÿîîîÿçççÿàààÿØØØÿÀ¿¿ÿ‚{{ÿsggÿf``ÿ‡……ÿ–––ÿ–––ÿ———ÿœœœÿ¡¡¡ÿ§§§ÿ¯¯¯ÿ···ÿÁÁÁÿÍÍÍÿ���ÿåååÿîîîÿöööÿ���ÿ�����������������������������������ÿþþþÿ���ÿ���ÿüüüÿûûûÿ���ÿ���ÿüüüÿüüüÿ���ÿ���ÿýýýÿüüüÿ���ÿ���ÿõõõÿñññÿ���ÿ���ÿÕÕÕÿ¼»»ÿ���ÿ���ÿ£££ÿ¢¢¢ÿ���ÿ���ÿ«««ÿ±±±ÿ���ÿ���ÿÈÈÈÿÑÑÑÿ���ÿ���ÿìììÿóóóÿøøøÿ���ÿ�����������������������������������ÿþþþÿýýýÿýýýÿüüüÿûûûÿûûûÿûûûÿüüüÿýýýÿýýýÿþþþÿþþþÿýýýÿýýýÿûûûÿùùùÿöööÿñññÿêêêÿßßßÿÑÑÑÿÅÅÅÿ¹¹¹ÿ²²²ÿ¯¯¯ÿ±±±ÿ¶¶¶ÿ¼¼¼ÿÄÄÄÿËËËÿÒÒÒÿÙÙÙÿßßßÿæææÿìììÿòòòÿ÷÷÷ÿúúúÿ���ÿ�����������������������������������ÿþþþÿýýýÿýýýÿüüüÿûûûÿûûûÿûûûÿüüüÿýýýÿýýýÿþþþÿþþþÿþþþÿýýýÿýýýÿüüüÿùùùÿõõõÿïïïÿåååÿÚÚÚÿÎÎÎÿÅÅÅÿ¿¿¿ÿ¿¿¿ÿÂÂÂÿÈÈÈÿÏÏÏÿÖÖÖÿÜÜÜÿâââÿçççÿìììÿðððÿôôôÿøøøÿúúúÿüüüÿ���ÿ�����������������������������������ÿþþþÿýýýÿýýýÿüüüÿûûûÿûûûÿûûûÿüüüÿýýýÿýýýÿþþþÿÿÿÿÿÿÿÿÿþþþÿþþþÿýýýÿûûûÿøøøÿóóóÿëëëÿâââÿÙÙÙÿÒÒÒÿÏÏÏÿÏÏÏÿÓÓÓÿÙÙÙÿßßßÿåååÿêêêÿîîîÿñññÿôôôÿ÷÷÷ÿùùùÿûûûÿüüüÿýýýÿ���ÿ�����������������������������������ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ��������������������������������µµµÿµµµÿ´´´ÿ³³³ÿ³³³ÿ²²²ÿ²²²ÿ²²²ÿ³³³ÿ³³³ÿ´´´ÿ´´´ÿµµµÿµµµÿµµµÿµµµÿ´´´ÿ³³³ÿ²²²ÿ¯¯¯ÿ¬¬¬ÿ§§§ÿ£££ÿ¡¡¡ÿ   ÿ¢¢¢ÿ¤¤¤ÿ¨¨¨ÿ«««ÿ­­­ÿ¯¯¯ÿ°°°ÿ±±±ÿ²²²ÿ000ÿ³³³ÿ´´´ÿ´´´ÿµµµÿ111ÿ��������������������������������µµµÿ111ÿ000ÿ000ÿ000ÿ000ÿ000ÿ000ÿ000ÿ000ÿ000ÿ111ÿ111ÿ111ÿ111ÿ111ÿ111ÿ000ÿ000ÿ///ÿ///ÿ...ÿ---ÿ,,,ÿ,,,ÿ---ÿ---ÿ...ÿ///ÿ///ÿ000ÿ000ÿ000ÿ000ÿ000ÿ´´´ÿ111ÿ111ÿ111ÿ111ÿ�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������þ��������������0�������0�������ê$���������������� �@���ò$���������������������������@��������$������Ú$������â$���������(�������R�����������H������H����������/home/donamo/src/wmaker-crm/WPrefs.app/tiff/noopaquesresize.tif���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/speed2s.tiff�����������������������������������������������������0000644�0001750�0001750�00000001002�12214432632�016106� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*���À€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¸sýþ�—Kæ3 tÒe5™Îg¹”²!8Îh4 _F¢OhÔYô&™B¤RéS J©Q›Ué°J}>“Z£Ø+ÕŠ…6»S°Ùm5û]’Ù,³Ø-öêµ¶ÅSŸ\nÖª­f÷L­Òî÷+­öÓzÀÂ'—ì\êoÆ^19<¦W-—ÌfsY¼æw=ŸÐF ����������������������ª�������������� ������� ���� ��²����'��¾��������������������������N���������¸������æ������î�������(�������1���� ��öR���������������speed2s.tif� Imported from XPM image: speed2s.xpm��H������H������ImageMagick�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/mousespeed.tiff��������������������������������������������������0000644�0001750�0001750�00000005552�12214432632�016730� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�` ��� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'°ø°À'B7i²äqJÍ‹m:)2fÊ `6Àôs*âœGo6€òÌž¥h\@%�) ,?À�#€¨ žo5SìkjU‡hP„C(Ö$*¤æpµ-¡­®"ëLd7(§/1ùÜ“,ê0þGr*NÓñaÇ�g0EŒŽé^ŒÌòkx®/­ \ó_¬•à2®ˆV„»õõ²lrƒy«�X;d@ÙÍs̸ ‚ꌌ¤êã.ôŸš3ׯ±óþÎógôª_C7|k¿íAÓ=×êz ß9Êç‚à½RÝûÀP~�ã+:©?¬éûíç†!gæ×UF]tÁ%W\ "ƒáðàù£'$¾ •mXàO"àÑŸ50 Ñ‹”Tº£à'ù3‹‘ u™ñ˜cŒ!`þ¨“?¼ã‰Ö,þÌ ì„¹†&1Ü5Š@kÀE•Üä¹tŠ~~£ ×bf<ÖÀš?ü2àŠŒùK3ÖØiÌ’;S0 �„ì¡NJ2•�ENôÁ'/~IÉ—ß8©å7¥Ôå73&Šà¯&2…Òâù#¤¤X3‹Ý?þ(“?¿éãáò‰8r«À–úªy§­:~=á×büù%¨6~)®³°X˜ª—?¦ˆ•À†ùó:þêeªØ´b/“²ýæÞ–ùC¶5šÔGL`=Ò«Ra@ë¾|Iá $zømÎu7œsžß(èæ—¨žùÃ¥7þHï“? håÏqªù«¹iþ˜´¨"l>þè–¿ª©çOj„8ó <êiùn_ˆˆ@@k"Šª£Ÿ‚ýã7ºnã—Ééùm€éT‚¥j6þz&Š?Ìæá¯NŠ›¨o¦ÊáÎÅû¶ ¾`[–HW`9{0VàÇ ¨ÖÁ’õ¹”™®ýŸ:`~9ÞrA¦øÝˆ_ævàû,Kƒ A[øs›ö2ÊZœÎ%ûíŸ?Žàº£ù„ä8f€;uùÃ_€•!™“yÓéà—Ùóùeá¢Bø-z‹­¶ä˜¿ó™å—ùëùãá&þ¸»•¿‹X¼þîá÷ûùóƒÔþ¾jþÈ|²ÕÖøM žÀ‘æ\à°ös ·É臟–éåïzæùÝ›_V¾à·I~9ý–?L~೟ùcù7þxü“?˜þùã/»Ç½ø 0þ=‰LüÁ.øC|` Èbü‚=ˆø±¨pÌ #ÀÁ1=E,�*!BŒþñbXtéRYX 5~‘:ü"9ŒøÅfXðëgœáš°7·yq>ÿá,ƒ þØ f7º9€ø'0þ#Y‡Á3ŠøƒbTåh|9$˜±2Lc >‹Pà‰1̬Ü9GAœŸè}ü…i–F:þ$\üá&žøƒM|ð‹øãt°ÅÞŠ?p'"¢lŸ@ü៑@Æ?ù#YD'H¶g%†'É L.à%?@9À�ƒ3•0–0²qnRüêÒ8VÓ‡Ðá9éJgºÝïø† °Ì0þ°‘1ü#“øofñHÐI!þ“µ¤á_`Ä7ÏA‰Cv…½”�¾J(f5€!—°BVnpޖܧAHøSºØ¿ØyÂS¹AþxbküA¡€ $þ`]0·»’ÉD¦, ¶ÄGš@øw"àðϘ$22¬¨ áq�Ø%+bKŠ#á×9i¬èÄjzLâëeÊgÀã–_Ø3ž†l ” üa©‚ø :0 ÅüìøÃKeððÊg€•«BQŠF‰lX dä0M˜”p#å5Â/škª%­”Vfš,'þ°]»ô lBAÙ‘?;`©7þ W¿úÖk ÂЊ?v�«! Ãgcª üË¥Šø·Z“"“4d 0 [s0î0ýàOJb(½ú5�ì¶¢®­Ê_� »ôðjsË\ýJ`iw"Ðö�l2¥;,lü㣓$ G G<9̤мÀ[b#¿úÝjUñ‡£î»Úù-xüa¿ðá2ï¾À_áð—K0Ä#^I ~‡Û×lD®2xÁ?nû› ’Ð070üvQu5÷¡!óVü¥«øÃþPêĦîõ û8Â_Kê9·¸ ç#ª»ù ŒJW¦çáÇïh:œÔ¦ _cê ö|@›fMWQ9>üÕÍBÌ“ôò–¾2a}Ãþ‚ÍɆÅNv 5ñ‡­©¤žx6þ„µ^Åe3JHB;~D.2M›%¬(ÏÃÃߌPæ1#–Jz2›x™§Ž­)L~r ˜TÒ§éáÏ•øƒæbð¥ÅÇôI˜EåŽWQc?iIÂ?ž–ÛišX °s€1Fu‚?®¨Y5þr–.8�‹È6¼ µ !m ZY±ÔÂX¯cxÁ"7j|ËW:ÇÂ:4ëÈÒD.@‚áV0URÄâ/52’‰Ýñ§1t}½mä:&1¹aHÜ5þ¶žÿ!â{Â÷güoí(vŒ1å ¯ÏÁ€ñ³|2‘àZƒ,j•„ü…ÉC«‹ðW*͹«‡˜ÅßT*P¡ôu=o†|­'ت“ééø n%ƒjå`V HÒš²ùƒ“Ñs°Š"<ñ±QDâšËŒ·ë 5äU‘y“™![rüui»5ByàÔþ«ã´×²¼°À[8’9%Ø,ÎAêƒ~ÀÐÆšw»¸JWÖ(7l¿í‰âè6ŒáV‡?î¡iî1À\ñ‡˜‡ã’Šè²Ãsœ7ÙK+Sê4BÜ E°Þà‚ #·CÜ6%Œ?½bÛ¨x°8ĵjÔào|¨¼Sð§x”šO­²7þBüö? þ0ž÷ Btö“P—äÓ o5*ƒãWð­f=éIßºà…·U¶ñ”%Î ÃßÊv׸áW`M.hðƬå�ÁŽv?Kø”dâ‰FÚ +ø¯�¤&,†?B…Pö„pøƒˆ€¶ X€°@ PB…?jƒ øóp„? o Ø72H´o C`�÷7DC~@Ç[°ú ‡IP &xó`…Ž�øõ\øósøCp¥WzGpÖc°†?¬u‰‘Xø z ‡žƒ^|hEA`€ JÄa5�JIÏ‚Q¿‚kø2<øP„_ ù°Æ`øép”p‰ð¹tMׂ/jxM˜q}V<7MÄÄ�Å>ŸXÐÔÈM˜8ç9xæ9xs- …÷H…÷H/xÀØ`4¨Ä(kÁR)‰` äTKö(D°V"À†L ˆèTlâè„QņƒFƒF Tð“EŽ�^‹ò˜Œ©˜Ž™˜B@�������(�������,������� ���������������� ������� �1���" ������T ���������������������������3�������W ���������R���������������/home/avatar/Devel/WM/WPrefs/data/mousespeed.tif��created with The GIMP�������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/expert.tiff������������������������������������������������������0000644�0001750�0001750�00000007317�12214432632�016067� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�ø ��Ð$h°à!B† &l¸ð"F b)j 4Œè3 N¼¸�&Š›$Q² ‰ã%L‘,NTi“�(¨ÿìþäÌ#G®lysÉ—§P®‚¹ó—(™“=göÑÓgœ2iÚøi’§O™¸vòøÕ$-\ªT‰¦Í É×*o°¢íJ²ãÄ.:L’4n˜"AÆzÕkV”ºA¼<- ¶/Þ®mË1 Œêık & ™4ÊP¿Zÿ~ó‚zöâZ›]4©ÑSuÎÄE&µÓ¬Xé‘“ó³åÈ6:S†L×ö›;;õ€”²eKòâÉ›?_~ã ÄGv@þüƒ 6lh˜1bD„M™ 7l{‘}R‹­ë°áÀ&:3FÌ?z¸¦š¨e‡ŽÝäÃy~à@Ô9>\�Ä„?€ø0L¹�`þƒ�Á¬ð�`a‡FP@‡È&£ŒSÜ›åÇ{¬}ÃØO½vHCZi =Ždƒ?¾]à‡?~C ~øå€8\�ù @~R$­$ãGÂøpÀå—/¾æ/iþ2Ê @€á �˜ïl!B( ‚4°À 0Y�ÅǸâsŒ1OÈ@ 袛.vÙf…ßÀøHP€�@ÀÝä;KÀøãç`Ë.•”C ‹_Ù]N=³ ²Œ¾eç‹O@�‚ï øå‡ˆã“¾�–@Àrà§À�çŸO €ø�H Á/@|AëV~¬°ÃJt,0ÁB/äeŒ˜cÙ Ã Ÿ/Þø�h ùá“¿ˆÝt“ß0øà#ÙФ=�òãŸÞxNßÊ�6kY"DÖä©3È ’—ÿæP râ‚'ˆðF\€ ˆØb—cX`‚.8áò+l{¨,¢“VZ9fŸÝæj«bq’« 2˜’o^ù ¦øh’?pÛƒOžAH™.@€aï‰ @ùà}¨ús °y°˜¯éù ¶Å¡ùP`öu‹?@ç‡o`$0Áá„3®D Iˆ „ÈG,±ÅRt,1ÅR¢5Ùa‚YfyáŠG€& ‚¿tJ!üÝà•w¾Öwàá@^Qœ'ž·¥…wÀ9�( Y~�× 9Ýü �&“+è³çS–Ëú,ýä+fT°!›ž\èÁ€¼�,` ¢Ã f°"61‹i`ûxt ¤ñ…WƒøšÄ™ƒ#, Z¾€Å�À p¼?xD7î„;À°Ò‹òUpà˨�Ç'Ù‰ƒ_¡ÉL°Ñ¢£µ `|9QXrò…ð (- 0€ èA†,a›{À…d ÇsƓ氆y EUô¡íøÇ¾qW<™ ÀxÆ+^ñ‡¼šÅ§dzüâ XøÇ Úñ 0|� H±–‹)å„ùjQÅø3ˆ–"{¹È`Ú–b�ˆ|â ²–®ÌäÎM_P€�ðAr¬`;`K3¸Án>²’1Š b k a{ØÅ!Žq€Î5âIÇÞ3‹oÀãï(n…{ ÛßÁ—ÜÈÅE�ßø–¡>¼k@’€"NHL)üš[}ÂÇ›Aðï~y�4 >ˆƒcœà’€$HA Òtˆ·” ̈0Ø(Œ¤£Nq†S\àxÀ 0‡ áÀ€æŠJí/(@�0Ò€ƒð*ÍF‚\rq¿`åP|{<^�öÐMf` hÑøø1È@hDüÁ0bs xÅs7´p-"G$È1�à;ØÂ1ªQ‰f¼àS6�¸Ã(ùšK%ùx·?@ P@'Ëô7g¸ñN�à��T%;¼iMåÆÏ€€r`Bš0e|!*GÓ*ݵ°­JSªŽm,aßXD7Zq(¹¼É Bâ&Wp{¼áx ‡äe [;˼$(`h9âÏœ€âbñ†.«�+ØA b¤ )8oàÆ@¯0!ºa×Tjð› 8Â*¦@‹cL øŠ”ˆ“ÍPâ÷x«æðJ\í J…øK–0Tª YBGfÒP…ßv€K[@,XÀ`)p‚§2b¡I”ã®è¡ëôf A€†cÌáõ¨B~€‹#jÏÆŽW nq‡;üämø¡0#Þ%m»œ$>øm[)H#¦Pe¼õ òV_@Ð ‚:T 5(v6Ž’ƒ#º¸a?$}P �À@ÒñŽCœ¢�Ÿ@Á¹åî,¼PòÇOìJWïzâ=8žÀÂ=†_õÜŒ€”6û&<ÁÉÆ’óaÛx À–°›x:hNI~Àˆè|Ãä™7Eœ£ -À6†Lh€yñ |x¬Wx :^ÿ„ô"‹�Xùht “Öœî@|  @.�HÀÒ½ÑåMôF~ÀpQ|^,kªŽ{\ax@�&’‘‰r¼ªµ€Œ’·aDÜsF BÎI"-ãš�$Ç(à4™0sÎP^5"à�à™+€*”¡ºÎoŒœ› :Œ #aÈEZu�8<a XÃ*b1Ž}< p)ÇwÆ‹72ïøÀ›J¹jD² K‹$ô´ N„¯(‰ÀxÄ;Þ€0çÖpÀB¯ñ YHC4 âÙ†»ÐzÀà üeUUúXXC@q†MtâpÁ9¾5™à/ì:ÀkÆqgÜá¡>—&¥K.- †;€‘Q‰å H²ãhþÔ1¡ -è6怡é tP]ð—A�ƒZd8F @A‚œ{Ox!§t�„O@�x®'îð„C•)8áÀ ‰Oá™±&æ”ÉcfÀí—¸Á#¼áoJ_ôA]x(1¶WÀ=𡇩:Ј< ÷Óa‰€†_ƒ`óXn'*<IO›÷ʤ+$µçLPR—‚t pÀ ˆ€9È€‡\ãT†(„ úló!²—#€ 0ŸÄQÌDhBxƒk8€^À*@B`�J J˜§?Ø€ X‡G¸µy¸ðnxZ2 nœ×N:‚WøÂ5ÄD€8@8@\ L±ƒOÙÖ$b† F j jX…eX…9˜95 �0is°�“jSÀ/UCP@‡^h–�˜ƒ)Àø   T…ý0…8„8S8'x€;™„sE‡GfX�µ>gÎ ÀLX…MØ  P%ûóA…mÐmÔ2¸}Ð}PPTH<Y#€‰¬€ˆXèƒ2@€8ƒQÀ�8‡O€nàn‹EP˜ŽX5XQT8%'øs€À<FD^Ð�Р(�ƒƒ˜Š˜†4H†´HES] €Ž•È %U,˜…1@˜^@NØ{ø^à^›Áa éB�i�tÀ�t(…(ëx‡Xˆ†ØX@IM90Š€Ž53��x˜„^€‚û,`‚C)àž¸@²¸J´GnV  pèL"p�;pˆä¿ÈˆÎ¶YED˜‚.�€3˜ƒ;`˜€xŽSà¥wŸVd¬ÃFS(äÇÖà">>àOiÞHPePIräT˜�¡c€LUSd€†Ah¸€ x>„fXcII$JôÆ«àqPUPÄ=ÀyùèKe�îT£côÒM Ã_dƒ�3X†{Y¨ƒ Ø…´&sˆkƒöÿÈ‚�ô,THŒNßø×O€HMWà ‡1€†5�PàJˆ‚i¸S0ÆA@SH[ÑÇ„àA~Y28ˆ‚¸ÂGðø'k�ÏÊhX‚Ux†~¨$à:ˆ‡xS0ÂAŸÂü!,bCƒÎâB@Îðð'°§œ`®áºø§ õ‰õäO-(X„)¸vh,ÐH€~XÅ Ìò©¤u¹ì%öÄ@A…V`V0C0FɼBS–gÅȈñ\Ä|€†)ƒÿØpàÚ܇Â@•ì¢t‹+„œ  +6`!Z˜„q˜„eX„å|I;� ‡Â÷pf"“ä‹\*…y˜X†^x$@…tx�`00NÞ‚Cú¸LA.l Äýü„«2°LoJË€PÉ SXX‚eø†h 2Ȇ#xELÄ.XüEºì`|(Ä�@^½,Øt…ˆ‚˜¼D“²‹çÈJ,DÀƒ¸w¨…rØj †&Ø„S0=0ÌÂÊ´´E6L�J J`6`Ðhƒvhƒ8ˆ†¸ôÆg|,"SD"†Q†)˜)`f`AàA‡-¸ +A…H!¼CÑš€a¨†Z¨EEà^àKoìÆÞøç£’,­ÔRõbÌcCfº<«”Jñÿà)ìÒC~°ÃÔ�¡}§( E Èàrj@À{“¬7´.$KotƴȨêZ)غÇüZ-¦ª-ÝJÑÂÉóF9TˆDn’&m²&oŠ&p‡hoʦo†fl&DB@������0�������0�������¦���������������� ������� �#���¬���������������������������8�������ð ���������=��������������/home/largo/newWPicons/expert.tiff������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/opaqueresize.tiff������������������������������������������������0000644�0001750�0001750�00000022457�12214432632�017276� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�$���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ�����������������������������������ÿµµµÿµµµÿµµµÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿœœœÿ���ÿÿÿÿÿ���ÿœœœÿ���ÿÿÿÿÿ���ÿœœœÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ�����������������������������������ÿµµµÿ���ÿµµµÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿÿÿÿÿœœœÿ���ÿ���ÿÿÿÿÿœœœÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ�����������������������������������ÿµµµÿµµµÿµµµÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿœœœÿ���ÿÿÿÿÿ���ÿœœœÿ���ÿÿÿÿÿ���ÿœœœÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ�����������������������������������ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿœœœÿ���ÿ���ÿ���ÿ���ÿ���ÿ��������������������������������µµµÿµµµÿµµµÿ���ÿ���ÿ´´´ÿ���ÿ���ÿ³³³ÿ���ÿ���ÿYYYÿ���ÿ���ÿ³³³ÿ���ÿ���ÿ³³³ÿ���ÿ���ÿ³³³ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ³³³ÿ���ÿ���ÿ���ÿ³³³ÿ���ÿ���ÿ���ÿ³³³ÿ���ÿ���ÿ���ÿ���ÿ�����������������������������������ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ��ÿ7��ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ�����������������������������������ÿþþþÿýýýÿýýýÿüüüÿûûûÿúúúÿúúúÿùùùÿùùùÿùùùÿùùùÿùùùÿùùùÿùùùÿùùùÿùùùÿùùùÿùùùÿùùùÿùùùÿùùùÿùùùÿùùùÿ���ÿùùùÿùùùÿùùùÿùùùÿùùùÿùùùÿ���ÿùùùÿùùùÿùùùÿ���ÿúúúÿúúúÿûûûÿ���ÿ�����������������������������������ÿýýýÿüüüÿûûûÿùùùÿ÷÷÷ÿöööÿõõõÿõõõÿôôôÿôôôÿôôôÿôôôÿõõõÿõõõÿõõõÿõõõÿõõõÿõõõÿõõõÿõõõÿõõõÿõõõÿõõõÿ���ÿõõõÿõõõÿõõõÿõõõÿõõõÿõõõÿ���ÿõõõÿõõõÿõõõÿ���ÿõõõÿöööÿ÷÷÷ÿ���ÿ�����������������������������������ÿýýýÿûûûÿøøøÿõõõÿõõõÿðððÿïïïÿëëëÿàßßÿßÝÝÿÞÜÜÿàßßÿëëëÿîîîÿïïïÿðððÿðððÿðððÿðððÿðððÿðððÿðððÿðððÿ���ÿðððÿðððÿðððÿðððÿðððÿðððÿ���ÿðððÿðððÿðððÿ���ÿðððÿñññÿóóóÿ���ÿ�����������������������������������ÿüüüÿùùùÿõõõÿñññÿðððÿêêêÿèèèÿÙØØÿªŸŸÿ¶——ÿ´••ÿªŸŸÿØÖÖÿçççÿéééÿêêêÿëëëÿëëëÿëëëÿëëëÿëëëÿëëëÿëëëÿ���ÿëëëÿëëëÿëëëÿëëëÿëëëÿëëëÿ���ÿëëëÿëëëÿêêêÿ���ÿêêêÿëëëÿîîîÿ���ÿ�����������������������������������ÿûûûÿ÷÷÷ÿóóóÿíííÿëëëÿåååÿßßßÿÅÄÄÿ«ÿþ™™ÿþ˜˜ÿ¬ÿÏÍÍÿàààÿäääÿæææÿèèèÿéééÿéééÿéééÿéééÿéééÿéééÿ���ÿéééÿéééÿéééÿéééÿéééÿéééÿ���ÿéééÿèèèÿçççÿ���ÿæææÿæææÿéééÿ���ÿ�����������������������������������ÿúúúÿöööÿñññÿêêêÿéééÿáááÿÐÏÏÿ›‘‘ÿ¹€€ÿÿ™™ÿÿ——ÿª††ÿÈÆÆÿÜÜÜÿáááÿåååÿèèèÿéééÿêêêÿêêêÿêêêÿêêêÿêêêÿ���ÿêêêÿêêêÿêêêÿêêêÿêêêÿêêêÿ���ÿêêêÿéééÿçççÿ���ÿäääÿäääÿæææÿ���ÿ�����������������������������������ÿúúúÿõõõÿïïïÿéééÿçççÿÛÚÚÿ¿¾¾ÿ£„„ÿþŽŽÿÿ••ÿÿˆˆÿ›||ÿÃÁÁÿØØØÿàààÿæææÿêêêÿìììÿíííÿîîîÿîîîÿîîîÿîîîÿ���ÿîîîÿîîîÿîîîÿîîîÿîîîÿîîîÿ���ÿíííÿìììÿêêêÿ���ÿåååÿäääÿæææÿ���ÿ�����������������������������������ÿùùùÿõõõÿïïïÿèèèÿæææÿÎÍÍÿ˜ÿ²yyÿÿŽŽÿÿˆˆÿ£kkÿƒwwÿ°®®ÿÄÃÃÿÐÏÏÿäääÿìììÿðððÿòòòÿóóóÿóóóÿôôôÿôôôÿ���ÿôôôÿôôôÿôôôÿôôôÿôôôÿôôôÿ���ÿóóóÿñññÿïïïÿ���ÿèèèÿæææÿæææÿ���ÿ�����������������������������������ÿùùùÿõõõÿîîîÿçççÿæææÿ¿¼¼ÿ ÿÿ‡‡ÿÿŠŠÿþxxÿ…eeÿ”ÿ„zzÿ•~~ÿœ’’ÿÍËËÿêêêÿòòòÿõõõÿ÷÷÷ÿøøøÿøøøÿøøøÿ���ÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿ���ÿ÷÷÷ÿöööÿóóóÿ���ÿëëëÿèèèÿçççÿ���ÿ�����������������������������������ÿùùùÿôôôÿîîîÿæææÿåääÿ˜ŒŒÿ­uuÿÿ‡‡ÿÿ}}ÿ’ZZÿnbbÿ‹‡‡ÿ…iiÿà~~ÿ­}}ÿ ””ÿÒÐÐÿîîîÿõõõÿøøøÿúúúÿúúúÿûûûÿ���ÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿ���ÿúúúÿøøøÿöööÿ���ÿìììÿéééÿèèèÿ���ÿ�����������������������������������ÿùùùÿôôôÿíííÿäääÿáßßÿŸ‚‚ÿÿ‚‚ÿÿ‚‚ÿómmÿvVVÿ{{ÿh^^ÿ’]]ÿÿƒƒÿÿŒŒÿ³ÿ¦››ÿßÝÝÿòòòÿ÷÷÷ÿúúúÿûûûÿüüüÿ���ÿýýýÿýýýÿýýýÿýýýÿýýýÿýýýÿ���ÿüüüÿúúúÿ÷÷÷ÿ���ÿîîîÿêêêÿéééÿ���ÿ�����������������������������������ÿùùùÿôôôÿìììÿâââÿÝÛÛÿ||ÿÿÿÿwwÿ‰QQÿ`TTÿyuuÿoRRÿäiiÿÿÿÿÿÿŒŒÿª‹‹ÿÒÑÑÿÞÝÝÿâááÿéèèÿöööÿûûûÿ���ÿýýýÿýýýÿýýýÿþþþÿþþþÿþþþÿ���ÿýýýÿûûûÿøøøÿ���ÿîîîÿêêêÿéééÿ���ÿ�����������������������������������ÿùùùÿóóóÿêêêÿàààÿÙ××ÿ’vvÿëttÿæhhÿoOOÿuqqÿYOOÿ|GGÿÿiiÿÿxxÿÿÿÿÿœ}}ÿ¼¹¹ÿ¦››ÿ³™™ÿ±§§ÿÚÙÙÿéèèÿ���ÿûûûÿüüüÿüüüÿýýýÿýýýÿýýýÿ���ÿüüüÿûûûÿøøøÿ���ÿîîîÿêêêÿéééÿ���ÿ�����������������������������������ÿøøøÿòòòÿéééÿÞÞÞÿ×ÖÖÿ„{{ÿccÿuWWÿ_TTÿrnnÿcFFÿÒWWÿÿhhÿÿooÿÿooÿ•]]ÿ~rrÿ¤  ÿ¤„„ÿþ––ÿÈÿ»ššÿ²§§ÿ���ÿèççÿöööÿ÷÷÷ÿíììÿëêêÿîííÿ���ÿüüüÿúúúÿøøøÿ���ÿîîîÿêêêÿéééÿ���ÿ�����������������������������������ÿøøøÿòòòÿéééÿÜÜÜÿ×××ÿ²±±ÿ¢  ÿ–””ÿƒÿXLLÿvAAÿö\\ÿÿddÿÿeeÿã]]ÿuUUÿ‹‡‡ÿ}qqÿªrrÿÿ––ÿÿŸŸÿÿžžÿÇÿ���ÿ´©©ÿåããÿèææÿ¹°°ÿÁ¦¦ÿº±±ÿ���ÿøøøÿùùùÿ÷÷÷ÿ���ÿîîîÿêêêÿéééÿ���ÿ�����������������������������������ÿøøøÿòòòÿéééÿÝÝÝÿ×××ÿÁÁÁÿ³³³ÿ¦¦¦ÿ‡……ÿgKKÿÑVVÿÿ``ÿÿ``ÿöYYÿyAAÿ\PPÿ{{ÿ~__ÿþxxÿÿŽŽÿÿ——ÿÿœœÿÿœœÿ;��ÿ´••ÿ×ÖÖÿÓÑÑÿ¼žžÿþ¥¥ÿ¾  ÿ���ÿñññÿöööÿõõõÿ���ÿíííÿêêêÿéééÿ���ÿ�����������������������������������ÿøøøÿòòòÿéééÿÞÞÞÿØØØÿÄÄÄÿ¸¸¸ÿ¢  ÿi^^ÿIIÿú__ÿÿaaÿÿ]]ÿÔNNÿ]<<ÿe``ÿZNNÿ‡OOÿÿrrÿÿ€€ÿÿ††ÿÿŒŒÿÿ‘‘ÿB��ÿ¥††ÿÀ½½ÿ¢––ÿ¼††ÿÿ¡¡ÿÉ‘‘ÿ���ÿáßßÿðððÿòòòÿ���ÿíííÿêêêÿéééÿ���ÿ�����������������������������������ÿùùùÿóóóÿêêêÿàààÿÜÜÜÿÊÊÊÿÀÀÀÿ¨¦¦ÿ~__ÿéccÿÿhhÿÿbbÿòUUÿn77ÿB55ÿE88ÿr??ÿæ\\ÿÿllÿÿrrÿÿvvÿÿzzÿÿyyÿ���ÿ…yyÿ¦¢¢ÿ—yyÿõssÿÿ™™ÿÿ™™ÿ���ÿÖÔÔÿêêêÿîîîÿ���ÿìììÿéééÿéééÿ���ÿ�����������������������������������ÿùùùÿôôôÿìììÿãããÿàààÿÑÑÑÿÈÈÈÿ±¯¯ÿ…ffÿïiiÿÿkkÿÿaaÿßPPÿZ77ÿXSSÿZ88ÿÕOOÿÿ``ÿÿddÿÿffÿÿhhÿÿkkÿÿhhÿ���ÿŽŠŠÿ|qqÿ¢jjÿÿƒƒÿÿ’’ÿÿÿ���ÿÀ¾¾ÿßßßÿéééÿ���ÿêêêÿéééÿèèèÿ���ÿ�����������������������������������ÿùùùÿôôôÿíííÿæææÿãããÿ×××ÿÐÐÐÿ»¹¹ÿ~ttÿŒYYÿé``ÿ÷VVÿ¡@@ÿA++ÿ=00ÿl55ÿðSSÿÿ\\ÿÿ\\ÿÿ\\ÿÿ]]ÿÿ^^ÿÛUUÿ���ÿ}yyÿ{\\ÿ÷qqÿÿÿÿ„„ÿÿÿ���ÿŽƒƒÿÌÊÊÿâââÿ���ÿèèèÿèèèÿèèèÿ���ÿ�����������������������������������ÿùùùÿõõõÿîîîÿèèèÿæææÿÜÜÜÿ×××ÿËËËÿ«©©ÿsggÿxEEÿ›//ÿV--ÿ:00ÿM,,ÿÎHHÿÿVVÿÿXXÿÿWWÿÿVVÿÿTTÿÕKKÿi77ÿ���ÿQEEÿƒKKÿÿjjÿÿssÿÿuuÿÿooÿ ��ÿ‹llÿÁ¿¿ÿÛÛÛÿ���ÿæææÿæææÿèèèÿ���ÿ�����������������������������������ÿ���ÿ���ÿ���ÿ���ÿÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿZ��ÿ��ÿ��ÿ��ÿ��ÿ`��ÿ���ÿ���ÿ���ÿa??ÿÜVVÿÿffÿÿhhÿÿiiÿÿllÿR��ÿ‰eeÿ­««ÿÒÒÒÿ���ÿãããÿåååÿçççÿ���ÿ�����������������������������������ÿùùùÿõõõÿïïïÿêêêÿéééÿâââÿÞÞÞÿØØØÿÍÍÍÿºººÿ ŸŸÿ‘ÿ‰ˆˆÿ}}ÿd@@ÿçOOÿÿUUÿÿSSÿÿQQÿþNNÿÇAAÿR22ÿa]]ÿK??ÿq99ÿôWWÿÿ``ÿÿ``ÿÿ``ÿÿddÿ`��ÿŽXXÿvvÿÁ¿¿ÿ���ÿàààÿãããÿæææÿ���ÿ�����������������������������������ÿùùùÿõõõÿðððÿêêêÿêêêÿäääÿáááÿÜÜÜÿÒÒÒÿÅÅÅÿ¶¶¶ÿ©©©ÿžžžÿ‰‡‡ÿbCCÿËKKÿìOOÿÿRRÿÿPPÿäGGÿd,,ÿD88ÿa]]ÿY99ÿÑKKÿÿZZÿÿZZÿÿYYÿÿZZÿÿ]]ÿw��ÿãeeÿƒggÿ®¬¬ÿ���ÿÝÝÝÿáááÿåååÿ���ÿ�����������������������������������ÿùùùÿõõõÿðððÿëëëÿëëëÿåååÿäääÿáááÿÚÚÚÿÏÏÏÿÂÂÂÿ¶¶¶ÿ«««ÿ–””ÿ`UUÿbBBÿo88ÿÍGGÿáIIÿÂAAÿR22ÿ`\\ÿH==ÿm55ÿîQQÿÿXXÿÿWWÿÿUUÿÿUUÿÿXXÿ��ÿÿeeÿZZÿƒxxÿ���ÿØØØÿÞÞÞÿäääÿ���ÿ�����������������������������������ÿùùùÿõõõÿðððÿëëëÿëëëÿçççÿçççÿæææÿâââÿÚÚÚÿÐÐÐÿÅÅÅÿ»»»ÿ¯¯¯ÿ™˜˜ÿ„‚‚ÿWMMÿ^??ÿ_;;ÿW88ÿI>>ÿb^^ÿZ::ÿÐJJÿÿWWÿÿWWÿÿTTÿÿRRÿÿRRÿÿTTÿ{��ÿöhhÿÉbbÿ‚jjÿ���ÿÔÔÔÿÛÛÛÿâââÿ���ÿ�����������������������������������ÿùùùÿõõõÿðððÿëëëÿëëëÿèèèÿêêêÿëëëÿéééÿäääÿÝÝÝÿÕÕÕÿËËËÿÁÁÁÿµµµÿ§§§ÿ‘ÿ‡……ÿ‚€€ÿ~||ÿrppÿMAAÿp88ÿðSSÿÿYYÿÿVVÿÿSSÿüQQÿòSSÿäMMÿM��ÿ¦iiÿqRRÿukkÿ���ÿÏÏÏÿØØØÿàààÿ���ÿ�����������������������������������ÿ���ÿ���ÿ���ÿ���ÿÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿB��ÿy��ÿ~��ÿw��ÿ`��ÿM��ÿ��ÿ���ÿ���ÿXKKÿ`YYÿ˜––ÿ���ÿËËËÿÖÖÖÿÞÞÞÿ���ÿ�����������������������������������ÿùùùÿõõõÿðððÿëëëÿìììÿêêêÿíííÿñññÿóóóÿóóóÿñññÿíííÿçççÿÞÞÞÿÓÓÓÿÈÈÈÿ¼¼¼ÿ²²²ÿ©©©ÿ–””ÿaVVÿ}FFÿó[[ÿôXXÿäRRÿÂHHÿf11ÿV66ÿI<<ÿH@@ÿussÿ‡††ÿ”““ÿ¬¬¬ÿ���ÿÊÊÊÿÔÔÔÿÝÝÝÿ���ÿ�����������������������������������ÿùùùÿõõõÿðððÿëëëÿìììÿêêêÿîîîÿòòòÿöööÿ÷÷÷ÿ÷÷÷ÿôôôÿðððÿéééÿàààÿÖÖÖÿÌÌÌÿÂÂÂÿ¹¹¹ÿ¢  ÿx]]ÿÕccÿÜ[[ÿv??ÿb>>ÿY<<ÿKAAÿommÿ{zzÿ€€ÿ’’’ÿÿ§§§ÿ´´´ÿ���ÿËËËÿÔÔÔÿÝÝÝÿ���ÿ�����������������������������������ÿùùùÿõõõÿðððÿëëëÿìììÿêêêÿîîîÿóóóÿ÷÷÷ÿúúúÿúúúÿùùùÿöööÿñññÿëëëÿãããÿÛÛÛÿÒÒÒÿÊÊÊÿ±¯¯ÿ{jjÿ£mmÿsMMÿYNNÿyvvÿÿ€€ÿÿ“““ÿ˜˜˜ÿ   ÿ¨¨¨ÿ±±±ÿ»»»ÿ���ÿÎÎÎÿ×××ÿÞÞÞÿ���ÿ�����������������������������������ÿ���ÿ���ÿ���ÿ���ÿÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÕÕÕÿÚÚÚÿàààÿ���ÿ�����������������������������������ÿùùùÿõõõÿðððÿëëëÿìììÿêêêÿîîîÿóóóÿøøøÿûûûÿüüüÿüüüÿüüüÿúúúÿøøøÿõõõÿðððÿêêêÿâââÿÔÔÔÿ»ººÿ¬ªªÿ¡  ÿ£££ÿ¢¢¢ÿ¢¢¢ÿ¥¥¥ÿªªªÿ±±±ÿ¸¸¸ÿ¿¿¿ÿÇÇÇÿÍÍÍÿÓÓÓÿØØØÿÜÜÜÿßßßÿãããÿ���ÿ�����������������������������������ÿùùùÿõõõÿðððÿëëëÿìììÿêêêÿîîîÿóóóÿ÷÷÷ÿúúúÿüüüÿüüüÿüüüÿûûûÿúúúÿøøøÿõõõÿðððÿéééÿÞÞÞÿÐÐÐÿÃÃÃÿ¸¸¸ÿ°°°ÿ®®®ÿ°°°ÿµµµÿ»»»ÿÃÃÃÿÊÊÊÿÐÐÐÿÖÖÖÿÛÛÛÿßßßÿáááÿâââÿãããÿåååÿ���ÿ�����������������������������������ÿùùùÿõõõÿðððÿëëëÿèèèÿéééÿìììÿñññÿõõõÿøøøÿúúúÿûûûÿûûûÿûûûÿúúúÿùùùÿ÷÷÷ÿóóóÿìììÿãããÿ×××ÿËËËÿÂÂÂÿ¼¼¼ÿ¼¼¼ÿ¿¿¿ÿÅÅÅÿÌÌÌÿÓÓÓÿÙÙÙÿÞÞÞÿãããÿæææÿçççÿçççÿæææÿåååÿæææÿ���ÿ�����������������������������������ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ��������������������������������²²²ÿ¯¯¯ÿ«««ÿ¥¥¥ÿ   ÿœœœÿœœœÿžžžÿ¡¡¡ÿ¥¥¥ÿ§§§ÿ©©©ÿ©©©ÿªªªÿªªªÿ©©©ÿ©©©ÿ¨¨¨ÿ¦¦¦ÿ¢¢¢ÿœœœÿ–––ÿÿ‹‹‹ÿ‰‰‰ÿ‹‹‹ÿŽŽŽÿ“““ÿ———ÿ›››ÿŸŸŸÿ¡¡¡ÿ¢¢¢ÿ£££ÿ)))ÿŸŸŸÿœœœÿ›››ÿœœœÿ)))ÿ��������������������������������²²²ÿ///ÿ---ÿ+++ÿ)))ÿ'''ÿ'''ÿ'''ÿ(((ÿ)))ÿ***ÿ***ÿ***ÿ+++ÿ+++ÿ+++ÿ***ÿ***ÿ)))ÿ(((ÿ'''ÿ&&&ÿ$$$ÿ###ÿ###ÿ###ÿ$$$ÿ&&&ÿ'''ÿ(((ÿ(((ÿ)))ÿ)))ÿ)))ÿ(((ÿÿ'''ÿ&&&ÿ'''ÿ)))ÿ�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������þ��������������0�������0�������ê$���������������� �=���ò$���������������������������@��������$������Ú$������â$���������(�������R�����������H������H����������/home/donamo/src/wmaker-crm/WPrefs.app/tiff/opaqueresize.tif������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/nextstyle.tiff���������������������������������������������������0000644�0001750�0001750�00000007644�12214432632�016622� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�X��ttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuttttttttttttttttttttttttttttttttt���""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&&&&&&&&&&&&&&&&&&&(((&&&(((&&&&&&&&&&&&&&&&&&&&&&&&���""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&&&&&&&&&&&&&&&&&&&&&&((((((((((((((((((((((((((((((���""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""((((((���""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""������������������������������������ÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""���ÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööööòöîîî´¶´���ÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""���ÿÿÿ‹”ÞææÿúÿöööææîÍÒͤ¡¤141”‘‹���ÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""���ÿÿÿîöö)()ÅÊÍöòöæææ¤¥¬A@9”‹‹‹���ÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""���ÿÿÿÿÿÿÅÊÍ),)ÕÖÕ´º´10)ÞÚÞ¤¥¤‹‰‹���ÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""���ÿÿÿöúÿöÿÿÞÞÞ)()æêæÅÆÅ”‘‹‹‰ƒ���ÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""���öúÿîòöîîöÕÖÕ ůŤ¥¤ƒƒƒ‰ƒ���ÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""���öööÞÞÞ”•” $ ÍÎͽº½ smsjusƒ{���ÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""���öòö´²´ ()ÅÂÅÞÞÞÞÚÞ¤¥¤ ZUR{u{���ÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""���îîî9<AÍÒÕÕÒÕœ¡¤”•”½º´‹…ƒjmj���ÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""���´¶´”™”¤ª¬”™œ”•‹”‰‹‹‰ƒƒ‹sujƒ}ƒ���ÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""������������������������������������ÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&"""ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&&&&&&&&&&&&&&&&&&&&&&&&&(((((((((((((((((((((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&&&&&&&&&&&&&&&&&&&(((&&&(((((((((((((((((((((((((((���������������������������������������������������������������������������������������������������������������««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««���««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««���««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««���««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««���SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÿÿÿ««««««���������������������������������������������������������������������������������������������������«««ÿÿÿ««««««���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿÿÿ««««««���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿÿÿ««««««���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿÿÿ««««««���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿÿÿ««««««���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿÿÿ««««««�����þ��������������%�������!�������*���������������� �N���0������~���������������������������@�������O������”������œ���������(��������������/exports/home/wettoad/Coding/WM-0.80.0-patched/WPrefs.app/tiff/nextstyle.tiff�Created with The GIMP����H������H�����������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/drawer.tiff������������������������������������������������������0000644�0001750�0001750�00000022524�12214432632�016041� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�$����������������������������������������������������������������������������������������������������������Þßîÿ‘ ÿ’“¢ÿ}~ˆÿ²²²ÿ688ÿmnmÿ ÿÿdfeÿVXWÿ" ÿ:>=ÿVYXÿFHGÿ466ÿ:<;ÿ‘’ÿprÿps€ÿrt‚ÿ019ÿ��������������������������������������������������������������������������������������������������������ÜÝìÿŽžÿ‘ ÿ{|†ÿ¶¶¶ÿ6:9ÿrutÿ+/-ÿ/53ÿafdÿEKIÿ+1/ÿW\ZÿTXWÿFIHÿ587ÿ=@?ÿÿmpÿoqÿorÿ/18ÿ��������������������������������������������������������������������������������������������������������ÚÛêÿŒœÿŽžÿwyƒÿ»»»ÿÿ%+)ÿ7=:ÿNUSÿY_^ÿ;C@ÿAHEÿ\b`ÿPUSÿBGFÿ376ÿ?BAÿŽ‹ÿln}ÿlo|ÿmp~ÿ./7ÿ��������������������������������������������������������������������������������������������������������ØÙèÿŠŒšÿŒœÿuw€ÿ¾¾¾ÿÿ.53ÿFMKÿ`heÿPXVÿ@JGÿXa^ÿT\ZÿIQNÿ<C@ÿ.53ÿBFEÿ‹Œˆÿil{ÿkm{ÿkn{ÿ-.6ÿ��������������������������������������������������������������������������������������������������������ÖØæÿˆ‰˜ÿŠ‹šÿrs}ÿÃÃÃÿ!ÿ4<9ÿ;DAÿJTQÿLVSÿO[WÿV`\ÿMXTÿCMIÿ9B?ÿ3:8ÿGLKÿˆ‰‡ÿhkyÿikyÿjmzÿ+-5ÿ��������������������������������������������������������������������������������������������������������ÔÖäÿ†ˆ–ÿˆ‰˜ÿoqzÿÈÈÈÿ#!ÿ8@>ÿ@IFÿHROÿNZVÿUb^ÿS`[ÿLXTÿEPLÿ=FCÿ6=;ÿLPOÿ‡ˆ…ÿfiwÿgjwÿgjxÿ*,4ÿ��������������������������������������������������������������������������������������������������������ÓÔãÿ„†”ÿ†‡–ÿlnwÿÍÍÍÿ#!ÿ8A>ÿ@JGÿHSOÿP\XÿWd`ÿUb^ÿMZUÿFPMÿ>GDÿ6=;ÿOSRÿ„…‚ÿdguÿehuÿfivÿ)+3ÿ��������������������������������������������������������������������������������������������������������ÐÒàÿ‚„’ÿ„†”ÿikuÿÓÓÓÿ ÿ#*(ÿ)1.ÿ/85ÿ3>;ÿ6A>ÿ6@>ÿ2<9ÿ-63ÿ'/-ÿ!(&ÿDHHÿ‚ƒÿbetÿcfsÿcftÿ(*1ÿ��������������������������������������������������������������������������������������������������������ÏÐßÿ€‚ÿ‚ƒ’ÿbcmÿØØØÿÕÖÖÿ×××ÿר×ÿרØÿØØØÿØÙØÿØÙØÿØØØÿרØÿ×××ÿ×××ÿßßßÿ…†„ÿUXeÿadqÿberÿ')0ÿ��������������������������������������������������������������������������������������������������������ÌÎÜÿ€ÿ€‚ÿhjvÿ.02ÿ+,/ÿ*+.ÿ)+.ÿ)*-ÿ(*-ÿ(),ÿ')+ÿ&(+ÿ&'*ÿ&'*ÿ%')ÿ$&)ÿ&(+ÿMOZÿ_boÿ_cpÿ&(/ÿ��������������������������������������������������������������������������������������������������������ËÌÛÿ|~Œÿÿz{‰ÿrt€ÿoq~ÿmo|ÿln{ÿjmxÿhjwÿfiuÿegsÿberÿadoÿ_anÿ]`lÿ[^kÿZ]iÿ]`mÿ]amÿ^anÿ%'.ÿ��������������������������������������������������������������������������������������������������������ÈÊØÿ{}‹ÿ|~Œÿz|Šÿxzˆÿvx†ÿtw„ÿrt‚ÿps€ÿnp~ÿlo|ÿjmzÿhkxÿfivÿdgtÿberÿadqÿ^bnÿ]`mÿ[^kÿ\_lÿ#%-ÿ��������������������������������������������������������������������������������������������������������ÇÉ×ÿxzˆÿ{}‹ÿxzˆÿwy‡ÿtw„ÿsuƒÿps€ÿoqÿlp|ÿkm{ÿilyÿgjwÿehuÿcfsÿadqÿ_boÿ]amÿ[^kÿY]iÿZ]jÿ"$,ÿ��������������������������������������������������������������������������������������������������������ÀÂÐÿtv„ÿuw…ÿtv„ÿqtÿpr€ÿmp}ÿln|ÿilyÿhkxÿehvÿdgtÿberÿ`cpÿ^anÿ\_lÿZ^jÿX[hÿVZfÿTXdÿTXeÿ ")ÿBBGMABFMABFM&&)MKKMMLLMMKLMMKKMMJJMMIJMMIIMMHIMMHHMMGGLMFGKMFFKMEFJMEEIMDEIMDDIMCCHMCCGMBBGMABFMBBFM!@|}„ÿkltÿkltÿijsÿiisÿghqÿfgpÿefoÿdenÿbclÿabkÿ`ajÿ_`iÿ]_gÿ\]fÿ[]eÿZ[dÿYZcÿWYaÿVX`ÿVXaÿ+-1ÿ¥§µÿ£¥³ÿ¢¤²ÿFHQÿ÷÷ÿÿÃÄÒÿÄÄÓÿÂÃÒÿÀÁÐÿ¾¿Îÿ¼½Ìÿº»Êÿ¸¹Èÿ·¸Çÿ´µÄÿ³´Ãÿ°²Àÿ¯°¿ÿ¬®¼ÿ«¬»ÿ¨«¸ÿ§¨·ÿ¥§µÿ£¥³ÿ£¥³ÿ:;DÿþþþþÈÈ×ÿÈÈ×ÿÆÇÖÿÄÅÔÿÂÂÒÿÀÁÐÿ¾¾Îÿ¼½Ìÿº»Ëÿ¸¹Èÿ¶¸Çÿ´µÄÿ²´Ãÿ°±Àÿ®°¿ÿ¬®¼ÿª¬»ÿ¨ª¸ÿ§©·ÿ¨ª¹ÿ@AIÿ}ÿz|Šÿy{‰ÿ78Aÿôôÿÿ˜˜©ÿ›œ«ÿ™®ÿ›—¬ÿ™•ªÿ—“¨ÿ•‘¦ÿ“¤ÿ‘¢ÿŒ ÿŠžÿ‹ˆœÿ‰†šÿ‡„˜ÿ…ƒ–ÿƒ€”ÿ€’ÿ}ÿz|‹ÿz|Šÿ/08ÿôôÿÿ™™ªÿ›œ«ÿ™š©ÿ—˜§ÿ•–¥ÿ“”£ÿ‘“¡ÿ‘ ÿŽžÿŒœÿŠ‹šÿˆ‰˜ÿ†‡–ÿ„…”ÿ‚„’ÿ€ÿ~€Žÿ|~Œÿz|Šÿ{}‹ÿ67@ÿ|~Œÿ{}‹ÿy{‰ÿ78Aÿòòÿÿ™™©ÿœœ¬ÿ^ªdÿa§hÿ`¥fÿ`¥fÿ`£dÿ_¡cÿ_Ÿbÿ^žaÿ]œ_ÿ]›^ÿ\™]ÿ\˜\ÿ[•Zÿ[”YÿZ’XÿX’Uÿu€ÿz|Šÿ.08ÿòòÿÿ™š©ÿ›œ«ÿ™š©ÿ——§ÿ•–¥ÿ”•¤ÿ‘’¡ÿ‘ ÿŽÿŒœÿ‰‹™ÿˆ‰˜ÿ…‡•ÿ„…”ÿƒ‘ÿ€‚ÿ~€Žÿ|~Œÿ{}‹ÿ{}‹ÿ67?ÿ{}‹ÿxzˆÿxzˆÿ57?ÿðñÿÿ—˜§ÿššªÿrxÿ`[eÿa]eÿuq~ÿ~‹†ÿzˆƒÿ€}Œÿ“ÿ—” ÿ|y‡ÿwvƒÿa„eÿtr€ÿqo}ÿpmzÿesjÿp}|ÿxz‰ÿ-.6ÿððÿÿ˜˜¨ÿ™š©ÿ–—¦ÿ••¥ÿ“”£ÿ‘’¡ÿ¢ÿŠŽ¢ÿˆŒ ÿ‡ŠŸÿ…ˆÿƒ†›ÿ€„˜ÿ‚–ÿ|€”ÿz~’ÿx|ÿz{‰ÿxzˆÿy{Šÿ46>ÿxzˆÿwy‡ÿux…ÿ45?ÿîïþÿ••¥ÿ˜™¨ÿrŸyÿ! #ÿééíÿ336ÿ‚“‹ÿwˆ~ÿ¹º¿ÿ½¾Åÿ¼½Åÿ¼½Áÿˆ‰ÿ]€_ÿpr{ÿnoxÿlmwÿarfÿo|{ÿvy†ÿ,-6ÿîïþÿ––¦ÿ—˜§ÿ”•¤ÿ“”£ÿ‘’¡ÿ£ÿ¨•`ÿ²–Bÿ­>ÿ¨Œ9ÿ¥‰6ÿ©9ÿ©:ÿ©:ÿ§‹8ÿ©:ÿ¦Š6ÿtxÿwy‡ÿwz‡ÿ45=ÿwy‡ÿuw…ÿtv„ÿ34=ÿììüÿ“”£ÿ––¦ÿl˜qÿ{{…ÿNNQÿ££¥ÿ;C;ÿpyrÿ88:ÿ““šÿ»¼Äÿ¹ºÂÿÁÂÈÿ®¬µÿ‡‰ÿmmwÿhirÿ_pdÿmzxÿtv…ÿ+,4ÿììüÿ”•¤ÿ––¦ÿ’”¢ÿ‘’¡ÿ¬›rÿÀŸ@ÿ¼Aÿ¸›Aÿµ—>ÿ´–<ÿ±“:ÿ³”<ÿ²•<ÿ³•<ÿ±’:ÿ§‹8ÿ—4ÿsw‹ÿtw„ÿuw†ÿ23<ÿuw…ÿsuƒÿqtÿ23<ÿêëúÿ‘‘¡ÿ”•¤ÿi–oÿ……ÿ•–žÿÿªª¬ÿÿÿ€†ÿ»¼Äÿ¹ºÁÿ¸¹Àÿ·¸Àÿµ¶¾ÿ²²·ÿz{ƒÿYk_ÿlxwÿru‚ÿ*+3ÿêëúÿ’’¢ÿ”•¤ÿ‘’¡ÿŽŸÿØ»eÿβ[ÿ̰Yÿ˯Yÿ˯Yÿ˯YÿɬWÿÇ«WÿÅ©UÿȬWÿÁ¨aÿj)ÿ”|/ÿqv‰ÿsuƒÿsvƒÿ13;ÿsuƒÿqsÿpr€ÿ02:ÿèèøÿŸÿ““£ÿ^˜`ÿš—ÿ435ÿ���ÿÿ••—ÿllqÿ¾¿Èÿ¸¹Áÿ¸¹Àÿ¶·¿ÿµ¶¾ÿ´µ¼ÿ²³»ÿ¿ÀÆÿ‹žŠÿjxuÿprÿ(*2ÿèèøÿ‘ ÿ’“¢ÿŽžÿŒŽžÿÌ®Sÿ¹Cÿ¸œBÿºCÿ¹œCÿ¸œBÿµ™@ÿ³—>ÿ´˜?ÿ²—=ÿ¡‡5ÿxg#ÿz*ÿpsˆÿps€ÿqs‚ÿ019ÿqsÿoqÿmp}ÿ/19ÿæçöÿŽÿ‘ ÿvªwÿ%*$ÿ���ÿ���ÿ���ÿÿ¬¬¯ÿ‡ˆÿ¿ÀÈÿº»Äÿ¶·¿ÿ´µ½ÿ´µ¼ÿ¹ºÁÿffjÿ\mYÿkwvÿnq~ÿ')1ÿæçöÿŽžÿ‘ ÿ–—¦ÿŠŒœÿˬRÿºCÿ»Dÿ£ˆ+ÿªŽ4ÿª4ÿ¬‘9ÿ±—Gÿ±–<ÿ²—<ÿœƒ.ÿudÿ‘z+ÿmr…ÿoqÿorÿ/18ÿoqÿmp}ÿlo|ÿ./8ÿäåõÿ‹Œ›ÿŸÿ_ˆ^ÿÿ���ÿ���ÿ���ÿ���ÿÿˆˆŠÿ`adÿ{{€ÿ´µ¼ÿ´µ½ÿ³´»ÿhhlÿ���ÿxˆxÿfrqÿmo}ÿ&'0ÿäåôÿŽžÿ‚ÿDEKÿˆŠ™ÿʬQÿºCÿºCÿª5ÿ¸žEÿàÈtÿ·›Eÿ²˜Jÿ°•;ÿ«6ÿœƒ.ÿudÿŒu%ÿlp„ÿlo|ÿmp~ÿ./7ÿmp}ÿkn{ÿjlzÿ,.7ÿâãòÿ‰‹™ÿŒœÿIrFÿ���ÿ���ÿ���ÿ���ÿ���ÿddkÿeehÿÓÔ×ÿÖÖÙÿ{{ÿžŸ¥ÿIJLÿ���ÿ���ÿ[jYÿhsrÿjmzÿ%'/ÿâãóÿghuÿÿ*+-ÿ†ˆ—ÿʬQÿºCÿ¹Cÿ¨3ÿ¼ IÿóØÿ’}>ÿ«’Fÿ­’8ÿ¬7ÿ›‚-ÿq`ÿˆsÿjn‚ÿkm{ÿkn{ÿ-.6ÿkn{ÿilyÿhkxÿ+-5ÿáâñÿ‡ˆ—ÿ‹‹›ÿX€Vÿÿ���ÿ���ÿÿ—ÿ¬­´ÿ¨©¬ÿßßâÿààãÿååèÿbbdÿ���ÿ���ÿ���ÿ`m]ÿdpoÿilyÿ$%-ÿàáñÿ|}‹ÿ ÿ++-ÿ„†–ÿʬRÿ¸œBÿ¶šAÿ©Ž4ÿ°–Cÿ“}4ÿ‡s6ÿ¬”Nÿ«5ÿ¨3ÿ›-ÿp_ÿ†pÿhlÿhkxÿilzÿ+-5ÿilyÿgjwÿfivÿ*,4ÿÞßîÿ…‡•ÿˆ‰˜ÿt˜uÿÿ���ÿ���ÿ���ÿÿ™š ÿ””šÿ}~ÿéêìÿßßãÿÞßáÿbcdÿ���ÿÿz†}ÿalkÿfivÿ#$,ÿÞßîÿ‡ˆ—ÿ…‡•ÿMMVÿ‚„“ÿÈ«Qÿ¶š@ÿ´˜?ÿ³˜Bÿ²—Aÿ°•@ÿ­’>ÿ®”@ÿÿÿÿÿÿÿÿÿž„0ÿo_ÿ†qÿfjÿgjwÿgjwÿ*,4ÿgjwÿehuÿdgtÿ)*3ÿÝÞíÿƒ…“ÿ‡‡—ÿIAÿx’uÿ���ÿ���ÿ���ÿ���ÿ ÿ˜™žÿ~~„ÿ©ª¬ÿßàâÿÞÞáÿáâåÿ]\_ÿvnÿDy3ÿ_mgÿehuÿ!#+ÿÜÝíÿ„…”ÿ†‡–ÿ†ˆ–ÿ‚’ÿħOÿ¯“<ÿ°”=ÿ¬’:ÿª7ÿ¦‹4ÿ¦‹4ÿ¥Š2ÿÿÿÿÿ���ÿÿÿÿÿr`ÿŠtÿdh|ÿehuÿehvÿ)*3ÿehuÿcfsÿberÿ')2ÿÚÜêÿƒ‘ÿ„†•ÿ_ƒbÿ}|ˆÿtvyÿÿ���ÿ���ÿ���ÿÿ%&'ÿ ÿ±±´ÿäåèÿÝÞàÿÚÛÝÿffkÿBNFÿ_iiÿbesÿ "*ÿÚÛêÿ‚„’ÿ„†”ÿ‚‘ÿÿi%ÿ€i&ÿ€i"ÿh#ÿyaÿv`ÿt^ÿs]ÿÿÿÿÿ���ÿ���ÿÿÿÿÿŠsÿafzÿcfsÿcfsÿ(*1ÿcfsÿadqÿ`cpÿ&)1ÿÙÚéÿÿƒƒ“ÿ]ƒ^ÿpr{ÿnoxÿŒ”ÿoprÿÿ���ÿ���ÿ���ÿ���ÿÿ´´¶ÿÝÞáÿÝÝàÿãäçÿ<J9ÿ\gfÿadqÿ!)ÿØÙéÿ€‚ÿ‚ƒ’ÿÿ}Žÿ´’9ÿ°;ÿ‘„fÿš…Oÿ§ˆ4ÿ¤…3ÿŸ,ÿ“{4ÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿaetÿadqÿadrÿ')0ÿadqÿ_boÿ^bnÿ%'/ÿÖØæÿ~Žÿ€‚‘ÿ\]ÿnoxÿlmwÿghqÿerkÿ~Œ„ÿˆ‰ÿ&&&ÿÿ{|€ÿy{‚ÿE`?ÿ·¸ºÿæçêÿêëîÿ=I8ÿ[eeÿ_boÿ 'ÿÖØæÿ~€Žÿ€‚ÿ}ÿ{}‹ÿ–…\ÿvy‰ÿvx…ÿpu‡ÿzwwÿorÿ{ujÿlo}ÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ_boÿ_cpÿ&'/ÿ_boÿ]amÿ\_lÿ$&.ÿÕÖåÿ{}‹ÿÿZ€[ÿlmwÿijsÿfhqÿ_meÿ]jbÿ_bkÿwyÿ}~„ÿY[dÿUX`ÿNiKÿACJÿdeeÿ554ÿ9F9ÿYdcÿ]`mÿ&ÿÔÕåÿ|~Œÿÿ{}‹ÿz|Šÿwyˆÿvx†ÿsvƒÿrt‚ÿorÿnp~ÿkn|ÿjlzÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿ^anÿ]amÿ]`nÿ%'.ÿ^anÿ[_kÿZ^jÿ"%,ÿÒÔâÿz|Šÿ}~ÿW„Uÿcvgÿaufÿ_sdÿZu[ÿXtYÿZl^ÿVhZÿTfXÿTfXÿSdVÿMoGÿQbTÿM]PÿO^RÿJbFÿXbbÿ[^kÿ%ÿÒÔâÿ{}‹ÿ|~Œÿz|Šÿwy‡ÿvx†ÿtv„ÿrt‚ÿpr€ÿnp~ÿln|ÿjmzÿhkxÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿ\`lÿ[^kÿ[_lÿ#%-ÿ\_lÿY]iÿX\hÿ!#,ÿÑÓáÿwy‡ÿ{}‹ÿs}€ÿr|ÿpz}ÿox|ÿlvyÿktxÿisvÿhqtÿeorÿdnpÿbknÿajmÿ_hjÿ]fiÿ[egÿZbeÿY^hÿY]iÿ$ÿÐÒáÿxzˆÿ{}‹ÿxzˆÿwy‡ÿtw„ÿsuƒÿps€ÿoqÿlo|ÿkm{ÿhlxÿgjwÿehuÿcfsÿÿÿÿÿ���ÿ���ÿÿÿÿÿY]iÿY]jÿ"$,ÿVYfÿTXdÿRVcÿ!)ÿÇÉ×ÿsuƒÿuw…ÿsu„ÿqtÿoq€ÿmp}ÿkm|ÿilyÿgjxÿehuÿcftÿadqÿ`cpÿ]`nÿ\_lÿY]jÿX[hÿVYfÿTXdÿSVcÿ#ÿÅÇÕþrt‚ÿsuƒÿrt‚ÿorÿnp~ÿkn{ÿjlzÿgjwÿfhvÿcftÿberÿ_bpÿ^anÿ\_lÿZ]jÿÿÿÿÿÿÿÿÿTWdÿRVbÿRUbÿ")ÿ¥¥ ¥¥#$'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ ¥���Ÿ}}„ÿnnvÿmnvÿlluÿkltÿjksÿiirÿghqÿggpÿefnÿdenÿcdlÿbckÿabjÿ`aiÿ_`hÿ]^gÿ\^fÿ[\dÿZ[cÿ[\dÿ./3ÿ��������������������������������������������������������������������������������������������������������ööÿÿÆÇÖÿÇÇÖÿÅÅÕÿÃÃÓÿÁÁÑÿ¿¿Ïÿ½½Íÿ»¼Ëÿ¹ºÉÿ¶·Çÿµ¶Åÿ²´Ãÿ±²Áÿ®°¿ÿ­®½ÿª¬»ÿ©ª¹ÿ¦¨·ÿ¥§µÿ¦¨·ÿ?@Iÿ��������������������������������������������������������������������������������������������������������éê÷ÿššªÿ›œ«ÿššªÿ˜˜¨ÿ–—¦ÿ””¤ÿ’“¢ÿ‘ ÿ‘žÿŽœÿ‹šÿˆŠ˜ÿ†‡–ÿ„†”ÿ‚„’ÿ€‚ÿ~€Žÿ}ÿz|Šÿ{}Œÿ67@ÿ��������������������������������������������������������������������������������������������������������èè÷ÿ™š©ÿ›œ«ÿ™š©ÿ——§ÿ•–¥ÿ”•£ÿ¡ÿ……¡ÿvu¢ÿro¢ÿvu ÿ‚šÿ„†–ÿ„…”ÿƒ‘ÿ€ÿ}ÿ|~Œÿ{}‹ÿ{}‹ÿ67?ÿ��������������������������������������������������������������������������������������������������������åæöÿ˜˜¨ÿ™š©ÿ–—¦ÿ”•¤ÿ’“¢ÿut¤ÿ`\¦ÿYU©ÿ]Y«ÿ_[¬ÿYUªÿQN¦ÿXVŸÿnn˜ÿƒŽÿ}ÿ{}‹ÿy{‰ÿxzˆÿy{‰ÿ46>ÿ��������������������������������������������������������������������������������������������������������äåôÿ•–¥ÿ—˜§ÿ”•¤ÿ“”¢ÿjg¦ÿYU¨ÿc`­ÿnj²ÿuq¶ÿ{x¹ÿ§¤ÐÿÎÍåÿÓÒçÿ‹ˆÃÿfeÿ|~‹ÿz|Šÿwy‡ÿwy‡ÿwz‡ÿ45=ÿ��������������������������������������������������������������������������������������������������������ââòÿ””¤ÿ•–¥ÿ”•¢ÿlj¥ÿVR¨ÿc`­ÿ‘ŽÅÿÔÓèÿÐÎåÿÅÃàÿµ´×ÿ©§ÒÿÞÝíÿÿÿÿÿkh²ÿhg—ÿwy‡ÿux…ÿtw„ÿuw…ÿ23;ÿ��������������������������������������������������������������������������������������������������������àáðÿ’’¢ÿ”•£ÿ~£ÿYU§ÿ\X©ÿli²ÿ£¡Îÿþþþÿûûüÿèèòÿææñÿòò÷ÿÿÿÿÿÿÿþÿa]¬ÿXT§ÿtv†ÿsvƒÿsuƒÿsvƒÿ12;ÿ��������������������������������������������������������������������������������������������������������ÞÞîÿ‘ ÿ‘’¢ÿig¥ÿXT§ÿ]Yªÿok´ÿƒ€½ÿÙØêÿööùÿ±®ÔÿšÊÿІÁÿ{w¹ÿjf°ÿYV¨ÿRO¦ÿccƒÿqs€ÿps€ÿqs‚ÿ019ÿ��������������������������������������������������������������������������������������������������������ÜÝìÿŽžÿŽ ÿ]Z¦ÿXT¨ÿ[W©ÿjf±ÿxu¸ÿ‰†ÀÿÅÃßÿøøúÿ¤¡Îÿˆ…¿ÿyu·ÿhd¯ÿTQ£ÿIM…ÿ54kÿtwÿoqÿorÿ/08ÿ��������������������������������������������������������������������������������������������������������ÚÛêÿŒœÿŒžÿWS¨ÿXT§ÿgd¯ÿ¢ŸÎÿÒÑçÿãâïÿàßíÿííõÿÿÿÿÿª¨Òÿnk²ÿVS¦ÿIPÿ88aÿQMžÿnpÿlo|ÿmp~ÿ./7ÿ�������������������������������������������������������������������������������������������������������ØÙèÿŠ‹šÿŠ‹œÿWS¨ÿWS§ÿååðÿÿÿÿÿÿÿÿÿììõÿ¸·Úÿ¥¢Ïÿš˜ÉÿŒ‰Ãÿb_¬ÿcg­ÿ&'Zÿ=;ÿWS©ÿkm}ÿkm{ÿkn{ÿ-.6ÿ�þ��������������0�������0�������æ$���������������� �D���î$������2%���������������������������@��������$������D%������L%���������(�������R���������������/home/daniel/WindowMaker/git/wmaker-crm/WPrefs.app/tiff/drawer.tiff�Created with GIMP����`������`�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/timer0s.tiff�����������������������������������������������������0000644�0001750�0001750�00000001044�12214432632�016132� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*���Ü€� P8$ „BaP¸d6‡¿àq(P‹D#Q¸äö}=Æ#òì–MŒC$r)f)“Ä%q9¤gšÅç/ù¼Y$˜Ææ¨«þG¤Ri3ºeK¥TjU:U6ªVkUº5Z¯•Êë–;%FÃ-¯Äì¶»eVq'³Èm·;eÆ]Bº^o3˜íêým¾G/ø;&ñ„ÄU0ѬN6¥‹†Ý±ØKµ_'„ÈGrY{.VÓ>ÎYs9ùE‹9^Òdmø¾Y<ÕêiÓÚÖ{²Ünjð����������������������Æ�������������� ������� ������Î����&��â��������������������������U���������Ô�������������������(�������1���� ��R���������������../tiff/timer0.tiff� Imported from XPM image: timer0.xpm�H������H������ImageMagick���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/tnew.tiff��������������������������������������������������������0000644�0001750�0001750�00000003750�12214432632�015532� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�ž���€ÿ �ƒ† *P˜°aî/ï0Q#�„ÿàa�†O<fL�þÂø&BÈ´Ò§���`‘" NPàá"ñ� ¨`¢óæÃ›æR�à·l¨ �� ¬? ‰�úI™%düøQýùñÚ{†ö5‚…(8@a¢ sî= �<œ 6m†s\l9¨g׌‹üYù÷ëÝKÀ€€ æ`úL�ýúõïÏWÊyíÓfŠ�4h`ÈY öš>kPñá$�œ—ˆ§øÔ€áFòkÄNp€½ƒDæÐˆw“Âè�ðåÖuš8“§ÈÏÆ÷³…Š‘˜gtR”‹d,W¤eGG>`›#~ t `ž=�æSU¦\˜`��E@d…j�X#UxåU›Þ�4@¡Ä…"¾A~q pÄa!œLàS€„Ö1�ÀŽÙ€Æ(Š �¨°ˆOb™õ˜-¢à˜*ª¢Î0#` …�ð !ÄÑ„c$B=1A$@…äš��/UøL ¹‘À�81*e"㙚�àˆLŒ¤à;ŒÊ,4±�<2‰…Z€CŽüñ&Ã�€“o€…d‰žj ÔcÁIŽ[Ì�# �€ ‡OfÎØ�€eT‘•‚OvËlQhH °PA†oö]?Ѓr�@€E ¾8·Œ7Úh˜—üùãµ…j  ¨bžFtN8¥fI´Ta“š([*:’i å—[ ç»p¦h”3ÐG@ à‡�>Éå@fèOŽ?ñ��|À†HP‘��[PZ‘DCf3²L``'›v^�C+f˜Üiøå¹ap�hä ²’góÔ)9~á—c¾øç‹u1†®T˜CE�xfºáæ³``€zü¨á“?Ä€:r{�€Q8E@ƒƒo�¹";M� ‚U hfXñùä»N�â�®9ài–��PäŠKVwÖiW ÁŸC)…y–�R¸E>JF��G�ùdì|�Á‡B0`¶öØjgÌ Xæ�ÀØÀŽ+ @àŒÞ¹aˆ >½³A 5�©@€$áGðÒ3’Ž¡&‡1�x�þ(\ �xu>�€hz@BÜ�Ä;öÔ�²à€sþA�¢¼Ã.ÎXŒ[Œ¢G øÃž€Xœ`(øBʱ‡+œ£_,Ã{ÈBF|°š"2u�R„¡@€�°‡7Žá“ €®| �âÔ 9í��^°b`$JÑ' ™3t'Ž½å ´ñ;HÆ%Áà g¢¡Bäta# ¯6@€j��áBM0ë§öTH© 2piÏîÃÏ�€'M�¸Ç?èA,�à ¯ �JàÇbˆ‚):è”?tFLlb@¸B!æ „$ð4\¢¦#ðÏ2ÖŒD6þp��臃N ¨c €Z0¸d)€ðKüá;Â3ÖG€6ƒà4�Ð } �–C’°L ÜÄ& ÀK•/€ C'8ç1 Dr2� �fˆï  ü(³Id5þŒOüD¯@7TL ö àW‘a‚� Iý8 ¼@/>°‡*´âO`G à#+ m©Ä? Ý �¬ã6U^į٠PÀ½˜Ç¢Jj6T"€–Hº„ú6ø4³ñÔôè¼È]@@�È�T>,‡Üã+p NP6Á&XB?æ\Œ}õƒH'Ћ~ÜãpX´ñ„gü¢NF¤7‹]ÂÆGBúž ¬$5Ùˆ0€ ðx“? ÊOr:F&ðà"la˜AXåhŒ‰@r‚ÀŠG�@|‘‡9Ü`&°e�0îf-²‚ tä½@� Ã@P S�€òîe¶#€„�€ ØÂ=Þ0 S”a+XƒAñØöîóP�(`dS+â?@  &?<¸Å 0€ �ß~xÂ4ÚqŠ|  ¸'”z0037˜0 " ê")\rå£3í:ð5¤!ƒNâà:DÞYf(da ���������������������ˆ���������������� ������� �2���������Â���������������������������K�������•������Ø������à���������(�������=�������R���������������/usr/local/GNUstep/Apps/WPrefs.app/tiff/tnew.tiff�created with The GIMP����H������H���������������������������WindowMaker-0.95.5/WPrefs.app/tiff/workspacename.tiff�����������������������������������������������0000644�0001750�0001750�00000002456�12214432632�017416� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�V��Ð$h°à!B† &l¸ð"F ¥;j ´°’'n¼ø ‚ŠÆ&~ô˜±¦J&~b6ºtéš% ì@²ªÌ-*oòXi *"½~ýèÑ£Ôm9”TÊ+*Ê"5j&Ho´.úåÜV0¬©¼æUªÕjÝ&búÆ„:6&ÛEO7Ù=ZJѶo¿¢IÌj ,+àáC¤Žê£@ÿñ}Ós›qLŸ 3j¥OÖ{ÜÌù…ÒgÌœhŽœYr«œ6oÁºTé5¨×Ðp¿~üúä ù¾JJÖT_$^zåÊTypëÉ� BÂŒSsy‡ŽÞŠ›^…@�‚ˆßn â#ÐCöÍÛ"¤×¨MØ}þ²ùß?£HõÞÇ€…6É $(ÁÌO+­)&¡ÑÅŸC*T|å†kÎh§™<!ÂÖÆ"™,µL¹ä‘Ï\‡Õ – c!NPÌâ€.¤˜`”Vb�.!L‰T0å()( €e4°L2É$2Èà0 X`žIÿ r Ècfƒ VÁÌRVÙC}tÉÉQP�sŽôÜqÆ7áàGUP@K:IŒ"/>€ tȹæšc$„ØõŒ‰‰ÄÌX·,LÊ¡BйãŽ`+QÄ'\rE¢8á„ÿ𠬵fü¹ª´º«@@€€†vÄ Æ†dâi0>™d™%°Á‡T`ò¶…K+„¶cƒ¬ö+VPä;a‡vc!Á>È©îÕ§žaíãÞ‘î¼¾sG|ð!–gùâ“oÎC)¨¡‚*€Öj3sÎF}4VÇ€n,:Ç)ƒ˜M2j&Ad²»GuŠîû/wÒûDzÚ~Å ,ï ¢36†R3y–˜ ÝèISþ—àx©:¹ª4A§žª»iúž~Æ™CkÔœ¹´‰UAÁßçt þÇ«½:$é ƒöZ ¬¥©ÛuZD*¯Šœ5ÂqLˆ#— .HàG�Š­AÁ$™EdéÀƒp:¸cTÈ  hàà†þŒæ4=èËže‚b‰ON A&™ß?¤K¾ÔÚ+‘žB ç•o^ Ÿö9�.¸ií®¹ïñAú 1ÌM‡þÅ g3õ­·?^úà?üT¨£ÿì+°=36D„ý'A™üUD4ÐÅýk…¿€ö{"Zˆ ñ»?ýÍB’¨èf[ØÆv±Gר2‚ŠzÔ¡­lg'»ÙË~*á À ý(NpŠ3œã—¸Â5Z7œæ,ç¹Èe®r=„! iBFTîñ€G<á/xÅz’7<ä1OyÎK^ó6\á o (¾ðüÂ'°É?ðyQÑà;?ùÍ_þ3*JQfCTA(&›ðT‰ckj“ñŠ{À������2�������(����������������������� ������� �$��� ���������������������������6�������N���������=��������������/home/avatar/dcc/workspacename.tiff�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/sound.tiff�������������������������������������������������������0000644�0001750�0001750�00000011422�12214432632�015700� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*���� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼ø &J ]2¬S2¡D‚ Ò¤H¹É˜‰Yrn(S ì†cÆnXrêh‘ 3´J!eËãч ¶êLªcc‚µv8˜`lL%I³Ø$[Ò#GŠœ-¬°Û„£;<Xpû'Gž²?òä(ø£LŽ’Jd‡Q OÁ?y’TúgôG‚ä ’¤HûkIj6éY$ÉL'JÜi"df“$áÄþ DèjÔÖ›ïŠÎ}¯dHùGƒ­ÔpQG…Ê?´üaA‹Ù?l8ýãÄ„Ã?.|¸îáÀï?ž›xñ?Á‹ŸܸqùÃóÁ^løüáúâ ^„øƒ2Èøƒ<ˆøƒ (tÄN»C åñ ¨ù‡ bHø‡&X†Æp¡„1@Ûø‡Xø‡6ؽ‡M/8`Nè‹ÎC„àEŒÄG–?DáE„?D@”?üŒvþ`t†?HÁ J(‚€Zè‚1=aÈ}ÈÀ…Ôa(œ…b(ø‡Rˆ=i8áåVX"€æh`…9X`�£AaDù‡F† Zþà„ n¿à7aDÌ‚:˜ùƒr! [m²zÒM¿*!2D�=(! "pÂ"ÇÀ4‡¡‡†?Ø¡KL°æ'ìpá}t1à ÌÅ/‚ùGe4ssxb <HùC�ýr#qăJ¨ùˤb¨l¶†*ªîUp(û€+`‡ 70A5Ú|ùGÖ4þÐG³ °Á›ðÁ“­ç\°Gœá‰—üq#È=˜KFQk €�¼¤á �Øá/ו”+²Bzꥷ¹r*¸ ‡rþ€(þj«jh»AÁ@þÀkÈûào•Š¡€$È×âf(z˜\‚VþðÆƒ€`ÛXbð;„sFÊŸeê‰ ú*ç©Úh€$9·XùÇ=ŒÃ…úõÂ2hþûpÐÁãLP‚ jgaŽÈ­ GÉD,°ÀÚ“dpùƒ .Øøë92HÁ±¡‡nö;àÀô† \pÀå,PAqf˜øÇÍfcƒ?"n b Êf]E¤G ¬0!uhúØrç¼ ó«¤;5N*èîܸ[°Á^BAxÐÃzó(p€ü«Q8àç¥c¡ #üƒ,|›¼ñZ:(ž…5ùð3˜Àÿp†ìæ üó€'à›Íá ¸ñ Ì|‚„ &eÖK¬^S³A¡G'Ù?@z à®^a@Á?Œ¡CmSà–þ¡mèà?XŽ‚$!Ç=°Š!ðÕ H€%p‚ƒ›Vì` {¾ßŽ ƒ$þüã_Ïæ€Pü§biƒÖCb·G ô€xθ €˜Ã6øçŸÄbÁC¨Cªø4§@ rÐp ´"DìãÂÜç)øÀ‰?¸Á¾:þ aã¸À4µ¦u€<ÀF±hA“ ÓÜ£ N$þ8Àˆô Ã?BŽmƒE9K[(À%2DøÀ>þP@”IGâ žÄAŒ²øƒ à%°ØÌòÅЀt¦@$ƒéÏ ¨A(Pƒ†™ðGÀ à‚8§€ÎÌaèˆ@âZ…"Tñ§pE@¢‘/äE@’ ÚOâ‘8H*ÿP…*Ôðs˜À°…5¨ð<`¹$ � þÿ âë�´  K®Ðć>´��ýªT %p9 $ �ÿ@ ñ@øBÿÈDôYfrü‹<ø‡Tv˜!>ð”ÿ,4$ RKHBHð7‚¸&à畆 ÄŒ?`XøCˆ?¬a¦ÒP‡RåA 2Ð`-T•ˆ }D!�hà Ú€ÁjV…‚H˜[�@ãÝh8þЉúŠÀf±‡1L`‰?KiôHøÁ-yÈBLRЃŒð'8çMÞ`á38›† ì4-²lÈ/Ðð‡¤Vó0þ ` t8F_|žü·”(ˆF#*�€ô  �èiƒCš�tü'*'€X.0‚n�âm¨ ŸÁÎ;;$F0…þá ø N#€lá†xÀU®8Á&ÀÉ…��XÆ@ñ‡ $ö(@Œ/P^i¤!øC<"¨\ЃÍ q�<p��|? 2i^�à'0šPŽ|�àk˜�Ö. �Í@À˱l?Z ¡@øG%ò{ãqç ƩÀ#NÌ90xó Ç¿S1öùál4ž*Pñ‡�xö]hhÒ‘˜ �øÃ0:‚?„Â`ž(þ@ b@|�Âΰ5ƒÎ`šSr �´ Uk'0*0‰~�à �‚TÄ 9ˆ@ alüW øG²†€*¬Ð51><2ˆMÌ4hs.@e �°øG ræ„qôŽô hʑה"øC6’ü J[­¨nÉöµûö˜²"„7€ð†™Öc£¾�€AÐV�¬?BÈ9ZÿP‡R� t �–Q‰B�àU'Gè@�¤ac�Æõçç!és2Øü64V �¾†‹ŸV0µChB[8XÂ8Àñz”]Õ(šÓñ攽1žjŒ°†á¾0¡@BGò�×q,ïàø[Lþ1ˆŽÃ"1�@œ`�8ý¸Ä.�p©^�€^o³�Æû�œ­ï$WGïV�€ƒÇ¢ùêØD?Ú�€—Ë L—=< ðÐçãë˜ðAPD Ìÿ¨@nMa³>£WóÃ2Ø”9AÚc|ËKÚ4Œî0‚îPޏ‰AcÅzÛÓbüa =€À’ � ßõî'�n±„ �`0�,rЯÜSœ2!0‡a�`SëÇŠ‘�ÿõïÿDñcQ‡lkƒCÐSUØ…J(��è… ð�Xop�˜÷Xèpu˜õ ˜s'°5?_¹��±C؃%Ë$@$ø÷ Py»‚HQ }‡>h1'h¶.øG°6?ˆƒpc´M �Ò4Ï�Op5/P�3VÏÐ"ûò 0÷c¨op�H �€Ó�˜†1è�?Û…´à�¨ðX¨c§ÛUqƒ)€Ø0uõ@v�—psuhrZ��†ªPv ¨‚"'Gwƒ™€,? z„\H1'í²%Ѐ‡� [Òcµø÷;ólÀ’ÏÐs‚,H2Zè…ó5P2¨0}øƒ\HÕ4 }7vw°#ˆhñŒèÑwW‡,… k�Ø•63ñ ¨…?@`(F`HCà°EHSA k²F޵Xó@ˆ…0�€Mßóð‡pk�€jHq'ø×gK028…MsZ åI€�0£5c+01'§rÙè“Aˆ†`5* \`6p5?»7FðW2!è„FSÐgáÂSÓ„˜a€ƒƒð†f'�ØóHØðkø‡XõÇs„8<ˆQx09x ��¯‡¦`Ñ?ƒP8z •Á`±YÀt „€6ø‡2{ƒ?ðgÏ…Z( òh@ r ²2WŠd#ÎHØÐLË/nÄ ƒ?Ó³<˜€>íE%²hQè6Vwµ<˜MBØ ¿ôò4˜…!A`ˆC`¨“`ÓF xŒ^ W‡Q½�x6@„ÚH3' �tr�<@� Ï |ø‡pp@¨±%ˆƒ0©�5Ð�m[�-ÐåXÐxÐ  À1€�pÏ'½i•@x@‚?ȇ ½u˜±"à$/øÐ °lè²<(€ •†"Èbh@`˜3#�€wÊ kFý@0à8S‚¥dË0� �+�p£"À sY Ü”p´"X…)¹�]ÐL)À�d@„ÀÎ|ž<Àç\…€²mH†X‹EeJEVQðר‚9íN Å§œ5Ö(†?5V(εÜ@ X‡y± �ÈÉ„‰“7�€WïÌ�—T@¦nÀàqøt@rð2f;Äxr�j‰Âa 3 9 ¦ V0øW}5°Êe#ø¢‚–g°Õ4¨ƒbf`:�`cµc…}XÖ4¡ˆ@`XXöóbExx>Ó;æ®à·%@¸H)ÑexÀK)q½80' (ø"À— Õ¸”¶-øTã¶ å\Ä!^…?Ð0—NÀå€HíÈVê. ç€C�ðÒ48€M'°æòA ˆGàØ® DÈâÑBRÓ(œ‘à÷I¼c„+Ø7? bœJ­)蔪œÊRç<€ r Jœ‡?0#° \ æd%lll�v`äµêX‹«øó %Q?®YÄåÑp¨BÀ,'CÂ{Cƒ@½%’èY™#J ”eÉ`–Ñ+! !(rT^1¬Q�Af¬R•VÂg€h`“ŽVlˆ†jhÄnX€®BÀ4ÆA‘Æj'JŠÃZ eñn€gQø* RÇY`bé$ÊVœF dàây•Ѓ?!d€Ò8à&J€ßhÉ ¦nÁFµ-5t@¢n\6ÁÃ.`ÁE`k<nr $3 � †bÀ†×DžD4&Z`æà©•¬Ä2&ƒ?@ÈNAW€ç_ Nåãцl?ÄÆv(€°/@©XøEÅ?P503qŠ`ds`&"N|¬À?€($øÄ¤\"…?`â/`F²ªÕø~à dàgø @ÐS1 yÀDþå]l�\@ë Å�‘ê^DÇv .-ÒŽ_à¤3bå5—�cR�jÊ¡(\¤h6 äd`5‰>4zòf“ž—:`*N°�Gî"£("SMBJl@â_ d¥¾ëG¹þëD@àX€j` ‚�xÛ‚?Ð50„?*xøCvÅ* eaàz©dR�Jê£AÊé2ÊÁQº¡aå¤f!iW€Ë! JŠo|ê—aäÿ¾D}@JŽáDäᘮ'ÐRa@Ñ$@ Rês ‡?0³2F|" ecj ,ø``såR,Ç,%"©^ÂEÀ+õ>JÊN`•:À4Mbv‚�¢R‡;6úÚ7DãQ@X7f Q ö2éìW+"Ár¬!à—P5P‡?0Cåk°�'ø«2‚?PuÐÁ/`¥äfÄ “a båV å`�J\l ^<þQ¾þê3Ð…2zC@� $h°à!BGT(0ý¡DŽÒ"øHü¡B€Èxp"!ˆŠ z¤’òG7A˜1EÅO€?¢„‰ú#ŒŸ?tèÐúCRÄFÔÉ1b jx±àñ‡vB\8q˜S\¨ú 6jÜ$d´¸`A…æ-ʨˆDEŽ ¹?ÔhÑC[òòh‘B…?˜°ùË„¹-ÒBÈuC5¥X)„pâö‡ ;ÖáXpù#’× X &D·éºõ6†l²4z ¶¢ ·><[[laÀ¸ã0רP£ò|°Vøƒ F~4èæ …#v¸1ÏÆe6<8üáÇ›/6üþpbǹ˜mBÚôçï?ÿ…°Z”PD Ä‚À!ÄÞà1'$LàäE–B´ÐDƒx`‡›hôá4ÐAåb1¸1:nÀ‹’�b‰5¶Øãˆ3®¸ã‰7¾øÕ������0�������0�������Â���������������� ������� �"���Ê������ì��������������������������*������� ���������R���������������/usr/home/fatal/alfredo/sound.tif�Created with The GIMP����•����s������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/dontlinkworkspaces.tiff������������������������������������������0000644�0001750�0001750�00000002670�12214432632�020501� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��P€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜I�ãþg5›Í¦“©Äîs9Ïó%?ŸRg´º"™N¦Îè4 5V,µ[-_õºåv½_¨XiU­ÍV´D«ªýmz]-?Îa€ÅÈ@!Úí·»åzÎ�¡À°6šµŠkz½Ûî7;©Îïy¬ß1W+¥Úñ†²fj˜ ÞA˜Ä[riKƒü¤E!d-š-.3-š±æ3x<z?¡¯î+Ú=.ŸSº®ï.;íU÷{¿í6ÑÞs›Ç­óßü-6£‹{×dõØëÅw“ßåÅúC€Åÿäóz<þ__§ÙÒãô»xÿŸv¹àÀxc}.§ˆ½½P Ù=Ï3¤Ò8n´êµ.ó½/ïÓÄȱ-,ÿ:ËÜ ‰ÀíìA«l6‚¶©;”Á?;óEŒàè/±#ÆÓ#ÇlJ‡&Ä(‚éZ¡©¨0<”²„›²H AIÒ„•#ÒLö˼µ½ˆ¤·Ë2äÁ+È)¬Ë)ŸàÄ« ,;"9Ž#›h‡Ìv„È’õ=²3â´IÄ¥@H`D×3¯S„ä Î“²ÐÌÉòt‹4Ðól{AI4"mCÒtLã9γº6Hqª½CIì’�JS=$”¥4’=£ÝAG*ÇùJUI&1ŽcG´Ëca¬²’§)V5k[ÔH<5ÔÊè&Ï2H1UM$T5V‘ÿZVÔeCG×ÖwTÉ. ZÊ»ŠôΠەսpYˆzl<Ô®0'âm_wí1&I4õÁQ¶j]]W‡ýË%]*ãû «“=ßÍôýÅ\!³M-/Ÿä!|gãÛ[BJâ! «ŽE’UÓ^ z×8}Ïß+t-]Ô_Mà¸ÎÀa7µQ4gàÁšåù.NÓiáˆÂ5ä9ÓI‚Ååe\8EÇ\æø}Y+LS Á¥[t¬‡dÛö^7…DšÊq%È1ý§$é¹5l)j:ž«’Pҳ헦ßGÊò=­mR—B‡VçÔ Á<%ç·kØâjÞòu-ºŸáª1ô=KÒt]GLI¼Ü­QY¢«ÎuœôÌ>îÖ¤Ÿ!ñVÎÓLõ½g^¹c\Îà‚8½ˆ EsÜZ:öñøÈö×¼‡™ðõÎgåóÒSèÈ”Í[Kuž¾…Ùsr½¦²ÛŸ»6Ul‰Ap]Õ zB‹³IŸbpë[“ð(oÉé¾'ê”S3ù{,u¢¸Š „ í\Á(,Ž ”!Ì&*: üƒÐŽBHE aCÇ%†Bh[ a|'†HJCXm áÄ9‡PîCØ}âAˆQ"DXâDI‰Q.&DØp@@€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/Œ@@�������0�������0��������:�������������� ������� ������B����2��Z������Œ�������������������*��������”������œ������¤�������(�������1���� ��¬R���������������dontlinkworkspaces.tif�� Imported from XPM image: dontlinkworkspaces.xpm�����������9H������H������ImageMagick�������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/iconprefs.tiff���������������������������������������������������0000644�0001750�0001750�00000006456�12214432632�016553� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*� ��Ðò h°à!B† &l¸ð"FŠ%jK1�Bã ’Ñ&Jœ$i²ä�Ô©+p¼)2fÊœ%k°TibÇ"G¶üa)Qâž7uâ!  ž/Wú¢iTUà¿*�5ªT«á¯zͪAêÔjX³Qƒzu›7jV»&çö�(PàZ@%U[ôl]¿mË~½ZõmR·Í�í9wìܵ\ž2ÅTN8`ÐÐÁ½†M>k—ù£»LH3Iåìå}úÏ™1·éšó¹,›n|öbÊwöt³�ðý=›Oë½nÕÁNN@p¦·ó›Ø©üȱ•×V¬Ÿ~ý6€óÜ.nϹ5Ãc�Ê^öÂý�È÷�8°_ëN­ 5‚4÷û§§oÿ�% �À �<‚��ê õÄ=8•ÏKÊôò‡_�0 S Á5".<˃SD'‹<7γ£4*½àŒ�ºè¢�šh`�~ùã�¾øâ�Ž8b�žyá1@PÀP=t½øàƒ7�ÐÇ�M�°À�ðM3¨`4Â3½¤Œ2j>3�àÌËȬ`-;� ÊQÀ„$)Î�~ÀŠ‹+f¸�TX@�<þÁ€¢¢87#Ì@YOuÍ“b¯½¥›î˜h¡™aUø M¶™€}öœÙª0¯ø9ä�>øŒôÑ�3Ì1�ŸúsÈIs¼)I1 š��À¦õ¸9�ˆ �xç>> A²•Ö��¡½¢h¦� `� �.Yä�С�p�Çe"\%¶7˃À£1OÄQÞ¥¢;Ò® Þ˜¤b°)þCgš9ú�ìG�óÑÀ©/šh¢½æä�À�CtG«�ü¦h*½êǧo�(œÑrLf€úÙÛmŸ‡¹ Ù(NáD¤±F€E±€GãõøÐZ�¢Wq³‘ê#¶¥_Û¢¦ ¢‰ŽA†¢†jzTQ�¶Ùb�”QE¾Øð¹Ú�xáE�Þxã�>ùˆ#ŒÑ¯ ³z <�(ŽÑ3M|§'ÿ$71;�XQ5v`CçC��0àŠ¥5G]DŒ@Û(.ìŠ[Ö¸�Yh€¨»-Çû¾é#Óõ$ò7„�†ŠrÊÆã_MN9ç�0@/2È!€bâ‰Gž��@[áƒW�0Å´ÞT1€ ï>V#ü™ž¼ß-ó©�à,|�‡Â!�€>à Àµ»=t vÝà��^€‚ª`Ÿ ö�¯¡e;ÞJárCJOp„�Ä òQ†R´ØÊ$À%®p �À0^&Ђ‚Ÿã¸°ž|`W]8À2©o9�€<ŠôD@TLœ¨sœ R……ü€�xàU$´Ám‹ÃÊ’ðE®€‰wI¢›Æƒ8¥lØ�áñb¹)à"k‹\†¤‰:r< �ô ½ŠB>��b® Ä~�"+XÅŠv8�`ëX� £3HB�€¬¢ƒ°ÔG!J4ò=‚Lì´s35°�ø¡ ~yU\@Ãxu£;0Œ��H¼‰cüà˜*8#öðÁ´!­�À$ª0 �„æ š�ð üãOî’Y¹ y(“"IQ?ø@#þð‹OЏpŒ ì�ðxr¢Ð„úLƒÌ›4GpaLŸ+d±ÖE�(‹ê_ÿ�ðDF@Á`àC’èE·Ð…mtÚ«’zà€< Oç¸ÔUäÂMG"0gúã92ËK/lV€^P®°}”#‚Óœàš ½^9��´Š��PU8ÍYå�¡¦GFu¸ Ûê�|ПØ*t8ANºÖ­‚ð«Pt¢ :ñC|¨õÀư�´"-[…A0ËÓR.ë$�•C:7q×8 ãÏšÒL%‰TiûË4¢>h  M£Ô#Ìôf9ìZ �è´¢è€,èÜ XÐV»¸�p;Ü׫aÀ5¦qã_à�ߨ�:: €rp³¬ ÏÅÖ9nQWå|^Wš\"7cÝ*JÑ*Á�OËÖäR{ÊÍ–ÂNØ„Š X^ÍNÓ)}â&ªè õ£kôêà Þ8Ü�×â&‡eMšó¼OHa9‡ËÔÁç“áƒcx¼Þ.!y˜]6‡YË]¾ Ù]î„u€¤‘çhx}á(=…ýöpè<GâXÒýÑ}øÃa�bÆkú± qlCÂ`&2*»QciU�Ô+ò¤‘`œ2�°85™ÉšÁ{RÄ>y"MQÉ ˜þLf:3ÂÍ(ç3Ÿõlf:Ërt¶d¤!ЀDωŒ3¤˜¹D÷ 1s¬×p¹W^djÐNŸÛ<æIòyëgV\bé¸<ê…ŒsHX6�À)/zî$*<�°¼²i��P]5�à´:�ˆÖck�Æ×º–µarDYigÌ%®,€ ]ÆÒFH#È`1$Ú�j7 €P¹9�@õV6Ê-áx›�@üv�€Óí¯›1\š/Ï…,Tþ †Ó®ð™¥Ä)njq$[ÏNF**”6Ã~2_å.5\E‚4 �^qïìãXMø«*@º:P€´ÊšÁ6Ÿ�à=‰ágYTœ¿žž"•w|Ø÷R7¸ “Qw÷;iˆyný~ÑHs0®2ˆ¼ ræÕÈG.� —�`»h2�@ÌHCêPÍ>bÏ|Q;Ø€Þ«A®çôMŸ8Õ6vòëqLŸ“n¤Qhf³� `žAamè��*…(�`w6á—>� þ�-ÈÛ ÅsSAÞ0y+[•ÃV—ÁVZˆ’ÇŸ”æ¼×ÖïBp@?ÃÖØÆöÖ„&]‡áÞËiGêa§8 Àà€�A²Jð9S€ ��/hÜ ðƒ7�ð€;‰AÒ�ŠÑZ'�â·øÁ˜ò'é^÷¯çå#äpî��±¯�„ßr!0]2<þ��KüONê¾÷¼d}<÷{™å¯*CÌN�|�À†ckÉIßk  Î=…��yâ(‚¶ oõ€_è€&Á| Bëñ5añdZwâS$–´ˆ� "ÒjUWd7 ÒòKKÂs ‘#Ñ&3P2 â> u`‚5ØA�%tð%P¤{€�h€c^‚,èb(øâ‚?¨t3C¦´ž`À!à ý§2*� ��µ0VeU¬0'_7F>i‡lét~@)PÂ>øtÐ9�H…$H fxæ�oQà’)¸‚wÔ…mx'i@Ò¸‚j(‘}9 M‘i“Ž 2BÏqà‹<^ ’ý(�è2'H_FµHZsÐH+Á¬À¥)²�`Žj �a†‚Ï6Z„29…�0b‡õÐ)Ö ë‰'Ç,4©X�ìѾH‡éØ�V¤N[ŠE ˆY§6R{ÕHÕQV}°uý ‡Fu�2ÄD(]…ÔÔ` åë‰3§0JÔé £0ñ€�¼na8Éý@ç»øŽ#ŒäÓbÌÒ Õu¶DršahTwç(Ö)ëIT×7@O #2©Ø±€ JâD4{@>'Ðs-33½Ñ;9t|=‹ª„K ºÓ w€¹�èL±@sR½ÚdB1ƒJ /ôÄÐ2®P±ž”KXÃŽ[dc”BX�POƒøÃáTIC@Ðò I�!B¨S'€¤ð�üGŠÙ_´(þDó#VôØñâDŠ2a܉“¥‘� \“6¼¤¸)SDž3º‡ü�´€ºh‘b¹b–L9ˆt2eM`•Â�X'yžÜ‰Ôk3o“2¥ê·Œ#ªm…ŒI+בظk³n‘»÷jÔ½­¨ö5ÃV­¼c-@#2=fì¸ñ2¥ï²ò@gΚ=kòÀ*ƒ³dé²å+V®šUyð¢Õ6nÚ¼evåØI¶îÚ½gïò€�������0�������0�������Ö ���������������� ������� �?���Þ ������ ��������������������*�������& ���������=�������R���������������/usr/local/misc/WindowMaker-cvs/WPrefs.app/tiff/iconprefs.tiff�����C ��; ��Ø���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/speed0.tiff������������������������������������������������������0000644�0001750�0001750�00000000540�12214432632�015727� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�|���� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼ø &Jœ$i²ä)R&GŒ——ÿ iÒ¥J•1}à¬Y3'Í™=­ÿùr%Ȩ@ºbÙ Å, D™R±Ê”¨°RÁ*5jÖª]§n½ú 6jܤv@��������������������6���������������� ������� � ���>������J���������������������������U�������t����������R���������������speed0.tif��created with The GIMP�����������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/keyboard.tiff����������������������������������������������������0000644�0001750�0001750�00000007704�12214432632�016360� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�¼��� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼ø &Jœ$i²ä)R¦J&mºô2fÊœ%k¶ì9ræÊ'o¾ürp(ÌÁƒ§âVJZS[Fƒðò¢Tb‚³*¨5 ª ¨`½¨B0kÚ;³Ö¬ø³lÓ–?ëömû³b×–Ëv¬û³Ôµµ=[~¬vumd¨qù#ò͇ò8ª¨'¢9dý¼<fòÖ¢[—Ùòåùã.Hˆëvíø3l¨£¦Œú3¸Ñ¿ §öýYèéß‘çþœºséßù~Î]¹ðçÒÍÏ>½ù´{ÅžÖë:Äß’Èü.+‚ˆÀ{Œ�ð3ÀÓã€x ÊœUKÎM[0çߘ)ÓÝmw3²Ö¿BŠ)äŸr*(çŸÒHàŸjZ¨äŸRê)áŸbÊ(âŸVºiçŸ%6XæŸif™âŸ]ùçùw–+þyç“wþyåƒþ]â5R>cæwžøã9>ž™OE*¡Š€Ä F+)taN6@0%�MÇ25ldŒþ¨ šJþ(¥’ þ( …?f˜b’?Ú WwMùcCGþ˜b)þ˜e‰þc†qþè ›ÎL(¢?*©Ê˜‰çÏPëÈ$ƒ þgœ1þh¦Fþ¸åÎiæ˜Ë'¹å;ž¹ãW~x«Š>âå«Zžùà9Þ˜øãšîøæ¤>Néo!²!§ÆqAª)d!mr@[�TŠe¸4véc˜Á<Xf?šh,›>úèæ:j¨å\ʤ„Š;£‰þH%ƒTþ¨¢6}f˜Ï›nz vÒ8dÏ .9s3ÎøgŽyæra.oši¥™?Zh§…?òÈ#—? (°ˆIf²"b‹¸áŽ+þè¡‹.þècþØaß*îx¨”W^ãá‹/Þùã…—x¸¯¸î*åŠk.ä™'>Y_‘ V¡™¨Õ‰…m-¸VWä¤ÐB—~ÆÓö'†+Ý §:czè™bª)æ¿-zùc”I›è¡zÖÙÒ‹jê¨nŸšø£šÚC©¡®K2È&-sŸƒ£ŒÒÙd“?Î8’cÎ8âwÞyå=tâ€vóaŒaþ˜`¢ôî¶¡ƒöžI$¡Xf˜Î0B ²‹ùÜÓÚƒ-¶Ù¨“§¹åÒîãŸ[®9’3Žùçêþi{—­f!…Y`ÀNE𔤗a†Y¦—ÞNé€?Úè¡íHº¤|;þ˜g‰Eü¡ͨã+&¤ô)U¨F¹Ðü¡ME=êu‰ulc ¨G£C½‚Cù`#øG'ºŒ† ˜mhQ6ÊQŽÅaøC1J‡5¬ùÏxÁ þ°…¬qW8/ÞÔfƒá7†Ä$&¥Q £¦3–ÉŠvm h§5–0ÿÈÊN»˜Ä?Ž]!4â"±‚3Àb <)k‰àš‚d1y£]Ñ6ßâ.÷�*“˜ÆþÐ>Ó£ ‚EC€L}Z.˜a0¬SŒa4Š8ÃeðQ‰šÀDÞèÇú„êÐc{žD*QDk,ÊÛØ�zЃVü©/øØÄF0Q© ÃhhÒþBâ7T£UøÃ.#v,§‡¬2·JñˆÇðd…ì`Vø%Ìaÿ8‰ZQ|ƒ)—ÈlnÀOÀúƒyÂ(zÑoÌÊFu¦L‚?¢Ô6v<ÚÑîÔ¡^Æ4=:Ñ2 ¡OŽØÊB†Š1 Ùƒë¨Ë(:•Ïb[ øG]¢ð‡_|« uhF ­1- ]XÄ4þÊZVåZÆ.,ÊíB­K<à×øC #Å6hF“.Q2ùÚÌ(A‹2‹#ü» ­øÇÞp‹Üyÿ(Ó¾$ f´±–PHm€HÜ�ðX3>0¤-…( шE þ4$㑈ET¾Ð–!tú û81ð¨J\EŠÎá 5Vä! ™¹ zÆ4f”ŽfÔÊ7x² 퇬bM{¶ “ïo�£a ˜•£vñ‡G¼¨£Š"ªQˆ|ÅÕ¥&Ç_3Œ\¤ë ˜–*Plìb«~FŒ9…½ C±Xíþ‘…¤ã³˜ÆþQ‰R"AÄkÍÐB#HóðN_@Oô⣘¦0e¬aÕ“ØÃ!N‹}vb“JGê‹mäáш®b‹h 4uJu=ö°ï‹â¾leµ°JÑü%Ã=E™m°Šå² f4fI󈂕Iüᇮ C1î뱎¿øÃ§:qËì8p ]i…,dë[X1²‘«wt  øÇ Öø‚nã¿èÆ?•`€KÐÍu�”íSÎ¥Xs@‘œ…TâÛ“ð–ýy,KXïRÐé„I°G.Ä­\†c×$Ãõ¨sþQ1$"±øÓ’ð§è†, Û‚B…Óñ…µ¡M¥Á)N»Ž.´9]èöÖ²fÙg¸â€—9«á–áÄʆüa‹²Â2æäoÔbc�ÆZ�æñ‡„ã?¢Ã?ºÑ:­"h;Â(vŠ0¦‚–À€°.ñ¹;ÌcÍ“XÁ½°îÌðb‡Nؤ/vlj?àb 8Áu…p†[QãŒãØ7èþsŒ?âÀ`8À‘kp‚Óàã~±¸Í:þœI/ËÕÒ �j35T„ã¹~C2’0f:™IÁèiþðƒ_|Ùƒ¦§¥*“©æÈ Ïx05kM¦ Žc\øC­îiõ,`ÓÇbO X ïâ´×ÂÈ® ‡Ø øXð‚Ÿ›cÎÂRºi-O:ÀYsŽÀ¾é„ýa§8v6Îq\¬¦¬îU¢²Åâî8 ®>¤çÆ1NªŽCuçOÂ_Fˆ{܆gtþ—†N‰ÎÀWÎé‘1‹H¡ e¬–­ÌꌄÉ[½¼ö°Ý # )¬F¿™Ñ<Xü³'!FÚðœÏã”_BK-yž•À�ÙB¿‹\T$?èÃLB°:Éy¹&MÛ·k°‡£àcÿ^ÎÆ…apjh>ûÀ¥Wð×–¡\áaª„x6Bx!nª¢Vø‡'x…Gøƒ'x±Q¸€ O¶?8Sø³(ì”%t‚8ÆNM`H¸€Cì$/rç{¦÷Fƒb,„?h€*q. i·z†!f‚?¸g*øÇg"„¨‡øÇ]0‡k  ÈQàE@ð-»˜PnÖ6(Wp7¸†TH‡Løbg™‚!—˜ƒ%´‚mØC'Øu8LØç*‡‡Á‡ì€?Ø…#ƒS8çÂða8—YœáiÿãY%jÿ �–nðYÓ6Ø€‡;¸d¸Àpg0fc°p×u“KØF'82pÿƒ3…m{Xö€6\§+¨†*5RcøgZ ¶#à€uÀÀT ÓGq� Œ×2¨4  ƒ ¹&Øg¸7Ì„WÈ<ȇoA„fø….E˜ÑJÇå øƒý(¬@wt‡|Ñu8†S.„3„ÿðap–ìxólÏbÈøÂ Ï’é@Á¸ÄiÏâö œ¢¸Æé(À*ûD/]à,óâ,\A'iB;¸´n…sŸ¢ è‚o×Z´$7�R87æSR¼ Ð{@O&°ÆcÀƒ>€b J.èŒI˜ŽØÂ„ °KxXH€ø„2‚(ã8²†.‡6Ag—·‹wø àì(Žg8u ê³82P‡voÇN©d0؃]ÃJ®1p]»4{©L‡¶ÿ°ÃAûs/Ágh÷N ø†ó4 ÓÝÁ]x´S €:4)µ@Iš¤B0>�� Y7�<»Pà¤Ì• °MVˆ�’,…Âä*hK†¬…5ƒ}àÊ&¸•l…Gpgp7†0‡OH†THƒoB†RøQ*h‚_f¤m˜ƒe´’_F_eÑeuÓ^ØKdà W{çj3 ΂-Øâ,Ç Wó–J¬Ês. †òL¸â ØÑø Ø‚|…X€Ê`’{³Í$„Í�Ô(Ô¤ÌÈ,¹_ù$40ì‚_ ,$Hâ(ÉHhÂD †þ$€  /<X�Æ"„u5ƒ]`)28 ¸ö¢†{P(:x—b„wˆ€(ˆ†OÈŠUø†:h‚Vø…Fhmh†v:….è¦0Ñ%­Øv[؃ÎJ+t’J´“ÊÈø‡–҄ñdt0§EÀ%e€Ì0ÄÏG��H}¤EÀŠ�òü�(` i€/äòõ‚sÀª�pÀ… |ˆ †,>€²Œ„z_Jh+Lè+œÂzXLþ"8îÊ…+P¯xwÌ„÷ÐLø†¨€Jø…zhb,èbG›€Ú SÁ„éj‡?Э.¸òê…Z4 }äãL,3¤/KòíE €H<dZìrâ¤Êr€® ` E€^€«=*€ÉÌ$P+0«�À÷d…p ª;H¯˜J€Ö„ä-B`„õl.8½ú…G½„ x'q€OPl0x®wXMVˆÄT`°+»B¤D >ÁK�ÈÖ�¼¨‰ü-óF.c³Ås@ª…ZÂT © €ÖÌÎ@iÐʰ©`ª; ‚¬Œ„ iŽz5 ˜l ¡Š„œ:•ŒŒ¯éªéFEÒFGàÆ€²n\�¨RØŒ”ÌH: ªm`¯Ch@íÒ‹‚“ÖM2>æS7.ÓLm)¨ñ–¯áVñ ZœŒìÍßLAƨI�hŒ¶í�>oYÖmËì°쨎í8C@� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼ø &Jœ$i²ä)R¦J&mºô1�������0�������0�������v���������������� ������� � ���~������ž������´��������������������*�������¼���������R���������������/usr/home/fatal/alfredo/kbp.tif�Created with The GIMP����‚��z��9���������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/Makefile.am������������������������������������������������������0000644�0001750�0001750�00000002407�12214432632�015735� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������tiffdatadir = $(wprefs_datadir)/tiff if ICON_EXT_TIFF dist_tiffdata_DATA = \ advancetonewworkspace.tiff \ animations.tiff \ appearance.tiff \ clip.tiff \ configs.tiff \ cycleworkspaces.tiff \ dock.tiff \ dockclipdrawersection.tiff \ dontlinkworkspaces.tiff \ drawer.tiff \ ergonomic.tiff \ expert.tiff \ fonts.tiff \ iconprefs.tiff \ keyboard.tiff \ keyboardprefs.tiff \ keyshortcuts.tiff \ menualign1.tiff \ menualign2.tiff \ menuprefs.tiff \ menus.tiff \ miscprefs2.tiff \ moreanim.tiff \ mousesettings.tiff \ mousespeed.tiff \ msty1.tiff \ msty2.tiff \ msty3.tiff \ newstyle.tiff \ nextstyle.tiff \ nonopaque.tiff \ noopaqueresize.tiff \ oldstyle.tiff \ opaque.tiff \ opaqueresize.tiff \ paths.tiff \ smooth.tiff \ sound.tiff \ speed0.tiff \ speed0s.tiff \ speed1.tiff \ speed1s.tiff \ speed2.tiff \ speed2s.tiff \ speed3.tiff \ speed3s.tiff \ speed4.tiff \ speed4s.tiff \ tdel.tiff \ tedit.tiff \ temp.tiff \ textr.tiff \ theme.tiff \ timer0.tiff \ timer0s.tiff \ timer1.tiff \ timer1s.tiff \ timer2.tiff \ timer2s.tiff \ timer3.tiff \ timer3s.tiff \ timer4.tiff \ timer4s.tiff \ timer5.tiff \ timer5s.tiff \ tnew.tiff \ whandling.tiff \ windowfocus.tiff \ workspace.tiff \ workspacename.tiff \ xis.tiff endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/smooth.tiff������������������������������������������������������0000644�0001750�0001750�00000004142�12214432632�016062� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�R��ÐÒ‚1, a  +-àÃ`  ; AƒLä�a£€ ” 3ç‚’ ?$ôxÁ¢ÄYH0ƒ†6p¤Ä€ÀÁ 6@˜$ÀTd€èiEK$z:@0Óˆ—1ä!Â@�‰€!J6=¨Òa¢Ë1 àˆ²€Hˆ(BlàŠ8Èx@FK®}�øÙÀX#]àXéƒÃ@&@2=Pä¸!  “KTÔÙ! Í N˜¨‚ÀD".ZPq0…“%Ülág„;0DØBÁD¿>³s±0�½0&ÀöÆMAP)rFJžT²ì`Ñâ…§Ö,@ § qàaDH80�VŒ‚ SÀ`Ã`G„K¡Ð�fÓ¡EÝ< €s`0ÂrŒñ„m¼¬Åtp–G°Ç߀F`àAP6  @@XÐvÁ ÁXŒ€S€àÁ 0(Q� �„ %@¡C0˜ÑNÔ‡I `D8XP €GPPÆ”°eìÀ†MÐaB!1‚ å QQà`CX!üÂ@è’%€ÁG �hP”‚D ¸06K ¡A p„1Yl@AÛܱ�ƒ Åâ‘&¤�‡E@àGP¤±!Ì@†  `FÇdŒ�†S�ÁE`p��r¤…¸ÍÕpyF 3PƤ°9¬�Ds€kÊsà`B Xèê%Å~¬‚k@áŒ�WÒ½V AHH„�e€¡E�˜Ðª q QÇÇ`d°� ìE `áC ÈḀ‚ @aU N¬�€«V¸°Z¤u˜[1`8P"¸€�!�!NUE@ÂLıe àS L@ºGdq��YÌ€€Á†ÀÕ…%@àR þ^A>¬�>p$1B¸� €!CP1uÐô‘àÁPD1 I¬F '�‘À�¤=&� E`ØFdhk…K€àÃ�¸1�NL€ãd°<¸®-Ð÷[°ÇrŒƒ¯¹.a,�|@Ø h[qÈK=�áw^ì�„ëÿ£��ÌÄQ€BR3 …�àA^ÀB–À‚Ì/€ƒú�… �¡’û�₃$L�\Ph ³+X))€Qà•›# PðÁ@`…�ÁÌ0ÃXÕ0 h! xð@˜Î¸a HðÂàD``˜�b0(` ÈÃ(@  $�€�!�Zˆ�Ô4Ø¡Áè‚5à¡`‹èàÀ,Bð„>Á }@€ †‡>€!Eˆ ¼áÑ-@!;€Ñ�H€€€ œ{� 8 k2˜� *p:”àThÀP‡+ ¡w€Aî„.�ÁC(”C�“ßÁ@ϱ”‚ L�h�AVL@¹WAH0‚0…1¡GÀBN�ƒ*Ü\ ½º p�”á¨Á Ð…‡£¢&h*”¹Œ ´A˜<0`PÃRã°ä >@Cš€*5x�P4f‚3�¡W�Cö�„"Ô7�A .éÊ3tàv€jÔ„€Á�…Ð4„µ‘€BÔ5.ö´yØ�òŵƒÆá`z8™ö�ÐD^ò5¸ ŠÕ€*\ r�ð( hþËí¨àFK_Z©hÁ² ˜œ*‚$l ‰jA Ž�€lì]W¢F�J [*ÈÃ@P†� w�@ž€�JtYP �ƒ¬�.¢'ŽS®lyx¡ `ˆÁ àƒ� V_È0 Rz"gä ð\¤”¾¬äà`¨Â …9À�@Ø�O- �ðÒ0¤ ˆÄôP­' ]›lTC·�‚¬å€š@‚-� g�@¡ä¼P'� ¸p\@Ðh �œ”µëXSªî�¨d  À „©ç÷˜œ�­|¦ `†€ ­VHÂ�ƒc {U8Zð�8˜À8@� �$€�H°xKÂ.Ÿ;Lëš D-af�@.�‡ú 4ÊaÛ©jP€@ [µMš¥‡8ôÌz jœ€,`� 8�Ž’<ä`&Xúc†YRç)Øй…:\:åˆÍm$œF Çl”*­N> �T P)à€  � €��\@�������������������������������������� ������� �E���������L���������������������������q�������I����������������/home/avatar/Devel/WM/WindowMaker/cvs/wm/WPrefs.app/tiff/smooth.tiff��created with The GIMP�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/speed1.tiff������������������������������������������������������0000644�0001750�0001750�00000000562�12214432632�015734� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�Ž���� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼ø &Jœ$i²ä)R&FŒ——ÿ iÒeL8sªxÙ²¦õŸ3Pæ¼Ù£ÈŸ;Cî"é F)\¼h®Le+”,®L¥,ù*æ)W%BµÚ•kV¯µ~ý&-Z¶jݦm»ö:vêÜ¥T@��������������������H���������������� ������� � ���P������\���������������������������U�������†����������R���������������speed1.tif��created with The GIMP�����������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/paths.tiff�������������������������������������������������������0000644�0001750�0001750�00000011156�12214432632�015673� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�˜��Ð$h°à!B† &l¸ð"F b)j 4Œè3 NÀ€�ûO 0iÜäIS& ’2E긩â¤É19 €€‚&N ÀÞ¼¹sçR0O‘<ù /š¿dÑ’ùÙsf=F€jfË4m¦4Y$KU7k¼,Mš7/Û¦|…rsêXºT‘e*°ãÄ®jõ„9[¥ôæÝ›c'ŽmÛ±ín¬¯ñ°&âÀ†:Tè5s6ª,c« q˵-“«G·vÅ–uîÔ3?;Ž}Ucxkòü6mÛ´eÇVJ`æv|ÄÃ1¼øÀG€dˆ[§Í< [wnù âO‚ è0€ƒ�Ž;O.P¡‚Ç‹›0R¤(àÂ[~MÙ•í¯ÍÇ–#[ý0$ ɹæ†kú¤_P@ƒ<¸`�*$ï!e#4fÂ�.,ÁBy”ÍÏ<×¹¥NÚЈ’ž¨PƘ k¬gŽ9öâà *ÈáõTˆ!‚ØR?•ÖÖw¿ÀlArb€#Ž9 Cp0,àMøô©Ï‰ŒÙÎ=´Ð‹P É#a˜Q†iȑל)Ï•^xà‰'Žøæ›{@”FXÍPÞy! (ši¥YˆC9í­’ÏR¬±Ç:Ù`$§–jsæÕ̪ت «èêy¯‘¸šÙª-ÔÐ’œ(b‰‚h‘Fi)¹m”!FÊ‘!Œç‹ .8g“MV™bŠQxä’[ xá’{™ašs>ùäaD ’]v¾�à“k~icš-a€~xá÷S…rʳIu%§š:ªy4µÔ\L „¡ Èნô‘Ygõ—x’ E�Èh¡…EC h €a™5r¤J@1K&�ù5_¾Ya‰E:è¤U\îçh �x �Ä�Ùá†;^è§ŸU°Á„ –ÕtT+ì° �0À“¼š¹ÚÔEÄ·¨X®·™•_tw�b§á¤t76Ù`!ø’ÒpŽaœ\pA†<ò`—]®`†ÜqÇ 4ÐÀ ˜éÏ�`&A;á“õó»޹㜗Tç FB Xf™#Î9¸± ¬°]·?ŒF”|4ÖaŒÑzº§CH-`ƒ;œ<>yçfaÞÏ¡'œâ?þóåŸO>�â›/ ÁüÀvÙðZA�™Q€…àò?,�ç8ÇqˆEàMp�€í†aˆ@êÀ°•KØÂR�vÉ1)L`Xç"äB ú\@ž %‚B 4`¼`ñð޼c#è1HñV°‚ÈG>&1þðë|ãø�<ð€r€àˆ  (€ 9Ó Îò‡¿‚ûè§èBêñ†·“�Õ¨Æ8$!­ •6°€ ,`’{#ØÁ.v ?á(Ρ”VŠÜ„CÊP0€ÅŒ&?øÇd! Æ‘;Á�" @_?ø8¾ñP€,àHµ`,`€;ÓŸ&¨ ѤUíhÃ"¤ -`f€`äƒ9¬a7Óû8À>V°†•¦!½â˜IJ¬f#Æè² ®a #˜p€gF0Š|ák†4è“é#Và?Yø7+þñƒ�ÆÌŸø˜ò àx &ap�à7€%ùÎG3æ1à¬à�;8¬IþŒdÌýŠ#�óHA|ù xÂ#žñ‚gã¥ÂQiJ…Gf’&0„‰ �NÊäàûåÂ2VÐAˆ@åó”‡<%O¾>Â+þÁnHë\ªwM €0¹c•¨8)ˆÁ N°ƒ³h䃬`&�Õº8äg)Øž\á¸Ç®´ `ÔŒ cÖHZ â¡å(˜ JP£bmCîRN”0ˆ€ì#�ÃFð&).KPƒ<àdr��SX´æªg@­iF:Ò¢ Ì£dP†Ѓÿ 9Ð+š{V4®ÑMÇ/°À!È‚ @‘/@ì�oÆâ?ø"!â¥-o¥ûÓ½Z‘¯6 jW©_ßâ’—xhE;Z8œ:Ø$«Dûi×—S¤€Ð äËŒ�ö°G�GpXÀ€�P…†¾ÈXÀD�¶êAíñ3\1 §øÇ^Û‹ÀZW¡Ç)(@,|b[øÈ#ÐA :.–="")‚†`˜Â ”vHûú1Þ¾7` „ eà`³�B�#\B`+ØK>ÃÆCR5º„_±�xe¤�è#âW­¨.&`Sàã˜Á&V0ºìH@#þÆ @!A0„H Ð汯è€A"0AZ E#ñŒÄ G`ø‚\à&ñ–NcZî—vq°†5üâ § �>pF   /¸:Vñ lã ]ÀAPá_øÅ:úÐ pƒ(ÀLIÛB‹ÒàµhD†(A;þ¾æn|˜/ˆ.¨Bœ G/²…Ÿîp…ûòYM>Á F~ŽÉ.E@áÏÀ~q(# Ä ºp 5¬âDà�Ρ}ðØ`A.’_ º¤ÜWáWXÂàXt¹­“8À=d¡�n¤ 5HCza�}€ô`(nqùJ†{–>É1ˆmàXÌÄ ¾±À# _8Â5:ð`ƒdð@ÜBP#Ɉ€�4 MV\E2‘\àá è@( ü°0Ù'? ¹XB2`D"’P+W,Ãô‘�1À¤P€�ôØ´¹À…Üoh P=èÂ7Þðjjâç¸Å q‹4ð�`>@1€oP‘H&†2”¢ëXÁ˜À&R‘}~ f(ZцV|á {xÆ;.ÀV â°€kŒí*î#€èà/„‘† ÔÆ³Í„á^ŒDÀÿÜbÊ€L`paÀSó˜Â;Žqü øÃ A*Xopx†l°ƒ�"àåD� @„ˆ‚D83t©æM¤ôAmDc¤ 8‡8…è‡N(Á`t�8q/_ƒ?$DÀ\‡B(‡z8…S8’TaD{Á4@h€hÊð¿W aƒ_è‚a¸_øFø‚7xðsX€bp‚X& \à†'à°O°àA   4$ð¡ÀDSç…Œ…;Ž‚-(†bÈf H �j@P€àOÄ1^ @�X`rh„F”E¶\¾X€X- a+&,”„CuØ‚=¸†xB@|Ð]�^.xƒkx„1†)�‡)ƒè…g€�BÀF`:Pk–ÁUµE*-Enh„&h„X‚À�¸ ös€óD� É@8‡3�‡~‚=¹iÀVìHŒdçC~{°'îg+”„rÀ†8N84¨t?XX|~àø€/x†X„A�†IÈvPøð.È€T¸Ys@c=Òúp  ú‚b(bx…'¸ F8LÀ$NF&ø'6¸%4øå¤V`V€hNG+0MÓX¥€.¸€n€ ø @7@8H�†øƒ7ø€'oM…; „7ø‡È‚$ø}ЇD [Ìa»£LÊ€ ¸„ ì†M…~y†k @…]8…%X0}0|À|Jc´±BÐ=€AI…?ì„MÊÀˆ\ÁÆxÇ1¸XmØ€•T…GàVP6`ÖèO}µCt³[”Èb6…+8§È„LH6O@ÐUPsNç¶YüÒRƒ7DîW ÇI”ÌÇl=AsY Œ4pì425ÊÄ|E׉3äÓm­èJ”°Çe²F“ìÍ!­3¿ÉéCW,Ëq¬ÌbÊÈYÅ"$$Ë�„$D$@^øeÎBÉatâ)�yƒ"H€­\ �\DF$8‚=8Âá1R r$…_þ–G$@vò…OŒÇø€^�h†zh4@8äW5ã~qG°„Pæ,�: Zø"w؆}8?Ô43ø w …c8ç?þËwø|ˆ„HÌ\ \¶cv‘Š?Œgö)š-iò…ŽRCÐC¬J Z¸ PȆ,(��ÈÒ iø‰?ø†Wä€pgp†fh€& J Rt•q®A°¡nøg)À—Xhƒ*¨�sÞ‡X†%ó�@Ö;ðgpO„�^…O�¤Sȇ�ðÇ<À"À+‰’(¹’¯¼’*yš…¾*Ðt+u  ìˆB@ z�õX …7r† :…[H‚4‡fh†& J @PÅ,vBr°‚LÈhÔäÐEPSP°�opƒ58€+a{Y(‚zhàcy‡/øƒ<pGó|ÛÅ1x¨ü’®B%¨bŒ/ .„1ÐÐG7 * Âh8‚tH†*@d D-^%w%…Wxƒ‡”†ˆ‡®!hºrBPqWîçÁò„R(Gvã)}dõ”†È'pð/8„s¸=Q(€è\ø¤[ø…\°3ÌÁ Ȳ’‡ïzn!š- Î5I˜}Ю¬*ê¯ZØ…$ˆ…b€@ÃVfIŒçÃø„‡ð…vh‡`¢>tÁä~ÖgCÄ;h€vn"�>ç„aX‡%j Ð5P†�Iànȇ6èE^ø x‡/ÈmPÃ< � 68-™’¬—’n1‘â\šåFX&sÐCn¤ b€”ˆ€PHP� >– øQ)òø�'…n`Q/åîC úÇ${è‡I®-8ø!ž†X-ø0øànPà„^˜ƒiHvèoø@%€óB B8蛩Wøjq:¡Yš¥%Ø]ÐÝ.E\– _d¨…jhÔKÄÁÀ¼Dò …�†o¶�¡*…ÞÌæaíÂf’C‚iX†¸‡�"°MЂˆ…hxƒ'¸ øP�6 @€x˜†3¸�@$�€…pà.­" "BƒzdöÎmý~êç~V.Ø]ÐìO¬8@D†¤’¤F^©$ø„Wø‚w%-T/‚ �€/�$0¸Q}`APú¡|fhðß1‚g`z &Sá±öä|BÌâ,h€ƒ4ˆ.Ad" "D…¥­·Î‰‘ÄxjôšÐ�tƒUìÆPxÕ;€Qf•$Z‚]Ø€UX7a"8@ ~  äQKÊ%�RCrp�Gpòy 5_”È"ÔÅö&‚4FÆ< r nÉè/ĉ›xj¤ÙpmPmt" rñ†m€0€ _)ê#YQÄ…C‡{*…kx€;`�J AP’"îÇÅ«+Ä•,E¸$E6ƒ,H…L´ �2†‰ëü™™Ir‡ÐuÐB7`ä'€H�'ZÿÊø…?aƒO¾šc8…3ì†-@LÀ€8‚@X€BPüÅî×Äp¯|DqFXçþÁBÄ™oHÄ|�R“€@8j§N”ôô‚gòRû™Xpøiøm}øRº&P8�N¬ÃÀÌ\к\Bz´ÌåìÎÁÂöDO_´Ç’ÜC—ÜA÷EolìaÄÌÌ×ã\E­_#Ô_DÍ-¬ÍIÊBÏý,Iæ4B%Táþٸ߄MÜ$„�p‡ñÚäÍܬÍÞG@�������0�������0�������F���������������� ������� �"���L���������������������������8����������������=��������������/home/largo/newWPicons/paths.tiff�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/timer2s.tiff�����������������������������������������������������0000644�0001750�0001750�00000001116�12214432632�016134� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*�� €� P8$ „BaP¸d6‡¿àq(P‹D#Q¸äö}=Æ#òì–MŒC$r)f)“Ä%q9¤gšÅç/ù¼Y$˜Ææ¨«þG£D┚%6‡. Æ£Š¥V§E¬EésºJ­_°R«4Ë%.·8®Á%r»¶©b­XìÖ;\¶ÓJ·^i -ÊýN˜Ýd7¬%^ㇾâ)x*…{ ¾\ñWû$æ;Ìdr™,M/\¢æ)˜ F“MO“èµZ»ÎZ9¬Ølhúè~3e··c+»åi&Ûov;«¼ûexØoø°iä·!¡Âh9{[¶–Ãзõ§½: ÷QÚê÷<^;L�����������������������ö�������������� ������� ���� ��þ����'�� ��������������������������U��������������2������:�������(�������1���� ��BR���������������timer2s.tif� Imported from XPM image: timer2s.xpm��H������H������ImageMagick���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/keyshortcuts.tiff������������������������������������������������0000644�0001750�0001750�00000007317�12214432632�017327� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�ò ��Ð$h°à!B† &l¸ð"F b)j 4ôb‚‰t<? €$ò$~Ì¥r—x:<€f•X6ÿ9tæ—'0(\BQ|1%T—BPn9ÈJøY`5³5ìׂ_Z½dAó¹nœÊ\•ܶòÙÆs;y¢3êœÄwwñ@ÅÕ§ Èý ²2¤'¢ám|úllPÝ*eŠaêd3òU¨|n1ð0"\œ\Ðþ­²¹ݺÙ+|m :Ú¯óí azÙ=2àý|Fç|¤’Õã ÷Ì€Çý¹û{º¬æ*ìë7êAKñîEkŒ>‚þd*/RdµUö;°0~šÝγ×ï=9òðí?Þ° €õ)0é�÷šÇ Uâ=8»yA?$Ññ ÕR&Ã0·à—íðEÂV2#Qp¢€2*³H2öb 1&Ñ)ˆ ´âVQY¬ø}•"wÜ5âÄ}5,!ÌÖäSPˆK#ÑJUtÂÒp’ƒ´=`-*(ÉÐl¯Í”ÚÌã4"H²qDe&'Æs±:É|çÕE›ø5¿¤ÈT@ÑÓký$3Ù )uÑWù‚HÁ× y䦴|*StâËÉÎež©P9pa¯4+ÉÌ.ŸÞª9¬67ù| €7mõ‡ó³³";/À0„úÃ2ÛìàxË ]£­B5[ÍV)O+¸h‘Ó–mç\>ùPl³ìrÝuŽ{-掭+|¶õ3’³®³³U2€µTóëÑÕRA£ÔÈ1RO+¬´áàôK)ÎŒe©¦‡¡}8'!1äFÏÑMV‰±Ýr+ˆ±Ù Âb­Øë 2QÍä|L¶5Úì³?Õ¬ÐÝEµØG2šçqQÑ£ÝäF"!sréôDu)Ñ‘]¶óƒˆÌä ’2í¢äT ³k1ÚE]›P+¸ÚTŠæh/ض)ÄÐ]Ô”#s¦¦Õeʇâ½C0ÙXÈ8PtLï°(ÀÙ¾ùfÐÈ ò1[A¬0ÒHqJ1™õ³ë«_2‹!´µâãkÿ tWü°t'ý:ч¸ z02Æ«¦· ¬P¸·mâ³Jùz°UЩm’o@Á[-·’Žþ—Y~5H|‚QŠ7]´‚º÷ksãõíõ‹6Z"¾pã0ðn,DÈóa÷'²~ñÚF°ýStâþ‰Õ|–ZtT¢«`G Ï¡'æ#6øk{ RMm®CºŠiÎ =(t˜6ƒKsž‘L¬ô#( CÊV¯‹UÜà†Ck8´ƒ;Œt…cXˆŽ„°{ˆØ$­Vµˆ …Ì÷†"(sQ®=PGÂöbå–f)äÈÊþ*–)¨¤EÃ×^g''™L ”Ä@m~–8E+Nqº’:jƒ[lˆûØ“OVögÆ‚nÝJdb)³i\ ú¼ ¢ŸÖÉNT%¦¸Š¨A•8l$‚Ib6]4ƒ™¥†RŠF‘l(ßþâÔ±CzÒO>Nµƒâõ©Ÿ­2G­@š¶dh(ÎÆ:êÓKtßkOú&†2ŠÅŒ{æR’“½Šeñ8‚¥BðhŒkA¤-› Õƒ8ŽU•“˜$zP“ !Bt¸äBX`ɵ¡ádéI‚ _$ZVðÙ c¸«ÈÇI)É 3ÒÍ@èª -ã”J¢å¤UASâdÓ¥œT,ûµšfú€K ò¡•R a¢#²„¶g>=ÅJ.têgÙ”¾Ú¤ÏlyúqÜpFŠC ¾Ê“"£+]É|Y‰–žÜ ¨;•âëDd¼&hØ‘ +&3Ÿî¼Î)Ñý [W9¢ÄÃTuTˆ7*$Yê—.ÝI ±²‚‹Ì·ÔÍ âh¥u²¿K¥‘‰¶€™sA¥È’21Ûû¨c·”B2òA¨‘©…©ô]@2åû »Rb'Éä“(N0òqBB‹a&»›á&à¯YR²SAìÔýJÏ÷|ÚlœÔ3ÅèI²ä£¯¾N'�ù µö]HПøå©ùÈS!ÄÑßy­—ªÇSäp»Û½é7œtƒ[ê‘‚1 &Ëå䳑Û3nT“' a9ÐÒ;Ì÷!›Lf 6¥„”¾JýR¯©$V7ÒÏ¥ÄadP*, X!¼&Žò*s#10A«×ßÓœ8‚-•(…jV¸Š žëNäCWÙqCºÊg~XàHt_ Â¥¼.¹¯Á:6~eSvò™í+‡U˜ Ìö\D#2…è¡(�Æñd̃æ6RÉþá£{ø2çR;“L–7YªsTÎÀ×̇æLˆŽ ™ûš×:PÏ(?a‰]sÊ8Á97‘±Tµd PÂE‘y“É„`ºãæM’©M)òQˆ‚Ô3­Ú~Fm%[•‚¢¥Óù0Xv JÄÙQ³&è”|=)’«’ÝØÀº² ™…¡O~‚À›5µiDžÜÒžJÁž5Ç“NÅ.˜ƒ€Å€½ñ@`“ ¢«Bä£&´mAçöwL‰Ž¨­s’“BˆK2ÒA5QMµ8DëNèIsNªI{á'ó]ÅHåÓ/ÊÜe'+³7oÒSX%É„€²ýËMX¾¦§F¤€…ƒ§õ‰¶p¨_vJiž¬À4.’BMüZ¡KÁH!Ðu·Ôq„´q°#_7…D +’5¿¹Ñºøå"“ç+2Ù‰•dg*¥E½¸mmëÁ ›Rúbâ”RR¡ÀDVÊÓ†èʧ9+”_r³S>be²NšóšùÃ"°2Š!HßoŒdvø6HôÈþw":”ïjöG¬.•§ØI'2A¨‡ ·—͹•|o^`i–í³ÉŠžP_îô5'mÏ-' ÝÂÀ¤Õ$Z!ð+Q•].àBtè¼Bv;§‚×™|{’9B!tw³Ó=_«˜dû"³u>é Âë‘4Az†\Û‹ÌŒ�VS!vÄV¹iÉák àõ 6eBŠèˆ]ÅV¢“/Ýs„×én{fgÍŽ`§¬¨D>Ñbëî<ôÉdþTS¼æu¢Øê>Äu ¢ œ”nîDsäC sñRD€%+~C nD#47¼¦@§I$Âl¤0¨äRQÄX“Dp:§.ÀEÚC%¤ð3¶ÇYX™#Z<C“cnäV´‘OêÁItU0>/÷ !\à Ü $Ð ¼v4àÇ|…2ŠP$Vô¤ @‰ÂWŒäkjÂV‘Mô£¢åÌ–=qãuœ$;ôÓ1|€†°%NÜ¢â XÐ@tF9œ”gÜpc�GPt€<ìú´-ìÆVáóO̧´³ÀlŽ ÒvøÔ œäk¾¶#¥C5¥4¹z,åkò‘a�`˜Ö ~Óm’gYEt‹®’k`ÑnT#Zá#]êDÊÇ+d!O†¢*&ŸÃhb¥Y#}tE?7“5ÙääÃHCŽÀÅ-ìäu¬@?}ÆȈ <#,Ú‹Ø WF¡ôÄV×Áò$O}B&JA ìD%Ž>¾ÇR&Prn” "¼F>ÕóGØrhìD†â3ÆU¨A%¾¦òÁH‰²#ZåÙÃWHJDç^P@O†¢;$òsT#+²ÃNâT=$~"3Á'R`o(Æ .%}EWz %«‚b%+‰APR@ ÂEìDwY#ôDPJ!VåD£EtPO1Ž`â@+Ì&V…`{ÞÄl^†~Á|¾Ç-lukTÓ låÒ¨G2Ä1aJ E¨ÀN¶w]ÒF ÊÇHz b¢&b%Z¶GW|%%tU¯ôD rãR¿¤jnÄ|ÅRò‘|¥$,~Ã|z ôÒÅ mD|Å/Yc4'Oü¢R`(ÙÄëø&,¼f¨` t`r|ì¦6òT<R' ‡…È aäKcÜà@ =Ä!Zæ°huh¾&}¬HC¸I%#á{ò>Rˆ^”£="Ã|ò!;ôD Bû‡2¢å*ô‹oöÇ-|¥|YéÜ%B%+z ,59lù<Ç|;�@MÔ]þG¤ ‘,Çw¿C6¾¦=²#;jÂR¢åM¬9~Ãdš `\ÔÝ`¡b¾—d£6YCWÊÏJbtðÄ Ü@>êÒ•SÄá9RðYªÅ ²£=ŒÄVÜà|  Ì×ZT³h#NÜXà#]ã >0¶äàE�§½4fû¦¡ʧd‚Nw QµÈÉH|@W:0z@%Y#"Œ¦Ü"^§&4'»¼B GôdqÁ-‰a{…À-]‚¢!`¤ Hã‡&+É!¸@;JÉfýÔ/Âb}$A%4D6¢M”³o@¢¢5PQÕC7B‘wä Z|58*΢â1„"SQ\¤¬ Œ,~\Fw'«Êg–E%‚àû �µ C ò¬Æl¡§=¼Æb¥•@0íAPÅ­jBž�TÒ›2&ü*k‰“5#QJò¡=.FtÅ 2ê‘EäA²ª�@Ï ä“ü¬A²FàΫì³Fø§¶ @•¢¯ÁÄŒÆ ÿ”|É j#B@%òd$$ÄA¼Ö6$Ò£b#¯;¡i–¢ÕÆ:ÀêãX}‰VÜ aÂB%Rà9Ú#OA ò¤b’#yÃA ¢%l²ZCä¦lª¦nš¦m�������0�������0������� ���������������� ������� �)���¦���������������������������8�������é ���������=��������������/home/largo/newWPicons/keyshortcuts.tiff������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/dockclipdrawersection.tiff���������������������������������������0000644�0001750�0001750�00000010134�12214432632�021131� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*� ��DDDDDDDDDDDDDDDDDDDDDDDýúúú÷÷ø÷÷÷öööõõóóóññññÒÿDDDDDDDDDDDDDDDDDDDDDDDúÁÁÀÀ¸²¬¨¨››–†ƒ€zttpÿDDDDDDDDDDDDDDDDDDDDDDDúÆÇÇÆÀÀ¶²¬¨¨››–†ƒ€zzÿDDDDDDDDDDDDDDDDDDDDDDDøÀÇÀÀÀ¶À¶yZZZa›†ƒ€zzzÿDDDDDDDDDDDDDDDDDDDDDDDøÁÀÀÀ¶ÁK p€zttpÿDDDDDDDDDDDDDDDDDDDDDDD÷ÀÀÀ²¬ ``ippÿDDDDDDDDDDDDDDDDDDDDDDD÷¸À¶Í qäållÿDDDDDDDDDDDDDDDDDDDDDDD÷´¶À ÂÿÿÿliÿDDDDDDDDDDDDDDDDDDDDDDD÷¬²zÂÿÿÿ×iiÿDDDDDDDDDDDDDDDDDDDDDDD÷¨¬BÂÿÿÿí!``ÿDDDDDDDDDDDDDDDDDDDDDDDö¨¨BÂÿÿÿù?`]ÿDDDDDDDDDDDDDDDDDDDDDDDö¨¨B(*'2*äÿÿÿù?]]ÿDDDDDDDDDDDDDDDDDDDDDDDõ››B òÿÿÿÿÿÿÿÿù8]TÿDDDDDDDDDDDDDDDDDDDDDDDõ–›< íÿÿÿÿÿÿÿÿíRRÿDDDDDDDDDDDDDDDDDDDDDDDó–y íÿÿÿÿÿÿÿÿå RRÿDDDDDDDDDDDDDDDDDDDDDDDó›) íÿÿÿÿÿÿÿü RLÿDDDDDDDDDDDDDDDDDDDDDDDó†H2'2òÿÿÿÿÿÿÿLEÿDDDDDDDDDDDDDDDDDDDDDDDñƒ†7Gòÿÿÿÿÿÿÿî(ECÿDDDDDDDDDDDDDDDDDDDDDDDñ€ƒ3;Óåÿíá;@@ÿDDDDDDDDDDDDDDDDDDDDDDDñz€i77731-)#%)---))0@@ÿDDDDDDDDDDDDDDDDDDDDDDDñzzzztppiii`]]RRPLE@@@ÿDDDDDDDDDDDDDDDDDDDDDDDñtzttlli``]]TRRLEC@@==ÿccccccccccccc__c______SµÿüññññïïïïïïëëëàëëëëëëëžúìììììììêêêêêêééèèèèèèÊÿúÁÇÆÀ¶Á¶²¬¨¨›–².zƒE@@RüÆÆÇÆÀÁ¶²¬¨¨››–†ƒ€zzÿúÁÆÆiH¶²¬¨¨››–›7z@ûÇÆÇÀÀÁ¶²¬¨¨››–†ƒ€zzÿúÁÇÁ›–/²¬¨››–†!zLûÆÇÀÁ¶¶²¬¨¨›––††ƒ€zztÿú¶ÀÁ¬%–¬¨››–†ƒ€#`E ûÀÀÁ¶¶®¬­­¢˜˜˜˜ŒŒŒŒyttÿ÷´À¶¶¶¬¨››–†ƒ™•{upiûÁÀ¶¶®ºÄ¹°¡¡Ž¤¤¤¡°ˆuppÿø´À²²¬¨››–†¦Î‘I<o‘]û¶À¶®ÞßÛÛÙÛÙÙÙÙÙÙŠ~ollÿø¬¶¬¬¨››–Ÿ{¾ÖÕe<B?p û²¶²®ßÌÌÌÌÌËËËÌÉA|soiiÿø¨²¬¨››–‡Ú,$)VBZ`ilû¬²¬£ßÉÉÉÉÉ¿¿¿·¹:rse``ÿø›¬¨››––™xÔH($1HO7a<``ø¨¬ƒ“ßÉÉ·”¤ª¡Å··:nse``ÿö›¬››–tÔÐ<$%B`aw“63]]ø¨ÀvßÉÉ¿¤çðªÄ·¤:rhe]]ÿö–¨›–†ÁÏx.$/QizZ8/7]]ø²vßÉÉ·”ÞÝ^Ū¤:b^[]]ÿõ–›–„Ü«x$(<]iw‡d7$1BTTø¨avßÉ¿¹±Ä~šÑ¡ :bUYRRÿó–×Õ1$.QiiÈ}k)$/BRRRø–›QmÛÉ¿¿··³¯¤ªª:U^[RRÿâiØ«)%7a]–ÐBX#%7QRRRR ö––…Û©§§ :b^[RRÿõ ¬‘B(BiaãO•-$/BRRRRPP ö–†‹ÑMFFF>999555b^NPLÿóÇk‚3Q¬½•H$%7RRRRRLLL ö††¹±¥¥šŠŽs~rfg\JLLÿói¨1a¼Ï´o/$/BRRRRTLEEC ôƒ†€€‰‚pllqej]]RWWJECCÿô"L¨xÏN$(7H]]RRR RC@C ô€ƒ€ztplli``]]RRRLEC@@ÿñ&0¨-//! B1)#))ôz€ztplli``]]RRRLEC@@@ÿñ&4t#ti@ = `@ôzzztplii`]]TRRLLE@@==ÿózœ’’€›CBiR`7R1R0E))%ö€ƒ€zttpli``]]RRPLE@@@ÿä  æ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�þ��������������0�������0������������������������ �S���æ ������: ���������������������������@�������� ������L ������T ���������(�������@����\ ������/home/daniel/WindowMaker/git/wmaker-crm/WPrefs.app/tiff/dockclipdrawersection.tiff��Created with GIMP����`������`������� ## """"%%%%''))++++--0022//447788<<99==@@BB??BBEEFFFFJJCCHHMMMMKKPPQQSSRRllOOWWZZooll]][[XXrr__[[rr``]]^^__zzdddd^^^^aaaa||ggjjccggeeffggrrrrppiikkoo}}jjƒƒkkmmppˆˆnnyytt’’‹‹‡‡oo}}vvqqooxxsszzŒŒuu{{tt}}€€zzxxƒƒ——‡‡‘‘wwzz€€‡‡||ƒƒ{{~~ˆˆ˜˜žž‚‚‰‰££¢¢…………¥¥‹‹ƒƒ‘‘ŠŠ††ŒŒ­­ŒŒŠŠ¥¥««’’……ªª¥¥¥¥‰‰¬¬©©““‹‹››ŽŽ®®°°««¬¬““®®••³³¡¡‘‘¤¤››››±±””™™————µµ°°——  ¼¼šš»»Âžž­­¬¬¯¯¹¹©©©©··²²¯¯°°¼¼Çǽ½ËË»»ÓÓÓÓÏϵµ¸¸¿¿¿¿¾¾ÆÆÆÆààÐÐÒÒÖÖ××ÛÛÚÚØØÜÜôôááããèèååììééïïííððôôòòøøûûüüþþ !!$$$$##$$%%((((++--..000033555599::==>>>>BBCCDDCCFFHHHHJJIIKKMMNNPPSSTTUUVVWWWWXXYY[[[[[[\\]]]]__aa``aabbcccceeddffeeffeeeeeeddgggghhiikkmmiilljjmmllllnnnnppooppqqssqqpprruuuuttssssssuuvvxxvvwwwwyyyyyyyy{{yyyy{{||zz||yy~~~~~~}}}}€€‚‚‚‚„„‚‚ƒƒ‚‚„„††………………„„††……‡‡……‡‡……ˆˆ††ˆˆŠŠ‰‰‰‰ŠŠŠŠŒŒŒŒŒŒŒŒ‹‹‰‰ŽŽŽŽŽŽŽŽ‘‘‘‘‘‘““““““••’’””••••‘‘””““˜˜——––™™˜˜˜˜šš™™››˜˜œœŸŸ  ¡¡¢¢žž¢¢¡¡¦¦§§««©©««¬¬®®««°°®®´´±±µµ··¸¸ºººº½½¼¼ÁÁÈÈÌÌÍÍÍÍÐÐÔÔØØØØÜÜÝÝÝÝààââååååææééêêííîîòòññóóõõøøþþÿÿ��  !!$$&&$$&&!!++''--//++33**66884455==88AA==JJFFAAKKPPAAFFOOEEKKQQQQOOVV\\YYQQ]]cc^^``\\YYddjj aalliioo{{qq''ccmmmmxxhhrr))hhnnttppvvƒƒyyooWWttppuupp;;||$$‰‰zz ŒŒvvvv//gg‚‚ƒƒŠŠ%%zz……rr--33ˆˆ}}ŠŠ„„„„ŠŠ€€22††??’’ŒŒzz––‘‘””>>kk99——qq,,%%““44‰‰šš//––……uu——NN™™““22ŽŽŸŸ33,,yy  44MM¡¡;;œœ==66˜˜žž}}¤¤7711EE  11  ––¢¢;;££<<qq¤¤””  ««>>¦¦¦¦––¢¢MMSSªªªª°°CC¡¡??AA±±¸¸¨¨¯¯nn««¨¨¶¶¶¶½½²²³³hhÈÈkk¸¸nniioo½½··ÁÁÍͽ½ÅÅÎÎ{{ÑÑÔÔØØââÝÝÙÙààççììááêêððîîôôññøøïïööýýúúýýûûüü������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/speed0s.tiff�����������������������������������������������������0000644�0001750�0001750�00000000734�12214432632�016117� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*���š€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¸Óýþ�—Kæ3 tÂY,šËàS9ÔÒe7“Î`sÊ…@ÑçÓiÝwJ¤Kgôú2­=¢TbôªÍ^U­F+•ÊýZñÕk¶xôæÝ2¨[.W;¥Öíw¼^oW»åöýz€€����������������������„�������������� ������� ���� ��Œ����'��˜��������������������������N���������’������À������È�������(�������1���� ��ÐR���������������speed0s.tif� Imported from XPM image: speed0s.xpm��H������H������ImageMagick�������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/oldstyle.tiff����������������������������������������������������0000644�0001750�0001750�00000007644�12214432632�016422� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�X��ttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuttttttttttttttttttttttttttttttttt���""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&&&&&&&&&&&&&&&&&&&(((&&&(((&&&&&&&&&&&&&&&&&&&&&&&&���""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&&&&&&&&&&&&&&&&&&&&&&((((((((((((((((((((((((((((((���""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&&&&&&&&&&&&&&&&&&&(((&&&(((((((((((((((((((((((((((���""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿ¥¥¥���SSS¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSS���¥¥¥SSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿ¥¥¥SSS���SSS¥¥¥¥¥¥¥¥¥¥¥¥SSS���SSS¥¥¥SSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿ¥¥¥¥¥¥SSS���SSS¥¥¥¥¥¥SSS���SSS¥¥¥¥¥¥SSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿ¥¥¥¥¥¥¥¥¥SSS���SSSSSS���SSS¥¥¥¥¥¥¥¥¥SSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSS������SSS¥¥¥¥¥¥¥¥¥¥¥¥SSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSS������SSS¥¥¥¥¥¥¥¥¥¥¥¥SSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿ¥¥¥¥¥¥¥¥¥SSS���SSSSSS���SSS¥¥¥¥¥¥¥¥¥SSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿ¥¥¥¥¥¥SSS���SSS¥¥¥¥¥¥SSS���SSS¥¥¥¥¥¥SSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿ¥¥¥SSS���SSS¥¥¥¥¥¥¥¥¥¥¥¥SSS���SSS¥¥¥SSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿ¥¥¥���SSS¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSS���¥¥¥SSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&ÿÿÿSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS(((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&&&&&&&&&&&&&&&&&&&&&&&&&(((((((((((((((((((((((((((""""""""""""""""""""""""""""""""""""""""""""""""""""""&&&&&&&&&&&&&&&&&&&&&(((&&&(((((((((((((((((((((((((((���������������������������������������������������������������������������������������������������������������««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««���««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««���««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««���««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««���SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÿÿÿ««««««���������������������������������������������������������������������������������������������������«««ÿÿÿ««««««���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿÿÿ««««««���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿÿÿ««««««���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿÿÿ««««««���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿÿÿ««««««���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿÿÿ««««««�����þ��������������%�������!�������*���������������� �M���0������~���������������������������@�������O������”������œ���������(��������������/exports/home/wettoad/Coding/WM-0.80.0-patched/WPrefs.app/tiff/oldstyle.tiff��Created with The GIMP����H������H�����������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/workspace.tiff���������������������������������������������������0000644�0001750�0001750�00000005202�12214432632�016545� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�p ��Ðò h°à!B† &l¸ð"FŠ%jK1�Bã ’Ñ&Jœ$iR28'ƒ–&Vàx ’eÊœ%k”©téÒ �h¾¼@��R¤�P�*KPP&]œ Ù*Vªœ9�ýú � Gn· �˜h @I³ÒecÇ_¥m»öáªí €F7� Ü6j¬/�yZ((×:c0ûöu8& …ñ�ØM ij‡é“ØP8gö\ƒ �`Z €ç2�X°ÐÌž²· �„6®@v+�=;�ÈÞ=hH…à-ªÙµ‡È1�NO�Ûó�$_šÞá<[�²n€qÀû�Ø< íéi \פ2û@_`Å��þü®ŸÔï{[íf×®�Ð8°�ßIuEû@±6B�d�xB€”ÐÀ/,� …)¯�À-"‰”1Ø/m·€�¸V°c��¹˜ƒ�ˆØƒ’…¸@?>�hK�΀ïÄ�:)�€I�8áD/I¥;( WP,Ò€‡ô�0£Ä’�(3!QHpþ²†ÿì³Ë!ël…Î^¡³áO~ò Ï 3–OqÁ-4VvØ0¹ä)H…²ôQI*ý”> A™bŠÒÀýP‰›òà‚}6’LT`�€U޹�v¸à¦|n*¬¸R`�¨¼Êª«­¾FYÒÁ"ù# z3ä¯J~ùá�~â �È[ÑTóHS7LP&™¤ÄϸæªþùQ¼™æø€�ÀëVYa ��á �.¹à�N¹à"=�A�EÔѦ‡žzé­¾úé‡DV¬F©öAEVrʨJ[žò€žA �˜aIÛˆ¼-�ÚiÏSÒ�à}Ž£‰øp ƒD§7IÞû㚇 –êhð �aDf‘Å€^€¥–áa¹VZeäQa=e‚@ �@…xá[/áCÀ²KU¾t�Ê,;�Ød“-…·Þv{�¸ãµ/˜a˜Jx§¿y®Ù€ Njá5I�E� ¼P˜Nâ÷”ÓÎ�à, Ï9ï‚‹d«ÑÆI5i£�À†�>8à@�à{´œ §-mz¦™¦,´0¸ä¾?Á†èþY�ÈÞ‚Õ÷€ú#�˜cšI�8ædpÀ»ïÂû@ü±€¢ÞgõÃ?ýü˯¿½þ?ÉÈ/>ð¨IË€�à ž1Y+"¸‰„–ž"„µoqƒŠnr‹”I"UmE»–(W8é.”‡�Ð 5�BòP…&ta`u˜B–P†-´ác¸Ãúp†54Á¶©[‰H5Åð‘|J ¨â”lO†¾úÆ)N9Á)£%š�€Ltˆ�Åè�j1 s¸Âž˜…/&ŒeÂÓXÅ.LŽspK*d"ùÞ™ 0@� ˜÷¹G½F3íyÒ^žö,�p’8?ÓõIŠ}lc‘”˜Ç!i±Nzl’΀Ã2ß‘�|á°��ÐAnm\›±©S–È(3˜ }’PÌô“…­MQ`ÜÆZ$#Íz>Í€e,�ØÀ(T b*vÛ#íü&¨g<—8œ&d$â � “3�d*�@Mnr‘Õ3!gÍe®s›’jPÃRŠ�àÄ�ÏxÔ>ñ31A^ø ¨<ùl ]¡ÇqQ¢æ.¸�ˆ,v8›'Bä%7Î;‘rR|‚—0o¹'a 2"‚ÀQdANgº}QÔîÅ* K–óR–¸ÔD+_žs_¢Ü劤¥ TF#ÆZ©Öt„(RÙÌ“ª Î.7"‹›Óœ'<‡Q/is^ŠŠ•ª’D«tŠóƒÄ!W…¸t ‰�€ �€BS¹lÙ»*E1G9ŠYìê–·¦­aŽ`Ô¸´¥"•ÈkkEâÚT–TÃ�<�tàËêY@hÀ�Üà¿Ö¤DU¹¬ .�ÊY꿆ðh77¸Å€”¹I5ÏUÅKBÔfˆ�ËB�°„Ï€*€0¦ïðAº HtößÐr5¼5 ycßþ&6ªÉ­PÓQ áÍÃ+¾u ðû8�.�À.ˆØ½ðöÎnb¯•Ô¼‡,^µ×S5¡ƒ½ìpSšLÂ|J!ßã5oyÏG>˜¯|°· 1¡#%9$kR 4:Bô|Hƒ©hGjI²ah$?e áH >V;™1tõ#Ú«±i¢%¨ESI4Ža‰u¨«n•Æ—˜QŒŠ¤MªÀÐ*ÜËétlrÒfú§4•2Œ7¨Ð08'Ή”œ`3è :4§ÉL·ã½«m0f‚c c‚2§I’iÏc†“,þœ›F"˜/¡¿à‚þL§<‚-PðB€š)LÑ�& B’�@ ZÐØVæ+È�aW€…`%+[…Ì�´< ­ �€îz��IH2+˜ó›*Á°m´U3.öWâ èImê¬p]m^õj½YRGJë¬êÚu…]#~‡V‚°†6´´lu—»¢â†g±ëÝïÄ»mÃ÷º7"í9{ß÷~±Ï"ì÷€{ݧ±I"›‚=„>'!¤! ‡Ñ–jU­J"Ž €àì@‰{ø#P™jˆ=1‹Àf™èË™×;.qImÐò¯'(� ê5�è8�¿~ü†ä �òè�ÔÇ nLuB‡ 1rÔèÈ(I À“'è�2fÊœ%k¶ì9ræÊ'« œè×o�€ïâ�À �h9�*pY€‚ê�¡ L¹2U�<¸õÀ�� @„�3L�äu ª+€z 5iÖ¢U›v:ÉK›>ï°á#FŽÈ_P—.Ý%K0:�Ñé�€ÍêØ¹º‚šƒê©¦@!� �A��/¾Ý ˆ��Ù;ºt«¾lŪ5ë6lÚ²m‡ì!F:}&ï�b/ p¥lùYÀ��¾½}ç¼µШ-!Øø| Àæ;�ø>úe—¨ÇO<ùÚç[ï}„Ïg_¥sÒÙÀƒpÖyÜ‚�ôà@:$Yh UeUÝWK‹ƒÁÍi]}×é@ƒŒ42ÃÖ)÷ù‹–ÿÈcˆ1¦˜c������0�������0�������* ���������������� ������� �?���2 ������r ��������������������*�������z ���������=�������R���������������/usr/local/misc/WindowMaker-cvs/WPrefs.app/tiff/workspace.tiff����� ����d������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/animations.tiff��������������������������������������������������0000644�0001750�0001750�00000005620�12214432632�016715� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�€ ��� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼øþݲö?i²ä)¢û÷©)IÊô2†š7ÈìA€�I‘(Qb¾‰!áBE‹—,Q¬L)ûUEpö<�kÂÉT§nH¨*"K–‚3Dˆûƒ‘¿ÀþÅ Áãß¿7%é�tíÝ!uÚ„‰; DˆØ?œá†¯7&YM€1bÄd9rTþ�Ïjh€yþÑ£†ìŸqô=WvXhÕÚñ•«x®.n`ìcw†Ð30@XÓPYÊbÞ±5óO¬ëÕïô¹SÀ… ßë$wÝê•Æÿx4¨P¡q¹mÁÅçs_ôº°VžRç×v� ¸0`ú‡õÇlÿù÷lþ¡ ”gØa‡›sØ` *˜à‚ :D·Å¶ (Ãà °÷2<'Ã÷̧ˆõÂ7X}ôÚZˆ!†„ )¤˜báÁØù§?.þé—$ˆÒéP„Ö âuÓC`PôæßÀøs֯ µ„¼‰*-þMƒœæ2àŸßŒSL63]Ùa‡]þB1þÍ$ÊD„²dè-ƒ#- aKM€R-0•‚#I£P§ÒM?ÃŒùÍ4óâùgžyù‡HsÎEˆ°‚:HXTh>œõJψR«¢ŠÂÒ.´¢˜Ë(“Jà»6þñÄß2ÕKY(ࡇÖá $,ñ·Bª°™jZ(2ƒ‹)®–Øm“ÚIؘJÓeðiÏ‘{ãyÓ!²(œ(¨ðæºo¶'çZ*ºæÖká¥/þá„Þöì2|ÃÁ¡¼"Žæ X`ï®Êf†«j„ÊRl4þZ®©ØV“mu½ùš?ü'IU²Ä’ÐÝÞd!–š”$Ò“WU€qä†d¶9 ²1z+¶ÌZåo1þi[’?À²WÒÜò°)TÐ “0¦ògG`^ן}ÎçNkÓç[ •LÆÛ¦w]·-–©ù+ ó¤7¾ AƱ�˜óš :€Ã6ßèÈ9*aKfOàoÇ“¶ûÔSvÚe·=¤�Ô0q”P²)$YnfΑî9êºU@„?roៜÛù#ó.þȾ÷æ[î¹/ ù'ë1þæÖ§ùãù¹±Z‡í3cúµRK;G<Àd Qã @ ðÃVήÜðЯ6¹~ä~àoB¾Îøõ¥N÷ô“ÿ9=Y;cÊ®Þ$>À%Z®VF(m@ˆ9_(ð¾²ÃÍâhߊÐó“‰üë´àûÕ_!žýítq¡Ÿßü±ÑÍå@†/�GX %$Áá¾Á«¡ ë;›+8~ ‰ß#2 Ñ;b!p rMFÆÀ`&0”µ †3ì®Q�ñ~GEPmøöGÄCɘ†HkÖ*^c‹?È@²‘#€äbƒ(@*B£€øF#pµõ9+G|�ˆ@ ºc¨öˆú/æ!Ži’ì%ÿÀ¦€yEd�m`G ÿø…=•rmPðJ.@â› ÒÔäÓŠÿY8éòr$Ò•Xg@=Dr<2J ”e"šˆC¸q)I3I6¡ÜUŸžÓL‡´B>íjOwv²ka%)EiÊ&Uçœ@¹LyÆÃÊ—T‚ŽÅX‡ $ÁˆÀp© WP¢'|-d=méÈ^A ’ ìËFvr�°œrBå予ñËD`SN̼˜¸°?> ŒOÆ—@ø¡:þ¶’ ¦%/Y©ðŸÒã?e*hYü.YÏáÿP+wˆV¤\9ê>ަ+­…-äò_Yc-à:"‰øÇFUðƒªW­UÇ q‹[ü[,VeI·ßqY3u¨ÿ)/QË�°¤´ÈÊA¶ŠŠ– Ìù,®Ð£„`U?ü'{5n°…ñÙ0%*Y?à¤K¥³Z¾\ä"^ñ© Îu€¢-œØ÷öÑìú¤™møCKðЖã?¶xÍVŒkØ™µ.­Â?ÚŠ?ÓJO9µaeVˆP»\G5·ŠÓ‘í#L‡›ñkwš-ƒ8vÿ¨ë2þ€Ù*WÕÂUÁFWÐ¥®tÁ~3J zÊî^Øíg|ùšÉ§ ¹Æ‹õ;ÕØÎ(Ô,ø7­24È (�ÿ€â€Ø¿~›–€¥ªû^8Âç¬  ØÙ¨£ŒÀÃ$а€Gëàx¡™©‚×ʯ^Á7:¼"iŒxÅÍXðŠÇ±ãU_x§¾Æ3îVo‚ãšÐxñ01¼âj’xEØdðÄ4Pà™ÀS$® <Õ©³Óœ¦)2O,Ò!Ëf$xF†\û\° 2>òa³­N¯–Á+ðæŠWÑ€xî¢Ákð*]¼R <xEÐBðŠæ…ã3‹Â+V;ÅO`±X]ä¢Ñ´4¼¶xërF^Y<Mi…ÓX1�¦€ih+·‚<­L̰­ýC�ä ŒûG«¯ÔÄ+àÖ‹W.w~LÛÈ7²±ùÏ¿x%DñÈà[Úâ–·‹ÍÅaÓäÃ+è¶;—¹ÃSV¦¼Ò©íb•ÓÞ¡í_ø¸e �Ð$ðž ´W�`ŒÀ˜çȾɅyÀ�óñ æ­TÌ/ó94æ1q8Ì/ 3˜×²’Žz´£µk˜;†’ŽuÄÃ^ðÄœò1¿/cÈþ"0²Ns:¢k y‘§f e!,ÓàÆäô„yÉZ h矉û‡ù‹1 Œ˜74X0O!ˆ`WÂ|d0†«cÞ’h;Î1®uµk¸9˜»<0?:ð(^a?ÙùNq;š@§½Ó鉦køˆFHŒHB ô¨<ùmϧ `Þ|—6ô£/{™Ç>áñàz2æ!õ4Ìó0}ö³žól˜>c�O}º~Á‰y‚zÿtå¹2gªSÌ��§¼=ïÌX øz�àÇx„Iþ|Ag?8B„ÑDƒÊg†ÀÏ# Á_BXË:™¯ã›ßúöd„~ ÁŸû~ŠÐd3,ç 0Âî{ÿ>˜@0'ðŸÿ¤,‚¥˜@ÿÀ¿ö~‰Dó ƒrÈX` H0s<Š@„0›‡00 4ÓC·Àöß lp ]Ô@ƒÐ@a>³^€“2¿€  :¿ñö÷WBA@� �kà`B�8L a`" -ˆ!x1„Å€+fì¸qâ#J, m2aS ß&uÚ4øS¤J†VXbDÂ`À€) X¾p�„†-¾HèÀÌåJ&e´Dò*Vª\¥J¨êÁk† ².VØ °bjŒK³¦Í±¶jݦm»öͰ´èÔVX=°�¢FíþAk �€?7¬ü«Ž=ft¿ÁÆO:+ôéX‘ÌŠj.V4 Ú·[€fμYH¦Í˜4–A“6l»eë¶ 윸Ð>¬½c­ +„ãÇN‡p¸ÞA¬û�í^¿kóž«ÛoÞº}çî½û>züäé³çw������0�������0�������: ���������������� ������� �'���B ������j ������€ ��������������������*�������ˆ ���������R���������������/usr/home/fatal/alfredo/animations.tif��Created with The GIMP����x ��p ��������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/newstyle.tiff����������������������������������������������������0000644�0001750�0001750�00000001722�12214432632�016424� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�ì��¸òˆKÀAƒ &D¸ÐáCE I:ª�1"G !n¬x\ÆO'IÄ�ü#K*Mjdi3¤Ï˜%s¶t92åÌ<oô˜!³ç*œ57ŠâYŠ£(Y¢”ÿrÊV*]±tŠ¢E Õ¨]«nî¼Àó§,˜»^‘r™[¤©Z¾rÛ*íÚ”«Þ¬NÓî5{äÉW½IÏþeJ×j•¡SÇáF6ê6 ë¸^™Œî7¦öög 5{ˆùSÇÐkRßÀ‹f¶,±zPë³6´™bá’Å;j/+°b{ÿX;³Í¡Cs7/Xyf_×Ý÷îÌ|üêªõ¥¯?Ùn˶Ëçö]ˆt¶È­CGž¼3§Ä½§÷?Öz<åÕW?¼Ù8êýC°K{óÍ ûýôÚ¦ ýuÚŸ‚71` 1p߃ô',¿ý 0°�}q)C•Ó+¿Í 7⨭Œ0Ôð¤ñÓô˜‚ +ªð£±4dO‚÷Ó/ýˆÂ»àbHÔÇè¢vË`kWέ„”Ž=´ÄœÛ×”Ãr$…°ÝM$ÎTâÒÐòè£6=þdc '½8²Q?µˆ|0=§,s ÖÖl30 ‰“‰ÄºüÍ5-0©0ù ×°Hþ‹.¶ˆâ‹’ ’M¸¸Ë(¦„²Ê,½œòݫЂŠluàÊV½*1«–²Ú*«©±ºšj¨¹¶Z먾®ZꮽÞ:k¡º!þ¢º‘†m¼±&›i¢¹¦›oª¥f[hµå[i½µ6Ûi£½¶[T½Ý:i«³Ž;o¿ËN»è¶«îZë¨ûž»é¥ëÞ{裷>ûì©×þû Ÿ¾hÐÞUGy(þ‡By˜¡‡~¸Ga´‘Gi¬QÇwì1Ǽ '™`²áj³þ©ë™¶¾é˜~¦g™fæþŸJÌÈæ™w¾ùXЫ&§ìpî…–Xr©¥#[ÄÁ¹¤\f¥•WYh9VXu­µ×qmõÎT_w£WZM�������'�������!�������¦���������������� ������� ����®������¼���������������������������4�������ã���������R���������������newstyle.tiff�created with The GIMP�����������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/appearance.tiff��������������������������������������������������0000644�0001750�0001750�00000010520�12214432632�016645� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�>��Ðò h°à!B† &l¸ð"FŠ%jK1�Bã ’Ñ&Jœ$i²$~üy Iƒ”Xã%Hž%k¶ì9��á €;OÖè×¢#CœL9K–*]ÚÐÔþ!¸ÌçÐ�Ã:ô‹¿L½ú "„ä�(„�øôÜÔšUG�ÌhÖ]»DÃî=êA€ �Jü óyléÜž'�V-Ù`Z›ö®u{Nšœ<tP�pQÀ™óÊvm9àÆµO�Îí;`^ÇøØu2OÙ¼%,pH@� Æ #(à ÝyàÕ³�\z`Ûš�–õhž°iëµÍ` DE�@@ƒ��çG<·aÞ^G#&.èÖtåú·à€�,�� `�ø T+Þ¤æ“Oy¹ã†K87œ‹�`‘6ê}õ=,%Óm¤!�à<å7ÇyåÅi>y†;-¹2_+Þ5å–C«™¡Ž†0ÃŽWÒp�Rä ñ ð€ùåÇr€ø$Y~ðÊažxà�.9ã�îyJ'Ufšjjã‰/3‘€� B:�@�>ø2(�øÎ`€�r_.�xIÅ n¸7—sÞ�`E6�`:*3ͼ$! $�ć%� å—ËÆNÏÀ|ÐÎT´änHJ^.¸°œY†™€ š(/±äÌ� d�ÀD�v�€Ñ@@Õ”o¾‹ª÷ù– @yà?@¼sæ�Øa‡kéc�v颴¾ú}·T�@ƒ©q A1ŸòÝ·�@°Mþäm_Sžy)”~çw‡ ®aø"øàe öYf˺©è¾›m�°áE´MÏk ̓?Çùà‹wÍ€ñ´ý¶« ˆÔ¼ª!¨™¹-Ä Î‚çš]‹¤»^tßf A; x¿Û–7žgæy®œhæ›ßA=Õ h}PÍ‹àkT/Câ€3�XbŽe�8 ƒâñ–Sp' nDò¨ªÍ¶<ÔÎvÊჷ™ùÙ<P€€/~ŠàOÃv6@ È€²ß\Žtà”]NŒaŠ�8¡|µY¹óÀ»åÄ…:ú<›“¶½cà”6 Ôfù¹{„ÑTPAÕRH}­AP¶:µ†bpG�X 2G¦(TP ›YµàK_IpMåMa §[ÅO¬ –´�FÈBœEÆ Ü™ ˜V'NЂlj#~òYQ–ƒ´ �zÑ�d!�À�Ñ%�IéоÁ ÞÝ r†jtªðªcy �£/ æ4¢)�¨E¸¸aB´¸G86n8=laÛ“h <‚ä M8”hA&5â_èDG$‡¸©ma¦@ðK_žÒ°.×?@ä‹oü—¸¦2¾ä �€L9�7��ÐŽ¡1Æ…;ê0�\áçºÆ–°…u7ã íÈ B¢AT´â” �(�hÀóTžf–1Š�€d#�ĵ�X­ÂÔ Pƒ��èüÇ+ž¤HC“ˆA³ýCÅS4£%hG¢ýá‡z{‹œ–XÄ<€,bÚ“nKNÔ“G84ãDÇÀ�*ð�x Qø73GŽN.�™HO#ú0DÀQǰ3W dŒð¶àa†jÉ[¾h@ƒ0Ðh$�ºˆ �ÁNìGÞ˜¡.0¢„¨&7g„B‡´L ŠÙ@á3­�ulmR£í¨� ‡h� Ýè�f �8 V`…Q‹~qã7T³“VI‹F�`uŒ‡,\Õ —��G8äްŒ9©cU9)ÁÐŽ3šø 2°i%K_€R¾øÅŸ™ñŒG†£}EÌÌÔ_øã0€jf@Ч°�3 ƒŒÇ ’ô ;Ì 4¡¹êhC0ÒŠ‰Ð�à¥~žÄ©%p€Ýš—´äŽZÎЋ‚�X V£ÀäJø.R#~ÍŒw¼*ý¤ Ò/� u%(@É (ÀîQ€ÑX9•å�ÄŸVÑŽöH Qö‡# 0"Zb ËÄ 61Ë L£¬ÖîA3Ž¥2‚^ø•oX€S5!e€óMÜÍ\D� 2A"Rà �´¡±Ë@†¬á¾`èA'�àˆÞhr;`+ÁžÅ CˆF^1‘X+�á—§ØÃ°‰¹Þá3–ns)õ€ | ð€º£•£rú:Y«†§)ÀÉS@˜Õ\øFç_Ôш;�Ð…ŽjÞ̈†NwŽh %N•R ÇáQ“¹XKœ¨Ž dÈä0<àNçxÀ ‡qUBœbθ¥È©ÌÐŽk©´`–"ž¥ y€SÀÛ”ð"…©òÿ�¢©¾8@K…(ò ÊQ°  «´•ˆ¦‰W¼3œÇ¼­â5#ú; kFÀèC¿P§†AQJÀ-.qE>\2G˜Ã¼Ô±R«%‹m¸R(È@–Ríûø¡ï&iŠ_ü _�Þñ¢c@¸ŒVøÀt Ø´�e(Sïšà�T¡JWì7m½YT ç—¸I"Á®[ ¯¾ª„Z �À�Á7èF_0Œh¤�–È �v±ÁyÜâL8ÄrßpUKjƒ”"ä¦ñL_‚ÜOãÁ>�9S”R°;ñ…Ošv\«.t&þzìXmó3è Ü™FÖ@»ìÄ-®¶g�úèÎÄ).XAÔ–%¯9ÝҚܑßXDVKaŽl¾pT ØÀ’%p„Åuá³m"Ž;±R›§BpCŒ‰i"^ÑsèÇ}ÐË0‘ž€ª‰@IH�OxÑ꾤 oƒ¦x\O\%p@�VÚäç¾v2`G$#äÝHÍHj2ƒ 4å(§{Bñp"Ñàå  û°@2P½Õ€7|ÒrºyÄ3:&ZVà‚ŸÃ•WMPÎrÇhC¡È (@£g >à�€ô}WZ%ä…?ò¡Ff$m‹ðÌppz†[¸#5øç%õ*g.xÁqMGÎF^<@S€�HN„ƒ@¦ÅQ¤æJ¾H:4@÷A€òµ:ön¬FP4D€¥a¸‡œ&YMØô48c7�°j€#hõ¯PPäôjJ<ànñg5ñHW H'¥UáB_ñ UFe6ãR€ añ%x„{f�—e3^¦\ø¦= øAj€Ìwäå8ôe'o£y"â¶BS@ ÌÐ!?@j°~j^?XüÆ`œ†xÀp˜„)ë‚­�8„Ný  ü2ë×\�ÒAÓ0 ÂÒpÂc•àøæ$ jG€c"8‡SvÇsì„ø¤cq7ø@@�z†xF5ø@ZHSã,N°hðFÒ‰ôU\:d@ã€8ìxJg.ødwÎff@–{æ‚WÇAfÖ:j€yâI±sdôJ$'\ü ${�y„;¸õ6øaZ—G`ZñFK†¦RÂ3�$…xÆiW#`b%I@eø‰pä"` $5 ¦�PT}G:W\¦¥o:&?¡ {"€wJúwtï(:f5:·óQ@ü&M …MXCeX†a/cèƒjÿE#ú$!—R€üv`Ê!XZ…xe @DìÕR‡+?ƒäH€Ç@›Axƒ7´_U}ü&P4…ñ�<æ‚f*÷´+�Ç¥t µ ðK@ A¸…‚g@Êa4Åc¦H€&€hòD@¥Vã%�Âðx¦Ð”G¶ÅS˜ƒ9œ‡YèQa؇nˆr$4 f"@6VJ0¦P€b�$ÁL¤cxÂpú`t@Ãÿ@§P¸…ë,4²&…€á�€GxÆáô�€‹G,Äy€ð~΂/RÈ#Ì€OxCð#AÕg x€W~�$$r W?œøçø W*dZÅpÀ²€r-@@Ó·=’hô¦ØÄb†:ÖTÍV²�T¾6PÚ JÛÇafÄq@dÀ$Em—x¸df¢ÁSÀSGj W8€ctÈz†�É`…8iÕç̈\R‡KÒ‚/"'úÆ}øG_›Á Íb y ë¥s�0R�„tÀ\¸ä†„%ø$ߤÂΤB^)'_€$A¹Ö‚7‘Ž RƒÏ4¡MxC_Ô€�€uhQuÐò I�!B† 6H�°ñB��8äðápäÀ5�OÜ€ �ÿÞA�ph/‘g/�€ �t˜°b;q �0@� Á €�îÜ&òèÉ;�¡D €[—.xóV΋'�€00�0s�ðéÓ+�ç’[w.�xõâ �h •�ûœ \*þ½�� f0~ËCËèѳ}�.\:«å*„S˶�˜Ó¨@ 4A‚…r da´ö3ă§ð°á¬æ~”g÷žŠ‚,�,l�ÎxàÞ]q¿¾´€€oÿ œ»ê‰YNOžÝ�<¼ûN€‡�˜ �¼ì¯å¹s¼zðæU°Áp0À]b—cvä\_`€•йååWx`�“( 5©ÔæFy„ç�§½××- ¹äÔAn9‘ˆ*,µÜJÁ… •��‡Œ�€�*v0AƒÔn5xÐà™î�à”#syäÕ\H †BC~D昃d¸áŽ7�@R�ˆ H]ŽØU WŽ?~"â™Çôå�0À¶›o~õå‹Wí¸àZ<¶Ù0,P]…RhãBUžùŒ›[ž½8͹r�¸á9 “� @�Ü$ 2(`°Ù;o“äÃtîypš›h`jz,XPÁ:"¡7‘7^•ãgÁ|�xçM€øV„?@ø� \í¸ãFM…¼Y4'8•ˆwÞcç‹w}ÁBñy7Š{õh—xá1n €ÐœOþ o[× V‰\R@n/hÙ@µ`@+18öŠ•ã«D��TFÛô”_Íùã[`€¨0Àç›í€ØÛ”Eß’õäš‹,Ù£…åz­�*¸“ÚB^øT\ÆØT�€ù‹wÍùàÕ%~ÀDC�ãom@däÃEù}SøâÛI…àOU�øà§€xk`à+tXEЀ¾�Ä �lqIx}ó‚_åÖê_òØ…¨ÀPôBñ™ áÇÄ}ùŽˆOÞ#ZO T\ƒØÖfœMEÎD>Ô ñ8£“½}ù3Âê»ï¹÷¾ûxð¡‡yô±Ç�������0�������0�������ø���������������� ������� �@����������@��������������������*�������H���������=�������R���������������/usr/local/misc/WindowMaker-cvs/WPrefs.app/tiff/appearance.tiff����à ��Ø ��]����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/speed1s.tiff�����������������������������������������������������0000644�0001750�0001750�00000000756�12214432632�016124� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*���¬€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¸³ýþ�—Kæ3 tÒe5™Ëå‘ùÄs>ŸO`SùÜj…6˜P(tyÕ"›E‰Ó)”•*“KªÔ"*Í^V¦Øhõ¨Mr½b®Øj•ë$2Íj¬Yítûl:ß`»Ýb“‹äÞýN±Þ°X<& ‡ÄbqX¼f7‚€€����������������������–�������������� ������� ���� ��ž����'��ª��������������������������N���������¤������Ò������Ú�������(�������1���� ��âR���������������speed1s.tif� Imported from XPM image: speed1s.xpm��H������H������ImageMagick�������������������WindowMaker-0.95.5/WPrefs.app/tiff/speed3s.tiff�����������������������������������������������������0000644�0001750�0001750�00000001026�12214432632�016115� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*���Ô€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¸ýþ�—Kæ3 tÒe5™Îg¹¼öm?œÊ': ¶‰C£RhJe*‹K‘Ò* <Ê›T–Ô¥ôê­b½OŽÖ«UÚÝ~ÉW²Últê”fÅV¶\,Õ›•¦Ñk¹Ôâ¶ûÍ>ít¾Ýî¸*õºëx¿a/÷ÜE¶9|Åân8ªå!žP33©ös5Í㥚=&—M§ÔjuZ½f·]¯Ølcð�����������������������¾�������������� ������� ���� ��Æ����'��Ò��������������������������N���������Ë������ú�������������(�������1���� �� R���������������speed3s.tif� Imported from XPM image: speed3s.xpm��H������H������ImageMagick�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/timer0.tiff������������������������������������������������������0000644�0001750�0001750�00000001120�12214432632�015742� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��€� P8$ „BaP¸d6‡¿àq(P‹D#Q¸äö}=Æ#òì–MŒC$r)f)“Ä%q9¤gšÅç/ù¼Y$˜Ææ¨ªõt½Ñ©ªM›HÔh2XÅ2­N«ÒëºÕBq_©Äk4û%ŽÍ\²ÓªV´¶Wg®Ún7 •’W=¶]n—»Eòã9’Ýå·ëÕ÷ sÃÏ-ÒÙ>Çdp˜æK„Ìbr”,ÎC;–¿Ø#º &'¢Êé²ú¼ökQÁHuZݦGc.“iu›¬†nM·Ùï.»{d…Á±ï¸¼k~ï?kåì1–îñÑ Ïh}¾¿c½ß¶@@�����������������������ò�������������� ������� ������ú����&����������������������������U���������ÿ������4������<�������(�������1���� ��DR���������������../tiff/timer0.tiff� Imported from XPM image: timer0.xpm�H������H������ImageMagick�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/configs.tiff�����������������������������������������������������0000644�0001750�0001750�00000010154�12214432632�016201� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*���Ðò h°à!B† &l¸ð"FŠ%jK1�Bã%JÒÑ&Jœ$©*…hP£o9i"•*…Ç l%kºì9‚Q¥Ê=‘ÿü�üúõÀ£Gç�¼yó À¸>Z!(ÒÒÀž=»�,šà�9ñ�`ÂD�*T„��¶J—!Slÿ–;Fh@þ 9sv;oBÏž]�pæÌ*�lðáÃ'�Ø0€ C'�õš­ væ�& °˜1ç� @ƒ�bĘ�@7}ÆÌqðF«v­�äêV@­jµ=î;pH~Ÿ<’§$JN€Žú�¸té,ŠoJZ‚¢è3�€_�b]äØ_ƒ‡f9„mwøßµ'ôiÖ�ÇœpRTÿu^?áøæ›C�襗6� àI><òDp€Â�tÐ�DÖRkx€"ˆ€n¸i¤±öÃvíý±×þ�œ (À;H}…p �TС�A�Xa4 3 MÐc=½�ÂÓ�§ô½ðŠŸŒ �qÄ�^yå%¨Ø´8Nÿ ÐQÇ…A5T„ †*jòÌ;ßüãrÆáD牧à™cŽ~�¸âØ0"Í´ÓM_Òç³<�0Ä�(§ÜÃ"ó3» ÇAâ:¯|„ί€š…©­Ú Ý÷ é@Öâ¹çžë¬¹!³”R+=™ÊÊ0-¡n�ÄGÂdd°ÍÁ¯œ… "·ò¾‘ë¾£xÃ�Rü�(/;Ÿ þzä“ßfšõаþÀy Èt HoN†��á¡€F”Û«Úßs7÷@Eê\¨.EòŸ<R#Å { ‹Dø…H-¬~„.½ÂXoÁÊFôæ��0À 1§jr)l´NÆv,ÇZûB®' A �¾ø2Ž?þúžfZ¯]wFœ§ÔZp¥x�cŒ+T Á«šd!»®>àN…Z¼àÚ ªµ««�@€Å`§Õ× QD€@ñ`õ>JLk@N�ÜÓm²YcÁ#Œ`>;e¡jÜuOÁ–b·kßQp/é-ÜŒùÞIddûy0 p�Ú) °Ã=^ˆM�@û9�€j!(£Œö/ÝaÔ+vY«n‡oøV~x¦``ÑWP!QîAæ¾fì‘ÇøQP½lK#FdXÃ%(A7lO;ŠÏ»Þs™êîÉáOœ0aCQ<âÁ7îu?ê´ä8«„îø§+¡üæ.‚a ”Ú†,� 9Ø0Àõ¾…ílÑ@{Ëåö#8©©BrÈ›RꄇlD˜ŽzÔ„žò3Áq¹PSã“=Á½êuÚƒ5šDPœ£pDÛ&0€�Üã!˜‚ÅOðõA~}„Œà¡ƒœïƒ¢EZ¸VÁ�à/ø�ñˆW²C¢¢J±“…l1H4Ÿ€ �<àœ�´ ¨¤�¶°…ã ,B€,…�p8D=HB é[°îDij¤'E ઠ¨m‰C<$†(‘£„Uð.:ܰ4²Æ+î2œF‚ágˆÓ4¡@9� 0‹��]VìïT‚Ç‘Pþ$¨èq�øÃ? HG:Rˆ�]èÀÑø¤kZ‰Küt¦ w”°zlpkÀVÆEò–åÙ4ö�,㤂�‚…"Ô �Ð�@(2�€^´Ø�çÅ�.Š �ô•��^E�°V²|LJðö#5is›ö<Y£ J¨Fq �¼ã]”ŠeÙDÏ\‚„B±¡7Ï$ØŠ ¢)#ÍÇj 9 ¸À+Õ¨ª§?{„�(+ã›®ä† Gâƒ\d“—ödÅJH"Å¢ �°†_ˆ(Ì�/x &àê �€œIæf �°7�k4�@ Pò pΊpÕ´j�£Í�ªP…j�(s¾ÒGÒ�Õ$‚gRÉG݉|3Þp÷í(DÔ–¨”ï$RuL��K˜„)��ôäÀ\æ.jÑc³�œ0Eæ{—Ð9;"ØÅ.ö�€mlc§’�ŽN±‡$��(°"D‘«@ppƒÛ—Xi�ÛZ·“0‚aô‘‡|äÉ^bHD–^Ñ>ª +øÖÑújˆ’‡Ú @�çAã£(Ê4MŒxÀ7‘‰lL� XÀb§$‡SìxD F4!Àm¾/¤é["ˆÓRá‹ ÀèÚïþö_öxÄ=¦D‡Ûìá²ÎT’ËÂJÐÓ@ÅÛ U ͛Ʊ…-,ÑX��¦0 c×  S¦Á~ð�ˆ+�`'T· b›Ç—(Âá‚FCØÉ‰2T—u¨îÄпzõÄKÙ0~‚¢(÷‚�¬•�$«ê _¼ÈÊišøÄG‹pŒVbë£Á6 â��ØÂ“x –N5 Cè„©ÆMR5·µZ8a©†ÅH\AP„*= Uh¥¨F)ÓQ u-~‰KÀR—�øÁ;.hB+e01�²PCw$éæAswÑ‹³>ðù¾Ì�ZPÁ>�Š4Æa+0q�‚˜®XÅFõ`0KˆÃ>°õ¡/Т@´ò(‘û¾ÂlmÑœØÑNP¿3�l{»ÐÞ>�βÓHœs{;Ø¥ûv½ÛI¢u 9,ŠN€¼²’å³òU¦S §¸µ ¬â �0q ë�€;ƒ‰PD±½Ô«”õ JѨšA I�"�HG¤×¡Ó0œºÒD=]m&°õ°ŸïlØÎùÏñ˜sï ªK¸èRú³´I¢5Ä/‚Ì T`‚0J*0<z"fA*£!,« DÀ“ΰ•æ°Ä;$"Õ†/•€Éá ß³ÇV ‡¼ �hC-“`·^ã ï]$éCˆpFÔnƒÐ<ûŸ@˜‹,é©“�*'-¸Â…„8+ Â5!8–°Œ™Ã²‡ƒ„´À€�0c.`çVØ…C|/ðÃ8h‚*²ƒ!åQ€2mH…l‰|Àq¨‚"’ƒH·]Ø„]ÀAã…ã·‹ò °cuAò8çrO²+?òt€JÈÇ$0k’°CÐ5’wð�L ‡S|LJHD Bn‹àucpEøƒLBi3€xH£Wˆ†`ú†ÈæQðwú�-0ÁV0]8BP0L¨…f"õ4pQ„TpÚ [ *Ûðm&;ˆà`t!%òd?´O³;˜‡’A¶Fp�+BP$-…D¬O°Ñ-‡‘O­'C…H¢°K…AÀJ0�}Òo¦0mn…l(fSÒyÐÄw¨ƒRz…K¸ÆV²Qepo=„m˜#F8P�8„½C8_õ0g²MòñÝ`F¨·‹ˆv±ˆ3IXƒ³IPÁB(„t‡ 8ÃJIñdˆáNX€eÒ"Xú†>äQXƒMú�kqcðCW’ƒ\(À$R 9¨f²ƒPðáQYÒ‚!è 9؆]ÓƒoøR�€$HƒqÍb³w+`�è†A`€Àt4€�pñc8“8ȇ™¶e J§T?ˆc?�Ø…E|VàQ¸…CuÐ5=Q¢cË�è‡!…Wx£ø%-Àlú4@EWÐs…_x@ð„ ÃH�ÕEXBƒ/¸áN€t¬„7¸”>†h €ÔS}X„%Ø��QÃ"ÀãQ‡9|(€>@d…oøÂJ\Qäö5‹eÐÖ'ú‰7�h€r’ƒhHàÎx%-u¬„Ø„@�Ø„mnb ¢oÈ„<ú�EAÔDW0i„ ÈS}؇]1ƒ(HÖÝåw-ÏÂ3§� Pq4xG6…ZhâV¨†bb„NèÅw&’|<ÓE P}duƒÌÒO„Ë"�ðS’ƒ!£o�^’CjŒËeˆDk„)X4‡+8ƒÒ†@úÆ>Õ‡PˆeS$7{€ ��€¨ÃZÈ"ØD7iDPH‡D,ð0{°sÙ" -àa…HÂw`z‰ƒH%„‘[`Ö¤Ê{D´;(…\Ò‚X#9`&ÕÏ\•f„X‚dîƒZ¨ÃBˆ… ”Ôt� |ÒÒv †zèv.’ƒZhD0£QW}hJÝ€ÆwU¬E)ï.à*v„âEdÕz Ø„-÷„q˜Dfh‚D�€XäN0[Mq˜âNˆï`!-0 ¤„™ "hEÝ¡À\)UÐq‡^bL&3�7}$T:¹GN¨†j¢%¢ÇRØu„˜”Q(€rч˜0„†Y˜€*ôeÌ=Ð"-ˆ€x1ƒøQ8$^`7�¨†æ…ù:�ðgéçV𲂨—iè†&ú†#8&-Àl�P�M£€è$4¸; † (,¼ê 2¥g�hƒƒ{8¡È…û€Q˜¬y„‚!èƒl*�6unúÄV�PE"@dŒƒ+¸õe<@‡(��.`3¨€f*†¨“ið/-PèQ½Wð¨eˆ…0 ØšX‰5nØêhG°só€s¸²q„‡)˜¬e ʰƒÈD°WpÕOè€fH%=pD0è‚ᨆˆ7Y �¤ÔÛ E&Ðò%i�!B† &l¸Ð®];�*¼ð1B8s,€z倰æÆ%f²ä)B¢B" €�žþð.€-;.Sæ ¡R¥p�Ð –»h±b~½*�4Íâ’¹r×€ö™³fÏY1FÞü ¯Û¤i³æ-š×/8hã–:vêܤuÃv]zöêÝ@k2ö<dhÓ€������0�������0�������ò���������������� ������� �;���ú������6������L��������������������*�������T������\������d���������(�������=�������R���������������/Software/cvs/WindowMaker/WPrefs.app/tiff.bak/configs.tiff��Created with The GIMP����o��g��™������H������H�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/speed3.tiff������������������������������������������������������0000644�0001750�0001750�00000000626�12214432632�015737� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�²���� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼ø &Jœ$i²ä)R†GŒ——ÿ iÒeL8s¶´YeÏ”#s†IòeÍ[ pžâ9äö_:‰…rIW®L咥˫V>vÅRÕ«ÖªT¢qƒ¦ £×oV³h“:ZW¯£SÝöm:·ìÑ.n·z7ï8¨Kªá#FŽ=fì¸ñ&Nš<eB@��������������������l���������������� ������� � ���t������€���������������������������U�������ª����������R���������������speed3.tif��created with The GIMP�����������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/menus.tiff�������������������������������������������������������0000644�0001750�0001750�00000022472�12214432632�015706� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�$��,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿ,,,ÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿPPuÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿ¶¶¾ÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿÿÿÿÿ���ÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ���ÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ¶¶¾ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿ���ÿ���ÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿ���ÿ���ÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿ���ÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿúÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ���ÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿúÿÿªªªÿªªªÿªªªÿªªªÿ���ÿ���ÿ���ÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿúÿÿªªªÿªªªÿªªªÿ���ÿªªªÿªªªÿªªªÿªªªÿªªªÿ���ÿªªªÿ���ÿ���ÿ���ÿ���ÿªªªÿªªªÿ���ÿ���ÿ���ÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿúÿÿªªªÿªªªÿªªªÿ���ÿªªªÿªªªÿ���ÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿªªªÿ���ÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿúÿÿªªªÿªªªÿªªªÿ���ÿªªªÿªªªÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿªªªÿ���ÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿúÿÿªªªÿªªªÿªªªÿ���ÿªªªÿªªªÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿªªªÿ���ÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿúÿÿªªªÿªªªÿªªªÿªªªÿ���ÿ���ÿ���ÿªªªÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿªªªÿ���ÿ���ÿ���ÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿúÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ���ÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿÿúÿÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿþþþÿ,,,ÿPPuÿPPuÿPPuÿPPuÿPPuÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿ�þ��������������0�������0�������æ$���������������� ����î$������%������%��������������������*�������"%������*%������2%���������(�������R���������������/home/dan/menus.tiff��Created with The GIMP����ˆ��€��€��€¸G���€¸G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/speed4.tiff������������������������������������������������������0000644�0001750�0001750�00000000654�12214432632�015741� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�È���� $h°à!B† &l¸ð"FŠ%j´è1bÆŠ'n¼ø &Jœ$i²ä)Ró1^^þÓeH›>cÖLiçÈ=k– y äÍœ+_¸œ –�P*Gþl…*–.[¸B媡«W*_ªNÕrE+U)R²~± µªÕ«Ý°Zݶ[uhÖ¤eƒ¦š—éÒ©G»>­ûéÖ«ãÀöý:vïÝ&ä&cúO5´Ïˆ‰©fΚ=gî¼ù .Z¼dé²Ù���������������������‚���������������� ������� � ���Š������–���������������������������U�������¿����������R���������������speed4.tif��created with The GIMP�������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/cycleworkspaces.tiff���������������������������������������������0000644�0001750�0001750�00000003416�12214432632�017755� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��ž€� P8$ „BaP¸d6ˆDbQ8¤V-ŒF`Oør5Haà’M”Få2Y\žU/–D¤’)¤Ö&ÿ ’ðõ[>§áƒÊ–y>œhÁþ™K ÐÐÔ³Í j¶Z¿Îgœ˜r8Ìàö)µ–/dˆÏT`@…m·Û§+…ÎãwœTèõjÅj¹^°Z-l$V]igêU5æu®ã1ÙþK+­e2ÓÛ}¯/F=ŸOx Ž[…ÔA0Zy„2yzË?ö[=¦×m· "§a†cC£Ž×ôºž$/ªÖLyR:f/1·ètv“›e)ÿW¬Öë¼›[Éäqa¸}\ÃÆœÐº^¿\öÙzì_»q¾——àüx£xuæŒË@ ÄÿÀP*Œ *,KœÐ4M#í»ÎSÔ¼Ž2Î:Áˆ`ŸðÔ9C°ÜCÄQ@Êpò²ÍüýFª- £jzp¢§ŠªŽ½)Ã<œ§ñB ·Ç�Dtø»QzEF ø‚ºëì’J¤‚½ªŒ�3Ït|ªH‰ü¿»Ž äÉ‘¤œü­.4MC �C-¡Ç Ëv½H :–A(RÌäú;¨ÔÒ•¸’b)5Pï4ÑGÑÔ$ÌQRl–†>´ËM,4áÿOTÝENЩ´ÕKUMUCR•[FÕÕ]eS')ÚzŸ€ Šˆ¨H3²šµHj”Á(»3%%SÕ…•WÍŽd~ºZ Â뺑ô¯`ÌošJúÖkj£×Ôq[©3ú.×RÄ)XÖÝJæ1Oc£!'’Ò9t3°$àXöê »`³9aG,íók?Ë݈ùIHK^£^M¼1s(w´õ‚E°lËdRÌ©T£Æ9/ࣀK– «Œß—u'o^/fMidö®'…É8Ýý(d9KÞ¸ƒf^‹¢Ò´  Ð@¶­å‡§3çü]!SÂ…7Äæ"ÛK×¥³†çi.dSók¢hĦŠŠB(„ÚÞšë=¯ê˜vâ¨Ú­ËÕ­¶Exå›vç¸òÙ_¶ƒž–‘€@¥i¦›>eµOÝë:©ÃìxëoŽœSÅö5~ì(ÞÇÂl¹LG×ë~/¨AZާÔaÑ´`§©ßcßÎ-×bòöçR’ö5Ú†Ý`’Ì·|d‘DUÒß|ÿ¯ÊФþ¥Ž´< pö1rÞµ»`Fö{r­Iÿ•ÙÏžùâ|ÍWc8£“§Ó‚Ç2ßô®\;Oêî¿UdÎ ûÙ¯¡A#·ÀÉÚ7|Ѻ’5˜¤UŒM/Ô»àTSšD}HâÀôú—ŠdPl¹SªI ÜÄ0…ÐÆC7 ¼8ƒ’Cx|B¡œATpÖ!Ä&^ŒáüI‰PéSC•—ÖiR°aJC•(·×"¹(O)r3tîÀ—JÃnŽâ*ÅD-"„i#/¡™²Vj Š¿nï͆AU’Y¢šNv®„Ù·ì뜙žp1ÙVFf«Î0/QðÙEå~³Ìj2õ›|eƒ'„ûÈd øÛƒ5”LÑihÇ $²ˆ‘y'É’:Qº"2Æ<È™‰hÔe™š3 yòÈD «dä®c¨E5XæÔdaÑv²RT/ø­eZ‹‚(aÌ™”ŠÝ³§™¬:`J¢h@@€� P8$ „Aßð¨L þA)_àƒÌIÿŒFcQ¸äf(œ­VËWùÌâs…Ç#̦—K¥ó9¤Öm7†A¦P©’M(R©¢T ÿD£Ñ©º4Q[!‘Édó\¶q«ÖkU¹¤Æa/ŒF ŽËd±Z,Ö›=¶ÙlbQ �@ë ˜UguËåöýZ½ÁkÕŒ †¯ápø»Ì³ÈdrXXMë-ŽËËs/üÞw1ŸÍc²z=&—M§Ôd  �������0�������0��������ˆ�������������� ������� ����!������/��²������â�������������������*��������ê������ò������ú�������(�������1���� ��R���������������../data/tiff/cycleworkspaces.tif�� Imported from XPM image: cycleworkspaces.xpm�������Ý��Õ���ÁH������H������ImageMagick���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/timer1s.tiff�����������������������������������������������������0000644�0001750�0001750�00000001112�12214432632�016127� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��€� P8$ „BaP¸d6‡¿àq(P‹D#Q¸äö}=Æ#òì–MŒC$r)f)“Ä%q9¤gšÅç/ù¼Y$˜Ææ¨«þG£D┚%6‡. Æ£Š¥V§E¬EésºJ­_°R«4Ë%nqg®Í¥²»¶©b­XìÕª<®{i·^j· -¢õ9’Ý¥·¬%^ãNÂÏ-rÙ>'|¥c¯vˆîK ;ËXr‘Ê~G%žÇß«’lΗM“¦åtú½.e‹ë6V ƒ³Üj*m®çW½´Áõš λƒ Ålrô^];žÔêÜJ<îïÏ ôttî¿c½ß´À@�����������������������ò�������������� ������� ���� ��ú����'����������������������������U���������ÿ������.������6�������(�������1���� ��>R���������������timer1s.tif� Imported from XPM image: timer1s.xpm��H������H������ImageMagick�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/xis.tiff���������������������������������������������������������0000644�0001750�0001750�00000001562�12214432632�015357� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��€� P8$ ‚?àP¨D6ˆDbQ8¤> ŠÆcP˜\^/HdR8\vL�ŒI$qé;þY(•LfR)|º[™Ä¦³¹¼–s? O¦Ò‰å[AÑhtºTâ‘OŠÓg´j¥.eRªÖ)“ê…v Z°Tå1K fÅZ¯R,µ»5¶ÙcƒÚîVz=¦Wt·\ï5É…îýo½[îÖKÆ §_p×üFqÃäq™+„“Ì`­9|^vÑÎhlT f×WÊis×ÈÞ«]¬ŸëôØèžËW™ÇжÙÈFïS£Üïwû>&ß¾¾ðg\>?3‘ͪò¦œî§Ÿ5éNzý^‡wÙ öúÝÊWƒƒâïy6nW£Ñìød<?OGã÷‡{»Ÿä[Ôú3ïìÅ?P×·0+êãA A­#ÿŠCÂmT,åÀÐì) Àðl1B°GÄÛáÀ*üA¹0t_*ͬg )ñci Æð›QFŽúc/íl{.Ò#:ˆIO+³&¸ Ô¿²‚ÜŽH 7Jqk…,ÇrÜ]0H¨:€� P8$ ÿƒ€ð˜\" †DaðØT-ŒFcQ¸är%‰Çâ’92;'ŠÈ%RI ¶S(˜LfS9L²W%—Bf’yÄÞs; PhQiìÚC™ÑdTŠe6ƒJ‰Ó©óú•V­2¢Õé’jÕv½<ƒU  ��������0�������0���������������������� ������� ������ ����#��"������F�������������������*��������N������V������^�������(�������1���� ��fR���������������../data/tiff/xis.tif�� Imported from XPM image: xis.xpm�������©��¡���pH������H������ImageMagick�����������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/msty3.tiff�������������������������������������������������������0000644�0001750�0001750�00000015120�12214432632�015626� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*��������������ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ�����������������������ÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿ���ÿ�����������������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿ���ÿÄÄÄ!pppÌ���������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿsssÿ���ÿsssÿ���ÿ”””ÿ���ÿ„„„ 000"���������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ”””ÿ���ÿXXXíb���������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿsssÿ���ÿsssÿ���ÿ”””ÿ���ÿ˜˜˜íâ���������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿ���ÿ˜˜˜íâ���������������ÿMMMÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ���ÿØØØíâ���������������ÿÿ?íÿÿ?íÿÿ?íÿÿ?íÿÿ_íÿÿŸíÿÿïíÿÿ¯íÿÿ¯íÿÿÏíÿÿOíÿÿíÿÿwíÿÿ·íÿÿ7­ÿÿW­ÿÿ—íÿÿíÿÿgíÿÿ'íÿÿ'íÿÿÇíÿÿ‡íÿÿûíÿÿ»íÿÿ;íÿÿ[íÿÿ[íÿÿíÿÿëíÿÿ«íÿÿËíÿÿKíÿ���ÿdddíPPPâ���������������ÿÿ?íÿÿ¼ÿÿ¼ÿÿϼÿÿ÷¼ÿÿW¼ÿÿW¼ÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿQ¼ÿ~ô�ÿ���ÿLLLípppb���������������ÿÿ?íÿÿ¼ÿÿϼÿÿ÷¼ÿÿ÷¼ÿÿW¼ÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿñ¼ÿÿQ¼ÿÿa¼ÿ~4�ÿ���ÿ´´´mÐÐÐb���������������ÿÿ?íÿÿ¼ÿÿϼÿÿ÷¼ÿÿW¼ÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿ~”�ÿ���ÿ¤¤¤-PPP¢���������������ÿÿ?íÿÿϼÿÿ÷¼ÿÿW¼ÿÿ§¼ÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ¼ÿ~”�ÿ���ÿ$$$Í"���������������ÿÿ_íÿÿ÷¼ÿÿW¼ÿÿW¼ÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿ~d�ÿ���ÿ$$$Í"���������������ÿÿŸíÿÿ÷¼ÿÿW¼ÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿ~d�ÿ���ÿ$$$Í000"���������������ÿÿŸíÿÿW¼ÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ>¼ÿÿ¼ÿ~Ä�ÿ���ÿ444Í000"���������������ÿÿïíÿÿ§¼ÿÿ‡¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿ~�ÿ���ÿ,,,Í000"���������������ÿÿ¯íÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿ~�ÿ���ÿ´´´Í000"���������������ÿÿ¯íÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿμÿÿö¼ÿ~¸�ÿ���ÿ¤¤¤Í000"���������������ÿÿÏíÿÿ;¼ÿÿ¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿ~X�ÿ���ÿ$$$Í"���������������ÿÿÏíÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿ~X�ÿ���ÿ$$$Í"���������������ÿÿOíÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿV¼ÿÿf¼ÿ~è�ÿ���ÿ$$$Í000"���������������ÿÿíÿÿ˼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿ~(�ÿ���ÿ444Í000"���������������ÿÿíÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿ~(�ÿ���ÿ,,,Í000"���������������ÿÿwíÿÿó¼ÿÿS¼ÿÿ£¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿ~ˆ�ÿ���ÿ´´´Í000"���������������ÿÿ·íÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿ~p�ÿ���ÿ¤¤¤Í000"���������������ÿÿ·íÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿ¼ÿ~p�ÿ���ÿ$$$Í"���������������ÿÿ×íÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ:¼ÿÿ¼ÿÿʼÿ~Ð�ÿ���ÿ$$$Í"���������������ÿÿ—íÿÿƒ¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿ~�ÿ���ÿ$$$Í000"���������������ÿÿ—íÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿò¼ÿ~�ÿ���ÿ444Í000"���������������ÿÿíÿÿ=¼ÿÿ¼ÿÿͼÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿʼÿÿò¼ÿÿR¼ÿ~ �ÿ���ÿ,,,Í000"���������������ÿÿgíÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿ¼ÿÿʼÿÿò¼ÿÿR¼ÿÿb¼ÿ~@�ÿ���ÿ´´´Í000"���������������ÿÿgíÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿR¼ÿÿb¼ÿÿb¼ÿ~@�ÿ���ÿ¤¤¤Í000"���������������ÿÿ'íÿÿͼÿÿõ¼ÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿò¼ÿÿR¼ÿÿb¼ÿÿ‚¼ÿ~��ÿ���ÿ$$$Í"���������������ÿÿÇíÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿʼÿÿò¼ÿÿR¼ÿÿb¼ÿÿ‚¼ÿÿ¼¼ÿ~��ÿ���ÿÄÄÄÍ"���������������ÿÿÇíÿ~R�ÿ~â�ÿ~"�ÿ~‚�ÿ~‚�ÿ~|�ÿ~Ü�ÿ~�ÿ~¬�ÿ~L�ÿ~ô�ÿ~ô�ÿ~4�ÿ~”�ÿ~d�ÿ~Ä�ÿ~�ÿ~�ÿ~¸�ÿ~X�ÿ~è�ÿ~(�ÿ~ˆ�ÿ~ˆ�ÿ~p�ÿ~Ð�ÿ~�ÿ~ �ÿ~@�ÿ~@�ÿ~��ÿ~��ÿ���ÿDDDM"���������������ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿxxxU‚��������������������ÄÄÄäää•$$$-øøøÍ888Í888͸¸¸ÍxxxÍ„„„ÍDDDÍÄÄÄÍÄÄÄÍ$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$ÍÄÄÄMDDDMxxx•ÈÈȾ   ô�������������������� 4¢"   "   """"""""""""""""""""""""""   ô���H��������������������������������������������������������������������������������������������������������������������������������������������������������������������������(�������(�������æ���������������� ������� �<���î������*���������������������������3��������������@������H���������(�������R���������������/home/id/development/WindowMaker/WPrefs.app/tiff/msty3.tiff�Created with The GIMP����H������H���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/menualign2.tiff��������������������������������������������������0000644�0001750�0001750�00000001442�12214432632�016612� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��Ѐ� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸kþH�)$~M!“Èå2YD¶U.–KæS¤®S«UJÙÌî{<P'Ôý‰G¡ÒhSÉ]"—F¥T)ôê,ÞU˜M«5¹œ¬¤U)M(•ªírk!¯ØjÐjÅ–Ýg·×¬)õ’áwÚf3‹Õöç~°àø,%ÿ j˜ap8|3Åâ&S‹¶VÍ–¸åóYœåî®ÿÐhtZ=&—M§ÔM5:½f®×ÑÕ6UN£z•è¶µ-æïq.œn¶œ=·{>ßÌø\mß7‘s×Á2<W×ÈÍ:ÝžßSÑÌ^3~,ï‡Íã…ë}^½tÃÙïÖx$<¾?3‰õéît<ï·÷òà3ïÛîþ? £’’>$ç²Iøì;Îä îÀëÌ' ÂPËþɪï;ÊôDüDòAÐ á½OÔQ´/’GF *ùÀOô§ÆhLc´ËcÈôsÃP¤1Ãi$"Èò;Äô£(JQty+´r8ŽGñ´ƒÁŒô·1£ðL¿·’tÉ2I\Û&º×1Êq«9NsÌõ=Ï“ìý?Ð Š �������� ������� ��������º�������������� ������� ����&��Â������è��������������������������@��������Ç�������������������(�������1���� ��R���������������../../WPrefs/data/tiff/menualign2.tif� Imported from XPM image: m2�H������H������ImageMagick�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/msty2.tiff�������������������������������������������������������0000644�0001750�0001750�00000015040�12214432632�015626� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*��������������ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ�����������������������ÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿ���ÿ�����������������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿ���ÿÄÄÄ!pppÌ���������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿsssÿ���ÿsssÿ���ÿ”””ÿ���ÿ„„„ 000"���������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ”””ÿ���ÿXXXíb���������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿsssÿ���ÿsssÿ���ÿ”””ÿ���ÿ˜˜˜íâ���������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿ���ÿ˜˜˜íâ���������������ÿMMMÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ���ÿØØØíâ���������������ÿÿ?íÿÿ?íÿÿ?íÿÿ?íÿÿ_íÿÿŸíÿÿïíÿÿ¯íÿÿ¯íÿÿÏíÿÿOíÿÿíÿÿwíÿÿ·íÿÿ7­ÿÿW­ÿÿ—íÿÿíÿÿgíÿÿ'íÿÿ'íÿÿÇíÿÿ‡íÿÿûíÿÿ»íÿÿ;íÿÿ[íÿÿ[íÿÿíÿÿëíÿÿ«íÿÿËíÿÿKíÿ���ÿdddíPPPâ���������������ÿÿ?íÿÿ¼ÿÿ¼ÿÿϼÿÿ÷¼ÿÿW¼ÿÿW¼ÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿQ¼ÿ~ô�ÿ���ÿLLLípppb���������������ÿÿ?íÿÿ¼ÿÿϼÿÿ÷¼ÿÿ÷¼ÿÿW¼ÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿñ¼ÿÿQ¼ÿÿa¼ÿ~4�ÿ���ÿ´´´mÐÐÐb���������������ÿÿ?íÿÿ¼ÿÿϼÿÿ÷¼ÿÿW¼ÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿ~”�ÿ���ÿ¤¤¤-PPP¢���������������ÿÿ?íÿÿϼÿÿ÷¼ÿÿW¼ÿÿ§¼ÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ¼ÿ~”�ÿ���ÿ$$$Í"���������������ÿÿ_íÿÿ÷¼ÿÿW¼ÿÿW¼ÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿ~d�ÿ���ÿ$$$Í"���������������ÿÿŸíÿ~Î�ÿ~�ÿ~¶�ÿ~V�ÿ~æ�ÿ~&�ÿ~&�ÿ~†�ÿ~z�ÿ~Ú�ÿ~�ÿ~ª�ÿ~Ê�ÿ~Ê�ÿ~ �ÿ~²�ÿ~R�ÿ~â�ÿ~"�ÿ~"�ÿ~‚�ÿ~|�ÿ~Ü�ÿ~�ÿ~¬�ÿ~¬�ÿ~L�ÿ~ô�ÿ~4�ÿ~”�ÿ~d�ÿ~d�ÿ���ÿ$$$Í000"���������������ÿÿŸíÿÿïíÿÿ¯íÿÿÏíÿÿOíÿÿOíÿÿíÿÿwíÿÿ·íÿÿ×íÿÿ—íÿÿ—íÿÿíÿÿgíÿÿ'íÿÿÇíÿÿ‡íÿÿûíÿÿûíÿÿ»íÿÿ;íÿÿ[íÿÿíÿÿëíÿÿëíÿÿ«íÿÿËíÿÿKíÿÿ íÿÿsíÿÿsíÿÿ³íÿÿÓíÿ���ÿ444Í000"���������������ÿÿïíÿÿ§¼ÿÿ‡¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿ~�ÿ���ÿ,,,Í000"���������������ÿÿ¯íÿÿ§¼ÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿ~�ÿ���ÿ´´´Í000"���������������ÿÿ¯íÿÿ‡¼ÿÿ;¼ÿÿ¼ÿÿ˼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿμÿÿö¼ÿ~¸�ÿ���ÿ¤¤¤Í000"���������������ÿÿÏíÿÿ;¼ÿÿ¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿ~X�ÿ���ÿ$$$Í"���������������ÿÿÏíÿÿ;¼ÿÿ¼ÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿ~X�ÿ���ÿ$$$Í"���������������ÿÿOíÿ~&�ÿ~†�ÿ~z�ÿ~Ú�ÿ~Ú�ÿ~�ÿ~ª�ÿ~Ê�ÿ~ �ÿ~²�ÿ~²�ÿ~R�ÿ~â�ÿ~"�ÿ~‚�ÿ~|�ÿ~|�ÿ~Ü�ÿ~�ÿ~¬�ÿ~L�ÿ~ô�ÿ~ô�ÿ~4�ÿ~”�ÿ~d�ÿ~Ä�ÿ~�ÿ~¸�ÿ~¸�ÿ~X�ÿ~è�ÿ���ÿ$$$Í000"���������������ÿÿíÿÿwíÿÿwíÿÿ·íÿÿ×íÿÿ—íÿÿíÿÿgíÿÿ'íÿÿ'íÿÿÇíÿÿ‡íÿÿûíÿÿ»íÿÿ;íÿÿ;íÿÿ[íÿÿíÿÿëíÿÿ«íÿÿËíÿÿËíÿÿKíÿÿ íÿÿsíÿÿ³íÿÿÓíÿÿÓíÿÿ“íÿÿãíÿÿcíÿÿ#íÿÿCíÿ���ÿ444Í000"���������������ÿÿíÿÿ˼ÿÿó¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿ~(�ÿ���ÿ,,,Í000"���������������ÿÿwíÿÿó¼ÿÿS¼ÿÿ£¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿ~ˆ�ÿ���ÿ´´´Í000"���������������ÿÿ·íÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿ~p�ÿ���ÿ¤¤¤Í000"���������������ÿÿ·íÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿ¼ÿ~p�ÿ���ÿ$$$Í"���������������ÿÿ×íÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ:¼ÿÿ¼ÿÿʼÿ~Ð�ÿ���ÿ$$$Í"���������������ÿÿ—íÿ~ª�ÿ~ª�ÿ~Ê�ÿ~ �ÿ~²�ÿ~R�ÿ~â�ÿ~â�ÿ~"�ÿ~‚�ÿ~|�ÿ~Ü�ÿ~�ÿ~�ÿ~¬�ÿ~L�ÿ~ô�ÿ~4�ÿ~”�ÿ~d�ÿ~d�ÿ~Ä�ÿ~�ÿ~¸�ÿ~X�ÿ~è�ÿ~è�ÿ~(�ÿ~ˆ�ÿ~p�ÿ~Ð�ÿ~�ÿ���ÿ$$$Í000"���������������ÿÿ—íÿÿíÿÿgíÿÿ'íÿÿÇíÿÿ‡íÿÿ‡íÿÿûíÿÿ»íÿÿ;íÿÿ[íÿÿíÿÿíÿÿëíÿÿ«íÿÿËíÿÿKíÿÿ íÿÿ íÿÿsíÿÿ³íÿÿÓíÿÿ“íÿÿãíÿÿcíÿÿcíÿÿ#íÿÿCíÿÿƒíÿÿýíÿÿ½íÿÿ½íÿÿ=íÿ���ÿ444Í000"���������������ÿÿíÿÿ=¼ÿÿ¼ÿÿͼÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿʼÿÿò¼ÿÿR¼ÿ~ �ÿ���ÿ,,,Í000"���������������ÿÿgíÿÿ=¼ÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿ¼ÿÿʼÿÿò¼ÿÿR¼ÿÿb¼ÿ~@�ÿ���ÿ´´´Í000"���������������ÿÿgíÿÿ¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿR¼ÿÿb¼ÿÿb¼ÿ~@�ÿ���ÿ¤¤¤Í000"���������������ÿÿ'íÿÿͼÿÿõ¼ÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ>¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿò¼ÿÿR¼ÿÿb¼ÿÿ‚¼ÿ~��ÿ���ÿ$$$Í"���������������ÿÿÇíÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ¼ÿÿ¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿʼÿÿò¼ÿÿR¼ÿÿb¼ÿÿ‚¼ÿÿ¼¼ÿ~��ÿ���ÿÄÄÄÍ"���������������ÿÿÇíÿ~R�ÿ~â�ÿ~"�ÿ~‚�ÿ~‚�ÿ~|�ÿ~Ü�ÿ~�ÿ~¬�ÿ~L�ÿ~ô�ÿ~ô�ÿ~4�ÿ~”�ÿ~d�ÿ~Ä�ÿ~�ÿ~�ÿ~¸�ÿ~X�ÿ~è�ÿ~(�ÿ~ˆ�ÿ~ˆ�ÿ~p�ÿ~Ð�ÿ~�ÿ~ �ÿ~@�ÿ~@�ÿ~��ÿ~��ÿ���ÿDDDM"���������������ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿxxxU‚��������������������ÄÄÄäää•$$$-øøøÍ888Í888͸¸¸ÍxxxÍ„„„ÍDDDÍÄÄÄÍÄÄÄÍ$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$ÍÄÄÄMDDDMxxx•ÈÈȾ   ô�������������������� 4¢"   "   """"""""""""""""""""""""""   ô���H��������������������������������������������������������������������������������������������������������������������������������������������������������������������������(�������(�������æ���������������� ������� � ���î������ú���������������������������3�����������������������������(�������R���������������msty2.tiff��Created with The GIMP����H������H���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/miscprefs2.tiff��������������������������������������������������0000644�0001750�0001750�00000022432�12214432632�016630� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�$������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ§§§ÿ��������������������������������\\\ÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿ§§§ÿ��������������������������������\\\ÿNþÖÿ’òÂÿ’òÂÿ’òÂÿNþÖÿf®Êÿf®Êÿ’òÂÿNþÖÿ’òÂÿ’òÂÿ’òÂÿNþÖÿ’òÂÿ’òÂÿ’òÂÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿ§§§ÿ��������������������������������\\\ÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿ§§§ÿ��������������������������������\\\ÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿ§§§ÿ��������������������������������\\\ÿNþÖÿf®Êÿ’òÂÿf®ÊÿNþÖÿf®Êÿf®Êÿ’òÂÿNþÖÿf®Êÿ’òÂÿf®ÊÿNþÖÿf®Êÿ’òÂÿf®ÊÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿ§§§ÿ��������������������������������\\\ÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿ’òÂÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿf®ÊÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿ§§§ÿ��������������������������������\\\ÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿ’òÂÿNþÖÿf®ÊÿNþÖÿ’òÂÿNþÖÿf®ÊÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿ§§§ÿ��������������������������������\\\ÿNþÖÿ’òÂÿ’òÂÿ’òÂÿNþÖÿf®Êÿf®Êÿ’òÂÿNþÖÿ’òÂÿf®Êÿf®ÊÿNþÖÿ’òÂÿ’òÂÿ’òÂÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿ§§§ÿ��������������������������������\\\ÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿNþÖÿ§§§ÿ��������������������������������§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ§§§ÿ�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ�����������������������������������ÿTßTÿŒ_TÿŠŠŠÿÂïÿ2¯ÿŠŠŠÿ&äÿ.·äÿŠŠŠÿqäÿÙǤÿŠŠŠÿÍ[$ÿ=«$ÿŠŠŠÿs“$ÿëÃ$ÿŠŠŠÿÇÍDÿu„ÿŠŠŠÿ÷Ù„ÿÏq„ÿŠŠŠÿÞÿ_vÿŠŠŠÿá øÿ‘²ØÿŠŠŠÿ±bØÿ B¨ÿŠŠŠÿ)¨ÿiŒ¨ÿŠŠŠÿ9ø¨ÿù¨¨ÿÿÿÿÿ�����������������������������������ÿTßTÿŒ_TÿŠŠŠÿÂïÿ2¯ÿŠŠŠÿ&äÿ.·äÿŠŠŠÿqäÿÙǤÿŠŠŠÿÍ[$ÿ=«$ÿŠŠŠÿs“$ÿëÃ$ÿŠŠŠÿÇÍDÿu„ÿŠŠŠÿ÷Ù„ÿÏq„ÿŠŠŠÿÞÿ_vÿŠŠŠÿá øÿ‘²ØÿŠŠŠÿ±bØÿ B¨ÿŠŠŠÿ)¨ÿiŒ¨ÿŠŠŠÿ9ø¨ÿù¨¨ÿÿÿÿÿ�����������������������������������ÿTßTÿŒ_TÿŠŠŠÿÂïÿ2¯ÿŠŠŠÿ&äÿ.·äÿŠŠŠÿqäÿÙǤÿŠŠŠÿÍ[$ÿ=«$ÿŠŠŠÿs“$ÿëÃ$ÿŠŠŠÿÇÍDÿu„ÿŠŠŠÿ÷Ù„ÿÏq„ÿŠŠŠÿÞÿ_vÿŠŠŠÿá øÿ‘²ØÿŠŠŠÿ±bØÿ B¨ÿŠŠŠÿ)¨ÿiŒ¨ÿŠŠŠÿ9ø¨ÿù¨¨ÿÿÿÿÿ�����������������������������������ÿTßTÿŒ_TÿŠŠŠÿÂïÿ2¯ÿŠŠŠÿ&äÿ.·äÿŠŠŠÿqäÿÙǤÿŠŠŠÿÍ[$ÿ=«$ÿŠŠŠÿs“$ÿëÃ$ÿŠŠŠÿÇÍDÿu„ÿŠŠŠÿ÷Ù„ÿÏq„ÿŠŠŠÿÞÿ_vÿŠŠŠÿá øÿ‘²ØÿŠŠŠÿ±bØÿ B¨ÿŠŠŠÿ)¨ÿiŒ¨ÿŠŠŠÿ9ø¨ÿù¨¨ÿÿÿÿÿ�����������������������������������ÿTßTÿŒ_TÿŠŠŠÿÂïÿ2¯ÿŠŠŠÿ&äÿ.·äÿŠŠŠÿqäÿÙǤÿŠŠŠÿÍ[$ÿ=«$ÿŠŠŠÿs“$ÿëÃ$ÿŠŠŠÿÇÍDÿu„ÿŠŠŠÿ÷Ù„ÿÏq„ÿŠŠŠÿÞÿ_vÿŠŠŠÿá øÿ‘²ØÿŠŠŠÿ±bØÿ B¨ÿŠŠŠÿ)¨ÿiŒ¨ÿŠŠŠÿ9ø¨ÿù¨¨ÿÿÿÿÿ��������������������������������ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������°°°8ºº:>==Ý#××W__Ÿÿ77×½}½#–æ>pp°8����������������������������������������������������ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ����������������������������ÚZšŸïÿgÇGÿ5eÅÿ~žNÿVFúÿŽ–fÿ ‘¡ÿ“ãCÿo¯OÿÖÖÖ������������������������������������������������ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿÿ������������������������©)‰ ﯯÿ…Ùÿ2bÿêŠÿIÁþÿi‰ÿ©1aÿþîNÿò’¢ÿ&†zÿËËÿeå% ��������������������������������������������ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿÿ��������������������¡!AUOOÿ^.Žÿ²b‚ÿ¥éIÿÕyÿáA>ÿN¶–ÿÖæÿ^Îöÿ1¡ÿîNöÿâ¢Âÿcÿy¹9U����������������������������������������ÿñqqÿñqqÿñqqÿñqqÿñqqÿ ÿ ÿ ÿ ÿ ÿ ÿñqqÿñqqÿñqqÿñqqÿñqqÿÿ����������������¼<<ŽŸŸÿÑaAÿ²bBÿuù™ÿžŽvÿ&†ºÿ††:ÿ&†ºÿ&†ºÿfÆúÿfÆÿæ¦FÿÎÖÿRâBÿk«Kÿêª*Ž������������������������������������ÿînnÿînnÿînnÿînnÿînnÿ ÿ ÿ�ÿ ÿ�ÿ ÿ�ÿ ÿ�ÿœxÿînnÿînnÿînnÿînnÿînnÿÿ������������ÀÀÀÛëwÓ£ÿÜìÌÿ¹ Ñÿ¦zÿꚪÿªÿêªÿjÿjÿZZêÿ::ÿzzšÿ†Úÿ¦Æúÿ&†zÿ§Ç‡wÀÀÀ��������������������������������ÿúúúÿúúúÿúúúÿúúúÿúúúÿ ÿœxÿœxÿœxÿœxÿœxÿúúúÿúúúÿúúúÿúúúÿúúúÿÿ������������ôttæ_Ÿÿ޶VÿúZªÿÎÖVÿ2rÒÿòrRÿrò²ÿ Jòÿ Šrÿò rÿŠÊ ÿ*jJÿªêÊÿªjŠÿÚ:êÿ’âBÿƒý=ÿ’âbæ��������������������������������ÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿÿ������������.ÎŽ g'Çÿ¼¬ÿζVÿ""ÿ¢¢ÿb’bÿâ’bÿRâÿ’ÒÿR2’ÿ2rÒÿ2rÒÿ2rÒÿò ÒÿŠJ²ÿÊ*rÿžîNÿ%E ��������������������������������ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿ������������Ýí­Gƒ½]ÿl 4ÿÚªÿ¼|Üÿ||<ÿ‚|ÿBüÿ‚Âÿ‚Âÿ¢BÿB"‚ÿ¢â"ÿB"‚ÿ"¢‚ÿâÂÿR²âÿÊrRÿ«KG��������������������������������ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ������������G{Ûß•¥…ÿlŒÿü<ÿ\¬ÿ\¬ÿ<<ÿ<|œÿ|Üÿü‚<ÿü‚<ÿ¼üÜÿü‚<ÿ¼ü\ÿ¼|œÿüÜÿ""‚ÿ"‚üÿ'{Ûß��������������������������������������������������������������������������������������������������������������������û[ߥ9ÿ¬,tÿìÌÿ¬, ÿìlLÿìÌÿ\œ¬ÿ¼<ÿÜ<ìÿ<¼ÿÜ<ìÿÜ<ìÿ\\lÿìÌÿÜœ¬ÿ¼<œÿü<œÿûË ß��������������������������������ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ������������M•G ¥ÿ4Ôdÿ¬Ì ÿ,Lôÿl¬Œÿ¬Lÿ\lÌÿœ¬LÿìlLÿœ,ÿœìÌÿìÌÿìlLÿ,Œÿ\lÌÿÜœ¬ÿ‚¼ÿ3=G��������������������������������ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿý½½ÿÿ������������Ö¦& s}ÿ ÔÿLtÔÿ, ´ÿlLôÿ,ŒÿìÌ ÿìÌ ÿlLôÿ,Œÿ,ŒÿìÌ ÿlLôÿ,Œÿ\lÌÿ<œlÿZjÿÉñ ��������������������������������ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿ奥ÿÿ������������ä¤$懳Ãÿ’Üÿ ´TÿÌô4ÿ, ´ÿlLôÿlLôÿ¬Œtÿ¬ŒtÿlLôÿlLôÿ¬Œtÿ, ´ÿ¬Œtÿœ¬Lÿ|ÜÿÑÿ‚üæ��������������������������������ÿñqqÿñqqÿñqqÿñqqÿñqqÿ ÿ ÿ ÿ ÿ ÿ ÿñqqÿñqqÿñqqÿñqqÿñqqÿÿ������������@@@-E¹w±~îÿ”ä$ÿLtTÿLôÔÿ,Œ´ÿ, ´ÿ, ´ÿ¬Œtÿ¬ŒtÿÌ 4ÿ¬Œ´ÿÌ 4ÿlLôÿ,Ltÿ’Âÿ-…Yw@@@��������������������������������ÿînnÿînnÿînnÿînnÿînnÿ ÿXXÿXXÿXXÿXXÿfTTÿînnÿînnÿînnÿînnÿînnÿÿ����������������4”ŽíÙÿb¼œÿL ÔÿLôTÿŒtTÿÌô4ÿ, ´ÿ, ´ÿ¬ŒtÿÌ 4ÿÌ Ôÿ,Œ4ÿÌ 4ÿBÜÿ~N6ÿ2¢BŽ������������������������������������ÿúúúÿúúúÿúúúÿúúúÿúúúÿ ÿfTTÿfTTÿfTTÿfTTÿfTTÿúúúÿúúúÿúúúÿúúúÿúúúÿÿ��������������������zÊ Uy‘!ÿl 4ÿÜœ,ÿ,LtÿLtÔÿÌô4ÿ, ´ÿ, ´ÿLtTÿÌ ÔÿLôTÿü¼\ÿúêŠÿ^6U����������������������������������������ÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿÿ������������������������fª yQÿ‚Ü,ÿìÌÿü|œÿ¬,ôÿL´TÿL´ÔÿL4”ÿ\Ìÿ‚<<ÿFšÊÿ®† ��������������������������������������������ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿ����������������������������|œ,Éáÿ^–úÿ|¬tÿ\,ÿ‚\ÿBBÜÿ¼¼ÿ RBÿQžNÿ b������������������������������������������������ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ��������������������������������àà8‚œ¬>anÖ#9á^¹áÞÿinŽæ#ò¢>8������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������0�������0�������Â$���������������� ������� �)���Ê$������ô$������ %��������������������*�������%���������R���������������/usr/home/fatal/newprefs/miscprefs2.tiff��Created with The GIMP����ˆ��€��€����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/temp.tiff��������������������������������������������������������0000644�0001750�0001750�00000022424�12214432632�015521� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�$��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������°  ô €€ð��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Ð��ð* àÿŽ((ÿ|HH ����������������������������������������������������������������ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®`àÿͨ¨ÿøøÿ–¨¨ÿÊ””ÿ������à���@������������������������������������������������ÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿ”””ÿ¦ZZÿÁ`àÿeÿÈÈÿIrrÿ5¬¬ÿº$$ÿ’((³Ì€€€È���@��������������������������������������������ÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿ”””ÿ®`àÿUÿ;vvÿÕVVÿ½¢¢ÿN¬¬ÿê””ÿvèèÿ¨¨¨aààà,���à��������������������������������������������ÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿ`àÿèèÿaØØÿu::ÿ}‚‚ÿ¾,,ÿZ44ÿÂøøÿ’øøÿÝò���P��������������������������������������������ÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿ„hhÿ®`àÿÍPPÿÅÌÌÿérrÿ]RRÿN,,ÿrrÿ¸¸ÿÂ88ÿÄèè_HHHKÖ���˜���@����������������������������������������ÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿ† àÿeÿ1DDÿ=^^ÿ•llÿÎ,,ÿFôôÿ88ÿâxxÿ$hhÿ_000   ©���Ü���p���€������������������������������������ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿLääÿf àÿU00ÿÉÿYªªÿÝÿά¬ÿZŒŒÿxxÿb¸¸ÿ$hhÿˆˆˆÿððð_g -������„��� ������������������������������������ÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿ®`àÿã””ÿsÿ+))ÿÝÿ^ÜÜÿ¾ŠŠÿÊ´´ÿbxxÿZÒÒÿºººÿêêêÿ°°°ßçÀÀÀ½���~���´���`������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿ.`àÿ}¸¸ÿÝÊÊÿƒÿͼ¼ÿ~ÜÜÿ22ÿr””ÿ’øøÿÿÂÂÂÿ|||ÿ¨¨¨ÿ000ßçÀÀÀ���®���”��� ������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿê àÿ((ÿÝââÿƒ¾¾ÿBBÿllÿRRÿ²””ÿ"¸¸ÿâ¼¼ÿBBBÿüüüÿÿ(((ÿ000ßPPP'   %���J���è���À������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿ2 àÿhhÿýÚÚÿ ÎÎÿ||ÿœœÿÿJLLÿ’øøÿâ<<ÿÂÂÂÿ¼¼¼ÿÿlllÿ¨¨¨ÿppp_ppp;àààA���”���à����������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿ©©ÿž àÿ}ØØÿêêÿ}^^ÿ=ÿnÿ22ÿŠôôÿ¢¸¸ÿâÜÜÿÂÂÂÿüüüÿÿ¬¬¬ÿœœœÿÿÈÈÈŸ(((s���H���€����������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿ¥AAÿŽ00ÿy’’ÿãááÿíüüÿ®ÿ.bbÿ2¤¤ÿbxxÿâÿBBBÿ¼¼¼ÿœœœÿ¬¬¬ÿìììÿ¼¼¼ÿøøøÿ888ïXXXPPP²���P��������������������������������������������ÛÛÛÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿyyÿ’øøÿILLÿnllÿ¦llÿbÿâxxÿ$ØØÿXXXÿ˜˜˜ÿhhhÿ¨¨¨ÿhhhÿÿøøøÿ444ÿÄÄᏏ¸PPPâ���P��������������������������������������������ÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿ[[[ÿ³³³ÿÿ†RRÿ¢¸¸ÿÖbbÿŠÔÔÿ"8¸ÿ ÿªªªÿªªªÿ ÿ²²²ÿòòòÿªªªÿ¶¶¶ÿ™™™ÿCCCÿäää/xxxíPPPâ���P��������������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿ³³³ÿÙÙÙÿšššÿêêêÿªÿœèÿ|XXÿ"<<ÿ<<<ÿìììÿlllÿìììÿ<<<ÿÿòòòÿ¶¶¶ÿQQQÿ¼¼¼ÿ”””/xxxíPPPâ���P��������������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿ³³³ÿ¹¹¹ÿzzzÿRRRÿtttÿÿêòòÿ‚‚ÿ|||ÿ<<<ÿlllÿ,,,ÿÿüüüÿ ÿ¶¶¶ÿQQQÿ™™™ÿüüüÿ”””/xxxíPPPâ���P��������������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿ¥¥¥ÿ ÿ¹¹¹ÿjjjÿ¢¢¢ÿ\\\ÿÁÁÁÿÿ222ÿ\\\ÿ\\\ÿÿ¬¬¬ÿlllÿ¼¼¼ÿòòòÿ¶¶¶ÿ‘‘‘ÿ™™™ÿyyyÿüüüÿ”””/xxxíPPPâ���P��������������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿsssÿ¡¡¡ÿÚÚÚÿÂÂÂÿ\\\ÿ‘‘‘ÿñññÿ¶¶¶ÿ¢¢¢ÿ,,,ÿ,,,ÿ¬¬¬ÿìììÿ¼¼¼ÿ ÿöööÿQQQÿÿyyyÿyyyÿüüüÿ”””/xxxíPPPâ���P��������������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿ………ÿ³³³ÿ^^^ÿÚÚÚÿlllÿ<<<ÿ999ÿ‰‰‰ÿîîîÿjjjÿ¼¼¼ÿ,,,ÿ¬¬¬ÿÿ¼¼¼ÿŠŠŠÿÿ111ÿYYYÿyyyÿyyyÿyyyÿüüüÿ”””/xxxíPPPâ���P��������������������������������������������ÛÛÛÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿ³³³ÿÎÎÎÿ ÿ´´´ÿŒŒŒÿ¼¼¼ÿ\\\ÿ ÿÄÄÄÿXXXÿèèèÿÿ888ÿxxxÿDDDÿ´´´ÿÿ¼¼¼ÿüüüÿüüüÿüüüÿüüüÿüüüÿ”””/xxxíPPPâ���P��������������������������������������������ÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿ[[[ÿSSSÿAAAÿ†††ÿìììÿæææÿëëëÿÿåååÿ^^^ÿºººÿÊÊÊÿšššÿÎÎÎÿiiiÿeeeÿÍÍÍÿÿ«««ÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿ”””/xxxíPPPâ���P��������������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿ ÿ®®®ÿ²²²ÿ´´´ÿ†††ÿ999ÿ ÿnnnÿêêêÿBBBÿ\\\ÿ‚‚‚ÿ***ÿNNNÿ111ÿ©©©ÿ™™™ÿ999ÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿüüüÿ”””/xxxíPPPâ���P��������������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿcccÿžžžÿ ÿÿÖÖÖÿ999ÿ ÿnnnÿªªªÿüüüÿ\\\ÿ‚‚‚ÿêêêÿ®®®ÿqqqÿYYYÿ¹¹¹ÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿüüüÿ”””/xxxíPPPâ���P��������������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿ………ÿ³³³ÿÿ222ÿtttÿ¾¾¾ÿ999ÿ ÿnnnÿªªªÿ¼¼¼ÿÿ‚‚‚ÿšššÿžžžÿ ÿYYYÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿüüüÿ”””/xxxíPPPâ���P��������������������������������������������ÛÛÛÿyyyÿyyyÿyyyÿyyyÿKKKÿÖÖÖÿbbbÿLLLÿ‘‘‘ÿÙÙÙÿ ÿnnnÿªªªÿ|||ÿÿBBBÿÚÚÚÿ^^^ÿIIIÿ999ÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿüüüÿ”””/xxxíPPPâ���P��������������������������������������������ÛÛÛÿyyyÿyyyÿ………ÿKKKÿÎÎÎÿBBBÿÌÌÌÿ!!!ÿ999ÿ ÿ®®®ÿ***ÿ¼¼¼ÿœœœÿ¢¢¢ÿÿ~~~ÿIIIÿ999ÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿüüüÿ”””/xxxíPPPâ���P��������������������������������������������ÛÛÛÿšššÿìììÿrrrÿÿ,,,ÿ´´´ÿüüüÿ|||ÿ\\\ÿôôôÿ„„„ÿÿhhhÿ888ÿäääÿÌÌÌÿÜÜÜÿ|||ÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿ”””/xxxíPPPâ���P��������������������������������������������kkkÿóóóÿcccÿÔÔÔÿ<<<ÿÿãããÿÿÿ%%%ÿ®®®ÿªªªÿÊÊÊÿÿñññÿíííÿ ÿ›››ÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿÛÛÛÿ”””/xxxíPPPâ���P��������������������������������������������³³³ÿƒƒƒÿ“““ÿ666ÿ¼¼¼ÿáááÿ999ÿ ÿnnnÿÊÊÊÿ<<<ÿ\\\ÿrrrÿ¶¶¶ÿáááÿéééÿ¹¹¹ÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿüüüÿ”””/xxxíPPPâ���P������������������������������������LLLüCCCO ÿõõõÿêêêÿÌÌÌÿ666ÿYYYÿ ÿîîîÿ***ÿ<<<ÿ\\\ÿrrrÿöööÿÑÑÑÿ™™™ÿ¹¹¹ÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿüüüÿ”””/xxxíPPPâ���P������������������������������������¥¥¥seeescccÿ111ÿÌÌÌÿÞÞÞÿIIIÿ¡¡¡ÿNNNÿªªªÿüüüÿ<<<ÿŠŠŠÿÿ111ÿ™™™ÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿüüüÿ”””/xxxíPPPâ���P����������������������������������������]]]Oÿbbbÿ111ÿ±±±ÿ^^^ÿ&&&ÿrrrÿ‚‚‚ÿÿ***ÿ®®®ÿñññÿYYYÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿüüüÿ”””/xxxíPPPâ���P����������������������������������������ˆˆˆî..ÿÙÙÙÿqqqÿ...ÿÿ***ÿbbbÿÂÂÂÿjjjÿ®®®ÿ ÿÙÙÙÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿyyyÿüüüÿ”””/xxxíPPPâ���P����������������������������������������   økkkÿœœœÿôôôÿ$$$ÿÿøøøÿøøøÿÄÄÄÿtttÿœœœÿ¼¼¼ÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿ/¸¸¸íPPPb���P�������������������������������������������€���Xàààðððˈˆˆ¯ÈÈÈŸ(((Ÿèè踸¸ïÄÄįäää/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/”””/ÏäääW¸¸¸ "����������������������������������������������@���x   N#ÐÐÐ{°°°;ˆˆˆ«hhhSXXX¸¸¸xxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxíxxxí¸¸¸m888õ¨¨¨!Ì���à�����������������������������������������������ð€€€âÀÀÀ‰ U   ©àààÎZPPP2PPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâPPPâb"Ì€€€È���@����������������������������������������������� ���¸���ò������ü���¸���p���P���P���P���P���P���P���P���P���P���P���P���P���P���P���P���P���P���P���P���P���P���P���P���P���P���������à���@����������������������������������������������������������Ø���„���ð���À�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������€��� ��� ���€����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������0�������0�������Â$���������������� ������� �$���Ê$������î$������%��������������������*������� %���������R���������������/usr/home/fatal/newprefs/menus.tiff�Created with The GIMP����ˆ��€��€����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/keyboardprefs.tiff�����������������������������������������������0000644�0001750�0001750�00000015776�12214432632�017430� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*������������������������������������������������������������������������������������������������������������������������������������������������ÖÖ–���î.N‰qÑ¥ÅeEŹŹ±!>šŠ&z¦újæZɉ±1a)ñqE¹Ùå…ù¥9ÅùÙy9žŽ6ú*&:jÆZ*v¦úYiI%Y™ù©)y)IyÉ ¹‰±ù©É ñV&ú†Ú*f†:憺¡~ÞÅ9¥¹Y%™¥Y¥Ù¥¹YÅù¹!^???���ÖúÚ þ>[ 3‡Ks{ó3WGû£]Í\¬L´2âÜæ†êíMõVšÚֳݗÛGs3{³S[ëyI1,ô4lLäR"œÞŽKó—Û[çë«ç«çë+gkËç›ë닳®V†ôÔ$B<Lj2u…ÙG;›‡KógËËkkkkëG#Úš???���Æšj!N‡Ks'‹³‡s“¯gÇ3}\,Œ|¬´žººÊÍ ÊÂ"V*ªÃõU×ë‹“£ÛS£WÇ%ÉôTò"ÜZ 6†»ëË'ËsûScûS£3ãûÓ㇠3Ç»›!îŽô”d¦šò&ê2¹‰ág{›;ÓcÛãû“£»#;ã#GËós3Sjjê???���^ÖµÙ©Ë'‹Ó‡³“o'G›3ãúªÒÎFÙ!^Zò½iaaÓí˧‹3;ホ“÷çÇM¥…œ,ŒöÆÚÁ®VV†jËsGK3;CÛãƒ;C[c;3c»Ù‘!Â\ìEq¡Ö†‰a~Ç;ÛS£#ý›£›£#ý{s“sS“jê???���E);3k‹‡³ãGs/G»3£êò.ÆjÉþΚÊKsSç[·˧‹3ûÓc;“C;Ó£—g½uÕ|ìlžÖÆñ¾Žj âKsS§Ë³;ãC;CÛãC[ã›SÃG{y‰±â||ÍY©¶j®Öû›«û³“›£[cƒ›£ëÃ};ÓãóÓúÚ???���y) k#ýscû³#Gs{›ÓcºJbÎyá^z*âkÓãû;Ç3{“#û“#»ûÓã§ÝUeb¼\‰ ¾ÎòÒ"KsÓ—ëË{“#»“û“ÃÛã›SCç‡{Y‰ñb|¼õé 6ªNVú;ëKóS#ý›£[cƒ›#ý»ÓãËóSöV???���é)›“#§Ë³§Ë³ç« ÏÇûk³“¦š ~æ¦9á>FÒËÓc¯g'g« ÇK³§+ó'ËsÇ« Ï×ç#•Bœì‰~ΚJâ+‹³w;'ËsG‹3 Óû³“ 3×§‡åY)üüµi‰Ž¦šNÖú;˧ëËûóSûóSûóS{s“‡Ks+ó>N???���) S£ƒ« Ók Ók‹ÓkóSõÅÙªRö:a¾fZ²µEék S+óÓ+sS+óSËóS+‹3닳%©±\, Îf:±>ŽZrý½íkËs+óSëK³ÛëËóëËó+óÓ‰a"Ü\uiñnVº–&š£C½+‹³Ks“KóSKsSK³“+ ÓCýnNæ???���ZÊ’šJ’ZŠbZŠ"Ú*âfzJ–Ú fÚ öúZÙaþö†êfÚòÆZrò<òâÜòܲÜ*rB–†ªf: |< ®fº±^fÚòÆ:òªò‚ò’<:ªÁ^öæúʆZrN–zަº‚œ,UIanÆvƪ&ºJ2Ò’b2Ü’¼’¢œ ²‚ºêÒ†ºJ???���FZJVú*ÖzÊÖºJvºÊ†êžæzîúö:jqžÞÖ†îú¶úªª2üÊÒ|Jܪ2|ŠR¼úª’î–º2R<zêòa®6žVöÆjz*bZŠ"Šâ\ÊR¼J\Š’ÜæºŠá^Ž¢¬ñ¾NÑ>N~NæJÒü¼\tÜô"¼ B|,ÂÜô¼ô*Ò|¡^Ž???���†ZŽÆZN&š¶ú*Ö: Ö:ж†*æZòÊ"|öFj®f:~¶&æ>v†.¦Ú¶úJvÆÊʲ|*Ò|nf:’"ì|\tN¦Únzž6†Þ¶F^¶ÆF2Š¢šŠBrújRáÞöü|Œ–ú*.ÖvFšr¼ªòÂê "êr"JrBJRrâÜ*²¹I???���¦úšÖ*qÎQ¾övFÎVúÎvFÎ6FNfú®Ö–úÊž–úŽæ^Ö†öúÞv&v¦šJ²üJ2VúêÒR|’<Ž–z–ºJ®Vú>ö&n–zfZòšªRÒb<ₜ"¦úê"B¼šª2NÖ†ê B2¢ìZJ¢*ò R 2’¢"L’"ì©1a???���æÚa~N c½3íõ[Ës;ëËÛkKÛ«K;kË‹³ãÁ^vî–ÚÁÎfnæº¾Ž–³#[«‹+óS+óSËóËsSË 33#~n6ŽfºÞ¶F&¹q!ó“#ËS£KS£ËSã Ó+ÓëËó£Ã½ºÒ ’Üz*â R|N&Ú5ÉQ¥qÁù‘>ù>}å…???���*Þ3}퉾î+Scg+ dz“û“ã ³‡;AžöŒrÂìÖú*.Ö;ëË—›+Ç 3Ç 3Ç 3GóÓ§«KÛëËf†êôD¼L:Ê⹉G{×ÛëWË7+×+7«w{Û«‹³¢ìôt„r¼’b\–zc¥9Ù‰Íqqýå???���¶Æ:!ž.£Í.ze‰Q[C={C›#ýÛã#§{Ûq¡~Äøb¼Ì®V†&Úòë Óg+ó»ãÃ;cC;ãÃÛcC{³“[«‹F:*䄸–ZJ¦ÚrIa¾Ç»›û³»Ã{“#{#;cCsSKsS‚¼¬8X¨ ÒÂ2‚öFZÝyIÉ^Îåñáu™ñuYI???���¶¦:ζÆK3㥹]EY{ÃýûãÃ[#ý;“#燻™ñ¡L´äæê ±ÞŽª’kÓ£—« ;cƒÛ£ÛcƒÛcƒûs“‡ÛëÞÎVܬŒ%‰aަš±A^G;»3ã[£Ûcƒ;ãC[cƒû3›+ Úêò$D8:j’ 2B–z*ÑÚâ".úZÞ–Îæº???���v&:fzÊ›+óWk‹'3ã‡S£;£›ƒ½ÛÃç;Y±!Ì´”6ÚªqžvúªkÓ£—ë‹;cƒÛ#Û£ƒ›#;S£Ç»›‘¾n‚œì ™q¶*®Öû›«û3Û£ƒÛãC[cƒ[cƒ»3c;kKÖFÚä$øÚ* ’|†ò )ÑîÚæfÑÎ6é¡>???���ÖÆzFZòëKs'Ëó»“£;ÛC[£ÛS#WÇ{%iqœ ŽæÑžvúÊâëãC×›k»Óc›SûÓã;Óã{ 3§ûÛ1Þ‚œìU)Q6úÊî¶Æ»+GËs»ÃÛcƒ[£[cƒ{sS[kžö¦ô4„ÚÊâ R¼º*âƒEé-é1õ)Ñõ©QÅY???���.VF¦ºJs“Ç»‡»—Û—Û—‡»—{Ç;빉á"üÌþަ‘žvº óãƒ×Çû—Gûç‡;‡»Ç{—§GG;±Á^üœ¬YáþÎ:nö&닳—‡;7Ë' 3GóÓ—ë+—{[›+áÞŽ,Œ$J"JrÚ*bÃ%C%™m9 Mi±å…???���.6FšŠbIÁ…)‘eÙ‰å9IÙÉy)•¹)eñv†jBÜôJbá®–v†*ia>¥ÉQ™‰¥i±Å)Q%q•…Ù59é¦Ú B|ÌYá¾þŽæ¦zªÙñ¡%ñS]ÍksSk‹³ó“#5™åÙ úª’T¸šŠ¢šJ"Ê2|AÎfAÎæ^vFanÖÃÕÅ???���žöæÚJZrúJ"š²šÒ|š2üZ2ü:rB6:JÎF*’¼Êâ\îÖîVú–zJú*âÚ Âšr2¼š2|ºòÂÖÚJ¦ê²JÒ|y‘~QîvzJú*ò<ÚJ¢FZòZr†Úò*Ò|fÚòFÊ’ÌŒ¤ÚªÒzª’*²‚Òâ\ü|Œ<<ô¢ÂìÞ®V???���¶föÆš.¦ê.fêîšžVÚžÖ:–Únfšž–:ÞÖ†òb¼|ÌþöÆžVúΦZ.æšî–ÚžÖº^ÖºžV:næšžÚž–:ªÒüîVº^ÖöÆêv†êöjvFª6*Öz*ö†jŽ&>vf¾v&ì¬TòÒüZ*’šJŠR|¬´ô„œœô&†ê???���†ÚªjÒ¦26úÊNÆjÞ6¾Æ®–:ÆŽFjÖz*\¬ŒLt–:ЦjRÆêÒ6zJÎÆªÞ6¾öÆVzvFjö*æÚòÂÜL’†êÒZJâ&²Vúʶ†*n–zžÖnVºÎ–:n6¦n–FL´,Ld¢B,€ÒbÜœœ4T´xLL¤†*???���)Ñ¡íÕE£mõÍ¥yN&Znz¾ö¦vFêñ.ãíõcmu5™å¹i •]å¹UEU9ÉîæZn:>¶FNÆÑÞŽãÍ#•­EY­%Ù½5%íåyÃÍÕu…™Vz*®æºþŽfÖú¾ö&Y!>Y!^þ¶¦AöfÁΖv&AŽŽÆšÖº*öj‘þî???���Uå'›kOçÇÛ«‹öfnæº>væ¶zÅI‘—ÛÇ;×Ç{WG{wÇ{·;·'û;k‹>ö.fZ~öÆö†ª)!Þ§Ûkû›7»ë·ûÛw»›7»÷'« ÓæúªnVú¡n–6ÆÊîÖ†£ÅùCEÙý#ÅÙÃÅYƒé£E9½¹©]ù™}ùéõ???���¥Yi+Ãý§« ëKsjò´Dr‚¬zŠâY‘A§;{³ã[cC›ãCÛÃÛãÃ{³“›+óšò4äDJ¼Zr‘ÞŽ[«{³ã›£ýÛãCÛ#[#{³“KsS"<, $2¢ìÒbìúZ2½©±EQ ©ÑMéqi1-iq­iq©± )ÑÝ%Ù???���Å© ˽Gó3Û+ Fj² ĸ–:òÆê)aþGÛÛ“#C½[#ý›#Ã}ÛS£;kKVÆš´äÄ^–úv†êþÎÖ{ëË{ÓcC½›C½›ƒ=ÝÛÃKsÚJRxXh¼ŒòR¼zÒMiqIŽ^¦º~î…‘ñÞÎi~î¹!Þ‰ÞN%QÁ…Ù???���E©I«ý]'‹³'»›¡îölt ¾.öfÑþî[k;Sc›Ã}[#ý›#ý›C½;“£G;¡ÞŽÂ\LUñ!Î&®Ö†;k‹ûÓc›C½[Ã}[Ã}›ƒ=[cC›«>VäDøJ2üê ÂòÒ¼Uq¡ÉžNºê~Fqîö.FšnFºÆÚÎFêÁ^íÅù???���ùÉ Ë}]'K³'{[¡žŽŒ´‘ö>ÖúÁîö{+»Óc[£[#ý›#ý›#ý;“£Ç;aÞ΂ÌÕ ¡Fª6Æ›+ó»ÓcC½›Ã}[Ã}ƒ=cƒ;y±´dr’¼Ú*¢’bì ©Ñ퉎V™u‰Qù!~9¡yÁ>9A^å±!…Ù???���…éÉcC+§{[‘žNB\Lq¾.¾6!vû[k§ëËG‹3G‹Ó‡ Ó{s“Ks§{Ûqþœ,U‰¡nfÚ6Æš[Ësçëˇ3“ûÓãûÓ㻓£»³“·gG ÙŒ4TÒbܺê²’ÜuÉQ#ÅÙM©±­YñÍñ É1µ)Ñ5É‘u‰‘5‰á…Y???���™©I3cC›ËóóS£QÞNŠÂ9Þá.–ž¶FcC½ëKsk‹3k‹3k‹3« 3ëK³Ócƒ^v¦ÂœôEQ¾þvÆ6ªCÍ5ë Ók 3«óÓ« 3«óÓ« 3+ó“™ÑAôTd’œê2ª2‚Eþƒ…™m M)Ñ©Ñc¥9c¥¹CÅ™#EYy©Óu???���ú fZòVzÊ.:Þ–z*’ÜÑnÖ1ž¶æÚr&Ú Æš²úêÒúêÒú²j2&Úò–ú*ºŠ"¬t„ކ*n–FjÖúÊ&Úò²újÒúê2úê2Fšrv&ºŠÌ $"‚ì2 Ò‚*rÂJ²’b¢B¬òR¼anVÉnñþ®1¾Î!Îéþ???���¦zš.ÆZΦê>ÖúánVâB,ºJb!®VnVzŽ&š¶†ª6†*¶†*ŽjöúªFêÞ6F>ÖúÜL$êÒ|6Þ¶Æ.f:Fêv†j¶ª¶ú*¶zÊö†jžVúþ¶ÆÜ¬”œìÔzjZJbjrb*²¢JÒÂò’‚Rb\Ò¢ì"‚,‚üÌB‚Ì‚‚Lƪ???���F:jvújNúªnÆîf:ôÔDìLä¶j: ¦ZòæZŠÚŠÖúÊN&šnzÞ6FÁΖ¡.V ¤Ò,¾f®–.溮ºnºn溮f:.¦š.æÚÖúμ\´Ô4*²‚ZJ¢:*âº*:*’:JÒZJâꊢê Âêr¢ê "J¢.ö¦???���öæúΖ¡®6ÑžNq~îr†êrŽÁ.v¾¾ŽVþŽ–!î6Þ6†–zJ^ÖfÎVê²Bnú¡ÞQvfŽæÁNÁNAŽæÎæNfÁαޮ¦Z溊:ª’Š2üÚÊb:Êb:*âº*:*:ÊRÚÊÚ*2:ÊâºjRîN6???���¹™©K3{+›«‡[k›Ëó›Ëó›kû«{ë+{ë+û+‡›+S}­¶Æê>v†î6ŽæÁÎV])mÙñµÉaÕIa5‰á5‰á•‰¡• Á5‰áÕ‰a• Áµ)íY‰ÅqžörÒ<ºj’Fš2†êR†ê’êRúêÒúêRêRê’†êÒ>.Ö???���yÉ1˃½{3û3333sSsS‡sÓ‡sÓ‡ Ó›«;« n–úþ6Æ1žvzÊÖ†íÙ‰U ¡å±ÁU±Áå1Á%Ñ%1%1þ%1%Ñ%1þ%1eñ!­Y EQ~òR¼Ú*ÆZòÆZrÆ:²FZ Z*FZ Æ:²ÆZrÆZò¾.6???���Ùñ Ýí[£ƒÛ£ƒ;£C»£C»£C;£ƒ[#ýÛ£Û#ý[cƒóÓ+óÓ’BÜD¸X4äÄ쬔Fš²ÅñÁ!ž&Aî& ~ö%ÑAEþ¾ù¾‘¾ùá¾ùá¾ù¾~õ©ÑM©±ŒTäØ˜Ì ¼\‚Ü\Ü\Ü\Üœ‚\œìœìZš???���9 ‘ó=mÛcƒ;cCÛcƒÛcƒÛcƒÛcƒ[£[£[£[£û3« Ó’¢<¨H\,4’¢FjRűþÁžÆÚA®&Qþ%Qá¾¾‘¾‘¾¾ùá¾¾5ÉÝùit”¤¤„UÙ)KSã+Ã+#ÃË#ý+£ý+ƒ}Ë=‹½][Ó“???���Y QsÝmÛ£ƒ;£C;£C;£C;£C;£C;£C;£CÛ£ƒ[#ý{ÓcëK³ÊòbؘhŠ2üºb†jâ=¹É©ÑEÑ…¾…Ñþ…‘~…¾…¾…‘¾…Q¾‘>ùáÞù>Õ)QCy\Œt”£Mõw×ï‡;ï'GgÇgÇgÇgÇï§Ÿ·×???���9)ñ˃=û3ã{3ã{3ã{3ã{3ã{3ã{3ã{3ã{3ã{Ócû‹Ó+ *òXèbÂܺ’Zª¢…iƒi-é±õÉ‘•ñ¡•q¡U ¡5ñáU ¡U !Uñ¡Uq!Õ amÙɃ5eòR"ôÔT奧û3ãGÓã'3“'Óã'Óã'³“Ç3“kË???���ùYékóSÇÛkÇ;ÇÛ«ÇÛ«Ç;ëÇÛkÇ;ëÇÛkÇÛkÇÛë'Ûë»k‹æxؘ‚Æ:ò* AöÆ>Öú >ö½©E™Ù‰Íi±Í©±Mi1Í©1YI#e9ƒeyÅ1ážvBül´”äõ9·§G;#ûãC‡“#‡“C‡ƒ‡Ãã狳???���ÞŽV !¾i‘é‘~鑾鑾鑾鑾鑾é‘~é‘A©áAYÑ!C5evúêø8˜¢‚lfúÊJr‚¢l|<tÂüLʲ‚в|2’ÜRbœ²ÜÒâ\Òb\²’<вüª BRâœòÒ|"\Td$)çû;“cãGSÃG“CÇ=G“CÇ“#çK³???���:ªö†šFZŽFZŽFZŽFZŽFZŽFZŽFZŽFZŽFÚN†ÚŽÆº‘N&ºÄø¸‚¼¬úÊ:*âjŠÂª BÊr‚вüŠ2¼òÒ¼òÒ¼Š2|ò’|ò’|r’¼2’< R|ʲüzRF:Š”dÄ^ö‡›k‡S£Gc݇C‡“ÃG“CG“Ãg“#çK³???���ŽfzV!ζ!ζ!ζ!ζ!ζ!ζÁζÁζÁζ!ζÁ.¶ þî!þ4ä¤<ì4æzŠÚªâŠÂZŠ"ZÊ¢ŠÂŠÂ B BZJ¢ZJ¢ZJ¢šJ¢šJ¢šJ¢ZÊ¢†š2Æ:ò”$„ÎæFû«GsÇ“Ã'Óc'Óã'ÓãÇÓã§Óã—Ë ???���‘ÞYQ!y±áy±áy±áy±áy±á¹±áÙ±á9±áٱṱáÙ1aEÉѵYIrR¢r²ÂnÎÆöÖú6º6æ:6–z¶–ú¶–ú6z6æ:6–z¶–z¶æ:¶æÚ¶æÚ¶æÚ¶æ:N¶ÆîŽ¢BüŽVƇÛë/‡›ïû›‡;û[ïû[¯û[‡;ŸçG???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????������0�������0�������¶���������������� ������� �+���¼������è���������������������������8������������������������/usr/home/fatal/newprefs/keyshortcuts.tiff��Created with The GIMP���WindowMaker-0.95.5/WPrefs.app/tiff/menuprefs.tiff���������������������������������������������������0000644�0001750�0001750�00000002040�12214432632�016550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*���Ðò h°à!B† &l¸ð"FŠ%jK1�Bã ’Ñ&Jœ$i²ä�Ô©+p¼)2fÊœ%k°TibÇŸ-o¾üBæH'}Áâ%J&)œ«Xpðà]•JB¸*�½5¢˜¬ � ²•ó–I—§|E� [6ŒÂ©-�Å�Àè Àr7�ðzpÖ@<$uë·ÎÚ¸hÓ`*µT88Ûñ-Zyœ �à4�þgN^ÅÀc3 ÍaDóÑ #°Y @öºN]lš 0ÄÜù+3..·lT«aYš8ÆË1�0Op~fËÀyõHº{xБG"@¼]ÒÇ=�ôñ$Êö‹—“]]z½ym“/CCû ÀÕ·D/>&~B”(LýR7ÜÈP"÷/�†ƒ LF+@ öàD B° �†áP$!¤pD MÐ0Š@ÒðBŽLĈ�ˆ$ب$Š"¢ “Øc–¸cöÞÁcõ?N)MÔÍp<7(©±Äß„"MX+â†0ñP’tIЃŽ>%‘R‰ÇŠ$Ô‹_öd”u-ÚÒK_„ SË8LýÌ\NM¼É:ݰ³1‡ÔƒKSˆt�ˆ“|EõM¥”rM;‹<’ ˆ’E 8Фs7,Ïèò)E+È©0Ìl‹©Œdí‰8›r˪‚ŠR ¥²ÜªÈªœjËתBr*®¦R­BŒ²–,Ë®º¡«¯§Æàj.®Ìä‚L¨°Æ…«»Ð8bh°àâËjEâ0R*­íæ«lO”ÚÃiVÊvZèLÔ.jj üÊéN´šé©¡æjͳ7ú¨ß˜¶z)¡‘ck#ªAlp;H¸£AÛ~„ƺì«ã~G=ﺊf\¡ pÂn:X¨Iý𼓬¦rÈÂÛì¹Ðò I�!B† &l¸ð"FŠ%j´è1"¨S'@ 4A‚ÅLœ$i²ä)Rˆ7~Âà©2fÊœ%kÈ4ñÍ-o¾üBåH—»`±â%’åðWÆÉò*F ������0�������0�������È���������������� ������� �?���Ð��������������������������*����������������=�������R���������������/usr/local/misc/WindowMaker-cvs/WPrefs.app/tiff/menuprefs.tiff�����¯��§��_���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/timer4s.tiff�����������������������������������������������������0000644�0001750�0001750�00000001132�12214432632�016134� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��€� P8$ „BaP¸d6‡¿àq(P‹D#Q¸äö}=Æ#òì–MŒC$r)f)“Ä%q9¤gšÅç/ù¼Y$˜Ææ¨«þG£D┚%6‡. Æ£Š¥V§E¬EésºJ­_°R«4Ë%.·8®Á%r»¶©b­XìÖ;\¶ÓJ·^i -ÊýN˜Ýd7¬%^ㇾâ)x*…{ ¾\ñWû$æ;Ìdr™,M/\¢æ)™=&VÑ€ÓåôXLÖ—9œËG5zÌÞ×K±‡ã6uýnw_ÆWw{ͶúǸ“n¸xn6—ƒwŸrù›ý¾§¡ žKr[>£¯¹»iì9IÜ÷¿AžÓü¾?·Ýi€€������������������������������������ ������� ���� �� ����'����������������������������U��������������>������F�������(�������1���� ��NR���������������timer4s.tif� Imported from XPM image: timer4s.xpm��H������H������ImageMagick���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/msty1.tiff�������������������������������������������������������0000644�0001750�0001750�00000015120�12214432632�015624� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*��������������ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ�����������������������ÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿMMMÿ���ÿ�����������������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿ���ÿÄÄÄ!pppÌ���������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿsssÿ���ÿsssÿ���ÿ”””ÿ���ÿ„„„ 000"���������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿ���ÿÿÿÿÿ���ÿ���ÿ”””ÿ���ÿXXXíb���������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿsssÿ���ÿsssÿ���ÿ”””ÿ���ÿ˜˜˜íâ���������������ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿMMMÿ���ÿ���ÿ���ÿ���ÿ���ÿ”””ÿ���ÿ˜˜˜íâ���������������ÿMMMÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ”””ÿ���ÿØØØíâ���������������ÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿW­ÿÿW­ÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ—íÿÿíÿÿgíÿÿÇíÿÿ‡íÿÿûíÿÿ»íÿÿ;íÿ���ÿdddíPPPâ���������������ÿÿ×íÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿ~ô�ÿ���ÿLLLípppb���������������ÿÿ×íÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿ~X�ÿ���ÿ´´´mÐÐÐb���������������ÿÿ×íÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿ~ �ÿ���ÿ¤¤¤-PPP¢���������������ÿÿ×íÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿb¼ÿÿ‚¼ÿÿ¼¼ÿÿ¼¼ÿÿ¼‚ÿÿ¼bÿ~�ÿ���ÿ$$$Í"���������������ÿÿûíÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿb¼ÿÿ‚¼ÿÿ¼¼ÿÿ¼¼ÿÿ¼‚ÿÿ¼bÿÿ¼Rÿÿ¼òÿÿ¼Êÿÿ¼ÿÿ¼:ÿÿ¼†ÿ~�èÿ���ÿ$$$Í"���������������ÿÿ«íÿ~L�ÿ~ô�ÿ~”�ÿ~d�ÿ~Ä�ÿ~�ÿ~¸�ÿ~X�ÿ~è�ÿ~(�ÿ~ˆ�ÿ~p�ÿ~Ð�ÿ~ �ÿ~@�ÿ~��ÿ~��ÿ~�@ÿ~� ÿ~�ÿ~�Ðÿ~�pÿ~�ˆÿ~�(ÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ���ÿ$$$Í000"���������������ÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ—íÿÿíÿÿgíÿÿÇíÿÿ‡íÿÿûíÿÿ»íÿÿ;íÿ���ÿ444Í000"���������������ÿÿ×íÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿ~ô�ÿ���ÿ,,,Í000"���������������ÿÿ×íÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿ~X�ÿ���ÿ´´´Í000"���������������ÿÿ×íÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿ~ �ÿ���ÿ¤¤¤Í000"���������������ÿÿ×íÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿb¼ÿÿ‚¼ÿÿ¼¼ÿÿ¼¼ÿÿ¼‚ÿÿ¼bÿ~�ÿ���ÿ$$$Í"���������������ÿÿûíÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿb¼ÿÿ‚¼ÿÿ¼¼ÿÿ¼¼ÿÿ¼‚ÿÿ¼bÿÿ¼Rÿÿ¼òÿÿ¼Êÿÿ¼ÿÿ¼:ÿÿ¼†ÿ~�èÿ���ÿ$$$Í"���������������ÿÿ«íÿ~L�ÿ~ô�ÿ~”�ÿ~d�ÿ~Ä�ÿ~�ÿ~¸�ÿ~X�ÿ~è�ÿ~(�ÿ~ˆ�ÿ~p�ÿ~Ð�ÿ~ �ÿ~@�ÿ~��ÿ~��ÿ~�@ÿ~� ÿ~�ÿ~�Ðÿ~�pÿ~�ˆÿ~�(ÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ���ÿ$$$Í000"���������������ÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ—íÿÿíÿÿgíÿÿÇíÿÿ‡íÿÿûíÿÿ»íÿÿ;íÿ���ÿ444Í000"���������������ÿÿ×íÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿ~ô�ÿ���ÿ,,,Í000"���������������ÿÿ×íÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿ~X�ÿ���ÿ´´´Í000"���������������ÿÿ×íÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿ~ �ÿ���ÿ¤¤¤Í000"���������������ÿÿ×íÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿb¼ÿÿ‚¼ÿÿ¼¼ÿÿ¼¼ÿÿ¼‚ÿÿ¼bÿ~�ÿ���ÿ$$$Í"���������������ÿÿûíÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿb¼ÿÿ‚¼ÿÿ¼¼ÿÿ¼¼ÿÿ¼‚ÿÿ¼bÿÿ¼Rÿÿ¼òÿÿ¼Êÿÿ¼ÿÿ¼:ÿÿ¼†ÿ~�èÿ���ÿ$$$Í"���������������ÿÿ«íÿ~L�ÿ~ô�ÿ~”�ÿ~d�ÿ~Ä�ÿ~�ÿ~¸�ÿ~X�ÿ~è�ÿ~(�ÿ~ˆ�ÿ~p�ÿ~Ð�ÿ~ �ÿ~@�ÿ~��ÿ~��ÿ~�@ÿ~� ÿ~�ÿ~�Ðÿ~�pÿ~�ˆÿ~�(ÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ���ÿ$$$Í000"���������������ÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ×íÿÿ—íÿÿíÿÿgíÿÿÇíÿÿ‡íÿÿûíÿÿ»íÿÿ;íÿ���ÿ444Í000"���������������ÿÿ×íÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿ~ô�ÿ���ÿ,,,Í000"���������������ÿÿ×íÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿ~X�ÿ���ÿ´´´Í000"���������������ÿÿ×íÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿS¼ÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿ~ �ÿ���ÿ¤¤¤Í000"���������������ÿÿ×íÿÿ£¼ÿÿƒ¼ÿÿ=¼ÿÿͼÿÿõ¼ÿÿU¼ÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿb¼ÿÿ‚¼ÿÿ¼¼ÿÿ¼¼ÿÿ¼‚ÿÿ¼bÿ~�ÿ���ÿ$$$Í"���������������ÿÿûíÿÿ¥¼ÿÿ…¼ÿÿ9¼ÿÿ¼ÿÿɼÿÿñ¼ÿÿQ¼ÿÿa¼ÿÿ>¼ÿÿ¼ÿÿμÿÿö¼ÿÿV¼ÿÿf¼ÿÿ†¼ÿÿ:¼ÿÿ¼ÿÿʼÿÿò¼ÿÿb¼ÿÿ‚¼ÿÿ¼¼ÿÿ¼¼ÿÿ¼‚ÿÿ¼bÿÿ¼Rÿÿ¼òÿÿ¼Êÿÿ¼ÿÿ¼:ÿÿ¼†ÿ~�èÿ���ÿÄÄÄÍ"���������������ÿÿ«íÿ~L�ÿ~ô�ÿ~”�ÿ~d�ÿ~Ä�ÿ~�ÿ~¸�ÿ~X�ÿ~è�ÿ~(�ÿ~ˆ�ÿ~p�ÿ~Ð�ÿ~ �ÿ~@�ÿ~��ÿ~��ÿ~�@ÿ~� ÿ~�ÿ~�Ðÿ~�pÿ~�ˆÿ~�(ÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ~�èÿ���ÿDDDM"���������������ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿ���ÿxxxU‚��������������������ÄÄÄäää•$$$-øøøÍ888Í888͸¸¸ÍxxxÍ„„„ÍDDDÍÄÄÄÍÄÄÄÍ$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$Í$$$ÍÄÄÄMDDDMxxx•ÈÈȾ   ô�������������������� 4¢"   "   """"""""""""""""""""""""""   ô���H��������������������������������������������������������������������������������������������������������������������������������������������������������������������������(�������(�������æ���������������� ������� �<���î������*���������������������������3��������������@������H���������(�������R���������������/home/id/development/WindowMaker/WPrefs.app/tiff/msty1.tiff�Created with The GIMP����H������H���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/timer5s.tiff�����������������������������������������������������0000644�0001750�0001750�00000001134�12214432632�016137� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��€� P8$ „BaP¸d6‡¿àq(P‹D#Q¸äö}=Æ#òì–MŒC$r)f)“Ä%q9¤gšÅç/ù¼Y$˜Ææ¨«þG£D┚%6‡. Æ£Š¥V§E¬EésºJ­_°R«4Ë%nqg®Í¥²»¶©b­Xéw8¬®{i·^j· -ÊýN˜Ý¥·¬%^ㇾâ)x*— ¦b¯øœ¤æ;Çß.™,å“-§Ò³l¦oCh¨W´uüÖOM¯ÔIõvýv×;¦ÏÃñ™ nßm”Ý×o[Ý.ÿa€®îéN?}àÚ`ÚNm›ŸÎ¡ô¥öÍÿ2Ç\íF§½MFãQwðÐ|~ w£ÓïøZ` ������������������������������������ ������� ���� �� ����'����������������������������U��������������@������H�������(�������1���� ��PR���������������timer5s.tif� Imported from XPM image: timer5s.xpm��H������H������ImageMagick�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/clip.tiff��������������������������������������������������������0000644�0001750�0001750�00000022430�12214432632�015500� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�$������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ��������������������������������������������������������������������������������������������������������333ÿMMMÿMMMÿõõõÿµµµÿÕÕÕÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿMMMÿõõõÿµµµÿÕÕÕÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿaaaÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿõõõÿµµµÿÕÕÕÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿaaaÿ!!!ÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿµµµÿÕÕÕÿÿ±±±ÿ)))ÿÉÉÉÿ‰‰‰ÿ ÿñññÿ±±±ÿ111ÿQQQÿ‘‘‘ÿÿaaaÿ!!!ÿÁÁÁÿVVVÿ!!!ÿÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿÕÕÕÿÿeeeÿ;;;ÿ÷÷÷ÿÛÛÛÿÿ«««ÿ+++ÿ‹‹‹ÿsssÿ³³³ÿ“““ÿãããÿ£££ÿKKKÿëëëÿZZZÿÿþþþÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿÿeeeÿ%%%ÿÛÛÛÿ•ÿ¢ÂêÿüJÿ<Ü2ÿ ô<ÿ„äÿøäÿ”Ìÿäd ÿÄDÔÿxxdÿYY¹ÿ«««ÿÿþþþÿ¾¾¾ÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿeeeÿ%%%ÿ………ÿÿeeåÿÒ’†ÿb"Zÿìÿààÿ���ÿÿáá‘ÿÄD´ÿ„Ôÿ8Ø$ÿ™ÙÿËËËÿêêêÿ¾¾¾ÿÞÞÞÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ%%%ÿ………ÿùùùÿëëëÿ¥¥eÿâb:ÿB‚jÿ¤$ ÿ€€€ÿlllÿÿ‡‡‡ÿ´4¬ÿ¸¸dÿÿéi™ÿ‹‹‹ÿªªªÿÞÞÞÿÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ………ÿùùùÿ¹¹¹ÿkkkÿ%%¥ÿ"Bÿü¼ŠÿT”lÿÿ«««ÿ???ÿCCCÿÿXXDÿ¨(Øÿ©)éÿóóóÿ***ÿÿnnnÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿùùùÿ¹¹¹ÿÙÙÙÿ+++ÿEEEÿ‚üÊÿÜ\²ÿ$Äôÿììœÿ--mÿååÿää”ÿøÿèh¸ÿˆˆèÿII)ÿ333ÿÊÊÊÿnnnÿ...ÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ¹¹¹ÿÙÙÙÿÿKKKÿ…ÿ¼<òÿ*ÊFÿ òºÿf¦ÿ:Ú&ÿJŠZÿ::Fÿâb²ÿ¼¼BÿèèØÿ‰‰IÿSSSÿŠŠŠÿ...ÿŽŽŽÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿÙÙÙÿÿiiiÿ‹‹‹ÿyyùÿ\ÒÿîAÿ¡¡1ÿæfÿ.ÎÞÿ¦&Öÿ>>ÿöÎÿÆFfÿ¸¸ÿññ ÿÿ ÿŽŽŽÿöööÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿÿiiiÿ)))ÿóóóÿíííÿ®.ÿ®.þÿNŽ^ÿvvnÿ¶6ÎÿÖÖŽÿ&&–ÿFFfÿÚÚzÿjjÿ555ÿcccÿòòòÿöööÿ¶¶¶ÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿiiiÿ)))ÿ‰‰‰ÿ“““ÿ;;;ÿ[[[ÿëëëÿ+++ÿKKKÿóóóÿ333ÿ“““ÿcccÿ###ÿCCCÿýýýÿ½½½ÿ²²²ÿ¶¶¶ÿÖÖÖÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ)))ÿ‰‰‰ÿñññÿÿÖÖÖÿÍÍÍÿ###ÿ###ÿ###ÿ###ÿ###ÿ###ÿ###ÿ###ÿåååÿ‚‚‚ÿ¢¢¢ÿZZZÿÖÖÖÿÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿ¡¡¡ÿºººÿŠŠŠÿÊÊÊÿÊÊÊÿÊÊÊÿÊÊÊÿÊÊÊÿÊÊÊÿ ÿ’’’ÿ&&&ÿ666ÿÖÖÖÿÿfffÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿñññÿ±±±ÿÑÑÑÿÿaaaÿnnnÿ™™™ÿYYYÿYYYÿYYYÿYYYÿYYYÿYYYÿ™™™ÿJJJÿ666ÿÖÖÖÿÿfffÿ&&&ÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ±±±ÿÑÑÑÿÿaaaÿ!!!ÿ^^^ÿÊÊÊÿrrrÿ²²²ÿ222ÿÒÒÒÿRRRÿ’’’ÿÿêêêÿÖÖÖÿÿfffÿ&&&ÿ†††ÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿÑÑÑÿÿaaaÿ!!!ÿÿþþþÿ¾¾¾ÿÞÞÞÿÿnnnÿ...ÿŽŽŽÿöööÿ¶¶¶ÿÖÖÖÿÿfffÿ&&&ÿ†††ÿúúúÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿÿaaaÿ!!!ÿÿþþþÿ¾¾¾ÿÞÞÞÿÿnnnÿ...ÿŽŽŽÿöööÿ¶¶¶ÿÖÖÖÿÿfffÿ&&&ÿ†††ÿúúúÿºººÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿaaaÿ!!!ÿÿþþþÿ¾¾¾ÿÞÞÞÿÿnnnÿ...ÿŽŽŽÿöööÿ¶¶¶ÿÖÖÖÿÿfffÿ&&&ÿ†††ÿúúúÿºººÿÚÚÚÿ\\\ÿ��������������������������������������������������������������������������������������������������������333ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ����������������������������������������������������333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ\\\ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ333ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿ\\\ÿ333ÿMMMÿMMMÿõõõÿµµµÿÕÕÕÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÓÓÓÿÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿ\\\ÿ333ÿMMMÿMMMÿõõõÿµµµÿÕÕÕÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿaaaÿ\\\ÿ333ÿMMMÿõõõÿ���ÿÕÕÕÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ‹‹‹ÿnnnÿñññÿ±±±ÿÑÑÑÿÿaaaÿ\\\ÿ333ÿMMMÿõõõÿµµµÿÕÕÕÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿaaaÿ!!!ÿ\\\ÿ333ÿõõõÿµµµÿ���ÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿYYYÿÓÓÓÿÿÑÑÑÿÿaaaÿ!!!ÿ\\\ÿ333ÿõõõÿµµµÿÕÕÕÿiiiÿÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿÙÙÙÿÿiiiÿ)))ÿ‰‰‰ÿñññÿ±±±ÿÑÑÑÿÿaaaÿ!!!ÿÿ\\\ÿ333ÿµµµÿÕÕÕÿ���ÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ)))ÿ±±±ÿÿnnnÿ¥¥%ÿöööÿaaaÿ!!!ÿÿ\\\ÿ333ÿµµµÿÕÕÕÿÿjjjÿZZºÿʪÚÿ&&&ÿ&&&ÿ¦¦¦ÿ¦¦¦ÿfffÿ¶¶¶ÿÑÑÑÿ^^ÿI)eÿS3gÿSÓgÿ5uãÿ¹ùÍÿ‘Q™ÿ^^áÿ..®ÿÿþþþÿ\\\ÿ333ÿÕÕÕÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿqqqÿaÁÑÿ)±™ÿQA‘ÿAÞÿ‘!áÿ9Éiÿÿÿþþþÿ\\\ÿ333ÿÕÕÕÿÿeeeÿÿAaqÿ¶.!ÿ………ÿÅÅÅÿ¥¥¥ÿåååÿ•••ÿÿmmëÿ³ó×ÿ‹K7ÿK+·ÿ«kwÿKË7ÿݽ;ÿ©©ÿÍÿ::Fÿþþþÿ¾¾¾ÿ\\\ÿ333ÿÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ¡¡¡ÿ¡Ñÿ1 ÿ¡Áaÿ¶ÖÖÿÆÆÆÿfffÿ޶Žÿ»»»ÿÿ¾¾¾ÿ\\\ÿ333ÿÿeeeÿ%%%ÿ ªºÿÆ.iÿjvùÿNÁ¥ÿÎ!åÿ.¡ÿ®a•ÿnáUÿî‘Uÿ‰q½ÿ)I½ÿU+ÿ%%‹ÿùsÿécÿféÿžn•ÿ¡!mÿ::Fÿ¾¾¾ÿÞÞÞÿ\\\ÿ333ÿeeeÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿiiiÿ>>¾ÿÑÁIÿÁÞÿ¶Vöÿ††ÿ>îžÿ–fæÿÖVVÿÖ–¶ÿ ÿ½½½ÿFFFÿ\\\ÿ333ÿeeeÿ%%%ÿ………ÿFFFÿ©Y¥ÿžÁÿ½½½ÿÿCCCÿ£££ÿãããÿSSSÿõõëÿ kÿ)ɽÿù“ÿE…ÿáámÿö¶…ÿþ>µÿ‘=ÿZÚÿÞÞÞÿÿ\\\ÿ333ÿ%%%ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿÉÉÉÿÞž>ÿIQéÿÿÿÿÿÿÿÿÿÿ:::ÿæfæÿf&¦ÿf¦–ÿææÿ¾¾¾ÿÉÉÉÿÝÝÝÿÿ333ÿ%%%ÿ………ÿùùùÿ&&&ÿ™y•ÿ>aÙÿ•••ÿ~~~ÿNNNÿ¡¡¡ÿ>>>ÿqqqÿuµ«ÿy9Ãÿøøÿú¾ÿEãÿÁAõÿövÿ¾õÿQQ½ÿšZúÿÿnnnÿ\\\ÿ333ÿ………ÿùùùÿ¹¹¹ÿÙÙÙÿÿqqqÿ!aÿÉÑiÿîNîÿÿÿÿÿ���ÿÿÿÿÿ^^^ÿNöNÿ––ÿ¦Æÿ†††ÿÞÞÞÿÿÿÂÂÂÿ333ÿ………ÿùùùÿ¹¹¹ÿ¦¦¦ÿÙÕÿ~¹ÿ###ÿ ÿ‰‰‰ÿÙÙÙÿÕÕÕÿåååÿËÿ‹ÿ¶6ÿþ~ùÿµÕ+ÿIIÃÿvÿ~>õÿ‘=ÿzÿnnnÿ...ÿ\\\ÿ333ÿùùùÿ¹¹¹ÿÙÙÙÿÿaaaÿɱ©ÿIQ)ÿ¶V¶ÿRRRÿÿÿÿÿ���ÿ���ÿÿÿÿÿnŽ^ÿNöÿ***ÿºººÿÿnnnÿ...ÿ\\\ÿ333ÿùùùÿ¹¹¹ÿÙÙÙÿ¦¦¦ÿ9E5ÿþ‘yÿÿ‘‘‘ÿQQQÿQQQÿÿYYYÿEÿáõÿé©ÿù3ÿE…³ÿécÿÎÅÿÁÍÿQ‘½ÿjj:ÿ...ÿŽŽŽÿ\\\ÿ333ÿ¹¹¹ÿÙÙÙÿÿ~¾~ÿ™EÿqñÿF†Fÿ’’’ÿÚÚÚÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿrrrÿŠŠŠÿfffÿnnnÿ...ÿŽŽŽÿ\\\ÿ333ÿ¹¹¹ÿÙÙÙÿÿfffÿyÅuÿÑÿÃÃÃÿIIIÿ¶¶6ÿ‘¡nÿ&Úÿ޶ÿÎZªÿQ^"ÿ^6ÿ¶Öÿ¦ZZÿAÕÿ®ÎåÿaÿÑÑÿªªÚÿŽŽŽÿöööÿ\\\ÿ333ÿÙÙÙÿÿ¾Þ¾ÿ%9Åÿ!!ÿÿ222ÿ¦¦¦ÿÞÞÞÿÿÿÿÿ���ÿ���ÿ���ÿ���ÿÿÿÿÿ¦¦¦ÿŽŽŽÿ...ÿŽŽŽÿöööÿ\\\ÿ333ÿÙÙÙÿÿiiiÿfffÿù¥õÿîAiÿÁAþÿÉ1úÿ‹S‰ÿWgÍÿ'ÿ'óÿÕIMÿÑÿù^¡ÿ‰–ÿá>.ÿVæ‘ÿövùÿ~ ÿ½ÿÊÊšÿöööÿ¶¶¶ÿ\\\ÿ333ÿÿiiiÿMeÕÿ^nÿÊJJÿJJJÿ¶¶¶ÿ~~~ÿîÿÿÿÿÿ���ÿ���ÿ���ÿÿÿÿÿ–––ÿNNNÿÎÎÎÿŽŽŽÿöööÿ¶¶¶ÿ\\\ÿ333ÿÿiiiÿ)))ÿæææÿÑÑÑÿ‚‚‚ÿZªBÿ"ÿžöªÿžvJÿ*r¼ÿiqÖÿîžÅÿ1±½ÿqqÿNvéÿ4Tlÿ||*ÿ¶Ö9ÿžîÿ~ ÿŠŠêÿ¶¶¶ÿÖÖÖÿ\\\ÿ333ÿiiiÿ)))ÿÁÞ¾ÿ†úÿªªªÿÎÎÎÿÿÞžÞÿ™I9ÿÿÿÿÿÿÿÿÿÿÿÿÿ���ÿÿÿÿÿÎÎÎÿ...ÿŽŽŽÿöööÿ¶¶¶ÿÖÖÖÿ\\\ÿ333ÿiiiÿ)))ÿ‰‰‰ÿÿù%uÿ2ªfÿ6ÖÆÿ¦ÿ³ƒÿ˺ÿ=ÿýíqÿôtÂÿF†¡ÿ!Á-ÿª*nÿD„TÿÒÿæ¦ÉÿŽöEÿzºaÿêêšÿÖÖÖÿÿ\\\ÿÂÂÂÿÿ‰‰‰ÿ!!!ÿÁ^ÿæffÿÿQ¡Qÿ©ñéÿ––ÿ²²²ÿòòòÿÿÿÿÿ���ÿ���ÿÿÿÿÿŽŽŽÿöööÿ¶¶¶ÿÖÖÖÿÿ\\\ÿ333ÿ)))ÿ‰‰‰ÿñññÿ–––ÿeÕmÿÑÿ•••ÿ†††ÿ6:ÿÆZÌÿ:Š,ÿzZ²ÿ4´<ÿºÚ~ÿ!AÍÿÂBZÿhhèÿ¬¬bÿF†1ÿR’ÿÌ,Ìÿfffÿÿfffÿ\\\ÿóóóÿÃÃÃÿFFFÿÑÑÑÿ~Þ>ÿ>®®ÿ¹éùÿ!Qÿzzzÿ’’’ÿjjjÿ666ÿÎÎÎÿÿÿÿÿÿÿÿÿŽŽŽÿöööÿ¶¶¶ÿÖÖÖÿÿfffÿ\\\ÿ333ÿ‰‰‰ÿñññÿ±±±ÿ–––ÿå5íÿIåÿ ÿ ÿ>>>ÿÿ®®®ÿvvvÿÞž5ÿþ>uÿÁÿü|ªÿˆˆÿœÒÿœœ²ÿìlÿfffÿÿfffÿ&&&ÿ\\\ÿ333ÿEEEÿCCCÿÿÁÁÁÿÞ>ÿÞÿŠŠŠÿRRRÿºººÿÿ®®®ÿnnnÿ...ÿŽŽŽÿöööÿ¶¶¶ÿÖÖÖÿÿfffÿ&&&ÿ\\\ÿ333ÿñññÿ±±±ÿÑÑÑÿŽŽŽÿõ­ÿ‘Éÿãããÿ¹¹¹ÿÉÉÉÿÕÕÕÿ¥¥¥ÿÅÅÅÿ ÿâbFÿÆFÿ¬,âÿXØÿ ŒlÿÂ"Âÿÿÿfffÿ&&&ÿ†††ÿ\\\ÿ333ÿ±±±ÿYYYÿ»»»ÿ†††ÿ¾¾¾ÿVVVÿÿfffÿÚÚÚÿÿ–––ÿ...ÿ&&&ÿöööÿ¶¶¶ÿÖÖÖÿÿfffÿ&&&ÿ†††ÿ\\\ÿ333ÿ±±±ÿÑÑÑÿÿ}}}ÿ«['ÿÕMÿ'''ÿgggÿÿ———ÿ×××ÿ···ÿzzzÿ‚‚BÿLLìÿ\œ¼ÿFFFÿÖÖÖÿÖÖÖÿÿfffÿ&&&ÿ†††ÿúúúÿ\\\ÿ333ÿÑÑÑÿÿÙÙÙÿýýýÿÿþþþÿ¾¾¾ÿÞÞÞÿ°°°ÿäääÿÌÌÌÿ˜˜˜ÿRRRÿÿÊÊÊÿÿfffÿ&&&ÿ†††ÿúúúÿ\\\ÿ333ÿÑÑÑÿÿaaaÿ!!!ÿÿþþþÿ¾¾¾ÿÞÞÞÿÿnnnÿ...ÿŽŽŽÿnnnÿ...ÿŽŽŽÿöööÿ¶¶¶ÿÖÖÖÿÿfffÿ&&&ÿ†††ÿúúúÿºººÿ\\\ÿ333ÿÿaaaÿ!!!ÿ‰‰‰ÿ»»»ÿÿÞÞÞÿÿ‚‚‚ÿÿ|||ÿ¼¼¼ÿÿÜÜÜÿŠŠŠÿfffÿ&&&ÿ†††ÿúúúÿºººÿ\\\ÿ333ÿÿaaaÿ!!!ÿÿþþþÿ¾¾¾ÿÞÞÞÿÿnnnÿ...ÿŽŽŽÿöööÿ...ÿŽŽŽÿöööÿ¶¶¶ÿÖÖÖÿÿfffÿ&&&ÿ†††ÿúúúÿºººÿÚÚÚÿ\\\ÿ333ÿaaaÿ!!!ÿÿþþþÿqqqÿÿ\\\ÿnnnÿ...ÿŽŽŽÿöööÿ¶¶¶ÿÖÖÖÿÿfffÿ&&&ÿ†††ÿúúúÿºººÿÚÚÚÿ\\\ÿ333ÿaaaÿ!!!ÿÿþþþÿ¾¾¾ÿÞÞÞÿÿnnnÿ...ÿŽŽŽÿöööÿ¶¶¶ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ333ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ333ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ\\\ÿ������0�������0�������Â$���������������� ������� �'���Ê$������ò$������%��������������������*�������%���������R���������������/usr/home/fatal/newprefs/clipdone.tiff��Created with The GIMP����ˆ��€��€������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/tedit.tiff�������������������������������������������������������0000644�0001750�0001750�00000004404�12214432632�015663� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�¸��� $h°à!B† &l¸`€û 0xä`ÑCE�Ü_ ßãE� €þSF@ôD�üE÷>HÔPÙ3&<(Xȃ`hH�ù3�Dè\ûâAœ'üûóå-P’YæêW¸ˆþÁð›(iºöþ4ûTàG€/†YÇn(§? @@@ Œ'.ˆPq‚ (Jm´Û€3ÀýC‚Ù‡9@~˜ìÞŒ*¼Yù7³ » µ{�8#�0€#{€ €L€½ûÆï r`ïás hr`ñæìËk€@‰�HÎ ’‚;æU u�·°í „þyW…À•ç�µÚñ,Æè*@l�0Q´�Þ�d¶ùa—[tù„T/eq@y Ĉ�XÊÁ#`À K�xFGéØá@€Á‡Ú>–âŠ?à œOÖøç�Ð� Dˆy8–˜àt^æsây LÉø�`Qùˆ'�hæ‡a�äY!˜ùp@  à¢k~y…¼0�`a€WDñ€O€@‘ �0†À4þ€€B>™ãŸ'þxì$"Rø�/Þùã [’€ä×^@ møg2@E¥˜/r „ÏpâLà´…(`ÆP8‰Ã.à}DòØ8û�*¶TÐä´é�Ýþ½â’?`øg›?Qç›=�Y�Ø�‡ü€€áWiÌéâAˆgø4™?öøGÀ耔j¸f[`n„Xı¦ªbA4À�A S>I¤Ç6 m$�à‡;�€üø€�¥ åŸþ€*Žò� ��XqÞ vª‰€ª™€´$À�ltùÆpÌ�iµ!J n…Á8ìhƉ? ‘aƒ_Îøo�”l @àžoà�dˆ—ºø�T�Øãω ç?õ˜èà‡6�ùä?~‚�¦�$­xXð�!Äž¨88»ð/™N Žæa]ð§ ?þÀD°jâS—¾=çœ'^�!�J9Nx™N¾Y€[~á¬À@Ž?J�äˆÿ+¸çiù‘yd߆6ÂàÉsùü’Ⱦ�”ïaÊìJap‘lÚ±ç|$˜á›y¥� ¢À?uM �€ ` ñÏ^¶�Ø'¥}ðíH(ãl�Ä�LŽüË×,��”)�ã �€ žM€O<âXxö6žñ‚g|ƒ$ …1ÎqB�À€ ”�ÔÀßà„úðv�A �DÛ@ ñc<`�È¡QpHâÑýx�ÏqG ÓðÀ'2Èp*¼Ã¶�À)Ô  �Ìà³øƒ%úa‡]|#¯P'0ˆD0�ÞH€‡a„+ü`0`°ã�5öŽð*þp%<�‚�µ7ðm p ¶�„2¾°Ì=ù((x…0D-…9L��ÂpÖMTÜËøG&€Ñˆ_8 •„ÀA�rX&~D\âû–Â?î£b*�€ dþˆÇfe‚È@Ç´�]üa�ÀŽ �ÈÒAJ�À=`�„?  åø*¾AàEøC+þaâÄ£.' D ƒ BÐð­~=á …5 �€Pñ–=sLÔÜ�b`Ô ä06 0€Œà;A Çà_�>ñETÌyçXÅþ<g1B&"8 �!Ô€ @0À8ø#ÈÙ €€B€Áí�˜Oø3Lʪ}$ ZpD¤)ðƒGUpŒ-ĵa„˜TAøÇŠ‚Vù’ÀØ"«�‰¢R‹¾´6� bp�>~!rÅ‚ ЕֱøB¥dC)™çðEð��<`ƒ�€„®%M"‚RFþ…Š_|ÁN�ÁÂ_1á…W cuȞȱ/ ð °¢wÈzª“¬Á ÀáìàÀ~p\".yQ•|‘„†H€Ç#xÀVÀãxÄ  Ñ†n@ãÚ0ñ I‚7ØÁ�8DRñ*KukXÕ'@ˆÚ&Ú‘!T¦Ç/�9*üšZøjótRäÄÃ/ � 0 �øõ6ÚЊBØ‚ Ô Á+°€´±Tºù(EQa r‚à ¨Ã".q‰;CàÅÂ!YÉ.Àt¶ˆ¾D$él�H&*“@�“:€oüá›w¤#€Ð*[4@ õ¨q7Aˆ Ô»„ ­±‚5¹¯¤ ²€/4Ã�ø€cMÏ圜ä¤7!¡È ¢€€FºÔEO*ÒÎ_¹ÅVȈ¼â rÕ†L‚l`ƒ® �‹oüâϰl @€A HùRÃñGÔâßh@¬‚Ú9‡ ¤ÝÐN7ó™“Ÿž9½…ʶYrÇ' ��������������������¢���������������� ������� �3���ª������Þ���������������������������K�������°������ô������ü���������(�������=�������R���������������/usr/local/GNUstep/Apps/WPrefs.app/tiff/tedit.tiff��created with The GIMP����H������H���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/opaque.tiff������������������������������������������������������0000644�0001750�0001750�00000003756�12214432632�016055� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��ž€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸ËþH�'úq4œ’GåR\Ž[)–LeÓ)„Îm$“J%ó¹”r} ­VËZ ‹DÎf´¹äÞ›LšSé2y#þ­U«Ëgõ¸=IB¤HiU*–f¨YíRZ¤¾¯i®\cö õÒ§:´Y-w«MöÇ!·Çð3Û•ÆûwÃÞqW¼]úÛ­ag×L¥+DËÝrÙº!h²ZÍf3š&gM£ÓèµR,•sŒ‘ßäa ç!·ØkçýÎG[·ðnzŠ6">kœ÷«åóeÂÀVp›ø‡#»H{; cµß‘†�€Žg/›4çàºV®§­VáêûvÉG#±à’¼ß½ï£xè$n»Xö¡ï{àå‰A`R ¿ªB¤ D$ò¿°«v¼BÐ"%4®"ˆN‰þsÄ1JZÄ¢x!ãØò=ŸáÈpŸå)DRï”=ÇKI =ÏzøÁ¯ÀµàÄ”‚l’þB’‹ŒþH „èºË˜’%*ÒÜ».|J„ p‘‰ i Êsÿ@R«Õ,Ë ‰�ËÐtñ.B ”&Ë’h ü¿jBÍ´JÖôΪl«Nn ‘òñÿ/Òô$ò3Í“"¾é…EJOô1�U”ë8=àBBR¿ì“%ˆB,XýT0es=I‹D×RÂÔd+GÀÔŠÞFÄaþBDñLVcHÖ†1)­Ä‘³DD¤S[Zm¦%[)KŠW@ª)ä¡$JG‘´qjÄCXËi–¥”u}«ÕT­:_õC¼ð¤2P1&IÕÅu…›ÒEy_„ äÌ”í…ו㔑ÎíÐ¥±¶^×Xµ[×eÄ!þ)]güÉ3 RñÏKO)ŒsV+—bR}wPc FµÕÉ ‘ãé6¥¹õd›d’¾_*$]PI.k=á’F!žâ˜¶Œèê^-?N• ¥ùâé§Ô†M§¸6E”Ò²å/½kgù¯gxŒÍè9ÿ hB0ž ^èÚ�bñé“~O·°Ù.§Éªæ1†cZžÂáaÌ‘Áú^/²pýF}žbyÞÑÔ¤9ÎÖòJsg+©nX ¼o›Ö…ïĦuËnĹŒ¹Nå~¹åÛ~lKDU¬X1Œ#þ!y^uµfÄBЪÐGß Š¹/¼·s—Ix¿?ˆL½,'Óìz Òl'ÿeÐuX}Hß#QõŒæôï -%ç¨õš»öfò%øÞÊ ^yì>£ `„p8V¨þæœâ„DÔÉ”eèµ+ÿnš2†TŸÒ䂯~Áˆ7 hcKÐ%ä Øoá²\ÉxJ2˜GŸáí|a®5‘j/Š(À)%á |°JC(!ÄY­åhØ;ǘïˆê¥UD·p[Ç8ëãüVŠáZß„RÊnÏÙê¢Ø­ ”;‚°C胤Da‰å}F·(±#|‘:ÃÜ}uÚ»Çøï“QÐUGpæC›+ŒÑù.Et¹Þ<]ŠP^DÈ # ŒˆÒ9º/çË$àç—HŽ]ˆÈó#Ô¿ kŠQ.ÇŒ‹dÈ•¶Wż—…*^^ËNZBCÚÿ›™Xš¥Xg 1œIDñ(—ÓrE9Í+# éƒs=.)”¸# ó,]Ì:Ê ™PÞnö#Ä“$]!<'…Sjm i»7Ääá˜.eEîÌ’ð½šIx9…ÓA=% ^œt.ÂÙúÜñÔjÐz$2-ƒÁî>Ì5§=ÙU¦Rþ™ÎRéGÚ…!+±2’SÚaÒàœ°ÉùCMhå4©Qéd®Ñ,¼ÿŸNö4Fªp€éÕ"§”öGI¨ÕFpË›â¶N·èR+EK(26©¢8åW$}Y¤E>¸WÎ8ãiœ¢R§•êMW«¬ŽŸËúl9{#š­ ¡$¢ÄÒkcæµr –M› pj¬œŽîíÞÉI-g¬½¡°uÈ…ZMiì…£ ¤€� P8$ „BaOød6ˆDbQ8¤V-ŒE oøTv=Gc29$–M'@£’d¶]•€&38ÜÖU6™N&“yäæ{;ŸPh9Õ/¤Ra U²ÕÿL§T)ô×øÄh1©Ôj•*ån½Z°VlUÛ ’Ç_±U«k5ªcJ¸R*Vë¥^«v¹Ý®µ‹ÝÞùzÀ_ðWì%÷ Â^pwÛŽ7ÈdrRø��������0�������0��������ˆ�������������� ������� ���� ������&��œ������Â�������������������*��������Ê������Ò������Ú�������(�������1���� ��âR���������������opaque.tif�� Imported from XPM image: opaque.xpm������õ��í���¨H������H������ImageMagick�������������������WindowMaker-0.95.5/WPrefs.app/tiff/mousesettings.tiff�����������������������������������������������0000644�0001750�0001750�00000006676�12214432632�017500� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�à ��Ð$h°à!B† &l¸ð"F b)j 4Œé3 0.�€ñãÇMœ Hâ„ÀC‚–-›¶œ9q@9â$Iš(w¼ þ -XÄá¢Å ”(^ºX¹B¥Ê(ïŸ=göÑ3ˆ,^‚úùrÕOb3¸àš4nÒ“O0aÀ H‘äu“4*R¦OÅ~•K÷ïSn`ÉaE+*žS@µ7¨×$yã^Ó!€ƒ&]†LY²�Ò2�€§æî ¬Œ_>B$.1|ËÐ*ÛGŒÞµ½ ;Nì¢3aÈdòô¼Çg¬jŒj3\:s鯵øðàúlX ‚ Ø3ï>¼Û°jõ ×Ï€ù �PÈm»Gî-ô{glqÄVtL1ÂÔ1MœÂ)Ç€(ÐÁ@€ä-4@�d@,0‰†ˆ$2@£à/*¢!ƒT2€ˆ|pÜ�<]�Ñ×£ã¶ÃÏx ÃlÆ8° õ4Íi€H/x‡~xÀNU‘¨øS$4Þå1=AÊ02@¢�”¯Ì©¥†Z©§\°Á…ZhÜ/.â1RÿøóJûD cÌœt")Ç€Hëù@$@.ÑGA3/•/€Ëà»,QYb·<˜+ˆ4²-öŒ³ÊI$žDöØfêê¡‚*Ë@Ò7üʳNŰÆkÑ1Çóƒt\þøáfØa†RˆËA¨%~Ziµ,¾3”M\~Ûa±=¶:€²£2�ö±ÑšI‰ tP@ È °0›U0¢O?üµ+ì° L°hÄ)£€¸á‡Bˆ ”£‘A5õ¨Úá·ÍŒ“‡ñٙУL}Ì8Sî¹ãžú©©§–úž¡€n&!€�óµ%wÿÀ[,d°¤ŠÔQX …¦o¹–j5m‰;Q†©Õ¹[S02θ³2J™#Ê(¡Œm¶Ø†J¨¡…ÚZ„˜Ëà<â3t¾ÂS,6Fèa„ nØ„có0Èt|2ÓG‰i9Γ:ÜÓ?óø¶Ûáâ¼Õ™¢ˆ|ŠNzh¡‡ (Ðyv±§.»±À ѱ «  ·&¨‡[D:Aü1žŸ0À#‰Keú¹òØíʱ#S†û×a˜Þá‘[¡ø&aêÁv½¹nC°Àúv°Æë{LQÂßA‰øÿã3€x°L ªd‚ ).Õ¦ÖuB­ã$ˆžÃ4žðˆ'  . ˜À ƒ€�!/Ù!~ÁV0'ºýÌtûÐ 0!¢´UŽ3„¯á’†N�Oà9\xåf¸ ,Šà#’¸‰4Æ"«€ HGÒ•dÛÎþ` à�£6þ†œ!¡ 5Ü¿p’'€†¤!d �™ˆˆŽ3\ã*m¥ÊT'Ò0¦Ñ¢ %@©Ä'ºªà'/‰B)JPŠg<â$  ØÀ 6à�8ÑWW ù3XÂŒè°%l˜p\ �5(ˆˆžÔƒ6@Os´I£ã2ØN·×qÒôM25è"”^¬` +èEzÅ<°ƒì>…0¬_ù ¦°€iŠ`•R…‘?$„L`Dd� ;—0Í5A¬Ucj=ÀxÇz^p›7`K›~7‰§üãÇ8EIA„,Ѓ¡…ˆ`²2¶R"[Ù!la[‡žÜ$ä sŽÌâC½„@(±Ö#‰­á ßxÂ3žœŠ!Ì–!#À)sÉJfeâ& /ÈB²� �{)8`:0€žì»!LD‡¬aW N“8 �•x€"à ÕÊ?žÀW=­jµœéÆ6Žk*=<æеÂum”Z2c*Eæ(A1JÂb€8©`q}ÈjŽäª›a‚1ÑåûÊ7‚¸f�;xÀžsh7ñˆC|)ñ¶ršX:©]$kžÇ�Sø·9¶]ä§ûLÑ� �Á/ñ&F0ƒQCaÓðb““$† ¡GP\áWxÁ+^hÄôÓš¸ãc‰@PÇjG©ÕÉ“Ró”'­kŽF ÅÖ  ÁT •„ ì5ÚI4lg, 9È�È@Ìy‚¥mÌ’át€&ÄŽJ” Ôw5ÀJí&A‡t¡Ã°Y@–¡k¤�€zãFŠÀ¦0$:Œ £ÎÆ" €à! Èæ<B%Sj|18¶NAwœFŠÖeš§’å)`<#1ö±‹}d!YÀ�0 ÐÁR–¡€Ú%�˜À`$#üt |à 0…5Ls^­‡ q³ "Nd:Nè‚wŽùè$»`z��PóJ0âƒ8|á_:0Ìá¹a„#&ÐHa8Ànzíd%€AR<à$b”Ú)D®ÀÑP\1¸Vªô®"Í@Ÿ@€KF;àÒ@Ò‘câÀA½@¶>¾òÓMTéÝ´¸%úU£•ta�ݰ-OøÇ/þ‘Bäk‹°ØvFòªíƒm‡<Š@ž´©•ËXÂ2JQŒR ¨`s«@:@�ºuvic›7 Øý‡! �• d �À°„ÓjŒ©4"GrÈEƒƒfðP©åŒNdº ‚àû8œ²xDôž€@î\%äÓàò0Ü$I�P€Msœ#â˜"YΣMð|ì¯Ð¡rVG›< _9Ää y½€\àá ?ø*Ã*µ˜‘ Ð4”äYȇïR†)çË•¹Vœà¹á]Ú5ÏSuª’5ʸdHF’q‡ÜèY�{’@‚ü?œAú‘6zÃFlŠc$>À �,˜DLp‚¨õr–Mhêr€k.»¯Ñ™ZÝ-J±Š¬–8`3XÝ¿EPù±×‡ � ¨'¯]L¡#0!iˆç¼dÂ/~ð[j<Å]æw’^„­Ô3òQ%ÒÀ01Œ&4¢ÉÚ`#˜A:ЋãøO~ ß-8@~ Ï’&@Pp\KQÎ}-ÿ‡/ m_Vsx”^ñ ßÀ3:%X„%-{@6y`�`Šp¿cõ{ÔÆiÄ}9'mÏ!sç…åTs‘¸¡Uµ€e<ƒ½`…tHtj¡z 6`6€XÑ3ú…ÿÀön’D=KÂé@f  EDÍ·@¬‡Wx׉!5‡«Ð =¥ |tF*؃ȃ|ÈS%^v`v§Ò9Tä+¾å{ ±X»Ð—ð C6�  @LCXZ•' `å”7¸U¸–N¸ Q$ <R+€6È…,È%S  v`v@TjEa�n W‹µF±0J9tc9À À!![€7w!ˆèˆç<¸P2w#F:qÁè ÈÅGN`N>ã‹(cwêðò¤¨S,7aT  ÌE8ÒÖ2w ù؈x]§,|Ô%ŽhH‚DHÂ,@P öàŠf^æ·QJŽ%9@ž¨÷'Ô·¨ØuQT25WΈ½èu‡0ÂçHhȆ,Èfi€‰˜d@Ç(Õ@úg@ïPí4½X‹ä�GQ„v{s‹Cx „S8O/IÚtF8Õ|Ȇü�öägvÆNê¥~ï&!Ž‚& 9J9b�QÑØAð`ÒVÕÑ)5…c³QNé¥MÔd x—Kȶ€ç*  Þàøòh”Ñ6 7##ã <B/ôDPMPs‡B·ÀÐ&=Õ ac#Õ‰^<J#"˜)˜h‡jZ¶¦Ì0�ÇZòÆoJ‹¥“ôðÄ,÷A4BP‚(PuPŠj±/Íð8R›ÔÃìTóˆÇG«Ò}@r(ƒry²0z g+ öpø‘ T!�ònÚ̲”Ê•øCn”“e=2j€w1áRì–NØÏ#a =Fxƒxƒ˜†ø†_ø¶@•~ ÍI€ø Š7ÃÇ>°QõsæøuÓX•£$BOø„ø| |à~àuùWsas´ˆŽXJ•9H…H+3L^²ÇÄä æÂoŒÅøt£øŸ¬JÙHï–ƒ¼‡_�p�¡F @„ ‰^6‚{¸…{â„~Tx]€ãR * Ì’Eæ&T+R‹•óR-5„C}quÀ…ˈƒVhVy ,l€/­!9<Ì~ÀÀµRGp�p ²+—r-·r/u������0�������0�������Ž ���������������� ������� �*���” ���������������������������8�������Ø ���������=��������������/home/largo/newWPicons/mousesettings.tiff�������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/whandling.tiff���������������������������������������������������0000644�0001750�0001750�00000003020�12214432632�016516� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�þ��Ðò h°à!B† &l¸ð"FŠ%jK1�Bã ’Ñ&Jœ$i²ä�Ô©+p¼)2fÊœ%k°TibÇŸ-obõêE H‘[¾âs¤“¾D¹° ….R¬|µ”©KçÎP½\Å(Uêæ+•«l£lõ“6lž±Iº<mòiÐ €ÿîa�ö C׎IÚ•é0 xËP½�èÛhÛšM‡ŒkQ°gï1“S ª=³\管gÌM:»Ùâå+¢,´ríº«ëä…Ã6�v.ÞÆaǮȋOh¿)Û'Bø: �Ä9�l.reñE6—¯žð�Ð=�·ïÞ?˜wc‰ã'ïàù-�°.\º"åÚç«Á¾ ñ$Û3ŽpGh¿± �Ò‚°8P¬Ò/÷ƒ÷Ú_Yý×IQ°� ÃqÖyÍùˆ�ô#€ŒÈE Y–På…"~ �xŠ�#à;.¼ø…ðPpÝ:‘LX§ùòÀÉ8�MQ S ;\öÙD‰hdc‚ Š`'#ÝôH<)A2,ñ¬3Õ#óLÍJùÍUˆÄãH('A`Ï�8à@7m‡ vThõµ‰I&)€­â“s'Aü.9‰’rvÒÃ,…,­œrÏ6GAó…=ÿE(BQ« 1§pS#*!™bŠR�ج€\cÈ>ŽìKó°ìì„+¯¢ Ê/­R�à„½*k¬HaÓ1\Ô–`šiÊ�`½½+¨Qï&Ë,#‹Æó*·ñ´áŠhºÙæ[Ó j¡=ëUšô èbëd³îÜêÓ;{?,¿›Î‡i¢Û ºì ñ¦á‚ }�ú­V[ìJúëGÿ¶Úiõc(?ŽN†M¬Ó¦¤û1ñàh¦¹1ÆeAÍHGð^ç×§ßI�`m©‘/µëY‡>ûÙºXqÚ¼gt޹šÜ–ìãâ�À6ñ§_ÁJý‰DXb)Ö¦¨püÁÖhluAŸ¹´—é!ñfá\§…­Y 9Å–Ã_‚Õã÷bêáw[s§WÙ}„$;à ‘Þ\¸-e®µöãY=}šÓÎf¯U;»jyAÏutÅ/‘é2�®8mï]¿O™^x~ž8}T¸�¸­à# Uân–_‰½ã›ï{d¦ÕNß§ž›z˜îŸíyµ,“·�Ä`é5£N>ëÔ!nÜGè÷OÝÓÉ÷áû÷S·sÈ ª#F0‚|ß“ßâ´×åZW^.rÓ²‚Ê‚?˜��x`ès&*Œ,Æ0ò�€ŽÀ+Xö}h0:B€9Œ´ÁlXÂ&B+“�@^x��)HÁ>øŽ¤86°f©¡�ÈthÄÈ�åQ�æ¢ €°`–êè‹6�P=�`>†�P+¦Ty ��DZ�D!*w¨Ö—¬3ëÜ—¸3.nñ ¼1 ªx>^ L|Cã˜;ܬI„ƒ™Æ¨„'8A H(‘㟈$%&)Œ°‹\”DjÐò I�!B† &l¸ð"F «^½¨ð�c†¦@käø &P§N$€@h‚K”&mºQ£Ç;núì9"&I–"Uðœ &Ò A4€8ñ •*;yà ùKWª\¥jβy+T«]§n=�eý5ò_¿i³æ������0�������0�������¸���������������� ������� �?���À���������������������������*����������������=�������R���������������/usr/local/misc/WindowMaker-cvs/WPrefs.app/tiff/whandling.tiff�����†��~��x�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/timer3.tiff������������������������������������������������������0000644�0001750�0001750�00000001174�12214432632�015756� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��4€� P8$ „BaP¸d6‡¿àq(P‹D#Q¸äö}=Æ#òì–MŒC$r)f)“Ä%q9¤gšÅç/ù¼Y$˜Ææ¨ªõt½Ñ©9\ö‡C Ç#ªM«HªS%´ÚܶwQUìUK%Z³®Hm3Êí‰`›[lvk¥bë?¶Z®V»]Â'e»`nx*Õë yÄ_g{^³Åï—¼¦{È]ñØì.'+žÃÎs¼Ö— hÏäòÕì\–ŸÓcóº¬E[.¡i0[­–£W¿ÐT*[Î&Ç#ÁÚS£¸Þ77wwÙênV Ï?­Õ±tt:Ú3¯Åïô7Üô±¼ØxtöýÇ–ˆðTùÚÿtËYìÎQ|^Ì¿Öbå6éÛúÿ@*‚€€������������������������������������� ������� ������&����&��:��������������������������U��������+������`������h�������(�������1���� ��pR���������������../tiff/timer3.tiff� Imported from XPM image: timer3.xpm�H������H������ImageMagick�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/nonopaque.tiff���������������������������������������������������0000644�0001750�0001750�00000003716�12214432632�016564� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��x€� P8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸ËþH�'úq4œ’GåR\Ž[)–LeÓ)„Îm$“J%ó¹”r} ­VËZ ‹DÎf´¹äÞ›LšSé2y#þ­U«Ëgõ¸=IB¤HiU*–f¨YíRZ¤¾¯i®\cö õÒ§:´Y-w«MöÇ!·Çð3Û•ÆûwÃÞqW¼]úÛ­ag×L¥_všf&å¢Éj—š¯å³:)¾‚ç¤ÄÁf¹(¦§]HG9 ¦3m¯ÂA¤ZÈ¿}¿àpx RI)þ½â¿Ôªe/ ÏètzYäs…‚éoŒ|—ÿs’{0˜ßíf»[³çôz:š®®·ƒØôñ8Ýߟ%)É1ø}?¿ç¿rö=¨“úà»o¬ «;ï±,Jæqžgç¼%ÂŽƒ×�¢î»�ì¾PDg9"ª)9Eš) 1!Îqœð¬\ÿ&ÈCw !°ÒGá �ä–© z‘nH1!Ÿà„ŒÀª[›Éj¬·+)¤š½ \hþ®nôcD1þBÄ!þ%9';’k9%lͺó…$¾ôì9¹#˜â9ÉÓïóÌó=Ÿæ1ŽcMLÝ7±Ã‚¤4 ·.Ä“Å28Ó4:Τc“KæñÆoA¦\!D­ç¹ö{ÊÐø=�E#-óÃ=OËÅ?ÎÔåh-9&ñ·RTn:φuM„”EƵ|6ßÖ }•W’ãR³ Ç2Ö•óŒV¹,ã=fÁ–4ìä8Ã[¾<u-NçÅqm0¸ZHŒå qL‘!H’0 ŠQö ‘›Á`R ¤-ŠF„ þb‡ø×ƒá‰Z¤1Ónà©bƯøûþë?ˆýAnG8¿LÖ˜Þ…Œxh„ æ$ cÞ}ž¤"ÑY$ejCâxª_’ÉRŒb­ßnyjY(ƒÝá"Èõæ7:æXT‹ŽçZH‹hÖËŒÇ+@µŒ‰)±él|™§U©ö£jZgùG‰%%^lj ¯¼s°ç›7´gü^.‘íçü† kú.΀›‚i¦J~NËÍ D8®Åñ§øs¯g8—#Çñ›?SÄòX µõÆkÈiKäÜ0Ôs³QT•×T0oœþY)åÞ÷6 åù¾O«æzžÏ­å“žX„"ˆSëÄ!{^Ç·ó¨>X´*³Ìª‰÷.ª34®x ï"ȇOÊå½v*ìLcÑÖ¤W îÝ‹¹ql9ú”Ó&ü ƒï(ÀÅåšàb’êxÍYx§EÃÐ:zAì>¯Ô¸œ›M!4ã a†¢KŸ"åÒ <˜jI!¼4ypÞ‘ø\¢÷‚ 1=$; "B´I0p½%É ¢„)<gÙoCžœJ@-çóBEã‘ÉDF$œhDgGü^‰°‚)FQþß×ê$ãÌwž¨d¾c¹¾ã­ŠÑT+[Њo­í¾Á¸ÅªêQ:DHØ¢Öš¤vŠè8/£‚ª•bèã¾:Çé�®"þH'1”Ë"d'‘Ѷ67ñNÊÐ2RU*Å¥è‹d¸’ @È9xÃhk”(‘{ȸÑå\nN£xäŠSð~<²0­ÖZ-S²3†š‚x”K¹}7ãKW•3&6LÈZrDd,`‰x9¬„¾·–¤BÑÞ<ÅQ6&ÔÜ—³î#FÁî¸2ìbÉä.™éÚŸ#TÞŸt*¤´¦«yU^|OÈÙãLê<Š`L(†˜¨U!—”ŠpIç$çªÐ¢g>ƳŒ'ÓÆ£´.‘ÓYÁH[àÿ‰¬R¢eB°ã|t¡ÓÒ”šVoääu‰ˆ9Iæô·©%4¦òñ©”Iâó#â.¡ê¾ˆ£zŽsÞ%R¬TíJ+RjúS¨¥v[V“ƒUgÜÛ%ŠÖé%WcÄԮž9ÉØþ¨Fú¤“EU׸­^+Y]°Ö.ÅÕ°�@@€� P8$ „BaOød6ˆDbQ8¤V-ŒE oøTv=Gc29$–M'@£’d¶]•€&38ÜÖU6™N&“yäæ{;ŸPh9Õ/¤Ra U²ÕÿL§T)ô×øÄh1©Ôj•*ån½Z°VlUÛ ’Ç_±U«k5ªcJ¸R*Vë¥^«v¹Ý®µ‹ÝÞùzÀ_ðWì%÷ Â^pwÛŽ7ÈdrRø��������0�������0��������b�������������� ������� ������j����)��x������¢�������������������*��������ª������²������º�������(�������1���� ��ÂR���������������nonopaque.tif� Imported from XPM image: nonopaque.xpm�������Ï��Ç���¨H������H������ImageMagick���������������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/windowfocus.tiff�������������������������������������������������0000644�0001750�0001750�00000003724�12214432632�017125� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�À��Ðò h°à!B† &l¸ð"FŠ%jK1�Bã ’Ñ&Jœ$i²ä�Ô©+p¼)2fÊœ%k°TibÇŸ-o¾üBæH'}Áâ%J&)œ«X©ò*J]$w†pL™ˆ¢¿.�‚ *e©«¿~ÃȲe(P&]žð5kSìF}7�{@ß§Qæž{÷¥0€†á�†P6¢eëüm‹¶¯Q @gŠ�ÔÎ@c.�U zôB»¤_2€+�İ4}ˆQc4„צJÙÉa;Nëc/��tS¿h`ŸuËR X;rèðMÎØ2a[»êa±aƒxònRS¦ÜoÍy=B¼ ,^ððÀ €�|�èk ?BøûÆÿ?ýÜoþD者à'(�‚ð�@CØ 04�Øe UUN8&˜ 8Œ0ðOÈ„ˆ" Á£ P°h‹>:AcˆÒÿ¨cŠ<æHc;ŽXü‡9!�à†ƒplwC˜"b'¹xbL ÅR‰&Þ”cM-®4âK=¶´ÓO5ÎT`Ï�8à@7 O…O&bvS‰?àr�øÜEÀ8/�ˆË×=Ép*�Š À^0�`¹(�À+�ÎJ��dpÁDÕDÈ.9v2JIp+�€ûŠ…ñ5ll«�€äªó—´ lC ½b�®�~ë(¦8XaE«4×LJJè(Š˜½Ó¼p+ª¤2�xo� [�›Ö ¥­j%i�Èê°0ûØï€Z¶\ë÷¤Á2#̾‰tiºY„n«¾ ­¿v$î«)€§Á�{(�8¶óÚ éFøÒö¬äsÊ©Xð¼öVh°&��¹‰�ˆÉ©@:�h›±øƒâ� æ��˜¹€ .ô» ׎¤{ 3‡43&h)�¼Äb\¼³Ò'¾}ñMp?�ñË¡sJk­@Ö‰; µ›5‚ ÐB mÐ0ù2²í±ìr÷€l¯ž–(oÌ&3Þ¿—=öí9Ã2„å¨yç_0É ³ñXsÚ 2�v?b½#ÎI7ƒõÎ>ïöó?SØ3Ïò¸lÂ_4’C£8íŒ1.9ì‚/:÷à³î¸û¢Ë¯Ìj§îv¹6Ù[ò§`ë9�Bv°!r�߸íÞ /¼ï½wÞ~Wˆ²xH¸QnøºÅoŠï`ó§œs}ƒÇ‹Ïÿ0ãþùëROzÛà'ô\­{»z\9î!(( �¬^õº7ÝàÛ ûSyþõ¿ÃÝ)î�$`5&œˆ]'KONž¹ý, ¹Þòþ®÷ƒÍYF£$œf7§»Â>˜Ï¶†%;‹yKyeàƒzyðÆ A «ÿ̨ÀÈ6�€½0‡×z²��Ð;>n”‹i�`-Ž„ƒÞöÊ8êÀ$„zÀ �d&��@Kp$c îÇ4„±pMHB È)öqÄšT€´¸Æ#8qw¼†äÇ?&�VB£œHp&2æ>·³Q ƒQŒ¢��ØHsÜ–|0��«é"DÒ€Œ`$,*ÊK1@•1�D¹†4tÊäàTÄ,D©%4F0‚|�`!›�Àmv���[SpXÀ"��ל§3Ýékô¸“Üú YQuhF­@ Ô��a~�€„ü§58æW*³äKBy­�ÀpaRˆLÂஈ�@YQâ§Ì/�y Ž¡€ �È–��˜/qPüžÉhÊÌíÅ–J šè€“(Í%V ˜Ò $› ’üh‰l� ¢‚�€PE�€üЇ9l™wL„Rí‘,“¥LeÉ`ÙŠQ,‡)g�€vu c¸’—6™¥1_e Q2W +µªj1k̲¤äˆ©s‘‹Êñ:Ø£´¬jY륬œU)U=Â+Qp×´ô!&f0ƒrV³jµkrÊ‘gþƒ§™¥«\D(ú4¦M©mƒÔÔÚË©´•x£ª@æ¬f=›9Í}ör`E>ä8§¢` h­*l>t�@`%ýr”­v³TóÖ��j: �t�‚ìëCþBº° (<¡‹ˆ;�@¯‡�@KOLIøîõ G=A Ö;�@"°ìZÏúÚ7‚R˜€Ðò I�!B† &l¸ð"FŠ%j´è1"¨S'@ 4A‚ÅLœ$i²ä)Rˆ7~Âà©2fÊœ%kÈ4ñÍ-o¾üBåH—»`±â%’åðWÆÉò*F �������0�������0�������z���������������� ������� �A���‚������Ä��������������������*�������Ì���������=�������R���������������/usr/local/misc/WindowMaker-cvs/WPrefs.app/tiff/windowfocus.tiff�����`��X��_�����������������������������������������������WindowMaker-0.95.5/WPrefs.app/tiff/timer3s.tiff�����������������������������������������������������0000644�0001750�0001750�00000001130�12214432632�016131� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MM�*��€� P8$ „BaP¸d6‡¿àq(P‹D#Q¸äö}=Æ#òì–MŒC$r)f)“Ä%q9¤gšÅç/ù¼Y$˜Ææ¨«þG£D┚%6‡. Æ£Š¥V§E¬EésºJ­_°R«4Ë%.·8®Á%r»¶©b­XìÖ;\¶ÓJ·^i -ÊýN˜Ýd7¬%^ㇾâ)x*…{ ¾\ñWû$æ;Ìdr™,M/\¢æ)™=&VÑ€ÓåôZ,Ö—9g¦êµ{=nw9–™Km›=^×9Œ®ï8Z=¶Ÿ%Æp÷—ÎÞ}ʼk8Üèlò[Ðá4H|ö§VèÛøÓÞå½ÛŸñü¾¿dš�������������������������������������� ������� ���� ������'����������������������������U�������� ������<������D�������(�������1���� ��LR���������������timer3s.tif� Imported from XPM image: timer3s.xpm��H������H������ImageMagick�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/WindowHandling.c������������������������������������������������������0000644�0001750�0001750�00000035504�12214432632�016035� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* WindowHandling.c- options for handling windows * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMFrame *placF; WMPopUpButton *placP; WMLabel *porigL; WMLabel *porigvL; WMFrame *porigF; WMLabel *porigW; WMSlider *vsli; WMSlider *hsli; WMFrame *resF; WMSlider *resS; WMLabel *resL; WMButton *resaB; WMButton *resrB; WMFrame *maxiF; WMButton *miconB; WMButton *mdockB; WMLabel *resizeL; WMLabel *resizeTextL; WMSlider *resizeS; WMFrame *opaqF; WMButton *opaqB; WMButton *opaqresizeB; WMButton *opaqkeybB; WMFrame *tranF; WMButton *tranB; } _Panel; #define ICON_FILE "whandling" #define OPAQUE_MOVE_PIXMAP "opaque" #define NON_OPAQUE_MOVE_PIXMAP "nonopaque" #define OPAQUE_RESIZE_PIXMAP "opaqueresize" #define NON_OPAQUE_RESIZE_PIXMAP "noopaqueresize" #define THUMB_SIZE 16 static char *placements[] = { "auto", "random", "manual", "cascade", "smart", "center" }; static void sliderCallback(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int x, y, rx, ry; char buffer[64]; int swidth = WMGetSliderMaxValue(panel->hsli); int sheight = WMGetSliderMaxValue(panel->vsli); x = WMGetSliderValue(panel->hsli); y = WMGetSliderValue(panel->vsli); rx = x * (WMWidgetWidth(panel->porigF) - 3) / swidth + 2; ry = y * (WMWidgetHeight(panel->porigF) - 3) / sheight + 2; WMMoveWidget(panel->porigW, rx, ry); sprintf(buffer, "(%i,%i)", x, y); WMSetLabelText(panel->porigvL, buffer); } 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 void resizeCallback(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; char buffer[64]; int i; i = WMGetSliderValue(panel->resizeS); if (i == 0) WMSetLabelText(panel->resizeL, "OFF"); else { sprintf(buffer, "%i", i); WMSetLabelText(panel->resizeL, buffer); } } static int getPlacement(const char *str) { if (!str) return 0; if (strcasecmp(str, "auto") == 0) return 0; else if (strcasecmp(str, "random") == 0) return 1; else if (strcasecmp(str, "manual") == 0) return 2; else if (strcasecmp(str, "cascade") == 0) return 3; else if (strcasecmp(str, "smart") == 0) return 4; else if (strcasecmp(str, "center") == 0) return 5; else wwarning(_("bad option value %s in WindowPlacement. Using default value"), str); return 0; } static void showData(_Panel * panel) { char *str; WMPropList *arr; int x, y; str = GetStringForKey("WindowPlacement"); WMSetPopUpButtonSelectedItem(panel->placP, getPlacement(str)); arr = GetObjectForKey("WindowPlaceOrigin"); x = 0; y = 0; if (arr && (!WMIsPLArray(arr) || WMGetPropListItemCount(arr) != 2)) { wwarning(_("invalid data in option WindowPlaceOrigin. Using default (0,0)")); } else { if (arr) { x = atoi(WMGetFromPLString(WMGetFromPLArray(arr, 0))); y = atoi(WMGetFromPLString(WMGetFromPLArray(arr, 1))); } } WMSetSliderValue(panel->hsli, x); WMSetSliderValue(panel->vsli, y); sliderCallback(NULL, panel); x = GetIntegerForKey("EdgeResistance"); WMSetSliderValue(panel->resS, x); resistanceCallback(NULL, panel); x = GetIntegerForKey("ResizeIncrement"); WMSetSliderValue(panel->resizeS, x); resizeCallback(NULL, panel); WMSetButtonSelected(panel->tranB, GetBoolForKey("OpenTransientOnOwnerWorkspace")); WMSetButtonSelected(panel->opaqB, GetBoolForKey("OpaqueMove")); WMSetButtonSelected(panel->opaqresizeB, GetBoolForKey("OpaqueResize")); WMSetButtonSelected(panel->opaqkeybB, GetBoolForKey("OpaqueMoveResizeKeyboard")); WMSetButtonSelected(panel->miconB, GetBoolForKey("NoWindowOverIcons")); WMSetButtonSelected(panel->mdockB, GetBoolForKey("NoWindowOverDock")); if (GetBoolForKey("Attraction")) WMPerformButtonClick(panel->resrB); else WMPerformButtonClick(panel->resaB); } static void storeData(_Panel * panel) { WMPropList *arr; char x[16], y[16]; SetBoolForKey(WMGetButtonSelected(panel->miconB), "NoWindowOverIcons"); SetBoolForKey(WMGetButtonSelected(panel->mdockB), "NoWindowOverDock"); SetBoolForKey(WMGetButtonSelected(panel->opaqB), "OpaqueMove"); SetBoolForKey(WMGetButtonSelected(panel->opaqresizeB), "OpaqueResize"); SetBoolForKey(WMGetButtonSelected(panel->opaqkeybB), "OpaqueMoveResizeKeyboard"); SetBoolForKey(WMGetButtonSelected(panel->tranB), "OpenTransientOnOwnerWorkspace"); SetStringForKey(placements[WMGetPopUpButtonSelectedItem(panel->placP)], "WindowPlacement"); sprintf(x, "%i", WMGetSliderValue(panel->hsli)); sprintf(y, "%i", WMGetSliderValue(panel->vsli)); arr = WMCreatePLArray(WMCreatePLString(x), WMCreatePLString(y), NULL); SetObjectForKey(arr, "WindowPlaceOrigin"); SetIntegerForKey(WMGetSliderValue(panel->resS), "EdgeResistance"); SetIntegerForKey(WMGetSliderValue(panel->resizeS), "ResizeIncrement"); SetBoolForKey(WMGetButtonSelected(panel->resrB), "Attraction"); WMReleasePropList(arr); } static void createPanel(Panel * p) { _Panel *panel = (Panel *) p; WMScreen *scr = WMWidgetScreen(panel->parent); WMColor *color; WMPixmap *pixmap; int width, height; int swidth, sheight; char *path; WMBox *hbox; panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); WMSetBoxHorizontal(panel->box, False); WMSetBoxBorderWidth(panel->box, 8); hbox = WMCreateBox(panel->box); WMSetBoxHorizontal(hbox, True); WMAddBoxSubview(panel->box, WMWidgetView(hbox), False, True, 110, 0, 10); /************** Window Placement ***************/ panel->placF = WMCreateFrame(hbox); WMMapWidget(panel->placF); WMAddBoxSubview(hbox, WMWidgetView(panel->placF), True, True, 100, 0, 10); WMSetFrameTitle(panel->placF, _("Window Placement")); WMSetBalloonTextForView(_("How to place windows when they are first put\n" "on screen."), WMWidgetView(panel->placF)); panel->placP = WMCreatePopUpButton(panel->placF); WMResizeWidget(panel->placP, 105, 20); WMMoveWidget(panel->placP, 10, 20); WMAddPopUpButtonItem(panel->placP, _("Automatic")); WMAddPopUpButtonItem(panel->placP, _("Random")); WMAddPopUpButtonItem(panel->placP, _("Manual")); WMAddPopUpButtonItem(panel->placP, _("Cascade")); WMAddPopUpButtonItem(panel->placP, _("Smart")); WMAddPopUpButtonItem(panel->placP, _("Center")); panel->porigL = WMCreateLabel(panel->placF); WMResizeWidget(panel->porigL, 110, 32); WMMoveWidget(panel->porigL, 3, 45); WMSetLabelTextAlignment(panel->porigL, WACenter); WMSetLabelText(panel->porigL, _("Placement Origin")); panel->porigvL = WMCreateLabel(panel->placF); WMResizeWidget(panel->porigvL, 80, 20); WMMoveWidget(panel->porigvL, 18, 75); WMSetLabelTextAlignment(panel->porigvL, WACenter); color = WMCreateRGBColor(scr, 0x5100, 0x5100, 0x7100, True); panel->porigF = WMCreateFrame(panel->placF); WMSetWidgetBackgroundColor(panel->porigF, color); WMReleaseColor(color); WMSetFrameRelief(panel->porigF, WRSunken); swidth = WidthOfScreen(DefaultScreenOfDisplay(WMScreenDisplay(scr))); sheight = HeightOfScreen(DefaultScreenOfDisplay(WMScreenDisplay(scr))); if (sheight > swidth) { width = 70 * swidth / sheight; if (width > 195) width = 195; height = 195 * sheight / swidth; } else { height = 195 * sheight / swidth; if (height > 70) height = 70; width = 70 * swidth / sheight; } WMResizeWidget(panel->porigF, width, height); WMMoveWidget(panel->porigF, 125 + (195 - width) / 2, 20 + (70 - height) / 2); panel->porigW = WMCreateLabel(panel->porigF); WMResizeWidget(panel->porigW, THUMB_SIZE, THUMB_SIZE); WMMoveWidget(panel->porigW, 2, 2); WMSetLabelRelief(panel->porigW, WRRaised); panel->hsli = WMCreateSlider(panel->placF); WMResizeWidget(panel->hsli, width, 12); WMMoveWidget(panel->hsli, 125 + (195 - 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 + (195 - width) / 2 + width + 2, 20 + (70 - height) / 2); WMSetSliderAction(panel->vsli, sliderCallback, panel); WMSetSliderMinValue(panel->vsli, 0); WMSetSliderMaxValue(panel->vsli, sheight); WMMapSubwidgets(panel->porigF); WMMapSubwidgets(panel->placF); /************** Opaque Move, Resize ***************/ panel->opaqF = WMCreateFrame(hbox); WMMapWidget(panel->opaqF); WMAddBoxSubview(hbox, WMWidgetView(panel->opaqF), False, True, 150, 0, 0); WMSetFrameTitle(panel->opaqF, _("Opaque Move/Resize")); WMSetBalloonTextForView(_("Whether the window contents or only a frame should\n" "be displayed during a move or resize.\n"), WMWidgetView(panel->opaqF)); panel->opaqB = WMCreateButton(panel->opaqF, WBTToggle); WMResizeWidget(panel->opaqB, 48,48); WMMoveWidget(panel->opaqB, 18, 20); WMSetButtonImagePosition(panel->opaqB, WIPImageOnly); path = LocateImage(NON_OPAQUE_MOVE_PIXMAP); if (path) { pixmap = WMCreatePixmapFromFile(scr, path); if (pixmap) { WMSetButtonImage(panel->opaqB, pixmap); WMReleasePixmap(pixmap); } else { wwarning(_("could not load icon %s"), path); } wfree(path); } path = LocateImage(OPAQUE_MOVE_PIXMAP); if (path) { pixmap = WMCreatePixmapFromFile(scr, path); if (pixmap) { WMSetButtonAltImage(panel->opaqB, pixmap); WMReleasePixmap(pixmap); } else { wwarning(_("could not load icon %s"), path); } wfree(path); } panel->opaqresizeB = WMCreateButton(panel->opaqF, WBTToggle); WMResizeWidget(panel->opaqresizeB, 48,48); WMMoveWidget(panel->opaqresizeB, 86, 20); WMSetButtonImagePosition(panel->opaqresizeB, WIPImageOnly); path = LocateImage(NON_OPAQUE_RESIZE_PIXMAP); if (path) { pixmap = WMCreatePixmapFromFile(scr, path); if (pixmap) { WMSetButtonImage(panel->opaqresizeB, pixmap); WMReleasePixmap(pixmap); } else { wwarning(_("could not load icon %s"), path); } wfree(path); } path = LocateImage(OPAQUE_RESIZE_PIXMAP); if (path) { pixmap = WMCreatePixmapFromFile(scr, path); if (pixmap) { WMSetButtonAltImage(panel->opaqresizeB, pixmap); WMReleasePixmap(pixmap); } else { wwarning(_("could not load icon %s"), path); } wfree(path); } panel->opaqkeybB = WMCreateSwitchButton(panel->opaqF); WMResizeWidget(panel->opaqkeybB, 100, 25); WMMoveWidget(panel->opaqkeybB, 18, 76); WMSetButtonText(panel->opaqkeybB, _("by keyboard")); WMMapSubwidgets(panel->opaqF); /**************** Account for Icon/Dock ***************/ panel->maxiF = WMCreateFrame(panel->box); WMResizeWidget(panel->maxiF, 205, 100); WMMoveWidget(panel->maxiF, 307, 125); WMSetFrameTitle(panel->maxiF, _("When maximizing...")); panel->miconB = WMCreateSwitchButton(panel->maxiF); WMResizeWidget(panel->miconB, 190, 30); WMMoveWidget(panel->miconB, 10, 14); WMSetButtonText(panel->miconB, _("...do not cover icons")); panel->mdockB = WMCreateSwitchButton(panel->maxiF); WMResizeWidget(panel->mdockB, 190, 30); WMMoveWidget(panel->mdockB, 10, 39); WMSetButtonText(panel->mdockB, _("...do not cover dock")); panel->resizeS = WMCreateSlider(panel->maxiF); WMResizeWidget(panel->resizeS, 50, 15); WMMoveWidget(panel->resizeS, 10, 74); WMSetSliderMinValue(panel->resizeS, 0); WMSetSliderMaxValue(panel->resizeS, 100); WMSetSliderAction(panel->resizeS, resizeCallback, panel); panel->resizeL = WMCreateLabel(panel->maxiF); WMResizeWidget(panel->resizeL, 30, 15); WMMoveWidget(panel->resizeL, 60, 74); panel->resizeTextL = WMCreateLabel(panel->maxiF); WMSetLabelText(panel->resizeTextL, "Mod+Wheel\nresize increment"); WMResizeWidget(panel->resizeTextL, 110, 30); WMMoveWidget(panel->resizeTextL, 90, 66); WMMapSubwidgets(panel->maxiF); /**************** Edge Resistance ****************/ panel->resF = WMCreateFrame(panel->box); WMResizeWidget(panel->resF, 289, 50); WMMoveWidget(panel->resF, 8, 125); WMSetFrameTitle(panel->resF, _("Edge Resistance")); WMSetBalloonTextForView(_("Edge resistance will make windows `resist'\n" "being moved further for the defined threshold\n" "when moved against other windows or the edges\n" "of the screen."), WMWidgetView(panel->resF)); panel->resS = WMCreateSlider(panel->resF); WMResizeWidget(panel->resS, 80, 15); WMMoveWidget(panel->resS, 10, 22); WMSetSliderMinValue(panel->resS, 0); WMSetSliderMaxValue(panel->resS, 80); WMSetSliderAction(panel->resS, resistanceCallback, panel); panel->resL = WMCreateLabel(panel->resF); WMResizeWidget(panel->resL, 30, 15); WMMoveWidget(panel->resL, 95, 22); panel->resaB = WMCreateRadioButton(panel->resF); WMMoveWidget(panel->resaB, 130, 15); WMResizeWidget(panel->resaB, 70, 27); WMSetButtonText(panel->resaB, _("Resist")); panel->resrB = WMCreateRadioButton(panel->resF); WMMoveWidget(panel->resrB, 200, 15); WMResizeWidget(panel->resrB, 70, 27); WMSetButtonText(panel->resrB, _("Attract")); WMGroupButtons(panel->resrB, panel->resaB); WMMapSubwidgets(panel->resF); /**************** Transients on Parent Workspace ****************/ panel->tranF = WMCreateFrame(panel->box); WMResizeWidget(panel->tranF, 289, 40); WMMoveWidget(panel->tranF, 8, 185); panel->tranB = WMCreateSwitchButton(panel->tranF); WMMoveWidget(panel->tranB, 10, 5); WMResizeWidget(panel->tranB, 250, 30); WMSetButtonText(panel->tranB, _("Open dialogs in the same workspace\nas their owners")); WMMapSubwidgets(panel->tranF); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); /* show the config data */ showData(panel); } static void undo(_Panel * panel) { showData(panel); } Panel *InitWindowHandling(WMScreen * scr, WMWidget * parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Window Handling Preferences"); panel->description = _("Window handling options. Initial placement style\n" "edge resistance, opaque move etc."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; panel->callbacks.undoChanges = undo; AddSection(panel, ICON_FILE); return panel; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/MenuPreferences.c�����������������������������������������������������0000644�0001750�0001750�00000014465�12214432632�016212� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* MenuPreferences.c- menu related preferences * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMFrame *scrF; WMButton *scrB[5]; WMFrame *aliF; WMButton *aliyB; WMButton *alinB; WMFrame *optF; WMButton *autoB; WMButton *autoC; WMButton *wrapB; } _Panel; #define ICON_FILE "menuprefs" #define SPEED_IMAGE "speed%i" #define SPEED_IMAGE_S "speed%is" #define MENU_ALIGN1 "menualign1" #define MENU_ALIGN2 "menualign2" static void showData(_Panel * panel) { WMPerformButtonClick(panel->scrB[GetSpeedForKey("MenuScrollSpeed")]); if (GetBoolForKey("AlignSubmenus")) WMPerformButtonClick(panel->aliyB); else WMPerformButtonClick(panel->alinB); WMSetButtonSelected(panel->wrapB, GetBoolForKey("WrapMenus")); WMSetButtonSelected(panel->autoB, GetBoolForKey("ScrollableMenus")); WMSetButtonSelected(panel->autoC, GetBoolForKey("ViKeyMenus")); } static void storeData(_Panel * panel) { int i; for (i = 0; i < 5; i++) { if (WMGetButtonSelected(panel->scrB[i])) break; } SetSpeedForKey(i, "MenuScrollSpeed"); SetBoolForKey(WMGetButtonSelected(panel->aliyB), "AlignSubmenus"); SetBoolForKey(WMGetButtonSelected(panel->wrapB), "WrapMenus"); SetBoolForKey(WMGetButtonSelected(panel->autoB), "ScrollableMenus"); SetBoolForKey(WMGetButtonSelected(panel->autoC), "ViKeyMenus"); } static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; WMScreen *scr = WMWidgetScreen(panel->parent); WMPixmap *icon; int i; char *buf1, *buf2; char *path; panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); /***************** Menu Scroll Speed ****************/ panel->scrF = WMCreateFrame(panel->box); WMResizeWidget(panel->scrF, 235, 90); WMMoveWidget(panel->scrF, 25, 20); WMSetFrameTitle(panel->scrF, _("Menu Scrolling Speed")); buf1 = wmalloc(strlen(SPEED_IMAGE) + 1); buf2 = wmalloc(strlen(SPEED_IMAGE_S) + 1); for (i = 0; i < 5; i++) { panel->scrB[i] = WMCreateCustomButton(panel->scrF, WBBStateChangeMask); WMResizeWidget(panel->scrB[i], 40, 40); WMMoveWidget(panel->scrB[i], 15 + (40 * i), 30); WMSetButtonBordered(panel->scrB[i], False); WMSetButtonImagePosition(panel->scrB[i], WIPImageOnly); if (i > 0) { WMGroupButtons(panel->scrB[0], panel->scrB[i]); } sprintf(buf1, SPEED_IMAGE, i); sprintf(buf2, SPEED_IMAGE_S, i); path = LocateImage(buf1); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonImage(panel->scrB[i], icon); WMReleasePixmap(icon); } else { wwarning(_("could not load icon file %s"), path); } wfree(path); } path = LocateImage(buf2); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonAltImage(panel->scrB[i], icon); WMReleasePixmap(icon); } else { wwarning(_("could not load icon file %s"), path); } wfree(path); } } wfree(buf1); wfree(buf2); WMMapSubwidgets(panel->scrF); /***************** Submenu Alignment ****************/ panel->aliF = WMCreateFrame(panel->box); WMResizeWidget(panel->aliF, 220, 90); WMMoveWidget(panel->aliF, 280, 20); WMSetFrameTitle(panel->aliF, _("Submenu Alignment")); panel->alinB = WMCreateButton(panel->aliF, WBTOnOff); WMResizeWidget(panel->alinB, 48, 48); WMMoveWidget(panel->alinB, 56, 25); WMSetButtonImagePosition(panel->alinB, WIPImageOnly); path = LocateImage(MENU_ALIGN1); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonImage(panel->alinB, icon); WMReleasePixmap(icon); } else { wwarning(_("could not load icon file %s"), path); } wfree(path); } panel->aliyB = WMCreateButton(panel->aliF, WBTOnOff); WMResizeWidget(panel->aliyB, 48, 48); WMMoveWidget(panel->aliyB, 120, 25); WMSetButtonImagePosition(panel->aliyB, WIPImageOnly); path = LocateImage(MENU_ALIGN2); if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonImage(panel->aliyB, icon); WMReleasePixmap(icon); } else { wwarning(_("could not load icon file %s"), path); } wfree(path); } WMGroupButtons(panel->alinB, panel->aliyB); WMMapSubwidgets(panel->aliF); /***************** Options ****************/ panel->optF = WMCreateFrame(panel->box); WMResizeWidget(panel->optF, 475, 96); WMMoveWidget(panel->optF, 25, 120); panel->wrapB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->wrapB, 440, 32); WMMoveWidget(panel->wrapB, 25, 8); WMSetButtonText(panel->wrapB, _("Always open submenus inside the screen, instead of scrolling.")); panel->autoB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->autoB, 440, 32); WMMoveWidget(panel->autoB, 25, 34); WMSetButtonText(panel->autoB, _("Scroll off-screen menus when pointer is moved over them.")); panel->autoC = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->autoC, 440, 32); WMMoveWidget(panel->autoC, 25, 58); WMSetButtonText(panel->autoC, _("Use h/j/k/l keys to select menu options.")); WMMapSubwidgets(panel->optF); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); showData(panel); } Panel *InitMenuPreferences(WMScreen * scr, WMWidget * parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Menu Preferences"); panel->description = _("Menu usability related options. Scrolling speed,\n" "alignment of submenus etc."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; AddSection(panel, ICON_FILE); return panel; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/Paths.c���������������������������������������������������������������0000644�0001750�0001750�00000021033�12214432632�014170� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Paths.c- pixmap/icon paths * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" #include <unistd.h> #include <assert.h> typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMTabView *tabv; WMFrame *pixF; WMList *pixL; WMButton *pixaB; WMButton *pixrB; WMFrame *icoF; WMList *icoL; WMButton *icoaB; WMButton *icorB; WMColor *red; WMColor *black; WMColor *white; WMColor *gray; WMFont *font; } _Panel; #define ICON_FILE "paths" static void addPathToList(WMList * list, int index, const char *path) { char *fpath = wexpandpath(path); WMListItem *item; item = WMInsertListItem(list, index, path); if (access(fpath, X_OK) != 0) { item->uflags = 1; } wfree(fpath); } static void showData(_Panel * panel) { WMPropList *array, *val; int i; array = GetObjectForKey("IconPath"); if (!array || !WMIsPLArray(array)) { if (array) wwarning(_("bad value in option IconPath. Using default path list")); addPathToList(panel->icoL, -1, "~/pixmaps"); addPathToList(panel->icoL, -1, "~/GNUstep/Library/Icons"); addPathToList(panel->icoL, -1, "/usr/include/X11/pixmaps"); addPathToList(panel->icoL, -1, "/usr/local/share/WindowMaker/Icons"); addPathToList(panel->icoL, -1, "/usr/local/share/WindowMaker/Pixmaps"); addPathToList(panel->icoL, -1, "/usr/share/WindowMaker/Icons"); } else { for (i = 0; i < WMGetPropListItemCount(array); i++) { val = WMGetFromPLArray(array, i); addPathToList(panel->icoL, -1, WMGetFromPLString(val)); } } array = GetObjectForKey("PixmapPath"); if (!array || !WMIsPLArray(array)) { if (array) wwarning(_("bad value in option PixmapPath. Using default path list")); addPathToList(panel->pixL, -1, "~/pixmaps"); addPathToList(panel->pixL, -1, "~/GNUstep/Library/WindowMaker/Pixmaps"); addPathToList(panel->pixL, -1, "/usr/local/share/WindowMaker/Pixmaps"); } else { for (i = 0; i < WMGetPropListItemCount(array); i++) { val = WMGetFromPLArray(array, i); addPathToList(panel->pixL, -1, WMGetFromPLString(val)); } } } static void pushButton(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int i; /* icon paths */ if (w == panel->icorB) { i = WMGetListSelectedItemRow(panel->icoL); if (i >= 0) WMRemoveListItem(panel->icoL, i); } /* pixmap paths */ if (w == panel->pixrB) { i = WMGetListSelectedItemRow(panel->pixL); if (i >= 0) WMRemoveListItem(panel->pixL, i); } } static void browseForFile(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; WMFilePanel *filePanel; assert(w == panel->icoaB || w == panel->pixaB); filePanel = WMGetOpenPanel(WMWidgetScreen(w)); WMSetFilePanelCanChooseFiles(filePanel, False); if (WMRunModalFilePanelForDirectory(filePanel, panel->parent, "/", _("Select directory"), NULL) == True) { char *str = WMGetFilePanelFileName(filePanel); if (str) { int len = strlen(str); /* Remove the trailing '/' except if the path is exactly / */ if (len > 1 && str[len - 1] == '/') { str[len - 1] = '\0'; len--; } if (len > 0) { WMList *lPtr = NULL; int i; if (w == panel->icoaB) lPtr = panel->icoL; else if (w == panel->pixaB) lPtr = panel->pixL; i = WMGetListSelectedItemRow(lPtr); if (i >= 0) i++; addPathToList(lPtr, i, str); WMSetListBottomPosition(lPtr, WMGetListNumberOfRows(lPtr)); wfree(str); } } } } static void paintItem(WMList * lPtr, int index, Drawable d, char *text, int state, WMRect * rect) { int width, height, x, y; _Panel *panel = (_Panel *) WMGetHangedData(lPtr); WMScreen *scr = WMWidgetScreen(lPtr); Display *dpy = WMScreenDisplay(scr); WMColor *backColor = (state & WLDSSelected) ? panel->white : panel->gray; width = rect->size.width; height = rect->size.height; x = rect->pos.x; y = rect->pos.y; XFillRectangle(dpy, d, WMColorGC(backColor), x, y, width, height); if (state & 1) { WMDrawString(scr, d, panel->red, panel->font, x + 4, y, text, strlen(text)); } else { WMDrawString(scr, d, panel->black, panel->font, x + 4, y, text, strlen(text)); } } static void storeData(_Panel * panel) { WMPropList *list; WMPropList *tmp; int i; char *p; list = WMCreatePLArray(NULL, NULL); for (i = 0; i < WMGetListNumberOfRows(panel->icoL); i++) { p = WMGetListItem(panel->icoL, i)->text; tmp = WMCreatePLString(p); WMAddToPLArray(list, tmp); } SetObjectForKey(list, "IconPath"); list = WMCreatePLArray(NULL, NULL); for (i = 0; i < WMGetListNumberOfRows(panel->pixL); i++) { p = WMGetListItem(panel->pixL, i)->text; tmp = WMCreatePLString(p); WMAddToPLArray(list, tmp); } SetObjectForKey(list, "PixmapPath"); } static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; WMScreen *scr = WMWidgetScreen(panel->parent); WMTabViewItem *tab; panel->white = WMWhiteColor(scr); panel->black = WMBlackColor(scr); panel->gray = WMGrayColor(scr); panel->red = WMCreateRGBColor(scr, 0xffff, 0, 0, True); panel->font = WMSystemFontOfSize(scr, 12); panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); panel->tabv = WMCreateTabView(panel->box); WMMoveWidget(panel->tabv, 12, 10); WMResizeWidget(panel->tabv, 500, 215); /* icon path */ panel->icoF = WMCreateFrame(panel->box); WMSetFrameRelief(panel->icoF, WRFlat); WMResizeWidget(panel->icoF, 230, 210); tab = WMCreateTabViewItemWithIdentifier(0); WMSetTabViewItemView(tab, WMWidgetView(panel->icoF)); WMAddItemInTabView(panel->tabv, tab); WMSetTabViewItemLabel(tab, _("Icon Search Paths")); panel->icoL = WMCreateList(panel->icoF); WMResizeWidget(panel->icoL, 480, 147); WMMoveWidget(panel->icoL, 10, 10); WMSetListUserDrawProc(panel->icoL, paintItem); WMHangData(panel->icoL, panel); panel->icoaB = WMCreateCommandButton(panel->icoF); WMResizeWidget(panel->icoaB, 95, 24); WMMoveWidget(panel->icoaB, 293, 165); WMSetButtonText(panel->icoaB, _("Add")); WMSetButtonAction(panel->icoaB, browseForFile, panel); WMSetButtonImagePosition(panel->icoaB, WIPRight); panel->icorB = WMCreateCommandButton(panel->icoF); WMResizeWidget(panel->icorB, 95, 24); WMMoveWidget(panel->icorB, 395, 165); WMSetButtonText(panel->icorB, _("Remove")); WMSetButtonAction(panel->icorB, pushButton, panel); WMMapSubwidgets(panel->icoF); /* pixmap path */ panel->pixF = WMCreateFrame(panel->box); WMSetFrameRelief(panel->pixF, WRFlat); WMResizeWidget(panel->pixF, 230, 210); tab = WMCreateTabViewItemWithIdentifier(0); WMSetTabViewItemView(tab, WMWidgetView(panel->pixF)); WMAddItemInTabView(panel->tabv, tab); WMSetTabViewItemLabel(tab, _("Pixmap Search Paths")); panel->pixL = WMCreateList(panel->pixF); WMResizeWidget(panel->pixL, 480, 147); WMMoveWidget(panel->pixL, 10, 10); WMSetListUserDrawProc(panel->pixL, paintItem); WMHangData(panel->pixL, panel); panel->pixaB = WMCreateCommandButton(panel->pixF); WMResizeWidget(panel->pixaB, 95, 24); WMMoveWidget(panel->pixaB, 293, 165); WMSetButtonText(panel->pixaB, _("Add")); WMSetButtonAction(panel->pixaB, browseForFile, panel); WMSetButtonImagePosition(panel->pixaB, WIPRight); panel->pixrB = WMCreateCommandButton(panel->pixF); WMResizeWidget(panel->pixrB, 95, 24); WMMoveWidget(panel->pixrB, 395, 165); WMSetButtonText(panel->pixrB, _("Remove")); WMSetButtonAction(panel->pixrB, pushButton, panel); WMMapSubwidgets(panel->pixF); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); showData(panel); } Panel *InitPaths(WMScreen * scr, WMWidget * parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Search Path Configuration"); panel->description = _("Search paths to use when looking for pixmaps\n" "and icons."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; AddSection(panel, ICON_FILE); return panel; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/KeyboardSettings.c����������������������������������������������������0000644�0001750�0001750�00000011030�12214432632�016366� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* KeyboardSettings.c- keyboard options (equivalent to xset) * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMFrame *delaF; WMButton *delaB[4]; WMLabel *dmsL; WMTextField *dmsT; WMFrame *rateF; WMButton *rateB[4]; WMLabel *rmsL; WMTextField *rmsT; WMTextField *testT; } _Panel; #define ICON_FILE "keyboard" static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; WMScreen *scr = WMWidgetScreen(panel->parent); int i; WMColor *color; WMFont *font; color = WMDarkGrayColor(scr); font = WMSystemFontOfSize(scr, 10); panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); /**************** Initial Key Repeat ***************/ panel->delaF = WMCreateFrame(panel->box); WMResizeWidget(panel->delaF, 495, 60); WMMoveWidget(panel->delaF, 15, 10); WMSetFrameTitle(panel->delaF, _("Initial Key Repeat")); for (i = 0; i < 4; i++) { panel->delaB[i] = WMCreateButton(panel->delaF, WBTOnOff); WMResizeWidget(panel->delaB[i], 60, 20); WMMoveWidget(panel->delaB[i], 70 + i * 60, 25); if (i > 0) WMGroupButtons(panel->delaB[0], panel->delaB[i]); switch (i) { case 0: WMSetButtonText(panel->delaB[i], "....a"); break; case 1: WMSetButtonText(panel->delaB[i], "...a"); break; case 2: WMSetButtonText(panel->delaB[i], "..a"); break; case 3: WMSetButtonText(panel->delaB[i], ".a"); break; } } panel->dmsT = WMCreateTextField(panel->delaF); WMResizeWidget(panel->dmsT, 50, 20); WMMoveWidget(panel->dmsT, 345, 25); /* WMSetTextFieldAlignment(panel->dmsT, WARight); */ panel->dmsL = WMCreateLabel(panel->delaF); WMResizeWidget(panel->dmsL, 30, 16); WMMoveWidget(panel->dmsL, 400, 30); WMSetLabelTextColor(panel->dmsL, color); WMSetLabelFont(panel->dmsL, font); WMSetLabelText(panel->dmsL, "msec"); WMMapSubwidgets(panel->delaF); /**************** Key Repeat Rate ***************/ panel->rateF = WMCreateFrame(panel->box); WMResizeWidget(panel->rateF, 495, 60); WMMoveWidget(panel->rateF, 15, 95); WMSetFrameTitle(panel->rateF, _("Key Repeat Rate")); for (i = 0; i < 4; i++) { panel->rateB[i] = WMCreateButton(panel->rateF, WBTOnOff); WMResizeWidget(panel->rateB[i], 60, 20); WMMoveWidget(panel->rateB[i], 70 + i * 60, 25); if (i > 0) WMGroupButtons(panel->rateB[0], panel->rateB[i]); switch (i) { case 0: WMSetButtonText(panel->rateB[i], "a....a"); break; case 1: WMSetButtonText(panel->rateB[i], "a...a"); break; case 2: WMSetButtonText(panel->rateB[i], "a..a"); break; case 3: WMSetButtonText(panel->rateB[i], "a.a"); break; } } panel->rmsT = WMCreateTextField(panel->rateF); WMResizeWidget(panel->rmsT, 50, 20); WMMoveWidget(panel->rmsT, 345, 25); /* WMSetTextFieldAlignment(panel->rmsT, WARight); */ panel->rmsL = WMCreateLabel(panel->rateF); WMResizeWidget(panel->rmsL, 30, 16); WMMoveWidget(panel->rmsL, 400, 30); WMSetLabelTextColor(panel->rmsL, color); WMSetLabelFont(panel->rmsL, font); WMSetLabelText(panel->rmsL, "msec"); WMMapSubwidgets(panel->rateF); panel->testT = WMCreateTextField(panel->box); WMResizeWidget(panel->testT, 480, 20); WMMoveWidget(panel->testT, 20, 180); WMSetTextFieldText(panel->testT, _("Type here to test")); WMReleaseColor(color); WMReleaseFont(font); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); } Panel *InitKeyboardSettings(WMScreen * scr, WMWidget * parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Keyboard Preferences"); panel->description = _("Not done"); panel->parent = parent; panel->callbacks.createWidgets = createPanel; AddSection(panel, ICON_FILE); return panel; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/WPrefs.xpm������������������������������������������������������������0000644�0001750�0001750�00000021146�12214432632�014706� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* XPM */ static char * WPrefs_xpm[] = { "48 48 247 2", " c None", ". c #07C500", "+ c #07C400", "@ c #09C400", "# c #09C300", "$ c #0AC300", "% c #0BC100", "& c #0DC100", "* c #0EC000", "= c #0FBF00", "- c #11BD00", "; c #12BD00", "> c #13BD00", ", c #13BC00", "' c #15BB00", ") c #16BB00", "! c #16B900", "~ c #17B900", "{ c #19B900", "] c #19B800", "^ c #1AB800", "/ c #1AB700", "( c #1BB700", "_ c #1BB500", ": c #1DB500", "< c #1EB500", "[ c #1FB400", "} c #1FB300", "| c #21B300", "1 c #22B100", "2 c #23B100", "3 c #050505", "4 c #000000", "5 c #323232", "6 c #404040", "7 c #BFBFBF", "8 c #1F1F1F", "9 c #C1C1C1", "0 c #C5C5C5", "a c #C7C7C7", "b c #FFFFFF", "c c #F9F9F9", "d c #656565", "e c #030303", "f c #C9C9C9", "g c #E6E6E6", "h c #E2E2E2", "i c #DCDCDC", "j c #E8E8E8", "k c #D4D4D4", "l c #25B000", "m c #262626", "n c #B3B3B3", "o c #C8C8C8", "p c #E4E4E4", "q c #D3D3D3", "r c #D9D9D9", "s c #DDDDDD", "t c #D1D1D1", "u c #AEAEAE", "v c #F3F3F3", "w c #E0E0E0", "x c #CECECE", "y c #29AD0E", "z c #26B000", "A c #070707", "B c #E5E5E5", "C c #F0F0F0", "D c #A9A9A9", "E c #010101", "F c #C0C0C0", "G c #9D9D9D", "H c #CDCDCD", "I c #26AF00", "J c #0A0A0A", "K c #A7A7A7", "L c #040404", "M c #7DD371", "N c #D7D7D7", "O c #1D1D1D", "P c #939393", "Q c #CACACA", "R c #27AF00", "S c #0E0E0E", "T c #E7E7E7", "U c #969696", "V c #020202", "W c #0D0D0D", "X c #677964", "Y c #3A3A3A", "Z c #DFDFDF", "` c #27AD00", " . c #0C0C0C", ".. c #8E8E8E", "+. c #818181", "@. c #DEDEDE", "#. c #E3E3E3", "$. c #C4C4C4", "%. c #B4B4B4", "&. c #D6D6D6", "*. c #0F0F0F", "=. c #898989", "-. c #29AD00", ";. c #C6C6C6", ">. c #242424", ",. c #141414", "'. c #7D7D7D", "). c #BDBDBD", "!. c #D2D2D2", "~. c #ABABAB", "{. c #131313", "]. c #EAEAEA", "^. c #808080", "/. c #E1E1E1", "(. c #2AAD00", "_. c #959595", ":. c #F1F1F1", "<. c #7C7C7C", "[. c #D5D5D5", "}. c #2AAC00", "|. c #24B814", "1. c #7CD472", "2. c #8FA98C", "3. c #171717", "4. c #EDEDED", "5. c #090909", "6. c #86A07E", "7. c #7CC463", "8. c #2BAC00", "9. c #B5B5B5", "0. c #1B1B1B", "a. c #EFEFEF", "b. c #787878", "c. c #494949", "d. c #1E1E1E", "e. c #6F6F6F", "f. c #080808", "g. c #393939", "h. c #2BAB00", "i. c #C3C3C3", "j. c #9A9A9A", "k. c #F4F4F4", "l. c #676767", "m. c #2C2C2C", "n. c #CCCCCC", "o. c #2DAB00", "p. c #F6F6F6", "q. c #5E5E5E", "r. c #060606", "s. c #212121", "t. c #626262", "u. c #2DAA00", "v. c #BABABA", "w. c #F5F5F5", "x. c #606060", "y. c #CFCFCF", "z. c #9E9E9E", "A. c #181818", "B. c #646464", "C. c #2EAA00", "D. c #878787", "E. c #292929", "F. c #FDFDFD", "G. c #5A5A5A", "H. c #383838", "I. c #121212", "J. c #919191", "K. c #2F2F2F", "L. c #FCFCFC", "M. c #4C4C4C", "N. c #8F8F8F", "O. c #7E7E7E", "P. c #2FAA00", "Q. c #6E6E6E", "R. c #282828", "S. c #6D6D6D", "T. c #BCBCBC", "U. c #5D5D5D", "V. c #2FA800", "W. c #333333", "X. c #31A800", "Y. c #C2C2C2", "Z. c #868686", "`. c #DADADA", " + c #B9B9B9", ".+ c #D8D8D8", "++ c #BBBBBB", "@+ c #32A700", "#+ c #0B0B0B", "$+ c #989898", "%+ c #111111", "&+ c #717171", "*+ c #D0D0D0", "=+ c #B2B2B2", "-+ c #949494", ";+ c #BEBEBE", ">+ c #101010", ",+ c #848484", "'+ c #33A600", ")+ c #707070", "!+ c #CBCBCB", "~+ c #ADADAD", "{+ c #D8D9DB", "]+ c #7A7A7A", "^+ c #737373", "/+ c #2AB111", "(+ c #82D073", "_+ c #8DA488", ":+ c #565656", "<+ c #6A6A6A", "[+ c #2A2A2A", "}+ c #A9D098", "|+ c #4AA620", "1+ c #35A400", "2+ c #484848", "3+ c #666666", "4+ c #777777", "5+ c #363636", "6+ c #585858", "7+ c #797979", "8+ c #36A400", "9+ c #888888", "0+ c #37A400", "a+ c #6C6C6C", "b+ c #37A300", "c+ c #B7B7B7", "d+ c #667461", "e+ c #4B4B4B", "f+ c #84CB70", "g+ c #B0B0B0", "h+ c #979797", "i+ c #72BC55", "j+ c #999999", "k+ c #39A200", "l+ c #A0A0A0", "m+ c #A2A2A2", "n+ c #A4A4A4", "o+ c #3AA200", "p+ c #B6B6B6", "q+ c #A3A3A3", "r+ c #A8A8A8", "s+ c #3AA000", "t+ c #929292", "u+ c #8A8A8A", "v+ c #3BA000", "w+ c #3DA000", "x+ c #3D9F00", ". + @ # $ $ % % % & & * * = = = - - ; ; > , , ' ' ) ! ~ ~ ~ { ] ^ / ( ( _ : : < < [ [ } | | 1 1 ", "+ - / 2 ", "@ 3 4 4 5 - ( 2 ", "# 3 6 7 8 4 4 ; 9 0 ( 2 ", "$ 4 a b c d e 4 ; f g h i j k _ l ", "$ 4 m b b b n 4 > o g p q r r r s j t : l ", "% 5 4 u b b v e 4 , w p q r r r r r r r s g x y z ", "% 4 A B C b D E E , F G r r r r r r r r r r r s g H I ", "% 4 4 J b b K L e M N q 4 O P r r r r r r r r r r r i g Q R ", "& 4 S T b U V W X 3 4 4 4 V Y r r r r r r r r r r r r Z B a ` ", "& 4 .j b ..V 4 4 4 4 4 4 4 J +.r r r r r r r r r r r r @.#.$. ` ", "* %.&.4 *.j b =.4 4 4 4 4 4 4 r r r r r r r r r r r r r r r @.#.9 -.", "* a ;.>.4 4 ,.T b '.V 4 4 4 O r r r r r r r r r r r r r r r r r r t Z h ). -.", "= !.~.3 4 4 4 4 {.].b ^.4 4 r r r r r r r r r r r r r r r r r r r r r r !.Z /.). (.", "= t _.4 4 4 4 4 4 4 {.:.b <.4 r r r r r r r r r r r r r r r r r r r r r r r r [.s N }.", "= - - |.1.2.4 4 4 4 4 4 4 4 4 3.4.b +.5.r r r r r r r r r r r r r r r r r r r r r r r r r 6.7.8.", "- 9.9 V 4 4 4 4 4 4 4 4 4 4 0.a.b b.5.r r r r r r r r r r r r r r r r r r r r r r /.c.G ~.8.", "- [.d.4 4 4 4 4 4 4 4 4 4 4 4 8 :.b e.f.r r r r r r r r r r r r r r r r r r r r t g.4 9 h.", "; i.j.4 4 4 4 4 4 4 4 4 4 4 4 4 4 O k.b l.S r r r r r r r r r r r r r r r r r r r m.4 3 n. o.", "; k S 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8 p.b q.r.r r r r r r r r r r r r r r r r [.s.4 4 t.i. u.", "> v.4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 s.w.b x.L 4 8 d.r.y.r r r r r r r r r z.A.4 4 4 B.F C.", ", $.D.4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 E.F.b G.H.b b Z I.r r r r r r r r J.{.4 4 4 4 3 f C.", ", y.c.4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 K.L.b b b b b M.N.r r r r r r O.*.4 4 4 4 4 4 9 P.", "' q I.4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 r r a 4 Q.b b b b b p R.A G r r r S.5.4 4 4 4 4 4 4 T. P.", "' q I.4 4 4 4 4 4 4 4 4 4 4 4 4 4 r r r 4 5 b b b b b b b b j 0.G /.U.3 4 4 4 4 4 4 4 4 T. V.", ") n.c.4 4 4 4 4 4 4 4 4 4 4 4 4 r r r r 4 b b b b b b b b b b T A.W.V 4 4 4 4 4 4 4 4 4 9 X.", "! Y.Z.4 4 4 4 4 4 4 4 4 4 4 4 r r r r r 4 b b b b b b b b b b b `.{.4 4 4 4 4 4 4 4 4 3 o X.", "~ +4 4 4 4 4 4 4 4 4 4 4 4 s.t r r r r 4 B.b b b b b b b b b b b .+I.4 4 4 4 4 4 4 4 U.++ @+", "~ !.#+4 4 4 4 4 4 4 4 4 4 4 4 A.$+r r r r 4 %+&+b b b b b b b b b b *+%+4 4 4 4 4 4 4 =+-+ @+", "~ ;+_.4 4 4 4 4 4 4 4 4 4 4 4 4 >+,+r r r r a 4 b b b b b b b b b b b x >+4 4 4 4 4 m o '+", "{ !.O 4 4 4 4 4 4 4 4 4 4 4 4 4 J )+r r r r 4 )+b b b b b b b b b b b !+W 4 4 4 4 %.j. '+", "] ~+F V 4 4 4 4 4 4 4 4 4 4 4 4 4 3 x.{+r r r 4 ]+b b b b b b b b b b b o .4 4 ^+F '+", "^ / ( /+(+_+4 4 4 4 4 4 4 4 4 4 4 4 4 4 e :+@.r r !.4 <+b b b b b b b b b b b $.J [+}+|+'+'+'+1+", "/ x _.4 4 4 4 4 4 4 4 4 4 4 4 4 4 E 2+x r 3+J E 4+b b b b b b b b b b b %.5.5+ 1+", "( !+D 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Y 6+r.4 4 4 7+b b b b b b b b b b b ).5.S 8+", "( ;+0 >.4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 ,+b b b b b b b b b b b 0 A %+ 8+", "_ t U 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 E 9+b b b b b b b b b b b !+3 0+", ": v.y.$+%+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 =.b b b b b b b b b b b a+4 b+", ": 9.y.c+d+S 4 4 4 4 4 4 4 4 4 4 4 4 4 4 e+V G b b b b b b b b b b .+4 b+", "< f+Q Y.g+h+#+4 4 4 4 4 4 V G ;+f F i+V j+b b b b b b b b b L.4 k+", "< R l+0 i.3 4 4 4 4 V g+i. X. L m+b b b b b b b b h 4 k+", "[ ` %.v.V 4 4 4 n+T. X. 3 m+b b b b b b b ]+4 o+", "[ ` p+p+V 4 q+F @+ L r+b b b b b Z f.4 s+", "} -. c+K t+F @+ e a+k b :.u+#+4 v+", "| -. '+ 4 4 4 4 4 4 v+", "| (. '+ v+", "1 }. '+ w+", "1 2 2 2 l l z I R ` ` -.-.(.}.8.8.h.o.u.C.C.P.P.V.X.X.@+@+'+'+'+1+1+8+8+0+b+b+k+k+o+s+v+v+v+w+x+"}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/Appearance.c����������������������������������������������������������0000644�0001750�0001750�00000155200�12214432632�015154� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Apperance.c- color/texture for titlebar etc. * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1999-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" #include <unistd.h> #include <errno.h> #include <ctype.h> #include <time.h> #include <sys/stat.h> #include <sys/types.h> #include <fcntl.h> #include "TexturePanel.h" typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMLabel *prevL; WMTabView *tabv; /* texture list */ WMFrame *texF; WMList *texLs; WMPopUpButton *secP; WMButton *newB; WMButton *editB; WMButton *ripB; WMButton *delB; /* text color */ WMFrame *colF; WMPopUpButton *colP; WMColor *colors[14]; WMColorWell *colW; WMColorWell *sampW[24]; /* options */ WMFrame *optF; WMFrame *mstyF; WMButton *mstyB[3]; WMFrame *taliF; WMButton *taliB[3]; /* root bg */ WMFrame *bgF; WMLabel *bgprevL; WMButton *selbgB; WMPopUpButton *modeB[3]; /* */ int textureIndex[8]; WMFont *smallFont; WMFont *normalFont; WMFont *boldFont; TexturePanel *texturePanel; WMPixmap *onLed; WMPixmap *offLed; WMPixmap *hand; int oldsection; int oldcsection; char oldTabItem; int menuStyle; int titleAlignment; Pixmap preview; Pixmap previewNoText; char *fprefix; } _Panel; typedef struct { char *title; char *texture; WMPropList *prop; Pixmap preview; char *path; char selectedFor; unsigned current:1; unsigned ispixmap:1; } TextureListItem; static void updateColorPreviewBox(_Panel * panel, int elements); static void showData(_Panel * panel); static void changePage(WMWidget * w, void *data); static void changeColorPage(WMWidget * w, void *data); static void OpenExtractPanelFor(_Panel * panel, const char *path); static void changedTabItem(struct WMTabViewDelegate *self, WMTabView * tabView, WMTabViewItem * item); static WMTabViewDelegate tabviewDelegate = { NULL, NULL, /* didChangeNumberOfItems */ changedTabItem, /* didSelectItem */ NULL, /* shouldSelectItem */ NULL /* willSelectItem */ }; #define ICON_FILE "appearance" #define TNEW_FILE "tnew" #define TDEL_FILE "tdel" #define TEDIT_FILE "tedit" #define TEXTR_FILE "textr" #define MSTYLE1_FILE "msty1" #define MSTYLE2_FILE "msty2" #define MSTYLE3_FILE "msty3" /* XPM */ static char *blueled_xpm[] = { "8 8 17 1", " c None", ". c #020204", "+ c #16B6FC", "@ c #176AFC", "# c #163AFC", "$ c #72D2FC", "% c #224CF4", "& c #76D6FC", "* c #16AAFC", "= c #CEE9FC", "- c #229EFC", "; c #164CFC", "> c #FAFEFC", ", c #2482FC", "' c #1652FC", ") c #1E76FC", "! c #1A60FC", " .... ", " .=>-@. ", ".=>$@@'.", ".=$@!;;.", ".!@*+!#.", ".#'*+*,.", " .@)@,. ", " .... " }; /* XPM */ static char *blueled2_xpm[] = { /* width height num_colors chars_per_pixel */ " 8 8 17 1", /* colors */ ". c None", "# c #090909", "a c #4b63a4", "b c #011578", "c c #264194", "d c #04338c", "e c #989dac", "f c #011a7c", "g c #465c9c", "h c #03278a", "i c #6175ac", "j c #011e74", "k c #043a90", "l c #042f94", "m c #0933a4", "n c #022184", "o c #012998", /* pixels */ "..####..", ".#aimn#.", "#aechnf#", "#gchnjf#", "#jndknb#", "#bjdddl#", ".#nono#.", "..####.." }; /* XPM */ static char *hand_xpm[] = { "22 21 19 1", " c None", ". c #030305", "+ c #7F7F7E", "@ c #B5B5B6", "# c #C5C5C6", "$ c #969697", "% c #FDFDFB", "& c #F2F2F4", "* c #E5E5E4", "= c #ECECEC", "- c #DCDCDC", "; c #D2D2D0", "> c #101010", ", c #767674", "' c #676767", ") c #535355", "! c #323234", "~ c #3E3C56", "{ c #333147", " ", " ..... ", " ..+@##$. ", " .%%%&@.......... ", " .%*%%&#%%%%%%%%%$. ", " .*#%%%%%%%%%&&&&==. ", " .-%%%%%%%%%=*-;;;#$. ", " .-%%%%%%%%&..>..... ", " >-%%%%%%%%%*#+. ", " >-%%%%%%%%%*@,. ", " >#%%%%%%%%%*@'. ", " >$&&%%%%%%=... ", " .+@@;=&%%&;$,> ", " .',$@####$+). ", " .!',+$++,'. ", " ..>>>>>. ", " ", " ~~{{{~~ ", " {{{{{{{{{{{ ", " ~~{{{~~ ", " " }; static char *sampleColors[] = { "black", "#292929", "#525252", "#848484", "#adadad", "#d6d6d6", "white", "#d6d68c", "#d6a57b", "#8cd68c", "#8cd6ce", "#d68c8c", "#8c9cd6", "#bd86d6", "#d68cbd", "#d64a4a", "#4a5ad6", "#4ad6ce", "#4ad65a", "#ced64a", "#d6844a", "#8ad631", "#ce29c6", "#ce2973", "black" }; static char *textureOptions[] = { "FTitleBack", "(solid, black)", "[Focused]", "UTitleBack", "(solid, gray)", "[Unfocused]", "PTitleBack", "(solid, \"#616161\")", "[Owner of Focused]", "ResizebarBack", "(solid, gray)", "[Resizebar]", "MenuTitleBack", "(solid, black)", "[Menu Title]", "MenuTextBack", "(solid, gray)", "[Menu Item]", "IconBack", "(solid, gray)", "[Icon]" }; #define RESIZEBAR_BEVEL -1 #define MENU_BEVEL -2 #define TEXPREV_WIDTH 40 #define TEXPREV_HEIGHT 24 #define MSTYLE_NORMAL 0 #define MSTYLE_SINGLE 1 #define MSTYLE_FLAT 2 #define FTITLE_COL (1<<0) #define UTITLE_COL (1<<1) #define OTITLE_COL (1<<2) #define MTITLE_COL (1<<3) #define MITEM_COL (1<<4) #define MDISAB_COL (1<<5) #define MHIGH_COL (1<<6) #define MHIGHT_COL (1<<7) #define ICONT_COL (1<<8) #define ICONB_COL (1<<9) #define CLIP_COL (1<<10) #define CCLIP_COL (1<<11) static char *colorOptions[] = { "FTitleColor", "white", "UTitleColor", "black", "PTitleColor", "white", "MenuTitleColor", "white", "MenuTextColor", "black", "MenuDisabledColor", "#616161", "HighlightColor", "white", "HighlightTextColor", "black", "IconTitleColor", "white", "IconTitleBack", "black", "ClipTitleColor", "black", "CClipTitleColor", "#454045" }; static WMRect previewPositions[] = { #define PFOCUSED 0 {{30, 10}, {190, 20}}, #define PUNFOCUSED 1 {{30, 40}, {190, 20}}, #define POWNER 2 {{30, 70}, {190, 20}}, #define PRESIZEBAR 3 {{30, 100}, {190, 9}}, #define PMTITLE 4 {{30, 120}, {90, 20}}, #define PMITEM 5 {{30, 140}, {90, 20 * 4}}, #define PICON 6 {{155, 130}, {64, 64}} }; #define EVERYTHING 0xff static WMRect previewColorPositions[] = { {{30, 10}, {190, 20}}, {{30, 40}, {190, 20}}, {{30, 70}, {190, 20}}, {{30, 120}, {90, 20}}, {{30, 140}, {90, 20}}, {{30, 160}, {90, 20}}, {{30, 180}, {90, 20}}, {{30, 200}, {90, 20}}, {{155, 130}, {64, 64}}, {{155, 130}, {64, 64}}, {{155, 130}, {64, 64}}, {{155, 130}, {64, 64}} }; static void str2rcolor(RContext * rc, const char *name, RColor * color) { XColor xcolor; XParseColor(rc->dpy, rc->cmap, name, &xcolor); color->alpha = 255; color->red = xcolor.red >> 8; color->green = xcolor.green >> 8; color->blue = xcolor.blue >> 8; } static void dumpRImage(const char *path, RImage * image) { FILE *f; int channels = (image->format == RRGBAFormat ? 4 : 3); f = fopen(path, "wb"); if (!f) { werror("%s", path); return; } fprintf(f, "%02x%02x%1x", image->width, image->height, channels); fwrite(image->data, 1, image->width * image->height * channels, f); fsync(fileno(f)); if (fclose(f) < 0) { werror("%s", path); } } static int isPixmap(WMPropList * prop) { WMPropList *p; char *s; p = WMGetFromPLArray(prop, 0); s = WMGetFromPLString(p); if (strcasecmp(&s[1], "pixmap") == 0) return 1; else return 0; } /**********************************************************************/ static void drawResizebarBevel(RImage * img) { RColor light; RColor dark; RColor black; int width = img->width; int height = img->height; int cwidth = 28; black.alpha = 255; black.red = black.green = black.blue = 0; light.alpha = 0; light.red = light.green = light.blue = 80; dark.alpha = 0; dark.red = dark.green = dark.blue = 40; ROperateLine(img, RSubtractOperation, 0, 0, width - 1, 0, &dark); ROperateLine(img, RAddOperation, 0, 1, width - 1, 1, &light); ROperateLine(img, RSubtractOperation, cwidth, 2, cwidth, height - 1, &dark); ROperateLine(img, RAddOperation, cwidth + 1, 2, cwidth + 1, height - 1, &light); ROperateLine(img, RSubtractOperation, width - cwidth - 2, 2, width - cwidth - 2, height - 1, &dark); ROperateLine(img, RAddOperation, width - cwidth - 1, 2, width - cwidth - 1, height - 1, &light); RDrawLine(img, 0, height - 1, width - 1, height - 1, &black); RDrawLine(img, 0, 0, 0, height - 1, &black); RDrawLine(img, width - 1, 0, width - 1, height - 1, &black); } static void drawMenuBevel(RImage * img) { RColor light, dark, mid; int i; int iheight = img->height / 4; light.alpha = 0; light.red = light.green = light.blue = 80; dark.alpha = 255; dark.red = dark.green = dark.blue = 0; mid.alpha = 0; mid.red = mid.green = mid.blue = 40; for (i = 1; i < 4; i++) { ROperateLine(img, RSubtractOperation, 0, i * iheight - 2, img->width - 1, i * iheight - 2, &mid); RDrawLine(img, 0, i * iheight - 1, img->width - 1, i * iheight - 1, &dark); ROperateLine(img, RAddOperation, 1, i * iheight, img->width - 2, i * iheight, &light); } } static Pixmap renderTexture(WMScreen * scr, WMPropList * texture, int width, int height, const char *path, int border) { char *type; RImage *image = NULL; Pixmap pixmap; RContext *rc = WMScreenRContext(scr); char *str; RColor rcolor; type = WMGetFromPLString(WMGetFromPLArray(texture, 0)); if (strcasecmp(type, "solid") == 0) { str = WMGetFromPLString(WMGetFromPLArray(texture, 1)); str2rcolor(rc, str, &rcolor); image = RCreateImage(width, height, False); RClearImage(image, &rcolor); } else if (strcasecmp(type, "igradient") == 0) { int t1, t2; RColor c1[2], c2[2]; str = WMGetFromPLString(WMGetFromPLArray(texture, 1)); str2rcolor(rc, str, &c1[0]); str = WMGetFromPLString(WMGetFromPLArray(texture, 2)); str2rcolor(rc, str, &c1[1]); str = WMGetFromPLString(WMGetFromPLArray(texture, 3)); t1 = atoi(str); str = WMGetFromPLString(WMGetFromPLArray(texture, 4)); str2rcolor(rc, str, &c2[0]); str = WMGetFromPLString(WMGetFromPLArray(texture, 5)); str2rcolor(rc, str, &c2[1]); str = WMGetFromPLString(WMGetFromPLArray(texture, 6)); t2 = atoi(str); image = RRenderInterwovenGradient(width, height, c1, t1, c2, t2); } else if (strcasecmp(&type[1], "gradient") == 0) { int style; RColor rcolor2; switch (toupper(type[0])) { case 'V': style = RVerticalGradient; break; case 'H': style = RHorizontalGradient; break; default: case 'D': style = RDiagonalGradient; break; } str = WMGetFromPLString(WMGetFromPLArray(texture, 1)); str2rcolor(rc, str, &rcolor); str = WMGetFromPLString(WMGetFromPLArray(texture, 2)); str2rcolor(rc, str, &rcolor2); image = RRenderGradient(width, height, &rcolor, &rcolor2, style); } else if (strcasecmp(&type[2], "gradient") == 0 && toupper(type[0]) == 'T') { int style; RColor rcolor2; int i; RImage *grad, *timage = NULL; char *path; switch (toupper(type[1])) { case 'V': style = RVerticalGradient; break; case 'H': style = RHorizontalGradient; break; default: case 'D': style = RDiagonalGradient; break; } str = WMGetFromPLString(WMGetFromPLArray(texture, 3)); str2rcolor(rc, str, &rcolor); str = WMGetFromPLString(WMGetFromPLArray(texture, 4)); str2rcolor(rc, str, &rcolor2); str = WMGetFromPLString(WMGetFromPLArray(texture, 1)); if ((path = wfindfileinarray(GetObjectForKey("PixmapPath"), str)) != NULL) timage = RLoadImage(rc, path, 0); if (!path || !timage) { wwarning("could not load file '%s': %s", path, RMessageForError(RErrorCode)); } else { grad = RRenderGradient(width, height, &rcolor, &rcolor2, style); image = RMakeTiledImage(timage, width, height); RReleaseImage(timage); i = atoi(WMGetFromPLString(WMGetFromPLArray(texture, 2))); RCombineImagesWithOpaqueness(image, grad, i); RReleaseImage(grad); } } else if (strcasecmp(&type[2], "gradient") == 0 && toupper(type[0]) == 'M') { int style; RColor **colors; int i, j; switch (toupper(type[1])) { case 'V': style = RVerticalGradient; break; case 'H': style = RHorizontalGradient; break; default: case 'D': style = RDiagonalGradient; break; } j = WMGetPropListItemCount(texture); if (j > 0) { colors = wmalloc(j * sizeof(RColor *)); for (i = 2; i < j; i++) { str = WMGetFromPLString(WMGetFromPLArray(texture, i)); colors[i - 2] = wmalloc(sizeof(RColor)); str2rcolor(rc, str, colors[i - 2]); } colors[i - 2] = NULL; image = RRenderMultiGradient(width, height, colors, style); for (i = 0; colors[i] != NULL; i++) wfree(colors[i]); wfree(colors); } } else if (strcasecmp(&type[1], "pixmap") == 0) { RImage *timage = NULL; char *path; RColor color; str = WMGetFromPLString(WMGetFromPLArray(texture, 1)); if ((path = wfindfileinarray(GetObjectForKey("PixmapPath"), str)) != NULL) timage = RLoadImage(rc, path, 0); if (!path || !timage) { wwarning("could not load file '%s': %s", path ? path : str, RMessageForError(RErrorCode)); } else { str = WMGetFromPLString(WMGetFromPLArray(texture, 2)); str2rcolor(rc, str, &color); switch (toupper(type[0])) { case 'T': image = RMakeTiledImage(timage, width, height); RReleaseImage(timage); timage = image; break; case 'C': image = RMakeCenteredImage(timage, width, height, &color); RReleaseImage(timage); timage = image; break; case 'S': case 'M': image = RScaleImage(timage, width, height); RReleaseImage(timage); timage = image; break; } } wfree(path); } if (!image) return None; if (path) { dumpRImage(path, image); } if (border < 0) { if (border == RESIZEBAR_BEVEL) { drawResizebarBevel(image); } else if (border == MENU_BEVEL) { drawMenuBevel(image); RBevelImage(image, RBEV_RAISED2); } } else if (border) { RBevelImage(image, border); } RConvertImage(rc, image, &pixmap); RReleaseImage(image); return pixmap; } static Pixmap renderMenu(_Panel * panel, WMPropList * texture, int width, int iheight) { WMScreen *scr = WMWidgetScreen(panel->parent); Display *dpy = WMScreenDisplay(scr); Pixmap pix, tmp; GC gc = XCreateGC(dpy, WMWidgetXID(panel->parent), 0, NULL); int i; switch (panel->menuStyle) { case MSTYLE_NORMAL: tmp = renderTexture(scr, texture, width, iheight, NULL, RBEV_RAISED2); pix = XCreatePixmap(dpy, tmp, width, iheight * 4, WMScreenDepth(scr)); for (i = 0; i < 4; i++) { XCopyArea(dpy, tmp, pix, gc, 0, 0, width, iheight, 0, iheight * i); } XFreePixmap(dpy, tmp); break; case MSTYLE_SINGLE: pix = renderTexture(scr, texture, width, iheight * 4, NULL, MENU_BEVEL); break; case MSTYLE_FLAT: pix = renderTexture(scr, texture, width, iheight * 4, NULL, RBEV_RAISED2); break; default: pix = None; } XFreeGC(dpy, gc); return pix; } static void renderPreview(_Panel * panel, GC gc, int part, int relief) { WMListItem *item; TextureListItem *titem; Pixmap pix; WMScreen *scr = WMWidgetScreen(panel->box); item = WMGetListItem(panel->texLs, panel->textureIndex[part]); titem = (TextureListItem *) item->clientData; pix = renderTexture(scr, titem->prop, previewPositions[part].size.width, previewPositions[part].size.height, NULL, relief); XCopyArea(WMScreenDisplay(scr), pix, panel->preview, gc, 0, 0, previewPositions[part].size.width, previewPositions[part].size.height, previewPositions[part].pos.x, previewPositions[part].pos.y); XCopyArea(WMScreenDisplay(scr), pix, panel->previewNoText, gc, 0, 0, previewPositions[part].size.width, previewPositions[part].size.height, previewPositions[part].pos.x, previewPositions[part].pos.y); XFreePixmap(WMScreenDisplay(scr), pix); } static void updatePreviewBox(_Panel * panel, int elements) { WMScreen *scr = WMWidgetScreen(panel->parent); Display *dpy = WMScreenDisplay(scr); Pixmap pix; GC gc; int colorUpdate = 0; WMColor *black = WMBlackColor(scr); gc = XCreateGC(dpy, WMWidgetXID(panel->parent), 0, NULL); if (panel->preview == None) { WMColor *color; WMPixmap *p; panel->previewNoText = XCreatePixmap(dpy, WMWidgetXID(panel->parent), 240 - 4, 215 - 4, WMScreenDepth(scr)); p = WMCreatePixmap(scr, 240 - 4, 215 - 4, WMScreenDepth(scr), False); panel->preview = WMGetPixmapXID(p); WMSetLabelImage(panel->prevL, p); WMReleasePixmap(p); color = WMCreateRGBColor(scr, 0x5100, 0x5100, 0x7100, True); XFillRectangle(dpy, panel->preview, WMColorGC(color), 0, 0, 240 - 4, 215 - 4); XFillRectangle(dpy, panel->previewNoText, WMColorGC(color), 0, 0, 240 - 4, 215 - 4); WMReleaseColor(color); } if (elements & (1 << PFOCUSED)) { renderPreview(panel, gc, PFOCUSED, RBEV_RAISED2); XDrawRectangle(dpy, panel->preview, WMColorGC(black), previewPositions[PFOCUSED].pos.x - 1, previewPositions[PFOCUSED].pos.y - 1, previewPositions[PFOCUSED].size.width, previewPositions[PFOCUSED].size.height); XDrawRectangle(dpy, panel->previewNoText, WMColorGC(black), previewPositions[PFOCUSED].pos.x - 1, previewPositions[PFOCUSED].pos.y - 1, previewPositions[PFOCUSED].size.width, previewPositions[PFOCUSED].size.height); colorUpdate |= FTITLE_COL; } if (elements & (1 << PUNFOCUSED)) { renderPreview(panel, gc, PUNFOCUSED, RBEV_RAISED2); XDrawRectangle(dpy, panel->preview, WMColorGC(black), previewPositions[PUNFOCUSED].pos.x - 1, previewPositions[PUNFOCUSED].pos.y - 1, previewPositions[PUNFOCUSED].size.width, previewPositions[PUNFOCUSED].size.height); XDrawRectangle(dpy, panel->previewNoText, WMColorGC(black), previewPositions[PUNFOCUSED].pos.x - 1, previewPositions[PUNFOCUSED].pos.y - 1, previewPositions[PUNFOCUSED].size.width, previewPositions[PUNFOCUSED].size.height); colorUpdate |= UTITLE_COL; } if (elements & (1 << POWNER)) { renderPreview(panel, gc, POWNER, RBEV_RAISED2); XDrawRectangle(dpy, panel->preview, WMColorGC(black), previewPositions[POWNER].pos.x - 1, previewPositions[POWNER].pos.y - 1, previewPositions[POWNER].size.width, previewPositions[POWNER].size.height); XDrawRectangle(dpy, panel->previewNoText, WMColorGC(black), previewPositions[POWNER].pos.x - 1, previewPositions[POWNER].pos.y - 1, previewPositions[POWNER].size.width, previewPositions[POWNER].size.height); colorUpdate |= OTITLE_COL; } if (elements & (1 << PRESIZEBAR)) { renderPreview(panel, gc, PRESIZEBAR, RESIZEBAR_BEVEL); } if (elements & (1 << PMTITLE)) { renderPreview(panel, gc, PMTITLE, RBEV_RAISED2); colorUpdate |= MTITLE_COL; } if (elements & (1 << PMITEM)) { WMListItem *item; TextureListItem *titem; item = WMGetListItem(panel->texLs, panel->textureIndex[5]); titem = (TextureListItem *) item->clientData; pix = renderMenu(panel, titem->prop, previewPositions[PMITEM].size.width, previewPositions[PMITEM].size.height / 4); XCopyArea(dpy, pix, panel->preview, gc, 0, 0, previewPositions[PMITEM].size.width, previewPositions[PMITEM].size.height, previewPositions[PMITEM].pos.x, previewPositions[PMITEM].pos.y); XCopyArea(dpy, pix, panel->previewNoText, gc, 0, 0, previewPositions[PMITEM].size.width, previewPositions[PMITEM].size.height, previewPositions[PMITEM].pos.x, previewPositions[PMITEM].pos.y); XFreePixmap(dpy, pix); colorUpdate |= MITEM_COL | MDISAB_COL | MHIGH_COL | MHIGHT_COL; } if (elements & (1 << PMITEM | 1 << PMTITLE)) { XDrawLine(dpy, panel->preview, gc, 29, 120, 29, 120 + 20 * 4 + 20); XDrawLine(dpy, panel->preview, gc, 29, 119, 119, 119); XDrawLine(dpy, panel->previewNoText, gc, 29, 120, 29, 120 + 20 * 4 + 20); XDrawLine(dpy, panel->previewNoText, gc, 29, 119, 119, 119); } if (elements & (1 << PICON)) { WMListItem *item; TextureListItem *titem; item = WMGetListItem(panel->texLs, panel->textureIndex[6]); titem = (TextureListItem *) item->clientData; renderPreview(panel, gc, PICON, titem->ispixmap ? 0 : RBEV_RAISED3); colorUpdate |= ICONT_COL | ICONB_COL | CLIP_COL | CCLIP_COL; } if (colorUpdate) updateColorPreviewBox(panel, colorUpdate); else WMRedisplayWidget(panel->prevL); XFreeGC(dpy, gc); WMReleaseColor(black); } static void cancelNewTexture(void *data) { _Panel *panel = (_Panel *) data; HideTexturePanel(panel->texturePanel); } static char *makeFileName(const char *prefix) { char *fname; fname = wstrdup(prefix); while (access(fname, F_OK) == 0) { char buf[30]; wfree(fname); sprintf(buf, "%08lx.cache", time(NULL)); fname = wstrconcat(prefix, buf); } return fname; } static void okNewTexture(void *data) { _Panel *panel = (_Panel *) data; WMListItem *item; char *name; char *str; WMPropList *prop; TextureListItem *titem; WMScreen *scr = WMWidgetScreen(panel->parent); titem = wmalloc(sizeof(TextureListItem)); HideTexturePanel(panel->texturePanel); name = GetTexturePanelTextureName(panel->texturePanel); prop = GetTexturePanelTexture(panel->texturePanel); str = WMGetPropListDescription(prop, False); titem->title = name; titem->prop = prop; titem->texture = str; titem->selectedFor = 0; titem->ispixmap = isPixmap(prop); titem->path = makeFileName(panel->fprefix); titem->preview = renderTexture(scr, prop, TEXPREV_WIDTH, TEXPREV_HEIGHT, titem->path, 0); item = WMAddListItem(panel->texLs, ""); item->clientData = titem; WMSetListPosition(panel->texLs, WMGetListNumberOfRows(panel->texLs)); } static void okEditTexture(void *data) { _Panel *panel = (_Panel *) data; WMListItem *item; char *name; char *str; WMPropList *prop; TextureListItem *titem; item = WMGetListItem(panel->texLs, WMGetListSelectedItemRow(panel->texLs)); titem = (TextureListItem *) item->clientData; HideTexturePanel(panel->texturePanel); if (titem->current) { name = GetTexturePanelTextureName(panel->texturePanel); wfree(titem->title); titem->title = name; } prop = GetTexturePanelTexture(panel->texturePanel); str = WMGetPropListDescription(prop, False); WMReleasePropList(titem->prop); titem->prop = prop; titem->ispixmap = isPixmap(prop); wfree(titem->texture); titem->texture = str; XFreePixmap(WMScreenDisplay(WMWidgetScreen(panel->texLs)), titem->preview); titem->preview = renderTexture(WMWidgetScreen(panel->texLs), titem->prop, TEXPREV_WIDTH, TEXPREV_HEIGHT, titem->path, 0); WMRedisplayWidget(panel->texLs); if (titem->selectedFor) updatePreviewBox(panel, titem->selectedFor); changePage(panel->secP, panel); } static void editTexture(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; WMListItem *item; TextureListItem *titem; item = WMGetListItem(panel->texLs, WMGetListSelectedItemRow(panel->texLs)); titem = (TextureListItem *) item->clientData; SetTexturePanelPixmapPath(panel->texturePanel, GetObjectForKey("PixmapPath")); SetTexturePanelTexture(panel->texturePanel, titem->title, titem->prop); SetTexturePanelCancelAction(panel->texturePanel, cancelNewTexture, panel); SetTexturePanelOkAction(panel->texturePanel, okEditTexture, panel); ShowTexturePanel(panel->texturePanel); } static void newTexture(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; SetTexturePanelPixmapPath(panel->texturePanel, GetObjectForKey("PixmapPath")); SetTexturePanelTexture(panel->texturePanel, "New Texture", NULL); SetTexturePanelCancelAction(panel->texturePanel, cancelNewTexture, panel); SetTexturePanelOkAction(panel->texturePanel, okNewTexture, panel); ShowTexturePanel(panel->texturePanel); } static void deleteTexture(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; WMListItem *item; TextureListItem *titem; int row; int section; section = WMGetPopUpButtonSelectedItem(panel->secP); row = WMGetListSelectedItemRow(panel->texLs); item = WMGetListItem(panel->texLs, row); titem = (TextureListItem *) item->clientData; if (titem->selectedFor & (1 << section)) { TextureListItem *titem2; panel->textureIndex[section] = section; item = WMGetListItem(panel->texLs, section); titem2 = (TextureListItem *) item->clientData; titem2->selectedFor |= 1 << section; } wfree(titem->title); wfree(titem->texture); WMReleasePropList(titem->prop); if (titem->path) { if (remove(titem->path) < 0 && errno != ENOENT) { werror("could not remove file %s", titem->path); } wfree(titem->path); } wfree(titem); WMRemoveListItem(panel->texLs, row); WMSetButtonEnabled(panel->delB, False); } static void extractTexture(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; char *path; WMOpenPanel *opanel; WMScreen *scr = WMWidgetScreen(w); opanel = WMGetOpenPanel(scr); WMSetFilePanelCanChooseDirectories(opanel, False); WMSetFilePanelCanChooseFiles(opanel, True); if (WMRunModalFilePanelForDirectory(opanel, panel->parent, wgethomedir(), _("Select File"), NULL)) { path = WMGetFilePanelFileName(opanel); OpenExtractPanelFor(panel, path); wfree(path); } } static void changePage(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int section; WMScreen *scr = WMWidgetScreen(panel->box); RContext *rc = WMScreenRContext(scr); static WMPoint positions[] = { {5, 10}, {5, 40}, {5, 70}, {5, 100}, {5, 120}, {5, 160}, {130, 150} }; if (w) { section = WMGetPopUpButtonSelectedItem(panel->secP); WMSelectListItem(panel->texLs, panel->textureIndex[section]); WMSetListPosition(panel->texLs, panel->textureIndex[section] - 2); } { WMColor *color; color = WMCreateRGBColor(scr, 0x5100, 0x5100, 0x7100, True); XFillRectangle(rc->dpy, panel->preview, WMColorGC(color), positions[panel->oldsection].x, positions[panel->oldsection].y, 22, 22); WMReleaseColor(color); } if (w) { panel->oldsection = section; WMDrawPixmap(panel->hand, panel->preview, positions[section].x, positions[section].y); } WMRedisplayWidget(panel->prevL); } static void previewClick(XEvent * event, void *clientData) { _Panel *panel = (_Panel *) clientData; int i; switch (panel->oldTabItem) { case 0: for (i = 0; i < sizeof(previewPositions) / sizeof(previewPositions[0]); i++) { if (event->xbutton.x >= previewPositions[i].pos.x && event->xbutton.y >= previewPositions[i].pos.y && event->xbutton.x < previewPositions[i].pos.x + previewPositions[i].size.width && event->xbutton.y < previewPositions[i].pos.y + previewPositions[i].size.height) { WMSetPopUpButtonSelectedItem(panel->secP, i); changePage(panel->secP, panel); return; } } break; case 1: for (i = 0; i < WMGetPopUpButtonNumberOfItems(panel->colP); i++) { if (event->xbutton.x >= previewColorPositions[i].pos.x && event->xbutton.y >= previewColorPositions[i].pos.y && event->xbutton.x < previewColorPositions[i].pos.x + previewColorPositions[i].size.width && event->xbutton.y < previewColorPositions[i].pos.y + previewColorPositions[i].size.height) { /* yuck kluge */ if (i == 7) i = 4; WMSetPopUpButtonSelectedItem(panel->colP, i); changeColorPage(panel->colP, panel); return; } } break; } } static void textureClick(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int i; WMListItem *item; TextureListItem *titem; i = WMGetListSelectedItemRow(panel->texLs); item = WMGetListItem(panel->texLs, i); titem = (TextureListItem *) item->clientData; if (titem->current) { WMSetButtonEnabled(panel->delB, False); } else { WMSetButtonEnabled(panel->delB, True); } } static void textureDoubleClick(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int i, section; WMListItem *item; TextureListItem *titem; /* unselect old texture */ section = WMGetPopUpButtonSelectedItem(panel->secP); item = WMGetListItem(panel->texLs, panel->textureIndex[section]); titem = (TextureListItem *) item->clientData; titem->selectedFor &= ~(1 << section); /* select new texture */ i = WMGetListSelectedItemRow(panel->texLs); item = WMGetListItem(panel->texLs, i); titem = (TextureListItem *) item->clientData; titem->selectedFor |= 1 << section; panel->textureIndex[section] = i; WMRedisplayWidget(panel->texLs); updatePreviewBox(panel, 1 << section); } static void paintListItem(WMList * lPtr, int index, Drawable d, char *text, int state, WMRect * rect) { _Panel *panel = (_Panel *) WMGetHangedData(lPtr); WMScreen *scr = WMWidgetScreen(lPtr); int width, height, x, y; Display *dpy = WMScreenDisplay(scr); WMColor *back = (state & WLDSSelected) ? WMWhiteColor(scr) : WMGrayColor(scr); WMListItem *item; WMColor *black = WMBlackColor(scr); TextureListItem *titem; item = WMGetListItem(lPtr, index); titem = (TextureListItem *) item->clientData; if (!titem) { WMReleaseColor(back); WMReleaseColor(black); return; } width = rect->size.width; height = rect->size.height; x = rect->pos.x; y = rect->pos.y; XFillRectangle(dpy, d, WMColorGC(back), x, y, width, height); if (titem->preview) XCopyArea(dpy, titem->preview, d, WMColorGC(black), 0, 0, TEXPREV_WIDTH, TEXPREV_HEIGHT, x + 5, y + 5); if ((1 << WMGetPopUpButtonSelectedItem(panel->secP)) & titem->selectedFor) WMDrawPixmap(panel->onLed, d, x + TEXPREV_WIDTH + 10, y + 6); else if (titem->selectedFor) WMDrawPixmap(panel->offLed, d, x + TEXPREV_WIDTH + 10, y + 6); WMDrawString(scr, d, black, panel->boldFont, x + TEXPREV_WIDTH + 22, y + 2, titem->title, strlen(titem->title)); WMDrawString(scr, d, black, panel->smallFont, x + TEXPREV_WIDTH + 14, y + 18, titem->texture, strlen(titem->texture)); WMReleaseColor(back); WMReleaseColor(black); } static Pixmap loadRImage(WMScreen * scr, const char *path) { FILE *f; RImage *image; int w, h, d; Pixmap pixmap; f = fopen(path, "rb"); if (!f) return None; fscanf(f, "%02x%02x%1x", &w, &h, &d); image = RCreateImage(w, h, d == 4); fread(image->data, 1, w * h * d, f); fclose(f); RConvertImage(WMScreenRContext(scr), image, &pixmap); RReleaseImage(image); return pixmap; } static void fillTextureList(WMList * lPtr) { WMPropList *textureList; WMPropList *texture; WMUserDefaults *udb = WMGetStandardUserDefaults(); TextureListItem *titem; WMScreen *scr = WMWidgetScreen(lPtr); int i; textureList = WMGetUDObjectForKey(udb, "TextureList"); if (!textureList) return; for (i = 0; i < WMGetPropListItemCount(textureList); i++) { WMListItem *item; texture = WMGetFromPLArray(textureList, i); titem = wmalloc(sizeof(TextureListItem)); titem->title = wstrdup(WMGetFromPLString(WMGetFromPLArray(texture, 0))); titem->prop = WMRetainPropList(WMGetFromPLArray(texture, 1)); titem->texture = WMGetPropListDescription(titem->prop, False); titem->selectedFor = 0; titem->path = wstrdup(WMGetFromPLString(WMGetFromPLArray(texture, 2))); titem->preview = loadRImage(scr, titem->path); if (!titem->preview) { titem->preview = renderTexture(scr, titem->prop, TEXPREV_WIDTH, TEXPREV_HEIGHT, NULL, 0); } item = WMAddListItem(lPtr, ""); item->clientData = titem; } } static void fillColorList(_Panel * panel) { WMColor *color; WMPropList *list; WMUserDefaults *udb = WMGetStandardUserDefaults(); WMScreen *scr = WMWidgetScreen(panel->box); int i; list = WMGetUDObjectForKey(udb, "ColorList"); if (!list) { for (i = 0; i < 24; i++) { color = WMCreateNamedColor(scr, sampleColors[i], False); if (!color) continue; WMSetColorWellColor(panel->sampW[i], color); WMReleaseColor(color); } } else { WMPropList *c; for (i = 0; i < WMIN(24, WMGetPropListItemCount(list)); i++) { c = WMGetFromPLArray(list, i); if (!c || !WMIsPLString(c)) continue; color = WMCreateNamedColor(scr, WMGetFromPLString(c), False); if (!color) continue; WMSetColorWellColor(panel->sampW[i], color); WMReleaseColor(color); } } } /*************************************************************************/ static void changeColorPage(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int section; WMScreen *scr = WMWidgetScreen(panel->box); RContext *rc = WMScreenRContext(scr); static WMPoint positions[] = { {5, 10}, {5, 40}, {5, 70}, {5, 120}, {5, 140}, {5, 160}, {5, 180}, {5, 180}, {130, 140}, {130, 140}, {130, 140}, {130, 140} }; if (panel->preview) { WMColor *color; color = WMCreateRGBColor(scr, 0x5100, 0x5100, 0x7100, True); XFillRectangle(rc->dpy, panel->preview, WMColorGC(color), positions[panel->oldcsection].x, positions[panel->oldcsection].y, 22, 22); WMReleaseColor(color); } if (w) { section = WMGetPopUpButtonSelectedItem(panel->colP); panel->oldcsection = section; if (panel->preview) WMDrawPixmap(panel->hand, panel->preview, positions[section].x, positions[section].y); section = WMGetPopUpButtonSelectedItem(panel->colP); WMSetColorWellColor(panel->colW, panel->colors[section]); } WMRedisplayWidget(panel->prevL); } static void paintText(WMScreen * scr, Drawable d, WMColor * color, WMFont * font, int x, int y, int w, int h, WMAlignment align, char *text) { int l = strlen(text); switch (align) { case WALeft: x += 5; break; case WARight: x += w - 5 - WMWidthOfString(font, text, l); break; default: case WACenter: x += (w - WMWidthOfString(font, text, l)) / 2; break; } WMDrawString(scr, d, color, font, x, y + (h - WMFontHeight(font)) / 2, text, l); } static void updateColorPreviewBox(_Panel * panel, int elements) { WMScreen *scr = WMWidgetScreen(panel->box); Display *dpy = WMScreenDisplay(scr); Pixmap d, pnot; GC gc; d = panel->preview; pnot = panel->previewNoText; gc = WMColorGC(panel->colors[0]); if (elements & FTITLE_COL) { XCopyArea(dpy, pnot, d, gc, 30, 10, 190, 20, 30, 10); paintText(scr, d, panel->colors[0], panel->boldFont, 30, 10, 190, 20, panel->titleAlignment, _("Focused Window")); } if (elements & UTITLE_COL) { XCopyArea(dpy, pnot, d, gc, 30, 40, 190, 20, 30, 40); paintText(scr, d, panel->colors[1], panel->boldFont, 30, 40, 190, 20, panel->titleAlignment, _("Unfocused Window")); } if (elements & OTITLE_COL) { XCopyArea(dpy, pnot, d, gc, 30, 70, 190, 20, 30, 70); paintText(scr, d, panel->colors[2], panel->boldFont, 30, 70, 190, 20, panel->titleAlignment, _("Owner of Focused Window")); } if (elements & MTITLE_COL) { XCopyArea(dpy, pnot, d, gc, 30, 120, 90, 20, 30, 120); paintText(scr, d, panel->colors[3], panel->boldFont, 30, 120, 90, 20, WALeft, _("Menu Title")); } if (elements & MITEM_COL) { XCopyArea(dpy, pnot, d, gc, 30, 140, 90, 20, 30, 140); paintText(scr, d, panel->colors[4], panel->normalFont, 30, 140, 90, 20, WALeft, _("Normal Item")); XCopyArea(dpy, pnot, d, gc, 30, 200, 90, 20, 30, 200); paintText(scr, d, panel->colors[4], panel->normalFont, 30, 200, 90, 20, WALeft, _("Normal Item")); } if (elements & MDISAB_COL) { XCopyArea(dpy, pnot, d, gc, 30, 160, 90, 20, 30, 160); paintText(scr, d, panel->colors[5], panel->normalFont, 30, 160, 90, 20, WALeft, _("Disabled Item")); } if (elements & MHIGH_COL) { XFillRectangle(WMScreenDisplay(scr), d, WMColorGC(panel->colors[6]), 31, 181, 87, 17); XFillRectangle(WMScreenDisplay(scr), pnot, WMColorGC(panel->colors[6]), 31, 181, 87, 17); elements |= MHIGHT_COL; } if (elements & MHIGHT_COL) { XCopyArea(dpy, pnot, d, gc, 30, 180, 90, 20, 30, 180); paintText(scr, d, panel->colors[7], panel->normalFont, 30, 180, 90, 20, WALeft, _("Highlighted")); } /* if (elements & ICONT_COL) { WRITE(_("Focused Window"), panel->colors[8], panel->boldFont, 155, 130, 64); } if (elements & ICONB_COL) { WRITE(_("Focused Window"), panel->colors[9], panel->boldFont, 0, 0, 30); } if (elements & CLIP_COL) { WRITE(_("Focused Window"), panel->colors[10], panel->boldFont, 0, 0, 30); } if (elements & CCLIP_COL) { WRITE(_("Focused Window"), panel->colors[11], panel->boldFont, 0, 0, 30); } */ WMRedisplayWidget(panel->prevL); } static void colorWellObserver(void *self, WMNotification * n) { _Panel *panel = (_Panel *) self; int p; p = WMGetPopUpButtonSelectedItem(panel->colP); WMReleaseColor(panel->colors[p]); panel->colors[p] = WMRetainColor(WMGetColorWellColor(panel->colW)); updateColorPreviewBox(panel, 1 << p); } static void changedTabItem(struct WMTabViewDelegate *self, WMTabView * tabView, WMTabViewItem * item) { _Panel *panel = self->data; int i; i = WMGetTabViewItemIdentifier(item); switch (i) { case 0: switch (panel->oldTabItem) { case 1: changeColorPage(NULL, panel); break; } changePage(panel->secP, panel); break; case 1: switch (panel->oldTabItem) { case 0: changePage(NULL, panel); break; } changeColorPage(panel->colP, panel); break; case 3: switch (panel->oldTabItem) { case 0: changePage(NULL, panel); break; case 1: changeColorPage(NULL, panel); break; } break; } panel->oldTabItem = i; } /*************************************************************************/ static void menuStyleCallback(WMWidget * self, void *data) { _Panel *panel = (_Panel *) data; if (self == panel->mstyB[0]) { panel->menuStyle = MSTYLE_NORMAL; updatePreviewBox(panel, 1 << PMITEM); } else if (self == panel->mstyB[1]) { panel->menuStyle = MSTYLE_SINGLE; updatePreviewBox(panel, 1 << PMITEM); } else if (self == panel->mstyB[2]) { panel->menuStyle = MSTYLE_FLAT; updatePreviewBox(panel, 1 << PMITEM); } } static void titleAlignCallback(WMWidget * self, void *data) { _Panel *panel = (_Panel *) data; if (self == panel->taliB[0]) { panel->titleAlignment = WALeft; updatePreviewBox(panel, 1 << PFOCUSED | 1 << PUNFOCUSED | 1 << POWNER); } else if (self == panel->taliB[1]) { panel->titleAlignment = WACenter; updatePreviewBox(panel, 1 << PFOCUSED | 1 << PUNFOCUSED | 1 << POWNER); } else if (self == panel->taliB[2]) { panel->titleAlignment = WARight; updatePreviewBox(panel, 1 << PFOCUSED | 1 << PUNFOCUSED | 1 << POWNER); } } static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; WMFont *font; WMScreen *scr = WMWidgetScreen(panel->parent); WMTabViewItem *item; int i; char *tmp; Bool ok = True; panel->fprefix = wstrconcat(wusergnusteppath(), "/Library/WindowMaker"); if (access(panel->fprefix, F_OK) != 0) { if (mkdir(panel->fprefix, 0755) < 0) { werror("%s", panel->fprefix); ok = False; } } if (ok) { tmp = wstrconcat(panel->fprefix, "/WPrefs/"); wfree(panel->fprefix); panel->fprefix = tmp; if (access(panel->fprefix, F_OK) != 0) { if (mkdir(panel->fprefix, 0755) < 0) { werror("%s", panel->fprefix); } } } panel->smallFont = WMSystemFontOfSize(scr, 10); panel->normalFont = WMSystemFontOfSize(scr, 12); panel->boldFont = WMBoldSystemFontOfSize(scr, 12); panel->onLed = WMCreatePixmapFromXPMData(scr, blueled_xpm); panel->offLed = WMCreatePixmapFromXPMData(scr, blueled2_xpm); panel->hand = WMCreatePixmapFromXPMData(scr, hand_xpm); panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); /* preview box */ panel->prevL = WMCreateLabel(panel->box); WMResizeWidget(panel->prevL, 240, FRAME_HEIGHT - 20); WMMoveWidget(panel->prevL, 15, 10); WMSetLabelRelief(panel->prevL, WRSunken); WMSetLabelImagePosition(panel->prevL, WIPImageOnly); WMCreateEventHandler(WMWidgetView(panel->prevL), ButtonPressMask, previewClick, panel); /* tabview */ tabviewDelegate.data = panel; panel->tabv = WMCreateTabView(panel->box); WMResizeWidget(panel->tabv, 245, FRAME_HEIGHT - 20); WMMoveWidget(panel->tabv, 265, 10); WMSetTabViewDelegate(panel->tabv, &tabviewDelegate); /*** texture list ***/ panel->texF = WMCreateFrame(panel->box); WMSetFrameRelief(panel->texF, WRFlat); item = WMCreateTabViewItemWithIdentifier(0); WMSetTabViewItemView(item, WMWidgetView(panel->texF)); WMSetTabViewItemLabel(item, _("Texture")); WMAddItemInTabView(panel->tabv, item); panel->secP = WMCreatePopUpButton(panel->texF); WMResizeWidget(panel->secP, 228, 20); WMMoveWidget(panel->secP, 7, 7); WMAddPopUpButtonItem(panel->secP, _("Titlebar of Focused Window")); WMAddPopUpButtonItem(panel->secP, _("Titlebar of Unfocused Windows")); WMAddPopUpButtonItem(panel->secP, _("Titlebar of Focused Window's Owner")); WMAddPopUpButtonItem(panel->secP, _("Window Resizebar")); WMAddPopUpButtonItem(panel->secP, _("Titlebar of Menus")); WMAddPopUpButtonItem(panel->secP, _("Menu Items")); WMAddPopUpButtonItem(panel->secP, _("Icon Background")); /* WMAddPopUpButtonItem(panel->secP, _("Workspace Backgrounds")); */ WMSetPopUpButtonSelectedItem(panel->secP, 0); WMSetPopUpButtonAction(panel->secP, changePage, panel); panel->texLs = WMCreateList(panel->texF); WMResizeWidget(panel->texLs, 165, 155); WMMoveWidget(panel->texLs, 70, 33); WMSetListUserDrawItemHeight(panel->texLs, 35); WMSetListUserDrawProc(panel->texLs, paintListItem); WMHangData(panel->texLs, panel); WMSetListAction(panel->texLs, textureClick, panel); WMSetListDoubleAction(panel->texLs, textureDoubleClick, panel); WMSetBalloonTextForView(_("Double click in the texture you want to use\n" "for the selected item."), WMWidgetView(panel->texLs)); /* command buttons */ font = WMSystemFontOfSize(scr, 10); panel->newB = WMCreateCommandButton(panel->texF); WMResizeWidget(panel->newB, 57, 39); WMMoveWidget(panel->newB, 7, 33); WMSetButtonFont(panel->newB, font); WMSetButtonImagePosition(panel->newB, WIPAbove); WMSetButtonText(panel->newB, _("New")); WMSetButtonAction(panel->newB, newTexture, panel); SetButtonAlphaImage(scr, panel->newB, TNEW_FILE, NULL, NULL); WMSetBalloonTextForView(_("Create a new texture."), WMWidgetView(panel->newB)); panel->ripB = WMCreateCommandButton(panel->texF); WMResizeWidget(panel->ripB, 57, 39); WMMoveWidget(panel->ripB, 7, 72); WMSetButtonFont(panel->ripB, font); WMSetButtonImagePosition(panel->ripB, WIPAbove); WMSetButtonText(panel->ripB, _("Extract...")); WMSetButtonAction(panel->ripB, extractTexture, panel); SetButtonAlphaImage(scr, panel->ripB, TEXTR_FILE, NULL, NULL); WMSetBalloonTextForView(_("Extract texture(s) from a theme or a style file."), WMWidgetView(panel->ripB)); WMSetButtonEnabled(panel->ripB, False); panel->editB = WMCreateCommandButton(panel->texF); WMResizeWidget(panel->editB, 57, 39); WMMoveWidget(panel->editB, 7, 111); WMSetButtonFont(panel->editB, font); WMSetButtonImagePosition(panel->editB, WIPAbove); WMSetButtonText(panel->editB, _("Edit")); SetButtonAlphaImage(scr, panel->editB, TEDIT_FILE, NULL, NULL); WMSetButtonAction(panel->editB, editTexture, panel); WMSetBalloonTextForView(_("Edit the highlighted texture."), WMWidgetView(panel->editB)); panel->delB = WMCreateCommandButton(panel->texF); WMResizeWidget(panel->delB, 57, 38); WMMoveWidget(panel->delB, 7, 150); WMSetButtonFont(panel->delB, font); WMSetButtonImagePosition(panel->delB, WIPAbove); WMSetButtonText(panel->delB, _("Delete")); SetButtonAlphaImage(scr, panel->delB, TDEL_FILE, NULL, NULL); WMSetButtonEnabled(panel->delB, False); WMSetButtonAction(panel->delB, deleteTexture, panel); WMSetBalloonTextForView(_("Delete the highlighted texture."), WMWidgetView(panel->delB)); WMReleaseFont(font); WMMapSubwidgets(panel->texF); /*** colors ***/ panel->colF = WMCreateFrame(panel->box); WMSetFrameRelief(panel->colF, WRFlat); item = WMCreateTabViewItemWithIdentifier(1); WMSetTabViewItemView(item, WMWidgetView(panel->colF)); WMSetTabViewItemLabel(item, _("Color")); WMAddItemInTabView(panel->tabv, item); panel->colP = WMCreatePopUpButton(panel->colF); WMResizeWidget(panel->colP, 228, 20); WMMoveWidget(panel->colP, 7, 7); WMAddPopUpButtonItem(panel->colP, _("Focused Window Title")); WMAddPopUpButtonItem(panel->colP, _("Unfocused Window Title")); WMAddPopUpButtonItem(panel->colP, _("Owner of Focused Window Title")); WMAddPopUpButtonItem(panel->colP, _("Menu Title")); WMAddPopUpButtonItem(panel->colP, _("Menu Item Text")); WMAddPopUpButtonItem(panel->colP, _("Disabled Menu Item Text")); WMAddPopUpButtonItem(panel->colP, _("Menu Highlight Color")); WMAddPopUpButtonItem(panel->colP, _("Highlighted Menu Text Color")); /* WMAddPopUpButtonItem(panel->colP, _("Miniwindow Title")); WMAddPopUpButtonItem(panel->colP, _("Miniwindow Title Back")); WMAddPopUpButtonItem(panel->colP, _("Clip Title")); WMAddPopUpButtonItem(panel->colP, _("Collapsed Clip Title")); */ WMSetPopUpButtonSelectedItem(panel->colP, 0); WMSetPopUpButtonAction(panel->colP, changeColorPage, panel); panel->colW = WMCreateColorWell(panel->colF); WMResizeWidget(panel->colW, 65, 50); WMMoveWidget(panel->colW, 30, 75); WMAddNotificationObserver(colorWellObserver, panel, WMColorWellDidChangeNotification, panel->colW); for (i = 0; i < 4; i++) { int j; for (j = 0; j < 6; j++) { panel->sampW[i + j * 4] = WMCreateColorWell(panel->colF); WMResizeWidget(panel->sampW[i + j * 4], 22, 22); WMMoveWidget(panel->sampW[i + j * 4], 130 + i * 22, 40 + j * 22); WSetColorWellBordered(panel->sampW[i + j * 4], False); } } WMMapSubwidgets(panel->colF); #ifdef unfinished /*** root bg ***/ panel->bgF = WMCreateFrame(panel->box); WMSetFrameRelief(panel->bgF, WRFlat); item = WMCreateTabViewItemWithIdentifier(2); WMSetTabViewItemView(item, WMWidgetView(panel->bgF)); WMSetTabViewItemLabel(item, _("Background")); WMAddItemInTabView(panel->tabv, item); panel->bgprevL = WMCreateLabel(panel->bgF); WMResizeWidget(panel->bgprevL, 230, 155); WMMoveWidget(panel->bgprevL, 5, 5); WMSetLabelRelief(panel->bgprevL, WRSunken); panel->selbgB = WMCreateCommandButton(panel->bgF); WMMoveWidget(panel->selbgB, 5, 165); WMResizeWidget(panel->selbgB, 100, 24); WMSetButtonText(panel->selbgB, _("Browse...")); WMMapSubwidgets(panel->bgF); #endif /* unfinished */ /*** options ***/ panel->optF = WMCreateFrame(panel->box); WMSetFrameRelief(panel->optF, WRFlat); item = WMCreateTabViewItemWithIdentifier(3); WMSetTabViewItemView(item, WMWidgetView(panel->optF)); WMSetTabViewItemLabel(item, _("Options")); WMAddItemInTabView(panel->tabv, item); panel->mstyF = WMCreateFrame(panel->optF); WMResizeWidget(panel->mstyF, 215, 85); WMMoveWidget(panel->mstyF, 15, 10); WMSetFrameTitle(panel->mstyF, _("Menu Style")); for (i = 0; i < 3; i++) { WMPixmap *icon; char *path; panel->mstyB[i] = WMCreateButton(panel->mstyF, WBTOnOff); WMResizeWidget(panel->mstyB[i], 54, 54); WMMoveWidget(panel->mstyB[i], 15 + i * 65, 20); WMSetButtonImagePosition(panel->mstyB[i], WIPImageOnly); WMSetButtonAction(panel->mstyB[i], menuStyleCallback, panel); switch (i) { case 0: path = LocateImage(MSTYLE1_FILE); break; case 1: path = LocateImage(MSTYLE2_FILE); break; case 2: path = LocateImage(MSTYLE3_FILE); break; } if (path) { icon = WMCreatePixmapFromFile(scr, path); if (icon) { WMSetButtonImage(panel->mstyB[i], icon); WMReleasePixmap(icon); } else { wwarning(_("could not load icon file %s"), path); } wfree(path); } } WMGroupButtons(panel->mstyB[0], panel->mstyB[1]); WMGroupButtons(panel->mstyB[0], panel->mstyB[2]); WMMapSubwidgets(panel->mstyF); panel->taliF = WMCreateFrame(panel->optF); WMResizeWidget(panel->taliF, 110, 80); WMMoveWidget(panel->taliF, 15, 100); WMSetFrameTitle(panel->taliF, _("Title Alignment")); for (i = 0; i < 3; i++) { panel->taliB[i] = WMCreateRadioButton(panel->taliF); WMSetButtonAction(panel->taliB[i], titleAlignCallback, panel); switch (i) { case 0: WMSetButtonText(panel->taliB[i], _("Left")); break; case 1: WMSetButtonText(panel->taliB[i], _("Center")); break; case 2: WMSetButtonText(panel->taliB[i], _("Right")); break; } WMResizeWidget(panel->taliB[i], 90, 18); WMMoveWidget(panel->taliB[i], 10, 15 + 20 * i); } WMGroupButtons(panel->taliB[0], panel->taliB[1]); WMGroupButtons(panel->taliB[0], panel->taliB[2]); WMMapSubwidgets(panel->taliF); WMMapSubwidgets(panel->optF); /**/ WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); WMSetPopUpButtonSelectedItem(panel->secP, 0); showData(panel); changePage(panel->secP, panel); fillTextureList(panel->texLs); fillColorList(panel); panel->texturePanel = CreateTexturePanel(panel->parent); } static void setupTextureFor(WMList * list, const char *key, char *defValue, const char *title, int index) { WMListItem *item; TextureListItem *titem; titem = wmalloc(sizeof(TextureListItem)); titem->title = wstrdup(title); titem->prop = GetObjectForKey(key); if (!titem->prop || !WMIsPLArray(titem->prop)) { /* Maybe also give a error message to stderr that the entry is bad? */ titem->prop = WMCreatePropListFromDescription(defValue); } else { WMRetainPropList(titem->prop); } titem->texture = WMGetPropListDescription((WMPropList *) titem->prop, False); titem->current = 1; titem->selectedFor = 1 << index; titem->ispixmap = isPixmap(titem->prop); titem->preview = renderTexture(WMWidgetScreen(list), titem->prop, TEXPREV_WIDTH, TEXPREV_HEIGHT, NULL, 0); item = WMAddListItem(list, ""); item->clientData = titem; } static void showData(_Panel * panel) { int i; char *str; str = GetStringForKey("MenuStyle"); if (str && strcasecmp(str, "flat") == 0) { panel->menuStyle = MSTYLE_FLAT; } else if (str && strcasecmp(str, "singletexture") == 0) { panel->menuStyle = MSTYLE_SINGLE; } else { panel->menuStyle = MSTYLE_NORMAL; } str = GetStringForKey("TitleJustify"); if (str && strcasecmp(str, "left") == 0) { panel->titleAlignment = WALeft; } else if (str && strcasecmp(str, "right") == 0) { panel->titleAlignment = WARight; } else { panel->titleAlignment = WACenter; } for (i = 0; i < sizeof(colorOptions) / (2 * sizeof(char *)); i++) { WMColor *color; str = GetStringForKey(colorOptions[i * 2]); if (!str) str = colorOptions[i * 2 + 1]; if (!(color = WMCreateNamedColor(WMWidgetScreen(panel->box), str, False))) { color = WMCreateNamedColor(WMWidgetScreen(panel->box), "#000000", False); } panel->colors[i] = color; } changeColorPage(panel->colP, panel); for (i = 0; i < sizeof(textureOptions) / (3 * sizeof(char *)); i++) { setupTextureFor(panel->texLs, textureOptions[i * 3], textureOptions[i * 3 + 1], textureOptions[i * 3 + 2], i); panel->textureIndex[i] = i; } updatePreviewBox(panel, EVERYTHING); WMSetButtonSelected(panel->mstyB[panel->menuStyle], True); WMSetButtonSelected(panel->taliB[panel->titleAlignment], True); } static void storeData(_Panel * panel) { TextureListItem *titem; WMListItem *item; int i; for (i = 0; i < sizeof(textureOptions) / (sizeof(char *) * 3); i++) { item = WMGetListItem(panel->texLs, panel->textureIndex[i]); titem = (TextureListItem *) item->clientData; SetObjectForKey(titem->prop, textureOptions[i * 3]); } for (i = 0; i < 8; i++) { char *str; str = WMGetColorRGBDescription(panel->colors[i]); if (str) { SetStringForKey(str, colorOptions[i * 2]); wfree(str); } } switch (panel->menuStyle) { case MSTYLE_SINGLE: SetStringForKey("singletexture", "MenuStyle"); break; case MSTYLE_FLAT: SetStringForKey("flat", "MenuStyle"); break; default: case MSTYLE_NORMAL: SetStringForKey("normal", "MenuStyle"); break; } switch (panel->titleAlignment) { case WALeft: SetStringForKey("left", "TitleJustify"); break; case WARight: SetStringForKey("right", "TitleJustify"); break; default: case WACenter: SetStringForKey("center", "TitleJustify"); break; } } static void prepareForClose(_Panel * panel) { WMPropList *textureList; WMPropList *texture; TextureListItem *titem; WMListItem *item; WMUserDefaults *udb = WMGetStandardUserDefaults(); int i; textureList = WMCreatePLArray(NULL, NULL); /* store list of textures */ for (i = 7; i < WMGetListNumberOfRows(panel->texLs); i++) { item = WMGetListItem(panel->texLs, i); titem = (TextureListItem *) item->clientData; texture = WMCreatePLArray(WMCreatePLString(titem->title), WMRetainPropList(titem->prop), WMCreatePLString(titem->path), NULL); WMAddToPLArray(textureList, texture); } WMSetUDObjectForKey(udb, textureList, "TextureList"); WMReleasePropList(textureList); /* store list of colors */ textureList = WMCreatePLArray(NULL, NULL); for (i = 0; i < 24; i++) { WMColor *color; char *str; color = WMGetColorWellColor(panel->sampW[i]); str = WMGetColorRGBDescription(color); WMAddToPLArray(textureList, WMCreatePLString(str)); wfree(str); } WMSetUDObjectForKey(udb, textureList, "ColorList"); WMReleasePropList(textureList); WMSynchronizeUserDefaults(udb); } Panel *InitAppearance(WMScreen *scr, WMWidget *parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Appearance Preferences"); panel->description = _("Background texture configuration for windows,\n" "menus and icons."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; panel->callbacks.prepareForClose = prepareForClose; AddSection(panel, ICON_FILE); return panel; } /****************************************************************************/ typedef struct ExtractPanel { WMWindow *win; WMLabel *label; WMList *list; WMButton *closeB; WMButton *extrB; } ExtractPanel; static void OpenExtractPanelFor(_Panel * panel, const char *path) { ExtractPanel *epanel; WMColor *color; WMFont *font; WMScreen *scr = WMWidgetScreen(panel->parent); epanel = wmalloc(sizeof(ExtractPanel)); epanel->win = WMCreatePanelWithStyleForWindow(panel->parent, "extract", WMTitledWindowMask | WMClosableWindowMask); WMResizeWidget(epanel->win, 245, 250); WMSetWindowTitle(epanel->win, _("Extract Texture")); epanel->label = WMCreateLabel(epanel->win); WMResizeWidget(epanel->label, 225, 18); WMMoveWidget(epanel->label, 10, 10); WMSetLabelTextAlignment(epanel->label, WACenter); WMSetLabelRelief(epanel->label, WRSunken); color = WMDarkGrayColor(scr); WMSetWidgetBackgroundColor(epanel->label, color); WMReleaseColor(color); color = WMWhiteColor(scr); WMSetLabelTextColor(epanel->label, color); WMReleaseColor(color); font = WMBoldSystemFontOfSize(scr, 12); WMSetLabelFont(epanel->label, font); WMReleaseFont(font); WMSetLabelText(epanel->label, _("Textures")); epanel->list = WMCreateList(epanel->win); WMResizeWidget(epanel->list, 225, 165); WMMoveWidget(epanel->list, 10, 30); epanel->closeB = WMCreateCommandButton(epanel->win); WMResizeWidget(epanel->closeB, 74, 24); WMMoveWidget(epanel->closeB, 165, 215); WMSetButtonText(epanel->closeB, _("Close")); epanel->extrB = WMCreateCommandButton(epanel->win); WMResizeWidget(epanel->extrB, 74, 24); WMMoveWidget(epanel->extrB, 80, 215); WMSetButtonText(epanel->extrB, _("Extract")); WMMapSubwidgets(epanel->win); /* take textures from file */ WMRealizeWidget(epanel->win); WMMapWidget(epanel->win); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/Workspace.c�����������������������������������������������������������0000644�0001750�0001750�00000014621�12214432632�015054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Workspace.c- workspace options * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMFrame *navF; WMButton *linkB; WMButton *cyclB; WMButton *newB; WMLabel *linkL; WMLabel *cyclL; WMLabel *newL; WMLabel *posiL; WMLabel *posL; WMPopUpButton *posP; } _Panel; #define ICON_FILE "workspace" #define ARQUIVO_XIS "xis" #define DONT_LINK_FILE "dontlinkworkspaces" #define CYCLE_FILE "cycleworkspaces" #define ADVANCE_FILE "advancetonewworkspace" #define WSNAME_FILE "workspacename" static char *WSNamePositions[] = { "none", "center", "top", "bottom", "topleft", "topright", "bottomleft", "bottomright" }; static void showData(_Panel * panel) { int i, idx; char *str; WMSetButtonSelected(panel->linkB, !GetBoolForKey("DontLinkWorkspaces")); WMSetButtonSelected(panel->cyclB, GetBoolForKey("CycleWorkspaces")); WMSetButtonSelected(panel->newB, GetBoolForKey("AdvanceToNewWorkspace")); str = GetStringForKey("WorkspaceNameDisplayPosition"); if (!str) str = "center"; idx = 1; /* center */ for (i = 0; i < sizeof(WSNamePositions) / sizeof(WSNamePositions[0]); i++) { if (strcasecmp(WSNamePositions[i], str) == 0) { idx = i; break; } } WMSetPopUpButtonSelectedItem(panel->posP, idx); } static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; WMScreen *scr = WMWidgetScreen(panel->parent); WMPixmap *icon1; RImage *xis = NULL; RContext *rc = WMScreenRContext(scr); char *path; path = LocateImage(ARQUIVO_XIS); if (path) { xis = RLoadImage(rc, path, 0); if (!xis) { wwarning(_("could not load image file %s"), path); } wfree(path); } panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); /***************** Workspace Navigation *****************/ panel->navF = WMCreateFrame(panel->box); WMResizeWidget(panel->navF, 490, 210); WMMoveWidget(panel->navF, 15, 10); WMSetFrameTitle(panel->navF, _("Workspace Navigation")); panel->cyclB = WMCreateSwitchButton(panel->navF); WMResizeWidget(panel->cyclB, 410, 34); WMMoveWidget(panel->cyclB, 75, 30); WMSetButtonText(panel->cyclB, _("Wrap to the first workspace from the last workspace.")); panel->cyclL = WMCreateLabel(panel->navF); WMResizeWidget(panel->cyclL, 60, 60); WMMoveWidget(panel->cyclL, 10, 15); WMSetLabelImagePosition(panel->cyclL, WIPImageOnly); CreateImages(scr, rc, xis, CYCLE_FILE, &icon1, NULL); if (icon1) { WMSetLabelImage(panel->cyclL, icon1); WMReleasePixmap(icon1); } /**/ panel->linkB = WMCreateSwitchButton(panel->navF); WMResizeWidget(panel->linkB, 410, 34); WMMoveWidget(panel->linkB, 75, 75); WMSetButtonText(panel->linkB, _("Switch workspaces while dragging windows.")); panel->linkL = WMCreateLabel(panel->navF); WMResizeWidget(panel->linkL, 60, 40); WMMoveWidget(panel->linkL, 10, 80); WMSetLabelImagePosition(panel->linkL, WIPImageOnly); CreateImages(scr, rc, xis, DONT_LINK_FILE, &icon1, NULL); if (icon1) { WMSetLabelImage(panel->linkL, icon1); WMReleasePixmap(icon1); } /**/ panel->newB = WMCreateSwitchButton(panel->navF); WMResizeWidget(panel->newB, 410, 34); WMMoveWidget(panel->newB, 75, 120); WMSetButtonText(panel->newB, _("Automatically create new workspaces.")); panel->newL = WMCreateLabel(panel->navF); WMResizeWidget(panel->newL, 60, 20); WMMoveWidget(panel->newL, 10, 130); WMSetLabelImagePosition(panel->newL, WIPImageOnly); CreateImages(scr, rc, xis, ADVANCE_FILE, &icon1, NULL); if (icon1) { WMSetLabelImage(panel->newL, icon1); WMReleasePixmap(icon1); } /**/ panel->posL = WMCreateLabel(panel->navF); WMResizeWidget(panel->posL, 200, 30); WMMoveWidget(panel->posL, 75, 165); // WMSetLabelTextAlignment(panel->posL, WARight); WMSetLabelText(panel->posL, _("Position of workspace name display")); panel->posiL = WMCreateLabel(panel->navF); WMResizeWidget(panel->posiL, 60, 40); WMMoveWidget(panel->posiL, 10, 160); WMSetLabelImagePosition(panel->posiL, WIPImageOnly); CreateImages(scr, rc, xis, WSNAME_FILE, &icon1, NULL); if (icon1) { WMSetLabelImage(panel->posiL, icon1); WMReleasePixmap(icon1); } panel->posP = WMCreatePopUpButton(panel->navF); WMResizeWidget(panel->posP, 125, 20); WMMoveWidget(panel->posP, 290, 170); WMAddPopUpButtonItem(panel->posP, _("Disable")); WMAddPopUpButtonItem(panel->posP, _("Center")); WMAddPopUpButtonItem(panel->posP, _("Top")); WMAddPopUpButtonItem(panel->posP, _("Bottom")); WMAddPopUpButtonItem(panel->posP, _("Top/Left")); WMAddPopUpButtonItem(panel->posP, _("Top/Right")); WMAddPopUpButtonItem(panel->posP, _("Bottom/Left")); WMAddPopUpButtonItem(panel->posP, _("Bottom/Right")); WMMapSubwidgets(panel->navF); if (xis) RReleaseImage(xis); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); showData(panel); } static void storeData(_Panel * panel) { SetBoolForKey(!WMGetButtonSelected(panel->linkB), "DontLinkWorkspaces"); SetBoolForKey(WMGetButtonSelected(panel->cyclB), "CycleWorkspaces"); SetBoolForKey(WMGetButtonSelected(panel->newB), "AdvanceToNewWorkspace"); SetStringForKey(WSNamePositions[WMGetPopUpButtonSelectedItem(panel->posP)], "WorkspaceNameDisplayPosition"); } Panel *InitWorkspace(WMScreen * scr, WMWidget * parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Workspace Preferences"); panel->description = _("Workspace navigation features.\n" "You can also enable/disable the Dock and Clip here."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; AddSection(panel, ICON_FILE); return panel; } ���������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/KeyboardShortcuts.c���������������������������������������������������0000644�0001750�0001750�00000044647�12214432632�016610� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* KeyboardShortcuts.c- keyboard shortcut bindings * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2003 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "config.h" /* for HAVE_XCONVERTCASE */ #include "WPrefs.h" #include <ctype.h> #include <X11/keysym.h> #include <X11/XKBlib.h> typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMLabel *actL; WMList *actLs; WMFrame *shoF; WMTextField *shoT; WMButton *cleB; WMButton *defB; WMLabel *instructionsL; WMColor *white; WMColor *black; WMColor *gray; WMFont *font; Bool capturing; char **shortcuts; int actionCount; } _Panel; #define ICON_FILE "keyshortcuts" /* * List of user definable shortcut keys * First parameter is the internal keyword known by WMaker * Second is the text displayed to the user */ static const struct { const char *key; const char *title; } keyOptions[] = { { "RootMenuKey", N_("Open applications menu") }, { "WindowListKey", N_("Open window list menu") }, { "WindowMenuKey", N_("Open window commands menu") }, { "HideKey", N_("Hide active application") }, { "HideOthersKey", N_("Hide other applications") }, { "MiniaturizeKey", N_("Miniaturize active window") }, { "MinimizeAllKey", N_("Miniaturize all windows") }, { "CloseKey", N_("Close active window") }, { "MaximizeKey", N_("Maximize active window") }, { "VMaximizeKey", N_("Maximize active window vertically") }, { "HMaximizeKey", N_("Maximize active window horizontally") }, { "LHMaximizeKey", N_("Maximize active window left half") }, { "RHMaximizeKey", N_("Maximize active window right half") }, { "THMaximizeKey", N_("Maximize active window top half") }, { "BHMaximizeKey", N_("Maximize active window bottom half") }, { "LTCMaximizeKey", N_("Maximize active window left top corner") }, { "RTCMaximizeKey", N_("Maximize active window right top corner") }, { "LBCMaximizeKey", N_("Maximize active window left bottom corner") }, { "RBCMaximizeKey", N_("Maximize active window right bottom corner") }, { "MaximusKey", N_("Maximus: Tiled maximization ") }, { "RaiseKey", N_("Raise active window") }, { "LowerKey", N_("Lower active window") }, { "RaiseLowerKey", N_("Raise/Lower window under mouse pointer") }, { "ShadeKey", N_("Shade active window") }, { "MoveResizeKey", N_("Move/Resize active window") }, { "SelectKey", N_("Select active window") }, { "FocusNextKey", N_("Focus next window") }, { "FocusPrevKey", N_("Focus previous window") }, { "GroupNextKey", N_("Focus next group window") }, { "GroupPrevKey", N_("Focus previous group window") }, /* Workspace Related */ { "NextWorkspaceKey", N_("Switch to next workspace") }, { "PrevWorkspaceKey", N_("Switch to previous workspace") }, { "LastWorkspaceKey", N_("Switch to last used workspace") }, { "NextWorkspaceLayerKey", N_("Switch to next ten workspaces") }, { "PrevWorkspaceLayerKey", N_("Switch to previous ten workspaces") }, { "Workspace1Key", N_("Switch to workspace 1") }, { "Workspace2Key", N_("Switch to workspace 2") }, { "Workspace3Key", N_("Switch to workspace 3") }, { "Workspace4Key", N_("Switch to workspace 4") }, { "Workspace5Key", N_("Switch to workspace 5") }, { "Workspace6Key", N_("Switch to workspace 6") }, { "Workspace7Key", N_("Switch to workspace 7") }, { "Workspace8Key", N_("Switch to workspace 8") }, { "Workspace9Key", N_("Switch to workspace 9") }, { "Workspace10Key", N_("Switch to workspace 10") }, { "MoveToNextWorkspaceKey", N_("Move window to next workspace") }, { "MoveToPrevWorkspaceKey", N_("Move window to previous workspace") }, { "MoveToLastWorkspaceKey", N_("Move window to last used workspace") }, { "MoveToNextWorkspaceLayerKey", N_("Move window to next ten workspaces") }, { "MoveToPrevWorkspaceLayerKey", N_("Move window to previous ten workspaces") }, { "MoveToWorkspace1Key", N_("Move window to workspace 1") }, { "MoveToWorkspace2Key", N_("Move window to workspace 2") }, { "MoveToWorkspace3Key", N_("Move window to workspace 3") }, { "MoveToWorkspace4Key", N_("Move window to workspace 4") }, { "MoveToWorkspace5Key", N_("Move window to workspace 5") }, { "MoveToWorkspace6Key", N_("Move window to workspace 6") }, { "MoveToWorkspace7Key", N_("Move window to workspace 7") }, { "MoveToWorkspace8Key", N_("Move window to workspace 8") }, { "MoveToWorkspace9Key", N_("Move window to workspace 9") }, { "MoveToWorkspace10Key", N_("Move window to workspace 10") }, /* Window Selection */ { "WindowShortcut1Key", N_("Shortcut for window 1") }, { "WindowShortcut2Key", N_("Shortcut for window 2") }, { "WindowShortcut3Key", N_("Shortcut for window 3") }, { "WindowShortcut4Key", N_("Shortcut for window 4") }, { "WindowShortcut5Key", N_("Shortcut for window 5") }, { "WindowShortcut6Key", N_("Shortcut for window 6") }, { "WindowShortcut7Key", N_("Shortcut for window 7") }, { "WindowShortcut8Key", N_("Shortcut for window 8") }, { "WindowShortcut9Key", N_("Shortcut for window 9") }, { "WindowShortcut10Key", N_("Shortcut for window 10") }, /* Misc. */ { "WindowRelaunchKey", N_("Launch new instance of application") }, { "ScreenSwitchKey", N_("Switch to Next Screen/Monitor") }, { "DockRaiseLowerKey", N_("Raise/Lower Dock") }, { "ClipRaiseLowerKey", N_("Raise/Lower Clip") } #ifdef XKB_MODELOCK ,{ "ToggleKbdModeKey", N_("Toggle keyboard language") } #endif /* XKB_MODELOCK */ }; #ifndef HAVE_XCONVERTCASE /* from Xlib */ static void XConvertCase(register KeySym sym, KeySym * lower, KeySym * upper) { *lower = sym; *upper = sym; switch (sym >> 8) { case 0: /* Latin 1 */ if ((sym >= XK_A) && (sym <= XK_Z)) *lower += (XK_a - XK_A); else if ((sym >= XK_a) && (sym <= XK_z)) *upper -= (XK_a - XK_A); else if ((sym >= XK_Agrave) && (sym <= XK_Odiaeresis)) *lower += (XK_agrave - XK_Agrave); else if ((sym >= XK_agrave) && (sym <= XK_odiaeresis)) *upper -= (XK_agrave - XK_Agrave); else if ((sym >= XK_Ooblique) && (sym <= XK_Thorn)) *lower += (XK_oslash - XK_Ooblique); else if ((sym >= XK_oslash) && (sym <= XK_thorn)) *upper -= (XK_oslash - XK_Ooblique); break; case 1: /* Latin 2 */ /* Assume the KeySym is a legal value (ignore discontinuities) */ if (sym == XK_Aogonek) *lower = XK_aogonek; else if (sym >= XK_Lstroke && sym <= XK_Sacute) *lower += (XK_lstroke - XK_Lstroke); else if (sym >= XK_Scaron && sym <= XK_Zacute) *lower += (XK_scaron - XK_Scaron); else if (sym >= XK_Zcaron && sym <= XK_Zabovedot) *lower += (XK_zcaron - XK_Zcaron); else if (sym == XK_aogonek) *upper = XK_Aogonek; else if (sym >= XK_lstroke && sym <= XK_sacute) *upper -= (XK_lstroke - XK_Lstroke); else if (sym >= XK_scaron && sym <= XK_zacute) *upper -= (XK_scaron - XK_Scaron); else if (sym >= XK_zcaron && sym <= XK_zabovedot) *upper -= (XK_zcaron - XK_Zcaron); else if (sym >= XK_Racute && sym <= XK_Tcedilla) *lower += (XK_racute - XK_Racute); else if (sym >= XK_racute && sym <= XK_tcedilla) *upper -= (XK_racute - XK_Racute); break; case 2: /* Latin 3 */ /* Assume the KeySym is a legal value (ignore discontinuities) */ if (sym >= XK_Hstroke && sym <= XK_Hcircumflex) *lower += (XK_hstroke - XK_Hstroke); else if (sym >= XK_Gbreve && sym <= XK_Jcircumflex) *lower += (XK_gbreve - XK_Gbreve); else if (sym >= XK_hstroke && sym <= XK_hcircumflex) *upper -= (XK_hstroke - XK_Hstroke); else if (sym >= XK_gbreve && sym <= XK_jcircumflex) *upper -= (XK_gbreve - XK_Gbreve); else if (sym >= XK_Cabovedot && sym <= XK_Scircumflex) *lower += (XK_cabovedot - XK_Cabovedot); else if (sym >= XK_cabovedot && sym <= XK_scircumflex) *upper -= (XK_cabovedot - XK_Cabovedot); break; case 3: /* Latin 4 */ /* Assume the KeySym is a legal value (ignore discontinuities) */ if (sym >= XK_Rcedilla && sym <= XK_Tslash) *lower += (XK_rcedilla - XK_Rcedilla); else if (sym >= XK_rcedilla && sym <= XK_tslash) *upper -= (XK_rcedilla - XK_Rcedilla); else if (sym == XK_ENG) *lower = XK_eng; else if (sym == XK_eng) *upper = XK_ENG; else if (sym >= XK_Amacron && sym <= XK_Umacron) *lower += (XK_amacron - XK_Amacron); else if (sym >= XK_amacron && sym <= XK_umacron) *upper -= (XK_amacron - XK_Amacron); break; case 6: /* Cyrillic */ /* Assume the KeySym is a legal value (ignore discontinuities) */ if (sym >= XK_Serbian_DJE && sym <= XK_Serbian_DZE) *lower -= (XK_Serbian_DJE - XK_Serbian_dje); else if (sym >= XK_Serbian_dje && sym <= XK_Serbian_dze) *upper += (XK_Serbian_DJE - XK_Serbian_dje); else if (sym >= XK_Cyrillic_YU && sym <= XK_Cyrillic_HARDSIGN) *lower -= (XK_Cyrillic_YU - XK_Cyrillic_yu); else if (sym >= XK_Cyrillic_yu && sym <= XK_Cyrillic_hardsign) *upper += (XK_Cyrillic_YU - XK_Cyrillic_yu); break; case 7: /* Greek */ /* Assume the KeySym is a legal value (ignore discontinuities) */ if (sym >= XK_Greek_ALPHAaccent && sym <= XK_Greek_OMEGAaccent) *lower += (XK_Greek_alphaaccent - XK_Greek_ALPHAaccent); else if (sym >= XK_Greek_alphaaccent && sym <= XK_Greek_omegaaccent && sym != XK_Greek_iotaaccentdieresis && sym != XK_Greek_upsilonaccentdieresis) *upper -= (XK_Greek_alphaaccent - XK_Greek_ALPHAaccent); else if (sym >= XK_Greek_ALPHA && sym <= XK_Greek_OMEGA) *lower += (XK_Greek_alpha - XK_Greek_ALPHA); else if (sym >= XK_Greek_alpha && sym <= XK_Greek_omega && sym != XK_Greek_finalsmallsigma) *upper -= (XK_Greek_alpha - XK_Greek_ALPHA); break; case 0x14: /* Armenian */ if (sym >= XK_Armenian_AYB && sym <= XK_Armenian_fe) { *lower = sym | 1; *upper = sym & ~1; } break; } } #endif char *capture_shortcut(Display *dpy, Bool *capturing, Bool convert_case) { XEvent ev; KeySym ksym, lksym, uksym; char buffer[64]; char *key = NULL; while (*capturing) { XAllowEvents(dpy, AsyncKeyboard, CurrentTime); WMNextEvent(dpy, &ev); if (ev.type == KeyPress && ev.xkey.keycode != 0) { if (xext_xkb_supported) ksym = XkbKeycodeToKeysym(dpy, ev.xkey.keycode, 0, 0); else ksym = XKeycodeToKeysym(dpy, ev.xkey.keycode, 0); if (!IsModifierKey(ksym)) { if (convert_case) { XConvertCase(ksym, &lksym, &uksym); key = XKeysymToString(uksym); } else { key = XKeysymToString(ksym); } *capturing = 0; break; } } WMHandleEvent(&ev); } if (!key) return NULL; buffer[0] = 0; if (ev.xkey.state & ControlMask) { strcat(buffer, "Control+"); } if (ev.xkey.state & ShiftMask) { strcat(buffer, "Shift+"); } if (ev.xkey.state & Mod1Mask) { strcat(buffer, "Mod1+"); } if (ev.xkey.state & Mod2Mask) { strcat(buffer, "Mod2+"); } if (ev.xkey.state & Mod3Mask) { strcat(buffer, "Mod3+"); } if (ev.xkey.state & Mod4Mask) { strcat(buffer, "Mod4+"); } if (ev.xkey.state & Mod5Mask) { strcat(buffer, "Mod5+"); } strcat(buffer, key); return wstrdup(buffer); } static void captureClick(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; Display *dpy = WMScreenDisplay(WMWidgetScreen(panel->parent)); char *shortcut; if (!panel->capturing) { panel->capturing = 1; WMSetButtonText(w, _("Cancel")); WMSetLabelText(panel->instructionsL, _("Press the desired shortcut key(s) or click Cancel to stop capturing.")); XGrabKeyboard(dpy, WMWidgetXID(panel->parent), True, GrabModeAsync, GrabModeAsync, CurrentTime); shortcut = capture_shortcut(dpy, &panel->capturing, 1); if (shortcut) { int row = WMGetListSelectedItemRow(panel->actLs); WMSetTextFieldText(panel->shoT, shortcut); if (row >= 0) { if (panel->shortcuts[row]) wfree(panel->shortcuts[row]); panel->shortcuts[row] = shortcut; WMRedisplayWidget(panel->actLs); } else { wfree(shortcut); } } } panel->capturing = 0; WMSetButtonText(w, _("Capture")); WMSetLabelText(panel->instructionsL, _("Click on Capture to interactively define the shortcut key.")); XUngrabKeyboard(dpy, CurrentTime); } static void clearShortcut(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int row = WMGetListSelectedItemRow(panel->actLs); WMSetTextFieldText(panel->shoT, NULL); if (row >= 0) { if (panel->shortcuts[row]) wfree(panel->shortcuts[row]); panel->shortcuts[row] = NULL; WMRedisplayWidget(panel->actLs); } } static void typedKeys(void *observerData, WMNotification * notification) { _Panel *panel = (_Panel *) observerData; int row = WMGetListSelectedItemRow(panel->actLs); if (row < 0) return; if (panel->shortcuts[row]) wfree(panel->shortcuts[row]); panel->shortcuts[row] = WMGetTextFieldText(panel->shoT); if (strlen(panel->shortcuts[row]) == 0) { wfree(panel->shortcuts[row]); panel->shortcuts[row] = NULL; } WMRedisplayWidget(panel->actLs); } static void listClick(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int row = WMGetListSelectedItemRow(w); WMSetTextFieldText(panel->shoT, panel->shortcuts[row]); } static void showData(_Panel * panel) { char *str; int i; for (i = 0; i < panel->actionCount; i++) { str = GetStringForKey(keyOptions[i].key); if (panel->shortcuts[i]) wfree(panel->shortcuts[i]); if (str) panel->shortcuts[i] = wtrimspace(str); else panel->shortcuts[i] = NULL; if (panel->shortcuts[i] && (strcasecmp(panel->shortcuts[i], "none") == 0 || strlen(panel->shortcuts[i]) == 0)) { wfree(panel->shortcuts[i]); panel->shortcuts[i] = NULL; } } WMRedisplayWidget(panel->actLs); } static void paintItem(WMList * lPtr, int index, Drawable d, char *text, int state, WMRect * rect) { int width, height, x, y; _Panel *panel = (_Panel *) WMGetHangedData(lPtr); WMScreen *scr = WMWidgetScreen(lPtr); Display *dpy = WMScreenDisplay(scr); WMColor *backColor = (state & WLDSSelected) ? panel->white : panel->gray; width = rect->size.width; height = rect->size.height; x = rect->pos.x; y = rect->pos.y; XFillRectangle(dpy, d, WMColorGC(backColor), x, y, width, height); if (panel->shortcuts[index]) { WMPixmap *pix = WMGetSystemPixmap(scr, WSICheckMark); WMSize size = WMGetPixmapSize(pix); WMDrawPixmap(pix, d, x + (20 - size.width) / 2, (height - size.height) / 2 + y); WMReleasePixmap(pix); } WMDrawString(scr, d, panel->black, panel->font, x + 20, y, text, strlen(text)); } static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; WMScreen *scr = WMWidgetScreen(panel->parent); WMColor *color; WMFont *boldFont; int i; panel->capturing = 0; panel->white = WMWhiteColor(scr); panel->black = WMBlackColor(scr); panel->gray = WMGrayColor(scr); panel->font = WMSystemFontOfSize(scr, 12); panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); boldFont = WMBoldSystemFontOfSize(scr, 12); /* **************** Actions **************** */ panel->actL = WMCreateLabel(panel->box); WMResizeWidget(panel->actL, 280, 20); WMMoveWidget(panel->actL, 20, 10); WMSetLabelFont(panel->actL, boldFont); WMSetLabelText(panel->actL, _("Actions")); WMSetLabelRelief(panel->actL, WRSunken); WMSetLabelTextAlignment(panel->actL, WACenter); color = WMDarkGrayColor(scr); WMSetWidgetBackgroundColor(panel->actL, color); WMReleaseColor(color); WMSetLabelTextColor(panel->actL, panel->white); panel->actLs = WMCreateList(panel->box); WMResizeWidget(panel->actLs, 280, 190); WMMoveWidget(panel->actLs, 20, 32); WMSetListUserDrawProc(panel->actLs, paintItem); WMHangData(panel->actLs, panel); for (i = 0; i < sizeof(keyOptions)/sizeof(keyOptions[0]); i++) { WMAddListItem(panel->actLs, _(keyOptions[i].title)); } WMSetListAction(panel->actLs, listClick, panel); panel->actionCount = WMGetListNumberOfRows(panel->actLs); panel->shortcuts = wmalloc(sizeof(char *) * panel->actionCount); /***************** Shortcut ****************/ panel->shoF = WMCreateFrame(panel->box); WMResizeWidget(panel->shoF, 190, 210); WMMoveWidget(panel->shoF, 315, 10); WMSetFrameTitle(panel->shoF, _("Shortcut")); panel->shoT = WMCreateTextField(panel->shoF); WMResizeWidget(panel->shoT, 160, 20); WMMoveWidget(panel->shoT, 15, 65); WMAddNotificationObserver(typedKeys, panel, WMTextDidChangeNotification, panel->shoT); panel->cleB = WMCreateCommandButton(panel->shoF); WMResizeWidget(panel->cleB, 75, 24); WMMoveWidget(panel->cleB, 15, 95); WMSetButtonText(panel->cleB, _("Clear")); WMSetButtonAction(panel->cleB, clearShortcut, panel); panel->defB = WMCreateCommandButton(panel->shoF); WMResizeWidget(panel->defB, 75, 24); WMMoveWidget(panel->defB, 100, 95); WMSetButtonText(panel->defB, _("Capture")); WMSetButtonAction(panel->defB, captureClick, panel); panel->instructionsL = WMCreateLabel(panel->shoF); WMResizeWidget(panel->instructionsL, 160, 55); WMMoveWidget(panel->instructionsL, 15, 140); WMSetLabelTextAlignment(panel->instructionsL, WACenter); WMSetLabelWraps(panel->instructionsL, True); WMSetLabelText(panel->instructionsL, _("Click on Capture to interactively define the shortcut key.")); WMMapSubwidgets(panel->shoF); WMReleaseFont(boldFont); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); showData(panel); } static void storeData(_Panel * panel) { int i; char *str; for (i = 0; i < panel->actionCount; i++) { str = NULL; if (panel->shortcuts[i]) { str = wtrimspace(panel->shortcuts[i]); if (strlen(str) == 0) { wfree(str); str = NULL; } } if (str) { SetStringForKey(str, keyOptions[i].key); wfree(str); } else { SetStringForKey("None", keyOptions[i].key); } } } Panel *InitKeyboardShortcuts(WMScreen * scr, WMWidget * parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Keyboard Shortcut Preferences"); panel->description = _("Change the keyboard shortcuts for actions such\n" "as changing workspaces and opening menus."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; AddSection(panel, ICON_FILE); return panel; } �����������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/FontSimple.c����������������������������������������������������������0000644�0001750�0001750�00000045517�12214432632�015206� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* FontSimple.c- simplified font configuration panel * * WPrefs - Window Maker Preferences Program * * Copyright (c) 1998-2004 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "WPrefs.h" #include <unistd.h> #include <fontconfig/fontconfig.h> /* workaround for older fontconfig, that doesn't define these constants */ #ifndef FC_WEIGHT_NORMAL /* Weights */ # define FC_WEIGHT_THIN 10 # define FC_WEIGHT_EXTRALIGHT 40 # define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT # define FC_WEIGHT_REGULAR 80 # define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR # define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD # define FC_WEIGHT_EXTRABOLD 205 # define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD # define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK /* Widths */ # define FC_WIDTH "width" # define FC_WIDTH_ULTRACONDENSED 50 # define FC_WIDTH_EXTRACONDENSED 63 # define FC_WIDTH_CONDENSED 75 # define FC_WIDTH_SEMICONDENSED 87 # define FC_WIDTH_NORMAL 100 # define FC_WIDTH_SEMIEXPANDED 113 # define FC_WIDTH_EXPANDED 125 # define FC_WIDTH_EXTRAEXPANDED 150 # define FC_WIDTH_ULTRAEXPANDED 200 #endif #define SAMPLE_TEXT "The Lazy Fox Jumped Ipsum Foobar 1234 - 56789" typedef struct { int weight; int width; int slant; } FontStyle; typedef struct { char *name; int stylen; FontStyle *styles; } FontFamily; typedef struct { int familyn; FontFamily *families; } FontList; typedef struct _Panel { WMBox *box; char *sectionName; char *description; CallbackRec callbacks; WMWidget *parent; WMPopUpButton *optionP; WMList *familyL; WMList *styleL; WMList *sizeL; WMTextField *sampleT; FontList *fonts; } _Panel; #define ICON_FILE "fonts" static struct { char *option; char *label; } fontOptions[] = { { "WindowTitleFont", N_("Window Title")}, { "MenuTitleFont", N_("Menu Title")}, { "MenuTextFont", N_("Menu Text")}, { "IconTitleFont", N_("Icon Title")}, { "ClipTitleFont", N_("Clip Title")}, { "LargeDisplayFont", N_("Desktop Caption")}, { NULL, NULL},}; static char *standardSizes[] = { "6", "8", "9", "10", "11", "12", "13", "14", "15", "16", "18", "20", "22", "24", "28", "32", "36", "48", "64", "72", NULL }; static struct { int weight; char *name; } fontWeights[] = { { FC_WEIGHT_THIN, "Thin"}, { FC_WEIGHT_EXTRALIGHT, "ExtraLight"}, { FC_WEIGHT_LIGHT, "Light"}, { FC_WEIGHT_NORMAL, "Normal"}, { FC_WEIGHT_MEDIUM, ""}, /*"medium"}, */ { FC_WEIGHT_DEMIBOLD, "DemiBold"}, { FC_WEIGHT_BOLD, "Bold"}, { FC_WEIGHT_EXTRABOLD, "ExtraBold"}, { FC_WEIGHT_BLACK, "Black"}, { 0, NULL} }; static struct { int slant; char *name; } fontSlants[] = { { FC_SLANT_ROMAN, ""}, /*"Roman"}, */ { FC_SLANT_ITALIC, "Italic"}, { FC_SLANT_OBLIQUE, "Oblique"}, { 0, NULL} }; static struct { int width; char *name; } fontWidths[] = { { FC_WIDTH_ULTRACONDENSED, "UltraCondensed"}, { FC_WIDTH_EXTRACONDENSED, "ExtraCondensed"}, { FC_WIDTH_CONDENSED, "Condensed"}, { FC_WIDTH_SEMICONDENSED, "SemiCondensed"}, { FC_WIDTH_NORMAL, ""}, /*"normal"}, */ { FC_WIDTH_SEMIEXPANDED, "SemiExpanded"}, { FC_WIDTH_EXPANDED, "Expanded"}, { FC_WIDTH_EXTRAEXPANDED, "ExtraExpanded"}, { FC_WIDTH_ULTRAEXPANDED, "UltraExpanded"}, { 0, NULL} }; static int compare_family(const void *a, const void *b) { FontFamily *fa = (FontFamily *) a; FontFamily *fb = (FontFamily *) b; return strcmp(fa->name, fb->name); } static int compare_styles(const void *a, const void *b) { FontStyle *sa = (FontStyle *) a; FontStyle *sb = (FontStyle *) b; int compare; compare = sa->weight - sb->weight; if (compare != 0) return compare; compare = sa->slant - sb->slant; if (compare != 0) return compare; return (sa->width - sb->width); } static void lookup_available_fonts(_Panel * panel) { FcPattern *pat = FcPatternCreate(); FcObjectSet *os; FcFontSet *fonts; FontFamily *family; os = FcObjectSetBuild(FC_FAMILY, FC_WEIGHT, FC_WIDTH, FC_SLANT, NULL); fonts = FcFontList(0, pat, os); if (fonts) { int i; panel->fonts = wmalloc(sizeof(FontList)); panel->fonts->familyn = 0; panel->fonts->families = wmalloc(sizeof(FontFamily) * fonts->nfont); for (i = 0; i < fonts->nfont; i++) { char *name; int weight, slant, width; int j, found; if (FcPatternGetString(fonts->fonts[i], FC_FAMILY, 0, (FcChar8 **) & name) != FcResultMatch) continue; if (FcPatternGetInteger(fonts->fonts[i], FC_WEIGHT, 0, &weight) != FcResultMatch) weight = FC_WEIGHT_MEDIUM; if (FcPatternGetInteger(fonts->fonts[i], FC_WIDTH, 0, &width) != FcResultMatch) width = FC_WIDTH_NORMAL; if (FcPatternGetInteger(fonts->fonts[i], FC_SLANT, 0, &slant) != FcResultMatch) slant = FC_SLANT_ROMAN; found = -1; for (j = 0; j < panel->fonts->familyn && found < 0; j++) if (strcasecmp(panel->fonts->families[j].name, name) == 0) found = j; if (found < 0) { panel->fonts->families[panel->fonts->familyn++].name = wstrdup(name); family = panel->fonts->families + panel->fonts->familyn - 1; family->stylen = 0; family->styles = NULL; } else family = panel->fonts->families + found; family->stylen++; family->styles = wrealloc(family->styles, sizeof(FontStyle) * family->stylen); family->styles[family->stylen - 1].weight = weight; family->styles[family->stylen - 1].slant = slant; family->styles[family->stylen - 1].width = width; } qsort(panel->fonts->families, panel->fonts->familyn, sizeof(FontFamily), compare_family); for (i = 0; i < panel->fonts->familyn; i++) { qsort(panel->fonts->families[i].styles, panel->fonts->families[i].stylen, sizeof(FontStyle), compare_styles); } FcFontSetDestroy(fonts); } if (os) FcObjectSetDestroy(os); if (pat) FcPatternDestroy(pat); panel->fonts->families[panel->fonts->familyn++].name = wstrdup("sans serif"); family = panel->fonts->families + panel->fonts->familyn - 1; family->styles = wmalloc(sizeof(FontStyle) * 2); family->stylen = 2; family->styles[0].weight = FC_WEIGHT_MEDIUM; family->styles[0].slant = FC_SLANT_ROMAN; family->styles[0].width = FC_WIDTH_NORMAL; family->styles[1].weight = FC_WEIGHT_BOLD; family->styles[1].slant = FC_SLANT_ROMAN; family->styles[1].width = FC_WIDTH_NORMAL; panel->fonts->families[panel->fonts->familyn++].name = wstrdup("serif"); family = panel->fonts->families + panel->fonts->familyn - 1; family->styles = wmalloc(sizeof(FontStyle) * 2); family->stylen = 2; family->styles[0].weight = FC_WEIGHT_MEDIUM; family->styles[0].slant = FC_SLANT_ROMAN; family->styles[0].width = FC_WIDTH_NORMAL; family->styles[1].weight = FC_WEIGHT_BOLD; family->styles[1].slant = FC_SLANT_ROMAN; family->styles[1].width = FC_WIDTH_NORMAL; } static char *getSelectedFont(_Panel * panel, FcChar8 * curfont) { WMListItem *item; FcPattern *pat; char *name; if (curfont) pat = FcNameParse(curfont); else pat = FcPatternCreate(); item = WMGetListSelectedItem(panel->familyL); if (item) { FcPatternDel(pat, FC_FAMILY); FcPatternAddString(pat, FC_FAMILY, (FcChar8 *) item->text); } item = WMGetListSelectedItem(panel->styleL); if (item) { FontStyle *style = (FontStyle *) item->clientData; FcPatternDel(pat, FC_WEIGHT); FcPatternAddInteger(pat, FC_WEIGHT, style->weight); FcPatternDel(pat, FC_WIDTH); FcPatternAddInteger(pat, FC_WIDTH, style->width); FcPatternDel(pat, FC_SLANT); FcPatternAddInteger(pat, FC_SLANT, style->slant); } item = WMGetListSelectedItem(panel->sizeL); if (item) { FcPatternDel(pat, FC_PIXEL_SIZE); FcPatternAddDouble(pat, FC_PIXEL_SIZE, atoi(item->text)); } name = (char *)FcNameUnparse(pat); FcPatternDestroy(pat); return name; } static void updateSampleFont(_Panel * panel) { WMMenuItem *item = WMGetPopUpButtonMenuItem(panel->optionP, WMGetPopUpButtonSelectedItem(panel->optionP)); char *fn = WMGetMenuItemRepresentedObject(item); if (fn) { WMFont *font = WMCreateFont(WMWidgetScreen(panel->box), fn); if (font) { WMSetTextFieldFont(panel->sampleT, font); WMReleaseFont(font); } } } static void selectedFamily(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; WMListItem *item; FontStyle *oldStyle = NULL; char buffer[1024]; item = WMGetListSelectedItem(panel->styleL); if (item) oldStyle = (FontStyle *) item->clientData; item = WMGetListSelectedItem(panel->familyL); if (item) { FontFamily *family = (FontFamily *) item->clientData; int i, oldi = 0, oldscore = 0; WMClearList(panel->styleL); for (i = 0; i < family->stylen; i++) { int j; char *weight = "", *slant = "", *width = ""; WMListItem *item; for (j = 0; fontWeights[j].name; j++) if (fontWeights[j].weight == family->styles[i].weight) { weight = fontWeights[j].name; break; } for (j = 0; fontWidths[j].name; j++) if (fontWidths[j].width == family->styles[i].width) { width = fontWidths[j].name; break; } for (j = 0; fontSlants[j].name; j++) if (fontSlants[j].slant == family->styles[i].slant) { slant = fontSlants[j].name; break; } sprintf(buffer, "%s%s%s%s%s", weight, *weight ? " " : "", slant, (*slant || *weight) ? " " : "", width); if (!buffer[0]) strcpy(buffer, "Roman"); item = WMAddListItem(panel->styleL, buffer); item->clientData = family->styles + i; if (oldStyle) { int score = 0; if (oldStyle->width == family->styles[i].width) score |= 1; if (oldStyle->weight == family->styles[i].weight) score |= 2; if (oldStyle->slant == family->styles[i].slant) score |= 4; if (score > oldscore) { oldi = i; oldscore = score; } } } WMSelectListItem(panel->styleL, oldi); { int index = WMGetPopUpButtonSelectedItem(panel->optionP); WMMenuItem *item = WMGetPopUpButtonMenuItem(panel->optionP, index); FcChar8 *ofont; char *nfont; ofont = (FcChar8 *) WMGetMenuItemRepresentedObject(item); nfont = getSelectedFont(panel, ofont); if (ofont) wfree(ofont); WMSetMenuItemRepresentedObject(item, nfont); } updateSampleFont(panel); } } static void selected(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int index = WMGetPopUpButtonSelectedItem(panel->optionP); WMMenuItem *item = WMGetPopUpButtonMenuItem(panel->optionP, index); FcChar8 *ofont; char *nfont; ofont = (FcChar8 *) WMGetMenuItemRepresentedObject(item); nfont = getSelectedFont(panel, ofont); if (ofont) wfree(ofont); WMSetMenuItemRepresentedObject(item, nfont); updateSampleFont(panel); } static void selectedOption(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int index = WMGetPopUpButtonSelectedItem(panel->optionP); WMMenuItem *item = WMGetPopUpButtonMenuItem(panel->optionP, index); char *font; font = (char *)WMGetMenuItemRepresentedObject(item); if (font) { FcPattern *pat; pat = FcNameParse((FcChar8 *) font); if (pat) { char *name; int weight, slant, width; double size; int distance, closest, found; int i; FcDefaultSubstitute(pat); if (FcPatternGetString(pat, FC_FAMILY, 0, (FcChar8 **) & name) != FcResultMatch) name = "sans serif"; found = 0; /* select family */ for (i = 0; i < WMGetListNumberOfRows(panel->familyL); i++) { WMListItem *item = WMGetListItem(panel->familyL, i); FontFamily *family = (FontFamily *) item->clientData; if (strcasecmp(family->name, name) == 0) { found = 1; WMSelectListItem(panel->familyL, i); WMSetListPosition(panel->familyL, i); break; } } if (!found) WMSelectListItem(panel->familyL, -1); selectedFamily(panel->familyL, panel); /* select style */ if (FcPatternGetInteger(pat, FC_WEIGHT, 0, &weight) != FcResultMatch) weight = FC_WEIGHT_NORMAL; if (FcPatternGetInteger(pat, FC_WIDTH, 0, &width) != FcResultMatch) width = FC_WIDTH_NORMAL; if (FcPatternGetInteger(pat, FC_SLANT, 0, &slant) != FcResultMatch) slant = FC_SLANT_ROMAN; if (FcPatternGetDouble(pat, FC_PIXEL_SIZE, 0, &size) != FcResultMatch) size = 10.0; for (i = 0, found = 0, closest = 0; i < WMGetListNumberOfRows(panel->styleL); i++) { WMListItem *item = WMGetListItem(panel->styleL, i); FontStyle *style = (FontStyle *) item->clientData; distance = ((abs(style->weight - weight) << 16) + (abs(style->slant - slant) << 8) + (abs(style->width - width))); if (i == 0 || distance < closest) { closest = distance; found = i; if (distance == 0) { break; /* perfect match */ } } } WMSelectListItem(panel->styleL, found); WMSetListPosition(panel->styleL, found); for (i = 0, found = 0, closest = 0; i < WMGetListNumberOfRows(panel->sizeL); i++) { WMListItem *item = WMGetListItem(panel->sizeL, i); int distance; distance = abs(size - atoi(item->text)); if (i == 0 || distance < closest) { closest = distance; found = i; if (distance == 0) { break; /* perfect match */ } } } WMSelectListItem(panel->sizeL, found); WMSetListPosition(panel->sizeL, found); selected(NULL, panel); } else wwarning("Can't parse font '%s'", font); } updateSampleFont(panel); } static WMLabel *createListLabel(WMScreen * scr, WMWidget * parent, const char *text) { WMLabel *label; WMColor *color; WMFont *boldFont = WMBoldSystemFontOfSize(scr, 12); label = WMCreateLabel(parent); WMSetLabelFont(label, boldFont); WMSetLabelText(label, text); WMSetLabelRelief(label, WRSunken); WMSetLabelTextAlignment(label, WACenter); color = WMDarkGrayColor(scr); WMSetWidgetBackgroundColor(label, color); WMReleaseColor(color); color = WMWhiteColor(scr); WMSetLabelTextColor(label, color); WMReleaseColor(color); WMReleaseFont(boldFont); return label; } static void showData(_Panel * panel) { int i; WMMenuItem *item; for (i = 0; i < WMGetPopUpButtonNumberOfItems(panel->optionP); i++) { char *ofont, *font; item = WMGetPopUpButtonMenuItem(panel->optionP, i); ofont = WMGetMenuItemRepresentedObject(item); if (ofont) wfree(ofont); font = GetStringForKey(fontOptions[i].option); if (font) font = wstrdup(font); WMSetMenuItemRepresentedObject(item, font); } WMSetPopUpButtonSelectedItem(panel->optionP, 0); selectedOption(panel->optionP, panel); } static void storeData(_Panel * panel) { int i; WMMenuItem *item; for (i = 0; i < WMGetPopUpButtonNumberOfItems(panel->optionP); i++) { char *font; item = WMGetPopUpButtonMenuItem(panel->optionP, i); font = WMGetMenuItemRepresentedObject(item); if (font && *font) { SetStringForKey(font, fontOptions[i].option); } } } static void createPanel(Panel * p) { _Panel *panel = (_Panel *) p; WMScreen *scr = WMWidgetScreen(panel->parent); WMLabel *label; WMBox *hbox, *vbox; int i; lookup_available_fonts(panel); panel->box = WMCreateBox(panel->parent); WMSetViewExpandsToParent(WMWidgetView(panel->box), 5, 2, 5, 5); WMSetBoxHorizontal(panel->box, False); WMSetBoxBorderWidth(panel->box, 8); WMMapWidget(panel->box); hbox = WMCreateBox(panel->box); WMSetBoxHorizontal(hbox, True); WMAddBoxSubview(panel->box, WMWidgetView(hbox), False, True, 40, 22, 8); vbox = WMCreateBox(hbox); WMAddBoxSubview(hbox, WMWidgetView(vbox), False, True, 130, 0, 10); WMSetBoxHorizontal(vbox, False); panel->optionP = WMCreatePopUpButton(vbox); WMAddBoxSubviewAtEnd(vbox, WMWidgetView(panel->optionP), False, True, 20, 0, 8); for (i = 0; fontOptions[i].option; i++) { WMAddPopUpButtonItem(panel->optionP, _(fontOptions[i].label)); } WMSetPopUpButtonAction(panel->optionP, selectedOption, panel); label = WMCreateLabel(hbox); WMSetLabelText(label, _("Sample Text")); WMSetLabelTextAlignment(label, WARight); WMAddBoxSubview(hbox, WMWidgetView(label), False, True, 80, 0, 2); panel->sampleT = WMCreateTextField(hbox); WMSetViewExpandsToParent(WMWidgetView(panel->sampleT), 10, 18, 10, 10); WMSetTextFieldText(panel->sampleT, SAMPLE_TEXT); WMAddBoxSubview(hbox, WMWidgetView(panel->sampleT), True, True, 60, 0, 0); hbox = WMCreateBox(panel->box); WMSetBoxHorizontal(hbox, True); WMAddBoxSubview(panel->box, WMWidgetView(hbox), True, True, 100, 0, 2); vbox = WMCreateBox(hbox); WMSetBoxHorizontal(vbox, False); WMAddBoxSubview(hbox, WMWidgetView(vbox), False, True, 240, 20, 4); label = createListLabel(scr, vbox, _("Family")); WMAddBoxSubview(vbox, WMWidgetView(label), False, True, 20, 0, 2); /* family */ panel->familyL = WMCreateList(vbox); WMAddBoxSubview(vbox, WMWidgetView(panel->familyL), True, True, 0, 0, 0); if (panel->fonts) { WMListItem *item; for (i = 0; i < panel->fonts->familyn; i++) { item = WMAddListItem(panel->familyL, panel->fonts->families[i].name); item->clientData = panel->fonts->families + i; } } else WMAddListItem(panel->familyL, "sans serif"); WMSetListAction(panel->familyL, selectedFamily, panel); vbox = WMCreateBox(hbox); WMSetBoxHorizontal(vbox, False); WMAddBoxSubview(hbox, WMWidgetView(vbox), True, True, 10, 0, 0); { WMBox *box = WMCreateBox(vbox); WMSetBoxHorizontal(box, True); WMAddBoxSubview(vbox, WMWidgetView(box), False, True, 20, 0, 2); label = createListLabel(scr, box, _("Style")); WMAddBoxSubview(box, WMWidgetView(label), True, True, 20, 0, 4); label = createListLabel(scr, box, _("Size")); WMAddBoxSubview(box, WMWidgetView(label), False, True, 60, 0, 0); box = WMCreateBox(vbox); WMSetBoxHorizontal(box, True); WMAddBoxSubview(vbox, WMWidgetView(box), True, True, 20, 0, 0); panel->styleL = WMCreateList(box); WMAddBoxSubview(box, WMWidgetView(panel->styleL), True, True, 0, 0, 4); WMSetListAction(panel->styleL, selected, panel); panel->sizeL = WMCreateList(box); WMAddBoxSubview(box, WMWidgetView(panel->sizeL), False, True, 60, 0, 0); for (i = 0; standardSizes[i]; i++) { WMAddListItem(panel->sizeL, standardSizes[i]); } WMSetListAction(panel->sizeL, selected, panel); } WMMapSubwidgets(panel->box); WMMapWidget(panel->box); WMRealizeWidget(panel->box); showData(panel); } Panel *InitFontSimple(WMScreen * scr, WMWidget * parent) { _Panel *panel; panel = wmalloc(sizeof(_Panel)); panel->sectionName = _("Font Configuration"); panel->description = _("Configure fonts for Window Maker titlebars, menus etc."); panel->parent = parent; panel->callbacks.createWidgets = createPanel; panel->callbacks.updateDomain = storeData; AddSection(panel, ICON_FILE); return panel; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/WPrefs.app/double.c��������������������������������������������������������������0000644�0001750�0001750�00000006733�12214432632�014375� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * Widget for testing double-clicks * */ #include <WINGs/WINGsP.h> #include "WPrefs.h" typedef struct W_DoubleTest { W_Class widgetClass; WMView *view; WMHandlerID timer; char on; char active; char *text; } _DoubleTest; /* some forward declarations */ static void destroyDoubleTest(_DoubleTest * dPtr); static void paintDoubleTest(_DoubleTest * dPtr); static void handleEvents(XEvent * event, void *data); static void handleActionEvents(XEvent * event, void *data); /* our widget class ID */ static W_Class DoubleTestClass = 0; /* * Initializer for our widget. Must be called before creating any * instances of the widget. */ W_Class InitDoubleTest(WMScreen * scr) { /* register our widget with WINGs and get our widget class ID */ if (!DoubleTestClass) { DoubleTestClass = W_RegisterUserWidget(); } return DoubleTestClass; } /* * Our widget fabrication plant. */ DoubleTest *CreateDoubleTest(WMWidget * parent, const char *text) { DoubleTest *dPtr; if (!DoubleTestClass) InitDoubleTest(WMWidgetScreen(parent)); /* allocate some storage for our new widget instance */ dPtr = wmalloc(sizeof(DoubleTest)); /* set the class ID */ dPtr->widgetClass = DoubleTestClass; dPtr->view = W_CreateView(W_VIEW(parent)); if (!dPtr->view) { wfree(dPtr); return NULL; } /* always do this */ dPtr->view->self = dPtr; dPtr->text = wstrdup(text); WMCreateEventHandler(dPtr->view, ExposureMask /* this allows us to know when we should paint */ | StructureNotifyMask, /* this allows us to know things like when we are destroyed */ handleEvents, dPtr); WMCreateEventHandler(dPtr->view, ButtonPressMask, handleActionEvents, dPtr); return dPtr; } static void paintDoubleTest(_DoubleTest * dPtr) { W_Screen *scr = dPtr->view->screen; if (dPtr->active) { XFillRectangle(scr->display, dPtr->view->window, WMColorGC(scr->white), 0, 0, dPtr->view->size.width, dPtr->view->size.height); } else { XClearWindow(scr->display, dPtr->view->window); } W_DrawRelief(scr, dPtr->view->window, 0, 0, dPtr->view->size.width, dPtr->view->size.height, dPtr->on ? WRSunken : WRRaised); if (dPtr->text) { int y; y = (dPtr->view->size.height - scr->normalFont->height) / 2; W_PaintText(dPtr->view, dPtr->view->window, scr->normalFont, dPtr->on, dPtr->on + y, dPtr->view->size.width, WACenter, scr->black, False, dPtr->text, strlen(dPtr->text)); } } static void handleEvents(XEvent * event, void *data) { _DoubleTest *dPtr = (_DoubleTest *) data; switch (event->type) { case Expose: if (event->xexpose.count != 0) break; paintDoubleTest(dPtr); break; case DestroyNotify: destroyDoubleTest(dPtr); break; } } static void deactivate(void *data) { _DoubleTest *dPtr = (_DoubleTest *) data; if (dPtr->active) dPtr->active = 0; paintDoubleTest(dPtr); dPtr->timer = NULL; } static void handleActionEvents(XEvent * event, void *data) { _DoubleTest *dPtr = (_DoubleTest *) data; switch (event->type) { case ButtonPress: if (WMIsDoubleClick(event)) { if (dPtr->timer) WMDeleteTimerHandler(dPtr->timer); dPtr->timer = NULL; dPtr->on = !dPtr->on; dPtr->active = 0; paintDoubleTest(dPtr); } else { dPtr->timer = WMAddTimerHandler(WINGsConfiguration.doubleClickDelay, deactivate, dPtr); dPtr->active = 1; paintDoubleTest(dPtr); } break; } } static void destroyDoubleTest(_DoubleTest * dPtr) { if (dPtr->timer) WMDeleteTimerHandler(dPtr->timer); if (dPtr->text) wfree(dPtr->text); wfree(dPtr); } �������������������������������������WindowMaker-0.95.5/INSTALL��������������������������������������������������������������������������0000644�0001750�0001750�00000036332�12214434562�012025� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `<wchar.h>' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/BUGS�����������������������������������������������������������������������������0000644�0001750�0001750�00000002472�12214432632�011451� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Newly added - after a crash, wmaker will forget the hidden state of the apps and just show their windows minimized. normal restart is unaffected - after a crash, wmaker will completely mess the window's saved geometries and maximizing will have weird results. restart is unaffected - wmaker will not stop managing a screen even if another window manager requests that, through the ICCCM 2.0 manager selection stuff - stacking code is buggy (or XFree is buggy) - save session doesnt work on some platforms (Alpha and Sparc) - texture pixmaps are being incorrectly freed somewhere. Either fix bug (to support broken MetroX servers) or remove all useless references to the Pixmap (to save memory and drop bug compatibility). - host information is not saved/honored by the dock or save session stuff. It should at least check if the host is the local machine and only save it in the session/allow docking it if yes. - the SHELL environment variable support in the apps menu was removed because of a problem with tcsh. If ~/.tcshrc contains "stty erase ^H", it will block and the cmd will not be executed. - mouse grab being done in client window (in wWindowResetMouseGrabs()) instead of the frame window. If grab is done in frame, titlebar buttons dont work well - mysterious mess in dock icons (specially netscape) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WindowMaker-0.95.5/install-sh�����������������������������������������������������������������������0000755�0001750�0001750�00000032537�12214434560�013001� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������